
/* Layout: one-column trading desk; signal ladder is the hero of each result. Deliberately single dark look. */
:root{
  --bg:#0b1018; --panel:#121a26; --panel2:#18222f; --line:#233042; --line2:#2e3d52;
  --text:#e6ecf4; --muted:#8696ab; --dim:#5d6d82;
  --gold:#f2b134; --gold-ink:#1d1405;
  --up:#1fc98a; --down:#f2475b; --wait:#e0a43a; --info:#4f9df7; --violet:#a37df6;
  --display:"Unbounded","IBM Plex Sans",system-ui,sans-serif;
  --body:"IBM Plex Sans",-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;
  color-scheme:dark;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 var(--body);-webkit-font-smoothing:antialiased}
.wrap{max-width:560px;margin:0 auto;padding-inline:16px;padding-block:10px 48px}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums}
[hidden]{display:none!important}

/* top */
.top{display:flex;align-items:center;gap:10px;padding:6px 0 14px}
.mark{width:36px;height:36px;border-radius:9px;background:var(--panel);border:1px solid var(--line);display:grid;place-items:center;flex:none}
.brand{font-family:var(--display);font-weight:700;font-size:17px;letter-spacing:.01em;line-height:1.1}
.brand small{display:block;font-family:var(--mono);font-weight:400;font-size:10.5px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-top:3px}
.nav{display:flex;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:4px;margin-bottom:16px;position:sticky;top:env(safe-area-inset-top,0px);z-index:5}
.nav button{flex:1;background:none;border:0;border-radius:9px;padding:9px 6px;font-weight:600;font-size:14px;color:var(--muted)}
.nav button[aria-selected="true"]{background:var(--panel2);color:var(--text);box-shadow:inset 0 -2px 0 var(--gold)}

/* inputs */
.label{display:block;font-size:11.5px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:5px;font-weight:600}
input[type=text],input[type=number],select,textarea{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 11px;font-size:15px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--gold)}
textarea{min-height:120px;resize:vertical;line-height:1.45;font-size:14px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border:0;border-radius:12px;padding:14px;background:var(--gold);color:var(--gold-ink);font-weight:700;font-size:15.5px}
.btn:disabled{opacity:.45;cursor:default}
.btn.sec{background:var(--panel2);color:var(--text);border:1px solid var(--line2)}
.btn.small{padding:9px 12px;font-size:13.5px;width:auto}
.switch{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;background:var(--panel);border:1px solid var(--line);border-radius:12px}
.switch b{font-weight:600;font-size:14.5px}
.switch span{display:block;color:var(--muted);font-size:12.5px}
.tg{appearance:none;width:44px;height:26px;border-radius:13px;background:var(--line2);position:relative;flex:none;cursor:pointer;transition:background .2s}
.tg::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .2s}
.tg:checked{background:var(--gold)}
.tg:checked::after{left:21px}
.stack{display:flex;flex-direction:column;gap:12px}

/* upload */
.drop{border:1.5px dashed var(--line2);border-radius:16px;background:var(--panel);padding:18px;text-align:center;cursor:pointer}
.drop.over{border-color:var(--gold)}
.drop h2{font-family:var(--display);font-weight:500;font-size:16px;margin:8px 0 4px;text-wrap:balance}
.drop p{margin:0;color:var(--muted);font-size:13.5px}
.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.slot{position:relative;aspect-ratio:4/3;max-width:100%;border-radius:10px;overflow:hidden;background:var(--bg);border:1px solid var(--line)}
.slot img{width:100%;height:100%;object-fit:cover;display:block}
.slot .x{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(0,0,0,.7);color:#fff;font-size:14px;line-height:1}
.slot.add{display:grid;place-items:center;color:var(--muted);font-size:26px;border-style:dashed}
.hint{color:var(--muted);font-size:12.5px;margin-top:8px}

/* busy */
.busy{text-align:center;padding:26px 0}
.scanbox{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--line)}
.scanbox img{display:block;width:100%;max-height:300px;object-fit:contain;background:#000}
.scanbox::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(242,177,52,.28) 50%,transparent 53%);background-size:100% 220%;animation:scan 1.9s linear infinite}
@keyframes scan{from{background-position:0 120%}to{background-position:0 -100%}}
.spin{width:38px;height:38px;border-radius:50%;border:3px solid var(--line2);border-top-color:var(--gold);animation:sp 1s linear infinite;margin:18px auto 10px}
@keyframes sp{to{transform:rotate(360deg)}}
.busy .st{color:var(--gold);font-weight:600}
.busy .sub{color:var(--muted);font-size:13px}
@media (prefers-reduced-motion:reduce){.scanbox::after,.spin{animation:none}}

/* result */
.shots{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.shots img{height:110px;border-radius:10px;border:1px solid var(--line);flex:none;max-width:none}
.rhead{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:14px 0 4px;flex-wrap:wrap}
.rhead h2{font-family:var(--display);font-weight:700;font-size:24px;margin:0;letter-spacing:-.01em}
.rmeta{color:var(--muted);font-size:13px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.chip{font-size:12px;font-weight:600;border-radius:999px;padding:4px 10px;border:1px solid var(--line2);background:var(--panel);color:var(--muted)}
.chip.up{color:var(--up);border-color:color-mix(in srgb,var(--up) 45%,transparent)}
.chip.down{color:var(--down);border-color:color-mix(in srgb,var(--down) 45%,transparent)}
.chip.wait{color:var(--wait);border-color:color-mix(in srgb,var(--wait) 45%,transparent)}
.chip.gold{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 45%,transparent)}
.example{background:color-mix(in srgb,var(--info) 14%,transparent);border:1px solid color-mix(in srgb,var(--info) 45%,transparent);color:var(--text);border-radius:10px;padding:9px 12px;font-size:13px;margin-bottom:12px}

.signal{margin-top:16px;border-radius:18px;border:1px solid var(--line);background:var(--panel);overflow:hidden}
.sig-top{display:flex;align-items:center;gap:14px;padding:16px 16px 12px;border-bottom:1px solid var(--line)}
.sig-dir{font-family:var(--display);font-weight:700;font-size:28px;letter-spacing:.02em;line-height:1}
.sig-dir small{display:block;font-family:var(--body);font-size:12.5px;font-weight:600;color:var(--muted);letter-spacing:.02em;margin-top:6px}
.long .sig-dir{color:var(--up)} .short .sig-dir{color:var(--down)} .neutral .sig-dir{color:var(--wait)}
.signal.long{box-shadow:inset 4px 0 0 var(--up)} .signal.short{box-shadow:inset 4px 0 0 var(--down)} .signal.neutral{box-shadow:inset 4px 0 0 var(--wait)}
.ring{margin-left:auto;flex:none;position:relative;width:64px;height:64px}
.ring svg{display:block}
.ring b{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--mono);font-size:15px}
.ring span{position:absolute;left:0;right:0;bottom:-15px;text-align:center;font-size:10px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.sig-text{padding:12px 16px 4px;font-size:14.5px;color:#cfd8e4}
.ladder{position:relative;margin:10px 16px 16px;height:230px}
.ladder .rail{position:absolute;left:8px;top:0;bottom:0;width:4px;border-radius:2px;background:var(--line)}
.ladder .zone{position:absolute;left:8px;width:4px;border-radius:2px}
.lvl{position:absolute;left:0;right:0;display:flex;align-items:center;gap:10px;transform:translateY(-50%)}
.lvl .dot{width:20px;height:20px;border-radius:50%;border:3px solid var(--bg);flex:none}
.lvl .nm{font-size:11.5px;font-weight:700;letter-spacing:.06em;width:52px;flex:none}
.lvl .px{font-family:var(--mono);font-weight:600;font-size:15px;flex:1;min-width:0}
.lvl .meta{font-family:var(--mono);font-size:12px;color:var(--muted);text-align:right;white-space:nowrap}
.lvl.tp .dot{background:var(--up)} .lvl.tp .nm{color:var(--up)}
.lvl.sl .dot{background:var(--down)} .lvl.sl .nm{color:var(--down)}
.lvl.en .dot{background:var(--gold)} .lvl.en .nm{color:var(--gold)}
.lvl.now .dot{background:var(--text);width:12px;height:12px;margin:0 4px;border-width:2px}
.lvl.now .nm,.lvl.now .px{color:var(--muted);font-weight:500}
.sig-foot{display:flex;flex-wrap:wrap;gap:6px 16px;padding:10px 16px 14px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.sig-foot b{color:var(--text);font-family:var(--mono);font-weight:600}

h3.sec{font-family:var(--display);font-weight:500;font-size:15px;letter-spacing:.01em;margin:26px 0 10px;display:flex;align-items:center;gap:8px}
h3.sec .tag{font-family:var(--body);font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-left:auto}
.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-width:0}
.tile small{display:block;font-size:11.5px;color:var(--muted);letter-spacing:.04em}
.tile b{display:block;font-size:16px;margin-top:2px;overflow-wrap:anywhere}
.c-up{color:var(--up)}.c-down{color:var(--down)}.c-wait{color:var(--wait)}.c-info{color:var(--info)}
.rows{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.row{display:flex;gap:10px;align-items:flex-start;padding:11px 13px;border-top:1px solid var(--line)}
.row:first-child{border-top:0}
.row .ic{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;flex:none;font-size:13px;font-weight:800;margin-top:1px}
.ic.pass{background:color-mix(in srgb,var(--up) 18%,transparent);color:var(--up)}
.ic.fail{background:color-mix(in srgb,var(--down) 18%,transparent);color:var(--down)}
.ic.na{background:var(--panel2);color:var(--muted)}
.ic.b{background:color-mix(in srgb,var(--info) 18%,transparent);color:var(--info)}
.ic.v{background:color-mix(in srgb,var(--violet) 18%,transparent);color:var(--violet)}
.ic.r{background:color-mix(in srgb,var(--down) 18%,transparent);color:var(--down)}
.row .tx{min-width:0;flex:1}
.row b{display:block;font-size:14.5px;font-weight:600}
.row span{display:block;color:var(--muted);font-size:13.5px}
.row .right{margin-left:auto;font-family:var(--mono);font-size:13px;white-space:nowrap}
.lv2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lv2 .tile b{font-family:var(--mono);line-height:1.7;font-size:15px}
.prose{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px;font-size:14.5px;color:#cfd8e4}

/* calculator */
.calc{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px}
.calc .grid3{gap:8px}
.calc input{padding:8px 9px;font-size:14px;font-family:var(--mono)}
.calc .label{font-size:10.5px}
.out{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px}
.out .tile{background:var(--panel2)}
.out .tile b{font-family:var(--mono)}
.pnl{margin-top:10px}
.pnl .row{background:var(--panel2)}
.warn{margin-top:10px;border-radius:10px;padding:9px 12px;font-size:13px;background:color-mix(in srgb,var(--down) 14%,transparent);border:1px solid color-mix(in srgb,var(--down) 40%,transparent)}

/* outcome */
.outc{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.outc button{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 4px;font-weight:600;font-size:13.5px}
.outc button[aria-pressed="true"].w{background:color-mix(in srgb,var(--up) 22%,var(--panel));border-color:var(--up)}
.outc button[aria-pressed="true"].l{background:color-mix(in srgb,var(--down) 22%,var(--panel));border-color:var(--down)}
.outc button[aria-pressed="true"].n{background:var(--panel2);border-color:var(--muted)}

/* chat */
.chat{display:flex;flex-direction:column;gap:8px}
.msg{border-radius:12px;padding:10px 12px;font-size:14.5px;white-space:pre-wrap;max-width:92%;overflow-wrap:anywhere}
.msg.u{align-self:flex-end;background:var(--panel2);border:1px solid var(--line2)}
.msg.a{align-self:flex-start;background:var(--panel);border:1px solid var(--line)}
.ask{display:flex;gap:8px;margin-top:8px}
.ask input{flex:1;min-width:0}
.sugg{display:flex;flex-wrap:wrap;gap:6px}
.sugg button{background:var(--panel);border:1px solid var(--line2);border-radius:999px;padding:6px 11px;font-size:12.5px;color:var(--muted)}

/* journal */
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.stats .tile b{font-family:var(--mono);font-size:22px}
.filters{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0 10px}
.filters button{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:13px;color:var(--muted)}
.filters button[aria-pressed="true"]{color:var(--text);border-color:var(--gold)}
.jlist{display:flex;flex-direction:column;gap:8px}
.jitem{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 12px 8px 8px;width:100%;text-align:left}
.jitem img,.jitem .ph{width:72px;height:50px;border-radius:8px;object-fit:cover;background:var(--bg);flex:none}
.jitem .tx{flex:1;min-width:0}
.jitem b{display:block;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jitem span{color:var(--muted);font-size:12.5px}
.badge{font-family:var(--mono);font-size:12px;font-weight:700;border-radius:7px;padding:3px 7px;white-space:nowrap}
.badge.long{color:var(--up);background:color-mix(in srgb,var(--up) 14%,transparent)}
.badge.short{color:var(--down);background:color-mix(in srgb,var(--down) 14%,transparent)}
.badge.neutral{color:var(--wait);background:color-mix(in srgb,var(--wait) 14%,transparent)}
.res{font-family:var(--mono);font-size:12.5px;font-weight:700;min-width:46px;text-align:right}
.empty{background:var(--panel);border:1px dashed var(--line2);border-radius:14px;padding:18px;text-align:center;color:var(--muted);font-size:14px}
.err{background:color-mix(in srgb,var(--down) 12%,transparent);border:1px solid color-mix(in srgb,var(--down) 40%,transparent);border-radius:12px;padding:12px 14px;font-size:14px;margin-top:12px}
.note{color:var(--muted);font-size:12.5px;margin-top:8px}
.disc{color:var(--dim);font-size:11.5px;text-align:center;margin-top:28px}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom,0px) + 18px);background:var(--panel2);border:1px solid var(--line2);border-radius:12px;padding:10px 16px;font-size:14px;z-index:20;max-width:calc(100% - 32px)}
.linkish{background:none;border:0;color:var(--muted);text-decoration:underline;font-size:13px;padding:6px}
.confirm{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center;margin-top:8px;font-size:13px;color:var(--muted)}
.plan{width:100%;min-height:140px;font-family:var(--mono);font-size:12.5px}

/* ---- PWA additions ---- */
html{-webkit-text-size-adjust:100%}
body{min-height:100dvh}
.wrap{padding-top:calc(env(safe-area-inset-top,0px) + 10px);padding-bottom:calc(env(safe-area-inset-bottom,0px) + 48px)}
.login{min-height:80dvh;display:flex;flex-direction:column;justify-content:center;gap:14px}
.login .hero{text-align:center;margin-bottom:10px}
.login .hero .mark{width:72px;height:72px;border-radius:20px;margin:0 auto 14px}
.login h1{font-family:var(--display);font-size:26px;margin:0}
.login p{color:var(--muted);margin:6px 0 0}
input[type=password]{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px;font-size:16px;outline:none;color:var(--text)}
.live{display:flex;align-items:center;gap:10px;margin-top:12px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;flex-wrap:wrap}
.live .pulse{width:9px;height:9px;border-radius:50%;background:var(--up);box-shadow:0 0 0 0 rgba(31,201,138,.6);animation:pulse 1.6s infinite;flex:none}
@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(31,201,138,0)}100%{box-shadow:0 0 0 0 rgba(31,201,138,0)}}
.live b{font-family:var(--mono);font-size:17px}
.live span{color:var(--muted);font-size:12.5px}
.live .grow{flex:1}
.track{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px}
.track .head{display:flex;align-items:center;gap:10px;justify-content:space-between}
.track .st{font-weight:700}
.st-waiting{color:var(--gold)}.st-in_trade{color:var(--info)}.st-closed{color:var(--up)}.st-cancelled,.st-expired{color:var(--muted)}
.events{margin-top:10px;display:flex;flex-direction:column;gap:6px}
.events div{font-size:13px;color:var(--muted);display:flex;gap:8px}
.events div b{color:var(--text);font-weight:600}
.btnrow{display:flex;gap:8px;flex-wrap:wrap}
.btnrow .btn{flex:1;min-width:140px}
.code{font-family:var(--mono);font-size:12px;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px;overflow-wrap:anywhere;user-select:all}
.tvlist{display:flex;flex-direction:column;gap:6px}
.tv{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:13.5px}
.tv .when{color:var(--muted);font-size:12px;margin-left:auto;white-space:nowrap}
.cam{display:flex;gap:8px;margin-top:12px;justify-content:center}
.cam .btn{width:auto;padding:10px 14px;font-size:14px}
.install{background:color-mix(in srgb,var(--gold) 12%,transparent);border:1px solid color-mix(in srgb,var(--gold) 40%,transparent);border-radius:12px;padding:10px 12px;font-size:13px}

.mkt{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.mkt .tfh{display:flex;align-items:center;gap:8px;padding:11px 13px;border-top:1px solid var(--line)}
.mkt .tfh:first-child{border-top:0}
.mkt .tfh b{font-family:var(--mono)}
.mkt .tfh .why{color:var(--muted);font-size:12.5px;flex:1;min-width:0}
.mkt .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border-top:1px solid var(--line)}
.mkt .grid div{background:var(--panel);padding:8px 10px;min-width:0}
.mkt .grid small{display:block;color:var(--muted);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase}
.mkt .grid b{font-family:var(--mono);font-size:13.5px;font-weight:600;overflow-wrap:anywhere}
.agree{margin-top:8px;font-size:13px;border-radius:10px;padding:9px 12px;border:1px solid var(--line2);background:var(--panel)}
.agree.ok{border-color:color-mix(in srgb,var(--up) 45%,transparent)}
.agree.no{border-color:color-mix(in srgb,var(--wait) 55%,transparent)}
.resline{margin-top:10px;display:flex;justify-content:space-between;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:11px 13px}
.resline b{font-family:var(--mono);font-size:17px}

.nav button{font-size:13.5px;padding:9px 4px}
.schead{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.schead b{display:block;font-family:var(--display);font-weight:500;font-size:15px}
.sclist{display:flex;flex-direction:column;gap:8px}
.sc{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.sc.new{border-color:color-mix(in srgb,var(--gold) 60%,transparent)}
.sc .top{display:flex;align-items:center;gap:10px;padding:11px 13px;width:100%;background:none;border:0;text-align:left;color:inherit}
.sc .sym{font-weight:700;font-size:15.5px}
.sc .sym small{font-weight:500;color:var(--muted);font-size:11px;margin-left:6px}
.sc .px{font-family:var(--mono);font-size:13px;color:var(--muted)}
.sc .grow{flex:1;min-width:0}
.sc .tfs{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.sc .why{padding:0 13px 10px;color:var(--muted);font-size:12.5px}
.sc .act{display:flex;gap:8px;padding:0 13px 12px;flex-wrap:wrap}
.sc .act .btn{width:auto;flex:1;min-width:120px;padding:10px;font-size:13.5px}
.sc .act a.btn{text-decoration:none}
.newdot{display:inline-block;background:var(--gold);color:var(--gold-ink);font-size:10px;font-weight:800;border-radius:5px;padding:1px 5px;margin-left:6px;vertical-align:2px}

.vs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.vs .tile b{font-size:15px}
.vs .st{display:block;margin-top:4px;font-size:12.5px;color:var(--muted)}
.vs .st.win{color:var(--up)}.vs .st.loss{color:var(--down)}

.chip.q{font-family:var(--mono)}
.qhi{color:var(--up)!important;border-color:color-mix(in srgb,var(--up) 45%,transparent)!important}
.qmid{color:var(--wait)!important;border-color:color-mix(in srgb,var(--wait) 45%,transparent)!important}
.qlo{color:var(--down)!important;border-color:color-mix(in srgb,var(--down) 45%,transparent)!important}
.btrow{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.btrow .sym{font-weight:700;min-width:64px}
.btrow .grow{flex:1;min-width:0;font-family:var(--mono);font-size:12.5px;color:var(--muted)}
.btrow .pf{font-family:var(--mono);font-weight:700;font-size:15px;min-width:56px;text-align:right}
.g-good{border-left:3px solid var(--up)}.g-bad{border-left:3px solid var(--down)}.g-weak{border-left:3px solid var(--line2)}
.chart{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:6px;position:relative}
.chart canvas{display:block;width:100%;height:260px}
.chart .cap{position:absolute;left:12px;top:8px;font-size:11.5px;color:var(--muted);font-family:var(--mono)}
.scen{border:1px dashed var(--line2);border-radius:12px;padding:10px 12px;margin-top:10px;font-size:13.5px;color:var(--muted)}
.alertrow{display:flex;gap:8px;margin-top:10px}
.alertrow input{flex:1;min-width:0;font-family:var(--mono)}
.report{white-space:pre-wrap;margin-top:12px;line-height:1.6}
.pos{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:13.5px}
.pos .grow{flex:1;min-width:0}

.code{white-space:pre-wrap}

.tv{flex-wrap:wrap}
.tv .when{margin-left:auto}

.g-strong{border-left:3px solid var(--up)}.g-plus{border-left:3px solid var(--wait)}.g-flat{border-left:3px solid var(--line2)}.g-few{border-left:3px dashed var(--line2)}
.sumtbl{width:100%;border-collapse:collapse;font-size:13px;margin:6px 0 12px}
.sumtbl th,.sumtbl td{padding:8px 6px;border-bottom:1px solid var(--line);text-align:right;font-family:var(--mono)}
.sumtbl th{color:var(--muted);font-weight:600;font-family:var(--body);font-size:11.5px;text-transform:uppercase;letter-spacing:.04em}
.sumtbl td:first-child,.sumtbl th:first-child{text-align:left}
.sumtbl tr.cur td{color:var(--gold)}
.sumwrap{overflow-x:auto;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:4px 10px}
.sc.excl{opacity:.55}

.wf{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:12px}
.wf h4{margin:0 0 8px;font-family:var(--display);font-weight:500;font-size:15px}
.wf .verdict{font-weight:700;margin-bottom:10px}
.wf .grid3 .tile{background:var(--panel2)}
.wf .tile b{font-family:var(--mono);font-size:15px}

select,input,textarea{max-width:100%;min-width:0;box-sizing:border-box}
.grid2>div{min-width:0}
html,body{overflow-x:hidden}
