:root {
  --bg:#07101d; --panel:#0e1a2b; --panel2:#122239; --line:#263a59; --text:#f5f8fc; --muted:#93a7c4;
  --blue:#4aa3ff; --violet:#8675ff; --good:#34d18b; --warn:#f2b84b; --bad:#ff6579; --neutral:#8092ac;
  --shadow:0 18px 48px rgba(0,0,0,.27); --radius:18px;
}
*{box-sizing:border-box} body{margin:0;min-height:100vh;color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 10% 0%,rgba(74,163,255,.14),transparent 30%),radial-gradient(circle at 100% 8%,rgba(134,117,255,.12),transparent 28%),var(--bg)}
button,input,select{font:inherit}.shell{max-width:1540px;margin:0 auto;padding:22px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.brand{display:flex;align-items:center;gap:13px}.logo{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;font-weight:950;background:linear-gradient(135deg,var(--blue),var(--violet));box-shadow:0 10px 30px rgba(74,163,255,.25)}h1,h2,h3,p{margin-top:0}.brand h1{margin:0;font-size:clamp(1.4rem,2vw,1.85rem);letter-spacing:-.035em}.brand p{margin:4px 0 0;color:var(--muted);font-size:.86rem}.connection-pill{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:999px;padding:9px 13px;background:rgba(14,26,43,.85);font-size:.8rem;color:var(--muted)}.connection-dot{width:8px;height:8px;border-radius:50%;background:var(--warn);box-shadow:0 0 0 4px rgba(242,184,75,.12)}.connection-pill.ok .connection-dot{background:var(--good);box-shadow:0 0 0 4px rgba(52,209,139,.12)}.connection-pill.bad .connection-dot{background:var(--bad);box-shadow:0 0 0 4px rgba(255,101,121,.12)}
.card{background:linear-gradient(180deg,rgba(18,34,57,.98),rgba(10,21,37,.98));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.control-card{padding:18px;margin-bottom:16px}.control-grid{display:grid;grid-template-columns:1.35fr .65fr 1fr .8fr auto;gap:12px;align-items:end}.field label{display:block;color:var(--muted);font-size:.75rem;margin-bottom:6px}.inline-control{display:grid;grid-template-columns:1fr auto;gap:8px}.money-input{position:relative}.money-input span{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted)}.money-input input{padding-left:24px}input,select{width:100%;border:1px solid #2b4163;border-radius:10px;background:#081526;color:var(--text);padding:10px 11px;outline:none;min-height:42px}input:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(74,163,255,.13)}.btn{border:1px solid var(--line);border-radius:10px;padding:10px 13px;font-weight:850;color:var(--text);background:#13243b;cursor:pointer;transition:.16s ease;white-space:nowrap}.btn:hover{transform:translateY(-1px);border-color:#405d89}.btn:disabled{cursor:not-allowed;opacity:.55;transform:none}.btn-primary{border:none;background:linear-gradient(135deg,#268bed,#7464f1)}.btn-secondary{background:#0a1728}.btn-small{padding:8px 10px;font-size:.76rem}.control-footer{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-top:12px;color:var(--muted);font-size:.75rem}.toggle{display:flex;align-items:center;gap:8px;cursor:pointer}.toggle input{display:none}.toggle span{width:36px;height:20px;border-radius:999px;background:#263a59;position:relative;transition:.18s}.toggle span:after{content:"";position:absolute;width:14px;height:14px;border-radius:50%;background:white;left:3px;top:3px;transition:.18s}.toggle input:checked+span{background:var(--blue)}.toggle input:checked+span:after{left:19px}.alert{display:none;margin-top:12px;padding:11px 12px;border-radius:10px;border:1px solid rgba(255,101,121,.38);background:rgba(255,101,121,.1);color:#ffbac4;font-size:.8rem;white-space:pre-wrap}.alert.show{display:block}
.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.summary-card{padding:16px}.summary-label{color:var(--muted);font-size:.73rem}.summary-value{font-size:1.42rem;font-weight:950;letter-spacing:-.03em;margin-top:7px}.summary-sub{color:var(--muted);font-size:.7rem;margin-top:4px}.section-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:17px 18px;border-bottom:1px solid var(--line)}.section-header h2{font-size:1rem;margin:0}.section-header p{color:var(--muted);font-size:.74rem;margin:4px 0 0}.chain-card{overflow:hidden;margin-bottom:16px}.table-wrap{overflow:auto}.chain-table,.saved-table{width:100%;border-collapse:collapse;min-width:1240px}.chain-table th,.chain-table td,.saved-table th,.saved-table td{padding:11px 10px;border-bottom:1px solid rgba(38,58,89,.65);font-size:.75rem;text-align:right;white-space:nowrap}.chain-table th,.saved-table th{color:var(--muted);font-weight:750;background:rgba(7,16,29,.34);position:sticky;top:0}.chain-table th:first-child,.chain-table td:first-child,.saved-table th:first-child,.saved-table td:first-child{text-align:left}.chain-table tbody tr{cursor:pointer;transition:.14s}.chain-table tbody tr:hover{background:rgba(74,163,255,.06)}.chain-table tbody tr.selected{background:rgba(74,163,255,.11);box-shadow:inset 3px 0 0 var(--blue)}.empty{text-align:center!important;color:var(--muted);padding:28px!important}.table-note{padding:11px 18px;color:var(--muted);font-size:.68rem}.status-chip{display:inline-flex;padding:5px 8px;border-radius:999px;font-weight:900;font-size:.66rem}.chip-good{color:var(--good);background:rgba(52,209,139,.12)}.chip-warn{color:var(--warn);background:rgba(242,184,75,.12)}.chip-bad{color:var(--bad);background:rgba(255,101,121,.12)}.good{color:var(--good)}.bad{color:var(--bad)}.warn{color:var(--warn)}
.detail-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:16px;margin-bottom:16px}.verdict-card{grid-column:1/-1;padding:20px}.verdict-top{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center}.verdict-icon{width:56px;height:56px;border-radius:17px;display:grid;place-items:center;font-size:1.5rem;font-weight:950;background:rgba(128,146,172,.12);color:var(--neutral)}.eyebrow{color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;font-weight:850}.verdict-top h2{margin:3px 0 4px;font-size:1.35rem}.verdict-top p{margin:0;color:var(--muted);font-size:.8rem}.badge{padding:7px 10px;border-radius:999px;background:rgba(128,146,172,.12);color:var(--neutral);font-weight:950;font-size:.7rem}.status-good .verdict-icon,.status-good .badge{color:var(--good);background:rgba(52,209,139,.12)}.status-warn .verdict-icon,.status-warn .badge{color:var(--warn);background:rgba(242,184,75,.12)}.status-bad .verdict-icon,.status-bad .badge{color:var(--bad);background:rgba(255,101,121,.12)}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}.metric{padding:12px;border:1px solid rgba(38,58,89,.8);border-radius:12px;background:rgba(7,16,29,.42)}.metric span,.metric small{display:block;color:var(--muted);font-size:.68rem}.metric strong{display:block;font-size:1.16rem;margin:5px 0 3px}.detail-card{padding:18px}.detail-card h3{font-size:.94rem;margin-bottom:13px}.checks{display:grid;gap:8px}.check{display:grid;grid-template-columns:28px 1fr auto;gap:9px;align-items:center;border:1px solid rgba(38,58,89,.75);border-radius:11px;padding:9px;background:rgba(7,16,29,.4)}.check-mark{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;font-weight:950}.check.pass .check-mark{color:var(--good);background:rgba(52,209,139,.12)}.check.fail .check-mark{color:var(--bad);background:rgba(255,101,121,.12)}.check-name{font-size:.76rem;font-weight:850}.check-rule{font-size:.66rem;color:var(--muted);margin-top:2px}.check-value{font-size:.72rem;font-weight:900;text-align:right}.data-list{margin:0}.data-list div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid rgba(38,58,89,.6)}.data-list div:last-child{border-bottom:0}.data-list dt{color:var(--muted);font-size:.75rem}.data-list dd{margin:0;font-size:.77rem;font-weight:900;text-align:right}.saved-card{overflow:hidden}.saved-actions{display:flex;gap:8px}.saved-table{min-width:900px}.saved-table td:last-child{text-align:right}footer{text-align:center;color:var(--muted);font-size:.68rem;padding:16px}.toast{position:fixed;right:20px;bottom:20px;z-index:30;padding:11px 14px;border-radius:11px;background:#162941;border:1px solid #3b5883;box-shadow:var(--shadow);font-size:.8rem;transform:translateY(90px);opacity:0;transition:.22s}.toast.show{transform:none;opacity:1}
@media(max-width:1120px){.control-grid{grid-template-columns:1fr 1fr}.button-field{grid-column:1/-1}.button-field .btn{width:100%}.summary-grid{grid-template-columns:1fr 1fr}.detail-grid{grid-template-columns:1fr}.verdict-card{grid-column:auto}}.earnings-top-grid{display:grid;grid-template-columns:minmax(0,1.38fr) minmax(340px,.92fr);gap:14px;align-items:start}.earnings-top-grid .earnings-card{margin-top:14px}.earnings-history-card{display:flex;flex-direction:column;min-height:0}.earnings-history-chart{padding:16px 18px 14px;display:flex;flex-direction:column;justify-content:center;min-height:360px}.earnings-history-svg{width:100%;height:auto;display:block;overflow:visible}.earnings-history-legend{margin-top:10px}.earnings-primary-card .earnings-reaction-wrap{max-height:640px}@media(max-width:1200px){.earnings-top-grid{grid-template-columns:1fr}.earnings-history-chart{min-height:300px}}@media(max-width:700px){.shell{padding:12px}.topbar{align-items:flex-start;flex-direction:column}.control-grid{grid-template-columns:1fr}.control-footer{align-items:flex-start;flex-direction:column}.summary-grid{grid-template-columns:1fr 1fr}.metric-grid{grid-template-columns:1fr 1fr}.verdict-top{grid-template-columns:auto 1fr}.verdict-top .badge{grid-column:1/-1;width:max-content}.inline-control{grid-template-columns:1fr}.section-header{align-items:flex-start;flex-direction:column}.saved-actions{width:100%}.saved-actions .btn{flex:1}}

/* V3 visual dashboard */
.visual-dashboard{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,.65fr);gap:18px;margin:18px 0}.chart-card{min-height:560px}.tradingview-chart{height:480px;border-radius:16px;overflow:hidden;background:#0c111d;border:1px solid var(--border)}.visual-header{margin-bottom:14px}.chart-symbol{font:700 12px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;padding:8px 10px;border-radius:10px;background:var(--surface-2);color:var(--muted)}.score-card{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:560px}.score-ring{--score:0;width:210px;height:210px;border-radius:50%;display:grid;place-items:center;margin:20px auto;background:conic-gradient(var(--accent) calc(var(--score)*1%),rgba(255,255,255,.08) 0);position:relative}.score-ring:before{content:"";position:absolute;inset:15px;border-radius:50%;background:var(--surface)}.score-ring>div{position:relative;z-index:1;display:flex;flex-direction:column}.score-ring strong{font-size:48px;line-height:1}.score-ring span{font-size:12px;color:var(--muted);margin-top:7px}.score-card h3{font-size:22px;margin:4px 0 7px}.score-card p{color:var(--muted);max-width:320px}.mini-checks{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;margin-top:18px}.mini-check{padding:10px 6px;border-radius:12px;background:var(--surface-2);font-size:11px;border:1px solid var(--border)}.mini-check.pass{color:var(--good)}.mini-check.fail{color:var(--bad)}.wide-card{grid-column:1/-1}.range-visual{padding:22px 16px 12px}.range-track{height:14px;border-radius:999px;background:linear-gradient(90deg,rgba(239,68,68,.35),rgba(245,158,11,.22),rgba(34,197,94,.35));position:relative;margin:65px 26px 58px}.range-marker{position:absolute;top:50%;transform:translate(-50%,-50%);width:3px;height:34px;border-radius:3px;background:#fff}.range-marker:before{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:inherit;left:50%;top:50%;transform:translate(-50%,-50%)}.range-marker .marker-label{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:11px;color:var(--muted);text-align:center}.range-marker .marker-label strong{display:block;color:var(--text);font-size:12px}.range-marker.above .marker-label{bottom:30px}.range-marker.below .marker-label{top:30px}.marker-stock{background:#60a5fa}.marker-break{background:#f59e0b}.marker-strike{background:#a78bfa}.marker-half{opacity:.7;height:24px}.legend{display:flex;gap:12px;font-size:11px;color:var(--muted)}.legend span:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.legend-target:before{background:#fff}.legend-price:before{background:#60a5fa}.legend-break:before{background:#f59e0b}.visual-card{min-height:300px}.bar-visual{display:grid;gap:16px;padding-top:8px}.bar-row{display:grid;grid-template-columns:95px 1fr 105px;align-items:center;gap:10px;font-size:12px}.bar-shell{height:18px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden;position:relative}.bar-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#22c55e)}.bar-fill.negative{background:linear-gradient(90deg,#ef4444,#f97316)}.bar-value{text-align:right;font-weight:700}.value-stack{height:36px;border-radius:12px;display:flex;overflow:hidden;background:rgba(255,255,255,.06);margin:20px 0 12px}.value-part{display:flex;align-items:center;justify-content:center;min-width:0;font-size:11px;font-weight:700;overflow:hidden}.value-part.intrinsic{background:#22c55e;color:#07120b}.value-part.extrinsic{background:#f59e0b;color:#1a1000}.value-legend{display:grid;grid-template-columns:1fr 1fr;gap:10px}.value-legend div{background:var(--surface-2);padding:12px;border-radius:12px}.value-legend span{display:block;color:var(--muted);font-size:11px}.value-legend strong{display:block;margin-top:4px}.gauge-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.gauge{padding:12px;border-radius:14px;background:var(--surface-2);border:1px solid var(--border)}.gauge-head{display:flex;justify-content:space-between;gap:8px;font-size:11px;margin-bottom:8px}.gauge-head span{color:var(--muted)}.gauge-track{height:8px;background:rgba(255,255,255,.08);border-radius:999px;overflow:hidden}.gauge-fill{height:100%;border-radius:999px;background:var(--accent)}.gauge.pass .gauge-fill{background:var(--good)}.gauge.fail .gauge-fill{background:var(--bad)}.insight-card{grid-column:1/-1}.insight-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.insight-columns>div{padding:16px;border-radius:16px;background:var(--surface-2);border:1px solid var(--border)}.insight-columns h3{font-size:14px;margin:0 0 10px}.insight-columns ul{margin:0;padding-left:20px;color:var(--muted)}.insight-columns li{margin:8px 0;line-height:1.45}.insight-columns>div:first-child h3{color:var(--good)}.insight-columns>div:last-child h3{color:var(--warn)}
@media(max-width:900px){.visual-dashboard{grid-template-columns:1fr}.score-card{min-height:auto}.wide-card,.insight-card{grid-column:auto}.chart-card{min-height:500px}.tradingview-chart{height:420px}.insight-columns{grid-template-columns:1fr}}
@media(max-width:560px){.tradingview-chart{height:380px}.score-ring{width:170px;height:170px}.score-ring strong{font-size:40px}.mini-checks{grid-template-columns:repeat(2,1fr)}.bar-row{grid-template-columns:75px 1fr 82px}.gauge-grid{grid-template-columns:1fr}.range-track{margin-left:8px;margin-right:8px}.marker-label{font-size:9px!important}.marker-label strong{font-size:10px!important}}


/* V4: chart + horizontally scrollable option chain at the top */
.top-analysis-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:18px;margin:18px 0;align-items:stretch}
.top-analysis-grid .chart-card,.top-analysis-grid .chain-card{min-width:0;min-height:590px}
.top-analysis-grid .chain-card{display:flex;flex-direction:column;overflow:hidden}
.top-analysis-grid .chain-card .table-wrap{flex:1;overflow-x:auto;overflow-y:auto;max-height:475px;scrollbar-gutter:stable;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.top-analysis-grid .chain-table{min-width:1680px;white-space:nowrap}
.top-analysis-grid .chain-table th,.top-analysis-grid .chain-table td{padding:11px 12px}
.top-analysis-grid .chain-table th:first-child,.top-analysis-grid .chain-table td:first-child{position:sticky;left:0;z-index:3;background:var(--surface)}
.top-analysis-grid .chain-table thead th{position:sticky;top:0;z-index:4;background:var(--surface)}
.top-analysis-grid .chain-table thead th:first-child{z-index:6}
.top-analysis-grid .chain-table tbody tr.selected td:first-child{background:#122640}
.top-analysis-grid .chain-table tbody tr:hover td:first-child{background:#102136}
.top-analysis-grid .table-note{margin-top:auto}
.visual-dashboard{grid-template-columns:minmax(290px,.65fr) minmax(0,1.35fr)}
.score-card{min-height:430px}
@media(max-width:1180px){.top-analysis-grid{grid-template-columns:1fr}.top-analysis-grid .chart-card,.top-analysis-grid .chain-card{min-height:auto}.top-analysis-grid .chain-card .table-wrap{max-height:520px}.visual-dashboard{grid-template-columns:1fr}}
@media(max-width:700px){.top-analysis-grid{gap:14px}.top-analysis-grid .chain-table{min-width:1580px}.top-analysis-grid .chain-card .table-wrap{max-height:430px}.top-analysis-grid .chain-table th,.top-analysis-grid .chain-table td{padding:10px}}

/* V5: true split screen — chart left, option chain right */
.top-analysis-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:16px;
  align-items:stretch;
  margin:18px 0;
}
.top-analysis-grid>.chart-card,
.top-analysis-grid>.chain-card{
  width:100%;
  min-width:0;
  height:620px;
  min-height:620px;
}
.top-analysis-grid .chart-card{
  display:flex;
  flex-direction:column;
}
.top-analysis-grid .tradingview-chart{
  flex:1;
  height:auto;
  min-height:500px;
}
.top-analysis-grid .chain-card{
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.top-analysis-grid .chain-card .table-wrap{
  flex:1;
  width:100%;
  min-width:0;
  max-height:none;
  overflow-x:auto;
  overflow-y:auto;
  scrollbar-gutter:stable both-edges;
  overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;
}
.top-analysis-grid .chain-table{
  width:max-content;
  min-width:1710px;
  table-layout:auto;
  white-space:nowrap;
}
.top-analysis-grid .chain-table th,
.top-analysis-grid .chain-table td{
  padding:10px 12px;
  vertical-align:middle;
}
.top-analysis-grid .chain-table th:first-child,
.top-analysis-grid .chain-table td:first-child{
  position:sticky;
  left:0;
  z-index:3;
  background:var(--surface);
}
.top-analysis-grid .chain-table thead th{
  position:sticky;
  top:0;
  z-index:4;
  background:var(--surface);
}
.top-analysis-grid .chain-table thead th:first-child{z-index:6}
.top-analysis-grid .chain-table tbody tr.selected td:first-child{background:#122640}
.top-analysis-grid .chain-table tbody tr:hover td:first-child{background:#102136}
.top-analysis-grid .table-note{margin-top:10px}

/* Keep the split screen on normal laptops; stack only on narrower tablets/phones. */
@media(max-width:820px){
  .top-analysis-grid{grid-template-columns:1fr}
  .top-analysis-grid>.chart-card,
  .top-analysis-grid>.chain-card{height:auto;min-height:auto}
  .top-analysis-grid .tradingview-chart{height:430px;min-height:430px}
  .top-analysis-grid .chain-card .table-wrap{max-height:480px}
}


/* V6 fixes: keep the split-screen and put the horizontal scrollbar immediately under the five rows. */
.top-analysis-grid .chain-card .table-wrap{
  flex:0 1 auto;
  max-height:500px;
  overflow-x:scroll;
  overflow-y:auto;
}
.top-analysis-grid .chain-card{justify-content:flex-start}
.top-analysis-grid .table-note{margin-top:auto}

/* V7 controls and exact split-screen behavior */
.control-grid{grid-template-columns:1.25fr .62fr .95fr .7fr .7fr .85fr auto}
.generated-value{min-height:42px;display:flex;align-items:center;padding:10px 12px;border:1px solid #2b4163;border-radius:10px;background:#081526;font-weight:900;color:var(--good);white-space:nowrap}
.top-analysis-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
.top-analysis-grid>.chart-card,.top-analysis-grid>.chain-card{height:650px;min-height:650px}
.top-analysis-grid .chain-card .table-wrap{flex:1 1 auto;max-height:none;overflow-x:auto;overflow-y:auto}
.top-analysis-grid .chain-table{min-width:1880px}
@media(max-width:1250px){.control-grid{grid-template-columns:repeat(4,1fr)}.button-field{align-self:end}}
@media(max-width:820px){.control-grid{grid-template-columns:1fr 1fr}.top-analysis-grid{grid-template-columns:1fr!important}.top-analysis-grid>.chart-card,.top-analysis-grid>.chain-card{height:auto;min-height:auto}}
@media(max-width:560px){.control-grid{grid-template-columns:1fr}}


/* V12 — compact, readable analysis widgets */
.visual-dashboard{
  grid-template-columns:minmax(280px,.72fr) minmax(280px,1fr) minmax(280px,1fr);
  align-items:stretch;
}
.score-card{min-height:290px}
.compact-visual-card,.visual-card{min-height:255px}
.range-card{grid-column:auto!important;min-height:255px}
.range-visual{padding:12px 16px 16px}
.compact-range-summary{padding-top:12px}
.compact-range-track{
  position:relative;height:10px;border-radius:999px;margin:58px 18px 42px;
  background:rgba(255,255,255,.08);overflow:visible;
}
.compact-zone{position:absolute;top:0;bottom:0;width:50%}
.compact-zone.bearish{left:0;border-radius:999px 0 0 999px;background:linear-gradient(90deg,rgba(255,101,121,.48),rgba(242,184,75,.3))}
.compact-zone.bullish{right:0;border-radius:0 999px 999px 0;background:linear-gradient(90deg,rgba(242,184,75,.3),rgba(52,209,139,.48))}
.compact-marker{position:absolute;top:50%;transform:translate(-50%,-50%);width:3px;height:28px;border-radius:4px;z-index:3}
.compact-marker:after{content:"";position:absolute;left:50%;top:50%;width:9px;height:9px;border-radius:50%;transform:translate(-50%,-50%);background:inherit;box-shadow:0 0 0 3px rgba(7,16,29,.65)}
.compact-marker span,.compact-marker strong{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap;text-align:center}
.compact-marker span{bottom:27px;font-size:10px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.compact-marker strong{top:27px;font-size:11px;color:var(--text)}
.compact-marker.marker-stock{background:#60a5fa;z-index:5}
.compact-marker.marker-strike{background:#a78bfa;z-index:4}
.compact-marker.marker-break{background:#f59e0b;z-index:6}
.compact-marker.marker-strike span{bottom:43px}
.compact-marker.marker-strike strong{top:43px}
.compact-marker.marker-break span{bottom:59px}
.compact-marker.marker-break strong{top:59px}
.range-value-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:8px}
.range-value-grid>div{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:8px 7px;text-align:center;min-width:0}
.range-value-grid span{display:block;color:var(--muted);font-size:9px;white-space:nowrap}
.range-value-grid strong{display:block;margin-top:3px;font-size:11px;white-space:nowrap}

.premium-card{min-height:255px}
.value-visual{padding-top:6px}
.premium-compact{padding:8px 0 0}
.premium-main-number{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:12px}
.premium-main-number span{color:var(--muted);font-size:12px}
.premium-main-number strong{font-size:27px;line-height:1;color:var(--text)}
.premium-stack{display:flex;height:16px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.06)}
.premium-intrinsic{background:var(--good)}
.premium-extrinsic{background:var(--warn)}
.premium-split{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.premium-split>div{position:relative;background:var(--surface-2);border:1px solid var(--border);border-radius:11px;padding:9px 9px 9px 22px;display:grid;grid-template-columns:1fr auto;gap:2px 6px}
.premium-dot{position:absolute;left:9px;top:13px;width:7px;height:7px;border-radius:50%}
.intrinsic-dot{background:var(--good)}.extrinsic-dot{background:var(--warn)}
.premium-split small{color:var(--muted);font-size:10px;grid-column:1/-1}
.premium-split strong{font-size:12px}.premium-split em{font-size:11px;color:var(--muted);font-style:normal}

@media(max-width:1200px){
  .visual-dashboard{grid-template-columns:repeat(2,minmax(280px,1fr))}
  .score-card{min-height:255px}
}
@media(max-width:760px){
  .visual-dashboard{grid-template-columns:1fr}
  .range-value-grid{grid-template-columns:repeat(2,1fr)}
}

/* V13 — denser dashboard + clearer expected-move graph */
.compact-dashboard{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
}
.compact-dashboard>.card{min-width:0;min-height:0!important;height:auto;padding:18px}
.compact-dashboard .compact-section-header{margin-bottom:8px}
.compact-dashboard .compact-section-header h2{font-size:16px}
.compact-dashboard .compact-section-header p{font-size:11px;margin-top:2px}

/* Formula match: small, information-dense card */
.compact-score-card{text-align:left;display:block!important;justify-content:initial!important;align-items:initial!important;padding:18px!important}
.compact-card-header{display:flex;align-items:center;justify-content:space-between;gap:14px}
.compact-card-header h2{font-size:17px;margin:3px 0 0}
.compact-score-card>p{font-size:11px;margin:8px 0 10px;max-width:none!important}
.mini-score-ring{
  --score:0;flex:0 0 78px;width:78px;height:78px;border-radius:50%;display:grid;place-items:center;position:relative;
  background:conic-gradient(var(--accent) calc(var(--score)*1%),rgba(255,255,255,.08) 0)
}
.mini-score-ring:before{content:"";position:absolute;inset:8px;border-radius:50%;background:var(--surface)}
.mini-score-ring strong{position:relative;z-index:1;font-size:22px;line-height:1}
.compact-checks{grid-template-columns:repeat(3,1fr)!important;gap:5px!important;margin-top:8px!important}
.compact-checks .mini-check{padding:6px 5px;border-radius:8px;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Expected move: stock centered between bearish/bullish targets */
.move-widget{padding-bottom:14px!important}
.range-visual{padding:2px 0 0!important}
.move-chart{padding-top:2px}
.move-direction-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:10px;margin-bottom:12px}
.move-side{display:flex;flex-direction:column;gap:2px}
.move-side span{font-size:9px;font-weight:800;letter-spacing:.06em}
.move-side strong{font-size:14px}
.bearish-side{color:#fb7185;text-align:left}.bullish-side{color:#34d399;text-align:right}
.move-stock-center{text-align:center;padding:5px 12px;border-radius:10px;background:rgba(96,165,250,.11);border:1px solid rgba(96,165,250,.25)}
.move-stock-center small{display:block;color:var(--muted);font-size:8px;letter-spacing:.08em;font-weight:800}
.move-stock-center strong{font-size:17px;color:#93c5fd}
.move-axis{position:relative;height:48px;margin:0 8px 7px;border-radius:12px;background:linear-gradient(90deg,rgba(244,63,94,.22) 0%,rgba(245,158,11,.10) 42%,rgba(96,165,250,.16) 50%,rgba(34,197,94,.10) 58%,rgba(16,185,129,.22) 100%);border:1px solid var(--border)}
.move-axis:before{content:"";position:absolute;left:4%;right:4%;top:50%;height:2px;transform:translateY(-50%);background:linear-gradient(90deg,#fb7185,#f59e0b 44%,#60a5fa 50%,#34d399 56%,#10b981);opacity:.9}
.move-axis:after{content:"";position:absolute;left:50%;top:7px;bottom:7px;width:1px;background:rgba(147,197,253,.4)}
.move-half{position:absolute;top:50%;transform:translate(-50%,-50%);z-index:2}
.move-half span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--surface);border:1px solid var(--border);font-size:9px;font-weight:900;color:var(--muted)}
.move-stock-marker{position:absolute;top:50%;transform:translate(-50%,-50%);z-index:5}
.move-stock-marker span{display:block;width:13px;height:13px;border-radius:50%;background:#60a5fa;box-shadow:0 0 0 4px rgba(96,165,250,.18)}
.move-contract-marker{position:absolute;z-index:6;top:3px;transform:translateX(-50%);height:42px}
.move-contract-marker i{display:block;width:2px;height:42px;margin:auto;border-radius:4px}
.move-contract-marker b{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:8px;font-weight:800;background:#07101d;border:1px solid var(--border);border-radius:6px;padding:2px 4px}
.strike-marker i{background:#a78bfa}.strike-marker b{top:-18px;color:#c4b5fd}
.be-marker i{background:#f59e0b}.be-marker b{bottom:-18px;color:#fbbf24}
.move-target-row{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;text-align:center}
.move-target-row span{display:block;color:var(--muted);font-size:8px;white-space:nowrap}
.move-target-row strong{display:block;margin-top:2px;font-size:10px;white-space:nowrap}

/* Profit widget: compact KPIs rather than oversized bars */
.compact-profit{padding-top:2px!important}
.profit-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.profit-kpi{padding:10px;border-radius:11px;background:var(--surface-2);border:1px solid var(--border);min-width:0}
.profit-kpi span{display:block;color:var(--muted);font-size:9px;white-space:nowrap}
.profit-kpi strong{display:block;margin-top:5px;font-size:15px;white-space:nowrap}
.profit-kpi small{display:block;margin-top:3px;color:var(--muted);font-size:8px;white-space:nowrap}

/* Premium widget: reduced height while keeping the split obvious */
.premium-v13{padding-top:0}
.premium-headline{display:flex;align-items:baseline;gap:7px;margin-bottom:8px}
.premium-headline strong{font-size:24px}.premium-headline span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.premium-v13 .premium-stack{height:12px;margin:0 0 8px}
.premium-two-values{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.premium-two-values>div{position:relative;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:7px 7px 7px 19px;display:grid;grid-template-columns:1fr auto;gap:1px 4px}
.premium-two-values small{grid-column:1/-1;color:var(--muted);font-size:8px}.premium-two-values strong{font-size:11px}.premium-two-values em{font-size:9px;color:var(--muted);font-style:normal}
.premium-two-values .premium-dot{left:7px;top:10px;width:6px;height:6px}

/* Liquidity and review: tighter footprint */
.compact-liquidity-card .gauge-grid{gap:7px}
.compact-liquidity-card .gauge{padding:8px;border-radius:10px}.compact-liquidity-card .gauge-head{margin-bottom:5px;font-size:9px}.compact-liquidity-card .gauge-track{height:6px}
.compact-insight-card{grid-column:span 2!important}
.compact-insight-card .insight-columns{gap:8px}.compact-insight-card .insight-columns>div{padding:10px;border-radius:11px}.compact-insight-card .insight-columns h3{font-size:11px;margin-bottom:5px}.compact-insight-card .insight-columns ul{padding-left:15px;font-size:9px}.compact-insight-card .insight-columns li{margin:4px 0;line-height:1.35}

@media(max-width:1200px){
  .compact-dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}
  .compact-insight-card{grid-column:span 2!important}
}
@media(max-width:760px){
  .compact-dashboard{grid-template-columns:1fr}
  .compact-insight-card{grid-column:auto!important}
  .move-target-row{grid-template-columns:repeat(5,minmax(62px,1fr));overflow-x:auto;padding-bottom:4px}
  .profit-kpis{grid-template-columns:1fr 1fr 1fr}
}


/* V14 — true price-scaled Expected Move widget */
.price-scale-chart{padding:2px 2px 0}
.move-summary-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:10px}
.move-summary{padding:7px 9px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);min-width:0}
.move-summary span{display:block;font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:800}
.move-summary strong{display:block;margin-top:2px;font-size:13px;white-space:nowrap}
.bearish-summary strong{color:#fb7185}.stock-summary{text-align:center}.stock-summary strong{color:#60a5fa}.bullish-summary{text-align:right}.bullish-summary strong{color:#34d399}
.price-axis-wrap{position:relative;height:112px;margin:2px 14px 4px}
.price-axis-line{position:absolute;left:0;right:0;top:50px;height:2px;background:rgba(148,163,184,.35);border-radius:2px}
.expected-band{position:absolute;top:43px;height:16px;border-radius:9px;background:linear-gradient(90deg,rgba(244,63,94,.38),rgba(96,165,250,.26) 50%,rgba(16,185,129,.38));border:1px solid rgba(148,163,184,.18)}
.axis-point,.axis-contract-point{position:absolute;transform:translateX(-50%);text-align:center;z-index:4;pointer-events:none}
.axis-point i,.axis-contract-point i{display:block;margin:auto;border-radius:50%}
.axis-point span,.axis-contract-point span{display:block;white-space:nowrap;font-size:7px;font-weight:800;letter-spacing:.02em}
.axis-point b,.axis-contract-point b{display:block;white-space:nowrap;font-size:9px;margin-top:1px}
.axis-point{top:40px}
.axis-point i{width:10px;height:10px;border:2px solid #0b1728;background:#e5e7eb}
.target-point span,.target-point b{color:var(--muted)}
.stock-point{top:34px;z-index:7}.stock-point i{width:15px;height:15px;background:#60a5fa;box-shadow:0 0 0 4px rgba(96,165,250,.16)}.stock-point span,.stock-point b{color:#93c5fd}
.half-point{top:58px}.half-point i{width:8px;height:8px;background:#94a3b8}.half-point span,.half-point b{color:#94a3b8}
.lower-point,.upper-point{top:58px}
.axis-contract-point{top:4px;z-index:8}
.axis-contract-point:after{content:"";display:block;width:1px;height:42px;margin:2px auto 0;opacity:.85}
.axis-contract-point i{width:8px;height:8px}
.strike-axis-point i,.strike-axis-point:after{background:#a78bfa}.strike-axis-point span,.strike-axis-point b{color:#c4b5fd}
.be-axis-point{top:78px}.be-axis-point i,.be-axis-point:after{background:#f59e0b}.be-axis-point:after{height:18px;position:absolute;bottom:31px;left:50%}.be-axis-point span,.be-axis-point b{color:#fbbf24}
.be-readout{display:flex;align-items:baseline;gap:7px;padding:7px 9px;border-radius:9px;background:rgba(245,158,11,.07);border:1px solid rgba(245,158,11,.18)}
.be-readout span{font-size:8px;color:var(--muted);text-transform:uppercase;font-weight:800}.be-readout strong{font-size:13px;color:#fbbf24}.be-readout em{font-size:9px;color:var(--muted);font-style:normal}
@media(max-width:760px){.move-summary strong{font-size:11px}.price-axis-wrap{margin-left:8px;margin-right:8px}.axis-point span,.axis-contract-point span{font-size:6px}.axis-point b,.axis-contract-point b{font-size:8px}}

/* V15 — clean SVG expected-move plot + denser widget stacking */
.compact-dashboard{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
.move-widget{grid-column:span 2;min-height:0!important}
.move-widget .range-visual{min-height:0!important}
.move-v15{padding:0 2px 2px}
.move-svg{display:block;width:100%;height:190px;overflow:visible}
.move-seg{stroke-width:8;stroke-linecap:round}
.bearish-seg{stroke:rgba(244,63,94,.52)}
.bullish-seg{stroke:rgba(16,185,129,.52)}
.major-tick{stroke:#94a3b8;stroke-width:2}.minor-tick{stroke:#64748b;stroke-width:1.5}
.stock-tick{stroke:#60a5fa;stroke-width:2}.stock-dot{fill:#60a5fa;stroke:#0b1728;stroke-width:3}
.strike-leader{stroke:#a78bfa;stroke-width:1.5;stroke-dasharray:3 3}.strike-dot{fill:#a78bfa;stroke:#0b1728;stroke-width:2}
.be-leader{stroke:#f59e0b;stroke-width:1.5;stroke-dasharray:3 3}.be-dot{fill:#f59e0b;stroke:#0b1728;stroke-width:2}
.move-svg text{font-family:inherit}.marker-title,.axis-title,.half-label{font-size:8px;font-weight:800;letter-spacing:.06em}.marker-value,.axis-value,.half-value{font-size:10px;font-weight:800}
.stock-text{fill:#93c5fd}.strike-text{fill:#c4b5fd}.be-text{fill:#fbbf24}.bearish-text{fill:#fb7185}.bullish-text{fill:#34d399}.half-label{fill:#64748b}.half-value{fill:#94a3b8}
.move-readouts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:-4px}
.move-readouts>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}
.move-readouts span{color:var(--muted);font-size:9px}.move-readouts strong{font-size:12px;white-space:nowrap}
.compact-profit-card,.premium-card,.compact-liquidity-card{min-height:0!important}
@media(max-width:1200px){.move-widget{grid-column:span 2}}
@media(max-width:760px){.move-widget{grid-column:auto}.move-svg{height:170px}.move-readouts{grid-template-columns:1fr}}

/* V16 — Tradier-native chart: price + embedded volume/MA + RSI + MACD */
.custom-chart-shell{position:relative;height:540px;border-radius:16px;overflow:hidden;background:#07101d;border:1px solid var(--border)}
.market-chart{display:block;width:100%;height:100%;background:#07101d}
.chart-loading{position:absolute;inset:0;display:none;align-items:center;justify-content:center;text-align:center;padding:24px;background:rgba(7,16,29,.80);color:var(--muted);font-size:13px;z-index:4}
.chart-loading.show{display:flex}
.chart-status-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px;min-height:28px}
.channel-status,.indicator-status{font-size:10px;border:1px solid var(--border);border-radius:999px;padding:6px 9px;background:var(--surface-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.channel-status{font-weight:800}.channel-status.good{color:var(--good);border-color:rgba(52,211,153,.35);background:rgba(52,211,153,.08)}.channel-status.bad{color:var(--bad);border-color:rgba(251,113,133,.35);background:rgba(251,113,133,.08)}.channel-status.warn{color:var(--warn);border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.08)}.channel-status.neutral{color:#93c5fd}.indicator-status{color:var(--muted)}
@media(max-width:900px){.custom-chart-shell{height:500px}.chart-status-row{align-items:flex-start;flex-direction:column}.indicator-status{max-width:100%}}
@media(max-width:560px){.custom-chart-shell{height:460px}}

/* V17 — interactive Tradier chart controls */
.chart-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:-2px 0 9px;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:rgba(7,16,29,.45)}
.timeframe-group,.chart-overlay-group{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.chart-tool{appearance:none;border:1px solid var(--border);background:var(--surface-2);color:var(--muted);font:800 10px/1 system-ui,-apple-system,sans-serif;padding:7px 9px;border-radius:8px;cursor:pointer;transition:.15s ease}
.chart-tool:hover{color:var(--text);border-color:rgba(96,165,250,.55)}
.chart-tool.active{color:#dbeafe;background:rgba(59,130,246,.16);border-color:rgba(96,165,250,.55)}
.chart-tool.drawing{color:#fbbf24;background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.48)}
.chart-draw-help{font-size:9px;color:var(--muted);margin:-1px 4px 8px;min-height:14px}.chart-draw-help strong{color:#cbd5e1}
.market-chart.draw-mode{cursor:crosshair}
@media(max-width:760px){.chart-toolbar{align-items:flex-start}.chart-overlay-group{width:100%}.chart-tool{font-size:9px;padding:7px 8px}}

/* V17 — larger, full-width expected-move scale */
.move-v17{padding:2px 0 0}
.move-v17 .move-svg{width:100%;height:205px;display:block;overflow:visible}
.move-v17 .move-axis-main{stroke:rgba(148,163,184,.38);stroke-width:3;stroke-linecap:round}
.move-v17 .expected-left{stroke:#fb7185;stroke-width:11;stroke-linecap:round;opacity:.45}
.move-v17 .expected-right{stroke:#34d399;stroke-width:11;stroke-linecap:round;opacity:.45}
.move-v17 .move-major{stroke:#cbd5e1;stroke-width:2}.move-v17 .move-half-tick{stroke:#64748b;stroke-width:2}
.move-v17 .mv-label{font-size:12px;font-weight:800;letter-spacing:.035em}.move-v17 .mv-value{font-size:15px;font-weight:900}
.move-v17 .mv-small{font-size:11px;font-weight:800}.move-v17 .mv-small-value{font-size:12px;font-weight:800}
.move-v17 .mv-stock{fill:#93c5fd}.move-v17 .mv-bear{fill:#fb7185}.move-v17 .mv-bull{fill:#34d399}.move-v17 .mv-strike{fill:#c4b5fd}.move-v17 .mv-be{fill:#fbbf24}.move-v17 .mv-half{fill:#94a3b8}
.move-v17 .stock-circle{fill:#60a5fa;stroke:#07101d;stroke-width:4}.move-v17 .strike-circle{fill:#a78bfa;stroke:#07101d;stroke-width:3}.move-v17 .be-circle{fill:#f59e0b;stroke:#07101d;stroke-width:3}
.move-v17 .outside-arrow{font-size:17px;font-weight:900}
.move-v17 .outside-box{fill:rgba(167,139,250,.08);stroke:rgba(167,139,250,.35)}
.move-v17 .move-readouts{grid-template-columns:repeat(3,1fr);margin-top:2px}
@media(max-width:760px){.move-v17 .move-svg{height:225px}.move-v17 .mv-label{font-size:10px}.move-v17 .mv-value{font-size:13px}.move-v17 .move-readouts{grid-template-columns:1fr}}

/* V18 chart interactions */
.market-chart{cursor:grab}.market-chart:active{cursor:grabbing}.market-chart.draw-mode{cursor:crosshair}
.chart-tool#toggleSma.active{border-color:rgba(250,204,21,.45)}

/* V20 manual independent chart scaling */
.chart-scale-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 9px;padding:9px 10px;border:1px solid var(--border);border-radius:12px;background:rgba(7,16,29,.45)}
.chart-scale-control{display:grid;grid-template-columns:48px minmax(120px,1fr) 68px;align-items:center;gap:9px;color:var(--muted);font:800 10px/1 system-ui,-apple-system,sans-serif}
.chart-scale-control input[type="range"]{width:100%;accent-color:#60a5fa;cursor:ew-resize}
.chart-scale-control output{text-align:right;color:var(--text);font-variant-numeric:tabular-nums}
@media(max-width:760px){.chart-scale-controls{grid-template-columns:1fr}.chart-scale-control{grid-template-columns:48px minmax(90px,1fr) 64px}}


/* V23 — chart interaction cleanup */
.chart-header-actions{display:flex;align-items:center;gap:8px}
.chart-help-button{width:30px;height:30px;border-radius:50%;border:1px solid rgba(96,165,250,.55);background:rgba(59,130,246,.13);color:#dbeafe;font:900 15px/1 system-ui;cursor:pointer}
.chart-help-button:hover{background:rgba(59,130,246,.24)}
.live-price-badge{position:absolute;z-index:3;top:8px;right:72px;padding:7px 11px;border-radius:8px;border:1px solid rgba(56,189,248,.45);background:rgba(7,16,29,.94);color:#7dd3fc;font:900 12px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.02em;pointer-events:none}
.live-price-badge.ready{box-shadow:0 0 0 1px rgba(56,189,248,.08) inset}
.chart-help-modal{position:fixed;inset:0;z-index:50;display:none;align-items:flex-start;justify-content:flex-end;padding:76px 26px 20px;background:transparent;backdrop-filter:none;pointer-events:none}
.chart-help-modal.show{display:flex}
.chart-help-panel{pointer-events:auto;width:min(390px,calc(100% - 32px));border:1px solid var(--border);border-radius:12px;background:rgba(11,19,34,.98);padding:14px;box-shadow:0 12px 34px rgba(0,0,0,.36)}
.chart-help-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.chart-help-head h3{margin:0;font-size:16px}.chart-help-head button{border:0;background:transparent;color:var(--muted);font-size:24px;cursor:pointer}
.chart-help-content{display:grid;gap:10px}.chart-help-content p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.chart-help-content strong{color:var(--text)}
.custom-chart-shell{height:552px}
.chart-status-row{margin-top:6px}
.chart-toolbar{margin-bottom:6px}
@media(max-width:900px){.custom-chart-shell{height:510px}.live-price-badge{right:68px}}

/* V24 compact chart controls + anchored help popover */
.chart-toolbar.compact{position:relative;flex-wrap:nowrap;overflow:visible;padding:6px 8px;gap:8px}
.chart-action-group{display:flex;align-items:center;gap:5px;min-width:0}
.chart-menu-wrap{position:relative}
.chart-overlay-menu{display:none;position:absolute;z-index:15;top:calc(100% + 6px);left:0;width:190px;padding:7px;border:1px solid var(--border);border-radius:10px;background:rgba(9,18,32,.98);box-shadow:0 12px 28px rgba(0,0,0,.28)}
.chart-overlay-menu.show{display:grid;gap:5px}
.chart-overlay-menu .chart-tool{width:100%;text-align:left}
.chart-toolbar.compact .chart-tool{padding:6px 8px;font-size:9px;white-space:nowrap}
.chart-help-modal{position:fixed;inset:auto;z-index:50;display:none;background:transparent;pointer-events:none;padding:0}
.chart-help-modal.show{display:block}
.chart-help-panel{position:fixed;pointer-events:auto;width:min(380px,calc(100vw - 24px));max-height:min(70vh,520px);overflow:auto}
.chart-card{position:relative}
@media(max-width:820px){.chart-toolbar.compact{overflow-x:auto;overflow-y:visible}.chart-action-group{flex:0 0 auto}.timeframe-group{flex:0 0 auto}}

/* V26 — help panel opens beside the price chart, never on top of it */
.chart-help-panel{transform:none}
.weight-note{display:inline-block;margin-left:7px;padding:1px 6px;border:1px solid rgba(148,163,184,.28);border-radius:999px;font-size:10px;font-weight:700;color:#94a3b8;vertical-align:1px}


/* V37 option-chain readability and verdict cues */
.chain-header-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.verdict-guide{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 9px;border:1px solid rgba(38,58,89,.8);border-radius:10px;background:#0a1728}
.guide-item{display:inline-flex;align-items:center;gap:5px;font-size:.64rem;font-weight:900;letter-spacing:.02em;color:var(--muted)}
.guide-item i{width:9px;height:9px;border-radius:50%;display:inline-block}
.guide-good i{background:var(--good)}.guide-warn i{background:var(--warn)}.guide-bad i{background:var(--bad)}

/* Make the scrolling header fully opaque so rows never show through it. */
.top-analysis-grid .chain-table thead{position:relative;z-index:30}
.top-analysis-grid .chain-table thead th{
  position:sticky;top:0;z-index:30;
  background:#0e1c30 !important;
  box-shadow:inset 0 -1px 0 #365071,0 2px 5px rgba(0,0,0,.32);
}
.top-analysis-grid .chain-table thead th:first-child{z-index:35;background:#0e1c30 !important}

/* Selected contract is highlighted by verdict instead of the generic blue row. */
.chain-table tbody tr.selected{box-shadow:inset 3px 0 0 currentColor}
.chain-table tbody tr.selected-good{color:inherit;background:rgba(52,209,139,.16)}
.chain-table tbody tr.selected-warn{color:inherit;background:rgba(242,184,75,.16)}
.chain-table tbody tr.selected-bad{color:inherit;background:rgba(255,101,121,.16)}
.chain-table tbody tr.selected-good td{background:rgba(52,209,139,.10)}
.chain-table tbody tr.selected-warn td{background:rgba(242,184,75,.10)}
.chain-table tbody tr.selected-bad td{background:rgba(255,101,121,.10)}
.top-analysis-grid .chain-table tbody tr.selected-good td:first-child{background:#12392e}
.top-analysis-grid .chain-table tbody tr.selected-warn td:first-child{background:#3b3018}
.top-analysis-grid .chain-table tbody tr.selected-bad td:first-child{background:#3b2029}
.chain-table tbody tr.selected-good{box-shadow:inset 4px 0 0 var(--good)}
.chain-table tbody tr.selected-warn{box-shadow:inset 4px 0 0 var(--warn)}
.chain-table tbody tr.selected-bad{box-shadow:inset 4px 0 0 var(--bad)}

/* Checks is deliberately the second column. Keep its value visually prominent. */
.chain-table th:nth-child(2),.chain-table td:nth-child(2){font-weight:900}

@media(max-width:700px){.chain-header-actions{width:100%;justify-content:space-between}.verdict-guide{gap:7px}}

/* V39: verdict is encoded directly in the Checks column. */
.checks-chip{display:inline-flex;align-items:center;justify-content:center;min-width:82px;padding:5px 8px;border-radius:999px;font-weight:950;font-size:.68rem;letter-spacing:.01em;border:1px solid currentColor}
.checks-chip.chip-good{color:var(--good);background:rgba(52,209,139,.15)}
.checks-chip.chip-warn{color:var(--warn);background:rgba(242,184,75,.15)}
.checks-chip.chip-bad{color:var(--bad);background:rgba(255,101,121,.15)}

/* V40: lock the # column above horizontally scrolling option-chain content. */
.top-analysis-grid .table-wrap{position:relative;isolation:isolate}
.top-analysis-grid .chain-table th:first-child,
.top-analysis-grid .chain-table td:first-child{
  position:sticky;
  left:0;
  min-width:44px;
  width:44px;
  z-index:45;
  background:#0e1c30 !important;
  box-shadow:1px 0 0 #365071,4px 0 8px rgba(0,0,0,.22);
}
.top-analysis-grid .chain-table thead th:first-child{
  z-index:60;
  background:#0e1c30 !important;
}
.top-analysis-grid .chain-table tbody tr:hover td:first-child{background:#13243a !important}
.top-analysis-grid .chain-table tbody tr.selected-good td:first-child{background:#12392e !important}
.top-analysis-grid .chain-table tbody tr.selected-warn td:first-child{background:#3b3018 !important}
.top-analysis-grid .chain-table tbody tr.selected-bad td:first-child{background:#3b2029 !important}

/* V41: tighter option-chain columns; headers may wrap to two lines. */
.top-analysis-grid .chain-table{
  min-width:1185px;
  table-layout:fixed;
}
.top-analysis-grid .chain-table th,
.top-analysis-grid .chain-table td{
  padding:8px 6px;
  font-size:.70rem;
}
.top-analysis-grid .chain-table thead th{
  white-space:normal;
  line-height:1.08;
  text-align:center;
  vertical-align:middle;
  overflow-wrap:normal;
  word-break:normal;
}
.top-analysis-grid .chain-table tbody td{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
/* Compact explicit widths, in display order. */
.top-analysis-grid .chain-table th:nth-child(1), .top-analysis-grid .chain-table td:nth-child(1){width:42px;min-width:42px;max-width:42px;text-align:center}
.top-analysis-grid .chain-table th:nth-child(2), .top-analysis-grid .chain-table td:nth-child(2){width:92px}
.top-analysis-grid .chain-table th:nth-child(3), .top-analysis-grid .chain-table td:nth-child(3){width:76px}
.top-analysis-grid .chain-table th:nth-child(4), .top-analysis-grid .chain-table td:nth-child(4){width:96px}
.top-analysis-grid .chain-table th:nth-child(5), .top-analysis-grid .chain-table td:nth-child(5){width:68px}
.top-analysis-grid .chain-table th:nth-child(6), .top-analysis-grid .chain-table td:nth-child(6){width:92px}
.top-analysis-grid .chain-table th:nth-child(7), .top-analysis-grid .chain-table td:nth-child(7){width:82px}
.top-analysis-grid .chain-table th:nth-child(8), .top-analysis-grid .chain-table td:nth-child(8){width:82px}
.top-analysis-grid .chain-table th:nth-child(9), .top-analysis-grid .chain-table td:nth-child(9){width:90px}
.top-analysis-grid .chain-table th:nth-child(10),.top-analysis-grid .chain-table td:nth-child(10){width:82px}
.top-analysis-grid .chain-table th:nth-child(11),.top-analysis-grid .chain-table td:nth-child(11){width:90px}
.top-analysis-grid .chain-table th:nth-child(12),.top-analysis-grid .chain-table td:nth-child(12){width:84px}
.top-analysis-grid .chain-table th:nth-child(13),.top-analysis-grid .chain-table td:nth-child(13){width:58px}
.top-analysis-grid .chain-table th:nth-child(14),.top-analysis-grid .chain-table td:nth-child(14){width:68px}
.top-analysis-grid .checks-chip{min-width:68px;padding:4px 6px;font-size:.64rem}
@media(max-width:700px){
  .top-analysis-grid .chain-table{min-width:1120px}
  .top-analysis-grid .chain-table th,.top-analysis-grid .chain-table td{padding:7px 5px;font-size:.68rem}
}

/* V43 — streamlined option chain and consolidated analysis widgets */
.selected-contract-section{margin:16px 0}.selected-contract-section .verdict-card{grid-column:auto}
.v43-dashboard{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);gap:16px;margin:16px 0;align-items:start}
.v43-dashboard>.card{min-width:0;padding:20px}
.combined-move-profit-card{grid-column:auto}
.combined-move-profit-body{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.combined-range{padding:0!important}
.move-v43{padding-top:2px}
.move-top-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:4px}
.move-kpi{padding:10px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border)}
.move-kpi span{display:block;font-size:.68rem;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.move-kpi strong{display:block;margin-top:4px;font-size:1.25rem}.move-kpi.bearish strong{color:#fb7185}.move-kpi.current{text-align:center}.move-kpi.current strong{color:#93c5fd}.move-kpi.bullish{text-align:right}.move-kpi.bullish strong{color:#34d399}
.move-svg-v43{display:block;width:100%;height:220px;overflow:visible}.move-svg-v43 text{font-family:inherit}.em-axis{stroke:rgba(148,163,184,.38);stroke-width:3}.em-bear-seg{stroke:rgba(244,63,94,.5);stroke-width:12;stroke-linecap:round}.em-bull-seg{stroke:rgba(16,185,129,.5);stroke-width:12;stroke-linecap:round}.em-end line{stroke:#cbd5e1;stroke-width:2}.em-half line{stroke:#64748b;stroke-width:2}.em-stock-dot{fill:#60a5fa;stroke:#07101d;stroke-width:4}.em-small{fill:#94a3b8;font-size:12px;font-weight:800}.em-small-value{fill:#dbeafe;font-size:14px;font-weight:900}.em-strike-line{stroke:#a78bfa;stroke-width:1.8;stroke-dasharray:5 4}.em-strike-dot{fill:#a78bfa;stroke:#07101d;stroke-width:2}.em-strike-text{fill:#c4b5fd;font-size:13px;font-weight:900}.em-outside{fill:#a78bfa;font-size:10px;font-weight:800}.em-be-line{stroke:#f59e0b;stroke-width:1.8;stroke-dasharray:5 4}.em-be-dot{fill:#f59e0b;stroke:#07101d;stroke-width:2}.em-be-text{fill:#fbbf24;font-size:13px;font-weight:900}
.move-bottom-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.move-bottom-stats>div{padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:rgba(7,16,29,.42)}.move-bottom-stats span{display:block;color:var(--muted);font-size:.64rem}.move-bottom-stats strong{display:block;margin-top:3px;font-size:.95rem}
.combined-profit{padding:0!important}.combined-profit .profit-kpis{grid-template-columns:repeat(3,1fr);gap:9px}.combined-profit .profit-kpi{padding:12px}.combined-profit .profit-kpi strong{font-size:1.25rem}
.combined-liquidity-card .premium-liquidity-visual{display:grid;gap:14px}.combined-liquidity-card .premium-v13{padding:0 0 12px;border-bottom:1px solid var(--border)}.combined-liquidity-card .premium-headline strong{font-size:1.7rem}.combined-liquidity-card .gauge-grid{grid-template-columns:1fr 1fr;gap:10px}
.detail-grid{grid-template-columns:1fr 1fr}
/* Nine-column option chain after removing target/profit columns. */
.top-analysis-grid .chain-table{min-width:720px;table-layout:fixed}
.top-analysis-grid .chain-table th:nth-child(1),.top-analysis-grid .chain-table td:nth-child(1){width:40px;min-width:40px;max-width:40px}
.top-analysis-grid .chain-table th:nth-child(2),.top-analysis-grid .chain-table td:nth-child(2){width:86px}
.top-analysis-grid .chain-table th:nth-child(3),.top-analysis-grid .chain-table td:nth-child(3){width:72px}
.top-analysis-grid .chain-table th:nth-child(4),.top-analysis-grid .chain-table td:nth-child(4){width:94px}
.top-analysis-grid .chain-table th:nth-child(5),.top-analysis-grid .chain-table td:nth-child(5){width:64px}
.top-analysis-grid .chain-table th:nth-child(6),.top-analysis-grid .chain-table td:nth-child(6){width:88px}
.top-analysis-grid .chain-table th:nth-child(7),.top-analysis-grid .chain-table td:nth-child(7){width:78px}
.top-analysis-grid .chain-table th:nth-child(8),.top-analysis-grid .chain-table td:nth-child(8){width:58px}
.top-analysis-grid .chain-table th:nth-child(9),.top-analysis-grid .chain-table td:nth-child(9){width:64px}
@media(max-width:1180px){.v43-dashboard{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}}
@media(max-width:760px){.move-top-kpis,.move-bottom-stats{grid-template-columns:1fr 1fr}.move-svg-v43{height:240px}.combined-profit .profit-kpis{grid-template-columns:1fr}.combined-liquidity-card .gauge-grid{grid-template-columns:1fr}}

/* V44 — directional auto-channel boundaries + DTE in combined move/profit widget */
.move-bottom-stats-v44{grid-template-columns:repeat(5,minmax(0,1fr))}
.move-bottom-stats-v44 .dte-stat strong{color:#93c5fd;font-size:1.05rem}
@media(max-width:980px){.move-bottom-stats-v44{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.move-bottom-stats-v44{grid-template-columns:1fr 1fr}}
\n\n/* V46 — 13-check scoring, compact daily BE signal, and sticky # column fix */
.move-bottom-stats-v44{grid-template-columns:repeat(6,minmax(0,1fr))}
.daily-be-stat small{display:block;margin-top:3px;color:var(--muted);font-size:.57rem}
.daily-be-stat.pass strong{color:var(--good)}
.daily-be-stat.fail strong{color:var(--bad)}
/* Keep the sticky header # above all vertically scrolling row numbers. */
.top-analysis-grid .table-wrap{position:relative;isolation:isolate}
.top-analysis-grid .chain-table tbody td:first-child{z-index:12 !important;background:#0e1c30 !important}
.top-analysis-grid .chain-table thead{position:sticky;top:0;z-index:90;background:#0e1c30}
.top-analysis-grid .chain-table thead th{z-index:90 !important;background:#0e1c30 !important}
.top-analysis-grid .chain-table thead th:first-child{z-index:110 !important;background:#0e1c30 !important;box-shadow:1px 0 0 #365071,0 2px 0 #365071,4px 2px 8px rgba(0,0,0,.28)}
@media(max-width:980px){.move-bottom-stats-v44{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.move-bottom-stats-v44{grid-template-columns:1fr 1fr}}


/* V47 — regular ITM/OTM chain, clickable strategy checks, compact right stack */
.right-analysis-stack{display:grid;grid-template-columns:1fr;gap:16px;align-items:stretch}
.right-analysis-stack>.card{width:100%;min-width:0;box-sizing:border-box}
.metric-checks-button,.checks-chip{cursor:pointer;font:inherit}
.metric-checks-button{border:1px solid currentColor;border-radius:999px;padding:6px 10px;font-weight:900;background:transparent}
.metric-checks-button.chip-good{color:var(--good);background:rgba(52,209,139,.15)}
.metric-checks-button.chip-warn{color:var(--warn);background:rgba(242,184,75,.15)}
.metric-checks-button.chip-bad{color:var(--bad);background:rgba(255,101,121,.15)}
.strategy-checks-popover{display:none;position:fixed;right:24px;top:104px;z-index:250;width:min(440px,calc(100vw - 32px));max-height:calc(100vh - 128px);overflow:auto}
.strategy-checks-popover.show{display:block}
.strategy-checks-panel{background:#0e1c30;border:1px solid #365071;border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.5);padding:14px}
.strategy-checks-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:1px solid var(--border);padding-bottom:10px;margin-bottom:10px}
.strategy-checks-head h3{margin:0;font-size:1rem}.strategy-checks-head p{margin:3px 0 0;color:var(--muted);font-size:.72rem}
.strategy-checks-head button{border:0;background:transparent;color:var(--text);font-size:1.35rem;line-height:1;cursor:pointer;padding:2px 5px}
.strategy-checks-summary{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-size:.8rem;font-weight:800}
.strategy-checks-list{display:grid;gap:6px}
.strategy-pop-check{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px;border:1px solid var(--border);border-radius:10px;background:rgba(7,16,29,.55)}
.strategy-pop-check.pass{border-color:rgba(52,209,139,.35)}.strategy-pop-check.review{border-color:rgba(245,183,67,.38)}.strategy-pop-check.fail{border-color:rgba(255,101,121,.30)}
.strategy-pop-mark{font-weight:950}.strategy-pop-check.pass .strategy-pop-mark{color:var(--good)}.strategy-pop-check.review .strategy-pop-mark{color:var(--warn)}.strategy-pop-check.fail .strategy-pop-mark{color:var(--bad)}
.strategy-pop-check strong{display:block;font-size:.72rem}.strategy-pop-check small{display:block;color:var(--muted);font-size:.62rem;margin-top:2px}.strategy-pop-check b{font-size:.68rem;white-space:nowrap;text-align:right}.strategy-pop-check em{font-style:normal;color:var(--warn);font-size:.58rem}
@media(max-width:700px){.strategy-checks-popover{right:10px;top:76px;width:calc(100vw - 20px)}}


/* V48 — friendlier expected-move labels and one-row target stats */
.move-bottom-stats-v48{display:grid;grid-template-columns:repeat(6,minmax(112px,1fr));gap:8px;overflow-x:auto;padding-bottom:2px}
.move-bottom-stats-v48>div{min-width:0;padding:9px 8px}
.move-bottom-stats-v48 span{font-size:.60rem;line-height:1.18;min-height:2.36em}
.move-bottom-stats-v48 strong{font-size:.92rem}
.move-bottom-stats-v48 .dte-stat strong{color:#93c5fd;font-size:1.05rem}
.profit-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 8px;padding:0 2px}
.profit-section-head span{font-size:.67rem;color:var(--muted);font-weight:900;text-transform:uppercase;letter-spacing:.07em}
.profit-section-head strong{font-size:.82rem;color:#dbeafe;white-space:nowrap}
.em-be-text{font-size:13px;font-weight:900}
@media(max-width:760px){.move-bottom-stats-v48{grid-template-columns:repeat(6,minmax(118px,1fr))}.combined-profit .profit-kpis{grid-template-columns:repeat(3,minmax(135px,1fr));overflow-x:auto}.profit-section-head{align-items:flex-start;flex-direction:column;gap:4px}}

/* V49 — regular-chain moneyness divider, wider checks popup, restored analysis proportions */
/* The ITM/OTM boundary remains visible across the full chain, including the sticky # cell. */
.top-analysis-grid .chain-table tbody tr.moneyness-divider td{
  border-top:2px dotted rgba(147,197,253,.72) !important;
}
.top-analysis-grid .chain-table tbody tr.moneyness-divider td:first-child{
  box-shadow:1px 0 0 #365071, 0 -1px 0 rgba(147,197,253,.16);
}

/* Give the checks enough room for technical descriptions and measured values. */
.strategy-checks-popover{
  width:min(720px,calc(100vw - 40px));
  max-height:calc(100vh - 112px);
  top:84px;
}
.strategy-checks-panel{padding:18px}
.strategy-checks-head{padding-bottom:12px;margin-bottom:12px}
.strategy-checks-head h3{font-size:1.08rem}
.strategy-checks-head p{font-size:.75rem}
.strategy-checks-summary{gap:12px;margin-bottom:12px}
.strategy-checks-list{gap:7px}
.strategy-pop-check{
  grid-template-columns:28px minmax(240px,1fr) minmax(190px,250px);
  gap:10px;
  align-items:start;
  padding:10px 11px;
}
.strategy-pop-check strong{font-size:.76rem;line-height:1.25}
.strategy-pop-check small{font-size:.66rem;line-height:1.35;margin-top:3px;overflow-wrap:anywhere}
.strategy-pop-check b{font-size:.70rem;line-height:1.35;white-space:normal;text-align:right;overflow-wrap:anywhere;padding-top:1px}
.strategy-pop-check em{font-size:.60rem}
@media(max-width:760px){
  .strategy-checks-popover{right:10px;top:72px;width:calc(100vw - 20px)}
  .strategy-pop-check{grid-template-columns:24px minmax(0,1fr)}
  .strategy-pop-check b{grid-column:2;text-align:left;color:#dbeafe;padding-top:3px}
}

/* Restore the large expected-move card proportions from the earlier layout. */
.v49-dashboard{
  display:grid;
  grid-template-columns:minmax(0,1.8fr) minmax(390px,.95fr);
  gap:16px;
  margin:16px 0;
  align-items:start;
}
.v49-dashboard>.combined-move-profit-card,
.v49-dashboard .right-analysis-stack>.card{
  min-width:0;
  padding:20px;
}
.v49-dashboard .combined-move-profit-card .section-header,
.v49-dashboard .combined-liquidity-card .section-header{
  margin:0 0 14px;
  padding:0;
}
.v49-dashboard .combined-move-profit-card .section-header h2,
.v49-dashboard .combined-liquidity-card .section-header h2{
  margin:0;
}
.v49-dashboard .combined-move-profit-card .section-header p,
.v49-dashboard .combined-liquidity-card .section-header p{
  margin:4px 0 0;
}
.v49-dashboard .combined-move-profit-card{min-height:0}
.v49-dashboard .move-svg-v43{height:220px}
.v49-dashboard .move-bottom-stats-v48{overflow-x:visible}
.v49-dashboard .right-analysis-stack{display:block}

/* Greeks now belong to the liquidity card rather than a second card. */
.embedded-greeks-section{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid var(--border);
}
.embedded-greeks-head{margin:0 0 8px;padding:0}
.embedded-greeks-head h3{margin:0;font-size:1rem}
.embedded-greeks-head p{margin:4px 0 0;color:var(--muted);font-size:.72rem;line-height:1.35}
.embedded-greeks-section .data-list{margin:0}
.embedded-greeks-section .data-list div{padding:8px 0}

@media(max-width:1180px){
  .v49-dashboard{grid-template-columns:1fr}
  .v49-dashboard .right-analysis-stack>.card{width:100%}
}
@media(max-width:760px){
  .v49-dashboard>.combined-move-profit-card,
  .v49-dashboard .right-analysis-stack>.card{padding:16px}
}

/* V50 — readability pass, larger analytics typography, merged Greeks, no duplicate strategy-check widget */
.v49-dashboard .section-header h2{font-size:1.12rem;line-height:1.2}
.v49-dashboard .section-header p{font-size:.82rem;line-height:1.4}
.v49-dashboard .move-kpi span{font-size:.76rem}.v49-dashboard .move-kpi strong{font-size:1.45rem}
.v49-dashboard .em-small{font-size:13px}.v49-dashboard .em-small-value{font-size:15px}.v49-dashboard .em-strike-text,.v49-dashboard .em-be-text{font-size:14px}
.v49-dashboard .move-bottom-stats-v48>div{padding:12px 10px}
.v49-dashboard .move-bottom-stats-v48 span{font-size:.70rem;line-height:1.25;min-height:2.5em}
.v49-dashboard .move-bottom-stats-v48 strong{font-size:1.08rem}
.v49-dashboard .move-bottom-stats-v48 .dte-stat strong{font-size:1.16rem}
.v49-dashboard .daily-be-stat small{font-size:.66rem}
.v49-dashboard .profit-section-head{margin-top:4px;margin-bottom:10px}
.v49-dashboard .profit-section-head span{font-size:.78rem}.v49-dashboard .profit-section-head strong{font-size:.92rem}
.v49-dashboard .combined-profit .profit-kpi{padding:15px 14px}
.v49-dashboard .combined-profit .profit-kpi span{font-size:.76rem}
.v49-dashboard .combined-profit .profit-kpi strong{font-size:1.52rem;line-height:1.1}
.v49-dashboard .combined-profit .profit-kpi small{font-size:.73rem;line-height:1.3;margin-top:5px}
.v49-dashboard .premium-headline strong{font-size:2rem}.v49-dashboard .premium-headline span{font-size:.74rem}
.v49-dashboard .premium-two-values small{font-size:.70rem}.v49-dashboard .premium-two-values strong{font-size:.86rem}.v49-dashboard .premium-two-values em{font-size:.70rem}
.v49-dashboard .gauge-head{font-size:.76rem}.v49-dashboard .gauge-head strong{font-size:.80rem}
.v49-dashboard .embedded-greeks-head h3{font-size:1rem}.v49-dashboard .embedded-greeks-head p{font-size:.76rem;line-height:1.4}
.v49-dashboard .option-greeks-list dt,.v49-dashboard .option-greeks-list dd{font-size:.80rem;line-height:1.35}
.metric-grid .metric span{font-size:.74rem}.metric-grid .metric strong{font-size:1.25rem}.metric-grid .metric small{font-size:.70rem;line-height:1.3}
.metric-checks-button{font-size:.82rem!important}


/* V52 — extra daily target metrics and clearer value formatting */
.v49-dashboard .move-bottom-stats-v48{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}
.v49-dashboard .move-bottom-stats-v48>div{padding:11px 8px}
.v49-dashboard .move-bottom-stats-v48 span{font-size:.68rem;min-height:2.45em}
.v49-dashboard .move-bottom-stats-v48 strong{font-size:1rem}
@media(max-width:1250px){
  .v49-dashboard .move-bottom-stats-v48{grid-template-columns:repeat(8,minmax(118px,1fr));overflow-x:auto}
}

/* V53 — cleaner move-required section and inline Delta/Gamma */
.move-summary-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:6px}
.move-summary-row>div{background:rgba(4,14,29,.34);border:1px solid rgba(140,164,196,.10);border-radius:11px;padding:11px 13px}
.move-summary-row span,.move-required-grid span,.greeks-inline-grid span{display:block;color:var(--muted);font-size:.78rem;line-height:1.2}
.move-summary-row strong{display:block;margin-top:5px;font-size:1.08rem}
.move-required-section{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.move-required-head{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}
.move-required-head span{font-size:.82rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#d8e6fb}
.move-required-head small{color:var(--muted);font-size:.75rem}
.move-required-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px}
.move-required-grid>div{background:rgba(4,14,29,.42);border:1px solid rgba(140,164,196,.10);border-radius:11px;padding:11px 12px;min-width:0}
.move-required-grid strong{display:block;margin-top:5px;font-size:.98rem;white-space:nowrap}
.move-required-grid small{display:block;margin-top:4px;color:var(--muted);font-size:.7rem}
.move-required-grid .pass strong{color:var(--green)}
.move-required-grid .fail strong{color:var(--red)}
.greeks-inline-grid{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:2px}
.greeks-inline-grid>div{border:1px solid var(--border);background:rgba(4,14,29,.28);border-radius:10px;padding:10px 12px}
.greeks-inline-grid strong{display:block;margin-top:4px;font-size:1rem}
@media(max-width:900px){.move-required-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.move-required-grid,.move-summary-row,.greeks-inline-grid{grid-template-columns:1fr}.move-required-head{display:block}.move-required-head small{display:block;margin-top:3px}}

/* V60 Experimental Valuation block inside Liquidity, Cost & Premium Quality */
.experimental-quality-visual{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.experimental-quality-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}
.experimental-quality-head>span{font-size:14px;font-weight:800;letter-spacing:.01em;color:var(--text)}
.experimental-quality-head>small{font-size:11px;color:var(--muted);text-align:right}
.experimental-quality-grid{display:grid;grid-template-columns:1fr;gap:9px}
.experimental-quality-item{display:grid;grid-template-columns:minmax(0,1.4fr) auto;column-gap:12px;row-gap:3px;align-items:center;padding:11px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border)}
.experimental-quality-item>span{font-size:12px;color:var(--muted);font-weight:650}
.experimental-quality-item>strong{font-size:14px;text-align:right;color:var(--text);white-space:nowrap}
.experimental-quality-item>small{grid-column:1/-1;font-size:11px;color:var(--muted);line-height:1.35}
.experimental-quality-item.good{border-color:color-mix(in srgb,var(--good) 35%,var(--border))}
.experimental-quality-item.good>strong,.experimental-quality-item.good>small{color:var(--good)}
.experimental-quality-item.warn{border-color:color-mix(in srgb,var(--warn) 35%,var(--border))}
.experimental-quality-item.warn>strong,.experimental-quality-item.warn>small{color:var(--warn)}
.experimental-quality-item.bad{border-color:color-mix(in srgb,var(--bad) 35%,var(--border))}
.experimental-quality-item.bad>strong,.experimental-quality-item.bad>small{color:var(--bad)}
@media(max-width:760px){.experimental-quality-head{align-items:flex-start;flex-direction:column}.experimental-quality-head>small{text-align:left}.experimental-quality-item{grid-template-columns:1fr}.experimental-quality-item>strong{text-align:left}.experimental-quality-item>small{grid-column:auto}}

/* V67 — Valuation & Pricing Quality above Liquidity at the same right-column width */
.v49-dashboard .right-analysis-stack{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}
.v49-dashboard .right-analysis-stack>.card{width:100%;min-width:0;box-sizing:border-box}
.v49-dashboard .valuation-quality-card{grid-column:auto;width:100%;min-width:0;padding:20px}
.valuation-quality-card .compact-section-header{padding-bottom:14px;margin:0 0 12px}
.valuation-quality-card .compact-section-header h2{font-size:1.28rem;line-height:1.15;margin:0}
.valuation-quality-card .compact-section-header p{font-size:.86rem;line-height:1.4;margin:4px 0 0}
.valuation-quality-card .experimental-quality-visual{margin-top:0;padding-top:0;border-top:0}
.valuation-quality-card .experimental-quality-head{margin:0 0 12px;padding:0 2px}
.valuation-quality-card .experimental-quality-head>span{font-size:1rem;font-weight:850}
.valuation-quality-card .experimental-quality-head>small{font-size:.8rem}
.valuation-quality-card .experimental-quality-grid{grid-template-columns:1fr;gap:10px}
.valuation-quality-card .experimental-quality-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:0;padding:14px 15px;gap:5px 12px}
.valuation-quality-card .experimental-quality-item>span{font-size:.86rem;line-height:1.25;font-weight:750;color:#b8c8de}
.valuation-quality-card .experimental-quality-item>strong{font-size:1.25rem;line-height:1.15;text-align:right;white-space:normal}
.valuation-quality-card .experimental-quality-item>small{grid-column:1/-1;font-size:.78rem;line-height:1.35}
@media(max-width:1180px){.v49-dashboard .right-analysis-stack{width:100%}}
@media(max-width:700px){.valuation-quality-card .experimental-quality-item{grid-template-columns:1fr}.valuation-quality-card .experimental-quality-item>strong{text-align:left}.valuation-quality-card .experimental-quality-item>small{grid-column:auto}}
\n\n/* V71 — Clean alignment for Valuation & Pricing Quality */\n.valuation-quality-card{\n  padding:22px 24px 24px !important;\n}\n.valuation-quality-card .section-header{\n  margin:0;\n  padding:0 0 16px;\n  border-bottom:1px solid var(--border);\n}\n.valuation-quality-card .section-header>div{\n  width:100%;\n  margin:0;\n  padding:0;\n}\n.valuation-quality-card .compact-section-header h2,\n.valuation-quality-card .compact-section-header p{\n  margin-left:0;\n  padding-left:0;\n}\n.valuation-quality-card .experimental-quality-visual{\n  margin:0;\n  padding:0;\n}\n.valuation-quality-card .experimental-quality-head{\n  margin:0;\n  padding:14px 0 10px;\n}\n.valuation-quality-card .experimental-quality-grid{\n  gap:0;\n}\n.valuation-quality-card .experimental-quality-item{\n  margin:0;\n  padding:14px 0;\n  border:0;\n  border-top:1px solid color-mix(in srgb,var(--border) 72%,transparent);\n  border-radius:0;\n  background:transparent;\n}\n.valuation-quality-card .experimental-quality-item:first-child{\n  border-top:0;\n}\n.valuation-quality-card .experimental-quality-item>span,\n.valuation-quality-card .experimental-quality-item>small{\n  padding-left:0;\n  margin-left:0;\n}\n.valuation-quality-card .experimental-quality-item>strong{\n  padding-right:0;\n  margin-right:0;\n}\n.valuation-quality-card .experimental-quality-item>small{\n  margin-top:2px;\n}\n@media(max-width:700px){\n  .valuation-quality-card{padding:18px 18px 20px !important}\n  .valuation-quality-card .experimental-quality-item{padding:13px 0}\n}\n\n\n/* V72 — Valuation header alignment, stacked model premium, and day-break visual polish */
.v49-dashboard .valuation-quality-card{
  padding:20px !important;
}
.v49-dashboard .valuation-quality-card .section-header{
  margin:0 0 12px !important;
  padding:0 0 14px !important;
  border-bottom:1px solid var(--border);
}
.v49-dashboard .valuation-quality-card .section-header > div,
.v49-dashboard .valuation-quality-card .section-header h2,
.v49-dashboard .valuation-quality-card .section-header p{
  margin-left:0 !important;
  padding-left:0 !important;
}
.v49-dashboard .valuation-quality-card .experimental-quality-visual,
.v49-dashboard .valuation-quality-card .experimental-quality-head,
.v49-dashboard .valuation-quality-card .experimental-quality-grid,
.v49-dashboard .valuation-quality-card .experimental-quality-item{
  margin-left:0 !important;
  padding-left:0;
}
.v49-dashboard .valuation-quality-card .experimental-quality-head{
  padding-left:0 !important;
  padding-right:0 !important;
}
.v49-dashboard .valuation-quality-card .experimental-quality-item{
  padding-left:0 !important;
  padding-right:0 !important;
}
.market-model-value span,
.market-model-value em{
  display:block;
}
.market-model-value em{
  margin-top:3px;
  font-size:.82em;
  line-height:1.1;
  font-style:normal;
  font-weight:850;
}
@media(max-width:700px){
  .v49-dashboard .valuation-quality-card{padding:16px !important}
}

/* V74: Make the Underlying stock price immediately readable, especially on iPhone. */
#summaryPrice{font-size:.82rem;line-height:1.25;color:var(--muted)}
#summaryPrice .underlying-price{font-size:1rem;font-weight:950;color:var(--text);letter-spacing:-.01em}
#summaryPrice .underlying-company{font-weight:600;color:var(--muted)}
@media(max-width:700px){#summaryPrice .underlying-price{font-size:1.08rem}}

/* V75 — Options / Financial tabs, FMP dashboard, and in-app news */
.topbar-actions{display:flex;align-items:center;gap:10px}.top-news-button{min-height:38px;padding:8px 16px;font-weight:800}
.analysis-tabs{display:flex;gap:8px;margin:14px 0 16px;padding:5px;background:rgba(8,20,38,.72);border:1px solid var(--border);border-radius:14px;position:sticky;top:8px;z-index:30;backdrop-filter:blur(12px)}
.analysis-tab{appearance:none;border:0;background:transparent;color:var(--muted);font:inherit;font-weight:800;padding:10px 18px;border-radius:10px;cursor:pointer}.analysis-tab.active{background:linear-gradient(180deg,rgba(48,116,203,.28),rgba(31,80,145,.24));color:var(--text);box-shadow:inset 0 0 0 1px rgba(111,166,231,.28)}
.financial-view{display:grid;gap:16px}.financial-view[hidden]{display:none!important}.financial-control-row{display:flex;justify-content:space-between;align-items:center;gap:18px}.financial-control-row h2{margin:4px 0 5px}.financial-control-row p{margin:0;color:var(--muted)}.financial-control-actions{display:flex;align-items:center;gap:10px}.financial-ticker-pill{font-size:1.1rem;font-weight:900;letter-spacing:.05em;padding:9px 13px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.financial-alert{display:none;margin-top:12px;padding:10px 12px;border-radius:10px}.financial-alert.show{display:block;background:rgba(239,68,68,.10);border:1px solid rgba(239,68,68,.28);color:#fecaca}
.financial-hero-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(240px,.7fr);gap:16px}.financial-company-card h2{font-size:1.5rem;margin:5px 0 8px}.financial-company-meta{display:flex;flex-wrap:wrap;gap:8px}.financial-meta-chip{padding:6px 9px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-size:.78rem;color:#d7e6f8}.financial-company-description{color:var(--muted);line-height:1.55;margin:12px 0 0;max-width:1100px}.financial-score-card{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.financial-score-line{display:flex;align-items:flex-end;gap:4px;margin-top:6px}.financial-score-line strong{font-size:3rem;line-height:.9}.financial-score-line span{font-size:1.1rem;color:var(--muted)}.financial-rating{margin-top:12px;font-weight:900;letter-spacing:.06em;padding:7px 11px;border-radius:999px;border:1px solid var(--border)}.financial-score-card.good .financial-rating{color:var(--green);border-color:rgba(52,211,153,.35);background:rgba(52,211,153,.08)}.financial-score-card.warn .financial-rating{color:var(--yellow);border-color:rgba(250,204,21,.35);background:rgba(250,204,21,.08)}.financial-score-card.bad .financial-rating{color:var(--red);border-color:rgba(248,113,113,.35);background:rgba(248,113,113,.08)}.financial-score-card p{color:var(--muted);font-size:.8rem;line-height:1.45}
.financial-category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.financial-metric-card{min-width:0}.financial-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.financial-card-head h3{margin:0;font-size:1rem}.financial-card-head>span{font-size:.75rem;color:var(--muted);font-weight:800}.financial-metric-list{display:grid;gap:7px}.financial-metric-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 0;border-top:1px solid rgba(142,163,190,.09)}.financial-metric-row:first-child{border-top:0}.financial-metric-row span{font-size:.78rem;color:var(--muted)}.financial-metric-row strong{font-size:.92rem;text-align:right}.financial-history-wrap{overflow:auto}.financial-history-table{width:100%;border-collapse:collapse;min-width:720px}.financial-history-table th,.financial-history-table td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:right;font-size:.8rem}.financial-history-table th:first-child,.financial-history-table td:first-child{text-align:left}.financial-history-table th{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}
.news-popover{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(2,8,20,.66);backdrop-filter:blur(5px)}.news-popover.show{display:flex}.news-panel{width:min(760px,96vw);max-height:88vh;background:#0d1c31;border:1px solid rgba(148,163,184,.22);border-radius:18px;box-shadow:0 26px 80px rgba(0,0,0,.48);display:flex;flex-direction:column;overflow:hidden}.news-panel-large{width:min(1040px,97vw)}.story-panel{width:min(1120px,98vw);height:min(860px,93vh)}.news-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:17px 18px;border-bottom:1px solid var(--border)}.news-head h3{margin:0;font-size:1.08rem}.news-head p{margin:4px 0 0;color:var(--muted);font-size:.78rem}.news-head button{border:0;background:transparent;color:var(--muted);font-size:1.7rem;line-height:1;cursor:pointer}.news-list{overflow:auto;padding:8px 14px}.news-item{display:grid;grid-template-columns:92px minmax(0,1fr);gap:13px;padding:12px 3px;border-bottom:1px solid rgba(148,163,184,.10);cursor:pointer}.news-item:hover{background:rgba(72,116,168,.07)}.news-thumb{width:92px;height:66px;border-radius:9px;object-fit:cover;background:var(--surface-2)}.news-thumb-placeholder{display:grid;place-items:center;color:var(--muted);font-size:.7rem;border:1px solid var(--border)}.news-item h4{margin:0;font-size:.91rem;line-height:1.35}.news-item-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:5px;color:var(--muted);font-size:.7rem}.news-item p{margin:6px 0 0;color:#b9c8dc;font-size:.76rem;line-height:1.38;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.news-footer{display:flex;justify-content:flex-end;gap:10px;padding:12px 16px;border-top:1px solid var(--border)}.story-summary{padding:14px 18px;color:#c8d6e8;line-height:1.5;font-size:.84rem;border-bottom:1px solid var(--border)}.story-frame-wrap{flex:1;min-height:0;background:#fff}.story-frame-wrap iframe{width:100%;height:100%;border:0;background:#fff}.story-frame-note{padding:7px 16px;font-size:.7rem;color:var(--muted);background:rgba(255,255,255,.02)}
@media(max-width:1000px){.financial-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.financial-hero-grid{grid-template-columns:1fr}.financial-score-card{align-items:flex-start}.analysis-tabs{top:4px}}
@media(max-width:700px){.topbar{align-items:flex-start}.topbar-actions{flex-direction:column;align-items:flex-end}.analysis-tabs{overflow:auto;white-space:nowrap}.analysis-tab{flex:1;padding:10px 14px}.financial-control-row{align-items:flex-start;flex-direction:column}.financial-control-actions{width:100%;justify-content:space-between}.financial-category-grid{grid-template-columns:1fr}.financial-score-line strong{font-size:2.5rem}.news-item{grid-template-columns:72px minmax(0,1fr)}.news-thumb{width:72px;height:58px}.news-popover{padding:8px}.story-panel{height:96vh}.story-summary{font-size:.78rem}}

/* V76: hard separation between Options and Financial views */
.options-only[hidden], body.financial-mode .options-only{display:none!important}
.news-tab{color:#d7e6f8}.news-tab::before{content:'•';color:var(--green);margin-right:6px}

/* V77 financial layout polish + category traffic lights */
.financial-control-card{padding:20px 22px}
.financial-company-card,.financial-score-card,.financial-metric-card{padding:20px 22px}
.financial-company-card h2{font-size:1.18rem;line-height:1.2;margin:6px 0 12px}
.financial-company-description{font-size:.84rem;line-height:1.55;margin-top:14px}
.financial-company-meta{gap:10px 12px}
.financial-meta-chip{padding:0;background:transparent;border:0;border-radius:0;font-size:.77rem}
.financial-card-head{margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid rgba(142,163,190,.11)}
.financial-card-head h3{display:flex;align-items:center;gap:8px}
.financial-category-signal{display:inline-flex;align-items:center;gap:7px;font-size:.75rem!important;font-weight:900!important;letter-spacing:.02em}
.financial-category-signal:before{content:"";width:9px;height:9px;border-radius:50%;display:inline-block;box-shadow:0 0 0 4px rgba(128,146,172,.10)}
.financial-category-signal.good{color:var(--good)!important}.financial-category-signal.good:before{background:var(--good);box-shadow:0 0 0 4px rgba(52,209,139,.11)}
.financial-category-signal.warn{color:var(--warn)!important}.financial-category-signal.warn:before{background:var(--warn);box-shadow:0 0 0 4px rgba(242,184,75,.11)}
.financial-category-signal.bad{color:var(--bad)!important}.financial-category-signal.bad:before{background:var(--bad);box-shadow:0 0 0 4px rgba(255,101,121,.11)}
.financial-metric-card.signal-good{border-color:rgba(52,209,139,.28)}
.financial-metric-card.signal-warn{border-color:rgba(242,184,75,.25)}
.financial-metric-card.signal-bad{border-color:rgba(255,101,121,.25)}
.financial-metric-row{padding:10px 0}
@media(max-width:700px){.financial-control-card,.financial-company-card,.financial-score-card,.financial-metric-card{padding:16px}.financial-company-card h2{font-size:1.08rem}.financial-company-description{font-size:.79rem}}

/* V78 — Financial popup, chart workflow, and news importance polish */
.financial-popover{position:fixed;inset:0;z-index:115;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(2,8,20,.72);backdrop-filter:blur(6px)}
.financial-popover.show{display:flex}.financial-modal-panel{width:min(1500px,97vw);max-height:94vh;overflow:auto;background:#081629;border:1px solid rgba(148,163,184,.24);border-radius:18px;box-shadow:0 28px 90px rgba(0,0,0,.55);padding:18px}.financial-view{display:grid;gap:16px}.financial-close{width:36px;height:36px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:#dbeafe;font-size:1.45rem;line-height:1;cursor:pointer}
.financial-control-card,.financial-company-card,.financial-score-card,.financial-metric-card,.financial-history-card{padding:18px!important}.financial-company-card h2{font-size:1rem!important;line-height:1.2;margin:6px 0 10px!important}.financial-company-description{font-size:.79rem!important;line-height:1.5!important}.financial-card-head{padding:0 0 10px!important;margin:0 0 10px!important}.financial-metric-list{padding:0!important}.financial-metric-row{padding:9px 0!important}.financial-history-card .section-header{padding:0 0 14px!important}.financial-history-wrap{margin:0!important}
.chart-card.chart-expanded{position:fixed!important;inset:8px!important;z-index:300!important;width:auto!important;height:auto!important;margin:0!important;background:#0b1b31!important;display:flex!important;flex-direction:column!important;box-shadow:0 30px 100px rgba(0,0,0,.8)!important}.chart-card.chart-expanded .custom-chart-shell{flex:1!important;min-height:0!important}.chart-card.chart-expanded .market-chart{height:100%!important;min-height:560px!important}.chart-card.chart-expanded .section-header,.chart-card.chart-expanded .chart-toolbar,.chart-card.chart-expanded .chart-status-row{flex:0 0 auto}
.news-impact{width:92px;height:66px;border-radius:9px;border:1px solid var(--border);display:grid;place-items:center;background:var(--surface-2)}.news-impact span{width:18px;height:18px;border-radius:50%;display:block}.news-impact.high span{background:var(--bad);box-shadow:0 0 0 6px rgba(255,101,121,.12)}.news-impact.medium span{background:var(--warn);box-shadow:0 0 0 6px rgba(242,184,75,.12)}.news-impact.low span{background:var(--good);box-shadow:0 0 0 6px rgba(52,209,139,.12)}.impact-text{font-weight:900}.impact-text.high{color:var(--bad)}.impact-text.medium{color:var(--warn)}.impact-text.low{color:var(--good)}
@media(max-width:700px){.financial-popover{padding:6px}.financial-modal-panel{width:99vw;max-height:97vh;padding:10px}.financial-control-card,.financial-company-card,.financial-score-card,.financial-metric-card,.financial-history-card{padding:14px!important}.news-impact{width:72px;height:58px}.chart-card.chart-expanded{inset:0!important;border-radius:0!important}.chart-card.chart-expanded .market-chart{min-height:460px!important}}

/* V80: faster Company Overview scanning */
.financial-meta-chip strong{color:var(--text);font-weight:800}
.financial-company-description .overview-highlight{color:#eaf3ff;font-weight:800}
.financial-company-description strong strong{font-weight:900}

/* V81 compact chart controls */
.chart-toolbar.compact{padding:5px 7px!important;overflow:visible!important}
.chart-actions-single-row{display:flex!important;align-items:center;gap:5px!important;flex-wrap:nowrap!important;width:100%;min-width:0}
.chart-actions-single-row .chart-tool{padding:5px 7px!important;font-size:9px!important;min-height:29px}
.chart-actions-single-row .icon-tool{width:31px;min-width:31px;padding:4px!important;font-size:17px!important;display:grid;place-items:center;line-height:1}
.chart-actions-single-row .icon-tool svg{width:16px;height:16px;display:block;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.chart-actions-single-row .icon-tool .tv-icon{overflow:visible}

.timeframe-menu-wrap{flex:0 0 auto}.timeframe-current{min-width:48px!important}
.timeframe-menu,.draw-tools-menu{min-width:150px!important;left:0!important;right:auto!important;display:none!important;grid-template-columns:1fr!important;z-index:90!important}
.timeframe-menu.show,.draw-tools-menu.show{display:grid!important}
.draw-tools-menu{min-width:180px!important}
.chart-menu-wrap{position:relative}
.chart-tool.drawing{outline:1px solid #60a5fa;background:rgba(59,130,246,.18)!important}
@media(max-width:1050px){.chart-toolbar.compact{overflow-x:auto!important}.chart-actions-single-row{width:max-content}.chart-actions-single-row .chart-tool{flex:0 0 auto}}

.delayed-tooltip{position:fixed;z-index:9999;display:none;width:min(300px,calc(100vw - 20px));padding:9px 11px;border-radius:9px;border:1px solid rgba(148,163,184,.24);background:#071425;color:#dce8f7;font-size:11px;line-height:1.4;box-shadow:0 12px 35px rgba(0,0,0,.45);pointer-events:none}.delayed-tooltip.show{display:block}

/* V81 company overview: normal prose, no sentence bolding */
.overview-highlight,.financial-company-description strong{font-weight:inherit!important;color:inherit!important}
.financial-company-description{font-weight:400!important}

/* Financial metric hover affordance */
.metric-benchmark-target{position:relative;cursor:pointer}.metric-benchmark-target:hover{background:rgba(92,140,194,.055)}

/* News story reader replaces unreliable publisher iframes */
.story-reader{flex:1;min-height:0;overflow:auto;background:#09172a;padding:18px}.story-preview-copy{max-width:850px;margin:0 auto;color:#d4dfed;font-size:.9rem;line-height:1.7;white-space:normal}.story-preview-image{display:block;max-width:min(760px,100%);max-height:320px;object-fit:cover;border-radius:12px;margin:0 auto 18px}.story-frame-wrap{display:none!important}

/* slightly tighter financial cards */
.financial-company-card,.financial-score-card,.financial-metric-card{padding:16px!important}.financial-company-card h2{font-size:.96rem!important}.financial-company-description{font-size:.76rem!important;line-height:1.48!important}

/* V82 — responsive iPhone chart, practical financial sheet, compact tooltips */
.delayed-tooltip{width:max-content!important;max-width:min(260px,calc(100vw - 20px))!important;padding:7px 9px!important}

/* Financials are a focused analysis sheet, not a giant wall-sized modal. */
.financial-modal-panel{width:min(1120px,92vw)!important;max-height:88vh!important;padding:14px!important}
.financial-view{gap:12px!important}
.financial-category-grid{gap:12px!important}
.financial-hero-grid{gap:12px!important}
.financial-control-card,.financial-company-card,.financial-score-card,.financial-metric-card,.financial-history-card{padding:14px!important}

@media(max-width:700px){
  .financial-popover{align-items:flex-end!important;padding:0!important;background:rgba(2,8,20,.52)!important;backdrop-filter:blur(3px)!important}
  .financial-modal-panel{width:100vw!important;max-height:92dvh!important;border-radius:18px 18px 0 0!important;padding:10px!important;overscroll-behavior:contain}
  .financial-control-card{position:sticky;top:0;z-index:8;background:#0d2038!important;padding:12px!important}
  .financial-control-card .eyebrow,.financial-control-card p{display:none}
  .financial-control-row{gap:8px!important}.financial-control-row h2{font-size:1rem!important;margin:0!important}
  .financial-company-description{max-height:9.2em;overflow:auto;padding-right:3px}
  .financial-category-grid,.financial-hero-grid{grid-template-columns:1fr!important}
  .financial-history-table{min-width:620px}

  /* Let the canvas actually fit the iPhone viewport instead of forcing desktop width. */
  .chart-card{min-width:0!important;overflow:hidden}
  .chart-card .section-header{padding:13px 14px!important;gap:8px}
  .chart-card .section-header h2{font-size:1rem!important}
  .chart-card .section-header p{font-size:.72rem!important;line-height:1.25}
  .chart-symbol{font-size:.68rem!important}
  .chart-toolbar.compact{padding:5px!important;overflow-x:auto!important;overflow-y:visible!important;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .chart-toolbar.compact::-webkit-scrollbar{display:none}
  .chart-actions-single-row{width:max-content!important;gap:4px!important}
  .chart-actions-single-row .chart-tool{min-height:31px!important;padding:5px 7px!important;font-size:9px!important}
  .chart-actions-single-row .icon-tool{width:31px!important;min-width:31px!important;font-size:16px!important}
  .chart-actions-single-row .icon-tool svg{width:15px;height:15px}

  .custom-chart-shell{min-width:0!important;width:100%!important}
  .market-chart{width:100%!important;max-width:100%!important;min-width:0!important;height:510px!important;touch-action:none}
  .chart-status-row{font-size:.68rem!important;padding:6px 10px!important;gap:6px!important}
  .live-price-badge{font-size:.72rem!important;right:8px!important;top:8px!important}
}

.btn-minimal-dark{background:#0b1728;border:1px solid #2a405f;color:#e8f1ff;box-shadow:none;padding:9px 13px;font-weight:820;border-radius:9px;transition:background .15s ease,border-color .15s ease,transform .15s ease}
.btn-minimal-dark:hover{background:#101f33;border-color:#466184;transform:translateY(-1px)}
.btn-minimal-dark:active{transform:none;background:#081321}
.btn-minimal-dark.btn-small{padding:7px 10px;font-size:.76rem}


/* V85 refinements */
#analyzeButton, #analyzeLiveChain, #refreshFinancials, .analyze-live-chain, .refresh-financials {
  background:#142338 !important;
  border:1px solid #2a3d58 !important;
  color:#e5edf7 !important;
  box-shadow:none !important;
  font-weight:700 !important;
}
#analyzeButton:hover, #analyzeLiveChain:hover, #refreshFinancials:hover, .analyze-live-chain:hover, .refresh-financials:hover {
  background:#1a2b43 !important;
  border-color:#3a5272 !important;
}

/* Fundamental rows stay normal-pointer and are clickable as well as hoverable. */
.financial-metric-row, .financial-metric, [data-fundamental-key], [data-financial-tooltip] {
  cursor:pointer !important;
}
.financial-metric-row:hover, .financial-metric:hover, [data-fundamental-key]:hover, [data-financial-tooltip]:hover {
  cursor:pointer !important;
}

/* TradingView-like drawing menu icons. */
.draw-tools-menu .draw-menu-item{
  display:flex !important;
  align-items:center !important;
  gap:9px !important;
  min-height:34px;
}
.draw-tools-menu .draw-menu-icon{
  width:18px;
  min-width:18px;
  height:18px;
  display:grid;
  place-items:center;
  color:currentColor;
}
.draw-tools-menu .draw-menu-icon svg{
  width:17px;
  height:17px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.55;
  stroke-linecap:round;
  stroke-linejoin:round;
}


/* V86: mobile chart dropdowns escape the horizontally scrolling toolbar. */
@media(max-width:820px){
  .chart-overlay-menu.mobile-floating-menu{
    position:fixed!important;
    z-index:1200!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    margin:0!important;
    transform:none!important;
    background:rgba(8,17,30,.99)!important;
    border:1px solid rgba(91,121,163,.55)!important;
    box-shadow:0 18px 50px rgba(0,0,0,.58)!important;
    border-radius:12px!important;
    padding:7px!important;
    -webkit-overflow-scrolling:touch;
  }
  .chart-overlay-menu.mobile-floating-menu.show{display:grid!important;gap:5px!important}
  .chart-overlay-menu.mobile-floating-menu .chart-tool{
    min-height:40px!important;
    width:100%!important;
    padding:9px 10px!important;
    font-size:12px!important;
    text-align:left!important;
    touch-action:manipulation!important;
  }
  .draw-tools-menu.mobile-floating-menu .draw-menu-item{min-height:42px!important}
}

/* V87 Analyze Live Chain statement button */
.btn-analyze-statement{
  background:linear-gradient(135deg,#0ea5e9 0%,#2563eb 52%,#4f46e5 100%)!important;
  border:1px solid rgba(125,211,252,.7)!important;
  color:#fff!important;
  min-height:46px;
  padding:12px 20px!important;
  font-size:.98rem!important;
  font-weight:900!important;
  letter-spacing:.01em;
  border-radius:11px!important;
  box-shadow:0 8px 24px rgba(37,99,235,.28)!important;
  text-transform:none;
}
.btn-analyze-statement:hover{
  background:linear-gradient(135deg,#38bdf8 0%,#3b82f6 52%,#6366f1 100%)!important;
  border-color:#93c5fd!important;
  box-shadow:0 10px 28px rgba(37,99,235,.36)!important;
  transform:translateY(-1px);
}
.btn-analyze-statement:active{transform:translateY(0);box-shadow:0 5px 16px rgba(37,99,235,.26)!important}
@media(max-width:700px){.btn-analyze-statement{width:100%;min-height:48px;font-size:1rem!important}}

/* V87 matching statement style for Refresh Financials, preserving its compact size */
.btn-refresh-statement{
  background:linear-gradient(135deg,#0ea5e9 0%,#2563eb 52%,#4f46e5 100%)!important;
  border:1px solid rgba(125,211,252,.7)!important;
  color:#fff!important;
  box-shadow:0 6px 18px rgba(37,99,235,.22)!important;
  font-weight:850!important;
  border-radius:9px!important;
}
.btn-refresh-statement.btn-small{padding:7px 10px!important;font-size:.76rem!important;min-height:auto!important}
.btn-refresh-statement:hover{
  background:linear-gradient(135deg,#38bdf8 0%,#3b82f6 52%,#6366f1 100%)!important;
  border-color:#93c5fd!important;
  box-shadow:0 8px 20px rgba(37,99,235,.30)!important;
  transform:translateY(-1px);
}
.btn-refresh-statement:active{transform:none}

/* V93 — Break-even summary, TradingView-style research rail, watchlist, and earnings research */
.summary-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.financial-earnings-btn{background:#10243f!important;border:1px solid #31557f!important;color:#dbeafe!important;font-weight:850!important;box-shadow:none!important}.financial-earnings-btn:hover{background:#173153!important;border-color:#4c78aa!important}
.research-rail{position:fixed;right:10px;top:50%;transform:translateY(-50%);z-index:92;display:flex;flex-direction:column;gap:8px;padding:7px;border-radius:14px;border:1px solid rgba(148,163,184,.2);background:rgba(4,10,20,.9);box-shadow:0 12px 30px rgba(0,0,0,.32);backdrop-filter:blur(12px)}
.rail-button{width:46px;height:48px;border:0;border-radius:10px;background:transparent;color:#9fb0c9;display:grid;place-items:center;cursor:pointer;position:relative}.rail-button:hover{background:#15243a;color:#fff}.rail-icon{font-size:20px;line-height:1}.rail-label{display:none}
.research-panel{position:fixed;right:68px;top:90px;bottom:90px;width:min(360px,calc(100vw - 90px));z-index:110;display:none;flex-direction:column;background:#0b1729;border:1px solid rgba(148,163,184,.24);border-radius:16px;box-shadow:0 22px 70px rgba(0,0,0,.55);overflow:hidden}.research-panel.open{display:flex}.research-panel-head{padding:16px 16px 12px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.research-panel-head h3{margin:3px 0 0;font-size:1.08rem}.panel-close{width:34px;height:34px;border-radius:9px;border:1px solid var(--border);background:#0d1b2e;color:#dbeafe;font-size:1.35rem;cursor:pointer}.watchlist-add{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px}.watchlist-add input{min-width:0;border:1px solid var(--border);border-radius:9px;background:#081525;color:#fff;padding:10px 11px;font:inherit;text-transform:uppercase}.watchlist-add button{border:1px solid #31557f;border-radius:9px;background:#10243f;color:#dbeafe;font-weight:850;padding:0 14px;cursor:pointer}.watchlist-list{overflow:auto;padding:0 8px 8px}.watchlist-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(148,163,184,.1);padding:5px}.watchlist-symbol{flex:1;text-align:left;border:0;background:transparent;color:#f1f5f9;font-weight:900;font-size:.95rem;padding:10px;cursor:pointer}.watchlist-symbol:hover{color:#60a5fa}.watchlist-row-actions{display:flex;gap:4px}.watchlist-row-actions button{width:30px;height:30px;border:0;border-radius:7px;background:transparent;color:#8394ad;cursor:pointer}.watchlist-row-actions button:hover{background:#17253a;color:#fff}.panel-note{margin:auto 14px 14px;color:var(--muted);font-size:.7rem}
.earnings-popover{position:fixed;inset:0;z-index:135;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(2,8,20,.76);backdrop-filter:blur(7px)}.earnings-popover.show{display:flex}.earnings-panel{width:min(1480px,96vw);max-height:94vh;overflow:auto;border:1px solid rgba(148,163,184,.26);border-radius:18px;background:#111823;box-shadow:0 30px 100px rgba(0,0,0,.65);padding:18px;color:#e5e7eb}.earnings-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:2px 2px 16px;border-bottom:1px solid #333d4c}.earnings-head h2{margin:4px 0;font-size:1.35rem}.earnings-head p{margin:0;color:#9ca9bb;font-size:.78rem}.earnings-head-actions{display:flex;gap:8px;align-items:center}.earnings-alert{display:none;margin:12px 0 0;padding:10px 12px;border:1px solid rgba(245,158,11,.35);border-radius:10px;background:rgba(245,158,11,.08);color:#fcd34d;font-size:.76rem}.earnings-alert.show{display:block}.earnings-alert.loading{color:#bfdbfe;border-color:rgba(96,165,250,.3);background:rgba(59,130,246,.08)}
.earnings-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:18px 0}.earnings-kpi{padding:14px 16px;background:#171e2a;border:1px solid #303a49;border-radius:12px}.earnings-kpi span{display:block;color:#9faabd;font-size:.72rem;margin-bottom:6px}.earnings-kpi strong{font-size:1.1rem;color:#f3f4f6}.earnings-card{margin-top:14px;border:1px solid #343e4d;border-radius:14px;background:#20252e;overflow:hidden}.earnings-section-head{padding:15px 18px 10px;border-bottom:1px solid #333d4b}.earnings-section-head h3{margin:0;font-size:1rem}.earnings-section-head p{margin:4px 0 0;color:#9ba6b8;font-size:.72rem}
.earnings-chart{padding:18px;min-height:280px}.forecast-bars{height:250px;display:flex;gap:8px;align-items:flex-end;overflow-x:auto;padding:10px 4px 0;border-bottom:1px solid #505866;background-image:linear-gradient(to top,rgba(148,163,184,.12) 1px,transparent 1px);background-size:100% 25%}.forecast-col{min-width:82px;height:100%;display:grid;grid-template-rows:1fr auto auto auto auto;align-items:end;text-align:center;gap:3px}.forecast-bars-pair{height:150px;display:flex;align-items:flex-end;justify-content:center;gap:4px}.forecast-bar{width:28px;min-height:4px;border-radius:3px 3px 0 0}.forecast-bar.estimate{background:#3c4351}.forecast-bar.reported{background:#7c5ce7}.forecast-bar.reported.future{background:repeating-linear-gradient(135deg,#3c4351,#3c4351 5px,#2c323d 5px,#2c323d 10px)}.forecast-col strong{font-size:.67rem;color:#d7dce5}.forecast-col small{font-size:.6rem;color:#a5afbd;white-space:nowrap}.forecast-col b{font-size:.62rem}.positive{color:#22c55e!important}.negative{color:#fb7185!important}.neutral{color:#a7b4c6!important}
.earnings-reaction-wrap{overflow:auto;max-height:520px}.earnings-reaction-table{width:100%;border-collapse:collapse;min-width:1420px}.earnings-reaction-table th,.earnings-reaction-table td{padding:9px 10px;border-bottom:1px solid #434c5b;border-right:1px solid #343d4b;text-align:center;font-size:.68rem;white-space:nowrap}.earnings-reaction-table th{position:sticky;top:0;z-index:2;background:#20252e;color:#b7c0cf;font-weight:850}.earnings-reaction-table th:first-child,.earnings-reaction-table td:first-child{position:sticky;left:0;z-index:3;background:#20252e;text-align:left;min-width:190px}.earnings-reaction-table thead th:first-child{z-index:4}.report-cell strong,.report-cell small{display:block}.report-cell strong{font-size:.72rem;color:#f4f4f5;margin-bottom:4px}.report-cell small{color:#a8b2c1;line-height:1.45}.reaction-price{font-weight:800;color:#e5e7eb}.reaction-pct{font-weight:850;margin-top:3px}
body.modal-open{overflow:hidden}
@media(max-width:1120px){.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.research-rail{right:6px}.earnings-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.summary-grid{grid-template-columns:1fr 1fr}.research-rail{right:8px;top:auto;bottom:78px;transform:none;flex-direction:row;padding:5px}.rail-button{width:42px;height:42px}.research-panel{right:0;top:auto;bottom:0;width:100vw;height:70dvh;border-radius:18px 18px 0 0}.earnings-popover{padding:0;align-items:flex-end}.earnings-panel{width:100vw;max-height:94dvh;border-radius:18px 18px 0 0;padding:12px}.earnings-head{position:sticky;top:-12px;z-index:8;background:#111823;padding:12px 2px 12px}.earnings-head h2{font-size:1.08rem}.earnings-head p{font-size:.68rem}.earnings-head-actions .btn{display:none}.earnings-kpis{grid-template-columns:1fr 1fr;gap:8px;padding:12px 0}.earnings-kpi{padding:11px}.earnings-kpi strong{font-size:.92rem}.earnings-chart{padding:10px;min-height:245px}.forecast-bars{height:220px}.forecast-col{min-width:76px}.forecast-bars-pair{height:135px}.earnings-reaction-wrap{max-height:58dvh}}

/* V95 Previous Earnings compact history chart */
.earnings-history-card{min-height:0}
.earnings-history-chart{padding:14px 18px 12px;min-height:240px;overflow:hidden}
.earnings-history-svg{display:block;width:100%;height:auto;max-height:270px;overflow:visible}
.earnings-grid{stroke:rgba(148,163,184,.18);stroke-width:1}
.earnings-axis-label,.earnings-period-label{fill:#a8b3c5;font-size:12px;font-weight:700}
.earnings-actual-line{fill:none;stroke:#35c8b0;stroke-width:2;opacity:.65}
.earnings-estimate-line{fill:none;stroke:#8993a4;stroke-width:1.5;opacity:.6}
.earnings-actual-dot{fill:#35c8b0;stroke:#35c8b0;stroke-width:2}
.earnings-estimate-dot{fill:#111823;stroke:#8993a4;stroke-width:2}
.earnings-history-legend{display:flex;justify-content:center;gap:22px;margin-top:2px;color:#a8b3c5;font-size:.72rem;font-weight:700}
.earnings-history-legend span{display:inline-flex;align-items:center;gap:7px}
.legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.legend-dot.actual{background:#35c8b0}
.legend-dot.estimate{background:#111823;border:1.5px solid #8993a4}
@media(max-width:700px){.earnings-history-chart{padding:8px 4px 10px;min-height:210px;overflow-x:auto;-webkit-overflow-scrolling:touch}.earnings-history-svg{min-width:620px}.earnings-history-legend{position:sticky;left:0}}


/* V96 — Top-row watchlist and more prominent earnings reaction research */
.analysis-tabs{align-items:center}
.watchlist-top-button{margin-left:auto;flex:0 0 auto!important;border-color:rgba(96,165,250,.28)!important;background:rgba(13,27,46,.82)!important;color:#dbeafe!important}
.watchlist-top-button:hover{background:#142942!important;border-color:#4a78aa!important}
.research-rail{display:none!important}
.watchlist-panel{right:18px;top:92px;bottom:26px;width:min(430px,calc(100vw - 36px))}
.watchlist-columns{display:grid;grid-template-columns:minmax(82px,1fr) 74px 64px 68px 62px;gap:4px;padding:8px 12px 6px;border-bottom:1px solid rgba(148,163,184,.12);color:#7f8ca0;font-size:.64rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.watchlist-row{display:grid;grid-template-columns:minmax(82px,1fr) 74px 64px 68px 62px;gap:4px;align-items:center;padding:2px 7px;border-bottom:1px solid rgba(148,163,184,.1)}
.watchlist-symbol{padding:9px 5px;font-size:.83rem}.watch-last,.watch-change,.watch-pct{font-size:.76rem;font-variant-numeric:tabular-nums;text-align:right;color:#d5dbe5}.watchlist-row-actions{justify-content:flex-end}.watchlist-row-actions button{width:27px;height:27px}.watchlist-row.loading{opacity:.72}
.watchlist-detail{margin:10px 10px 0;padding:13px;border:1px solid rgba(148,163,184,.16);border-radius:12px;background:#071322}.watch-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.watch-detail-head strong{font-size:1rem}.watch-detail-head span{display:block;margin-top:3px;color:#8797ad;font-size:.67rem}.watch-detail-head button{border:1px solid #31557f;border-radius:8px;background:#10243f;color:#dbeafe;font-weight:800;padding:7px 11px;cursor:pointer}.watch-detail-price{font-size:1.65rem;font-weight:900;margin-top:12px;color:#f5f7fb}.watch-detail-change{font-size:.84rem;font-weight:850;margin:2px 0 13px}.watch-range{margin-top:10px}.watch-range>div:first-child{display:grid;grid-template-columns:auto 1fr auto;align-items:end;gap:8px;font-size:.68rem;color:#cbd5e1}.watch-range small{text-align:center;color:#718198;font-size:.58rem}.watch-range-track-wrap{padding-top:12px}.watch-range-track{position:relative;height:6px;margin-top:6px;border-radius:99px;background:linear-gradient(90deg,#3a414e,#64748b,#3a414e);box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}.watch-range-pointer{position:absolute;top:-14px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;pointer-events:none}.watch-range-pointer::before{content:"";display:block;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:9px solid #93c5fd;filter:drop-shadow(0 1px 3px rgba(0,0,0,.45))}.watch-range-pointer::after{content:"";display:block;width:2px;height:10px;background:#93c5fd;border-radius:999px;opacity:.95}.watch-range-pointer.positive::before{border-top-color:#34d399}.watch-range-pointer.positive::after{background:#34d399}.watch-range-pointer.negative::before{border-top-color:#fb7185}.watch-range-pointer.negative::after{background:#fb7185}.watch-range-pointer.neutral::before{border-top-color:#93c5fd}.watch-range-pointer.neutral::after{background:#93c5fd}.watch-range-pointer span{display:none}
.earnings-primary-card{border-color:rgba(96,165,250,.5);box-shadow:0 0 0 1px rgba(96,165,250,.08),0 18px 50px rgba(0,0,0,.22);background:#1d2633}.earnings-primary-head{padding:18px 20px 13px;background:linear-gradient(90deg,rgba(59,130,246,.12),transparent 62%)}.earnings-primary-head h3{font-size:1.18rem}.earnings-primary-head .eyebrow{color:#60a5fa}.earnings-primary-card .earnings-reaction-wrap{max-height:610px}
@media(max-width:700px){.analysis-tabs{gap:4px}.watchlist-top-button{margin-left:auto;min-width:auto!important;padding:10px 12px!important}.watchlist-panel{right:0;top:auto;bottom:0;width:100vw;height:76dvh}.watchlist-columns,.watchlist-row{grid-template-columns:minmax(74px,1fr) 65px 57px 62px 52px}.watchlist-columns{padding-left:10px;padding-right:8px}.watchlist-row{padding-left:6px;padding-right:6px}.watchlist-symbol{font-size:.78rem}.watch-last,.watch-change,.watch-pct{font-size:.7rem}.earnings-primary-head h3{font-size:1.02rem}}


/* V97 earnings history tooltip + future-safe actuals */
.earnings-chart-stage{position:relative}
.earnings-hover-point{cursor:pointer;transition:r .12s ease,filter .12s ease}
.earnings-hover-point:hover{r:10;filter:drop-shadow(0 0 4px rgba(255,255,255,.3))}
.earnings-point-tooltip{position:absolute;z-index:9;display:none;min-width:170px;max-width:220px;padding:10px 12px;border:1px solid #334155;border-radius:9px;background:#111827;color:#e5e7eb;box-shadow:0 12px 28px rgba(0,0,0,.42);pointer-events:none;font-size:.72rem;line-height:1.35}
.earnings-point-tooltip.show{display:block}
.earnings-point-tooltip>strong{display:block;font-size:.78rem;margin-bottom:1px}
.earnings-point-tooltip>small{display:block;color:#94a3b8;margin-bottom:7px}
.earnings-point-tooltip>div{display:flex;justify-content:space-between;gap:14px;margin-top:3px}
.earnings-point-tooltip>div span{color:#a8b3c5}
.earnings-point-tooltip .positive{color:#34d399}.earnings-point-tooltip .negative{color:#fb7185}

/* V98 — sortable watchlist */
.watchlist-columns .watch-sort{appearance:none;border:0;background:transparent;color:#7f8ca0;font:800 .64rem/1 system-ui,-apple-system,sans-serif;text-transform:uppercase;letter-spacing:.04em;text-align:right;padding:2px 0;cursor:pointer;white-space:nowrap}
.watchlist-columns .watch-sort:first-child{text-align:left}
.watchlist-columns .watch-sort:hover,.watchlist-columns .watch-sort.active{color:#dbeafe}
.watch-sort-arrow{display:inline-block;min-width:9px;margin-left:2px;font-size:.55rem;color:#60a5fa}

/* V102 — Earnings reaction pattern analysis with time-aware relevance */
.earnings-reaction-analysis{padding:0 18px 16px}.earnings-pattern-card{border:1px solid rgba(148,163,184,.22);border-radius:14px;background:#101a28;padding:15px 16px}.earnings-pattern-card.favorable{border-color:rgba(52,211,153,.34);box-shadow:inset 3px 0 0 rgba(52,211,153,.65)}.earnings-pattern-card.review{border-color:rgba(251,191,36,.3);box-shadow:inset 3px 0 0 rgba(251,191,36,.6)}.earnings-pattern-top{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.75fr);gap:14px;align-items:stretch}.earnings-pattern-top h4{margin:4px 0 6px;color:#f8fafc;font-size:1.06rem}.earnings-pattern-top p{margin:0;color:#aab7ca;font-size:.76rem;line-height:1.45}.earnings-relevance{border:1px solid rgba(148,163,184,.18);border-radius:11px;background:#091421;padding:11px 12px;display:flex;flex-direction:column;justify-content:center}.earnings-relevance strong{color:#f8fafc;font-size:.78rem}.earnings-relevance span{margin-top:5px;color:#91a0b5;font-size:.67rem;line-height:1.4}.earnings-relevance b{margin-top:8px;font-size:.65rem;letter-spacing:.06em}.earnings-relevance.active{border-color:rgba(52,211,153,.45);background:rgba(6,78,59,.18)}.earnings-relevance.expired{border-color:rgba(148,163,184,.22);background:rgba(30,41,59,.45)}.earnings-pattern-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.earnings-pattern-metrics>div{border:1px solid rgba(148,163,184,.13);border-radius:10px;background:#0a1523;padding:10px}.earnings-pattern-metrics span{display:block;color:#8190a5;font-size:.63rem}.earnings-pattern-metrics strong{display:block;margin-top:4px;color:#eef4fb;font-size:.82rem;font-variant-numeric:tabular-nums}.earnings-timing-note{margin-top:10px;padding-top:10px;border-top:1px solid rgba(148,163,184,.12);color:#8797ad;font-size:.65rem;line-height:1.45}.earnings-timing-note strong{color:#cbd5e1}.earnings-reaction-wrap{border-top:1px solid rgba(148,163,184,.12)}
@media(max-width:760px){.earnings-reaction-analysis{padding:0 10px 12px}.earnings-pattern-card{padding:12px}.earnings-pattern-top{grid-template-columns:1fr}.earnings-pattern-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V103 — exact watchlist range marker placement + TradingView-inspired news */
.watch-range-labels{display:grid;grid-template-columns:auto 1fr auto;align-items:end;gap:8px;font-size:.68rem;color:#cbd5e1}
.watch-range-labels small{text-align:center;color:#718198;font-size:.58rem}
.watch-range-track-wrap{padding:3px 0 15px}
.watch-range-track{position:relative;height:6px;margin-top:6px;border-radius:99px;background:#485365;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}
.watch-range-progress{position:absolute;inset:0 auto 0 0;width:0;border-radius:99px 0 0 99px;opacity:.8;background:#93c5fd}
.watch-range-progress.positive{background:#10b981!important}.watch-range-progress.negative{background:#f43f5e!important}.watch-range-progress.neutral{background:#93c5fd!important}
.watch-range-pointer{position:absolute;left:0;bottom:-13px;transform:translateX(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:9px solid #93c5fd;filter:drop-shadow(0 1px 2px rgba(0,0,0,.65));pointer-events:auto;z-index:2}
.watch-range-pointer::before,.watch-range-pointer::after{display:none!important}
.watch-range-pointer.positive{border-bottom-color:#10b981!important}.watch-range-pointer.negative{border-bottom-color:#f43f5e!important}.watch-range-pointer.neutral{border-bottom-color:#93c5fd!important}

.news-panel-tradingview{width:min(1180px,97vw);height:min(850px,92vh);background:#080b10;border-color:#2a3038;border-radius:14px}
.tv-news-head{background:#080b10;border-bottom:0;padding:20px 24px 10px}.tv-news-head h3{font-size:1.05rem}.tv-news-head p{font-size:.72rem;color:#7f8792}
.tv-news-view-tabs{display:flex;gap:8px;padding:10px 24px 8px}.tv-news-view-tabs button{border:0;border-radius:999px;background:#292d33;color:#d5d9df;padding:9px 16px;font:700 .78rem/1 system-ui,-apple-system,sans-serif;cursor:pointer}.tv-news-view-tabs button.active{background:#f4f5f7;color:#11151a}
.tv-news-filters{display:flex;gap:8px;overflow:auto;padding:8px 24px 12px;border-bottom:1px solid #242a31}.tv-news-filters button{white-space:nowrap;border:0;border-radius:7px;background:transparent;color:#d0d4da;padding:9px 12px;font:600 .73rem/1 system-ui,-apple-system,sans-serif;cursor:pointer}.tv-news-filters button:hover{background:#181c22}.tv-news-filters button.active{background:#30343b;color:#fff}
.tv-news-list{padding:0 24px 24px;background:#080b10}
.tv-keyfacts-day{position:relative;max-width:760px;margin:0 auto;padding:28px 0 26px 30px;border-left:2px solid #30363d}.tv-keyfacts-day+.tv-keyfacts-day{padding-top:18px}.tv-day-node{position:absolute;left:-7px;top:34px;width:12px;height:12px;border-radius:50%;background:#5b6169;border:2px solid #080b10}.tv-keyfacts-day:first-child .tv-day-node{background:#1fc7a6;box-shadow:0 0 0 4px rgba(31,199,166,.16)}.tv-news-updated{display:flex;align-items:center;gap:7px;color:#8e949d;font-size:.72rem;margin-bottom:14px}.tv-news-live-dot{width:8px;height:8px;border-radius:50%;background:#1fc7a6}.tv-keyfacts-day h3{margin:0 0 14px;font-size:1.32rem;color:#f0f2f5}.tv-keyfacts-day ul{margin:0;padding-left:18px}.tv-keyfacts-day li{margin:0 0 12px;padding-left:2px;color:#d4d7dc;font-size:.82rem;line-height:1.55;cursor:pointer}.tv-keyfacts-day li:hover>span:first-child{color:#fff}.tv-news-source{display:inline-flex;align-items:center;margin-left:4px;padding:2px 5px;border-radius:4px;background:#2b3037;color:#afb5bd;font-size:.58rem;vertical-align:middle;white-space:nowrap}
.tv-headline-day{border-bottom:1px solid #282d33}.tv-headline-day-label{padding:13px 0 7px;color:#747b84;font-size:.67rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.tv-headline-row{display:grid;grid-template-columns:112px 18px minmax(0,1fr) 150px;gap:10px;align-items:center;min-height:49px;border-top:1px solid #24292f;cursor:pointer}.tv-headline-row:hover{background:#11151a}.tv-headline-row time{padding-left:4px;color:#858b94;font-size:.7rem}.tv-news-dot{width:8px;height:8px;border-radius:50%;background:#64748b}.tv-news-dot.high{background:#ef4444}.tv-news-dot.medium{background:#f59e0b}.tv-news-dot.low{background:#22c55e}.tv-headline-row h4{margin:0;color:#e1e4e8;font-size:.78rem;font-weight:560;line-height:1.35}.tv-headline-source{text-align:right;color:#858b94;font-size:.67rem;padding-right:4px}.tv-news-footer{background:#080b10;border-top:1px solid #242a31}
@media(max-width:700px){.news-panel-tradingview{width:100vw;height:96dvh;border-radius:12px}.tv-news-head{padding:16px 14px 8px}.tv-news-view-tabs,.tv-news-filters{padding-left:14px;padding-right:14px}.tv-news-list{padding:0 14px 18px}.tv-keyfacts-day{padding-left:24px}.tv-keyfacts-day h3{font-size:1.08rem}.tv-keyfacts-day li{font-size:.77rem}.tv-headline-row{grid-template-columns:74px 12px minmax(0,1fr);gap:7px;padding:7px 0}.tv-headline-source{grid-column:3;text-align:left;padding:0}.tv-headline-row time{font-size:.62rem}.watch-range-track-wrap{padding-bottom:14px}}

/* V105 — simplified TradingView-style news + impact legend */
.tv-news-legend{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:6px 24px 12px;border-bottom:1px solid #242a31;background:#080b10;color:#9299a3;font-size:.66rem;font-weight:650}.tv-news-legend span{display:inline-flex;align-items:center;gap:6px}.tv-news-legend .tv-news-dot{display:inline-block;flex:0 0 auto}.tv-keyfacts-day li{position:relative}.tv-keyfacts-day li>.tv-news-dot{display:inline-block;margin-right:7px;vertical-align:1px}.tv-news-filters{display:none!important}@media(max-width:700px){.tv-news-legend{padding:6px 14px 10px;gap:12px;font-size:.62rem}}

/* V107 — CSP-safe watchlist range marker using SVG geometry instead of inline CSS positioning */
.watch-range-track-wrap{padding:2px 0 8px}.watch-range-svg{display:block;width:100%;height:18px;overflow:visible}.watch-range-axis{stroke:#4b5668;stroke-width:5;stroke-linecap:round;vector-effect:non-scaling-stroke}.watch-range-progress-line{stroke:#64748b;stroke-width:5;stroke-linecap:round;vector-effect:non-scaling-stroke}.watch-range-triangle{vector-effect:non-scaling-stroke}.watch-range-svg.positive .watch-range-triangle{fill:#10b981}.watch-range-svg.negative .watch-range-triangle{fill:#f43f5e}.watch-range-svg.neutral .watch-range-triangle{fill:#93c5fd}.watch-range-svg.positive .watch-range-progress-line{stroke:#10b981}.watch-range-svg.negative .watch-range-progress-line{stroke:#f43f5e}.watch-range-svg.neutral .watch-range-progress-line{stroke:#93c5fd}


/* V111 — compact earnings-reaction architecture and contained EPS plot */
.earnings-reaction-table{min-width:1180px;table-layout:auto}
.earnings-reaction-table th,.earnings-reaction-table td{padding:8px 7px}
.earnings-reaction-table th:first-child,.earnings-reaction-table td:first-child{min-width:142px;width:142px;max-width:142px}
.earnings-reaction-table th:nth-child(2),.earnings-reaction-table td:nth-child(2){min-width:78px;width:78px;padding-left:5px;padding-right:5px}
.earnings-reaction-table th:nth-child(n+3),.earnings-reaction-table td:nth-child(n+3){min-width:76px}
.earnings-history-chart{overflow:hidden}
.earnings-chart-stage{overflow:hidden}
.earnings-history-svg{overflow:hidden!important}


/* V115 — Supabase authentication and account profile */
body.auth-pending{overflow:hidden}.auth-pending .shell{visibility:hidden}.auth-gate{position:fixed;inset:0;z-index:10000;display:none;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at 18% 0%,rgba(59,130,246,.18),transparent 34%),radial-gradient(circle at 95% 15%,rgba(99,102,241,.15),transparent 30%),#06101e}.auth-gate.show{display:flex}.auth-card{width:min(460px,100%);border:1px solid #29405f;border-radius:22px;background:#0b192b;box-shadow:0 30px 90px rgba(0,0,0,.48);padding:28px}.auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:22px}.auth-brand h2{margin:0;font-size:1.28rem}.auth-brand p{margin:4px 0 0;color:var(--muted);font-size:.84rem}.auth-form{display:grid;gap:9px}.auth-form label,.profile-form label{font-size:.75rem;color:#a9bad2;font-weight:750}.auth-form input,.profile-form input{width:100%;border:1px solid #2a405f;border-radius:11px;background:#071423;color:#f5f8fc;padding:12px 13px;outline:none}.auth-form input:focus,.profile-form input:focus{border-color:#4a88ca;box-shadow:0 0 0 3px rgba(74,136,202,.13)}.auth-password-wrap{position:relative}.auth-password-wrap input{padding-right:62px}.auth-password-wrap button{position:absolute;right:7px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#8fb2dc;font-weight:750;font-size:.72rem}.auth-primary{margin-top:9px;width:100%;justify-content:center;background:linear-gradient(135deg,#317fd0,#5651ef)!important;color:white!important;border-color:#578ad1!important}.auth-primary:disabled{opacity:.58;cursor:wait}.auth-links{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:16px;color:#64748b}.auth-links button,.auth-back-link{border:0;background:transparent;color:#8fb8e5;font-size:.78rem;font-weight:700}.auth-back-link{display:block;margin:14px auto 0}.auth-footnote{margin:19px 0 0;text-align:center;color:#6f8199;font-size:.68rem;line-height:1.45}.auth-status{min-height:0;margin:0 0 12px;border-radius:10px;font-size:.76rem;line-height:1.4}.auth-status:not(:empty){padding:10px 11px;border:1px solid #36506f;background:#10233a}.auth-status.error{border-color:#713447;background:#321824;color:#ffb8c2}.auth-status.success{border-color:#28624f;background:#102d27;color:#9cf0cb}.auth-status.info{border-color:#35557b;color:#b8d6f7}
.profile-shell{position:relative}.profile-button{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:999px;background:#0e1e33;color:var(--text);padding:5px 10px 5px 6px}.profile-avatar{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#6366f1);font-size:.68rem;font-weight:900}.profile-name{max-width:135px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;font-weight:800}.profile-chevron{color:#8295b0}.profile-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:500;display:none;width:220px;padding:7px;border:1px solid #29405f;border-radius:13px;background:#091728;box-shadow:0 18px 50px rgba(0,0,0,.42)}.profile-menu.show{display:block}.profile-menu-head{padding:9px 10px 10px;border-bottom:1px solid #21344e}.profile-menu-head strong,.profile-menu-head span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-menu-head strong{font-size:.78rem}.profile-menu-head span{margin-top:3px;color:var(--muted);font-size:.66rem}.profile-menu button{width:100%;border:0;border-radius:8px;background:transparent;color:#dbe7f5;text-align:left;padding:9px 10px;font-size:.75rem;font-weight:700}.profile-menu button:hover{background:#112640}
.profile-modal{position:fixed;inset:0;z-index:9000;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(2,8,18,.72);backdrop-filter:blur(8px)}.profile-modal.show{display:flex}.profile-modal-card{width:min(430px,100%);padding:20px;border:1px solid #2a405f;border-radius:18px;background:#0b192b;box-shadow:0 25px 70px rgba(0,0,0,.46)}.profile-modal-head{display:flex;align-items:flex-start;justify-content:space-between}.profile-modal-head h3{margin:3px 0 0}.profile-modal-head button{border:0;background:transparent;color:#bdd0e7;font-size:1.4rem}.profile-form{display:grid;gap:9px;margin-top:20px}.profile-form input:disabled{opacity:.65}
@media(max-width:700px){.auth-card{padding:22px 18px}.profile-name{display:none}.topbar-actions{gap:7px}.connection-pill{font-size:.68rem;padding:7px 8px}.profile-button{padding-right:7px}}

/* V116 — profile avatar upload */
.profile-avatar{overflow:hidden}.profile-avatar img,.profile-avatar-preview img{width:100%;height:100%;object-fit:cover;display:block}.profile-avatar-editor{display:flex;align-items:center;gap:16px;margin-bottom:8px;padding:14px;border:1px solid #213854;border-radius:14px;background:#081523}.profile-avatar-preview{width:82px;height:82px;flex:0 0 82px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:linear-gradient(135deg,#3b82f6,#6366f1);border:2px solid #355579;color:#fff;font-weight:900;font-size:1.25rem}.profile-avatar-actions{display:flex;align-items:flex-start;flex-wrap:wrap;gap:8px}.profile-avatar-actions small{width:100%;color:#7388a5;font-size:.66rem;line-height:1.35}.profile-avatar-upload,.profile-avatar-remove{padding:8px 11px!important;font-size:.72rem!important;background:#10243b!important;border-color:#315477!important}.profile-avatar-remove{color:#ffb5c0!important;border-color:#653347!important;background:#2b1620!important}.profile-avatar-remove:disabled{opacity:.45;cursor:not-allowed}.profile-form.saving{opacity:.72;pointer-events:none}@media(max-width:520px){.profile-avatar-editor{align-items:flex-start}.profile-avatar-preview{width:68px;height:68px;flex-basis:68px}.profile-avatar-actions{flex:1}}
