.live-status{margin:0 auto;padding:8px 24px;max-width:1440px;color:var(--text-2);font-size:18px}
.shift-legend{display:flex;gap:16px;flex-wrap:wrap}
.shift-state{display:inline-flex;align-items:center;gap:10px;font-weight:600}
.shift-state::before{content:"";width:14px;height:14px;border-radius:50%;background:currentColor;flex-shrink:0}
.shift-state--on{color:var(--success-fg)}.shift-state--off{color:var(--danger-fg)}.shift-state--break{color:var(--warning-fg)}
.analytics-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0 36px;align-items:end}
.analytics-filters label{display:grid;gap:8px;min-width:0}.analytics-filters .input,.analytics-filters .select{width:100%}
.analytics-summary dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:0 0 40px;padding:24px 0;border-block:1px solid var(--border)}
.analytics-summary dt{color:var(--text-2)}.analytics-summary dd{font-family:var(--font-mono);font-size:28px;margin:8px 0 0}
.analytics-trend{margin-block:40px}.trend-rows{max-height:360px;overflow:auto;scrollbar-color:var(--border-strong) var(--surface-0)}
.trend-row{display:grid;grid-template-columns:110px 1fr 100px;gap:16px;align-items:center;padding:8px 0;font-size:18px}
.trend-bar{height:16px;background:var(--surface-2)}.trend-bar::before{content:"";display:block;width:var(--bar);height:100%;background:var(--accent)}
.analytics-table-wrap{overflow-x:auto}.analytics-table{width:100%;border-collapse:collapse;font-size:18px}.analytics-table th,.analytics-table td{padding:16px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.analytics-table td{font-family:var(--font-mono)}
.analytics-method{margin-block:32px}.analytics-method summary{min-height:52px;padding:12px 0;cursor:pointer}.analytics-method p{max-width:75ch}
.admin-permissions{display:grid;gap:12px;border:1px solid var(--border);padding:20px}.admin-permissions legend{padding:0 8px}.admin-face{margin-top:40px}.admin-face video{max-width:100%;width:480px;background:var(--surface-2)}
.terminal .shift-time{font-size:28px;margin-bottom:12px}.terminal .exit-help{padding-block:8px;margin-bottom:8px}.terminal .receipt-time{font-size:40px;margin-block:32px}
.engineering-screen h1{margin-bottom:20px}.engineering-role-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px}.engineering-role-layout p{margin-top:16px}.engineering-role-layout form{margin-top:32px}
.engineering-pinpad{display:grid;grid-template-columns:repeat(3,minmax(88px,1fr));gap:12px;align-content:start}.engineering-employee-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));max-width:1400px}.engineering-employee-form .input{min-height:88px;font-size:28px}.engineering-enroll video{width:min(420px,100%);height:auto;aspect-ratio:7/4;object-fit:cover;background:var(--surface-2)}
/* T027: the top bar is in the flow (no 96 px reserve); narrow screens put the PIN pad under the form. */
@media(orientation:portrait),(max-width:1023px){.engineering-role-layout{grid-template-columns:minmax(0,1fr);gap:24px}}
/* T027 R01: face enrolment on a landscape point — the camera sits beside the status and its buttons, so the
   whole block fits a 1280×720 screen; portrait and small screens keep the column. */
.engineering-enroll{display:grid;gap:16px}.engineering-enroll>[data-enroll-status]{margin:0}
@media(orientation:landscape) and (min-width:1024px){.engineering-enroll:has(>video:not([hidden])){grid-template-columns:minmax(0,420px) minmax(0,1fr);grid-template-areas:"video status" "video actions";grid-template-rows:auto 1fr;align-items:start;column-gap:32px}.engineering-enroll>video{grid-area:video}.engineering-enroll>[data-enroll-status]{grid-area:status}.engineering-enroll>.terminal-actions{grid-area:actions}}
@media(orientation:landscape) and (max-height:900px){.engineering-enroll>video{width:min(360px,100%)}.engineering-enroll:has(>video:not([hidden])){grid-template-columns:minmax(0,360px) minmax(0,1fr)}.terminal .engineering-screen>h2{margin-block:0 12px}}
.analytics-filters{display:block}.analytics-primary{display:flex;gap:16px;align-items:end;max-width:600px}.analytics-primary label{flex:1}.analytics-filter-details{margin-top:16px}.analytics-filter-details summary{min-height:52px;padding:12px 0;cursor:pointer}.analytics-extra-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:12px}.check-row{min-height:52px;display:flex;align-items:center;gap:12px}.analytics-table-wrap{scrollbar-color:var(--border-strong) var(--surface-0)}
@media(max-width:600px){.analytics-filters{grid-template-columns:1fr}.analytics-summary dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.trend-row{grid-template-columns:88px 1fr 85px;gap:8px}.analytics-table th,.analytics-table td{padding:12px}.live-status{padding:8px 20px}}
@media(max-width:600px){.analytics-extra-grid{grid-template-columns:1fr}.analytics-primary{gap:12px}.analytics-primary .btn{padding-inline:16px}}
