/* Company Evidence Index - Cal Hacks 13.0 mock
   Architecture: 1 element baseline, 2 composition, 3 components, 4 theme + responsive exceptions.
   One blue accent: stroke and figure, never fill. Structure from whitespace and single hairlines.
   Guidance applied: modern CSS reset (Bell), CUBE CSS (high-level rules first, exceptions last),
   Apple HIG mentality (clarity, deference, feedback) without copying Apple's look. */

/* ===== 1. Element baseline ===== */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;text-size-adjust:none}
body,h1,h2,h3,p,ul,figure{margin:0}
body{min-height:100vh;background:var(--bg);color:var(--text);font:15px/1.75 var(--font-body);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--font-heading);font-weight:600;line-height:1.2;text-wrap:balance}
ul{list-style:none;padding:0}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit;color:inherit;border:0;background:none}
button{cursor:pointer}
svg{display:block}
::selection{background:var(--color-brand-muted)}
:where(a,button,input,select,[role=button]):focus-visible{outline:1px solid var(--color-brand);outline-offset:2px}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* ===== 2. Composition ===== */
main{max-width:1220px;margin:0 auto;padding:56px var(--edge) 90px}
.topbar{height:60px;padding:0 var(--edge);display:flex;align-items:center;gap:44px;border-bottom:1px solid var(--border)}
.content-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.85fr);gap:clamp(44px,6vw,88px);padding-top:48px}
.metric-row{display:grid;grid-template-columns:repeat(4,1fr);margin-top:40px;border-block:1px solid var(--border)}

/* ===== 3. Components ===== */
/* Type utilities */
.overline,.meta-label,.detail-block h3{font:10px/1.5 var(--font-mono);letter-spacing:.12em;text-transform:uppercase}
.overline{color:var(--color-brand-hover);margin-bottom:8px}
.mono,.detail-meta{font-family:var(--font-mono);font-size:11px}
.mono{letter-spacing:.02em}
.small-note{font-size:10.5px;color:var(--text-faint);line-height:1.6;margin-top:14px}
.data-note{margin-top:18px;font:11px var(--font-mono);letter-spacing:.09em;color:var(--text-faint)}

/* Icons: 1em squares, stroke follows currentColor */
.icon{width:1em;height:1em;flex:none}

/* Buttons */
.outline-button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--color-brand-border);color:var(--color-brand-hover);padding:9px 16px;font:500 13px var(--font-body);transition:border-color var(--t-fast),color var(--t-fast)}
.outline-button:hover{border-color:var(--color-brand);color:var(--color-brand)}
.outline-button:disabled{opacity:.55;cursor:default}
.text-button,.icon-link,.theme-toggle{display:inline-flex;align-items:center;color:var(--text-muted);transition:color var(--t-fast)}
.text-button{gap:6px;color:var(--color-brand-hover);font-size:13px;padding:4px 0;white-space:nowrap}
.icon-link{font-size:16px}
.text-button:hover,.icon-link:hover{color:var(--color-brand)}

/* Top bar */
.wordmark{display:flex;align-items:center;flex-shrink:0;font:600 21px/1 var(--font-heading);letter-spacing:-.2px}
.wordmark-period,.footer-dot{color:var(--color-brand)}
.main-nav{height:100%;min-width:0;display:flex;align-items:center;gap:24px;overflow-x:auto}
.nav-link{height:100%;display:inline-flex;align-items:center;flex-shrink:0;position:relative;color:var(--text-muted);font-size:13px;line-height:1;padding:0 2px;white-space:nowrap;transition:color var(--t-fast)}
.nav-link:hover,.nav-link.active,.theme-toggle:hover,.dialog-close:hover{color:var(--text)}
.nav-link.active:after{content:"";height:2px;position:absolute;bottom:0;left:0;right:0;background:var(--color-brand)}
.nav-count,.claim-date{font:10px var(--font-mono);color:var(--text-faint)}
.nav-count{margin-left:4px}
.top-actions{margin-left:auto;display:flex;align-items:center;flex-shrink:0;gap:20px}
.snapshot-state{font-size:12px;color:var(--text-muted)}
.snapshot-state i,.source-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--color-success)}
.snapshot-state i{margin-right:7px}
.theme-toggle{font-size:15px;min-width:44px;min-height:44px;justify-content:center;margin:-10px -14px -10px 0}

/* Hero */
.hero{margin-top:40px}
.hero h1{font-size:clamp(44px,6.2vw,84px);font-weight:400;line-height:1.08;letter-spacing:-.01em}
.hero .ticker{font-size:.55em}
.lede{color:var(--text-muted);font-size:16px;margin-top:18px;max-width:var(--measure)}
.hero-meta{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-top:40px}
.hero-snapshot{display:grid;gap:5px}

/* Metrics */
.metric{padding:26px 26px 24px 0;border-right:1px solid var(--border-muted);display:flex;flex-direction:column;align-items:flex-start}
.metric+.metric{padding-left:26px}
.metric:last-child{border-right:0}
.metric-number{font:400 clamp(34px,3.4vw,48px)/1.05 var(--font-heading);font-variant-numeric:tabular-nums}
.metric-number small,.hero .ticker{color:var(--text-muted);white-space:nowrap}
.metric-number small{font-size:.5em}
.metric-plain{font:600 20px/1.15 var(--font-heading);color:var(--text-muted);padding:11px 0 13px}
.accent-number{color:var(--color-brand)}
.metric-label{font-size:13px;margin-top:6px}
.metric-note{font-size:11px;color:var(--text-faint);margin-top:2px}

/* Snapshot banner */
.snapshot-banner{display:flex;align-items:center;gap:20px;padding:22px 0;border-bottom:1px solid var(--border)}
.snapshot-banner .overline{margin:0}
.snapshot-banner p,.detail-block p{font-size:13.5px;line-height:1.7}
.snapshot-banner p{margin-top:5px;color:var(--text-muted)}
.snapshot-banner strong{font-weight:600;color:var(--text)}
.snapshot-banner .text-button{margin-left:auto}

/* Sections */
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}
.section-heading .overline{margin-bottom:5px}
.section-heading h2{font-size:clamp(24px,2.4vw,30px)}
.side-section{padding-bottom:30px;border-bottom:1px solid var(--border);margin-bottom:30px}
.side-section:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.side-heading{margin-bottom:10px}
.side-heading h2{font-size:24px}
.side-copy{font-size:12.5px;line-height:1.7;color:var(--text-muted);margin-bottom:20px}
.side-link{margin-top:14px}

/* Status pills (tinted labels, never saturated) */
.status,.status-pill{display:inline-block;font:10px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;padding:5px 8px;border:1px solid transparent;white-space:nowrap}
.supported{color:var(--color-success);background:var(--color-success-muted);border-color:var(--color-success-border)}
.unresolved{color:var(--color-warning);background:var(--color-warning-muted);border-color:var(--color-warning-border)}
.contradicted{color:var(--color-error);background:var(--color-error-muted);border-color:var(--color-error-border)}
.status-legend{display:flex;gap:8px;margin-bottom:18px}

/* Ledger */
.ledger-tools{display:flex;gap:14px;margin-bottom:14px}
.search-wrap{display:flex;align-items:center;gap:8px;flex:1;font-size:14px;border-bottom:1px solid var(--border);color:var(--text-faint);padding:7px 0;transition:border-color var(--t-fast)}
.search-wrap:focus-within{border-color:var(--color-brand)}
.search-wrap input{outline:0;font-size:13px;width:100%}
.search-wrap input::placeholder{color:var(--text-faint)}
select{border-bottom:1px solid var(--border);padding:7px 16px 7px 4px;font-size:12px;color:var(--text-muted)}
.table-head,.claim-row{display:grid;grid-template-columns:minmax(0,1fr) 168px 120px}
.table-head,.change-type{font:9px/1.4 var(--font-mono);letter-spacing:.12em}
.table-head{padding:10px 0;color:var(--text-faint);border-bottom:1px solid var(--border)}
.table-head span:last-child{text-align:right}
.claim-list{border-bottom:1px solid var(--border)}
.claim-row{gap:16px;align-items:center;padding:17px 0;border-bottom:1px solid var(--border-muted);cursor:pointer;transition:background var(--t-fast)}
.claim-row:last-child{border-bottom:0}
.claim-row:hover{background:var(--color-brand-muted)}
.claim-row:hover .claim-title{color:var(--color-brand-hover)}
.claim-title{font-size:14px;font-weight:500;line-height:1.55;margin-bottom:5px;transition:color var(--t-fast)}
.claim-attribution{font-size:11px;color:var(--text-muted)}
.claim-attribution .mono{font-size:10px;color:var(--text-faint)}
.claim-source{font-size:12px}
.claim-date{margin-top:3px}
.claim-row .status{justify-self:end}
.ledger-foot{display:flex;justify-content:space-between;align-items:center;padding-top:14px;color:var(--text-muted);font-size:12px}

/* Coverage */
.coverage-count{display:flex;align-items:baseline;gap:10px;font-size:12px;color:var(--text-muted)}
.coverage-count .metric-number{font-size:34px}
.source-list li{display:grid;grid-template-columns:8px 1fr auto;gap:10px;align-items:center;padding:8px 0;font-size:12px;border-bottom:1px solid var(--border-muted)}
.source-list li:last-child{border-bottom:0}
.source-dot.gap{background:var(--color-warning)}
.source-status{font-size:10.5px;color:var(--text-faint)}

/* Sentiment */
.sentiment-figure{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}
.sentiment-figure .metric-plain{padding:4px 0}
.sentiment-figure>span:last-child{font-size:10.5px;color:var(--text-muted);line-height:1.45}
.sentiment-pending{display:flex;align-items:center;gap:9px;padding:11px 0;border-block:1px solid var(--border-muted);font-size:11.5px;color:var(--text-muted)}

/* What changed */
.bottom-section{margin-top:56px;padding-top:30px;border-top:1px solid var(--border)}
.change-row{display:grid;grid-template-columns:80px 120px minmax(0,1fr) 150px 24px;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--border-muted);font-size:12.5px}
.change-date,.change-source{color:var(--text-muted);font-size:10.5px}
.change-type.updated{color:var(--text-faint)}
.change-arrow{font-size:12px;color:var(--color-brand)}

/* Footer */
footer{border-top:1px solid var(--border);padding:26px var(--edge);display:flex;justify-content:space-between;gap:16px;font:9px/1.6 var(--font-mono);letter-spacing:.12em;color:var(--text-faint)}

/* Claim dialog */
dialog{max-width:min(620px,calc(100vw - 36px));width:100%;border:1px solid var(--border);background:var(--bg);color:var(--text);padding:36px;box-shadow:var(--shadow-lg)}
dialog::backdrop{background:var(--scrim)}
dialog h2{font-size:28px;margin:10px 0 22px}
.dialog-close{float:right;font-size:14px;color:var(--text-muted)}
.detail-meta{color:var(--text-muted)}
.detail-block{border-top:1px solid var(--border);padding:17px 0}
.detail-block:last-child{padding-bottom:0}
.detail-block h3{color:var(--color-brand-hover);margin-bottom:8px;line-height:1.4}
.detail-source{color:var(--color-brand-hover);text-decoration:underline;text-underline-offset:3px}
.detail-source:hover{color:var(--color-brand)}

/* ===== 4. Theme + responsive exceptions ===== */
/* --- Charts (fixture-rendered, no libraries) --- */
.chart-figure{margin:12px 0 4px}
.chart-caption{font-size:11px;color:var(--text-faint);margin-top:6px;letter-spacing:.02em}
.chart-tip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--bg);border:1px solid var(--border);color:var(--text);font-size:11px;padding:3px 8px;border-radius:0;white-space:nowrap;display:none;pointer-events:none;z-index:5}
.status-bar{display:flex;gap:2px;position:relative}
.seg{position:relative;display:block;height:10px;border:0;padding:0;cursor:pointer;border-radius:0}
.seg:focus-visible,.cov-seg:focus-visible,.tl-dot:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}
.seg.active{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--text)}
.seg:hover .chart-tip,.seg:focus-visible .chart-tip,.cov-seg:hover .chart-tip,.cov-seg:focus-visible .chart-tip,.tl-dot:hover .chart-tip,.tl-dot:focus-visible .chart-tip{display:block}
.seg.u1{flex:1}.seg.u2{flex:2}.seg.u3{flex:3}.seg.u4{flex:4}.seg.u5{flex:5}.seg.u6{flex:6}.seg.u7{flex:7}.seg.u8{flex:8}.seg.u9{flex:9}.seg.u10{flex:10}.seg.u11{flex:11}.seg.u12{flex:12}
.seg.supported{background:var(--color-success)}
.seg.unresolved{background:var(--color-warning)}
.seg.contradicted{background:var(--color-error)}
.coverage-strip{display:flex;gap:2px}
.cov-seg{position:relative;display:block;flex:1;height:10px;border-radius:0;background:var(--color-success)}
.cov-seg.gap{background:repeating-linear-gradient(135deg,var(--color-warning) 0 2px,transparent 2px 5px);border:1px dashed var(--color-warning)}
.source-bars{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.hbar-row{display:grid;grid-template-columns:110px 1fr 22px;gap:10px;align-items:center}
.hbar-label{font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hbar{height:10px;width:100%}
.hbar rect{fill:var(--color-brand)}
.hbar-count{font-size:11px;color:var(--text-faint);text-align:right}
.change-timeline{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border);padding-top:10px;margin:4px 0 14px}
.tl-dot{position:relative;justify-self:center;display:block;width:9px;height:9px;border-radius:50%}
.tl-dot.new{background:var(--color-success)}
.tl-dot.updated{background:var(--color-warning)}
.chart-empty{width:100%;height:auto;margin:2px 0}
.chart-empty line{stroke:var(--border-muted);stroke-dasharray:3 4}
.chart-empty text{fill:var(--text-faint);font-size:10px;letter-spacing:.08em;text-transform:uppercase}

/* --- Interaction texture: hover depth and pressed states --- */
.status-bar,.coverage-strip{box-shadow:inset 0 0 0 1px var(--border-muted)}
.seg,.cov-seg{transition:filter var(--t-fast)}
.seg:hover,.cov-seg:hover{filter:brightness(1.18)}
.seg:active{transform:translateY(1px)}
.claim-row{box-shadow:inset 0 0 0 0 transparent}
.claim-row:hover{box-shadow:inset 2px 0 0 var(--color-brand)}
.claim-row:active{background:var(--color-brand-border)}
.outline-button:active,.text-button:active,.icon-link:active,.theme-toggle:active,.refresh-button:active{transform:translateY(1px)}
.hbar rect{transition:fill var(--t-fast)}
.hbar-row:hover .hbar rect{fill:var(--color-brand-hover)}
.tl-dot{transition:transform var(--t-fast),filter var(--t-fast)}
.tl-dot:hover{transform:scale(1.35)}
.outline-button,.text-button,.icon-link,.theme-toggle{transition:color var(--t-fast),border-color var(--t-fast),transform var(--t-fast)}
/* --- Collection + Results pages --- */
.collection-stream{margin:18px 0;border-block:1px solid var(--border);overflow-x:auto;font:400 12px/1.6 var(--font-mono)}
.collection-stream ul{list-style:none;margin:0;padding:0}
.collection-line{display:grid;grid-template-columns:20ch 22ch minmax(24ch,1fr) 20ch;gap:2ch;align-items:center;min-width:96ch;padding:9px 0;border-bottom:1px solid var(--border-muted)}
.collection-line>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.collection-columns{font-weight:500;color:var(--text-faint)}
.collection-title a{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.collection-date,.collection-source,.collection-status{color:var(--text-faint)}
.collection-status.down{color:var(--color-error)}
.collection-status.empty{color:var(--color-warning)}
.collection-line:hover{background:var(--color-brand-muted)}
.collection-loading{padding:12px 0;color:var(--text-faint)}
.collect-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1px;background:var(--border-muted);border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:18px 0}
.collect-card{background:var(--bg);padding:22px 24px}
.collect-card.muted{opacity:.75}
.collect-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}
.collect-head h2{font:600 20px/1.2 var(--font-heading)}
.collect-badge{font:500 10px var(--font-mono);letter-spacing:.12em;padding:3px 8px;border:1px solid var(--border)}
.collect-badge.live{color:var(--color-success);border-color:var(--color-success-border);background:var(--color-success-muted)}
.collect-badge.down{color:var(--color-error);border-color:var(--color-error-border);background:var(--color-error-muted)}
.collect-badge.demo{color:var(--color-warning);border-color:var(--color-warning-border);background:var(--color-warning-muted)}
.collect-list{list-style:none;margin:12px 0;padding:0}
.collect-list li{display:grid;grid-template-columns:78px 1fr;gap:4px 12px;padding:8px 0;border-top:1px solid var(--border-muted);font-size:12.5px}
.collect-item-title{grid-column:2}
.collect-list .faint{grid-column:2}
.collect-feeds{font-size:12px;color:var(--text-faint);margin-top:10px}
.faint{color:var(--text-faint)}
.results-list{display:flex;flex-direction:column;gap:1px;background:var(--border-muted);border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:14px 0}
.result-block{background:var(--bg);padding:20px 24px}
.result-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.result-title{font:600 19px/1.3 var(--font-heading);margin-bottom:10px}
.results-table-wrap{overflow-x:auto;margin:14px 0}
.results-table{width:100%;min-width:960px;border-collapse:collapse;table-layout:fixed;text-align:left;font-size:12px;line-height:1.55}
.results-table caption{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.result-status-col{width:132px}
.result-claim-col{width:29%}
.result-evidence-col{width:22%}
.result-source-col{width:auto}
.results-table thead th{padding:10px 12px;border-block:1px solid var(--border);font:9px/1.5 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}
.results-table tbody td,.results-table tbody th{padding:15px 12px;vertical-align:top;border-bottom:1px solid var(--border-muted);overflow-wrap:anywhere}
.results-table tbody th{font-weight:400}
.results-table tbody td{color:var(--text-muted)}
.results-table tbody tr:hover{background:var(--color-brand-muted)}
.result-claim-title{display:block;font-weight:600;color:var(--text)}
.result-claim-id,.result-claim-date{display:block;margin-top:5px;font:10px/1.5 var(--font-mono);color:var(--text-faint)}
.results-table .detail-source .icon{display:inline-block;vertical-align:-.1em;margin-left:4px}
.util-legend{display:flex;gap:18px;font:500 11px var(--font-mono);letter-spacing:.1em;color:var(--text-faint);margin:14px 0 6px}
.util-legend span{display:inline-flex;align-items:center;gap:7px}
.util-sw{width:14px;height:8px;display:inline-block}
.util-sw.collected{background:var(--color-brand)}
.util-sw.feeding{background:var(--color-success)}
.util-row{display:grid;grid-template-columns:180px 1fr 200px;gap:14px;align-items:center;padding:8px 0;border-top:1px solid var(--border-muted)}
.util-name{font:500 12.5px var(--font-body)}
.util-bars{display:flex;flex-direction:column;gap:3px}
.util-bar{display:block;height:7px;box-shadow:inset 0 1px 0 rgba(255,255,255,.25);transition:filter var(--t-fast)}
.util-bar.collected{background:var(--color-brand)}
.util-bar.feeding{background:var(--color-success)}
.util-row:hover .util-bar{filter:brightness(1.15)}
.util-nums{font:400 11px var(--font-mono);color:var(--text-faint);text-align:right}
.util-nums b{color:var(--text);font-weight:600}
@media(max-width:900px){
  .topbar{gap:24px}
  .main-nav{gap:18px}
  .content-grid{grid-template-columns:1fr;gap:40px}
  .side-column{display:grid;grid-template-columns:1fr 1fr;gap:32px}
  .side-section{margin:0}
  .hero-meta{flex-direction:column;align-items:flex-start;gap:18px}
}
@media(max-width:620px){
  .topbar{height:auto;min-height:56px;flex-wrap:wrap;gap:0 16px;padding-block:10px}
  .wordmark{margin-right:auto}
  .top-actions{margin-left:0}
  .snapshot-state{display:inline-flex;align-items:center;font-size:11px}
  .main-nav{order:3;width:100%;height:42px;gap:20px}
  .nav-link{font-size:12px}
  main{padding-top:36px}
  .hero h1{font-size:44px}
  .metric-row{grid-template-columns:1fr 1fr;row-gap:0}
  .metric{padding:18px 18px 16px 0}
  .metric+.metric{padding-left:18px}
  .metric:nth-child(2){border-right:0}
  .metric:nth-child(1),.metric:nth-child(2){border-bottom:1px solid var(--border-muted)}
  .snapshot-banner{align-items:flex-start;flex-direction:column;gap:10px}
  .snapshot-banner .text-button{margin-left:0}
  .table-head,.claim-row{grid-template-columns:minmax(0,1fr) 96px;gap:10px}
  .table-head span:nth-child(2),.claim-row>div:nth-child(2){display:none}
  .side-column{grid-template-columns:1fr}
  .change-row{grid-template-columns:56px 84px 1fr 18px;gap:8px;font-size:12px}
  .change-source{display:none}
  footer{display:grid;gap:10px}
}

.util-row{cursor:pointer}
.util-detail{grid-column:1/-1;padding:4px 0 12px}
.util-row:focus-visible{outline:1px solid var(--color-brand);outline-offset:2px}

/* ===== 3b. Dashboard components (dense, GA-style) ===== */
.dash-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.dash-title{font-size:clamp(30px,4vw,44px);letter-spacing:-.01em}
.dash-badges{display:flex;gap:8px;flex-wrap:wrap;padding-bottom:6px}
.badge-live,.badge-dim,.badge-demo{font:10px/1.6 var(--font-mono);letter-spacing:.1em;padding:2px 8px;border:1px solid var(--color-brand-border);color:var(--color-brand-hover)}
.badge-live{border-color:var(--color-success-border);color:var(--color-success)}
.badge-dim,.badge-demo{border-color:var(--border);color:var(--text-faint)}
.chip-row{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 28px}
.chip{border:1px solid var(--border);padding:7px 14px;font:500 13px var(--font-body);color:var(--text-muted)}
.chip-on{border-color:var(--color-brand);color:var(--color-brand-hover)}
.company-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.company-card{display:flex;flex-direction:column;gap:14px;border:1px solid var(--border);padding:22px 22px 18px;transition:border-color var(--t-fast)}
.company-card:hover{border-color:var(--color-brand)}
.company-card-top{display:flex;flex-direction:column;gap:2px}
.company-name{font:600 21px var(--font-heading);color:var(--text)}
.company-card-meta{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-muted)}
.company-card-cta{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-brand-hover)}
.stream-head{grid-template-columns:150px minmax(0,1fr) 90px}
.stream-list{display:flex;flex-direction:column}
.stream-list li{display:grid;grid-template-columns:150px minmax(0,1fr) 90px;gap:16px;align-items:baseline;padding:7px 0;border-top:1px solid var(--border-muted)}
.stream-list li:first-child{border-top:0}
.stream-src{font:10.5px var(--font-mono);letter-spacing:.06em;color:var(--text-faint);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.foot-note{margin-top:44px}
@media(max-width:760px){.stream-head,.stream-list li{grid-template-columns:minmax(0,1fr) 76px}.stream-src{display:none}}
.type-strip{display:flex;gap:22px;flex-wrap:wrap;font:11px var(--font-mono);letter-spacing:.06em;color:var(--text-faint);margin:14px 0 0}
.type-strip b{color:var(--text);font-weight:500;margin-right:4px}
.check-list{display:flex;flex-direction:column;border-top:1px solid var(--border)}
.check-card{border-bottom:1px solid var(--border);padding:12px 0}
.check-card summary{display:flex;justify-content:space-between;gap:18px;align-items:baseline;cursor:pointer;list-style:none}
.check-card summary::-webkit-details-marker{display:none}
.check-claim{font:500 15px var(--font-body);color:var(--text);flex:1 1 auto;min-width:0}
.check-meta{display:flex;gap:10px;align-items:baseline;flex:1 1 auto;min-width:0;flex-wrap:wrap;justify-content:flex-end}
.check-meta .mono{min-width:0;overflow-wrap:anywhere;text-align:right}
.check-card[open] summary{margin-bottom:10px}

.check-card .collect-list li{display:block;padding:5px 0}
.check-card .collect-list a{display:inline;white-space:normal}

/* Phone-first report: compact header, stat strip, evidence above the fold */
@media(max-width:760px){
  main{padding:20px var(--edge) 56px}
  .dash-head{align-items:flex-start;gap:10px}
  .dash-title{font-size:24px;line-height:1.15}
  .dash-badges{padding-bottom:0;gap:6px}
  .badge-live,.badge-dim{font-size:10px;padding:2px 7px}
  .metric-row{display:flex;gap:0;overflow-x:auto;margin-top:18px;-webkit-overflow-scrolling:touch}
  .metric-row .metric{min-width:118px;padding:10px 14px 10px 0;margin-right:14px;border-right:1px solid var(--border)}
  .metric-row .metric:last-child{border-right:0}
  .metric-row .metric-number{font-size:22px}
  .metric-row .metric-label{font-size:10px}
  .metric-row .metric-note{font-size:10px;line-height:1.4}
  .type-strip{margin-top:10px;gap:12px;font-size:10px}
  .bottom-section{margin-top:30px}
  .section-heading h2{font-size:19px}
  .stream-head{display:none}
  .stream-list li{grid-template-columns:minmax(0,1fr) 64px;gap:10px;padding:9px 0}
  .util-name{font-size:12px}
  .util-nums{font-size:11px}
  .check-card summary{flex-direction:column;gap:4px}
  .hero{margin-bottom:14px}
  .company-grid{grid-template-columns:1fr}
}

.rel-note{display:block;font:10px var(--font-mono);color:var(--text-faint);margin-top:2px}

/* stream rows: title is the wide column (base rule pins it to col 2 for collect-lists) */
.stream-list .collect-item-title{grid-column:auto}
.stream-list .mono.faint{grid-column:auto;text-align:right}

.collect-list .rel-note{grid-column:2}
.stream-list .rel-note{grid-column:2}

/* Phone stream: single-line dates, two-line clamp with tap-to-expand */
@media(max-width:760px){
  .stream-list .mono.faint{white-space:nowrap;font-size:10px;padding-top:2px}
  .stream-list .collect-item-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .stream-list .collect-item-title.expanded{display:block;overflow:visible}
}

/* Phone source graph: name+counts row, full-width bar row (fixed 180/200px tracks overflow) */
@media(max-width:760px){
  .util-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name nums" "bars bars" "detail detail";row-gap:5px;column-gap:10px}
  .util-name{grid-area:name}
  .util-bars{grid-area:bars}
  .util-nums{grid-area:nums;text-align:right}
  .util-detail{grid-area:detail}
}

/* Coverage score + collected-by-day chart */
.coverage-score{margin:16px 0 4px}
.trend-chart{display:flex;gap:6px;align-items:flex-end;flex-wrap:wrap;margin-top:8px}
.trend-col{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:34px}
.trend-bar{display:block;width:22px;background:var(--color-brand);box-shadow:inset 0 1px 0 rgba(255,255,255,.25)}
.trend-day{font:9px var(--font-mono);color:var(--text-faint)}
.trend-n{font:10px var(--font-mono);color:var(--text)}
@media(max-width:760px){.trend-chart{gap:4px}.trend-bar{width:18px}}

/* Signalor historical panel */
.sent-bar{display:flex;height:10px;margin:14px 0 6px;overflow:hidden}
.sent-pos{background:var(--color-success)}.sent-neu{background:#b9bcc4}.sent-neg{background:#c0392b}
.util-sw.sent-pos{background:var(--color-success)}.util-sw.sent-neu{background:#b9bcc4}.util-sw.sent-neg{background:#c0392b}
.signalor-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:14px 0}
.sig-row{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-top:1px solid var(--border-muted);font-size:12px}
.sig-name{text-transform:capitalize}
.sig-n{font:11px var(--font-mono);color:var(--text-faint);text-align:right}
.sig-n b{color:var(--text);font-weight:600}
@media(max-width:760px){.signalor-cols{grid-template-columns:1fr;gap:8px}}

/* Full-width aspect drivers: each half uses the same 0–100% share scale. */
.aspect-sentiment{margin:28px 0;border-top:1px solid var(--border-muted);padding-top:24px;--aspect-negative:#b9756e;--aspect-positive:#679573}
.aspect-search-label{display:block;font:10px var(--font-mono);color:var(--text-faint);margin-bottom:6px}
.aspect-search{display:block;box-sizing:border-box;width:min(100%,320px);padding:10px 12px;border:1px solid var(--border-muted);background:transparent;color:var(--text);font:inherit}
.aspect-search:focus-visible,.aspect-diverging:focus-visible{outline:2px solid var(--color-brand);outline-offset:4px}
.aspect-legend{display:flex;justify-content:space-between;align-items:baseline;gap:8px 24px;flex-wrap:wrap;margin:12px 0}
.aspect-negative-swatch{background:var(--aspect-negative)}
.aspect-positive-swatch{background:var(--aspect-positive)}
.aspect-sentiment-list{list-style:none;margin:0;padding:0}
.aspect-chart-head,.aspect-sentiment-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,3fr) 72px;gap:24px;align-items:center}
.aspect-chart-head{padding:12px 0 10px;border-bottom:1px solid var(--border);font:9px var(--font-mono);letter-spacing:.04em;color:var(--text-faint)}
.aspect-chart-head>span:last-child{text-align:right}
.aspect-axis{display:flex;justify-content:space-between;position:relative}
.aspect-axis span{width:0;display:flex;justify-content:center;white-space:nowrap}
.aspect-axis span:first-child{justify-content:flex-start}
.aspect-axis span:last-child{justify-content:flex-end}
.aspect-sentiment-row{padding:10px 0;font-size:14px;border-bottom:1px solid var(--border-muted)}
.aspect-sentiment-row:hover{background:var(--color-brand-muted)}
.aspect-label{min-width:0;overflow-wrap:anywhere}
.aspect-mentions{display:block;margin-top:5px;font:10px var(--font-mono);color:var(--text-faint)}
.aspect-diverging{position:relative;min-width:0;height:40px;cursor:help}
.aspect-plot{display:block;width:100%;height:40px;overflow:visible}
.aspect-grid{stroke:var(--border-muted);stroke-width:1;vector-effect:non-scaling-stroke;fill:none;stroke-dasharray:2 3}
.aspect-zero{stroke:var(--text-faint);stroke-width:1;vector-effect:non-scaling-stroke;fill:none}
.aspect-negative-bar{fill:var(--aspect-negative)}
.aspect-positive-bar{fill:var(--aspect-positive)}
.aspect-counts{display:none;position:absolute;bottom:100%;left:50%;transform:translateX(-50%);box-sizing:border-box;width:max-content;max-width:100%;padding:8px 10px;background:var(--text);color:var(--bg,#f5f4f4);font:11px/1.5 var(--font-mono);z-index:1;pointer-events:none}
.aspect-diverging:hover .aspect-counts,.aspect-diverging:focus .aspect-counts{display:block}
.aspect-net{text-align:right;font:12px var(--font-mono)}
.aspect-net.positive{color:var(--color-success)}
.aspect-net.negative{color:#a33f35}
.aspect-net.neutral,.aspect-unit{color:var(--text-faint)}
.aspect-chart-note{max-width:70ch;line-height:1.6;margin-top:12px}
@media(max-width:760px){
  .aspect-chart-head,.aspect-sentiment-row{grid-template-columns:minmax(76px,1fr) minmax(0,2fr) 48px;gap:10px}
  .aspect-chart-head{font-size:8px;letter-spacing:0}
  .aspect-sentiment-row{font-size:13px;padding:12px 0}
  .aspect-mentions{font-size:9px;line-height:1.5}
  .aspect-net{font-size:11px}
  .aspect-unit{display:none}
  .aspect-axis span:nth-child(2),.aspect-axis span:nth-child(4){visibility:hidden}
  .aspect-counts{left:auto;right:-58px;transform:none;max-width:calc(100% + 58px)}
  .aspect-legend .util-legend{flex-wrap:wrap;gap:12px;letter-spacing:0}
}

/* Phone: metric strips wrap instead of horizontal scroll */
@media(max-width:760px){
  .metric-row{flex-wrap:wrap;overflow-x:visible}
  .metric-row .metric{min-width:0;flex:1 1 42%;margin-right:0;padding-right:10px}
  .metric-row .metric:nth-child(2n){border-right:0}
}

/* Report: conclusions first, with evidence paired at the point of reading. */
.report-nav{display:flex;flex-wrap:wrap;gap:12px 24px;padding:12px 0 20px;border-bottom:1px solid var(--border);font:12px var(--font-mono)}
.report-nav a{color:var(--text-muted)}
.report-nav a:hover{color:var(--color-brand)}
.takeaway-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px}
.takeaway-list li{padding-left:16px;border-left:2px solid var(--color-brand)}
.takeaway-list h3{font-size:17px;line-height:1.4;margin:0 0 8px}
.finding-list{display:grid;gap:20px;margin-top:20px}
.finding-card{border:1px solid var(--border);padding:24px;min-width:0;overflow-wrap:anywhere}
.finding-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.finding-heading .overline{margin:0}
.finding-heading .badge-dim{white-space:normal}
.finding-card h3{font-size:20px;line-height:1.45;margin:14px 0 8px;font-weight:500}
.finding-meta{font:11px/1.7 var(--font-mono);color:var(--text-faint);margin:6px 0 12px}
.finding-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:20px}
.finding-evidence{min-width:0}
.finding-evidence h4{font:11px var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:0 0 12px}
.finding-copy{font-size:13px;line-height:1.75;margin:8px 0;color:var(--text-muted)}
.finding-sources{list-style:none;padding:0;margin:0;font-size:13px;line-height:1.7}
.finding-sources li+li{border-top:1px solid var(--border-muted);padding-top:12px;margin-top:12px}
.finding-sources blockquote{margin:8px 0;padding-left:12px;border-left:2px solid var(--border);color:var(--text-muted)}
.finding-next{font-size:13px;line-height:1.75;border-top:1px solid var(--border-muted);padding-top:16px;margin:20px 0 0;color:var(--text-muted)}
.finding-next strong{display:block;color:var(--text);font-weight:500}
.finding-related{margin-top:18px}
.finding-related summary,.reference-detail summary{cursor:pointer;font-size:13px;color:var(--color-brand-hover);padding:10px 0}
.reference-detail{border-bottom:1px solid var(--border-muted);padding:8px 0}
#reference .metric-row{margin-top:24px}
@media(max-width:760px){
  .finding-card{padding:18px}
  .finding-columns{grid-template-columns:1fr;gap:18px}
  .finding-card h3{font-size:18px}
  .takeaway-list{grid-template-columns:1fr}
}

.memo-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border-muted);margin:4px 0 14px}
.memo-table th,.memo-table td{border-top:1px solid var(--border-muted);padding:8px 12px;text-align:left;vertical-align:top;font-size:12px}
.memo-table th{font:10px var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);border-top:0}
.memo-sub{margin:16px 0 2px}
/* Memo section: never let long tokens (us-gaap concepts, accessions, filings) push the page wide */
#memo-body,#memo-body *{overflow-wrap:anywhere}
.memo-table{table-layout:fixed}
.memo-table td,.memo-table th{overflow-wrap:anywhere;word-break:break-word}
/* Stream/detail links: long no-space headlines (CJK, slugs) must wrap and flex children must shrink */
.collect-item-title,.collect-item-title a,.detail-source,.stream-src,.rel-note,.type-strip span{overflow-wrap:anywhere;min-width:0}
.collect-list li,.collect-list li>*,.util-row,.util-row>*,.util-detail{min-width:0}

/* Run-state placeholders + disabled downloads + zero-day chart bars */
.state-note{font-size:12px;color:var(--text-faint);padding:14px 0;margin:0;letter-spacing:.02em}
li.state-note{list-style:none}
.state-error{color:var(--color-danger,#b3261e)}
.text-button.is-disabled{opacity:.45;pointer-events:none;cursor:default}
.trend-bar.zero{background:transparent;border-bottom:2px dotted var(--text-faint)}

.vet-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-top:14px}
.vet-field{display:flex;flex-direction:column;flex:1 1 220px}
.vet-field--q{flex:2 1 320px}
.vet-field label{font:500 11px var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}
.vet-form input,.vet-form textarea,.vet-form select,.vet-form .outline-button{box-sizing:border-box;height:44px;font-size:14px;line-height:24px}
.vet-form input,.vet-form textarea,.vet-form select{border:1px solid var(--color-brand-border);padding:9px 12px;font-family:var(--font-body);font-weight:400;color:inherit;background:transparent;min-width:0;width:100%}
.vet-form textarea{resize:vertical;min-height:44px}
.collect-list--plain li{grid-template-columns:1fr}
.collect-list--plain .collect-item-title,.collect-list--plain .faint{grid-column:1}
.collect-list--plain .faint{color:var(--text-muted)}

.pack-group{margin-top:12px}
.id-card{display:block;padding:10px 12px;border:1px solid var(--line,#d8d6d2);border-radius:8px;margin:6px 0;cursor:pointer}
.id-card:has(input:checked){border-color:currentColor}
.id-card input{margin-right:8px}
.quote-block{border-left:3px solid var(--line,#d8d6d2);margin:10px 0;padding:6px 14px}
.quote-block p{margin:0 0 6px}
.id-card .collect-item-title{display:block}
.id-card .faint{display:block;margin-top:2px}
.sig-bar{display:flex;height:10px;border-radius:5px;overflow:hidden;margin:.75rem 0 .35rem;background:var(--border,#ddd)}
.sig-seg.pos{background:#2f9e6e}.sig-seg.mix{background:#c9a227}.sig-seg.neu{background:#8a8f98}.sig-seg.neg{background:#c0453d}
.sig-legend{font-size:.72rem;letter-spacing:.02em;margin:0 0 .5rem}
#role-ask{position:fixed;inset:0;z-index:9000;background:var(--bg,#f5f4f4);display:flex;overflow-y:auto;padding:clamp(24px,5vw,64px)}
.role-card{max-width:1120px;width:100%;margin:auto}
.role-card h1{font-size:2rem;margin:0 0 1.2rem}
.role-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.role-opt{display:flex;flex-direction:column;align-items:flex-start;width:100%;min-width:0;text-align:left;padding:1.4rem 1.2rem;border:1px solid var(--border,#ccc);border-radius:10px;background:color-mix(in srgb, var(--text) 5%, var(--bg));color:var(--text);cursor:pointer;font:inherit;transition:border-color var(--t-fast),background var(--t-fast)}
.role-icon{width:32px;height:32px;margin-bottom:1.5rem;color:var(--color-brand-hover,var(--text));flex:none}
.role-opt strong{display:block;font-size:1.05rem}
.role-opt span{display:block;color:var(--text-faint,#666);font-size:.85rem;margin-top:.15rem}
.role-opt:hover,.role-opt:focus-visible{border-color:var(--color-brand-border,#1438dc);background:color-mix(in srgb, var(--text) 8%, var(--bg))}
.role-note{margin-top:1rem;color:var(--text-faint,#666);font-size:.8rem}
@media(max-width:760px){
  .role-options{grid-template-columns:1fr}
  .role-opt{display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:16px;padding:1rem}
  .role-icon{grid-row:1 / 3;align-self:center;margin:0}
  .role-opt strong,.role-opt span{grid-column:2}
}
#role-bar{display:flex;justify-content:flex-end;align-items:center;gap:.5rem;padding:.3rem 1rem;font:11px var(--font-mono,monospace);color:var(--text-faint,#666)}
.role-change{background:none;border:none;text-decoration:underline;cursor:pointer;font:inherit;color:inherit}
.lens-details{margin-top:.6rem}
.lens-details summary{cursor:pointer;font:11px var(--font-mono,monospace);letter-spacing:.08em;color:var(--text-faint,#666)}

/* Vetting is a considered reading flow, not a dense dashboard.
   Keep these rules scoped so reports and collection views retain their rhythm. */
.vet-page main{max-width:1120px;padding-block:clamp(48px,7vw,96px) 96px}
.vet-page .dash-head{margin-bottom:40px}
.vet-page .page-kicker{flex-wrap:wrap;gap:10px;line-height:1.8;margin-bottom:18px}
.vet-page .dash-title{font-size:clamp(36px,5vw,60px);line-height:1.12}
.vet-intro{max-width:42ch;font-size:clamp(21px,2.5vw,27px);line-height:1.55;color:var(--text-muted);text-wrap:pretty}
.vet-page .state-note{max-width:75ch;font-size:15px;line-height:1.75;letter-spacing:0;padding:16px 0}
.vet-page .vet-form{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:start;gap:32px 24px;margin-top:40px}
.vet-page .vet-field{min-width:0;gap:10px}
.vet-page .vet-field label{font-size:12px;line-height:1.5;margin:0}
.vet-page .vet-field:first-child,.vet-page .vet-field--q{grid-column:1/-1}
.vet-page .vet-form input,.vet-page .vet-form textarea,.vet-page .vet-form select{width:100%;min-width:0;height:auto;min-height:56px;border:1px solid var(--color-brand-border);padding:14px 16px;font:400 17px/1.5 var(--font-body);color:var(--text);background:transparent;border-radius:0}
.vet-page .vet-form textarea{min-height:112px;resize:vertical}
.vet-page .vet-form .outline-button{align-self:end;justify-content:center;height:auto;min-height:56px;padding:14px 24px;font-size:16px}
.vet-page :where(input,textarea,select):focus-visible{outline:2px solid var(--color-brand);outline-offset:3px}
.vet-page .panel:not([hidden])~.panel:not([hidden]){margin-top:72px;padding-top:48px;border-top:1px solid var(--border)}
.vet-page .section-heading{align-items:flex-start;flex-wrap:wrap;gap:16px 24px;margin-bottom:24px}
.vet-page .section-heading h2{font-size:clamp(26px,3vw,34px);overflow-wrap:anywhere}
.vet-page .section-heading .badge-dim{max-width:100%;white-space:normal}
.vet-page .badge-dim:empty{display:none}
.vet-page #identity-panel>.state-note{padding:0 0 28px}
.vet-page .id-card{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px 16px;align-items:start;padding:24px;margin:16px 0;border-color:var(--border);border-radius:0}
.vet-page .id-card input{grid-column:1;grid-row:1;margin:6px 0 0;accent-color:var(--color-brand)}
.vet-page .id-card .collect-item-title{grid-column:2;font-size:18px;line-height:1.5}
.vet-page .id-card:hover{border-color:var(--color-brand)}
.vet-page .id-card .faint{grid-column:2;margin:0;font-size:15px;line-height:1.7}
.vet-page #report-go{min-height:48px;margin-top:16px;padding:12px 24px;font-size:16px}
.vet-page .collect-list li{padding-block:18px;font-size:15px;line-height:1.7}
.vet-page .quote-block{margin:24px 0;padding:8px 24px;font-size:17px;line-height:1.8}
.vet-page .panel{overflow-wrap:anywhere}
.brief-answer{max-width:78ch;margin-bottom:32px}
.brief-answer-text{font-size:clamp(20px,2.4vw,26px);line-height:1.6;margin:16px 0}
.brief-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--border)}
.brief-card{padding:24px}
.brief-card+.brief-card{border-left:1px solid var(--border)}
.brief-card h3{font-size:23px;line-height:1.3;margin:20px 0 14px}
.brief-card>p:last-child{font-size:15px;line-height:1.7;color:var(--text-muted)}
.brief-next{margin:32px 0;padding:24px;border-left:3px solid var(--color-brand)}
.brief-next h3{font-size:24px;margin:12px 0}
.brief-next ol{padding-left:22px;max-width:70ch}
.brief-next li{padding:6px 0;line-height:1.7}
.vet-page .report-detail{border-top:1px solid var(--border);padding-top:20px;margin-top:20px}
.report-detail>summary{cursor:pointer;font-size:18px;font-weight:500;line-height:1.6;padding:8px 0}
.report-detail>summary span{display:block;font-size:12px;font-weight:400;color:var(--text-muted);margin-left:20px}
.report-detail>summary:focus-visible{outline:2px solid var(--color-brand);outline-offset:4px}
.vet-page .panel.report-detail:not([hidden]){margin-top:24px;padding-top:20px}
@media(max-width:760px){
  .brief-grid{grid-template-columns:1fr}
  .brief-card+.brief-card{border-left:0;border-top:1px solid var(--border)}
}
@media(max-width:1100px){
  .vet-page .topbar{height:auto;min-height:68px;flex-wrap:wrap;gap:12px 24px;padding-block:16px}
  .vet-page .main-nav{order:3;width:100%;height:auto;overflow-x:auto;justify-content:flex-start;gap:24px;padding-block:8px}
  .vet-page .nav-link{flex:none;white-space:nowrap}
}
@media(max-width:620px){
  .vet-page main{padding-top:40px}
  .vet-page .dash-head{margin-bottom:24px}
  .vet-page .vet-form{grid-template-columns:minmax(0,1fr);gap:24px;margin-top:24px}
  .vet-page .vet-form .outline-button{width:100%;margin-top:4px}
  .vet-page .panel:not([hidden])~.panel:not([hidden]){margin-top:40px;padding-top:28px}
  .vet-page .quote-block{padding-inline:16px}
}
