/* Ekipazh design layer 2026 (design/DESIGN-SPEC.md, steps 0-9). Every component rule excludes accessible mode. */
/* ---------- 0. Font (Manrope variable, OFL-1.1; cyrillic 14.5 KB + latin 24.8 KB) ---------- */
@font-face{font-family:"Manrope D26";font-style:normal;font-weight:200 800;font-display:swap;
src:url(/assets/fonts/manrope-cyrillic-wght-normal.woff2?v=1) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Manrope D26";font-style:normal;font-weight:200 800;font-display:swap;
src:url(/assets/fonts/manrope-latin-wght-normal.woff2?v=1) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* ---------- 1. Tokens ---------- */
:root{--d26-navy-900:#0c2236;--d26-navy-800:#143451;--d26-navy-700:#1d4a70;--d26-blue-600:#285c8e;--d26-blue-500:#3a78b0;--d26-gold:#e6c235;--d26-gold-ink:#7a5d00;--d26-bg:#f3f6f9;--d26-surface:#fff;--d26-surface-2:#f6f9fc;--d26-surface-3:#eaf1f8;--d26-line:#d9e3ec;--d26-section-line:var(--d26-line);--d26-line-strong:#b3c3d2;--d26-control-line:#788da0;--d26-ink:#17314a;--d26-ink-2:#33506a;--d26-muted:#566c80;--d26-placeholder:#5c6f82;--d26-on-navy:#fff;--d26-accent:#285c8e;--d26-focus:#1a5fa8;--d26-focus-ring:rgba(26,95,168,.22);--d26-nav-ink:#4a6177;--d26-nav-active-bg:#e6eff8;--d26-ok-bg:#e3f2e9;--d26-ok-ink:#1f6a45;--d26-warn-bg:#fff3d6;--d26-warn-ink:#7a5400;--d26-bad-bg:#fbe8ea;--d26-bad-ink:#9d2b38;--d26-info-bg:#e7f0fa;--d26-info-ink:#244f7a;--d26-neutral-bg:#edf1f5;--d26-neutral-ink:#4b6176;--d26-th-bg:#183a57;--d26-th-ink:#fff;--d26-th-soft-bg:#edf3f8;--d26-th-soft-ink:#46607a;--d26-zebra:#f5f8fb;--d26-row-hover:rgba(20,52,81,.05);--d26-s1:4px;--d26-s2:8px;--d26-s3:12px;--d26-s4:16px;--d26-s5:24px;--d26-s6:32px;--d26-s7:48px;--d26-r-xs:6px;--d26-r-s:10px;--d26-r-m:14px;--d26-r-l:20px;--d26-sh-1:0 1px 2px rgba(16,41,64,.06),0 1px 1px rgba(16,41,64,.04);--d26-sh-2:0 6px 16px -4px rgba(16,41,64,.12),0 2px 4px rgba(16,41,64,.06);--d26-sh-3:0 24px 64px -12px rgba(10,28,46,.34),0 4px 12px rgba(10,28,46,.12);
--d26-font:"Manrope D26","Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;--d26-fs-cap:.8rem;--d26-fs-sm:.867rem;--d26-fs-body:1rem;--d26-fs-lead:1.133rem;--d26-fs-h3:1.2rem;--d26-fs-h2:1.467rem;--d26-fs-h1:1.93rem;--d26-dur-fast:120ms;--d26-dur-base:180ms;--d26-dur-slow:260ms;--d26-ease-out:cubic-bezier(.22,.61,.36,1);--d26-ease-spring:cubic-bezier(.16,1,.3,1);--d26-ease-in:cubic-bezier(.5,0,.75,0);
--d26-select-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23566c80' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E")}
html[data-crew-mode=dark]{--d26-navy-900:#0a1520;--d26-bg:#0f1923;--d26-surface:#1a2633;--d26-surface-2:#1f2f3f;--d26-surface-3:#2a3f53;--d26-line:#2f4153;--d26-section-line:var(--d26-line-strong);--d26-line-strong:#496179;--d26-control-line:#7790a6;--d26-ink:#e8eff6;--d26-ink-2:#cbd9e5;--d26-muted:#aebfce;--d26-placeholder:#9bb0c1;--d26-accent:#9bc9f0;--d26-focus:#8ec1ef;--d26-focus-ring:rgba(142,193,239,.28);--d26-gold:#f0d050;--d26-gold-ink:#f0d050;--d26-nav-ink:#b9c9d7;--d26-nav-active-bg:#2a3f53;--d26-ok-bg:#1d3a2c;--d26-ok-ink:#9fe0bb;--d26-warn-bg:#3d3216;--d26-warn-ink:#f2d78a;--d26-bad-bg:#42222a;--d26-bad-ink:#ffb4be;--d26-info-bg:#1f3a54;--d26-info-ink:#a9d0f2;--d26-neutral-bg:#26384a;--d26-neutral-ink:#b9c9d7;--d26-th-bg:#243e53;--d26-th-soft-bg:#223648;--d26-th-soft-ink:#c4d4e2;--d26-zebra:#1e2c3a;--d26-row-hover:rgba(255,255,255,.055);--d26-sh-1:0 0 0 1px rgba(255,255,255,.03);--d26-sh-2:0 8px 20px -6px rgba(0,0,0,.5);--d26-sh-3:0 24px 64px -12px rgba(0,0,0,.7);
--d26-select-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23aebfce' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E")}
/* ==== STEP 1 ==== */
:root:not([data-crew-mode=accessible]){--muted:var(--d26-muted)}
:root:not([data-crew-mode=accessible]) .sidebar-label:not(d26-p),:root:not([data-crew-mode=accessible]) .sidebar-footer:not(d26-p),:root:not([data-crew-mode=accessible]) .duty-day-free:not(d26-p),:root:not([data-crew-mode=accessible]) .duty-weekdays span,:root:not([data-crew-mode=accessible]) .duty-person-id:not(d26-p),:root:not([data-crew-mode=accessible]) .moscow-clock:not(d26-p){color:var(--d26-muted)}
:root:not([data-crew-mode=accessible]) .duty-day-free{opacity:1}
:root:not([data-crew-mode=accessible]) .leave-time-control>span,:root:not([data-crew-mode=accessible]) .leave-time-readonly>small{color:var(--d26-ink-2)}
:root:not([data-crew-mode=accessible]) .nav-button{color:var(--d26-nav-ink)}
:root:not([data-crew-mode=accessible]) :is(.input,textarea)::placeholder{color:var(--d26-placeholder);opacity:1}
:root:not([data-crew-mode=accessible]) .input:not(d26-p),:root:not([data-crew-mode=accessible]) select.control,:root:not([data-crew-mode=accessible]) .date-input:not(d26-p),:root:not([data-crew-mode=accessible]) .cell-select:not(d26-p),:root:not([data-crew-mode=accessible]) .cell-date:not(d26-p),:root:not([data-crew-mode=accessible]) .cell-time:not(d26-p){border-color:var(--d26-control-line)}
:root:not([data-crew-mode=accessible]) :is(button,a,input,select,textarea,summary,[role=button],[tabindex]):not(:where([class*=ops-] *,[class*=access-] *)):focus-visible{outline:2px solid var(--d26-focus);outline-offset:2px;box-shadow:0 0 0 5px var(--d26-focus-ring)}
:root:not([data-crew-mode=accessible]) .readonly-empty,:root:not([data-crew-mode=accessible]) .duty-day-count{color:var(--d26-muted)}
:root:not([data-crew-mode=accessible]) .derived-reason:not(.planned-leave-note),:root:not([data-crew-mode=accessible]) .housing-evict-button:not(.d26-p),:root:not([data-crew-mode=accessible]) .housing-delete-button:not(.d26-p){color:var(--d26-bad-ink)}
:root:not([data-crew-mode=accessible]) .housing-evict-button:hover{text-decoration-color:currentColor}
:root:not([data-crew-mode=accessible]) .housing-delete-button:hover{background:var(--d26-bad-bg)}
:root:not([data-crew-mode=accessible]) .linen-chip.selected small{color:inherit}
:root[data-crew-mode=dark] .duty-calendar-day.is-today .duty-day-free,:root[data-crew-mode=dark] .duty-calendar-day.is-today .duty-day-count{color:inherit}
:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .access-note:not(:where(.is-locked)):not(d26-p),:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .duty-empty:not(d26-p),:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .request-diff-before:not(d26-p),:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .muster-totals-readonly:not(d26-p),:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .housing-own-contact:not(d26-p),:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .housing-stat>span,:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .housing-payment-unknown:not(d26-p),:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .muster-totals-branch:not(d26-p),:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .housing-optional:not(d26-p){color:var(--d26-muted)}
:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .roster tbody .muted:not(.d26-p):not(.d26-p):not(d26-p):not(d26-p),:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .roster tbody .where-value:not(.d26-p):not(.d26-p):not(d26-p):not(d26-p),:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .roster tbody .readonly-empty:not(.d26-p):not(.d26-p):not(d26-p):not(d26-p),:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .roster tbody .planned-leave-note:not(.d26-p):not(.d26-p):not(d26-p):not(d26-p),:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .housing-table .housing-id:not(.d26-p):not(.d26-p):not(d26-p):not(d26-p):not(d26-p),:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .muster-totals-roster tbody tr[class*=color-] .muster-totals-branch:not(.d26-p):not(d26-p),:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .no-show-grid thead .no-show-days th.latest:not(.selected) span,:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .no-show-grid thead .no-show-days th.latest:not(.selected) small{color:var(--d26-ink-2)}
@media(max-width:600px){:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .roster tbody td.id-col,:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .roster tbody td.group-col,:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .roster tbody .mobile-label:not(d26-p){color:var(--d26-ink-2)}}
:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .duty-post-tab:not(.active){color:var(--d26-nav-ink)}
:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .nav-button.active .interaction-badge{background:var(--d26-surface);color:var(--d26-info-ink)}
:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .linen-layout{--ln-muted:var(--d26-muted)}
:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .linen-chip.selected small{background:rgba(12,34,54,.2)}
/* ==== STEP 2 ==== */
:root:not([data-crew-mode=accessible]){font-family:var(--d26-font);font-weight:450;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
:root:not([data-crew-mode=accessible]) button:not(:where(.report-paper *,.departure-memo *,[class*=ops-] *,[class*=access-] *)),:root:not([data-crew-mode=accessible]) input:not(:where(.report-paper *,.departure-memo *,[class*=ops-] *,[class*=access-] *)),:root:not([data-crew-mode=accessible]) select:not(:where(.report-paper *,.departure-memo *,[class*=ops-] *,[class*=access-] *)),:root:not([data-crew-mode=accessible]) textarea:not(:where(.report-paper *,.departure-memo *,[class*=ops-] *,[class*=access-] *)){font-family:inherit}
:root:not([data-crew-mode=accessible]) h1:not(:where(.report-paper *,.departure-memo *,[class*=ops-] *,[class*=access-] *)),:root:not([data-crew-mode=accessible]) h2:not(:where(.report-paper *,.departure-memo *,[class*=ops-] *,[class*=access-] *)),:root:not([data-crew-mode=accessible]) h3:not(:where(.report-paper *,.departure-memo *,[class*=ops-] *,[class*=access-] *)){font-weight:700;letter-spacing:-.02em;text-wrap:balance}
:root:not([data-crew-mode=accessible]) h1:not(:where([class*=ops-] *,[class*=access-] *)){font-size:clamp(1.55rem,1.15rem + 1.6vw,var(--d26-fs-h1))}
:root:not([data-crew-mode=accessible]) .page-heading h1{font-size:clamp(1.5rem,1.1rem + 1.4vw,1.8rem)}
:root:not([data-crew-mode=accessible]) .page-heading p,:root:not([data-crew-mode=accessible]) .field-note:not(d26-p){text-wrap:pretty}
:root:not([data-crew-mode=accessible]) .stat strong,:root:not([data-crew-mode=accessible]) .result-count:not(d26-p),:root:not([data-crew-mode=accessible]) .duty-day-number:not(d26-p),:root:not([data-crew-mode=accessible]) .online-total strong,:root:not([data-crew-mode=accessible]) .summary-dialog-total:not(d26-p),:root:not([data-crew-mode=accessible]) .request-diff:not(d26-p),:root:not([data-crew-mode=accessible]) .muster-totals-table td,:root:not([data-crew-mode=accessible]) .housing-table td{font-variant-numeric:tabular-nums}
/* ==== STEP 3 ==== */
:root:not([data-crew-mode=accessible]) .ma-page,:root:not([data-crew-mode=accessible]) .san-page,:root:not([data-crew-mode=accessible]) .san-profile,:root:not([data-crew-mode=accessible]) .crew-service-page,:root:not([data-crew-mode=accessible]) .crew-service-dialog,:root:not([data-crew-mode=accessible]) .crew-service-profile-actions,:root:not([data-crew-mode=accessible]) .no-show-card,:root:not([data-crew-mode=accessible]) .crew-notice-page,:root:not([data-crew-mode=accessible]) .muster-totals{--ma-ink:var(--d26-ink);--ma-muted:var(--d26-muted);--ma-line:var(--d26-section-line);--ma-accent:var(--d26-accent);--ma-soft:var(--d26-surface-2);--ma-active:var(--d26-surface-3);--san-ink:var(--d26-ink);--san-muted:var(--d26-muted);--san-line:var(--d26-section-line);--san-accent:var(--d26-accent);--san-soft:var(--d26-surface-2);--san-active:var(--d26-surface-3);--service-ink:var(--d26-ink);--service-muted:var(--d26-muted);--service-line:var(--d26-section-line);--service-accent:var(--d26-accent);--service-soft:var(--d26-surface-2);--service-active:var(--d26-surface-3);--ns-ink:var(--d26-ink);--ns-muted:var(--d26-muted);--ns-line:var(--d26-section-line);--notice-text:var(--d26-ink);--notice-muted:var(--d26-muted);--notice-border:var(--d26-section-line);--notice-accent:var(--d26-accent);--notice-soft:var(--d26-surface-2);--totals-header:var(--d26-th-bg)}
:root:not([data-crew-mode=accessible]) .section-card,:root:not([data-crew-mode=accessible]) .duty-calendar-card,:root:not([data-crew-mode=accessible]) .duty-today-card,:root:not([data-crew-mode=accessible]) .report-approval-reason,:root:not([data-crew-mode=accessible]) .activity-user,:root:not([data-crew-mode=accessible]) .stat{border-radius:var(--d26-r-m);box-shadow:var(--d26-sh-1)}
:root:not([data-crew-mode=accessible]) .section-card:not(:where([data-payment])),:root:not([data-crew-mode=accessible]) .duty-calendar-card:not(:where([data-payment])),:root:not([data-crew-mode=accessible]) .duty-today-card:not(:where([data-payment])),:root:not([data-crew-mode=accessible]) .report-approval-reason:not(:where([data-payment])),:root:not([data-crew-mode=accessible]) .activity-user:not(:where([data-payment])),:root:not([data-crew-mode=accessible]) .stat:not(:where([data-payment])){border-color:var(--d26-line)}
:root:not([data-crew-mode=accessible]) .user-row,:root:not([data-crew-mode=accessible]) .cadet-request-row,:root:not([data-crew-mode=accessible]) .duty-swap-request,:root:not([data-crew-mode=accessible]) .duty-city-row,:root:not([data-crew-mode=accessible]) .role-view-option,:root:not([data-crew-mode=accessible]) .duty-candidate,:root:not([data-crew-mode=accessible]) .activity-device,:root:not([data-crew-mode=accessible]) .summary-person{border-radius:var(--d26-r-s)}
:root:not([data-crew-mode=accessible]) .user-row,:root:not([data-crew-mode=accessible]) .cadet-request-row,:root:not([data-crew-mode=accessible]) .duty-swap-request,:root:not([data-crew-mode=accessible]) .duty-city-row,:root:not([data-crew-mode=accessible]) .role-view-option:not(:where(.selected,:hover)),:root:not([data-crew-mode=accessible]) .duty-candidate:not(:where(.selected)),:root:not([data-crew-mode=accessible]) .activity-device{border-color:var(--d26-line)}
:root:not([data-crew-mode=accessible]) .access-note,:root:not([data-crew-mode=accessible]) .muster-window-note,:root:not([data-crew-mode=accessible]) .scope-preview,:root:not([data-crew-mode=accessible]) .duty-swap-selection-note{border-radius:var(--d26-r-s)}
:root:not([data-crew-mode=accessible]) .toolbar{border-radius:var(--d26-r-m);border-color:var(--d26-line);box-shadow:var(--d26-sh-1)}
:root:not([data-crew-mode=accessible]) .input:not(:where([class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) select.control:not(:where([class*=ops-] *,[class*=access-] *)),:root:not([data-crew-mode=accessible]) .date-input:not(:where([class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) .cell-select:not(:where([class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) .cell-date:not(:where([class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) .cell-time:not(:where([class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) .primary:not(:where([class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) .secondary:not(:where([class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) .quiet:not(:where([class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) .danger:not(:where([class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) .nav-button:not(:where([class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) .small-button:not(:where([class*=ops-] *,[class*=access-] *)):not(d26-p){border-radius:var(--d26-r-s)}
/* ==== STEP 4 ==== */
:root:not([data-crew-mode=accessible]) .primary:not(:where([class*=ops-] *,[class*=access-] *)),:root:not([data-crew-mode=accessible]) .secondary:not(:where([class*=ops-] *,[class*=access-] *)),:root:not([data-crew-mode=accessible]) .quiet:not(:where([class*=ops-] *,[class*=access-] *)),:root:not([data-crew-mode=accessible]) .danger:not(:where([class*=ops-] *,[class*=access-] *)),:root:not([data-crew-mode=accessible]) .nav-button:not(:where([class*=ops-] *,[class*=access-] *)){min-height:44px;font-weight:650;letter-spacing:-.005em}
:root:not([data-crew-mode=accessible]) .primary{background:var(--d26-primary-bg,var(--d26-navy-800));color:var(--d26-on-navy);box-shadow:0 2px 0 var(--d26-navy-900),0 6px 12px -6px rgba(12,34,54,.5),inset 0 1px 0 rgba(255,255,255,.12)}
:root:not([data-crew-mode=accessible]) .secondary{background:var(--d26-surface);border:1px solid var(--d26-line-strong);color:var(--d26-ink);box-shadow:var(--d26-sh-1)}
:root:not([data-crew-mode=accessible]) .quiet{color:var(--d26-muted)}
:root:not([data-crew-mode=accessible]) .danger:not(:where([class*=ops-] *,[class*=access-] *)){background:var(--d26-bad-bg);color:var(--d26-bad-ink)}
html[data-crew-mode=dark]{--d26-primary-bg:#356fa4;--d26-primary-hover:#3975aa}
@media(hover:hover){:root:not([data-crew-mode=accessible]) .primary:not(:disabled):hover{background:var(--d26-primary-hover,var(--d26-navy-700))}
:root:not([data-crew-mode=accessible]) .secondary:not(:disabled):hover,:root:not([data-crew-mode=accessible]) .quiet:not(:disabled):hover{background:var(--d26-surface-3);color:var(--d26-ink)}
:root:not([data-crew-mode=accessible]) .danger:not(:disabled):not(:where([class*=ops-] *,[class*=access-] *)):hover{box-shadow:inset 0 0 0 1px currentColor}}
@media(prefers-reduced-motion:no-preference){:root:not([data-crew-mode=accessible]) .primary:not(:disabled):not(.ui-pending):active{box-shadow:inset 0 1px 0 rgba(255,255,255,.06);transform:translateY(2px) scale(.99)}}
:root:not([data-crew-mode=accessible]) .primary:disabled:not(.ui-pending):not(:where([class*=ops-] *,[class*=access-] *)),:root:not([data-crew-mode=accessible]) .secondary:disabled:not(.ui-pending):not(:where([class*=ops-] *,[class*=access-] *)),:root:not([data-crew-mode=accessible]) .quiet:disabled:not(.ui-pending):not(:where([class*=ops-] *,[class*=access-] *)),:root:not([data-crew-mode=accessible]) .danger:disabled:not(.ui-pending):not(:where([class*=ops-] *,[class*=access-] *)){opacity:.55;box-shadow:none}
:root:not([data-crew-mode=accessible]) .small-button{min-height:44px;padding:8px 14px;font-size:var(--d26-fs-sm)}
:root:not([data-crew-mode=accessible]) .san-button,:root:not([data-crew-mode=accessible]) .ma-button,:root:not([data-crew-mode=accessible]) .crew-notice-button,:root:not([data-crew-mode=accessible]) .crew-service-button,:root:not([data-crew-mode=accessible]) .crew-service-icon-button,:root:not([data-crew-mode=accessible]) .crew-service-profile-button,:root:not([data-crew-mode=accessible]) .housing-delete-button,:root:not([data-crew-mode=accessible]) .housing-evict-button,:root:not([data-crew-mode=accessible]) .no-show-edit-button,:root:not([data-crew-mode=accessible]) .muster-totals-pending-button{min-height:44px;min-width:44px;border-radius:var(--d26-r-s);font-size:var(--d26-fs-sm)}
:root:not([data-crew-mode=accessible]) .san-button.is-square{font-size:26px}
:root:not([data-crew-mode=accessible]) .modal-close,:root:not([data-crew-mode=accessible]) .search-clear{min-width:44px;min-height:44px}
:root:not([data-crew-mode=accessible]) .info-button,:root:not([data-crew-mode=accessible]) .crew-calendar-nav,:root:not([data-crew-mode=accessible]) .duty-month-button{position:relative}
:root:not([data-crew-mode=accessible]) .info-button:not(.ui-pending)::after,:root:not([data-crew-mode=accessible]) .crew-calendar-nav:not(.ui-pending)::after,:root:not([data-crew-mode=accessible]) .duty-month-button:not(.ui-pending)::after{content:"";position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}
:root:not([data-crew-mode=accessible]) .crew-calendar-nav:not(.ui-pending)::after{width:100%}
:root:not([data-crew-mode=accessible]) .crew-appearance-button{width:44px;height:44px;min-width:44px;min-height:44px;border-radius:var(--d26-r-s)}
:root:not([data-crew-mode=accessible]) .cadet-name-button{min-height:44px;display:flex;align-items:center}
:root:not([data-crew-mode=accessible]) .input:not(d26-p),:root:not([data-crew-mode=accessible]) select.control,:root:not([data-crew-mode=accessible]) .date-input:not(d26-p),:root:not([data-crew-mode=accessible]) .cell-select:not(d26-p),:root:not([data-crew-mode=accessible]) .cell-date:not(d26-p),:root:not([data-crew-mode=accessible]) .cell-time:not(d26-p){min-height:44px;border:1px solid var(--d26-control-line);border-radius:var(--d26-r-s);background-color:var(--d26-surface);color:var(--d26-ink)}
@supports(color:color-mix(in srgb,red,blue)){:root:not([data-crew-mode=accessible]) .cell-select,:root:not([data-crew-mode=accessible]) .cell-date,:root:not([data-crew-mode=accessible]) .cell-time{background-color:color-mix(in srgb,var(--d26-surface) 82%,transparent)}}
:root:not([data-crew-mode=accessible]) select:not([multiple]):not(:where([class*=ops-] *,[class*=access-] *)){appearance:none;-webkit-appearance:none;background-image:var(--d26-select-arrow);background-repeat:no-repeat;background-position:right 12px center;padding-right:34px}
:root[data-crew-mode=dark] .roster td .cell-select:disabled{background-image:var(--d26-select-arrow);background-repeat:no-repeat;background-position:right 12px center}
:root:not([data-crew-mode=accessible]) :is(.input,select,textarea):not(:where([class*=ops-] *,[class*=access-] *)):focus{border-color:var(--d26-focus)}
:root:not([data-crew-mode=accessible]) .field>label{font-size:var(--d26-fs-sm);font-weight:650;color:var(--d26-ink-2)}
:root:not([data-crew-mode=accessible]) .error-message{border-radius:var(--d26-r-s);background:var(--d26-bad-bg);color:var(--d26-bad-ink);border-color:var(--d26-bad-ink)}
:root:not([data-crew-mode=accessible]) input[type=checkbox]:not(:where([class*=ops-] *,[class*=access-] *)),:root:not([data-crew-mode=accessible]) input[type=radio]:not(:where([class*=ops-] *,[class*=access-] *)){accent-color:var(--d26-accent)}
/* ==== STEP 5 ==== */
:root:not([data-crew-mode=accessible]) .sidebar{background:var(--d26-surface);border-color:var(--d26-line)}
:root:not([data-crew-mode=accessible]) .nav-button{text-align:left;gap:12px;color:var(--d26-nav-ink);font-size:var(--d26-fs-sm)}
@media(hover:hover){:root:not([data-crew-mode=accessible]) .nav-button:not(:disabled):hover{background:var(--d26-surface-3);color:var(--d26-ink)}}
:root:not([data-crew-mode=accessible]) .nav-button.active{background:var(--d26-nav-active-bg);color:var(--d26-ink);font-weight:750;box-shadow:inset 3px 0 0 var(--d26-gold)}
:root:not([data-crew-mode=accessible]) .nav-button svg{width:20px;height:20px;flex:none}
@media(max-width:800px){:root:not([data-crew-mode=accessible]) .nav-button{min-height:44px;padding-inline:14px}
:root:not([data-crew-mode=accessible]) .nav-button.active{box-shadow:inset 0 -3px 0 var(--d26-gold)}}
@media(min-width:801px) and (max-width:1100px){:root:not([data-crew-mode=accessible]) .nav-button{gap:9px;padding-inline:11px}}
:root:not([data-crew-mode=accessible]) .admin-tab:not(d26-p),:root:not([data-crew-mode=accessible]) .duty-post-tab:not(d26-p),:root:not([data-crew-mode=accessible]) .interaction-filters button,:root:not([data-crew-mode=accessible]) .summary-reason-filters button{min-height:44px;border-radius:var(--d26-r-s);font-size:var(--d26-fs-sm)}
:root:not([data-crew-mode=accessible]) .admin-tab.active{border-bottom-color:var(--d26-gold);color:var(--d26-ink)}
:root:not([data-crew-mode=accessible]) .eyebrow:not(.d26-p),:root:not([data-crew-mode=accessible]) .sidebar-label:not(.d26-p),:root:not([data-crew-mode=accessible]) .duty-board-heading .eyebrow,:root:not([data-crew-mode=accessible]) .interaction-card-heading .eyebrow,:root:not([data-crew-mode=accessible]) .duty-swap-heading .eyebrow,:root:not([data-crew-mode=accessible]) .ma-eyebrow:not(.d26-p),:root:not([data-crew-mode=accessible]) .crew-service-eyebrow:not(.d26-p){text-transform:none;letter-spacing:.005em;font-size:var(--d26-fs-cap);font-weight:650}
:root:not([data-crew-mode=accessible]) dt:not(:where(.report-paper *,.departure-memo *,.crew-home-calendar *,[class*=ops-] *,[class*=access-] *)):not(.d26-p),:root:not([data-crew-mode=accessible]) small:not(:where(.report-paper *,.departure-memo *,.crew-home-calendar *,[class*=ops-] *,[class*=access-] *)):not(.d26-p),:root:not([data-crew-mode=accessible]) .mobile-label:not(:where(.report-paper *,.departure-memo *,.crew-home-calendar *,[class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) .ma-badge:not(:where(.report-paper *,.departure-memo *,.crew-home-calendar *,[class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) .muster-totals-branch:not(:where(.report-paper *,.departure-memo *,.crew-home-calendar *,[class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) .housing-residency-badge:not(:where(.report-paper *,.departure-memo *,.crew-home-calendar *,[class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) .housing-payment-duration:not(:where(.report-paper *,.departure-memo *,.crew-home-calendar *,[class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) .duty-day-free:not(:where(.report-paper *,.departure-memo *,.crew-home-calendar *,[class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) .stat-open:not(:where(.report-paper *,.departure-memo *,.crew-home-calendar *,[class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) .crew-notice-count:not(:where(.report-paper *,.departure-memo *,.crew-home-calendar *,[class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) .role-badge:not(:where(.report-paper *,.departure-memo *,.crew-home-calendar *,[class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) .stat small:not(:where(.report-paper *,.departure-memo *,.crew-home-calendar *,[class*=ops-] *,[class*=access-] *)),:root:not([data-crew-mode=accessible]) .field-note:not(:where(.report-paper *,.departure-memo *,.crew-home-calendar *,[class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) .legend:not(:where(.report-paper *,.departure-memo *,.crew-home-calendar *,[class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) .table-foot:not(:where(.report-paper *,.departure-memo *,.crew-home-calendar *,[class*=ops-] *,[class*=access-] *)):not(d26-p),:root:not([data-crew-mode=accessible]) .roster-help:not(:where(.report-paper *,.departure-memo *,.crew-home-calendar *,[class*=ops-] *,[class*=access-] *)):not(d26-p){font-size:var(--d26-fs-cap)}
:root:not([data-crew-mode=accessible]) .stat small{color:var(--d26-muted)}
:root:not([data-crew-mode=accessible]) .ma-detail-grid dd{font-size:var(--d26-fs-cap)}
:root:not([data-crew-mode=accessible]) .user-info small,:root:not([data-crew-mode=accessible]) .result-count:not(d26-p),:root:not([data-crew-mode=accessible]) .scope-text:not(d26-p),:root:not([data-crew-mode=accessible]) .housing-payment-badge>span,:root:not([data-crew-mode=accessible]) .housing-stat>span,:root:not([data-crew-mode=accessible]) .housing-section-heading>span,:root:not([data-crew-mode=accessible]) .housing-payment-note:not(d26-p),:root:not([data-crew-mode=accessible]) .housing-bottom-note:not(d26-p){font-size:var(--d26-fs-cap)}
@media(max-width:600px){:root:not([data-crew-mode=accessible]) :is(.roster .id-col>span,.roster .group-col,.roster .group-col .muted,.roster .where-value,.roster .where-value strong,.housing-table .housing-id){font-size:var(--d26-fs-cap)}}
:root:not([data-crew-mode=accessible]) .muster-totals-roster .muster-totals-branch:not(d26-p),:root:not([data-crew-mode=accessible]) .ma-table .ma-presence>small{white-space:nowrap}
:root:not([data-crew-mode=accessible]) input:is([type=date],[type=time],[type=month],[type=week],[type=datetime-local]):focus-within{outline:2px solid var(--d26-focus);outline-offset:2px;box-shadow:0 0 0 5px var(--d26-focus-ring)}
/* ==== STEP 6 ==== */
:root:not([data-crew-mode=accessible]) .crew-notice-page{margin-inline:0;max-width:100%}
:root:not([data-crew-mode=accessible]) .page-heading,:root:not([data-crew-mode=accessible]) .crew-notice-heading{gap:var(--d26-s4);margin-bottom:var(--d26-s5)}
/* ==== STEP 7 ==== */
:root:not([data-crew-mode=accessible]) .roster th{background:var(--d26-th-bg);color:var(--d26-th-ink);font-size:var(--d26-fs-cap);font-weight:700;letter-spacing:0;line-height:1.4;padding-inline:9px;vertical-align:middle}
@media (min-width: 601px){:root:not([data-crew-mode=accessible]) .roster tbody tr:nth-child(even){--row-bg:var(--d26-zebra)}}
:root:not([data-crew-mode=accessible]) .housing-table thead th,:root:not([data-crew-mode=accessible]) .duty-people th:not(d26-p),:root:not([data-crew-mode=accessible]) .ma-table th:not(d26-p),:root:not([data-crew-mode=accessible]) .san-table th:not(d26-p),:root:not([data-crew-mode=accessible]) .crew-service-table th:not(d26-p){background:var(--d26-th-soft-bg);color:var(--d26-th-soft-ink);font-size:var(--d26-fs-cap);font-weight:700}
@media (hover: hover) and (min-width: 801px){:root:not([data-crew-mode=accessible]) :is(.roster,.housing-table,.duty-people,.ma-table,.san-table,.crew-service-table) tbody tr:hover > td{box-shadow:inset 0 0 0 999px var(--d26-row-hover)}}
@media (min-width: 801px){:root:not([data-crew-mode=accessible]) .housing-table-wrap:not(.d26-p),:root:not([data-crew-mode=accessible]) .ma-table-wrap:not(.d26-p),:root:not([data-crew-mode=accessible]) .san-table-wrap:not(.d26-p),:root:not([data-crew-mode=accessible]) .crew-service-page .crew-service-table-wrap{max-height:calc(100vh - 260px);overflow:auto}
:root:not([data-crew-mode=accessible]) :is(.housing-table,.duty-people,.ma-table,.san-table,.crew-service-table) thead th{position:sticky;top:0;z-index:5}
:root:not([data-crew-mode=accessible]) :is(.ma-table,.san-table,.duty-people) thead th{box-shadow:inset 0 -1px 0 var(--d26-line)}
:root:not([data-crew-mode=accessible]) .ma-table thead th{border-bottom-color:transparent}
:root:not([data-crew-mode=accessible]) :is(.san-table,.duty-people) tbody tr:first-child td{border-top-color:transparent}
:root:not([data-crew-mode=accessible]) .san-table thead th + th{border-left-color:transparent;box-shadow:inset 1px -1px 0 var(--d26-line)}}
:root:not([data-crew-mode=accessible]) .access-note{padding:var(--d26-s2) var(--d26-s3);gap:var(--d26-s2);margin-bottom:var(--d26-s2);font-size:var(--d26-fs-cap);line-height:1.4}
:root:not([data-crew-mode=accessible]) .legend{margin:var(--d26-s2) 0 var(--d26-s3)}
/* ==== STEP 8 ==== */
:root:not([data-crew-mode=accessible]){--d26-backdrop:rgba(8,22,36,.56);--d26-backdrop-blur:3px;--d26-r-pill:999px;--d26-r-circle:50%;--d26-empty-icon:28px;--d26-empty-icon-pad:14px}
:root:not([data-crew-mode=accessible]) .modal{border-radius:var(--d26-r-l);background:var(--d26-surface);color:var(--d26-ink);box-shadow:var(--d26-sh-3)}
:root:not([data-crew-mode=accessible]) .modal::backdrop{background:var(--d26-backdrop);backdrop-filter:none}
@media (min-width:800px) and (hover:hover) and (pointer:fine){:root:not([data-crew-mode=accessible]) .modal::backdrop{backdrop-filter:blur(var(--d26-backdrop-blur))}}
:root:not([data-crew-mode=accessible]) .modal-close{min-width:44px;min-height:44px;border-radius:var(--d26-r-s);flex-shrink:0;color:var(--d26-ink-2);background:var(--d26-surface-2)}
:root:not([data-crew-mode=accessible]) .toast{border-radius:var(--d26-r-m);box-shadow:var(--d26-sh-3);border:1px solid rgba(255,255,255,.1);font-size:var(--d26-fs-sm);line-height:1.5;overflow-wrap:anywhere;min-width:0}
:root[data-crew-mode=dark] .toast.error{background:var(--d26-bad-bg);color:var(--d26-bad-ink)}
@media (max-width:600px){:root:not([data-crew-mode=accessible]) .toast-region{bottom:calc(var(--d26-s4) + env(safe-area-inset-bottom));left:var(--d26-s3);right:var(--d26-s3)}}
:root:not([data-crew-mode=accessible]) .role-badge,:root:not([data-crew-mode=accessible]) .request-status,:root:not([data-crew-mode=accessible]) .online-count,:root:not([data-crew-mode=accessible]) .interaction-badge,:root:not([data-crew-mode=accessible]) .activity-tag,:root:not([data-crew-mode=accessible]) .ma-badge,:root:not([data-crew-mode=accessible]) .housing-residency-badge,:root:not([data-crew-mode=accessible]) .housing-payment-duration,:root:not([data-crew-mode=accessible]) .crew-notice-count,:root:not([data-crew-mode=accessible]) .duty-city-label,:root:not([data-crew-mode=accessible]) .cadet-month-chip{font-size:var(--d26-fs-cap);font-weight:650;border-radius:var(--d26-r-xs);line-height:1.5}
:root:not([data-crew-mode=accessible]) .role-badge,:root:not([data-crew-mode=accessible]) .request-status,:root:not([data-crew-mode=accessible]) .activity-tag,:root:not([data-crew-mode=accessible]) .housing-residency-badge,:root:not([data-crew-mode=accessible]) .cadet-month-chip{background:var(--d26-neutral-bg);color:var(--d26-neutral-ink);border-color:var(--d26-line)}
:root:not([data-crew-mode=accessible]) .online-count,:root:not([data-crew-mode=accessible]) .interaction-badge,:root:not([data-crew-mode=accessible]) .crew-notice-count{border-radius:var(--d26-r-pill)}
:root:not([data-crew-mode=accessible]) .online-count:not(.d26-p),:root:not([data-crew-mode=accessible]) .housing-residency-badge.is-resident,:root:not([data-crew-mode=accessible]) .request-status.approved{background:var(--d26-ok-bg);color:var(--d26-ok-ink)}
:root:not([data-crew-mode=accessible]) .request-status.rejected{background:var(--d26-bad-bg);color:var(--d26-bad-ink)}
:root:not([data-crew-mode=accessible]) .request-status.pending:not(.d26-p),:root:not([data-crew-mode=accessible]) .interaction-badge:not(.d26-p):not(.d26-p),:root:not([data-crew-mode=accessible]) .activity-event.is-system .activity-tag{background:var(--d26-info-bg);color:var(--d26-info-ink)}
:root:not([data-crew-mode=accessible]) .request-status.pending_peer{background:var(--d26-warn-bg);color:var(--d26-warn-ink)}
:root:not([data-crew-mode=accessible]) .request-status.cancelled,:root:not([data-crew-mode=accessible]) .housing-residency-badge.is-evicted{background:var(--d26-neutral-bg);color:var(--d26-neutral-ink)}
:root:not([data-crew-mode=accessible]) .activity-event.is-change .activity-tag{background:var(--d26-ok-bg);color:var(--d26-ok-ink)}
:root:not([data-crew-mode=accessible]) .empty-state,:root:not([data-crew-mode=accessible]) .cadet-empty-message,:root:not([data-crew-mode=accessible]) .summary-empty,:root:not([data-crew-mode=accessible]) .duty-empty,:root:not([data-crew-mode=accessible]) .online-empty{padding:var(--d26-s6) var(--d26-s4);text-align:center;color:var(--d26-muted);font-size:var(--d26-fs-sm);line-height:1.6;overflow-wrap:anywhere}
:root:not([data-crew-mode=accessible]) :is(.empty-state,.cadet-empty-message,.summary-empty) > .icon{box-sizing:content-box;width:var(--d26-empty-icon);height:var(--d26-empty-icon);padding:var(--d26-empty-icon-pad);border-radius:var(--d26-r-circle);margin-bottom:var(--d26-s3);background:var(--d26-surface-3);color:var(--d26-accent)}
:root:not([data-crew-mode=accessible]) :is(.empty-state,.cadet-empty-message,.summary-empty) h2,:root:not([data-crew-mode=accessible]) :is(.empty-state,.cadet-empty-message,.summary-empty) h3{font-size:var(--d26-fs-lead);font-weight:700;line-height:1.4;color:var(--d26-ink);margin:0 0 var(--d26-s2)}
:root:not([data-crew-mode=accessible]) :is(.empty-state,.cadet-empty-message,.summary-empty) p{font-size:var(--d26-fs-sm);line-height:1.6;margin:0}
:root:not([data-crew-mode=accessible]) .duty-empty,:root:not([data-crew-mode=accessible]) .online-empty{border:1px dashed var(--d26-line-strong);border-radius:var(--d26-r-m);background:var(--d26-surface-2)}
:root:not([data-crew-mode=accessible]) .spinner{border-color:var(--d26-line);border-top-color:var(--d26-accent)}
:root:not([data-crew-mode=accessible]) .loading-panel{color:var(--d26-muted);font-size:var(--d26-fs-sm);padding:var(--d26-s7) var(--d26-s4)}
/* ==== STEP 9 ==== */
@media(prefers-reduced-motion:no-preference){:root:not([data-crew-mode=accessible]) .reset-button .icon{transform:scale(.6);transition:opacity var(--d26-dur-base,180ms) var(--d26-ease-out,cubic-bezier(.22,.61,.36,1)),transform var(--d26-dur-slow,260ms) var(--d26-ease-spring,cubic-bezier(.16,1,.3,1))}
:root:not([data-crew-mode=accessible]) :is(.reset-button.saved,.reset-button.confirmed) .icon{transform:none}}
/* ==== MERGE: coordinator decisions ==== */
:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .no-show-stats strong:not(.d26-p):not(d26-p),:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .no-show-grid tbody .no-show-total strong,:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .no-show-pill:not(.late,.arrived,.removed):not(d26-p):not(d26-p),:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .no-show-error:not(.d26-p):not(d26-p):not(d26-p),:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .no-show-picked strong:not(.d26-p):not(d26-p){color:var(--d26-bad-ink)}
:root:not([data-crew-mode=accessible]) .leave-time-control>span{font-size:var(--d26-fs-cap)}
/* ==== FIX: verification findings (24.10) ==== */
:root:not([data-crew-mode=accessible]) .ops-root{font-weight:400;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto;text-rendering:auto}
:root:not([data-crew-mode=accessible]) .crew-notice-field input,:root:not([data-crew-mode=accessible]) .crew-notice-field select,:root:not([data-crew-mode=accessible]) .crew-notice-field textarea,:root:not([data-crew-mode=accessible]) .crew-complaint-forward-panel input,:root:not([data-crew-mode=accessible]) .crew-service-field input,:root:not([data-crew-mode=accessible]) .crew-service-field select,:root:not([data-crew-mode=accessible]) .crew-service-cell textarea,:root:not([data-crew-mode=accessible]) .ma-field input,:root:not([data-crew-mode=accessible]) .ma-field select,:root:not([data-crew-mode=accessible]) .ma-field textarea,:root:not([data-crew-mode=accessible]) .san-field input,:root:not([data-crew-mode=accessible]) .san-field select,:root:not([data-crew-mode=accessible]) .san-field textarea,:root:not([data-crew-mode=accessible]) .san-cell input,:root:not([data-crew-mode=accessible]) .san-cell textarea,:root:not([data-crew-mode=accessible]) .no-show-pdf select{border-color:var(--d26-control-line)}
:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .activity-feeds .selected:not(d26-p),:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .interaction-filters button.active,:root:not([data-crew-mode=accessible]):not([data-crew-mode=dark]) .summary-reason-filters button.active{background:var(--d26-navy-800);color:var(--d26-on-navy);border-color:var(--d26-navy-800)}
:root:not([data-crew-mode=accessible]) .no-show-grid tbody .no-show-sticky{white-space:nowrap}
@media(min-width:601px){:root:not([data-crew-mode=accessible]) .roster .where-value small{line-height:1.375}}
:root:not([data-crew-mode=accessible]) .crew-notice-compose>summary:focus-visible{outline-offset:-3px;box-shadow:inset 0 0 0 5px var(--d26-focus-ring)}
:root[data-crew-mode=dark] :is(.report-paper,.departure-memo) :focus-visible{outline-color:#1a5fa8;box-shadow:0 0 0 5px rgba(26,95,168,.22)}
/* ==== FIX 3: remaining review findings (24.10, task 22) ==== */
@media(max-width:600px){:root:not([data-crew-mode=accessible]) .user-row{flex-wrap:wrap;row-gap:var(--d26-s2)}
:root:not([data-crew-mode=accessible]) .user-row>.avatar+.user-row-main{flex:1 1 calc(100% - 57px)}
:root:not([data-crew-mode=accessible]) .user-row>.avatar~.role-badge{margin-left:57px}
:root:not([data-crew-mode=accessible]) .user-row>.avatar~.user-row-actions{width:auto;flex:1 1 auto}}
