:root {
  --bg:      #f7f2ea;
  --bg2:     #efe7da;
  --bg3:     #fdfaf3;
  --bg4:     #e8dfd0;
  --border:  #e0d6c2;
  --border2: rgba(168,84,31,0.28);
  --text:    #2a241d;
  --muted:   #8a7e6d;
  --muted2:  #b3a795;
  --copper:  #a8541f;
  --copper2: rgba(168,84,31,0.10);
  --gold:    #c17a0a;
  --gold2:   rgba(193,122,10,0.12);
  --green:   #4a7c3a;
  --green2:  rgba(74,124,58,0.10);
  --red:     #b23838;
  --red2:    rgba(178,56,56,0.10);
  --amber:   #c17a0a;
  --amber2:  rgba(193,122,10,0.12);
  --blue:    #2d5c6b;
  --blue2:   rgba(45,92,107,0.10);
  --purple:  #6d4c7d;
  --teal:    #4a7c3a;
  --blush:   #f3dbc4;
  --mono:    'JetBrains Mono', monospace;
  --serif:   'Fraunces', Georgia, serif;
  --sans:    'Inter', system-ui, sans-serif;
  --radius:  14px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--sans);
  font-weight:400;
  font-size:16px;
  line-height:1.68;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  background-image:
    radial-gradient(ellipse 70% 40% at 15% 0%, rgba(201,122,60,0.07), transparent 60%),
    radial-gradient(ellipse 50% 30% at 90% 10%, rgba(90,122,79,0.05), transparent 60%);
}
body::before{
  content:'';
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:0.30;
  z-index:1;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
a{color:var(--copper);text-decoration:none}
a:hover{text-decoration:underline}

/* ── LAYOUT ── */
.app{position:relative;z-index:2;display:flex;flex-direction:column;height:100vh;overflow:hidden}
.header{padding:0 28px;height:58px;display:flex;align-items:center;position:relative;border-bottom:1px solid var(--border);background:var(--bg3);flex-shrink:0;box-shadow:0 1px 0 rgba(255,255,255,.8)}
.header-logo{font-family:var(--serif);font-size:22px;font-weight:500;color:var(--text);letter-spacing:-.01em;white-space:nowrap;flex-shrink:0;font-variation-settings:"opsz" 36;position:absolute;left:50%;transform:translateX(-50%)}
.header-logo em{font-style:italic;color:var(--copper);font-weight:400}
.header-sep{display:none}
.header-badge{font-family:var(--mono);font-size:11px;padding:2px 9px;background:var(--bg4);border:1px solid rgba(168,84,31,0.22);border-radius:100px;color:var(--muted);letter-spacing:.04em}
.header-right{margin-left:auto;display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;color:var(--muted2);flex-shrink:0;letter-spacing:.04em}
.alloc-group{display:flex;align-items:center;gap:11px;flex-shrink:0}
.alloc-circle{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11.5px;font-weight:700;color:var(--text);flex-shrink:0;letter-spacing:-.02em}
.alloc-circle-active{border-color:rgba(180,77,46,0.55);color:var(--copper)}
.alloc-text{display:flex;flex-direction:column;gap:2px}
.alloc-name{font-family:var(--mono);font-size:12.5px;font-weight:600;color:var(--text);line-height:1}
.alloc-desc{font-size:11px;color:var(--muted2);line-height:1.35;max-width:160px}

/* ── TABS ── */
.tabs-bar{display:flex;gap:2px;border-bottom:1px solid var(--border);background:var(--bg3);overflow-x:auto;flex-shrink:0;scrollbar-width:none;padding:0 16px}
.tabs-bar::-webkit-scrollbar{display:none}
.tab{padding:11px 14px;font-family:var(--mono);font-size:12px;font-weight:400;color:var(--muted);cursor:pointer;border:none;border-bottom:2px solid transparent;border-radius:0;white-space:nowrap;transition:color .2s,border-color .2s;background:transparent;display:flex;align-items:center;gap:6px;letter-spacing:.06em;margin-bottom:-1px}
.tab:hover{color:var(--text);background:transparent}
.tab.active{color:var(--copper);border-bottom-color:var(--copper);font-weight:500}
.tab .dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.dot-hold{background:var(--gold)}
.dot-buy{background:var(--green)}
.dot-avoid{background:var(--red)}
.dot-watch{background:var(--purple)}

/* ── CONTENT AREA ── */
.content{position:relative;z-index:2;flex:1;overflow-y:auto;padding:0}
.tab-panel{display:none;padding:20px;max-width:1100px;margin:0 auto}
.tab-panel.active{display:block}

/* ── STOCK HEADER ── */
.stock-hero{display:flex;align-items:flex-start;gap:20px;padding:20px 0 18px;border-bottom:1px solid var(--border);margin-bottom:20px;flex-wrap:wrap}
.ticker-block{min-width:120px}
.ticker-sym{font-family:var(--mono);font-size:38px;font-weight:600;color:var(--text);letter-spacing:-1px;line-height:1}
.ticker-name{font-family:var(--serif);font-size:16px;font-style:italic;font-variation-settings:"opsz" 14;color:var(--muted);margin-top:6px;line-height:1.3}
.ticker-layer{font-family:var(--mono);font-size:11px;padding:2px 9px;background:var(--bg4);border:1px solid var(--border2);border-radius:100px;display:inline-block;margin-top:6px;color:var(--muted);letter-spacing:.04em}
.price-block{display:flex;flex-direction:column;gap:4px}
.price-val{font-family:var(--mono);font-size:28px;font-weight:600;color:var(--text)}
.price-sub{font-size:13px;color:var(--muted)}
.verdict-block{margin-left:auto}
.verdict-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:5px;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.04em}
.vp-buy{background:rgba(106,170,88,0.13);color:var(--green);border:1px solid rgba(106,170,88,0.30)}
.vp-pullback{background:rgba(168,84,31,0.12);color:var(--copper);border:1px solid rgba(168,84,31,0.32)}
.vp-hold{background:rgba(212,128,46,0.13);color:var(--gold);border:1px solid rgba(212,128,46,0.30)}
.vp-avoid{background:rgba(192,80,64,0.13);color:var(--red);border:1px solid rgba(192,80,64,0.30)}
.vp-watch{background:rgba(160,120,72,0.13);color:var(--purple);border:1px solid rgba(160,120,72,0.28)}
.entry-zone{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:6px;text-align:right}
.holding-flag{font-family:var(--mono);font-size:11px;padding:2px 8px;background:rgba(196,96,48,0.12);border:1px solid rgba(196,96,48,0.28);border-radius:3px;color:var(--copper);margin-top:5px;display:inline-block}
.thesis{font-family:var(--serif);font-size:18px;font-style:italic;font-variation-settings:"opsz" 14;line-height:1.75;color:var(--muted);padding:16px 20px;background:var(--bg2);border-left:3px solid var(--copper);border-radius:0 14px 14px 0;margin-bottom:20px}

/* ── METRICS ── */
.metrics-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin-bottom:20px}
.metric{background:var(--bg3);border:1px solid var(--border);border-radius:14px;padding:10px 12px;transition:border-color .2s,box-shadow .2s}
.metric:hover{border-color:var(--border2);box-shadow:0 4px 12px -6px rgba(180,77,46,0.18)}
.metric-label{font-family:var(--mono);font-size:11px;color:var(--muted2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}
.metric-value{font-family:var(--mono);font-size:20px;font-weight:600}
.metric-sub{font-size:12px;color:var(--muted);margin-top:3px}
.mv-green{color:var(--green)}
.mv-amber{color:var(--gold)}
.mv-red{color:var(--red)}
.mv-blue{color:var(--copper)}
.mv-purple{color:var(--purple)}

/* ── DIMENSION BLOCKS ── */
.dim-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:20px}
@media(max-width:700px){.dim-grid{grid-template-columns:1fr}}
.dim-card{background:var(--bg3);border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:border-color .2s,box-shadow .2s,transform .2s}
.dim-card:hover{border-color:rgba(180,77,46,0.30);box-shadow:0 8px 24px -8px rgba(180,77,46,0.20);transform:translateY(-1px)}
.dim-header{padding:10px 14px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.dim-title{font-family:var(--mono);font-size:11.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.10em;display:flex;align-items:center;gap:7px}
.dim-title::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--copper);opacity:0.65;flex-shrink:0}
.dim-grade{font-family:var(--mono);font-size:13px;font-weight:700}
.grade-a{color:var(--green)}
.grade-b{color:var(--teal)}
.grade-c{color:var(--amber)}
.grade-d{color:var(--red)}
.grade-f{color:var(--red);opacity:0.85}
.dim-body{padding:14px 16px;font-size:14px;line-height:1.75;color:var(--text)}
.dim-verdict{margin-top:10px;padding:10px 14px;background:var(--bg4);border-radius:8px;font-family:var(--serif);font-style:italic;font-size:15px;font-variation-settings:"opsz" 14;line-height:1.65;color:var(--muted)}
.dim-verdict strong{color:var(--text);font-style:normal;font-family:var(--serif)}

/* ── EXPANDABLE SECTIONS ── */
.section{border:1px solid var(--border);border-radius:14px;margin-bottom:10px;overflow:hidden}
.section-hdr{padding:11px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;background:var(--bg2);user-select:none}
.section-hdr:hover{background:var(--bg4)}
.section-hdr-title{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--text);letter-spacing:.04em;display:flex;align-items:center;gap:8px}
.section-icon{font-size:14px;color:var(--muted)}
.chevron{font-size:13px;color:var(--muted);transition:transform .2s}
.chevron.open{transform:rotate(180deg)}
.section-body{display:none;padding:16px;background:var(--bg3)}
.section-body.open{display:block}

/* ── TABLES ── */
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{text-align:left;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted2);padding:7px 9px;border-bottom:1px solid var(--border)}
td{padding:7px 9px;border-bottom:1px solid var(--border);font-family:var(--mono)}
tr:last-child td{border-bottom:none}
.pill{display:inline-block;padding:1px 7px;border-radius:3px;font-size:11px}
.pill-g{background:rgba(106,170,88,0.13);color:var(--green)}
.pill-a{background:rgba(212,128,46,0.13);color:var(--gold)}
.pill-r{background:rgba(192,80,64,0.13);color:var(--red)}
.pill-b{background:rgba(196,96,48,0.12);color:var(--copper)}
.pill-p{background:rgba(160,120,72,0.13);color:var(--purple)}

/* ── RISK LIST ── */
.risk-list{list-style:none}
.risk-item{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-size:14px;line-height:1.65}
.risk-item:last-child{border-bottom:none}
.risk-num{font-family:var(--mono);font-size:11px;color:var(--red);font-weight:600;flex-shrink:0;padding-top:2px;min-width:20px}
.risk-name{font-family:var(--mono);font-size:12.5px;color:var(--copper);font-weight:600;margin-right:4px}

/* ── THESIS-BREAKER LIST ── */
.breaker-list{list-style:none}
.breaker-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);font-family:var(--mono);font-size:13px;line-height:1.65;color:var(--text)}
.breaker-item:last-child{border-bottom:none}
.breaker-num{font-family:var(--mono);font-size:11px;color:var(--copper);font-weight:600;flex-shrink:0;padding-top:2px;min-width:20px}

/* ── OPPORTUNITY-COST CARDS ── */
.opp-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:700px){.opp-grid{grid-template-columns:1fr}}
.opp-card{background:var(--bg2);border:1px solid var(--border);border-left:3px solid var(--copper);border-radius:0 14px 14px 0;padding:14px 16px}
.opp-card-label{font-family:var(--mono);font-size:11px;color:var(--copper);text-transform:uppercase;letter-spacing:.10em;margin-bottom:8px;font-weight:600}
.opp-card-body{font-size:14px;line-height:1.65;color:var(--text)}

/* ── DCF GRID & NARRATIVE ── */
.dcf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin:14px 0}
.dcf-cell{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:10px 12px}
.dcf-cell-label{font-family:var(--mono);font-size:10px;color:var(--muted2);text-transform:uppercase;letter-spacing:.08em}
.dcf-cell-value{font-family:var(--mono);font-size:16px;font-weight:600;color:var(--text);margin-top:4px}
.dcf-narrative{font-size:13.5px;line-height:1.65;color:var(--text);margin-top:8px}
.dcf-position{font-size:13px;margin-top:14px;padding-top:12px;border-top:1px dashed var(--border2);color:var(--text)}
.dcf-position strong{font-family:var(--mono);font-size:11px;color:var(--copper);text-transform:uppercase;letter-spacing:.10em;margin-right:6px}

/* ── CATALYST TIMELINE ── */
.catalyst-list{list-style:none;padding-left:4px}
.catalyst-item{padding:10px 0 10px 22px;border-left:2px solid var(--border);margin-left:6px;position:relative;font-size:14px;line-height:1.65}
.catalyst-item::before{content:"";position:absolute;left:-6px;top:16px;width:10px;height:10px;background:var(--copper);border-radius:50%;border:2px solid var(--bg3)}
.catalyst-date{font-family:var(--mono);font-size:11px;color:var(--copper);text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px;font-weight:600}

/* ── SOURCES FOOTER ── */
.sources{margin-top:32px;padding-top:20px;border-top:1px solid var(--border);font-family:var(--mono);font-size:11px;color:var(--muted);line-height:1.85}
.sources strong{color:var(--text);font-size:12px;letter-spacing:.06em;text-transform:uppercase}
sup{font-family:var(--mono);color:var(--copper);font-size:0.7em;font-weight:600}

/* ── QUOTE BLOCKS ── */
.quote{background:var(--bg2);border-left:3px solid var(--copper);border-radius:0 8px 8px 0;padding:14px 16px;margin-bottom:10px}
.quote-text{font-family:var(--serif);font-size:17px;font-style:italic;font-variation-settings:"opsz" 14;line-height:1.72;color:var(--text)}
.quote-attr{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:7px}
.no-coverage{font-family:var(--mono);font-size:13px;color:var(--muted2);padding:12px;border:1px dashed var(--border2);border-radius:4px;text-align:center}

/* ── ADD VERDICT ── */
.add-verdict{padding:16px 18px;background:var(--bg3);border-radius:14px;margin-bottom:20px;border:1px solid var(--border)}
.av-label{font-family:var(--mono);font-size:12px;color:var(--copper);text-transform:uppercase;letter-spacing:.14em;margin-bottom:10px;display:flex;align-items:center;gap:10px}
.av-label::before{content:'';width:20px;height:1px;background:var(--copper);flex-shrink:0}
.av-text{font-family:var(--serif);font-size:14px;font-variation-settings:"opsz" 14;line-height:1.72;color:var(--text)}
.av-entry{font-family:var(--mono);font-size:13px;margin-top:12px}

/* ── SUMMARY TAB ── */
.summary-tbl td{font-size:13px}
.summary-tbl .ticker-cell{font-family:var(--mono);font-weight:600;color:var(--copper);font-size:15px}
.grad-cell{font-family:var(--mono);font-weight:700;font-size:14px}
.summary-tbl th{cursor:pointer;user-select:none;white-space:nowrap;position:relative;padding-right:20px;transition:color .15s}
.summary-tbl th:hover{color:var(--copper)}
.summary-tbl th .sort-ind{position:absolute;right:5px;top:50%;transform:translateY(-50%);font-size:10px;color:var(--muted2);opacity:.5;font-style:normal}
.summary-tbl th.sort-asc .sort-ind::after{content:'↑';color:var(--copper);opacity:1}
.summary-tbl th.sort-desc .sort-ind::after{content:'↓';color:var(--copper);opacity:1}
.summary-tbl th:not(.sort-asc):not(.sort-desc) .sort-ind::after{content:'⇅'}

/* ── DCF TOGGLE ── */
.toggle-row{display:flex;gap:6px;margin-bottom:14px}
.toggle-btn{padding:5px 14px;border-radius:4px;border:1px solid var(--border2);background:transparent;color:var(--muted);font-family:var(--mono);font-size:11px;cursor:pointer;transition:all .15s}
.toggle-btn.active{background:rgba(196,96,48,0.14);color:var(--copper);border-color:rgba(196,96,48,0.35)}
.scenario{display:none}
.scenario.active{display:block}

/* ── STAGE CARDS ── */
.stage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
@media(max-width:700px){.stage-grid{grid-template-columns:1fr}}
.stage-card{background:var(--bg3);border:1px solid var(--border);border-radius:14px;overflow:hidden}
.stage-card-hdr{padding:8px 14px;border-bottom:1px solid var(--border);font-family:var(--mono);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.10em;display:flex;align-items:center;gap:8px}
.stage1-hdr{color:var(--green)}
.stage2-hdr{color:var(--gold)}
.stage3-hdr{color:var(--copper)}
.stage-card-body{padding:14px 16px;font-size:14px;line-height:1.75}
.stage-row{padding:8px 0;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.stage-row:last-child{border-bottom:none}
.stage-ticker{font-family:var(--mono);font-weight:600;color:var(--copper);font-size:14px;flex-shrink:0}
.stage-entry{font-family:var(--mono);font-size:12px;color:var(--green);flex-shrink:0}
.stage-reason{font-size:13px;color:var(--muted);flex:1}

/* ── FLAG ── */
.flag{font-family:var(--mono);font-size:11px;color:var(--gold);background:rgba(212,128,46,0.08);border:1px solid rgba(212,128,46,0.22);border-radius:3px;padding:6px 10px;margin-bottom:10px;display:block}

/* ── HYPE METER ── */
.hype-wrap{display:flex;align-items:center;gap:16px;margin:10px 0}
.hype-track{flex:1;height:8px;background:var(--bg4);border-radius:4px;overflow:hidden}
.hype-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--green),var(--amber),var(--red))}
.hype-score{font-family:var(--mono);font-size:21px;font-weight:600;min-width:32px}

/* ── SPARKLINE SVG ── */
.spark-wrap{margin:10px 0}

/* ── SCROLLBAR ── */
.content::-webkit-scrollbar{width:6px}
.content::-webkit-scrollbar-track{background:transparent}
.content::-webkit-scrollbar-thumb{background:rgba(196,96,48,0.20);border-radius:3px}
.content::-webkit-scrollbar-thumb:hover{background:rgba(196,96,48,0.38)}

hr.dim{border:none;border-top:1px solid var(--border);margin:12px 0}

/* ── WATCHLIST ── */
#tab-watchlist.tab-panel{padding:0;max-width:none}
.wl-nav{background:var(--bg3);border-bottom:1px solid var(--border);box-shadow:0 2px 8px -4px rgba(0,0,0,0.08)}
.wl-subtabs{display:flex;flex-wrap:nowrap;justify-content:center;gap:6px;padding:10px 20px 8px;border-bottom:1px solid var(--border2);overflow-x:auto;scrollbar-width:none;margin-bottom:0}
.wl-subtabs::-webkit-scrollbar{display:none}
.wl-subtab{font-family:var(--mono);font-size:13px;padding:7px 18px;background:var(--bg4);border:1px solid var(--border);border-radius:100px;color:var(--muted);cursor:pointer;transition:all .15s;white-space:nowrap;display:inline-flex;align-items:center;gap:7px}
.wl-subtab:hover{color:var(--text);border-color:var(--border2);background:var(--bg)}
.wl-subtab.active{background:var(--copper2);color:var(--copper);border-color:rgba(180,77,46,0.32);font-weight:600}
.wl-subtab-count{font-size:10px;padding:1px 5px;border-radius:3px;background:var(--bg);color:var(--muted2)}
.wl-subtab.active .wl-subtab-count{background:rgba(168,72,32,0.12);color:var(--copper)}
.wl-ticker-tabs{display:flex;flex-wrap:nowrap;justify-content:center;gap:4px;padding:6px 20px 8px;overflow-x:auto;scrollbar-width:none}
.wl-ticker-tabs::-webkit-scrollbar{display:none}
.wl-ticker-tab{font-family:var(--mono);font-size:11px;padding:4px 11px;background:var(--bg4);border:1px solid var(--border);border-radius:5px;color:var(--muted);cursor:pointer;transition:all .15s;white-space:nowrap;font-weight:500}
.wl-ticker-tab[hidden]{display:none}
/* verdict colours */
.wl-ticker-tab[data-verdict="buy"]{background:var(--green2);color:var(--green);border-color:rgba(74,124,58,0.28)}
.wl-ticker-tab[data-verdict="buy"]:hover{background:rgba(74,124,58,0.18);border-color:rgba(74,124,58,0.5)}
.wl-ticker-tab[data-verdict="buy"].active{background:rgba(74,124,58,0.22);border-color:rgba(74,124,58,0.6);font-weight:700;box-shadow:0 0 0 2px rgba(74,124,58,0.18)}
.wl-ticker-tab[data-verdict="hold"]{background:var(--gold2);color:var(--gold);border-color:rgba(193,122,10,0.28)}
.wl-ticker-tab[data-verdict="hold"]:hover{background:rgba(193,122,10,0.2);border-color:rgba(193,122,10,0.5)}
.wl-ticker-tab[data-verdict="hold"].active{background:rgba(193,122,10,0.24);border-color:rgba(193,122,10,0.6);font-weight:700;box-shadow:0 0 0 2px rgba(193,122,10,0.18)}
.wl-ticker-tab[data-verdict="watch"]{background:rgba(109,76,125,0.10);color:var(--purple);border-color:rgba(109,76,125,0.28)}
.wl-ticker-tab[data-verdict="watch"]:hover{background:rgba(109,76,125,0.18);border-color:rgba(109,76,125,0.5)}
.wl-ticker-tab[data-verdict="watch"].active{background:rgba(109,76,125,0.22);border-color:rgba(109,76,125,0.6);font-weight:700;box-shadow:0 0 0 2px rgba(109,76,125,0.18)}
.wl-ticker-tab[data-verdict="avoid"]{background:var(--red2);color:var(--red);border-color:rgba(178,56,56,0.28)}
.wl-ticker-tab[data-verdict="avoid"]:hover{background:rgba(178,56,56,0.18);border-color:rgba(178,56,56,0.5)}
.wl-ticker-tab[data-verdict="avoid"].active{background:rgba(178,56,56,0.22);border-color:rgba(178,56,56,0.6);font-weight:700;box-shadow:0 0 0 2px rgba(178,56,56,0.18)}
.wl-content{padding:20px;max-width:1100px;margin:0 auto}
.wl-section{display:none}
.wl-section.active{display:block}

/* ── SITE NAV ── */
.site-nav{position:relative;z-index:2;background:var(--bg3);border-bottom:1px solid var(--border);padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:0;flex-shrink:0;box-shadow:0 1px 0 rgba(255,255,255,.6)}
.site-nav-brand{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--text);letter-spacing:.06em;padding:12px 0;display:flex;align-items:center;gap:7px;text-decoration:none}
.site-nav-brand::before{display:none}
.site-nav-links{display:flex;gap:4px;align-items:center}
.site-nav-link{font-family:var(--mono);font-size:12px;color:var(--muted);padding:12px 14px;border-bottom:2px solid transparent;transition:color .2s,border-color .2s;text-decoration:none;letter-spacing:.06em;white-space:nowrap}
.site-nav-link:hover{color:var(--text);text-decoration:none}
.site-nav-link.active{color:var(--copper);border-bottom-color:var(--copper);font-weight:500}

/* ── MOBILE ── */
@media(max-width:640px){
  /* Viewport — use small viewport height so browser chrome doesn't clip content */
  .app{height:100svh}

  /* Header */
  .header{padding:0 14px;height:50px}
  .header-logo{font-size:18px}
  #last-updated{display:none}
  #live-badge{font-size:10px}

  /* Tabs bar */
  .tabs-bar{padding:0 10px}
  .tab{padding:10px 11px;font-size:11px}

  /* Tab content */
  .tab-panel{padding:14px 12px}

  /* Watchlist nav */
  .wl-subtabs{justify-content:flex-start;padding:8px 12px 6px;gap:5px}
  .wl-subtab{font-size:12px;padding:6px 12px}
  .wl-ticker-tabs{padding:5px 12px 7px;gap:4px}
  .wl-content{padding:14px 12px}

  /* Summary inner padding */
  #wl-summary > div{padding:0 !important}

  /* Stock hero */
  .stock-hero{gap:12px;padding:14px 0 14px}
  .ticker-sym{font-size:28px}
  .ticker-name{font-size:14px}
  .price-val{font-size:22px}

  /* Thesis */
  .thesis{font-size:16px;padding:12px 14px;line-height:1.65}

  /* Metrics */
  .metrics-row{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:7px}
  .metric-value{font-size:17px}

  /* Dimension cards — already 1-col via existing @media(max-width:700px) */

  /* Add verdict */
  .add-verdict{padding:12px 14px}

  /* Sections */
  .section-hdr{padding:10px 14px}
  .section-body{padding:12px}

  /* Stage / DCF cards — already 1-col via existing @media(max-width:700px) */

  /* Verdict block positioning on mobile */
  .verdict-block{margin-left:0}

  /* Site nav */
  .site-nav{padding:0 14px}
  .site-nav-link{padding:10px 10px;font-size:11px}
}

/* ── MOBILE POLISH (touch targets, density, scroll affordances) ── */

/* Kill iOS tap-flash globally; preserve focus rings for keyboard */
button,a,.tab,.wl-subtab,.wl-ticker-tab,.section-hdr,.toggle-btn{
  -webkit-tap-highlight-color:transparent;
}

@media(max-width:480px){
  /* Touch targets — bump key interactive surfaces to 44px-friendly heights */
  .wl-subtab{padding:9px 14px;font-size:12.5px}
  .wl-ticker-tab{padding:8px 12px;min-height:36px;display:inline-flex;align-items:center}
  .section-hdr{padding:13px 14px}
  .toggle-btn{padding:8px 14px;font-size:12px}

  /* Metrics: 2-col at narrow widths so labels stop wrapping unevenly */
  .metrics-row{grid-template-columns:repeat(2,1fr);gap:8px}
  .metric{padding:11px 13px}
  .metric-label{font-size:10.5px;letter-spacing:.09em}
  .metric-value{font-size:18px}

  /* Horizontal scroll affordances — smooth momentum + snap */
  .tabs-bar,.wl-subtabs,.wl-ticker-tabs{-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
  .wl-subtab,.wl-ticker-tab,.tab{scroll-snap-align:start}
  .summary-tbl{font-size:12.5px}

  /* Header: reduce live-badge to tighten right cluster */
  .header-right{font-size:10.5px;gap:6px}

  /* Thesis drop cap — keep proportionate to smaller body */
  .thesis{font-size:15.5px;line-height:1.6}
  .thesis::first-letter{font-size:3em;line-height:0.85;padding:4px 9px 0 0}

  /* Risk list — tighter line for readability */
  .risk-item{font-size:13.5px;gap:9px}
}

/* Tightest viewports — iPhone Mini, Galaxy Fold open */
@media(max-width:360px){
  .header-logo{font-size:16px}
  .ticker-sym{font-size:24px}
  .price-val{font-size:20px}
  .metric-value{font-size:16px}
  .tab-panel{padding:12px 10px}
  .wl-content{padding:12px 10px}
}

/* Summary table wrapper — mask-fade right edge to hint horizontal scroll */
.summary-scroll{
  position:relative;
  -webkit-mask-image:linear-gradient(to right, #000 calc(100% - 28px), transparent);
  mask-image:linear-gradient(to right, #000 calc(100% - 28px), transparent);
}
@media(min-width:760px){
  .summary-scroll{-webkit-mask-image:none;mask-image:none}
}

/* ── EDITORIAL POLISH (UI/UX Pro Max: Editorial Grid + E-Ink discipline + Monochrome Editorial typography) ── */

/* Drop cap on the thesis statement — editorial pull-style opener */
.thesis{position:relative}
.thesis::first-letter{
  float:left;
  font-family:var(--serif);
  font-size:3.4em;
  line-height:0.82;
  font-style:normal;
  font-weight:500;
  color:var(--copper);
  padding:6px 10px 0 0;
  font-variation-settings:"opsz" 144;
}

/* Mono label discipline — tracking-widest uppercase on tag/label/badge text */
.header-badge,
.ticker-layer,
.holding-flag,
.alloc-name,
.section-hdr-title{
  text-transform:uppercase;
  letter-spacing:.10em;
}

/* E-Ink discipline — honour reduced motion */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    transition:none !important;
    animation:none !important;
    scroll-behavior:auto !important;
  }
  .dim-card:hover,.metric:hover{transform:none !important;box-shadow:none !important}
}

/* Print stylesheet — research analyses are printed and shared */
@media print{
  @page{margin:18mm 14mm}
  body{
    background:#fdfbf7;
    color:#1a1a1a;
    background-image:none;
    font-size:11pt;
    line-height:1.5;
  }
  body::before{display:none}
  .app{height:auto;overflow:visible;display:block}
  .content{overflow:visible;flex:none;padding:0}
  .header{position:static;border-bottom:1px solid #999;height:auto;padding:8mm 0;page-break-after:avoid}
  .header-right,.alloc-group{display:none}
  .tabs-bar,.site-nav,.chevron{display:none}
  .tab-panel{display:block !important;page-break-before:always;padding:0;max-width:none;margin:0}
  .tab-panel:first-of-type{page-break-before:auto}
  .section-body{display:block !important}
  .section-hdr{cursor:default;background:transparent;border-bottom:1px solid #ccc}
  .stock-hero,.thesis,.add-verdict{page-break-inside:avoid}
  .dim-card,.metric,.stage-card,.section,.quote{
    break-inside:avoid;
    page-break-inside:avoid;
    box-shadow:none !important;
    border:1px solid #ccc;
  }
  h1,h2,h3,.ticker-sym,.dim-title{page-break-after:avoid}
  a{color:#1a1a1a;text-decoration:underline}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt;color:#666;font-family:var(--mono)}
}