﻿/* OptionPulse — flagship design system (light + dark) */

[data-theme="dark"]{
  --bg:#0b0e11;
  --bg-elevated:#12161c;
  --surface:#161a21;
  --surface-hover:#1c2129;
  --border:rgba(255,255,255,.08);
  --border-strong:rgba(255,255,255,.14);
  --text:#f5f6f8;
  --text-secondary:#8b95a5;
  --text-tertiary:#5c6570;
  --brand:#3861fb;
  --brand-soft:rgba(56,97,251,.14);
  --buy:#0ecb81;
  --buy-soft:rgba(14,203,129,.12);
  --buy-text:#0ecb81;
  --sell:#f6465d;
  --sell-soft:rgba(246,70,93,.12);
  --sell-text:#f6465d;
  --accent:#f0b90b;
  --shadow:0 8px 32px rgba(0,0,0,.4);
  --chart-bg:#12161c;
  --chart-grid:rgba(255,255,255,.06);
  --chart-text:#8b95a5;
  --tape-bg:#0b0e11;
  --nav-bg:rgba(11,14,17,.92);
  --overlay:rgba(0,0,0,.55);
  --input-bg:rgba(255,255,255,.04);
  --atm-bg:rgba(56,97,251,.08);
  --atm-border:rgba(56,97,251,.35);
}

[data-theme="light"]{
  --bg:#ffffff;
  --bg-elevated:#f7f8fa;
  --surface:#ffffff;
  --surface-hover:#f0f2f5;
  --border:rgba(0,0,0,.08);
  --border-strong:rgba(0,0,0,.12);
  --text:#0b0e11;
  --text-secondary:#5e6673;
  --text-tertiary:#929aa5;
  --brand:#3861fb;
  --brand-soft:rgba(56,97,251,.1);
  --buy:#0ecb81;
  --buy-soft:rgba(14,203,129,.1);
  --buy-text:#0a9b63;
  --sell:#f6465d;
  --sell-soft:rgba(246,70,93,.08);
  --sell-text:#e03e52;
  --accent:#f0b90b;
  --shadow:0 4px 24px rgba(0,0,0,.06);
  --chart-bg:#ffffff;
  --chart-grid:rgba(0,0,0,.06);
  --chart-text:#929aa5;
  --tape-bg:#f7f8fa;
  --nav-bg:rgba(255,255,255,.94);
  --overlay:rgba(0,0,0,.4);
  --input-bg:#f7f8fa;
  --atm-bg:rgba(56,97,251,.06);
  --atm-border:rgba(56,97,251,.25);
}

:root{
  --radius-sm:6px;
  --radius:10px;
  --radius-lg:14px;
  --radius-xl:18px;
  --max:1200px;
  --sidebar:240px;
  --font:"DM Sans",Inter,system-ui,-apple-system,sans-serif;
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;min-height:100vh;font-family:var(--font);font-size:14px;line-height:1.5;
  color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;
}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:none;background:none}
a{text-decoration:none;color:inherit}

/* Layout */
.app{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh}
main{min-width:0;display:flex;flex-direction:column;min-height:100vh}
.main-body{flex:1;padding:var(--space-4) var(--space-5);max-width:var(--max);margin:0 auto;width:100%}
.page{display:none;animation:fadeIn .2s ease}.page.active{display:block}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* Sidebar */
.sidebar{
  position:sticky;top:0;height:100vh;padding:var(--space-4);
  border-right:1px solid var(--border);background:var(--bg-elevated);
  display:flex;flex-direction:column;gap:var(--space-2);overflow:auto;
}
.brand{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-2) var(--space-4);border-bottom:1px solid var(--border);margin-bottom:var(--space-2)}
.logo{
  width:36px;height:36px;border-radius:var(--radius);
  background:linear-gradient(135deg,var(--brand),#5b7cfa);
  display:grid;place-items:center;flex-shrink:0;
}
.logo::after{content:"OP";font-size:11px;font-weight:700;color:#fff;letter-spacing:-.02em}
.brand h1{margin:0;font-size:15px;font-weight:700;letter-spacing:-.03em}
.brand span{display:block;font-size:10px;color:var(--text-tertiary);font-weight:600;margin-top:2px}
.nav{display:grid;gap:2px;flex:1}
.nav button,.bottom-nav button{
  display:flex;align-items:center;gap:var(--space-3);padding:10px var(--space-3);
  width:100%;text-align:left;
  border-radius:var(--radius);color:var(--text-secondary);font-weight:600;font-size:13px;
  transition:background .15s,color .15s;
}
.nav button:hover{background:var(--surface-hover);color:var(--text)}
.nav button.active{background:var(--brand-soft);color:var(--brand)}
.nav .ico,.bottom-nav .ico{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}
.nav .ico svg,.bottom-nav .ico svg{width:18px;height:18px}
.side-widget{
  padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);
  background:var(--surface);margin-top:auto;
}
.side-widget b{display:block;font-size:12px;font-weight:600;margin-bottom:var(--space-2)}
.risk-mini{display:grid;gap:var(--space-2)}
.risk-row{display:flex;justify-content:space-between;font-size:12px;color:var(--text-secondary)}
.risk-row strong{color:var(--text);font-weight:600}

/* Header */
.app-header{
  display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);
  padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border);
  background:var(--bg-elevated);position:sticky;top:0;z-index:30;
}
.app-header-left{display:flex;align-items:center;gap:var(--space-3)}
.app-header-right{display:flex;align-items:center;gap:var(--space-2)}
.menu-toggle.icon-btn{display:none}
.mobile-brand{display:none;font-weight:700;font-size:15px;letter-spacing:-.03em}
.tag-paper{
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  padding:3px 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand);
}
.balance-chip{
  display:flex;flex-direction:column;align-items:flex-end;gap:1px;
  padding:6px 12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);
}
.balance-chip span{font-size:10px;color:var(--text-tertiary);font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.balance-chip strong{font-size:14px;font-weight:700;letter-spacing:-.02em}
.icon-btn{
  width:36px;height:36px;border-radius:var(--radius);border:1px solid var(--border);
  background:var(--surface);color:var(--text-secondary);display:grid;place-items:center;
  transition:background .15s,color .15s;
}
.icon-btn:hover{background:var(--surface-hover);color:var(--text)}
.topbar{display:none}

/* Market tape */
.market-ticker-wrap{border-bottom:1px solid var(--border);background:var(--tape-bg);overflow:hidden;position:relative}
.market-data-badge{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:10px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);z-index:2;text-decoration:none}
.market-data-badge.demo-link{color:#f0b429;border-color:rgba(240,180,41,.4);cursor:pointer}
.market-data-badge.demo-link:hover{background:rgba(240,180,41,.12);color:#f5c842}
.market-data-badge.live{color:var(--buy);border-color:rgba(14,203,129,.35)}
.market-ticker-wrap.hidden{display:none}
.market-ticker{height:36px;overflow:hidden;display:flex;align-items:center}
.tape-track{width:100%;overflow:hidden}
.tape-inner{display:flex;width:max-content;animation:tapeScroll 40s linear infinite}
.tape-inner:hover{animation-play-state:paused}
.tape-item{display:flex;align-items:center;gap:var(--space-2);padding:0 16px;border-right:1px solid var(--border);white-space:nowrap}
.tape-item b{font-size:10px;color:var(--text-tertiary);font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.tape-item strong{font-size:13px;font-weight:600}
.tape-item .tape-pct{font-size:12px;font-weight:600;min-width:48px}
@keyframes tapeScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* Typography & utilities */
h2{font-size:28px;font-weight:700;letter-spacing:-.04em;margin:0 0 var(--space-3);line-height:1.15}
h3{font-size:18px;font-weight:700;letter-spacing:-.03em;margin:0 0 var(--space-2)}
h4{font-size:14px;font-weight:600;margin:0 0 var(--space-2)}
p{margin:0;line-height:1.55}
.lead{font-size:15px;color:var(--text-secondary);max-width:560px}
.muted{color:var(--text-secondary)}
.greenText,.up{color:var(--buy-text)!important}
.redText,.down{color:var(--sell-text)!important}
.section{margin-top:var(--space-5)}
.head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4)}
.head p{margin:4px 0 0;color:var(--text-secondary);font-size:13px}
.row,.btns{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}
.empty{padding:var(--space-6);text-align:center;color:var(--text-tertiary);font-size:13px;border:1px dashed var(--border);border-radius:var(--radius-lg);background:var(--surface)}

/* Cards */
.card{min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}
.pad{padding:var(--space-5)}.pad-lg{padding:var(--space-6)}
.mini-card{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}
.stat{padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}
.stat span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);font-weight:600;margin-bottom:4px}
.stat strong{font-size:18px;font-weight:700;letter-spacing:-.03em}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3)}
.grid2>*,.grid3>*,.grid4>*{min-width:0}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);
  padding:10px 16px;border-radius:var(--radius);font-weight:600;font-size:13px;
  transition:opacity .15s,transform .1s;
}
.btn:active{transform:scale(.98)}
.btn.primary{background:var(--brand);color:#fff}
.btn.primary:hover{opacity:.92}
.btn.soft{background:var(--surface-hover);color:var(--text);border:1px solid var(--border)}
.btn.green{background:var(--buy);color:#fff}
.btn.red{background:var(--sell);color:#fff}
.btn-sm{padding:6px 10px;font-size:12px}

/* Segmented control */
.seg{
  display:inline-flex;padding:3px;border-radius:var(--radius);background:var(--input-bg);
  border:1px solid var(--border);gap:2px;
}
.seg button{
  padding:6px 12px;border-radius:var(--radius-sm);font-size:12px;font-weight:600;
  color:var(--text-secondary);white-space:nowrap;
}
.seg button.active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.08)}
[data-theme="dark"] .seg button.active{box-shadow:0 1px 3px rgba(0,0,0,.3)}

/* Forms */
.field{display:grid;gap:6px}
.field label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary)}
.input,select,textarea{
  width:100%;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--border);
  background:var(--input-bg);outline:none;transition:border-color .15s;
}
.input:focus,select:focus,textarea:focus{border-color:var(--brand)}
select option{background:var(--surface);color:var(--text)}
.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3)}
.form-grid.three{grid-template-columns:repeat(3,1fr)}
.tabs,.chip-row{display:flex;gap:var(--space-2);overflow:auto;padding-bottom:2px}
.tabs button,.chip{
  padding:8px 14px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;
  border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);
}
.tabs button.active,.chip.active{background:var(--brand);color:#fff;border-color:var(--brand)}
.chip.orange.active{background:var(--brand);border-color:var(--brand)}
#strategyTabs{flex-wrap:wrap;overflow:visible}
#strategyTabs button{flex:1 1 132px;text-align:center}

/* Badges */
.badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--border);color:var(--text-secondary)}
.badge.green{background:var(--buy-soft);color:var(--buy-text);border-color:transparent}
.badge.red{background:var(--sell-soft);color:var(--sell-text);border-color:transparent}
.badge.blue{background:var(--brand-soft);color:var(--brand);border-color:transparent}
.badge.orange,.badge.violet{background:var(--brand-soft);color:var(--brand);border-color:transparent}
.tag{display:inline-flex;padding:4px 10px;border-radius:999px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;background:var(--brand-soft);color:var(--brand)}

/* Portfolio */
.page-hero{margin-bottom:var(--space-4)}
.page-hero h1{margin:0;font-size:22px;font-weight:700;letter-spacing:-.03em}
.page-hero p{margin:4px 0 0;font-size:13px;color:var(--text-secondary)}
.portfolio-tabs{display:flex;gap:var(--space-4);border-bottom:1px solid var(--border);margin-bottom:var(--space-4)}
.portfolio-tabs button{
  padding:var(--space-2) 0 var(--space-3);font-weight:600;font-size:13px;color:var(--text-tertiary);
  border-bottom:2px solid transparent;margin-bottom:-1px;
}
.portfolio-tabs button.active{color:var(--text);border-bottom-color:var(--brand)}
.portfolio-tabs em{font-style:normal;font-size:11px;margin-left:6px;padding:2px 6px;border-radius:999px;background:var(--input-bg);font-weight:600}
.pnl-hero{
  padding:var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--border);
  background:var(--surface);margin-bottom:var(--space-3);
}
.pnl-hero span{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary)}
.pnl-hero strong{display:block;font-size:32px;font-weight:700;letter-spacing:-.04em;margin-top:4px}
.portfolio-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2);margin-bottom:var(--space-4)}
.portfolio-meta>div{padding:var(--space-3);border-radius:var(--radius);border:1px solid var(--border);background:var(--surface)}
.portfolio-meta span{display:block;font-size:10px;font-weight:600;text-transform:uppercase;color:var(--text-tertiary);letter-spacing:.05em}
.portfolio-meta strong{font-size:14px;font-weight:700}
.portfolio-list{display:grid;gap:var(--space-2)}
.pos-row{padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}
.pos-top{display:flex;align-items:center;gap:var(--space-2);font-size:12px;color:var(--text-secondary);margin-bottom:6px}
.pos-qty{font-weight:700}
.pos-main{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-2);margin-bottom:4px}
.pos-main b{font-size:14px;font-weight:600}
.pos-main strong{font-size:15px;font-weight:700}
.pos-bottom{display:flex;justify-content:space-between;font-size:11px;color:var(--text-tertiary)}
.pos-actions{margin-top:var(--space-2);display:flex;justify-content:flex-end}

/* Option chain — Deribit / Binance style */
.chain-page{display:flex;flex-direction:column;gap:var(--space-3);height:calc(100vh - 140px);min-height:400px}
.chain-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}
.chain-spot-block strong{font-size:20px;font-weight:700;letter-spacing:-.03em}
.chain-spot-block span{font-size:12px;font-weight:600;margin-left:var(--space-2)}
.chain-metrics{display:flex;gap:var(--space-4);flex-wrap:wrap}
.chain-metrics div{font-size:12px;color:var(--text-secondary)}
.chain-metrics b{color:var(--text);font-weight:700;margin-left:4px}
.chain-filters{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}
.chain-filters .input,.chain-filters select{width:auto;min-width:100px;padding:8px 10px;font-size:12px}
.oc-wrap{
  flex:1;min-height:0;display:flex;flex-direction:column;
  border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden;
}
.oc-head{
  display:grid;grid-template-columns:1fr 72px 1fr;gap:0;
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  border-bottom:1px solid var(--border);background:var(--bg-elevated);flex-shrink:0;
}
.oc-head-calls,.oc-head-puts{display:grid;grid-template-columns:1fr 1fr 64px;padding:8px 10px}
.oc-head-calls span:first-child,.oc-head-puts span:last-child{text-align:left}
.oc-head-calls span:nth-child(2),.oc-head-puts span:nth-child(2){text-align:center}
.oc-head-calls span:last-child,.oc-head-puts span:first-child{text-align:right}
.oc-head-calls{color:var(--buy-text)}
.oc-head-puts{color:var(--sell-text);direction:rtl}
.oc-head-puts span{direction:ltr;display:block}
.oc-head-strike{display:grid;place-items:center;color:var(--text-tertiary);border-left:1px solid var(--border);border-right:1px solid var(--border)}
.oc-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}
.oc-row{
  display:grid;grid-template-columns:1fr 72px 1fr;min-height:40px;
  border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s;
}
.oc-row:hover{background:var(--surface-hover)}
.oc-row.atm{background:var(--atm-bg);box-shadow:inset 0 0 0 1px var(--atm-border)}
.oc-row.selected{background:var(--brand-soft)}
.oc-call,.oc-put{display:grid;grid-template-columns:1fr 1fr 64px;align-items:center;padding:0 10px;gap:4px}
.oc-put{direction:rtl}
.oc-put>*{direction:ltr}
.oc-strike{display:grid;place-items:center;font-weight:700;font-size:13px;border-left:1px solid var(--border);border-right:1px solid var(--border)}
.oc-oi{font-size:11px;color:var(--text-tertiary);font-variant-numeric:tabular-nums}
.oc-ltp{
  font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;padding:4px 6px;
  border-radius:var(--radius-sm);border:none;background:transparent;cursor:pointer;text-align:center;
}
.oc-ltp.ce{color:var(--buy-text)}
.oc-ltp.pe{color:var(--sell-text)}
.oc-ltp.active-ce{background:var(--buy-soft)}
.oc-ltp.active-pe{background:var(--sell-soft)}
.oc-actions{display:flex;gap:2px;justify-content:flex-end}
.oc-actions button{
  width:28px;height:26px;border-radius:var(--radius-sm);font-size:10px;font-weight:700;
  border:1px solid var(--border);
}
.oc-actions .oc-buy{color:var(--buy-text);background:var(--buy-soft);border-color:transparent}
.oc-actions .oc-sell{color:var(--sell-text);background:var(--sell-soft);border-color:transparent}

/* Trade — broker terminal layout */
#trade.page.active{display:flex!important;flex-direction:column;flex:1;min-height:0;margin:0;max-width:100%;overflow:hidden}
.trade-pro{
  display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto auto auto;
  flex:1;min-height:0;width:100%;max-width:100%;margin:0;overflow:hidden;
  background:var(--bg);
}
.trade-pro > *{min-width:0;max-width:100%}
.trade-top{display:flex;align-items:flex-start;gap:6px;padding:8px 10px 4px;flex-shrink:0;background:var(--bg-elevated);border-bottom:1px solid var(--border)}
.trade-back{
  flex-shrink:0;width:34px;height:34px;border:0;background:transparent;color:var(--text);
  display:grid;place-items:center;border-radius:var(--radius);cursor:pointer;padding:0;margin-top:2px;
}
.trade-top-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.trade-top-row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.trade-index-tabs{display:flex;gap:2px;flex:1 1 auto;min-width:120px;overflow-x:auto;scrollbar-width:none}
.trade-index-tabs::-webkit-scrollbar{display:none}
.trade-index-tabs button{
  flex-shrink:0;padding:5px 10px;border:0;background:transparent;color:var(--text-tertiary);
  font-size:12px;font-weight:700;border-radius:var(--radius-sm);position:relative;cursor:pointer;
}
.trade-index-tabs button.active{color:var(--buy-text)}
.trade-index-tabs button.active::after{
  content:"";position:absolute;left:6px;right:6px;bottom:0;height:2px;border-radius:2px;background:var(--buy);
  box-shadow:0 0 6px var(--buy);
}
.trade-spot-block{text-align:right;line-height:1.2;padding-right:2px}
.trade-spot-block strong{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}
.trade-spot-block span{font-size:10px;font-weight:600}
.tf-select{
  width:auto;max-width:4.25rem;min-width:3.25rem;flex:0 0 auto;
  padding:4px 22px 4px 8px;border-radius:var(--radius-sm);border:1px solid var(--border);
  background:var(--surface);color:var(--text);font-size:11px;font-weight:600;
  appearance:auto;-webkit-appearance:menulist;
}
.strike-scroll-wrap{
  padding:4px 10px 6px;flex-shrink:0;background:var(--bg-elevated);border-bottom:1px solid var(--border);
  overflow:hidden;
}
.strike-scroll{
  display:flex;gap:6px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;scroll-behavior:smooth;overscroll-behavior-x:contain;
}
.strike-scroll::-webkit-scrollbar{display:none}
.strike-pill{
  flex:0 0 auto;padding:6px 14px;border-radius:999px;
  border:1px solid var(--border);background:var(--surface);font-size:12px;font-weight:600;
  color:var(--text-secondary);cursor:pointer;position:relative;
}
.strike-pill.atm{color:var(--brand)}
.strike-pill.active{
  border-color:var(--brand);color:var(--brand);background:var(--brand-soft);
  box-shadow:inset 0 -2px 0 var(--brand);
}
.cp-cards{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:6px 10px;flex-shrink:0;background:var(--bg)}
.cp-card{
  display:flex;align-items:flex-start;gap:6px;padding:8px;border-radius:10px;
  border:1px solid var(--border);background:var(--surface);text-align:left;cursor:pointer;font:inherit;color:inherit;min-width:0;
}
.cp-card.ce.active{border-color:var(--buy);background:linear-gradient(135deg,rgba(14,203,129,.08),transparent)}
.cp-card.pe.active{border-color:var(--sell);background:linear-gradient(135deg,rgba(246,70,93,.08),transparent)}
.cp-card-icon{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;flex-shrink:0}
.cp-card-icon.ce-icon{background:rgba(14,203,129,.15);color:var(--buy-text)}
.cp-card-icon.pe-icon{background:rgba(246,70,93,.15);color:var(--sell-text)}
.cp-card-body{min-width:0;flex:1}
.cp-card-label{display:block;font-size:9px;font-weight:700;color:var(--text-tertiary);letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-card-price{display:block;font-size:14px;font-weight:700;margin:1px 0;font-variant-numeric:tabular-nums}
.cp-card.ce .cp-card-price{color:var(--buy-text)}
.cp-card.pe .cp-card-price{color:var(--sell-text)}
.cp-card-chg{display:block;font-size:9px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trade-chart-stage{min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--chart-bg);border-top:1px solid var(--border);border-bottom:1px solid var(--border);width:100%}
.chart-inner{flex:1;min-height:0;position:relative;display:flex;flex-direction:column;overflow:hidden;width:100%}
.trade-chart-main{flex:1;min-height:0!important;width:100%!important;max-width:100%!important;border-radius:0;position:relative;overflow:hidden}
.chart-toolbar{
  display:flex;align-items:center;justify-content:space-between;padding:6px 10px;flex-shrink:0;
  background:var(--chart-bg);border-bottom:1px solid var(--border);
}
.chart-toolbar span{font-size:11px;font-weight:600;color:var(--text-secondary)}
.chart-settings-btn{width:28px;height:28px;border:1px solid var(--border);background:var(--surface)}
.chart-pnl-float{
  position:absolute;left:10px;bottom:10px;z-index:5;padding:4px 10px;border-radius:6px;
  background:var(--surface);border:1px solid var(--border);font-size:11px;font-weight:600;pointer-events:none;
}
.chart-pnl-float.hidden{display:none}
.greeks-bar{
  display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:8px 10px;flex-shrink:0;
  background:var(--bg-elevated);border-bottom:1px solid var(--border);
}
.greeks-bar div{text-align:center}
.greeks-bar span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-weight:600;margin-bottom:2px}
.greeks-bar b{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
.g-delta{color:var(--buy-text)}
.g-gamma{color:var(--brand)}
.g-theta{color:var(--sell-text)}
.g-iv{color:#a855f7}
.order-dock{
  display:grid;grid-template-columns:1fr 1fr 1.1fr;gap:8px;padding:8px 10px;flex-shrink:0;
  background:var(--bg-elevated);border-bottom:1px solid var(--border);align-items:end;
}
.dock-cell{min-width:0}
.dock-label{display:block;font-size:9px;font-weight:600;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:4px;letter-spacing:.04em}
.dock-stepper{display:flex;align-items:center;justify-content:center;gap:6px;padding:6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}
.dock-stepper strong{min-width:20px;text-align:center;font-size:14px}
.dock-stepper .step-btn{width:26px;height:26px;font-size:14px}
.qty-pill{
  display:flex;align-items:center;justify-content:space-between;gap:4px;padding:6px 10px;
  border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);
}
.qty-pill strong{font-size:14px;font-weight:700}
.qty-edit{border:0;background:transparent;color:var(--text-tertiary);font-size:14px;cursor:pointer;padding:2px}
.dock-select{width:100%;padding:7px 8px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:12px;font-weight:600}
.trade-actions-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 10px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0));flex-shrink:0;background:var(--bg-elevated)}
.btn-buy-market,.btn-sell-market{
  padding:14px 8px;border:0;border-radius:12px;font-size:13px;font-weight:800;letter-spacing:.02em;cursor:pointer;color:#fff;
}
.btn-buy-market{background:var(--buy)}
.btn-sell-market{background:var(--sell)}
.tv-chart.trade-chart-main{height:auto!important;min-height:0!important;flex:1;border-radius:0}
.sheet{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;justify-content:flex-end}
.sheet[hidden]{display:none!important}
.sheet-backdrop{position:absolute;inset:0;background:var(--overlay)}
.sheet-panel{
  position:relative;background:var(--surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;
  padding:var(--space-4);max-height:85vh;display:flex;flex-direction:column;border-top:1px solid var(--border);
}
.order-sheet-panel{max-height:88vh}
.order-sheet-title-wrap{min-width:0}
.order-sheet-title-wrap small{display:block;font-size:11px;color:var(--text-tertiary);margin-top:2px}
.order-sheet-scroll{flex:1;overflow-y:auto;min-height:0;display:grid;gap:var(--space-3);padding-right:2px;margin-bottom:var(--space-3)}
.order-ltp-pill{
  display:flex;align-items:center;justify-content:space-between;padding:10px 12px;
  border-radius:var(--radius);background:var(--input-bg);border:1px solid var(--border);
}
.order-ltp-pill span{font-size:11px;color:var(--text-tertiary);font-weight:600}
.order-ltp-pill strong{font-size:18px;font-weight:700}
.field-block{display:grid;gap:6px}
.field-block>span{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary)}
.avg-section{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3);background:var(--bg-elevated)}
.avg-head-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}
.avg-head-row b{display:block;font-size:13px}
.avg-head-row small{display:block;font-size:11px;color:var(--text-tertiary);margin-top:2px}
.toggle-switch{position:relative;display:inline-flex;align-items:center;cursor:pointer}
.toggle-switch input{position:absolute;opacity:0;width:0;height:0}
.toggle-ui{
  width:40px;height:22px;border-radius:999px;background:var(--input-bg);border:1px solid var(--border);
  transition:background .2s;position:relative;
}
.toggle-ui::after{
  content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;
  background:var(--text-tertiary);transition:transform .2s,background .2s;
}
.toggle-switch input:checked+.toggle-ui{background:var(--brand);border-color:var(--brand)}
.toggle-switch input:checked+.toggle-ui::after{transform:translateX(18px);background:#fff}
.avg-level-row{display:grid;grid-template-columns:1fr 72px 32px;gap:var(--space-2);align-items:center;margin-bottom:var(--space-2)}
.avg-level-row .avg-lots{text-align:center}
.avg-rm{width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);font-size:16px;color:var(--text-tertiary)}
.avg-add-btn{width:100%;margin-top:var(--space-2)}
.limit-field{margin-top:-4px}
.avg-head{margin-bottom:var(--space-2)}
.avg-hint{font-size:11px;margin:var(--space-2) 0 0;line-height:1.4}
.order-summary{
  padding:10px 12px;border-radius:var(--radius);background:var(--brand-soft);
  font-size:12px;color:var(--text-secondary);line-height:1.5;
}
.order-summary strong{color:var(--text)}
#confirmOrder{width:100%;flex-shrink:0}
#confirmOrder.buy-mode{background:var(--buy);color:#fff}
#confirmOrder.sell-mode{background:var(--sell);color:#fff}
.sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}
.sheet-toolbar{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3);align-items:center}
.sheet-chain{flex:1;overflow-y:auto;min-height:120px;max-height:40vh;border:1px solid var(--border);border-radius:var(--radius)}
.sheet-chain .chain-row{grid-template-columns:1fr 56px 1fr}
.tv-chart{height:200px;width:100%;border-radius:var(--radius-sm);overflow:hidden;background:var(--chart-bg)}
.tv-chart.trade-chart-main{height:auto!important;min-height:0!important;flex:1;border-radius:0}
.chain-row{display:grid;grid-template-columns:1fr 56px 1fr;align-items:center;padding:8px 10px;border-bottom:1px solid var(--border);min-height:40px;cursor:pointer}
.chain-row.atm{background:var(--atm-bg)}
.chain-row.selected{background:var(--brand-soft)}
.chain-ltp{font-size:13px;font-weight:600;padding:4px;border-radius:var(--radius-sm);cursor:pointer;width:100%;border:0;background:transparent;font:inherit}
.chain-ltp.ce{text-align:left;color:var(--buy-text)}
.chain-ltp.pe{text-align:right;color:var(--sell-text)}
.chain-ltp.active-ce{background:var(--buy-soft)}
.chain-ltp.active-pe{background:var(--sell-soft)}
.chain-strike{text-align:center;font-weight:700;font-size:12px}
.lot-stepper{display:flex;align-items:center;gap:var(--space-2);padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}
.step-btn{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--input-bg);font-size:16px;font-weight:600}
.lot-display{font-size:12px;color:var(--text-secondary);text-align:center}
.lot-display strong{color:var(--text);font-size:14px}
.sl-tgt-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}
.field-inline{display:grid;gap:4px}
.field-inline span{font-size:10px;font-weight:600;text-transform:uppercase;color:var(--text-tertiary)}
.field-inline .input{padding:8px;font-size:13px}
.positions{display:grid;gap:var(--space-2)}
.position{padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}
.position small{color:var(--text-tertiary);font-size:11px}

/* Tables */
.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}
table{width:100%;border-collapse:collapse;min-width:600px;font-size:12px}
th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}
th{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-weight:600;background:var(--bg-elevated)}
tr:last-child td{border-bottom:0}
.atm{background:var(--atm-bg)!important}
.ce{color:var(--buy-text)}.pe{color:var(--sell-text)}
.trade-btn{padding:4px 8px;border-radius:var(--radius-sm);font-size:11px;font-weight:600}
.buybtn{background:var(--buy-soft);color:var(--buy-text)}
.sellbtn{background:var(--sell-soft);color:var(--sell-text)}

/* Learn, onboarding, misc */
.learn-shell{display:grid;gap:var(--space-4)}
.learn-hero{
  display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:var(--space-4);align-items:stretch;
  padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-lg);
  background:linear-gradient(135deg,var(--surface),var(--bg-elevated));
}
.learn-hero h1{font-size:30px;line-height:1.1;margin:10px 0 8px;letter-spacing:-.04em}
.learn-hero p{max-width:700px;color:var(--text-secondary)}
.learn-hero-stat{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);display:grid;gap:var(--space-2);align-content:center}
.learn-hero-stat span{font-size:11px;text-transform:uppercase;color:var(--text-tertiary);font-weight:700;letter-spacing:.06em}
.learn-hero-stat strong{font-size:36px;line-height:1;font-weight:800}
.learn-tabs,.learn-level-tabs{
  display:flex;gap:var(--space-2);overflow:auto;padding:3px;border:1px solid var(--border);
  border-radius:var(--radius);background:var(--bg-elevated);
  scrollbar-width:none;
}
.learn-tabs::-webkit-scrollbar,.learn-level-tabs::-webkit-scrollbar,.reading-chapter-list::-webkit-scrollbar{display:none}
.learn-tabs button,.learn-level-tabs button{
  flex:0 0 auto;padding:9px 13px;border-radius:var(--radius-sm);color:var(--text-secondary);
  font-size:12px;font-weight:700;white-space:nowrap;
}
.learn-tabs button.active,.learn-level-tabs button.active{background:var(--brand);color:#fff}
.learn-tab-panel{display:none}.learn-tab-panel.active{display:block}
.learn-progress{height:7px;border-radius:999px;background:var(--input-bg);overflow:hidden}
.learn-progress span{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--brand),var(--buy))}
.learn-dashboard{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:var(--space-3);margin-bottom:var(--space-4)}
.learn-continue h2{font-size:28px;margin-top:10px}
.learn-meta-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);font-size:12px;color:var(--text-tertiary);flex-wrap:wrap}
.learn-stats-card{display:grid;gap:var(--space-2)}
.learn-stats-card>div{
  padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);
  background:var(--surface);
}
.learn-stats-card span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);font-weight:700}
.learn-stats-card strong{font-size:22px;font-weight:800}
.learn-course-layout{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(0,1.1fr);gap:var(--space-3);margin-top:var(--space-4)}
.learn-path-grid{display:grid;gap:var(--space-2)}
.learn-path-card{
  display:grid;gap:var(--space-2);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);
  background:var(--surface);text-align:left;color:inherit;transition:border-color .15s,background .15s;
}
.learn-path-card:hover,.learn-path-card.active{border-color:var(--brand);background:var(--brand-soft)}
.learn-path-card h3{margin:0}.learn-path-card p{font-size:13px;color:var(--text-secondary)}
.learn-path-top,.learn-panel-head,.material-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3)}
.learn-ring{
  width:58px;height:58px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:800;
  border:1px solid var(--border);background:var(--brand-soft);color:var(--brand);flex-shrink:0;
}
.learn-lesson-panel{align-self:start;position:sticky;top:78px}
.learn-lesson-list{display:grid;gap:var(--space-2);margin-top:var(--space-4)}
.learn-lesson-row{
  display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:var(--space-2);
  padding:10px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elevated);
  color:inherit;text-align:left;
}
.lesson-number{width:30px;height:30px;border-radius:var(--radius-sm);display:grid;place-items:center;background:var(--input-bg);font-weight:800;color:var(--text-secondary)}
.lesson-title{min-width:0}.lesson-title b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lesson-title small{display:block;color:var(--text-tertiary);font-size:11px}
.learn-lesson-row.completed .lesson-number{background:var(--buy-soft);color:var(--buy-text)}
.learn-lesson-row.locked .lesson-number{background:var(--sell-soft);color:var(--sell-text)}
.lock-badge,.done-badge{font-style:normal;font-size:10px;font-weight:800;border-radius:999px;padding:3px 7px}
.lock-badge{background:var(--sell-soft);color:var(--sell-text)}.done-badge{background:var(--buy-soft);color:var(--buy-text)}
.learn-upgrade-card{margin-top:var(--space-4);padding:var(--space-3);border-radius:var(--radius);background:var(--brand-soft);border:1px solid var(--border)}
.learn-upgrade-card p{font-size:12px;color:var(--text-secondary);margin:3px 0 10px}
.reading-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:var(--space-3)}
.reading-chapters{align-self:start;position:sticky;top:78px}
.reading-chapter-list{display:grid;gap:4px;margin-top:var(--space-3)}
.reading-chapter-list button{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:9px;border-radius:var(--radius-sm);text-align:left;color:var(--text-secondary)}
.reading-chapter-list button.active{background:var(--brand-soft);color:var(--brand)}
.reading-chapter-list span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reading-chapter-list b{font-size:10px}
.reading-card{overflow:hidden}
.reading-head{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-5);border-bottom:1px solid var(--border)}
.reading-head h2{font-size:30px;margin:10px 0 4px}
.reading-progress{border-radius:0;height:5px}
.reading-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--space-4);padding:var(--space-5)}
.reading-copy{display:grid;gap:var(--space-4);align-content:start}
.reading-copy h3{font-size:24px}.reading-copy p{font-size:15px;color:var(--text-secondary)}
.slide-count{width:max-content;padding:4px 9px;border-radius:999px;background:var(--input-bg);font-size:11px;font-weight:800;color:var(--text-tertiary)}
.takeaway-box,.quiz-card,.reading-info-grid>div{
  padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);
}
.takeaway-box{border-color:rgba(14,203,129,.3);background:var(--buy-soft);display:grid;gap:5px}
.takeaway-box span{color:var(--text)}
.reading-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}
.reading-info-grid b,.quiz-card b{display:block;margin-bottom:4px}
.reading-info-grid p,.quiz-card p{font-size:13px}
.quiz-options{display:grid;gap:var(--space-2);margin:var(--space-3) 0}
.quiz-options button{padding:10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);text-align:left;color:var(--text)}
.quiz-options button.correct{border-color:rgba(14,203,129,.45);background:var(--buy-soft);color:var(--buy-text)}
.quiz-options button.wrong{border-color:rgba(246,70,93,.45);background:var(--sell-soft);color:var(--sell-text)}
.reading-actions{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border);background:var(--bg-elevated)}
.reading-locked{max-width:760px;margin:0 auto}
.material-grid,.indicator-grid,.progress-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}
.materials-head{display:flex;justify-content:space-between;gap:var(--space-3);align-items:center;margin-bottom:var(--space-3)}
.material-card{
  display:grid;gap:var(--space-2);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);
}
.material-card.unlocked{border-color:rgba(14,203,129,.35)}.material-card p,.indicator-detail p{color:var(--text-secondary);font-size:13px}
.learn-note{margin-top:var(--space-3);padding:var(--space-3);border-radius:var(--radius);border:1px dashed var(--border);color:var(--text-secondary);background:var(--input-bg)}
.indicator-card{display:grid;gap:var(--space-3)}
.indicator-icon{width:42px;height:42px;border-radius:var(--radius);display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);font-weight:800}
.indicator-detail{padding:var(--space-3);border-radius:var(--radius);background:var(--bg-elevated)}
.progress-line{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);padding:8px 0;border-bottom:1px solid var(--border);color:var(--text-secondary)}
.progress-line:last-child{border-bottom:0}
.learn-visual{
  min-height:280px;border:1px solid var(--border);border-radius:var(--radius-lg);background:radial-gradient(circle at 20% 10%,var(--brand-soft),transparent 32%),var(--chart-bg);
  display:grid;place-items:center;padding:var(--space-4);overflow:hidden;
}
.visual-split,.compare-visual,.iv-visual{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);width:100%}
.visual-split>div,.compare-visual>div,.iv-visual>div,.delta-visual,.margin-visual,.spread-visual,.risk-visual,.psych-visual,.indicator-visual,.curve-visual,.payoff-visual,.breakout-visual{
  min-height:120px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);display:grid;place-items:center;text-align:center;padding:var(--space-3);position:relative;
}
.up-line,.down-line{display:block;width:80%;height:44px;border-top:4px solid var(--buy);border-right:4px solid var(--buy);transform:skewY(-20deg)}
.down-line{border-color:var(--sell);transform:skewY(20deg)}
.curve-visual span,.payoff-visual span,.breakout-visual span,.indicator-visual span,.delta-visual span,.margin-visual span,.spread-visual span{
  width:82%;height:70px;border-bottom:4px solid var(--accent);border-right:4px solid var(--accent);border-radius:0 0 42px 0;display:block;
}
.payoff-visual span{border-color:var(--buy);transform:skewY(-12deg)}.breakout-visual span{border-color:var(--brand);border-radius:0;transform:skewY(-18deg)}
.theta-visual{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2);width:100%;position:relative}
.theta-visual span{padding:12px;border-radius:var(--radius-sm);background:var(--surface);text-align:center;color:var(--text-secondary)}
.theta-visual b{grid-column:1/-1;height:7px;border-radius:999px;background:linear-gradient(90deg,var(--buy),var(--accent),var(--sell))}
.chain-visual{display:grid;grid-template-columns:1fr 76px 1fr;gap:8px;width:100%;text-align:center}
.chain-visual>*{padding:10px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border)}
.target-visual{display:flex;align-items:center;justify-content:space-between;width:100%;position:relative}
.target-visual::before{content:"";position:absolute;left:12%;right:12%;height:3px;background:var(--border)}
.target-visual span{position:relative;z-index:1;padding:10px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-weight:800}
.target-visual .sl{color:var(--sell-text)}.target-visual .target{color:var(--buy-text)}
.spread-visual small{grid-column:1/-1;color:var(--text-secondary)}
.learn-list{display:grid;gap:var(--space-2)}
.lesson{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);display:grid;grid-template-columns:1fr auto;gap:var(--space-2)}
.lesson p{margin:4px 0 0;font-size:13px;color:var(--text-secondary)}
.lesson-body{grid-column:1/-1;display:none;padding-top:var(--space-3);border-top:1px solid var(--border);font-size:13px;color:var(--text-secondary)}
.lesson.open .lesson-body{display:block}
.onboard-wrap{display:grid;grid-template-columns:1fr;gap:var(--space-4)}
.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2)}
.choice{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);text-align:left;transition:border-color .15s}
.choice.selected,.choice:hover{border-color:var(--brand);background:var(--brand-soft)}
.risk-box,.danger-box,.success-box{padding:var(--space-3);border-radius:var(--radius);font-size:13px;line-height:1.5}
.risk-box{border:1px solid var(--border);background:var(--input-bg);color:var(--text-secondary)}
.danger-box{border:1px solid rgba(246,70,93,.3);background:var(--sell-soft);color:var(--sell-text)}
.plan{padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}
.plan.featured{border-color:var(--brand)}
.plan .money{font-size:28px;font-weight:700;letter-spacing:-.04em}
.checklist{display:grid;gap:var(--space-2)}
.check{display:flex;gap:var(--space-2);font-size:13px;color:var(--text-secondary)}
.check input{accent-color:var(--brand)}
.payoff-wrap{width:100%;min-height:260px}
.payoff-wrap canvas{display:block;width:100%;height:260px}

/* Bottom nav */
.bottom-nav{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:50;
  padding:6px 8px calc(6px + env(safe-area-inset-bottom,0));
  background:var(--nav-bg);backdrop-filter:blur(16px);border-top:1px solid var(--border);
  grid-template-columns:repeat(5,1fr);gap:2px;
}
.bottom-nav button{flex-direction:column;gap:2px;padding:6px 4px;font-size:10px;font-weight:600;border-radius:var(--radius)}
.bottom-nav button.active{color:var(--brand)}
.side-drawer{position:fixed;inset:0;z-index:75;display:flex;align-items:stretch;justify-content:flex-start}
.side-drawer[hidden]{display:none!important}
.drawer-backdrop{position:absolute;inset:0;background:var(--overlay)}
.drawer-panel{
  position:relative;width:min(320px,86vw);height:100%;padding:var(--space-4);
  background:var(--bg-elevated);border-right:1px solid var(--border);
  box-shadow:var(--shadow);display:flex;flex-direction:column;gap:var(--space-3);
}
.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2)}
.drawer-brand{padding:var(--space-2) 0 var(--space-4);border-bottom:0;margin-bottom:0}
.drawer-nav{display:grid;gap:4px;overflow:auto;padding-top:var(--space-2)}
.drawer-nav button{
  display:flex;align-items:center;gap:var(--space-3);padding:11px var(--space-3);
  border-radius:var(--radius);color:var(--text-secondary);font-weight:600;font-size:13px;text-align:left;
}
.drawer-nav button.active{background:var(--brand-soft);color:var(--brand)}
.drawer-nav .ico{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}
.drawer-nav .ico svg{width:18px;height:18px}

/* Onboarding — keep header, sidebar (desktop), and bottom nav reachable */
body.onboarding-mode .app{display:block}
@media(max-width:860px){
  body.onboarding-mode .sidebar{display:none!important}
}
body.onboarding-mode main{padding-bottom:72px}
@media(max-width:860px){
  body.onboarding-mode main{
    padding-bottom:calc(72px + 56px + env(safe-area-inset-bottom,0));
  }
  body.onboarding-mode .onboard-footer{
    bottom:calc(56px + env(safe-area-inset-bottom,0));
  }
}
body.onboarding-mode #onboarding{display:block!important;max-width:560px;margin:0 auto;padding:var(--space-4)}
.onboard-footer{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:70;
  padding:var(--space-3) var(--space-4);background:var(--bg-elevated);border-top:1px solid var(--border);
}
body.onboarding-mode .onboard-footer{display:block}
.onboard-footer-inner{max-width:560px;margin:0 auto;display:flex;gap:var(--space-2);align-items:center}
.onboard-footer .btn{flex:1;justify-content:center}
.onboard-footer .skip-link{
  flex:0 0 auto;padding:8px 4px;font-size:12px;font-weight:600;color:var(--text-secondary);
  background:none;border:none;cursor:pointer;white-space:nowrap;
}
.onboard-footer .skip-link:hover{color:var(--brand)}

/* Trade page chrome */
@media(min-width:861px){
  body.trade-page-active .main-body{
    display:flex;flex-direction:column;max-width:none;width:100%;
    padding:var(--space-3) var(--space-4);
  }
  body.trade-page-active #trade.page.active{height:calc(100dvh - 132px);min-height:640px}
  body.trade-page-active .trade-pro{
    border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;
    width:100%;max-width:none;
  }
  .trade-top{align-items:center}
  .trade-top-main{flex-direction:row;align-items:center;justify-content:space-between;gap:12px}
  .trade-top-row{flex:1;min-width:0}
  .trade-spot-block{flex-shrink:0;text-align:right;padding-right:0}
}
@media(max-width:380px){
  .order-dock{grid-template-columns:1fr 1fr;grid-template-rows:auto auto}
  .dock-cell-type{grid-column:1/-1}
  .trade-index-tabs button{padding:6px 7px;font-size:11px}
}

/* Toast & modal */
.toast{
  position:fixed;left:50%;transform:translateX(-50%);bottom:88px;z-index:90;
  padding:12px 20px;border-radius:var(--radius-lg);background:var(--surface);
  border:1px solid var(--border);box-shadow:var(--shadow);display:none;font-size:13px;font-weight:500;
}
.toast.show{display:block}
.modal{position:fixed;inset:0;background:var(--overlay);z-index:80;display:none;place-items:center;padding:var(--space-4)}
.modal.show{display:grid}
.modal-card{max-width:400px;width:100%;padding:var(--space-5);border-radius:var(--radius-xl);background:var(--surface);border:1px solid var(--border)}

/* Account settings */
.settings-card{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);margin-bottom:var(--space-3)}
.settings-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0}
.theme-picker{display:flex;gap:var(--space-2)}
.theme-picker button{
  padding:8px 14px;border-radius:var(--radius);font-size:12px;font-weight:600;
  border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);
}
.theme-picker button.active{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}

/* Responsive */
@media(max-width:860px){
  .app{display:block}
  .sidebar{display:none}
  .app-header{padding:var(--space-3) var(--space-4)}
  .menu-toggle.icon-btn{display:grid}
  .mobile-brand{display:block}
  .main-body{padding:var(--space-3) var(--space-4) 88px}
  .bottom-nav{display:grid}
  .chain-page{height:auto;min-height:calc(100dvh - 180px)}
  .grid2,.grid3,.grid4,.form-grid,.form-grid.three,.choice-grid,.strategy-detail{grid-template-columns:1fr}
  .learn-shell{gap:var(--space-3)}
  .learn-hero{grid-template-columns:1fr;padding:var(--space-4)}
  .learn-hero h1{font-size:24px}
  .learn-hero-stat{grid-template-columns:1fr auto;align-items:center}
  .learn-hero-stat .learn-progress{grid-column:1/-1}
  .learn-dashboard,.learn-course-layout,.reading-layout,.reading-body,.material-grid,.indicator-grid,.progress-grid{grid-template-columns:1fr}
  .learn-lesson-panel,.reading-chapters{position:static}
  .reading-layout{gap:var(--space-3);max-width:100%;overflow:hidden}
  .reading-chapters{padding:var(--space-4)}
  .reading-chapter-list{grid-auto-flow:column;grid-auto-columns:minmax(190px,75%);overflow-x:auto;padding-bottom:4px}
  .reading-chapter-list button{min-width:0}
  .reading-card{max-width:100%;overflow:hidden}
  .reading-head{padding:var(--space-4);align-items:flex-start}
  .reading-head h2{font-size:24px}
  .reading-body{padding:var(--space-4);gap:var(--space-3)}
  .reading-info-grid,.visual-split,.compare-visual,.iv-visual{grid-template-columns:1fr}
  .learn-visual{min-height:210px;padding:var(--space-3)}
  .reading-actions{
    position:sticky;bottom:58px;z-index:25;display:grid;grid-template-columns:1fr 1fr;
    padding:var(--space-3);gap:var(--space-2);box-shadow:0 -12px 30px rgba(0,0,0,.08);
  }
  .reading-actions [data-mark-complete]{grid-column:1/-1}
  .materials-head{display:grid}
  .learn-tabs{scroll-padding-inline:var(--space-4)}
  body.trade-page-active .sidebar{display:none}
  body.trade-page-active .app-header{display:none}
  body.trade-page-active .market-ticker-wrap{display:none}
  body.trade-page-active .bottom-nav{display:none!important}
  body.trade-page-active{height:100dvh;overflow:hidden}
  body.trade-page-active .app{display:flex;flex-direction:column;height:100dvh;max-height:100dvh;overflow:hidden;width:100%;grid-template-columns:none}
  body.trade-page-active main{flex:1;display:flex;flex-direction:column;min-height:0!important;padding:0!important;overflow:hidden;width:100%}
  body.trade-page-active .main-body{
    flex:1;display:flex;flex-direction:column;min-height:0;padding:0!important;margin:0!important;
    max-width:none!important;width:100%;overflow:hidden;
  }
  body.trade-page-active .main-body{padding:0!important}
  .bottom-nav button{font-size:9px;padding:5px 2px}
  h2{font-size:24px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
