:root {
    --navy: #0f1b3d;
    --navy-deep: #16224b;
    --slate: #485568;
    --gold: #c89d14;

    --ink: #0f172a;
    --charcoal: #1f2937;
    --slate-600: #475569;
    --slate-300: #cbd5e1;
    --slate-100: #f1f5f9;
    --slate-050: #f6f8fb;

    --surface: #ffffff;
    --field: #ffffff;
    --placeholder: #9aa6b8;
    --heading: var(--navy);
    --edge-strong: var(--navy);
    --control-accent: var(--navy);
    --scroll-cover: var(--surface);

    --raise-top: #ffffff;
    --raise-bottom: #eef2f8;
    --raise-bottom-hover: #e4eaf4;
    --raise-bottom-secondary: #eaeff8;
    --raise-bottom-quiet: #f2f5fa;
    --raise-bottom-tab: #e8edf5;
    --raise-bottom-tab-hover: #dbe3f0;

    --ok: #2e7d32;
    --ok-bg: #e8f5e9;
    --progress: #1565c0;
    --progress-bg: #e3f0fc;
    --scheduled: #6b46c1;
    --scheduled-bg: #efeafc;
    --awaiting: #f59e0b;
    --awaiting-bg: #fef4e2;
    --alert: #c82a2a;
    --alert-bg: #fdecec;
    --neutral: #5e6d83;
    --neutral-bg: #f1f5f9;

    --amber-ink: #986005;
    --amber-wash: #fff8ec;
    --edge-amber: #f0d999;

    --ai: #2f54eb;
    --ai-bg: #f4f7ff;
    --recorded: #117f3a;
    --recorded-bg: #f2fbf5;

    --control-edge: #8593ab;

    --focus: #1e40af;

    --entity-title-colour: var(--navy);

    --radius: 10px;
    --radius-sm: 6px;
    --line: #e3e8f0;
    --shadow: 0 1px 2px rgba(15, 27, 61, .06), 0 1px 3px rgba(15, 27, 61, .04);

    --s1: 4px; --s2: 7px; --s3: 11px; --s4: 14px; --s5: 22px; --s6: 29px; --s7: 43px;

    --topbar-h: 50px;

    --t-micro: 11px;
    --t-small: 12px;
    --t-body-s: 13px;
    --t-control: 14px;
    --t-body: 15px;
    --t-read: 16px;
    --t-lead: 17px;
    --t-h2: 18px;
    --t-h3: 21px;
    --t-h1: 28px;
    --t-figure: 30px;

    --t-name-m: 24px;
    --t-name-l: 28px;
    --t-name-xl: 34px;
    --t-name-xxl: 40px;

    --label-track: .06em;

    --font-ui: "Segoe UI", "Liberation Sans", "DejaVu Sans", -apple-system, system-ui, sans-serif;
    --font-display: Georgia, "Liberation Serif", "Times New Roman", serif;

    --font-symbol: "Segoe UI Symbol", "DejaVu Sans", "Noto Sans Symbols 2", sans-serif;
}

@media screen {
    :root[data-theme="dark"] {
        color-scheme: dark;

        --surface: #141d30;
        --field: #0f182a;
        --placeholder: #8492ab;
        --heading: #f0f3fa;
        --edge-strong: #c3cde3;
        --control-accent: #8db4ff;

        --ink: #e8ecf4;
        --charcoal: #d8dee9;
        --slate-600: #a7b2c6;
        --slate: #9ba7bc;
        --slate-300: #3a4862;
        --slate-100: #1b263b;
        --slate-050: #0d1526;
        --line: #28344b;

        --ok: #7fd795;          --ok-bg: #11301e;
        --progress: #8fc3ff;    --progress-bg: #0f2a48;
        --scheduled: #c9b6ff;   --scheduled-bg: #241b47;
        --awaiting: #f2b33d;    --awaiting-bg: #35270b;
        --alert: #ff9d9d;       --alert-bg: #3d1619;
        --neutral: #b0bbcd;     --neutral-bg: #1e283b;
        --amber-ink: #f4c86a;
        --amber-wash: #2b2212;
        --edge-amber: #6f5419;
        --ai: #a7b8ff;          --ai-bg: #16224a;
        --recorded: #74d6a0;    --recorded-bg: #0f2a1e;

        --control-edge: #7484a3;
        --focus: #8db4ff;

        --entity-title-colour: var(--heading);

        --raise-top: #243049;
        --raise-bottom: #1c263b;
        --raise-bottom-hover: #222e46;
        --raise-bottom-secondary: #1c263b;
        --raise-bottom-quiet: #19223a;
        --raise-bottom-tab: #1a2438;
        --raise-bottom-tab-hover: #222d44;

        --shadow: 0 1px 2px rgba(0, 0, 0, .45), 0 1px 3px rgba(0, 0, 0, .30);
    }
}

* { box-sizing: border-box; }

html { scroll-padding-top: calc(var(--topbar-h) + var(--s2)); }

body {
    margin: 0;
    background: var(--slate-050);
    color: var(--ink);
    font: var(--t-body)/1.5 var(--font-ui);
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3 { color: var(--heading); margin: 0 0 var(--s2); }
h1 { font-family: var(--font-display); font-size: var(--t-h1); line-height: 33px; font-weight: 600; letter-spacing: -.2px; }
h2 { font-size: var(--t-h2); line-height: 24px; font-weight: 600; }
h3 { font-size: var(--t-body); line-height: 22px; font-weight: 600; }
h1:focus { outline: none; }

a { color: var(--ai); text-decoration: none; }
a:hover { text-decoration: underline; }

.sub { color: var(--slate-600); margin: 0 0 var(--s5); font-size: var(--t-control); }
.hint { color: var(--slate-600); font-size: var(--t-body-s); margin: 0 0 var(--s3); }

.entity-title {
    margin: 0 0 var(--s2);
    font-family: var(--font-display); font-size: var(--t-name-l); line-height: 1.2; font-weight: 600;
    color: var(--entity-title-colour);
}
.entity-title + h1 { font-size: var(--t-h3); line-height: 27px; }
.et-font-house      { font-family: var(--font-display); }
.et-font-palatino   { font-family: "Palatino Linotype", "Book Antiqua", Palatino, "URW Palladio L", P052, Georgia, serif; }
.et-font-garamond   { font-family: Garamond, "EB Garamond", "Cormorant Garamond", "Palatino Linotype", Georgia, serif; }
.et-font-constantia { font-family: Constantia, Cambria, Georgia, serif; }
.et-font-bodoni     { font-family: "Bodoni MT", "Bodoni 72", Didot, "Libre Bodoni", Georgia, serif; }
.et-font-script     { font-family: Gabriola, "Segoe Script", "Apple Chancery", "URW Chancery L", Z003, cursive; }
.et-font-sans       { font-family: var(--font-ui); }
.et-font-gill       { font-family: "Gill Sans", "Gill Sans MT", Calibri, "Segoe UI", sans-serif; }

.et-size-medium  { font-size: var(--t-name-m); }
.et-size-large   { font-size: var(--t-name-l); }
.et-size-xlarge  { font-size: var(--t-name-xl); }
.et-size-xxlarge { font-size: var(--t-name-xxl); }

.et-weight-regular  { font-weight: 400; }
.et-weight-medium   { font-weight: 500; }
.et-weight-semibold { font-weight: 600; }
.et-weight-bold     { font-weight: 700; }

.et-italic { font-style: italic; }
.et-lettering-small-caps { font-variant-caps: small-caps; }
.et-lettering-capitals   { text-transform: uppercase; }

.et-spacing-tight { letter-spacing: -.01em; }
.et-spacing-wide  { letter-spacing: var(--label-track); }
.et-spacing-wider { letter-spacing: .14em; }

.et-flourish-rule::after {
    content: ""; display: block; width: 3.5rem; height: 3px; margin-top: .35rem;
    background: var(--gold); border-radius: 2px;
}
.et-flourish-underline {
    text-decoration: underline; text-decoration-color: var(--gold);
    text-decoration-thickness: 2px; text-underline-offset: .22em;
}
.et-flourish-hairline { display: flex; align-items: center; gap: .75rem; }
.et-flourish-hairline::after {
    content: ""; flex: 1; max-width: 18rem; height: 1px;
    background: linear-gradient(to right, var(--gold), transparent);
}

.name-style-preview {
    margin: var(--s3) 0; padding: var(--s4) var(--s5);
    background: var(--slate-050); border: 1px solid var(--line); border-radius: var(--radius);
}
.name-style-preview .entity-title { margin: 0; }
.form-grid input.name-style-colour { width: 4.5rem; height: 2.5rem; padding: 2px 4px; }
.fineprint { color: var(--slate-600); font-size: var(--t-small); margin: var(--s4) 0 0; }
.empty { color: var(--slate-600); font-style: italic; }
.right { text-align: right; }

.shell { min-height: 100vh; display: flex; flex-direction: column; }
.page-pad { padding: var(--s5); max-width: 1500px; width: 100%; margin: 0 auto; }

.site-foot {
    margin-top: auto; padding: var(--s3) var(--s5);
    border-top: 1px solid var(--line); background: var(--slate-050);
    font-size: var(--t-small);
}
.site-foot a { color: var(--slate-600); text-decoration: underline; }
.site-foot a:hover { color: var(--heading); }

.shell-bare .site-foot { background: transparent; border-top-color: rgba(255, 255, 255, .18); }
.shell-bare .site-foot a { color: rgba(255, 255, 255, .85); }
.shell-bare .site-foot a:hover { color: #fff; }

.statement { max-width: 620px; }
.statement p { font-size: var(--t-read); }
.statement ul { margin: 0; padding-left: var(--s4); }
.statement li { margin-bottom: var(--s2); color: var(--ink); }
.statement li:last-child { margin-bottom: 0; }
.statement code {
    font-family: ui-monospace, "Cascadia Mono", "Consolas", monospace;
    font-size: .92em; background: var(--slate-050);
    padding: 1px 4px; border-radius: 3px;
}

.device-readout {
    display: grid; grid-template-columns: max-content minmax(0, 1fr);
    gap: var(--s2) var(--s4); margin: 0;
}
.device-readout dt { color: var(--slate-600); }
.device-readout dd { margin: 0; color: var(--ink); }
.dr-finger, .dr-no-pointer, .dr-no-hover, .dr-tablet, .dr-phone,
.dr-short, .dr-forced, .dr-reduced { display: none; }
@media (pointer: coarse) {
    .dr-mouse { display: none; }
    .dr-finger { display: inline; }
}
@media (pointer: none) {
    .dr-mouse { display: none; }
    .dr-no-pointer { display: inline; }
}
@media (hover: none) {
    .dr-hover { display: none; }
    .dr-no-hover { display: inline; }
}
@media (max-width: 75rem) {
    .dr-wide { display: none; }
    .dr-tablet { display: inline; }
}
@media (max-width: 48rem) {
    .dr-tablet { display: none; }
    .dr-phone { display: inline; }
}
@media (max-height: 32rem) {
    .dr-not-short { display: none; }
    .dr-short { display: inline; }
}
@media (forced-colors: active) {
    .dr-not-forced { display: none; }
    .dr-forced { display: inline; }
}
@media (prefers-reduced-motion: reduce) {
    .dr-full-motion { display: none; }
    .dr-reduced { display: inline; }
}

.topbar {
    display: flex; align-items: center; gap: var(--s5);
    padding: 0 var(--s5); height: 50px;
    background: var(--navy); color: #fff;

    position: sticky;
    top: 0;
    z-index: 900;
    box-shadow: 0 1px 0 rgba(0, 0, 0, .25), 0 2px 8px rgba(15, 27, 61, .18);
}
.brand {
    display: flex; align-items: center; gap: var(--s2); color: #fff; text-decoration: none;
    align-self: stretch; flex-shrink: 0;
}
.brand:hover { text-decoration: none; }
.brand-mark {
    background: var(--gold); color: var(--navy); font-weight: 700;
    padding: 2px 7px; border-radius: 4px; font-size: var(--t-small); letter-spacing: var(--label-track);
}
.brand-text { font-weight: 600; font-size: var(--t-body); }
.nav {
    display: flex; gap: clamp(var(--s3), calc((100vw - 1100px) / 8), var(--s5));
    flex: 0 1 auto; min-width: 0; height: 100%; align-items: stretch;
    overflow-x: auto;
}
.nav-link {
    display: flex; align-items: center; color: #b9c2dd; font-size: var(--t-control);
    text-decoration: none; border-bottom: 2px solid transparent; white-space: nowrap;
}
.nav-link:hover { color: #fff; text-decoration: none; }
.nav-link.active { color: #fff; border-bottom-color: var(--gold); }
.nav-link-deferred {
    color: #5b6580; cursor: not-allowed; user-select: none;
}
.nav-link-deferred:hover { color: #5b6580; }
.nav-link-deferred::after {
    content: "v2";
    content: "v2" / "";
    margin-left: var(--s2);
    font-size: var(--t-micro); line-height: 1; letter-spacing: var(--label-track);
    padding: 2px 5px; border-radius: 3px;
    border: 1px solid #454e66; color: #7c86a3;
}
.who {
    flex: 1 1 0; white-space: nowrap;
    display: grid; grid-auto-flow: column; grid-template-columns: auto minmax(0, max-content) auto auto;
    justify-content: end; align-items: center; column-gap: var(--s3); font-size: var(--t-control);
}
.who-name { color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.who-level, .logout-form { flex-shrink: 0; }
.who-level {
    background: rgba(255,255,255,.15); padding: 2px 8px; border-radius: 999px;
    font-size: var(--t-micro); text-transform: uppercase; letter-spacing: var(--label-track); font-weight: 600;
}
.logout-form { margin: 0; }
.topbar .btn-quiet {
    color: #e4e9f5; border-color: rgba(255,255,255,.45);
    background: linear-gradient(180deg, rgba(255,255,255,.14) 0%, rgba(255,255,255,.05) 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.10);
}
.topbar .btn-quiet:hover {
    color: #fff; border-color: #fff;
    background: linear-gradient(180deg, rgba(255,255,255,.24) 0%, rgba(255,255,255,.12) 100%);
}

.theme-switch {
    display: inline-flex; align-items: center; gap: var(--s2); flex-shrink: 0;
    padding: 3px var(--s2); border: 1px solid rgba(255,255,255,.30); border-radius: var(--radius-sm);
    background: transparent; color: #b9c2dd; font: inherit; cursor: pointer;
}
.theme-switch:hover { border-color: rgba(255,255,255,.65); }
.theme-switch-words { display: grid; font-size: var(--t-micro); line-height: 15px; text-align: right; }
.theme-switch-light { color: #fff; font-weight: 600; }
.theme-switch-track {
    position: relative; width: 16px; height: 30px; flex-shrink: 0;
    border: 1.5px solid rgba(255,255,255,.75); border-radius: 999px;
}
.theme-switch-knob {
    position: absolute; left: 2px; top: 2px; width: 9px; height: 9px;
    border-radius: 50%; background: #fff; transition: transform .15s ease;
}
:root[data-theme="dark"] .theme-switch-knob { transform: translateY(14px); }
:root[data-theme="dark"] .theme-switch-light { color: #b9c2dd; font-weight: 400; }
:root[data-theme="dark"] .theme-switch-dark { color: #fff; font-weight: 600; }
@media (prefers-reduced-motion: reduce) { .theme-switch-knob { transition: none; } }

.nav-menu { display: none; }
.nav-menu-button {
    display: flex; align-items: center; gap: var(--s2);
    min-height: 44px; padding: 0 var(--s3);
    list-style: none; cursor: pointer; user-select: none;
    color: #fff; font-size: var(--t-control); font-weight: 500;
    border: 1px solid rgba(255,255,255,.45); border-radius: var(--radius-sm);
}
.nav-menu-button::-webkit-details-marker { display: none; }
.nav-menu[open] > .nav-menu-button { border-color: #fff; background: rgba(255,255,255,.14); }
.nav-panel {
    position: absolute; top: 100%; left: 0; right: 0;
    max-height: calc(100vh - 50px); max-height: calc(100dvh - 50px);
    overflow-y: auto; overscroll-behavior: contain;
    padding: 0 0 var(--s4);
    background: var(--navy); color: #fff;
    border-top: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 8px 16px rgba(15, 27, 61, .28);
}
.nav-panel-who {
    margin: 0; padding: var(--s3) var(--s4);
    color: #b9c2dd; font-size: var(--t-control); overflow-wrap: anywhere;
    border-bottom: 1px solid rgba(255,255,255,.12);
}
.nav-panel-who strong { color: #fff; font-weight: 600; }
.nav-panel-level {
    font-size: var(--t-small); font-weight: 600;
    text-transform: uppercase; letter-spacing: var(--label-track);
}
.nav-panel .nav { flex-direction: column; gap: 0; height: auto; overflow: visible; }
.nav-panel .nav-link {
    min-height: 44px; padding: 0 var(--s4) 0 calc(var(--s4) - 3px);
    border-bottom: 0; border-left: 3px solid transparent; font-size: var(--t-body);
}
.nav-panel .nav-link.active { border-left-color: var(--gold); }
.nav-panel .nav-link-deferred::after { display: none; }
.nav-panel-note { display: none; }
.nav-panel .nav-panel-note {
    display: inline-block; margin-left: var(--s2); padding: 1px 6px;
    border: 1px solid #454e66; border-radius: 3px;
    color: #b9c2dd; font-size: var(--t-small); line-height: 1.4;
}
.nav-panel .theme-switch { margin: var(--s3) var(--s4) 0; min-height: 44px; }

.card {
    background: var(--surface); border: 1px solid var(--line);
    border-radius: var(--radius); padding: var(--s4);
    margin-bottom: var(--s4); box-shadow: var(--shadow);
}
.card.notice { max-width: 560px; }

.grid { width: 100%; border-collapse: collapse; }
.grid th {
    text-align: left; font-size: var(--t-micro); text-transform: uppercase; letter-spacing: var(--label-track);
    color: var(--slate-600); font-weight: 600;
    border-bottom: 1px solid var(--line); padding: var(--s2) var(--s3);
}
.grid th .sort-header {
    display: flex; align-items: center; gap: 6px;
    width: calc(100% + var(--s3) * 2); margin: calc(var(--s2) * -1) calc(var(--s3) * -1);
    padding: var(--s2) var(--s3);
    font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit;
    background: none; border: 0; border-radius: var(--radius-sm);
    text-align: left; cursor: pointer;
}
.grid th .sort-header:hover { color: var(--heading); background: var(--slate-050); }

.sort-mark {
    font-family: var(--font-symbol); font-size: 9px; line-height: 1;
    min-width: 9px; color: var(--slate-300);
}
[aria-sort="ascending"] .sort-mark, [aria-sort="descending"] .sort-mark { color: var(--heading); }
.grid th .sort-header:hover .sort-mark { color: var(--heading); }
.grid td { padding: var(--s3); border-bottom: 1px solid var(--slate-100); height: 43px; }

.grid th[scope="row"] {
    text-align: left; font-size: var(--t-body); text-transform: none; letter-spacing: normal;
    color: var(--ink); font-weight: 600;
    padding: var(--s3); border-bottom: 1px solid var(--slate-100); height: 43px;
    width: 1%; white-space: nowrap;
}
.grid tbody tr:hover { background: var(--slate-050); }
.grid tr:last-child td, .grid tr:last-child th[scope="row"] { border-bottom: none; }
.grid-compact td { height: 36px; padding: var(--s2) var(--s3); }

label { display: block; margin-bottom: var(--s3); font-size: var(--t-body-s); font-weight: 500; color: var(--charcoal); }
input, select, textarea {
    display: block; width: 100%; margin-top: var(--s1);
    padding: 8px 11px; font: 400 var(--t-control)/20px var(--font-ui); color: var(--ink);
    border: 1px solid var(--control-edge); border-radius: var(--radius-sm); background: var(--field);
    box-shadow: inset 0 1px 2px rgba(15, 27, 61, .08);
}
input[type="checkbox"], input[type="radio"] {
    display: inline-block; width: auto; box-shadow: none; accent-color: var(--control-accent);
}
input::placeholder, textarea::placeholder { color: var(--placeholder); }
input:focus-visible, select:focus-visible, textarea:focus-visible { border-color: var(--focus); }
textarea { resize: vertical; }
label .hint { font-weight: 400; margin: var(--s1) 0 0; }

.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: var(--s2);
    padding: 8px 16px; font: 500 var(--t-control)/20px var(--font-ui);
    border: 1px solid var(--control-edge); border-radius: var(--radius-sm);
    background: linear-gradient(180deg, var(--raise-top) 0%, var(--raise-bottom) 100%);
    color: var(--charcoal); cursor: pointer; text-decoration: none;
    box-shadow: 0 1px 2px rgba(15, 27, 61, .10);
    transition: background .12s, border-color .12s, color .12s, box-shadow .12s;
}
.btn:hover:not(:disabled) {
    border-color: var(--slate); color: var(--heading); text-decoration: none;
    background: linear-gradient(180deg, var(--raise-top) 0%, var(--raise-bottom-hover) 100%);
    box-shadow: 0 2px 5px rgba(15, 27, 61, .14);
}
.btn:active:not(:disabled) {
    box-shadow: inset 0 2px 4px rgba(15, 27, 61, .18); transform: translateY(1px);
}
.btn:disabled {
    background: var(--slate-100); border-color: var(--slate-300); color: var(--slate-600);
    box-shadow: none; cursor: not-allowed;
}

.btn-primary {
    background: linear-gradient(180deg, #1a2a56 0%, var(--navy) 100%);
    border-color: #0a1330; color: #fff; font-weight: 600;
    box-shadow: 0 1px 3px rgba(15, 27, 61, .30);
}
.btn-primary:hover:not(:disabled) {
    background: linear-gradient(180deg, #223466 0%, var(--navy-deep) 100%);
    border-color: #0a1330; color: #fff; box-shadow: 0 2px 6px rgba(15, 27, 61, .38);
}
.inline-add {
    margin-top: var(--s4); padding: var(--s4);
    background: var(--slate-100); border: 1px solid var(--slate-300); border-radius: 4px;
}
.inline-add h3 { margin: 0 0 var(--s3); font-size: var(--t-body); }

.btn-secondary {
    background: linear-gradient(180deg, var(--raise-top) 0%, var(--raise-bottom-secondary) 100%);
    border-color: var(--edge-strong); color: var(--heading); font-weight: 600;
}
.btn-secondary:hover:not(:disabled) {
    background: linear-gradient(180deg, #1a2a56 0%, var(--navy) 100%);
    border-color: var(--navy); color: #fff;
}

.btn-quiet {
    background: linear-gradient(180deg, var(--raise-top) 0%, var(--raise-bottom-quiet) 100%);
    border-color: var(--control-edge); color: var(--slate-600);
}
.btn-quiet:hover:not(:disabled) {
    background: linear-gradient(180deg, var(--raise-top) 0%, var(--raise-bottom-hover) 100%);
    border-color: var(--slate); color: var(--heading);
}

.btn-ok {
    background: linear-gradient(180deg, #14833d 0%, #117f3a 100%);
    border-color: #0c612c; color: #fff; font-weight: 600;
    box-shadow: 0 1px 3px rgba(15, 61, 30, .28);
}
.btn-ok:hover:not(:disabled) {
    background: linear-gradient(180deg, #117f3a 0%, #0d6c30 100%);
    border-color: #0a5626; color: #fff;
}
.btn-danger {
    background: linear-gradient(180deg, #dc2727 0%, #c82a2a 100%);
    border-color: #9c1e1e; color: #fff; font-weight: 600;
    box-shadow: 0 1px 3px rgba(61, 15, 15, .28);
}
.btn-danger:hover:not(:disabled) {
    background: linear-gradient(180deg, #c82a2a 0%, #a82121 100%);
    border-color: #8a1a1a; color: #fff;
}

.btn:focus-visible, .btn:hover:focus-visible,
.tab:focus-visible, .btn-more:focus-visible, .drag-handle:focus-visible, .item-open:focus-visible,
.theme-switch:focus-visible, .grid th .sort-header:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible,
a:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
    outline: 2px solid var(--focus);
    outline-offset: 2px;
}

.topbar a:focus-visible, .topbar .btn:focus-visible, .topbar [tabindex]:focus-visible,
.topbar .theme-switch:focus-visible, .topbar summary:focus-visible {
    outline-color: #fff;
}
.topbar .nav-link:focus-visible, .topbar .brand:focus-visible { outline-offset: -4px; }
.topbar summary:focus-visible { outline-offset: 0; }

.btn.is-busy { position: relative; color: transparent; cursor: progress; }
.btn.is-busy::after {
    content: ""; position: absolute; inset: 0; margin: auto;
    width: 14px; height: 14px; border-radius: 50%;
    border: 2px solid currentColor; border-top-color: transparent;
    color: var(--slate-600);
    animation: btn-spin .7s linear infinite;
}
@keyframes btn-spin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
    .btn.is-busy::after { animation: btn-fade 1.4s ease-in-out infinite; }
    @keyframes btn-fade { 0%, 100% { opacity: .25 } 50% { opacity: 1 } }
}

input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"] {
    border-color: var(--alert);
    box-shadow: inset 0 1px 2px rgba(15, 27, 61, .08), 0 0 0 3px rgba(200, 42, 42, .15);
}
.field-error { font-size: var(--t-body-s); color: var(--alert); margin: var(--s1) 0 0; }

input:read-only, textarea:read-only { background: var(--slate-050); box-shadow: none; }

.pill {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 3px 9px; border-radius: 999px; font-size: var(--t-micro); font-weight: 600;
    text-transform: uppercase; letter-spacing: var(--label-track); white-space: nowrap;
    background: var(--neutral-bg); color: var(--neutral);
}
.pill::before { content: "●"; font-size: 8px; line-height: 1;  font-family: var(--font-symbol);}

.pill-finalized, .pill-passed, .pill-approved, .pill-done, .pill-adopted,
.pill-confirmed, .pill-documented { background: var(--ok-bg); color: var(--ok); }
.pill-finalized::before, .pill-passed::before, .pill-approved::before,
.pill-done::before, .pill-adopted::before, .pill-confirmed::before,
.pill-documented::before { content: "✔"; font-size: var(--t-micro);  font-family: var(--font-symbol);}

.pill-inprogress, .pill-voting { background: var(--progress-bg); color: var(--progress); }
.pill-inprogress::before, .pill-voting::before { content: "▶"; font-size: 8px;  font-family: var(--font-symbol);}

.pill-scheduled, .pill-draft, .pill-proposed { background: var(--scheduled-bg); color: var(--scheduled); }
.pill-scheduled::before, .pill-draft::before, .pill-proposed::before { content: "◆"; font-size: 8px;  font-family: var(--font-symbol);}

.pill-pending, .pill-seconded, .pill-adjourned { background: var(--awaiting-bg); color: var(--amber-ink); }
.pill-pending::before, .pill-seconded::before, .pill-adjourned::before { content: "◑"; font-size: 9px;  font-family: var(--font-symbol);}

.pill-failed, .pill-withdrawn, .pill-cancelled, .pill-dismissed, .pill-expired
    { background: var(--alert-bg); color: var(--alert); }
.pill-failed::before, .pill-withdrawn::before, .pill-cancelled::before,
.pill-dismissed::before, .pill-expired::before { content: "■"; font-size: 8px;  font-family: var(--font-symbol);}

.badge {
    background: var(--gold); color: var(--navy); border-radius: 999px;
    padding: 1px 8px; font-size: var(--t-small); font-weight: 700; margin-left: var(--s2);
}

.ok, .error {
    padding: 10px var(--s4); border-radius: var(--radius-sm);
    font-size: var(--t-control); margin: 0 0 var(--s4); border: 1px solid;
}
.ok, .error, .info { display: flex; align-items: baseline; gap: var(--s2); }
.ok::before, .error::before, .info::before { font-size: var(--t-body-s); line-height: 1.4; }

.ok    { background: var(--ok-bg);    color: var(--ok);    border-color: #bfe3c2; }
.ok::before { content: "✔"; font-family: var(--font-symbol); }
.error { background: var(--alert-bg); color: var(--alert); border-color: #f5c6c6; }
.error::before { content: "✕"; font-family: var(--font-symbol); }

.info  { background: var(--ai-bg); color: var(--ai); border-color: #ccd8fb; }
.info::before { content: "●"; font-family: var(--font-symbol); }

.skip-link {
    position: absolute; left: var(--s3); top: -3rem; z-index: 3000;
    background: var(--navy); color: #fff; text-decoration: none;
    padding: var(--s2) var(--s4); border-radius: var(--radius-sm);
    box-shadow: 0 2px 8px rgba(15, 27, 61, .35);
    transition: top .12s;
}
.skip-link:focus-visible { top: var(--s3); outline-color: #fff; }

main:focus { outline: none; }

.sr-only {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--s3); margin-bottom: var(--s4); }
.tile {
    background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
    padding: var(--s4); box-shadow: var(--shadow);
}

a.tile { display: block; text-decoration: none; color: inherit; }
a.tile:hover { border-color: var(--slate-300); }

a.tile.tile-on {
    border-color: var(--edge-strong);
    border-left: 3px solid var(--edge-strong);
    background: var(--slate-050);
}
.tile-n { display: block; font-size: var(--t-figure); line-height: 36px; font-weight: 700; color: var(--heading); }
.tile-l { color: var(--slate-600); font-size: var(--t-body-s); }

.type-filter { margin: 0 0 var(--s3); }

.dash-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--s4);
    align-items: start;
}
@media (max-width: 68.75rem) {
    .dash-grid { grid-template-columns: minmax(0, 1fr); }
}
.dash-grid td.right .btn, .dash-grid td.date { white-space: nowrap; }

.panel-head {
    display: flex; align-items: baseline; justify-content: space-between;
    gap: var(--s3); flex-wrap: wrap; margin-bottom: var(--s3);
}
.panel-head h2 { display: flex; align-items: center; gap: var(--s2); margin: 0; }
.panel-head h2 svg { color: var(--ai); flex: none; }
.panel-link { font-size: var(--t-body-s); white-space: nowrap; }

.action-list { list-style: none; margin: 0; padding: 0; }
.action-row {
    display: grid;
    grid-template-columns: 5.5rem minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--s3);
    padding: var(--s3) 0;
    border-bottom: 1px solid var(--line);
}
.action-row:last-child { border-bottom: none; }
.action-main { display: flex; flex-direction: column; min-width: 0; text-decoration: none; }
.action-main:hover .action-title { text-decoration: underline; }
.action-title { font-weight: 600; overflow-wrap: anywhere; }
.action-detail { color: var(--slate-600); font-size: var(--t-body-s); }
.action-due { font-size: var(--t-body-s); color: var(--slate-600); white-space: nowrap; }
.action-due.due-late { color: var(--alert); font-weight: 600; }

.prio {
    display: inline-flex; justify-content: center; align-items: center;
    padding: 3px 9px; border-radius: 999px;
    font-size: var(--t-micro); font-weight: 700;
    text-transform: uppercase; letter-spacing: var(--label-track);
}
.prio-high   { background: var(--alert-bg);     color: var(--alert); }
.prio-medium { background: var(--awaiting-bg);  color: var(--amber-ink); }
.prio-low    { background: var(--scheduled-bg); color: var(--scheduled); }

.live-banner {
    background: linear-gradient(180deg, var(--recorded-bg), var(--surface));
    border: 1px solid #bfe3c2; border-radius: var(--radius);
    padding: var(--s4); margin-bottom: var(--s4);
}
.live-banner .eyebrow {
    color: var(--recorded); font-size: var(--t-small); text-transform: uppercase;
    letter-spacing: var(--label-track); margin: 0 0 var(--s2);
}
.live-row { display: flex; align-items: center; gap: var(--s3); color: var(--ink); text-decoration: none; }
.live-row:hover { text-decoration: none; }
.live-title { flex: 1; font-weight: 600; font-size: var(--t-lead); margin: 0; }
.live-dot {
    width: 9px; height: 9px; border-radius: 50%; background: var(--recorded);
    box-shadow: 0 0 0 3px rgba(17, 127, 58, .18);
}

.console { font-size: var(--t-read); }
.console-head {
    display: flex; justify-content: space-between; align-items: flex-start;
    gap: var(--s4); flex-wrap: wrap; margin-bottom: var(--s4);
}
.console-controls { display: flex; flex-wrap: wrap; gap: var(--s2); }
.console-grid {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--s4); align-items: start;
}
@media (max-width: 760px) { .console-grid { grid-template-columns: minmax(0, 1fr); } }
.console-grid .wide { grid-column: 1 / -1; }

.seat-tag {
    font-size: var(--t-micro); text-transform: uppercase; letter-spacing: var(--label-track);
    color: var(--slate-600); border: 1px solid var(--line); border-radius: 999px;
    padding: 1px 7px; margin-left: var(--s2); white-space: nowrap;
}

.share-all {
    display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3);
    padding: var(--s2) 0 var(--s3);
    border-bottom: 1px solid var(--line);
    margin-bottom: var(--s3);
}

.att-radio { display: flex; gap: var(--s3); align-items: center; }
.att-opt {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: var(--t-body-s); color: var(--charcoal); cursor: pointer;
}
.att-opt input { margin: 0; width: 16px; height: 16px; accent-color: var(--control-accent); }

.att-opt input:checked + span { font-weight: 600; color: var(--ink); }
.att-opt input:disabled + span { color: var(--slate-600); }
.att-radio .att-unrecorded { font-style: italic; }
.att-folded { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); margin: var(--s2) 0 0; }

.capture-set[disabled] .att-opt { cursor: not-allowed; }

.att-toggle { display: inline-flex; }
.att-toggle .btn { border-radius: 0; }
.att-toggle .btn:first-child {
    border-top-left-radius: var(--radius-sm); border-bottom-left-radius: var(--radius-sm);
}
.att-toggle .btn:last-child {
    border-top-right-radius: var(--radius-sm); border-bottom-right-radius: var(--radius-sm);
    margin-left: -1px;
}
.att-toggle .btn[aria-pressed="true"] {
    background: linear-gradient(180deg, #1a2a56 0%, var(--navy) 100%);
    border-color: #0a1330; color: #fff; font-weight: 600;
    position: relative; z-index: 1;
}
.att-toggle .btn:focus-visible { position: relative; z-index: 2; }

.captions {
    display: flex; align-items: center; gap: var(--s3);
    background: var(--navy); color: #e8ecf7; border-radius: var(--radius);
    padding: 10px var(--s4); margin-bottom: var(--s4); font-size: var(--t-body);
    position: sticky; top: var(--topbar-h); z-index: 5;
    box-shadow: 0 2px 6px rgba(15, 27, 61, .18);
}
.captions-tag {
    display: inline-flex; align-items: center; gap: 5px;
    background: rgba(255,255,255,.12); color: #fff; border-radius: 999px;
    padding: 2px 10px; font-size: var(--t-micro); font-weight: 700; letter-spacing: var(--label-track); white-space: nowrap;
    flex-shrink: 0;
}
.captions-tag { box-shadow: inset 0 0 0 1px rgba(230,168,60,.55); }
.captions-tag::before { content: "●"; color: #ff6b6b; font-size: 9px;  font-family: var(--font-symbol);}

.captions-text {
    flex: 1; min-width: 0;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    direction: rtl; text-align: left;
}
.captions-note {
    color: #9aa6c4; font-size: var(--t-small); white-space: nowrap; flex-shrink: 0;
    cursor: help; border-bottom: 1px dotted rgba(154,166,196,.5);
}

@media (max-width: 56.25rem) {
    .captions { flex-wrap: wrap; position: static; box-shadow: none; }
    .captions-text { flex-basis: 100%; order: 3; white-space: normal; direction: ltr; }
    .captions-note { white-space: normal; flex-shrink: 1; min-width: 0; }
}

.card-kind {
    display: flex; align-items: center; gap: 6px;
    font-size: var(--t-micro); font-weight: 700; text-transform: uppercase; letter-spacing: var(--label-track);
    margin-bottom: var(--s2);
}
.card-kind svg { width: 14px; height: 14px; }

.card-ai       { border-top: 3px solid var(--ai);       background: var(--surface); }
.card-ai .card-kind { color: var(--ai); }
.card-recorded { border-top: 3px solid var(--recorded); background: var(--surface); }
.card-recorded .card-kind { color: var(--recorded); }
.card-alert    { border-top: 3px solid var(--awaiting); background: var(--surface); }
.card-alert .card-kind { color: var(--amber-ink); }

.card-ai .card-kind,
.card-recorded .card-kind,
.card-alert .card-kind {
    margin: calc(var(--s3) * -1) calc(var(--s4) * -1) var(--s3);
    padding: var(--s2) var(--s4);
    border-bottom: 1px solid var(--line);
}
.card-ai .card-kind       { background: var(--ai-bg); }
.card-recorded .card-kind { background: var(--recorded-bg); }
.card-alert .card-kind    { background: var(--amber-wash); }

.sugg { border: 1px solid var(--line); border-radius: var(--radius-sm); padding: var(--s3); margin-bottom: var(--s3); background: var(--surface); }
.sugg-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--s2); }
.sugg-head code {
    background: var(--ai-bg); color: var(--ai); border: 1px solid #d9e2fd;
    padding: 1px 7px; border-radius: 4px; font-size: var(--t-small); font-weight: 600;
}
.sugg-time { color: var(--slate-600); font-size: var(--t-small); }
.sugg-actions { display: flex; gap: var(--s2); margin-top: var(--s3); }
.cue {
    margin: var(--s2) 0; padding: var(--s2) var(--s3);
    border-left: 3px solid var(--slate-300); background: var(--slate-050);
    color: var(--charcoal); font-style: italic; font-size: var(--t-control);
}
.row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s3); }

.motion { border-top: 1px solid var(--slate-100); padding: var(--s3) 0; }
.motion:first-of-type { border-top: none; }
.motion-head { display: flex; align-items: baseline; gap: var(--s2); margin-bottom: var(--s2); }
.motion-text { font-weight: 500; }
.motion-actions { display: flex; gap: var(--s2); align-items: center; flex-wrap: wrap; }
.motion-actions select { width: auto; min-width: 160px; margin-top: 0; }
.tally {
    font: 600 var(--t-body)/20px var(--font-ui); color: var(--ink);
    font-variant-numeric: tabular-nums; margin: var(--s2) 0 0;
}

.agenda { margin: 0; padding-left: var(--s5); }
.agenda li { margin-bottom: var(--s1); }

.state-banner {
    display: flex; align-items: center; gap: var(--s3);
    background: #1f2937; color: #fff; border-radius: var(--radius);
    padding: var(--s3) var(--s4); margin-bottom: var(--s4);
}
.state-banner strong { font-size: var(--t-body); }
.state-banner .pill { background: rgba(255,255,255,.16); color: #fff; }

.blank { text-align: center; padding: var(--s6) var(--s4); }
.blank-mark {
    width: 56px; height: 56px; margin: 0 auto var(--s3);
    border-radius: 50%; background: var(--slate-100);
    display: flex; align-items: center; justify-content: center; color: var(--slate);
}
.blank-glyph { font-family: var(--font-symbol); font-size: 26px; line-height: 1; }

.blank :is(h2, h3, h4) { margin-bottom: var(--s1); }
.blank p { color: var(--slate-600); margin: 0 0 var(--s4); font-size: var(--t-control); }

.shell-bare { background: var(--navy); }
.auth-page { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: var(--s5); }
.auth-card { width: 100%; max-width: 440px; margin: 0; padding: 0; overflow: hidden; }
.auth-head {
    background: var(--navy); color: #fff; padding: var(--s5) var(--s5) var(--s4);
    border-bottom: 3px solid var(--gold); text-align: center;
}
.auth-head .mark { width: 34px; height: 34px; margin: 0 auto; line-height: 0; }
.auth-head h1 { color: #fff; font-size: 20px; line-height: 28px; margin: var(--s2) 0 var(--s1); }
.auth-head p { color: #b9c2dd; margin: 0; font-size: var(--t-body-s); }
.auth-body { padding: var(--s5); }
.auth-body strong { overflow-wrap: anywhere; }
.auth-body h2 { font-family: var(--font-display); font-size: var(--t-h3); line-height: 30px; }
.auth-eyebrow {
    color: var(--slate-600); font-size: var(--t-micro); font-weight: 700;
    text-transform: uppercase; letter-spacing: var(--label-track); margin: 0 0 var(--s1);
}
.field-group {
    border: 0; margin: 0 0 var(--s5); padding: 0;
}
.field-group legend {
    color: var(--slate-600); font-size: var(--t-micro); font-weight: 700;
    text-transform: uppercase; letter-spacing: var(--label-track); padding: 0; margin-bottom: var(--s3);
}
.auth-body .btn-primary { width: 100%; }
.auth-assure {
    display: flex; align-items: center; justify-content: center; gap: 6px;
    color: var(--slate-600); font-size: var(--t-small); margin: var(--s3) 0 0;
}

.device-code {
    font-family: ui-monospace, "Cascadia Mono", Consolas, "DejaVu Sans Mono", monospace;
    font-size: 1.05em; letter-spacing: .12em; background: var(--slate-100);
    border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 1px 7px;
}

.body-tag {
    background: var(--navy); color: #fff; border-radius: 999px;
    padding: 2px 10px; font-size: var(--t-micro); font-weight: 600; letter-spacing: var(--label-track); margin-right: 6px;
}
.body-rule, .customised {
    background: var(--awaiting-bg); color: var(--amber-ink); border: 1px solid var(--edge-amber);
    border-radius: 999px; padding: 1px 9px; font-size: var(--t-micro); font-weight: 600; margin-right: 6px;
}
.customised { display: inline-block; margin-top: 3px; }

.doc { margin-bottom: 1.1rem; }

.doc-superseded {
    border-top-color: var(--line);
    border-left: 3px solid var(--line);
    background: #fbfbfc;
}

.doc-head {
    display: flex; justify-content: space-between; align-items: baseline;
    gap: 1rem; flex-wrap: wrap;
}
.doc-head h2 { margin: 0; }
.doc-meta { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }

.doc-body {
    white-space: pre-wrap;
    word-break: break-word;
    max-height: 26rem;
    overflow-y: auto;
    margin: .85rem 0 0;
    padding: .9rem 1rem;
    border-radius: 8px;
    background: var(--slate-050);
    border: 1px solid var(--line);
    font: 400 var(--t-small)/1.55 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.card-ai .doc-body { border-style: dashed; }

.doc-render {
    margin: var(--s4) 0 0;
    padding: var(--s5) var(--s5) var(--s4);
    border-radius: 8px;
    background: var(--surface);
    border: 1px solid var(--line);
    font: 400 var(--t-body)/25px var(--font-display);
    color: var(--ink);
}

.card-ai .doc-render { border-style: dashed; }

.doc-render .doc-h1 {
    font: 600 var(--t-h2)/25px var(--font-display);
    margin: 0 0 var(--s4);
    padding-bottom: var(--s2);
    border-bottom: 1px solid var(--line);
    letter-spacing: -.2px;
}
.doc-render .doc-h2 {
    font: 600 var(--t-read)/24px var(--font-display);
    margin: var(--s5) 0 var(--s2);
}
.doc-render .doc-h3 {
    font: 600 var(--t-control)/22px var(--font-display);
    margin: var(--s4) 0 var(--s1);
}
.doc-render .doc-h2:first-child,
.doc-render .doc-h3:first-child { margin-top: 0; }

.doc-render > * { max-width: 74ch; }
.doc-render .doc-p { margin: 0 0 var(--s3); }
.doc-render .doc-p:last-child { margin-bottom: 0; }

.doc-render .doc-ul { margin: 0 0 var(--s3); padding-left: var(--s5); }
.doc-render .doc-ul li { margin-bottom: var(--s1); }

.doc-render .doc-rule {
    border: 0;
    border-top: 1px solid var(--line);
    margin: var(--s5) 0 var(--s4);
}

.doc-render strong { font-weight: 600; }
.doc-render em { color: var(--slate-600); font-style: italic; }

.doc-provenance {
    margin-top: var(--s3);
    padding-top: var(--s3);
    border-top: 1px solid var(--line);
}
.doc-provenance .approved-by {
    margin: 0 0 var(--s1);
    font: 400 var(--t-body-s)/20px var(--font-ui);
    color: var(--ink);
}
.doc-provenance .approval-note {
    margin: 0 0 var(--s2);
    padding-left: var(--s3);
    border-left: 2px solid var(--line);
    font: 400 var(--t-body-s)/20px var(--font-display);
    font-style: italic;
    color: var(--slate-600);
}
.doc-provenance .fineprint { margin: 0; }

.doc-source { margin-top: var(--s3); }
.doc-source > summary {
    cursor: pointer;
    font: 400 var(--t-small)/18px var(--font-ui);
    color: var(--slate-600);
    text-decoration: underline;
    text-underline-offset: 2px;
    user-select: none;
}
.doc-source > summary:hover { color: var(--ink); }
.doc-source .doc-body { margin-top: var(--s2); }

.doc-gate {
    margin-top: .95rem;
    padding-top: .85rem;
    border-top: 1px solid var(--line);
    display: flex; flex-direction: column; gap: .6rem; align-items: flex-start;
}
.doc-gate .row { gap: .5rem; }

.doc-note {
    width: 100%; max-width: 46rem;
    padding: .5rem .65rem;
    border: 1px solid var(--line);
    border-radius: 6px;
    font: inherit;
}

.quorum {
    display: flex; align-items: center; gap: var(--s4); flex-wrap: wrap;
    margin: 0 0 var(--s4);
    padding: var(--s3) var(--s4);
    border-radius: var(--radius);
    border: 1px solid var(--line);
    border-left-width: 4px;
    background: var(--surface);
    box-shadow: var(--shadow);
}
.quorum-met       { border-left-color: var(--ok); }
.quorum-not-met   { border-left-color: var(--alert); }
.quorum-unknown   { border-left-color: var(--neutral); }
.quorum-detail    { color: var(--slate-600); }
.quorum-detail strong { color: var(--ink); }

.shared-screens {
    display: flex; align-items: center; gap: var(--s3); flex-wrap: wrap;
    margin: 0 0 var(--s4);
}
.shared-screens .hint { margin: 0; }
.shared-screens a {
    border: 1px solid var(--control-edge);
    background: linear-gradient(180deg, var(--raise-top) 0%, var(--raise-bottom) 100%);
    color: var(--heading);
    text-decoration: none;
    box-shadow: 0 1px 2px rgba(15, 27, 61, .10);
}
.shared-screens a:hover {
    background: linear-gradient(180deg, var(--raise-top) 0%, var(--raise-bottom-hover) 100%);
    border-color: var(--edge-strong);
    box-shadow: 0 2px 5px rgba(15, 27, 61, .14);
}
.shared-screens a:active { box-shadow: inset 0 2px 4px rgba(15, 27, 61, .18); transform: translateY(1px); }

.quorum-override {
    margin: var(--s3) 0;
    padding: var(--s3) var(--s4);
    display: flex; flex-direction: column; gap: var(--s2); align-items: flex-start;
}
.quorum-override input { width: 100%; max-width: 34rem; padding: var(--s2); }

.ballots { margin-top: var(--s3); }
.ballots td { vertical-align: top; }
.ballots .hint { display: block; margin-top: 2px; }
.ballots .pill-passed, .ballots .pill-approved {
    background: none; color: var(--slate-600);
    text-transform: none; letter-spacing: 0;
    font-size: var(--t-body-s); font-weight: 500; padding: 0;
}

.ballots tbody tr.ballot-invalid td:first-child {
    box-shadow: inset 3px 0 0 var(--alert);
}
.tally-excluded { color: var(--slate-600); }

.recusal-form {
    display: flex; gap: var(--s2); flex-wrap: wrap; align-items: center;
    margin-top: var(--s3);
}
.recusal-form input { flex: 1 1 22rem; padding: var(--s2); }
.btn-inline { margin-top: var(--s3); }
.btn-capture { margin-left: var(--s3); }

.resolution {
    padding: var(--s3) 0;
    border-bottom: 1px solid var(--line);
}
.resolution:last-child { border-bottom: 0; }
.resolution-head { display: flex; align-items: center; gap: var(--s2); }
.resolution-text {
    margin: var(--s2) 0 var(--s1);
    font: 400 var(--t-lead)/1.5 var(--font-display);
    color: var(--ink);
}

.overdue { color: var(--alert); font-weight: 600; }
.row-disabled td { opacity: .62; }

.form-grid {
    display: grid; gap: var(--s3);
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    margin: var(--s3) 0;
}
.form-grid label { display: flex; flex-direction: column; gap: 4px;
                   font: 600 var(--t-small)/1.4 var(--font-ui); color: var(--slate-600); }
.form-grid input, .form-grid select {
    padding: 8px 10px; font: 400 var(--t-control)/20px var(--font-ui);
    border: 1px solid var(--control-edge); border-radius: var(--radius-sm);
    background: var(--field); color: var(--ink);
    box-shadow: inset 0 1px 2px rgba(15, 27, 61, .08);
}

td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
.num.neg { color: var(--alert); }
.row-total td { border-top: 2px solid var(--slate-300); background: var(--slate-050); }

.row-struck td { text-decoration: line-through; opacity: .68; }
.row-struck td .hint { text-decoration: none; opacity: 1; }
.row-muted td { opacity: .62; }

.tabs { display: flex; gap: 3px; margin: var(--s3) 0 0; border-bottom: 1px solid var(--control-edge); }
.tab {
    padding: 8px 16px; font: 500 var(--t-control)/20px var(--font-ui);
    background: linear-gradient(180deg, var(--raise-top) 0%, var(--raise-bottom-tab) 100%);
    border: 1px solid var(--control-edge); border-bottom: 2px solid transparent;
    border-radius: var(--radius-sm) var(--radius-sm) 0 0;
    color: var(--slate-600); cursor: pointer;
}
.tab:hover {
    color: var(--heading);
    background: linear-gradient(180deg, var(--raise-top) 0%, var(--raise-bottom-tab-hover) 100%);
}

.tab-on {
    background: var(--surface); color: var(--heading);
    border-bottom-color: var(--gold); font-weight: 600;
}

.net-preview {
    padding: 10px 14px; margin: var(--s3) 0;
    background: var(--ok-bg); border-left: 3px solid var(--ok);
    border-radius: var(--radius-sm); font: 400 var(--t-control)/20px var(--font-ui);
}

.card h3 { margin: var(--s5) 0 0; font: 600 var(--t-body)/1.4 var(--font-ui); color: var(--heading); }

.heard-roll {
    display: flex; align-items: center; gap: var(--s3); flex-wrap: wrap;
    margin: 0 0 var(--s3);
}
.heard-mark { font-variant: small-caps; letter-spacing: var(--label-track); }
.heard-differs { color: var(--alert); font-weight: 600; }

.reconnect { display: none; }

#components-reconnect-modal.components-reconnect-show,
#components-reconnect-modal.components-reconnect-failed,
#components-reconnect-modal.components-reconnect-rejected {
    display: flex;
    position: fixed;
    inset: 0;
    z-index: 2000;
    align-items: flex-start;
    justify-content: center;
    padding-top: 12vh;
    background: rgba(10, 12, 16, .55);
    backdrop-filter: blur(2px);
}

.reconnect-card {
    background: var(--surface);
    border-radius: 10px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, .35);
    padding: 24px 28px;
    max-width: 30rem;
    font-size: var(--t-read);
    line-height: 1.45;
}
.reconnect-card strong { display: block; font-size: var(--t-h2); margin-bottom: 4px; }
.reconnect-card p { margin: 0 0 14px; color: #444; }

.reconnect-trying { display: none; gap: 14px; align-items: center; }
.reconnect-gone   { display: none; }

#components-reconnect-modal.components-reconnect-show .reconnect-trying { display: flex; }

#components-reconnect-modal.components-reconnect-failed   .reconnect-gone,
#components-reconnect-modal.components-reconnect-rejected .reconnect-gone { display: block; }

.reconnect-dot {
    width: 14px; height: 14px; border-radius: 50%; flex: none;
    background: var(--awaiting);
    animation: reconnect-pulse 1s ease-in-out infinite;
}
@keyframes reconnect-pulse { 0%, 100% { opacity: 1 } 50% { opacity: .25 } }

@media (prefers-reduced-motion: reduce) {
    .reconnect-dot { animation: none; }
}

.doc-none { margin: 0 0 8px; }

.doc-list { list-style: none; margin: 0 0 10px; padding: 0; }
.doc-list li {
    display: flex; align-items: center; gap: var(--s3); flex-wrap: wrap;
    padding: 7px 10px; margin-bottom: 4px;
    background: var(--slate-050); border-left: 3px solid var(--slate-300);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}

.doc-actions {
    display: flex; flex-direction: row; align-items: center; gap: var(--s2);
    flex-wrap: nowrap;
    margin-left: auto;
}
.doc-actions .btn { white-space: nowrap; min-width: 8.5rem; justify-content: center; }

.doc-old { opacity: .7; }
.doc-old a { text-decoration: line-through; }

.doc-list .hint { margin: 0; font-variant-numeric: tabular-nums; }

.pill-board      { background: var(--neutral-bg);   color: var(--neutral); }
.pill-shared     { background: var(--awaiting-bg);  color: var(--amber-ink); }
.pill-superseded { background: var(--neutral-bg);   color: var(--neutral); }
.pill-withdrawn  { background: var(--alert-bg);     color: var(--alert); }

.doc-add {
    display: flex; align-items: center; gap: var(--s4); flex-wrap: wrap;
    padding: 10px 0 4px;
}
.doc-file { display: flex; align-items: center; gap: var(--s2); margin: 0; font-weight: 500; }
.doc-file input[type="file"] { width: auto; margin: 0; box-shadow: none; border: 0; padding: 0; }
.doc-share { display: flex; align-items: center; gap: var(--s2); margin: 0; font-weight: 400; }

.doc-links { list-style: none; margin: 0; padding: 0; }
.doc-links li { margin-bottom: var(--s3); }
.doc-link-name { display: block; font-weight: 600; margin-bottom: 4px; }
.doc-links input {
    font: 400 var(--t-body-s)/1.5 ui-monospace, "Cascadia Mono", Consolas, monospace;
    margin-top: 0;
}

.item-editor h2 { margin: 0 0 var(--s2); }

.editor-meta {
    display: flex; align-items: center; gap: var(--s2); flex-wrap: wrap;
    margin: 0 0 var(--s3);
}
.editor-item { font-weight: 600; font-size: var(--t-body); color: var(--ink); }
.editor-status { margin-left: auto; }

.editor-row {
    display: grid; grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--s4); align-items: start;
}
.editor-fields label:last-child { margin-bottom: 0; }
.editor-actions {
    display: flex; flex-direction: column; gap: var(--s2);
    width: max-content; min-width: 8.5rem;
    padding-top: 22px;
}
.editor-actions .btn { width: 100%; white-space: nowrap; }

.editor-section { border-top: 1px solid var(--line); margin-top: var(--s4); padding-top: var(--s3); }
.editor-h {
    margin: 0 0 var(--s2);
    font-size: var(--t-micro); font-weight: 700; text-transform: uppercase;
    letter-spacing: var(--label-track); color: var(--slate-600);
}
.editor-section .doc-add { padding: 4px 0 0; }

.editor-foot {
    display: flex; gap: var(--s2); flex-wrap: wrap;
    border-top: 1px solid var(--line); margin-top: var(--s4); padding-top: var(--s3);
}

.editor-read-title { margin: 0; font-weight: 600; font-size: var(--t-body); color: var(--ink); }

.suggested-action { margin: var(--s3) 0 0; text-align: right; font-size: var(--t-small); color: var(--slate-600); }

.unsaved-choice {
    margin: 0 0 var(--s4); padding: var(--s3) var(--s4);
    background: var(--amber-wash); border: 1px solid var(--edge-amber); border-radius: var(--radius-sm);
    color: var(--ink);
}
.unsaved-choice p { margin: 0 0 var(--s3); }

.edit-conflict {
    margin: 0 0 var(--s4); padding: var(--s3) var(--s4);
    background: var(--amber-wash); border: 1px solid var(--edge-amber); border-radius: var(--radius-sm);
    color: var(--ink);
}
.edit-conflict .conflict-text { white-space: pre-wrap; margin: 0 0 var(--s3); }

.setup-steps { list-style: none; margin: 0 0 var(--s4); padding: 0; display: grid; gap: var(--s2); }
.setup-steps li { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s2); }

@media (max-width: 40rem) {
    .editor-row { grid-template-columns: minmax(0, 1fr); }
    .editor-actions { flex-direction: row; width: auto; padding-top: 0; }
    .editor-actions .btn { width: auto; }
}

.pill-editing { background: var(--progress-bg); color: var(--progress); }

.row-open > td { background: var(--progress-bg); }
.row-open > td:first-child { box-shadow: inset 3px 0 0 var(--progress); }

.item-open {
    display: inline; padding: 0; margin: 0; border: 0; background: none;
    font: inherit; color: var(--ink); text-align: left; cursor: pointer;
    text-decoration: underline; text-decoration-color: var(--slate-300);
    text-underline-offset: 3px;
}
.item-open:hover { color: var(--heading); text-decoration-color: currentColor; }

.item-state { white-space: nowrap; }

.row-docs {
    list-style: none; margin: 4px 0 0; padding: 0;
    display: flex; flex-wrap: wrap; gap: 4px var(--s3);
    font-size: var(--t-small);
}
.row-docs li { display: inline-flex; align-items: center; gap: 6px; }

.row-note {
    display: block; margin-top: 4px;
    color: var(--amber-ink); font-size: var(--t-small); font-weight: 600;
}

.item-desc {
    display: block;
    margin: 3px 0 0;
    color: var(--slate-600);
    font-size: var(--t-small);
    line-height: 1.45;
}

.item-desc-clamped {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    max-height: 2.9em;
}

.btn-more {
    display: inline-block;
    margin-top: 2px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--ai);
    font: 500 var(--t-small)/1.4 var(--font-ui);
    cursor: pointer;
    text-decoration: underline;
}
.btn-more:hover { color: var(--heading); }

.item-actions {
    display: flex;
    flex-direction: column;
    gap: 6px;
    width: max-content;
    min-width: 8.5rem;
    margin-left: auto;
}
.item-actions .btn {
    width: 100%;
    justify-content: center;
    white-space: nowrap;
}

.item-label { white-space: nowrap; font-variant-numeric: tabular-nums; }

.grid-agenda td { padding: var(--s2) var(--s3); height: auto; }

.grid-agenda .item-actions { gap: 4px; }
.grid-agenda .item-actions .btn { padding: 6px 14px; }

.check-row {
    display: flex;
    align-items: flex-start;
    gap: var(--s3);
    margin-bottom: var(--s3);
    font-size: var(--t-body-s);
    line-height: 1.5;
}
.check-row input[type="checkbox"] { margin-top: 3px; flex: none; }
.check-row strong { color: var(--ink); }

.page-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: var(--s2);
    margin-bottom: var(--s4);
    flex-wrap: wrap;
}
.page-actions .btn { min-width: 11rem; justify-content: center; }
.page-actions .btn-primary { margin-left: var(--s5); }

.picker-row {
    display: flex; align-items: center; gap: var(--s3); flex-wrap: wrap;
}
.picker {
    display: flex; align-items: center; gap: var(--s2);
    font: 600 var(--t-body-s)/1.4 var(--font-ui); color: var(--slate-600);
}
.picker select { font-size: var(--t-control); padding: 7px 9px; min-width: 12rem; max-width: 18rem; }

.agenda-preview { margin: 0; padding-left: var(--s5); }
.agenda-preview > li { padding: 4px 0; }
.agenda-preview-subs { list-style: lower-alpha; margin: 4px 0 0; padding-left: var(--s5); }
.agenda-preview-subs > li { padding: 2px 0; font-size: var(--t-body-s); }
.agenda-preview .item-desc { display: block; }

.import-box { display: block; margin: var(--s3) 0; font: 600 var(--t-small)/1.4 var(--font-ui); color: var(--slate-600); }
.import-box textarea {
    display: block; width: 100%; margin-top: 4px; padding: 10px 12px;
    font: 400 var(--t-body-s)/1.6 ui-monospace, "Cascadia Code", "Consolas", monospace;
    border: 1px solid var(--control-edge); border-radius: var(--radius-sm);
    background: var(--field); color: var(--ink);
    box-shadow: inset 0 1px 2px rgba(15, 27, 61, .08);
    resize: vertical;
}

.import-preview {
    margin: var(--s3) 0; padding: var(--s3) var(--s4);
    background: var(--slate-050); border-left: 3px solid var(--slate-300);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}
.import-preview h3 { margin: 0 0 var(--s2); font: 600 var(--t-small)/1.4 var(--font-ui); color: var(--slate-600); }
.import-preview ul { list-style: none; margin: 0; padding: 0; }
.import-preview li { padding: 2px 0; font-size: var(--t-body-s); }
.import-preview li.is-sub { padding-left: var(--s5); }
.import-preview .item-desc { display: block; }

.load-template { margin-top: var(--s4); padding-top: var(--s3); border-top: 1px solid var(--line); }
.load-template h3 { margin: 0 0 var(--s2); font: 600 var(--t-body-s)/1.4 var(--font-ui); color: var(--slate-600); }
.load-template .row { display: flex; gap: var(--s2); align-items: center; flex-wrap: wrap; }

.type-tag {
    display: inline-block;
    padding: 2px 9px;
    border: 1px solid var(--control-edge);
    border-radius: 999px;
    background: var(--slate-050);
    color: var(--slate-600);
    font: 500 var(--t-small)/1.5 var(--font-ui);
    white-space: nowrap;
}

.notice-card { border-left: 4px solid var(--neutral); }
.notice-card h2 { margin-top: 0; }

.notice-due                { border-left-color: var(--awaiting); background: linear-gradient(180deg, var(--amber-wash), var(--surface)); }
.notice-short              { border-left-color: var(--alert);    background: linear-gradient(180deg, var(--alert-bg), var(--surface)); }
.notice-periodnotconfigured{ border-left-color: var(--neutral);  background: linear-gradient(180deg, var(--slate-050), var(--surface)); }
.notice-satisfied          { border-left-color: var(--ok);       background: linear-gradient(180deg, var(--recorded-bg), var(--surface)); }

.notice-form { margin-top: var(--s3); display: flex; flex-direction: column; gap: var(--s3); }
.notice-form .field-group { margin: 0; }
.notice-form label { display: flex; flex-direction: column; gap: 4px;
                     font: 600 var(--t-small)/1.4 var(--font-ui); color: var(--slate-600); }
.notice-form .btn { align-self: flex-start; }

.warn {
    margin: 0;
    padding: var(--s2) var(--s3);
    border-left: 3px solid var(--alert);
    background: var(--alert-bg);
    color: var(--ink);
    font-size: var(--t-body-s);
}

.drag-handle {
    font-family: var(--font-symbol);
    display: inline-block;
    margin-right: 6px;
    padding: 0 3px;
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    background: none;
    color: var(--slate);
    font-size: var(--t-body);
    line-height: 1.2;
    cursor: grab;
    vertical-align: middle;
}
.drag-handle:hover:not(:disabled) { color: var(--heading); border-color: var(--control-edge); }
.drag-handle:active:not(:disabled) { cursor: grabbing; }
.drag-handle:disabled { opacity: .4; cursor: default; }

.drag-handle:focus-visible { border-color: var(--control-edge); }

ins {
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 2px;
    text-decoration-color: var(--ok);
    background: none;
}
del {
    text-decoration: line-through;
    text-decoration-color: var(--alert);
    color: var(--slate-600);
}

.amend-tag {
    display: inline-block;
    margin-left: var(--s2);
    padding: 1px 7px;
    border: 1px solid var(--control-edge);
    border-radius: 999px;
    background: var(--slate-050);
    color: var(--slate-600);
    font: 600 var(--t-micro)/1.6 var(--font-ui);
    text-transform: uppercase;
    letter-spacing: var(--label-track);
    vertical-align: middle;
    cursor: help;
}

.pill-amendment { background: var(--awaiting-bg); color: var(--amber-ink); }

.amend-key {
    margin: 0 0 var(--s4);
    padding: var(--s3) var(--s4);
    border-left: 3px solid var(--awaiting);
    background: var(--slate-050);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    font-size: var(--t-body-s);
    color: var(--slate-600);
}

.amend-removed { margin-top: var(--s4); padding-top: var(--s3); border-top: 1px solid var(--line); }
.amend-removed h3 { margin: 0 0 var(--s2); font: 600 var(--t-body-s)/1.4 var(--font-ui); color: var(--slate-600); }
.amend-removed ul { list-style: none; margin: 0 0 var(--s2); padding: 0; }
.amend-removed li { padding: 4px 0; }
.amend-removed .item-desc { display: block; }

.row-dragging > td { opacity: .45; }

.row-drop-target > td { box-shadow: inset 0 3px 0 -1px var(--gold); }

.sub-row > td:first-child  { padding-left: 7rem; }
.sub-row > td:nth-child(2) { padding-left: 5.5rem; }

.sub-row > td:first-child { border-left: 3px solid var(--slate-300); }
.sub-row .item-label { color: var(--slate-600); font-style: italic; }

.sub-row > td:nth-child(2) strong { font-size: var(--t-control); }

@media (max-width: 40rem) {
    .sub-row > td:first-child { padding-left: var(--s3); }
    .sub-row > td:nth-child(2) { padding-left: 2rem; }
}

.card.notice.guard-notice {
    border-top: 3px solid var(--awaiting);
    margin-bottom: var(--s4);
    max-width: none;
}
.guard-notice h2 { margin: 0 0 var(--s2); font-size: var(--t-h2); }
.guard-notice .sub { margin: 0; max-width: 72ch; }

.capture-set { border: 0; margin: 0; padding: 0; min-width: 0; }
.capture-set[disabled] {
    border-left: 3px solid var(--slate-300); padding-left: var(--s3);
}
.capture-set[disabled] .btn { cursor: not-allowed; }

.card.notice.correction-open {
    border-top: 3px solid var(--awaiting);
    background: var(--amber-wash);
    max-width: none;
    margin-bottom: var(--s4);
}
.card.notice.correction-open h2 { margin: 0 0 var(--s2); font-size: var(--t-h2); }
.card.notice.correction-open .sub { margin: 0 0 var(--s2); max-width: 72ch; }

.correction-form { margin-top: var(--s3); max-width: 60ch; }
.correction-form label { display: block; margin-bottom: var(--s2); }
.correction-form input { width: 100%; }
.correction-form .fineprint { margin: 0 0 var(--s3); }

.correction-mark {
    display: inline-block;
    font: 600 var(--t-micro)/1 var(--font-ui);
    letter-spacing: var(--label-track);
    text-transform: uppercase;
    padding: 3px 6px;
    margin-left: 6px;
    border-radius: 3px;
    background: var(--awaiting-bg);
    color: var(--amber-ink);
    border: 1px solid var(--edge-amber);
    vertical-align: 1px;
    cursor: help;
}

.correction-history { margin-bottom: var(--s4); }
.correction-history .card-kind { color: var(--amber-ink); }
.correction-history td:nth-child(2) { max-width: 46ch; }
.correction-history .fineprint { margin: var(--s3) 0 0; }

.table-scroll {
    overflow-x: auto;
    padding: 4px;
    margin: -4px;
    background:
        linear-gradient(to right, var(--scroll-cover) 30%, transparent) left top / 40px 100% repeat-y local content-box,
        linear-gradient(to left, var(--scroll-cover) 30%, transparent) right top / 40px 100% repeat-y local content-box,
        linear-gradient(to right, var(--slate-300), transparent) left top / 14px 100% repeat-y scroll content-box,
        linear-gradient(to left, var(--slate-300), transparent) right top / 14px 100% repeat-y scroll content-box;
}
.table-scroll > table { position: relative; }
.hint + .table-scroll > .ballots { margin-top: 0; }

.agenda-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 32%);
    gap: var(--s4);
    align-items: start;
}
.agenda-main  { grid-column: 1; grid-row: 1; min-width: 0; }
.carry-aside  { grid-column: 2; grid-row: 1; }

.minutes-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 400px;
    gap: var(--s4);
    align-items: start;
}
.minutes-main  { grid-column: 1; grid-row: 1; min-width: 0; }
.minutes-aside { grid-column: 2; grid-row: 1; min-width: 0; }

@media (max-width: 68.75rem) {
    .minutes-grid { grid-template-columns: minmax(0, 1fr); }
    .minutes-grid > .minutes-main  { grid-column: 1; grid-row: 1; }
    .minutes-grid > .minutes-aside { grid-column: 1; grid-row: 2; }
}

.minutes-item .doc-head { margin-bottom: var(--s2); }
.minutes-sub {
    margin: var(--s3) 0 0 var(--s3);
    padding-left: var(--s3);
    border-left: 2px solid var(--line);
}
.minutes-sub h4 { margin: 0 0 var(--s2); }

.item-no {
    font-variant-numeric: tabular-nums;
    color: var(--slate-600);
    margin-right: .4rem;
}

.motion-block { margin: var(--s3) 0 0; }
.motion-block + .motion-block { padding-top: var(--s3); border-top: 1px solid var(--line); }
.motion-block .motion-text { margin: var(--s2) 0 var(--s1); }

.roll { list-style: none; padding: 0; margin: var(--s2) 0 0; display: grid; gap: var(--s1); }
.roll li { display: flex; align-items: baseline; gap: var(--s2); flex-wrap: wrap; }
.roll-name { font-weight: 600; }
.roll-mark { font-weight: 600; }
.roll-present { color: var(--recorded); }
.roll-absent  { color: var(--slate-600); }

.transcript {
    list-style: none;
    margin: var(--s2) 0 0;
    padding: 0;
    max-height: 30rem;
    overflow-y: auto;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
}
.transcript li {
    display: grid;
    grid-template-columns: 4.5rem minmax(0, 1fr);
    gap: var(--s2);
    padding: var(--s2) var(--s3);
    border-bottom: 1px solid var(--line);
}
.transcript li:last-child { border-bottom: none; }
.transcript li:target { background: var(--ai-bg); }
.t-at {
    font-variant-numeric: tabular-nums;
    color: var(--slate-600);
    white-space: nowrap;
}
.t-text { min-width: 0; overflow-wrap: anywhere; }

.time-marks { display: flex; flex-wrap: wrap; gap: var(--s1); margin-top: var(--s2); }

.agenda-grid-single { grid-template-columns: minmax(0, 1fr); }
.agenda-grid-single .agenda-main { grid-column: 1; }

@media (max-width: 68.75rem) {
    .agenda-grid, .agenda-grid-single { grid-template-columns: minmax(0, 1fr); }
    .agenda-grid > .agenda-main  { grid-column: 1; grid-row: 1; }
    .agenda-grid > .carry-aside  { grid-column: 1; grid-row: 2; }
}

.carry-card {
    display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s3);
    background: var(--surface);
    border: 1px solid var(--line); border-left: 3px solid var(--awaiting);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    padding: var(--s3);
}
.carry-body { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.carry-body .item-desc { margin: 0; }
.carry-add  { flex: 0 0 auto; white-space: nowrap; }

.carry-list { list-style: none; margin: var(--s3) 0; padding: 0; display: grid; gap: var(--s2); }

.carry-why {
    font-size: var(--t-micro); font-weight: 600; text-transform: uppercase;
    letter-spacing: var(--label-track); color: var(--slate-600);
}
.carry-title { font-weight: 600; color: var(--ink); }

@media (max-width: 40rem) {
    .carry-card { flex-direction: column; }
}

.notice-paper {
    background: #ffffff; color: #111111;
    border: 1px solid var(--line); border-radius: 2px;
    box-shadow: 0 1px 3px rgba(15, 27, 61, .12), 0 6px 18px rgba(15, 27, 61, .06);
    padding: 22px 22px 16px;
    font-family: Helvetica, Arial, "Liberation Sans", sans-serif;
    font-size: var(--t-micro);
    line-height: 1.45;
    overflow-wrap: break-word;
}
:where(.notice-paper p) { margin: 0; }

.np-status {
    margin: 0 0 12px; padding: 4px 8px; text-align: center;
    border: 1px solid #111111;
    font-size: .85em; font-weight: 700; letter-spacing: var(--label-track); text-transform: uppercase;
}
.np-status-warn { border-width: 2px; }

.np-letterhead {
    display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start;
    gap: 6px 12px;
    padding-bottom: 8px; border-bottom: 2px solid #111111;
}
.np-mast { min-width: 0; }
.np-name {
    font: 700 1.65em/1.1 "Times New Roman", Times, "Liberation Serif", serif;
    text-transform: uppercase;
}
.np-tagline {
    margin-top: 3px; color: #4a4a4a;
    font-size: .65em; letter-spacing: .18em; text-transform: uppercase;
}
.np-address {
    display: flex; flex-direction: column; align-items: flex-end; flex: none; margin-left: auto;
    font-style: normal; text-align: right; font-size: .72em; line-height: 1.4; color: #3d3d3d;
}
.np-legal { font-weight: 700; }

.np-heading { text-align: center; margin: 12px 0 10px; }
.np-body { font-weight: 700; font-size: 1.05em; letter-spacing: var(--label-track); text-transform: uppercase; }

.np-items {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: max-content minmax(0, 1fr); column-gap: .55em;
}
.np-items > li {
    display: grid; grid-column: 1 / -1; grid-template-columns: subgrid;
    align-items: baseline; margin-top: .7em;
}
.np-num { text-align: right; font: 700 1.05em/1.4 "Times New Roman", Times, "Liberation Serif", serif; }
.np-text { min-width: 0; }
.np-title { font-weight: 700; }
.np-desc { color: #2b2b2b; }
.np-subs > li { margin-top: .35em; }
.np-subs .np-num { font: 700 .95em/1.4 Helvetica, Arial, "Liberation Sans", sans-serif; }
.np-empty { text-align: center; color: #4a4a4a; margin: 10px 0; }

.np-motto {
    margin-top: 16px; padding-top: 6px; border-top: 1px solid #111111; text-align: center;
    color: #4a4a4a; font-size: .65em; letter-spacing: .2em; text-transform: uppercase;
}

.record-motions { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s2); }
.record-motions li { display: flex; align-items: baseline; gap: var(--s2); flex-wrap: wrap; }

.source-notes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s3); }
@media (max-width: 40rem) {
    .source-notes { grid-template-columns: minmax(0, 1fr); }
}
.source-note { border: 1px solid var(--line); border-radius: var(--radius-sm); padding: var(--s3); }
.source-ai { border-left: 3px solid var(--ai); background: var(--ai-bg); }
.source-record { border-left: 3px solid var(--recorded); background: var(--recorded-bg); }
.source-head { display: flex; align-items: center; gap: var(--s2); flex-wrap: wrap; margin-bottom: var(--s1); }
.source-text { margin: 0 0 var(--s2); font-size: var(--t-body-s); white-space: pre-line; }

.final-text { min-height: 7rem; }
.add-minutes-item { display: flex; align-items: flex-end; gap: var(--s2); margin: 0 0 var(--s3); }
.add-minutes-item label { flex: 1; margin-bottom: 0; }

.notice-place { display: flex; align-items: flex-end; gap: var(--s2); margin: 0 0 var(--s3); }
.notice-place label { flex: 1; margin-bottom: 0; }

.minutes-preview {
    margin-top: var(--s3); padding-top: var(--s3); border-top: 1px solid var(--line);
    max-height: 36rem; overflow-y: auto;
}

.pager {
    display: flex; align-items: center; gap: var(--s3); flex-wrap: wrap;
    padding: var(--s3) 0;
    font-size: var(--t-small); color: var(--slate-600);
}
.pager-size { display: flex; align-items: center; gap: var(--s2); margin: 0; }
.pager-size select { width: auto; padding: 4px var(--s2); font-size: var(--t-small); }
.pager-count { font-variant-numeric: tabular-nums; }

.date-range {
    display: flex; align-items: center; flex-wrap: wrap; gap: var(--s2) var(--s3);
    margin: 0 auto 0 0;
}
.date-range label {
    display: flex; align-items: center; gap: var(--s2); margin: 0;
    font-size: var(--t-small);
}
.date-range input { width: auto; margin-top: 0; padding: 4px var(--s2); font-size: var(--t-small); }

.pager .btn[aria-disabled="true"] {
    opacity: .45; cursor: default; box-shadow: none;
}
.pager .btn[aria-disabled="true"]:hover { background: var(--surface); border-color: var(--line); }

.motion-live {
    background: var(--slate-050);
    border-left: 3px solid var(--gold);
    padding-left: var(--s3);
    border-radius: var(--radius-sm);
    --scroll-cover: var(--slate-050);
}

.console .pill { font-size: var(--t-small); padding: 3px 10px; }
.console .grid th { font-size: var(--t-small); }
.console .hint { font-size: var(--t-control); }
.console .captions-note { font-size: var(--t-body-s); }

.console .btn, .console input, .console select, .console textarea, .console .tab {
    font-size: var(--t-body);
}

.console-now {
    display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: var(--s4);
    align-items: start; margin-bottom: var(--s4);
}
.now-main, .now-side { display: flex; flex-direction: column; gap: var(--s4); min-width: 0; }
.console-now .card { margin-bottom: 0; }
@media (max-width: 68.75rem) {
    .console-now { grid-template-columns: minmax(0, 1fr); }
}

.now-item { border-top: 3px solid var(--progress); }
.now-title { display: flex; align-items: center; gap: var(--s2); flex-wrap: wrap; margin: 0 0 var(--s1); }
.now-label { color: var(--slate-600); font-variant-numeric: tabular-nums; }
.now-desc { margin: 0 0 var(--s3); }

.now-motion {
    display: flex; align-items: baseline; gap: var(--s2); flex-wrap: wrap;
    margin: 0 0 var(--s3); padding: var(--s2) var(--s3);
    background: var(--slate-050); border-left: 3px solid var(--gold); border-radius: var(--radius-sm);
}
.now-form { margin-top: var(--s1); }
.now-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s3); }
.now-fields label { margin-bottom: 0; }
@media (max-width: 40rem) {
    .now-fields { grid-template-columns: minmax(0, 1fr); }
}
.now-actions { display: flex; gap: var(--s2); flex-wrap: wrap; margin-top: var(--s3); }

.now-items h2 { margin-bottom: var(--s1); }
.items-progress .item-label { width: 3rem; }
.now-summary { color: var(--slate-600); font-size: var(--t-body-s); }
.vote-record td:last-child { white-space: nowrap; }
.vote-record td:first-child { min-width: 7rem; }
.vote-quick { display: inline-flex; gap: 4px; }
.vote-quick .btn { padding-inline: 10px; }
.row-current > td { background: var(--progress-bg); }
.row-current > td:first-child { box-shadow: inset 3px 0 0 var(--progress); }

.now-quorum { display: flex; align-items: center; gap: var(--s2); flex-wrap: wrap; margin: 0 0 var(--s3); }

.stepper { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s3); }
.step { display: grid; grid-template-columns: 18px minmax(0, 1fr); column-gap: var(--s2); }
.step-dot {
    grid-row: 1 / span 2; width: 14px; height: 14px; margin-top: 3px;
    border: 2px solid var(--control-edge); border-radius: 50%; background: var(--surface);
}
.step-title { font-weight: 600; color: var(--ink); }
.step-text { grid-column: 2; color: var(--slate-600); font-size: var(--t-body-s); }
.step-now .step-dot { background: var(--progress); border-color: var(--progress); }
.step-done .step-dot { background: var(--ok); border-color: var(--ok); }
.step-next .step-title { color: var(--slate-600); font-weight: 500; }

.clock {
    display: block; font: 600 var(--t-figure)/1.1 var(--font-ui);
    font-variant-numeric: tabular-nums; color: var(--ink);
}
.now-time .hint { margin: var(--s1) 0 0; }

.console-grid > .card { margin-bottom: 0; }

td.date, .grid td.date { font-variant-numeric: tabular-nums; }

.note-toggle { color: var(--amber-ink); }
.note-when   { color: var(--slate-600); font-size: var(--t-small); margin-left: var(--s2); }

.note-panel {
    background: var(--amber-wash);
    border: 1px solid var(--edge-amber);
    border-left: 3px solid var(--awaiting);
    border-radius: var(--radius-sm);
    padding: var(--s3);
    margin: var(--s2) 0 var(--s3);
}
.note-tag {
    display: inline-block; color: var(--amber-ink); font-size: var(--t-small);
    text-transform: none; margin-bottom: var(--s2);
}
.note-label { display: block; font-size: var(--t-body-s); color: var(--charcoal); }
.note-body  {
    width: 100%; font: inherit; color: var(--ink); background: var(--field);
    border: 1px solid var(--control-edge); border-radius: var(--radius-sm);
    padding: var(--s2); margin-top: 4px;
}
.note-privacy { color: var(--charcoal); font-size: var(--t-body-s); margin: var(--s3) 0 0; }
.note-count   { color: var(--slate-600); font-size: var(--t-small); }
.note-actions { display: flex; gap: var(--s2); margin-top: var(--s3); }

.note-confirm { color: var(--charcoal); font-size: var(--t-body-s); margin: var(--s3) 0 0; }
.note-delete-all { margin-top: var(--s3); }

.note-card .card-kind { color: var(--amber-ink); background: var(--amber-wash); }

.bodies-summary {
    display: flex; flex-wrap: wrap; gap: var(--s3) var(--s6);
    list-style: none; margin: 0 0 var(--s5); padding: var(--s4) var(--s5);
    background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
    box-shadow: var(--shadow);
}
.bodies-summary li { color: var(--slate-600); font-size: var(--t-body-s); }
.bodies-summary strong {
    display: block; color: var(--heading); font-size: var(--t-figure); font-weight: 700;
    line-height: 1.1; font-variant-numeric: tabular-nums;
}
.bodies-h { margin: var(--s5) 0 var(--s3); }
.bodies-grid {
    display: grid; gap: var(--s4); align-items: start;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 26rem), 1fr));
}
.body-card { margin: 0; }
.body-card .panel-head h3 { margin: 0; }
.body-sub { border-left: 4px solid var(--slate-300); }
.body-charter { margin: 0 0 var(--s3); color: var(--charcoal); font-size: var(--t-body-s); }
.body-facts {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--s2) var(--s4); margin: 0 0 var(--s3);
}
.body-facts dt {
    font-size: var(--t-micro); font-weight: 700; text-transform: uppercase;
    letter-spacing: var(--label-track); color: var(--slate-600);
}
.body-facts dd { margin: 0; color: var(--ink); font-size: var(--t-body-s); }
.body-next { margin: 0 0 var(--s3); font-size: var(--t-body-s); }

.seat-controls { display: grid; gap: var(--s2); margin-top: var(--s3); }
.body-card td.date { white-space: nowrap; }
.seat-add > summary, .seat-remove > summary {
    cursor: pointer;
    font: 400 var(--t-small)/18px var(--font-ui);
    color: var(--slate-600);
    text-decoration: underline;
    text-underline-offset: 2px;
    user-select: none;
}
.seat-add > summary:hover, .seat-remove > summary:hover { color: var(--ink); }
.seat-form { display: grid; gap: var(--s3); margin-top: var(--s3); }
.seat-form label { display: grid; gap: var(--s1); font-size: var(--t-small); color: var(--slate-600); }
.seat-form .check-row { display: flex; }
.seat-until { display: block; color: var(--slate-600); font-size: var(--t-small); }

@media screen {
    :root[data-theme="dark"] .topbar {
        box-shadow: 0 1px 0 #2a3a5c, 0 2px 8px rgba(0, 0, 0, .5);
    }
    :root[data-theme="dark"] .nav-panel {
        border-bottom: 1px solid #2a3a5c;
        box-shadow: 0 8px 16px rgba(0, 0, 0, .5);
    }

    :root[data-theme="dark"] .btn-primary,
    :root[data-theme="dark"] .btn-secondary:hover:not(:disabled),
    :root[data-theme="dark"] .att-toggle .btn[aria-pressed="true"] {
        background: linear-gradient(180deg, #3a5bd0 0%, #2d48a8 100%);
        border-color: #7d95e6; color: #fff;
    }
    :root[data-theme="dark"] .btn-primary:hover:not(:disabled) {
        background: linear-gradient(180deg, #4566dc 0%, #3352b8 100%);
        border-color: #9aaeef; color: #fff;
    }

    :root[data-theme="dark"] .state-banner { background: #2a3654; color: #fff; }

    :root[data-theme="dark"] .ok { border-color: #2f6b43; }
    :root[data-theme="dark"] .error { border-color: #6e2c30; }
    :root[data-theme="dark"] .info { border-color: #34488a; }
    :root[data-theme="dark"] .live-banner { border-color: #2f6b43; }
    :root[data-theme="dark"] .sugg-head code { border-color: #34488a; }
    :root[data-theme="dark"] .doc-superseded { background: #111a2b; }
    :root[data-theme="dark"] .reconnect-card p { color: var(--charcoal); }

    :root[data-theme="dark"] .entity-title.et-own-colour {
        color: color-mix(in srgb, var(--entity-title-colour) 40%, #ffffff);
    }
}

@media (max-width: 75rem) {
    :root { --topbar-h: 94px; }
    .topbar {
        display: grid; grid-template-columns: auto minmax(0, 1fr);
        grid-template-areas: "brand who" "nav nav"; gap: 0 var(--s5);
        height: auto; min-height: var(--topbar-h);
    }
    .brand { grid-area: brand; min-height: 50px; }
    .who { grid-area: who; }
    .topbar > .nav {
        grid-area: nav; flex-wrap: wrap; gap: 0 var(--s5); height: auto; min-height: 44px;
        overflow: visible; border-top: 1px solid rgba(255, 255, 255, .12);
    }
}

@media (max-width: 48rem) {
    :root { --topbar-h: 50px; }
    .topbar { display: flex; gap: var(--s2); padding: 0 var(--s3); height: 50px; }
    .topbar > .nav, .who .theme-switch, .who .who-level { display: none; }
    .brand-text {
        position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden;
        clip: rect(0 0 0 0); white-space: nowrap;
    }
    .nav-menu { display: block; flex-shrink: 0; }
    .who { grid-template-columns: minmax(0, max-content) auto; column-gap: var(--s2); }
    .who .btn { padding-left: var(--s3); padding-right: var(--s3); }
    .page-pad { padding: var(--s4); }
    .row { grid-template-columns: minmax(0, 1fr); }
}

@media (max-height: 32rem) {
    :root { --topbar-h: 0px; }
    .topbar { position: relative; }
    .captions { position: static; }
}

@media print {
    .table-scroll { overflow: visible; background: none; }
    .topbar, .nav-menu, .reconnect, .site-foot,
    #components-reconnect-modal.reconnect { display: none; }
}
