.role-dashboard,.sites-page{gap:16px;display:grid}.dash-hero{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;padding:18px 20px;display:flex}.dash-hero-main{flex-wrap:wrap;align-items:center;gap:10px 12px;min-width:0;display:flex}.dash-hero h2{margin:0;font-size:1.35rem}.dash-role{text-align:right;align-content:start;justify-items:end;gap:4px;display:grid}.dash-role b,.dash-role small{display:block}.dash-role small{color:var(--muted);font-size:.74rem}.dash-grid{grid-template-columns:minmax(0,1.45fr) minmax(260px,.72fr);align-items:start;gap:16px;display:grid}.dash-actions{gap:8px;display:grid}.dash-card{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:#fff;border-radius:8px;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:12px;margin:0;padding:12px 14px;display:grid}.dash-card:hover{border-color:#f2a273;box-shadow:0 8px 20px #1c273214}.dash-card.primary{background:var(--navy);color:#fff;border-color:var(--navy)}.dash-card-icon{width:36px;height:36px;color:var(--orange);background:#fff2e9;border-radius:8px;place-items:center;display:grid}.dash-card.primary .dash-card-icon{background:var(--orange);color:#fff}.dash-card-icon svg,.dash-card .chev{width:18px;height:18px}.dash-card b{font-size:.95rem}.dash-side{padding:20px}.dash-side>.panel-heading{margin-bottom:8px}.dash-side>.panel-heading>svg{width:20px;color:var(--orange)}.dash-site-list{display:grid}.dash-site{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-top:1px solid #e8ebef;gap:3px;padding:12px 0;display:grid}.dash-site b{font-size:.86rem}.dash-site small{color:var(--muted);font-size:.74rem;line-height:1.4}.dash-note{color:var(--muted);margin:8px 0 0;font-size:.82rem;line-height:1.5}.ops-section-nav{flex-wrap:wrap;width:100%;max-width:100%;margin-top:16px}.ops-section-nav button{flex:170px;justify-content:center}.sites-page .site-admin{margin-top:0}.workforce-form>.panel-heading button{white-space:nowrap}.role-dashboard .metric-card b{font-size:1.45rem}.fill-select{width:280px}.roster-steps{gap:28px;margin:18px 0 0;padding:0;list-style:none;display:grid}.roster-steps>li{grid-template-columns:36px minmax(0,1fr);align-items:start;gap:14px;display:grid}.roster-step-index{color:#fff;background:#172433;border-radius:50%;place-items:center;width:36px;height:36px;font-weight:700;display:grid}.roster-steps h2{margin:6px 0;font-size:1.15rem}.roster-steps p{color:var(--muted);margin:0 0 12px}.shift-add-row{flex-wrap:wrap;gap:8px;margin:8px 0 14px;display:flex}.day-shift{gap:4px;display:grid}.day-shift small{color:var(--muted);font-size:.72rem;line-height:1.2}.roster-steps .roster-form-actions{margin-top:14px}.log-type-filter{border:1px solid var(--line);min-width:180px;max-width:240px;height:40px;font:inherit;color:var(--ink);background:#fff;border-radius:5px;padding:0 10px;font-size:.875rem}.rail-nav{flex:1;align-content:start;min-height:0;overflow:auto}.history-cell.assigned,.history-legend .assigned{background:#d9f2e3}.history-cell.off,.history-legend .off{color:#5c6b7a;background:#eef1f4}.history-cell.missing,.history-legend .missing{color:#7b8794;background:#f3f5f7}.history-grid td{height:1px;padding:0}.history-grid .history-cell{box-sizing:border-box;border-radius:0;gap:2px;width:100%;min-width:118px;height:100%;min-height:92px;padding:6px 7px;font-size:.68rem;line-height:1.2;display:grid}.history-legend .assigned,.history-legend .off,.history-legend .missing{border-radius:2px;width:10px;height:10px;display:block}.history-grid.shift-grid td{height:1px;padding:0}.history-grid.shift-grid .history-cell{box-sizing:border-box;border:0;border-radius:0;width:100%;height:100%;min-height:68px}.history-grid.shift-grid button.history-cell.missing{cursor:pointer}.history-grid.shift-grid button.history-cell.missing:hover{color:#1d4e89;background:#e8f1fb}.board-bar{flex-wrap:wrap;align-items:center;gap:6px 12px;width:100%;min-width:0;margin-top:-6px;display:flex}.board-bar-title{flex:1 0 100%}.board-bar-title h2{margin:2px 0 0;font-size:1.05rem}.board-bar .ops-tabs.board-tabs{flex:none;order:1}.board-bar .ops-tabs.board-tabs button{height:34px;padding:0 12px}.board-bar .history-controls{flex:none;order:2;margin-left:0}.board-bar .history-legend{flex:1 0 100%;order:3;gap:4px 10px}@container history (min-width:1480px){.board-bar .history-legend{flex:auto;order:2;min-width:0}.board-bar .history-controls{order:3}}.board-bar .month-switch{padding:2px}.board-bar .month-switch button{width:28px;height:28px}.board-bar .month-switch b{min-width:112px;font-size:.84rem}.board-bar .roster-search input{width:168px;height:34px}.board-bar .history-controls>button{height:34px}.history-board{grid-template-columns:minmax(0,1fr);gap:10px;margin-top:8px;container:history/inline-size}.shift-board .history-toolbar{flex-wrap:nowrap;gap:16px}.shift-board .history-legend{flex:none}.shift-board .history-controls{flex:1;justify-content:flex-end;min-width:0}.shift-board .roster-search{flex:1;min-width:140px;max-width:320px}.shift-board .roster-search input{width:100%;min-width:0}.ops-home{gap:16px;display:grid}.ops-home-bar{justify-content:space-between;align-items:center;gap:12px;display:flex}.ops-home-bar>span{color:var(--muted);font-size:.84rem;font-weight:700}.ops-home-metrics{grid-template-columns:repeat(6,minmax(0,1fr));margin-top:0}.ops-home .home-stat{min-height:0;padding:14px 16px}.home-stat.good b{color:var(--green)}.home-stat.warn b{color:var(--amber)}.home-stat.bad b{color:var(--red)}.ops-home-note{color:var(--muted);margin:-4px 2px 0;font-size:.75rem;line-height:1.45}.ops-home-split{grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);align-items:start;gap:16px;display:grid}.ops-home-split.solo{grid-template-columns:1fr}.ops-home-split.solo .attention-list{grid-template-columns:1fr 1fr}.ops-home .live-map-panel .section-label,.ops-home .map-control-strip,.ops-home .map-legend{display:none}.ops-home .live-map-panel>.panel-heading{margin-bottom:10px}.shift-card-meta,.shift-card-times{align-items:center;gap:10px;display:flex}.shift-card-meta{text-align:right}.shift-card-meta>b{font-family:Courier New,monospace;font-size:1rem}.shift-card-times{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px;display:grid}.shift-card-times div{background:#f6f8fa;border-radius:6px;gap:4px;padding:10px 12px;display:grid}.shift-card-times small{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.66rem;font-weight:800}.shift-card-times b{font-family:Courier New,monospace;font-size:1.05rem}.shift-card-roster{color:var(--muted);margin:12px 0 0;font-size:.78rem;font-weight:700}.attention-panel{padding:20px 20px 8px}.attention-panel>.panel-heading>svg{width:20px;color:var(--orange)}.attention-list{display:grid}.attention-row{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-top:1px solid #e8ebef;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 0;display:grid}.attention-row b,.attention-row small{display:block}.attention-row small{color:var(--muted);margin-top:3px;font-size:.72rem;line-height:1.35}.coverage-panel{padding:20px 22px 8px}.coverage-panel>.panel-heading>svg{width:20px;color:var(--orange)}.site-coverage{display:grid}.site-coverage-row{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-top:1px solid #e8ebef;grid-template-columns:minmax(140px,1.1fr) minmax(80px,1fr) 48px;align-items:center;gap:14px;padding:12px 0;display:grid}.site-coverage-row.active b{color:var(--orange-deep)}.site-coverage-row span:first-child{gap:3px;min-width:0;display:grid}.site-coverage-row small{color:var(--muted);font-size:.72rem}.coverage-track{background:#e7ebef;border-radius:99px;height:8px;overflow:hidden}.coverage-track i{border-radius:inherit;background:var(--green);height:100%;display:block}.duty-board{padding:18px 20px 8px}.duty-board-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.duty-board-head h2{margin:0;font-size:1.2rem}.duty-board-head h2 span{color:var(--muted);margin-left:8px;font-size:.95rem;font-weight:700}.duty-board-head input{width:min(280px,42%);height:40px}.duty-filters{flex-wrap:wrap;gap:8px;padding:14px 0 4px;display:flex}.duty-filters button{border:1px solid var(--line);color:#52606d;cursor:pointer;background:#fff;border-radius:99px;height:32px;padding:0 12px;font-size:.75rem;font-weight:700}.duty-filters button.active{background:var(--navy);border-color:var(--navy);color:#fff}.duty-list{display:grid}.duty-person{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-top:1px solid #e8ebef;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;margin:0;padding:14px 2px;display:grid}.duty-person:hover,.duty-person:focus-visible{background:#f7f9fb;outline:none}.duty-person.outside{box-shadow:inset 3px 0 0 var(--red)}.duty-person-copy b,.duty-person-copy small{display:block}.duty-person-copy b{font-size:.95rem}.duty-person-copy small{color:var(--muted);margin-top:3px;font-size:.76rem;line-height:1.35}.duty-person .duty-where{color:var(--red);font-weight:700}.ops-home .map-control-strip{grid-template-columns:minmax(0,420px)}.map-editor-hidden{display:none}.team-pulse{margin-bottom:16px;padding:18px 20px 16px}.team-pulse-stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.team-pulse-stats div{background:#f6f8fa;border-radius:6px;gap:3px;padding:12px;display:grid}.team-pulse-stats b{font-family:Courier New,monospace;font-size:1.35rem}.team-pulse-stats span{color:var(--muted);font-size:.68rem;font-weight:800}.team-pulse-stats .warn b{color:var(--amber)}.team-pulse-stats .bad b{color:var(--red)}@media (max-width:1180px){.ops-home-metrics,.team-pulse-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.ops-home-split{grid-template-columns:1fr}}@media (max-width:720px){.dash-grid{grid-template-columns:1fr}.dash-role{text-align:left;justify-items:start}.ops-home-metrics,.team-pulse-stats{grid-template-columns:1fr 1fr}.ops-home-metrics .metric-card:first-child{grid-column:auto}.ops-home-split.solo .attention-list{grid-template-columns:1fr}.site-coverage-row{grid-template-columns:minmax(0,1fr) auto}.coverage-track,.shift-card-meta{display:none}.duty-board-head{align-items:stretch;display:grid}.duty-board-head input,.team-pulse .toolbar-buttons{width:100%;margin-top:12px}}.site-map-pin-shell{background:0 0;border:0}.site-map-pin{box-sizing:border-box;color:#fff;white-space:nowrap;cursor:pointer;background:#172433;border-radius:999px;align-items:center;gap:6px;width:100%;height:28px;padding:0 10px 0 8px;font:700 12px/1 system-ui,sans-serif;display:inline-flex;box-shadow:0 2px 8px #121c2647}.site-map-pin i{background:#f26522;border-radius:50%;flex:none;width:8px;height:8px}.site-staff-sheet{width:min(92vw,420px)!important;max-width:420px!important}.site-staff-row{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;display:grid}.site-staff-row b,.site-staff-row small{display:block}.site-staff-row small{color:var(--muted);margin-top:3px;font-size:.75rem}.content-area>.history-board{flex-direction:column;height:calc(100dvh - 142px);min-height:360px;margin-top:0;display:flex;overflow:hidden}.content-area>.history-board .history-scroll{flex:1;min-height:0;overflow:auto}.history-grid thead th{z-index:2;background:#f7f8fa;box-shadow:inset 0 -1px #e6eaee}.history-grid thead th:first-child{z-index:4;background:#f7f8fa}@media (max-width:760px){.content-area>.history-board{height:calc(100dvh - 110px)}}.content-area>.workforce-admin:has(.roster-stack){flex-direction:column;min-height:calc(100dvh - 142px);display:flex}.roster-stack>.roster-builder,.roster-builder>form,.roster-pages{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.workforce-admin:has(.roster-stack) .roster-stack{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.roster-builder>form{overflow:hidden}.schedule-wrap{flex:1;min-height:320px;max-height:calc(100dvh - 220px);overflow:auto}.schedule-grid thead th{z-index:3;box-shadow:inset 0 -1px 0 var(--line);background:#f7f8fa}.schedule-grid tbody th{z-index:2;background:#fff}.schedule-grid thead th:first-child{z-index:4;background:#f7f8fa}.payroll-tab-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.payroll-review-actions{margin-left:auto}.content-area>.operations-view:has(.payroll-review) .payroll-review{flex-direction:column;min-height:360px;max-height:calc(100dvh - 180px);margin-bottom:16px;display:flex;overflow:hidden}.payroll-table-wrap{flex:1;min-height:200px;max-height:none;overflow:auto}.payroll-queue{border-collapse:separate;border-spacing:0}.payroll-queue th{z-index:2;background:#f6f8fa;position:sticky;top:0}.content-area>.operations-view:has(.payroll-review) .history-board{flex-direction:column;height:calc(100dvh - 200px);min-height:420px;margin-top:0;display:flex;overflow:hidden}.content-area>.operations-view:has(.payroll-review) .history-scroll{flex:1;min-height:0;overflow:auto}@media (max-width:760px){.content-area>.workforce-admin:has(.roster-stack){min-height:calc(100dvh - 110px)}}
