/* ════════════════════════════════════════════════════════════════════════════
   "Ettevõtluse Ringtee" — production stylesheet  ·  v2 (editorial-financial)
   ────────────────────────────────────────────────────────────────────────────
   One hand-written file for the FastAPI + Jinja + htmx app. A deliberate
   elevation of the original blue-glass skin into a calm, financial-grade
   broadsheet: warm newsprint paper, espresso ink, ONE confident orange, serif
   headlines + Nordic grotesque UI + mono labels, hairlines over shadows,
   tabular numerals everywhere money appears.

   Class API is backward-compatible with the existing templates — drop-in.
   Generated from the Ringtee Design System (see styles.css / tokens/).
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Fonts (self-hosted; see web/static/fonts/, fall back to Inter) ───────── */
@font-face { font-family:'Spectral'; font-style:normal; font-weight:400; font-display:swap; src:url('/static/fonts/Spectral-Regular.woff2') format('woff2'); }
@font-face { font-family:'Spectral'; font-style:normal; font-weight:600; font-display:swap; src:url('/static/fonts/Spectral-SemiBold.woff2') format('woff2'); }
@font-face { font-family:'Spectral'; font-style:italic; font-weight:400; font-display:swap; src:url('/static/fonts/Spectral-Italic.woff2') format('woff2'); }
@font-face { font-family:'Schibsted Grotesk'; font-style:normal; font-weight:400 800; font-display:swap; src:url('/static/fonts/SchibstedGrotesk.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap; src:url('/static/fonts/IBMPlexMono-Regular.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:500; font-display:swap; src:url('/static/fonts/IBMPlexMono-Medium.woff2') format('woff2'); }

:root {
  /* paper / ink */
  --paper-0:#fff; --paper-50:#fbf8f3; --paper-100:#f4efe6; --paper-200:#ece5d8;
  --ink-900:#1c1813; --ink-700:#34302a; --ink-500:#5c554c; --ink-400:#6f675c; --ink-300:#a89e90;
  --line-strong:#d9cfbf; --line:#e7ded0; --line-soft:#f0e9dd;
  /* orange */
  --orange-700:#a82c0a; --orange-600:#c5350d; --orange-500:#ed4413; --orange:#ff4a15; --orange-300:#ff7a4d; --orange-100:#ffe9e0; --orange-50:#fff4ef;
  /* pine (lounge) */
  --pine-700:#1f4338; --pine-500:#2f6b54; --pine-100:#e4efe9;
  /* signals */
  --green-600:#2f6b4a; --green-100:#e6efe7; --amber-600:#8a5d10; --amber-100:#f6ecd8; --red-600:#b4321f; --red-100:#f7e3de;

  /* semantic */
  --bg:var(--paper-50); --surface:var(--paper-0); --surface-sunken:var(--paper-100);
  --bg-gradient-start:#fdfbf7; --topbar-bg:rgba(251,248,243,.97);
  --button-primary-shadow:0 1px 1px rgba(28,24,19,.1); --button-primary-highlight:inset 0 1px 0 rgba(255,255,255,.16);
  --pine-wash:#eef4f1;
  --ink:var(--ink-900); --ink-soft:var(--ink-700); --muted:var(--ink-400); --faint:var(--ink-300);
  --border:var(--line); --border-strong:var(--line-strong); --border-soft:var(--line-soft);
  --accent:var(--orange); --accent-ink:var(--orange-600); --accent-strong:var(--orange-600); --accent-strong-press:var(--orange-700); --accent-press:var(--orange-500); --accent-soft:var(--orange-100); --accent-wash:var(--orange-50);
  --navy:var(--ink-700);
  --success:var(--green-600); --success-soft:var(--green-100);
  --warn:var(--amber-600); --warn-soft:var(--amber-100);
  --danger:var(--red-600); --danger-soft:var(--red-100);

  --font-display:'Spectral', Inter, Georgia, 'Times New Roman', serif;
  --font-sans:'Schibsted Grotesk', Inter, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono:'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  --num:'tnum' 1, 'lnum' 1;

  --shadow-xs:0 1px 1px rgba(28,24,19,.04);
  --shadow-sm:0 1px 2px rgba(28,24,19,.05),0 1px 1px rgba(28,24,19,.04);
  --shadow-md:0 2px 6px rgba(28,24,19,.05),0 6px 16px rgba(28,24,19,.05);
  --shadow-lg:0 4px 10px rgba(28,24,19,.06),0 18px 40px rgba(28,24,19,.08);

  --radius-xs:3px; --radius-sm:5px; --radius-md:8px; --radius-lg:12px; --radius-xl:16px; --radius-pill:999px;
  --ease:cubic-bezier(.2,.6,.2,1); --dur:170ms;
  --max:1120px; --max-narrow:640px;
}

/* ── Base ─────────────────────────────────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; }
[hidden] { display:none !important; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  margin:0; font-family:var(--font-sans); font-size:1rem; line-height:1.6; color:var(--ink);
  background-color:var(--bg);
  background-image:linear-gradient(180deg,var(--bg-gradient-start) 0,var(--paper-50) 240px);
  background-repeat:no-repeat; min-height:100vh;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
h1,h2,h3,h4 { font-family:var(--font-display); font-weight:600; color:var(--ink); letter-spacing:-.022em; line-height:1.12; margin:0 0 .4em; text-wrap:balance; }
h1 { font-size:clamp(1.9rem,1.5rem + 1.8vw,2.6rem); }
p { margin:0 0 1em; text-wrap:pretty; }
p:last-child { margin-bottom:0; }
a { color:var(--ink); text-decoration:underline; text-decoration-color:var(--accent); text-decoration-thickness:1.5px; text-underline-offset:2px; transition:color var(--dur) var(--ease),text-decoration-color var(--dur) var(--ease); }
a:hover { color:var(--accent-ink); text-decoration-color:var(--accent-ink); }
strong,b { font-weight:700; }
::selection { background:var(--accent-soft); color:var(--ink-900); }
:focus-visible { outline:none; box-shadow:0 0 0 3px var(--orange-100),0 0 0 1px var(--orange-500); border-radius:var(--radius-xs); }

.container { width:min(100% - 32px,var(--max)); margin-inline:auto; }
.container-narrow { --max:var(--max-narrow); }
main.container { padding-bottom:80px; }
section { padding:22px 0; }

.muted { color:var(--muted); }
.lead { font-size:1.12rem; color:var(--ink-soft); line-height:1.6; }
.sub,.why { font-size:.86rem; color:var(--muted); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.num { font-variant-numeric:tabular-nums lining-nums; font-feature-settings:var(--num); white-space:nowrap; }
.big { font-family:var(--font-display); font-size:clamp(2rem,1.4rem + 2.6vw,2.9rem); font-weight:600; letter-spacing:-.028em; margin:6px 0 2px; color:var(--ink); font-variant-numeric:tabular-nums lining-nums; }

/* ── Eyebrow — mono uppercase label ───────────────────────────────────────── */
.eyebrow {
  display:inline-block; font-family:var(--font-mono); font-size:.72rem; font-weight:500;
  letter-spacing:.12em; text-transform:uppercase; color:var(--accent-ink); background:none; padding:0; min-height:0;
}

/* ── Section heading ──────────────────────────────────────────────────────── */
.section-heading { margin:6px 0 18px; max-width:74ch; }
.section-heading h2 { margin:8px 0 0; font-size:clamp(1.4rem,1.2rem + 1.1vw,1.85rem); letter-spacing:-.022em; border:0; padding:0; text-transform:none; color:var(--ink); }
.section-heading p { margin:10px 0 0; color:var(--muted); line-height:1.6; }

/* ── Macro reading — deterministic ESI interpretation under the heading ──── */
.macro-reading { display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; margin:-6px 0 18px; color:var(--ink-soft); line-height:1.55; }

/* dense lab labels kept */
h2 { font-size:clamp(1.4rem,1.2rem + 1.1vw,1.8rem); }
h3 { font-size:1.05rem; letter-spacing:-.015em; color:var(--ink); margin:18px 0 8px; }

/* ── Topbar / brand ───────────────────────────────────────────────────────── */
.topbar { position:sticky; top:0; z-index:20; background:var(--topbar-bg); backdrop-filter:saturate(1.1); border-bottom:1px solid var(--border); }
.nav { min-height:70px; padding:11px 0; display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; }
.brand-row { display:flex; align-items:center; gap:13px; min-width:0; color:inherit; text-decoration:none; }
.brand-row:hover { color:inherit; text-decoration:none; }
.brand strong { display:block; font-family:var(--font-display); font-weight:600; font-size:1.12rem; letter-spacing:-.02em; color:var(--ink); }
.brand span { display:block; margin-top:3px; font-family:var(--font-mono); font-size:.62rem; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); }
.brand-mark {
  display:inline-flex; width:40px; height:40px; flex-shrink:0;
  background:url('/static/ringtee-mark.svg?v=20260623') center/contain no-repeat;
  text-indent:-9999px; overflow:hidden; white-space:nowrap; border-radius:0;
}
.nav-actions { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.nav-link { padding:8px 13px; border-radius:var(--radius-md); color:var(--ink-soft); font-size:.92rem; font-weight:600; background:transparent; border:1px solid transparent; text-decoration:none; transition:background var(--dur) var(--ease),color var(--dur) var(--ease); cursor:pointer; }
.nav-link:hover { background:var(--surface-sunken); color:var(--ink); text-decoration:none; }
.nav-link[aria-current="page"] { background:var(--surface-sunken); color:var(--ink); border-color:var(--border); }
.nav-link.accent { color:var(--paper-0); background:var(--accent-strong); border-color:transparent; }
.nav-link.accent:hover { background:var(--accent-strong-press); color:var(--paper-0); }
.nav-greeting { padding:8px 12px; color:var(--muted); font-size:.9rem; font-weight:600; }
.nav-actions form { margin:0; display:inline-flex; }
.nav-actions button.nav-link { font:inherit; font-weight:600; }
.nav-select { padding:7px 9px; border:1px solid var(--border); border-radius:var(--radius-md); font:inherit; font-size:.88rem; font-weight:600; color:var(--ink-soft); background:var(--surface); cursor:pointer; }
.nav-select:hover { border-color:var(--border-strong); }
.nav-select:focus { outline:0; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.locale-draft-note { background:var(--warn-soft); color:var(--ink-soft); text-align:center; font-size:.84rem; font-weight:600; padding:6px 14px; border-bottom:1px solid var(--border); }
/* Impersonation ("Testi rollina X") — a deliberately loud accent strip so the admin
   always knows they are acting as another role, with a one-click exit. */
.impersonation-banner { background:var(--accent-strong); color:var(--paper-0); border-bottom:1px solid var(--accent-strong-press); }
.impersonation-row { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding-top:8px; padding-bottom:8px; }
.impersonation-text { font-family:var(--font-mono); font-size:.82rem; font-weight:600; letter-spacing:.02em; }
.impersonation-banner .btn-primary { background:var(--paper-0); color:var(--accent-ink); box-shadow:none; }
.impersonation-banner .btn-primary:hover { background:var(--paper-50); color:var(--accent-ink); }
.legal-locale-note { max-width:var(--measure, 70ch); margin:14px auto 0; padding:9px 14px; background:var(--warn-soft); border:1px solid var(--border); border-radius:var(--radius-md); color:var(--ink-soft); font-size:.88rem; }

/* ── Panel ────────────────────────────────────────────────────────────────── */
.panel { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-xs); padding:24px; }
.panel.tight { padding:18px 20px; }
.capital-disclaimer-section { padding-top:12px; padding-bottom:28px; }
.capital-disclaimer { color:var(--muted); font-size:.86rem; line-height:1.55; }
.capital-disclaimer p { margin:0; max-width:92ch; }

/* ── Buttons — editorial rounded rectangles ───────────────────────────────── */
.btn,button.btn { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:42px; padding:0 18px; border:1px solid transparent; border-radius:var(--radius-md); cursor:pointer; font:inherit; font-family:var(--font-sans); font-weight:600; letter-spacing:-.005em; text-decoration:none; transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),transform 110ms var(--ease); }
.btn:hover { text-decoration:none; }
.btn:active { transform:translateY(.5px); }
.btn-primary { color:var(--paper-0); background:var(--accent-strong); box-shadow:var(--button-primary-shadow),var(--button-primary-highlight); }
.btn-primary:hover { background:var(--accent-strong-press); color:var(--paper-0); }
.btn-secondary { color:var(--ink); background:var(--surface); border-color:var(--border-strong); }
.btn-secondary:hover { border-color:var(--ink-300); }
.btn-ghost { color:var(--ink-soft); background:transparent; border-color:var(--border); min-height:38px; padding:0 14px; font-size:.9rem; }
.btn-ghost:hover { background:var(--surface-sunken); color:var(--ink); }
.btn-danger { color:var(--danger); background:var(--surface); border-color:var(--danger-soft); }
.btn-danger:hover { background:var(--danger-soft); border-color:var(--danger); color:var(--danger); }
.btn:disabled,.btn[disabled],button.btn:disabled { opacity:.5; cursor:not-allowed; }
.btn:disabled:active,.btn[disabled]:active { transform:none; }

/* ── Auth buttons: neutral SSO chrome (official provider logos) + orange email CTA.
   Provider brand colour lives ONLY inside the self-hosted /static/auth/*.svg marks —
   the app chrome stays Ringtee-neutral, so the single orange accent is unbroken. */
.btn-sso { min-height:44px; }
.auth-logo { width:18px; height:18px; flex:0 0 18px; }

/* ── Chips (signals) ──────────────────────────────────────────────────────── */
.chip { display:inline-flex; align-items:center; gap:7px; padding:4px 11px; border-radius:var(--radius-pill); font-size:.8rem; font-weight:600; white-space:nowrap; }
.chip::before { content:""; width:7px; height:7px; border-radius:50%; background:currentColor; flex-shrink:0; }
.sig-green { color:var(--success); background:var(--success-soft); }
.sig-yellow,.sig-amber { color:var(--warn); background:var(--warn-soft); }
.sig-red { color:var(--danger); background:var(--danger-soft); }
.sig-none { color:var(--muted); background:var(--surface-sunken); }
.sig-accent { color:var(--accent-ink); background:var(--accent-soft); }

/* ── Tags & labels (descriptor badges) ──────────────────────────────────────
   Two axes (canonical, aligned with claude.ai Ringtee Design System 950d2854):
   .tag        = readable sans, sentence-case, radius-md — human content (skills, intents).
   .tag-code   = mono UPPERCASE micro, radius-sm — machine/enum values (kinds, scopes, codes).
   .tag-accent = accent flavor (auto-pine inside .lounge-ctx via the accent-soft/ink remap).
   .tag-sm     = compact, for short neutral values (e.g. "Versioon 1.2").
   Status signals (pill + dot) stay EXCLUSIVE to .chip; descriptors never get a dot.
   Modifier order matters: tag-accent after tag-code so it wins colour on combined tags.
   NB: tags WRAP (no white-space:nowrap) — readable content (lounge intents etc.) can be a
   long sentence and must not overflow on mobile / in longer locales (i18n layout robustness). */
.tag { display:inline-flex; align-items:center; gap:6px; font-size:.84rem; font-weight:500; line-height:1.2; padding:4px 10px; border-radius:var(--radius-md); background:var(--surface-sunken); color:var(--ink-soft); }
.tag-code { font-family:var(--font-mono); text-transform:uppercase; font-size:.64rem; letter-spacing:.1em; line-height:1; padding:4px 7px; border-radius:var(--radius-sm); color:var(--muted); }
.tag-accent { background:var(--accent-soft); color:var(--accent-ink); }
.tag-sm { font-size:.74rem; padding:3px 8px; }

/* ── Tables ───────────────────────────────────────────────────────────────── */
table { width:100%; border-collapse:collapse; font-size:.92rem; }
th,td { text-align:left; padding:10px; border-bottom:1px solid var(--border-soft); vertical-align:top; }
thead th,table > tr:first-child th { color:var(--muted); font-family:var(--font-mono); font-size:.66rem; text-transform:uppercase; letter-spacing:.06em; font-weight:500; border-bottom:1px solid var(--border); }
td.num,th.num { text-align:right; font-variant-numeric:tabular-nums lining-nums; }
tr:last-child td { border-bottom:0; }
.sector th,.sector td { text-align:right; font-variant-numeric:tabular-nums lining-nums; }
.sector th:first-child,.sector td:first-child { text-align:left; }
.sector .dir { font-weight:700; }
.sector .above { color:var(--success); }
.sector .below { color:var(--accent-ink); }
.sector .at { color:var(--muted); }

/* ── Owner hero ───────────────────────────────────────────────────────────── */
.value-hero { display:grid; gap:0; padding:0; overflow:hidden; }
.value-hero > .valuation-headline,
.value-hero > .valuation-cards,
.value-hero > .summary-callout { margin:0; }
.value-hero { grid-template-columns:1fr; }
.valuation-headline { padding:30px 32px; background:var(--surface); border:0; border-bottom:1px solid var(--border); border-radius:0; }
.valuation-headline .eyebrow { margin-bottom:12px; }
.valuation-headline .price { display:block; font-family:var(--font-display); font-weight:600; font-size:clamp(2.6rem,1.6rem + 3.4vw,3.6rem); letter-spacing:-.028em; line-height:1; color:var(--ink); font-variant-numeric:tabular-nums lining-nums; }
.valuation-headline .label { display:block; margin-top:12px; color:var(--ink-soft); font-size:.98rem; line-height:1.5; }
.valuation-headline .range-inline { color:var(--muted); font-weight:500; font-variant-numeric:tabular-nums lining-nums; }
.valuation-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; }

/* ── Väärtuse liikumine ──────────────────────────────────────────────────── */
@keyframes valueBoxReveal {
  from { opacity:0; transform:translateY(8px); }
  to { opacity:1; transform:translateY(0); }
}
.value-box { padding:18px 22px; background:var(--paper-100); border-right:1px solid var(--border); animation:valueBoxReveal var(--dur) var(--ease) both; }
.valuation-cards .value-box:nth-child(2) { animation-delay:calc(var(--dur) * .45); }
.valuation-cards .value-box:nth-child(3) { animation-delay:calc(var(--dur) * .9); }
.value-box:last-child { border-right:0; }
.value-box > span { display:block; font-family:var(--font-mono); font-size:.64rem; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); }
.value-box strong { display:block; margin-top:7px; font-family:var(--font-display); font-weight:600; font-size:1.45rem; letter-spacing:-.02em; color:var(--ink); font-variant-numeric:tabular-nums lining-nums; }
.value-box .vb-sub { margin-top:5px; font-size:.82rem; color:var(--muted); }
.summary-callout { margin:0; padding:16px 24px; background:var(--accent-wash); border-top:1px solid var(--accent-soft); color:var(--ink-soft); line-height:1.6; }

/* Owner decision hero — approved 7/5 hierarchy: answer first, evidence beside it. */
.owner-value-hero { grid-template-columns:minmax(0,7fr) minmax(0,5fr); grid-template-areas:"headline aside" "summary summary"; }
.owner-value-hero > .valuation-headline { grid-area:headline; border-bottom:0; }
.owner-hero-aside { grid-area:aside; min-width:0; border-left:1px solid var(--border); background:var(--paper-100); }
.owner-value-hero .valuation-cards { grid-template-columns:1fr; }
.owner-value-hero .value-box { padding:14px 20px; border-right:0; border-bottom:1px solid var(--border); background:transparent; }
.owner-value-hero .value-box:last-child { border-bottom:0; }
.owner-value-hero > .summary-callout { grid-area:summary; }
.owner-export-tools { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; padding:14px 20px; border-bottom:1px solid var(--border); background:var(--surface); }
.owner-export-tools > span:first-child { margin-right:auto; color:var(--muted); font-size:.82rem; }
.owner-export-tools .btn { min-height:36px; padding:7px 12px; }

/* The first supporting layer pairs the actions with the score behind them. */
.owner-decision-grid { display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:18px; }
.owner-decision-panel { min-width:0; }
.owner-decision-heading { margin:0 0 16px; padding-bottom:14px; border-bottom:1px solid var(--border-soft); }
.owner-decision-heading h2 { margin:0; font-size:1.35rem; }
.owner-decision-heading p { margin:6px 0 0; color:var(--muted); font-size:.9rem; line-height:1.5; }
.owner-decision-panel .bar-row { grid-template-columns:minmax(105px,140px) minmax(72px,1fr) auto; gap:10px; }

/* ── Factors / recommendations ────────────────────────────────────────────── */
.factor-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.factor-col h3 { margin:0 0 14px; font-size:1.05rem; letter-spacing:-.015em; color:var(--ink); }
.factor-list { list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.factor-list li { display:flex; gap:11px; align-items:flex-start; color:var(--ink-soft); line-height:1.5; }
.factor-list li::before { content:""; margin-top:7px; width:8px; height:8px; border-radius:2px; flex-shrink:0; }
.factor-up li::before { background:var(--success); }
.factor-down li::before { background:var(--accent); }
.factor-list li.neutral { color:var(--muted); }
.factor-list li.neutral::before { background:var(--border-strong); }

.reco-list { list-style:none; padding:0; margin:0; display:grid; gap:12px; counter-reset:r; }
.reco-list li { display:flex; gap:14px; align-items:flex-start; padding:14px 16px; border-radius:var(--radius-md); background:var(--paper-100); border:1px solid var(--border-soft); line-height:1.5; color:var(--ink-soft); }
.reco-list li::before { counter-increment:r; content:counter(r); display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; width:26px; height:26px; border-radius:var(--radius-pill); background:var(--accent-soft); color:var(--accent-ink); font-family:var(--font-mono); font-weight:600; font-size:.82rem; }

/* ── Bars ─────────────────────────────────────────────────────────────────── */
.bars { display:grid; gap:14px; }
.bar-row { display:grid; grid-template-columns:180px 1fr auto; gap:16px; align-items:center; }
.bar-row .name { color:var(--ink-soft); font-size:.92rem; }
.bar-row .val { color:var(--muted); font-size:.85rem; font-variant-numeric:tabular-nums lining-nums; min-width:54px; text-align:right; }
.bar,.bar-track { height:8px; border-radius:var(--radius-pill); background:var(--surface-sunken); overflow:hidden; border:1px solid var(--border-soft); }
.bar > span,.bar-fill { display:block; height:100%; border-radius:var(--radius-pill); background:var(--accent); transition:width 260ms var(--ease); }

.methods-line { color:var(--ink-soft); }
.foot-note { color:var(--muted); font-size:.88rem; line-height:1.6; }

/* ── Andmejälg: data-trail provenance row (source/model/date tags) ─────────── */
.data-trail-meta { display:flex; flex-wrap:wrap; gap:6px 18px; margin:0 0 16px; padding-bottom:14px; border-bottom:1px solid var(--border-soft); }

/* ── Radar (owner-report buyer-type profiles) — cards are .panel; supply the missing
   inner layout so the set isn't a glued slab + the band chip sits beside its title. */
.radar-cards { display:flex; flex-direction:column; gap:14px; }
.radar-card-header { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:8px; }
.radar-label { margin:0; font-size:1.05rem; }
.radar-blurb { color:var(--ink-soft); margin:0 0 10px; line-height:1.55; }
.why-list { list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.why-list li { color:var(--ink-soft); font-size:.92rem; line-height:1.5; }
.source-tag { color:var(--muted); font-family:var(--font-mono); font-size:.7rem; }

/* ── Expert lab ───────────────────────────────────────────────────────────── */
.context-meta { color:var(--muted); margin:4px 0 0; font-size:.92rem; }
.context-meta .chip { margin-right:2px; }
#levers table { font-size:.9rem; }
#levers input[type=number] { width:130px; padding:9px 11px; border:1px solid var(--border-strong); border-radius:var(--radius-md); font:inherit; font-variant-numeric:tabular-nums lining-nums; text-align:right; background:var(--surface); color:var(--ink); transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease); }
#levers input[type=number]:focus { outline:0; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
#levers select { padding:9px 11px; border:1px solid var(--border-strong); border-radius:var(--radius-md); font:inherit; background:var(--surface); color:var(--ink); }
#levers select:focus { outline:0; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
#levers button { background:var(--accent-strong); color:var(--paper-0); border:0; border-radius:var(--radius-md); padding:10px 16px; font:inherit; font-weight:600; cursor:pointer; transition:background var(--dur) var(--ease); }
#levers button:hover { background:var(--accent-strong-press); }
.card { border:1px solid var(--border); border-radius:var(--radius-md); padding:13px 16px; background:var(--surface); margin-bottom:9px; }
.card.diag { background:var(--surface-sunken); border-color:var(--border-strong); border-style:dashed; }
.ledger { background:var(--accent-wash); border:1px solid var(--accent-soft); border-radius:var(--radius-md); padding:11px 15px; margin:10px 0 4px; color:var(--ink-soft); font-size:.9rem; }
.ledger strong { color:var(--ink); }
.note { background:var(--paper-100); border:1px solid var(--border); border-radius:var(--radius-md); padding:12px 16px; margin:14px 0; font-size:.9rem; }
.note > summary { cursor:pointer; color:var(--ink-soft); font-weight:600; }
.note p { margin:10px 0 2px; color:var(--ink-soft); line-height:1.6; }
.note code { background:var(--surface); padding:0 5px; border-radius:4px; font-family:var(--font-mono); font-size:.85em; }
.admin-formula-trace { padding:16px 18px; }
.formula-step-list { display:grid; gap:10px; margin:10px 0 18px; }
.formula-step { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md); padding:0 14px; }
.formula-step > summary { display:flex; align-items:center; justify-content:space-between; gap:16px; cursor:pointer; padding:13px 0; color:var(--ink-soft); }
.formula-step > summary::marker { color:var(--accent); }
.formula-step > summary .num { flex:0 0 auto; color:var(--ink); }
.formula-pair { display:grid; grid-template-columns:1fr; gap:0; margin:10px 0 16px; padding:12px 14px; background:var(--surface-sunken); border:1px solid var(--border); border-radius:var(--radius-md); }
.formula-pair > div { min-width:0; }
.formula-pair > div + div { margin-top:10px; padding-top:11px; border-top:1px solid var(--border); }
.formula-label { display:block; margin-bottom:7px; color:var(--muted); font-family:var(--font-mono); font-size:.64rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.formula-line { margin:5px 0 !important; color:var(--ink-soft); font-family:var(--font-mono); font-size:.78rem; line-height:1.65 !important; overflow-wrap:anywhere; }
.formula-line strong { color:var(--ink); }
.formula-chain { display:flex; flex-wrap:wrap; align-items:flex-end; gap:7px; margin:8px 0 !important; color:var(--ink-soft); font-family:var(--font-mono); font-size:.8rem; line-height:1.45 !important; }
.formula-chain > span:not(.formula-term) { align-self:center; color:var(--muted); font-weight:600; }
.formula-term { display:inline-flex; flex-direction:column; gap:2px; max-width:100%; padding:6px 8px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-xs); }
.formula-term > span { color:var(--muted); font-family:var(--font-sans); font-size:.67rem; line-height:1.2; }
.formula-term > strong { color:var(--ink); font-size:.84rem; line-height:1.25; }
.formula-chain .formula-term:last-child { border-color:var(--accent); }
.formula-zero { margin:9px 0 3px !important; padding:9px 11px; background:var(--warn-soft); border-left:3px solid var(--warn); border-radius:var(--radius-xs); color:var(--ink-soft) !important; font-size:.82rem; line-height:1.5 !important; }
.formula-zero strong { color:var(--ink); }
.htmx-indicator { opacity:0; transition:opacity .15s; margin-left:10px; font-family:var(--font-mono); font-size:.8rem; color:var(--accent-ink); }
.htmx-request .htmx-indicator,.htmx-request.htmx-indicator { opacity:1; }
#result.htmx-swapping { opacity:.5; }

/* ── Form controls — editorial defaults ───────────────────────────────────────
   Bare inputs/textareas/selects inherit the system here; class-based controls
   (.search, .field-input, #levers input, .composer-area…) keep winning on
   specificity, so this only re-skins the otherwise-unstyled native controls. */
:where(input[type=text], input[type=email], input[type=search], input[type=url],
input[type=tel], input[type=password], input[type=date], input[type=datetime-local],
textarea, select) {
  font: inherit; font-family: var(--font-sans); font-size: .96rem;
  padding: 10px 13px; border: 1px solid var(--border-strong); border-radius: var(--radius-md);
  background: var(--surface); color: var(--ink); max-width: 100%;
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
:where(textarea) { resize: vertical; min-height: 80px; line-height: 1.5; }
:where(input, textarea, select):focus { outline: 0; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
:where(input[type=checkbox], input[type=radio]) { accent-color: var(--accent-strong); }

/* ── Search / typeahead ───────────────────────────────────────────────────── */
.search { width:100%; padding:14px 16px; border:1px solid var(--border-strong); border-radius:var(--radius-md); font:inherit; font-size:1rem; background:var(--surface); color:var(--ink); margin:4px 0 0; transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease); }
.search:focus { outline:0; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
/* Lookup search-bar — input grows beside the submit button; wraps cleanly on mobile. */
.lookup { display:flex; flex-wrap:wrap; gap:10px; align-items:stretch; }
.lookup .typeahead { flex:1 1 280px; }
.lookup .search { margin:0; }
/* Admin create-form row (rooms/events) — space the fields + submit, mirroring .lookup. */
.room-create { display:flex; flex-wrap:wrap; gap:10px; align-items:stretch; margin:12px 0 4px; }
.firm-link { font-weight:600; color:var(--ink); }
.firm-link:hover { color:var(--accent-ink); }
.typeahead { position:relative; }
.typeahead-results { position:absolute; left:0; right:0; top:calc(100% + 6px); z-index:30; }
.typeahead-results .ta-list { list-style:none; margin:0; padding:6px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md); box-shadow:var(--shadow-lg); }
.typeahead-results .ta-item { display:flex; flex-direction:column; align-items:flex-start; gap:2px; padding:10px 12px; border-radius:var(--radius-sm); color:var(--ink); }
.typeahead-results a.ta-item:hover { background:var(--accent-wash); text-decoration:none; }
.typeahead-results .ta-name { font-weight:600; }
.typeahead-results .ta-meta { color:var(--muted); font-size:.82rem; font-variant-numeric:tabular-nums lining-nums; font-family:var(--font-mono); }
.flash-error { background:var(--danger-soft); border-left:3px solid var(--danger); border-radius:var(--radius-sm); padding:14px 18px; margin:16px 0; color:var(--ink); line-height:1.55; }
.flash-error strong { color:var(--danger); }
.flash-success { background:var(--success-soft); border-left:3px solid var(--success); border-radius:var(--radius-sm); padding:14px 18px; margin:16px 0; color:var(--ink); line-height:1.55; }
.flash-success strong { color:var(--success); }

/* ── Owner tabs ───────────────────────────────────────────────────────────── */
.owner-tabs { margin-top:8px; }
.tab-bar { display:flex; align-items:flex-end; gap:24px; border-bottom:1px solid var(--border); margin-bottom:28px; }
.tab-btn { appearance:none; background:none; border:0; cursor:pointer; font:inherit; font-family:var(--font-sans); font-size:.96rem; font-weight:500; color:var(--muted); padding:0 0 12px; margin-bottom:-1px; border-bottom:2px solid transparent; transition:color var(--dur) var(--ease); }
.tab-btn:hover { color:var(--ink-soft); }
.tab-btn.tab-active { color:var(--ink); font-weight:700; border-bottom-color:var(--accent); }
.tab-panel:empty { display:none; }
.owner-tabs-note { margin:0 0 13px auto; color:var(--muted); font-size:.84rem; }

/* ── Landing: hero + stats ────────────────────────────────────────────────── */
.hero { padding:36px; overflow:hidden; position:relative; }
.hero h1 { font-size:clamp(2.2rem,1.5rem + 3vw,3.4rem); letter-spacing:-.026em; max-width:18ch; line-height:1.05; }
.hero .lead { margin:16px 0 0; max-width:56ch; }
.stat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:26px 0 6px; }
.stat-card { padding:18px 20px; border-radius:var(--radius-lg); background:var(--surface); border:1px solid var(--border); box-shadow:var(--shadow-xs); }
.stat-card .stat-num { display:block; font-family:var(--font-display); font-size:clamp(1.5rem,1.1rem + 1.4vw,2rem); font-weight:600; letter-spacing:-.022em; color:var(--ink); font-variant-numeric:tabular-nums lining-nums; }
.stat-card .stat-label { display:block; margin-top:4px; color:var(--muted); font-size:.84rem; line-height:1.4; }

/* barometer chart */
.chart-wrap { position:relative; margin-top:4px; padding:16px; border-radius:var(--radius-md); background:var(--paper-100); border:1px solid var(--border-soft); }
.chart-meta-line { display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:12px; color:var(--muted); font-size:.9rem; }
.chart-meta-copy { display:flex; align-items:baseline; gap:8px 14px; flex-wrap:wrap; }
.chart-meta-line strong { color:var(--ink); font-family:var(--font-display); font-size:1.05rem; font-weight:600; }
.chart-reference-key { display:inline-flex; align-items:center; gap:8px; font-size:.78rem; }
.chart-reference-key::before { content:""; width:22px; border-top:1px dashed var(--muted); }
.chart-svg { width:100%; height:auto; display:block; }
.chart-svg .line { fill:none; stroke:var(--accent); stroke-width:3; stroke-linejoin:round; stroke-linecap:round; }
.chart-svg .area { fill:var(--accent-soft); stroke:none; }
.chart-svg .chart-reference { stroke:var(--muted); stroke-width:1; stroke-dasharray:7 7; vector-effect:non-scaling-stroke; }
.chart-svg .chart-latest-dot { fill:var(--surface); stroke:var(--accent); stroke-width:4; vector-effect:non-scaling-stroke; }
.chart-axis-labels { display:flex; justify-content:space-between; gap:12px; margin-top:5px; color:var(--muted); font-family:var(--font-mono); font-size:.68rem; font-variant-numeric:tabular-nums lining-nums; }
.chart-axis-labels.is-single { justify-content:flex-end; }
.chart-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:14px; }
.stat-box { padding:14px 16px; border-radius:var(--radius-md); background:var(--surface); border:1px solid var(--border); }
.stat-box span { display:block; font-family:var(--font-mono); color:var(--muted); font-size:.62rem; text-transform:uppercase; letter-spacing:.08em; }
.stat-box strong { display:block; margin-top:6px; font-family:var(--font-display); font-size:1.28rem; font-weight:600; letter-spacing:-.02em; font-variant-numeric:tabular-nums lining-nums; }

.latest-strip { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin-top:18px; }
.latest-card { padding:15px; border-radius:var(--radius-md); background:var(--surface); border:1px solid var(--border); }
.latest-card .lc-name { display:block; font-size:.88rem; font-weight:600; color:var(--ink-soft); }
.latest-card .lc-val { display:block; margin-top:8px; font-family:var(--font-display); font-size:1.3rem; font-weight:600; letter-spacing:-.02em; font-variant-numeric:tabular-nums lining-nums; }
.delta { display:inline-flex; align-items:center; gap:4px; margin-top:10px; padding:3px 9px; border-radius:var(--radius-pill); font-size:.78rem; font-weight:600; font-variant-numeric:tabular-nums lining-nums; }
.delta.up { background:var(--success-soft); color:var(--success); }
.delta.down { background:var(--danger-soft); color:var(--danger); }
.delta.flat { background:var(--surface-sunken); color:var(--ink-soft); }

/* sector grid */
.sector-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:14px; }
.sector-card { padding:18px 20px; border-radius:var(--radius-lg); background:var(--surface); border:1px solid var(--border); box-shadow:var(--shadow-xs); }
.sector-card .sc-top { display:flex; align-items:baseline; justify-content:space-between; gap:8px; }
.sector-card .sc-name { font-family:var(--font-display); font-weight:600; font-size:1.02rem; letter-spacing:-.015em; }
.sector-card .sc-count { color:var(--muted); font-size:.8rem; font-variant-numeric:tabular-nums lining-nums; }
.sector-card .sc-rows { margin-top:12px; display:grid; gap:7px; }
.sector-card .sc-row { display:flex; align-items:baseline; justify-content:space-between; gap:10px; font-size:.9rem; }
.sector-card .sc-row span { color:var(--muted); }
.sector-card .sc-row strong { font-variant-numeric:tabular-nums lining-nums; letter-spacing:-.01em; color:var(--ink); }
.sector-card .sc-leader { align-items:flex-start; flex-direction:column; gap:3px; margin-top:4px; padding-top:9px; border-top:1px solid var(--border-soft); color:var(--ink); text-decoration:none; }
.sector-card .sc-leader:hover strong { color:var(--accent-ink); }
.sector-card .sc-leader strong { font-size:.82rem; line-height:1.35; }

/* value index — frozen editorial edition, not a live market ticker */
.index-shell { max-width:1120px; padding-top:42px; padding-bottom:72px; }
.index-hero { max-width:850px; padding:12px 0 24px; }
.index-kicker-row,.index-heading-row { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.index-kicker-row { align-items:center; }
.index-chips { display:flex; flex-wrap:wrap; gap:8px; padding:4px 0 28px; }
.index-chips .tag { min-height:44px; text-decoration:none; border:1px solid var(--accent-soft); }
.index-chips .tag:hover,.index-chips .tag.is-active { background:var(--accent-strong); border-color:var(--accent-strong); color:var(--surface); }
.index-heading-row { align-items:flex-end; margin:0 0 14px; }
.index-heading-row h2 { margin-bottom:0; }
.index-ledger { padding:8px 18px; }
.value-index-table th:first-child,.value-index-table td:first-child { width:44px; }
.value-index-table td { vertical-align:middle; }
.index-rank { color:var(--muted); font-family:var(--font-mono); }
.index-company { display:block; color:var(--ink); font-family:var(--font-display); font-weight:600; text-decoration:none; }
.index-company:hover { color:var(--accent-ink); }
.index-reg { display:block; margin-top:3px; color:var(--muted); font-family:var(--font-mono); font-size:.7rem; }
.index-value { color:var(--ink); font-weight:650; white-space:nowrap; }
.index-range { color:var(--ink-soft); white-space:nowrap; }
.value-index-mobile { display:none; }
.index-honesty { margin-top:18px; background:var(--surface-sunken); }
.index-honesty h2 { font-size:1.15rem; }
.index-owner-cta,.index-landing-strip { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.index-owner-cta { margin-top:18px; }
.index-owner-cta .btn,.index-landing-strip .btn { flex:0 0 auto; }
.index-landing-strip h2 { margin-bottom:5px; }
.index-landing-strip p:last-child { margin-bottom:0; }
.index-methodology { max-width:900px; padding-top:42px; padding-bottom:72px; }
.index-method-steps .step h2 { font-size:1.05rem; }

/* funnel */
.funnel { display:grid; gap:14px; }
.funnel-row { display:grid; grid-template-columns:190px 1fr auto; gap:16px; align-items:center; }
.funnel-row .fn-name { color:var(--ink-soft); font-size:.92rem; }
.funnel-row .fn-count { color:var(--muted); font-size:.85rem; font-variant-numeric:tabular-nums lining-nums; white-space:nowrap; min-width:78px; text-align:right; }
.funnel-track { height:14px; border-radius:var(--radius-pill); background:var(--surface-sunken); overflow:hidden; border:1px solid var(--border-soft); }
.funnel-fill { height:100%; border-radius:var(--radius-pill); }
.funnel-fill.sig-green { background:var(--success); }
.funnel-fill.sig-yellow { background:var(--warn); }
.funnel-fill.sig-red { background:var(--accent); }
.funnel-fill.sig-none { background:var(--signal-none,var(--ink-300)); }

/* highlighted */
.highlight-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:14px; }
.highlight-card { display:block; padding:18px 20px; border-radius:var(--radius-lg); background:var(--surface); border:1px solid var(--border); box-shadow:var(--shadow-xs); color:var(--ink); text-decoration:none; transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease); }
.highlight-card:hover { border-color:var(--border-strong); box-shadow:var(--shadow-md); text-decoration:none; }
.highlight-card .hc-name { display:block; font-family:var(--font-display); font-weight:600; font-size:1.05rem; letter-spacing:-.015em; }
.highlight-card .hc-sector { display:block; margin-top:3px; color:var(--muted); font-size:.84rem; }
.highlight-card .hc-foot { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:16px; }
.highlight-card .hc-score { font-family:var(--font-display); font-size:1.5rem; font-weight:600; letter-spacing:-.02em; font-variant-numeric:tabular-nums lining-nums; }

/* steps */
.steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; counter-reset:s; list-style:none; padding:0; margin:0; }
.step { padding:20px; border-radius:var(--radius-lg); background:var(--surface); border:1px solid var(--border); box-shadow:var(--shadow-xs); }
.step::before { counter-increment:s; content:counter(s); display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:var(--radius-pill); background:var(--accent-soft); color:var(--accent-ink); font-family:var(--font-mono); font-weight:600; }
.step h3 { margin:12px 0 6px; font-size:1.05rem; letter-spacing:-.015em; color:var(--ink); }
.step p { margin:0; color:var(--ink-soft); font-size:.9rem; line-height:1.55; }

/* ── First-run orientation ────────────────────────────────────────────────── */
.welcome-panel { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin:22px 0 0; }
.welcome-copy { max-width:76ch; }
.welcome-panel .lead { margin-top:10px; font-size:1rem; }
.welcome-panel .btn { flex:0 0 auto; }
.guided-path { margin-top:24px; padding-top:22px; border-top:1px solid var(--border); }
.guided-path h2 { margin:0 0 14px; font-size:1.35rem; letter-spacing:-.02em; }
.guided-steps .step { display:flex; flex-direction:column; min-height:210px; }
.guided-steps .nav-link,.guided-steps .chip { align-self:flex-start; margin-top:auto; }
.guided-steps .step.is-muted { background:var(--surface-sunken); }
.guided-steps .step.is-muted::before { background:var(--surface); color:var(--muted); }
.guided-steps .step.is-muted h3,.guided-steps .step.is-muted p { color:var(--muted); }

/* ── Owner: export bar, plan, underpricing ────────────────────────────────── */
.export-bar { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; }
.export-bar span { color:var(--muted); font-weight:600; }
.plan-horizons { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.horizon-head { display:flex; align-items:center; gap:.6rem; margin-bottom:14px; }
.horizon-num { display:inline-flex; align-items:center; justify-content:center; min-width:46px; height:46px; border-radius:var(--radius-pill); background:var(--ink-900); color:var(--paper-50); font-family:var(--font-display); font-weight:600; font-size:1.1rem; font-variant-numeric:tabular-nums lining-nums; }
.horizon-sub { display:block; font-size:.82rem; color:var(--muted); }
.underpricing .up-header { font-size:.9rem; color:var(--muted); font-style:italic; font-family:var(--font-display); border-left:2px solid var(--border-strong); padding-left:.75rem; margin-bottom:.75rem; }

/* ── Legal footer ─────────────────────────────────────────────────────────── */
.legal-footer { border-top:1px solid var(--border); background:var(--paper-100); padding:28px 0 32px; margin-top:48px; }
.legal-footer-inner { display:flex; flex-direction:column; gap:12px; }
.legal-footer-impressum { font-size:.85rem; color:var(--muted); line-height:1.6; }
.legal-footer-links { display:flex; flex-wrap:wrap; gap:6px 20px; font-size:.88rem; }
.legal-footer-links a { color:var(--ink-soft); text-decoration-color:var(--border-strong); }
.legal-footer-links a:hover { color:var(--accent-ink); }
.legal-footer-dsa { font-size:.84rem; color:var(--muted); line-height:1.55; margin:0; }

/* ── Promoted shared components (de-duplicated from page <style> blocks) ──────
   .placeholder ships in _legal_footer (every page) → must be global, not per-page.
   .data-table is the editorial admin/legal table; .sandbox-badge the sandbox pill. */
.placeholder { background:var(--warn-soft); color:var(--warn); padding:1px 7px; border-radius:var(--radius-sm); font-weight:700; font-size:.9em; }
.data-table { width:100%; border-collapse:collapse; margin:12px 0; font-size:.92rem; }
.data-table th,.data-table td { text-align:left; vertical-align:top; padding:9px 12px; border-bottom:1px solid var(--border); color:var(--ink-soft); line-height:1.55; }
.data-table th { color:var(--muted); font-family:var(--font-mono); font-weight:500; font-size:.82rem; text-transform:uppercase; letter-spacing:.04em; }
.data-table tr:last-child td { border-bottom:0; }
.sandbox-badge { display:inline-block; background:var(--accent-strong); color:var(--surface); font-size:.78rem; font-weight:700; letter-spacing:.06em; padding:3px 10px; border-radius:var(--radius-pill); margin-bottom:12px; text-transform:uppercase; }

/* ── Laenuvalmidus (loan readiness) ───────────────────────────────────────── */
.loan-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.loan-field { display:flex; flex-direction:column; gap:7px; }
.loan-field.is-prompt { padding:10px 0 10px 12px; border-left:2px solid var(--accent); }
.loan-prompt-row { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.loan-manual-badge { flex:0 0 auto; font-family:var(--font-mono); font-size:.64rem; font-weight:600; text-transform:uppercase; letter-spacing:0; color:var(--accent-ink); }
.loan-field label { font-family:var(--font-mono); color:var(--muted); font-size:.68rem; font-weight:500; text-transform:uppercase; letter-spacing:0; }
.loan-field input { width:100%; padding:11px 14px; border:1px solid var(--border-strong); border-radius:var(--radius-md); font:inherit; background:var(--surface); color:var(--ink); }
.loan-field input:focus { outline:0; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.loan-note { margin:0 0 18px; padding:10px 12px; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--surface-sunken); color:var(--ink); }
.loan-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:20px; }
.loan-ratio-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:14px; }
.loan-ratio-card { display:flex; flex-direction:column; gap:10px; }
.loan-ratio-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.loan-ratio-value { font-family:var(--font-display); font-size:1.8rem; font-weight:600; line-height:1.1; color:var(--ink); }
.loan-meta-list { display:grid; gap:7px; margin:0; padding:0; list-style:none; }
.loan-meta-list li { display:flex; justify-content:space-between; gap:16px; border-top:1px solid var(--border-soft); padding-top:7px; }
.loan-meta-list span:first-child { color:var(--muted); }
.loan-stack { display:grid; gap:14px; }
.loan-list { margin:0; padding-left:20px; }
.loan-list li + li { margin-top:8px; }
.loan-disclaimer { border-left:3px solid var(--accent); }
@media (max-width:720px) {
  .loan-form-grid { grid-template-columns:1fr; }
  .loan-meta-list li { flex-direction:column; gap:2px; }
}

/* ── Lounge context — pine secondary anchor ───────────────────────────────────
   Juhtide Lounge is the closed members' community. It re-points the accent
   aliases to a restrained pine so shared components (eyebrow, buttons, links,
   step/reco numerals, active states) read as a calm forest-green community space
   — distinct from the orange valuation product, while the orange brand mark in
   the topbar keeps the family tie. White-on-pine ≈6:1, pine ink on paper ≈9.8:1
   (both AA). Applied via class="lounge-ctx" on the lounge <body>. */
.lounge-ctx {
  --accent:        var(--pine-500);
  --accent-ink:    var(--pine-700);
  --accent-strong: var(--pine-500);
  --accent-strong-press: var(--pine-700);
  --accent-press:  var(--pine-700);
  --accent-soft:   var(--pine-100);
  --accent-wash:   var(--pine-wash);
}
.lounge-ctx ::selection { background:var(--pine-100); color:var(--pine-700); }

/* ── Locked state (gated-area CTA block; partial _locked_state.html.j2) ──────── */
.locked-state {
  display:flex; gap:18px; align-items:flex-start;
  background:var(--surface-sunken);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:24px 26px;
  margin:8px 0;
}
.locked-state.is-unlocked { border-color:var(--success); background:var(--success-soft); }
.locked-mark {
  flex-shrink:0; width:44px; height:44px; border-radius:var(--radius-pill);
  display:flex; align-items:center; justify-content:center;
  font-size:1.2rem; background:var(--surface); border:1px solid var(--border-soft);
  color:var(--accent-ink);
}
.locked-state.is-unlocked .locked-mark { border-color:var(--success); color:var(--success); }
.locked-body { flex:1; min-width:0; }
.locked-title { font-family:var(--font-display); font-size:1.1rem; font-weight:600; letter-spacing:-0.02em; color:var(--ink); margin:0 0 6px; }
.locked-text { font-size:0.94rem; color:var(--ink-soft); line-height:1.6; margin:0 0 16px; }
.locked-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
@media (max-width:560px) { .locked-state { flex-direction:column; gap:12px; } }

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width:980px) {
  .stat-grid { grid-template-columns:repeat(2,1fr); }
  .steps { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:860px) {
  .owner-value-hero,.owner-decision-grid { grid-template-columns:1fr; }
  .owner-value-hero { grid-template-areas:"headline" "aside" "summary"; }
  .owner-hero-aside { border-left:0; border-top:1px solid var(--border); }
  .valuation-cards,.factor-grid,.plan-horizons,.chart-stats { grid-template-columns:1fr; }
  .value-box { border-right:0; border-bottom:1px solid var(--border); }
  .value-box:last-child { border-bottom:0; }
  .bar-row { grid-template-columns:120px 1fr auto; }
  .funnel-row { grid-template-columns:130px 1fr auto; }
  .panel { padding:20px; }
  .welcome-panel { flex-direction:column; gap:16px; }
}
@media (max-width:560px) {
  .stat-grid,.latest-strip { grid-template-columns:1fr 1fr; }
}
@media (prefers-reduced-motion:reduce) {
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
  .value-box { animation:none !important; opacity:1 !important; transform:none !important; }
}

/* ── Vari-kiht (admin, research-only) ────────────────────────────────────────
   Tekkeloo kett: kronoloogiline "kuidas selle arvuni jõuti" ahel. Peegeldab
   .steps/.funnel loogikat, aga vertikaalselt ja lugeja-tempos — juuksejoon
   ühendab sammud, number-medaljon markeerib järje. Ainult tokenid; ÜKS oranž
   (medaljoni piire), varjusid ei ole. Filtrid + arvukastid taaskasutavad
   .admin-field-grid'i, seega siin ainult see, mida süsteemis veel polnud. */
.vari-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.vari-chain { list-style:none; margin:18px 0 0; padding:0; counter-reset:vari; }
.vari-chain > li { position:relative; counter-increment:vari; margin-left:11px; padding:0 0 28px 34px; border-left:1px solid var(--border); }
.vari-chain > li:last-child { border-left-color:transparent; padding-bottom:0; }
.vari-chain > li::before {
  content:counter(vari); position:absolute; left:-11px; top:-2px;
  width:22px; height:22px; border-radius:var(--radius-pill);
  background:var(--surface); border:1px solid var(--accent); color:var(--accent-ink);
  font-family:var(--font-mono); font-size:.68rem; font-weight:600;
  display:flex; align-items:center; justify-content:center;
}
.vari-chain > li > .eyebrow { margin-top:0; }
.vari-fieldset { border:0; padding:0; margin:0 0 14px; display:flex; gap:18px; flex-wrap:wrap; align-items:center; }
.vari-fieldset legend { padding:0; margin-bottom:8px; float:left; width:100%; }
.vari-radio { display:inline-flex; align-items:center; gap:8px; cursor:pointer; font-weight:600; color:var(--ink-soft); }
.vari-radio input { min-width:18px; min-height:18px; }
.vari-radio:hover { color:var(--ink); }

/* ── Kurmeti otsustuspakett ─────────────────────────────────────────────────
   Pikkade poliitikavalikute jaoks on kiibi asemel täislai editorial-nupp.
   Kõik seisud ja kommentaarid jäävad ühe küsimuse paneeli sisse. */
.meeting-shell { max-width:62rem; }
.meeting-shell > .section-heading { max-width:54rem; margin-top:2rem; }
.meeting-shell > .section-heading h1 { max-width:22ch; }
.meeting-document { display:grid; gap:1.25rem; margin-top:1.125rem; }
.meeting-document > * { min-width:0; }
.meeting-intro {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.75rem 1.25rem;
}
.meeting-intro p { margin:0; }
.meeting-intro-lead { grid-column:1/-1; color:var(--ink-soft); }
.meeting-intro-detail {
  padding-top:.75rem;
  border-top:1px solid var(--border-soft);
  color:var(--muted);
  font-size:.9rem;
}
.meeting-question { scroll-margin-top:6rem; }
.meeting-question > header {
  margin-bottom:1rem;
  padding-bottom:1rem;
  border-bottom:1px solid var(--border);
}
.meeting-question h2 {
  margin:0;
  font-size:clamp(1.35rem,1.2rem + .7vw,1.65rem);
}
.meeting-question > p { max-width:78ch; }
.meeting-context,.meeting-prompt { color:var(--ink-soft); }
.meeting-context > strong:first-child,.meeting-prompt > strong:first-child {
  display:block;
  margin-bottom:.25rem;
  color:var(--accent-ink);
  font-family:var(--font-mono);
  font-size:.68rem;
  font-weight:500;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.meeting-choice-zone {
  margin:1rem 0;
  padding:1rem 1rem 1rem 1.125rem;
  background:var(--surface-sunken);
  border-left:.1875rem solid var(--accent);
  border-radius:0 var(--radius-md) var(--radius-md) 0;
}
.meeting-choice-zone .table-wrap {
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
}
.meeting-choice-zone table { min-width:42rem; margin:0; }
.meeting-response { margin-top:1.25rem; }
.meeting-choice-label {
  margin:0 0 .45rem;
  color:var(--muted);
  font-family:var(--font-mono);
  font-size:.7rem;
  font-weight:500;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.meeting-choices { display:grid; gap:.55rem; }
.meeting-choice.btn {
  min-height:3rem;
  height:auto;
  justify-content:flex-start;
  gap:.75rem;
  padding:.75rem .9rem;
  color:var(--ink-soft);
  background:var(--surface-sunken);
  border-color:var(--border-strong);
  text-align:left;
  line-height:1.45;
  font-weight:500;
}
.meeting-choice.btn::before {
  content:"";
  align-self:flex-start;
  flex:0 0 1.15rem;
  width:1.15rem;
  height:1.15rem;
  margin-top:.12rem;
  background:var(--surface);
  border:.125rem solid var(--ink-300);
  border-radius:var(--radius-pill);
}
.meeting-choice.btn:hover {
  color:var(--ink);
  background:var(--accent-wash);
  border-color:var(--accent);
}
.meeting-choice[aria-pressed="true"] {
  color:var(--ink);
  background:var(--accent-soft);
  border-color:var(--accent-strong);
  font-weight:650;
}
.meeting-choice[aria-pressed="true"]::before {
  background:var(--accent-strong);
  border-color:var(--accent-strong);
  box-shadow:inset 0 0 0 .25rem var(--surface);
}
.meeting-legacy-answer {
  margin-top:.75rem;
  padding:.7rem .9rem;
  color:var(--ink-soft);
  background:var(--warn-soft);
  border-left:.125rem solid var(--warn);
}
.meeting-comment { margin-top:1rem; }
.meeting-comment label {
  display:block;
  margin-bottom:.35rem;
  color:var(--ink-soft);
  font-weight:650;
}
.meeting-comment textarea { width:100%; }
.meeting-save-row {
  display:flex;
  align-items:center;
  gap:.65rem;
  min-height:2.75rem;
  margin-top:.45rem;
}
.meeting-save-status {
  font-family:var(--font-mono);
  font-size:.72rem;
  color:var(--muted);
}
.meeting-save-status[data-state="saving"],
.meeting-save-status[data-state="dirty"] { color:var(--accent-ink); }
.meeting-save-status[data-state="saved"] { color:var(--success); }
.meeting-save-status[data-state="reconfirm"] { color:var(--warn); }
.meeting-save-status[data-state="error"],
.meeting-save-status[data-state="conflict"] { color:var(--danger); }
.meeting-progress {
  display:grid;
  grid-template-columns:minmax(12rem,.8fr) minmax(18rem,1.2fr);
  gap:1.25rem;
  align-items:start;
  border-top:.1875rem solid var(--accent);
}
.meeting-progress .eyebrow { margin-top:0; }
.meeting-progress-count {
  margin:.35rem 0;
  color:var(--ink-soft);
}
.meeting-progress-count strong {
  color:var(--ink);
  font-family:var(--font-display);
  font-size:1.75rem;
}
.meeting-progress form { display:grid; gap:.45rem; }
.meeting-version-form {
  grid-column:1 / -1;
  padding-top:.85rem;
  border-top:1px solid var(--border);
}
.meeting-questionnaire-nav {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.75rem;
}
.meeting-questionnaire-card {
  display:grid;
  gap:.2rem;
  padding:1rem;
  color:var(--ink-soft);
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  text-decoration:none;
}
.meeting-questionnaire-card:hover {
  color:var(--ink);
  border-color:var(--accent);
  text-decoration:none;
}
.meeting-questionnaire-card.is-current {
  background:var(--accent-wash);
  border-color:var(--accent);
}
.meeting-questionnaire-card .eyebrow { margin:0; }
.meeting-questionnaire-card strong { color:var(--ink); }
.meeting-questionnaire-card small { color:var(--muted); }
.meeting-email-link {
  display:grid;
  gap:.75rem;
}
.meeting-email-link > p { margin:0; }
.meeting-email-link-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:.35rem 1rem;
  align-items:center;
  padding-top:.75rem;
  border-top:1px solid var(--border);
}
.meeting-email-link-row strong { display:block; }
.meeting-email-link a {
  display:block;
  overflow-wrap:anywhere;
  font-family:var(--font-mono);
  font-size:.78rem;
}
.meeting-email-link-row .meeting-save-status { grid-column:1 / -1; }
.meeting-calibration-details {
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  background:var(--surface);
}
.meeting-calibration-details > summary {
  display:grid;
  gap:.25rem;
  padding:1.1rem 1.25rem;
  cursor:pointer;
}
.meeting-calibration-details > summary::marker { color:var(--accent); }
.meeting-calibration-details > summary .eyebrow { margin:0; }
.meeting-calibration-details > summary strong {
  color:var(--ink);
  font-family:var(--font-display);
  font-size:1.15rem;
}
.meeting-calibration-details > summary small { color:var(--muted); }
.meeting-calibration-body {
  display:grid;
  gap:1.25rem;
  padding:0 1rem 1rem;
  border-top:1px solid var(--border);
}
.meeting-version-actions {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:.5rem;
  align-items:stretch;
}
.meeting-version-actions select { width:100%; }
.meeting-archived-question .eyebrow { margin:0 0 .35rem; }
.meeting-archived-answer,
.meeting-archived-comment {
  margin-top:1rem;
  padding:1rem;
  background:var(--surface-sunken);
  border-left:.125rem solid var(--accent);
}
.meeting-archived-answer p:last-child,
.meeting-archived-comment p:last-child { margin-bottom:0; }
.meeting-archived-detail { color:var(--ink-soft); }
.meeting-archived-choices {
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  margin-top:.75rem;
}
.meeting-archived-choice {
  padding:.45rem .75rem;
  color:var(--muted);
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-pill);
}
.meeting-archived-choice.is-selected {
  color:var(--accent-ink);
  background:var(--accent-wash);
  border-color:var(--accent);
  font-weight:700;
}
.meeting-archived-comment-line {
  margin-top:.85rem;
  padding-top:.75rem;
  border-top:1px solid var(--border);
}
.meeting-progress label,.meeting-transcript label {
  color:var(--ink-soft);
  font-weight:650;
}
.meeting-notify-actions,.meeting-transcript-actions {
  display:flex;
  gap:.65rem;
  align-items:center;
  flex-wrap:wrap;
}
.meeting-viewing-note {
  margin:0;
  padding:.75rem;
  background:var(--surface-sunken);
  border-left:.125rem solid var(--accent);
}
.meeting-audio {
  margin-top:1rem;
  padding:1rem;
  background:var(--surface-sunken);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
}
.meeting-audio-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.meeting-audio-head p { margin:0; }
.meeting-audio-status {
  margin:.75rem 0;
  color:var(--muted);
  font-family:var(--font-mono);
  font-size:.72rem;
}
.meeting-audio audio {
  display:block;
  width:100%;
  margin-bottom:.5rem;
}
.meeting-transcript { margin-top:.75rem; }
.meeting-transcript label { display:block; margin-bottom:.35rem; }
.meeting-transcript textarea { width:100%; }

/* ── VORM-E otsusvorm: kohtumise küsimusekaart + edenemisrail ─────────── */
.decision-form-shell { max-width:74rem; }
.decision-form-shell > .section-heading { max-width:54rem; margin-top:2rem; }
.decision-form-shell > .section-heading h1 { max-width:22ch; }
.decision-form-progress { margin-top:1.125rem; }
.decision-form-progress .decision-form-next { align-self:center; justify-self:end; }
.decision-form-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 15.75rem;
  gap:2rem;
  align-items:start;
}
.decision-form-content { min-width:0; }
.decision-form-content > h2 { margin-top:1.5rem; }
.decision-form-part-heading { margin-bottom:0; }
.decision-form-question {
  scroll-margin-top:6rem;
  margin-bottom:0;
}
.decision-form-source { max-width:78ch; }
.decision-form-source > :last-child { margin-bottom:0; }
.decision-form-value-label { display:block; color:var(--ink-soft); font-weight:650; }
.decision-form-value-label input,.decision-form-value-label textarea { display:block; width:100%; margin-top:.35rem; }
.decision-form-practice-context { display:grid; gap:.85rem; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:1rem; }
.decision-form-practice-context > :last-child { grid-column:1 / -1; }
.decision-form-choice { cursor:pointer; }
.decision-form-choice input { flex:0 0 1.15rem; width:1.15rem; height:1.15rem; margin:.12rem 0 0; accent-color:var(--accent-strong); }
.decision-form-choice::before { display:none; }
.decision-form-choice:has(input:checked) { color:var(--ink); background:var(--accent-soft); border-color:var(--accent-strong); font-weight:650; }
.decision-form-locked-answer { margin-top:1.25rem; padding:1rem; background:var(--surface-sunken); border-left:.125rem solid var(--accent); }
.decision-form-locked-answer p { margin:0 0 .5rem; }
.decision-form-locked-answer p:last-child { margin-bottom:0; }
.decision-form-practice-readonly { display:grid; gap:.75rem; }
.decision-form-practice-readonly p { padding:.75rem; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-sm); white-space:pre-wrap; }
.decision-form-practice-readonly span { display:block; margin-bottom:.3rem; color:var(--muted); font-size:.8rem; font-weight:650; }
.decision-form-rail { position:sticky; top:1.25rem; }
.rail-panel {
  padding:.95rem 0 .4rem;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-xs);
}
.rail-head { padding:0 1rem .65rem; border-bottom:1px solid var(--border-soft); }
.rail-head .big-num {
  margin:.125rem 0 0;
  font-family:var(--font-display);
  font-size:1.45rem;
  font-weight:600;
  letter-spacing:-.02em;
  color:var(--ink);
}
.rail-group {
  margin:.75rem 1rem .25rem;
  font-family:var(--font-mono);
  font-size:.62rem;
  font-weight:500;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--faint);
}
.rail-question {
  display:flex;
  align-items:center;
  gap:.55rem;
  min-height:2rem;
  padding:.35rem 1rem;
  border-left:.125rem solid transparent;
  color:var(--ink-soft);
  font-size:.84rem;
  line-height:1.35;
  text-decoration:none;
}
.rail-question:hover { color:var(--ink); background:var(--surface-sunken); text-decoration:none; }
.rail-qid {
  width:2.55rem;
  flex:0 0 2.55rem;
  font-family:var(--font-mono);
  font-size:.68rem;
  color:var(--faint);
  letter-spacing:.02em;
}
.rail-dot {
  width:.45rem;
  height:.45rem;
  flex:0 0 .45rem;
  border-radius:var(--radius-pill);
  background:var(--border-strong);
}
.rail-title { min-width:0; }
.rail-question.is-answered { color:var(--muted); }
.rail-question.is-answered .rail-dot { background:var(--success); }
.rail-question.is-locked .rail-dot { background:var(--ink-300); }
.rail-locked { font-family:var(--font-mono); font-size:.62rem; color:var(--muted); }
.rail-question.is-active { border-left-color:var(--accent); color:var(--ink); background:var(--accent-wash); }
.rail-question.is-active .rail-qid { color:var(--accent-ink); }
.rail-next {
  display:block;
  margin:.75rem 1rem .65rem;
  padding:.5rem .6rem;
  border:1px solid var(--border-strong);
  border-radius:var(--radius-md);
  color:var(--ink-soft);
  font-size:.82rem;
  font-weight:600;
  text-align:center;
  text-decoration:none;
}
.rail-next:hover { color:var(--ink); background:var(--surface-sunken); text-decoration:none; }
.decision-form-retention,
.decision-form-mobile-retention {
  margin:.85rem 0 0;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.45;
}
.decision-form-mobile-progress,
.decision-form-mobile-retention { display:none; }

/* ── Mobile ──────────────────────────────────────────────────────────────── */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.nav-toggle{display:none; color:var(--ink); background:transparent; border:1px solid var(--border); border-radius:var(--radius-md); padding:0; font:inherit; cursor:pointer; transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease);}
.nav-toggle:hover{background:var(--surface-sunken); border-color:var(--border-strong);}
.admin-field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;align-items:end;}
.admin-kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;margin:0;}
.admin-kv dt,.admin-kv dd{min-width:0;overflow-wrap:anywhere;}
.admin-kv dd{margin:0;}

@media (max-width:1000px) {
  .decision-form-layout { display:block; }
  .decision-form-rail { display:none; }
  .decision-form-progress { display:none; }
  .decision-form-mobile-progress {
    position:sticky;
    top:0;
    z-index:10;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    min-height:2.75rem;
    margin:0 0 .25rem;
    padding:.55rem .8rem;
    border:1px solid var(--border);
    border-radius:var(--radius-md);
    background:var(--surface);
    box-shadow:var(--shadow-xs);
    font-family:var(--font-mono);
    font-size:.78rem;
    font-weight:500;
  }
  .decision-form-mobile-progress a { font-family:var(--font-sans); font-weight:600; }
  .decision-form-mobile-retention { display:block; margin:.35rem 0 1rem; }
}

@media (max-width:768px) {
  .container { width:min(100% - 24px,var(--max)); }
  main.container { padding-bottom:56px; }
  section { padding:18px 0; }
  .panel { padding:20px; }
  .panel.tight { padding:16px 18px; }
  .nav-js .nav-toggle { display:inline-flex; align-items:center; justify-content:center; min-height:44px; min-width:44px; color:var(--ink); background:transparent; border-color:var(--border); }
  .nav-actions { flex-direction:column; align-items:stretch; flex-basis:100%; width:100%; gap:4px; }
  .nav-js .nav-actions { display:none; }
  .nav-actions.is-open { display:flex; }
  .nav-actions form,.nav-actions .locale-switch { width:100%; }
  .nav-link { min-height:44px; display:inline-flex; align-items:center; }
  .nav-actions .nav-link { width:100%; justify-content:flex-start; }
  .nav-select { min-height:44px; }
  .nav-actions .nav-select { width:100%; }
  .btn,button.btn,.btn-ghost,.tab-btn { min-height:44px; }
  .owner-export-tools .btn { min-height:44px; }
  .tab-btn { display:inline-flex; align-items:center; padding-bottom:10px; }
  :where(input[type=text], input[type=email], input[type=search], input[type=url],
  input[type=tel], input[type=password], input[type=date], input[type=datetime-local],
  select) { min-height:44px; }
  :where(textarea) { min-height:96px; }
  .steps,.highlight-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .index-shell,.index-methodology { padding-top:24px; }
  .index-kicker-row,.index-heading-row,.index-owner-cta,.index-landing-strip { align-items:stretch; flex-direction:column; }
  .index-heading-row .nav-link { width:max-content; }
  .index-ledger > .table-wrap { display:none; }
  .value-index-mobile { display:block; }
  .index-ledger { padding:0 16px; }
  .index-mobile-row { display:block; min-height:72px; padding:15px 0; border-bottom:1px solid var(--border-soft); color:var(--ink); text-decoration:none; }
  .index-mobile-row:last-child { border-bottom:0; }
  .index-mobile-main { display:flex; align-items:baseline; justify-content:space-between; gap:14px; }
  .index-mobile-main > strong { min-width:0; overflow-wrap:anywhere; }
  .index-mobile-main > .num { flex:0 0 auto; font-weight:650; }
  .index-mobile-meta { display:block; margin-top:5px; color:var(--muted); font-size:.78rem; line-height:1.45; }
}

@media (max-width:480px) {
  .container { width:min(100% - 20px,var(--max)); }
  main.container { padding-bottom:44px; }
  section { padding:16px 0; }
  .panel { padding:16px; }
  .panel.tight { padding:14px; }
  .hero { padding:22px 18px; }
  .valuation-headline { padding:22px 18px; }
  .summary-callout { padding:14px 18px; }
  .stat-grid,.steps,.latest-strip,.highlight-grid { grid-template-columns:1fr; }
  .landing-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .landing-stat-grid .stat-card { padding:14px 12px; }
  .admin-field-grid { grid-template-columns:1fr; }
  .admin-kv { grid-template-columns:1fr; }
  .formula-pair { grid-template-columns:1fr; }
  .vari-chain > li { padding-left:24px; }
  .vari-fieldset { gap:12px; }
  .tab-bar { gap:12px; flex-wrap:wrap; margin-bottom:20px; }
  .tab-btn { font-size:.92rem; padding-bottom:8px; }
  .owner-tabs-note { flex-basis:100%; order:2; margin:-8px 0 12px; }
  .owner-export-tools { justify-content:flex-start; padding:12px 16px; }
  .owner-export-tools > span:first-child { flex-basis:100%; }
  .owner-decision-panel .reco-list li { flex-wrap:wrap; }
  .owner-decision-panel .reco-list .source-tag { flex-basis:100%; margin-left:40px; }
  .bar-row,.funnel-row { grid-template-columns:1fr; gap:6px; }
  .bar-row .val,.funnel-row .fn-count { min-width:0; text-align:left; }
  .meeting-intro { grid-template-columns:1fr; }
  .decision-form-practice-context { grid-template-columns:1fr; }
  .decision-form-practice-context > :last-child { grid-column:auto; }
  .meeting-progress { grid-template-columns:1fr; }
  .meeting-version-actions { grid-template-columns:1fr; }
  .meeting-questionnaire-nav { grid-template-columns:1fr; }
  .meeting-email-link-row { grid-template-columns:1fr; }
  .meeting-email-link-row .btn,
  .meeting-audio [data-audio-delete] { width:100%; }
  .meeting-audio-head { align-items:flex-start; flex-direction:column; }
  .meeting-intro-lead { grid-column:auto; }
  .meeting-choice-zone { margin-inline:-.25rem; padding:.875rem; }
}

@media (max-width:359px) {
  .landing-stat-grid { grid-template-columns:1fr; }
}

/* Otsusvormi verbatim-allika kuvakiht: pealkirjaread + peenjoon (vt decision_form.format_source_line) */
.decision-form-source .source-heading { font-family:var(--font-display); font-weight:600; font-size:1.02rem; letter-spacing:-.01em; color:var(--ink); margin:14px 0 6px; }
.decision-form-source hr.source-rule, .panel hr.source-rule { border:0; border-top:1px solid var(--border); margin:14px 0; }
.decision-form-source ul.source-list { margin:10px 0 14px; padding-left:22px; }
.decision-form-source ul.source-list li { margin:4px 0; }
