:root{--ink:#0f1724;--navy:#0b1220;--navy-2:#172033;--steel:#3e4c63;--slate:#5b6b82;--muted:#52627a;--blue:#1d4ed8;--blue-hover:#1e40af;--accent:#e11d2e;--border:#e4e8ef;--line-strong:#cfd6e2;--paper:#f4f6f9;--surface:#ffffff;--surface-2:#f7f8fb;--gap:#dc2626;--gap-ink:#9f1239;--gap-bg:#fff1f2;--gap-line:#fecdd3;--met:#059669;--met-ink:#047857;--met-bg:#ecfdf5;--met-line:#a7f3d0;--watch:#d97706;--watch-ink:#92400e;--watch-bg:#fffbeb;--watch-line:#fde68a;--brass:var(--accent);--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--r:10px;--shadow:0 1px 2px rgba(15,23,36,0.05),0 10px 28px rgba(15,23,36,0.05);--font-sans:var(--font-public),ui-sans-serif,sans-serif;--font-mono:var(--font-sans)}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:14px;line-height:1.45;font-weight:400;-webkit-font-smoothing:antialiased}h1{font-size:28px;font-weight:700;letter-spacing:-.035em;line-height:1.2}h1,h2{margin:0 0 var(--s-2)}h2{font-size:16px;letter-spacing:-.01em;line-height:1.35}h2,h3{font-weight:600}h3{font-size:14px;margin:0 0 var(--s-1)}p{margin:var(--s-2) 0}a{color:var(--blue)}.muted,small{color:var(--muted)}small{font-size:12px}.button,button{border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);color:var(--ink);padding:var(--s-2) var(--s-3);font-family:inherit;font-size:13px;font-weight:600;line-height:1.2;letter-spacing:0;box-shadow:none;text-decoration:none}.button:hover,button:hover{background:var(--surface-2);border-color:var(--steel)}.button.primary,.primary,button.primary{background:var(--blue);border-color:var(--blue);color:#fff;border-radius:8px;box-shadow:0 1px 2px rgba(29,78,216,.28)}.button.primary:hover,.primary:hover,a.button.primary:hover,button.primary:hover{background:var(--blue-hover);border-color:var(--blue-hover);color:#fff}input,select,textarea{font-family:inherit;font-size:14px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r);padding:var(--s-2);min-height:36px}input[type=checkbox],input[type=radio]{width:auto;min-height:0;padding:0}label{gap:var(--s-1);font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--ink)}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:var(--s-4);margin-bottom:var(--s-4);box-shadow:var(--shadow)}.eyebrow{color:var(--slate);font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:none}.module-heading{align-items:flex-end;gap:var(--s-4);margin-bottom:var(--s-4)}.module-heading h1{margin:var(--s-1) 0}.module-heading p{margin:0;max-width:68ch;color:var(--muted);font-size:14px;font-weight:400}.badge,.module-heading p{letter-spacing:0;text-transform:none}.badge{display:inline-flex;align-items:center;gap:var(--s-1);border-radius:999px;padding:3px 8px;background:var(--navy-2);color:#fff;font-family:var(--font-sans);font-size:11px;font-weight:600;line-height:1.3}.badge.danger{background:var(--gap);color:#fff}.badge.ok{background:var(--met);color:#fff}.badge.warn{background:var(--watch);color:#fff}.status-flag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;background:var(--navy);color:#fff;font-family:var(--font-sans);font-size:11px;font-weight:700;letter-spacing:0;line-height:1}.status-flag.gap{background:var(--gap)}.status-flag.met{background:var(--met)}.status-flag.watch{background:var(--watch)}.status-flag.next{background:var(--navy)}.error{background:var(--gap-bg);color:var(--gap-ink);border:1px solid var(--gap-line);border-radius:var(--r)}.error,.success{padding:var(--s-3)}.success{background:var(--met-bg);color:var(--met-ink);border:1px solid var(--met-line);border-radius:var(--r)}.warning{background:var(--watch-bg);color:var(--watch-ink);border:1px solid var(--watch-line);border-radius:var(--r);padding:var(--s-3)}table{font-size:13px;font-variant-numeric:tabular-nums}td,th{padding:var(--s-2) var(--s-3);border-bottom:1px solid var(--border)}th{background:var(--surface-2);color:var(--slate);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.empty-state{padding:var(--s-4);border:1px solid var(--border);border-left:3px solid var(--steel);background:var(--surface);border-radius:var(--r)}.empty-state .eyebrow{margin-bottom:var(--s-2)}.empty-state h2{margin-bottom:var(--s-1)}.empty-state p{margin:0;color:var(--muted);max-width:62ch}.workspace-shell{grid-template-columns:240px minmax(0,1fr);background:var(--paper)}.workspace-sidebar{background:var(--navy)}.workspace-logo{width:auto;height:auto;position:static;overflow:visible;background:transparent;border:0;border-bottom:1px solid #24384c;border-right:0;display:flex;align-items:center;gap:var(--s-3);padding:var(--s-4);color:#fff;text-decoration:none}.workspace-logo .mark{width:32px;height:32px;display:grid;place-items:center;flex-shrink:0;background:var(--accent);color:#fff;border-radius:8px;font-size:12px;font-weight:700;letter-spacing:-.03em}.workspace-logo .wordmark{display:grid;gap:2px;min-width:0}.workspace-logo .wordmark strong{color:#fff;font-size:13px;font-weight:600;letter-spacing:0;line-height:1.2}.workspace-logo .wordmark small{color:#b7c6d6;font-size:11px;letter-spacing:.02em;text-transform:none}.workspace-sidebar nav{gap:var(--s-1);padding:var(--s-4) var(--s-3) var(--s-3)}.nav-caption{font-family:var(--font-sans);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#8ea0bb;padding:var(--s-2) var(--s-3) var(--s-1)}.workspace-sidebar nav a{gap:var(--s-3);min-height:40px;padding:var(--s-2) var(--s-3);border-radius:8px;font-size:14px;font-weight:500;color:#d5e0eb;position:relative}.workspace-sidebar nav a:hover{background:rgba(255,255,255,.06)}.workspace-sidebar nav a[aria-current=page]{background:rgba(255,255,255,.1);color:#fff;box-shadow:none}.workspace-sidebar nav a[aria-current=page]:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:3px;background:var(--accent)}.nav-settings{border-top:1px solid #24384c;margin-top:var(--s-4);padding-top:var(--s-3)}.sidebar-footer{display:grid;gap:2px;margin:auto var(--s-4) var(--s-4);padding-top:var(--s-4);border-top:1px solid #24384c;color:#b7c6d6;font-size:12px;letter-spacing:0;line-height:1.4}.sidebar-footer .nav-caption{padding:0 0 var(--s-1)}.sidebar-footer strong{color:#fff;font-size:13px;font-weight:600}.workspace-topbar{min-height:56px;padding:var(--s-3) var(--s-5);background:var(--surface);border-bottom:1px solid var(--border);gap:var(--s-4)}.agency-heading{gap:2px}.agency-heading strong{font-size:14px;font-weight:600;letter-spacing:0}.agency-heading>span{font-size:12px;color:var(--slate)}.agency-heading>span,.duty-chip{font-family:var(--font-sans);letter-spacing:0}.duty-chip{display:inline-flex;align-items:center;margin-left:var(--s-2);padding:2px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);color:var(--steel);font-size:11px;font-weight:600;text-transform:none}.profile-avatar{width:32px;height:32px;border-radius:8px;background:var(--navy);color:#fff;font-size:11px;font-weight:700;letter-spacing:-.03em}.profile-name strong{font-size:13px;font-weight:600}.profile-name span{font-size:12px;letter-spacing:0;text-transform:none;color:var(--slate)}.profile-tools{gap:var(--s-3)}.profile-tools>button{background:transparent;border:1px solid transparent;color:var(--steel);font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;padding:var(--s-2)}.profile-tools>button:hover{background:var(--surface-2);border-color:var(--border)}.profile-tools>a.button{border-color:var(--border);background:var(--surface);text-transform:none;letter-spacing:0;font-size:13px}.workspace-main{padding:var(--s-5);max-width:1440px}.roster-heading{align-items:flex-start}.roster-aside{display:grid;justify-items:end;gap:var(--s-2)}.roster-day{display:grid;gap:2px;min-width:180px;padding:var(--s-3) var(--s-4);background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow)}.roster-day span{font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--slate)}.roster-day strong{font-family:var(--font-sans);font-size:15px;font-weight:700;letter-spacing:-.02em}.status-legend{display:flex;flex-wrap:wrap;gap:var(--s-4);margin:0 0 var(--s-4);padding:0;list-style:none;color:var(--steel);font-size:12px;font-weight:600}.status-legend li{display:flex;align-items:center;gap:var(--s-2)}.roster-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:var(--s-3);margin-bottom:var(--s-4);padding:var(--s-3) var(--s-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r)}.roster-toolbar label{min-width:148px;flex:1 1 148px}.roster-actions{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-left:auto}.roster-note{margin:0 0 var(--s-4);max-width:88ch;color:var(--slate);font-size:12px;line-height:1.5}.demo-story{margin-bottom:var(--s-4);padding:var(--s-4);background:var(--gap-bg);border:1px solid var(--gap-line);border-left:4px solid var(--gap);border-radius:var(--r);box-shadow:none}.demo-story .eyebrow,.demo-story h2{color:var(--gap-ink)}.demo-story h2{margin:var(--s-1) 0}.demo-story p{margin:0 0 var(--s-3);color:var(--ink);max-width:78ch}.detail-board{margin-bottom:var(--s-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}.detail-board.is-short{border-color:var(--gap-line);border-left:4px solid var(--gap)}.detail-board.is-met{border-left:4px solid var(--met)}.detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s-4);padding:var(--s-4);border-bottom:1px solid var(--border)}.detail-board.is-short .detail-head{background:var(--gap-bg)}.detail-board.is-met .detail-head{background:#f4faf7}.detail-kicker{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-2)}.detail-head h2{margin:0;font-size:18px}.detail-time{margin:var(--s-1) 0 0;font-family:var(--font-sans);font-size:13px;font-variant-numeric:tabular-nums;color:var(--steel)}.detail-mins{display:grid;justify-items:end;gap:2px;text-align:right}.detail-mins span{font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--slate)}.detail-mins strong{font-variant-numeric:tabular-nums;font-size:14px}.detail-body{padding:var(--s-4)}.detail-body>h3{margin:var(--s-4) 0 var(--s-2);font-size:13px;letter-spacing:0;text-transform:none;color:var(--ink)}.coverage-block{margin:0 0 var(--s-4);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--surface)}.coverage-block.is-short{border-color:var(--gap-line)}.coverage-block.is-met{border-color:var(--met-line)}.coverage-summary{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--surface-2)}.coverage-block.is-short .coverage-summary{background:var(--gap-bg)}.coverage-block.is-met .coverage-summary{background:var(--met-bg)}.coverage-summary .button{margin-left:auto}.coverage-summary .min-line{font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--ink)}.coverage-summary .muted{font-size:12px}.coverage-shortage td{background:var(--gap-bg);color:var(--gap-ink);font-weight:600}.count-short{color:var(--gap);font-weight:700;font-variant-numeric:tabular-nums}.shortage-detail{margin-left:var(--s-2);font-size:13px;font-weight:500;font-variant-numeric:tabular-nums}.covered-label{color:var(--met-ink);font-size:12px;font-weight:600;letter-spacing:0;text-transform:none}.crew-interval{border-top:1px solid var(--border);padding:var(--s-3) 0}.crew-interval.is-short{border-left:3px solid var(--gap);padding-left:var(--s-3)}.crew-interval summary{font-size:13px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:0;text-transform:none;color:var(--ink)}.car-roster-grid{gap:var(--s-3);margin:var(--s-3) 0}.car-crew{border:1px solid var(--met-line);border-left:4px solid var(--met);border-radius:var(--r);padding:var(--s-3);background:var(--surface)}.car-crew.is-short,.car-crew.not-deployable{border-color:var(--gap-line);border-left-color:var(--gap);background:var(--gap-bg)}.car-crew-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2)}.car-crew strong{font-size:16px;letter-spacing:-.01em;margin:0}.car-crew p{margin:var(--s-2) 0 var(--s-1);font-size:13px}.notice-slim{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-3);align-items:baseline;margin:0 0 var(--s-4);padding:var(--s-3) var(--s-4);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--steel);border-radius:var(--r);color:var(--steel);font-size:13px}.notice-slim strong{color:var(--ink);font-size:13px}.estimate-panel{border-left:3px solid var(--watch)}.fill-board,.offer-log{margin-bottom:var(--s-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}.fill-board-head,.offer-log>header{padding:var(--s-4);border-bottom:1px solid var(--border);background:var(--surface-2)}.fill-board-head h2,.offer-log h2{margin:var(--s-1) 0 0}.fill-board-body,.offer-log .empty-state,.offer-log .offer-list{margin:var(--s-4)}.offer-log .empty-state{margin-top:0}.fill-picker{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s-3);align-items:end;margin-bottom:var(--s-4)}.offer-form{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3);margin:var(--s-4) 0;padding:var(--s-4);background:#f8fafc;color:var(--ink);border:1px solid var(--border);border-radius:12px}.offer-form>p{margin:0;flex:1 1 220px;color:var(--steel)}.offer-form .muted,.offer-form small{color:#c5d3e0}.offer-form .primary{min-width:240px;background:var(--blue);border-color:var(--blue);color:#fff;border-radius:8px;box-shadow:0 1px 2px rgba(29,78,216,.28)}.offer-form .primary:hover{background:var(--blue-hover);border-color:var(--blue-hover);color:#fff}.offer-form .error,.offer-form .success{flex-basis:100%}tr.queue-next td{background:#f4f7fb;box-shadow:inset 3px 0 var(--blue)}tr.queue-blocked td{color:var(--slate)}.elig-ready{color:var(--met-ink);font-weight:600}.elig-blocked{color:var(--slate)}.elig-blocked .status-flag,.elig-ready .status-flag{margin-right:var(--s-2)}.offer-list{list-style:none;margin:0;padding:0}.offer-row{display:grid;gap:var(--s-2);padding:var(--s-3) var(--s-4);border-top:1px solid var(--border);border-left:3px solid var(--line-strong);background:var(--surface)}.offer-list .offer-row:first-child{border-top:0}.offer-row.is-offered{border-left-color:var(--watch);background:var(--watch-bg)}.offer-row.is-accepted{border-left-color:var(--met);background:var(--met-bg)}.offer-row.is-declined,.offer-row.is-skipped{border-left-color:var(--line-strong)}.offer-row-top{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3)}.offer-row-top strong{font-size:14px}.offer-time{font-size:13px;font-variant-numeric:tabular-nums;color:var(--steel)}.inline-action{display:inline-grid;width:auto}.row .inline-action{width:auto}.pending-dot{background:var(--steel)}.event-status.pending,.event-tag.pending,.month-event.pending{background:#e7edf2;color:#24384c}.event-status,.event-tag.leave,.month-event.leave{background:var(--met-bg);color:var(--met-ink)}.event-status{border-radius:var(--r)}.leave-dot{background:var(--met)}.court-dot{background:var(--watch)}.event-tag.court,.month-event.court{background:var(--watch-bg);color:var(--watch-ink)}.assignment-panel,.leave-panel,.month-grid,.schedule-toolbar,.view-switch{border-radius:var(--r)}.view-switch button[aria-pressed=true]{box-shadow:none;color:var(--navy);font-weight:600}.schedule-heading h1{font-size:28px;letter-spacing:-.035em;font-weight:700}.next-time{font-size:40px;letter-spacing:-.03em;font-weight:600}.credential-badge{border-radius:var(--r)}.credential-badge.current{background:var(--met-bg);color:var(--met-ink)}.credential-badge.expiring{background:var(--watch-bg);color:var(--watch-ink)}.credential-badge.inactive{background:var(--gap-bg);color:var(--gap-ink)}.month-day.selected{box-shadow:inset 0 0 0 2px var(--blue)}@media (max-width:900px){.workspace-shell{display:block}.sidebar-footer,.workspace-logo{display:none}.workspace-sidebar{display:none;height:auto;position:static}.workspace-sidebar.is-open{display:flex}.workspace-main{padding:var(--s-4)}.workspace-topbar{padding:var(--s-3) var(--s-4)}.fill-picker{grid-template-columns:1fr}.roster-aside{justify-items:stretch;width:100%}.roster-day{width:100%}}@media (max-width:580px){.workspace-main{padding:var(--s-4) var(--s-3)}.detail-head,.offer-form{display:grid}.detail-mins{justify-items:start;text-align:left}.offer-form .primary{width:100%}}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f639721981034f88-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-s.p.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_246ccd{font-family:Geist,Geist Fallback;font-style:normal}.__variable_246ccd{--font-public:"Geist","Geist Fallback"}