/* IndexHalo Obsidian system — the shared visual language for public site + workspace. */
:root {
  --paper:#090a0b; --paper-2:#101112; --white:#151718; --ink:#f4f3ee;
  --lime:#d7ff45; --lime-soft:#edff9a; --olive:#a8aaa3; --on-accent:#0a0b0c;
  --line-soft:rgba(244,243,238,.07); --line:rgba(244,243,238,.13); --line-strong:rgba(215,255,69,.42);
  --glass:rgba(255,255,255,.025); --glass-strong:rgba(255,255,255,.055);
  --halo-gradient:linear-gradient(135deg,#d7ff45,#efff9d); --halo-gradient-soft:rgba(215,255,69,.11);
  --halo-glow:0 0 0 1px rgba(215,255,69,.18),0 0 28px rgba(215,255,69,.12);
  --radius-1:4px; --radius-2:7px; --radius-3:10px; --radius-4:14px;
  --display:"Space Grotesk","IH Fallback",sans-serif; --sans:"IH Fallback",Inter,system-ui,sans-serif;
}
html { background:var(--paper); }
body { color:var(--ink); background-color:var(--paper); background-image:radial-gradient(circle at 20% 5%,rgba(215,255,69,.055),transparent 26%),linear-gradient(rgba(244,243,238,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(244,243,238,.045) 1px,transparent 1px); background-size:auto,76px 76px,76px 76px; background-attachment:fixed; }
body::before { content:""; position:fixed; inset:0; z-index:-1; pointer-events:none; opacity:.6; background-image:radial-gradient(circle at 8% 19%,#d7ff45 0 1px,transparent 1.6px),radial-gradient(circle at 82% 32%,rgba(244,243,238,.65) 0 1px,transparent 1.6px),radial-gradient(circle at 64% 80%,rgba(244,243,238,.5) 0 1px,transparent 1.5px); background-size:320px 280px,390px 350px,470px 420px; }
::selection { background:var(--lime); color:var(--on-accent); }
h1,h2,h3,h4,.brand,.brandmark,.hub-view-heading h1,.hub-stage-title h2 { font-family:var(--display); letter-spacing:-.045em; }
h1 em,h2 em,h3 em { color:var(--lime); background:none; -webkit-text-fill-color:currentColor; }
.site-header,.topbar { color:var(--ink); background:rgba(9,10,11,.88); border-color:var(--line); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
.site-header { height:68px; }
.site-header nav { gap:18px; }
.site-header .header-actions { gap:10px; }
.site-header .button-small { min-height:36px; padding-inline:13px; }
.site-header .header-cta { color:var(--on-accent)!important; background:var(--lime)!important; border-color:var(--lime)!important; }
.site-header + .mobile-menu { inset-block-start:68px; }
.brand,.brandmark { color:var(--ink); font-size:21px; font-weight:650; }
.brand-mark,.brandmark-logo { width:34px; height:34px; object-fit:contain; filter:none; }
.site-header nav a,.topbar-note,.brand-picker,.sidebar-group,.eyebrow,.section-kicker,.hub-view-kicker,.hub-filter span,.hub-status-card small,.metric span,.panel-title span { color:var(--olive); font-family:var(--mono); font-size:18px; letter-spacing:.15em; text-transform:uppercase; }
.site-header nav a:hover { color:var(--lime); }
.nav-dashboard,.header-cta { position:relative; }
.cta-pop {
  position:absolute; z-index:120; top:calc(100% + 10px); left:0;
  width:max-content; max-width:min(300px,calc(100vw - 32px)); padding:9px 11px;
  color:var(--ink); background:rgba(13,14,15,.98); border:1px solid var(--line);
  border-top:2px solid var(--lime); box-shadow:0 16px 36px rgba(0,0,0,.42);
  font:600 18px/1.45 var(--sans); letter-spacing:0; text-transform:none;
  white-space:normal; overflow-wrap:anywhere; pointer-events:none; opacity:0;
  transform:translateY(-4px); transition:opacity .16s ease,transform .16s ease;
}
.cta-pop-left { right:0; left:auto; }
.header-cta .cta-pop { right:0; left:auto; }
.header-cta:hover .cta-pop,.header-cta:focus-visible .cta-pop,
.nav-dashboard:hover .cta-pop,.nav-dashboard:focus-visible .cta-pop { opacity:1; transform:translateY(0); }
.button,.btn { border:1px solid var(--line-strong); border-radius:4px; min-height:42px; color:var(--ink); background:transparent; box-shadow:none; font-weight:700; letter-spacing:.01em; }
.button:hover:not(:disabled),.btn:hover:not(:disabled) { border-color:var(--lime); color:var(--lime); box-shadow:var(--halo-glow); transform:translateY(-1px); }
.button-accent,.btn-accent { color:var(--on-accent); background:var(--lime); border-color:var(--lime); }
.button-accent:hover:not(:disabled),.btn-accent:hover:not(:disabled) { color:var(--on-accent); background:var(--lime-soft); }
.button-dark,.btn-dark,.sidebar button.active,.tabs button.active,.answers-tab.active { color:var(--lime); background:#050606; border-color:var(--lime); }
.button-light { color:var(--ink); background:var(--white); }
input,textarea,select,.brand-picker select,.form input,.form textarea,.form select { color:var(--ink)!important; background:#0c0e0f!important; border-color:var(--line)!important; border-radius:4px!important; }
input::placeholder,textarea::placeholder { color:#777a73; }
input:focus,textarea:focus,select:focus { border-color:var(--lime)!important; outline:2px solid rgba(215,255,69,.18); outline-offset:1px; }
.hero,.empty-state,.hub-hero { position:relative; }
.hero { background:none; min-height:660px; }
.hero::after,.hub-hero::after { content:""; position:absolute; width:min(42vw,520px); aspect-ratio:1; right:4%; top:10%; border:1px dashed rgba(215,255,69,.35); border-radius:50%; box-shadow:0 0 0 35px rgba(215,255,69,.025),0 0 0 70px rgba(215,255,69,.018); pointer-events:none; }
.hero-copy,.hub-hero-copy { z-index:1; }
.hero h1,.empty-state h1,.hub-hero h1 { color:var(--ink); font-weight:560; line-height:.94; }
.hero-lede,.hub-hero p,.empty-state p { color:#c1c3bc; }
.pulse-dot,.live-dot,.hub-status-dot { background:var(--lime); box-shadow:0 0 0 3px rgba(215,255,69,.15),0 0 13px rgba(215,255,69,.45); }
.scanner-window,.panel,.card,.metric,.hub-stage,.hub-status-card,.hub-filter,.hub-flow-step,.hub-drawer,.dialog-card,.auth-gate-card,.set-card,.answer-detail,.run-row,.answer-timeline-card { color:var(--ink); background:rgba(16,18,18,.84); border-color:var(--line); border-radius:5px; box-shadow:none; }
.scanner-window:hover,.panel:hover,.card:hover,.hub-stage:hover { border-color:rgba(215,255,69,.35); }
.panel,.hub-stage { padding:clamp(18px,2.5vw,34px); }
.workspace { gap:16px; }
.sidebar,.hub-sidebar { background:rgba(11,12,13,.88); border-color:var(--line); }
.sidebar button,.hub-sidebar a,.hub-sidebar button { color:#c5c7bf; border-radius:3px; }
.sidebar button:hover,.hub-sidebar a:hover,.hub-sidebar button:hover { color:var(--ink); background:rgba(215,255,69,.07); }
.sidebar button.active,.hub-sidebar a.is-active,.hub-sidebar button.is-active { background:rgba(215,255,69,.13); color:var(--lime); box-shadow:inset 2px 0 0 var(--lime); }
.sidebar kbd { border-color:var(--line); color:var(--olive); }
.metric-grid { gap:10px; }
.metric { border:1px solid var(--line); margin:0; min-height:116px; }
.metric strong,.overall-score strong,.score-gauge strong,.bvi-score,.geo-bvi-score { color:var(--lime); font-family:var(--display); font-weight:500; }
.status,.attr,.engine-chip,.privacy-chip,.receipt-badge,.hub-stage-state { color:var(--lime); background:rgba(215,255,69,.06); border-color:rgba(215,255,69,.35); border-radius:999px; }
.bar,.spark-base,.ag-grid line { background:rgba(244,243,238,.12); stroke:rgba(244,243,238,.15); }
.bar i,.ag-bar i,.spark polyline,.ag-line { background:var(--lime); stroke:var(--lime); }
.spark-point,.ag-dot { fill:var(--lime); stroke:var(--paper); }
.surface-table th,.surface-table td,.engine-row,.canary-row,.breakdown-row,.run-row,.hub-stage-head,.hub-flow { border-color:var(--line); }
.surface-table,.surface-table th,.surface-table td { color:var(--ink); }
.surface-dark,.raw-answer,.answer-timeline-diff,.patch pre { background:#070809; color:var(--ink); border-color:var(--line); }
.positive,.status.ok,.attr.positive { color:var(--lime); border-color:rgba(215,255,69,.45); background:rgba(215,255,69,.09); }
.topbar .btn-dark,.hub-report-cta { color:var(--on-accent); background:var(--lime); border-color:var(--lime); }
.auth-gate-backdrop { opacity:.45; filter:saturate(.45); }
.hub-flow { gap:0; border-color:var(--line); }
.hub-flow-step { border-color:var(--line); background:transparent; }
.hub-flow-step.is-current,.hub-flow-step:hover { color:var(--lime); background:rgba(215,255,69,.07); }
.hub-stage-num { color:var(--lime); font-family:var(--mono); }
.hub-mode,.hub-filter select { background:#0c0e0f!important; color:var(--ink)!important; border-color:var(--line)!important; }
.hub-mode.is-active { background:rgba(215,255,69,.08)!important; border-color:var(--lime)!important; }
.hub-mode-glyph,.hub-status-glyph { color:var(--lime); }
.hub-view-head { border-color:var(--line); background:rgba(9,10,11,.72); }
.final-cta,footer,.editorial-footer { color:var(--ink); background:#070809; border-color:var(--line); }
.editorial-footer p,.editorial-footer small { color:var(--olive)!important; }
.editorial-footer nav a,.editorial-footer nav button { color:var(--ink)!important; }
.final-cta .giant-star { filter:none; opacity:.85; }
@media (max-width:800px) { body { background-size:auto,48px 48px,48px 48px; } .site-header,.topbar { padding-inline:16px; } .site-header + .mobile-menu { inset-block-start:66px; } main { padding-inline:16px; } .sidebar { border-right:1px solid var(--line); } .hero::after,.hub-hero::after { width:280px; right:-80px; opacity:.55; } }

/* -------------------------------------------------------------------------
   Public-site and workspace repair layer.  These rules intentionally sit
   after the historical stylesheet: the shared tokens above now define the
   system, and this layer owns the layout so no legacy white/blue surface can
   leak through on a route that still uses the established HTML structure.
   ------------------------------------------------------------------------- */
:root { --paper:#090a0b !important; --paper-2:#101112 !important; --white:#151718 !important; --ink:#f4f3ee !important; --lime:#d7ff45 !important; --lime-soft:#edff9a !important; --olive:#a8aaa3 !important; --on-accent:#0a0b0c !important; --line:rgba(244,243,238,.13) !important; --line-soft:rgba(244,243,238,.07) !important; --line-strong:rgba(215,255,69,.42) !important; }
body,body.in-app { background-color:#090a0b !important; color:#f4f3ee !important; }
.site-header { background:rgba(9,10,11,.92)!important; border-color:var(--line)!important; }
.site-header nav a,.text-button,.header-actions { color:var(--ink)!important; }
.button-light,.button-dark { background:transparent!important; color:var(--ink)!important; border-color:var(--line-strong)!important; }
.button-accent,.button.button-accent { background:var(--lime)!important; color:var(--on-accent)!important; border-color:var(--lime)!important; }
.hero,.scanner-wrap,.scanner-window,.scanner-body,.mode-panel,.coverage-section,.value-section,.method-section,.pricing-section,.dashboard-section,.showcase-under-hero,.stats-band,.pillars,.engine-suite,.pain { background-color:transparent!important; color:var(--ink)!important; }
.hero { min-height:min(760px,calc(100vh - 76px)); background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px)!important; background-size:80px 80px!important; }
.hero h1,.hero h1 em { color:var(--ink)!important; font-family:var(--display)!important; font-style:normal!important; }
.hero h1 em { color:var(--lime)!important; }
.hero-claim mark { background:rgba(215,255,69,.12)!important; color:var(--lime)!important; border-bottom:1px solid var(--lime)!important; }
.hero-lede,.hero-lede a,.proof-row { color:#c5c7bf!important; }
.scanner-window { border:1px solid var(--line)!important; box-shadow:24px 24px 0 rgba(215,255,69,.17),0 32px 80px rgba(0,0,0,.38)!important; }
.window-bar { color:var(--olive)!important; background:#0c0e0f!important; border-color:var(--line)!important; }
.scanner-body { background:rgba(16,17,18,.92)!important; }
.scanner-body h2,.scanner-body p,.scanner-body > p,.scanner-meta,.notice,.query-field > small,.analysis-language small { color:var(--ink)!important; }
.field-shell,.query-field textarea,.analysis-language select,.file-drop { background:#0b0d0e!important; border-color:var(--line)!important; color:var(--ink)!important; }
.input-tabs button { color:var(--olive)!important; border-color:var(--line)!important; }
.input-tabs button.active { color:var(--on-accent)!important; background:var(--lime)!important; border-color:var(--lime)!important; }
.hub-diagram-figure { background:#0b0d0e!important; border-color:var(--line)!important; box-shadow:none!important; }
.hub-diagram-body,.hub-diagram-cap,.showcase-lede,.agents-note { color:var(--olive)!important; }
.showcase-dash-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.signal-preview { min-height:230px; padding:22px; display:flex; flex-direction:column; gap:16px; border:1px solid var(--line); background:linear-gradient(145deg,rgba(255,255,255,.04),rgba(255,255,255,.01)); }
.signal-preview>span,.signal-preview p { font:700 18px/1.4 var(--mono); letter-spacing:.12em; text-transform:uppercase; color:var(--olive); margin:0; }
.signal-preview>strong { color:var(--lime); font:500 clamp(52px,6vw,84px)/.9 var(--display); letter-spacing:-.08em; }
.signal-preview small { color:var(--olive); }
.signal-preview>i,.signal-bars i { display:block; height:7px; background:rgba(244,243,238,.12); font-style:normal; }
.signal-preview>i b,.signal-bars b { display:block; height:100%; background:var(--lime); }
.signal-bars { display:grid; gap:13px; padding-top:30px; }
.signal-preview ol { display:grid; gap:11px; padding:12px 0 0 23px; margin:0; color:var(--ink); font-size:18px; }
.signal-preview p { margin-top:auto; }

/* Workspace shell */
body.in-app > main { max-width:none!important; padding:0!important; }
body.in-app > main > section#hub { display:block!important; padding:0!important; background:transparent!important; }
body.in-app > main > section#dashboard { display:none!important; }
body.in-app > footer { display:none!important; }
.hub-shell { width:min(1680px,100%); margin:0 auto; min-height:calc(100vh - 76px); display:grid; grid-template-columns:290px minmax(0,1fr); border-inline:1px solid var(--line); }
.hub-nav { min-width:0; padding:16px 10px; border-right:1px solid var(--line); background:rgba(8,9,10,.78); position:sticky; top:76px; height:calc(100vh - 76px); overflow-x:hidden; overflow-y:auto; }
.hub-brand { position:relative; margin-bottom:20px; }
.hub-brand-trigger,.hub-brand-new,.hub-nav-item { width:100%; display:flex; align-items:center; gap:10px; color:var(--ink); background:transparent; border:0; text-align:left; text-decoration:none; cursor:pointer; }
.hub-brand-trigger { display:grid; grid-template-columns:18px minmax(0,1fr) auto; padding:12px; border:1px solid var(--line); }
.hub-brand-trigger:focus-visible,.hub-brand-pick:focus-visible,.hub-brand-remove:focus-visible,.hub-brand-new:focus-visible,.hub-nav-item:focus-visible { outline:2px solid var(--lime); outline-offset:2px; }
.hub-brand-menu { position:absolute; z-index:8; top:calc(100% + 6px); inset-inline:0; display:grid; gap:3px; padding:6px; border:1px solid var(--line-strong); background:#0c0e0f; box-shadow:0 18px 42px rgba(0,0,0,.5); }
.hub-brand-menu[hidden] { display:none; }
.hub-brand-option { min-width:0; display:grid; grid-template-columns:minmax(0,1fr) 34px; align-items:stretch; border:1px solid transparent; }
.hub-brand-option.is-active { border-color:rgba(215,255,69,.28); background:rgba(215,255,69,.055); }
.hub-brand-pick,.hub-brand-remove { min-width:0; color:var(--ink); border:0; background:transparent; cursor:pointer; }
.hub-brand-pick { display:grid; gap:2px; padding:9px; text-align:left; }
.hub-brand-pick span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:18px; }
.hub-brand-pick small,.hub-brand-empty { color:var(--olive); font-size:18px; }
.hub-brand-remove { color:var(--olive); font-size:18px; }
.hub-brand-remove:hover { color:#ff8d87; background:rgba(255,93,84,.08); }
.hub-brand-new { justify-content:space-between; padding:10px 9px; border-top:1px solid var(--line); font-size:18px; }
.hub-brand-new:hover { color:var(--lime); }
.hub-brand-empty { margin:0; padding:10px 9px; line-height:1.45; }
.hub-brand-mark,.hub-status-dot { flex:0 0 auto; width:18px; height:18px; border-radius:50%; background:var(--lime); box-shadow:0 0 0 3px rgba(215,255,69,.12); }
.hub-brand-text { min-width:0; display:grid; gap:2px; }
.hub-brand-text small,.hub-nav-group h2,.hub-nav-foot small { color:var(--olive); font:700 18px/1.35 var(--mono); letter-spacing:.075em; text-transform:uppercase; }
.hub-brand-text strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:18px; }
.hub-nav-group { display:grid; gap:2px; margin:0 0 18px; }
.hub-nav-group h2 { margin:0; padding:8px 10px; }
.hub-nav-item { padding:10px 9px; align-items:flex-start; border-left:2px solid transparent; }
.hub-nav-item>i { width:28px; font-style:normal; color:var(--olive); text-align:center; }
.hub-nav-item>span { display:grid; gap:4px; min-width:0; font-size:18px; }
.hub-nav-item small { color:var(--olive); font:500 18px/1.4 var(--sans); letter-spacing:0; text-transform:none; }
.hub-nav-item em { margin-left:auto; color:var(--lime); font:700 18px/1 var(--mono); }
.hub-nav-item:hover,.hub-nav-item.is-active { background:rgba(215,255,69,.07); color:var(--lime); border-left-color:var(--lime); }
.hub-nav-item.is-active i { color:var(--lime); }
.hub-nav-disclosure { margin:0 0 12px; border-top:1px solid var(--line-soft); }
.hub-nav-disclosure > summary { display:grid; grid-template-columns:1fr auto; gap:8px; padding:11px 10px; color:var(--olive); font:700 18px/1.2 var(--mono); letter-spacing:.08em; text-transform:uppercase; cursor:pointer; list-style:none; }
.hub-nav-disclosure > summary::-webkit-details-marker { display:none; }
.hub-nav-disclosure > summary::after { content:"+"; grid-column:2; grid-row:1; color:var(--lime); }
.hub-nav-disclosure[open] > summary::after { content:"−"; }
.hub-nav-disclosure > summary span { grid-column:1/-1; color:var(--olive); font:500 18px/1.35 var(--sans); letter-spacing:0; text-transform:none; }
.hub-nav-disclosure > summary:focus-visible { outline:2px solid var(--lime); outline-offset:2px; }
.hub-nav-disclosure .hub-nav-group { margin:0 0 8px; }
.hub-nav-foot { display:flex; align-items:flex-start; gap:9px; padding:12px 10px; border-top:1px solid var(--line); }
.hub-main { min-width:0; }
.hub-view-head { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:14px; padding:15px clamp(18px,3vw,34px); border-bottom:1px solid var(--line); }
.hub-view-heading h1 { margin:2px 0 0; color:var(--ink); font-size:clamp(21px,2.2vw,30px); line-height:1; }
.hub-view-kicker { color:var(--lime); font:700 18px/1.3 var(--mono); letter-spacing:.12em; text-transform:uppercase; }
.hub-view-question { display:none; }
.hero-trial-trigger { display:inline-flex; align-items:center; gap:8px; margin-top:12px; padding:0; color:var(--olive); border:0; background:transparent; font:700 18px var(--mono); letter-spacing:.06em; cursor:pointer; }.hero-trial-trigger span { padding:5px 7px; color:var(--on-accent); background:var(--lime); }.hero-trial-trigger:hover { color:var(--lime); }.trial-plan-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:22px 0; }.trial-plan-grid button { display:grid; gap:9px; min-width:0; min-height:205px; padding:15px; color:var(--ink); text-align:left; border:1px solid var(--line); background:#0a0b0c; cursor:pointer; }.trial-plan-grid button:hover { border-color:var(--lime); background:rgba(215,255,69,.06); transform:translateY(-2px); }.trial-plan-grid small,.trial-plan-grid b { color:var(--olive); font:700 18px var(--mono); letter-spacing:.06em; }.trial-plan-grid strong { font-size:18px; line-height:1.2; }.trial-plan-grid span { color:var(--olive); font-size:18px; line-height:1.5; }.trial-plan-grid b { margin-top:auto; color:var(--lime); } @media(max-width:700px){.trial-plan-grid{grid-template-columns:1fr}.trial-plan-grid button{min-height:0}}
.hub-view-status { display:flex; flex-wrap:nowrap; align-items:center; justify-content:flex-end; gap:7px; max-width:none; }
.hub-status-card { display:flex; align-items:center; gap:7px; min-height:36px; padding:6px 9px; border:1px solid var(--line); background:rgba(255,255,255,.025); }
.hub-status-card div { display:grid; gap:2px; }
.hub-status-card small { color:var(--olive); font:700 18px/1.25 var(--mono); letter-spacing:.06em; }
.hub-status-card strong { font-size:18px; white-space:nowrap; }
.hub-status-card:nth-last-child(n+3) { display:none; }
.hub-status-glyph { color:var(--lime); }
.hub-tracking-context { grid-column:1/-1; display:grid; grid-template-columns:repeat(8,minmax(110px,1fr)); margin:0; border:1px solid var(--line); background:#0b0d0e; }
.hub-tracking-context > div { min-width:0; padding:9px 11px; border-right:1px solid var(--line-soft); }
.hub-tracking-context > div:last-child { border-right:0; }
.hub-tracking-context dt { color:var(--olive); font:700 18px/1.3 var(--mono); letter-spacing:.075em; text-transform:uppercase; }
.hub-tracking-context dd { margin:5px 0 0; overflow:hidden; color:var(--ink); font-size:18px; font-weight:650; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.hub-analysis-progress { grid-column:1/-1; display:grid; gap:10px; padding:13px 15px; border:1px solid rgba(110,168,255,.42); background:linear-gradient(90deg,rgba(110,168,255,.10),rgba(215,255,69,.025)); }
.hub-analysis-progress[hidden] { display:none; }
.hub-analysis-progress > header { display:flex; align-items:end; justify-content:space-between; gap:18px; }
.hub-analysis-progress > header div { display:grid; gap:4px; }
.hub-analysis-progress > header span { color:var(--observed); font:750 18px/1.3 var(--mono); letter-spacing:.08em; }
.hub-analysis-progress > header strong { color:var(--ink); font-size:18px; line-height:1.3; }
.hub-analysis-progress > header b { color:var(--observed); font:700 25px/1 var(--display); }
.hub-analysis-track { height:8px; overflow:hidden; background:rgba(244,243,238,.12); }
.hub-analysis-track i { display:block; height:100%; background:linear-gradient(90deg,var(--observed),var(--lime)); transition:width .28s ease; }
.hub-analysis-meta { display:flex; justify-content:space-between; gap:18px; color:var(--olive); font-size:18px; line-height:1.45; }
.hub-analysis-progress ol { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); margin:0; padding:0; list-style:none; }
.hub-analysis-progress li { display:grid; grid-template-columns:auto 1fr auto; gap:6px; align-items:center; min-width:0; padding:8px 9px; color:var(--olive); border:1px solid var(--line); border-right:0; font:650 18px/1.25 var(--mono); }
.hub-analysis-progress li:last-child { border-right:1px solid var(--line); }
.hub-analysis-progress li.is-complete { color:var(--positive); background:var(--positive-bg); }
.hub-analysis-progress li.is-active { color:var(--observed); background:var(--observed-bg); }
.hub-analysis-progress li small { color:inherit; }
.hub-analysis-progress > footer { display:flex; justify-content:space-between; gap:18px; align-items:center; color:var(--olive); font-size:18px; line-height:1.45; }
.hub-analysis-progress > footer a { color:var(--observed); font:750 18px var(--mono); text-decoration:none; white-space:nowrap; }
.hub-analysis-progress > footer a:hover { text-decoration:underline; }
.hub-add-source,.hub-report-cta { min-height:36px!important; padding:0 10px!important; font-size:18px!important; white-space:nowrap; }
.hub-filters { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:8px; padding-top:10px; border-top:1px solid rgba(244,243,238,.08); }
.hub-filter { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:8px; min-width:190px; min-height:44px; padding:8px 10px; border:1px solid var(--line); background:rgba(255,255,255,.018); }
.hub-filter span { color:var(--olive); font:700 18px/1.25 var(--mono); letter-spacing:.07em; text-transform:uppercase; }
.hub-filter select { min-width:0; min-height:30px; border:0!important; padding:4px 0!important; background:transparent!important; font-size:18px!important; }
.hub-filter-summary { margin:0; align-self:center; color:var(--olive); font-size:18px; line-height:1.45; }
.hub-view { padding:clamp(20px,4vw,58px); }
.hub-nav-toggle { display:none; }
.hub-drawer { width:min(580px,96vw); max-height:calc(100vh - 24px); overflow:auto; padding:22px; color:var(--ink); background:#101112; border:1px solid var(--line); box-shadow:0 28px 80px rgba(0,0,0,.55); position:fixed; z-index:100; top:12px; right:12px; }
.hub-drawer-head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-bottom:14px; border-bottom:1px solid var(--line); }
.hub-drawer-head h2 { margin:0; }
.hub-drawer-close { color:var(--ink); background:transparent; border:1px solid var(--line); width:34px; height:34px; }
.hub-drawer-body { padding-top:18px; }
.hub-pager { display:flex; justify-content:space-between; gap:12px; margin-top:28px; }
.hub-pager-link { display:grid; gap:4px; min-width:210px; max-width:360px; padding:13px 16px; color:var(--ink); border:1px solid var(--line); background:rgba(255,255,255,.025); text-decoration:none; }
.hub-pager-link:hover { color:var(--lime); border-color:var(--lime); }.hub-pager-link small{color:var(--olive);font:700 18px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase}.hub-pager-link strong{font-size:18px}.hub-step-num{display:inline-grid!important;place-items:center;width:28px;height:28px;border:1px solid currentColor;border-radius:50%;font:700 18px/1 var(--mono)}.hub-nav-step.is-active .hub-step-num{background:var(--lime)!important;border-color:var(--lime)!important;color:var(--on-accent)!important}
.consent-banner { color:var(--ink)!important; background:rgba(9,10,11,.96)!important; border-top:1px solid var(--line)!important; box-shadow:0 -14px 42px rgba(0,0,0,.28)!important; }
.consent-banner p { color:var(--olive)!important; }.consent-actions button{color:var(--ink)!important;background:transparent!important;border-color:var(--line)!important}.consent-actions button:first-child{color:var(--on-accent)!important;background:var(--lime)!important;border-color:var(--lime)!important}

@media (max-width:1100px) { .hub-shell{grid-template-columns:1fr;border-inline:0}.hub-nav{position:fixed;z-index:90;left:0;top:76px;width:min(320px,88vw);transform:translateX(-102%);transition:transform .2s ease;box-shadow:20px 0 60px rgba(0,0,0,.42)}.hub.nav-open .hub-nav,.hub-nav.is-open{transform:translateX(0)}.hub-nav-scrim{position:fixed;inset:76px 0 0;z-index:89;background:rgba(0,0,0,.66);backdrop-filter:blur(2px)}.hub-nav-toggle{display:grid;place-items:center;align-content:center;gap:4px;width:38px;height:38px;padding:0;border:1px solid var(--line);background:transparent}.hub-nav-toggle i{display:block;width:16px;height:1px;background:var(--ink)}.hub-view-head{grid-template-columns:auto minmax(0,1fr)}.hub-view-status,.hub-filters{grid-column:1/-1;justify-content:flex-start}.hub-view-status{max-width:none}.hub-nav-scrim[hidden]{display:none} }
@media (max-width:1100px) { .hub-tracking-context { grid-template-columns:repeat(4,minmax(0,1fr)); }.hub-tracking-context > div:nth-child(4n) { border-right:0; } }
@media (max-width:700px) { .site-header{height:66px}.hub-shell{min-height:calc(100vh - 66px)}.hub-nav{top:66px;height:calc(100vh - 66px)}.hub-nav-scrim{inset-block-start:66px}.hub-view-head{padding:12px 16px;gap:9px}.hub-view-heading h1{font-size:20px}.hub-view-kicker{font-size:18px}.hub-view-status{grid-column:1/-1;display:flex;flex-wrap:wrap}.hub-status-card{min-width:0}.hub-status-card:nth-last-child(n+3){display:none}.hub-add-source,.hub-report-cta{width:auto;padding-inline:8px!important}.hub-filters{display:grid;grid-template-columns:1fr}.hub-filter{min-width:0}.hub-view{padding:22px 16px}.showcase-dash-grid{grid-template-columns:1fr}.signal-preview{min-height:160px}.hero{grid-template-columns:1fr!important;padding-inline:20px!important}.scanner-wrap{padding-bottom:0}.site-header nav{display:none!important}.cta-pop{display:none} }
@media (max-width:700px) { .hub-tracking-context { grid-template-columns:repeat(2,minmax(0,1fr)); }.hub-tracking-context > div:nth-child(even) { border-right:0; }.hub-tracking-context dd { white-space:normal; overflow-wrap:anywhere; } }
@media (max-width:700px) { .hub-analysis-progress > header,.hub-analysis-meta,.hub-analysis-progress > footer { align-items:start; flex-direction:column; gap:6px; }.hub-analysis-progress ol { grid-template-columns:repeat(2,minmax(0,1fr)); }.hub-analysis-progress li:nth-child(even) { border-right:1px solid var(--line); }.hub-analysis-progress li:nth-child(n+3) { border-top:0; } }

/* Final application-shell pass. The public header is deliberately compact on
   /app: product navigation belongs in the Intelligence Hub rail, not in a
   second competing navigation system. */
body.in-app {
  --text-floor:18px;
  --text-kicker:18px;
  --text-micro:18px;
  --text-caption:18px;
  --text-small:18px;
  overflow-x:hidden;
  font-size:18px;
}
body.in-app .hub-view { font-size:18px; line-height:1.65; }
body.in-app .hub-view :where(p, small, label, dt, dd, th, td, button, input, select, textarea, summary, code, pre) {
  font-size:18px!important;
  line-height:1.55;
}
body.in-app .hub-view :where(
  .panel-title,
  .panel-title *,
  .hub-note,
  .evidence-chip,
  .status-chip,
  [class*="-kicker"],
  [class*="-caption"],
  [class*="-label"],
  [class*="-meta"],
  [class*="-status"]
) {
  font-size:18px!important;
  line-height:1.5;
}
body.in-app .site-header {
  height:64px; min-height:64px; display:grid; grid-template-columns:auto 1fr auto;
  gap:18px; padding:0 clamp(16px,3vw,42px); border-bottom:1px solid var(--line)!important;
  background:rgba(9,10,11,.98)!important; position:sticky; top:0; z-index:70;
}
body.in-app .site-header .brand { font-size:18px; white-space:nowrap; }
body.in-app .site-header .brand-mark { width:28px; height:28px; }
body.in-app .site-header nav,
body.in-app .site-header .nav-dashboard,
body.in-app .site-header #manageBilling,
body.in-app .site-header .menu-toggle { display:none!important; }
body.in-app .site-header .header-actions { justify-self:end; display:flex; align-items:center; gap:10px; min-width:0; }
body.in-app .site-header .header-cta { min-height:34px; padding:0 13px; font-size:18px; }
body.in-app .site-header .account-menu { width:min(560px,58vw); max-width:100%; min-width:0; }
body.in-app .site-header .account-trigger { width:100%; min-height:34px; max-width:100%; min-width:0; overflow:hidden; }
body.in-app .site-header #accountEmailLabel { min-width:0; max-width:none; flex:1 1 auto; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.in-app .site-header #accountPlanBadge { min-width:max-content; max-width:none; flex:0 0 auto; overflow:visible; white-space:nowrap; }
/* Account details often contain long administrator and plan labels.  Keep every
   string inside the popover instead of allowing inline metadata to spill past
   its edge on narrower desktop windows. */
body.in-app .account-panel {
  box-sizing:border-box;
  width:min(360px,calc(100vw - 24px));
  max-width:calc(100vw - 24px);
  overflow:hidden;
  white-space:normal;
  color:var(--ink)!important;
  background:#151718!important;
  border-color:var(--line)!important;
}
body.in-app .account-panel :where(.account-panel-head,.account-usage,.account-panel-actions) { min-width:0; }
body.in-app .account-panel-head strong,
body.in-app .account-panel-head span,
body.in-app .account-usage-note {
  display:block;
  max-width:100%;
  min-width:0;
  overflow-wrap:anywhere;
  word-break:normal;
}
body.in-app .account-panel-head span { margin-top:7px; line-height:1.45; white-space:normal; }
body.in-app .account-usage-note { line-height:1.5; white-space:normal; }
body.in-app .hub-shell { min-height:calc(100vh - 64px); }
body.in-app .hub-nav { top:64px; height:calc(100vh - 64px); }
body.in-app .hub-nav-scrim { inset-block-start:64px; }
body.in-app .hub-view-head { min-height:88px; padding:14px clamp(18px,3vw,36px); background:rgba(10,11,12,.92)!important; }
body.in-app .hub-view-heading h1 { font-size:clamp(20px,2vw,28px); letter-spacing:-.025em; }
body.in-app .hub-view { padding:clamp(22px,3.2vw,48px); }
body.in-app .hub-view > :first-child { margin-top:0; }
body.in-app :where(.topbar-note,.brand-picker,.sidebar-group,.eyebrow,.section-kicker,.metric span,.panel-title span) { font-size:18px!important; }
body.in-app .hub-view-status { gap:8px; }
body.in-app .hub-add-source { color:var(--ink)!important; background:transparent!important; border-color:var(--line)!important; }
body.in-app .hub-report-cta { color:var(--on-accent)!important; background:var(--lime)!important; border-color:var(--lime)!important; }
body.in-app .hub-pager { margin-top:34px; padding-top:18px; border-top:1px solid var(--line-soft); }
body.in-app .hub-pager-link { min-width:190px; padding:12px 14px; border-radius:5px!important; color:var(--ink)!important; background:#111314!important; border-color:var(--line)!important; }
body.in-app .hub-pager-link small { color:var(--lime)!important; }
body.in-app .hub-pager-link strong { color:var(--ink)!important; }
body.in-app .hub-pager-link:hover { background:rgba(215,255,69,.08)!important; border-color:var(--lime)!important; }
body.in-app .hub-drawer-scrim { position:fixed; inset:0; z-index:98; background:rgba(0,0,0,.68); backdrop-filter:blur(3px); }
body.in-app .hub-drawer { z-index:99; width:min(540px,calc(100vw - 28px)); max-height:calc(100vh - 28px); padding:0; right:14px; top:14px; border-radius:8px!important; background:#101213!important; }
body.in-app .hub-drawer-head { padding:19px 20px 15px; background:linear-gradient(115deg,rgba(215,255,69,.1),transparent 42%); }
body.in-app .hub-drawer-head h2 { font-size:22px; letter-spacing:-.025em; }
body.in-app .hub-drawer-body { display:grid; gap:20px; padding:18px 20px 22px; }
body.in-app .hub-drawer-intro,.hub-note { margin:0; color:var(--olive)!important; font-size:18px!important; line-height:1.55!important; }
body.in-app .hub-drawer-section { display:grid; gap:7px; }
body.in-app .hub-drawer-section h3 { margin:0 0 3px; color:var(--lime)!important; font:700 18px/1.2 var(--mono); letter-spacing:.1em; text-transform:uppercase; }
body.in-app .hub-drawer-row { display:grid!important; gap:4px; width:100%; padding:12px 13px!important; color:var(--ink)!important; text-decoration:none!important; text-align:left; border:1px solid var(--line)!important; border-radius:4px!important; background:rgba(255,255,255,.018)!important; }
body.in-app .hub-drawer-row:hover { border-color:rgba(215,255,69,.65)!important; background:rgba(215,255,69,.055)!important; }
body.in-app .hub-drawer-row strong { font-size:18px!important; }
body.in-app .hub-drawer-row small { color:var(--olive)!important; font-size:18px!important; line-height:1.4!important; }
body.in-app .hub-settings-form { display:grid; gap:12px; padding:14px; border:1px solid var(--line); background:rgba(255,255,255,.018); }
body.in-app .hub-settings-form label { display:grid; gap:6px; color:var(--olive); font:700 18px/1.25 var(--mono); letter-spacing:.06em; text-transform:uppercase; }
body.in-app .hub-settings-form input,body.in-app .hub-settings-form textarea,body.in-app .hub-settings-form select { width:100%; padding:10px 11px!important; color:var(--ink)!important; font:400 18px/1.45 var(--sans)!important; letter-spacing:0; text-transform:none; resize:vertical; border:1px solid var(--line); background:#0b0d0e; }
body.in-app .hub-settings-form .button { justify-self:start; min-height:38px; font-size:18px; }
body.in-app .hub-capacity-state { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid var(--line); background:#0b0d0e; }
body.in-app .hub-capacity-state > div { display:grid; gap:3px; padding:12px; border-right:1px solid var(--line); }
body.in-app .hub-capacity-state > div:last-child { border-right:0; }
body.in-app .hub-capacity-state small,body.in-app .hub-credit-ledger header small { color:var(--observed); font:700 18px/1.2 var(--mono); letter-spacing:.09em; }
body.in-app .hub-capacity-state strong { font:700 24px/1 var(--display); }
body.in-app .hub-capacity-state span { color:var(--olive); font-size:18px; }
body.in-app .hub-capacity-state.is-alert { border-color:var(--caution); }
body.in-app .hub-capacity-invariant { display:grid; gap:5px; padding:13px; border-left:2px solid var(--observed); background:var(--observed-bg); }
body.in-app .hub-capacity-invariant strong { color:var(--observed); font:700 18px/1.2 var(--mono); letter-spacing:.09em; text-transform:uppercase; }
body.in-app .hub-capacity-invariant span { color:var(--ink); font-size:18px; line-height:1.45; }
body.in-app .hub-capacity-invariant small { color:var(--olive); font-size:18px; }
body.in-app .hub-budget-form { grid-template-columns:1fr 1fr; }
body.in-app .hub-budget-form .button { grid-column:1/-1; }
body.in-app .hub-credit-ledger { display:grid; border:1px solid var(--line); }
body.in-app .hub-credit-ledger header,body.in-app .hub-credit-ledger > div { display:grid; grid-template-columns:minmax(76px,.5fr) minmax(90px,.7fr) minmax(130px,1fr); gap:8px; align-items:center; padding:10px 12px; border-bottom:1px solid var(--line); }
body.in-app .hub-credit-ledger header { display:flex; justify-content:space-between; }
body.in-app .hub-credit-ledger > div:last-child { border-bottom:0; }
body.in-app .hub-credit-ledger > div span { color:var(--observed); font:700 18px/1.2 var(--mono); letter-spacing:.07em; text-transform:uppercase; }
body.in-app .hub-credit-ledger > div strong { font-size:18px; }
body.in-app .hub-credit-ledger > div small { color:var(--olive); font-size:18px; }
body.in-app .hub-settings-actions { display:grid; gap:7px; }
body.in-app .hub-admin-access { display:grid; gap:5px; padding:13px; border-left:2px solid var(--lime); background:rgba(215,255,69,.07); }
body.in-app .hub-admin-access span,.hub-admin-grid small { color:var(--lime); font:700 18px/1 var(--mono); letter-spacing:.08em; }
body.in-app .hub-admin-access strong,.hub-admin-grid strong { font-size:18px; }
body.in-app .hub-admin-access small { color:var(--olive); font-size:18px; line-height:1.45; }
body.in-app .hub-admin-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
body.in-app .hub-admin-grid > div { display:grid; gap:5px; padding:12px; border:1px solid var(--line); background:rgba(255,255,255,.018); }
body.hub-modal-open { overflow:hidden!important; }
[inert] { pointer-events:none!important; user-select:none; }

/* Public-site contrast and density repair.
   The original public blocks predate the inverted Obsidian token palette.  Their
   internal hard-coded dark inks became invisible on Obsidian surfaces, so keep
   all explanatory copy and dividers explicitly in the readable on-dark range. */
.engine-suite { padding-block:clamp(72px,8vw,112px)!important; color:var(--ink)!important; }
.engine-suite .section-heading-row p { color:rgba(244,243,238,.76)!important; max-width:58ch; }
.engine-suite-grid { gap:18px!important; margin-top:34px!important; align-items:start; }
.engine-group { min-height:0; padding:20px; border:1px solid var(--line); background:rgba(255,255,255,.018); }
.engine-group h3 { color:var(--lime)!important; border-color:var(--line)!important; }
.engine-group ul { gap:12px!important; }
.engine-group li strong { color:var(--ink)!important; }
.engine-group li span { color:rgba(244,243,238,.68)!important; }
.engine-suite-foot { margin-top:30px!important; }

.method-engine { color:var(--ink)!important; border-color:var(--line)!important; background:#101112!important; }
.method-steps { border-color:var(--line)!important; }
.method-steps article { color:var(--ink)!important; border-color:var(--line)!important; background:#151718!important; }
.method-steps article p,.method-steps article small,.method-steps article > span { color:var(--olive)!important; }
.method-steps article > b { color:var(--ink)!important; border-color:var(--line)!important; background:#090a0b!important; }
.method-steps article:nth-child(4) > b { color:var(--on-accent)!important; border-color:var(--lime)!important; background:var(--lime)!important; }
.method-engine .engine-bar,.method-engine .engine-output { border-color:var(--line)!important; }
.method-engine .engine-canvas { background-image:linear-gradient(rgba(244,243,238,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(244,243,238,.055) 1px,transparent 1px)!important; }
.method-engine .source-pool span,.method-engine .comparison-pool span { color:#0a0b0c!important; border-color:rgba(215,255,69,.65)!important; background:rgba(215,255,69,.83)!important; }
.method-engine .comparison-pool b,.method-engine .evidence-pool small,.method-engine .engine-output span { color:rgba(244,243,238,.72)!important; }
.method-engine .evidence-pool,.method-engine .orbit { border-color:rgba(244,243,238,.28)!important; }
.method-engine .engine-output span { border-color:var(--line)!important; }

.sample-section { background:#101112!important; color:var(--ink)!important; }
.sample-heading p { color:rgba(244,243,238,.76)!important; }
.sample-report { border-color:var(--line)!important; background:#0b0d0e!important; color:var(--ink)!important; }

/* Report accent contrast. The report components were authored before the
   palette inversion, when --ink was dark. In the executive dark theme --ink
   is the light page foreground, so allowing it to inherit onto solid lime and
   pale-lime surfaces produced white-on-chartreuse labels throughout saved
   reports. Every filled accent surface must use the dedicated dark foreground. */
#report .recommendation-panel,
#report .recommendation-panel :where(.rec-label,h3,p,.recommendation-proof b,.impact-meter span,.impact-meter strong,.impact-meter small) {
  color:var(--on-accent)!important;
}
#report .recommendation-panel .impact-tag {
  color:var(--lime)!important;
  background:#090a0b!important;
}
#report .recommendation-panel .meter i { background:var(--on-accent)!important; }
#report .query-status.direct_page_answer {
  color:var(--on-accent)!important;
  border-color:var(--on-accent)!important;
  background:var(--lime)!important;
}
#report .badge.impact-high {
  color:var(--lime)!important;
  border-color:var(--lime)!important;
  background:#090a0b!important;
}
#report .badge.impact-medium {
  color:var(--on-accent)!important;
  border-color:var(--lime-soft)!important;
  background:var(--lime-soft)!important;
}
#report .badge.effort-low {
  color:var(--on-accent)!important;
  border-color:var(--lime)!important;
  background:var(--lime)!important;
}
/* The first keystone chip is a priority tier rather than an impact badge. */
#report #aeoKeystoneBlock .t-critical .rec-badges .badge:first-child {
  color:var(--critical)!important;
  border-color:var(--critical)!important;
  background:var(--critical-bg)!important;
}
#report #aeoKeystoneBlock .t-high .rec-badges .badge:first-child {
  color:var(--warning)!important;
  border-color:var(--warning)!important;
  background:var(--warning-bg)!important;
}
#report #aeoKeystoneBlock .t-quickwin .rec-badges .badge:first-child {
  color:var(--positive)!important;
  border-color:var(--positive)!important;
  background:var(--positive-bg)!important;
}
#report :where(.lock-badge,.score-delta.up,.cbar-tag,mark.brand-hl-you) {
  color:var(--on-accent)!important;
}
/* Fix-kit and edge-patch panels are code deliverables inside the dark report,
   not legacy light marketing cards. Keep the code surface dark and reserve
   the full lime fill for the selected tab and copy action. */
#report .fixkit-block {
  color:var(--ink)!important;
  border:1px solid var(--line)!important;
  background:#101213!important;
}
#report .fixkit-intro { color:var(--olive)!important; }
#report .fixkit-tabs button {
  color:var(--olive)!important;
  border-color:var(--line)!important;
  background:#090a0b!important;
}
#report .fixkit-tabs button:hover {
  color:var(--lime)!important;
  border-color:var(--lime)!important;
}
#report .fixkit-tabs button.active {
  color:var(--on-accent)!important;
  border-color:var(--lime)!important;
  background:var(--lime)!important;
}
#report .fixkit-code {
  color:var(--ink)!important;
  border-color:var(--line)!important;
  background:#090a0b!important;
}

dialog::backdrop { background:rgba(3,5,5,.78)!important; backdrop-filter:blur(5px)!important; }
dialog { max-width:calc(100vw - 28px); max-height:calc(100vh - 28px); border:0; padding:0; background:transparent; }
.dialog-card { max-height:calc(100vh - 28px); overflow:auto; color:var(--ink)!important; background:#101213!important; border:1px solid var(--line)!important; box-shadow:10px 10px 0 rgba(215,255,69,.34)!important; }
/* The credit bundle picker is intentionally wider than the generic form
   dialog.  Give that width to the dialog viewport itself; putting it only on
   the child card makes the card overflow the browser's 520px dialog box and
   clips the purchase choices off-screen. */
#trialDialog {
  width:min(860px,calc(100vw - 32px));
  max-width:calc(100vw - 32px);
  margin:auto;
}
#trialDialog .trial-dialog-card {
  width:100%;
  min-width:0;
  max-width:100%;
  overflow-x:hidden;
  padding:clamp(24px,4vw,45px);
}
.dialog-card h2 { color:var(--ink)!important; }
.dialog-card p,.dialog-card > small,.account-dialog-card > p { color:rgba(244,243,238,.72)!important; }
.dialog-card label { color:var(--olive)!important; }
.dialog-card input,.dialog-card textarea { color:var(--ink)!important; background:#090a0b!important; border-color:var(--line)!important; }
.dialog-close { z-index:3; display:grid; place-items:center; width:38px; height:38px; padding:0; color:var(--ink)!important; border:1px solid var(--line)!important; background:#090a0b!important; line-height:1; }
.dialog-close:hover,.dialog-close:focus-visible { color:var(--on-accent)!important; border-color:var(--lime)!important; background:var(--lime)!important; outline:0; }

/* Account recovery must read as a short, focused task rather than inheriting
   the old light dialog's oversized vertical rhythm. */
#resetDialog .dialog-card,#recoveryDialog .dialog-card { width:min(520px,calc(100vw - 28px)); min-width:0!important; padding:32px!important; }
#resetDialog .dialog-card h2,#recoveryDialog .dialog-card h2 { margin:13px 0 8px!important; color:var(--ink)!important; font-size:clamp(27px,5vw,38px)!important; line-height:1.08!important; }
#resetDialog .dialog-card p,#recoveryDialog .dialog-card p { margin:0!important; color:rgba(244,243,238,.72)!important; font-size:18px!important; line-height:1.55!important; }
#resetDialog .dialog-card label,#recoveryDialog .dialog-card label { margin:19px 0 16px!important; }
#resetDialog .dialog-card input,#recoveryDialog .dialog-card input { height:52px!important; }
#resetDialog .dialog-card .button,#recoveryDialog .dialog-card .button { min-height:52px!important; }
#recoveryDialog .recovery-warning { margin:18px 0 10px!important; color:var(--lime)!important; }
#recoveryDialog .recovery-code { margin:10px 0 16px!important; color:var(--lime)!important; border-color:var(--line)!important; background:#090a0b!important; }
#recoveryDialog .forgot-link { margin-top:16px!important; color:var(--lime)!important; }

/* Account access is a dark product surface. The base marketing stylesheet
   predates the obsidian theme and left inactive tabs, provider buttons and
   recovery links with insufficient contrast inside this dialog. Keep an
   unavailable provider visibly unavailable; never make it look like a broken
   or invisible control. */
#accountDialog .account-dialog-card {
  width:min(560px,calc(100vw - 28px))!important;
  min-width:0!important;
  max-height:min(90vh,780px)!important;
  padding:clamp(24px,4vw,42px)!important;
  overflow:auto!important;
  background:#101312!important;
}
#accountDialog .account-dialog-card > p { color:rgba(246,244,237,.72)!important; }
#accountDialog .account-tabs {
  margin:22px 0!important;
  border:1px solid #3a413c!important;
  background:#090b0a!important;
}
#accountDialog .account-tabs button {
  min-width:0!important;
  min-height:52px!important;
  color:#c9cec5!important;
  background:#090b0a!important;
  border:0!important;
  font-weight:700!important;
}
#accountDialog .account-tabs button + button { border-left:1px solid #3a413c!important; }
#accountDialog .account-tabs button.active {
  color:#090b0a!important;
  background:var(--lime)!important;
}
#accountDialog .oauth-options { gap:10px!important; margin-bottom:18px!important; }
#accountDialog .oauth-button {
  min-height:54px!important;
  color:#f6f4ed!important;
  background:#141916!important;
  border:1px solid #586257!important;
  opacity:1!important;
}
#accountDialog .oauth-button:not(:disabled):hover { border-color:var(--lime)!important; background:#1a211c!important; }
#accountDialog .oauth-button:disabled {
  color:#aeb5aa!important;
  background:#151a17!important;
  border-color:#39423b!important;
  opacity:1!important;
  cursor:not-allowed!important;
}
#accountDialog .oauth-button:disabled .oauth-mark { opacity:.72; }
#accountDialog .oauth-status { color:#b8c0b5!important; }
#accountDialog .oauth-divider { color:#b8c0b5!important; }
#accountDialog .oauth-divider::before,#accountDialog .oauth-divider::after { background:#3a413c!important; }
#accountDialog .forgot-link { color:var(--lime)!important; opacity:1!important; }
#accountDialog .dialog-close { z-index:2; }
@media (max-width:560px) {
  #accountDialog .account-dialog-card { width:calc(100vw - 20px)!important; padding:24px!important; }
  #accountDialog .account-tabs button { font-size:18px!important; }
}

.price-card .pricing-trial-button { width:100%; margin-top:10px!important; color:var(--lime)!important; border-color:rgba(215,255,69,.6)!important; background:transparent!important; }
.price-card .pricing-trial-button:hover { color:var(--on-accent)!important; background:var(--lime)!important; }

@media (max-width:700px) {
  .engine-suite { padding-block:58px!important; }
  .engine-suite-grid { grid-template-columns:1fr!important; gap:12px!important; }
  .engine-group { padding:17px; }
  .method-engine .engine-canvas { min-height:0!important; grid-template-columns:1fr!important; gap:28px!important; padding:34px 20px!important; }
  .method-engine .evidence-pool { order:-1; }
  .method-engine .engine-flow { display:none; }
  .method-engine .engine-output { grid-template-columns:repeat(2,1fr)!important; }
  #resetDialog .dialog-card,#recoveryDialog .dialog-card { padding:24px!important; }
}

/* Customer-facing readability floor.
 *
 * Dashboard views historically mixed 7–13px console labels with ordinary
 * copy.  Keep the compact visual language through spacing and weight, not by
 * making evidence, provenance, controls, or navigation difficult to read.
 * This rule intentionally sits after the legacy component rules so their
 * hard-coded micro sizes cannot silently reappear. */
body.in-app :where(
  .site-header,
  .hub-nav,
  .hub-view-head,
  .hub-view,
  .hub-drawer,
  .dialog-card,
  [role="dialog"]
) :where(
  p,
  small,
  label,
  dt,
  dd,
  th,
  td,
  button,
  input,
  select,
  textarea,
  summary,
  code,
  pre,
  a,
  li
) {
  font-size:var(--text-floor)!important;
  line-height:1.55;
}
body.in-app :where(
  .site-header,
  .hub-nav,
  .hub-view-head,
  .hub-view,
  .hub-drawer,
  .dialog-card,
  [role="dialog"]
) :where(
  .eyebrow,
  .section-kicker,
  .hub-view-kicker,
  .hub-note,
  .evidence-chip,
  .status-chip,
  [class*="-kicker"],
  [class*="-caption"],
  [class*="-label"],
  [class*="-meta"],
  [class*="-status"],
  [class*="-badge"],
  [class*="-chip"]
) {
  font-size:var(--text-floor)!important;
  line-height:1.5;
}
body.in-app .hub-nav-item > span,
body.in-app .hub-brand-text strong,
body.in-app .hub-status-card strong,
body.in-app .hub-analysis-progress > header span,
body.in-app #accountEmailLabel,
body.in-app #accountPlanBadge,
body.in-app .hub-credit-ledger strong,
body.in-app .hub-capacity-state span,
body.in-app .hub-capacity-invariant strong,
body.in-app .hub-capacity-invariant span,
body.in-app .hub-admin-grid strong,
body.in-app .hub-admin-access strong {
  font-size:var(--text-floor)!important;
}

/* Shared panel hierarchy and form controls used by the sparse data surfaces. */
body.in-app .hub-card,body.in-app .cmp-input,body.in-app .cmp-ledger,body.in-app .crw-card,body.in-app .act-card,
body.in-app .dash-checklist,body.in-app .dash-group { background:#101213!important; border-color:var(--line)!important; border-radius:6px!important; box-shadow:none!important; }
body.in-app input,body.in-app textarea,body.in-app select,
body.in-app .cmp-field input { color:var(--ink)!important; background:#0b0d0e!important; border-color:var(--line)!important; box-shadow:none!important; }
body.in-app input::placeholder,body.in-app textarea::placeholder { color:#7b7e78!important; opacity:1; }
body.in-app .hub-intake-body { background:#101213!important; border-color:var(--line)!important; }
body.in-app .hub-intake-modes { gap:7px!important; }
body.in-app .hub-mode { min-height:42px; padding:8px 12px!important; color:var(--olive)!important; background:#0b0d0e!important; border:1px solid var(--line)!important; }
body.in-app .hub-mode.is-active { color:var(--ink)!important; background:rgba(215,255,69,.09)!important; border-color:var(--lime)!important; }
body.in-app .cmp-kpis,body.in-app .cmp-ledger,body.in-app .cmp-table,body.in-app .crw-table { background:#101213!important; border-color:var(--line)!important; }
body.in-app .cmp-table th,body.in-app .cmp-table td,body.in-app .crw-table th,body.in-app .crw-table td { color:var(--ink)!important; border-color:var(--line-soft)!important; }
body.in-app .cmp-table th,body.in-app .crw-table th { color:var(--olive)!important; background:#0b0d0e!important; }
body.in-app .act-plan,.hub-card.act-plan,.hub-card.act-queue,.hub-card.act-method { min-height:0!important; }
body.in-app .act-plan-inner { gap:20px 26px!important; }
body.in-app .act-rail { padding-left:20px!important; }

@media (max-width:700px) {
  body.in-app .site-header { height:58px; min-height:58px; padding-inline:14px; gap:9px; }
  body.in-app .site-header .brand { gap:7px; font-size:18px; }
  body.in-app .site-header .brand-mark { width:25px; height:25px; }
  body.in-app .site-header .header-actions { gap:6px; }
  body.in-app .site-header #accountEmailLabel,body.in-app .site-header #accountPlanBadge { display:none!important; }
  body.in-app .site-header .account-menu { max-width:none; }
  body.in-app .site-header .account-trigger { width:34px; min-width:34px; padding:0; justify-content:center; }
  body.in-app .site-header .header-cta { display:inline-flex!important; min-height:34px; padding:0 9px!important; font-size:18px; }
  body.in-app .site-header .header-trial-prefix { display:none; }
  body.in-app .hub-shell { min-height:calc(100vh - 58px); }
  body.in-app .hub-nav { top:58px; height:calc(100vh - 58px); }
  body.in-app .hub-nav-scrim { inset-block-start:58px; }
  body.in-app .hub-view-head { padding:12px 16px; }
  body.in-app .hub-drawer { width:calc(100vw - 20px); right:10px; top:10px; max-height:calc(100vh - 20px); }
  body.in-app .hub-admin-grid { grid-template-columns:1fr; }
  body.in-app .hub-capacity-state,body.in-app .hub-budget-form { grid-template-columns:1fr; }
  body.in-app .hub-capacity-state > div { border-right:0; border-bottom:1px solid var(--line); }
  body.in-app .hub-capacity-state > div:last-child { border-bottom:0; }
  body.in-app .hub-budget-form .button { grid-column:1; width:100%; }
  body.in-app .hub-credit-ledger > div { grid-template-columns:minmax(70px,.6fr) minmax(70px,.6fr) minmax(0,1fr); padding-inline:9px; }
  body.in-app .hub-credit-ledger > div small { overflow-wrap:anywhere; }
  body.in-app .hub-pager-link { min-width:0; max-width:48%; }
}

/* Public marketing components pre-date the obsidian token palette.  Their
 * semantic surfaces must be explicit: the app intentionally inverts the
 * generic white/ink tokens, whereas a public lime or paper card needs a
 * predictable, high-contrast foreground. */
.feature-card { color:#f4f3ee!important; border-color:rgba(244,243,238,.18)!important; }
.feature-card.feature-dark { background:#101312!important; color:#f4f3ee!important; }
.feature-card.feature-dark p { color:rgba(244,243,238,.74)!important; opacity:1!important; }
.feature-card.feature-lime { background:#d7ff45!important; border-color:#d7ff45!important; color:#0a0b0c!important; }
.feature-card.feature-lime h3,.feature-card.feature-lime p,.feature-card.feature-lime span { color:#0a0b0c!important; }
.feature-card.feature-lime p { opacity:.72!important; }
.feature-card.feature-lime .verify-visual,.feature-card.feature-lime .verify-visual span { border-color:rgba(10,11,12,.34)!important; }
.feature-card.feature-cream { background:#f4f3ee!important; border-color:#f4f3ee!important; color:#101312!important; }
.feature-card.feature-cream h3,.feature-card.feature-cream p,.feature-card.feature-cream span { color:#101312!important; }
.feature-card.feature-cream p { opacity:.7!important; }
.feature-card.feature-cream .delta-visual i { background:#101312!important; }
.feature-card.feature-cream .delta-visual i:last-child { background:#d7ff45!important; border-color:#101312!important; }

.pricing-section { background:#090a0b!important; color:#f4f3ee!important; }
.price-card { background:#101312!important; border-color:rgba(244,243,238,.18)!important; color:#f4f3ee!important; }
.price-card > div > p,.price-card .price small,.price-card .coming-soon { color:#b9c0b5!important; opacity:1!important; }
.price-card li { border-color:rgba(244,243,238,.16)!important; }
.price-card .button-outline { color:#f4f3ee!important; border-color:rgba(244,243,238,.68)!important; }
.price-card.pro-card { background:#d7ff45!important; border-color:#d7ff45!important; color:#0a0b0c!important; }
.price-card.pro-card h2,.price-card.pro-card h3,.price-card.pro-card p,.price-card.pro-card li,.price-card.pro-card .price,.price-card.pro-card .price small,.price-card.pro-card .coming-soon { color:#0a0b0c!important; }
.price-card.pro-card li { border-color:rgba(10,11,12,.18)!important; }
.price-card.pro-card .button-dark { background:#0a0b0c!important; border-color:#0a0b0c!important; color:#f4f3ee!important; }
.price-card.pro-card .pricing-trial-button { color:var(--on-accent)!important; border-color:var(--on-accent)!important; }
.price-card.pro-card .pricing-trial-button:hover { color:var(--on-accent)!important; background:var(--lime-soft)!important; }
.price-card.enterprise-card { background:#f4f3ee!important; border-color:#f4f3ee!important; color:#101312!important; }
.price-card.enterprise-card h2,.price-card.enterprise-card h3,.price-card.enterprise-card p,.price-card.enterprise-card li,.price-card.enterprise-card .price,.price-card.enterprise-card .price small,.price-card.enterprise-card .coming-soon { color:#101312!important; }
.price-card.enterprise-card > div > p,.price-card.enterprise-card .price small,.price-card.enterprise-card .coming-soon { color:rgba(16,19,18,.7)!important; }
.price-card.enterprise-card li { border-color:rgba(16,19,18,.14)!important; }
.price-card.enterprise-card .button-outline { color:#101312!important; border-color:#101312!important; }
.price-card .whitelabel-doc { background:#101312!important; border-color:#101312!important; color:#f4f3ee!important; box-shadow:5px 5px 0 rgba(30,50,105,.78)!important; }
.price-card .whitelabel-doc footer { color:rgba(244,243,238,.62)!important; }
.price-card.pro-card .whitelabel-caption { color:rgba(10,11,12,.7)!important; }

@media (max-width:700px) {
  .feature-card { min-height:410px!important; }
  .pricing-grid-tiers .price-card { min-height:auto!important; }
}

/* Human-scale workspace foundation.
   View modules are loaded after this stylesheet, so the minimums are explicit
   and important: no dashboard can silently reintroduce console-sized copy.
   Dense layouts must use scrolling, responsive stacking or progressive
   disclosure instead of shrinking evidence below reading size. */
body.in-app {
  --hub-body-text:var(--text-body,20px);
  --hub-metadata-text:var(--text-metadata,18px);
  --hub-card-title:var(--text-card-title,24px);
  --hub-kpi-text:clamp(32px,3.2vw,var(--text-kpi,40px));
  --hub-control-target:var(--control-target,44px);
  font-size:var(--hub-body-text);
  line-height:1.65;
}
body.in-app .hub-view {
  font-size:var(--hub-body-text)!important;
  line-height:1.65;
}
body.in-app :where(.hub-view,.hub-view-head,.hub-drawer,[role="dialog"]) :where(
  p,dd,th,td,li,blockquote,a,button,input,select,textarea,summary,code,pre
) {
  font-size:var(--hub-body-text)!important;
  line-height:1.65;
}
body.in-app .hub-view :where(table,tbody) { font-size:var(--hub-body-text)!important; }
/* Table cells often wrap their primary value in a strong, b, link or plain
   span. Those children must inherit the 20px cell size instead of reviving a
   legacy 18px declaration from an individual view. Named metadata remains on
   the 18px tier through the later metadata rule. */
body.in-app .hub-view :where(th,td) :where(strong,b,a,code,span:not([class])) {
  font-size:inherit!important;
  line-height:inherit;
}
body.in-app .hub-view :where(small,dt,caption) {
  font-size:var(--hub-metadata-text)!important;
  line-height:1.5;
}
body.in-app :where(.hub-nav,.hub-view-head,.hub-drawer) :where(small,dt,[class*="-meta"],[class*="-label"],[class*="-badge"],[class*="-chip"],[class*="-status"]) {
  font-size:var(--hub-metadata-text)!important;
  line-height:1.5;
}

/* Monospace uppercase is a scanning aid for compact labels, never a prose
   treatment. Findings, evidence, table values and action steps remain sans. */
body.in-app .hub-view :where(p,dd,td,li,blockquote) {
  font-family:var(--sans)!important;
  letter-spacing:normal!important;
  text-transform:none!important;
}
body.in-app .hub-view :where(h1,h2,h3,h4) {
  font-family:var(--display)!important;
  line-height:1.2;
}

/* Consistent card and number hierarchy across independently loaded views. */
body.in-app .hub-view :where(.hub-card,.panel,.pa-panel,.as-card,.seo-section,.tel-card,.act-card) :where(h3,h4),
body.in-app .hub-view :where(.panel-title,.pa-panel-head) :where(h2,h3,h4,strong) {
  font-size:clamp(22px,1.55vw,var(--hub-card-title))!important;
  line-height:1.3;
}
body.in-app .hub-view :where(.hub-card,.panel,[class$="-card"],[class*="-card "]) > :where(h2,h3,h4),
body.in-app .hub-view :where(.hub-card,.panel,[class$="-card"],[class*="-card "]) > :where(header,.panel-title) :where(h2,h3,h4,strong) {
  font-size:clamp(22px,1.55vw,var(--hub-card-title))!important;
  line-height:1.3;
}
body.in-app .hub-view :where(.as-card,.seo-section,.tel-card) > header :where(h2,h3,h4) {
  font-size:var(--hub-card-title)!important;
  line-height:1.25;
}
body.in-app .hub-view :where(.hub-kpi,.as-kpi,.cmp-kpi,.tel-kpi,.seo-metric,.seo-hero-score) > :where(strong,b),
body.in-app .hub-view .act-vkpis > * > b,
body.in-app .hub-view :where([class$="-kpi"],[class*="-kpi "],[class$="-stat"],[class*="-stat "]) > :where(strong,b) {
  font-size:var(--hub-kpi-text)!important;
  line-height:1.05;
  font-variant-numeric:tabular-nums;
}

/* Saved crawl reports render beside, rather than inside, .hub-view. Apply the
   same human-scale hierarchy so the A–Z customer journey never falls back to
   the old console typography after opening a report. */
body.in-app #report {
  font-size:var(--hub-body-text)!important;
  line-height:1.65;
}
body.in-app #report :where(p,dd,td,li,blockquote,a,button,input,select,textarea,summary,code,pre) {
  font-size:var(--hub-body-text)!important;
  line-height:1.65;
}
body.in-app #report :where(th,td) :where(strong,b,a,code,span:not([class])) {
  font-size:inherit!important;
  line-height:inherit;
}
body.in-app #report :where(small,dt,th,caption,.section-kicker,.rec-label,.panel-title,.report-nav,.evidence-legend,[class*="-badge"],[class*="-chip"],[class*="-status"],[class*="-meta"]) {
  font-size:var(--hub-metadata-text)!important;
  line-height:1.5;
}
body.in-app #report :where(h2) {
  font-size:clamp(34px,3.6vw,52px)!important;
  line-height:1.12;
}
body.in-app #report :where(h3,h4),
body.in-app #report :where(.report-panel,.detail-grid article,.fixkit-block,.rag-block,.consensus-block,.entity-block) > :where(header,.panel-title) :where(strong,h2,h3,h4) {
  font-size:clamp(24px,2.1vw,32px)!important;
  line-height:1.25;
}
body.in-app #report :where(.model-name,.evidence-row,.query-copy,.crawler-row,.detail-row,.recommendation-detail,.provider-audit-row) :where(strong,b) {
  font-size:var(--hub-body-text)!important;
  line-height:1.45;
}
body.in-app #report .metric > strong {
  font-size:var(--hub-kpi-text)!important;
  line-height:1.05;
  font-variant-numeric:tabular-nums;
}

/* Every actionable control has a WCAG-sized target without inflating passive
   citation links or body-copy links. */
body.in-app :where(
  button,.button,[role="button"],summary,.hub-nav-item,.hub-pager-link,
  input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),select,textarea
) { min-height:var(--hub-control-target)!important; }
body.in-app :where(.hub-drawer-close,.hub-nav-toggle,.pa-matrix-cell,.as-cell) {
  min-width:var(--hub-control-target)!important;
  min-height:var(--hub-control-target)!important;
}

/* The decision question is the dashboard's plain-language help text. */
body.in-app .hub-view-question {
  display:block!important;
  max-width:72ch;
  margin:8px 0 0;
  color:var(--olive);
  font:500 var(--hub-body-text)/1.55 var(--sans)!important;
  letter-spacing:normal;
  text-transform:none;
}
body.in-app .hub-view-heading h1 {
  font-size:clamp(28px,2.4vw,36px)!important;
  line-height:1.1;
}
body.in-app .hub-nav-group { margin-bottom:20px; }
body.in-app .hub-nav-group h2 {
  padding:10px 12px 8px;
  color:var(--olive);
  font-size:var(--hub-metadata-text)!important;
  line-height:1.35;
}
body.in-app .hub-nav-group.is-current h2 { color:var(--lime); }
body.in-app .hub-nav-item {
  min-height:var(--hub-control-target);
  padding:11px 10px;
}
body.in-app .hub-nav-item > i {
  width:18px;
  color:var(--olive);
  font-size:20px;
  line-height:1.2;
}
body.in-app .hub-nav-item > span { font-size:20px!important; line-height:1.35; }
body.in-app .hub-nav-item small { font-size:var(--hub-metadata-text)!important; line-height:1.45; }
body.in-app .hub-pager-link strong { font-size:20px!important; line-height:1.35; }

@media (min-width:1101px) {
  body.in-app .hub-shell { grid-template-columns:350px minmax(0,1fr); }
}
@media (max-width:700px) {
  body.in-app .hub-view-heading h1 { font-size:28px!important; }
  body.in-app .hub-view-question { font-size:20px!important; }
  body.in-app .hub-pager { display:grid; grid-template-columns:1fr; }
  body.in-app .hub-pager > span { display:none; }
  body.in-app .hub-pager-link { width:100%; max-width:none; }
}
