/* Map-first, read-only workspace. All rules stay scoped away from ERP forms. */
.control-room { --ctl-bg:#0b1220; --ctl-panel:#111c2d; --ctl-line:#28394e; --ctl-muted:#a9b8cb; --ctl-text:#f1f5fb; color:var(--ctl-text); min-width:0; font-size:14px; }
.control-room button, .control-room input, .control-room select { font-family:inherit; }
.control-room button { cursor:pointer; }
.control-room button:disabled { cursor:default; }
.control-room :is(button,a,input,select,summary):focus-visible { outline:3px solid #67e8f9; outline-offset:3px; }
.control-header { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:22px; flex-wrap:wrap; }
.control-title { display:flex; gap:12px; align-items:center; }
.control-brand { display:grid; place-items:center; width:44px; height:50px; border:1px solid #38bdf866; background:linear-gradient(145deg,#183957,#0e223b); color:#7dd3fc; border-radius:13px 13px 22px 13px; font:700 26px/1 sans-serif; }
.control-eyebrow { font-size:.7em; font-weight:700; letter-spacing:.14em; color:#91a9c6; line-height:1.8; }
[dir=rtl] .control-eyebrow { letter-spacing:0; }
.control-eyebrow span { color:#517798; padding:0 5px; }
.control-title h2 { font-size:1.55em; margin:2px 0 0; font-weight:700; letter-spacing:-.025em; }
.control-header-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.control-header-actions .inp { width:155px; font-size:1em; padding:10px; color:var(--ctl-text); color-scheme:dark; }
.control-connection { display:flex; gap:7px; align-items:center; color:#6ee7b7; font-size:.85em; font-weight:600; }
.control-connection i { width:7px; height:7px; background:currentColor; border-radius:50%; box-shadow:0 0 0 4px #34d39915; }
.control-connection.is-history { color:#c4b5fd; }
.control-connection.is-error { color:#fbbf24; }
.control-display-button { background:#173957 !important; color:#bae6fd !important; border:1px solid #37729b !important; }
.control-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.control-room .mini-stat { border:1px solid var(--ctl-line); border-radius:14px; padding:16px 20px; background:var(--ctl-panel); min-width:0; }
.control-room .ms-label { font-size:.72em; font-weight:700; color:var(--ctl-muted); letter-spacing:.07em; line-height:1.5; }
[dir=rtl] .control-room .ms-label { letter-spacing:0; }
.control-room .ms-value { font-size:2.15em; line-height:1.2; margin:8px 0 4px; font-weight:650; font-variant-numeric:tabular-nums; color:var(--ctl-text); }
.control-room .ms-sub { color:var(--ctl-muted); font-size:.77em; line-height:1.5; }
.control-toolbar { display:flex; flex-wrap:wrap; gap:8px; margin:18px 0 10px; }
.control-toolbar .inp, .control-toolbar .sel { flex:1 1 125px; width:0; min-width:125px; font-size:.9em; padding:10px 12px; }
.control-toolbar .control-search { flex:2 1 240px; }
.control-scope { display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; color:var(--ctl-muted); font-size:.78em; padding:12px 2px; }
.control-scope strong { color:#fcd34d; }
.control-workspace { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:16px; align-items:stretch; }
.control-map-panel, .control-roster, .control-detail { background:var(--ctl-panel); border:1px solid var(--ctl-line); border-radius:18px; min-width:0; overflow:hidden; }
.control-map-panel { display:flex; flex-direction:column; }
.control-panel-heading { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:17px 20px; }
.control-panel-heading h3 { font-size:1.12em; line-height:1.5; margin:2px 0 0; }
.control-counter, .control-map-count { background:#21334a; color:#bfcee0; border-radius:6px; padding:3px 7px; font-size:.7em; font-weight:600; white-space:nowrap; }
.control-counter { margin-inline-start:6px; }
.control-readonly { color:#8da4bd; font-size:.68em; white-space:nowrap; }
.control-map-content { display:flex; flex-direction:column; flex:1; min-height:0; }
.control-map-tools { display:flex; gap:8px; align-items:center; justify-content:space-between; padding:0 18px 12px; }
.control-map-tools .hx-sub { color:var(--ctl-muted); font-size:.73em; line-height:1.6; }
.control-map-tools .btn { flex-shrink:0; font-size:.75em; }
.control-map-frame { position:relative; isolation:isolate; flex:1; min-height:460px; margin:0 12px; border-radius:12px; overflow:hidden; }
.control-map { position:absolute; inset:0; width:100%; height:100%; background:var(--ctl-bg); z-index:0; direction:ltr; }
.control-map-message { position:absolute; inset:0; z-index:1; padding:28px; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:14px; text-align:center; background:var(--ctl-bg); color:var(--ctl-muted); }
.control-map .control-map-label { font-size:11px; line-height:1.4; font-weight:700; color:#182338; background:#fff; border:1px solid #64748b; border-radius:6px; padding:4px 7px; width:max-content; max-width:210px; white-space:pre-line; text-align:center; box-shadow:0 2px 6px #0003; }
.control-map .control-customer-label { color:#14532d; background:#f0fdf4; border-color:#16a34a; }
.control-map-footer { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:12px 18px; color:var(--ctl-muted); font-size:.78em; min-height:48px; }
.control-note { color:var(--ctl-muted); font-size:.9em; line-height:1.6; padding:10px 18px; }
.control-missing-pin { border-top:1px solid var(--ctl-line); }
.control-note a { color:#7dd3fc; text-decoration:underline; }
.control-roster { display:flex; flex-direction:column; }
.control-roster > .control-panel-heading { border-bottom:1px solid var(--ctl-line); }
.control-roster-scroll { max-height:580px; overflow:auto; scrollbar-width:thin; scrollbar-color:#42546e transparent; flex:1; }
.control-person { border-bottom:1px solid #26364a; border-inline-start:3px solid transparent; }
.control-person.is-selected { border-inline-start-color:var(--person-color); background:#22354b; }
.control-employee { display:block; width:100%; padding:15px 17px; color:inherit; background:none; border:0; text-align:start; font-size:1em; }
.control-employee:hover { background:#233a514d; }
.control-person-heading { display:flex; align-items:center; gap:10px; }
.control-avatar { display:grid; place-items:center; width:32px; height:32px; border-radius:10px; flex-shrink:0; color:var(--person-color); border:2px solid var(--person-color); background:#0b1525; font-weight:700; }
.control-person-name { flex:1; min-width:0; }
.control-person-name b { display:block; font-size:.93em; overflow-wrap:anywhere; }
.control-person-name small { color:var(--ctl-muted); font-size:.7em; }
.control-chevron { color:#9db1ca; }
.control-person-state { margin:10px 0; }
.control-person-state .badge { white-space:normal; font-size:.7em; line-height:1.5; padding:3px 8px; text-align:start; }
.control-next-stop { display:flex; gap:8px; margin:10px 0; color:#6ee7b7; }
.control-next-stop > span:last-child { min-width:0; }
.control-caption { display:block; font-size:.74em; color:var(--ctl-muted); margin-bottom:3px; }
.control-next-stop b { color:#e1eaf5; font-size:.85em; overflow-wrap:anywhere; display:block; }
.control-next-stop small { display:block; font-size:.72em; color:var(--ctl-muted); }
.control-person-meta { display:grid; grid-template-columns:1fr 1fr; gap:12px; color:var(--ctl-muted); font-size:.68em; line-height:1.5; }
.control-person-meta b { display:block; font-size:1.15em; font-weight:600; font-variant-numeric:tabular-nums; color:#dfe8f4; margin-top:3px; }
.control-person-meta .control-fresh { color:#6ee7b7; }
.control-person-meta .control-stale { color:#fcd34d; }
.control-accuracy { margin-top:8px; font-size:.68em; color:#a6b7cb; }
.control-roster-foot { padding:11px 16px; font-size:.7em; color:var(--ctl-muted); background:#0c1625; border-top:1px solid var(--ctl-line); }
.control-empty { padding:32px 20px; color:var(--ctl-muted); line-height:1.7; }
.control-pagination { display:flex; align-items:center; justify-content:space-between; padding:8px; font-size:.75em; }
.control-alert-strip { display:flex; align-items:center; justify-content:space-between; gap:16px; border:1px solid #285043; border-radius:12px; background:#142b29; padding:10px 16px; margin-top:16px; }
.control-alert-strip.has-alerts { border-color:#654c26; background:#2a241b; }
.control-alert-strip > span { color:#c1c9d4; font-size:.8em; }
.control-alert-toggle { display:flex; align-items:center; gap:10px; background:none; border:0; color:#6ee7b7; text-align:start; font-size:.9em; }
.has-alerts .control-alert-toggle { color:#fcd34d; }
.control-alert-toggle b { display:grid; place-items:center; border:1px solid currentColor; width:24px; height:24px; border-radius:8px; }
.control-alert-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:8px 0; }
.control-alert { display:grid; grid-template-columns:1fr auto; gap:4px 10px; text-align:start; padding:14px; border:1px solid var(--ctl-line); background:var(--ctl-panel); color:var(--ctl-text); border-radius:10px; }
.control-alert span:first-of-type { grid-row:2; color:var(--ctl-muted); font-size:.82em; }
.control-alert span:last-child { grid-column:2; grid-row:1/3; color:#fbbf24; align-self:center; }
.control-detail { margin-top:20px; scroll-margin-top:80px; }
.control-evidence { display:grid; grid-template-columns:1fr 1.4fr; gap:28px; padding:8px 22px 22px; }
.control-distance strong { display:block; font-size:2.4em; margin:10px 0; font-variant-numeric:tabular-nums; }
.control-evidence-status { display:inline-block; font-size:.78em; color:#6ee7b7; background:#153e34; padding:6px 9px; border-radius:6px; }
.control-evidence-status.partial { color:#fde68a; background:#3d3020; }
.control-evidence p { color:var(--ctl-muted); font-size:.83em; line-height:1.6; margin:10px 0; }
.control-coverage-title { display:flex; align-items:center; justify-content:space-between; font-size:.85em; gap:10px; }
.control-coverage-title b { font-size:1.7em; }
.control-coverage-track { height:9px; border-radius:6px; overflow:hidden; background:#30405a; margin:14px 0; }
.control-coverage-track span { display:block; height:100%; background:#60a5fa; border-radius:6px; }
.control-evidence-counts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; font-size:.75em; color:var(--ctl-muted); }
.control-evidence-counts b { display:block; color:var(--ctl-text); font-size:1.5em; margin-top:6px; }
.control-evidence-warning { border-top:1px solid #645028; background:#28231c; color:#f5d991; }
.control-detail-columns { display:grid; grid-template-columns:1fr 1fr; gap:30px; padding:20px 22px; border-top:1px solid var(--ctl-line); }
.control-detail h4 { font-size:1em; margin:0 0 15px; }
.control-timeline { padding:0; list-style:none; margin:0; }
.control-timeline li { display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid var(--ctl-line); font-size:.87em; }
.control-timeline time { color:var(--ctl-muted); font-variant-numeric:tabular-nums; }
.control-day-observations { margin:0 22px; padding:16px 0; border-top:1px solid var(--ctl-line); font-size:.9em; }
.control-day-observations summary, .control-guide summary { cursor:pointer; font-weight:600; color:#b9d8f7; }
.control-day-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:16px; }
.control-detail-links { display:flex; gap:8px; flex-wrap:wrap; padding:0 22px 20px; }
.control-guide { margin:16px 0 0; padding:16px 20px; border:1px solid var(--ctl-line); border-radius:12px; background:#101c2c; font-size:.85em; }
.control-guide ul { padding-inline-start:22px; color:var(--ctl-muted); line-height:1.8; }
.control-guide li + li { margin-top:8px; }
.control-footer { display:flex; justify-content:space-between; gap:20px; color:#98adc7; font-size:.7em; line-height:1.7; padding:15px 2px 4px; }
.control-wallboard { position:fixed; inset:0; z-index:10000; padding:1.2em 1.5em .8em; background:var(--ctl-bg); display:flex; flex-direction:column; overflow:hidden; font-size:clamp(16px,1.05vw,34px); }
.control-wallboard .control-header { margin-bottom:.8em; flex-wrap:nowrap; }
.control-wallboard .control-brand { width:2.5em; height:2.7em; font-size:1em; }
.control-wallboard .control-title h2 { font-size:1.35em; }
.control-wallboard .control-header-actions .inp { width:9em; font-size:.75em; }
.control-wallboard .control-header-actions .btn { font-size:.72em; }
.control-wallboard kbd { font-size:.8em; opacity:.65; margin-inline-start:8px; }
.control-wallboard .control-kpis { gap:.7em; }
.control-wallboard .mini-stat { padding:.6em 1em; border-radius:.7em; }
.control-wallboard .ms-value { font-size:2em; margin:.15em 0; }
.control-wallboard .ms-sub { font-size:.62em; }
.control-wallboard .ms-label { font-size:.68em; }
.control-wallboard .control-scope { font-size:.65em; padding:.7em 0; }
.control-wallboard .control-workspace { flex:1; min-height:0; gap:1em; grid-template-columns:minmax(0,1fr) 23em; }
.control-wallboard .control-panel-heading { padding:.65em 1em; }
.control-wallboard .control-panel-heading h3 { font-size:1em; }
.control-wallboard .control-map-tools { padding:0 1em .6em; }
.control-wallboard .control-map-tools .hx-sub { font-size:.64em; }
.control-wallboard .control-map-frame { min-height:0; margin:0 .6em; }
.control-wallboard .control-map-footer { font-size:.65em; min-height:0; padding:.6em 1em; }
.control-wallboard .control-map .control-map-label { font-size:clamp(13px,.8vw,28px); max-width:16em; padding:.25em .5em; }
.control-wallboard .control-roster-scroll { max-height:none; }
.control-wallboard .control-person { min-height:0; }
.control-wallboard .control-employee { padding:.35em .85em; }
.control-wallboard .control-avatar { width:1.4em; height:1.4em; border-radius:.4em; }
.control-wallboard .control-person-name b { font-size:.88em; }
.control-wallboard .control-person-name small { display:none; }
.control-wallboard .control-person-state { margin:.2em 0; display:flex; }
.control-wallboard .control-person-state .badge { font-size:.62em; line-height:1.3; padding:.1em .5em; }
.control-wallboard .control-next-stop { margin:.15em 0; font-size:.8em; line-height:1.4; }
.control-wallboard .control-next-stop .control-caption { display:none; }
.control-wallboard .control-person-meta { font-size:.62em; line-height:1.4; gap:1em; }
.control-wallboard .control-person-meta b { display:inline; margin-inline-start:.5em; }
.control-wallboard .control-roster-foot { font-size:.58em; padding:.65em 1em; }
.control-wallboard .control-alert-strip { margin-top:.65em; padding:.45em .8em; }
.control-wallboard .control-alert-strip > span { font-size:.6em; }
.control-wallboard .control-alert-toggle { font-size:.72em; }
.control-wallboard .control-footer { font-size:.53em; padding:.6em 0 0; }
.control-wallboard .control-alert-list { position:absolute; inset-inline:1.5em; bottom:5em; z-index:2; max-height:50vh; overflow:auto; background:#0c1625; padding:1em; border:1px solid var(--ctl-line); border-radius:12px; box-shadow:0 8px 30px #0008; }
@media (min-width:1700px) { .control-workspace { grid-template-columns:minmax(0,1fr) 370px; } .control-map-frame { min-height:550px; } }
@media (max-width:1100px) { .control-workspace { grid-template-columns:minmax(0,1fr) 280px; } .control-title h2 { font-size:1.35em; } }
@media (max-width:800px) {
  .control-workspace, .control-evidence, .control-detail-columns { grid-template-columns:minmax(0,1fr); }
  .control-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .control-roster-scroll { max-height:520px; }
  .control-map-frame { min-height:380px; }
  .control-footer, .control-alert-strip { flex-direction:column; align-items:start; gap:8px; }
  .control-day-metrics, .control-alert-list { grid-template-columns:1fr; }
  .control-wallboard { overflow:auto; position:fixed; font-size:16px; padding:16px; }
  .control-wallboard .control-header { flex-wrap:wrap; }
  .control-wallboard .control-workspace { display:grid; flex:none; grid-template-columns:1fr; }
  .control-wallboard .control-map-frame { min-height:45vh; }
  .control-wallboard .control-roster-scroll { max-height:none; }
}
@media (prefers-reduced-motion:reduce) { .control-room * { scroll-behavior:auto !important; transition:none !important; } }
.control-road-review { margin:1em 0; padding:1em; border:1px solid var(--ctl-line); border-inline-start:3px solid var(--warn); border-radius:12px; background:var(--bg); }
.control-road-review h4 { margin:0 0 .6em; }
.control-road-review p { line-height:1.7; }
.control-review-total { display:block; font-size:2em; font-variant-numeric:tabular-nums; }
.control-review-trips > div { display:grid; grid-template-columns:1fr 1fr; gap:1em; padding:.8em 0; border-top:1px solid var(--ctl-line); }
.control-review-trips span { display:block; font-size:.9em; line-height:1.6; color:var(--text-2); }
@media (max-width:550px) { .control-review-trips > div { grid-template-columns:1fr; gap:.3em; } }
.control-ledger { margin-block:24px; padding:24px; background:var(--surface,#101b2c); border:1px solid var(--line,#293b55); border-radius:20px; }
.field-form { display:flex; align-items:end; flex-wrap:wrap; gap:12px; margin-block:16px; }
.field-form label { display:grid; gap:8px; flex:1 1 180px; min-width:0; }
.field-form input,.field-form select { width:100%; }
.field-check { display:flex; gap:12px; align-items:center; margin-block:18px; }
.field-totals { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-block:20px; }
.field-totals>div { background:#0b1321; padding:20px; border:1px solid #293b55; border-radius:12px; }
.field-totals b { display:block; font-size:26px; margin-block:12px; font-variant-numeric:tabular-nums; }
.field-table-wrap { overflow-x:auto; }
.field-table { width:100%; text-align:start; border-collapse:collapse; }
.field-table th,.field-table td { padding:12px; border-bottom:1px solid #293b55; text-align:start; }
.field-table input[type="checkbox"] { width:20px; height:20px; }
.field-adjustment { display:grid; gap:10px; min-width:220px; max-width:340px; padding-block:12px; }
.field-adjustment label { display:grid; gap:6px; }
.field-adjustment .inp { width:100%; height:auto; min-height:42px; }
.field-adjustment small { line-height:1.6; }
.field-receipt { padding:12px; border-bottom:1px solid #293b55; overflow-wrap:anywhere; }
@media(max-width:640px) { .field-totals { grid-template-columns:1fr; } .control-ledger { padding:16px; } }
