:root{
  --bg:#050505; --bg-1:#0a0a0a; --bg-2:#0f0f0f; --bg-3:#141414; --bg-4:#1a1a1a; --bg-5:#202020;
  --line:#191919; --line-2:#232323; --line-3:#323232;
  --txt:#f4f4f4; --txt-2:#a8a8a8; --txt-3:#707070; --txt-4:#4a4a4a;
  --green:#00e676; --green-2:#00c765; --green-bg:rgba(0,230,118,.08); --green-line:rgba(0,230,118,.35);
  --red:#ff2c50;   --red-2:#e02244;   --red-bg:rgba(255,44,80,.08);   --red-line:rgba(255,44,80,.35);
  --amber:#ffb300; --amber-bg:rgba(255,179,0,.08); --amber-line:rgba(255,179,0,.32);
  --blue:#5aa9ff;  --blue-bg:rgba(90,169,255,.08); --blue-line:rgba(90,169,255,.32);
  --violet:#9d7aff; --violet-bg:rgba(157,122,255,.08); --violet-line:rgba(157,122,255,.32);
  --claude:#d97757; --claude-bg:rgba(217,119,87,.10); --claude-line:rgba(217,119,87,.35);
  --gpt:#10a37f; --gpt-bg:rgba(16,163,127,.10); --gpt-line:rgba(16,163,127,.35);
  --mono:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,'Courier New',monospace;
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --r-1:4px; --r-2:6px; --r-3:10px; --r-4:14px; --r-5:18px;
  --t-fast:120ms cubic-bezier(0.4,0,0.2,1);
  --t-base:200ms cubic-bezier(0.4,0,0.2,1);
  --t-slow:320ms cubic-bezier(0.4,0,0.2,1);
  --shadow-sm:0 1px 2px rgba(0,0,0,.4);
  --shadow-md:0 6px 22px rgba(0,0,0,.5);
  --shadow-lg:0 20px 60px rgba(0,0,0,.7), 0 4px 12px rgba(0,0,0,.4);
  --shadow-glow-g:0 0 0 1px rgba(0,230,118,.4), 0 8px 32px rgba(0,230,118,.12);
  --shadow-glow-r:0 0 0 1px rgba(255,44,80,.4), 0 8px 32px rgba(255,44,80,.12);
  --shadow-glow-v:0 0 0 1px rgba(157,122,255,.4), 0 8px 32px rgba(157,122,255,.12);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  background:var(--bg);color:var(--txt);font-family:var(--sans);font-size:13.5px;line-height:1.5;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(1200px 600px at 15% -10%, rgba(0,230,118,.035), transparent 60%),
    radial-gradient(1000px 500px at 100% 5%, rgba(90,169,255,.025), transparent 55%);
}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer;padding:0}
a{color:inherit;text-decoration:none}
::selection{background:rgba(0,230,118,.25)}
:focus{outline:none}
:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:var(--r-1)}
.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.mono{font-family:var(--mono)}
.hide{display:none!important}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:10px;border:2px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:var(--line-3)}
.app{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column}

.hdr{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:12px 24px;border-bottom:1px solid var(--line);
  position:sticky;top:0;background:rgba(5,5,5,.86);
  backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);
  z-index:40;min-height:60px;
}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.14em;font-size:12px;white-space:nowrap}
.brand .mark{width:8px;height:8px;border-radius:50%;background:var(--green);
  box-shadow:0 0 0 3px rgba(0,230,118,.15);animation:beat 3s ease-in-out infinite}
.brand .name{color:var(--txt)}
.brand .sub{color:var(--txt-3);font-weight:500}
@keyframes beat{0%,100%{box-shadow:0 0 0 3px rgba(0,230,118,.15)}50%{box-shadow:0 0 0 6px rgba(0,230,118,0)}}
.hdr-sp{flex:1}
.chip{
  display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 11px;
  background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r-2);
  font-family:var(--mono);font-size:11px;color:var(--txt-2);letter-spacing:.02em;
  white-space:nowrap;transition:border-color var(--t-fast);
}
.chip b{color:var(--txt);font-weight:600}
.chip.health{height:auto;padding:6px 12px;border-radius:999px;cursor:default}
.chip.health .dot{width:7px;height:7px;border-radius:50%;background:var(--green);flex-shrink:0}
.chip.health .dot.warn{background:var(--amber)}
.chip.health .dot.err{background:var(--red);animation:blink 1.4s infinite}
@keyframes blink{50%{opacity:.35}}
.chip.health .txt{color:var(--txt-2);font-size:11px}
.chip.health .txt b{color:var(--txt)}
.mode-toggle{display:inline-flex;background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r-2);padding:2px;height:30px;align-items:center}
.mode-toggle button{height:24px;padding:0 11px;border-radius:4px;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--txt-3);transition:all var(--t-fast);display:inline-flex;align-items:center;gap:5px}
.mode-toggle button:hover{color:var(--txt-2)}
.mode-toggle button.on{background:var(--bg-4);color:var(--txt)}
.mode-toggle button.on .ic{color:var(--green)}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  height:32px;padding:0 13px;border-radius:var(--r-2);
  background:var(--bg-2);border:1px solid var(--line-2);color:var(--txt);
  font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  transition:all var(--t-fast);user-select:none;white-space:nowrap;cursor:pointer;
}
.btn:hover{background:var(--bg-3);border-color:var(--line-3)}
.btn:active{transform:translateY(1px)}
.btn.pri{background:var(--green);border-color:var(--green);color:#050505}
.btn.pri:hover{background:#00cc66;border-color:#00cc66}
.btn.ghost{background:transparent;border-color:transparent;color:var(--txt-2)}
.btn.ghost:hover{background:var(--bg-2);color:var(--txt)}
.btn.danger{color:var(--red);border-color:rgba(255,44,80,.3)}
.btn.danger:hover{background:var(--red-bg);border-color:var(--red)}
.btn.icon{width:32px;padding:0;font-size:14px}
.btn.sm{height:26px;padding:0 9px;font-size:10px}
.btn.lg{height:38px;padding:0 18px;font-size:12px}

.tab-switch{display:inline-flex;background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r-2);padding:3px;height:36px;align-items:center;gap:2px}
.tab-switch button{height:30px;padding:0 14px;border-radius:6px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--txt-3);transition:all var(--t-fast);display:inline-flex;align-items:center;gap:7px;text-transform:uppercase}
.tab-switch button:hover{color:var(--txt-2)}
.tab-switch button.on{background:var(--bg-4);color:var(--txt);box-shadow:var(--shadow-sm)}
.tab-switch button.on .ic{color:var(--violet)}
.tab-switch button.pri{background:var(--violet);color:#050505;border-color:var(--violet)}
.tab-switch button.pri .ic{color:#050505}

.brief{
  margin:16px 24px 0;padding:16px 20px;
  background:linear-gradient(180deg, var(--bg-3), var(--bg-2));
  border:1px solid var(--line-2);border-radius:var(--r-4);
  display:flex;align-items:center;gap:16px;
  position:relative;overflow:hidden;box-shadow:var(--shadow-sm);
  transition:border-color var(--t-base),background var(--t-base);
  animation:brief-in 320ms cubic-bezier(0.4,0,0.2,1);
}
@keyframes brief-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.brief.opportunity{border-color:rgba(0,230,118,.25);background:linear-gradient(180deg,rgba(0,230,118,.05),var(--bg-2) 60%)}
.brief.opportunity.profit{border-color:rgba(255,44,80,.25);background:linear-gradient(180deg,rgba(255,44,80,.05),var(--bg-2) 60%)}
.brief.warn{border-color:rgba(255,44,80,.3)}
.brief .glyph{width:40px;height:40px;flex-shrink:0;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--bg-3);border:1px solid var(--line-2);font-size:18px;color:var(--txt-2);transition:all var(--t-base)}
.brief.calm .glyph{color:var(--green);background:var(--green-bg);border-color:var(--green-line)}
.brief.watch .glyph{color:var(--amber);background:var(--amber-bg);border-color:var(--amber-line)}
.brief.opportunity .glyph{color:var(--green);background:var(--green-bg);border-color:var(--green-line)}
.brief.opportunity.profit .glyph{color:var(--red);background:var(--red-bg);border-color:var(--red-line)}
.brief.warn .glyph{color:var(--red);background:var(--red-bg);border-color:var(--red-line)}
.brief .body{flex:1;min-width:0}
.brief .kicker{font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--txt-3);margin-bottom:4px}
.brief .ttl{font-size:15px;font-weight:650;letter-spacing:-.01em;line-height:1.3;color:var(--txt)}
.brief .tx{font-size:13px;color:var(--txt-2);line-height:1.55;margin-top:3px;max-width:760px}
.brief .tx b{color:var(--txt)}
.brief .acts{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
.brief .x{position:absolute;top:10px;right:10px;width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--txt-3);font-size:13px;transition:all var(--t-fast)}
.brief .x:hover{background:var(--bg-4);color:var(--txt)}
.brief.hidden{display:none}
@media (max-width:720px){
  .brief{margin:12px 12px 0;flex-direction:column;align-items:flex-start;padding:14px}
  .brief .acts{justify-content:flex-start}
}

.priority{margin:20px 24px 0;display:none}
.priority.on{display:block}
.priority-hdr{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.priority-hdr h2{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--txt-3);display:flex;align-items:center;gap:8px}
.priority-hdr .pulse{width:6px;height:6px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 0 rgba(255,179,0,.5);animation:pulse 2s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,179,0,.4)}100%{box-shadow:0 0 0 10px rgba(255,179,0,0)}}
.priority-hdr .count{font-family:var(--mono);font-size:10px;color:var(--txt-3);background:var(--bg-3);padding:2px 8px;border-radius:999px;border:1px solid var(--line-2)}
.priority-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px}
.priority-item{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r-3);padding:14px;display:flex;flex-direction:column;gap:12px;position:relative;overflow:hidden;transition:all var(--t-base);cursor:pointer;animation:card-in 260ms cubic-bezier(0.4,0,0.2,1)}
.priority-item:hover{background:var(--bg-3);border-color:var(--line-3);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.priority-item .top{display:flex;align-items:flex-start;gap:10px}
.priority-item .ico{width:32px;height:32px;border-radius:8px;background:var(--bg-3);flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--line-2)}
.priority-item .ico img{width:100%;height:100%;object-fit:cover}
.priority-item .ico .em{font-size:18px;line-height:1}
.priority-item .who{min-width:0;flex:1}
.priority-item .nm{font-weight:600;font-size:13.5px;line-height:1.25;letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.priority-item .state{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-top:3px;display:inline-flex;align-items:center;gap:5px}
.priority-item.buy .state{color:var(--green)}
.priority-item.profit .state{color:var(--red)}
.priority-item.setup .state{color:var(--blue)}
.priority-item.warn .state{color:var(--red)}
.priority-item .why{font-size:12.5px;color:var(--txt-2);line-height:1.55;padding:10px 12px;background:var(--bg);border-radius:var(--r-2);border-left:2px solid var(--line-3)}
.priority-item .why b{color:var(--txt);font-weight:600}
.priority-item .cta-row{display:flex;gap:6px;flex-wrap:wrap}
.priority-item .cta-row button{height:28px;padding:0 10px;border-radius:5px;background:var(--bg-3);border:1px solid var(--line-2);font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.06em;color:var(--txt-2);transition:all var(--t-fast);display:inline-flex;align-items:center;gap:5px}
.priority-item .cta-row button:hover{background:var(--bg-4);border-color:var(--line-3);color:var(--txt)}
.priority-item .cta-row button.pri{background:var(--green);border-color:var(--green);color:#050505}
.priority-item.profit .cta-row button.pri{background:var(--red);border-color:var(--red);color:#fff}
.priority-item .cta-row button.pri:hover{filter:brightness(1.08)}
@media (max-width:720px){.priority{margin:16px 12px 0}}

.sig-strip{margin:16px 24px 0;border:1px solid var(--line-2);border-radius:var(--r-3);background:var(--bg-2);overflow:hidden;transition:all var(--t-base)}
.sig-strip.hidden{display:none}
.sig-strip-in{display:flex;align-items:center;gap:12px;padding:10px 14px;overflow-x:auto;overflow-y:hidden}
.sig-strip-in::-webkit-scrollbar{height:0}
.sig-strip-lbl{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.16em;color:var(--txt-3);text-transform:uppercase;flex-shrink:0;display:flex;align-items:center;gap:6px}
.sig-strip-lbl .n{background:var(--red);color:#fff;padding:1px 6px;border-radius:999px;font-size:9px;min-width:16px;text-align:center}
.sig-list{display:flex;gap:8px;flex-shrink:0}
.sig-pill{display:flex;align-items:center;gap:8px;height:30px;padding:0 10px 0 12px;background:var(--bg);border:1px solid var(--line-2);border-radius:999px;font-family:var(--mono);font-size:11px;letter-spacing:.02em;white-space:nowrap;cursor:pointer;transition:all var(--t-fast);animation:pill-in 260ms cubic-bezier(0.4,0,0.2,1)}
@keyframes pill-in{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
.sig-pill:hover{background:var(--bg-3);border-color:var(--line-3)}
.sig-pill.buy{border-color:var(--green-line)}
.sig-pill.sell{border-color:var(--red-line)}
.sig-pill .ic{font-size:12px}
.sig-pill .lbl{color:var(--txt);font-weight:600}
.sig-pill .px{color:var(--txt-2)}
.sig-pill .ago{color:var(--txt-3)}
.sig-pill.buy .ic{color:var(--green)}
.sig-pill.sell .ic{color:var(--red)}
.sig-pill .x{width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--txt-3);font-size:12px;transition:all var(--t-fast)}
.sig-pill .x:hover{background:var(--line-2);color:var(--txt)}

.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;padding:20px 24px 4px}
.stat{background:linear-gradient(180deg,var(--bg-3),var(--bg-2));border:1px solid var(--line);border-radius:var(--r-3);padding:12px 14px;cursor:pointer;transition:all var(--t-fast);position:relative;overflow:hidden}
.stat:hover{background:var(--bg-3);border-color:var(--line-2);transform:translateY(-1px)}
.stat.on{border-color:var(--green);background:var(--green-bg)}
.stat.on.r{border-color:var(--red);background:var(--red-bg)}
.stat.on.a{border-color:var(--amber);background:var(--amber-bg)}
.stat.on.b{border-color:var(--blue);background:var(--blue-bg)}
.stat .l{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.14em;color:var(--txt-3);text-transform:uppercase;margin-bottom:5px;display:flex;align-items:center;gap:5px}
.stat .v{font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.05}
.stat .s{font-family:var(--mono);font-size:10px;color:var(--txt-3);letter-spacing:.02em;margin-top:3px}
.stat.g .v{color:var(--green)}
.stat.r .v{color:var(--red)}
.stat.a .v{color:var(--amber)}
.stat.b .v{color:var(--blue)}

.cmd-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:16px 24px 8px}
.seg{display:inline-flex;background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r-2);padding:2px}
.seg button{padding:6px 10px;border-radius:calc(var(--r-2) - 2px);font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--txt-2);transition:all var(--t-fast);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.seg button:hover{color:var(--txt)}
.seg button.on{background:var(--bg-4);color:var(--txt)}
.seg button .n{background:rgba(255,255,255,.06);padding:1px 5px;border-radius:999px;font-size:9px;min-width:14px;text-align:center}
.seg button.on .n{background:rgba(0,230,118,.15);color:var(--green)}
.smart-chips{display:inline-flex;gap:6px;flex-wrap:wrap}
.smart-chip{height:30px;padding:0 12px;border-radius:999px;background:var(--bg-2);border:1px solid var(--line-2);font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--txt-2);transition:all var(--t-fast);display:inline-flex;align-items:center;gap:6px}
.smart-chip:hover{background:var(--bg-3);border-color:var(--line-3);color:var(--txt)}
.smart-chip.on{background:var(--bg-4);border-color:var(--line-3);color:var(--txt)}
.smart-chip .n{background:rgba(255,255,255,.08);padding:1px 6px;border-radius:999px;font-size:9.5px}
.smart-chip.on .n{background:rgba(0,230,118,.18);color:var(--green)}
.smart-chip.g{border-color:var(--green-line);color:var(--green)}
.smart-chip.r{border-color:var(--red-line);color:var(--red)}
.smart-chip.a{border-color:var(--amber-line);color:var(--amber)}
.srch{position:relative;flex:1;min-width:180px;max-width:340px}
.srch input{width:100%;height:32px;background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r-2);padding:0 60px 0 30px;font-family:var(--mono);font-size:12px;color:var(--txt);letter-spacing:.02em;transition:border-color var(--t-fast)}
.srch input:focus{border-color:var(--green)}
.srch input::placeholder{color:var(--txt-4)}
.srch .ic{position:absolute;left:9px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--txt-3);font-size:12px}
.srch kbd{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:var(--bg-3);border:1px solid var(--line-3);border-radius:3px;padding:2px 5px;font-family:var(--mono);font-size:9px;color:var(--txt-3);letter-spacing:.04em;pointer-events:none}
.sp{flex:1}
@media (max-width:720px){.cmd-bar .sp{display:none}.srch{max-width:none;flex-basis:100%}}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;padding:12px 24px 80px}
.grid.compact{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;padding-top:8px}
@media (max-width:720px){.grid{grid-template-columns:1fr;padding:12px 12px 60px}}

.card{background:linear-gradient(180deg,var(--bg-2),var(--bg-2));border:1px solid var(--line);border-radius:var(--r-4);padding:16px;display:flex;flex-direction:column;gap:14px;position:relative;transition:all var(--t-base);overflow:hidden;animation:card-in 220ms cubic-bezier(0.4,0,0.2,1)}
@keyframes card-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.card:hover{border-color:var(--line-2);background:var(--bg-3);box-shadow:var(--shadow-sm)}
.card.focus{border-color:var(--green);box-shadow:var(--shadow-glow-g)}
.card.buy{border-color:var(--green-line);background:linear-gradient(180deg,rgba(0,230,118,.04),var(--bg-2) 40%)}
.card.sell{border-color:var(--red-line);background:linear-gradient(180deg,rgba(255,44,80,.04),var(--bg-2) 40%)}
.card.near-buy{border-color:rgba(0,230,118,.18)}
.card.near-sell{border-color:rgba(255,44,80,.18)}
.card.snoozed{opacity:.55;filter:saturate(.5)}
.card.snoozed::before{content:"💤 snoozed";position:absolute;top:8px;right:12px;font-family:var(--mono);font-size:9px;color:var(--txt-3);letter-spacing:.1em;text-transform:uppercase;pointer-events:none}
.card.fired{animation:card-fired 1.4s cubic-bezier(0.4,0,0.2,1)}
@keyframes card-fired{0%{box-shadow:0 0 0 0 rgba(0,230,118,.5)}100%{box-shadow:0 0 0 24px rgba(0,230,118,0)}}
.card.fired.sell{animation-name:card-fired-sell}
@keyframes card-fired-sell{0%{box-shadow:0 0 0 0 rgba(255,44,80,.5)}100%{box-shadow:0 0 0 24px rgba(255,44,80,0)}}

.ch{display:flex;align-items:flex-start;gap:10px;min-width:0}
.ch .ico{width:32px;height:32px;border-radius:9px;background:var(--bg-3);flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--line-2)}
.ch .ico img{width:100%;height:100%;object-fit:cover}
.ch .ico .em{font-size:18px;line-height:1}
.ch .meta{min-width:0;flex:1}
.ch .nm{font-weight:600;font-size:14px;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;letter-spacing:-.005em}
.ch .src{font-family:var(--mono);font-size:10px;color:var(--txt-3);letter-spacing:.06em;margin-top:2px;display:flex;align-items:center;gap:6px;text-transform:uppercase}
.ch .health-dot{width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0;position:relative;cursor:help}
.ch .health-dot.warn{background:var(--amber)}
.ch .health-dot.err{background:var(--red);animation:blink 1.4s infinite}
.ch .badges{display:flex;gap:4px;flex-wrap:wrap;align-items:center;margin-top:7px}
.ch .badges:empty{display:none}
.bdg{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 7px;border-radius:3px;border:1px solid var(--line-2);color:var(--txt-3);white-space:nowrap;line-height:1.2}
.bdg.g{color:var(--green);border-color:var(--green-line);background:var(--green-bg)}
.bdg.r{color:var(--red);border-color:var(--red-line);background:var(--red-bg)}
.bdg.a{color:var(--amber);border-color:var(--amber-line);background:var(--amber-bg)}
.bdg.b{color:var(--blue);border-color:var(--blue-line);background:var(--blue-bg)}
.ch-actions{display:flex;gap:2px;align-items:flex-start;flex-shrink:0;opacity:.4;transition:opacity var(--t-fast)}
.card:hover .ch-actions,.card.focus .ch-actions{opacity:1}
.ch-actions button{width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--txt-3);font-size:13px;transition:all var(--t-fast)}
.ch-actions button:hover{background:var(--bg-4);color:var(--txt)}
.ch-actions button.on{color:var(--amber)}
.ch-actions button.arm{color:var(--txt-3)}
.ch-actions button.arm.on{color:var(--green)}

.hero{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.hero .px{font-size:30px;font-weight:700;letter-spacing:-.03em;line-height:1;transition:color var(--t-slow);font-variant-numeric:tabular-nums}
.hero .px.up{color:var(--green)}
.hero .px.down{color:var(--red)}
.hero .chg{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.02em;padding:2px 6px;border-radius:3px}
.hero .chg.up{color:var(--green);background:var(--green-bg)}
.hero .chg.down{color:var(--red);background:var(--red-bg)}
.hero .chg.flat{color:var(--txt-3);background:var(--bg-3)}
.hero .php{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--txt-3);letter-spacing:.02em}

.mini{position:relative;height:72px;border-radius:var(--r-3);overflow:hidden;background:linear-gradient(180deg,var(--bg-1),var(--bg-2));border:1px solid var(--line);cursor:crosshair;transition:border-color var(--t-fast)}
.mini:hover{border-color:var(--line-3)}
.mini .peek{position:absolute;top:6px;right:8px;font-family:var(--mono);font-size:9.5px;color:var(--txt-2);letter-spacing:.04em;background:rgba(5,5,5,.9);padding:2px 7px;border-radius:3px;pointer-events:none;opacity:0;transition:opacity var(--t-fast);border:1px solid var(--line-2)}
.mini:hover .peek{opacity:1}
.mini .hint{position:absolute;bottom:6px;right:8px;font-family:var(--mono);font-size:9px;color:var(--txt-4);letter-spacing:.1em;text-transform:uppercase;pointer-events:none}
.grid.compact .mini{display:none}

.targets{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;border:1px solid var(--line);border-radius:var(--r-3);overflow:hidden;background:var(--bg-1)}
.tg{padding:10px 12px;border-right:1px solid var(--line);min-width:0;position:relative}
.tg:last-child{border-right:0}
.tg .k{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.14em;color:var(--txt-3);text-transform:uppercase;margin-bottom:4px;display:flex;align-items:center;gap:4px}
.tg .k .arr{font-size:8px}
.tg.buy .k{color:var(--green)}
.tg.sell .k{color:var(--red)}
.tg .v{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.tg.now .v{font-size:14px;color:var(--txt)}
.tg .d{font-family:var(--mono);font-size:9.5px;color:var(--txt-3);margin-top:2px;letter-spacing:.02em}
.tg.buy.on{background:var(--green-bg)}
.tg.buy.on .d{color:var(--green);font-weight:600}
.tg.sell.on{background:var(--red-bg)}
.tg.sell.on .d{color:var(--red);font-weight:600}
.tg.buy.on .k,.tg.sell.on .k{font-weight:800}

.gauge{position:relative;height:24px;margin-top:-2px}
.gauge .track{position:absolute;left:0;right:0;top:9px;height:6px;background:var(--bg-4);border-radius:3px;overflow:hidden}
.gauge .zones{position:absolute;inset:0}
.gauge .mark{position:absolute;top:3px;bottom:5px;width:3px;border-radius:2px;background:#fff;transform:translateX(-50%);transition:left 600ms cubic-bezier(0.4,0,0.2,1);box-shadow:0 0 0 2px var(--bg-2), 0 0 10px rgba(255,255,255,.3)}
.gauge .mark.buy{background:var(--green);box-shadow:0 0 0 2px var(--bg-2), 0 0 10px var(--green)}
.gauge .mark.sell{background:var(--red);box-shadow:0 0 0 2px var(--bg-2), 0 0 10px var(--red)}

.card-position{display:flex;flex-direction:column;gap:0}
.position{
  display:flex;flex-direction:column;gap:10px;padding:12px 14px;
  background:linear-gradient(135deg,rgba(0,230,118,.05),var(--bg-2) 60%);
  border:1px solid var(--green-line);border-radius:var(--r-3);
  position:relative;overflow:hidden;
}
.position.loss{background:linear-gradient(135deg,rgba(255,44,80,.05),var(--bg-2) 60%);border-color:var(--red-line)}
.position.flat{background:linear-gradient(135deg,var(--bg-3),var(--bg-2) 60%);border-color:var(--line-2)}
.position .p-hdr{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--txt-3)}
.position .p-hdr .p-hdr-l{display:flex;align-items:center;gap:6px;color:var(--txt-2)}
.position .p-hdr .p-hdr-l .dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px var(--green-bg)}
.position.loss .p-hdr .p-hdr-l .dot{background:var(--red);box-shadow:0 0 0 3px var(--red-bg)}
.position.flat .p-hdr .p-hdr-l .dot{background:var(--txt-3);box-shadow:none}
.position .p-hdr b{color:var(--txt-2);font-weight:600;letter-spacing:.04em;text-transform:none;font-size:10px}
.position .p-pnl{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.position .p-pnl .amt{font-size:26px;font-weight:700;letter-spacing:-.025em;font-variant-numeric:tabular-nums;line-height:1;color:var(--green)}
.position.loss .p-pnl .amt{color:var(--red)}
.position.flat .p-pnl .amt{color:var(--txt-2)}
.position .p-pnl .pct{font-family:var(--mono);font-size:12px;font-weight:700;padding:3px 8px;border-radius:4px;background:var(--green-bg);color:var(--green);letter-spacing:.02em}
.position.loss .p-pnl .pct{background:var(--red-bg);color:var(--red)}
.position.flat .p-pnl .pct{background:var(--bg-3);color:var(--txt-3)}
.position .p-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--txt-3)}
.position .p-meta span{display:flex;flex-direction:column;gap:2px;min-width:0}
.position .p-meta b{color:var(--txt);font-size:11.5px;font-weight:600;letter-spacing:-.005em;text-transform:none;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.position .p-acts{display:flex;gap:6px;margin-top:2px}
.position .p-acts button{flex:1;height:28px;padding:0 10px;border-radius:5px;background:var(--bg-4);border:1px solid var(--line-2);font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--txt-2);transition:all var(--t-fast)}
.position .p-acts button:hover{background:var(--bg-5);border-color:var(--line-3);color:var(--txt)}
.position .p-acts button.pri{background:var(--green);border-color:var(--green);color:#050505}
.position.loss .p-acts button.pri{background:var(--red);border-color:var(--red);color:#fff}
.position .p-acts button.pri:hover{filter:brightness(1.08)}
.position .p-note{font-family:var(--mono);font-size:10.5px;color:var(--txt-3);font-style:italic;padding:6px 8px;background:var(--bg-3);border-radius:5px;border-left:2px solid var(--line-3);letter-spacing:.01em}

.log-buy{
  display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:34px;
  background:transparent;border:1px dashed var(--line-3);border-radius:var(--r-3);
  font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--txt-3);transition:all var(--t-fast);
}
.log-buy:hover{background:var(--bg-3);border-color:var(--green);border-style:solid;color:var(--green)}
.log-buy .lb-ic{width:16px;height:16px;border-radius:50%;background:var(--bg-3);display:inline-flex;align-items:center;justify-content:center;font-size:12px;line-height:1;font-weight:400}
.log-buy:hover .lb-ic{background:var(--green-bg);color:var(--green)}

.cf{display:flex;align-items:center;gap:8px;padding-top:12px;border-top:1px solid var(--line);flex-wrap:wrap;margin-top:auto}
.cf .ledger{font-family:var(--mono);font-size:10px;color:var(--txt-3);letter-spacing:.02em;display:flex;align-items:center;gap:6px;min-width:0;flex:1}
.cf .ledger .ico{color:var(--txt-4);font-size:11px}
.cf .ledger b{color:var(--txt-2);font-weight:600}
.cf .acts{display:flex;gap:4px}
.cf .acts button{height:28px;padding:0 10px;border-radius:6px;background:var(--bg-3);border:1px solid var(--line-2);font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--txt-2);transition:all var(--t-fast);display:inline-flex;align-items:center;gap:5px}
.cf .acts button:hover{background:var(--bg-4);border-color:var(--line-3);color:var(--txt)}
.cf .acts button.icon{width:28px;padding:0;justify-content:center;font-size:12px}

.term{border-bottom:1px dashed var(--txt-4);cursor:help;transition:border-color var(--t-fast),color var(--t-fast)}
.term:hover{border-bottom-color:var(--txt-2);color:var(--txt)}

.cmenu{position:absolute;z-index:30;background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r-2);padding:4px;min-width:210px;box-shadow:var(--shadow-lg);animation:menu-in 140ms cubic-bezier(0.4,0,0.2,1)}
@keyframes menu-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.cmenu button{display:flex;align-items:center;gap:9px;width:100%;padding:7px 10px;border-radius:4px;font-size:12px;color:var(--txt);text-align:left;transition:background var(--t-fast)}
.cmenu button:hover{background:var(--bg-4)}
.cmenu button .ic{width:14px;text-align:center;color:var(--txt-3);font-size:12px}
.cmenu button:hover .ic{color:var(--txt)}
.cmenu button.danger{color:var(--red)}
.cmenu button.danger .ic{color:var(--red)}
.cmenu .sep{height:1px;background:var(--line-2);margin:4px 0}
.cmenu .hd{padding:6px 10px 3px;font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--txt-4);text-transform:uppercase}
.cmenu .kbd{margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--txt-4);background:var(--bg-4);padding:1px 5px;border-radius:3px}

.empty{display:none;text-align:center;padding:60px 24px;max-width:580px;margin:0 auto}
.empty.on{display:block}
.empty .ico{width:80px;height:80px;margin:0 auto 22px;border-radius:50%;background:linear-gradient(180deg,var(--bg-3),var(--bg-2));border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;font-size:30px;color:var(--green);box-shadow:var(--shadow-md)}
.empty h2{font-size:20px;font-weight:650;letter-spacing:-.02em;margin-bottom:8px}
.empty p{color:var(--txt-2);margin-bottom:28px;line-height:1.65;font-size:13.5px}
.empty .ctas{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:36px}
.empty .tips{text-align:left;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-3);padding:20px}
.empty .tips h3{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.14em;color:var(--txt-3);text-transform:uppercase;margin-bottom:12px}
.empty .tips ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.empty .tips li{display:flex;gap:10px;font-size:12.5px;color:var(--txt-2);line-height:1.55}
.empty .tips li b{color:var(--txt);font-weight:600}
.empty .tips .n{width:18px;height:18px;flex-shrink:0;border-radius:50%;background:var(--green-bg);color:var(--green);font-family:var(--mono);font-size:9.5px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:1px}

.ov{position:fixed;inset:0;background:rgba(0,0,0,.75);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:none;align-items:flex-start;justify-content:center;z-index:100;padding:40px 16px;overflow-y:auto}
.ov.on{display:flex}
.ov.center{align-items:center;padding:20px}
.modal{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r-5);width:100%;max-width:640px;padding:26px;box-shadow:var(--shadow-lg);animation:modal-in 200ms cubic-bezier(0.4,0,0.2,1)}
@keyframes modal-in{from{opacity:0;transform:translateY(-8px) scale(.99)}to{opacity:1;transform:none}}
.modal h2{font-size:17px;font-weight:650;letter-spacing:-.015em;margin-bottom:4px}
.modal .sub{color:var(--txt-2);font-size:13px;margin-bottom:22px}
.fld{margin-bottom:16px}
.fld label{display:block;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.12em;color:var(--txt-3);text-transform:uppercase;margin-bottom:6px}
.fld input[type=text],.fld input[type=number],.fld input[type=url],.fld input[type=datetime-local],.fld select,.fld textarea{width:100%;background:var(--bg);border:1px solid var(--line-2);border-radius:var(--r-2);color:var(--txt);font-family:var(--mono);font-size:13px;padding:10px 12px;letter-spacing:.01em;transition:border-color var(--t-fast)}
.fld textarea{resize:vertical;min-height:70px;line-height:1.6}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--green)}
.fld input::placeholder,.fld textarea::placeholder{color:var(--txt-4)}
.fld .hint{font-size:11px;color:var(--txt-3);margin-top:6px;line-height:1.55}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.row.three{grid-template-columns:1fr 1fr 1fr}
@media (max-width:560px){.row,.row.three{grid-template-columns:1fr}}

.chk{display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid var(--line-2);border-radius:var(--r-2);cursor:pointer;user-select:none;transition:all var(--t-fast);font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--txt-2)}
.chk:hover{border-color:var(--line-3)}
.chk.on{border-color:var(--green);color:var(--green);background:var(--green-bg)}
.chk input{display:none}
.chk .tick{width:14px;height:14px;border-radius:3px;border:1.5px solid var(--line-3);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--t-fast)}
.chk.on .tick{background:var(--green);border-color:var(--green)}
.chk .tick svg{width:9px;height:9px;opacity:0;transition:opacity var(--t-fast)}
.chk.on .tick svg{opacity:1}

.m-act{display:flex;gap:10px;justify-content:flex-end;margin-top:26px;padding-top:20px;border-top:1px solid var(--line);flex-wrap:wrap}
.m-act .left{margin-right:auto;display:flex;gap:8px}
.tc{font-family:var(--mono);font-size:10px;letter-spacing:.02em;margin-top:10px;padding:9px 12px;border-radius:var(--r-2);display:none}
.tc.on{display:block}
.tc.ok{background:var(--green-bg);color:var(--green);border-left:3px solid var(--green)}
.tc.err{background:var(--red-bg);color:var(--red);border-left:3px solid var(--red)}

.pos-hdr{display:flex;gap:14px;align-items:center;margin-bottom:22px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.pos-hdr-ico{width:46px;height:46px;border-radius:12px;background:var(--bg-3);border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}
.pos-hdr-ico img{width:100%;height:100%;object-fit:cover}
.pos-hdr-ico .em{font-size:24px;line-height:1}
.pos-hdr-meta h2{font-size:17px;font-weight:650;letter-spacing:-.015em;margin-bottom:3px}
.pos-hdr-meta .sub{font-size:12.5px;color:var(--txt-3);margin:0;letter-spacing:0}

.pos-amount{margin-bottom:20px}
.pos-amount-input{display:flex;align-items:center;background:var(--bg);border:1px solid var(--line-2);border-radius:var(--r-3);padding:4px 6px 4px 18px;transition:border-color var(--t-fast)}
.pos-amount-input:focus-within{border-color:var(--green)}
.pos-amount-prefix{font-family:var(--mono);font-size:26px;font-weight:500;color:var(--txt-3);margin-right:4px;line-height:1}
.pos-amount-input input{flex:1;background:transparent;border:0;font-family:var(--mono);font-size:28px;font-weight:700;letter-spacing:-.025em;color:var(--txt);font-variant-numeric:tabular-nums;padding:10px 0;outline:none;min-width:0;line-height:1}
.pos-amount-input input::placeholder{color:var(--txt-4);font-weight:400}
.pos-quick{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.pos-quick button{height:28px;padding:0 12px;border-radius:999px;background:var(--bg-3);border:1px solid var(--line-2);font-family:var(--mono);font-size:10.5px;font-weight:600;color:var(--txt-2);transition:all var(--t-fast);letter-spacing:.02em}
.pos-quick button:hover{background:var(--bg-4);border-color:var(--green);color:var(--green)}

.pos-preview{margin-top:18px;padding:14px 16px;background:linear-gradient(135deg,var(--bg-3),var(--bg-2));border:1px solid var(--line-2);border-radius:var(--r-3);display:flex;flex-direction:column;gap:10px}
.pos-preview-row{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:11px}
.pos-preview-row span{color:var(--txt-3);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:600}
.pos-preview-row b{color:var(--txt);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.005em}
.pos-preview-row.g b{color:var(--green)}
.pos-preview-row.r b{color:var(--red)}

.chart-modal{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r-5);width:100%;max-width:1440px;height:min(740px,94vh);display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg);animation:modal-in 200ms cubic-bezier(0.4,0,0.2,1)}
.chart-hdr{display:flex;align-items:center;gap:16px;padding:16px 22px;border-bottom:1px solid var(--line);flex-wrap:wrap;min-height:68px}
.chart-hdr .asset{display:flex;align-items:center;gap:12px;flex:0 1 auto;min-width:0}
.chart-hdr .ico{width:36px;height:36px;border-radius:9px;background:var(--bg-3);border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}
.chart-hdr .ico img{width:100%;height:100%}
.chart-hdr .ico .em{font-size:20px;line-height:1}
.chart-hdr .nm{font-weight:600;font-size:15px;letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chart-hdr .src{font-family:var(--mono);font-size:10px;color:var(--txt-3);letter-spacing:.06em;text-transform:uppercase;margin-top:2px}
.chart-hdr .stats{display:flex;flex-direction:column;gap:2px}
.chart-hdr .big-px{font-size:22px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.chart-hdr .big-px-php{font-family:var(--mono);font-size:11.5px;color:var(--txt-3);letter-spacing:.02em;margin-top:1px;font-variant-numeric:tabular-nums;display:none}
.chart-hdr .big-px-php.on{display:block}
.chart-hdr .big-px-php b{color:var(--txt-2);font-weight:600}
.chart-hdr .ohlc{display:flex;gap:10px;font-family:var(--mono);font-size:10px;color:var(--txt-3);flex-wrap:wrap}
.chart-hdr .ohlc b{color:var(--txt);font-weight:600}
.chart-hdr .tf-tabs{display:flex;gap:3px;background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r-2);padding:2px}
.chart-hdr .tf-tabs button{padding:5px 10px;border-radius:calc(var(--r-2) - 2px);font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.04em;color:var(--txt-2);transition:all var(--t-fast)}
.chart-hdr .tf-tabs button:hover{color:var(--txt)}
.chart-hdr .tf-tabs button.on{background:var(--bg-4);color:var(--txt)}
.chart-body{flex:1;min-height:0;position:relative}
.chart-canvas{width:100%;height:100%}
.chart-ftr{padding:12px 22px;border-top:1px solid var(--line);display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-family:var(--mono);font-size:10px;color:var(--txt-3);letter-spacing:.04em}
.chart-ftr .src{flex:1}
.pill{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.02em;padding:3px 8px;border-radius:3px;border:1px solid var(--line-2)}
.pill.buy{color:var(--green);border-color:var(--green-line);background:var(--green-bg)}
.pill.sell{color:var(--red);border-color:var(--red-line);background:var(--red-bg)}

.drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,100vw);background:var(--bg-2);border-left:1px solid var(--line-2);z-index:120;transform:translateX(100%);transition:transform var(--t-slow);display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}
.drawer.on{transform:none}
.drawer-hdr{display:flex;align-items:center;gap:12px;padding:20px 22px;border-bottom:1px solid var(--line)}
.drawer-hdr h3{font-size:14px;font-weight:650;letter-spacing:-.005em;flex:1}
.drawer-body{flex:1;overflow-y:auto;padding:6px 0}
.set{padding:18px 22px;border-bottom:1px solid var(--line)}
.set:last-child{border-bottom:0}
.set .lbl{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.14em;color:var(--txt-3);text-transform:uppercase;margin-bottom:10px}
.set .desc{font-size:12px;color:var(--txt-3);margin-top:8px;line-height:1.55}
.set .opts{display:flex;gap:6px;flex-wrap:wrap}
.set .opts button{padding:8px 12px;background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r-2);font-family:var(--mono);font-size:11px;color:var(--txt-2);transition:all var(--t-fast)}
.set .opts button:hover{border-color:var(--line-3);color:var(--txt)}
.set .opts button.on{border-color:var(--green);color:var(--green);background:var(--green-bg)}

.glossary-item{padding:16px 22px;border-bottom:1px solid var(--line)}
.glossary-item:last-child{border-bottom:0}
.glossary-item .term-name{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--green);margin-bottom:6px}
.glossary-item .def{font-size:13px;color:var(--txt-2);line-height:1.65}
.glossary-item .def b{color:var(--txt);font-weight:600}
.glossary-item .ex{font-size:12px;color:var(--txt-3);line-height:1.6;margin-top:8px;padding:9px 12px;background:var(--bg-3);border-radius:var(--r-2);border-left:2px solid var(--line-3)}

.palette{position:fixed;inset:0;background:rgba(0,0,0,.65);backdrop-filter:blur(8px);display:none;align-items:flex-start;justify-content:center;z-index:140;padding:80px 16px 20px}
.palette.on{display:flex}
.palette .box{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r-4);width:100%;max-width:580px;overflow:hidden;box-shadow:var(--shadow-lg);animation:modal-in 160ms cubic-bezier(0.4,0,0.2,1)}
.palette .srch2{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}
.palette .srch2 .ic{color:var(--txt-3);font-size:16px}
.palette .srch2 input{flex:1;background:transparent;border:0;font-size:15px;color:var(--txt)}
.palette .srch2 input::placeholder{color:var(--txt-4)}
.palette .srch2 kbd{font-family:var(--mono);font-size:10px;color:var(--txt-3);background:var(--bg-3);border:1px solid var(--line-3);border-radius:3px;padding:2px 6px}
.palette .list{max-height:380px;overflow-y:auto;padding:6px 0}
.palette .grp{padding:10px 18px 4px;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.14em;color:var(--txt-4);text-transform:uppercase}
.palette .it{display:flex;align-items:center;gap:12px;padding:10px 18px;cursor:pointer;transition:background var(--t-fast);color:var(--txt)}
.palette .it:hover,.palette .it.sel{background:var(--bg-3)}
.palette .it .ic{width:16px;text-align:center;color:var(--txt-3);font-size:13px;flex-shrink:0}
.palette .it.sel .ic{color:var(--green)}
.palette .it .t{flex:1;font-size:13px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.palette .it .sub{color:var(--txt-3);font-size:11px;margin-left:6px}
.palette .it .kbd{font-family:var(--mono);font-size:10px;color:var(--txt-4);background:var(--bg-3);border:1px solid var(--line-2);border-radius:3px;padding:1px 5px}
.palette .empty2{padding:40px 20px;text-align:center;color:var(--txt-3);font-size:12px}

.toasts{position:fixed;bottom:22px;right:22px;z-index:200;display:flex;flex-direction:column-reverse;gap:10px;max-width:400px;pointer-events:none}
.toast{background:linear-gradient(180deg,var(--bg-3),var(--bg-2));border:1px solid var(--line-2);border-left:3px solid var(--blue);border-radius:var(--r-3);padding:14px 16px;box-shadow:var(--shadow-lg);pointer-events:auto;transform:translateX(120%);opacity:0;transition:all var(--t-base);position:relative;overflow:hidden}
.toast.on{transform:none;opacity:1}
.toast.buy{border-left-color:var(--green)}
.toast.sell{border-left-color:var(--red)}
.toast.err{border-left-color:var(--red)}
.toast.ok{border-left-color:var(--green)}
.toast.info{border-left-color:var(--blue)}
.toast .ttl{font-weight:600;font-size:13.5px;letter-spacing:-.005em;margin-bottom:3px;display:flex;align-items:center;gap:8px;padding-right:20px}
.toast .bd{font-size:12.5px;color:var(--txt-2);line-height:1.55;padding-right:20px}
.toast .acts{display:flex;gap:6px;margin-top:10px}
.toast .acts button{padding:6px 11px;border-radius:5px;background:var(--bg-3);border:1px solid var(--line-2);font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.06em;color:var(--txt);transition:all var(--t-fast)}
.toast .acts button:hover{background:var(--bg-4);border-color:var(--line-3)}
.toast .acts button.pri{background:var(--green);border-color:var(--green);color:#050505}
.toast.sell .acts button.pri{background:var(--red);border-color:var(--red);color:#fff}
.toast .x{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:5px;display:flex;align-items:center;justify-content:center;color:var(--txt-3);font-size:14px;transition:all var(--t-fast)}
.toast .x:hover{background:var(--bg-4);color:var(--txt)}
.toast .prog{position:absolute;bottom:0;left:0;height:2px;background:var(--blue);width:100%;transform-origin:left;animation:toast-prog var(--toast-dur,6s) linear}
.toast.buy .prog{background:var(--green)}
.toast.sell .prog{background:var(--red)}
@keyframes toast-prog{from{transform:scaleX(1)}to{transform:scaleX(0)}}

.kbd-help{padding:0 0 12px}
.kbd-help .row2{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line);font-size:12.5px;align-items:center}
.kbd-help .row2:last-child{border-bottom:0}
.kbd-help .row2 .kk{font-family:var(--mono);font-size:11px;color:var(--txt-2);background:var(--bg-3);border:1px solid var(--line-2);padding:3px 8px;border-radius:4px;min-width:24px;text-align:center;display:inline-block}

.forecast-view{padding:0 0 60px;position:relative;z-index:1}

.fc-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;padding:20px 24px 4px}
.fc-stat{background:linear-gradient(180deg,var(--bg-3),var(--bg-2));border:1px solid var(--line);border-radius:var(--r-3);padding:14px 16px;position:relative;overflow:hidden}
.fc-stat .l{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.14em;color:var(--txt-3);text-transform:uppercase;margin-bottom:6px;display:flex;align-items:center;gap:6px}
.fc-stat .v{font-size:24px;font-weight:700;letter-spacing:-.02em;line-height:1.05;font-variant-numeric:tabular-nums;color:var(--txt)}
.fc-stat .s{font-family:var(--mono);font-size:10px;color:var(--txt-3);letter-spacing:.02em;margin-top:5px}
.fc-stat.g .v{color:var(--green)}
.fc-stat.r .v{color:var(--red)}
.fc-stat.a .v{color:var(--amber)}
.fc-stat.b .v{color:var(--blue)}
.fc-stat.v .v{color:var(--violet)}
.fc-stat .spark{position:absolute;right:12px;top:12px;bottom:12px;width:40px;display:flex;align-items:flex-end;gap:2px;opacity:.4}
.fc-stat .spark span{flex:1;background:var(--violet);border-radius:1px}

.fc-section{padding:20px 24px 4px}
.fc-section-hdr{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.fc-section-hdr h2{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--txt-3);display:flex;align-items:center;gap:8px}
.fc-section-hdr .count{font-family:var(--mono);font-size:10px;color:var(--txt-3);background:var(--bg-3);padding:2px 8px;border-radius:999px;border:1px solid var(--line-2)}
.fc-section-hdr .sp{flex:1}
.fc-empty{padding:24px;text-align:center;background:var(--bg-2);border:1px dashed var(--line-2);border-radius:var(--r-3);color:var(--txt-3);font-family:var(--mono);font-size:11px}

.cycle-card{
  background:linear-gradient(180deg,var(--bg-3),var(--bg-2));
  border:1px solid var(--violet-line);border-radius:var(--r-4);
  padding:18px 20px;display:grid;grid-template-columns:auto 1fr auto;gap:20px;
  align-items:center;cursor:pointer;transition:all var(--t-base);
  box-shadow:var(--shadow-glow-v);margin-bottom:12px;
}
.cycle-card:hover{transform:translateY(-1px);box-shadow:0 0 0 1px rgba(157,122,255,.5), 0 12px 40px rgba(157,122,255,.15)}
.cycle-card.completed{border-color:var(--line-2);box-shadow:var(--shadow-sm)}
.cycle-card.completed:hover{box-shadow:var(--shadow-md)}
.cycle-ico{width:48px;height:48px;border-radius:12px;background:var(--bg-1);border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0;overflow:hidden}
.cycle-ico img{width:100%;height:100%;object-fit:cover}
.cycle-meta{min-width:0}
.cycle-meta .nm{font-weight:600;font-size:15px;letter-spacing:-.005em}
.cycle-meta .info{font-family:var(--mono);font-size:10.5px;color:var(--txt-3);letter-spacing:.02em;margin-top:3px}
.cycle-meta .info b{color:var(--txt-2);font-weight:600}
.cycle-progress{display:flex;gap:4px;margin-top:10px}
.cycle-dot{flex:1;height:6px;border-radius:3px;background:var(--bg-4);position:relative;overflow:hidden}
.cycle-dot.done{background:var(--green)}
.cycle-dot.done.miss{background:var(--red)}
.cycle-dot.active{background:var(--amber);animation:pulse-dot 1.5s ease-in-out infinite}
@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:.5}}
.cycle-numbers{display:flex;gap:24px;align-items:flex-start}
.cycle-num .l{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.12em;color:var(--txt-3);text-transform:uppercase;margin-bottom:4px}
.cycle-num .v{font-family:var(--mono);font-size:15px;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--txt)}
.cycle-num.g .v{color:var(--green)}
.cycle-num.r .v{color:var(--red)}
.cycle-num.a .v{color:var(--amber)}
.cycle-num .s{font-family:var(--mono);font-size:9.5px;color:var(--txt-4);margin-top:2px}

.history-table{width:100%;border-collapse:collapse;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-3);overflow:hidden}
.history-table th{text-align:left;padding:11px 14px;font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--txt-3);background:var(--bg-1);border-bottom:1px solid var(--line)}
.history-table td{padding:13px 14px;border-bottom:1px solid var(--line);font-size:13px;color:var(--txt)}
.history-table tr:last-child td{border-bottom:0}
.history-table tr.row{cursor:pointer;transition:background var(--t-fast)}
.history-table tr.row:hover{background:var(--bg-3)}
.history-table td.num{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12px;color:var(--txt)}
.history-table td.pos{color:var(--green);font-weight:600}
.history-table td.neg{color:var(--red);font-weight:600}
.history-table td.muted{color:var(--txt-3)}
.inst-cell{display:flex;align-items:center;gap:10px}
.inst-mini-ico{width:24px;height:24px;border-radius:6px;background:var(--bg-3);border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;overflow:hidden}
.inst-mini-ico img{width:100%;height:100%}
.hit-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:999px;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.02em}
.hit-pill.good{background:var(--green-bg);color:var(--green);border:1px solid var(--green-line)}
.hit-pill.mid{background:var(--amber-bg);color:var(--amber);border:1px solid var(--amber-line)}
.hit-pill.bad{background:var(--red-bg);color:var(--red);border:1px solid var(--red-line)}
.ai-ranking{display:flex;gap:6px}
.ai-dot{width:18px;height:18px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:9px;font-weight:700;color:#050505}
.ai-dot.d{background:var(--blue)}
.ai-dot.c{background:var(--claude)}
.ai-dot.g{background:var(--gpt)}

.fc-modal{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r-5);width:100%;max-width:1280px;overflow:hidden;box-shadow:var(--shadow-lg);animation:modal-in 200ms cubic-bezier(0.4,0,0.2,1)}
.fc-modal.narrow{max-width:640px}
.fc-modal .fc-mhdr{padding:22px 26px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center}
.fc-modal .fc-mbody{padding:22px 26px}
.fc-modal .fc-mftr{padding:16px 26px;border-top:1px solid var(--line);background:var(--bg-1);display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.fc-modal .fc-mftr .sp{flex:1}
.fc-kicker{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.16em;color:var(--violet);text-transform:uppercase;margin-bottom:5px}
.fc-modal h2{font-size:19px;font-weight:650;letter-spacing:-.015em;margin-bottom:3px;color:var(--txt)}
.fc-modal .sub{color:var(--txt-2);font-size:12.5px;font-family:var(--mono);letter-spacing:.01em}

.ai-responses{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}
.ai-card{background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r-3);padding:14px;position:relative;overflow:hidden}
.ai-card .ai-hdr{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.ai-badge{width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10px;font-weight:700;color:#050505;flex-shrink:0}
.ai-badge.d{background:var(--blue)}
.ai-badge.c{background:var(--claude)}
.ai-badge.g{background:var(--gpt)}
.ai-card .ai-name{font-size:12.5px;font-weight:600;letter-spacing:-.005em;flex:1;color:var(--txt)}
.ai-card .ai-name small{color:var(--txt-3);font-weight:400;font-size:11px;margin-left:4px}
.ai-card .ai-weight{font-family:var(--mono);font-size:10px;color:var(--txt-3);background:var(--bg-1);padding:2px 6px;border-radius:4px;border:1px solid var(--line)}
.ai-card .ai-stats{font-family:var(--mono);font-size:10.5px;color:var(--txt-3);margin-top:8px;line-height:1.5}

.timeline-hdr{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.timeline-hdr h3{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--txt-2);flex:1;margin:0}
.timeline-hdr .legend{display:flex;gap:12px;font-family:var(--mono);font-size:10px;color:var(--txt-3)}
.timeline-hdr .legend .k{display:inline-flex;align-items:center;gap:5px}
.timeline-hdr .legend .dot{width:8px;height:8px;border-radius:2px}
.timeline-hdr .legend .dot.d{background:var(--blue)}
.timeline-hdr .legend .dot.c{background:var(--claude)}
.timeline-hdr .legend .dot.g{background:var(--gpt)}
.timeline-hdr .legend .dot.e{background:var(--violet)}

.h-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:20px}
.h-cell{background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r-3);padding:14px 12px;position:relative;overflow:hidden;display:flex;flex-direction:column;gap:10px}
.h-cell.pending{opacity:.7;border-style:dashed}
.h-cell.hit{border-color:var(--green-line);background:linear-gradient(180deg,rgba(0,230,118,.04),var(--bg-3) 50%)}
.h-cell.miss{border-color:var(--red-line);background:linear-gradient(180deg,rgba(255,44,80,.04),var(--bg-3) 50%)}
.h-cell .day-hdr{display:flex;align-items:center;justify-content:space-between;gap:6px}
.h-cell .day-lbl{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.12em;color:var(--txt-2);text-transform:uppercase}
.h-cell .day-date{font-family:var(--mono);font-size:9.5px;color:var(--txt-4)}
.h-cell .status-badge{position:absolute;top:10px;right:10px;font-family:var(--mono);font-size:8.5px;font-weight:700;letter-spacing:.08em;padding:2px 6px;border-radius:3px}
.h-cell.hit .status-badge{background:var(--green-bg);color:var(--green);border:1px solid var(--green-line)}
.h-cell.miss .status-badge{background:var(--red-bg);color:var(--red);border:1px solid var(--red-line)}
.h-cell.pending .status-badge{background:var(--bg-4);color:var(--txt-3);border:1px solid var(--line-2)}
.h-band{position:relative;height:44px;margin-top:4px}
.h-band .track{position:absolute;left:0;right:0;top:16px;height:10px;border-radius:3px;background:linear-gradient(90deg,rgba(0,230,118,.18) 0%,rgba(157,122,255,.18) 50%,rgba(255,44,80,.18) 100%);border:1px solid var(--line-2)}
.h-band .q10-mark{position:absolute;left:0;top:12px;bottom:14px;width:2px;background:var(--green);border-radius:1px}
.h-band .q90-mark{position:absolute;right:0;top:12px;bottom:14px;width:2px;background:var(--red);border-radius:1px}
.h-band .q50-mark{position:absolute;top:10px;bottom:16px;width:2px;background:var(--violet);opacity:.75;border-radius:1px}
.h-band .actual-mark{position:absolute;top:8px;bottom:18px;width:3px;border-radius:2px;background:#fff;transform:translateX(-50%);box-shadow:0 0 0 2px var(--bg-3), 0 0 12px rgba(255,255,255,.4);transition:left var(--t-base)}
.h-band .actual-mark.hit{background:var(--green);box-shadow:0 0 0 2px var(--bg-3), 0 0 12px var(--green)}
.h-band .actual-mark.miss{background:var(--red);box-shadow:0 0 0 2px var(--bg-3), 0 0 12px var(--red)}
.h-values{display:flex;flex-direction:column;gap:3px;font-family:var(--mono);font-size:11px}
.h-values .row{display:flex;justify-content:space-between;align-items:baseline}
.h-values .row span{color:var(--txt-3);font-size:10px}
.h-values .row b{color:var(--txt);font-weight:600;font-variant-numeric:tabular-nums}
.h-values .row b.g{color:var(--green)}
.h-values .row b.r{color:var(--red)}
.h-values .row b.v{color:var(--violet)}
.h-values .row.actual{padding-top:6px;margin-top:4px;border-top:1px dashed var(--line-3)}
.h-values .row.actual.hit b{color:var(--green);font-size:12.5px}
.h-values .row.actual.miss b{color:var(--red);font-size:12.5px}
.h-values .row.actual.pending b{color:var(--txt-3);font-weight:500;font-size:11px}
.ai-chips{display:flex;gap:4px;margin-top:2px}
.ai-chip{flex:1;height:22px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:9.5px;font-weight:700;color:#050505;letter-spacing:.02em}
.ai-chip.d{background:var(--blue)}
.ai-chip.c{background:var(--claude)}
.ai-chip.g{background:var(--gpt)}
.h-pnl{margin-top:auto;padding-top:8px;border-top:1px solid var(--line-2);font-family:var(--mono);font-size:11px;letter-spacing:.02em}
.h-pnl .row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:3px}
.h-pnl .row:last-child{margin-bottom:0}
.h-pnl .row .lbl{color:var(--txt-3);font-size:10px}
.h-pnl .row .val{font-weight:700;font-variant-numeric:tabular-nums}
.h-pnl .row .val.pos{color:var(--green)}
.h-pnl .row .val.neg{color:var(--red)}
.h-pnl .row .val.zero{color:var(--txt-4);font-weight:500}

.cycle-summary{margin-top:24px;padding:20px;background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r-3)}
.cycle-summary .hdr{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}
.cycle-summary .hdr h4{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--txt-2);margin:0}
.cycle-summary .hdr .sp{flex:1}
.strategies{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.strategy{padding:14px;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-2);position:relative;overflow:hidden}
.strategy.win{border-color:var(--green-line);background:linear-gradient(180deg,var(--green-bg),var(--bg-2))}
.strategy.lose{border-color:var(--red-line);background:linear-gradient(180deg,var(--red-bg),var(--bg-2))}
.strategy .lbl{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--txt-3);text-transform:uppercase;margin-bottom:8px}
.strategy.win .lbl{color:var(--green)}
.strategy.lose .lbl{color:var(--red)}
.strategy .v{font-family:var(--mono);font-size:22px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--txt)}
.strategy.win .v{color:var(--green)}
.strategy.lose .v{color:var(--red)}
.strategy .s{font-family:var(--mono);font-size:10px;color:var(--txt-4);margin-top:4px}
.strategy .crown{position:absolute;top:10px;right:10px;font-size:14px;color:var(--amber)}

.rec-box{padding:20px;background:linear-gradient(135deg,rgba(157,122,255,.08),rgba(90,169,255,.04));border:1px solid var(--violet-line);border-radius:var(--r-3);margin-top:20px}
.rec-box .lbl{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.14em;color:var(--violet);text-transform:uppercase;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.rec-box .tx{font-size:14px;line-height:1.65;color:var(--txt)}
.rec-box .tx b{color:var(--violet);font-weight:600}
.rec-box .actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.rec-box .actions button{height:32px;padding:0 14px;border-radius:var(--r-2);background:var(--violet);border:1px solid var(--violet);color:#050505;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;cursor:pointer;transition:all var(--t-fast)}
.rec-box .actions button.ghost{background:transparent;color:var(--violet);border-color:var(--violet-line)}
.rec-box .actions button:hover{filter:brightness(1.1)}

.rank-table{width:100%;border-collapse:collapse;margin-top:6px}
.rank-table th{text-align:left;padding:9px 12px;font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--txt-3);border-bottom:1px solid var(--line)}
.rank-table td{padding:12px;border-bottom:1px solid var(--line);font-size:13px;color:var(--txt)}
.rank-table tr:last-child td{border-bottom:0}
.rank-table td.num{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12px}
.rank-table .rank-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:5px;font-family:var(--mono);font-size:10px;font-weight:700;background:var(--bg-3);color:var(--txt-3);margin-right:8px}
.rank-table tr.rank-1 .rank-badge{background:var(--amber);color:#050505}
.rank-table .ai-cell{display:flex;align-items:center;gap:10px}
.rank-table tr.rank-1 .ai-badge{box-shadow:0 0 0 2px var(--amber)}

.stake-bar{padding:18px 26px;background:var(--bg-1);border-bottom:1px solid var(--line);display:grid;grid-template-columns:auto auto 1fr auto;gap:20px;align-items:center}
.stake-lbl{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.14em;color:var(--txt-3);text-transform:uppercase;white-space:nowrap}
.stake-box{display:flex;align-items:center;background:var(--bg-3);border:1px solid var(--violet-line);border-radius:10px;overflow:hidden;height:46px;box-shadow:0 0 0 3px rgba(157,122,255,.08);transition:box-shadow var(--t-base)}
.stake-box:focus-within{box-shadow:0 0 0 3px rgba(157,122,255,.2), 0 0 24px rgba(157,122,255,.1)}
.stake-box .cur{padding:0 15px;background:rgba(157,122,255,.12);height:100%;display:flex;align-items:center;font-family:var(--mono);font-size:16px;font-weight:700;color:var(--violet);border-right:1px solid var(--violet-line)}
.stake-box input{width:150px;background:transparent;border:0;color:var(--txt);outline:none;font-family:var(--mono);font-size:19px;font-weight:700;padding:0 15px;text-align:right;letter-spacing:-.01em}
.stake-box .suffix{padding:0 15px 0 0;font-family:var(--mono);font-size:11px;color:var(--txt-3);font-weight:500}
.stake-hint{font-family:var(--mono);font-size:10.5px;color:var(--txt-3);line-height:1.6}
.stake-hint b{color:var(--violet);font-weight:600}
.stake-presets{display:flex;gap:6px;flex-wrap:wrap}
.stake-presets button{height:32px;padding:0 12px;border-radius:8px;background:var(--bg-3);border:1px solid var(--line-2);font-family:var(--mono);font-size:11px;font-weight:600;color:var(--txt-2);transition:all var(--t-fast);cursor:pointer}
.stake-presets button:hover{border-color:var(--violet-line);color:var(--violet);background:var(--violet-bg)}

.progress-strip{padding:14px 26px;background:var(--bg-1);display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}
.progress-dots{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.pdot{height:36px;border-radius:8px;background:var(--bg-3);border:1px solid var(--line-2);position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:all var(--t-base)}
.pdot .lbl{font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.1em;color:var(--txt-3);text-transform:uppercase;line-height:1}
.pdot .day{font-family:var(--mono);font-size:10px;font-weight:600;color:var(--txt-4);margin-top:3px;line-height:1;letter-spacing:.02em}
.pdot.hit{border-color:var(--green-line);background:linear-gradient(180deg,var(--green-bg),var(--bg-3))}
.pdot.hit .lbl{color:var(--green)}
.pdot.miss{border-color:var(--red-line);background:linear-gradient(180deg,var(--red-bg),var(--bg-3))}
.pdot.miss .lbl{color:var(--red)}
.pdot.active{border-color:var(--violet-line);background:linear-gradient(180deg,var(--violet-bg),var(--bg-3));box-shadow:0 0 0 1px rgba(157,122,255,.35), 0 0 24px rgba(157,122,255,.15)}
.pdot.active .lbl{color:var(--violet)}
.pdot.active::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--violet);animation:pulse-line 2s ease-in-out infinite}
@keyframes pulse-line{0%,100%{opacity:1}50%{opacity:.3}}
.pdot .ico{font-size:11px;color:var(--txt-3);margin-bottom:2px}
.pdot.hit .ico{color:var(--green)}
.pdot.miss .ico{color:var(--red)}
.pdot.active .ico{color:var(--violet)}
.progress-countdown{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:11px;color:var(--txt-3);padding:8px 14px;background:var(--bg-3);border:1px solid var(--line-2);border-radius:999px;white-space:nowrap}
.progress-countdown .dot{width:6px;height:6px;border-radius:50%;background:var(--amber);animation:pulse-dot 1.5s ease-in-out infinite}
.progress-countdown b{color:var(--txt);font-weight:600}

.chart-section{background:var(--bg-1);border-bottom:1px solid var(--line)}
.chart-toolbar{padding:14px 26px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.chart-toolbar .legend{display:flex;gap:18px;font-family:var(--mono);font-size:11px;color:var(--txt-2);align-items:center;flex-wrap:wrap}
.chart-toolbar .legend .k{display:inline-flex;align-items:center;gap:8px;cursor:default}
.chart-toolbar .legend .swatch{width:20px;height:2px;border-radius:1px;flex-shrink:0}
.chart-toolbar .legend .swatch.q50{background:var(--violet);height:3px}
.chart-toolbar .legend .swatch.q10{background:repeating-linear-gradient(90deg,var(--green) 0 5px,transparent 5px 9px)}
.chart-toolbar .legend .swatch.q90{background:repeating-linear-gradient(90deg,var(--red) 0 5px,transparent 5px 9px)}
.chart-toolbar .legend .swatch.candle{height:8px;background:linear-gradient(90deg,var(--green) 0 50%,var(--red) 50% 100%);border-radius:2px}
.chart-toolbar .legend .swatch.spot{background:var(--blue);height:2px;opacity:.6}
.chart-toolbar .legend .sp{flex:1}
.chart-zoom{display:inline-flex;background:var(--bg-3);border:1px solid var(--line-2);border-radius:8px;padding:3px}
.chart-zoom button{padding:6px 12px;border-radius:6px;font-family:var(--mono);font-size:11px;font-weight:600;color:var(--txt-3);transition:all var(--t-fast)}
.chart-zoom button:hover{color:var(--txt-2)}
.chart-zoom button.on{background:var(--bg-5);color:var(--txt);box-shadow:var(--shadow-sm)}
.chart-wrap{position:relative;height:420px;background:var(--bg-1)}
.chart-wrap #fcDetailChart{width:100%;height:100%}
.chart-readout{position:absolute;top:16px;left:26px;background:rgba(10,10,10,.94);border:1px solid var(--line-2);border-radius:10px;padding:12px 16px;font-family:var(--mono);font-size:11.5px;pointer-events:none;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);min-width:230px;box-shadow:var(--shadow-md)}
.chart-readout .title{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--violet);margin-bottom:10px;display:flex;align-items:center;gap:8px}
.chart-readout .title .dot{width:6px;height:6px;border-radius:50%;background:var(--violet);box-shadow:0 0 8px var(--violet);animation:pulse-dot 1.5s ease-in-out infinite}
.chart-readout .row{display:flex;justify-content:space-between;gap:24px;margin-bottom:5px;align-items:baseline}
.chart-readout .row:last-child{margin-bottom:0}
.chart-readout .row.sep{padding-top:8px;border-top:1px dashed var(--line-3);margin-top:8px}
.chart-readout .lbl{color:var(--txt-3);font-size:10.5px}
.chart-readout .val{color:var(--txt);font-weight:600;font-size:12px}
.chart-readout .val.g{color:var(--green)}
.chart-readout .val.r{color:var(--red)}
.chart-readout .val.v{color:var(--violet)}
.chart-readout .val.b{color:var(--blue)}

@media (max-width:1100px){
  .h-grid{grid-template-columns:repeat(3,1fr)}
  .cycle-card{grid-template-columns:auto 1fr}
  .cycle-numbers{grid-column:1/-1;margin-top:8px}
}
@media (max-width:900px){
  .stake-bar{grid-template-columns:1fr auto;gap:14px}
  .stake-hint{grid-column:1/-1;grid-row:2}
  .strategies{grid-template-columns:1fr}
  .ai-responses{grid-template-columns:1fr}
}
@media (max-width:720px){
  .hdr{padding:10px 12px;gap:8px}
  .stats{padding:16px 12px 4px}
  .cmd-bar{padding:12px 12px 6px}
  .sig-strip{margin:12px 12px 0}
  .position .p-meta{grid-template-columns:1fr 1fr}
  .pos-amount-input input{font-size:24px}
  .pos-amount-prefix{font-size:22px}
  .fc-stats,.fc-section{padding-left:12px;padding-right:12px}
  .h-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .chart-toolbar{padding:12px 18px;gap:12px}
  .chart-toolbar .legend{gap:12px;font-size:10px}
  .chart-readout{left:18px;top:12px;padding:10px 12px;min-width:190px;font-size:10.5px}
  .stake-bar{padding:14px 18px}
  .stake-box input{width:110px;font-size:16px}
  .progress-strip{padding:12px 18px;grid-template-columns:1fr}
  .progress-countdown{justify-self:start}
  .cycle-summary{margin:18px 12px}
  .rank-table th,.rank-table td{padding:8px 6px;font-size:12px}
}

[data-theme="light"]{
  --bg:#f5f5f7; --bg-1:#eeeef1; --bg-2:#ffffff; --bg-3:#f7f7f9; --bg-4:#eeeef2; --bg-5:#e4e4ea;
  --line:#e2e2e6; --line-2:#d5d5db; --line-3:#bdbdc5;
  --txt:#0c0c10; --txt-2:#4e4e56; --txt-3:#7a7a84; --txt-4:#a8a8b0;
  --green:#00b862; --green-2:#00a055; --green-bg:rgba(0,184,98,.09);   --green-line:rgba(0,184,98,.35);
  --red:#e02040;   --red-2:#c81535;   --red-bg:rgba(224,32,64,.09);    --red-line:rgba(224,32,64,.35);
  --amber:#d68a00; --amber-bg:rgba(214,138,0,.10); --amber-line:rgba(214,138,0,.35);
  --blue:#2c7cff;  --blue-bg:rgba(44,124,255,.09); --blue-line:rgba(44,124,255,.32);
  --violet:#7d54ff; --violet-bg:rgba(125,84,255,.09); --violet-line:rgba(125,84,255,.32);
  --claude:#c96342; --claude-bg:rgba(201,99,66,.10); --claude-line:rgba(201,99,66,.35);
  --gpt:#0d8a6a; --gpt-bg:rgba(13,138,106,.10); --gpt-line:rgba(13,138,106,.35);
  --shadow-sm:0 1px 2px rgba(0,0,0,.06);
  --shadow-md:0 6px 22px rgba(0,0,0,.08);
  --shadow-lg:0 20px 60px rgba(0,0,0,.14), 0 4px 12px rgba(0,0,0,.06);
  --shadow-glow-g:0 0 0 1px rgba(0,184,98,.35), 0 8px 32px rgba(0,184,98,.10);
  --shadow-glow-r:0 0 0 1px rgba(224,32,64,.35), 0 8px 32px rgba(224,32,64,.10);
  --shadow-glow-v:0 0 0 1px rgba(125,84,255,.35), 0 8px 32px rgba(125,84,255,.10);
}
[data-theme="light"] body{background:var(--bg);color:var(--txt)}
[data-theme="light"] body::before{background:radial-gradient(1200px 600px at 15% -10%, rgba(0,184,98,.05), transparent 60%),radial-gradient(1000px 500px at 100% 5%, rgba(44,124,255,.04), transparent 55%)}
[data-theme="light"] ::-webkit-scrollbar-thumb{background:var(--line-2);border-color:var(--bg)}
[data-theme="light"] ::-webkit-scrollbar-thumb:hover{background:var(--line-3)}
[data-theme="light"] .hdr{background:rgba(245,245,247,.86)}
[data-theme="light"] .brand .mark{box-shadow:0 0 0 3px rgba(0,184,98,.18)}
[data-theme="light"] .btn.pri{background:var(--green);border-color:var(--green);color:#fff}
[data-theme="light"] .btn.pri:hover{background:var(--green-2);border-color:var(--green-2)}
[data-theme="light"] .brief{background:linear-gradient(180deg,var(--bg-2),var(--bg-2))}
[data-theme="light"] .brief.opportunity{background:linear-gradient(180deg,rgba(0,184,98,.05),var(--bg-2) 60%)}
[data-theme="light"] .brief.opportunity.profit{background:linear-gradient(180deg,rgba(224,32,64,.05),var(--bg-2) 60%)}
[data-theme="light"] .stat{background:linear-gradient(180deg,var(--bg-2),var(--bg-2))}
[data-theme="light"] .stat.on{background:var(--green-bg)}
[data-theme="light"] .stat.on.r{background:var(--red-bg)}
[data-theme="light"] .stat.on.a{background:var(--amber-bg)}
[data-theme="light"] .stat.on.b{background:var(--blue-bg)}
[data-theme="light"] .card{background:var(--bg-2)}
[data-theme="light"] .card:hover{background:var(--bg-2)}
[data-theme="light"] .card.buy{background:linear-gradient(180deg,rgba(0,184,98,.05),var(--bg-2) 40%)}
[data-theme="light"] .card.sell{background:linear-gradient(180deg,rgba(224,32,64,.05),var(--bg-2) 40%)}
[data-theme="light"] .mini{background:linear-gradient(180deg,var(--bg-3),var(--bg-2))}
[data-theme="light"] .mini .peek{background:rgba(255,255,255,.94)}
[data-theme="light"] .priority-item{background:var(--bg-2)}
[data-theme="light"] .priority-item:hover{background:var(--bg-3)}
[data-theme="light"] .priority-item .why{background:var(--bg-3)}
[data-theme="light"] .toast{background:linear-gradient(180deg,var(--bg-2),var(--bg-2))}
[data-theme="light"] .empty .ico{background:linear-gradient(180deg,var(--bg-2),var(--bg-2))}
[data-theme="light"] .mode-toggle button.on{background:var(--bg-4);color:var(--txt)}
[data-theme="light"] .tab-switch button.on{background:var(--bg-4);color:var(--txt)}
[data-theme="light"] .seg button.on{background:var(--bg-4);color:var(--txt)}
[data-theme="light"] .seg button .n{background:rgba(0,0,0,.06)}
[data-theme="light"] .seg button.on .n{background:rgba(0,184,98,.15);color:var(--green)}
[data-theme="light"] .cmenu button:hover{background:var(--bg-3)}
[data-theme="light"] .sig-strip{background:var(--bg-2)}
[data-theme="light"] .smart-chip{background:var(--bg-2)}
[data-theme="light"] .smart-chip:hover{background:var(--bg-3)}
[data-theme="light"] .smart-chip.on{background:var(--bg-4)}
[data-theme="light"] .targets{background:var(--bg-3)}
[data-theme="light"] .gauge .mark{box-shadow:0 0 0 2px var(--bg-2), 0 0 10px rgba(0,0,0,.2)}
[data-theme="light"] .gauge .mark.buy{box-shadow:0 0 0 2px var(--bg-2), 0 0 10px var(--green)}
[data-theme="light"] .gauge .mark.sell{box-shadow:0 0 0 2px var(--bg-2), 0 0 10px var(--red)}
[data-theme="light"] .position{background:linear-gradient(135deg,rgba(0,184,98,.06),var(--bg-2) 60%)}
[data-theme="light"] .position.loss{background:linear-gradient(135deg,rgba(224,32,64,.06),var(--bg-2) 60%)}
[data-theme="light"] .position.flat{background:linear-gradient(135deg,var(--bg-3),var(--bg-2) 60%)}
[data-theme="light"] .log-buy:hover{background:var(--bg-3)}
[data-theme="light"] .pos-preview{background:linear-gradient(135deg,var(--bg-3),var(--bg-2))}
[data-theme="light"] .palette .box,
[data-theme="light"] .modal,
[data-theme="light"] .chart-modal,
[data-theme="light"] .drawer{background:var(--bg-2)}
[data-theme="light"] .fc-stat{background:linear-gradient(180deg,var(--bg-2),var(--bg-2))}
[data-theme="light"] .cycle-card{background:linear-gradient(180deg,var(--bg-2),var(--bg-2))}
[data-theme="light"] .cycle-card:hover{box-shadow:0 0 0 1px rgba(125,84,255,.5), 0 12px 40px rgba(125,84,255,.12)}
[data-theme="light"] .cycle-card.completed{box-shadow:var(--shadow-sm)}
[data-theme="light"] .cycle-dot{background:var(--bg-4)}
[data-theme="light"] .cycle-dot.active{background:var(--amber)}
[data-theme="light"] .history-table{background:var(--bg-2)}
[data-theme="light"] .history-table th{background:var(--bg-3)}
[data-theme="light"] .history-table tr.row:hover{background:var(--bg-3)}
[data-theme="light"] .fc-modal{background:var(--bg-2)}
[data-theme="light"] .ai-card{background:var(--bg-3)}
[data-theme="light"] .ai-card .ai-weight{background:var(--bg-1)}
[data-theme="light"] .h-cell{background:var(--bg-3)}
[data-theme="light"] .h-cell.hit{background:linear-gradient(180deg,rgba(0,184,98,.05),var(--bg-3) 50%)}
[data-theme="light"] .h-cell.miss{background:linear-gradient(180deg,rgba(224,32,64,.05),var(--bg-3) 50%)}
[data-theme="light"] .h-band .actual-mark{box-shadow:0 0 0 2px var(--bg-3), 0 0 12px rgba(0,0,0,.2)}
[data-theme="light"] .h-band .actual-mark.hit{box-shadow:0 0 0 2px var(--bg-3), 0 0 12px var(--green)}
[data-theme="light"] .h-band .actual-mark.miss{box-shadow:0 0 0 2px var(--bg-3), 0 0 12px var(--red)}
[data-theme="light"] .cycle-summary{background:var(--bg-3)}
[data-theme="light"] .strategy{background:var(--bg-2)}
[data-theme="light"] .strategy.win{background:linear-gradient(180deg,var(--green-bg),var(--bg-2))}
[data-theme="light"] .strategy.lose{background:linear-gradient(180deg,var(--red-bg),var(--bg-2))}
[data-theme="light"] .rec-box{background:linear-gradient(135deg,rgba(125,84,255,.08),rgba(44,124,255,.04))}
[data-theme="light"] .rank-table tr.rank-1 .rank-badge{background:var(--amber);color:#fff}
[data-theme="light"] .stake-bar{background:var(--bg-1)}
[data-theme="light"] .stake-box{background:var(--bg-3)}
[data-theme="light"] .stake-presets button{background:var(--bg-3)}
[data-theme="light"] .progress-strip{background:var(--bg-1)}
[data-theme="light"] .pdot{background:var(--bg-3)}
[data-theme="light"] .pdot.hit{background:linear-gradient(180deg,var(--green-bg),var(--bg-3))}
[data-theme="light"] .pdot.miss{background:linear-gradient(180deg,var(--red-bg),var(--bg-3))}
[data-theme="light"] .pdot.active{background:linear-gradient(180deg,var(--violet-bg),var(--bg-3))}
[data-theme="light"] .progress-countdown{background:var(--bg-3)}
[data-theme="light"] .chart-section{background:var(--bg-1)}
[data-theme="light"] .chart-wrap{background:var(--bg-1)}
[data-theme="light"] .chart-readout{background:rgba(255,255,255,.94)}
[data-theme="light"] .chart-zoom{background:var(--bg-3)}
[data-theme="light"] .chart-zoom button.on{background:var(--bg-5)}

.ind-row{display:flex;gap:5px;flex-wrap:wrap;margin-top:4px}
.ind-row:empty{display:none}
.ind-chip{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border-radius:3px;background:var(--bg-3);border:1px solid var(--line-2);color:var(--txt-3);white-space:nowrap}
.ind-chip b{color:var(--txt-2);font-weight:700;margin-left:3px}
.ind-chip.g{color:var(--green);border-color:var(--green-line);background:var(--green-bg)}
.ind-chip.g b{color:var(--green)}
.ind-chip.r{color:var(--red);border-color:var(--red-line);background:var(--red-bg)}
.ind-chip.r b{color:var(--red)}
.ind-chip.a{color:var(--amber);border-color:var(--amber-line);background:var(--amber-bg)}
.ind-chip.a b{color:var(--amber)}

.macro-strip{margin:14px 24px 0;border:1px solid var(--line-2);border-radius:var(--r-3);background:var(--bg-2);overflow:hidden}
.macro-strip.hidden{display:none}
.macro-strip-in{display:flex;align-items:center;gap:8px;padding:8px 12px;overflow-x:auto;scrollbar-width:none}
.macro-strip-in::-webkit-scrollbar{height:0}
.macro-chip{display:inline-flex;align-items:center;gap:8px;height:28px;padding:0 10px;background:var(--bg);border:1px solid var(--line-2);border-radius:999px;font-family:var(--mono);font-size:10.5px;white-space:nowrap;flex-shrink:0}
.macro-chip .lbl{color:var(--txt-3);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:9.5px}
.macro-chip .val{color:var(--txt);font-weight:700;font-variant-numeric:tabular-nums}
.macro-chip .val.up,.macro-chip .chg.up{color:var(--green)}
.macro-chip .val.down,.macro-chip .chg.down{color:var(--red)}
.macro-chip .chg{font-size:9.5px;padding:1px 5px;border-radius:3px;background:var(--bg-3)}
.macro-chip .chg.up{background:var(--green-bg)}
.macro-chip .chg.down{background:var(--red-bg)}
.portfolio-view{padding:0 0 60px;position:relative;z-index:1}
.shadow-view{padding:0 0 60px;position:relative;z-index:1}
.shadow-open{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r-3);padding:14px 16px;margin-bottom:10px}
.shadow-open-hdr{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.shadow-side{font-family:var(--mono);font-size:11px;font-weight:800;letter-spacing:.1em;padding:3px 8px;border-radius:4px;background:var(--bg-3)}
.shadow-open.g .shadow-side{color:var(--green);background:var(--green-bg)}
.shadow-open.r .shadow-side{color:var(--red);background:var(--red-bg)}
.shadow-key{font-weight:700;font-size:13px;flex:1}
.shadow-conf{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--txt-3);background:var(--bg-3);padding:2px 7px;border-radius:3px}
.shadow-ago{font-family:var(--mono);font-size:10.5px;color:var(--txt-3)}
.shadow-close{margin-left:auto}
.shadow-open-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:10px;font-family:var(--mono);font-size:11px}
.shadow-open-grid div{display:flex;flex-direction:column;gap:2px}
.shadow-open-grid span{color:var(--txt-3);font-size:9.5px;text-transform:uppercase;letter-spacing:.08em}
.shadow-open-grid b{color:var(--txt);font-weight:700}
.shadow-open-grid b.g{color:var(--green)}
.shadow-open-grid b.r{color:var(--red)}
.shadow-reason{font-size:12.5px;color:var(--txt-2);line-height:1.55;padding:8px 10px;background:var(--bg-3);border-radius:var(--r-2);border-left:2px solid var(--line-3);margin-bottom:10px}
.shadow-context{display:flex;flex-wrap:wrap;gap:5px}
.ctx-chip{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.04em;padding:3px 8px;border-radius:999px;background:var(--bg-3);border:1px solid var(--line-2);color:var(--txt-3);white-space:nowrap}
.ctx-chip b{color:var(--txt);font-weight:700}
.shadow-chart{width:100%;background:var(--bg-1);border:1px solid var(--line-2);border-radius:var(--r-3)}
@media (max-width:900px){.shadow-open-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:560px){.shadow-open-grid{grid-template-columns:repeat(2,1fr)}}

.portfolio-loading{padding:80px 24px;text-align:center;color:var(--txt-3);font-family:var(--mono);font-size:12px}
.risk-flags{display:flex;flex-direction:column;gap:8px}
.risk-flag{padding:12px 16px;background:var(--amber-bg);border:1px solid var(--amber-line);border-radius:var(--r-3);color:var(--amber);font-family:var(--mono);font-size:12px;letter-spacing:.02em}
.class-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.class-card{padding:16px;background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r-3)}
.class-card .l{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.14em;color:var(--txt-3);margin-bottom:6px}
.class-card .v{font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--violet);font-variant-numeric:tabular-nums}
.class-card .s{font-family:var(--mono);font-size:10px;color:var(--txt-3);margin-top:4px}
.corr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.corr-card{padding:12px;background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r-3);text-align:center}
.corr-card .pair{font-family:var(--mono);font-size:10px;color:var(--txt-3);letter-spacing:.08em;margin-bottom:4px}
.corr-card .rho{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}
.corr-card .samples{font-family:var(--mono);font-size:9px;color:var(--txt-4);margin-top:2px}
.corr-card.g .rho{color:var(--green)}
.corr-card.b .rho{color:var(--blue)}
.corr-card.a .rho{color:var(--amber)}
.corr-card.r .rho{color:var(--red)}
[data-theme="light"] .macro-strip{background:var(--bg-2)}
[data-theme="light"] .macro-chip{background:var(--bg-3)}
[data-theme="light"] .class-card,[data-theme="light"] .corr-card{background:var(--bg-3)}

.lvl-row{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}
.lvl-row:empty{display:none}
.lvl-chip{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.06em;padding:2px 7px;border-radius:3px;background:var(--bg-3);border:1px solid var(--line-2);color:var(--txt-3);white-space:nowrap}
.lvl-chip b{font-weight:700;margin-left:3px}
.lvl-chip.sup{color:var(--green);border-color:var(--green-line);background:var(--green-bg)}
.lvl-chip.sup b{color:var(--green)}
.lvl-chip.res{color:var(--red);border-color:var(--red-line);background:var(--red-bg)}
.lvl-chip.res b{color:var(--red)}
.bt-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:4px}
.bt-stat{padding:14px;background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r-3)}
.bt-stat .l{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.12em;color:var(--txt-3);text-transform:uppercase;margin-bottom:6px}
.bt-stat .v{font-family:var(--mono);font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--txt);font-variant-numeric:tabular-nums}
.bt-stat .s{font-family:var(--mono);font-size:10px;color:var(--txt-4);margin-top:4px}
.bt-stat.g .v{color:var(--green)}
.bt-stat.r .v{color:var(--red)}
[data-theme="light"] .lvl-chip{background:var(--bg-4)}
[data-theme="light"] .bt-stat{background:var(--bg-3)}

.tutor-drawer{width:min(560px,100vw)}
.tutor-toolbar{padding:12px 22px;border-bottom:1px solid var(--line)}
.tutor-tabs{display:flex;gap:2px;padding:8px 22px;background:var(--bg-1);border-bottom:1px solid var(--line)}
.tutor-tabs button{flex:1;padding:8px 10px;border-radius:6px;font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--txt-3);transition:all var(--t-fast)}
.tutor-tabs button:hover{color:var(--txt-2);background:var(--bg-3)}
.tutor-tabs button.on{background:var(--bg-4);color:var(--txt)}
.tutor-body{padding:8px 0}
.tutor-section{padding:16px 22px;border-bottom:1px solid var(--line)}
.tutor-section:last-child{border-bottom:0}
.tutor-section-title{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--txt-3);margin-bottom:12px}
.tutor-anatomy{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.tutor-svg{width:100%;height:auto;max-height:220px;background:var(--bg-1);border:1px solid var(--line-2);border-radius:var(--r-3);padding:6px}
.tutor-anatomy-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.tutor-stat{padding:8px 10px;background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r-2)}
.tutor-stat .l{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.08em;color:var(--txt-3);text-transform:uppercase}
.tutor-stat .v{font-family:var(--mono);font-size:15px;font-weight:700;color:var(--txt);margin-top:3px;font-variant-numeric:tabular-nums}
.tutor-stat .s{font-family:var(--mono);font-size:9.5px;color:var(--txt-4);margin-top:2px}
.tutor-stat .s.up{color:var(--green)}
.tutor-stat .s.down{color:var(--red)}
.tutor-stat.g .v{color:var(--green)}
.tutor-stat.r .v{color:var(--red)}
.tutor-explain{margin-top:12px;padding:10px 12px;background:var(--bg-3);border-radius:var(--r-2);border-left:2px solid var(--violet);font-size:12.5px;color:var(--txt-2);line-height:1.6}
.tutor-bullets{list-style:none;display:flex;flex-direction:column;gap:8px}
.tutor-bullets li{font-size:12.5px;color:var(--txt-2);line-height:1.6;padding-left:16px;position:relative}
.tutor-bullets li::before{content:"▸";position:absolute;left:0;color:var(--violet)}
.tutor-pattern{padding:12px 14px;border-radius:var(--r-2);background:var(--bg-3);border:1px solid var(--line-2);margin-bottom:8px}
.tutor-pattern:last-child{margin-bottom:0}
.tutor-pattern.g{border-color:var(--green-line);background:var(--green-bg)}
.tutor-pattern.r{border-color:var(--red-line);background:var(--red-bg)}
.tutor-pattern-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.tutor-pattern-name{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--txt);letter-spacing:.02em}
.tutor-pattern-conf{font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--txt-3);background:var(--bg-4);padding:2px 6px;border-radius:3px}
.tutor-pattern.g .tutor-pattern-conf{color:var(--green);background:rgba(0,230,118,.15)}
.tutor-pattern.r .tutor-pattern-conf{color:var(--red);background:rgba(255,44,80,.15)}
.tutor-pattern-body{font-size:12.5px;color:var(--txt-2);line-height:1.6}
.tutor-pattern-time{font-family:var(--mono);font-size:10px;color:var(--txt-4);margin-top:6px}
.tutor-empty{padding:24px 22px;text-align:center;color:var(--txt-3);font-family:var(--mono);font-size:11px;line-height:1.7}
.tutor-scenario{padding:14px 16px;background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r-3);margin-bottom:10px}
.tutor-scenario:last-child{margin-bottom:0}
.tutor-scenario.buy{border-color:var(--green-line);background:linear-gradient(180deg,rgba(0,230,118,.05),var(--bg-3) 60%)}
.tutor-scenario.sell{border-color:var(--red-line);background:linear-gradient(180deg,rgba(255,44,80,.05),var(--bg-3) 60%)}
.tutor-scenario.be{border-color:var(--blue-line);background:linear-gradient(180deg,rgba(90,169,255,.05),var(--bg-3) 60%)}
.tutor-scenario.stop{border-color:var(--red-line)}
.tutor-scenario.tgt{border-color:var(--green-line)}
.tutor-scenario-hdr{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--mono);font-size:11px;font-weight:600;color:var(--txt-3);text-transform:uppercase;letter-spacing:.08em}
.tutor-scenario-hdr b{color:var(--txt);font-size:14px;text-transform:none;letter-spacing:0}
.tutor-scenario-move{font-family:var(--mono);font-size:13px;font-weight:700;margin:6px 0;font-variant-numeric:tabular-nums}
.tutor-scenario-move.up{color:var(--green)}
.tutor-scenario-move.down{color:var(--red)}
.tutor-scenario-probs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-top:10px}
.tutor-prob{padding:8px 10px;background:var(--bg);border:1px solid var(--line-2);border-radius:var(--r-2);text-align:center}
.tutor-prob .l{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.08em;color:var(--txt-3);text-transform:uppercase}
.tutor-prob .v{font-family:var(--mono);font-size:15px;font-weight:700;color:var(--txt);margin-top:3px;font-variant-numeric:tabular-nums}
.tutor-prob.g .v{color:var(--green)}
.tutor-prob.a .v{color:var(--amber)}
.tutor-scenario-time{font-family:var(--mono);font-size:10.5px;color:var(--txt-3);margin-top:8px;letter-spacing:.01em}
.tutor-scenario-time b{color:var(--txt)}
.tutor-vol{font-size:11.5px;color:var(--txt-3);line-height:1.6;margin-bottom:12px;padding:8px 10px;background:var(--bg-3);border-radius:var(--r-2);border-left:2px solid var(--blue)}
.tutor-vol b{color:var(--txt-2)}
.tutor-search{width:100%;height:34px;background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r-2);padding:0 12px;color:var(--txt);font-size:12.5px;margin-bottom:12px;font-family:var(--mono)}
.tutor-search:focus{outline:none;border-color:var(--green)}
.tutor-glossary{display:flex;flex-direction:column;gap:8px}
.tutor-term{padding:10px 12px;background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r-2)}
.tutor-term-name{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--green);margin-bottom:4px}
.tutor-term-def{font-size:12.5px;color:var(--txt-2);line-height:1.6}
.analyst-view{padding:0 0 60px;position:relative;z-index:1}
.analyst-loading{padding:80px 24px;text-align:center;color:var(--txt-3);font-family:var(--mono);font-size:12px}
.analyst-hero{display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;margin:20px 24px 0;padding:20px 24px;background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r-4)}
.analyst-health{text-align:center;padding-right:24px;border-right:1px solid var(--line-2)}
.analyst-health-label{font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.14em;color:var(--txt-3);text-transform:uppercase;margin-bottom:4px}
.analyst-health-value{font-family:var(--mono);font-size:22px;font-weight:800;letter-spacing:-.02em}
.analyst-hero.g .analyst-health-value{color:var(--green)}
.analyst-hero.a .analyst-health-value{color:var(--amber)}
.analyst-hero.r .analyst-health-value{color:var(--red)}
.analyst-headline{font-size:17px;font-weight:650;letter-spacing:-.015em;color:var(--txt);line-height:1.3}
.analyst-summary{font-family:var(--mono);font-size:11.5px;color:var(--txt-3);margin-top:6px;letter-spacing:.02em}
.analyst-insights{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px}
.analyst-insight{padding:14px 16px;background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r-3)}
.analyst-insight-hdr{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.analyst-title{font-size:13.5px;font-weight:650;letter-spacing:-.005em;color:var(--txt);line-height:1.3}
.analyst-body{font-size:12.5px;color:var(--txt-2);line-height:1.65}
.analyst-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}
.analyst-tag{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:2px 6px;border-radius:3px;background:var(--bg-3);color:var(--txt-3);border:1px solid var(--line-2)}
.analyst-actions{padding:16px 20px;background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r-3)}
.analyst-actions ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.analyst-actions li{font-size:13px;color:var(--txt);line-height:1.5;padding-left:20px;position:relative}
.analyst-actions li::before{content:"→";position:absolute;left:0;color:var(--violet);font-weight:700}
.analyst-foot{text-align:center;padding:20px 24px;color:var(--txt-4);font-family:var(--mono);font-size:10.5px;letter-spacing:.04em}
@media (max-width:900px){
  .analyst-hero{grid-template-columns:1fr;gap:16px}
  .analyst-health{padding-right:0;border-right:0;padding-bottom:12px;border-bottom:1px solid var(--line-2);text-align:left}
}
@media (max-width:720px){
  .tutor-anatomy{grid-template-columns:1fr}
  .tutor-anatomy-stats{grid-template-columns:1fr 1fr 1fr}
  .analyst-insights{grid-template-columns:1fr}
}
[data-theme="light"] .tutor-stat{background:var(--bg-4)}
[data-theme="light"] .tutor-svg{background:var(--bg-3)}
[data-theme="light"] .tutor-explain{background:var(--bg-4)}
[data-theme="light"] .tutor-pattern,[data-theme="light"] .tutor-scenario,[data-theme="light"] .tutor-term{background:var(--bg-3)}
[data-theme="light"] .analyst-insight{background:var(--bg-2)}
[data-theme="light"] .analyst-hero{background:var(--bg-2)}
[data-theme="light"] .analyst-actions{background:var(--bg-3)}

.cx-pop{position:fixed;z-index:180;background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r-4);box-shadow:var(--shadow-lg);overflow:hidden;font-family:var(--sans);animation:cx-in 140ms cubic-bezier(0.4,0,0.2,1);display:flex;flex-direction:column}
@keyframes cx-in{from{opacity:0;transform:translateY(-4px) scale(.99)}to{opacity:1;transform:none}}
.cx-body{overflow-y:auto;flex:1;min-height:0}
.cx-loading{padding:40px 20px;text-align:center;color:var(--txt-3);font-family:var(--mono);font-size:11.5px}
.cx-header{padding:14px 18px;border-bottom:1px solid var(--line);background:var(--bg-3);display:flex;flex-direction:column;gap:6px}
.cx-header.g{background:linear-gradient(180deg,rgba(0,230,118,.08),var(--bg-3) 80%)}
.cx-header.r{background:linear-gradient(180deg,rgba(255,44,80,.08),var(--bg-3) 80%)}
.cx-header-main{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.cx-shape{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--txt-3)}
.cx-header.g .cx-shape{color:var(--green)}
.cx-header.r .cx-shape{color:var(--red)}
.cx-price{font-family:var(--mono);font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--txt);font-variant-numeric:tabular-nums}
.cx-chg{font-family:var(--mono);font-size:12px;font-weight:700;padding:2px 7px;border-radius:3px;background:var(--bg-4)}
.cx-chg.up{color:var(--green);background:var(--green-bg)}
.cx-chg.down{color:var(--red);background:var(--red-bg)}
.cx-time{font-family:var(--mono);font-size:10.5px;color:var(--txt-3);letter-spacing:.02em}
.cx-sec{padding:14px 18px;border-bottom:1px solid var(--line)}
.cx-sec:last-child{border-bottom:0}
.cx-hdr{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--txt-3);margin-bottom:10px}
.cx-anat{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.cx-cell{padding:7px 8px;background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r-2)}
.cx-cell .l{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.08em;color:var(--txt-3);text-transform:uppercase}
.cx-cell .v{font-family:var(--mono);font-size:12.5px;font-weight:700;color:var(--txt);margin-top:2px;font-variant-numeric:tabular-nums}
.cx-list{list-style:none;display:flex;flex-direction:column;gap:7px}
.cx-list li{font-size:12.5px;color:var(--txt-2);line-height:1.6;padding-left:14px;position:relative}
.cx-list li::before{content:"▸";position:absolute;left:0;color:var(--violet);font-size:10px}
.cx-list-next li::before{content:"→";color:var(--amber)}
.cx-sim-count{font-family:var(--mono);font-size:11px;color:var(--txt-3);margin-bottom:8px;letter-spacing:.02em}
.cx-bar{display:flex;height:26px;border-radius:4px;overflow:hidden;border:1px solid var(--line-2);margin-bottom:10px}
.cx-seg{display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.02em;color:var(--txt-2);background:var(--bg-4);padding:0 4px;white-space:nowrap;overflow:hidden}
.cx-seg.g{background:rgba(0,230,118,.15);color:var(--green)}
.cx-seg.r{background:rgba(255,44,80,.15);color:var(--red)}
.cx-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px}
.cx-stat{padding:8px 10px;background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r-2)}
.cx-stat .l{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.08em;color:var(--txt-3);text-transform:uppercase}
.cx-stat .v{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--txt);margin-top:3px;font-variant-numeric:tabular-nums}
.cx-stat .v.up{color:var(--green)}
.cx-stat .v.down{color:var(--red)}
.cx-stat.g{border-color:var(--green-line)}
.cx-stat.r{border-color:var(--red-line)}
.cx-range{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10.5px;color:var(--txt-3);padding:8px 10px;background:var(--bg-3);border-radius:var(--r-2);letter-spacing:.02em}
.cx-range b{color:var(--txt);font-weight:700}
.cx-range-r b{color:var(--green)}
.cx-range-l b{color:var(--red)}
.cx-ex{display:grid;grid-template-columns:1fr auto auto auto;gap:8px;align-items:center;padding:7px 8px;border-radius:4px;font-family:var(--mono);font-size:10.5px;background:var(--bg-3);margin-bottom:5px}
.cx-ex:last-child{margin-bottom:0}
.cx-ex-date{color:var(--txt-3);letter-spacing:.02em}
.cx-ex-n1{font-weight:700;padding:1px 5px;border-radius:3px}
.cx-ex-n1.up{color:var(--green);background:var(--green-bg)}
.cx-ex-n1.down{color:var(--red);background:var(--red-bg)}
.cx-ex-n3,.cx-ex-n5{color:var(--txt-3)}
.cx-ex-n3.up,.cx-ex-n5.up{color:var(--green)}
.cx-ex-n3.down,.cx-ex-n5.down{color:var(--red)}
.cx-empty{font-size:11.5px;color:var(--txt-3);padding:8px 0;font-family:var(--mono);letter-spacing:.02em}
.cx-foot{padding:10px 18px;border-top:1px solid var(--line);font-family:var(--mono);font-size:10px;color:var(--txt-4);letter-spacing:.02em;text-align:center;background:var(--bg-1)}
.tutor-cchips{display:flex;flex-wrap:wrap;gap:5px;margin:12px 0 16px}
.tutor-cchip{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 8px;background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r-2);font-family:var(--mono);font-size:9.5px;cursor:pointer;transition:all var(--t-fast);min-width:56px}
.tutor-cchip:hover{border-color:var(--violet);background:var(--bg-4)}
.tutor-cchip.on{border-color:var(--violet);background:var(--violet-bg)}
.tutor-cchip.g{border-color:rgba(0,230,118,.25)}
.tutor-cchip.r{border-color:rgba(255,44,80,.25)}
.tutor-cchip .d{color:var(--txt-4);letter-spacing:.04em;font-size:9px}
.tutor-cchip .c{color:var(--txt);font-weight:700;font-variant-numeric:tabular-nums}
.tutor-cchip .p{font-weight:700;font-size:9px;color:var(--txt-3)}
.tutor-cchip.g .p{color:var(--green)}
.tutor-cchip.r .p{color:var(--red)}
.tutor-candle-hdr{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.tutor-candle-icon{font-size:14px}
.tutor-candle-time{font-family:var(--mono);font-size:10px;color:var(--txt-3);letter-spacing:.02em}
.tutor-candle-px{font-family:var(--mono);font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--txt);font-variant-numeric:tabular-nums}
.tutor-candle-px .up{color:var(--green);font-size:13px;margin-left:6px}
.tutor-candle-px .down{color:var(--red);font-size:13px;margin-left:6px}
[data-theme="light"] .cx-pop{background:var(--bg-2)}
[data-theme="light"] .cx-header{background:var(--bg-3)}
[data-theme="light"] .cx-cell,[data-theme="light"] .cx-stat,[data-theme="light"] .cx-ex,[data-theme="light"] .tutor-cchip{background:var(--bg-3)}
[data-theme="light"] .cx-foot{background:var(--bg-1)}
@media (max-width:720px){
  .cx-pop{width:calc(100vw - 20px)!important;max-height:70vh!important}
  .cx-anat{grid-template-columns:1fr 1fr}
}

.view-bar{display:flex;gap:2px;padding:8px 24px;background:rgba(5,5,5,.86);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;flex-shrink:0}
.view-bar::-webkit-scrollbar{display:none}
.view-bar button{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:6px;font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.04em;color:var(--txt-3);transition:all var(--t-fast);white-space:nowrap;flex-shrink:0}
.view-bar button:hover{background:var(--bg-3);color:var(--txt-2)}
.view-bar button.on{background:var(--bg-4);color:var(--txt);box-shadow:var(--shadow-sm)}
[data-theme="light"] .view-bar{background:rgba(245,245,247,.86)}
.clickable{cursor:pointer;transition:all var(--t-fast)}
.clickable:hover{border-color:var(--line-3)}
.actions-menu{position:fixed;z-index:120;width:240px;background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r-3);padding:6px;box-shadow:var(--shadow-lg);animation:menu-in 140ms cubic-bezier(0.4,0,0.2,1);font-family:var(--sans)}
.actions-menu[hidden]{display:none}
.actions-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:5px;font-size:12.5px;color:var(--txt);text-align:left;transition:background var(--t-fast)}
.actions-menu button:hover{background:var(--bg-4)}
.actions-menu button .ic{width:16px;text-align:center;color:var(--txt-3);font-size:13px}
.actions-menu button:hover .ic{color:var(--txt)}
.actions-menu button.danger{color:var(--red)}
.actions-menu button.danger .ic{color:var(--red)}
.actions-menu .actions-sep{height:1px;background:var(--line-2);margin:5px 0}
.actions-menu .actions-hd{padding:6px 10px 3px;font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--txt-4);text-transform:uppercase}
.actions-menu .kbd{margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--txt-4);background:var(--bg-4);padding:1px 5px;border-radius:3px}
.learn-view{padding:0 0 60px;position:relative;z-index:1;max-width:1200px;margin:0 auto;width:100%}
.learn-toolbar{padding:20px 24px 0;display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
.learn-toolbar-hd h2{font-size:20px;font-weight:700;letter-spacing:-.015em;margin-bottom:4px;color:var(--txt)}
.learn-toolbar-hd p{font-size:13px;color:var(--txt-3);line-height:1.55;max-width:640px}
.learn-toolbar select{height:36px;background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r-2);color:var(--txt);padding:0 12px;font-family:var(--mono);font-size:12px;letter-spacing:.02em;min-width:220px}
.learn-toolbar select:focus{outline:none;border-color:var(--green)}
.learn-body{padding:8px 0}
.learn-body .tutor-section{padding:16px 24px}
.learn-body .tutor-empty{padding:60px 24px}
.ch-actions .learn{color:var(--txt-3)}
.ch-actions .learn:hover{color:var(--violet)}
@media (max-width:720px){
  .view-bar{padding:8px 12px}
  .view-bar button{padding:6px 10px;font-size:11px}
  .learn-toolbar{padding:16px 12px 0}
  .learn-toolbar select{width:100%;min-width:0}
  .learn-body .tutor-section{padding:14px 12px}
}
.chart-main{flex:1;min-height:0;display:flex}
.chart-main .chart-body{flex:1;min-width:0}
.chart-advisor{width:340px;flex-shrink:0;border-left:1px solid var(--line);overflow-y:auto;padding:16px 18px 20px;display:flex;flex-direction:column;gap:14px;font-family:var(--sans);font-size:12.5px;line-height:1.5;color:var(--txt-2)}
.chart-advisor:empty{display:none}
.adv-invalidation{border-left:2px solid var(--amber);background:var(--amber-bg);border-radius:var(--r-2);padding:10px 12px;margin-top:10px}
.adv-invalidation h4{color:var(--amber)}
.adv-invalidation .adv-now{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:4px}
.adv-invalidation .adv-now li{color:var(--txt);font-size:12px;line-height:1.5}
.adv-loading{color:var(--txt-3);font-family:var(--mono);font-size:11px;padding:20px 0}
.adv-hdr{display:flex;align-items:center;gap:8px}
.adv-title{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--txt-3);flex:1}
.adv-tf{font-family:var(--mono);font-size:10px;color:var(--txt-3);background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r-1);padding:2px 6px}
.adv-refresh{width:24px;height:24px;border-radius:var(--r-1);color:var(--txt-3);transition:all var(--t-fast)}
.adv-refresh:hover{color:var(--txt);background:var(--bg-3)}
.adv-verdict{border:1px solid var(--line-2);border-radius:var(--r-3);padding:12px 14px;background:var(--bg-3)}
.adv-verdict.g{border-color:var(--green-line);background:var(--green-bg)}
.adv-verdict.r{border-color:var(--red-line);background:var(--red-bg)}
.adv-verdict.a{border-color:var(--amber-line);background:var(--amber-bg)}
.adv-v-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.adv-v-label{font-size:20px;font-weight:700;letter-spacing:-.01em}
.adv-verdict.g .adv-v-label{color:var(--green)}
.adv-verdict.r .adv-v-label{color:var(--red)}
.adv-verdict.a .adv-v-label{color:var(--amber)}
.adv-conf{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--txt-3)}
.adv-verdict p{margin:6px 0 0;color:var(--txt)}
.adv-chips{display:flex;flex-wrap:wrap;gap:6px}
.adv-chips span{font-family:var(--mono);font-size:10.5px;color:var(--txt-3);background:var(--bg-3);border:1px solid var(--line-2);border-radius:999px;padding:3px 8px}
.adv-chips b{color:var(--txt);font-weight:600}
.adv-sec h4{margin:0 0 6px;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--txt-3)}
.adv-sec p{margin:0}
.adv-now{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:4px}
.adv-action{color:var(--txt);font-weight:500}
.adv-levels{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}
.adv-levels div{background:var(--bg-3);border:1px solid var(--line);border-radius:var(--r-2);padding:6px 8px;display:flex;flex-direction:column}
.adv-levels span{font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--txt-3)}
.adv-levels b{font-variant-numeric:tabular-nums;color:var(--txt);font-size:13px}
.adv-levels b.g{color:var(--green)}
.adv-levels b.r{color:var(--red)}
.adv-pos p{margin-top:8px}
.adv-warn{margin-top:6px !important;color:var(--amber);font-size:11.5px}
.adv-factors{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.adv-factors li{display:flex;gap:8px}
.adv-factors p{margin:2px 0 0;font-size:11.5px;color:var(--txt-3)}
.adv-factors b{color:var(--txt);font-weight:600}
.adv-sign{width:16px;flex-shrink:0;font-family:var(--mono);font-weight:700;color:var(--txt-3)}
.adv-factors li.g .adv-sign{color:var(--green)}
.adv-factors li.r .adv-sign{color:var(--red)}
.adv-disclaimer{margin:0;font-size:10.5px;color:var(--txt-4);border-top:1px solid var(--line);padding-top:10px}
@media (max-width:900px){
  .chart-main{flex-direction:column}
  .chart-main .chart-body{min-height:320px}
  .chart-advisor{width:auto;border-left:0;border-top:1px solid var(--line);max-height:45%}
}

.sdot{display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 20%,transparent)}
.sdot-l{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;line-height:1.2}
.sdot-l.g{color:var(--green)}
.sdot-l.r{color:var(--red)}
.sdot-l.a{color:var(--amber)}
.sdot-l.b{color:var(--blue)}
.sdot-l.n{color:var(--txt-3)}
.bdg.has-dot{display:inline-flex;align-items:center;gap:6px}
.bdg.has-dot .sdot{width:6px;height:6px;box-shadow:none}
.priority-item.profit .state{color:var(--red)}
.priority-item.buy .state{color:var(--green)}
.priority-item.near .state{color:var(--amber)}
.priority-item.setup .state{color:var(--blue)}
.priority-item.warn .state{color:var(--red)}
.shadow-side{display:inline-flex;align-items:center;gap:7px}
.analyst-health-value{display:flex;align-items:center;gap:10px}
.analyst-health-value .sdot{width:10px;height:10px;box-shadow:0 0 0 4px color-mix(in srgb,currentColor 20%,transparent)}


/* === SHADOW RESPONSIVE TABLES === */
@media (max-width: 760px) {
  .history-table.shadow-responsive {
    display: block;
    background: transparent;
    border: 0;
    border-radius: 0;
    overflow: visible;
  }
  .history-table.shadow-responsive thead {
    display: none;
  }
  .history-table.shadow-responsive tbody {
    display: block;
  }
  .history-table.shadow-responsive tr {
    display: block;
    background: var(--bg-2);
    border: 1px solid var(--line-2);
    border-radius: var(--r-3);
    margin-bottom: 10px;
    padding: 12px 14px;
    transition: border-color var(--t-fast), background var(--t-fast);
  }
  .history-table.shadow-responsive tr:last-child {
    margin-bottom: 0;
  }
  .history-table.shadow-responsive tr.row,
  .history-table.shadow-responsive tr.shadow-closed-row {
    cursor: pointer;
  }
  .history-table.shadow-responsive tr.row:hover,
  .history-table.shadow-responsive tr.shadow-closed-row:hover {
    border-color: var(--line-3);
  }
  .history-table.shadow-responsive td {
    display: block;
    padding: 8px 0;
    border: 0;
    border-bottom: 1px solid var(--line);
    text-align: left !important;
    font-size: 12.5px;
  }
  .history-table.shadow-responsive td:first-child {
    padding-top: 0;
  }
  .history-table.shadow-responsive td:last-child {
    padding-bottom: 0;
    border-bottom: 0;
  }
  .history-table.shadow-responsive td::before {
    content: attr(data-label);
    display: block;
    font-family: var(--mono);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--txt-3);
    margin-bottom: 4px;
  }
  .history-table.shadow-responsive td:not([data-label])::before,
  .history-table.shadow-responsive td[data-label=""]::before {
    display: none;
  }
  .history-table.shadow-responsive td.num {
    font-size: 13px;
  }
  .history-table.shadow-responsive tr.shadow-closed-row td[data-label="Key"] {
    font-size: 15px;
    font-weight: 700;
    padding-bottom: 12px;
    margin-bottom: 4px;
    border-bottom: 1px solid var(--line-2);
  }
  .history-table.shadow-responsive tr.shadow-closed-row td[data-label="Key"]::before {
    display: none;
  }
  .history-table.shadow-responsive tr.shadow-closed-row td[data-label="Key"] > b {
    font-size: 15px;
    font-weight: 700;
  }
}
