/* Shared presentation primitives. Keep this sheet after slice styles. */
:root {
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-5:20px; --space-6:24px; --space-7:32px; --space-8:40px;
  --r-s:8px; --r-m:10px; --r-l:12px;
  --muted:#626978; --surface-2:#f7f7f5; --surface-3:#ececea;
  --ink-2:#464a57; --line-2:rgba(20,22,30,.16);
  --accent-soft:color-mix(in srgb,var(--accent) 10%,transparent);
  --accent-ink:#3a46b8; --on-accent:#fff;
  --warning-ink:#8b5a10; --success-ink:#24764f; --danger-ink:#bd303b;
  --ring:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent);
  --dur-1:120ms; --dur-2:200ms; --dur-3:320ms; --ease:cubic-bezier(.2,.8,.2,1);
  --content-max:1440px;
  --shadow-lg:0 12px 40px -16px rgba(20,22,30,.28);
  --json-key:#3a46b8; --json-string:#226842; --json-number:#8b450c; --json-literal:#813f91;
}
@media(prefers-color-scheme:dark) {
  :root:not([data-theme="light"]) {
    --muted:#a4abba; --surface-2:#1b1f29; --surface-3:#232838;
    --ink-2:#b5b9c6; --line-2:rgba(255,255,255,.16);
    --accent-soft:color-mix(in srgb,var(--accent) 14%,transparent);
    --accent-ink:#a3adff; --on-accent:#101322;
    --warning-ink:#e8b17a; --success-ink:#85d4a2; --danger-ink:#ff8991;
    --shadow-lg:0 16px 50px -20px rgba(0,0,0,.8);
    --json-key:#a3adff; --json-string:#85d4a2; --json-number:#e8b17a; --json-literal:#d9a1e7;
  }
}
:root[data-theme="dark"] {
  --muted:#a4abba; --surface-2:#1b1f29; --surface-3:#232838;
  --ink-2:#b5b9c6; --line-2:rgba(255,255,255,.16);
  --accent-soft:color-mix(in srgb,var(--accent) 14%,transparent);
  --accent-ink:#a3adff; --on-accent:#101322;
    --warning-ink:#e8b17a; --success-ink:#85d4a2; --danger-ink:#ff8991;
  --shadow-lg:0 16px 50px -20px rgba(0,0,0,.8);
  --json-key:#a3adff; --json-string:#85d4a2; --json-number:#e8b17a; --json-literal:#d9a1e7;
}
:root[data-theme="light"] { --shadow:0 1px 2px rgba(20,22,30,.04),0 8px 24px -12px rgba(20,22,30,.16); }
.page,.page.graph-page { width:100%;max-width:var(--content-max); }
.page,.stack { display:flex;flex-direction:column;gap:var(--space-5);min-width:0; }
.stack { max-width:none; }
.page > [sse-connect],#board-content,#feature-content { display:flex;flex-direction:column;gap:var(--space-5);min-width:0; }
.page > #feedback:empty,.page > #modal-root:empty { display:none; }
.card { margin:0;padding:var(--space-5);min-width:0; }
.card > :first-child { margin-top:0; }
.card > :last-child { margin-bottom:0; }
.grid-2,.grid-3,.grid-4 { display:grid;gap:var(--space-5);min-width:0; }
.grid-2 { grid-template-columns:repeat(auto-fit,minmax(min(100%,max(240px,calc((100% - var(--space-5))/2))),1fr)); }
.grid-3 { grid-template-columns:repeat(auto-fit,minmax(min(100%,max(240px,calc((100% - 2*var(--space-5))/3))),1fr)); }
.grid-4 { grid-template-columns:repeat(auto-fit,minmax(min(100%,max(240px,calc((100% - 3*var(--space-5))/4))),1fr)); }
.settings-connections,.settings-general { align-items:stretch; }
.settings-connections > .card { display:flex;flex-direction:column;align-items:stretch;gap:var(--space-3); }
.settings-connections p { margin:0; }
.settings-connections .finance-sync { justify-content:flex-start; }
.settings-general .weights-grid { grid-template-columns:repeat(auto-fit,minmax(74px,1fr)); }
h1,.inbox-heading h1 { font-size:24px;font-weight:700;letter-spacing:-.02em;margin:0; }
h2,.card h2 { font-size:16px;font-weight:600;margin:0 0 var(--space-4); }
h3 { font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em; }
small { font-size:12px; }
.muted,.me small { color:var(--muted);opacity:1; }
.page-header,.inbox-heading { display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);margin:0;flex-wrap:wrap; }
.page-header-copy { min-width:0;flex:1 1 240px;overflow-wrap:anywhere; }
.page-header p,.inbox-heading p { margin:var(--space-2) 0 0;font-size:14px; }
.page-header-actions { display:flex;align-items:baseline;justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap; }
.page-header-actions:empty { display:none; }
#inbox-content > .inbox-heading { margin-bottom:var(--space-5); }
.inbox-grid { grid-template-columns:minmax(0,1fr) 320px;gap:var(--space-5); }
.inbox-rail,.detail-rail { gap:var(--space-5); }
.inbox-rail { padding-top:var(--space-5); }
.board-top,.metrics-grid,.finance-kpis,.finance-charts { margin:0;gap:var(--space-5); }
.board-top { grid-template-columns:minmax(0,1fr) 240px; }
.board-filters,.stages-legend { margin:0; }
.slack-intake { margin:0; }
#feature-content > #feature-items { padding:var(--space-5);border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface); }
#feature-content .steps { grid-template-columns:repeat(5,minmax(150px,1fr));overflow-x:auto;padding-bottom:var(--space-2); }
.review-card { display:flex;flex-direction:column;gap:var(--space-4);margin:0; }
.review-card > p,.review-card > dl { margin:0; }
.review-block,.review-section-heading { border-top:1px solid var(--line);padding-top:var(--space-5); }
.review-section-heading { margin-top:var(--space-2); }
.review-section-heading h3 { margin:0; }
.review-block { display:flex;flex-direction:column;gap:var(--space-3); }
.review-block h3,.review-block p { margin:0; }
.calendar-footer { margin-top:0; }
.calendar-visibility { padding-top:var(--space-4);border-top:1px solid var(--line);align-items:center;justify-content:space-between; }
.tabs { display:flex;align-self:flex-start;max-width:100%;gap:var(--space-1);padding:var(--space-1);margin:0;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-m);overflow-x:auto; }
.tabs a { display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:32px;padding:6px 12px;border-radius:var(--r-s);font-size:12px;font-weight:600;white-space:nowrap;color:var(--muted); }
.tabs a.active { background:var(--surface);color:var(--ink);box-shadow:var(--shadow); }
.tabs a:hover { color:var(--ink);background:var(--surface); }
.empty { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-7) var(--space-4);text-align:center;font-size:14px;min-width:0; }
.empty-icon { display:grid;place-items:center;color:var(--muted);width:40px;height:40px;border-radius:var(--r-m);background:var(--surface-2); }
.empty-icon .icon { width:24px;height:24px; }
.empty > strong { color:var(--ink);font-weight:600; }
.empty p { margin:0;font-size:12px;max-width:44ch; }
.empty-action { margin-top:var(--space-2); }
.kpi-grid,.finance-kpis,.metrics-grid.four { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:var(--space-5); }
.kpi { display:flex;flex-direction:column;gap:var(--space-3);position:relative;min-height:132px;overflow:hidden; }
.kpi-wrapper > .kpi { height:100%; }
.kpi .kpi-value { font-size:30px;line-height:1.1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere; }
.kpi-dueToday .kpi-value,.kpi-risk .kpi-value { color:var(--warning-ink); }
.kpi-done7 .kpi-value,.kpi-onTrack .kpi-value { color:var(--success-ink); }
.kpi-blocked .kpi-value,.kpi-late .kpi-value { color:var(--danger-ink); }
.kpi-value small { font-size:12px;font-weight:400;letter-spacing:0;color:var(--muted);margin-left:var(--space-1); }
.kpi-label { font-size:12px; }
.kpi .kpi-value.muted { color:var(--muted); }
.kpi-hold .kpi-value { color:var(--muted); }
.sumrow .kpi { min-height:0;padding:var(--space-3);display:grid;grid-template-columns:auto 1fr;align-items:center;gap:var(--space-3);background:var(--surface-2); }
.sumrow .kpi-label { grid-column:2;grid-row:1; }.sumrow .kpi-value { grid-column:1;grid-row:1;font-size:24px; }
.table-wrap { max-width:100%;max-height:640px;overflow:auto;position:relative;min-width:0; }
.table-wrap:has(dialog[open]) { overflow:visible; }
.table-wrap > .table-wrap { max-height:none;overflow:visible; }
.table { width:100%;border-collapse:separate;border-spacing:0;text-align:left; }
.table th,.table td { padding:10px 12px;min-height:40px;height:40px;vertical-align:middle;border-bottom:1px solid var(--line);font-size:12px; }
.table thead th { position:sticky;top:0;z-index:1;background:var(--surface-2);font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em; }
.table tbody tr:hover { background:var(--surface-2); }
.table td.mono { font-family:var(--mono); }
.table td.num,.table th.num { text-align:right;font-variant-numeric:tabular-nums; }
.table tr:last-child td { border-bottom:0; }
.table td:has(form) { white-space:normal; }
.btn { display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:36px;padding:0 12px;border:1px solid var(--line-2);border-radius:var(--r-s);background:var(--surface);color:var(--ink);font:600 12px/1.25 var(--font);text-decoration:none;white-space:nowrap;cursor:pointer; }
.btn:hover { background:var(--surface-2);border-color:var(--muted);color:var(--ink); }
.btn.primary { background:var(--accent);border-color:var(--accent);color:var(--on-accent); }
.btn.primary:hover { background:color-mix(in srgb,var(--accent) 88%,var(--ink));filter:none; }
.btn.ghost { background:transparent;border-color:transparent;color:var(--ink-2); }
.btn.ghost:hover { background:var(--surface-2);color:var(--ink); }
.btn.danger { color:var(--s-blocked);border-color:color-mix(in srgb,var(--s-blocked) 40%,var(--line)); }
.btn.danger:hover { background:color-mix(in srgb,var(--s-blocked) 10%,var(--surface)); }
.btn.sm { height:30px;padding:0 9px;font-size:12px; }
.btn.icon { width:36px;padding:0; }.btn.icon.sm { width:30px; }
.btn:disabled,.btn[aria-disabled="true"] { opacity:.5;cursor:default; }
.btn.bttl { display:block;width:100%;height:auto;padding:0;border:0;text-align:left;white-space:normal;background:transparent; }
.btn.grip { width:26px;padding:0;border:0;background:transparent;cursor:grab;font-size:20px; }
.btn.stage-edit,.quick .btn { height:30px;padding:0 8px;font-size:12px; }
.btn.file-link { height:auto;padding:0;border:0;justify-content:flex-start;text-align:left;background:transparent; }
.btn.rm { width:26px;height:26px;min-height:0;padding:0;border-radius:50%; }
.btn.rg-output,.btn.rg-component-title { width:100%;height:auto;min-height:36px;white-space:normal; }
.btn.rg-port { height:auto;min-height:30px;white-space:normal; }
.spinner { display:none;width:12px;height:12px;flex:none;border:2px solid currentColor;border-right-color:transparent;border-radius:50%; }
.spinner.htmx-request,.btn.htmx-request > .spinner { display:inline-block; }
.chip,.badge { display:inline-flex;align-items:center;gap:var(--space-1);height:24px;padding:2px 8px;border:1px solid var(--line);border-radius:99px;font-size:12px;line-height:1.25;white-space:nowrap;vertical-align:middle; }
.chip { background:var(--surface);color:var(--ink-2); }
.chip.on,.board-filters .chip.on { background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink); }
.board-filters .chip { padding:2px 10px; }
a.chip:hover,button.chip:hover { border-color:var(--accent);color:var(--accent-ink); }
.badge { background:var(--surface-2); }
.badge.pill { color:var(--pc);background:color-mix(in srgb,var(--pc) 10%,var(--surface)); }
.badge.source-badge { color:var(--source-color);background:color-mix(in srgb,var(--source-color) 10%,var(--surface)); }
.google-scopes .badge { height:auto;min-height:24px; }
.field,.stack label.field,.inline label.field,.new-dialog label.field,.new-item-dialog label.field { display:flex;flex-direction:column;gap:var(--space-2);font-size:12px;color:var(--muted);margin:0;min-width:0; }
form:not(.stack):not(.inline):not(.comment-form):not(.mail-forward) > .field + .field { margin-top:var(--space-3); }
form > .field + .btn { margin-top:var(--space-4); }
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select { min-width:0;max-width:100%;height:36px;padding:6px 10px;color:var(--ink);border:1px solid var(--line-2);border-radius:var(--r-s);background:var(--surface); }
.field input,.field select { width:100%; }
textarea { border-color:var(--line-2);border-radius:var(--r-s);color:var(--ink);min-height:72px; }
.check,.stack label.check,.new-dialog label.check,.new-item-dialog label.check,.request-card label.check { display:flex;flex-direction:row;align-items:center;gap:var(--space-2);font-size:12px;margin:0;color:var(--ink-2); }
.check input { width:16px;height:16px;flex:none;margin:0;accent-color:var(--accent); }
.field-error,.field [role=alert] { color:var(--s-blocked);font-size:12px; }
.field-error:empty { display:none; }
[aria-invalid=true] { border-color:var(--s-blocked); }
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline:2px solid var(--accent);outline-offset:3px;box-shadow:none; }
.new-dialog,.new-item-dialog,#modal-root dialog { width:min(640px,calc(100% - 24px));max-height:90vh;overflow:auto;border:1px solid var(--line-2);border-radius:var(--r-l);padding:var(--space-6);color:var(--ink);background:var(--surface);box-shadow:var(--shadow-lg); }
#modal-root dialog.attachment-preview { width:min(960px,95vw); }
.dialog-actions { display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--line); }
.new-dialog form,.new-item-dialog form { gap:var(--space-4); }
.new-dialog form > .field,.new-item-dialog form > .field { margin-bottom:var(--space-4); }
.release-create { position:relative;margin:0; }
.release-create > summary { list-style:none; }.release-create > summary::-webkit-details-marker { display:none; }
.release-create > form { position:absolute;right:0;top:100%;width:min(520px,calc(100vw - 60px));z-index:5;box-shadow:var(--shadow-lg);max-height:70vh;overflow:auto; }
.audit-toolbar { padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface); }
.audit-table td { vertical-align:top; }
.audit-table td:last-child { min-width:240px;width:42%;white-space:normal; }
.audit-table td:nth-child(4) { font-family:var(--mono);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.audit-behalf { display:inline;margin-left:var(--space-1); }.audit-table .source-badge { margin-left:var(--space-1); }
.audit-summary { display:flex;flex-wrap:nowrap;gap:var(--space-1);max-width:460px;overflow:hidden; }
.audit-summary .badge { display:block;max-width:240px;overflow:hidden;text-overflow:ellipsis;height:20px;font-size:11px; }
.audit-json summary { font-size:11px;font-weight:500;color:var(--muted);margin-top:2px; }
.audit-json pre { max-height:320px;max-width:100%;min-width:0;overflow:auto;margin:var(--space-2) 0 0;padding:var(--space-3);border-radius:var(--r-s);background:var(--surface-2);white-space:pre;tab-size:2; }
.json-key { color:var(--json-key); }.json-string { color:var(--json-string); }.json-number { color:var(--json-number); }.json-literal { color:var(--json-literal); }
/* Workspace chrome is quiet; elevation is reserved for floating controls. */
.app { grid-template-columns:240px minmax(0,1fr); }
.side { padding:20px 12px 12px;background:var(--surface-2);height:100dvh;gap:8px; }
.brand { padding:4px 12px 20px;letter-spacing:-.03em;font-size:16px;flex-shrink:0; }
.me { display:flex;align-items:center;gap:10px;padding:14px 8px 4px;border-top:1px solid var(--line);flex-shrink:0; }
.user-avatar { display:grid;place-items:center;width:32px;height:32px;flex-shrink:0;border:1px solid var(--line-2);border-radius:50%;background:var(--surface);font-size:11px;font-weight:600;color:var(--accent-ink); }
.user-copy { min-width:0;display:grid;gap:3px; }
.user-copy strong { font-size:12px; }.user-copy small { font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.topbar { min-height:64px;padding:12px 32px;gap:16px;background:var(--surface); }
.topbar > span { color:var(--muted);font-size:12px;font-weight:500; }
.topbar > form { flex-shrink:0; }
.search-box { width:100%;max-width:400px;margin:0 0 0 auto; }
.search-box form { position:relative; }
.search-box input#global-search { padding-left:36px;padding-right:96px;background:var(--surface-2);border-color:var(--line); }
.search-icon { position:absolute;left:12px;top:9px;color:var(--muted);pointer-events:none; }
.search-shortcut { position:absolute;right:10px;top:9px;font:10px/18px var(--font);color:var(--muted);pointer-events:none; }
.search-dropdown:not(:empty) { top:calc(100% + 8px);box-shadow:var(--shadow-lg); }
.skip-link { position:fixed;top:12px;left:12px;padding:12px 18px;border-radius:8px;background:var(--surface);color:var(--accent-ink);z-index:100;transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.page { padding:32px 32px 64px;gap:24px; }
.page-header,.inbox-heading { align-items:center;padding-bottom:20px;border-bottom:1px solid var(--line); }
.page-header p,.inbox-heading p { color:var(--muted);font-size:13px;line-height:1.6; }
h1,.inbox-heading h1 { font-size:26px;line-height:1.35;letter-spacing:-.035em; }
.card { box-shadow:none; }
.card.item-rows { padding:0; }
.card.item-rows > :first-child { border-top-left-radius:var(--r-l);border-top-right-radius:var(--r-l); }
.card.item-rows > :last-child { border-bottom-left-radius:var(--r-l);border-bottom-right-radius:var(--r-l); }
.inbox-section { margin-top:24px; }
#inbox-content > .onboarding { display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:16px;margin-bottom:20px; }
.onboarding > h2 { margin:0; }
.onboarding > div { display:flex;align-items:center;flex-wrap:wrap;gap:8px; }
.onboarding > form { margin-left:auto; }
.kpi-wrapper:focus-visible { outline-offset:-3px; }
.inbox-section h2 { margin:0 0 12px;font-size:13px; }
.inbox-rail { padding-top:24px; }
.inbox-rail .card { background:var(--surface-2);padding:18px; }
.inbox-rail .card h2 { font-size:13px;margin-bottom:12px; }
.inbox-rail .empty { padding:16px 4px;gap:6px; }
.inbox-rail .empty-icon { width:32px;height:32px;background:var(--surface); }
.inbox-rail .empty p { max-width:28ch; }
#inbox-content > .kpi-grid { gap:0;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);overflow:hidden;grid-template-columns:repeat(4,minmax(0,1fr)); }
#inbox-content > .kpi-grid .kpi { min-height:108px;border:0;border-radius:0;padding:20px 24px;gap:10px; }
#inbox-content > .kpi-grid .kpi-wrapper + .kpi-wrapper { border-left:1px solid var(--line); }
#inbox-content > .kpi-grid .kpi-value { font-size:28px; }
#inbox-content > .kpi-grid .kpi-waiting { background:var(--accent-soft); }
.signal-row { align-items:flex-start;padding:20px;gap:12px;border-bottom:1px solid var(--line);border-radius:0; }
.signal-row > .avatar { margin-top:2px; }
.signal-content { line-height:1.65; }
.signal-content > .source-badge { margin:0 4px 4px 0; }
.signal-content > small { font-size:11px; }
.signal-content p { margin:2px 0 0;font-size:13px; }
.signal-content p + small { display:block;margin-top:8px;padding-left:10px;border-left:2px solid var(--line-2); }
.signal-row > a[target] { display:grid;place-items:center;width:28px;height:30px;flex-shrink:0;border-radius:6px;color:var(--muted); }
.signal-row > a[target]:hover { background:var(--surface-3);color:var(--accent-ink); }
.signal-actions { flex-wrap:wrap;max-width:220px;justify-content:flex-end;gap:6px; }
.signal-actions .btn { height:30px;padding:0 9px;font-size:11px; }
.signal-kind-gmail .signal-actions { max-width:none; }
.signal-row:hover,.signal-row:focus-within { background:var(--surface-2); }
.item-row { border-radius:0;padding:16px 20px; }
.board-filters { padding:12px 0;gap:8px;border-bottom:1px solid var(--line); }
.brow { box-shadow:none;border-radius:var(--r-m); }
.home-widgets { gap:24px; }
.home-widgets > .card { padding:24px; }
.widget-heading { display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-bottom:16px;margin-bottom:20px;border-bottom:1px solid var(--line); }
.widget-heading h2 { flex:1;margin:0;font-size:15px; }
.home-widgets .inbox-section .card { border-radius:var(--r-s); }
.home-widgets > .card > .request-row { padding:14px 0; }
.home-week > section { padding:12px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface-2); }
.home-week > section:first-child { border-color:color-mix(in srgb,var(--accent) 40%,var(--line));background:var(--accent-soft); }
.home-week h3 { color:var(--ink-2);margin:0 0 16px;font-variant-numeric:tabular-nums; }
.home-week .muted { font-size:11px; }
@media(min-width:761px) and (max-width:1099px) {
  .app { grid-template-columns:200px minmax(0,1fr); }
  .page { padding:24px; }.topbar { padding:12px 24px; }
}
@media(max-width:760px) {
  .app { grid-template-columns:minmax(0,1fr); }
  .side { height:auto;padding:12px 16px;gap:0; }
  .brand { padding:0;font-size:14px; }.brand .logo { width:20px;height:23px; }
  .me { display:none; }
  .topbar { padding:10px 16px;gap:8px; }
  .topbar > span { display:none; }
  .search-box { max-width:none;margin:0; }
  .search-shortcut { display:none; }
  .search-box input#global-search { padding-right:12px; }
  .page { padding:24px 16px 32px;gap:20px; }
  h1,.inbox-heading h1 { font-size:23px; }
  .home-widgets > .card { padding:16px; }
  .signal-row { padding:16px; }.signal-actions { max-width:none; }
  #inbox-content > .kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #inbox-content > .kpi-grid .kpi { padding:16px;min-height:96px; }
  #inbox-content > .kpi-grid .kpi-wrapper:nth-child(3) { border-left:0; }
  #inbox-content > .kpi-grid .kpi-wrapper:nth-child(n+3) { border-top:1px solid var(--line); }
}
@media(pointer:coarse), (max-width:760px) {
  .btn,.btn.sm,.signal-actions .btn,.chip,.tabs a { min-height:44px; }
  .btn.icon,.btn.icon.sm { min-width:44px; }
}
/* The marker belongs to the link, so wrapping and drag order cannot displace it. */
.nav { position:relative;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:2px; }
.nav a { position:relative;min-height:40px;padding:10px 12px;gap:10px;font-size:13px;font-weight:500;color:var(--ink-2); }
.nav a.active { background:var(--accent-soft);color:var(--accent-ink); }
.nav a.active::before { content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:3px;background:var(--accent); }
.nav a:hover { background:var(--surface-3);color:var(--ink); }
.nav a.active:hover { background:var(--accent-soft);color:var(--accent-ink); }
.nav a.pinned { margin-top:12px;padding-top:12px;border-radius:var(--r-s); }
@media(max-width:1100px) {
  .inbox-grid,.board-top { grid-template-columns:minmax(0,1fr); }
  .sumrow { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media(max-width:760px) {
  .nav { position:fixed;min-height:76px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));gap:6px; }
  .nav a { min-width:68px;min-height:56px;padding:8px;font-size:11px; }
  .nav a.pinned { margin:0;border:0;padding:8px;border-radius:var(--r-s); }
  .nav .badge.count { position:absolute;top:0;right:0;min-width:18px;height:18px;font-size:10px; }
  .nav a.active::before { display:none; }
  .page-header-actions { justify-content:flex-start; }
}
@media(max-width:700px) {
  .grid-2,.grid-3,.grid-4,.kpi-grid,.finance-kpis,.metrics-grid.four { grid-template-columns:minmax(0,1fr); }
  .sumrow { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .card { padding:var(--space-4); }.calendar-scroll { padding:0; }
  .page-header { align-items:flex-start; }
  .page-header-copy { flex-basis:100%; }
}
/* Animations are opt-in; reduced motion gets immediate, equally visible feedback. */
@media(prefers-reduced-motion:no-preference) {
  @keyframes ui-rise { from { opacity:0;transform:translateY(8px); } to { opacity:1;transform:none; } }
  @keyframes ui-in { from { opacity:0; } to { opacity:1; } }
  @keyframes ui-out { to { opacity:0; } }
  @keyframes ui-dialog { from { opacity:0;transform:translateY(6px) scale(.98); } to { opacity:1;transform:none; } }
  @keyframes ui-spin { to { transform:rotate(360deg); } }
  @keyframes flash { 0%,100% { outline:2px solid transparent;outline-offset:2px; } 30% { outline:2px solid var(--accent);outline-offset:2px; } }
  .page > :not(#modal-root):not(#feedback) { animation:ui-in var(--dur-2) var(--ease) backwards; }
  .home-widgets > .card { animation:ui-rise var(--dur-3) var(--ease) backwards; }
  .home-widgets > .card:nth-child(2) { animation-delay:35ms; }
  .home-widgets > .card:nth-child(3) { animation-delay:70ms; }
  .htmx-added { animation:ui-in var(--dur-2) var(--ease) backwards; }
  .htmx-swapping { opacity:0;transition:opacity var(--dur-2) var(--ease); }
  ::view-transition-old(root) { animation:ui-out var(--dur-2) var(--ease) both; }
  ::view-transition-new(root) { animation:ui-in var(--dur-2) var(--ease) both; }
  :is(.new-dialog,.new-item-dialog,#modal-root dialog)[open] { animation:ui-dialog var(--dur-2) var(--ease); }
  dialog[open]::backdrop { animation:ui-in var(--dur-2) var(--ease); }
  @supports (transition-behavior:allow-discrete) {
    :is(.new-dialog,.new-item-dialog,#modal-root dialog) {
      opacity:0;transform:translateY(6px) scale(.98);
      transition:opacity var(--dur-2) var(--ease),transform var(--dur-2) var(--ease),display var(--dur-2) allow-discrete,overlay var(--dur-2) allow-discrete;
    }
    :is(.new-dialog,.new-item-dialog,#modal-root dialog)[open] { opacity:1;transform:none;animation:none; }
    dialog::backdrop { background:transparent;transition:background var(--dur-2),display var(--dur-2) allow-discrete,overlay var(--dur-2) allow-discrete; }
    dialog[open]::backdrop { background:#0e101480;animation:none; }
    @starting-style {
      :is(.new-dialog,.new-item-dialog,#modal-root dialog)[open] { opacity:0;transform:translateY(6px) scale(.98); }
      dialog[open]::backdrop { background:transparent; }
    }
  }
  .brow,.release-card,.step:has(a,button) { transition:background-color var(--dur-1) var(--ease),border-color var(--dur-1); }
  @media(hover:hover) {
    .brow:not(.dragging):hover,.release-card:hover,.step:has(a,button):hover { border-color:var(--line-2);background:var(--surface-2); }
  }
  .btn,.chip,.tabs a { transition:background-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),transform var(--dur-1) var(--ease); }
  .btn:not(:disabled):active { transform:scale(.98); }
  .stagebar .st i,.release-bar i,progress { transition:width var(--dur-3) var(--ease); }
  @starting-style { .stagebar .st i,.release-bar i { width:0; } }
  .ring .fg { transition:stroke-dasharray var(--dur-3) var(--ease); }
  .nav a { transition:background-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease); }
  .spinner.htmx-request,.btn.htmx-request > .spinner { animation:ui-spin 700ms linear infinite; }
  .ui-flash { animation:flash 600ms var(--ease); }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important;transition:none!important;scroll-behavior:auto!important; }
  ::view-transition-old(root),::view-transition-new(root) { animation:none!important; }
  .item-row.htmx-swapping,.signal-row.htmx-swapping { transform:none; }
  .ui-flash { outline:2px solid var(--accent);outline-offset:2px; }
}

.page > #modal-root { display:contents; }
.stack > .field + .btn { margin-top:0; }

.drop:focus-within { box-shadow:var(--ring); }

/* Department home calendar keeps all seven days visible, including empty days. */
.home-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: var(--space-3); }
.home-week > section { min-width:0; }
.home-week .request-row { display: block; overflow-wrap: anywhere; padding: var(--space-2) 0; }
.nav > .muted { padding: var(--space-4) var(--space-3) var(--space-1); }
@media (max-width: 900px) { .home-week { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 500px) { .home-week { grid-template-columns: minmax(0, 1fr); } }

/* Docked chat keeps navigation drag targets intact; only their labels collapse. */
@media (min-width:1100px) {
 .app[data-chat-open] { grid-template-columns:56px minmax(560px,1fr) 400px; height:100dvh; overflow:hidden; }
 .app[data-chat-open] > .main { height:100dvh; overflow:auto; overscroll-behavior:contain; }
 .app[data-chat-open] > .side { padding:20px 4px 12px; min-width:0; }
 .app[data-chat-open] .brand { padding:4px 0 20px; justify-content:center; }
 .app[data-chat-open] .brand-name, .app[data-chat-open] .nav a > span,
 .app[data-chat-open] .user-copy { display:none; }
 .app[data-chat-open] .nav a { padding:10px 0; justify-content:center; }
 .app[data-chat-open] .me { padding:12px 0; justify-content:center; }
}

/* Items list reuses shared chips, fields, KPI tiles and the sticky table. */
.items-filters { display:flex; flex-wrap:wrap; align-items:end; gap:var(--space-3); }
.items-filters .field { flex:1 1 140px; min-width:0; }
.items-status { display:flex; flex-wrap:wrap; gap:var(--space-2); flex-basis:100%; border:0; padding:0; margin:0; }
.items-status legend { color:var(--muted); font-size:12px; margin-bottom:var(--space-2); }
.items-status input { margin:0; }

/* Meetings use the same surfaces and typography as the work inbox. */
.meeting-workspace { width:100%; min-width:0; max-width:1440px; margin-inline:auto; }
.meeting-heading,.meeting-list-row,.meeting-task { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.meeting-heading h1 { margin:0; }
.meeting-sections { display:flex; gap:24px; padding:12px 0; border-bottom:1px solid var(--line); overflow:auto; }
.meeting-sections a { white-space:nowrap; }
.meeting-columns { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:24px; align-items:start; }
.meeting-columns > * { min-width:0; }
.meeting-columns section { scroll-margin-top:24px; }
.meeting-form { max-width:860px; }
.meeting-list { padding:0; overflow:hidden; }
.meeting-list-row { color:inherit; text-decoration:none; padding:18px 20px; border-bottom:1px solid var(--line); transition:background .15s ease; }
.meeting-list-row:last-child { border-bottom:0; }
.meeting-list-row:hover,.meeting-list-row:focus-visible { background:var(--surface-2); }
.meeting-list-row > div { flex:1; min-width:0; }
.meeting-list-row strong,.meeting-task strong { overflow-wrap:anywhere; }
.meeting-list-row p { margin:5px 0 0; font-size:12px; }
.meeting-list-row time { font-size:18px; font-variant-numeric:tabular-nums; min-width:58px; }
.meeting-list-row time small { display:block; font-size:12px; margin-top:4px; }
.meeting-prose { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.8; }
.meeting-action-draft { border:1px solid var(--line); border-radius:10px; padding:16px; margin:0; min-width:0; }
.meeting-action-draft legend { padding:0 8px; }
.meeting-invitees { border:1px solid var(--line); border-radius:10px; padding:16px; }
.meeting-invitees .check { display:inline-flex; margin:8px 16px 8px 0; }
.meeting-facts { display:grid; grid-template-columns:86px minmax(0,1fr); gap:12px; margin:0; }
.meeting-facts dt { opacity:.65; }.meeting-facts dd { margin:0; overflow-wrap:anywhere; }
.meeting-task { padding:12px 0; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.meeting-task strong { flex:1; }
@media(max-width:1000px) { .meeting-columns { grid-template-columns:minmax(0,1fr); } .meeting-columns > aside { grid-row:1; } }
@media(max-width:600px) { .meeting-heading,.meeting-list-row { flex-wrap:wrap; } .meeting-list-row { padding:16px; } .meeting-columns { gap:16px; } .meeting-list-row > .badge { margin-left:74px; } }
@media(prefers-reduced-motion:reduce) { .meeting-list-row { transition:none; } }
.register-workspace-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:20px; }
.register-workspace-grid h3 { margin:0; }
.register-workspace-grid .inline { margin-top:auto; }

/* Formal changes keep the handoffs visible on the existing item surface. */
.change-editor{max-width:900px;margin-inline:auto}.change-fields{display:grid;gap:16px}.change-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.change-stages{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin-block:20px}.change-stages li{padding:6px 10px;border:1px solid var(--line);border-radius:6px;color:var(--muted);font-size:12px}.change-stages li.current{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.change-record dd,.change-evidence p{white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:16px}.change-evidence{display:grid;gap:12px;margin-top:20px}.change-action summary{font-weight:600;margin-bottom:12px}.change-summary .mono{overflow-wrap:anywhere}@media(max-width:600px){.change-people{grid-template-columns:1fr}}

/* Stable workspaces and project work, using the existing application palette. */
.workspace-tools { margin-top:18px; border-top:1px solid var(--line); padding-top:12px; }
.workspace-tools summary { padding:10px; color:var(--muted); font-size:12px; cursor:pointer; }
.workspace-shortcuts { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 24px; }
.workspace-shortcuts a { display:flex; align-items:center; gap:8px; padding:10px 14px; background:var(--surface); border:1px solid var(--line); border-radius:8px; }
.workspace-shortcuts svg { width:18px; height:18px; }
.workspace-sources { border-top:1px solid var(--line); margin-top:18px; padding-top:14px; }
.workspace-sources summary { cursor:pointer; color:var(--muted); }
.project-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:18px; }
.project-card { display:block; transition:border-color .18s,transform .18s; }
.project-card:hover { border-color:var(--accent); transform:translateY(-2px); }
.project-card-heading { display:flex; align-items:center; gap:10px; }
.project-card-heading h2 { flex:1; margin:0; }
.project-dot { width:10px; height:10px; border-radius:50%; flex:none; }
.project-goal-preview { color:var(--muted); min-height:44px; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.project-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; padding:18px 0; }
.project-stats strong { display:block; font-size:25px; font-variant-numeric:tabular-nums; }
.project-stats span { color:var(--muted); font-size:12px; }
.project-stats .needs-attention strong { color:var(--s-blocked); }
.project-completion { display:flex; justify-content:space-between; font-size:12px; color:var(--muted); }
.project-card progress { width:100%; height:5px; accent-color:var(--accent); }
.project-detail-grid { display:grid; grid-template-columns:minmax(0,2fr) minmax(240px,1fr); gap:20px; align-items:start; }
.project-work-row { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; padding:18px 0; border-bottom:1px solid var(--line); }
.project-work-row:last-child { border-bottom:0; }
.project-work-row>div { min-width:0; }
.project-work-next { color:var(--muted); margin:7px 0; font-size:13px; }
.project-work-row .item-title { overflow-wrap:anywhere; }
.project-back { color:var(--muted); font-size:13px; }
@media(max-width:850px) { .project-detail-grid { grid-template-columns:1fr; } .project-stats { gap:8px; } }
@media(prefers-reduced-motion:reduce) { .project-card { transition:none; } .project-card:hover { transform:none; } }
@media(max-width:760px) {
 .nav { overflow:visible; display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); align-items:start; gap:2px; }
 .app { grid-template-rows:auto 1fr; }
 .nav>a { min-width:0; padding:8px 2px; gap:4px; font-size:10px; }
 .nav>a.pinned { padding:8px 2px; }
 .workspace-tools { min-width:0; margin:0; border:0; padding:0; }
 .workspace-tools summary { text-align:center; white-space:normal; padding:8px 2px; min-height:56px; font-size:10px; }
 .workspace-tools>div { position:fixed; bottom:calc(84px + env(safe-area-inset-bottom)); left:12px; right:12px; max-height:65vh; overflow:auto; background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:12px; box-shadow:var(--shadow); }
 .workspace-tools>div>a { flex-direction:row; justify-content:flex-start; }
}

/* Project conclusions lead with the current outcome; historical versions stay quiet. */
.project-briefing { border-top:3px solid var(--accent); }
.project-briefing-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.project-briefing-heading h2 { margin:4px 0 16px; }
.project-conclusion { font-size:17px; line-height:1.75; overflow-wrap:anywhere; }
.project-briefing-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin:20px 0; }
.project-briefing-grid h3,.project-briefing-links h3 { font-size:12px; color:var(--muted); margin:0 0 8px; }
.project-briefing .item-description { overflow-wrap:anywhere; }
.project-briefing-editor { margin-top:20px; }
.project-briefing-editor>summary { display:inline-flex; cursor:pointer; }
.project-briefing-editor form,.project-owner-editor form { margin-top:16px; display:grid; gap:16px; }
.project-owner-editor { margin-top:16px; }
.project-owner-editor>summary,.project-briefing-history>summary { cursor:pointer; }
.project-owner-editor form { max-width:420px; }
.project-briefing-work { max-height:240px; overflow:auto; padding:12px; }
.project-briefing-work label { display:flex; align-items:flex-start; gap:10px; padding:8px 0; }
.project-briefing-work input { flex:none; width:auto; }
.project-briefing-work span,.project-briefing-links a>span { overflow-wrap:anywhere; min-width:0; }
.project-briefing-history article { padding:20px 0; border-bottom:1px solid var(--line); }
@media(max-width:650px) { .project-briefing-grid { grid-template-columns:1fr; gap:16px; } }

.item-handoff { border-left:3px solid var(--accent); }
.item-handoff form { display:grid; gap:12px; margin-top:16px; }
.item-handoff h3 { font-size:12px; color:var(--muted); margin-top:16px; }
.item-handoff .item-description { overflow-wrap:anywhere; }
.item-handoff summary { cursor:pointer; margin-top:12px; }

/* Meeting recording and retained source material. */
.meeting-media-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4,16px)}
.meeting-recording-entry{display:flex;flex-direction:column;gap:8px;border-color:var(--accent);text-decoration:none}
.meeting-recording-entry span{color:var(--muted)}
.meeting-source-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.meeting-source h3{overflow-wrap:anywhere}.meeting-source audio,[data-record-preview]{width:100%;max-width:100%}
.meeting-transcript{max-height:32rem;overflow:auto;overflow-wrap:anywhere;padding-top:12px}
.meeting-media-inputs input[type=file]{max-width:100%;min-width:0}
@media(max-width:760px){.meeting-media-inputs{grid-template-columns:1fr}.meeting-source-heading{flex-direction:column}}

[data-record-download][hidden],[data-record-preview][hidden]{display:none!important}

/* Evidence-led meeting drafts use the established meeting workspace tokens. */
.meeting-draft-workspace { width:100%; max-width:1000px; }
.meeting-draft-workspace .card > h2 { margin:0; }
.stack label.draft-source-choice { display:flex; flex-direction:row; gap:12px; align-items:flex-start; padding:12px; border:1px solid var(--line); border-radius:8px; cursor:pointer; }
.stack label.draft-source-choice input { flex:0 0 auto; width:auto; margin-top:4px; }
.draft-source-choice span { display:grid; gap:4px; min-width:0; overflow-wrap:anywhere; }
.draft-source-choice:has(input:checked) { background:var(--surface-2); outline:1px solid var(--accent); }
.draft-evidence { padding:16px; border-inline-start:3px solid var(--accent); background:var(--surface-2); overflow-wrap:anywhere; }
.draft-evidence blockquote { margin:0; padding:8px 14px; border-inline-start:2px solid var(--line); white-space:pre-wrap; }
.draft-adoption { padding-top:20px; border-top:1px solid var(--line); }

/* Hiring keeps the next action ahead of the editable source and history. */
.hiring-workspace { width:100%; max-width:1120px; margin-inline:auto; }
.hiring-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); gap:16px; }
.hiring-record { color:var(--ink); text-decoration:none; border-left:3px solid var(--line); transition:border-color var(--dur-1) var(--ease); }
.hiring-record:hover { border-color:var(--accent); }
.hiring-record h2,.hiring-record h3 { margin:0; overflow-wrap:anywhere; }
.hiring-record p { margin:0; overflow-wrap:anywhere; }
.hiring-blocker { color:var(--s-blocked); border-left:2px solid currentColor; padding-left:12px; }
.hiring-fields { min-width:0; border:0; padding:0; margin:0; }
.hiring-fields .field { min-width:0; }
.hiring-fields textarea,.hiring-fields input,.hiring-fields select { width:100%; }
.hiring-fields:disabled input,.hiring-fields:disabled textarea,.hiring-fields:disabled select { opacity:1; color:var(--ink-2); }
.hiring-action { border-top:1px solid var(--line); padding-top:20px; margin-top:12px; }
.hiring-history { padding-top:16px; }
.hiring-facts { display:grid; grid-template-columns:minmax(120px,1fr) minmax(0,3fr); gap:12px 20px; }
.hiring-facts dt { color:var(--muted); }
.hiring-facts dd { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
@media(max-width:600px) { .hiring-facts { grid-template-columns:1fr; gap:6px; } .hiring-facts dd { margin-bottom:12px; } }
@media(prefers-reduced-motion:reduce) { .hiring-record { transition:none; } }

/* Repository setup shares the workbench rhythm without duplicate paragraph gaps. */
.development-workspace { display:grid;gap:var(--space-5);min-width:0; }
.development-workspace p,.development-workspace h2,.development-workspace h3 { margin:0; }
.development-repositories,.development-repository,.development-create { gap:var(--space-3); }
.development-repository h3 { font-size:16px;text-transform:none;letter-spacing:0;color:var(--ink);overflow-wrap:anywhere; }
.development-repository .inline { gap:var(--space-4);flex-wrap:wrap; }
.development-create form { max-width:640px;width:100%; }

/* Board redesign M4: the classic sidebar leads back to the board home and lists the other tools. */
.nav .nav-back { color:var(--accent-ink);font-weight:600; }
.nav .nav-back svg { flex-shrink:0; }
.nav-label { padding:14px 12px 4px;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.04em; }
.nav > [data-reorder="nav-order"] { display:contents; }
@media(max-width:760px) {
  .nav-label { display:none; }
}
@media(max-width:760px) {
  /* With the board, the bottom bar is a scrolling strip: back, the other tools, settings. */
  .nav[data-board-nav] { display:flex; overflow-x:auto; gap:2px; }
  .nav[data-board-nav] a { flex:0 0 68px; min-width:68px; padding:8px 2px; gap:4px; font-size:10px; white-space:normal; text-align:center; }
  .nav[data-board-nav] a span:first-of-type { flex:none; }
}
