/* UpSide design system — the same tokens and components as the AI-in-Europe front end (app/app/globals.css there).
   Light palette on :root; dark via prefers-color-scheme (guarded) and a data-theme override so the in-app toggle
   wins in both directions. Colour law: violet = machine-written, green = human-written / confirmed, coral = brand
   accent — and none of the three anywhere else. */
:root{
  --ground:#F5F0E6;--surface:#fff;--surface-2:#F5F0E6;--ink:#2C3E50;--ink-2:#64748B;--ink-3:#94A3B8;
  --hairline:rgba(44,62,80,.20);--hairline-soft:rgba(44,62,80,.10);
  --accent:#EE6267;--accent-ink:#C94A4F;--accent-wash:rgba(238,98,103,.10);
  --cta:#EE6267;--cta-hover:#C94A4F;--brand:#2C3E50;--brand-contrast:#fff;
  --good:#0a7d0a;--good-wash:rgba(10,125,10,.08);--good-line:rgba(10,125,10,.4);
  --warning:#8a6106;--warning-dot:#d99a0b;--critical:#b32f2f;--critical-wash:rgba(179,47,47,.08);
  --row-hover:rgba(44,62,80,.04);--row-selected:rgba(238,98,103,.07);
  --shadow:0 1px 2px rgba(44,62,80,.04),0 6px 22px rgba(44,62,80,.07);
  --shadow-lg:0 1px 2px rgba(44,62,80,.06),0 16px 44px rgba(44,62,80,.13);
  --vfor:#4b9b3f;--vag:#b32f2f;--vab:#94A3B8;--vdnv:#cbd3db;
  --r0:#EE6267;--r1:#2C3E50;--r2:#4A5E72;--r3:#64748B;--r4:#8998A8;--r5:#AEB9C4;--r6:#C9D2DB;
  --ai:#6D5BD0;--ai-ink:#5B4BB8;--ai-wash:rgba(109,91,208,.09);--ai-line:rgba(109,91,208,.38);
  --mark-hl:rgba(217,154,11,.28);
  /* type scale (CS-0013 §3.2): 11 is for tracking labels only; chips never go below 12 */
  --fs-11:11px;--fs-12:12px;--fs-13:13px;--fs-14:14px;--fs-16:16px;--fs-20:20px;--fs-24:24px;
  --pad-y:10px;--pad-x:12px;
}
html[data-density="compact"]{--pad-y:6px;--pad-x:10px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --ground:#10151a;--surface:#182027;--surface-2:#212b34;--ink:#eef1f4;--ink-2:#a5b0bc;--ink-3:#76828e;
  --hairline:rgba(238,241,244,.15);--hairline-soft:rgba(238,241,244,.07);
  --accent:#F2797D;--accent-ink:#F2797D;--accent-wash:rgba(242,121,125,.10);
  --cta:#EE6267;--cta-hover:#C94A4F;--brand:#dbe4ec;--brand-contrast:#1a2530;
  --good:#34b234;--good-wash:rgba(52,178,52,.12);--good-line:rgba(52,178,52,.4);
  --warning:#e0a52a;--warning-dot:#e0a52a;--critical:#e06060;--critical-wash:rgba(224,96,96,.12);
  --row-hover:rgba(238,241,244,.05);--row-selected:rgba(242,121,125,.10);
  --shadow:0 1px 2px rgba(0,0,0,.3),0 4px 16px rgba(0,0,0,.25);
  --shadow-lg:0 1px 2px rgba(0,0,0,.35),0 16px 44px rgba(0,0,0,.5);
  --vfor:#4fb03f;--vag:#e06060;--vab:#76828e;--vdnv:#39434e;
  --r0:#F2797D;--r1:#dbe4ec;--r2:#b8c6d4;--r3:#93a4b4;--r4:#71828f;--r5:#586674;--r6:#414c58;
  --ai:#A79AF0;--ai-ink:#B4A9F5;--ai-wash:rgba(167,154,240,.12);--ai-line:rgba(167,154,240,.42);
  --mark-hl:rgba(224,165,42,.32);
}}
:root[data-theme="dark"]{
  --ground:#10151a;--surface:#182027;--surface-2:#212b34;--ink:#eef1f4;--ink-2:#a5b0bc;--ink-3:#76828e;
  --hairline:rgba(238,241,244,.15);--hairline-soft:rgba(238,241,244,.07);
  --accent:#F2797D;--accent-ink:#F2797D;--accent-wash:rgba(242,121,125,.10);
  --cta:#EE6267;--cta-hover:#C94A4F;--brand:#dbe4ec;--brand-contrast:#1a2530;
  --good:#34b234;--good-wash:rgba(52,178,52,.12);--good-line:rgba(52,178,52,.4);
  --warning:#e0a52a;--warning-dot:#e0a52a;--critical:#e06060;--critical-wash:rgba(224,96,96,.12);
  --row-hover:rgba(238,241,244,.05);--row-selected:rgba(242,121,125,.10);
  --shadow:0 1px 2px rgba(0,0,0,.3),0 4px 16px rgba(0,0,0,.25);
  --shadow-lg:0 1px 2px rgba(0,0,0,.35),0 16px 44px rgba(0,0,0,.5);
  --vfor:#4fb03f;--vag:#e06060;--vab:#76828e;--vdnv:#39434e;
  --r0:#F2797D;--r1:#dbe4ec;--r2:#b8c6d4;--r3:#93a4b4;--r4:#71828f;--r5:#586674;--r6:#414c58;
  --ai:#A79AF0;--ai-ink:#B4A9F5;--ai-wash:rgba(167,154,240,.12);--ai-line:rgba(167,154,240,.42);
  --mark-hl:rgba(224,165,42,.32);
}

/* ---- base ---- */
*{box-sizing:border-box}
html{color-scheme:light dark}
body{margin:0;background:var(--ground);color:var(--ink);
  font:var(--fs-14)/1.5 "Inter","Inter Tight",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
/* Links are ink; coral is kept for the current position and the one primary action on a page (CS-0013 §3.1). */
a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--hairline);text-underline-offset:2px} a:hover{text-decoration-color:var(--accent)}
.panel a,.card a,.filecard a,.mepcard a,.titem a,nav a,.chips a,.tabs a,.viewtabs a,.linklist a,.badge,.btn{text-decoration:none}
.panel a:hover,.card a:hover,.titem a:hover{text-decoration:underline}
h1,h2,h3,h4{letter-spacing:-.02em;line-height:1.15}
h2{font-size:16px;font-weight:600;margin:0 0 12px} h3{font-size:14px;font-weight:600;margin:0 0 8px}
p{margin:0 0 .6em}
.wrap{max-width:min(100%,1560px);margin:0 auto;padding:0 28px 48px}
.label{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.muted{color:var(--ink-3)} .small{font-size:12px} .tnum,.num{font-variant-numeric:tabular-nums}
.nowrap{white-space:nowrap} .right{text-align:right}
.mono,code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:var(--surface-2);padding:1px 5px;border-radius:4px;word-break:break-all}
.trunc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mono.nowrap{word-break:normal;white-space:nowrap}
.brandline{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:15px;font-weight:600;letter-spacing:-.02em;color:var(--ink)}
.brandline .mark{width:17px;height:auto;flex:none}
.brandline .up{color:var(--accent)} .brandline .product{color:var(--ink-2);font-weight:600;font-size:14px}
.pre{white-space:pre-wrap}

/* ---- left-hand app menu: sections on the left, the page keeps its own controls ---- */
aside.sidenav{position:fixed;top:0;bottom:0;left:0;width:212px;display:flex;flex-direction:column;
  padding:18px 12px 14px;border-right:1px solid var(--hairline-soft);background:var(--surface);z-index:20;overflow-y:auto}
/* cause-area view toggle (WS2): a segmented switch under the lockup; a view, not a permission */
aside.sidenav .viewtoggle{display:flex;gap:2px;margin:12px 0 0;padding:2px;border:1px solid var(--hairline);border-radius:7px;background:var(--ground)}
aside.sidenav .viewtoggle a{flex:1;min-width:0;text-align:center;font-size:var(--fs-13);font-weight:600;padding:5px 6px;border-radius:5px;color:var(--ink-2);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
aside.sidenav .viewtoggle a:hover{color:var(--ink)}
aside.sidenav .viewtoggle a.on{background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px var(--hairline-soft)}
aside.sidenav form.search{margin:12px 0 4px;position:relative}
aside.sidenav form.search input{width:100%;font-size:var(--fs-13);padding:7px 10px 7px 30px;border-radius:6px;border:1px solid var(--hairline);background:var(--ground);color:var(--ink)}
aside.sidenav form.search::before{content:"";position:absolute;left:10px;top:50%;width:11px;height:11px;margin-top:-7px;border:1.6px solid var(--ink-3);border-radius:50%;box-shadow:4px 4px 0 -2px var(--ink-3)}
aside.sidenav form.search kbd{position:absolute;right:8px;top:50%;transform:translateY(-50%);font:600 10px/1 ui-monospace,monospace;color:var(--ink-3);border:1px solid var(--hairline-soft);border-radius:3px;padding:2px 4px}
aside.sidenav .navgroup{margin:14px 8px 4px;font-size:10.5px}
aside.sidenav .sections a{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:6px;color:var(--ink-2);font-size:var(--fs-13);font-weight:500}
aside.sidenav .utilities{display:flex;gap:10px;flex-wrap:wrap;padding:10px 10px 0;font-size:var(--fs-12)} aside.sidenav .utilities a{color:var(--ink-3)}
aside.sidenav .brand{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px;min-width:0;font-weight:600;color:var(--ink);letter-spacing:-.02em;padding:0 8px 16px;border-bottom:1px solid var(--hairline-soft)}
aside.sidenav .brand .mark{width:15px;height:auto;flex:none;align-self:center}
aside.sidenav .brand .up{color:var(--accent)}
aside.sidenav .brand .product{color:var(--ink);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
aside.sidenav .brand:hover{text-decoration:none} aside.sidenav .brand:hover .product{text-decoration:underline}
aside.sidenav .sections{display:flex;flex-direction:column;gap:1px;margin-top:6px}
aside.sidenav .sections a:hover{background:var(--row-hover);color:var(--ink);text-decoration:none}
aside.sidenav .sections a.on{background:var(--accent-wash);color:var(--accent-ink);box-shadow:inset 3px 0 0 var(--accent);font-weight:600}
aside.sidenav .slabel{font-size:var(--fs-13)}
aside.sidenav .sections a .n{margin-left:auto;font-size:var(--fs-11);color:var(--ink-3);font-variant-numeric:tabular-nums}
aside.sidenav .spacer{flex:1}
aside.sidenav .session{display:flex;flex-direction:column;gap:8px;padding:12px 8px 0;border-top:1px solid var(--hairline-soft)}
aside.sidenav .who{color:var(--ink-3);font-size:11.5px;overflow:hidden;text-overflow:ellipsis}
aside.sidenav .sessrow{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
aside.sidenav .sessrow form{margin:0}
aside.sidenav .privlink{color:var(--ink-3);font-size:11px}
aside.sidenav .disclosure{color:var(--ink-3);font-size:10.5px;line-height:1.45}
body:has(aside.sidenav){padding-left:212px}
@media (max-width:900px){
  aside.sidenav{position:static;width:auto;flex-direction:row;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 14px;border-right:none;border-bottom:1px solid var(--hairline-soft);overflow:visible}
  aside.sidenav .brand{border-bottom:none;padding:0}
  aside.sidenav .sections{flex-direction:row;flex-wrap:wrap;margin-top:0}
  aside.sidenav .sections a{padding:6px 9px}
  aside.sidenav .navgroup,aside.sidenav form.search{display:none}
  aside.sidenav .viewtoggle{margin:0} aside.sidenav .viewtoggle a{flex:none;overflow:visible}
  aside.sidenav .spacer{display:none}
  aside.sidenav .session{border-top:none;padding:0;flex-direction:row;align-items:center}
  aside.sidenav .who,aside.sidenav .privlink,aside.sidenav .disclosure{display:none}
  body:has(aside.sidenav){padding-left:0}
}

/* ---- masthead, badges, buttons ---- */
/* Compact page header (CS-0013 §3.3): the title restates the nav, so it takes one line, not a viewport row. */
.masthead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 0 12px;border-bottom:1px solid var(--hairline)}
.masthead .eyebrow{margin-bottom:4px;color:var(--ink-3)} .masthead .eyebrow a{color:var(--ink-3);text-decoration:none} .masthead .eyebrow a:hover{color:var(--ink)}
.masthead h1{margin:0;font-size:var(--fs-24);font-weight:600;letter-spacing:-.02em;line-height:1.15;text-wrap:balance}
.masthead h1 .h1sub{color:var(--ink-3);font-weight:500}
.masthead .sub{margin:4px 0 0;color:var(--ink-2);font-size:var(--fs-13);max-width:78ch}
.mast-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-bottom:2px}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:6px 12px;border-radius:9999px;border:1px solid var(--hairline);color:var(--ink-2);background:var(--surface);white-space:nowrap}
.badge.ai{border-color:var(--ai-line);color:var(--ai-ink);background:var(--ai-wash)} .badge .bdot{width:6px;height:6px;border-radius:50%;background:currentColor}
.badge.good{border-color:var(--good-line);color:var(--good)} .badge.warn{border-color:var(--warning-dot);color:var(--warning)}
a.badge:hover{text-decoration:none;border-color:var(--accent);color:var(--ink)}
.toggle{font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;background:var(--surface);color:var(--ink-2);border:1px solid var(--hairline);border-radius:9999px;padding:6px 13px}
.toggle:hover{border-color:var(--accent);color:var(--ink)}
button{font-family:inherit}
button.primary,.btn.primary{font-size:13px;font-weight:600;border-radius:9999px;padding:10px 18px;cursor:pointer;background:var(--cta);color:#fff;border:1px solid var(--cta);display:inline-block}
button.primary:hover,.btn.primary:hover{background:var(--cta-hover);border-color:var(--cta-hover);text-decoration:none}
button.primary:disabled{opacity:.45;cursor:default}
button.ghost,.btn.ghost{font-size:13px;font-weight:600;border-radius:9999px;padding:9px 16px;cursor:pointer;background:transparent;color:var(--ink);border:1.5px solid var(--hairline);display:inline-block}
button.ghost:hover,.btn.ghost:hover{border-color:var(--ink);text-decoration:none}
button.plain,.btn.plain{font-size:13px;font-weight:600;border:none;border-radius:6px;padding:8px 14px;background:var(--brand);color:var(--brand-contrast);cursor:pointer;display:inline-block}
button.plain:hover,.btn.plain:hover{opacity:.92;text-decoration:none}
button.plain:disabled{opacity:.5;cursor:default}
button.secondary,.btn.secondary{font-size:12px;font-weight:600;border-radius:9999px;padding:6px 13px;cursor:pointer;background:var(--surface);color:var(--ink-2);border:1px solid var(--hairline);display:inline-block}
button.secondary:hover,.btn.secondary:hover{border-color:var(--accent);color:var(--ink);text-decoration:none}
button.secondary:disabled{opacity:.45;cursor:default}
button.danger{font-size:12px;font-weight:600;border-radius:9999px;padding:6px 13px;cursor:pointer;background:var(--critical-wash);color:var(--critical);border:1px solid color-mix(in srgb,var(--critical) 40%,transparent)}
.chip:focus-visible,select:focus-visible,input:focus-visible,button:focus-visible,textarea:focus-visible,a:focus-visible,tr:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ---- KPI tiles ---- */
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-top:20px}
.kpis.two{grid-template-columns:repeat(2,minmax(0,220px))} .kpis.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.tile{background:var(--surface);border:1px solid var(--hairline-soft);border-radius:8px;box-shadow:var(--shadow);padding:14px 16px 12px;min-width:0}
.tile .val{font-size:var(--fs-24);font-weight:650;line-height:1.1;margin-top:6px;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.tile .val.sm{font-size:22px}
.tile .note{font-size:12px;color:var(--ink-2);margin-top:3px} .tile .delta{color:var(--accent-ink);font-weight:600}

/* ---- filters, chips, forms ---- */
.filters{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-top:16px}
.filters label{display:flex;flex-direction:column;gap:4px;margin:0;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.filters label.inline{flex-direction:row;align-items:center;gap:6px;text-transform:none;letter-spacing:0;font-size:12.5px;font-weight:500;color:var(--ink-2);padding-bottom:9px}
.filters select,.filters input{font-family:inherit;font-size:13px;color:var(--ink);background:var(--surface);border:1px solid var(--hairline);border-radius:6px;padding:8px 10px;min-width:0}
.filters input[type=search],.filters input[type=text],.filters input:not([type]){width:190px} .filters .spacer{flex:1}
.filters .actions{display:flex;gap:8px;align-items:center;padding-bottom:1px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{font-family:inherit;font-size:12.5px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums;padding:7px 11px;border-radius:999px;border:1px solid var(--hairline);background:var(--surface);color:var(--ink-2);cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.chip .n{color:var(--ink-3);font-weight:500;margin-left:3px} .chip:hover{border-color:var(--accent);color:var(--ink);text-decoration:none}
.chip.on{background:var(--brand);border-color:var(--brand);color:var(--brand-contrast)} .chip.on .n{color:var(--brand-contrast);opacity:.7}
.viewtabs{display:inline-flex;gap:2px;background:var(--surface-2);border:1px solid var(--hairline-soft);border-radius:8px;padding:3px;flex-wrap:wrap}
.viewtabs a,.viewtabs button{font-family:inherit;font-size:12.5px;font-weight:600;border:none;background:transparent;color:var(--ink-2);border-radius:6px;padding:6px 12px;cursor:pointer}
.viewtabs a:hover,.viewtabs button:hover{color:var(--ink);text-decoration:none}
.viewtabs a.on,.viewtabs button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
form.stack{display:flex;flex-direction:column;gap:2px}
form.stack label,.field label{display:block;font-size:12px;color:var(--ink-2);margin:12px 0 4px}
form.stack label.inline{display:flex;align-items:center;gap:8px;margin-top:12px}
form.stack label.inline input{width:auto}
input,select,textarea{font-family:inherit;font-size:13px;color:var(--ink);background:var(--surface);border:1px solid var(--hairline);border-radius:6px;padding:8px 10px;max-width:100%}
form.stack input:not([type=checkbox]):not([type=radio]),form.stack select,form.stack textarea{width:100%}
textarea{resize:vertical;min-height:72px;line-height:1.5}
.formrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}
.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px} @media (max-width:700px){.formgrid{grid-template-columns:1fr}}
.inlineform{display:inline-flex;gap:4px;align-items:center;flex-wrap:wrap;margin:0}
.notice{border-radius:8px;padding:10px 14px;margin:12px 0;font-size:13px;border:1px solid var(--hairline-soft);background:var(--surface-2);color:var(--ink)}
.notice.error{color:var(--critical);background:var(--critical-wash);border-color:color-mix(in srgb,var(--critical) 30%,transparent)}
.notice.good{color:var(--good);background:var(--good-wash);border-color:var(--good-line)}
.notice.ai{border:1px solid var(--ai-line);background:var(--ai-wash);color:var(--ink)} .notice.ai b{color:var(--ai-ink)}

/* ---- panels and tables ---- */
.panel{background:var(--surface);border:1px solid var(--hairline-soft);border-radius:8px;box-shadow:var(--shadow);margin-top:14px;min-width:0}
.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--hairline-soft);flex-wrap:wrap}
.panel-head .count{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.panel-head .label{display:inline-flex;align-items:center;gap:6px}
.panel .pad{padding:14px 16px} .panel .pad>:last-child{margin-bottom:0}
.tfoot{padding:10px 16px;font-size:12px;color:var(--ink-3);border-top:1px solid var(--hairline-soft)}
.tablewrap{overflow-x:auto;max-width:100%}
table{border-collapse:collapse;width:100%;font-size:13px}
thead th{text-align:left;padding:8px var(--pad-x);font-size:var(--fs-11);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--hairline);white-space:nowrap}
thead th.num{text-align:right}
tbody td{padding:var(--pad-y) var(--pad-x);border-bottom:1px solid var(--hairline-soft);vertical-align:top;font-variant-numeric:tabular-nums;color:var(--ink-2)}
tbody td a{color:var(--ink);font-weight:500} tbody td a:hover{color:var(--accent-ink)}
tbody td.num{text-align:right;color:var(--ink)}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover td{background:var(--row-hover)}
table.sortable thead th{cursor:pointer;user-select:none} table.sortable thead th:hover{color:var(--ink)}
table.sortable thead th[data-dir=asc]::after{content:" ▲";font-size:8px} table.sortable thead th[data-dir=desc]::after{content:" ▼";font-size:8px}
td .orgsub,.orgsub{font-size:var(--fs-12);color:var(--ink-3);margin-top:2px}
td .pname,.pname{font-weight:600;color:var(--ink)}
.wrapcell{white-space:normal} .cell-wide{min-width:320px;max-width:520px;white-space:normal;line-height:1.45}
.cell-read{min-width:220px}
.cell-mid{min-width:220px;max-width:340px;white-space:normal;line-height:1.45}
.emptynote{font-size:12.5px;color:var(--ink-3);padding:6px 0}
td.emptynote{padding:16px 12px}

/* ---- chips: seats, groups, themes, tags, stance ---- */
.cmte{display:inline-block;font-size:var(--fs-12);font-weight:600;color:var(--ink-2);background:var(--surface-2);border-radius:3px;padding:2px 6px;white-space:nowrap;margin-right:3px;vertical-align:middle}
.cmte.soft{font-weight:500;color:var(--ink-3);background:transparent;border:1px solid var(--hairline-soft);padding:1px 5px}
.dchips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.dchip{font-size:11.5px;font-weight:600;padding:3px 8px;border-radius:3px;background:var(--surface-2);color:var(--ink-2);display:inline-flex;align-items:center;gap:5px}
.dchip .rd{width:7px;height:7px;border-radius:50%;background:var(--ink-3);display:inline-block}
.ttags{display:inline-flex;flex-wrap:wrap;gap:4px;vertical-align:middle}
.ttag{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-12);color:var(--ink-2);border:1px solid var(--hairline-soft);border-radius:3px;padding:1px 6px;white-space:nowrap}
.ttag.ai{color:var(--ai-ink);border:1px solid var(--ai-line);background:var(--ai-wash);cursor:help}
.ttag.ai.meta{background:transparent;border-style:dashed}
.ttag.human{color:var(--good);border:1px solid var(--good-line);background:var(--good-wash);font-weight:600}
.aibadge{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ai-ink);background:var(--ai-wash);border:1px solid var(--ai-line);padding:1px 5px;border-radius:3px;margin-left:6px;vertical-align:middle;cursor:help;line-height:1.4}
.mismatch{margin-top:4px;padding:3px 7px;border-left:3px solid var(--warning-dot);background:color-mix(in srgb,var(--warning-dot) 10%,transparent);border-radius:0 4px 4px 0;font-size:11.5px;color:var(--ink)}
.okbadge{display:inline-block;font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--good);background:var(--good-wash);padding:2px 6px;border-radius:3px;margin-left:6px;vertical-align:middle}
.srcbadge{display:inline-block;font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);background:var(--surface-2);padding:2px 6px;border-radius:3px;margin-left:6px;vertical-align:middle}
/* machine-read stance relative to the profile perspective: first-class "silent" state, opposition in critical */
.astate{display:inline-block;font-size:var(--fs-11);line-height:1.25;padding:3px 6px;border-radius:4px;white-space:nowrap;font-weight:600;letter-spacing:.02em;vertical-align:middle}
.astate.s-strong{background:var(--ai);color:#fff}
.astate.s-some{background:var(--ai-wash);border:1px solid var(--ai-line);color:var(--ai-ink)}
.astate.s-silent{background:repeating-linear-gradient(45deg,transparent,transparent 2px,var(--ai-wash) 2px,var(--ai-wash) 4px);border:1px dashed var(--ai-line);color:var(--ai-ink)}
.astate.s-opposed{background:var(--critical-wash);border:1px solid var(--critical);color:var(--critical)}
.astate.s-pending{background:transparent;border:1px dashed var(--hairline);color:var(--ink-3);font-weight:500}
.tpos{display:inline-block;font-weight:700;font-size:var(--fs-11);text-transform:uppercase;letter-spacing:.03em;padding:2px 6px;border-radius:3px;white-space:nowrap}
.tpos.for{background:color-mix(in srgb,var(--vfor) 16%,transparent);color:var(--vfor)} .tpos.against{background:color-mix(in srgb,var(--vag) 16%,transparent);color:var(--vag)} .tpos.abstain,.tpos.other{background:var(--surface-2);color:var(--ink-2)}
.tpos.n{min-width:34px;text-align:center}
.stagepill{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:3px;white-space:nowrap}
.stagepill.ok,.stagepill.gathered{background:var(--good-wash);color:var(--good)}
.stagepill.pending,.stagepill.running{background:var(--surface-2);color:var(--ink-3)}
.stagepill.failed{background:var(--critical-wash);color:var(--critical)}
.stagepill.degraded{background:var(--surface-2);color:var(--warning)}
.stagepill.abandoned{background:var(--surface-2);color:var(--ink-3);text-decoration:line-through}
.stagepill.scored{background:var(--accent-wash);color:var(--accent-ink)}
.rd{width:8px;height:8px;border-radius:50%;display:inline-block;vertical-align:middle;flex:none}
.rd.m{background:var(--ai)} .rd.h{background:var(--good)} .rd.n{background:var(--ink-3)}

/* ---- machine-read blocks: everything a model wrote lives inside one of these ---- */
.aiblock{border:1px solid var(--ai-line);border-left:3px solid var(--ai);background:var(--ai-wash);border-radius:8px;padding:11px 13px;margin:10px 0 12px}
.aihead{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.ailabel{font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ai-ink)}
.aiprose{margin:0;font-size:13px;line-height:1.55;color:var(--ink)}
.aiprose.muted-prose{color:var(--ink-2);font-style:italic}
.aistats{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:9px;font-size:11.5px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.aimeta{margin-top:9px;padding-top:7px;border-top:1px dashed var(--ai-line);font-size:10.5px;line-height:1.45;color:var(--ai-ink)}
.aiitem{margin-top:4px;font-size:12px;line-height:1.5;color:var(--ink-2)}
.aiquote{margin:5px 0 0;padding:4px 0 4px 9px;border-left:2px solid var(--ai-line);font-size:12px;line-height:1.5;color:var(--ink-2);display:flex;gap:7px;align-items:flex-start}
.aiquote .rd{margin-top:5px}

/* ---- shares (horizontal bars) and stance distribution ---- */
.shares{display:flex;flex-direction:column;gap:3px}
.share{display:grid;grid-template-columns:minmax(96px,38%) 1fr 34px;align-items:center;gap:8px;width:100%;padding:2px 0;color:var(--ink-2)}
.share .sname{font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .share .sname a{color:inherit}
.share .sbar{height:5px;border-radius:3px;background:var(--surface-2);overflow:hidden} .share .sbar i{display:block;height:100%;border-radius:3px;background:var(--ink-2)}
.shares.ai .share .sbar i{background:var(--ai)}
.share .sval{font-size:11px;font-variant-numeric:tabular-nums;text-align:right;color:var(--ink-3)}
.distro{display:flex;border:1px solid var(--hairline-soft);border-radius:6px;overflow:hidden;font-size:10.5px;font-weight:600;height:22px;background:var(--surface-2)}
.distro span{display:flex;align-items:center;justify-content:center;white-space:nowrap;overflow:hidden;color:#fff;min-width:0}
.distro .d-strong{background:var(--ai)} .distro .d-some{background:var(--ai);opacity:.55} .distro .d-silent{background:repeating-linear-gradient(45deg,transparent,transparent 3px,var(--ai-line) 3px,var(--ai-line) 5px);color:var(--ai-ink)} .distro .d-opposed{background:var(--critical)}
.distro.mini{height:12px;font-size:0}
.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:11.5px;color:var(--ink-3);margin-top:10px} .legend span{display:inline-flex;align-items:center;gap:6px}
.spark{display:flex;align-items:flex-end;gap:1px;height:56px;padding:6px 0 0}
.spark span{flex:1;background:var(--r5);min-width:2px;position:relative;border-radius:1px 1px 0 0}.spark span i{display:block;background:var(--ai);position:absolute;bottom:0;left:0;right:0}

/* ---- detail headers, sections, evidence trail ---- */
.dhead{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.dportrait{width:60px;height:60px;flex:0 0 60px;border-radius:50%;object-fit:cover;object-position:center 30%;background:var(--surface-2);border:1px solid var(--hairline-soft)}
.dinitials{display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:600;color:var(--ink-3);letter-spacing:.02em}
.dsection{margin-top:18px;padding-top:15px;border-top:1px solid var(--hairline-soft)}
.dsection>.label{display:block;margin-bottom:9px}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
.fact .fk{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em} .fact .fv{font-size:13px;font-weight:600;margin-top:2px}
.fact.full{grid-column:1/-1} .fact .fsub{display:block;font-size:11px;font-weight:500;color:var(--ink-3);margin-top:2px}
.titems{display:flex;flex-direction:column}
.titem{padding:9px 0;border-bottom:1px dashed var(--hairline-soft)} .titem:last-child{border-bottom:none}
.titem .tmeta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-3);margin-bottom:3px}
.ttype{font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:9.5px;color:var(--ink-3);background:var(--surface-2);padding:2px 6px;border-radius:3px}
.titem .ttitle{font-size:12.5px;color:var(--ink);line-height:1.45} .titem .ttitle a{color:var(--ink);font-weight:500} .titem .ttitle a:hover{color:var(--accent-ink)}
.titem .tsrc{font-size:11px;color:var(--ink-3);margin-top:2px}
.src{padding:6px 0;border-bottom:1px dashed var(--hairline-soft);font-size:12.5px;line-height:1.45;color:var(--ink-2)} .src:last-child{border-bottom:none} .src a{color:var(--accent-ink)}
details.fold>summary{cursor:pointer;list-style:none;color:var(--ink-2);font-size:13px} details.fold>summary::-webkit-details-marker{display:none}
details.fold>summary::before{content:"▸";display:inline-block;width:11px;margin-right:4px;color:var(--ink-3);font-size:10px;transition:transform .15s ease}
details.fold[open]>summary::before{transform:rotate(90deg)}
details.fold>summary .label{display:inline}
.verbatim{white-space:pre-wrap;font-size:13.5px;border-left:3px solid var(--brand);padding-left:14px;line-height:1.6;color:var(--ink)}
.verbatim.quiet{border-left-color:var(--hairline)}
.texts-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.texts-grid .col{background:var(--surface);border:1px solid var(--hairline-soft);border-radius:8px;box-shadow:var(--shadow);padding:14px 16px;white-space:pre-wrap;font-size:13.5px;line-height:1.6;min-width:0}
.texts-grid .col .label{display:block;margin-bottom:8px;white-space:normal}
mark{background:var(--mark-hl);color:inherit;padding:0 1px;border-radius:2px}
.lower{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);gap:16px;align-items:start;margin-top:14px}
.lower.even{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.lower>*{min-width:0}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:14px}
.card{background:var(--surface);border:1px solid var(--hairline-soft);border-radius:8px;box-shadow:var(--shadow);padding:16px 18px;min-width:0}
.card h2,.card h3{margin-top:0}
.card+.card{margin-top:14px}
.list{list-style:none;margin:0;padding:0} .list li{padding:8px 0;border-bottom:1px dashed var(--hairline-soft);font-size:13px} .list li:last-child{border-bottom:none}
ul.bullets{margin:0;padding-left:18px} ul.bullets li{margin:4px 0;font-size:13px}
.prose{max-width:72ch;font-size:13.5px;line-height:1.6;color:var(--ink)} .prose p{margin:0 0 .8em} .prose li{margin:.3em 0}
blockquote.perspective{margin:0;padding:10px 14px;border-left:3px solid var(--accent);background:var(--accent-wash);border-radius:0 6px 6px 0;font-size:13px;line-height:1.55}
footer.scope{margin-top:28px;padding-top:14px;border-top:1px solid var(--hairline);font-size:12px;color:var(--ink-3);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.wordmark{font-weight:600;color:var(--ink);letter-spacing:-.02em;font-size:13px;white-space:nowrap} .wordmark .updot{color:var(--accent)}
.pager{display:flex;gap:14px;margin-top:14px;font-size:13px}

/* ---- auth pages (no menu) ---- */
main.auth{max-width:440px;margin:60px auto;padding:0 20px}
main.auth .card{padding:26px 28px}
main.auth h1{font-size:24px;font-weight:600;margin:4px 0 8px}
main.auth .sub{color:var(--ink-2);font-size:13px;margin:0 0 6px}
main.auth form.stack button{margin-top:18px;width:100%}
main.auth .authfoot{margin-top:18px;font-size:11.5px;color:var(--ink-3);line-height:1.5}
main.auth.wide{max-width:760px}
main.auth .terms{margin:14px 0 6px;color:var(--ink)}
main.auth .terms h2{font-size:15px;font-weight:600;margin:20px 0 6px}
main.auth .terms p,main.auth .terms li{font-size:13.5px;line-height:1.6}
main.auth .terms p{margin:0 0 10px} main.auth .terms ul{margin:0 0 10px;padding-left:20px} main.auth .terms li{margin-bottom:4px}
.stack label.accept{display:flex;align-items:flex-start;gap:8px;margin-top:14px;font-size:13px;color:var(--ink);line-height:1.45}
.stack label.accept input{width:auto;margin-top:2px;flex:none}
button.linklike{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
main.auth form.stack button.linklike{width:auto;margin:0}fieldset.survey-q{border:0;border-top:1px solid var(--hairline-soft);margin:14px 0 0;padding:12px 0 0}fieldset.survey-q legend{font-size:13.5px;line-height:1.5;color:var(--ink);padding:0;margin-bottom:8px}fieldset.survey-q .qnum{display:block;font-size:12px;font-weight:600;color:var(--ink-2)}.survey-options{display:flex;flex-wrap:wrap;gap:6px 16px}.survey-options.scale{gap:6px 12px}form.stack label.survey-option{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:13px;color:var(--ink)}form.stack label.survey-option input{width:auto}.survey-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}main.auth form.stack .survey-actions button{margin-top:0;width:100%}p.survey-hint{margin:4px 0 0}h3.survey-result-q{font-size:14px;margin:18px 0 2px}ul.survey-texts{margin:4px 0 10px;padding-left:20px}ul.survey-texts li{font-size:13px;line-height:1.5;margin-bottom:6px;white-space:pre-wrap}

/* ---- files: working-group rail and dossier components (structure from the coalition prototype) ---- */
.files-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:22px;margin-top:14px}@media(max-width:900px){.files-layout{grid-template-columns:1fr}}
.rail .label{display:block;margin:0 9px 7px}
.rail a.railitem{display:block;margin-bottom:4px;padding:9px 10px;border-radius:6px;color:var(--ink-2)}
.rail a.railitem:hover{background:var(--row-hover);color:var(--ink);text-decoration:none}
.rail a.railitem.on{background:var(--accent-wash);color:var(--accent-ink);box-shadow:inset 3px 0 0 var(--accent)}
.rail a.railitem strong{display:block;font-size:13px} .rail a.railitem span{display:block;margin-top:2px;color:var(--ink-3);font-size:11.5px} .rail a.railitem.on span{color:var(--accent-ink);opacity:.75}
.file-name{font-weight:600} .file-goal{min-width:220px;max-width:380px;white-space:normal}
.status-banner{display:grid;gap:7px;padding:13px 15px;border:1px solid var(--hairline-soft);border-left:3px solid var(--accent);border-radius:8px;background:var(--surface);box-shadow:var(--shadow);margin-top:14px}
.status-banner .row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap} .status-banner strong{font-size:14px}
.status-banner p{margin:0;font-size:13px;color:var(--ink-2)}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}@media(max-width:700px){.detail-grid{grid-template-columns:1fr}}
.detail-box{display:grid;gap:6px;align-content:start;padding:13px 15px;border:1px solid var(--hairline-soft);border-radius:8px;background:var(--surface-2)}
.detail-box p{margin:0;font-size:13px;color:var(--ink-2)} .detail-box strong{font-size:14px}
.section{margin:18px 0} .section h3{margin:0 0 8px}
.timeline{display:grid;gap:0}.timeline-row{display:grid;grid-template-columns:104px 1fr;gap:10px;padding:8px 0;border-bottom:1px dashed var(--hairline-soft);font-size:13px}.timeline-row:last-child{border-bottom:0}.timeline-row strong{font-size:12px;color:var(--ink-3);font-weight:600;font-variant-numeric:tabular-nums}
.assumption{padding:10px 12px;border-left:3px solid var(--warning-dot);background:color-mix(in srgb,var(--warning-dot) 10%,transparent);border-radius:0 6px 6px 0;margin:6px 0;font-size:13px}
.human-note{padding:10px 12px;border-left:3px solid var(--good);background:var(--good-wash);border-radius:0 6px 6px 0;margin:6px 0;font-size:13px}
.human-note.private{border-left-color:var(--ink-2);background:var(--surface-2)}
.review-context .facts{margin-bottom:14px}.review-texts{margin-top:14px}.review-justification{margin-top:14px}.review-justification .verbatim{margin-top:10px}
.review-intro{font-size:13px;color:var(--ink-2);border-bottom:1px solid var(--hairline-soft)}
.claim-review{padding:18px 16px;border-bottom:1px solid var(--hairline-soft)}.claim-review:last-child{border-bottom:0}
.claim-review-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.claim-quote{margin:10px 0 16px;padding:11px 14px;border-left:3px solid var(--accent);background:var(--accent-wash);border-radius:0 6px 6px 0;font-size:13.5px;line-height:1.6;color:var(--ink)}
.review-reading-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(340px,1.1fr);gap:18px;align-items:start}.review-reading-grid .label{display:block;margin-bottom:8px}.aiblock.compact{margin:0 0 9px}.review-tags{display:flex;gap:6px;align-items:flex-start;flex-wrap:wrap;margin-top:7px}.review-tags>.small{min-width:48px;padding-top:2px}
.tag-decision{padding:13px 14px;border:1px solid var(--good-line);border-radius:8px;background:var(--good-wash)}.tag-decision fieldset{border:0;margin:0;padding:0}.tag-decision legend{font-size:12px;font-weight:700;color:var(--good);letter-spacing:.06em;text-transform:uppercase}.tag-decision button{margin-top:14px}.decision-facets{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tag-choice{display:grid;grid-template-columns:auto 1fr;gap:2px 7px;align-items:start;padding:6px 0;border-bottom:1px dashed var(--good-line);font-size:12px;cursor:pointer}.tag-choice input{grid-row:span 2;margin-top:3px}.tag-choice b{font-size:12px;color:var(--ink)}.tag-choice span{grid-column:2;font-size:11px;line-height:1.4;color:var(--ink-2)}.additional-tag{display:block;margin-top:9px;font-size:11px;color:var(--ink-2)}.additional-tag input{display:block;width:100%;margin-top:4px}
@media(max-width:800px){.review-reading-grid,.decision-facets{grid-template-columns:1fr}}
.human-note .label{display:block;margin-bottom:4px} .human-note p{margin:0}
.map-legend{display:flex;flex-wrap:wrap;gap:14px;color:var(--ink-3);font-size:12px;margin:8px 0 12px}.legend-key{display:inline-flex;align-items:center;gap:6px}
.org-section{display:grid;gap:12px;padding:14px;border:1px solid var(--hairline-soft);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}
.org-root{display:flex;justify-content:center;padding-bottom:12px;border-bottom:1px solid var(--hairline-soft)}.org-root .node{max-width:340px;width:100%}
.org-branches{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.org-branch{display:grid;gap:8px;align-content:start;padding:10px;border-top:2px solid var(--good);background:var(--surface-2);border-radius:0 0 6px 6px}
.org-children{display:grid;gap:7px;padding-left:9px;border-left:1px solid var(--hairline)}
.org-units{display:grid;gap:8px;margin-top:2px;padding-top:8px;border-top:1px solid var(--hairline-soft)}.org-unit{display:grid;gap:6px;padding:7px;border:1px dashed var(--hairline);background:var(--surface);border-radius:5px}.org-unit-children{display:grid;gap:6px;padding-left:8px;border-left:1px dashed var(--hairline)}
.node{border:1px solid var(--hairline-soft);border-left:3px solid var(--good);border-radius:5px;background:var(--surface)}.node.anonymous{border-left-color:var(--ink-3);border-left-style:dashed}
.node summary{display:grid;gap:2px;padding:8px 9px;cursor:pointer;list-style:none;color:var(--ink)}.node summary::-webkit-details-marker{display:none}.node summary strong{font-size:12.5px}.node summary span{color:var(--ink-3);font-size:11.5px}
.node[open]{border-color:var(--good-line)}.node.anonymous[open]{border-color:var(--hairline)}
.node .node-detail{padding:10px 12px;border-top:1px solid var(--hairline-soft);display:grid;gap:8px;font-size:12.5px;color:var(--ink-2)}.node-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:600px){.node-detail-grid{grid-template-columns:1fr}}
.node-detail strong{color:var(--ink)} .node-detail p{margin:2px 0 0}
.org-branch-title.node{border:0;border-radius:0;background:transparent}.org-branch-title.node summary strong{color:var(--good)}
.tabs{display:flex;gap:2px;flex-wrap:wrap;margin-top:16px;border-bottom:1px solid var(--hairline)}
.tabs a{padding:8px 12px;font-size:13px;font-weight:600;color:var(--ink-2);border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs a:hover{color:var(--ink);text-decoration:none} .tabs a.on{color:var(--accent-ink);border-bottom-color:var(--accent)}

/* ---- graph ---- */
#graph{width:100%;height:640px;background:var(--surface);border:1px solid var(--hairline-soft);border-radius:8px;box-shadow:var(--shadow);margin-top:14px}
#graph text{font-size:10px;fill:var(--ink)}#graph line{stroke:var(--hairline);stroke-width:1}
#graph .n-Mep{fill:var(--r1)}#graph .n-Procedure{fill:var(--accent)}#graph .n-File{fill:var(--accent-ink)}#graph .n-Target{fill:var(--good)}#graph .n-Amendment{fill:var(--r4)}
#graph .n-Theme,#graph .n-MetaTag,#graph .n-Stance{fill:var(--ai)}#graph .n-Organisation{fill:var(--r2)}#graph .n-Meeting{fill:var(--warning-dot)}#graph .n-Vote{fill:var(--vfor)}#graph .n-Speech{fill:var(--r3)}
#graph .n-Sector,#graph .n-OrgType,#graph .n-Group,#graph .n-Committee,#graph .n-Country,#graph .n-WorkingGroup{fill:var(--r5)}#graph .n-Submission{fill:var(--r6)}#graph .n-Consultation{fill:var(--r2)}#graph .n-Cluster{fill:var(--vdnv)}
.glegend{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:11.5px;color:var(--ink-3);margin-top:12px} .glegend span{display:inline-flex;align-items:center;gap:6px}
.glegend .rd.mep{background:var(--r1)} .glegend .rd.proc{background:var(--accent)} .glegend .rd.file{background:var(--accent-ink)} .glegend .rd.target{background:var(--good)} .glegend .rd.am{background:var(--r4)} .glegend .rd.theme{background:var(--ai)} .glegend .rd.org{background:var(--r2)} .glegend .rd.mtg{background:var(--warning-dot)} .glegend .rd.vote{background:var(--vfor)} .glegend .rd.speech{background:var(--r3)} .glegend .rd.sub{background:var(--r6)}

[hidden]{display:none!important}
@media (max-width:800px){.texts-grid,.lower,.lower.even,.facts{grid-template-columns:1fr}.masthead h1{font-size:26px}}

/* ---- stage and action window (rule-derived from the public record: neutral ink, never violet) ---- */
.wbadge{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 9px;border-radius:999px;border:1px solid var(--hairline);color:var(--ink-2);background:var(--surface);white-space:nowrap;vertical-align:middle}
.wbadge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.wbadge.open{border-color:var(--good-line);color:var(--good);background:var(--good-wash)}
.wbadge.closing{border-color:var(--warning-dot);color:var(--warning);background:color-mix(in srgb,var(--warning-dot) 14%,transparent)}
.wbadge.closed{border-color:var(--hairline-soft);color:var(--ink-3);background:var(--surface-2)}
.wbadge.watch{border-style:dashed;color:var(--ink-3)}
.stagegrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}@media (max-width:900px){.stagegrid{grid-template-columns:1fr}}
.stagecard{display:flex;flex-direction:column;gap:8px}
.stagecard .stagetitle{font-size:18px;font-weight:600;letter-spacing:-.01em;line-height:1.25;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.stagecard .stagetitle .headline{font-size:16px}
.stagecard .stagedetail{margin:0;font-size:13px;color:var(--ink-2);line-height:1.5}
.stagesteps{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px 14px;margin-top:2px}
.stagesteps>div{display:flex;flex-direction:column;gap:2px;font-size:13px} .stagesteps .label{font-size:10px}
.actionlist{margin:2px 0 0;padding-left:20px;font-size:13px;line-height:1.5} .actionlist li{margin:3px 0} .actionlist li::marker{color:var(--ink-3);font-weight:700}
.stagecard.window-open{border-left:3px solid var(--good)} .stagecard.window-closing{border-left:3px solid var(--warning-dot)} .stagecard.window-closed{border-left:3px solid var(--hairline)} .stagecard.window-watch{border-left:3px dashed var(--hairline)}
.deadline{font-size:13px} .deadline .label{margin-right:6px}
.penholders{font-size:13px;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline} .penholders .label{width:100%} .pen{white-space:nowrap}
.basis{margin-top:auto;padding-top:8px;border-top:1px dashed var(--hairline-soft);font-size:11px;color:var(--ink-3);line-height:1.45}
/* MEP profile: seats, memberships, links */
.seatlist{display:flex;flex-direction:column;gap:6px} .seatrow{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:baseline;font-size:13px;padding:6px 0;border-bottom:1px dashed var(--hairline-soft)} .seatrow:last-child{border-bottom:none}
.seatrow .cmte{font-size:11.5px} .seatrow .since{font-size:11px;color:var(--ink-3);white-space:nowrap} .seatrow .sname{color:var(--ink);min-width:0}
.seatrow .role{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)} .seatrow .role.lead{color:var(--accent-ink)}
.linklist{display:flex;flex-wrap:wrap;gap:6px} .linklist a{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:5px 10px;border-radius:999px;border:1px solid var(--hairline);color:var(--ink-2);background:var(--surface)} .linklist a:hover{border-color:var(--accent);color:var(--ink);text-decoration:none}
.linklist a.ep{border-color:var(--accent);color:var(--accent-ink)}
.seatcell{display:flex;flex-wrap:wrap;gap:3px;max-width:320px}
.rosterportrait{width:28px;height:28px;border-radius:50%;object-fit:cover;object-position:center 30%;vertical-align:middle;margin-right:8px;background:var(--surface-2);border:1px solid var(--hairline-soft)}
.rosterportrait.blank{display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--ink-3)}
.factline{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12.5px;color:var(--ink-2);margin-top:6px}

/* ---- procedural journey bar (the "files in flight" representation) ---- */
.journey{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;margin-top:2px}
.journey .jb{display:flex;flex-direction:column;gap:1px;padding:7px 8px;border-radius:5px;min-width:0;background:var(--surface-2);border:1px solid var(--hairline-soft);text-align:left}
.journey .jb .jlabel{font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.journey .jb .jnote{font-size:10.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;min-height:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.journey .jb.done{background:color-mix(in srgb,var(--brand) 7%,var(--surface-2))}
.journey .jb.done .jlabel{color:var(--ink-2)} .journey .jb.done .jnote{color:var(--good)}
.journey .jb.current{background:var(--accent);border-color:var(--accent)}
.journey .jb.current .jlabel,.journey .jb.current .jnote{color:#fff}
.journey .jb.forecast{background:var(--surface);border-style:dashed}
.journey .jb.unknown{background:repeating-linear-gradient(45deg,transparent,transparent 3px,var(--hairline-soft) 3px,var(--hairline-soft) 5px);border:1px dashed var(--ink-3)}
.journey .jb.unknown .jlabel{color:var(--ink-2)} .journey .jb.unknown .jnote{color:var(--ink-3)}
.jhere.unknown .jarrow{color:var(--ink-3)}
.journey.compact .jb{padding:4px 6px} .journey.compact .jb .jnote{display:none} .journey.compact .jb .jlabel{font-size:10px}
.jhere{margin-top:7px;font-size:12.5px;color:var(--ink-2)} .jhere .jarrow{color:var(--accent-ink);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.04em} .jhere b{color:var(--ink)}
/* file cards (files list) */
.filecards{display:flex;flex-direction:column;gap:12px;margin-top:0}
.filecard{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:24px;background:var(--surface);border:1px solid var(--hairline-soft);border-radius:8px;box-shadow:var(--shadow);padding:16px 18px}
@media (max-width:820px){.filecard{grid-template-columns:1fr;gap:12px}}
.filecard .fc-ref{font-size:11px;font-weight:600;color:var(--ink-3);font-variant-numeric:tabular-nums}
.filecard .fc-title{font-size:16px;font-weight:600;letter-spacing:-.01em;margin:3px 0 4px} .filecard .fc-title a{color:var(--ink)} .filecard .fc-title a:hover{color:var(--accent-ink)}
.filecard .leadline{font-size:12px;color:var(--ink-2)} .filecard .leadline .cmte{margin-right:2px}
.filecard .fc-summary{font-size:12.5px;color:var(--ink-3);line-height:1.45;margin-top:6px}
.filecard .fc-right{display:flex;flex-direction:column;justify-content:center;min-width:0}
.filecard .fc-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.filecard .fc-meta .mtag{font-size:10.5px;color:var(--ink-3);background:var(--surface-2);border-radius:3px;padding:2px 7px;font-variant-numeric:tabular-nums}


/* ==== CS-0013 components ============================================================================================= */
/* filter chips (categories), active filters */
.chips.cats{margin-top:14px} .chip.on{background:var(--brand)}
.active-filters{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:10px;font-size:var(--fs-12);color:var(--ink-3)}
.active-filters a.chip{font-weight:500} .active-filters a.chip::after{content:" ×";color:var(--ink-3)}
.filters.auto .actions button{display:none} .filters.auto .actions .btn{display:inline-block}
/* fact row (replaces KPI tiles on entity pages) */
.factrow{display:flex;gap:6px 22px;flex-wrap:wrap;align-items:baseline;font-size:var(--fs-13);color:var(--ink-2);margin-top:10px}
.factrow .fk{font-size:var(--fs-11);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-right:6px}
.factrow b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.factrow .sep{color:var(--hairline)}
/* coverage note */
.covnote{font-size:var(--fs-12);color:var(--ink-3);padding:8px 0}
/* Today */
.today{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,1fr);gap:18px;margin-top:16px;align-items:start}
@media (max-width:1000px){.today{grid-template-columns:1fr}}
.today>*{min-width:0}
.section-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:22px 0 8px} .section-h:first-child{margin-top:0}
.section-h h2{margin:0;font-size:var(--fs-16);font-weight:600;letter-spacing:-.01em} .section-h .when{font-size:var(--fs-12);color:var(--ink-3)}
.actlist{display:flex;flex-direction:column;gap:8px}
.actitem{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;padding:12px 14px;border-radius:8px;background:var(--surface);border:1px solid var(--hairline-soft);border-left:3px solid var(--good);box-shadow:var(--shadow)}
.actitem.closing{border-left-color:var(--warning-dot)}
.actitem .at{font-size:var(--fs-14);font-weight:600} .actitem .at a{color:var(--ink)}
.actitem .ah{font-size:var(--fs-13);color:var(--ink-2)} .actitem .ad{text-align:right;font-size:var(--fs-12);color:var(--ink-3);white-space:nowrap} .actitem .ad b{display:block;color:var(--ink);font-size:var(--fs-13)}
.actitem .aa{grid-column:1/-1;font-size:var(--fs-12);color:var(--ink-2)} .actitem .aa li{margin:2px 0}
.feed{display:flex;flex-direction:column}
.feeditem{display:grid;grid-template-columns:78px 1fr;gap:10px;padding:8px 0;border-bottom:1px dashed var(--hairline-soft);font-size:var(--fs-13)} .feeditem:last-child{border-bottom:none}
.feeditem .fw{font-size:var(--fs-12);color:var(--ink-3);font-variant-numeric:tabular-nums;padding-top:2px}
.feeditem .ft{color:var(--ink)} .feeditem .fs{font-size:var(--fs-12);color:var(--ink-3);margin-top:1px}
.feeditem .ttype{margin-right:6px}
.uplist{display:flex;flex-direction:column} .upitem{display:grid;grid-template-columns:86px 1fr;gap:10px;padding:8px 0;border-bottom:1px dashed var(--hairline-soft);font-size:var(--fs-13)} .upitem:last-child{border-bottom:none}
.upitem .ud{font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)} .upitem .ul{color:var(--ink-2)} .upitem .uf{font-size:var(--fs-12);color:var(--ink-3)}
.filerows{display:flex;flex-direction:column} .filerow{display:grid;grid-template-columns:minmax(0,1fr) 150px auto;gap:12px;align-items:center;padding:7px 0;border-bottom:1px dashed var(--hairline-soft);font-size:var(--fs-13)} .filerow:last-child{border-bottom:none}
.filerow .fr-stage{font-size:var(--fs-12);color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.filerow .fr-name a{color:var(--ink);font-weight:500} .filerow .fr-ref{font-size:var(--fs-11);color:var(--ink-3);margin-left:6px;font-variant-numeric:tabular-nums}
.catblock{margin-top:14px} .catblock .label{display:block;margin-bottom:4px}
/* Member cards */
.viewswitch{display:inline-flex;gap:2px;background:var(--surface-2);border:1px solid var(--hairline-soft);border-radius:8px;padding:3px}
.viewswitch a{font-size:var(--fs-12);font-weight:600;color:var(--ink-2);border-radius:6px;padding:5px 10px} .viewswitch a.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
.mepcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-top:14px}
.mepcard{display:grid;grid-template-columns:48px minmax(0,1fr);grid-template-rows:auto auto auto;gap:2px 12px;padding:12px 14px;background:var(--surface);border:1px solid var(--hairline-soft);border-radius:8px;min-width:0}
.mepcard.key{border-left:3px solid var(--accent)}
.mepcard .mp{grid-row:1/span 3;width:48px;height:48px;border-radius:50%;object-fit:cover;object-position:center 30%;background:var(--surface-2);border:1px solid var(--hairline-soft)}
.mepcard .mp.blank{display:flex;align-items:center;justify-content:center;font-size:var(--fs-16);font-weight:600;color:var(--ink-3)}
.mepcard .mn{font-size:var(--fs-14);font-weight:600;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .mepcard .mn a{color:var(--ink)}
.mepcard .mg{font-size:var(--fs-12);color:var(--ink-2);display:flex;gap:6px;align-items:center;flex-wrap:wrap;line-height:1.4}
.mepcard .mrole{font-size:var(--fs-12);color:var(--ink-2);line-height:1.4;margin-top:4px;display:flex;gap:4px 6px;align-items:center;flex-wrap:wrap}
.mepcard .mrole .role{font-weight:600;color:var(--accent-ink)} .mepcard .mrole a{color:var(--ink)} .mepcard .mrole .cmte{margin-right:0;line-height:1.5}
.mepcard .mact{grid-column:1/-1;margin-top:8px;padding-top:7px;border-top:1px dashed var(--hairline-soft);font-size:var(--fs-11);color:var(--ink-3)}
.keyplayers{display:flex;gap:10px;overflow-x:auto;padding:4px 0 6px;margin-top:10px}
.kp{flex:0 0 200px;display:grid;grid-template-columns:40px 1fr;gap:2px 10px;padding:10px 12px;background:var(--surface);border:1px solid var(--hairline-soft);border-radius:8px}
.kp img,.kp .mp{grid-row:1/span 2;width:40px;height:40px;border-radius:50%;object-fit:cover;object-position:center 30%;background:var(--surface-2)} .kp .mp.blank{display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--ink-3)}
.kp .kn{font-size:var(--fs-13);font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .kp .kr{font-size:var(--fs-11);color:var(--ink-3)} .kp .kr .role{color:var(--accent-ink);font-weight:600}
/* entity header (Member, file) */
.ehead{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;padding:20px 0 12px;border-bottom:1px solid var(--hairline)}
.ehead .dportrait{width:72px;height:72px;flex:0 0 72px}
.ehead h1{margin:0;font-size:var(--fs-24);font-weight:600;letter-spacing:-.02em;line-height:1.15}
.ehead .eyebrow{margin-bottom:4px;color:var(--ink-3)} .ehead .eyebrow a{color:var(--ink-3);text-decoration:none} .ehead .eyebrow a:hover{color:var(--ink)}
.ehead .sub{margin:4px 0 0;color:var(--ink-2);font-size:var(--fs-13);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.ehead .ebody{flex:1;min-width:260px} .ehead .eright{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-left:auto}
/* amendments in a file: facet rail + groups + pager + side panel */
.amlayout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px;margin-top:14px;align-items:start}@media(max-width:1000px){.amlayout{grid-template-columns:1fr}}
.facets{position:sticky;top:14px} .facets .label{display:block;margin:12px 0 4px} .facets .label:first-child{margin-top:0}
.facets a{display:flex;justify-content:space-between;gap:8px;padding:4px 8px;border-radius:5px;font-size:var(--fs-12);color:var(--ink-2)} .facets a:hover{background:var(--row-hover);color:var(--ink);text-decoration:none}
.facets a.on{background:var(--brand);color:var(--brand-contrast)} .facets a .n{color:var(--ink-3);font-variant-numeric:tabular-nums} .facets a.on .n{color:var(--brand-contrast);opacity:.7}
.facets input[type=search]{width:100%;margin-top:4px}
.amtop{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
details.amgroup{background:var(--surface);border:1px solid var(--hairline-soft);border-radius:8px;box-shadow:var(--shadow);margin-bottom:10px}
details.amgroup>summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:10px;padding:10px 14px;font-size:var(--fs-13);color:var(--ink)} details.amgroup>summary::-webkit-details-marker{display:none}
details.amgroup>summary::before{content:"▸";width:11px;color:var(--ink-3);font-size:10px;transition:transform .15s ease} details.amgroup[open]>summary::before{transform:rotate(90deg)}
details.amgroup>summary b{font-weight:600} details.amgroup>summary .muted{margin-left:auto;font-size:var(--fs-12)}
.pager{display:flex;gap:6px;align-items:center;margin-top:14px;font-size:var(--fs-13)} .pager a,.pager span{padding:5px 10px;border-radius:6px;border:1px solid var(--hairline-soft);background:var(--surface);color:var(--ink-2)} .pager span.on{background:var(--brand);color:var(--brand-contrast);border-color:var(--brand)} .pager .gap{border:none;background:transparent}
aside.sidepanel{position:fixed;top:0;right:0;bottom:0;width:min(600px,92vw);background:var(--surface);border-left:1px solid var(--hairline);box-shadow:var(--shadow-lg);z-index:40;overflow:auto;padding:18px 22px 40px;display:none}
aside.sidepanel.open{display:block} .sidepanel .sp-close{position:sticky;top:0;float:right;margin:-4px -6px 0 0}
.sidepanel .masthead{padding-top:6px} .sidepanel .texts-grid{grid-template-columns:1fr}
body.has-panel::after{content:"";position:fixed;inset:0;background:rgba(0,0,0,.18);z-index:35}
/* search results */
.results{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:14px}
/* Method coverage table */
.freshness{font-size:var(--fs-12);color:var(--ink-3)}

/* CS-0014 · roll-call votes */
.tpos.dnv{background:var(--vdnv);color:var(--ink-2);font-weight:600}
.intent{font-size:var(--fs-11);color:var(--ink-3);white-space:nowrap;border-bottom:1px dotted var(--ink-3)}
.kindpill{display:inline-block;font-size:var(--fs-11);font-weight:600;letter-spacing:.03em;text-transform:uppercase;padding:2px 7px;border-radius:3px;white-space:nowrap;background:var(--surface-2);color:var(--ink-2)}
.kindpill.final{background:var(--brand);color:var(--brand-contrast)}
.votebar{display:flex;height:20px;border-radius:5px;overflow:hidden;border:1px solid var(--hairline-soft);background:var(--surface-2);font-size:var(--fs-11);font-weight:600;min-width:120px}
.votebar span{display:flex;align-items:center;justify-content:center;color:#fff;overflow:hidden;white-space:nowrap;min-width:0}
.votebar .vb-for{background:var(--vfor)} .votebar .vb-against{background:var(--vag)} .votebar .vb-abstain{background:var(--vab)}
.votebar.mini{height:8px;font-size:0;min-width:80px}
.vhead{display:flex;gap:18px;flex-wrap:wrap;align-items:center;margin-top:10px}
.vhead .vnums{display:flex;gap:10px;align-items:baseline;font-variant-numeric:tabular-nums} .vhead .vnums b{font-size:var(--fs-18);font-weight:600}
.vhead .vnums .lab{font-size:var(--fs-11);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin-left:3px}
.vmember{display:flex;gap:10px;align-items:center;padding:10px 14px;border:1px solid var(--hairline);border-radius:8px;background:var(--surface);margin-top:12px;font-size:var(--fs-13)}
.vmember .who{font-weight:600}
.relvotes{display:flex;flex-direction:column;gap:0} .relvote{display:grid;grid-template-columns:26px 92px 1fr auto;gap:10px;align-items:center;padding:6px 0;border-bottom:1px dashed var(--hairline-soft);font-size:var(--fs-13)}
.relvote:last-child{border-bottom:none} .relvote.on{background:var(--row-hover);margin:0 -8px;padding:6px 8px;border-radius:6px}
.relvote .ro{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:var(--fs-12)} .relvote .rk{font-size:var(--fs-11);color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}
.prevnext{display:flex;justify-content:space-between;gap:12px;margin-top:14px;font-size:var(--fs-13)} .prevnext a{color:var(--ink-2)}
.srclist{list-style:none;padding:0;margin:0} .srclist li{padding:6px 0;border-bottom:1px dashed var(--hairline-soft);font-size:var(--fs-13)} .srclist li:last-child{border-bottom:none} .srclist .sk{font-size:var(--fs-11);color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;margin-right:8px}
.sitnote{margin-top:14px} .sitnote .stat{font-weight:600;text-transform:capitalize}
.status.complete{color:var(--good)} .status.partial,.status.unverified{color:var(--critical)} .status.unpublished{color:var(--ink-3)}
.votetable td.lbl{max-width:520px}

.aiblock.briefing{margin:14px 0 0}.aiblock.briefing .aihead{justify-content:flex-start}.briefing-actions{margin-left:auto;display:flex;gap:6px}.briefing-actions form{margin:0}

/* Two-step sign-in (D-0052). The QR inherits currentColor so it stays legible in both themes without a
   second asset; it sits on an explicit light plate because some scanners struggle with inverted codes. */
.qrwrap{display:flex;justify-content:center;margin:16px 0;padding:14px;background:#fff;border:1px solid var(--hairline);border-radius:10px}
.qrwrap svg{width:min(220px,100%);height:auto;aspect-ratio:1;display:block}
.qrmanual{margin:4px 0 12px;font-size:13px}
.qrmanual summary{cursor:pointer;color:var(--ink-2)}
.secretkey{margin:8px 0 4px;letter-spacing:.06em;font-size:13px}
.hint{font-size:12px;color:var(--ink-3);margin:6px 0 0}
.codelist{list-style:none;margin:14px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.codelist li{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--surface-2);border:1px solid var(--hairline-soft);border-radius:6px;padding:8px 10px;text-align:center;letter-spacing:.08em;font-size:13px}

/* admin · organisation matches (CS-0018) */
.inlineform{display:inline-block;margin:0 6px 4px 0}.decisionrow{margin-top:6px}.candrow{padding:6px 0;border-bottom:1px solid var(--hairline-soft)}.candrow:last-child{border-bottom:0}.orgcand{line-height:1.4}

/* Collapsible sidebar sections (CS-0020 §3c; rendered only while media is on) */
aside.sidenav details.navsec{display:flex;flex-direction:column;gap:1px}
aside.sidenav details.navsec>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;user-select:none}
aside.sidenav details.navsec>summary::-webkit-details-marker{display:none}
aside.sidenav details.navsec>summary::after{content:"▾";font-size:10px;color:var(--ink-3);transition:transform .15s}
aside.sidenav details.navsec:not([open])>summary::after{transform:rotate(-90deg)}
aside.sidenav details.navsec>a{display:flex}
@media (max-width:900px){aside.sidenav details.navsec{display:contents} aside.sidenav details.navsec>summary{display:none}}

/* Media (CS-0020 §3c) */
.mitem{padding:12px 0;border-bottom:1px solid var(--hairline-soft)} .mitem:last-child{border-bottom:none}
.mitem .mmeta{font-size:var(--fs-12);color:var(--ink-3);display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center}
.mitem .mmeta .ctry{font-weight:700;letter-spacing:.04em;color:var(--ink-2)}
.mitem h3{font-size:15px;line-height:1.35;margin:4px 0 2px;font-weight:600} .mitem h3 a{color:var(--ink)}
.mitem .orig{font-size:var(--fs-12);color:var(--ink-3);font-style:italic;margin-bottom:4px}
.mitem .msum{font-size:var(--fs-13);color:var(--ink-2);margin:6px 0 4px;padding:6px 10px;border-left:3px solid var(--ai-line);background:var(--ai-wash);border-radius:0 4px 4px 0}
.mitem .mlede{font-size:var(--fs-13);color:var(--ink-2);margin:4px 0}
.mitem .mrow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px}
.tpill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid var(--hairline);color:var(--ink-2);background:var(--surface);text-decoration:none}
.tpill i{width:8px;height:8px;border-radius:50%;display:inline-block}
.tpill.screen{border-style:dashed;color:var(--ink-3)}
.vote{display:inline-flex;gap:4px;align-items:center;margin-left:auto;font-size:var(--fs-12)}
.vote form{display:inline;margin:0} .vote button{font:inherit;font-size:12px;padding:3px 9px;border-radius:999px;border:1px solid var(--hairline);background:var(--surface);color:var(--ink-2);cursor:pointer}
.vote button.on.in{background:var(--good-wash,#e7f6ec);border-color:var(--good,#2f8f4e);color:var(--good,#2f8f4e)}
.vote button.on.out{background:var(--bad-wash,#fdecec);border-color:var(--bad,#b3261e);color:var(--bad,#b3261e)}
.vote select{font:inherit;font-size:12px;padding:2px 4px;border:1px solid var(--hairline);border-radius:6px;background:var(--surface);color:var(--ink-2)}
.voters{font-size:var(--fs-12);color:var(--ink-3)} .voters b{color:var(--ink-2);font-weight:600}
.voters .split{color:var(--warn,#a15c00);font-weight:600}
.mgrid{border-collapse:separate;border-spacing:3px;width:100%} .mgrid th{font-size:11px;font-weight:600;color:var(--ink-3);text-align:left;padding:4px 6px;vertical-align:bottom}
.mgrid td{text-align:center;padding:0;height:46px;border-radius:5px;font-variant-numeric:tabular-nums}
.mgrid td a{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--ink);text-decoration:none;font-weight:600}
.mgrid td a small{font-weight:500;font-size:10.5px;color:var(--ink-3)} .mgrid td.zero a{color:var(--ink-3);font-weight:400}
.mgrid th.rowh{font-size:12.5px;color:var(--ink-2);white-space:nowrap}
.trend.up{color:var(--good,#2f8f4e)} .trend.down{color:var(--bad,#b3261e)}
.spark{display:inline-flex;gap:2px;align-items:flex-end;height:26px;vertical-align:middle} .spark i{width:9px;background:var(--ink-3);border-radius:2px 2px 0 0;min-height:1px}
.story{padding:12px 0;border-bottom:1px solid var(--hairline-soft)} .story:last-child{border-bottom:none}
.story h3{font-size:15px;margin:0 0 4px} .story ol{margin:6px 0 0;padding-left:18px;font-size:var(--fs-13)} .story li{margin:2px 0}
.fulltext{white-space:pre-wrap;font-size:var(--fs-14,14px);line-height:1.55;color:var(--ink)}
.hstatus{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:1px 6px;border-radius:3px;border:1px solid var(--hairline)}
.hstatus.ok{color:var(--good,#2f8f4e)} .hstatus.failed{color:var(--bad,#b3261e)} .hstatus.no_feed,.hstatus.refused{color:var(--ink-3)}
.mgrid{table-layout:fixed} .mgrid th:first-child{width:110px} .mgrid th:last-child{width:70px}
.mgrid th .tpill{white-space:normal;line-height:1.25;align-items:flex-start;border-radius:8px}
/* media claims (CS-0020 §3a): the evidence for a theme */
.mitem .mwhy{font-size:var(--fs-13);color:var(--ink-2);margin:4px 0}
.mitem .mwhy .fk{margin-right:4px}
ol.claims{margin:0;padding-left:20px}
ol.claims li{margin:0 0 10px}
ol.claims li>div:first-child{margin-bottom:3px}
ol.claims .ctype{font-size:var(--fs-11);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);margin-right:4px}
ol.claims .tag{display:inline-block;padding:1px 6px;border:1px solid var(--hairline);border-radius:10px;margin:0 2px 2px 0}
ol.claims .tag.lens{border-style:dashed}
ol.claims .tag.place{border-style:dotted}
/* admin users: cause-area checkboxes and the Sees column (CS-0020) */
fieldset.areas{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center}fieldset.areas legend{font-size:12px;color:var(--ink-2);padding:0;margin-bottom:2px}label.check{display:inline-flex;gap:5px;align-items:center;font-size:13px;white-space:nowrap}label.block{display:block;font-size:13px}td.sees .cmte{margin-right:2px}
/* Method: a cause area's themes (interp/themes.py) */
.theme{padding:4px 0}
.theme p.small{margin:4px 0 6px}
hr.soft{border:0;border-top:1px solid var(--hairline-soft);margin:10px 0}
.distro .d-outside{background:var(--surface-2);color:var(--ink-3)}
/* admin organisations: a sign-up domain's default cause areas (sql/034) */
.domrow{margin:0 0 6px}.domrow form.domareas{margin:0 0 4px 2px}.domrow form.domareas fieldset.areas legend{font-size:11px}
/* File screen (tracks.py, _file_tracks.html): one dated, sourced state per institution. Colour law kept: coral marks
   where the file is moving, violet a state worked out by the platform (a rule), green a completed step, amber + dashed a
   forecast, teal the coalition's own read. Hatching means no data, never "nothing happening". */
:root{
  --fs-fc:#8a6106;--fs-fc-line:rgba(217,154,11,.75);--fs-fc-wash:rgba(217,154,11,.07)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--fs-fc:#e0a52a;--fs-fc-line:rgba(224,165,42,.7);--fs-fc-wash:rgba(224,165,42,.08)}}
:root[data-theme="dark"]{--fs-fc:#e0a52a;--fs-fc-line:rgba(224,165,42,.7);--fs-fc-wash:rgba(224,165,42,.08)}
.fs-fresh{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--ink-3);margin-top:14px} .fs-fresh b{color:var(--ink-2);font-weight:600}
.fs-legend{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:8px;font-size:12px;color:var(--ink-2)}
.fs-legend .lg{display:inline-flex;align-items:center;gap:6px}
.fs-legend .sw{width:22px;height:12px;border-radius:3px;border:1px solid var(--hairline);background:var(--surface)}
.fs-legend .sw.fc{border:1.5px dashed var(--fs-fc-line);background:var(--fs-fc-wash)}
.fs-legend .sw.rule{border-color:var(--ai-line);background:var(--ai-wash)} .fs-legend .sw.none{background:repeating-linear-gradient(135deg,var(--surface-2) 0 4px,transparent 4px 8px)}
.fs-sect{margin-top:20px}
.fs-decide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:12px 16px}
.fs-decide .v{font-size:14px;font-weight:600;margin-top:3px} .fs-decide .s{font-size:12px;color:var(--ink-3);margin-top:3px}
.fs-tracks{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:12px}
.fs-track{background:var(--surface);border:1px solid var(--hairline-soft);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;min-width:0;box-shadow:var(--shadow)}
.fs-track.here{box-shadow:inset 0 3px 0 var(--accent),var(--shadow)}
.fs-track.s-not_connected,.fs-track.s-not_applicable{background:repeating-linear-gradient(135deg,var(--surface-2) 0 6px,var(--surface) 6px 12px);box-shadow:none;border-style:dashed}
.fs-track .tn{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.fs-track .ev{font-size:12.5px;line-height:1.4} .fs-track .fs-note{color:var(--ink-2)}
.fs-track .src{font-size:11px;color:var(--ink-3);margin-top:auto;padding-top:6px;border-top:1px dashed var(--hairline-soft)}
.fs-state{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;width:max-content;max-width:100%;padding:3px 9px;border-radius:999px;border:1px solid var(--hairline);color:var(--ink-2);line-height:1.25}
.fs-state .d{width:7px;height:7px;flex:none;border-radius:50%;background:currentColor}
.fs-state.s-done{color:var(--good);border-color:var(--good-line)} .fs-state.s-active{color:var(--accent-ink);border-color:var(--accent)}
.fs-state.s-rejected,.fs-state.s-withdrawn{color:var(--critical);border-color:var(--critical)}
.fs-state.s-unknown,.fs-state.s-not_connected,.fs-state.s-not_applicable{color:var(--ink-3);border-style:dashed}
.fs-fcast{border:1.5px dashed var(--fs-fc-line);background:var(--fs-fc-wash);border-radius:6px;padding:5px 8px;font-size:12px}
.fs-fcast .ft{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fs-fc)}
.fs-fcast.lapsed{border-color:var(--critical);background:var(--critical-wash)} .fs-fcast.lapsed .ft{color:var(--critical)}
.fs-meta{font-size:11.5px;color:var(--ink-3)} .fs-docs{font-size:11.5px;color:var(--ink-3)} .fs-docs a{color:var(--ink-3)}
.fs-rulebox{font-size:12px;color:var(--ink-2)}
.fs-rule{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ai-ink);border:1px solid var(--ai-line);background:var(--ai-wash);border-radius:4px;padding:1px 5px}
.fs-unknown{font-size:12.5px;color:var(--ink-3);border:1px dashed var(--hairline);border-radius:6px;padding:6px 8px}
.fs-deadline{font-size:12.5px;border:1px solid var(--hairline);border-radius:6px;padding:6px 8px}
ul.fs-changes{list-style:none;margin:0;padding:0} ul.fs-changes li{margin-bottom:7px;font-size:13px}
ul.fs-changes .dt{font-size:11.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;margin-right:4px}
ul.fs-changes .fs-tr{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-right:4px}
.fs-tl{padding:10px 0 6px}
.fs-months{display:grid;grid-template-columns:150px minmax(0,1fr)} .fs-months .ml{position:relative;height:20px;margin-right:24px}
.fs-months .ml span{position:absolute;font-size:10.5px;color:var(--ink-3);transform:translateX(-2px)}
.fs-lane{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;border-top:1px solid var(--hairline-soft);min-height:38px}
.fs-lane .ln{font-size:12px;font-weight:600;color:var(--ink-2);padding:0 12px}
.fs-lane .rail{position:relative;height:38px;margin-right:24px}
.fs-lane .rail::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px solid var(--hairline-soft)}
.fs-lane.none .rail{background:repeating-linear-gradient(135deg,var(--surface-2) 0 5px,transparent 5px 10px)}
.fs-lane .rail .nl{position:absolute;left:10px;top:11px;font-size:11.5px;color:var(--ink-3)}
.fs-lane .today{position:absolute;top:0;bottom:0;width:0;border-left:2px solid var(--accent)}
.fs-dot{position:absolute;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--ink-2)}
.fs-dot.k-milestone{width:12px;height:12px;margin:-6px 0 0 -6px;background:var(--ink)}
.fs-dot.k-cancelled{background:var(--surface);border:1.5px solid var(--ink-3)}
.fs-dot.k-forecast{width:13px;height:13px;margin:-7px 0 0 -7px;background:var(--fs-fc-wash);border:2px solid var(--fs-fc-line)}
.fs-sum{padding:12px 16px;cursor:pointer;font-weight:600} .fs-how{padding:0 16px 14px;font-size:13px;max-width:90ch}
.fs-ok{color:var(--good);font-weight:600} .fs-no{color:var(--ink-3);font-weight:600}
@media (max-width:1300px){.fs-tracks{grid-template-columns:repeat(3,minmax(0,1fr))}.fs-decide{grid-template-columns:1fr}}
@media (max-width:700px){.fs-tracks{grid-template-columns:1fr}.fs-lane,.fs-months{grid-template-columns:90px minmax(0,1fr)}}
/* file screen: clickable timeline */
button.fs-dot{border:none;padding:0;cursor:pointer;font:inherit}
button.fs-dot.k-forecast{border:2px solid var(--fs-fc-line)} button.fs-dot.k-cancelled{border:1.5px solid var(--ink-3)}
button.fs-dot:hover,button.fs-dot:focus-visible,button.fs-dot.on{outline:2px solid var(--accent);outline-offset:2px;z-index:3}
.fs-tip{display:none;position:absolute;bottom:16px;left:50%;transform:translateX(-50%);min-width:180px;max-width:280px;padding:7px 9px;border-radius:6px;
  background:var(--surface);border:1px solid var(--hairline);box-shadow:var(--shadow-lg);font-size:12px;line-height:1.35;color:var(--ink);text-align:left;white-space:normal;z-index:5;pointer-events:none}
button.fs-dot:hover .fs-tip,button.fs-dot:focus-visible .fs-tip{display:block}
.fs-detail{border-top:1px solid var(--hairline-soft);padding:10px 16px 12px;min-height:44px}
.fs-detail-empty{margin:0}
.fs-sd-head{font-size:12.5px} .fs-sd-label{font-size:14px;font-weight:600;margin:3px 0}
.fs-sd-links{margin-top:6px}
.fs-fctag{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fs-fc)}
.fs-links a{display:inline-block;font-size:12px;margin-right:10px;white-space:nowrap}
.fs-allsteps{margin-top:10px}
/* files list (files.html): one row per file, a state per institution */
.fl-panel{margin-top:14px}
.fl-table{table-layout:fixed;width:100%}
.fl-table th:nth-child(1){width:23%} .fl-table th.fl-trk{width:12%} .fl-table th:nth-child(6),.fl-table th:nth-child(7){width:14.5%}
.fl-table td{vertical-align:top;padding-top:10px;padding-bottom:10px}
.fl-name{font-weight:600;font-size:14px;line-height:1.3}
.fl-sub{font-size:11.5px;color:var(--ink-3);margin-top:3px;line-height:1.4}
.fl-state{width:auto !important;max-width:100%;font-size:11.5px;padding:2px 8px;white-space:normal;border-radius:7px;align-items:flex-start}
.fl-date{font-size:11.5px;color:var(--ink-3);margin-top:4px;font-variant-numeric:tabular-nums}
.fl-step{font-size:12.5px;line-height:1.35}
.fl-fc{padding:4px 7px}
@media (max-width:1100px){.fl-table{table-layout:auto}}
.fs-fcast.deadline{border-style:solid;border-color:var(--hairline);background:var(--surface)} .fs-fcast.deadline .ft{color:var(--ink-2)}
ul.fs-rounds{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
ul.fs-rounds li{font-size:12.5px;line-height:1.35;border-left:2px solid var(--hairline);padding-left:8px}
ul.fs-rounds .fs-rl{display:block;font-weight:600} ul.fs-rounds .fs-meta,ul.fs-rounds .fs-rn{display:block}
.fl-cardtracks{display:flex;flex-wrap:wrap;gap:6px 10px;margin:8px 0 6px} .fl-ct{display:flex;flex-direction:column;gap:2px;min-width:120px}
.fl-ct .tn{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
.fs-warn{color:var(--warning)}
