:root{--navy: #002663;--blue: #1a4dbf;--amber: #e76f00;--text: #1d2433;--muted: #65707d;--border: #e2e6ec;--bg: #f4f6f9;--card: #ffffff;--ok: #1e9f57;--warn-c: #b8860b;--err: #d83b3b;--shadow: 0 1px 2px rgba(8, 21, 49, .08), 0 4px 16px rgba(8, 21, 49, .08)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--bg);color:var(--text);font:14px/1.45 Open Sans,system-ui,sans-serif}button{font:inherit;cursor:pointer}.login-wrap{display:grid;place-items:center;height:100dvh}.login-card{width:min(380px,92vw);background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:28px;display:flex;flex-direction:column;gap:14px}.brand-lockup{display:flex;align-items:center;gap:12px}.brand-title{font-size:28px;font-weight:700;color:var(--navy);line-height:1.05}.brand-title-sm{font-size:18px}.brand-sub{font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--amber)}.brand-by{font-size:11px;color:var(--muted);letter-spacing:.03em;margin-top:-4px}.login-card form{display:flex;flex-direction:column;gap:12px}.field{display:flex;flex-direction:column;gap:4px}.field span{font-size:11px;font-weight:700;color:var(--muted)}.field input{font:inherit;padding:10px 12px;border:1px solid var(--border);border-radius:8px;min-height:44px}.form-error{color:var(--err);font-size:13px;font-weight:600}.btn.primary{background:var(--navy);color:#fff;border:0;border-radius:8px;padding:12px;min-height:44px;font-weight:700}.btn.primary:disabled{opacity:.6}.muted{color:var(--muted)}.small{font-size:12px}.dash{display:flex;height:100dvh}.panel-left{width:320px;flex:0 0 auto;background:var(--card);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:12px;padding:14px;overflow-y:auto;z-index:5}.panel-brand{display:flex;align-items:center;gap:8px}.role-chip{font-size:10px;font-weight:700;letter-spacing:.1em;background:var(--navy);color:#fff;padding:3px 8px;border-radius:999px}.signout{margin-left:auto;white-space:nowrap}.link-btn{background:none;border:0;color:var(--blue);font-size:12px;text-decoration:underline}.view-tabs{display:flex;gap:4px;padding:4px;background:var(--bg);border-radius:10px}.view-tab{flex:1;padding:8px 0;border:0;border-radius:7px;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:700;cursor:pointer;letter-spacing:.02em}.view-tab.on{background:var(--card);color:var(--navy);box-shadow:var(--shadow)}.map-wrap{flex:1;position:relative;min-width:0}.ops-map{position:absolute;top:0;right:0;bottom:0;left:0}.map-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;display:grid;place-items:center;color:var(--muted);background:#f4f6f9b3;font-weight:600}.kpi-bar{display:flex;gap:8px;padding:10px;background:var(--bg);border-radius:12px}.kpi-bar.alert{background:#fdecec}.kpi{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;border:1px solid var(--border);border-radius:10px;background:var(--card);padding:8px 4px}.kpi-n{font-size:26px;font-weight:800;color:var(--muted)}.kpi-l{font-size:9px;font-weight:700;letter-spacing:.08em;color:var(--muted)}.kpi.seg-breach.hot .kpi-n{color:var(--err)}.kpi.seg-warn.hot .kpi-n{color:var(--warn-c)}.kpi.seg-below.hot .kpi-n{color:var(--err)}.kpi-clear{flex:1;text-align:center;font-weight:700;color:var(--ok);padding:10px}.search-box{position:relative}.search-box input{width:100%;font:inherit;padding:10px 12px;min-height:44px;border:1px solid var(--border);border-radius:8px}.search-results{list-style:none;margin:4px 0 0;padding:4px;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);position:absolute;left:0;right:0;z-index:20;max-height:50vh;overflow-y:auto}.sr-empty{padding:10px;color:var(--muted);font-size:12px}.sr-row{width:100%;display:flex;align-items:center;gap:8px;background:none;border:0;padding:8px;border-radius:6px;text-align:left}.sr-row:hover{background:var(--bg)}.sr-kind{font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:2px 6px;border-radius:999px;background:var(--bg);color:var(--muted)}.sr-kind.k-corral{background:#eaeffa;color:var(--navy)}.sr-kind.k-pickup,.sr-kind.k-dropoff{background:#fff1e0;color:#a04500}.sr-kind.k-route{background:#fff7e6;color:#8a5a00}.sr-kind.k-driver{background:#e7f6ed;color:var(--ok)}.sr-name{flex:1;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sr-chip{font-size:10px;font-weight:600;padding:2px 6px;border-radius:999px;background:var(--bg);color:var(--muted)}.sr-chip.hot{background:#fdecec;color:var(--err)}.filters{border-top:1px solid var(--border);padding-top:10px}.filters-head{font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--muted);margin-bottom:6px}.filter-row{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;padding:4px 0;cursor:pointer}.filter-row input{accent-color:var(--err);width:16px;height:16px}.route-picker{border-top:1px solid var(--border);padding-top:10px}.rp-head{width:100%;display:flex;align-items:center;gap:8px;background:none;border:0;padding:4px 0;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--navy)}.rp-count{background:var(--bg);border-radius:999px;padding:1px 8px;font-size:10px;color:var(--muted)}.rp-caret{margin-left:auto;transition:transform .15s}.rp-caret.open{transform:rotate(180deg)}.rp-list{list-style:none;margin:6px 0 0;padding:0}.rp-empty{padding:8px;color:var(--muted);font-size:12px}.rp-row{width:100%;display:flex;align-items:center;gap:8px;background:none;border:0;border-left:3px solid transparent;padding:8px 6px;border-radius:0 6px 6px 0;text-align:left}.rp-row:hover{background:var(--bg)}.rp-row.active{background:#eef3ff;border-left-color:var(--blue)}.rp-row.closed{opacity:.55}.rp-row.closed .rp-name{text-decoration:line-through}.rp-tick{width:16px;color:var(--blue);font-weight:700}.rp-name{flex:1;font-weight:600;font-size:13px;display:flex;align-items:center;gap:6px}.rp-closed-tag{font-size:8px;font-weight:700;background:#e7eaf0;color:var(--muted);padding:2px 5px;border-radius:999px}.rp-sub{font-size:11px;color:var(--muted)}.lvl-term{font-size:9px;font-weight:700;letter-spacing:.04em;background:var(--navy);color:#fff;padding:2px 6px;border-radius:999px}.freshness{margin-top:auto;font-size:11px;color:var(--muted);padding-top:10px;border-top:1px solid var(--border)}.freshness.stale{color:var(--warn-c);font-weight:700}.panel-detail{width:340px;flex:0 0 auto;background:var(--card);border-left:1px solid var(--border);padding:16px;overflow-y:auto;z-index:5}.panel-detail header{display:flex;align-items:flex-start;gap:8px}.panel-detail h2{margin:0 0 8px;font-size:18px;color:var(--navy);flex:1}.dp-close{background:none;border:0;font-size:22px;color:var(--muted);width:36px;height:36px;border-radius:8px}.dp-close:hover{background:var(--bg)}.dp-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.dp-chip{font-size:10px;font-weight:700;letter-spacing:.05em;padding:3px 8px;border-radius:999px}.dp-chip.amber{background:#fff1e0;color:#a04500}.dp-chip.navy{background:#eaeffa;color:var(--navy)}.dp-chip.green{background:#e7f6ed;color:var(--ok)}.dp-chip.grey{background:#e7eaf0;color:var(--muted)}.dp-chip.red{background:#fdecec;color:var(--err)}.dp-status{padding:10px;border-radius:8px;text-align:center;font-weight:700;font-size:13px;margin-bottom:10px}.dp-status.green{background:#e7f6ed;color:var(--ok)}.dp-status.amber{background:#fff3df;color:#a84a00}.dp-status.red{background:#fdecec;color:var(--err)}.dp-status.grey{background:var(--bg);color:var(--muted)}.dp-row{display:flex;justify-content:space-between;gap:10px;padding:5px 0;font-size:13px}.dp-k{color:var(--muted)}.dp-v{font-weight:600;text-align:right}.breach-toasts{position:absolute;top:14px;left:50%;transform:translate(-50%);z-index:30;display:flex;flex-direction:column;gap:8px;align-items:center}.breach-toast{background:var(--err);color:#fff;font-weight:800;font-size:14px;padding:10px 20px;border-radius:999px;box-shadow:var(--shadow);animation:drop-in .25s ease-out}@keyframes drop-in{0%{transform:translateY(-16px);opacity:0}}.drawer-toggle,.drawer-backdrop,.drawer-close{display:none}@media (max-width: 720px){.dash{display:block;position:relative;height:100dvh;overflow:hidden}.map-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0}.drawer-toggle{display:flex;align-items:center;gap:8px;position:fixed;z-index:30;top:calc(12px + env(safe-area-inset-top));left:12px;min-height:44px;padding:0 16px;background:var(--card);color:var(--navy);border:1px solid var(--border);border-radius:999px;box-shadow:var(--shadow);font:inherit;font-size:13px;font-weight:700;cursor:pointer}.drawer-toggle .dt-bars{font-size:15px;line-height:1}.panel-left{position:fixed;top:0;left:0;bottom:0;right:auto;width:min(320px,86vw);height:100dvh;border-right:1px solid var(--border);border-radius:0;box-shadow:6px 0 28px #0815312e;padding:calc(14px + env(safe-area-inset-top)) 14px calc(20px + env(safe-area-inset-bottom));transform:translate(-100%);transition:transform .28s cubic-bezier(.32,.72,0,1);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;z-index:40}.panel-left.panel-open{transform:translate(0)}.panel-left>*{flex-shrink:0}.drawer-close{display:grid;place-items:center;width:36px;height:36px;margin-left:8px;border:1px solid var(--border);border-radius:9px;background:var(--card);color:var(--muted);font-size:20px;line-height:1;cursor:pointer}.drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:35;background:#0815316b;animation:drawer-fade .2s ease-out;border:0}@keyframes drawer-fade{0%{opacity:0}}.panel-detail{position:fixed;top:0;right:0;bottom:0;left:auto;width:min(380px,92vw);height:100dvh;border-left:1px solid var(--border);box-shadow:-6px 0 28px #08153133;padding:calc(16px + env(safe-area-inset-top)) 16px calc(20px + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;z-index:45;animation:detail-in .28s cubic-bezier(.32,.72,0,1)}@keyframes detail-in{0%{transform:translate(100%)}}.view-tab{padding:11px 0}.rp-row,.filter-row{min-height:44px}}.unwashed-list{max-height:260px;overflow-y:auto}.reports{min-height:100dvh;display:flex;flex-direction:column}.reports .grow,.inf-actions .grow{flex:1}.reports-bar{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:2}.reports-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:14px 16px 6px}.field.inline input{min-height:40px;padding:6px 10px}.seg{display:inline-flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--card)}.seg button{border:0;background:none;padding:9px 14px;min-height:40px;font-weight:600;color:var(--muted);display:inline-flex;align-items:center;gap:6px}.seg button+button{border-left:1px solid var(--border)}.seg button.on{background:var(--navy);color:#fff}.badge{font-size:11px;font-weight:700;border-radius:999px;padding:1px 7px;color:#fff}.badge.red{background:var(--err)}.badge.green{background:var(--ok)}.btn{background:var(--card);color:var(--navy);border:1px solid var(--border);border-radius:8px;padding:8px 14px;min-height:40px;font-weight:600}.btn:disabled{opacity:.5;cursor:default}.reports-summary{padding:4px 16px 10px;font-size:13px}.text-red{color:var(--err)}.text-green{color:var(--ok)}.reports-list{display:grid;gap:12px;padding:0 16px 24px;grid-template-columns:repeat(auto-fill,minmax(min(100%,440px),1fr))}.reports-empty{padding:40px 0;text-align:center;grid-column:1 / -1}.inf-card{background:var(--card);border-radius:12px;box-shadow:var(--shadow);padding:14px;display:flex;flex-direction:column;gap:10px;border-left:5px solid var(--err)}.inf-card.green{border-left-color:var(--ok)}.inf-card.grey{border-left-color:var(--border);opacity:.75}.inf-head{display:flex;justify-content:space-between;gap:10px}.inf-loc{font-weight:700;color:var(--navy);font-size:15px}.inf-route{font-size:12px;color:var(--muted)}.inf-dur{font-weight:700;font-size:18px;color:var(--err);white-space:nowrap}.inf-card.green .inf-dur{color:var(--text)}.inf-x{font-size:12px;color:var(--muted)}.inf-scans{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center}.inf-scans>div:not(.inf-arrow){display:flex;flex-direction:column}.inf-arrow{color:var(--muted);font-size:18px}.inf-k{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.inf-v{font-weight:700;font-variant-numeric:tabular-nums}.inf-d{font-size:12px}.inf-tags{display:flex;flex-wrap:wrap;gap:6px}.inf-tag{font-size:11px;background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:2px 8px;color:var(--muted)}.inf-tag.st-disputed{color:var(--amber);border-color:var(--amber)}.inf-tag.st-reviewed{color:var(--ok);border-color:var(--ok)}.inf-notes{font-size:11px;color:var(--muted)}.inf-review textarea{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:8px;resize:vertical;width:100%}.inf-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}.inf-actions .btn.primary{padding:8px 14px;min-height:40px}.inf-expl{white-space:pre-wrap;background:var(--bg);border-radius:8px;padding:8px 10px}@media (max-width: 560px){.reports-controls .grow{display:none}.inf-scans{grid-template-columns:1fr}.inf-arrow{display:none}}.reports-bar .role-chip,.reports-bar .link-btn{white-space:nowrap}@media (max-width: 560px){.reports-bar .muted{display:none}}.app-nav{display:flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--card);flex:0 0 auto}.app-nav button{flex:1;border:0;background:none;padding:9px 12px;min-height:40px;font-weight:700;font-size:13px;color:var(--muted);white-space:nowrap}.app-nav button+button{border-left:1px solid var(--border)}.app-nav button.on{background:var(--amber);color:#fff}.app-nav.compact{margin-left:8px}@media (max-width: 560px){.reports-bar{flex-wrap:wrap}.app-nav.compact{order:10;width:100%;margin-left:0}}.acct-grid{display:grid;gap:16px;padding:16px;align-items:start;grid-template-columns:minmax(0,1fr) minmax(280px,360px)}.acct-side{display:flex;flex-direction:column;gap:16px}.acct-card{background:var(--card);border-radius:12px;box-shadow:var(--shadow);padding:16px;min-width:0}.acct-card h2{margin:0 0 12px;font-size:15px;color:var(--navy)}.acct-form{display:flex;flex-direction:column;gap:10px}.acct-form p{margin:0}.acct-row{display:flex;gap:10px}.acct-row .field{flex:1}.field select,.acct-actions input{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:8px;min-height:40px;background:var(--card)}.acct-table-wrap{overflow-x:auto}.acct-table{width:100%;border-collapse:collapse;font-size:13px}.acct-table th{text-align:left;font-size:11px;color:var(--muted);font-weight:700;padding:6px 8px;border-bottom:1px solid var(--border)}.acct-table td{padding:8px;border-bottom:1px solid var(--border);vertical-align:middle}.acct-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;align-items:center}.acct-actions input{width:150px}.btn.danger{background:var(--err);color:#fff;border-color:var(--err)}.acct-msg{margin:12px 16px 0;padding:10px 12px;border-radius:8px;background:#e8f6ee;color:var(--ok);font-weight:600}.acct-msg.bad{background:#fdecec;color:var(--err)}@media (max-width: 760px){.acct-grid{grid-template-columns:1fr}}.text-amber{color:var(--amber)}.inf-card.amber{border-left-color:var(--amber)}.inf-tag.st-awaiting{color:var(--amber);border-color:var(--amber)}.inf-tag.st-returned{color:var(--err);border-color:var(--err)}.ops-returned{background:#fdecec;color:var(--text);border-radius:8px;padding:8px 10px;font-size:13px}.ops-returned strong{color:var(--err)}.ops-panel{border-top:1px dashed var(--border);margin-top:8px;padding-top:8px}.ops-panel textarea{font:inherit;width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;margin-top:6px}.ovs-kpis{display:flex;flex-wrap:wrap;gap:10px;padding:6px 16px 12px}.ovs-kpi{background:var(--card);border-radius:10px;box-shadow:var(--shadow);padding:10px 14px;font-size:12px;color:var(--muted);min-width:120px}.ovs-kpi span{display:block;font-size:22px;font-weight:700;color:var(--navy)}.ovs-kpi.red span{color:var(--err)}.ovs-kpi.amber span{color:var(--amber)}.ovs-kpi.green span{color:var(--ok)}.ovs-card{margin:0 16px 24px}.ovs-table .num{text-align:right;font-variant-numeric:tabular-nums}.ovs-row{cursor:pointer}.ovs-row:hover,.ovs-row:focus{background:var(--bg);outline:none}.ovs-pill{font-size:11px;font-weight:700;border-radius:999px;padding:2px 8px;white-space:nowrap}.ovs-pill.red{background:#fdecec;color:var(--err)}.ovs-pill.amber{background:#fff1e3;color:var(--amber)}.ovs-pill.green{background:#e8f6ee;color:var(--ok)}
