:root{color-scheme:dark;--paper:#101113;--surface:#191b1f;--raised:#24272c;--ink:#e9edf2;--muted:#a8aeb8;--line:#30333a;--accent:#b8d9ff;--blue:#8dbcf5;--warn:#efc887;--shift:#1a2938;--task:#20232a;--unassigned:#30291e}
:root[data-theme=light]{color-scheme:light;--paper:#f6f7f9;--surface:#fff;--raised:#eef0f4;--ink:#20252d;--muted:#596371;--line:#d2d7df;--accent:#c8e1ff;--blue:#205b99;--warn:#805415;--shift:#e7f0fa;--task:#eef0f4;--unassigned:#fff3dc}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button{font:inherit;color:inherit;min-height:44px;padding:10px 15px;border:1px solid var(--line);border-radius:10px;background:var(--raised);cursor:pointer}button:hover{background:var(--surface)}button:focus-visible,a:focus-visible{outline:3px solid var(--blue);outline-offset:3px}h1,h2,h3{line-height:1.2;margin:0;font-weight:650;letter-spacing:-.4px}h2{font-size:23px}h3{font-size:17px}.page{max-width:1100px;margin:auto;padding:0 24px}header{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}.brand{font-size:19px;font-weight:650;letter-spacing:-.3px}.brand b{font-weight:400;color:var(--muted)}.theme-toggle{display:flex;align-items:center;gap:8px;background:transparent;border-color:transparent;padding:0 4px;font-size:12px}.theme-track{display:block;position:relative;width:46px;height:26px;border-radius:20px;background:var(--raised);border:1px solid var(--line)}.theme-thumb{display:block;position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--ink);transform:translateX(20px)}[data-theme=light] .theme-thumb{transform:translateX(0)}.month-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:24px 0 16px}.month-toolbar>div{display:flex;gap:6px}.month-toolbar button{background:transparent;border-color:transparent;font-size:13px}.month-toolbar button:first-child,.month-toolbar button:last-child{font-size:25px;width:44px;padding:0}.view-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:8px}.view-switch{display:inline-flex;gap:3px}.view-switch button{background:transparent;font-size:13px}.view-switch button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#152c43}.schedule-state{color:var(--muted);font-size:12px}.view-description{font-size:12px;color:var(--muted);margin:8px 0 18px}.weekday-labels{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;font-size:11px;color:var(--muted);padding-bottom:10px}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);border-radius:12px;overflow:hidden}.calendar-cell,.calendar-pad{min-height:115px;background:transparent;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;padding:8px;text-align:left;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;min-width:0}.calendar-pad{background:var(--surface)}.calendar-cell:hover{background:var(--surface)}.calendar-cell:focus-visible{outline-offset:-3px}.date-number{font-size:13px;display:grid;place-items:center;align-self:flex-start;width:26px;height:26px;margin-bottom:6px}.is-today{box-shadow:inset 0 0 0 2px var(--blue)}.is-today .date-number{border-radius:50%;background:var(--accent);color:#152c43}.calendar-entry{padding:5px 6px;margin-bottom:5px;border-radius:4px;overflow-wrap:anywhere;display:flex;flex-direction:column;gap:1px;font-size:11px;background:var(--task)}.calendar-entry strong{font-weight:600}.shift-entry{background:var(--shift)}.entry-hours{font-variant-numeric:tabular-nums}.entry-role{color:var(--muted);font-size:10px}.unassigned{background:var(--unassigned)}.entry-person{color:var(--muted);font-size:10px}.calendar-note{color:var(--muted);font-size:12px;margin-top:15px}.calendar-actions{display:flex;justify-content:flex-end;margin:18px 0 26px}.quiet{background:transparent}.skip{position:absolute;top:10px;left:10px;transform:translateY(-150%);background:var(--accent);color:#152c43;padding:12px;z-index:9;border-radius:8px}.skip:focus{transform:none}dialog{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px;width:min(650px,calc(100% - 24px));max-height:90dvh;overflow:auto}dialog::backdrop{background:#0009}.dialog-head{display:flex;justify-content:space-between;align-items:start;gap:15px;margin-bottom:16px}.dialog-head>button{font-size:24px;padding:5px 13px;flex-shrink:0}.dialog-actions{display:flex;justify-content:flex-end;margin-top:18px}.day-state,.day-none{color:var(--muted);font-size:13px}.section-title{margin:20px 0 10px}.day-shift{display:grid;grid-template-columns:1fr auto;gap:3px 12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.day-shift small{grid-column:1/-1;color:var(--muted)}.day-task{position:relative;padding:14px 0;border-bottom:1px solid var(--line)}.task-time{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;margin-bottom:3px}.task-person{margin:4px 0;font-size:14px}.task-review{margin:6px 0 0;color:var(--warn);font-size:12px}.notice{padding:20px}#print-sheet{display:none}
.entry-time-short,.entry-label-short,.entry-person-short{display:none}.task-entry{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 5px}.task-entry .entry-person{grid-column:1/-1}.task-entry strong{min-width:0}
.home-intro{margin:55px 0 30px;max-width:600px}.home-intro h1{font-size:36px}.home-intro p,.form-intro p{color:var(--muted)}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:1.5px}.home-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:80px}.home-card{padding:28px;text-align:left;display:flex;flex-direction:column;gap:12px;background:var(--surface);min-height:240px}.home-card strong{font-size:25px}.home-card>span{color:var(--muted)}.home-card .card-icon{font-size:30px;color:var(--blue)}.home-card .card-action{margin-top:auto;color:var(--blue);font-size:13px}.back-home{margin-top:20px}.day-open{margin-top:auto;padding-top:6px;font-size:10px;color:var(--blue);overflow-wrap:anywhere}.form-intro{margin:25px 0 15px}.form-intro h1{font-size:30px}.form-note{color:var(--muted);font-size:13px;max-width:800px}#timecard-form{padding:24px 0 40px}label{display:flex;flex-direction:column;gap:5px;font-size:12px}input{font:inherit;font-size:14px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;min-width:0;min-height:44px;padding:8px;max-width:100%}input:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.timecard-details{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:20px 0}.timecard-week{border:1px solid var(--line);border-radius:10px;margin:24px 0;padding:18px;min-width:0}.timecard-week legend{padding:0 8px;font-weight:600}.timecard-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:18px 0;border-bottom:1px solid var(--line)}.timecard-row h3{grid-column:1/-1;font-size:13px}.timesheet-print table{border-collapse:collapse;width:100%;table-layout:fixed}.timesheet-print th,.timesheet-print td{border:1px solid #777;padding:5px;height:28px;overflow-wrap:anywhere}.timesheet-print th{background:#ddd;font-size:9pt}.print-details{display:grid;grid-template-columns:1fr 1fr}.print-week-total{text-align:right;margin-bottom:18px}.print-signature{margin:20px 0}.timesheet-print h1{font-size:18pt}
@media(max-width:650px){.home-intro{margin-top:35px}.home-intro h1{font-size:28px}.home-cards{grid-template-columns:1fr;gap:14px}.home-card{min-height:180px;padding:20px}.timecard-row{grid-template-columns:1fr 1fr}.timecard-details{grid-template-columns:1fr}.timecard-week{padding:12px}.day-open{font-size:9px}}
.timecard-row label,.timecard-details label{min-width:0}.timecard-row input,.timecard-details input{width:100%}.timecard-row{width:100%;min-width:0}
.timesheet-print table{margin-bottom:22px}.timesheet-print .weekly-label{border:0;text-align:right;font-weight:600}.timesheet-print .total-cell{background:#ddd}.timesheet-print .overall-totals{width:50%;margin-left:auto}
@media(max-width:400px){.timecard-row{grid-template-columns:minmax(0,1fr)}}
@media print{@page timecard{size:letter portrait;margin:12mm}body[data-print=timecard] #print-sheet .timesheet-print{font:10pt/1.3 sans-serif}.timesheet-print{page:timecard;max-width:100%;break-inside:avoid}.day-open{display:none}}
@media screen and (max-width:650px){.task-entry .entry-label,.task-entry .entry-person{display:none}.task-entry .entry-label-short,.task-entry .entry-person-short{display:block}.task-entry .entry-person-short{font-weight:400;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-entry .entry-time-short,.task-entry .entry-label-short,.task-entry .entry-person-short{font-size:11px;overflow-wrap:normal;word-break:normal}}
@media(max-width:650px){.page{padding:0 12px}header{padding:16px 0;gap:8px}.brand{font-size:16px}.month-toolbar h2{font-size:19px}.month-toolbar>div{gap:0}.month-toolbar button{padding:8px}.calendar-cell,.calendar-pad{min-height:94px;padding:4px 3px}.date-number{font-size:12px;width:23px;height:23px}.calendar-entry{padding:4px 2px;font-size:10px}.entry-hours,.entry-person,.entry-role{font-size:10px}.task-entry{display:flex;gap:0}.task-entry .entry-hours{display:none}.entry-time-short{display:block}.weekday-labels{font-size:10px}.view-description{margin-bottom:12px}.month-grid{border-radius:8px}.day-shift{font-size:13px}.dialog-head h2{font-size:20px}.schedule-state{font-size:11px}dialog{padding:18px}.view-switch button{padding:9px 12px}.theme-toggle{gap:5px}.theme-track{width:42px}.theme-thumb{transform:translateX(16px)}}
@media print{@page{size:landscape;margin:10mm}*{color-scheme:light}body{background:#fff;color:#111;font:10pt/1.35 sans-serif}.page,dialog,noscript,.skip{display:none!important}#print-sheet{display:block!important}.calendar-print h1{font-size:18pt;margin-bottom:8px}.calendar-print p{font-size:9pt}.calendar-print .weekday-labels{color:#333}.calendar-print .month-grid{border-color:#999;border-radius:0;overflow:visible}.calendar-print .calendar-cell,.calendar-print .calendar-pad{min-height:23mm;border-color:#bbb;background:#fff;padding:3px;break-inside:avoid}.calendar-print .calendar-entry{background:#f2f2f2;color:#111;font-size:8pt;margin-bottom:3px;padding:2px}.calendar-print .entry-hours,.calendar-print .entry-person,.calendar-print .entry-role{color:#333;font-size:8pt}.calendar-print .date-number{color:#111;font-size:9pt;margin-bottom:3px}.calendar-print .is-today{box-shadow:none}.calendar-print .is-today .date-number{background:#fff;color:#111}.calendar-print button{display:none!important}}
.brand{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:15px}.sheriff-star{width:42px;height:42px;color:var(--warn)}.coverage-update{padding:12px 14px;border:1px solid var(--line);border-radius:10px;font-size:13px;color:var(--muted);background:var(--surface)}
.shifts-grid .calendar-cell{display:grid;grid-template-rows:subgrid;grid-row:span 6;gap:0;align-content:start}.shifts-grid .calendar-pad{grid-row:span 6}.role-band{min-width:0;min-height:40px;border-top:1px solid var(--line);padding:5px 0}.role-band-label{display:block;font-size:9px;color:var(--muted);line-height:1.4;margin-bottom:3px;text-transform:uppercase;letter-spacing:.3px;overflow-wrap:anywhere}.role-empty{display:block;color:var(--muted);font-size:11px}.role-band .calendar-entry{margin-bottom:0}.role-band .calendar-entry+.calendar-entry{margin-top:4px}@media(max-width:650px){.role-band{padding:4px 0;min-height:32px}.role-band-label{font-size:8px;letter-spacing:0}}@media print{.calendar-print .role-band{padding:2px 0;min-height:8mm}.calendar-print .role-band-label{font-size:6pt;color:#555}.calendar-print .role-empty{color:#777;font-size:7pt}}
.shifts-grid .calendar-cell{grid-template-columns:minmax(0,1fr);justify-content:stretch}.date-head{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;min-width:0}.coverage-gap{outline:2px solid var(--warn);outline-offset:-3px}.coverage-pending{outline:2px dashed var(--warn);outline-offset:-3px}.coverage-badge{color:var(--warn);font-size:9px;font-weight:650;padding-top:5px}.coverage-legend{font-size:12px;color:var(--muted);margin:12px 0 18px}.gap-key{display:inline-block;width:12px;height:12px;border:2px solid var(--warn);vertical-align:middle;margin-right:4px}@media(max-width:650px){.date-head{min-height:39px}.coverage-badge{font-size:8px;padding:0}.coverage-legend{font-size:11px}}
.signin-card{max-width:420px;margin:40px auto 60px;padding:26px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.signin-card h1{font-size:30px}.signin-card p{color:var(--muted);font-size:13px}.signin-providers{display:grid;gap:10px;margin:22px 0}.signin-divider{text-align:center}.signin-card form{display:grid;gap:14px}.signin-card button{width:100%}button:disabled{opacity:.6;cursor:not-allowed}.signin-card #preview-portal{background:var(--accent);color:#152c43;margin-top:14px}.signin-card input{width:100%}@media(max-width:650px){.signin-card{margin:24px auto;padding:20px}}
.schedule-request-disclosure{margin:12px 0 18px}.schedule-request-disclosure summary{cursor:pointer;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--blue);font-size:13px}
.role-band{min-height:0;border:0;padding:0}.role-band.has-staff{padding:3px 0}.date-head{min-height:0}.role-band .calendar-entry{font-size:11px}@media(max-width:650px){.role-band{padding:0;min-height:0}.role-band.has-staff{padding:2px 0}.role-band .calendar-entry{font-size:10px}}@media print{.calendar-print .role-band{min-height:0;padding:0}}
.calendar-notes{font-size:12px;color:var(--muted);margin:12px 0}.calendar-notes summary{cursor:pointer;min-height:30px}
