/* REALITAS reusable components. One definition per concept; used by every page and every investigation renderer.
   Contents: notices · score · cards and grids · archive discovery · evidence status · article blocks (evidence, arguments,
   verdict, sources, revisions, discussion, ads) · research questions (knowledge + imported investigations) · data tables. */

/* ---------- Shared small-caps label (metadata, table heads, field names, status badges) ---------- */
.status-badge,.kn-kind,.kn-status-label,.kn-limits dt,.kn-dl dt,.kn-short-label,.kn-link-n,.kn-table thead th,.kn-infer h3,
.imp-more summary,.imp-more-body h4,.imp-rel-type,.imp-table .imp-group-row th{font:700 var(--fs-meta) var(--sans);text-transform:uppercase}

/* ---------- Notices and quotations ---------- */
.prototype-note{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:var(--s2) 0;display:flex;align-items:center;gap:var(--s3);font-size:.8rem;color:var(--muted)}
.note-label{font-size:var(--fs-meta);font-weight:700;letter-spacing:.1em;color:var(--accent);white-space:nowrap}
.locale-notice{border:1px solid var(--line-strong);background:var(--soft);padding:var(--s2) var(--s3);display:flex;align-items:center;gap:var(--s3);font-size:.85rem;color:var(--ink);margin:0 0 var(--s2)}
.lang-badge{font-weight:700;color:var(--ink)}
.excerpt{margin:var(--s2) 0 2px;padding-left:var(--s3);border-left:2px solid var(--line-strong);font-family:var(--serif)}
.share-button{border:1px solid var(--ink);border-radius:var(--control-radius);padding:0 14px;background:transparent;font-size:.85rem;margin-top:var(--s4);min-height:36px}
.copy-fallback{margin-top:var(--s2)}
.copy-fallback input{width:100%;font-size:.8rem;padding:8px;border:1px solid var(--line);background:var(--input-bg);color:var(--ink)}

/* ---------- REALITAS Score (signature component; size set by container, number scales with it) ---------- */
.score-topline{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s3);font-size:var(--fs-meta);font-weight:700;letter-spacing:.1em}
.outline-tag{border:1px solid var(--line-strong);padding:2px 6px;font-size:var(--fs-meta);letter-spacing:.08em}
.caveat-tag{border-color:var(--accent);color:var(--accent)}
.meter{position:relative;max-width:380px;margin:var(--s2) auto 0;container-type:inline-size}
.meter svg{width:100%;display:block;overflow:visible}
.meter .gauge-track{stroke:var(--gauge-track)}
.meter .gauge-fill{stroke:var(--gauge-fill)}
.meter .gauge-tick{stroke:var(--gauge-tick)}
.meter-center{position:absolute;bottom:3.5%;left:0;right:0;text-align:center}
.meter-number{font-size:clamp(2.4rem,26cqw,5rem);font-weight:500;line-height:1;letter-spacing:-.07em;font-variant-numeric:tabular-nums}
.meter-number small{font-size:.9rem;color:var(--muted);letter-spacing:0;margin-left:4px}
.meter-verdict{font-size:.66rem;letter-spacing:.12em;font-weight:700;color:var(--accent);margin-top:var(--s1)}
.compact-score{display:flex;align-items:center;gap:10px;min-width:0}
.score-num{font-size:1.7rem;letter-spacing:-.05em;line-height:1;border-left:3px solid var(--accent);padding-left:8px;font-variant-numeric:tabular-nums;flex-shrink:0}
.compact-score .score-label{display:block;font-size:.66rem;letter-spacing:.07em;color:var(--muted);font-weight:700}
.compact-score .verdict{display:block;font-size:.85rem;margin-top:1px}
.compact-score.not-scored .score-num{color:var(--muted)}
.not-scored-panel .not-scored-value{font:400 clamp(1.8rem,3vw,2.4rem) var(--serif);margin:var(--s4) 0 var(--s2);color:var(--ink)}

/* ---------- Investigation cards and card grids (home, archive, related) ---------- */
.investigation-grid,.related-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--card-min),1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.investigation-card{padding:var(--card-pad);border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;min-width:0;transition:background .15s}
.investigation-card:hover{background:var(--hover)}
.card-meta{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-meta);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);gap:var(--s2)}
.index-number{font-family:var(--serif);font-size:.95rem;letter-spacing:0}
.investigation-card h3{font-family:var(--serif);font-weight:400;font-size:var(--fs-card);letter-spacing:-.02em;margin-top:var(--s2);line-height:1.15}
.investigation-card p{font-size:.85rem;color:var(--muted);line-height:1.5;margin-top:var(--s1)}
.card-bottom{display:flex;justify-content:space-between;align-items:end;gap:var(--s3);margin-top:auto;padding-top:var(--s3)}
.card-arrow{border:1px solid var(--line-strong);border-radius:50%;width:28px;height:28px;display:grid;place-items:center;font-size:.8rem;flex-shrink:0}
.card-warning{font-size:.7rem;color:var(--muted);margin-top:var(--s2)}
.area-panel{grid-column:span 2;padding:var(--card-pad);border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}
.area-panel h3{font-family:var(--serif);font-weight:400;font-size:1.25rem;letter-spacing:-.02em}
.area-panel p{font-size:.85rem;color:var(--muted);margin-top:var(--s1)}
.topic-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--s3)}
.topic-list>span{border:1px solid var(--line);padding:4px 10px;font-size:.82rem;color:var(--muted)}
.topic-list>span.topic-active{color:var(--ink);border-color:var(--line-strong)}
.topic-list small{margin-left:8px;font-size:var(--fs-meta);text-transform:uppercase}
.topic-list .topic-active small{color:var(--accent)}

/* ---------- Archive discovery: filters, search, result rows (compact by design) ---------- */
.filters{display:flex;gap:4px;flex-wrap:wrap}
.filters button{border:1px solid var(--line);border-radius:var(--control-radius);padding:0 12px;background:none;font-size:.85rem;min-height:34px}
.filters button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.filters button:hover{border-color:var(--ink)}
.search-box{display:flex;align-items:center;border:1px solid var(--line-strong);border-radius:var(--control-radius);gap:var(--s2);min-height:34px;padding:0 var(--s2)}
.search-box>span{font-size:1.2rem;line-height:1}
.search-box input{width:240px;border:0;background:transparent;padding:6px 0;font-size:.875rem;color:var(--ink)}
.search-box input:focus-visible{outline:none}
.search-box:focus-within{outline:3px solid var(--focus);outline-offset:2px}
.search-box input::placeholder{color:var(--muted);opacity:1}
.archive-list{display:grid;grid-template-columns:1fr;column-gap:var(--s6);border-top:1px solid var(--line)}
.archive-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto 28px;gap:var(--s4);padding:var(--s3) var(--s2) var(--s3) 0;border-bottom:1px solid var(--line);align-items:center}
.archive-row:hover{background:var(--soft)}
.archive-row .index-number{align-self:start;color:var(--muted);padding-top:2px}
.archive-row h3{font-family:var(--serif);font-weight:400;font-size:1.3rem;margin:2px 0;line-height:1.15}
.archive-row p{font-size:.85rem;color:var(--muted);line-height:1.45}
.archive-row .card-meta{justify-content:start}
.archive-row .card-warning{margin-top:var(--s1)}
.archive-row>.compact-wrap{max-width:230px}

/* ---------- Evidence status (semantic). The renderer emits data-status (canonical key) and data-tone
   (from TAX.evidenceStatusTone); only the tone decides the look, using the colour families in tokens.css.
   Meaning never depends on colour alone: the localized word is always shown, and each family has its own marker shape
   (filled circle = established family, ring = probable family, diamond = contested family) and fill/outline/dash pattern.
   Tones: established (green, filled) · supported (green, outline) · probable (amber, filled) · plausible (amber, dashed)
   · contested (rust, filled) · against (rust, filled, strong border) · weak (rust, dashed) · unresolved (neutral, dashed). ---------- */
.status-badge{display:inline-flex;align-items:center;gap:5px;letter-spacing:.06em;line-height:1.35;padding:1px 7px 1px 6px;white-space:nowrap;border-radius:2px;
  --badge-text:var(--status-neutral-text);--badge-border:var(--status-neutral-border);--badge-bg:var(--status-neutral-bg);
  color:var(--badge-text);background:var(--badge-bg);border:1px var(--badge-style,solid) var(--badge-border)}
.status-badge::before{content:'';flex:none;width:6px;height:6px;display:var(--badge-marker,none);background:var(--badge-marker-fill,var(--badge-text));border:1px solid var(--badge-text);border-radius:var(--badge-marker-radius,50%);transform:var(--badge-marker-turn,none)}
.status-badge[data-tone="established"],.status-badge[data-tone="supported"]{--badge-text:var(--status-established-text);--badge-border:var(--status-established-border);--badge-bg:var(--status-established-bg);--badge-marker:block}
.status-badge[data-tone="supported"]{--badge-bg:transparent}
.status-badge[data-tone="probable"],.status-badge[data-tone="plausible"]{--badge-text:var(--status-probable-text);--badge-border:var(--status-probable-border);--badge-bg:var(--status-probable-bg);--badge-marker:block;--badge-marker-fill:transparent}
.status-badge[data-tone="plausible"]{--badge-bg:transparent;--badge-style:dashed}
.status-badge[data-tone="contested"],.status-badge[data-tone="against"],.status-badge[data-tone="weak"]{--badge-text:var(--status-contested-text);--badge-border:var(--status-contested-border);--badge-bg:var(--status-contested-bg);--badge-marker:block;--badge-marker-radius:0;--badge-marker-turn:rotate(45deg)}
.status-badge[data-tone="against"]{border-width:1px 1px 1px 3px}
.status-badge[data-tone="weak"]{--badge-bg:transparent;--badge-style:dashed}
.status-badge[data-tone="unresolved"]{--badge-style:dashed}
.status-scope{font-size:.82rem;color:var(--muted)}
/* In tables each status of a multi-part question gets its own line, so the status column scans top to bottom. */
.kn-table .status-item{display:block;margin:0 0 5px}
.kn-table .status-item:last-child{margin-bottom:0}
.kn-table .status-sep{display:none}
.status-sep{margin:0 var(--s1);color:var(--muted)}

/* ---------- Article blocks. Long-form blocks are separated by --block-rule and space, not boxes;
   filled panels share --panel-pad. ---------- */
.argument-box,.verdict-panel,.discussion-preview,.kn-callout{padding:var(--panel-pad)}
.argument-box{border-top:2px solid var(--ink);background:var(--soft)}
.evidence-card,.reading-placeholder,.kn-node,.kn-family{border-top:var(--block-rule)}
.evidence-card{padding:var(--s5) 0 0;margin-top:var(--read-block)}
.evidence-card .eyebrow{margin-bottom:var(--s1)}
.evidence-card h3{font:400 1.2rem/1.3 var(--serif);margin:0 0 var(--s2)}
.evidence-card p{font-size:.92rem}
.evidence-card .source-reference{font-size:.8rem;margin-top:var(--s3);color:var(--muted);overflow-wrap:anywhere}
.verdict-panel{background:var(--inverse-bg);color:var(--inverse-text);border:1px solid var(--inverse-border)}
.verdict-panel p{color:var(--inverse-muted)}
.verdict-panel .compact-score{margin:var(--s3) 0}
.verdict-panel .score-num{font-size:3rem;border-color:var(--inverse-accent)}
.verdict-panel .score-label{color:var(--inverse-muted)}
.verdict-panel .verdict{font-size:1rem}
.breakdown{margin-top:var(--read-block)}
.breakdown-row{margin:var(--s3) 0}
.breakdown-label{display:flex;justify-content:space-between;gap:var(--s4);font-size:.8rem;line-height:1.4;margin-bottom:4px}
.bar{height:5px;background:var(--bar-track)}
.bar span{display:block;height:100%;background:var(--gauge-fill)}
.source-list{font-size:.92rem;overflow-wrap:anywhere}
.source-list li{margin-bottom:var(--s4)}
.revision{font-size:.85rem;border-top:1px solid var(--line);padding-top:var(--s3)}
.revision+.revision{margin-top:var(--s3)}
.revision p{margin-top:var(--s1)}
.discussion-preview{background:var(--soft);margin-top:var(--read-section)}
.discussion-preview p{font-size:.92rem}
.disabled-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:var(--s3)}
.disabled-actions button{min-height:36px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--control-radius);background:transparent;font-size:.8rem;color:var(--muted)}
.comment-placeholder{padding:var(--s3) 0 0;border-top:1px solid var(--line);margin-top:var(--s3)}
.reading-placeholder{padding:var(--s5) 0 0;margin:var(--read-block) 0}
.reading-placeholder h3{font:400 1.25rem/1.3 var(--serif)}
.reading-placeholder p{font-size:.9rem;margin-top:var(--s1)}
.advertisement{margin:var(--read-block) 0 var(--read-section);min-height:52px;border:1px dashed var(--line-strong);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center;padding:var(--s2);color:var(--muted)}
.advertisement span:first-child{font-size:var(--fs-meta);letter-spacing:.18em}
.advertisement span:last-child{font-size:var(--fs-meta)}

/* ---------- Research questions and knowledge items (knowledge-composed and imported investigations) ---------- */
.kn-node{padding:var(--s5) 0 0;margin-top:var(--s7)}
.prose section>.kn-node:first-of-type,.kn-short+.kn-node{margin-top:var(--read-block)}
.kn-node>h3,.kn-node>h4{font:400 1.4rem/1.25 var(--serif);margin:0 0 var(--s3)}
.kn-node>h4{font-size:1.2rem}
.kn-node p{font-size:.95rem}
.kn-node p:not([class]){font-size:1rem;line-height:1.72}
.kn-kind{letter-spacing:.1em;color:var(--muted);display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;margin-bottom:var(--s2)}
.kn-status{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);margin-bottom:var(--s2)}
.kn-status+.kn-status{margin-top:calc(-1 * var(--s1))}
.kn-status-label{letter-spacing:.08em;color:var(--muted);margin-right:var(--s1)}
.kn-limits,.kn-dl{display:grid;margin:var(--s2) 0 0;font-size:.9rem}
.kn-limits{grid-template-columns:1fr 1fr;gap:var(--s5);border-top:1px solid var(--line);margin-top:var(--s4);padding-top:var(--s4)}
.kn-dl{gap:var(--s3)}
.kn-dl div{display:grid;grid-template-columns:minmax(120px,190px) 1fr;gap:var(--s2);align-items:baseline}
.kn-limits dt,.kn-dl dt{letter-spacing:.06em;color:var(--muted)}
.kn-limits dd,.kn-dl dd{margin:0}
.kn-not dt{color:var(--accent)}
.kn-dl-tight{gap:var(--s1);margin-top:var(--s1)}
.kn-sources{margin-top:var(--s4);border-top:1px solid var(--line);padding-top:var(--s3);overflow-wrap:anywhere}
.kn-sources a,.kn-link-status a,.kn-also a,.kn-ref a,.kn-table tbody th a,.imp-related a,.imp-open a,.kn-source-list a{color:inherit}
.kn-short{border-left:3px solid var(--accent);padding:var(--s4) var(--s5);background:var(--soft);margin:var(--s4) 0}
.kn-short p+p{margin-top:.6em}
.kn-short-label{letter-spacing:.1em;color:var(--accent);margin-bottom:var(--s2)}
.kn-list{margin:0;padding-left:1.1em}
.kn-list li,.kn-distinctions li{margin-top:2px}
.kn-short li{font-size:.98rem;line-height:1.5}
.kn-ref{font-size:.9rem;border-left:2px solid var(--line-strong);padding:2px 0 2px var(--s3);margin-top:var(--s3);display:flex;flex-wrap:wrap;gap:var(--s1);align-items:center}
.kn-distinctions{list-style:upper-alpha}
.kn-source-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--card-min),1fr));gap:var(--s6) var(--s5);margin-top:var(--s5)}
.kn-source{border-top:2px solid var(--ink);padding-top:var(--s3)}
.kn-source h3{font:400 1.1rem/1.3 var(--serif)}
.kn-source .kn-dl div{grid-template-columns:1fr;gap:0}
.kn-chain{list-style:none;counter-reset:none;border-left:2px solid var(--line-strong)}
.kn-chain li{position:relative;padding:0 0 var(--s6) var(--s5)}
.kn-chain li::before{content:'';position:absolute;left:-6px;top:.45em;width:10px;height:10px;background:var(--paper);border:2px solid var(--accent);border-radius:50%}
.kn-link-head{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:baseline}
.kn-link-n{letter-spacing:.08em;color:var(--accent)}
.kn-chain p{font-size:.95rem;margin-top:var(--s2)}
.kn-link-status{display:flex;flex-direction:column;gap:var(--s1);font-size:.85rem;margin-top:var(--s2)}
.kn-link-node{display:flex;flex-wrap:wrap;gap:var(--s1);align-items:center}
.kn-callout{background:var(--inverse-bg);color:var(--inverse-text);border:1px solid var(--inverse-border);margin:var(--read-block) 0}
.kn-callout p{color:var(--inverse-text)}
.kn-callout .kn-short-label{color:var(--inverse-accent)}
.kn-family{margin-top:var(--read-block)}
.kn-family summary{cursor:pointer;padding:var(--s3) 0;display:flex;flex-wrap:wrap;gap:var(--s2);align-items:baseline}
.kn-family summary .kn-kind{margin:0}
.kn-family-name{font:400 1.1rem var(--serif)}
.kn-family[open] summary{border-bottom:1px solid var(--line)}
.kn-family .kn-dl{padding:var(--s3) 0 var(--s4)}
.kn-persons{margin-top:var(--read-block);border-top:1px solid var(--line)}
.kn-person{border-bottom:1px solid var(--line)}
.kn-person summary{cursor:pointer;padding:var(--s3) 0;display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;scroll-margin-top:calc(var(--header-h) + var(--s3))}
.kn-person-name{font:400 1.15rem var(--serif);min-width:9em}
.kn-person-status{display:flex;flex-wrap:wrap;gap:var(--s1);align-items:center}
.kn-person[open]{padding-bottom:var(--s5)}
.kn-matrix{background:var(--soft);padding:var(--s4) var(--s5)}
.kn-infer{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s6)}
.kn-infer h3{letter-spacing:.08em;line-height:1.3}
.kn-list-not li::marker{color:var(--accent)}
.kn-source-list li{margin-bottom:var(--s5)}
.kn-source-list+h3,.prose section#sources h3{margin-top:var(--read-block)}
.kn-also{margin-top:var(--s1)}
.kn-contrast{color:var(--muted)}
/* Imported-investigation question card: the same knowledge block plus an expandable "evidence and reasoning" panel. */
.imp-record{font-weight:400;letter-spacing:.04em;text-transform:none}
.imp-entry{scroll-margin-top:calc(var(--header-h) + var(--s3))}
.imp-entry .kn-short{margin:var(--s4) 0 0}
.imp-entry .kn-short p:last-child{font-size:.95rem}
.imp-confidence{font-size:.9rem}
.imp-more{margin-top:var(--s4)}
.imp-more summary{cursor:pointer;padding:var(--s3) 0;letter-spacing:.08em;color:var(--muted)}
.imp-more summary:hover{color:var(--accent)}
.imp-more-body{padding:var(--s2) 0}
.imp-more-body h4{letter-spacing:.08em;color:var(--muted);margin:var(--s5) 0 var(--s2)}
.imp-more-body>h4:first-child{margin-top:var(--s2)}
.imp-more-body p,.imp-more-body li,.imp-open li{font-size:.95rem;line-height:1.55}
.imp-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--s6)}
.imp-counter{border-left:3px solid var(--line-strong);padding-left:var(--s4);margin-top:var(--s5)}
.imp-counter h4:first-child{margin-top:0}
.imp-open li{margin-bottom:var(--s4)}
.imp-related{margin-top:var(--s4)}
.imp-rel-type{letter-spacing:.06em;color:var(--muted);margin-right:var(--s1)}
.imp-dist{margin:var(--s5) 0}
.imp-dist-list{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s4);align-items:center}
.imp-dist-item{display:inline-flex;gap:var(--s1);align-items:center;font-size:.9rem}
.imp-held{margin-top:var(--s2)}

/* ---------- Data tables (person matrix, question overview); scroll inside their own region on small screens ---------- */
.kn-table-wrap{overflow-x:auto;margin:var(--s5) 0 var(--s2);border:1px solid var(--line);max-width:100%}
.kn-table-wrap:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.kn-table{border-collapse:collapse;width:100%;min-width:620px;font-size:.85rem}
.kn-table .kn-col-status{min-width:170px}
.kn-table .kn-col-status .status-scope{font-size:.78rem}
.kn-table th,.kn-table td{text-align:left;vertical-align:top;padding:var(--s3);border-bottom:1px solid var(--line)}
.kn-table thead th{letter-spacing:.06em;color:var(--muted);background:var(--soft)}
.kn-table tbody th{font:400 1rem var(--serif);min-width:7.5em}
.kn-scroll-hint{display:none;margin-top:var(--s1)}
.imp-table{min-width:560px}
.imp-table tbody th{font-size:.95rem}
.imp-table .imp-group-row th{letter-spacing:.08em;background:var(--soft);padding-top:var(--s4)}

/* ---------- Site search dialog (header "Search" button; logic in app.js, index in assets/js/search.js).
   Status badges inside results are the shared .status-badge; nothing here styles statuses. ---------- */
.search-dialog{padding:0;border:1px solid var(--line-strong);border-top:2px solid var(--accent);background:var(--paper);color:var(--text);width:min(760px,calc(100% - 2 * var(--gutter)));max-width:none;max-height:calc(100dvh - 2 * var(--s6));margin:min(9vh,72px) auto auto;box-shadow:var(--shadow);overflow:hidden}
.search-dialog[open]{display:flex;flex-direction:column}
.search-dialog::backdrop{background:rgb(0 0 0 / .55)}
html.search-open{overflow:hidden}
.search-panel{display:flex;flex-direction:column;flex:1;min-height:0;padding:var(--s4) var(--s5) var(--s3)}
.search-head{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);margin-bottom:var(--s3)}
.search-head h2{font:700 var(--fs-meta)/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.search-close{flex:none;width:var(--control-h);padding:0}
.search-form{display:flex;align-items:center;gap:var(--s2);border:1px solid var(--line-strong);background:var(--input-bg);padding:0 var(--s1) 0 var(--s3);min-height:48px;flex:none}
.search-form:focus-within{outline:2px solid var(--focus);outline-offset:2px}
.search-form>.hbtn-icon{color:var(--muted)}
.search-form input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font-size:1.05rem;padding:10px 0}
.search-form input:focus-visible{outline:none}
.search-form input::placeholder{color:var(--muted);opacity:1}
.search-form input::-webkit-search-cancel-button{display:none}
.search-clear{display:inline-flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;border:0;background:transparent;color:var(--muted);border-radius:var(--control-radius)}
.search-clear:hover{color:var(--ink);background:var(--hover)}
.search-clear[hidden]{display:none}
.search-intro{margin-top:var(--s3);color:var(--muted)}
.search-status{font-size:.8rem;color:var(--muted);margin:var(--s3) 0 var(--s1);flex:none}
.search-status:empty{display:none}
.search-results{list-style:none;padding:0 var(--s1);margin:0 calc(-1 * var(--s1));overflow-y:auto;overscroll-behavior:contain;min-height:0;flex:1}
.search-results li+li{border-top:1px solid var(--line)}
.search-result{display:block;padding:var(--s3) var(--s3) var(--s3) calc(var(--s3) - 3px);border-left:3px solid transparent;color:var(--text);text-decoration:none}
.search-result:hover{background:var(--hover);border-left-color:var(--line-strong)}
.search-result:focus-visible{outline:2px solid var(--focus);outline-offset:-2px;background:var(--hover);border-left-color:var(--accent)}
.search-meta{display:flex;align-items:baseline;gap:var(--s2);font-size:var(--fs-meta);color:var(--muted);margin-bottom:3px;min-width:0}
.search-type{flex:none;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.search-context{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.search-context::before{content:'·';margin-right:var(--s2)}
.search-title{display:block;font-family:var(--serif);font-size:1.1rem;line-height:1.3;color:var(--ink)}
.search-excerpt{display:block;font-size:.875rem;line-height:1.55;margin-top:4px;color:var(--text)}
.search-statuses{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.search-result mark{background:transparent;color:var(--ink);font-weight:700;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:2px}
.search-hint{margin-top:var(--s2);padding-top:var(--s2);border-top:1px solid var(--line);color:var(--muted);flex:none}
/* Phones: a full-screen sheet. */
@media(max-width:650px){.search-dialog{width:100%;height:100%;max-height:100%;margin:0;border:0;border-top:2px solid var(--accent)}
.search-panel{padding:var(--s3) var(--s4) var(--s2)}
.search-hint{display:none}
.search-title{font-size:1.02rem}
}

/* ---------- Responsive components ---------- */
@media(min-width:1180px){.archive-list{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.kn-infer{grid-template-columns:1fr}}
@media(max-width:650px){
.prototype-note{flex-direction:column;align-items:start;gap:2px;font-size:.78rem;line-height:1.5}
.locale-notice{flex-direction:column;align-items:start;gap:2px}
.investigation-grid,.related-grid{grid-template-columns:1fr}
.area-panel{grid-column:1}
.search-box{width:100%}
.search-box input{width:100%}
.archive-row{grid-template-columns:26px minmax(0,1fr);gap:var(--s2) var(--s3);padding:var(--s3) 0}
.archive-row>.compact-wrap{grid-column:2;max-width:none}
.archive-row>.card-arrow{display:none}
.kn-node{margin-top:var(--s6);padding-top:var(--s4)}
.kn-node>h3{font-size:1.25rem}
.kn-short{padding:var(--s3) var(--s4)}
.kn-limits{grid-template-columns:1fr}
.kn-dl div{grid-template-columns:1fr;gap:0}
.kn-scroll-hint{display:block}
.kn-chain li{padding:0 0 var(--s5) var(--s4)}
.kn-matrix{padding:var(--s3)}
.imp-split{grid-template-columns:1fr;gap:0}
}
