
:root{
  --bg:#07101b;
  --bg-deeper:#050c14;
  --surface:rgba(255,255,255,.03);
  --surface2:rgba(255,255,255,.05);
  --surface3:#101a29;
  --border:#243246;
  --border2:#334155;
  --text:#edf4fb;
  --text-soft:#d4e0ee;
  --text-muted:#b5c5d8;
  --text-dim:#8ea3b8;
  --green:#34d399;
  --green-soft:rgba(52,211,153,.12);
  --red:#f87171;
  --red-soft:rgba(248,113,113,.12);
  --orange:#f59e0b;
  --orange-soft:rgba(245,158,11,.12);
  --blue:#60a5fa;
  --mono:'IBM Plex Mono',monospace;
  --human:'Nunito Sans','Segoe UI',Arial,sans-serif;
}
html,body{background:var(--bg)}
body{color:var(--text);font-family:var(--human);line-height:1.58}
.daily-brief-page{max-width:1200px;margin:0 auto;padding:32px 24px 84px}
.page-header{margin-bottom:28px}
.page-header-inner{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;padding-bottom:24px;border-bottom:1px solid var(--border)}
.page-header-eyebrow{font:600 11px var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--blue);margin-bottom:10px}
.page-header h1{font-family:var(--human);font-size:clamp(30px,4vw,46px);line-height:1.05;letter-spacing:-.02em}
.page-header p{margin-top:0;color:var(--text-muted);font-size:16px;max-width:760px}
.header-mark{display:flex;align-items:center}
.header-badge{min-width:220px;padding:16px 18px;border-radius:10px;background:rgba(255,255,255,.025);border:1px solid var(--border)}
.header-badge-line{display:block;font:700 13px var(--mono);text-transform:uppercase;letter-spacing:.14em;color:var(--text-soft)}
.header-badge-sub{display:flex;align-items:center;gap:0;margin-top:8px;color:var(--text-dim);font-size:13px}

.page-title-group{display:flex;flex-direction:column;gap:10px;min-width:0;flex:1}
.page-subrow{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:nowrap}
.page-subrow p{flex:1;max-width:none}
.header-mark{display:flex;align-items:flex-start;justify-content:flex-end;flex:0 0 380px;margin-left:auto}
.header-badge{width:100%;max-width:380px;padding:12px 14px}
.header-badge-line{font:700 12px var(--mono);letter-spacing:.12em}
.header-badge-sub{margin-top:6px;font-size:12px;line-height:1.45}
.top10-ticker{font-weight:600;font-size:13px}
.top10-price{color:var(--text-soft);font-weight:500;font-size:13px}
.top10-pct{font-weight:600;font-size:13px}
@media (max-width:980px){
  .page-subrow{flex-wrap:wrap}
  .header-mark{flex:1 1 100%;max-width:none}
  .header-badge{max-width:none}
}


.brief-shell{display:flex;flex-direction:column;gap:16px}
.brief-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.mode-switch{display:inline-flex;gap:8px;padding:4px;border:1px solid var(--border);border-radius:10px;background:rgba(255,255,255,.02)}
.mode-pill,.action-btn{
  appearance:none;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03);color:var(--text);
  border-radius:10px;padding:10px 14px;font:700 13px var(--human);cursor:pointer;transition:.18s ease;
}
.mode-pill:hover,.action-btn:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.2)}
.mode-pill.is-active{background:rgba(96,165,250,.14);border-color:rgba(96,165,250,.45);color:#dcebff}
.toolbar-controls{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.select-wrap{display:flex;flex-direction:column;gap:6px;color:var(--text-dim);font:700 11px var(--mono);letter-spacing:.14em;text-transform:uppercase}
.select-wrap select{
  min-width:180px;padding:10px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.12);
  background:#0f1725;color:var(--text);font:700 13px var(--human);appearance:none;
  box-shadow:none;outline:none;
}
.select-wrap select:focus{border-color:rgba(96,165,250,.45);box-shadow:0 0 0 3px rgba(96,165,250,.12)}
.select-wrap option{background:#0f1725;color:var(--text)}

.report-card{
  position:relative;background:linear-gradient(180deg,#07101a 0%, #09121e 100%);
  border:1px solid var(--border);border-radius:10px;overflow:hidden;
  padding:26px 28px 30px 34px;min-height:420px;
  box-shadow:0 20px 60px rgba(0,0,0,.28);
}
.report-card::before{
  content:'';position:absolute;left:0;top:16px;bottom:16px;width:4px;border-radius:0 3px 3px 0;
  background:linear-gradient(180deg,var(--orange),#fbbf24);
}
.report-card.accent-positive::before{background:linear-gradient(180deg,#6ee7b7,var(--green))}
.report-card.accent-neutral::before{background:linear-gradient(180deg,#fdba74,var(--orange))}
.report-card.accent-negative::before{background:linear-gradient(180deg,#fca5a5,var(--red))}
.report-loading{color:var(--text-muted);font-size:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:320px;text-align:center}.loading-wheel{width:38px;height:38px;border-radius:50%;border:3px solid rgba(255,255,255,.12);border-top-color:var(--blue);animation:spin 1s linear infinite}.loading-text{font-weight:800;color:var(--text-soft)}.loading-sub{font-size:13px;color:var(--text-dim);max-width:420px}@keyframes spin{to{transform:rotate(360deg)}}

.report-top{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.08)}
.report-kicker{font:700 11px var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--blue);margin-bottom:8px}
.report-title{font-size:33px;line-height:1.08;letter-spacing:-.02em}
.report-subline{margin-top:10px;color:var(--text-muted);font-size:14px}
.report-badges{display:flex;flex-wrap:wrap;gap:8px}
.badge{
  display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;
  border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03);font:800 12px var(--human)
}
.badge.status{color:#dcebff;border-color:rgba(96,165,250,.35);background:rgba(96,165,250,.1)}
.badge.confidence{color:#fde68a;border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.1)}
.badge.posture{color:#d1fae5;border-color:rgba(52,211,153,.35);background:rgba(52,211,153,.1)}

.executive-block{padding:18px 0 6px}
.executive-block ul{margin:0;padding-left:20px}
.executive-block li{margin:0 0 8px;color:var(--text-soft);font-size:16px}

.section{margin-top:20px;padding-top:18px;border-top:1px solid rgba(255,255,255,.08)}
.section:first-of-type{margin-top:8px}
.section-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.section-title{
  font:800 13px var(--mono);letter-spacing:.13em;text-transform:uppercase;color:#dce9f8
}
.section-line{height:1px;flex:1;background:linear-gradient(90deg,rgba(255,255,255,.12),transparent)}

.risk-posture-line{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:16px}
.risk-posture-pill{padding:8px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);font-weight:800;font-size:13px}
.handoff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.benchmarks-grid{margin-top:10px}
.subgrid-label{margin:14px 0 8px;color:var(--text-dim);font:700 11px var(--mono);letter-spacing:.13em;text-transform:uppercase}
.handoff-card{
  border-radius:10px;padding:14px 14px 12px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.08)
}
.handoff-card.positive{border-color:rgba(52,211,153,.42)}
.handoff-card.neutral{border-color:rgba(245,158,11,.42)}
.handoff-card.negative{border-color:rgba(248,113,113,.42)}
.handoff-label{font:700 11px var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--text-dim)}
.handoff-tone{margin-top:8px;font-size:16px;font-weight:800}
.handoff-price{margin-top:8px;font-size:14px;font-weight:700;color:var(--text-soft)}
.handoff-move{margin-top:6px;font-size:14px;font-weight:700}

.snapshot-columns{display:grid;grid-template-columns:1.15fr .9fr;gap:18px}
.snapshot-stack{display:grid;gap:14px}
.snapshot-card{border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(255,255,255,.02);padding:14px}
.snapshot-card h4{font-size:13px;color:#dce9f8;margin-bottom:10px;text-transform:uppercase;letter-spacing:.12em;font-family:var(--mono)}
.ticker-list,.watch-list{display:grid;gap:8px}
.ticker-row,.watch-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;font-size:14px}
.ticker-name{font-weight:700;font-size:14px}
.ticker-price{color:var(--text-soft);font-weight:600;font-size:14px}
.ticker-pct{font-weight:800}
.watch-row{grid-template-columns:auto 1fr auto}
.weight-pill{padding:4px 8px;border-radius:10px;font-size:11px;font-weight:800;border:1px solid rgba(255,255,255,.12)}
.weight-high{color:#fecaca;border-color:rgba(248,113,113,.28);background:rgba(248,113,113,.1)}
.weight-medium{color:#fde68a;border-color:rgba(245,158,11,.28);background:rgba(245,158,11,.1)}

.bullet-list{display:grid;gap:10px}
.bullet-row{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:flex-start}
.bullet-icon,.callout-icon{width:18px;text-align:center;color:#dce9f8;font-weight:800}
.bullet-row p,.callout-row p{margin:0;font-size:15px;color:var(--text-soft)}
.callouts{display:grid;gap:10px}
.callout-row{display:grid;grid-template-columns:auto 1fr;gap:10px}

.area-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.area-card{padding:14px;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.02)}
.area-card.positive{border-color:rgba(52,211,153,.42)}
.area-card.neutral{border-color:rgba(245,158,11,.42)}
.area-card.negative{border-color:rgba(248,113,113,.42)}
.area-name{font-weight:800;font-size:15px}
.area-tone{margin-top:6px;font-size:13px;font-weight:800}
.area-why{margin-top:6px;color:var(--text-muted);font-size:14px}

.board-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.board-card{
  padding:12px;border-radius:10px;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.08);
}
.board-card.sent-bull{border-color:rgba(52,211,153,.42)}
.board-card.sent-neu{border-color:rgba(245,158,11,.42)}
.board-card.sent-bear{border-color:rgba(248,113,113,.42)}
.board-ticker{font-size:13px;font-weight:700;color:var(--text)}
.board-sentiment{margin-top:6px;font-size:12px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;font-family:var(--mono)}
.board-price{margin-top:10px;font-size:13px;font-weight:700;color:var(--text-soft)}
.board-pct{margin-top:4px;font-size:14px;font-weight:700}

.sector-block{margin-top:16px;padding-top:16px;border-top:1px dashed rgba(255,255,255,.08)}
.sector-block:first-child{margin-top:0;padding-top:0;border-top:0}
.sector-block h4{font-size:15px;margin-bottom:10px;color:#dce9f8}
.top10-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 20px}
.top10-row{display:grid;grid-template-columns:70px 1fr auto auto;gap:10px;align-items:center;padding:6px 0;border-bottom:1px dashed rgba(255,255,255,.05)}
.top10-rank{color:var(--text-dim);font:700 12px var(--mono)}
.top10-ticker{font-weight:800}
.top10-price{color:var(--text-soft);font-weight:700}
.top10-pct{font-weight:800}

.earnings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.earnings-card{padding:14px;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.02)}
.earnings-card h4{font-size:13px;margin-bottom:10px;text-transform:uppercase;letter-spacing:.12em;font-family:var(--mono);color:#dce9f8}
.earnings-item{padding:9px 0;border-bottom:1px dashed rgba(255,255,255,.06)}
.earnings-item:last-child{border-bottom:0;padding-bottom:0}
.earnings-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.earnings-headline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.earnings-ticker{font-weight:800}
.earnings-date{font-size:13px;color:var(--text-soft);font-weight:700}
.earnings-meta{margin-top:4px;color:var(--text-muted);font-size:13px}
.earnings-meta .is-pos,.earnings-meta .is-neg,.earnings-meta .is-flat{font-weight:700}
.earnings-timing{display:inline-block;margin-top:6px;padding:4px 8px;border-radius:10px;border:1px solid rgba(255,255,255,.12);font-size:11px;font-weight:800}
.earnings-status{display:inline-flex;align-items:center;padding:4px 8px;border-radius:10px;border:1px solid rgba(255,255,255,.12);font-size:11px;font-weight:800}
.earnings-bottom{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

.sources-list,.assumption-list,.change-list{padding-left:20px;color:var(--text-soft)}
.sources-list li,.assumption-list li,.change-list li{margin-bottom:8px;font-size:15px}

.is-pos{color:var(--green)!important}
.is-neg{color:var(--red)!important}
.is-flat{color:var(--orange)!important}

.export-mode .handoff-card,.export-mode .board-card,.export-mode .area-card{box-shadow:none!important;border-width:1px!important}
.export-footer{display:none}
@media print{
  @page{size:auto;margin:12mm 10mm;}
  body{background:#fff;color:#111}
  .site-nav,.brief-toolbar,footer,.no-print{display:none!important}
  .daily-brief-page{padding:0;max-width:none}
  .report-card{border:0;box-shadow:none;padding:12px 0 20px 12px;background:#fff;color:#111}
  .report-card::before{display:block}
  .section,.snapshot-card,.handoff-card,.area-card,.board-card,.earnings-card,.sector-block,.top10-row{break-inside:avoid;page-break-inside:avoid}
  .snapshot-card,.handoff-card,.area-card,.board-card,.earnings-card{background:#fff}
  .section,.report-top{border-color:#ddd}
  .section-title,.report-kicker,.handoff-label,.snapshot-card h4,.earnings-card h4{color:#111}
  .report-title,.ticker-name,.board-ticker,.top10-ticker{color:#111}
  .report-subline,.area-why,.sources-list,.assumption-list,.change-list,.bullet-row p,.callout-row p{color:#333}
  .board-grid{grid-template-columns:repeat(3,1fr);gap:8px}
  .earnings-grid,.snapshot-columns,.area-grid{grid-template-columns:1fr}
  .handoff-grid{grid-template-columns:repeat(3,1fr)}
  .export-footer{display:block;margin-top:28px;padding-top:12px;border-top:1px solid #ddd;font-size:11px;color:#555}
}
@media (max-width:1100px){
  .board-grid{grid-template-columns:repeat(4,1fr)}
  .snapshot-columns{grid-template-columns:1fr}
  .top10-grid{grid-template-columns:1fr}
}
@media (max-width:760px){
  .daily-brief-page{padding:24px 16px 70px}
  .report-card{padding:22px 18px 26px 24px}
  .handoff-grid,.area-grid,.earnings-grid{grid-template-columns:1fr}
  .board-grid{grid-template-columns:repeat(2,1fr)}
  .brief-toolbar{align-items:stretch}
  .toolbar-controls{width:100%}
  .toolbar-controls > *{flex:1}
}

.handoff-note{margin:0 0 14px 0;padding:10px 12px;border-radius:10px;border:1px solid rgba(245,158,11,.22);background:rgba(245,158,11,.08);color:var(--text-soft);font-size:13px}
.area-card.sent-bull{border-color:rgba(52,211,153,.42)}
.area-card.sent-neu{border-color:rgba(245,158,11,.42)}
.area-card.sent-bear{border-color:rgba(248,113,113,.42)}


.report-gate-note{margin-top:10px;padding:10px 12px;border:1px solid rgba(245,158,11,.34);border-radius:10px;color:#ffd280;background:rgba(245,158,11,.08);font-size:14px;line-height:1.45}
.handoff-context{display:block;margin-top:4px;color:var(--text-dim);font:600 11px/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase}
.area-card.sent-bull,.area-card.positive{box-shadow:inset 0 0 0 1px rgba(52,211,153,.42)}
.area-card.sent-neu,.area-card.neutral{box-shadow:inset 0 0 0 1px rgba(245,158,11,.42)}
.area-card.sent-bear,.area-card.negative{box-shadow:inset 0 0 0 1px rgba(248,113,113,.42)}
.top10-ticker,.top10-price,.top10-pct{font-size:12px!important;font-weight:500!important}
.top10-ticker{color:var(--text-soft)}
.top10-price,.top10-pct{font-variant-numeric:tabular-nums}


/* v3 patch */
.daily-brief-page + footer,
body > footer{
  text-align:center;
}
@media (min-width: 860px){
  body > footer{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;}
}
.earnings-grid{grid-template-columns:repeat(2,minmax(0,1fr));}

.board-name{font-size:12px;color:var(--text-muted);margin-top:2px}.board-why{margin-top:8px;font-size:12px;color:var(--text-dim);line-height:1.4}.top10-name{color:var(--text-dim);font-size:12px;font-weight:500}.earnings-empty{color:var(--text-dim);font-size:13px;padding:6px 0}.top10-grid .top10-row{grid-template-columns:44px minmax(0,1fr) minmax(0,1.2fr) auto auto;gap:8px;align-items:center}.top10-ticker,.top10-price,.top10-pct{font-weight:500;font-size:12px}.top10-name{font-size:12px}.board-grid{grid-template-columns:repeat(6,minmax(0,1fr))}@media (max-width:1200px){.board-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:820px){.board-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.market-overview{margin:0 0 14px;color:var(--text-soft);font-size:16px;line-height:1.65;max-width:92ch}
.ticker-desc{color:var(--text-dim);font-weight:400}

.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:middle;box-shadow:0 0 0 1px rgba(255,255,255,.08),0 0 8px rgba(255,255,255,.08)}
.dot-pre{background:#22c55e}
.dot-after{background:#60a5fa}

.earnings-bottom{display:flex;align-items:center;justify-content:flex-start;gap:8px;margin-top:8px;flex-wrap:wrap}
.earnings-pill-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.earnings-status{display:inline-block;padding:4px 8px;border-radius:10px;border:1px solid rgba(255,255,255,.12);font-size:11px;font-weight:800}
.earnings-status.is-pos{color:#6ee7b7;border-color:rgba(16,185,129,.35);background:rgba(16,185,129,.08)}
.earnings-status.is-neg{color:#fca5a5;border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.08)}
.earnings-status.is-flat{color:#fcd34d;border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.08)}

/* earnings card polish */
.earnings-headline{display:block;min-width:0}
.earnings-ticker{font-weight:800;display:block}
.earnings-meta{margin-top:6px;color:var(--text-soft);font-size:13px;line-height:1.45}
.earnings-bottom{display:flex;align-items:center;justify-content:flex-start;gap:8px;margin-top:10px;flex-wrap:wrap}
.earnings-pill-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.earnings-timing,.earnings-status{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.12);font-size:11px;font-weight:800;line-height:1}
.earnings-status.is-pos{color:#6ee7b7;border-color:rgba(16,185,129,.35);background:rgba(16,185,129,.08)}
.earnings-status.is-neg{color:#fca5a5;border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.08)}
.earnings-status.is-flat{color:#fcd34d;border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.08)}

.earnings-timing-text{display:inline-block;color:var(--text-soft);font-size:12px;font-weight:700;line-height:1.4}
.earnings-status{border-radius:6px !important}
