/* Sentinel — Design-System (aus sentinel-tokens.css) */
:root, [data-theme="dark"]{
  --sn-bg:#0A0F14; --sn-surface-1:#10171E; --sn-surface-2:#16202A; --sn-surface-3:#1D2935;
  --sn-line:#22303D; --sn-line-strong:#34475A;
  --sn-text-1:#E6EDF3; --sn-text-2:#A9B7C4; --sn-text-3:#7E8E9D;
  --sn-brand:#3DFF8F; --sn-brand-ink:#3DFF8F;
  --sn-demo:#3B6E8F; --sn-demo-ink:#8FB8D4;
  --sn-real:#F2A93B; --sn-real-on:#1A1203; --sn-real-ink:#F5BC63;
  --sn-gain:#4CC38A; --sn-loss:#F26B78; --sn-warning:#FF8A50; --sn-focus:#C4B5FD;
}
[data-theme="light"]{
  --sn-bg:#F3F5F7; --sn-surface-1:#FFFFFF; --sn-surface-2:#EEF1F4; --sn-surface-3:#E3E8ED;
  --sn-line:#D9DFE5; --sn-line-strong:#B7C1CB;
  --sn-text-1:#0D151D; --sn-text-2:#3A4855; --sn-text-3:#5B6977;
  --sn-brand:#3DFF8F; --sn-brand-ink:#0B8A47; --sn-demo:#3B6E8F; --sn-demo-ink:#2F5A76;
  --sn-real:#F2A93B; --sn-real-on:#1A1203; --sn-real-ink:#8A5300;
  --sn-gain:#127A45; --sn-loss:#C0303F; --sn-warning:#C2410C; --sn-focus:#6D4AFF;
}
:root{
  --ui:"Geist",system-ui,sans-serif; --num:"Geist Mono",ui-monospace,monospace;
  --r-s:4px; --r-m:8px; --r-l:12px;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;
  --ease:cubic-bezier(.3,.7,.3,1);
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--sn-bg);color:var(--sn-text-1);font-family:var(--ui);
  font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
h1,h2,h3{margin:0;font-weight:500}
a{color:var(--sn-demo-ink);text-decoration:none}a:hover{color:var(--sn-text-1)}
:focus-visible{outline:2px solid var(--sn-focus);outline-offset:2px}
.num{font-family:var(--num);font-variant-numeric:tabular-nums}
.gain{color:var(--sn-gain)} .loss{color:var(--sn-loss)}
button{font:inherit;cursor:pointer}
input,select,textarea{font:inherit}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* ── Shell ── */
.shell{display:flex;min-height:100%}
.sidebar{width:232px;flex:none;background:var(--sn-bg);border-right:1px solid var(--sn-line);
  display:flex;flex-direction:column;padding:20px 14px;gap:24px;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:10px;padding:0 8px}
.brand .word{font-size:13px;font-weight:500;letter-spacing:.3em}
.nav{display:flex;flex-direction:column;gap:2px}
.nav a{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;
  border-radius:var(--r-m);font-size:14px;color:var(--sn-text-2)}
.nav a:hover{background:var(--sn-surface-1);color:var(--sn-text-1)}
.nav a.active{background:var(--sn-surface-2);color:var(--sn-text-1)}
.nav a .badge{font-family:var(--num);font-size:12px;color:var(--sn-text-3)}
.side-foot{margin-top:auto;display:flex;flex-direction:column;gap:6px;padding:12px;
  border:1px solid var(--sn-line);border-radius:var(--r-m);font-size:12px;color:var(--sn-text-3)}
.side-foot .u{color:var(--sn-text-2)}
.side-foot a{font-size:12px}

.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:20px 28px;border-bottom:1px solid var(--sn-line)}
.topbar .ttl{font-size:22px;font-weight:500}
.topbar .sub{font-size:13px;color:var(--sn-text-3);margin-top:3px}
.topbar .right{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.content{padding:24px 28px 56px;flex:1}

/* ── Pills / status ── */
.pill{display:inline-flex;align-items:center;gap:7px;font-size:13px;padding:6px 11px;border-radius:999px;
  background:var(--sn-surface-2);border:1px solid var(--sn-line-strong);color:var(--sn-text-2)}
.pill .dot{width:7px;height:7px;border-radius:50%;background:var(--sn-brand)}
.pill.sig-long{color:var(--sn-gain);border-color:rgba(76,195,138,.4);background:rgba(76,195,138,.12)}
.pill.sig-watch{color:var(--sn-real-ink);border-color:rgba(242,169,59,.4);background:rgba(242,169,59,.12)}
.pill.sig-flat{color:var(--sn-text-3)}
.pill.win{color:var(--sn-gain);background:rgba(76,195,138,.12)}
.pill.loss{color:var(--sn-loss);background:rgba(242,107,120,.12)}

/* ── Buttons ── */
.btn{font-size:13px;padding:9px 14px;border-radius:var(--r-m);border:1px solid var(--sn-line-strong);
  background:var(--sn-surface-2);color:var(--sn-text-1);display:inline-flex;align-items:center;gap:8px}
.btn:hover{border-color:var(--sn-text-3)}
.btn-primary{background:var(--sn-text-1);color:var(--sn-bg);border-color:var(--sn-text-1);font-weight:500}
.btn-primary:hover{opacity:.9}
.btn-sm{padding:6px 11px;font-size:12px}
.btn-danger{border-color:var(--sn-warning);background:rgba(255,138,80,.1);color:var(--sn-warning)}

/* ── Cards / grid ── */
.grid{display:grid;gap:16px}
.cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.card{background:var(--sn-surface-1);border:1px solid var(--sn-line);border-radius:var(--r-l);padding:18px 20px}
.row{display:flex;gap:16px;flex-wrap:wrap}
.col{flex:1;min-width:280px}
.sec-head{display:flex;align-items:center;gap:12px;margin:2px 0 14px}
.sec-head h2{font-size:15px}.sec-head .spacer{flex:1}
.stat .k{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--sn-text-3)}
.stat .v{font-family:var(--num);font-variant-numeric:tabular-nums;font-size:24px;font-weight:500;margin-top:7px}
.stat .d{font-size:11.5px;color:var(--sn-text-3);margin-top:3px}
.muted{color:var(--sn-text-3)} .hr{height:1px;background:var(--sn-line);margin:16px 0}
.kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--sn-line);font-size:13px}
.kv:last-child{border-bottom:none}.kv .k{color:var(--sn-text-2)}.kv .v{font-family:var(--num)}
.tag{font-family:var(--num);font-size:11px;background:var(--sn-surface-3);color:var(--sn-text-2);padding:2px 7px;border-radius:5px}

/* ── Controls ── */
.cfg{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}
.ctrl{display:flex;flex-direction:column;gap:6px}
.ctrl label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--sn-text-3);display:flex;justify-content:space-between}
.ctrl label .val{color:var(--sn-brand-ink);font-family:var(--num);text-transform:none;letter-spacing:0}
.ctrl input,.ctrl select,textarea{background:var(--sn-bg);border:1px solid var(--sn-line-strong);border-radius:var(--r-m);
  padding:9px 11px;color:var(--sn-text-1);font-size:13px}
.ctrl input:focus,.ctrl select:focus,textarea:focus{outline:2px solid var(--sn-focus);border-color:var(--sn-focus)}
textarea{width:100%;font-family:var(--num);font-size:12px;resize:vertical;min-height:90px}
input[type=range]{-webkit-appearance:none;appearance:none;height:5px;background:var(--sn-surface-3);border-radius:4px;padding:0}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;border-radius:50%;background:var(--sn-brand);cursor:pointer}
input[type=range]::-moz-range-thumb{width:15px;height:15px;border:none;border-radius:50%;background:var(--sn-brand);cursor:pointer}
.rule{background:var(--sn-bg);border:1px solid var(--sn-line);border-radius:var(--r-m);padding:14px 16px;font-family:var(--num);font-size:12.5px;line-height:1.9;color:var(--sn-text-2);white-space:pre-wrap}
.rule b{color:var(--sn-brand-ink);font-weight:500}.rule .kw{color:var(--sn-focus)}

/* ── Table ── */
.table-scroll{overflow-x:auto;border:1px solid var(--sn-line);border-radius:var(--r-l)}
table{width:100%;border-collapse:collapse;font-size:12.5px}
th{text-align:left;font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--sn-text-3);
  font-weight:500;padding:10px 12px;border-bottom:1px solid var(--sn-line);background:var(--sn-surface-2);white-space:nowrap}
td{padding:9px 12px;border-bottom:1px solid var(--sn-line);white-space:nowrap}
tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--sn-surface-2)}
td.n{font-family:var(--num);font-variant-numeric:tabular-nums}
.chart-wrap{position:relative;height:300px}.chart-wrap.sm{height:170px}

/* ── Login ── */
.login{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:24px}
.login .word{font-size:15px;font-weight:500;letter-spacing:.36em;padding-left:.36em}
.login .greet{font-size:28px;font-weight:500}
.login form{width:100%;max-width:340px;display:flex;flex-direction:column;gap:10px}
.login label{font-size:13px;color:var(--sn-text-2)}
.login input{height:46px;border-radius:var(--r-m);border:1px solid var(--sn-line-strong);background:var(--sn-surface-1);
  padding:0 14px;color:var(--sn-text-1)}
.login input:focus{border-color:var(--sn-focus);box-shadow:0 0 0 3px rgba(196,181,253,.18);outline:none}
.login .err{color:var(--sn-loss);font-size:13px;text-align:center;min-height:16px}
.login .foot{position:fixed;bottom:24px;left:0;right:0;text-align:center;font-size:12px;color:var(--sn-text-3);font-family:var(--num)}

/* ── Help ── */
.help-step{width:28px;height:28px;border-radius:7px;background:rgba(61,255,143,.12);color:var(--sn-brand-ink);
  font-family:var(--num);font-weight:500;display:grid;place-items:center;margin-bottom:10px}
.help-row{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--sn-line)}
.help-row:last-child{border-bottom:none}.help-ic{width:24px;flex:none;color:var(--sn-brand-ink)}
.help-p{color:var(--sn-text-2);font-size:12.5px;margin:6px 0 0}

/* ── Toast ── */
#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--sn-surface-3);border:1px solid var(--sn-line-strong);color:var(--sn-text-1);
  padding:10px 18px;border-radius:24px;font-size:13px;opacity:0;pointer-events:none;transition:all .25s var(--ease);z-index:60}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

@media(max-width:860px){
  .sidebar{display:none}
  .content{padding:18px 16px 44px}.topbar{padding:16px}
  .mobile-nav{display:flex;gap:4px;overflow-x:auto;padding:10px 14px;border-bottom:1px solid var(--sn-line)}
  .mobile-nav a{flex:none;font-size:12px;color:var(--sn-text-2);padding:7px 12px;border-radius:999px;border:1px solid var(--sn-line);white-space:nowrap}
  .mobile-nav a.active{color:var(--sn-text-1);background:var(--sn-surface-2)}
}
@media(min-width:861px){.mobile-nav{display:none}}
