/* ---------- Design tokens: Google-style light, consistent across all pages ---------- */
:root{
  --bg:#ffffff;          /* page background */
  --surface:#ffffff;     /* cards / reports */
  --surface2:#f8fafc;    /* subtle panels (inputs, transcript boxes) */
  --surface3:#f1f5f9;    /* table striping / hover */
  --border:#e2e8f0;      /* hairlines */
  --txt:#1f2937;         /* primary text */
  --dim:#64748b;         /* secondary text */
  --accent:#1a73e8;      /* Google Blue 600 */
  --accent-dark:#1765cc;
  --green:#188038;       /* Google Green 700 */
  --amber:#F9AB00;       /* Google Yellow 600 — conference 'C' badge */
  --red:#d93025;         /* Google Red 600 */
  --radius:10px;
  --shadow:0 1px 2px rgba(16,24,40,.05);
  --shadow-hover:0 2px 8px rgba(16,24,40,.08);
}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:var(--txt);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}
.wrap{max-width:1100px;margin:0 auto;padding:18px 24px}
.wrap.wide{max-width:1700px}
header{padding:14px 0 12px;border-bottom:1px solid var(--border);margin-bottom:16px}
header h1{font-size:1.4rem;letter-spacing:-.02em;color:var(--txt)}
header .sub{color:var(--dim);font-size:.92rem;margin-top:3px}
.clock{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap;align-items:center}
.clock-item{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:6px 12px;font-size:.85rem}
.clock-lbl{color:var(--dim);margin-right:4px}
.clock-val{font-variant-numeric:tabular-nums;font-weight:600;color:var(--txt)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);transition:transform .12s,box-shadow .12s}
.card:hover{transform:translateY(-1px);box-shadow:var(--shadow-hover);border-color:#cbd5e1}
.card h3{font-size:1.05rem;margin-bottom:4px;color:var(--txt)}
.card .desc{color:var(--dim);font-size:.88rem;margin-bottom:8px}
.card .meta{font-size:.85rem;color:var(--dim)}
.card .updated{color:var(--accent);font-weight:600}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.report{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-top:8px;box-shadow:var(--shadow);color:var(--txt)}
.report h1{font-size:1.05rem;margin-bottom:6px;padding-bottom:5px;border-bottom:1px solid var(--border);color:var(--txt)}
.report h2{color:var(--txt);font-size:1.05rem}
table{border-collapse:collapse;width:100%;margin:8px 0}
 th,td{border:1px solid var(--border);padding:7px 10px;text-align:left;font-size:.9rem}
th{background:var(--surface2);color:var(--txt);font-weight:600}
tr:nth-child(even){background:var(--surface3)}
tr:hover{background:var(--surface2)}
/* consistent column widths across all sub-sector tables */
.report table th:nth-child(1),.report table td:nth-child(1){width:10%}
.report table th:nth-child(2),.report table td:nth-child(2){width:6%;text-align:center}
.report table th:nth-child(3),.report table td:nth-child(3){width:9%;text-align:center}
.report table th:nth-child(4),.report table td:nth-child(4){width:10%;text-align:center}
.report table th:nth-child(5),.report table td:nth-child(5){width:10%;text-align:center}
.report table th:nth-child(6),.report table td:nth-child(6){width:9%;text-align:center}
.report table th:nth-child(7),.report table td:nth-child(7){width:9%;text-align:center}
.report table th:nth-child(8),.report table td:nth-child(8){width:10%;text-align:center}
.report table th:nth-child(9),.report table td:nth-child(9){width:7%;text-align:center}
.report table th:nth-child(10),.report table td:nth-child(10){width:12%}
/* totals row */
.report table tr.totals td{background:var(--surface2);font-weight:700;border-top:2px solid var(--accent)}
/* compact table rows — slightly larger font for readability */
.report table th,.report table td{padding:3px 5px;font-size:.88rem}
.report li{font-size:.9rem;line-height:1.4}
/* portfolio rules card — nicer than a plain table */
.report .rules-wrap{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:12px 16px;margin-top:4px}
.report .rules-wrap table{background:transparent;border:none;margin:0;font-size:.82rem;width:100%}
.report .rules-wrap table th{display:none}
.report .rules-wrap table tr{background:transparent!important;border-bottom:1px solid var(--border)}
.report .rules-wrap table tr:last-child{border-bottom:none}
.report .rules-wrap table td{padding:5px 6px;border:none;vertical-align:top;background:transparent!important}
.report .rules-wrap table td:first-child{width:28%;font-weight:600;color:var(--accent);white-space:nowrap;text-align:left}
.report .rules-wrap table td:last-child{width:72%;color:var(--txt);font-size:.82rem;text-align:left}
.report .rules-wrap table td strong{color:var(--txt);font-weight:700}
/* sector/performance table cells — light green bg for positive, light red for negative */
.report table td.pos{background:rgba(52,168,83,.22);color:var(--green)}
.report table td.neg{background:rgba(234,67,53,.22);color:var(--red)}
.report table td.tot-label{text-align:left}
.report ul{list-style:none;margin:4px 0 6px}
/* restore visible bullet dots inside transcript summary boxes */
.summ-box ul,.orig-box ul{list-style:disc;padding-left:22px}
.summ-box ul li,.orig-box ul li{margin-bottom:.3em}
/* Q&A: the answer sits directly under the question text (inside the same li, after the bullet) */
.summ-box ul li.qa-q .qa-answer,.orig-box ul li.qa-q .qa-answer{margin-top:.3em;padding-left:22px}
.summ-box li.qa-answer,.orig-box li.qa-answer{margin-left:0}
.report ul li{padding:1px 0;border-bottom:1px dashed var(--border);line-height:1.3}
.report ul li:last-child{border-bottom:none}
.report ul li .mkt-circle{font-size:.8rem;margin-right:2px}
.report p{margin:3px 0;line-height:1.45}
.report h2{margin-top:14px;margin-bottom:3px}
.report h3{margin-top:14px;font-size:1.1rem}
.report h4{margin-top:12px;color:var(--txt)}
/* summary section headers (## Results etc.): underline + bold, no blue bracket */
.report h2,.report h3,.report h4{text-decoration:underline;font-weight:700;color:var(--txt);border-left:none}
.report .sec-title{margin:18px 0 4px;padding:6px 10px;background:var(--surface2);border-left:4px solid var(--accent);border-radius:6px;font-weight:700;font-size:.92rem;color:var(--txt)}
.report .sec-title:first-child{margin-top:6px}
/* 50d MA tracker: clear separation between the NEW ABOVE list and the NEXT signal section */
.report ul + .sec-title, .report ul + p, .report p + p{margin-top:22px}
.report h3 + p{margin-top:14px}
/* Q/Q change highlights — a distinct highlighted block between transcript and summary */
.report .qq-highlights{margin:14px 0;padding:14px 16px;background:var(--surface2);border:1px solid var(--accent);border-left:5px solid var(--accent);border-radius:8px;font-size:.9rem}
.report .qq-highlights ul{margin:6px 0 0;padding-left:18px;list-style:disc}
.report .qq-highlights li{margin-bottom:.4em}
.report .qq-highlights strong{color:var(--accent)}
.report .qq-highlights .qq-title{font-weight:700;color:var(--accent);margin-bottom:4px}
.report .subsec{margin:22px 0 8px;padding:7px 12px;background:var(--surface2);border-left:4px solid var(--accent);border-radius:6px;font-weight:700;font-size:.93rem;color:var(--txt)}
.report .subsec:first-of-type{margin-top:8px}
.report .stat{margin:8px 0 10px;padding:10px 14px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;font-size:.95rem;font-weight:600}
.report .stat strong{color:var(--green)}
.report .stat .down{color:var(--red)}
.up{color:var(--green)} .down{color:var(--red)}
.breadcrumb{color:var(--dim);font-size:.9rem;margin-bottom:10px}
.ticker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;margin:12px 0}
.ticker-cell{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:6px 4px 5px;text-align:center;font-size:.85rem;font-weight:600;color:var(--txt);display:block;transition:border-color .12s,box-shadow .12s}
.ticker-cell:hover{border-color:var(--accent);color:var(--accent);box-shadow:var(--shadow-hover);text-decoration:none}
.ticker-cell .cnt{display:block;font-size:.7rem;font-weight:400;color:var(--dim);margin-top:1px}
.ticker-cell .sector{display:block;font-size:.6rem;font-weight:400;color:var(--accent);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ticker-cell .new-badge{display:inline-block;background:var(--green,#188038);color:#fff;font-size:.55rem;font-weight:700;border-radius:6px;padding:1px 4px;margin-left:3px;vertical-align:middle;letter-spacing:.2px;text-transform:uppercase}
.ticker-cell .conf-badge{display:inline-block;background:var(--amber,#F9AB00);color:#1a1a1a;font-size:.55rem;font-weight:700;border-radius:6px;padding:1px 4px;margin-left:3px;vertical-align:middle;letter-spacing:.2px;text-transform:uppercase}
/* 50d MA status indicator — shows "above" (green) or "below" (red) per ticker */
.ticker-cell .ma50-above{color:var(--green,#188038);font-size:.62rem;font-weight:500;text-transform:uppercase;margin-top:1px}
.ticker-cell .ma50-below{color:var(--red,#d93025);font-size:.62rem;font-weight:500;text-transform:uppercase;margin-top:1px}
.ticker-cell.hide{display:none}
.ticker-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.ticker-badge{background:var(--accent);color:#fff;border-radius:8px;padding:5px 12px;font-weight:700;font-size:1rem}
.search-wrap{margin:12px 0;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.search-box{background:var(--surface2);border:1px solid var(--border);color:var(--txt);border-radius:8px;padding:8px 14px;font-size:.95rem;width:240px;outline:none}
.search-box:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(26,115,232,.15)}
.search-hint{color:var(--dim);font-size:.85rem}
.split{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:12px}
.split-col{min-width:0}
.orig-box{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:18px;max-height:82vh;overflow-y:auto;font-size:.88rem;line-height:1.6;color:var(--txt)}
.orig-box p{margin-bottom:.65em}
.orig-box strong{color:var(--txt)}
/* speaker-name labels in the original transcript: bold + site accent blue (all tickers) */
.orig-box .spk strong{color:var(--accent)}
/* summary section headers: blue + underline (all tickers) */
.summ-box h2,.summ-box h3,.summ-box h4{color:var(--accent);text-decoration:underline;font-weight:700}
.summ-box{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:18px;max-height:82vh;overflow-y:auto;font-size:.88rem;line-height:1.6}
.summ-box p{margin-bottom:.65em}
.summ-box li{margin-bottom:.3em}
/* Conference transcript — full-width two-column layout (reads like a printed transcript) */
.conf-box{font-size:.92rem;line-height:1.7;column-count:2;column-gap:36px;column-rule:1px solid var(--border)}
.conf-box p{margin-bottom:.8em;break-inside:avoid}
.conf-box strong{color:var(--txt)}
@media(max-width:1000px){.conf-box{column-count:1}}
@media(max-width:1000px){.split{grid-template-columns:1fr}}
.q-wrap{display:flex;gap:8px;flex-wrap:wrap}
.q-input{flex:1;min-width:220px;background:var(--surface2);border:1px solid var(--border);color:var(--txt);border-radius:24px;padding:11px 18px;font-size:.95rem;outline:none}
.q-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(26,115,232,.15)}
.q-btn{background:var(--accent);color:#fff;border:none;border-radius:24px;padding:11px 22px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .12s}
.q-btn:hover{background:var(--accent-dark)}
.q-btn:disabled{opacity:.5;cursor:not-allowed}
/* IR earnings-presentation button — prominent pill, anchored to the ticker header row */
.ir-btn{display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:#fff;border:none;border-radius:24px;padding:10px 18px;font-size:.92rem;font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap;transition:background .12s,transform .08s;box-shadow:0 1px 4px rgba(0,0,0,.35)}
.ir-btn:hover{background:var(--accent-dark);transform:translateY(-1px);color:#fff}
.ir-btn:active{transform:translateY(0)}
.ir-btn .ir-ic{font-size:1.05rem;line-height:1}
.q-answer{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:14px;font-size:.95rem;line-height:1.6}
.q-a-text ul,.q-a-text ol{margin:6px 0 8px}
.q-a-text li{margin:5px 0;padding-left:2px}
.q-a-text li::marker{color:var(--accent)}
.q-a-text strong{color:var(--accent)}
.q-src a{color:var(--dim);font-size:.84rem}
.footer{margin-top:28px;padding-top:12px;border-top:1px solid var(--border);color:var(--dim);font-size:.85rem;text-align:center}
/* ---- responsive: mobile / tablet ---- */
@media(max-width:768px){
  .grid{grid-template-columns:1fr 1fr}
  .ticker-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:4px}
  .ticker-cell{padding:4px 2px 3px;font-size:.78rem;border-radius:4px}
  .ticker-cell .sector{font-size:.55rem}
  .ticker-cell .cnt{font-size:.62rem}
  .report table{font-size:.72rem}
  .report table th,.report table td{padding:3px 4px}
  /* horizontal scroll for wide tables */
  .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .search-wrap{flex-direction:column;align-items:stretch}
}
@media(max-width:480px){
  .grid{grid-template-columns:1fr}
  .ticker-grid{grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:3px}
  .ticker-cell{font-size:.7rem;padding:3px 1px 2px}
  .ticker-cell .sector{display:none}
  .ticker-cell .cnt{font-size:.55rem}
  .ticker-cell .ma50-above,.ticker-cell .ma50-below{font-size:.55rem}
  header h1{font-size:1rem}
  .report{padding:8px 10px}
}
/* ---- dark mode (applied via html[data-theme=dark]) ---- */
html[data-theme=dark]{--bg:#0f1115;--surface:#161a22;--surface2:#1d232e;--surface3:#262e3b;--border:#2c3444;--txt:#e6e9f0;--dim:#9aa4b5;--accent:#8ab4f8;--accent-dark:#a8c7fa;--green:#7fd28a;--red:#f28b82}
html[data-theme=dark] body{background:var(--bg);color:var(--txt)}
html[data-theme=dark] .card,html[data-theme=dark] .report,html[data-theme=dark] .ticker-cell{background:var(--surface)}
html[data-theme=dark] .orig-box,html[data-theme=dark] .summ-box,html[data-theme=dark] .q-answer,html[data-theme=dark] .clock-item{background:var(--surface2)}
html[data-theme=dark] th{background:var(--surface2)}
html[data-theme=dark] tr:nth-child(even){background:var(--surface3)}
.theme-toggle{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:5px 12px;font-size:.85rem;font-weight:600;cursor:pointer;color:var(--txt);margin-left:auto;transition:background .15s}
.theme-toggle:hover{background:var(--surface3)}
/* sliding dark/light switch */
.theme-switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;margin-left:10px}
.ts-label{font-size:.78rem;font-weight:600;color:var(--dim);white-space:nowrap;transition:color .15s}
.ts-track{position:relative;width:42px;height:22px;background:var(--surface3);border:1px solid var(--border);border-radius:999px;transition:background .2s;flex-shrink:0}
.ts-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--txt);border-radius:50%;transition:transform .2s,background .2s}
html[data-theme=dark] .ts-track{background:var(--accent)}
html[data-theme=dark] .ts-thumb{transform:translateX(20px);background:#fff}
.doc-list{margin-top:10px;font-size:.82rem;color:var(--dim)}
.doc-list a{color:var(--dim)}
.up-box{margin-top:14px;padding:14px;border:1px dashed var(--border);border-radius:10px;background:var(--surface2);display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.up-box input[type=file]{font-size:.82rem;color:var(--txt)}
.up-btn{background:var(--accent);color:#fff;border:none;border-radius:16px;padding:7px 16px;font-size:.85rem;font-weight:600;cursor:pointer}
.up-btn:hover{background:var(--accent-dark)}
.up-status{font-size:.8rem;color:var(--dim);width:100%}
