/* Operator workspace 0.27: compact controls, clear hierarchy, restrained motion. */

body{font-size:14px;line-height:1.45}h1,h2,h3{letter-spacing:-.02em}h2{font-size:21px}h3{font-size:16px}p{line-height:1.5}.app-shell{grid-template-columns:220px minmax(0,1fr);grid-template-rows:62px minmax(0,1fr)}.sidebar{padding:16px 10px}.brand{gap:9px;padding:0 5px 14px}.brand-mark{width:34px;height:34px}.brand small{font-size:10px}.navigation-search{margin-bottom:10px}nav a,nav summary{min-height:36px;padding:7px 9px;font-size:13px}nav details a{min-height:34px;margin-left:9px;padding:7px 9px 7px 12px}.topbar{padding:10px 20px;backdrop-filter:none}.topbar h1{font-size:19px}.eyebrow{font-size:10px}.topbar .button{font-size:12px}main{padding:16px 20px 32px}.page-header{margin-bottom:14px;gap:12px}.page-header p{margin:4px 0 0}.panel{padding:16px;border-radius:10px}.button{min-height:36px;padding:7px 11px;font-size:13px;border-radius:7px;box-shadow:none;transition:background-color .14s,border-color .14s}.button.small{min-height:32px;padding:5px 9px}.button:hover{transform:none}.button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--line-strong);outline-offset:2px}input,select{min-height:36px;padding:7px 9px;font-size:14px;border-radius:7px}.toolbar{padding:12px;gap:10px}.field{min-width:0}td,th{padding:10px 12px;font-size:13px}.table-wrap{max-width:100%;overflow:auto}.table-wrap table{min-width:600px}.metric{padding:12px}.metric strong{font-size:24px}.grid{gap:12px}.actions{gap:7px}.help-text{font-size:12px}.badge{font-size:11px;padding:3px 7px}.page-loading{padding:24px}.route-page{animation:workspace-appear .15s ease-out}.overview-commandbar{position:sticky;top:62px;z-index:8;margin:-4px 0 12px;padding:10px 0;background:var(--bg);border-bottom:1px solid var(--line)}.overview-tools{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.overview-tools h2{margin:0;font-size:21px}.zone-picker{display:flex;align-items:center;gap:8px}.zone-picker select{max-width:270px;width:auto;background:white}.zone-picker select:disabled{opacity:1;color:var(--text);appearance:none;background:var(--accent-soft)}.overview-shortcuts{display:flex;flex-wrap:wrap;gap:3px;margin-left:auto}.overview-shortcuts a{min-height:32px;padding:6px 8px;font-size:12px;color:var(--accent)}.overview-pulse{display:flex;gap:18px;flex-wrap:wrap;margin-top:9px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.overview-pulse b{font-size:17px;color:var(--text);margin-right:3px}.overview-pulse a{color:inherit;text-decoration:none}.overview-payments{padding:10px 12px;margin-bottom:12px}.overview-payment-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.overview-payment-heading h3{margin:0;font-size:14px}.overview-payment-heading a{font-size:12px}.overview-payments .payment-list{max-height:145px;overflow:auto;scrollbar-gutter:stable}.overview-payments .payment-row{padding:9px 0;grid-template-columns:minmax(130px,1fr) minmax(150px,1fr) auto;gap:12px}.overview-payments .thumbnail,.overview-payments .thumbnail-placeholder{width:44px;height:32px}.overview-payments .plate{font-size:15px}.overview-payments .empty{padding:4px;text-align:left;margin:0;font-size:12px}.overview-payments .payment-row small{font-size:11px}.operations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,310px),1fr));gap:12px;align-items:start}.operation-card{padding:12px;max-width:470px;width:100%;min-width:0}.operation-card>header{padding-bottom:8px;margin-bottom:8px;gap:8px}.lane-heading{gap:7px;min-width:0}.lane-heading h3{font-size:15px;margin:0;overflow-wrap:anywhere}.lane-heading small{font-size:11px}.lane-heading .ui-icon{width:28px;height:28px;flex-basis:28px;padding:5px}.barrier-actions{display:flex;flex-wrap:wrap;margin:6px 0 9px}.barrier-actions .button{font-size:12px;padding:6px 9px;min-height:32px;flex:1 0 auto}.operation-card .live-frame-button{margin:8px 0;border-radius:7px;min-height:0}.operation-card .dashboard-live-frame{max-height:190px;height:auto;aspect-ratio:16/9;object-fit:contain;width:100%}.operation-card .operator-plate-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin:0 0 9px;padding:0;border:0;background:transparent}.operator-plate-form .field{font-size:11px}.operator-plate-form input{font-size:17px;font-weight:650;letter-spacing:.025em}.operator-plate-form>button[type=submit]{align-self:end;height:38px}.operator-plate-form small,.operator-plate-form>[data-next-operator-passage]{grid-column:1/-1}.operator-plate-hint{font-size:10px;color:var(--muted)}[data-operator-message]{font-size:11px;line-height:1.3}.device-state{font-size:10px;gap:6px;margin-bottom:8px}.device-state .badge{font-size:10px}.vehicle-summary{margin:8px 0;padding:8px;gap:8px;background:var(--panel-2);border-radius:7px}.vehicle-summary .vehicle-title{flex-wrap:wrap;gap:5px}.vehicle-summary .plate{font-size:16px}.vehicle-summary small{font-size:11px}.vehicle-summary>.thumbnail,.vehicle-summary>.thumbnail-placeholder{width:56px;height:40px;flex-basis:56px}.vehicle-summary .quick-list{margin-top:6px}.vehicle-summary .quick-list .button{min-height:28px;font-size:11px;padding:4px 7px}.recognition-decision{padding:7px 9px;font-size:11px;margin:8px 0;line-height:1.4}.recognition-decision strong{font-size:12px}.exit-session-summary{display:block;padding:8px 10px;margin:7px 0;border-radius:7px;background:var(--panel-2)}.exit-session-summary .amount-due{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0}.exit-session-summary .amount-due strong{font-size:24px;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.exit-session-summary small{font-size:11px}.exit-session-summary details summary{font-size:11px;cursor:pointer}.bill-details{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;padding-top:6px}.lane-diagnostics{margin-top:8px;padding-top:7px}.lane-diagnostics summary{font-size:11px}.operation-card .empty{min-height:0;padding:8px}.operation-card .empty strong{font-size:13px}.operation-card .empty .ui-icon{width:20px;height:20px}.lane-context{font-size:11px;padding:6px 8px}.workspace-disclosure{margin-top:12px;padding:11px}.workspace-disclosure>summary{font-size:13px}.alarm-banner{padding:7px 9px;font-size:12px}.notification-item{padding:12px;gap:10px}.notification-item p{font-size:13px}.notification-symbol{width:32px;height:32px}.analytics-filters{display:flex;flex-wrap:wrap;align-items:end}.analytics-filters .field{flex:1 1 150px}.analytics-filters input,.analytics-filters select{width:100%}.analytics-presets{display:flex;gap:8px;flex-basis:100%}.analytics-presets button{border:0;border-radius:6px;background:var(--accent-soft);padding:5px 10px;color:var(--accent);cursor:pointer}.analytics-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.analytics-summary article{padding:12px 14px;background:white;border:1px solid var(--line);border-radius:9px;min-width:0}.analytics-summary span{display:block;font-size:12px;color:var(--muted)}.analytics-summary strong{display:block;font-size:22px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.analytics-caption{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px;margin-bottom:14px;color:var(--muted)}.analytics-charts{display:grid;grid-template-columns:1fr 1fr;gap:12px}.analytics-bars{max-height:300px;overflow:auto}.analytics-bar-row{display:grid;grid-template-columns:42px minmax(30px,1fr) 95px;gap:9px;align-items:center;margin:8px 0;font-size:11px}.analytics-bar-row>b{text-align:right;font-variant-numeric:tabular-nums}.analytics-track{background:var(--accent-soft);height:11px;border-radius:3px;overflow:hidden}.analytics-track>span{display:block;background:var(--accent);height:100%;border-radius:3px}.analytics-track>.negative{background:var(--danger)}.traffic-heatmap{overflow:auto;padding-bottom:7px}.heatmap-row{display:grid;grid-template-columns:28px repeat(24,minmax(26px,1fr));gap:3px;min-width:760px;font-size:10px;margin:3px 0;text-align:center}.heatmap-cell{background:color-mix(in srgb,var(--accent) calc(var(--heat)*80%),var(--accent-soft));color:var(--text);border-radius:3px;padding:7px 1px;cursor:help}.heatmap-cell.no-data{background:var(--panel-2);color:var(--muted)}.heatmap-cell:focus{outline:2px solid var(--line-strong)}.analytics-charts+.panel{margin-top:12px}
@keyframes workspace-appear{from{opacity:.7;transform:translateY(3px)}to{opacity:1;transform:none}}
@media(min-width:1500px){.operations-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}}
@media(max-width:1100px){.app-shell{grid-template-columns:195px minmax(0,1fr)}main{padding:12px}.topbar{padding:10px 12px}.overview-shortcuts{margin-left:0}.analytics-summary strong{font-size:18px}.overview-payments .payment-row{grid-template-columns:1fr 1fr}.overview-payments .payment-row>.actions{grid-column:1/-1}.analytics-charts{grid-template-columns:1fr}}
@media(max-width:900px){.app-shell{grid-template-columns:1fr;grid-template-rows:60px minmax(0,1fr)}.sidebar{width:240px}.topbar{grid-column:1;min-height:60px}.topbar h1{font-size:17px}main{grid-column:1}.overview-commandbar{top:60px}.overview-tools{gap:10px}.overview-shortcuts{gap:0}.overview-pulse{gap:10px}.analytics-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.operation-card{max-width:none}}
@media(max-width:480px){main{padding:10px}.overview-commandbar{position:static}.overview-tools h2{display:none}.zone-picker select{max-width:245px}.overview-pulse{font-size:11px}.overview-pulse b{font-size:15px}.button,.barrier-actions .button{min-height:40px}.operations-grid{grid-template-columns:minmax(0,1fr)}.analytics-filters .field{flex-basis:100%}.overview-payments .payment-list{max-height:150px}.analytics-summary strong{font-size:19px}.topbar-actions{gap:3px}.topbar-actions .button{padding:6px 8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
[hidden]{display:none!important}

.topbar{min-height:62px}.brand-mark{flex-basis:34px}.refresh-button{min-width:110px}.operation-card .operator-plate-form input{min-height:38px}.operator-plate-hint a{white-space:nowrap}.analytics-charts .panel{margin:0}.heatmap-cell{background:color-mix(in srgb,var(--accent) calc(var(--heat)*80%),var(--accent-soft))}
@media(max-width:900px){.topbar{min-height:60px}.refresh-button{min-width:0}.sidebar{grid-column:1;grid-row:1/-1}}

.overview-sensors {border-top:1px solid var(--border);padding-top:8px}.overview-sensors summary{font-size:12px;cursor:pointer;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.overview-sensors summary b{margin-right:auto}.overview-sensors .sensor-chip{border-radius:5px;padding:3px 5px;background:var(--panel-2)}.overview-sensors .sensor-chip.active{background:var(--accent-soft);color:var(--accent)}.overview-sensors .sensor-chip.stale{background:var(--warning-soft);color:var(--warning)}.overview-sensors[open]>.sensor-panel{margin-top:8px}

.current-vehicle-line{display:flex;gap:8px;justify-content:space-between;align-items:center;font-size:11px;margin-bottom:8px}.current-vehicle-line strong{font-size:18px;letter-spacing:.03em}.current-vehicle-line span{color:var(--muted)}.operation-card .barrier-actions .button{flex:1 1 0;min-width:0}.operation-card .barrier-actions .button[data-recognition] .ui-icon{display:none}.operation-card .barrier-actions .button{white-space:nowrap}.operation-card .barrier-actions .button[data-recognition]{font-size:11px}

.lane-vehicle-details{margin-top:8px}.lane-vehicle-details>summary{font-size:12px;cursor:pointer}.operation-card .dashboard-live-frame{max-height:160px}.operation-card .operator-plate-form{margin-top:8px}.overview-sensors{border-color:var(--line)}

.money-heatmap .heatmap-row{grid-template-columns:28px repeat(24,minmax(80px,1fr));min-width:2050px}

/* 0.27.6: current visits stay above stable operator controls. */
.overview-commandbar{margin-bottom:16px;padding-bottom:12px}.overview-tools{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.overview-tools h2{margin:0}.overview-shortcuts{display:flex;align-items:center;gap:16px;margin-left:auto;font-size:13px}.overview-shortcuts a{color:var(--muted,var(--muted));text-decoration:none}.overview-live-header{display:grid;grid-template-columns:minmax(200px,.65fr) minmax(0,2fr);gap:14px;margin-bottom:18px}.overview-capacity{display:grid;gap:12px}.capacity-card,.live-lane-summary{border:1px solid var(--border,var(--line));border-radius:16px;background:var(--panel,var(--panel));padding:18px;min-width:0}.capacity-card>span{display:flex;align-items:center;gap:8px;color:var(--muted,var(--muted));font-size:13px}.capacity-card>div:not(.capacity-meter){display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin:10px 0}.capacity-card strong{font-size:34px;line-height:1.2;white-space:nowrap}.capacity-card small{font-size:22px;font-weight:500;color:var(--muted,var(--muted))}.capacity-card b{font-size:12px;font-weight:500}.capacity-card footer{display:flex;gap:8px;flex-wrap:wrap;font-size:12px}.capacity-card footer a{color:var(--danger)}.capacity-meter{height:5px;border-radius:8px;background:var(--accent-soft);margin-top:14px;overflow:hidden}.capacity-meter i{display:block;height:100%;background:var(--accent)}.over-capacity .capacity-meter i{background:var(--warning)}.live-lane-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:14px}.live-lane-summary header{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px}.live-lane-summary header>span{display:flex;align-items:center;gap:7px;min-width:0}.live-status{font-size:12px;padding:5px 8px;border-radius:8px;font-weight:600;white-space:nowrap;background:var(--success-soft);color:var(--success)}.live-status.idle,.is-unknown .live-status{color:var(--muted);background:var(--accent-soft)}.live-status.debt{background:var(--warning-soft);color:var(--warning)}.live-summary-main{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 10px;min-height:33px}.live-summary-main>strong{font-size:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-due{font-size:17px;white-space:nowrap}.live-summary-meta{display:grid;gap:5px;color:var(--muted,var(--muted));font-size:12px;line-height:1.5}.live-summary-meta span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.has-debt{border-color:var(--line-strong)}.operations-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:16px}.operation-card.live-operation-card{height:auto;min-height:0;max-height:none;max-width:none;display:flex;flex-direction:column;gap:8px;padding:14px;overflow:visible}.live-operation-card>header{margin:0;padding:0 0 6px;display:flex;align-items:center;justify-content:space-between;gap:10px}.lane-heading{display:flex;align-items:center;gap:10px;min-width:0}.lane-heading>.ui-icon{width:34px;height:34px;padding:7px;border-radius:10px;background:var(--accent-soft);color:var(--accent)}.lane-heading h3{margin:0;font-size:16px}.lane-heading small{color:var(--muted,var(--muted));font-size:12px}.live-operation-card .barrier-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0;padding:0;border:0}.live-operation-card .barrier-actions .button{font-size:16px;display:flex;justify-content:center;gap:10px;border-radius:12px;min-height:48px}.gate-open{background:var(--success);color:var(--on-accent);border:1px solid var(--line-strong);box-shadow:0 3px 8px var(--overlay)}.gate-open:hover{background:var(--success)}.gate-close{background:var(--danger-soft);color:var(--danger);border:1px solid var(--line)}.gate-close:hover{background:var(--danger-soft)}.barrier-hold-actions{display:flex;align-content:flex-start;align-items:center;flex-wrap:wrap;gap:5px 8px;min-width:0}.barrier-hold-actions .button{padding:6px 8px;font-size:11px;min-height:27px}.barrier-hold-actions .ui-icon{width:14px;height:14px}.hold-state{font-size:11px;color:var(--muted,var(--muted))}.hold-state.active{color:var(--warning)}.zone-sensors{display:flex;align-items:center;gap:22px;height:32px}.zone-sensor{display:flex;align-items:center;gap:8px;font-size:13px}.zone-sensor small{font-size:11px;color:var(--muted,var(--muted))}.zone-sensor i{display:inline-block;width:12px;height:12px;background:var(--panel-2);border-radius:50%;flex:none}.zone-sensor.active i{background:var(--success);box-shadow:0 0 0 4px var(--overlay)}.live-operation-card .operator-plate-form{margin:0;align-content:start;gap:5px 10px;min-height:0;overflow:visible}.live-operation-card .operator-plate-form input{height:38px;font-size:18px;letter-spacing:.06em}.live-operation-card .operator-plate-form .field{gap:4px;font-size:11px}.live-operation-card .operator-plate-form>[type=submit]{align-self:end;height:38px}.live-operation-card .operator-plate-hint,.live-operation-card [data-operator-message]{font-size:11px;line-height:1.4;max-height:none;overflow-wrap:anywhere}.live-operation-card .live-frame-button{width:100%;height:192px;flex:none;min-height:0;border-radius:12px;overflow:hidden;margin:0;background:var(--camera-bg)}.live-operation-card .dashboard-live-frame{width:100%;height:100%;min-height:0;object-fit:contain;aspect-ratio:auto}.lane-vehicle-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 8px}.lane-vehicle-actions .button{justify-content:center;font-size:11px;padding:5px 6px;min-height:28px;white-space:nowrap}.lane-vehicle-actions .ui-icon{width:14px;height:14px}.lane-health{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted,var(--muted));border-top:1px solid var(--border,var(--line));padding-top:8px}.lane-health.has-error{color:var(--warning)}.lane-health a{color:inherit}.live-operation-card [hidden],.live-lane-grid>[hidden]{display:none!important}.service-operations{margin-top:20px}.service-operations p{color:var(--muted,var(--muted));max-width:750px}
@media(max-width:1000px){.overview-live-header{grid-template-columns:1fr}.overview-capacity{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.capacity-card{padding:14px 18px}.capacity-card>div:not(.capacity-meter){margin:5px 0}.capacity-card strong{font-size:28px}.overview-shortcuts{margin-left:0}.live-operation-card .barrier-hold-actions .button{font-size:10px}}
@media(max-width:480px){.overview-tools{gap:10px}.overview-shortcuts{gap:10px;flex-wrap:wrap}.operation-card.live-operation-card{padding:12px}.live-summary-main>strong{font-size:22px}.zone-sensors{gap:14px}.live-operation-card .operator-plate-form{grid-template-columns:minmax(0,1fr) auto}.live-operation-card .operator-plate-form>.field{grid-column:auto}.live-operation-card .operator-plate-form>[type=submit]{grid-column:auto}.live-operation-card .barrier-actions .button{font-size:15px}.live-lane-summary{padding:15px}}

.live-operation-card .barrier-actions .button{margin:0;box-sizing:border-box;height:48px;grid-column:auto}.live-operation-card .barrier-hold-actions{padding-top:0}.live-operation-card .dashboard-live-frame{max-height:none}

.live-restriction{font-size:11px;color:var(--warning);line-height:1.4;margin:8px 0 0;max-height:32px;overflow:hidden}

.manual-gate-dialog { width: min(520px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); box-sizing: border-box; padding: 24px; border: 1px solid var(--line); border-radius: 16px; color: var(--text); background: var(--panel); overflow-y: auto; }
.manual-gate-dialog::backdrop { background: var(--camera-bg); }
.session-correction-dialog { width:min(720px,calc(100vw - 24px)); }
.session-correction-dialog .dialog-header { align-items:flex-start; }
.session-correction-dialog .dialog-header small { display:block; margin-top:6px; color:var(--muted); line-height:1.5; }
.correction-identity { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
.correction-identity .plate { font-size:22px; }
.correction-identity>span { color:var(--muted); font-size:13px; }
.correction-current,.correction-date-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.correction-current { background:var(--panel-2); padding:16px; border:1px solid var(--line); border-radius:12px; }
.correction-current span,.correction-comparison span,.correction-comparison small { display:block; color:var(--muted); font-size:12px; line-height:1.5; }
.correction-current strong { display:block; margin-top:6px; font-size:17px; font-variant-numeric:tabular-nums; }
.correction-tabs { display:flex; gap:8px; }
.correction-tabs .button { flex:1; }
.correction-tabs .button[aria-selected=true] { border-color:var(--accent); color:var(--accent); background:var(--accent-soft); box-shadow:inset 0 -2px var(--accent); }
.correction-components summary { cursor:pointer; font-size:13px; color:var(--muted); }
.correction-components .lane-quote-details { margin:12px 0; }
.session-correction-dialog form { gap:14px; }
.session-correction-dialog [data-correction-fields] { display:grid; gap:14px; }
.session-correction-dialog [hidden] { display:none!important; }
.session-correction-dialog input[type=datetime-local] { width:100%; min-width:0; box-sizing:border-box; }
.correction-preview { padding:16px; border:1px solid var(--line-strong); border-radius:12px; background:var(--panel-2); }
.correction-preview h4 { margin:0 0 14px; }
.correction-preview p { margin-top:14px; font-size:12px; }
.correction-comparison { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:12px; align-items:center; }
.correction-comparison strong { display:block; margin:5px 0; font-size:24px; font-variant-numeric:tabular-nums; }
.correction-history { border-top:1px solid var(--line); padding-top:12px; }
.correction-history summary { cursor:pointer; font-weight:600; }
.correction-history ol { list-style:none; margin:12px 0 0; padding:0; display:grid; gap:12px; }
.correction-history li { padding:12px; background:var(--panel-2); border-radius:8px; overflow-wrap:anywhere; }
.correction-history small { display:block; color:var(--muted); line-height:1.5; }
.correction-history li p { margin:6px 0; }
.correction-actions { display:grid; grid-template-columns:auto minmax(0,1fr) minmax(0,1fr); gap:8px; }
.correction-actions .button { min-width:0; white-space:normal; }
@media(max-width:600px) {
  .correction-current,.correction-date-grid { grid-template-columns:1fr; gap:12px; }
  .correction-tabs .button { font-size:12px; padding:10px 6px; }
  .correction-comparison { gap:8px; }
  .correction-comparison strong { font-size:20px; }
  .correction-actions { grid-template-columns:1fr; }
}
.manual-gate-dialog form { display: grid; gap: 18px; }
.manual-gate-dialog h3 { display: flex; gap: 10px; align-items: center; margin: 0; }
.manual-gate-dialog p { margin: 0; color: var(--muted); line-height: 1.5; }
.manual-gate-dialog textarea { width: 100%; box-sizing: border-box; resize: vertical; font-size: 16px; }
.manual-gate-dialog .checkbox { display: flex; gap: 10px; align-items: flex-start; line-height: 1.5; }
.manual-gate-dialog .checkbox input { flex: 0 0 auto; width: 18px; height: 18px; }
.recognition-explanation { margin: 6px 0; white-space: normal; }
.recognition-detail { margin-top: 8px; max-width: 38rem; white-space: normal; overflow-wrap: anywhere; }
.recognition-detail summary { cursor: pointer; color: var(--accent); }
.recognition-detail p { margin: 8px 0; line-height: 1.5; }
@media (max-width: 680px) {
  .table-wrap table.passages-table, .passages-table tbody { display: block; min-width: 0; width: 100%; }
  .passages-table thead { display: none; }
  .passages-table tr { display: block; margin-bottom: 16px; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
  .passages-table td { display: block; min-width: 0; width: auto; padding: 10px 14px; white-space: normal; overflow-wrap: anywhere; }
  .passages-table td[data-label]::before { content: attr(data-label); display: block; font-size: 12px; color: var(--muted); margin-bottom: 4px; }
  .passages-table .plate { font-size: 20px; }
  .passages-table .actions { flex-wrap: wrap; }
  .manual-gate-dialog { padding: 18px; }
  .manual-gate-dialog .actions { display: grid; grid-template-columns: 1fr; }
}

/* Overview: compact summaries and content-sized controls; keep errors readable. */
.overview-commandbar{margin-bottom:10px;padding:6px 0}
.overview-live-header{gap:10px;margin-bottom:12px;align-items:start}
.live-lane-grid{gap:10px;align-items:start}
.capacity-card,.live-lane-summary{padding:12px;border-radius:10px}
.capacity-card>div:not(.capacity-meter){margin:4px 0;gap:4px 8px}
.capacity-card strong{font-size:25px}.capacity-card small{font-size:17px}
.capacity-meter{margin-top:8px;height:4px}
.live-summary-main{margin:8px 0 6px;min-height:0}
.live-summary-main>strong{font-size:20px}.live-summary-meta{gap:3px;font-size:11px}
.live-lane-summary.is-idle{padding:12px}
.live-lane-summary [hidden]{display:none!important}
.live-operation-card .barrier-actions .button{min-height:44px;font-size:15px}
.live-operation-card .barrier-hold-actions{align-content:start}
.live-operation-card .operator-plate-form>[data-rearm-operator-passage]{grid-column:1/-1}
.live-operation-card .operator-plate-hint{margin:0}
.live-operation-card .lane-health{flex-wrap:wrap;overflow-wrap:anywhere}
.live-operation-card .lane-health>span{min-width:0;flex:1 1 160px}
@media(max-width:480px){
  .overview-live-header{gap:8px}.live-lane-grid{gap:8px}
  .capacity-card{padding:10px 12px}.capacity-card>span{font-size:12px}
  .live-summary-main>strong{font-size:20px}
  .live-operation-card .live-frame-button{height:180px}
}

/* One plate input: physical action and quote share the row on wide cards. */
.overview-live-header { grid-template-columns:1fr; }
.overview-capacity { display:flex; flex-wrap:wrap; gap:10px; }
.overview-capacity .capacity-card { flex:1 1 240px; }
.overview-tools .overview-capacity { flex:1 1 auto; }
.overview-tools .capacity-card { position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2px 8px; flex:0 0 280px; box-sizing:border-box; padding:6px 10px 10px; }
.overview-tools .capacity-card > span { font-size:11px; }
.overview-tools .capacity-card > div:not(.capacity-meter) { margin:0; gap:4px; }
.overview-tools .capacity-card strong { font-size:20px; }
.overview-tools .capacity-card small { font-size:13px; }
.overview-tools .capacity-card b { display:none; }
.overview-tools .capacity-card footer { grid-column:1/-1; font-size:10px; }
.overview-tools .capacity-meter { position:absolute; bottom:3px; left:10px; right:10px; margin:0; height:3px; }
.route-page:has(.live-operation-card) { animation:none; }
.operation-card.live-operation-card { gap:5px; }
.lane-camera-stage { position:relative; min-width:0; }
.live-summary-billing { display:flex; align-items:center; gap:6px; flex-shrink:0; }
.exit-amount { display:inline-flex; align-items:center; padding:3px 7px; border-radius:6px; background:var(--panel-2); color:var(--muted); white-space:nowrap; }
.exit-amount.has-debt { background:var(--danger-soft); color:var(--danger); }
.exit-amount.is-clear { background:var(--success-soft); color:var(--success); }
.exit-amount strong { font-size:15px; line-height:20px; font-variant-numeric:tabular-nums; }
.live-operation-card .live-lane-summary { box-sizing:border-box; height:72px; overflow:auto; margin:0; padding:6px 10px; border-radius:8px; }
.live-operation-card .live-lane-summary .live-summary-main { min-height:26px; margin:4px 0; }
.live-operation-card .live-lane-summary .live-summary-meta { min-height:31px; gap:1px; line-height:1.35; }
.live-operation-card .live-lane-summary > header { padding:0; margin:0; border:0; height:26px; min-height:26px; }
.live-operation-card .live-lane-summary > header > span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.operator-recovery-actions { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
.operator-recovery-actions .button { width:100%; min-height:36px; padding:5px 7px; white-space:normal; font-size:11px; line-height:1.25; }
.operator-recovery-actions [data-next-operator-passage] { grid-column:auto; justify-self:stretch; }
.live-operation-card [data-operator-message] { height:32px; overflow:auto; }
.live-operation-card .operator-plate-hint { height:2em; overflow:auto; }
.live-operation-card .barrier-hold-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.live-operation-card .barrier-hold-actions .button { width:100%; min-height:36px; white-space:normal; line-height:1.2; }
.live-operation-card .hold-state { grid-column:1/-1; min-height:1.5em; }
.live-operation-card .lane-health { min-height:32px; }
.lane-vehicle-actions .lane-manual-close { grid-column:1/-1; }
.live-operation-card .lane-vehicle-actions { grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr); }
.live-operation-card .lane-vehicle-actions .lane-manual-close { grid-column:3; grid-row:1/span 2; white-space:normal; }
.session-close-options { display:grid; gap:8px; border:1px solid var(--line); border-radius:8px; padding:12px; }
.session-close-options > label { display:flex; align-items:flex-start; gap:10px; padding:8px; border-radius:6px; background:var(--panel-2,var(--panel)); }
.session-close-options input { flex:0 0 auto; width:18px; height:18px; margin:2px 0 0; }
.session-close-options small { display:block; margin-top:3px; color:var(--muted); }
.lane-test-controls { border-top:1px solid var(--line); padding-top:8px; font-size:12px; }
.lane-test-controls > summary { cursor:pointer; color:var(--muted); }
.lane-test-controls p { color:var(--muted); font-size:11px; margin:8px 0; }
.lane-test-controls .button { width:100%; }
.operation-card.live-operation-card .operator-plate-form > [data-recognition-action] { width:128px; min-width:128px; overflow:hidden; white-space:nowrap; }
.operation-card.live-operation-card .operator-plate-form { grid-template-columns:minmax(0,1fr) auto 38px; }
.operation-card.live-operation-card .operator-plate-form > .lane-accounting-action { grid-column:1/-1; }
.operation-card.live-operation-card .operator-plate-form .lane-quote-button { width:38px; height:38px; padding:8px; }
@media(max-width:480px) {
  .operation-card.live-operation-card .operator-plate-form { grid-template-columns:minmax(0,1fr) 38px; }
  .operation-card.live-operation-card .operator-plate-form > .field { grid-column:1/-1; }
  .operation-card.live-operation-card .operator-plate-form > [type=submit] { width:100%; }
  .operation-card.live-operation-card .operator-plate-form > [data-recognition-action] { min-width:0; }
}

@media(max-width:480px) {
  .live-operation-card .lane-vehicle-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .live-operation-card .lane-vehicle-actions .lane-manual-close { grid-column:1/-1; grid-row:3; min-height:36px; }
}

/* Feedback text reserves space while the controller changes state. */
.live-operation-card > header { box-sizing:border-box; height:68px; min-height:68px; overflow:auto; flex-shrink:0; }
@media(max-width:480px) {
  .live-operation-card > header { height:104px; min-height:104px; }
}

.live-operation-card .live-lane-summary .live-status { font-size:11px; line-height:20px; padding:3px 6px; }

/* Explicit dispatcher layouts preserve usable controls on smaller monitors. */
.overview-layout-picker { min-width:140px; }
.overview-lanes-scroll { overflow-x:auto; max-width:100%; padding-bottom:8px; }
.overview-lanes-scroll > .operations-grid {
  display:grid; grid-template-columns:repeat(var(--overview-columns,2),minmax(0,1fr));
  gap:12px; min-width:calc(var(--overview-columns,2) * 360px + (var(--overview-columns,2) - 1) * 12px);
  max-width:none;
}
.overview-lanes-scroll .operation-card { min-width:0; container-type:inline-size; container-name:lane; }
.overview-capacity { margin-top:10px; }
.overview-capacity .capacity-card { flex:0 1 280px; }
.overview-tools > .overview-capacity { margin-top:0; flex:1 1 600px; min-width:0; }
.overview-tools > .overview-capacity.single-capacity { flex:0 1 280px; }
.overview-capacity .capacity-card.territory-capacity { flex:0 1 250px; border-left:3px solid var(--accent); }
.dashboard-live-frame:not([src]):not([data-live-src]) { visibility:hidden; }
.capacity-discrepancy { flex-basis:100%; margin:0; color:var(--warning); font-size:12px; }
.zone-setup-status { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:start; }
.zone-setup-status .wide { grid-column:1/-1; }
.zone-setup-status p { margin:5px 0; color:var(--muted); }
.zone-routes-table select { min-width:145px; width:100%; }
@container lane (max-width:380px) {
  .live-operation-card > header { height:100px; min-height:100px; flex-wrap:wrap; align-content:start; gap:4px; }
  .live-operation-card > header .barrier-state { width:100%; text-align:left; }
  .live-operation-card .lane-vehicle-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .live-operation-card .lane-vehicle-actions .lane-manual-close { grid-column:1/-1; grid-row:3; min-height:34px; }
  .live-operation-card .barrier-hold-actions .button { overflow-wrap:normal; word-break:normal; }
}
@media(max-width:640px) {
  .overview-lanes-scroll > .operations-grid { min-width:0; grid-template-columns:minmax(0,1fr); }
  .zone-setup-status { grid-template-columns:minmax(0,1fr); }
  .zone-setup-status > button { width:100%; }
}

.operator-audit-summary { display:flex; flex-wrap:wrap; gap:8px 18px; padding:12px 0; }
.operator-audit-table { min-width:950px; }
.operator-audit-table td { vertical-align:top; overflow-wrap:anywhere; max-width:320px; }

/* Parking analytics: semantic theme colours, stable panels and bounded tables. */
.parking-analytics{max-width:1920px;margin-inline:auto;min-width:0;--pa-teal:#168777;--pa-orange:#bb761b}
:root[data-theme=dark] .parking-analytics{--pa-teal:#44c3aa;--pa-orange:#e7ad57}
.pa-page-header{margin-bottom:18px}.pa-eyebrow{font-size:10px;font-weight:700;letter-spacing:.12em;color:var(--muted)}.pa-page-header h2{font-size:27px;letter-spacing:-.025em;margin:4px 0 7px}.pa-page-header p,.pa-section-heading p,.pa-report-heading p{font-size:12px;color:var(--muted);margin:5px 0 0;line-height:1.5}
.pa-filters{display:block;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px}.pa-filter-primary{display:grid;grid-template-columns:minmax(145px,1.1fr) minmax(140px,1fr) minmax(185px,1fr) minmax(185px,1fr) auto;gap:12px;align-items:end}.pa-filter-primary .field{min-width:0}.pa-filter-secondary{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-top:14px}.parking-analytics .analytics-presets{display:flex;flex-basis:auto;flex-wrap:wrap;gap:5px}.parking-analytics .analytics-presets button{min-height:31px;border:1px solid transparent;background:var(--panel-2);color:var(--muted);border-radius:6px;padding:5px 10px;font-size:12px}.parking-analytics .analytics-presets button:hover,.parking-analytics .analytics-presets button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:var(--line)}
.pa-filter-settings{flex:0 1 250px;text-align:right}.pa-filter-settings>summary{cursor:pointer;color:var(--muted);font-size:12px;padding:7px 0;white-space:nowrap}.pa-filter-settings>div{display:grid;gap:10px;text-align:left;padding-top:8px}.pa-report-status{min-height:19px;margin:9px 0 18px;font-size:11px}.pa-report-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:16px 0}.pa-report-heading h3{font-size:22px;margin:4px 0 0;letter-spacing:-.02em}.pa-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin:0 0 18px;overflow-x:auto}.pa-tabs button{flex-shrink:0;background:transparent;border:0;border-bottom:2px solid transparent;padding:12px 15px;color:var(--muted);font-weight:600;font-size:13px;cursor:pointer}.pa-tabs button[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent)}.pa-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}
.parking-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.pa-metric{min-width:0;padding:17px 18px;background:var(--panel);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;justify-content:space-between;gap:9px}.pa-metric>span{font-size:12px;color:var(--muted);line-height:1.4}.pa-metric>strong{font-size:27px;line-height:1.15;font-weight:650;letter-spacing:-.035em;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.pa-metric>small{font-size:11px;color:var(--muted);line-height:1.5}.pa-metric.pa-money>strong{color:var(--pa-teal)}.parking-analytics .panel{margin:0 0 16px;border-radius:11px;padding:20px;min-width:0}.parking-analytics .panel h3{font-size:15px;font-weight:650;margin:0 0 8px}.pa-section-heading{display:flex;align-items:start;justify-content:space-between;gap:15px;margin-bottom:18px}.pa-section-heading h3{margin-bottom:0!important}.pa-section-value{font-size:25px;letter-spacing:-.025em;font-variant-numeric:tabular-nums;white-space:nowrap}.pa-chart-controls{display:flex;gap:10px}.pa-chart-controls .field{min-width:125px}.pa-chart-controls select{width:100%}.pa-chart-legend{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:9px;font-size:11px;color:var(--muted)}.pa-chart-legend span{display:flex;gap:7px;align-items:center}.pa-chart-legend i{width:18px;height:3px;background:currentColor;border-radius:2px}.pa-series-0{color:var(--accent);stroke:var(--accent)}.pa-series-1{color:var(--pa-teal);stroke:var(--pa-teal)}.pa-trend-svg{display:block;width:100%;height:auto;min-height:150px;max-height:340px;overflow:visible}.pa-trend-svg text{fill:var(--muted);font-size:11px;font-family:inherit}.pa-chart-grid{stroke:var(--line);stroke-dasharray:3 4;stroke-width:1}.pa-chart-line{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.pa-chart-dot{fill:currentColor}.pa-chart-cursor{stroke:var(--muted);stroke-dasharray:3 4;stroke-width:1}.pa-trend-svg [data-chart-point]:focus-visible{outline:none;fill:var(--accent-soft);fill-opacity:.25}.pa-chart-caption{min-height:36px;padding-top:12px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);line-height:1.6;font-variant-numeric:tabular-nums}
.pa-two-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.pa-session-split{display:flex;height:12px;background:var(--panel-2);border-radius:4px;overflow:hidden;margin-top:20px}.pa-session-split>span{background:var(--accent)}.pa-session-split>i{background:var(--pa-orange)}.pa-split-legend{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px;margin:14px 0 18px}.pa-split-legend>span{display:flex;align-items:center;gap:7px}.pa-split-legend i{display:inline-block;width:8px;height:8px;border-radius:2px}.pa-closed-dot{background:var(--accent)}.pa-open-dot{background:var(--pa-orange)}.pa-facts{margin:0}.pa-facts>div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-top:1px solid var(--line);font-size:12px}.pa-facts dt{color:var(--muted)}.pa-facts dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}.pa-distribution{display:grid;gap:15px;margin:22px 0}.pa-distribution-row{display:grid;grid-template-columns:minmax(100px,.9fr) minmax(30px,1fr) auto;gap:12px;align-items:center;font-size:12px;min-width:0}.pa-distribution-row>span{color:var(--muted);overflow-wrap:anywhere}.pa-distribution-row>b{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.pa-track{height:8px;background:var(--panel-2);border-radius:3px;overflow:hidden}.pa-track i{display:block;height:100%;background:var(--accent);border-radius:3px}.pa-inline-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.pa-inline-metrics .pa-metric{border:0;background:var(--panel-2);padding:14px}.pa-inline-metrics strong{font-size:22px}.pa-manual-kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.pa-manual-kpis .pa-metric{border:1px solid var(--line);background:var(--panel)}.pa-channel-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.pa-channel-cards .pa-metric{background:var(--panel-2)}.pa-channel-cards strong{font-size:23px}.parking-analytics .analytics-summary article{background:var(--panel);border-radius:10px}.parking-analytics .table-wrap{max-width:100%;min-width:0}.parking-analytics table{font-size:12px;min-width:650px}.parking-analytics th{font-size:11px;white-space:normal;line-height:1.5}.parking-analytics td{font-variant-numeric:tabular-nums}.parking-analytics .pa-methodology{font-size:12px;line-height:1.75;color:var(--muted)}.pa-methodology summary{color:var(--text)}.pa-cell-detail{display:block;color:var(--muted);font-size:11px;margin-top:5px;line-height:1.5}.pa-reason{max-width:280px;overflow-wrap:anywhere;white-space:normal!important}.pa-user-button{padding:0;border:0;background:transparent;color:var(--accent);font:inherit;font-weight:600;text-align:left;cursor:pointer;overflow-wrap:anywhere}.pa-user-button:hover{text-decoration:underline}.pa-empty{color:var(--muted);padding:20px 0;font-size:13px}.parking-analytics [hidden]{display:none!important}.parking-analytics .notice-panel{font-size:12px;line-height:1.65;margin-bottom:16px}
@media(min-width:1500px){.parking-analytics .pa-trend-svg{max-height:360px}.pa-metric>strong{font-size:30px}}
@media(max-width:1200px){.pa-filter-primary{grid-template-columns:repeat(2,minmax(0,1fr)) auto}.pa-filter-primary>.field:nth-child(2){grid-column:2}.pa-filter-primary>.field:nth-child(3){grid-column:1}.pa-filter-primary>.button{grid-column:3;grid-row:2}.pa-filter-primary>.field:nth-child(4){grid-column:2}.pa-chart-controls{flex-wrap:wrap}.pa-metric{padding:14px}.pa-metric>strong{font-size:24px}.pa-two-columns{grid-template-columns:minmax(0,1fr)}.pa-manual-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.parking-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.pa-filter-primary{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.pa-filter-primary>.button{grid-column:1/-1;grid-row:auto}.pa-filter-secondary{flex-direction:column}.pa-filter-settings{flex:1;width:100%;text-align:left}.pa-filter-settings>div{grid-template-columns:minmax(0,1fr)}.pa-tabs button{font-size:12px;padding:11px 10px}.pa-report-heading{align-items:start;flex-direction:column}.pa-report-heading>.button{align-self:stretch}.pa-section-heading{flex-wrap:wrap}.parking-analytics .panel{padding:15px}.pa-chart-controls{width:100%;display:grid;grid-template-columns:1fr 1fr}.pa-chart-controls .field{min-width:0}.pa-channel-cards{grid-template-columns:minmax(0,1fr)}.pa-metric>strong{font-size:23px}.pa-metric>span{font-size:11px}.pa-metric>small{font-size:10px}.pa-inline-metrics:not(.pa-manual-kpis){grid-template-columns:minmax(0,1fr)}.pa-distribution-row{grid-template-columns:minmax(85px,.8fr) minmax(20px,1fr) auto;gap:7px;font-size:11px}.pa-page-header h2{font-size:23px}.pa-trend-svg{min-height:160px}.pa-manual-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.parking-analytics *{scroll-behavior:auto!important;transition:none!important}}
/* Keep the 7x24 heatmap compact; narrow screens scroll inside this panel. */
.parking-analytics .traffic-heatmap{overflow:auto;container-type:normal;max-width:100%;padding-bottom:8px}
.parking-analytics .traffic-heatmap .heatmap-row{min-width:850px;grid-template-columns:32px repeat(24,minmax(28px,1fr));gap:4px;margin:4px 0}
.parking-analytics .traffic-heatmap .heatmap-row:first-child{display:grid}
.parking-analytics .traffic-heatmap .heatmap-row>b{grid-column:auto;text-align:left;align-self:center}
.parking-analytics .traffic-heatmap .heatmap-cell{padding:10px 2px;min-height:32px}
.parking-analytics .traffic-heatmap .heatmap-cell::before{display:none}
.parking-analytics .money-heatmap .heatmap-row{min-width:1850px;grid-template-columns:32px repeat(24,minmax(70px,1fr))}

/* Compact editing inside the existing overview wallet. */
.lane-session-dialog [hidden]{display:none!important}
.lane-session-dialog .wallet-due-row{align-items:center;border-top:1px solid var(--line);padding-top:12px}
.wallet-due-value,[data-wallet-amount-display]{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-height:36px}
.wallet-due-value strong{font-size:22px;font-variant-numeric:tabular-nums}
.wallet-edit,.wallet-save{color:var(--accent);background:var(--accent-soft);border:1px solid var(--line)}
.wallet-correction{display:grid;gap:10px;min-width:0}
.wallet-correction [data-wallet-fields]{display:grid;gap:12px;padding:14px;background:var(--panel-2);border:1px solid var(--line);border-radius:10px}
.wallet-amount-input{display:flex;align-items:flex-end;gap:8px}
.wallet-amount-input input{width:130px;min-width:70px;box-sizing:border-box;font-variant-numeric:tabular-nums;font-size:20px}
.wallet-amount-input .icon-button{flex:none;width:32px;height:38px}
.wallet-correction textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:66px}
.wallet-correction small,.wallet-status{font-size:12px;color:var(--muted);line-height:1.5;overflow-wrap:anywhere}
.wallet-correction .wallet-status.error{color:var(--danger)}
.wallet-correction [data-wallet-status]:empty{display:none}
.wallet-correction .correction-history summary{font-size:12px;font-weight:400;color:var(--muted)}
.wallet-correction a{font-size:12px}
@media(max-width:480px){.lane-session-dialog{padding:18px}.wallet-due-value strong{font-size:20px}.wallet-correction [data-wallet-fields]{padding:12px}.wallet-amount-input{gap:5px}.wallet-amount-input input{width:100px;font-size:18px}.lane-session-dialog .wallet-due-row{gap:8px}}
.live-operation-card .operator-plate-preview{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:10px;height:88px;padding:8px;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}
.operator-plate-preview .plate-preview-open{display:grid;place-items:center;position:relative;width:100%;height:70px;min-width:0;padding:3px;border:1px solid var(--line);border-radius:6px;background:var(--panel);cursor:zoom-in;overflow:hidden}
.plate-preview-open:disabled{opacity:1;cursor:default;color:var(--muted)}
.plate-preview-open img{display:block;width:100%;height:100%;object-fit:contain}
.plate-preview-open [data-plate-preview-placeholder]{font-size:11px;line-height:1.35;text-align:center;max-width:180px}
.plate-preview-content{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;min-width:0}
.plate-preview-content strong{font-size:12px;line-height:1.2}
.plate-preview-content small{font-size:10px;line-height:1.3;color:var(--muted);width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.plate-preview-content .button{font-size:11px;min-height:26px;padding:3px 7px;gap:5px;max-width:100%;white-space:nowrap}
.plate-preview-content .ui-icon{width:13px;height:13px}

/* On-demand vehicle wallet: keep the operator on one compact screen. */
.lane-session-dialog { width:min(780px,calc(100vw - 24px)); max-height:90dvh; overflow:auto; }
.wallet-identity { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.wallet-identity .plate { display:inline-block; width:auto; max-width:100%; margin:0; padding:5px 9px; border-radius:6px; overflow-wrap:anywhere; }
.wallet-session-state { font-size:12px; color:var(--muted); }
.wallet-entry-row { align-items:center; }
.wallet-entry-row dd { display:flex; align-items:center; justify-content:flex-end; gap:8px; }
.wallet-no-session,.vehicle-history-empty { padding:14px; background:var(--panel-2); border:1px solid var(--line); border-radius:10px; }
.wallet-no-session,.vehicle-history-empty p { color:var(--muted); font-size:13px; line-height:1.5; }
.wallet-edit-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.wallet-correction [data-wallet-time-fields] input { box-sizing:border-box; width:100%; min-width:0; }
.wallet-correction [hidden] { display:none!important; }
.wallet-time-comparison { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:12px; }
.wallet-time-comparison div { display:grid; gap:4px; }
.wallet-time-comparison span { color:var(--muted); font-size:12px; }
.wallet-time-comparison strong { font-size:20px; font-variant-numeric:tabular-nums; }
.wallet-vehicle-history { border-top:1px solid var(--line); padding-top:16px; min-width:0; }
.vehicle-visit-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.vehicle-visit-metrics > div { display:grid; gap:6px; padding:12px; border:1px solid var(--line); border-radius:10px; background:var(--panel-2); }
.vehicle-visit-metrics span,.vehicle-history-note,.vehicle-history-heading small { color:var(--muted); font-size:12px; line-height:1.5; }
.vehicle-visit-metrics strong { font-size:18px; font-variant-numeric:tabular-nums; }
.vehicle-history-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:16px 0 8px; }
.vehicle-history-heading h4 { font-size:14px; margin:0; }
.vehicle-visits-scroll { overflow:auto; }
.vehicle-visits { border-collapse:collapse; width:100%; font-size:12px; }
.vehicle-visits th,.vehicle-visits td { padding:9px 8px; text-align:left; border-bottom:1px solid var(--line); vertical-align:top; font-variant-numeric:tabular-nums; }
.vehicle-visits th { color:var(--muted); font-weight:500; }
.vehicle-visits td small { display:block; color:var(--muted); margin-top:3px; }
.vehicle-visit-open { color:var(--accent); }
@media(max-width:480px){.vehicle-visit-metrics{gap:6px}.vehicle-visit-metrics > div{padding:8px}.vehicle-visit-metrics strong{font-size:15px}.wallet-entry-row dd{flex-wrap:wrap}.vehicle-visits th,.vehicle-visits td{padding:8px 4px}.wallet-edit-actions .button{flex:1 1 auto}.lane-session-dialog{max-height:94dvh}}
.lane-session-dialog .lane-quote-details { margin:8px 0; gap:8px; }
.lane-session-dialog > form { gap:12px; }
/* Keep entry/exit labels visible on phones instead of generic stacked table cards. */
.lane-session-dialog .vehicle-visits { display:table; width:100%; min-width:0; table-layout:fixed; }
.vehicle-visits > thead { display:table-header-group; position:static; width:auto; height:auto; overflow:visible; clip-path:none; }
.vehicle-visits > tbody { display:table-row-group; width:auto; }
.vehicle-visits tr { display:table-row; width:auto; padding:0; border:0; border-radius:0; background:transparent; }
.vehicle-visits th,.vehicle-visits td { display:table-cell; width:40%; max-width:none; }
.vehicle-visits th:last-child,.vehicle-visits td:last-child { width:20%; }
.vehicle-visits td::before { display:none; }

.vehicle-visits th { font-size:10px; letter-spacing:.025em; white-space:nowrap; }
