/* OTRLocal PERFORMANCE BUNDLE: app.css + Dispatch Intelligence overrides */
/* Base application styles */
:root{--bg:#07111f;--panel:#0e1c2f;--panel2:#12243b;--line:#223954;--text:#eef6ff;--muted:#8da6bf;--accent:#2f80ed;--good:#1fa76b;--danger:#d45757}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 Inter,Arial,sans-serif}a{color:#8dc1ff;text-decoration:none}button,input,select,textarea{font:inherit}.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{background:#081523;border-right:1px solid var(--line);padding:22px 16px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;overflow:hidden}.brand{font-weight:800;font-size:22px;letter-spacing:.3px;flex:0 0 auto}.brand span{color:#5ca4ff}.brand.big{font-size:34px}.tenant{color:var(--muted);margin:6px 0 18px;flex:0 0 auto}.sidebar nav{display:grid;gap:8px;overflow-y:auto;overflow-x:hidden;min-height:0;padding:0 4px 10px 0;scrollbar-width:thin;scrollbar-color:#31516f transparent}.sidebar nav::-webkit-scrollbar{width:7px}.sidebar nav::-webkit-scrollbar-track{background:transparent}.sidebar nav::-webkit-scrollbar-thumb{background:#31516f;border-radius:999px}.sidebar nav a{color:#cfe2f7;padding:10px 12px;border-radius:9px}.sidebar nav a:hover{background:#12243b}.logout{position:static;margin-top:auto;padding-top:12px;border-top:1px solid var(--line);flex:0 0 auto}.link-button{background:none;border:0;color:#8dc1ff;cursor:pointer;padding:8px}.content{padding:0 28px 40px;min-width:0}.topbar{height:72px;display:flex;justify-content:flex-end;align-items:center;border-bottom:1px solid var(--line);margin-bottom:26px}.muted{color:var(--muted)}h1{font-size:30px;margin:0 0 4px}h2{font-size:18px;margin:0 0 16px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.primary,button{background:var(--accent);border:0;color:white;padding:10px 14px;border-radius:8px;cursor:pointer;display:inline-block}.full{width:100%}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;overflow:auto}.panel-head{display:flex;justify-content:space-between;align-items:center}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.kpi{background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:18px}.kpi span{display:block;color:var(--muted);margin-bottom:8px}.kpi strong{font-size:28px}.badge{display:inline-block;background:#18304e;border:1px solid #2c4e74;border-radius:999px;padding:4px 8px;white-space:nowrap}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px 9px;border-bottom:1px solid var(--line);vertical-align:top}th{color:#9fb7cf;font-weight:600}.empty{text-align:center;color:var(--muted);padding:28px}.filters{display:flex;gap:8px;margin-bottom:14px}.filters select{max-width:220px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.wide{grid-column:1/-1}.stack{display:grid;gap:12px}.split{display:grid;grid-template-columns:340px 1fr;gap:18px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}label{display:grid;gap:6px;color:#c9d8e8}input,select,textarea{width:100%;background:#091728;color:var(--text);border:1px solid #29415e;border-radius:8px;padding:10px}textarea{resize:vertical}.actions{display:flex;justify-content:flex-end}.alert{padding:11px 13px;border-radius:8px;margin-bottom:14px;background:#18304e}.alert.success{border:1px solid #24744f}.alert.danger{border:1px solid #8f3f3f}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(420px,100%);background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:30px;display:grid;gap:12px}.login-card .primary{margin-top:8px}dl{display:grid;grid-template-columns:110px 1fr;gap:10px;margin:0}dt{color:var(--muted)}dd{margin:0}.note-form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.timeline{margin-top:20px}.timeline-item{border-left:2px solid #31577e;padding:0 0 18px 14px;margin-left:4px}.timeline-item span{color:var(--muted);font-size:12px;margin-left:10px}.timeline-item p{margin:7px 0 0}@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto;overflow:visible}.sidebar nav{grid-template-columns:repeat(3,1fr);overflow:visible;max-height:none;padding-right:0}.logout{position:static;margin-top:10px;padding-top:10px}.content{padding:0 14px 30px}.kpis{grid-template-columns:repeat(2,1fr)}.split,.detail-grid,.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}}
.secondary{background:#142a44;border:1px solid #31577e;color:#d7e9ff;padding:9px 13px;border-radius:8px;display:inline-block}.danger-button{background:#9d3e3e}.kpis-6{grid-template-columns:repeat(6,1fr)}.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.info-grid span{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}.info-grid strong{display:block}.row{display:flex;gap:10px}.row>label,.row>button{flex:1}.record{padding:12px 0;border-bottom:1px solid var(--line);display:grid;gap:4px}.records .record:last-child,.record:last-child{border-bottom:0}.timeline{display:grid;gap:0}.timeline-item{position:relative;display:grid;grid-template-columns:18px 1fr;gap:8px;border-left:0;margin:0;padding:0 0 20px 0}.timeline-item:before{content:"";position:absolute;left:6px;top:12px;bottom:-5px;width:2px;background:#31577e}.timeline-item:last-child:before{display:none}.dot{width:14px;height:14px;border-radius:50%;background:#5ca4ff;margin-top:4px;z-index:1}.public-bg{min-height:100vh;background:var(--bg);display:grid;place-items:center;padding:24px}.vendor-card{width:min(720px,100%);background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px}.form-panel{max-width:900px}.actions{gap:8px}.panel hr{border:0;border-top:1px solid var(--line);margin:18px 0}.filters input{max-width:360px}@media(max-width:1200px){.kpis-6{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.info-grid{grid-template-columns:1fr 1fr}.row{flex-direction:column}.kpis-6{grid-template-columns:repeat(2,1fr)}}
.map-large{height:560px;border:1px solid var(--line);border-radius:14px;overflow:hidden}.map-small{height:360px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.map-controls{margin-bottom:18px}.checkbox-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.check{display:flex;grid-template-columns:18px 1fr;align-items:center;gap:8px;background:#091728;border:1px solid #29415e;padding:9px;border-radius:8px}.check input{width:auto}.chips{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0}.exception{padding:12px 14px;border-left:4px solid #d6a843;background:#101f33;margin:8px 0;border-radius:8px}.exception.high{border-left-color:#d45757}.exception.low{border-left-color:#5ca4ff}.line-table td{min-width:95px}.line-table td:first-child{min-width:240px}@media(max-width:900px){.checkbox-grid{grid-template-columns:1fr 1fr}.map-large{height:460px}}

/* Event workspace: functionally dense, visually distinct from external reference systems */
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:11px;color:#72aef2;font-weight:800;margin-bottom:5px}.event-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.event-subtitle{color:var(--muted);margin-top:6px}.event-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.event-actions form{margin:0}.lifecycle{display:flex;align-items:center;gap:0;padding:13px 16px;margin-bottom:18px;overflow-x:auto}.life-step{display:flex;align-items:center;gap:7px;color:#678099;white-space:nowrap;position:relative;flex:1;min-width:115px;font-size:12px}.life-step:not(:last-child):after{content:"";height:2px;background:#29415e;flex:1;margin:0 9px}.life-dot{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid #365a7e;background:#0a1829;font-size:10px;font-weight:800}.life-step.done{color:#8fd1b1}.life-step.done .life-dot{background:#164a37;border-color:#2d9c6a}.life-step.done:not(:last-child):after{background:#2d9c6a}.life-step.current{color:#fff;font-weight:800}.life-step.current .life-dot{background:#2f80ed;border-color:#6eb1ff;box-shadow:0 0 0 4px rgba(47,128,237,.15)}.event-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}.event-main{display:grid;gap:18px;min-width:0}.event-rail{display:grid;gap:14px;min-width:0}.sticky-card{position:sticky;top:88px}.event-map-panel{padding-bottom:14px}.event-map{height:390px;border-radius:10px;border:1px solid var(--line);overflow:hidden}.compact{margin:0}.map-legend{display:flex;gap:18px;color:var(--muted);font-size:12px;margin-top:10px}.legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}.legend-dot.event{background:#e56b6b}.legend-dot.selected{background:#2f80ed}.legend-dot.vendor{background:#9eb2c7}.event-summary-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.issue-title{font-size:18px;font-weight:800;margin-bottom:7px}.compact-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:16px}.mono{font-family:Consolas,monospace;font-size:12px;overflow-wrap:anywhere}.vendor-title{font-size:20px;font-weight:800;display:block;margin:8px 0 4px}.vendor-meta{color:var(--muted)}.chip{display:inline-block;background:#132b45;border:1px solid #2b4b6a;border-radius:999px;padding:4px 8px;font-size:11px}.chip.good,.badge.good{background:#123b2d;border-color:#276e51;color:#b7efd2}.vendor-contact-row{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:12px;color:#bcd0e4}.event-tabs-panel{padding:0;overflow:hidden}.tabs{display:flex;gap:0;border-bottom:1px solid var(--line);overflow-x:auto;background:#0a1727}.tab{background:transparent;border-radius:0;padding:13px 17px;color:#8fa9c2;border-bottom:2px solid transparent;white-space:nowrap}.tab:hover{background:#10233a}.tab.active{color:#fff;border-bottom-color:#5ca4ff;background:#10233a}.tab-pane{display:none;padding:18px}.tab-pane.active{display:block}.vendor-search-head{margin-bottom:12px}.recommendation-list{display:grid;gap:10px}.vendor-rec{display:grid;grid-template-columns:38px minmax(0,1fr) 220px;gap:13px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#0a1727}.vendor-rec.selected{border-color:#4d91dc;box-shadow:inset 3px 0 0 #4d91dc}.vendor-rank{width:30px;height:30px;border-radius:9px;background:#173352;display:grid;place-items:center;font-weight:900;color:#9dcbff}.vendor-rec-head{display:flex;justify-content:space-between;gap:12px}.vendor-rec-head strong{font-size:16px}.score{font-weight:900;font-size:22px;color:#a8d1ff}.score small{font-size:10px;color:var(--muted);font-weight:600}.vendor-services{margin:6px 0}.rate-preview{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;margin-top:8px}.rate-preview span{background:#0e2137;border:1px solid #284564;border-radius:7px;padding:6px 8px}.dispatch-inline{display:grid;gap:7px;align-content:start}.dispatch-inline textarea,.dispatch-inline input{padding:8px;font-size:12px}.event-record{grid-template-columns:minmax(0,1fr) auto;align-items:center}.record-actions{display:flex;gap:10px;align-items:center}.invoice-event-total{display:flex;gap:10px;align-items:center;font-weight:800}.file-upload-row{display:grid;grid-template-columns:160px 1fr auto;gap:9px;margin-bottom:15px}.note-compose{display:grid;grid-template-columns:1fr auto;gap:10px;margin-bottom:14px;align-items:end}.status-pill{background:#153555;border:1px solid #31618e;border-radius:999px;padding:5px 9px;font-size:11px}.command-form label{font-size:12px}.rail-two{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rail-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.rail-metrics div{background:#091728;border:1px solid #213b58;padding:9px;border-radius:9px}.rail-metrics span,.rail-list span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em}.rail-metrics strong{display:block;margin-top:3px}.quick-actions{margin-top:15px;border-top:1px solid var(--line);padding-top:12px}.quick-actions>span{display:block;color:var(--muted);font-size:11px;margin-bottom:8px}.quick-actions form{display:inline}.quick-chip{background:#11263e;border:1px solid #2a4665;padding:5px 7px;border-radius:7px;margin:0 3px 5px 0;font-size:10px}.quick-chip.active{background:#2f80ed;border-color:#5da5f4}.next-action-box{border-left:3px solid #5ca4ff;background:#091728;padding:12px;border-radius:7px;color:#d7e9fa}.rail-list{display:grid;gap:9px}.rail-list div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #1c324c;padding-bottom:8px}.subhead{margin:20px 0 5px;font-size:14px;color:#b9cee3}.event-map-marker span,.vendor-map-marker span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#d45757;color:#fff;font-weight:900;border:2px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.35)}.vendor-map-marker span{width:26px;height:26px;border-radius:50%;background:#5f7892;font-size:10px}.vendor-map-marker.is-selected span{background:#2f80ed}.event-timeline{max-height:650px;overflow:auto;padding-right:5px}
@media(max-width:1250px){.event-layout{grid-template-columns:1fr}.sticky-card{position:static}.event-rail{grid-template-columns:repeat(2,minmax(0,1fr))}.event-rail .sticky-card{grid-column:1/-1}.vendor-rec{grid-template-columns:38px 1fr}.dispatch-inline{grid-column:2}}
@media(max-width:900px){.event-header{flex-direction:column}.event-actions{justify-content:flex-start}.event-summary-grid{grid-template-columns:1fr}.event-rail{grid-template-columns:1fr}.compact-grid{grid-template-columns:1fr 1fr}.vendor-rec{grid-template-columns:1fr}.vendor-rank{display:none}.dispatch-inline{grid-column:auto}.file-upload-row,.note-compose{grid-template-columns:1fr}.event-map{height:310px}.lifecycle{padding:10px}.life-step{min-width:105px}}
.grid.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.inline-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin:12px 0}.code-block{background:#091728;border:1px solid #29415e;border-radius:9px;padding:12px;margin-top:12px}.wrap{overflow-wrap:anywhere;word-break:break-word}.danger-text{color:#ffaaaa;margin-top:4px}.record{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--line)}@media(max-width:900px){.grid.two{grid-template-columns:1fr}.inline-form{grid-template-columns:1fr}}

/* Vendor network workspace — enterprise fleet styling with OTR Local identity */
.vendor-workspace-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.vendor-workspace-head h1{font-size:28px}.vendor-kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.vendor-kpi{background:linear-gradient(180deg,#102139,#0c1b2e);border:1px solid #29425f;border-radius:10px;padding:14px 16px;min-height:82px}.vendor-kpi span{display:block;color:#89a4bf;font-size:11px;text-transform:uppercase;letter-spacing:.07em;margin-bottom:7px}.vendor-kpi strong{font-size:25px;line-height:1;color:#f4f8fd}.vendor-filterbar{display:grid;grid-template-columns:minmax(260px,1.8fr) repeat(4,minmax(120px,.7fr)) auto;gap:8px;background:#0b192a;border:1px solid #263e59;border-radius:10px;padding:10px;margin-bottom:10px}.vendor-filterbar input,.vendor-filterbar select{background:#071422;border-color:#29425f;border-radius:6px;padding:9px 10px}.vendor-toolbar{display:flex;gap:8px;justify-content:flex-end;margin-bottom:10px}.vendor-toolbar form{margin:0}.vendor-grid-panel{padding:0;border-radius:10px}.vendor-grid-actions{display:flex;align-items:center;gap:12px;padding:11px 13px;border-bottom:1px solid var(--line);background:#0a1829}.vendor-data-grid{font-size:12px}.vendor-data-grid th{font-size:10px;text-transform:uppercase;letter-spacing:.06em;background:#0a1726;position:sticky;top:0;z-index:1}.vendor-data-grid td{padding:10px 9px}.vendor-data-grid tbody tr:hover{background:#10243a}.vendor-subline{font-size:10px;color:#7f9ab5;margin-top:3px;line-height:1.35}.service-tags{display:flex;flex-wrap:wrap;gap:4px}.service-tags span{background:#132940;border:1px solid #284763;border-radius:4px;padding:3px 5px;font-size:9px;white-space:nowrap}.score-badge{display:inline-grid;place-items:center;min-width:46px;padding:5px 7px;border-radius:6px;background:#12365b;border:1px solid #2f6598;color:#cfe8ff;font-size:13px;font-weight:800}.rank-pill{display:inline-block;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:800;letter-spacing:.03em;border:1px solid #36506b;background:#13263b;color:#cad9e8}.rank-preferred{background:#173d30;border-color:#2d7c5c;color:#bff2d8}.rank-approved{background:#153752;border-color:#2f6891;color:#c9e8ff}.rank-watch{background:#4a3817;border-color:#8a6a2b;color:#ffe1a0}.rank-do-not-use{background:#4a2025;border-color:#91434c;color:#ffc4cb}.rank-text{font-size:16px!important}.pagination-bar{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px;margin-top:12px}.pager{display:flex;gap:10px;align-items:center}.rank-number{font-size:13px;font-weight:800;color:#8099b2}.score-cell{min-width:90px}.score-cell>strong{font-size:16px}.score-track{height:4px;background:#1b3148;border-radius:99px;overflow:hidden;margin-top:5px}.score-track span{display:block;height:100%;background:#4f9bf0}.confidence{display:inline-block;padding:3px 6px;border-radius:4px;font-size:9px;font-weight:800;background:#1b3148;border:1px solid #36516c}.confidence-high,.confidence-very-high{background:#16372c;border-color:#2c6d53;color:#bdebd3}.confidence-medium{background:#3f351d;border-color:#735f2f;color:#efd69b}.rank-status-form select{font-size:10px;padding:6px;min-width:105px}.score-method{margin-top:18px}.score-weight-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:10px 0 14px}.score-weight-grid div{background:#0a1727;border:1px solid #223b57;border-radius:8px;padding:10px;text-align:center}.score-weight-grid strong{font-size:18px;display:block}.score-weight-grid span{font-size:9px;color:#8ba5be;text-transform:uppercase;letter-spacing:.05em}.vendor-score-strip{display:grid;grid-template-columns:1.45fr repeat(6,1fr);gap:8px;margin-bottom:16px}.vendor-score-strip>div{background:#0d1d30;border:1px solid #29425f;border-radius:9px;padding:12px}.vendor-score-strip span{display:block;color:#86a1bb;text-transform:uppercase;letter-spacing:.06em;font-size:9px;margin-bottom:5px}.vendor-score-strip strong{font-size:19px}.vendor-score-main strong{font-size:30px}.vendor-score-main small{display:block;color:#829db8;font-size:10px;margin-top:4px}.ranked-location-row{display:grid;grid-template-columns:1fr auto;gap:14px;padding:11px 0;border-bottom:1px solid var(--line)}.ranked-location-row:last-child{border-bottom:0}.location-score{text-align:right}.location-score strong{display:block;font-size:18px}.location-score span{font-size:9px;color:var(--muted)}
@media(max-width:1200px){.vendor-filterbar{grid-template-columns:1fr 1fr 1fr}.vendor-score-strip{grid-template-columns:repeat(4,1fr)}.score-weight-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:800px){.vendor-workspace-head{flex-direction:column}.vendor-kpi-row{grid-template-columns:1fr 1fr}.vendor-filterbar{grid-template-columns:1fr}.vendor-score-strip{grid-template-columns:1fr 1fr}.score-weight-grid{grid-template-columns:1fr 1fr}.pagination-bar{align-items:flex-start;gap:10px;flex-direction:column}}

.map-head-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.route-chip{font-weight:700}
.route-source{font-size:12px;margin-top:7px;color:var(--muted,#64748b)}

/* Customers */
.vendor-approval-list{max-height:520px;overflow:auto;border:1px solid var(--border,#dbe2ea);border-radius:10px;margin:12px 0;padding:6px}
.approval-row{display:flex!important;align-items:flex-start;gap:10px;padding:10px;border-bottom:1px solid var(--border,#e6ebf0)}
.approval-row:last-child{border-bottom:0}
.record-card{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--border,#e6ebf0)}

/* Searchable/typeable dropdowns */
.typeahead-select{position:relative;width:100%}.typeahead-native{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important}.typeahead-select>input{padding-right:34px}.typeahead-select:after{content:'⌄';position:absolute;right:12px;top:8px;color:#8da6bf;pointer-events:none;font-size:18px}.typeahead-menu{display:none;position:absolute;z-index:3000;left:0;right:0;top:calc(100% + 4px);max-height:280px;overflow:auto;background:#091728;border:1px solid #31506f;border-radius:8px;box-shadow:0 14px 30px rgba(0,0,0,.35);padding:4px}.typeahead-menu.open{display:block}.typeahead-option{display:block;width:100%;text-align:left;background:transparent;border:0;border-radius:5px;padding:9px 10px;color:#eef6ff}.typeahead-option:hover,.typeahead-option:focus{background:#1f5fae;outline:none}.typeahead-empty{padding:10px;color:#8da6bf}.geo-action-row{display:flex;gap:12px;align-items:center}.geo-action-row .button{background:#173452;border:1px solid #315a82;color:#d9ecff;padding:9px 13px;border-radius:8px;cursor:pointer}

/* Role permission matrix */
.permission-panel{padding:0;overflow:hidden}
.permission-toolbar,.permission-save{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--border,#1f3a55)}
.permission-save{border-top:1px solid var(--border,#1f3a55);border-bottom:0;justify-content:flex-end}
.permission-table-wrap{overflow:auto;max-height:70vh}
.permission-table{width:100%;border-collapse:collapse;min-width:860px}
.permission-table th{position:sticky;top:0;z-index:2;background:#0d1d30}
.permission-table th:not(:first-child),.permission-toggle-cell{text-align:center;min-width:120px}
.permission-table .permission-group td{background:#10263e;font-weight:700;color:#c7def7;text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;padding-top:12px;padding-bottom:12px}
.permission-table input[type="checkbox"]{width:18px;height:18px;accent-color:#3888f2;cursor:pointer}
.permission-table input[type="checkbox"]:disabled{cursor:not-allowed;opacity:.7}
.permission-key{font-size:.72rem;margin-top:3px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.button.small{padding:8px 11px;font-size:.85rem}

.manager-share-box{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:rgba(18,54,88,.28);display:grid;gap:10px}.manager-share-actions{display:flex;gap:8px;flex-wrap:wrap}.manager-share-actions form{margin:0}.public-status-card{width:min(860px,calc(100% - 28px));margin:28px auto;padding:24px;border:1px solid #27445f;border-radius:16px;background:#0e2136}.public-status-banner{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;margin:18px 0;border-radius:12px;background:#15395c}.public-status-banner span{color:#9db9d2}.public-status-banner strong{font-size:1.15rem}.public-update-section{margin-top:22px}.public-timeline-row{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid #23405a}.public-timeline-row>span{white-space:nowrap;color:#8ea9c1;font-size:.9rem}.public-time-row{display:flex;justify-content:space-between;margin-top:12px;padding-top:12px;border-top:1px solid #23405a}

/* Provider dispatch review */
.review-dispatch-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.dispatch-review-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(320px,.75fr);gap:18px;align-items:start}.dispatch-provider-banner{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#0a192a}.dispatch-provider-banner span{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase}.section-title{padding-top:8px;border-top:1px solid var(--line);font-weight:800;color:#cfe3f7}.dispatch-readiness{position:sticky;top:18px}.ready-banner,.not-ready-banner{padding:11px 12px;border-radius:9px;font-weight:800;margin:10px 0}.ready-banner{background:#173d30;border:1px solid #2d7c5c;color:#bff2d8}.not-ready-banner{background:#4a3817;border:1px solid #8a6a2b;color:#ffe1a0}.review-list>div{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid var(--line)}.payload-preview{max-height:420px;overflow:auto;background:#071422;border:1px solid var(--line);border-radius:8px;padding:10px;font-size:.72rem;white-space:pre-wrap;word-break:break-word}.dispatch-review-form button[disabled]{opacity:.45;cursor:not-allowed}@media(max-width:1000px){.dispatch-review-grid{grid-template-columns:1fr}.dispatch-readiness{position:static}.dispatch-provider-banner{grid-template-columns:1fr}}

/* Vendor-selection workflow */
.selection-search-form{padding:20px}.selection-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.selection-grid .span-2{grid-column:span 2}.geocode-inline{align-self:end;height:42px}.selection-actions{display:flex;justify-content:flex-end;margin-top:18px}.selection-results-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px}.vendor-selection-list{display:flex;flex-direction:column;gap:12px}.selection-vendor-card{display:grid;grid-template-columns:44px minmax(0,1fr) 130px 150px 205px;gap:16px;align-items:center;border:1px solid var(--border,#203a55);border-radius:14px;padding:16px;background:rgba(7,24,42,.38)}.selection-rank{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#143c68;font-weight:800}.selection-vendor-title{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;font-size:1.05rem}.selection-badges,.selection-reasons{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.selection-reasons span{font-size:.78rem;color:#9ab4cf;border:1px solid #294761;border-radius:999px;padding:3px 7px}.selection-score-block{text-align:center}.selection-score-block>strong{display:block;font-size:2rem;line-height:1;color:#77b6ff}.selection-score-block>span{font-size:.78rem;color:#9ab4cf}.selection-route-block{display:grid;gap:8px}.selection-route-block div{display:flex;flex-direction:column}.selection-route-block span{font-size:.75rem;color:#8ca7c0}.selection-choose-form{margin:0}@media(max-width:1150px){.selection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.selection-vendor-card{grid-template-columns:40px minmax(0,1fr) 110px}.selection-route-block,.selection-choose-form{grid-column:2/-1}.selection-results-layout{grid-template-columns:1fr}}@media(max-width:720px){.selection-grid{grid-template-columns:1fr}.selection-grid .span-2{grid-column:auto}.selection-vendor-card{grid-template-columns:38px 1fr}.selection-score-block,.selection-route-block,.selection-choose-form{grid-column:2}.selection-result-head{align-items:flex-start}}


/* Vendor ranking methodology */
.ranking-guide-head{margin-bottom:18px}.ranking-formula{display:grid;grid-template-columns:180px 1fr;gap:18px;align-items:center;margin-bottom:18px}.formula-label{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.formula-parts{display:flex;gap:8px;flex-wrap:wrap}.formula-parts span{background:#0a1727;border:1px solid #29445f;border-radius:999px;padding:7px 10px;color:#b7cce0}.formula-parts b{color:#77b6ff}.ranking-steps{display:grid;gap:14px}.ranking-step{display:grid;grid-template-columns:52px minmax(0,1fr);gap:16px;overflow:visible}.ranking-step h2{margin:2px 0 8px}.ranking-step h3{font-size:14px;margin:0 0 9px;color:#d8e9fa}.ranking-step p{max-width:1100px}.step-number{width:42px;height:42px;border-radius:12px;background:#143c68;border:1px solid #315f8b;display:grid;place-items:center;font-size:18px;font-weight:900;color:#dcebff}.methodology-weights{margin-top:14px}.method-grid.two{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:14px}.compact-table th,.compact-table td{padding:8px 9px}.compact-table td:last-child,.compact-table th:last-child{text-align:right;width:80px}.calculation-card{background:#0a1727;border:1px solid #263f59;border-radius:11px;padding:14px}.calculation-card code,.formula-block{display:block;background:#07111f;border:1px solid #29445f;border-radius:8px;padding:11px 12px;color:#b9dcff;white-space:normal;overflow-wrap:anywhere;margin:9px 0}.method-note{border-left:3px solid #4f9bf0;background:#0a1727;padding:10px 12px;border-radius:0 8px 8px 0;color:#a9bfd5}.rating-example{display:flex;gap:8px;flex-wrap:wrap}.rating-example span{background:#0a1727;border:1px solid #29445f;border-radius:7px;padding:7px 9px}.formula-breakdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}.formula-breakdown>div{background:#0a1727;border:1px solid #29445f;border-radius:9px;padding:10px}.formula-breakdown span{display:block;color:#91aac2;font-size:11px}.formula-breakdown b{display:block;font-size:16px;margin-top:3px}.status-cap-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px}.status-cap-grid>div,.confidence-scale>div{background:#0a1727;border:1px solid #29445f;border-radius:9px;padding:11px}.status-cap-grid span,.confidence-scale span{display:block;color:#8da6bf;font-size:11px;margin-bottom:4px}.status-cap-grid .watch{border-color:#735f2f}.status-cap-grid .dnu{border-color:#7e3b3b}.confidence-scale{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}.ranking-summary{margin-top:18px}
@media(max-width:900px){.ranking-formula{grid-template-columns:1fr}.ranking-step{grid-template-columns:1fr}.method-grid.two{grid-template-columns:1fr}.formula-breakdown{grid-template-columns:1fr 1fr}.status-cap-grid{grid-template-columns:1fr 1fr}.confidence-scale{grid-template-columns:1fr 1fr}}
.peer-funnel{display:grid;gap:7px;margin:14px 0;max-width:760px}.peer-funnel>div{display:flex;gap:12px;align-items:center;background:#0a1727;border:1px solid #29445f;border-radius:8px;padding:10px 12px}.peer-funnel strong{min-width:90px;color:#78b8ff}.methodology-table{max-width:680px}.cost-weight-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:14px 0}.cost-weight-grid>div,.context-priority>div{background:#0a1727;border:1px solid #29445f;border-radius:9px;padding:11px}.cost-weight-grid strong,.context-priority strong{display:block;font-size:17px;color:#78b8ff}.cost-weight-grid span,.context-priority span{display:block;margin-top:4px;color:#a8bfd5}.context-priority{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}.method-grid.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}@media(max-width:1050px){.cost-weight-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.method-grid.three{grid-template-columns:1fr}.context-priority{grid-template-columns:1fr}}@media(max-width:700px){.cost-weight-grid{grid-template-columns:1fr 1fr}}

.vendor-map-rank-legend{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:12px;color:#a9bfd5}
.vendor-map-rank-legend span{display:inline-flex;align-items:center;gap:5px}
.vendor-map-rank-dot{width:9px;height:9px;border-radius:50%;display:inline-block;border:1px solid rgba(255,255,255,.35)}

.vendor-map-popup .leaflet-popup-content-wrapper{background:#0c1a2a;color:#e7f0f8;border:1px solid #29445f;border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.45)}
.vendor-map-popup .leaflet-popup-tip{background:#0c1a2a}
.vendor-map-popup .leaflet-popup-content{margin:12px 14px;width:auto!important}
.vendor-map-popup a{color:#76b7ff}
.vendor-map-popup-card{min-width:270px}
.vendor-map-popup-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.vendor-map-popup-name{font-size:15px;font-weight:800;line-height:1.2;color:#f2f7fc}
.vendor-map-popup-branch{font-size:11px;color:#8ea8c0;margin-top:3px}
.vendor-map-popup-rank{min-width:47px;height:38px;border:2px solid #4d6c89;border-radius:9px;display:flex;align-items:baseline;justify-content:center;gap:1px;padding:4px 5px;background:#07111f}
.vendor-map-popup-rank strong{font-size:17px;line-height:1}
.vendor-map-popup-rank span{font-size:9px;color:#89a0b6}
.vendor-map-popup-address{font-size:11px;color:#9eb4c8;margin:8px 0 9px;padding-bottom:8px;border-bottom:1px solid #20384f}
.vendor-map-preferred-contact{font-size:11px;padding:7px 8px;border-radius:7px;background:#0f2d22;border:1px solid #23533e;color:#b8e8cf;margin-bottom:8px}
.vendor-map-contact-list{display:grid;gap:5px;margin:8px 0 10px}
.vendor-map-contact-row{display:grid;grid-template-columns:55px 1fr;gap:8px;font-size:11px}
.vendor-map-contact-row>span{color:#7f98ae}
.vendor-map-contact-row strong,.vendor-map-contact-row a{overflow-wrap:anywhere}
.vendor-map-no-contact,.vendor-map-no-capabilities{font-size:11px;color:#72879a;font-style:italic}
.vendor-map-capability-title{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#7891a8;margin:9px 0 6px}
.vendor-map-capabilities{display:flex;gap:5px;flex-wrap:wrap}
.vendor-map-capability{display:inline-flex;align-items:center;gap:4px;padding:4px 6px;border:1px solid #2a4660;border-radius:7px;background:#0a1727;font-size:10px;color:#c6d8e7;max-width:150px}
.vendor-map-capability-icon{width:17px;height:17px;border-radius:5px;background:#153451;display:grid;place-items:center;font-size:10px;color:#e5f2ff;flex:0 0 17px}
.vendor-map-popup-foot{display:flex;justify-content:space-between;gap:10px;align-items:center;border-top:1px solid #20384f;margin-top:10px;padding-top:9px;font-size:10px;color:#8198ad}
.vendor-map-popup-foot a{font-weight:700;text-decoration:none;white-space:nowrap}


/* Vendor Selection: visible route map + delivery address */
.selection-delivery-block{
  border:1px solid #29445f;
  border-radius:10px;
  background:#0a1727;
  padding:12px;
  margin:2px 0 4px;
}
.selection-delivery-head{margin-bottom:8px}
.selection-delivery-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}
.selection-delivery-row input{width:100%}
.selection-map-panel{position:sticky;top:14px;z-index:1}
.selection-map-sticky{height:460px;border-radius:10px;overflow:hidden;border:1px solid #29445f}
.selection-vendor-card.is-map-active{
  border-color:#5aa7ff;
  box-shadow:0 0 0 1px rgba(90,167,255,.35),0 8px 24px rgba(0,0,0,.22);
}
.selection-popup-capabilities{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.selection-popup-capabilities span{
  display:inline-block;
  padding:3px 6px;
  border-radius:999px;
  background:#16324d;
  border:1px solid #31516d;
  font-size:10px;
}
@media(max-width:980px){
  .selection-map-panel{position:relative;top:auto}
  .selection-map-sticky{height:340px}
}


/* Vendor directory per-column filters */
.vendor-filterbar-main{display:grid;grid-template-columns:minmax(260px,1fr) 170px 120px auto auto;gap:8px;align-items:center}
.vendor-filter-grid thead{position:sticky;top:0;z-index:3;background:#0e1c2f}
.vendor-column-filters th{padding:7px 6px;background:#0a1727;border-bottom:1px solid #31516f}
.vendor-column-filters input,.vendor-column-filters select{min-width:0;width:100%;padding:7px 8px;font-size:12px;border-radius:6px}
.vendor-filter-stack{display:grid;grid-template-columns:minmax(110px,1fr) 82px;gap:5px}
.vendor-score-filter{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.vendor-score-filter input{min-width:58px}
@media(max-width:1200px){
  .vendor-filterbar-main{grid-template-columns:1fr 1fr 120px auto auto}
  .vendor-filter-grid{min-width:1250px}
}

/* Vendor Selection: simplified location/geocode form */
.selection-grid .span-4{grid-column:1/-1}
.selection-location-stack{display:grid;gap:12px;border:1px solid #29445f;border-radius:10px;background:#0a1727;padding:14px}
.selection-location-row{display:grid;grid-template-columns:minmax(0,1fr) 132px;gap:10px;align-items:end}
.selection-location-row label{min-width:0}
.selection-geocode-action{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.selection-geocode-action .secondary:disabled{opacity:.65;cursor:wait}
.geocode-status{height:42px;border:1px solid #29415e;border-radius:8px;background:#091728;color:#8da6bf;display:flex;align-items:center;justify-content:center;gap:7px;padding:0 10px;white-space:nowrap}
.geocode-status-icon{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:14px;background:#18304e;color:#8da6bf}
.geocode-status.success{border-color:#24744f;color:#b7efd2;background:#0d2c22}
.geocode-status.success .geocode-status-icon{background:#1f8a5d;color:#fff}
.geocode-status.error{border-color:#8f3f3f;color:#ffd0d0;background:#321818}
.geocode-status.error .geocode-status-icon{background:#b44848;color:#fff}
.geocode-status.pending{border-color:#31577e;color:#b9d7f3}
.geocode-status.pending .geocode-status-icon{background:#173a5d;color:#fff}
.geocode-status.optional{opacity:.75}
.selection-advanced{border:1px solid #29445f;border-radius:10px;background:#0a1727;overflow:hidden}
.selection-advanced summary{position:relative;cursor:pointer;list-style:none;padding:13px 14px;display:flex;justify-content:space-between;gap:12px;align-items:center;font-weight:800;color:#dceafa;user-select:none}
.selection-advanced summary::-webkit-details-marker{display:none}
.selection-advanced summary:after{content:'▾';color:#8da6bf;font-size:13px;transition:transform .15s ease}
.selection-advanced[open] summary{border-bottom:1px solid #29445f}
.selection-advanced[open] summary:after{transform:rotate(180deg)}
.selection-advanced-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:14px}
.selection-advanced-grid .advanced-wide{grid-column:1/-1}
@media(max-width:900px){.selection-advanced-grid{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.selection-grid .span-4{grid-column:auto}.selection-location-row{grid-template-columns:1fr}.geocode-status{justify-content:flex-start}.selection-advanced-grid{grid-template-columns:1fr}.selection-advanced-grid .advanced-wide{grid-column:auto}.selection-advanced summary{align-items:flex-start;flex-direction:column}.selection-advanced summary:after{position:absolute;right:28px}}

/* Vendor-selection breakdown weather */
.breakdown-weather-card{
  border:1px solid #29445f;
  border-radius:10px;
  background:#0a1727;
  padding:14px;
  min-width:0;
}
.breakdown-weather-card[hidden]{display:none!important}
.breakdown-weather-card.embedded{border:0;background:transparent;padding:0}
.breakdown-weather-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}
.breakdown-weather-current{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.breakdown-weather-icon{font-size:2.15rem;line-height:1}
.breakdown-weather-temp{font-size:1.85rem;line-height:1;font-weight:800;color:#eef7ff}
.breakdown-weather-condition{margin-top:4px;color:#b8cbe0;font-weight:650}
.breakdown-weather-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.breakdown-weather-metrics>div{border:1px solid #203b56;border-radius:8px;background:#0d1d30;padding:8px;min-width:0}
.breakdown-weather-metrics span{display:block;color:#86a3bf;font-size:.72rem;margin-bottom:3px}
.breakdown-weather-metrics strong{display:block;color:#edf6ff;font-size:.9rem;overflow-wrap:anywhere}
.breakdown-weather-source{margin-top:9px}
.breakdown-weather-card.is-loading{opacity:.82}
.breakdown-weather-card.is-error [data-weather-status]{color:#ff9f9f}
.breakdown-weather-card.is-error .breakdown-weather-current,
.breakdown-weather-card.is-error .breakdown-weather-metrics,
.breakdown-weather-card.is-error .breakdown-weather-source{display:none}
.selection-weather-panel{margin-bottom:14px}
.selection-weather-panel .breakdown-weather-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:900px){.breakdown-weather-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.breakdown-weather-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.breakdown-weather-head{flex-direction:column}}

/* Tenant module settings */
.module-settings-section{margin-bottom:16px}
.module-setting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.module-setting-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px;border:1px solid #29445f;border-radius:10px;background:#0a1727;cursor:pointer;min-height:82px}
.module-setting-card:hover{border-color:#3c6284;background:#0d1d30}
.module-setting-copy{display:grid;gap:5px;min-width:0}
.module-setting-copy strong{color:#eef7ff;font-size:15px}
.module-setting-copy span{color:#8fa8c0;font-size:12px;line-height:1.45}
.module-toggle{position:relative;flex:0 0 auto}
.module-toggle input{position:absolute;opacity:0;pointer-events:none}
.module-toggle-track{width:48px;height:27px;border-radius:999px;background:#26394d;border:1px solid #3b526a;display:block;position:relative;transition:.15s ease}
.module-toggle-knob{width:21px;height:21px;border-radius:50%;background:#a8b7c5;position:absolute;top:2px;left:3px;transition:.15s ease;box-shadow:0 1px 4px rgba(0,0,0,.35)}
.module-toggle input:checked + .module-toggle-track{background:#1e6ed5;border-color:#438ee8}
.module-toggle input:checked + .module-toggle-track .module-toggle-knob{left:22px;background:#fff}
.module-toggle input:focus-visible + .module-toggle-track{outline:2px solid #74b4ff;outline-offset:2px}
@media(max-width:850px){.module-setting-grid{grid-template-columns:1fr}}

/* Road-call call log */
.call-log-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px;padding:12px;border:1px solid #29445f;border-radius:10px;background:#0a1727}
.call-log-form .wide{grid-column:1/-1}
.call-log-list{display:grid;gap:8px}
.call-log-list .record{align-items:flex-start}
@media(max-width:900px){.call-log-form{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.call-log-form{grid-template-columns:1fr}.call-log-form .wide{grid-column:auto}}

/* Weather card when embedded in a road-call rail */
.event-rail .breakdown-weather-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
.event-rail .breakdown-weather-current{margin-bottom:10px}
.event-rail .breakdown-weather-temp{font-size:1.55rem}

/* New road call: quick unit creation */
.roadcall-unit-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;min-width:0}
.roadcall-unit-control>label{min-width:0}
.roadcall-add-unit-btn{height:42px;white-space:nowrap;padding-inline:14px}
.quick-unit-card{border:1px solid #31516d;border-radius:10px;background:#0a1727;padding:14px;margin:2px 0 4px}
.quick-unit-card[hidden]{display:none!important}
.quick-unit-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px}
.quick-unit-head strong{font-size:15px;color:#eef7ff}
.quick-unit-close{font-size:24px;line-height:1;padding:0 4px;color:#9eb5ca}
.quick-unit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.quick-unit-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}
.quick-unit-actions #quick-unit-status{margin-right:auto;min-height:20px}
@media(max-width:900px){.quick-unit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.roadcall-unit-control{grid-template-columns:1fr}.roadcall-add-unit-btn{width:100%}.quick-unit-grid{grid-template-columns:1fr}.quick-unit-actions{align-items:stretch}.quick-unit-actions button{width:100%}.quick-unit-actions #quick-unit-status{width:100%}}

/* Road call contact workflow */
.contact-link{color:#79b8ff;text-decoration:none;font-weight:700;overflow-wrap:anywhere}.contact-link:hover{text-decoration:underline;color:#b7d9ff}.contact-subline{display:block;color:var(--muted);font-size:11px;margin-top:3px}.email-service-inline{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;margin-top:9px}.email-service-inline select{width:auto;min-width:150px;padding:6px 28px 6px 8px;font-size:11px}.vendor-search-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.vendor-rec-contacts{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}.record-response-button{width:100%}.contact-notes-modal{position:fixed;inset:0;z-index:2500;background:rgba(2,9,18,.78);display:grid;place-items:center;padding:20px}.contact-notes-modal[hidden]{display:none!important}.contact-notes-dialog{width:min(720px,96vw);max-height:92vh;overflow:auto;box-shadow:0 18px 60px rgba(0,0,0,.45)}.contact-modal-close{font-size:28px;line-height:1;background:transparent;border:0;color:#a9bfd5;padding:0 4px}.contact-modal-close:hover{color:#fff;background:transparent}.contact-notes-form{display:grid;gap:13px}.contact-modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.vendor-response-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px;border:1px solid #2a4665;background:#0a1727;border-radius:10px}.vendor-response-fields[hidden]{display:none!important}.contact-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:2px}
@media(max-width:760px){.vendor-search-head{flex-direction:column}.email-service-inline{width:100%;justify-content:space-between}.contact-modal-grid,.vendor-response-fields{grid-template-columns:1fr}.vendor-contact-row{flex-direction:column}.contact-notes-modal{padding:10px}.contact-notes-dialog{width:100%;max-height:96vh}}


/* Vendor directory actions, deletion, and column filters */
.vendor-grid-panel{overflow-x:auto}
.vendor-row-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}
.vendor-row-actions .secondary,.vendor-row-actions .danger-outline{padding:6px 9px;font-size:11px}
.danger-outline{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:transparent;color:#ffb7bd;border:1px solid #7f3c46;border-radius:7px;padding:8px 11px;font:inherit;font-weight:700;cursor:pointer;text-decoration:none}
.danger-outline:hover{background:#3a1b22;border-color:#b65361;color:#ffd8dc}
.vendor-inactive{opacity:.62}
.vendor-inactive:hover{opacity:.86}
.vendor-column-filters th{vertical-align:top}
.vendor-column-filters input,.vendor-column-filters select{height:34px}
.vendor-column-filters .column-filter-submit{width:100%;margin-top:5px;padding:6px 8px;font-size:11px}
.vendor-column-filters .column-clear{display:flex;align-items:center;justify-content:center;min-height:34px;white-space:nowrap}
.vendor-workspace-head .inline-form{display:inline-flex;grid-template-columns:none;gap:0;margin:0}
@media(max-width:1200px){.vendor-data-grid.vendor-filter-grid{min-width:1350px}}

/* Coordinator links popup + tenant resource manager */
.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;width:100%}
.topbar-user{text-align:right;min-width:130px}
.coordinator-links-trigger{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.resource-count{min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#2f80ed;color:#fff;display:inline-grid;place-items:center;font-size:11px;font-weight:800}
.coordinator-links-dialog{width:min(720px,calc(100vw - 28px));max-height:min(760px,calc(100vh - 36px));padding:0;border:1px solid #31516f;border-radius:16px;background:#0e1c2f;color:#eef6ff;box-shadow:0 24px 80px rgba(0,0,0,.55)}
.coordinator-links-dialog::backdrop{background:rgba(2,8,16,.72);backdrop-filter:blur(3px)}
.resource-dialog-shell{display:grid;gap:14px;padding:20px;max-height:inherit;overflow:auto}
.resource-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding-bottom:14px}
.resource-dialog-head h2{margin-bottom:3px}
.resource-dialog-close{width:36px;height:36px;padding:0;border-radius:9px;background:#142a44;border:1px solid #31577e;color:#d7e9ff;font-size:24px;line-height:1}
.resource-link-search{margin:0}
.resource-link-list{display:grid;gap:9px}
.resource-link-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border:1px solid #29445f;border-radius:11px;background:#0a1727;color:#dceafa;transition:.14s ease}
.resource-link-card:hover{background:#10233a;border-color:#4c759d;transform:translateY(-1px)}
.resource-link-copy{display:grid;gap:4px;min-width:0}
.resource-link-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.resource-link-copy>span{color:#a8bdd2;font-size:12px}
.resource-link-copy small{color:#6f8da8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:560px}
.resource-link-arrow{font-size:20px;color:#77b8ff;flex:0 0 auto}
.resource-dialog-foot{display:flex;justify-content:flex-end;border-top:1px solid var(--line);padding-top:14px}
.resource-search-empty{padding:14px}
.resource-admin-list{display:grid;gap:10px}
.resource-admin-row{display:grid;grid-template-columns:1.05fr 1.7fr .8fr 1.4fr auto;gap:10px;align-items:end;padding:12px;border:1px solid #29445f;border-radius:10px;background:#0a1727}
.resource-admin-row label{min-width:0}
.resource-admin-row .resource-remove{height:42px;align-self:end}
.resource-description{min-width:0}
@media(max-width:1150px){.resource-admin-row{grid-template-columns:1fr 1fr}.resource-admin-row .resource-remove{justify-self:start}.resource-description{grid-column:1/-1}}
@media(max-width:700px){.topbar{height:auto;min-height:72px;padding:10px 0}.topbar-actions{align-items:flex-end;flex-direction:column;gap:8px}.topbar-user{order:-1}.coordinator-links-trigger{align-self:flex-end}.resource-admin-row{grid-template-columns:1fr}.resource-description{grid-column:auto}.resource-dialog-shell{padding:15px}}

/* Next-level vendor economics, integration studio and background jobs */
.vendor-economics-inline{display:grid;gap:3px;margin-top:9px;padding:9px 10px;border:1px solid #294a67;border-radius:9px;background:#0b1a2a}.vendor-economics-inline>strong{color:#dff1ff}.vendor-economics-inline>span{font-size:11px;line-height:1.45}.selection-economics-block{grid-column:2/-1;display:grid;gap:5px;margin:2px 0 7px;padding:10px 12px;border:1px solid #294a67;border-radius:10px;background:#0a1828}.selection-economics-block>div:first-child{display:flex;justify-content:space-between;gap:12px}.selection-economics-block>div:first-child strong{color:#dff1ff;font-size:1.05rem}.selection-economics-block details{margin-top:2px}.job-complete,.job-success{border-color:#2d7b59;color:#9de8c4}.job-running{border-color:#467da7;color:#b9ddff}.job-failed{border-color:#984851;color:#ffbbc1}.job-queued{border-color:#806c36;color:#ffe6a3}.integration-studio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.integration-environment-box{padding:12px;border:1px solid #29445f;border-radius:10px;background:#0a1727}.integration-run-debug pre{max-height:380px;overflow:auto}.quote-intel-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.vendor-cost-compare{font-variant-numeric:tabular-nums}.event-map-marker span,.vendor-map-marker span{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;font-weight:800;box-shadow:0 2px 8px rgba(0,0,0,.4)}.event-map-marker span{background:#ffb44a;color:#121a24;border:2px solid #fff}.vendor-map-marker span{background:#1f77b4;color:#fff;border:2px solid #d7edff}.vendor-map-marker.is-selected span{background:#28a66b;border-color:#d4ffe9}.selection-popup-capabilities{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.selection-popup-capabilities span{font-size:10px;border:1px solid #45647f;border-radius:999px;padding:2px 5px}
@media(max-width:850px){.integration-studio-grid,.quote-intel-kpis{grid-template-columns:1fr}.selection-economics-block{grid-column:auto}}

/* Dispatch Intelligence styles */
/* OTRLocal Dispatch Intelligence universal theme
   Loaded after app.css and command_center.css so every page inherits the dark command-center look. */
:root{
  --otr-bg:#050d16;
  --otr-bg-2:#081522;
  --otr-panel:#0b1927;
  --otr-panel-2:#0d2031;
  --otr-panel-3:#10283d;
  --otr-border:#1c3a54;
  --otr-border-strong:#285777;
  --otr-text:#e8f3ff;
  --otr-muted:#7793ae;
  --otr-blue:#128cff;
  --otr-cyan:#26c5ff;
  --otr-green:#39e889;
  --otr-yellow:#ffcc4d;
  --otr-red:#ff5c68;
  --otr-purple:#9a7cff;
  --otr-shadow:0 14px 42px rgba(0,0,0,.28);
  --otr-radius:10px;
}
html{background:var(--otr-bg);color-scheme:dark}
body.otr-authenticated{background:radial-gradient(circle at 72% 0%,rgba(11,92,145,.12),transparent 28%),linear-gradient(180deg,#07121d 0%,#040b12 100%);color:var(--otr-text);min-height:100vh}
body.otr-authenticated,.otr-authenticated input,.otr-authenticated select,.otr-authenticated textarea,.otr-authenticated button{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.otr-authenticated .content{background:transparent!important;color:var(--otr-text);min-height:100vh}
.otr-authenticated .content a{color:#4db6ff}
.otr-authenticated .content a:hover{color:#86d1ff}
.otr-authenticated h1,.otr-authenticated h2,.otr-authenticated h3,.otr-authenticated h4,.otr-authenticated h5,.otr-authenticated h6{color:#f5f9ff}
.otr-authenticated p,.otr-authenticated label,.otr-authenticated .muted,.otr-authenticated small{color:var(--otr-muted)}

/* Global page headers / breadcrumbs */
.otr-authenticated .page-header,.otr-authenticated .page-title,.otr-authenticated .header-row,.otr-authenticated .section-header{color:var(--otr-text)}
.otr-authenticated .eyebrow,.otr-authenticated .kicker,.otr-authenticated .section-label{color:#53bfff;letter-spacing:.11em;text-transform:uppercase;font-size:.72rem;font-weight:700}
.otr-authenticated hr{border:0;border-top:1px solid var(--otr-border)}

/* Universal surfaces */
.otr-authenticated .card,
.otr-authenticated .panel,
.otr-authenticated .box,
.otr-authenticated .section,
.otr-authenticated .well,
.otr-authenticated .stat,
.otr-authenticated .stat-card,
.otr-authenticated .metric-card,
.otr-authenticated .dashboard-card,
.otr-authenticated .detail-card,
.otr-authenticated .form-card,
.otr-authenticated .settings-card,
.otr-authenticated .table-card,
.otr-authenticated .toolbar-card,
.otr-authenticated .empty,
.otr-authenticated .callout{
  background:linear-gradient(180deg,rgba(14,32,48,.98),rgba(8,20,31,.98))!important;
  border:1px solid var(--otr-border)!important;
  color:var(--otr-text)!important;
  border-radius:var(--otr-radius)!important;
  box-shadow:var(--otr-shadow);
}
.otr-authenticated .card:hover,.otr-authenticated .panel:hover{border-color:#28526f}

/* Tables */
.otr-authenticated table{width:100%;border-collapse:separate;border-spacing:0;color:#c8d9e8;background:#091725;border:1px solid var(--otr-border);border-radius:9px;overflow:hidden}
.otr-authenticated table thead th{background:#0c1d2c;color:#7f9db8;text-transform:uppercase;letter-spacing:.045em;font-size:.72rem;border-bottom:1px solid var(--otr-border);padding:.72rem .78rem}
.otr-authenticated table tbody td{background:#091725;color:#c8d9e8;border-bottom:1px solid #142d43;padding:.7rem .78rem}
.otr-authenticated table tbody tr:last-child td{border-bottom:0}
.otr-authenticated table tbody tr:hover td{background:#0d2132}
.otr-authenticated .table-wrap,.otr-authenticated .table-responsive{border-radius:9px;overflow:auto;border:1px solid var(--otr-border);background:#091725}
.otr-authenticated .table-wrap table,.otr-authenticated .table-responsive table{border:0;border-radius:0}

/* Forms */
.otr-authenticated input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
.otr-authenticated select,
.otr-authenticated textarea{
  background:#071521!important;
  border:1px solid #294963!important;
  color:#eaf5ff!important;
  border-radius:7px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.02);
}
.otr-authenticated input::placeholder,.otr-authenticated textarea::placeholder{color:#54728e}
.otr-authenticated input:focus,.otr-authenticated select:focus,.otr-authenticated textarea:focus{outline:none!important;border-color:#168de8!important;box-shadow:0 0 0 3px rgba(18,140,255,.13)!important}
.otr-authenticated input[type="checkbox"],.otr-authenticated input[type="radio"]{accent-color:var(--otr-blue)}
.otr-authenticated fieldset{border:1px solid var(--otr-border);border-radius:8px;background:#091724}
.otr-authenticated legend{color:#a9c7df}

/* Buttons and action links */
.otr-authenticated button,.otr-authenticated .button,.otr-authenticated .btn,.otr-authenticated a.button{border-radius:7px;border:1px solid transparent;transition:filter .14s,transform .14s,border-color .14s,background .14s}
.otr-authenticated button:hover,.otr-authenticated .button:hover,.otr-authenticated .btn:hover{filter:brightness(1.08)}
.otr-authenticated .primary,.otr-authenticated .btn-primary,.otr-authenticated button.primary,.otr-authenticated a.primary{background:linear-gradient(180deg,#118df7,#0869c9)!important;border-color:#239eff!important;color:#fff!important;box-shadow:0 6px 18px rgba(9,109,206,.22)}
.otr-authenticated .secondary,.otr-authenticated .btn-secondary,.otr-authenticated button.secondary,.otr-authenticated a.secondary{background:#10243a!important;border-color:#294761!important;color:#b9d3ea!important}
.otr-authenticated .success,.otr-authenticated .btn-success{background:linear-gradient(90deg,#39e889,#2fcf78)!important;border-color:#43ef95!important;color:#04140b!important}
.otr-authenticated .danger,.otr-authenticated .btn-danger{background:#4e2028!important;border-color:#8e3945!important;color:#ffabb2!important}
.otr-authenticated .link-button{color:#87a6c2!important}

/* Badges, statuses, alerts */
.otr-authenticated .badge,.otr-authenticated .pill,.otr-authenticated .tag,.otr-authenticated .chip{background:#112a40;color:#96bddc;border:1px solid #254d6b;border-radius:999px}
.otr-authenticated .badge.success,.otr-authenticated .pill.success,.otr-authenticated .status-success{background:#143b29!important;border-color:#256a46!important;color:#62eca0!important}
.otr-authenticated .badge.warning,.otr-authenticated .pill.warning,.otr-authenticated .status-warning{background:#493818!important;border-color:#705825!important;color:#ffd572!important}
.otr-authenticated .badge.danger,.otr-authenticated .pill.danger,.otr-authenticated .status-danger{background:#4e2028!important;border-color:#7c303a!important;color:#ff8f99!important}
.otr-authenticated .badge.info,.otr-authenticated .pill.info{background:#11396a!important;border-color:#1c62a5!important;color:#77bcff!important}
.otr-authenticated .alert{border-radius:8px;border:1px solid #2a4962;background:#102338;color:#c9ddef;box-shadow:var(--otr-shadow)}
.otr-authenticated .alert.success{border-color:#216845;background:#102d20;color:#7ee7aa}
.otr-authenticated .alert.warning{border-color:#755d27;background:#332a13;color:#ffda77}
.otr-authenticated .alert.danger,.otr-authenticated .alert.error{border-color:#873b45;background:#3b1d23;color:#ff9aa3}

/* Tabs, menus, filter bars */
.otr-authenticated .tabs,.otr-authenticated .subnav,.otr-authenticated .toolbar,.otr-authenticated .filters,.otr-authenticated .filter-bar{background:#0b1b2a;border:1px solid var(--otr-border);border-radius:8px}
.otr-authenticated .tabs a,.otr-authenticated .subnav a{color:#7996b0;border-color:transparent}
.otr-authenticated .tabs a.active,.otr-authenticated .subnav a.active,.otr-authenticated .tab.active{background:#0b62b9;color:#fff;border-color:#158ee9}
.otr-authenticated .pagination a,.otr-authenticated .pagination span{background:#0d1f30;border:1px solid #254560;color:#86a7c4}
.otr-authenticated .pagination .active{background:#0b6fd7;color:#fff;border-color:#1794f7}

/* Details / definition lists */
.otr-authenticated dl,.otr-authenticated .detail-grid,.otr-authenticated .kv-grid{color:#c5d7e8}
.otr-authenticated dt,.otr-authenticated .kv-label{color:#6e8ca7}
.otr-authenticated dd,.otr-authenticated .kv-value{color:#e8f3ff}

/* Progress bars */
.otr-authenticated progress{accent-color:var(--otr-green)}
.otr-authenticated .progress,.otr-authenticated .progress-track{background:#10273a;border:1px solid #1c405d}
.otr-authenticated .progress-bar,.otr-authenticated .progress-fill{background:linear-gradient(90deg,#0f78df,#20c4ff)}

/* Dialogs / popovers */
.otr-authenticated dialog,.otr-authenticated .modal,.otr-authenticated .popover,.otr-authenticated .dropdown-menu{background:#0c1c2a!important;border:1px solid #294b66!important;color:#deedfa!important;box-shadow:0 22px 70px rgba(0,0,0,.56)!important}
.otr-authenticated dialog::backdrop{background:rgba(1,6,11,.72);backdrop-filter:blur(4px)}

/* Common admin/onboarding screens */
.otr-authenticated .step,.otr-authenticated .setup-step,.otr-authenticated .onboarding-step{background:#0d1d2c;border-color:#23445e;color:#a9c5dc}
.otr-authenticated .step.active,.otr-authenticated .setup-step.active,.otr-authenticated .onboarding-step.active{background:#0c4e88;border-color:#1488df;color:#fff}
.otr-authenticated .step.complete,.otr-authenticated .setup-step.complete{border-color:#246847;color:#63e69b}
.otr-authenticated .upload-card,.otr-authenticated .import-card{background:#0a1926!important;border:1px solid #1f3e58!important;color:#dbeaf6!important}
.otr-authenticated .upload-card:hover,.otr-authenticated .import-card:hover{border-color:#178adf!important;box-shadow:0 0 0 1px rgba(23,138,223,.18),var(--otr-shadow)}

/* Map / Leaflet integration without altering map tiles */
.otr-authenticated .leaflet-control,.otr-authenticated .map-control,.otr-authenticated .map-toolbar{background:#0b1b29!important;border-color:#294965!important;color:#d8e9f8!important}
.otr-authenticated .leaflet-popup-content-wrapper,.otr-authenticated .leaflet-popup-tip{background:#0c1c29!important;color:#eaf5ff!important}
.otr-authenticated .leaflet-control a{background:#0a1825!important;color:#7ec5ff!important;border-color:#284660!important}

/* Code/preformatted blocks */
.otr-authenticated code,.otr-authenticated pre{background:#06121d;color:#9cd5ff;border:1px solid #1a3951;border-radius:6px}

/* Universal empty state */
.otr-authenticated .empty-state,.otr-authenticated .no-results{background:#0a1926;border:1px dashed #2b4d66;color:#7793ae;border-radius:9px}

/* Public/login surface */
body.otr-public{min-height:100vh;background:radial-gradient(circle at 70% 10%,rgba(15,115,189,.2),transparent 34%),linear-gradient(145deg,#06111d,#02070d 70%);color:#eaf4ff}
.otr-public .content,.otr-public main{background:transparent}
.otr-public .card,.otr-public .panel,.otr-public form{background:linear-gradient(180deg,rgba(13,30,46,.98),rgba(6,17,27,.98));border:1px solid #24455f;border-radius:12px;box-shadow:0 24px 70px rgba(0,0,0,.45);color:#eaf4ff}
.otr-public h1,.otr-public h2,.otr-public h3{color:#f5f9ff}
.otr-public label,.otr-public p,.otr-public .muted{color:#88a5be}
.otr-public input:not([type="checkbox"]):not([type="radio"]),.otr-public select,.otr-public textarea{background:#071521;border:1px solid #294963;color:#fff;border-radius:7px}
.otr-public button,.otr-public .primary{background:linear-gradient(180deg,#118df7,#0869c9);border:1px solid #239eff;color:#fff;border-radius:7px}

/* Scrollbars */
.otr-authenticated *{scrollbar-color:#244966 #07131e;scrollbar-width:thin}
.otr-authenticated ::-webkit-scrollbar{width:9px;height:9px}
.otr-authenticated ::-webkit-scrollbar-track{background:#07131e}
.otr-authenticated ::-webkit-scrollbar-thumb{background:#244966;border-radius:8px;border:2px solid #07131e}
.otr-authenticated ::-webkit-scrollbar-thumb:hover{background:#326489}

/* Responsive refinements */
@media(max-width:900px){
  .otr-authenticated table{font-size:.9rem}
  .otr-authenticated .card,.otr-authenticated .panel{border-radius:8px!important}
}


:root{--cmd-bg:#07111d;--cmd-bg2:#0b1726;--cmd-card:#0d1b2a;--cmd-card2:#102237;--cmd-border:#1f3b57;--cmd-text:#e9f4ff;--cmd-muted:#86a0ba;--cmd-blue:#118dff;--cmd-cyan:#27c5ff;--cmd-green:#25e184;--cmd-red:#ff5964;--cmd-amber:#ffba35;--cmd-purple:#8c6cff;--cmd-shadow:0 14px 34px rgba(0,0,0,.28)}
html{background:var(--cmd-bg)}
body{background:radial-gradient(circle at 50% 0,#10243a 0,var(--cmd-bg) 38%,#050d16 100%);color:var(--cmd-text)}
.shell{min-height:100vh;background:transparent}.sidebar{width:218px;background:linear-gradient(180deg,#08131f 0,#07101a 100%);border-right:1px solid #16304a;box-shadow:12px 0 35px rgba(0,0,0,.22);padding:18px 14px;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;z-index:30}.content{margin-left:218px;padding:0 18px 26px;max-width:none;background:transparent;min-height:100vh}
.command-brand{display:flex;gap:11px;align-items:center;text-decoration:none;color:#fff;padding:4px 3px 13px}.brand-mark{width:34px;height:42px;display:inline-block;position:relative;background:linear-gradient(160deg,#1fc4ff,#0d6cff);clip-path:polygon(50% 0,88% 18%,88% 55%,50% 100%,12% 55%,12% 18%)}.brand-mark:after{content:"";position:absolute;inset:8px 9px 16px;border-radius:50%;border:3px solid #07111d}.brand-mark-dot{position:absolute;left:14px;top:12px;width:6px;height:6px;border-radius:50%;background:#07111d}.brand-copy strong{font-size:23px;letter-spacing:-1px}.brand-copy strong span{color:#188cff}.brand-copy small{display:block;font-size:7.8px;letter-spacing:1.1px;color:#7fa1c2;margin-top:3px}.tenant{font-size:11px;color:#63809d;padding:0 8px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar nav a{display:flex;align-items:center;gap:10px;padding:10px 11px;color:#a9bed2;text-decoration:none;border-radius:9px;border:1px solid transparent;font-size:13px;transition:.2s ease}.sidebar nav a:hover,.sidebar nav a:focus{background:#0e2640;border-color:#1a4773;color:#fff}.sidebar nav a[href*="operations"]{background:linear-gradient(90deg,#0b396b,#0d2b4a);border-color:#0a70d0;color:#fff;box-shadow:inset 3px 0 #20a1ff}.nav-icon{width:18px;text-align:center;color:#76bbff;font-size:15px}.nav-pill{margin-left:auto;font-size:8px;background:#126dff;color:#fff;padding:2px 5px;border-radius:9px}.logout{margin-top:18px;border-top:1px solid #183047;padding-top:14px}.logout .link-button{color:#738ca5}.command-topbar{height:68px;background:rgba(7,17,29,.86);backdrop-filter:blur(12px);border-bottom:1px solid #17314a;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:25;margin:0 -18px 14px;padding:0 18px}.global-search-wrap{position:relative;display:flex;align-items:center;width:min(510px,45vw)}.global-search{width:100%;height:40px;background:#0b1928;border:1px solid #28445f;border-radius:8px;color:#dbeeff;padding:0 42px 0 40px;outline:none}.global-search:focus{border-color:#178dff;box-shadow:0 0 0 3px rgba(17,141,255,.12)}.global-search-icon{position:absolute;left:14px;color:#93adca;font-size:20px}.global-search-wrap kbd{position:absolute;right:11px;color:#6e8aa6;background:#12273c;border:1px solid #26445e;border-radius:5px;padding:1px 5px;font-size:10px}.topbar-actions{display:flex;align-items:center;gap:12px}.live-indicator{display:flex;gap:8px;align-items:center;padding:0 10px}.live-indicator>span{width:8px;height:8px;border-radius:50%;background:var(--cmd-green);box-shadow:0 0 13px var(--cmd-green)}.live-indicator div{display:flex;flex-direction:column;font-size:10px}.live-indicator small{color:#718ca8}.command-user{display:flex;align-items:center;gap:9px;border-left:1px solid #223b54;padding-left:14px}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#0a64db,#24a4ff);color:#fff;font-weight:700}.command-user strong{font-size:12px}.command-user .muted{font-size:10px;color:#7e9ab4}.coordinator-links-trigger.secondary{background:#10243a;color:#aac6df;border-color:#26445f}.alert{border-radius:8px}
.command-page{display:flex;flex-direction:column;gap:12px}.command-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.command-kpi{min-height:98px;background:linear-gradient(180deg,#0e1d2d,#0b1826);border:1px solid #203c57;border-radius:10px;display:flex;align-items:center;gap:13px;padding:15px;box-shadow:var(--cmd-shadow)}.kpi-icon{width:44px;height:44px;border-radius:9px;display:grid;place-items:center;font-size:24px;font-weight:800;background:#102b45}.command-kpi.danger .kpi-icon{background:rgba(255,89,100,.15);color:var(--cmd-red)}.command-kpi.blue .kpi-icon{background:rgba(17,141,255,.16);color:var(--cmd-blue)}.command-kpi.green .kpi-icon{background:rgba(37,225,132,.13);color:var(--cmd-green)}.command-kpi.purple .kpi-icon{background:rgba(140,108,255,.16);color:var(--cmd-purple)}.command-kpi span{display:block;color:#a6bdd2;font-size:11px}.command-kpi strong{display:block;color:#f7fbff;font-size:26px;line-height:1.05;margin:3px 0}.command-kpi small{display:block;color:#6f8ba7;font-size:9.5px}.command-main-grid{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:12px}.command-card{background:linear-gradient(180deg,rgba(14,29,45,.98),rgba(8,20,32,.98));border:1px solid #21425f;border-radius:10px;box-shadow:var(--cmd-shadow)}.command-card-head{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid #1c354e}.command-card-head h2,.ai-head h2,.event-queue-head h2{margin:0;color:#f4f9ff;font-size:15px}.command-card-head p,.event-queue-head p{margin:2px 0 0;color:#708da8;font-size:9px}.map-toggle-row{display:flex;gap:4px}.map-toggle-row button{padding:5px 11px;background:#0c1b2b;border:1px solid #1d3c58;color:#809cb8;border-radius:5px;font-size:9px}.map-toggle-row button.active{background:#0b73dc;border-color:#1591ff;color:#fff}.command-map{position:relative;min-height:515px;overflow:hidden;background:radial-gradient(ellipse at 45% 50%,rgba(11,62,95,.42),rgba(4,13,22,.95) 65%),linear-gradient(135deg,#071a28,#07101a);border-radius:0 0 10px 10px}.command-map:before{content:"";position:absolute;inset:6% 5% 9% 4%;opacity:.35;background:linear-gradient(28deg,transparent 20%,#1f6386 21% 22%,transparent 23% 52%,#174f70 53% 54%,transparent 55%),linear-gradient(152deg,transparent 20%,#174f70 21% 22%,transparent 23% 65%,#1d5f80 66% 67%,transparent 68%);clip-path:polygon(3% 7%,20% 2%,36% 11%,51% 5%,70% 12%,89% 6%,96% 20%,92% 41%,98% 55%,89% 65%,86% 78%,74% 83%,66% 94%,48% 88%,38% 96%,25% 82%,15% 78%,11% 60%,5% 51%,8% 33%,2% 19%);border:1px solid #197bb2}.map-grid-lines{position:absolute;inset:0;background-image:linear-gradient(rgba(57,119,165,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(57,119,165,.07) 1px,transparent 1px);background-size:42px 42px}.map-state-labels span{position:absolute;font-size:9px;color:#3e6c91;letter-spacing:.8px}.map-marker{position:absolute;z-index:6;width:23px;height:23px;display:grid;place-items:center;border-radius:50%;transform:translate(-50%,-50%);text-decoration:none;font-size:11px;font-weight:800;transition:transform .15s}.map-marker:hover{transform:translate(-50%,-50%) scale(1.3);z-index:10}.vendor-marker{background:#0d68ff;color:#fff;border:2px solid #49a7ff;box-shadow:0 0 17px rgba(30,139,255,.8)}.event-marker{background:#e53c4c;color:#fff;border:2px solid #ff7b86;box-shadow:0 0 16px rgba(255,58,75,.75)}.event-marker.critical{width:29px;height:29px;box-shadow:0 0 22px rgba(255,58,75,1),0 0 0 8px rgba(255,64,78,.08)}.map-route{position:absolute;height:2px;background:linear-gradient(90deg,transparent,#158dff,#25d8ff,transparent);opacity:.55;transform-origin:left center;z-index:3;box-shadow:0 0 8px #178dff}.route-a{left:11%;top:62%;width:61%;transform:rotate(-15deg)}.route-b{left:27%;top:34%;width:56%;transform:rotate(13deg)}.route-c{left:46%;top:77%;width:33%;transform:rotate(-38deg)}.map-legend{position:absolute;left:12px;bottom:12px;z-index:8;display:flex;gap:14px;align-items:center;background:rgba(4,13,22,.88);border:1px solid #244965;border-radius:7px;padding:8px 10px;font-size:9px;color:#a9c3d9}.map-legend span{display:flex;align-items:center;gap:5px}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-dot.event{background:var(--cmd-red);box-shadow:0 0 8px var(--cmd-red)}.legend-dot.vendor{background:var(--cmd-blue);box-shadow:0 0 8px var(--cmd-blue)}.legend-line{width:24px;height:2px;background:var(--cmd-cyan)}.map-summary{position:absolute;right:12px;bottom:12px;z-index:8;background:rgba(4,13,22,.88);border:1px solid #244965;border-radius:7px;padding:8px 10px;color:#8ea9c2;font-size:9px}.map-summary strong{color:#fff}.map-summary span{padding:0 4px;color:#37617f}
.ai-panel{padding:12px}.ai-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid #1a3853;padding-bottom:10px}.ai-head>div{display:flex;align-items:center;gap:7px}.ai-head small{font-size:7px;color:#587b9b}.ai-spark{color:#18b7ff;font-size:22px}.beta{background:#123d27;border:1px solid #1d8c4b;color:#42ea8d;padding:2px 5px;border-radius:5px;font-size:8px}.ai-stages{padding:8px 0 4px}.ai-stage{display:grid;grid-template-columns:32px 1fr 20px;gap:9px;position:relative;padding:8px 0}.ai-stage:not(:last-child):before{content:"";position:absolute;left:15px;top:39px;height:34px;width:1px;background:#24445f}.ai-stage>span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#1b2e43;border:1px solid #3d5770;color:#c1d5e8;font-weight:700}.ai-stage.active>span{background:#076de0;border-color:#29b0ff;box-shadow:0 0 18px rgba(22,151,255,.75)}.ai-stage.done b{color:var(--cmd-green)}.ai-stage strong{font-size:13px}.ai-stage p{margin:3px 0;color:#7793ae;font-size:9px;line-height:1.4}.vendor-match-head{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #1a3853;padding-top:10px}.vendor-match-head h3{font-size:11px;margin:0}.vendor-match-head a{font-size:9px;color:#35aaff}.vendor-match-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}.vendor-match{display:grid;grid-template-columns:28px 1fr 48px;align-items:center;border:1px solid #233e58;background:#0a1724;border-radius:7px;padding:8px}.vendor-match.best{border-color:#0f76dc;box-shadow:inset 0 0 0 1px rgba(0,137,255,.12)}.vendor-rank{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#142a40;color:#9ec6e7;font-size:10px}.best .vendor-rank{background:#0b70df;color:#fff}.vendor-match-copy strong{display:block;font-size:10px}.vendor-match-copy small{display:block;color:#6e8ca7;font-size:8px;margin-top:2px}.vendor-score{text-align:right}.vendor-score strong{display:block;color:var(--cmd-green);font-size:12px}.vendor-score span{display:block;font-size:7px;color:#607f9d}.dispatch-cta{display:block;text-align:center;text-decoration:none;background:linear-gradient(90deg,#38e58a,#2fcf78);color:#04130b;font-weight:800;border-radius:6px;padding:11px;margin-top:10px;font-size:11px}.dispatch-cta:hover{filter:brightness(1.08)}
.event-queue-card{overflow:hidden}.event-queue-head{display:flex;align-items:center;justify-content:space-between;padding:11px 12px}.event-queue-head h2 span{display:inline-grid;place-items:center;min-width:22px;height:20px;background:#e44955;border-radius:10px;font-size:9px;margin-left:5px}.command-filters{display:flex;gap:6px}.command-filters select,.command-filters button{height:30px;background:#10243a;border:1px solid #294761;color:#9db8d0;border-radius:6px;padding:0 9px;font-size:9px}.command-filters button{background:#0b6fda;color:#fff}.queue-status-tabs{display:flex;gap:5px;padding:0 12px 9px;overflow-x:auto}.queue-status-tabs a{white-space:nowrap;text-decoration:none;color:#7f9bb5;background:#0d1c2b;border:1px solid #1d3953;padding:5px 9px;border-radius:6px;font-size:8.5px}.queue-status-tabs a.active{background:#0b58ab;color:#fff;border-color:#147fe6}.queue-status-tabs b{background:#1b3248;border-radius:8px;padding:1px 5px;margin-left:3px}.command-table-wrap{overflow:auto;border-top:1px solid #1b3650}.command-table{width:100%;border-collapse:collapse;min-width:1050px}.command-table th{font-size:8px;letter-spacing:.4px;text-transform:uppercase;color:#66839e;text-align:left;padding:8px;border-bottom:1px solid #1c354d}.command-table td{font-size:9px;color:#bfd0df;padding:8px;border-bottom:1px solid #142d43;vertical-align:middle}.command-table tr:hover td{background:#0e2133}.command-table td small{display:block;color:#68859f;margin-top:2px}.event-id{color:#d8eeff;text-decoration:none;font-weight:700}.priority-pill,.status-pill,.eta{display:inline-block;border-radius:10px;padding:3px 7px;font-size:8px;white-space:nowrap}.p-high,.p-critical,.p-emergency{background:#4f1e27;color:#ff8d97}.p-normal,.p-medium{background:#4d3817;color:#ffd16b}.p-low{background:#173b2a;color:#69e8a0}.status-new,.status-triage{background:#48202a;color:#ff7781}.status-vendor-assigned,.status-vendor-contacted,.status-en-route{background:#123b78;color:#6fb6ff}.status-on-site,.status-in-progress{background:#352573;color:#bda7ff}.status-waiting-approval,.status-waiting-on-parts{background:#4d3b13;color:#ffd76d}.eta.good{background:#123a29;color:#4bea91}.eta.warn{background:#493715;color:#ffd06b}.eta.bad{background:#4d2026;color:#ff7f88}.table-action{display:grid;place-items:center;width:24px;height:24px;border-radius:6px;background:#102c47;color:#5bb6ff;text-decoration:none}.empty-command{padding:18px;color:#7290aa;text-align:center}
.resource-dialog-shell{background:#0d1c2a!important;border:1px solid #284661;color:#d7e8f7}.resource-link-card{background:#0a1825!important;border-color:#1d3b55!important;color:#dcecff!important}.resource-link-card small,.resource-link-card span{color:#7693ad}.resource-link-search{background:#071521!important;border-color:#294963!important;color:#fff!important}
@media(max-width:1200px){.command-kpis{grid-template-columns:repeat(3,1fr)}.command-main-grid{grid-template-columns:1fr}.ai-panel{order:2}.command-map{min-height:430px}}
@media(max-width:860px){.sidebar{width:68px;padding:14px 8px}.content{margin-left:68px}.brand-copy,.tenant,.sidebar nav a span:not(.nav-icon):not(.nav-pill),.logout .link-button{display:none}.sidebar nav a{justify-content:center}.nav-icon{font-size:18px}.command-kpis{grid-template-columns:1fr 1fr}.global-search-wrap{width:42vw}.live-indicator{display:none}.command-user>div{display:none}}
@media(max-width:620px){.command-kpis{grid-template-columns:1fr}.command-topbar{padding:0 10px}.topbar-actions{gap:5px}.coordinator-links-trigger{display:none}.global-search-wrap{width:62vw}.command-map{min-height:360px}.command-card-head{align-items:flex-start;gap:8px;flex-direction:column}.event-queue-head{align-items:flex-start;flex-direction:column;gap:8px}.command-filters{width:100%;overflow:auto}}

/* ============================================================
   OTRLocal global shell compatibility repair
   The legacy app.css shell is a 230px CSS grid. The Dispatch
   Intelligence sidebar is fixed-position. Without this reset the
   browser reserves the old 230px grid column AND adds the new
   content margin, shrinking every page and causing cards to overlap.
   ============================================================ */
.shell{
  display:block!important;
  grid-template-columns:none!important;
  width:100%;
  min-width:0;
}
.content{
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  overflow-x:hidden;
}
.content>*{min-width:0}
.command-topbar{
  gap:16px;
  min-width:0;
}
.global-search-wrap{
  flex:1 1 360px;
  min-width:180px;
  max-width:510px;
  width:auto;
}
.topbar-actions{
  width:auto!important;
  flex:0 0 auto;
  min-width:0;
}
.command-kpis>* ,.command-main-grid>*{min-width:0}

/* Keep ordinary CRUD/list/form pages fluid inside the fixed shell. */
.content .page-head,
.content .panel-head{
  gap:14px;
  flex-wrap:wrap;
}
.content .page-head>*,
.content .panel-head>*{min-width:0}
.content .actions{flex-wrap:wrap;gap:8px}
.content .filters{flex-wrap:wrap}
.content .grid,
.content .grid.two,
.content .split,
.content .detail-grid,
.content .form-grid{min-width:0}
.content .panel,
.content .card,
.content form{max-width:100%;min-width:0}
.content table{max-width:100%}

/* Dashboard-specific responsiveness. */
@media(max-width:1200px){
  .command-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .command-main-grid{grid-template-columns:minmax(0,1fr)!important}
  .ai-panel{order:2}
}
@media(max-width:900px){
  .content .grid.two,
  .content .split,
  .content .detail-grid,
  .content .form-grid{grid-template-columns:minmax(0,1fr)!important}
  .content .wide{grid-column:auto!important}
}
@media(max-width:860px){
  .shell{display:block!important}
  .content{margin-left:68px!important;padding-left:14px!important;padding-right:14px!important}
  .command-topbar{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}
  .global-search-wrap{flex-basis:220px;width:auto!important}
}
@media(max-width:700px){
  .command-topbar{height:auto;min-height:64px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
  .global-search-wrap{order:2;flex:1 0 100%;max-width:none;width:100%!important}
  .topbar-actions{margin-left:auto}
  .command-kpis{grid-template-columns:minmax(0,1fr)}
  .content .page-head{flex-direction:column;align-items:stretch}
  .content .page-head .actions{justify-content:flex-start}
}



/* ============================================================
   OTRLocal list/index refresh + performance baseline
   Phase 1: list-heavy pages. Scoped by Flask request endpoint so
   dashboard/form-specific layouts are not affected.
   ============================================================ */
:root{--otr-fast-shadow:0 8px 22px rgba(0,0,0,.16)}
.otr-authenticated .command-topbar{backdrop-filter:none!important;background:#07111d!important}
.otr-authenticated dialog::backdrop{backdrop-filter:none!important}
.otr-authenticated .sidebar{box-shadow:6px 0 18px rgba(0,0,0,.15)!important}
.otr-authenticated .panel,.otr-authenticated .card,.otr-authenticated .command-card{box-shadow:var(--otr-fast-shadow)!important}
.otr-authenticated .content{contain:layout style}
.otr-authenticated .content img{max-width:100%;height:auto}
.otr-authenticated table{border-collapse:separate;border-spacing:0}
.otr-authenticated .table-wrap,.otr-authenticated .onboard-table-wrap,.otr-authenticated .command-table-wrap{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}

/* Expensive off-screen sections are skipped until they approach the viewport. */
.otr-authenticated .content > .panel:nth-of-type(n+3),
.otr-authenticated .content > .card:nth-of-type(n+3),
.otr-authenticated .content .record-list,
.otr-authenticated .content .table-wrap{content-visibility:auto;contain-intrinsic-size:auto 480px}

/* Index/list page family. */
.otr-authenticated:is(
  [data-endpoint="units.index"],[data-endpoint="drivers.index"],[data-endpoint="customers.index"],
  [data-endpoint="vendors.index"],[data-endpoint="invoices.index"],[data-endpoint="jobs.index"],
  [data-endpoint="reports.index"],[data-endpoint="admin.companies"],[data-endpoint="admin.users"],
  [data-endpoint="historical_repairs.index"],[data-endpoint="vendors.rankings"]
) .content{padding-bottom:34px}

.otr-authenticated:is(
  [data-endpoint="units.index"],[data-endpoint="drivers.index"],[data-endpoint="customers.index"],
  [data-endpoint="vendors.index"],[data-endpoint="invoices.index"],[data-endpoint="jobs.index"],
  [data-endpoint="reports.index"],[data-endpoint="admin.companies"],[data-endpoint="admin.users"],
  [data-endpoint="historical_repairs.index"],[data-endpoint="vendors.rankings"]
) h1{font-size:28px;line-height:1.15;letter-spacing:-.55px;margin:8px 0 4px;color:#f7fbff}

.otr-authenticated:is(
  [data-endpoint="units.index"],[data-endpoint="drivers.index"],[data-endpoint="customers.index"],
  [data-endpoint="vendors.index"],[data-endpoint="invoices.index"],[data-endpoint="jobs.index"],
  [data-endpoint="reports.index"],[data-endpoint="admin.companies"],[data-endpoint="admin.users"],
  [data-endpoint="historical_repairs.index"],[data-endpoint="vendors.rankings"]
) .page-head{padding:10px 0 14px;border-bottom:1px solid #16334c;margin-bottom:14px;align-items:flex-end}

.otr-authenticated:is(
  [data-endpoint="units.index"],[data-endpoint="drivers.index"],[data-endpoint="customers.index"],
  [data-endpoint="vendors.index"],[data-endpoint="invoices.index"],[data-endpoint="jobs.index"],
  [data-endpoint="reports.index"],[data-endpoint="admin.companies"],[data-endpoint="admin.users"],
  [data-endpoint="historical_repairs.index"],[data-endpoint="vendors.rankings"]
) .panel{background:#0b1927!important;border-color:#1f405b!important;border-radius:10px!important}

.otr-authenticated:is(
  [data-endpoint="units.index"],[data-endpoint="drivers.index"],[data-endpoint="customers.index"],
  [data-endpoint="vendors.index"],[data-endpoint="invoices.index"],[data-endpoint="jobs.index"],
  [data-endpoint="reports.index"],[data-endpoint="admin.companies"],[data-endpoint="admin.users"],
  [data-endpoint="historical_repairs.index"],[data-endpoint="vendors.rankings"]
) table{width:100%;background:#091623;border:1px solid #1c3b55;border-radius:9px;overflow:hidden}

.otr-authenticated:is(
  [data-endpoint="units.index"],[data-endpoint="drivers.index"],[data-endpoint="customers.index"],
  [data-endpoint="vendors.index"],[data-endpoint="invoices.index"],[data-endpoint="jobs.index"],
  [data-endpoint="reports.index"],[data-endpoint="admin.companies"],[data-endpoint="admin.users"],
  [data-endpoint="historical_repairs.index"],[data-endpoint="vendors.rankings"]
) th{background:#0d2031!important;color:#7395b3!important;text-transform:uppercase;letter-spacing:.055em;font-size:10px;padding:11px 12px!important;border-bottom:1px solid #23445e!important}

.otr-authenticated:is(
  [data-endpoint="units.index"],[data-endpoint="drivers.index"],[data-endpoint="customers.index"],
  [data-endpoint="vendors.index"],[data-endpoint="invoices.index"],[data-endpoint="jobs.index"],
  [data-endpoint="reports.index"],[data-endpoint="admin.companies"],[data-endpoint="admin.users"],
  [data-endpoint="historical_repairs.index"],[data-endpoint="vendors.rankings"]
) td{padding:10px 12px!important;border-bottom:1px solid #142e43!important;color:#c7d9e8;vertical-align:middle}

.otr-authenticated:is(
  [data-endpoint="units.index"],[data-endpoint="drivers.index"],[data-endpoint="customers.index"],
  [data-endpoint="vendors.index"],[data-endpoint="invoices.index"],[data-endpoint="jobs.index"],
  [data-endpoint="reports.index"],[data-endpoint="admin.companies"],[data-endpoint="admin.users"],
  [data-endpoint="historical_repairs.index"],[data-endpoint="vendors.rankings"]
) tbody tr:last-child td{border-bottom:0!important}

.otr-authenticated:is(
  [data-endpoint="units.index"],[data-endpoint="drivers.index"],[data-endpoint="customers.index"],
  [data-endpoint="vendors.index"],[data-endpoint="invoices.index"],[data-endpoint="jobs.index"],
  [data-endpoint="reports.index"],[data-endpoint="admin.companies"],[data-endpoint="admin.users"],
  [data-endpoint="historical_repairs.index"],[data-endpoint="vendors.rankings"]
) tbody tr:hover td{background:#0d2132!important}

.otr-authenticated:is(
  [data-endpoint="units.index"],[data-endpoint="drivers.index"],[data-endpoint="customers.index"],
  [data-endpoint="vendors.index"],[data-endpoint="invoices.index"],[data-endpoint="jobs.index"],
  [data-endpoint="reports.index"],[data-endpoint="admin.companies"],[data-endpoint="admin.users"],
  [data-endpoint="historical_repairs.index"],[data-endpoint="vendors.rankings"]
) .filters{background:#0a1825;border:1px solid #1d3b55;border-radius:9px;padding:10px;margin-bottom:12px;gap:8px}

.otr-authenticated:is(
  [data-endpoint="units.index"],[data-endpoint="drivers.index"],[data-endpoint="customers.index"],
  [data-endpoint="vendors.index"],[data-endpoint="invoices.index"],[data-endpoint="jobs.index"],
  [data-endpoint="reports.index"],[data-endpoint="admin.companies"],[data-endpoint="admin.users"],
  [data-endpoint="historical_repairs.index"],[data-endpoint="vendors.rankings"]
) .pagination{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:12px}

/* Avoid expensive paint effects on large result sets. */
@media (min-width:861px){
  .otr-authenticated table tbody tr{transform:translateZ(0)}
}
@media (prefers-reduced-motion:reduce){
  .otr-authenticated *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
@media(max-width:700px){
  .otr-authenticated:is([data-endpoint="units.index"],[data-endpoint="drivers.index"],[data-endpoint="customers.index"],[data-endpoint="vendors.index"],[data-endpoint="invoices.index"],[data-endpoint="jobs.index"],[data-endpoint="reports.index"],[data-endpoint="admin.companies"],[data-endpoint="admin.users"],[data-endpoint="historical_repairs.index"],[data-endpoint="vendors.rankings"]) h1{font-size:24px}
}

/* ============================================================
   OTRLocal detail/form refresh + performance baseline
   Phase 2: detail, edit, setup and configuration screens.
   Keep styles endpoint-scoped so Command Center/list layouts stay intact.
   ============================================================ */

/* Do not promote every table row to a GPU layer. Large imported datasets
   are faster and use less memory without thousands of composited layers. */
.otr-authenticated table tbody tr{transform:none!important}

/* Form/detail page family */
.otr-authenticated:is(
  [data-endpoint="breakdowns.new"],[data-endpoint="breakdowns.detail"],
  [data-endpoint="workorders.new"],[data-endpoint="workorders.detail"],
  [data-endpoint="customers.detail"],[data-endpoint="vendors.detail"],
  [data-endpoint="invoices.detail"],[data-endpoint="admin.user_detail"],
  [data-endpoint="admin.company_detail"],[data-endpoint="admin.company_profile"],
  [data-endpoint="admin.company_onboarding"],[data-endpoint="admin.modules"],
  [data-endpoint="admin.role_permissions"],[data-endpoint="admin.coordinator_links"],
  [data-endpoint="ai_dispatch.settings"],[data-endpoint="ai_dispatch.run_detail"],
  [data-endpoint="integrations.index"],[data-endpoint="workflows.index"],
  [data-endpoint="vendor_selection.search"],[data-endpoint="quote_price_check.index"],
  [data-endpoint="quote_price_check.parts_inventory"]
) .content{padding-bottom:42px}

.otr-authenticated:is(
  [data-endpoint="breakdowns.new"],[data-endpoint="breakdowns.detail"],
  [data-endpoint="workorders.new"],[data-endpoint="workorders.detail"],
  [data-endpoint="customers.detail"],[data-endpoint="vendors.detail"],
  [data-endpoint="invoices.detail"],[data-endpoint="admin.user_detail"],
  [data-endpoint="admin.company_detail"],[data-endpoint="admin.company_profile"],
  [data-endpoint="admin.company_onboarding"],[data-endpoint="admin.modules"],
  [data-endpoint="admin.role_permissions"],[data-endpoint="admin.coordinator_links"],
  [data-endpoint="ai_dispatch.settings"],[data-endpoint="ai_dispatch.run_detail"],
  [data-endpoint="integrations.index"],[data-endpoint="workflows.index"],
  [data-endpoint="vendor_selection.search"],[data-endpoint="quote_price_check.index"],
  [data-endpoint="quote_price_check.parts_inventory"]
) h1{font-size:28px;line-height:1.15;letter-spacing:-.55px;margin:8px 0 4px;color:#f7fbff}

.otr-authenticated:is(
  [data-endpoint="breakdowns.new"],[data-endpoint="breakdowns.detail"],
  [data-endpoint="workorders.new"],[data-endpoint="workorders.detail"],
  [data-endpoint="customers.detail"],[data-endpoint="vendors.detail"],
  [data-endpoint="invoices.detail"],[data-endpoint="admin.user_detail"],
  [data-endpoint="admin.company_detail"],[data-endpoint="admin.company_profile"],
  [data-endpoint="admin.company_onboarding"],[data-endpoint="admin.modules"],
  [data-endpoint="admin.role_permissions"],[data-endpoint="admin.coordinator_links"],
  [data-endpoint="ai_dispatch.settings"],[data-endpoint="ai_dispatch.run_detail"],
  [data-endpoint="integrations.index"],[data-endpoint="workflows.index"],
  [data-endpoint="vendor_selection.search"],[data-endpoint="quote_price_check.index"],
  [data-endpoint="quote_price_check.parts_inventory"]
) .panel{background:#0b1927!important;border:1px solid #1f405b!important;border-radius:10px!important;box-shadow:0 8px 22px rgba(0,0,0,.13)!important}

/* More compact, consistent field rendering = less layout/paint work and
   more data visible without scrolling. */
.otr-authenticated .content form label{min-width:0}
.otr-authenticated .content input:not([type="checkbox"]):not([type="radio"]),
.otr-authenticated .content select,
.otr-authenticated .content textarea{
  max-width:100%;
  box-sizing:border-box;
  border-color:#2a4b65!important;
  background:#071522!important;
  color:#dceaf5!important;
  box-shadow:none!important;
}
.otr-authenticated .content input:not([type="checkbox"]):not([type="radio"]):focus,
.otr-authenticated .content select:focus,
.otr-authenticated .content textarea:focus{
  border-color:#268cf5!important;
  outline:2px solid rgba(38,140,245,.14)!important;
  outline-offset:0;
}
.otr-authenticated .content textarea{min-height:92px;resize:vertical}
.otr-authenticated .content fieldset{min-width:0;border-color:#23445f}

/* Keep actions visible without sticky/fixed paint overhead. */
.otr-authenticated .content .actions,
.otr-authenticated .content .form-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.otr-authenticated .content button,
.otr-authenticated .content .button{box-shadow:none!important}

/* Skip rendering deeper form/detail sections until needed. This matters
   most on vendor/customer/onboarding pages with many panels and tables. */
.otr-authenticated:is(
  [data-endpoint="breakdowns.detail"],[data-endpoint="customers.detail"],
  [data-endpoint="vendors.detail"],[data-endpoint="admin.company_detail"],
  [data-endpoint="admin.company_onboarding"],[data-endpoint="integrations.index"],
  [data-endpoint="workflows.index"]
) .content .panel:nth-of-type(n+3),
.otr-authenticated:is(
  [data-endpoint="breakdowns.detail"],[data-endpoint="customers.detail"],
  [data-endpoint="vendors.detail"],[data-endpoint="admin.company_detail"],
  [data-endpoint="admin.company_onboarding"],[data-endpoint="integrations.index"],
  [data-endpoint="workflows.index"]
) .content details:nth-of-type(n+3){content-visibility:auto;contain-intrinsic-size:auto 420px}

/* Detail records */
.otr-authenticated .content .record{
  border-bottom-color:#18364e!important;
  padding-top:10px;
  padding-bottom:10px;
}
.otr-authenticated .content .record:last-child{border-bottom:0}

/* Onboarding remains wide but never forces the main shell wider. */
.otr-authenticated[data-endpoint="admin.company_onboarding"] .onboard-shell{
  grid-template-columns:minmax(220px,260px) minmax(0,1fr)!important;
  max-width:1500px;
}
.otr-authenticated[data-endpoint="admin.company_onboarding"] .onboard-nav{
  top:76px!important;
  max-height:calc(100vh - 92px);
  overflow:auto!important;
  scrollbar-width:thin;
}
.otr-authenticated[data-endpoint="admin.company_onboarding"] .wizard-grid,
.otr-authenticated[data-endpoint="admin.company_onboarding"] .weight-grid{min-width:0}

/* Permission/integration matrices scroll inside their own region instead of
   growing the whole document width. */
.otr-authenticated .permission-table,
.otr-authenticated .onboard-table-wrap,
.otr-authenticated .table-wrap{max-width:100%;overflow:auto;contain:layout paint}

/* Reduce animation work globally while keeping interaction feedback. */
.otr-authenticated .content .panel,
.otr-authenticated .content .card,
.otr-authenticated .content button,
.otr-authenticated .content .button,
.otr-authenticated .content input,
.otr-authenticated .content select{transition-duration:.12s!important}

@media(max-width:980px){
  .otr-authenticated[data-endpoint="admin.company_onboarding"] .onboard-shell{grid-template-columns:minmax(0,1fr)!important}
  .otr-authenticated[data-endpoint="admin.company_onboarding"] .onboard-nav{position:relative!important;top:auto!important;max-height:none}
  .otr-authenticated[data-endpoint="admin.company_onboarding"] .wizard-grid,
  .otr-authenticated[data-endpoint="admin.company_onboarding"] .wizard-grid.three,
  .otr-authenticated[data-endpoint="admin.company_onboarding"] .weight-grid{grid-template-columns:minmax(0,1fr)!important}
}

@media(max-width:700px){
  .otr-authenticated:is(
    [data-endpoint="breakdowns.new"],[data-endpoint="breakdowns.detail"],
    [data-endpoint="workorders.new"],[data-endpoint="workorders.detail"],
    [data-endpoint="customers.detail"],[data-endpoint="vendors.detail"],
    [data-endpoint="invoices.detail"],[data-endpoint="admin.user_detail"],
    [data-endpoint="admin.company_detail"],[data-endpoint="admin.company_profile"],
    [data-endpoint="admin.company_onboarding"],[data-endpoint="admin.modules"],
    [data-endpoint="ai_dispatch.settings"],[data-endpoint="integrations.index"]
  ) h1{font-size:24px}
}

/* =========================================================
   PERFORMANCE PHASE 3 — DASHBOARDS / MAPS / ANALYTICS
   Keep the Dispatch Intelligence look while minimizing paint,
   compositing and off-screen rendering work on heavy pages.
   ========================================================= */

/* Dashboard/analytics containers should isolate their own layout and paint. */
.otr-authenticated:is(
  [data-endpoint="dashboard.index"],
  [data-endpoint="reports.index"],
  [data-endpoint="reports.breakdown_areas"],
  [data-endpoint="vendors.map"],
  [data-endpoint="vendors.rankings"],
  [data-endpoint="ai_dispatch.settings"],
  [data-endpoint="ai_dispatch.run_detail"]
) .content{
  contain:layout style;
}

/* Heavy sections below the fold are skipped until needed. */
.otr-authenticated:is(
  [data-endpoint="dashboard.index"],
  [data-endpoint="reports.index"],
  [data-endpoint="reports.breakdown_areas"],
  [data-endpoint="vendors.rankings"]
) .content > :is(.panel,.card,.dashboard-card,.command-card,.table-wrap,.table-responsive):nth-of-type(n+3){
  content-visibility:auto;
  contain-intrinsic-size:auto 420px;
}

/* Command Center cards: reduce large repaint regions without changing layout. */
.otr-authenticated .command-page,
.otr-authenticated .command-main-grid,
.otr-authenticated .command-kpis,
.otr-authenticated .event-queue{
  min-width:0;
}
.otr-authenticated .command-card,
.otr-authenticated .command-kpi,
.otr-authenticated .ai-panel,
.otr-authenticated .event-queue{
  contain:layout paint;
  box-shadow:0 8px 22px rgba(0,0,0,.22)!important;
}
.otr-authenticated .command-kpi{
  transition:border-color .12s ease,background .12s ease!important;
}

/* Real maps are already visually rich; avoid expensive filters and huge shadows. */
.otr-authenticated :is(.leaflet-container,.map-container,#map,#vendorMap,#breakdownMap,.command-map){
  isolation:isolate;
  contain:layout paint;
  box-shadow:none!important;
  filter:none!important;
}
.otr-authenticated .leaflet-pane,
.otr-authenticated .leaflet-control-container{
  will-change:auto!important;
}
.otr-authenticated .leaflet-marker-icon,
.otr-authenticated .leaflet-marker-shadow{
  transition:none!important;
}

/* Decorative command-center map effects: preserve color, reduce GPU/paint cost. */
.otr-authenticated .map-marker{
  transition:none!important;
  box-shadow:0 0 7px rgba(28,145,255,.42)!important;
}
.otr-authenticated .event-marker{
  box-shadow:0 0 7px rgba(255,72,88,.45)!important;
}
.otr-authenticated .event-marker.critical{
  box-shadow:0 0 10px rgba(255,72,88,.58)!important;
}
.otr-authenticated .map-route{
  box-shadow:none!important;
}
.otr-authenticated .map-grid-lines{
  opacity:.7;
}

/* Analytics tables frequently become very large. Keep scrolling local and cheap. */
.otr-authenticated:is(
  [data-endpoint="reports.index"],
  [data-endpoint="reports.breakdown_areas"],
  [data-endpoint="vendors.rankings"]
) :is(.table-wrap,.table-responsive,.onboard-table-wrap){
  contain:layout paint;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}

/* Avoid repainting every row while a large analytics table scrolls. */
.otr-authenticated:is(
  [data-endpoint="reports.index"],
  [data-endpoint="reports.breakdown_areas"],
  [data-endpoint="vendors.rankings"]
) tbody tr{
  contain:layout style paint;
}

/* Charts/visualizations: isolate them from the rest of the document. */
.otr-authenticated :is(canvas:not(.leaflet-zoom-animated),svg.chart,.chart-container,.report-chart,.analytics-chart){
  contain:layout paint;
  max-width:100%;
}

/* Leaflet uses a canvas renderer for vendor circles/clusters. Do not apply the
   generic chart containment rule to that renderer or the pins can disappear. */
.otr-authenticated .leaflet-container canvas.leaflet-zoom-animated{
  contain:none!important;
  max-width:none!important;
}

/* Reduce hover/animation work on dense dashboards. */
.otr-authenticated:is(
  [data-endpoint="dashboard.index"],
  [data-endpoint="reports.index"],
  [data-endpoint="reports.breakdown_areas"],
  [data-endpoint="vendors.map"],
  [data-endpoint="vendors.rankings"]
) :is(.card,.panel,.command-card,.command-kpi,.metric-card,.stat-card){
  transition:border-color .1s ease,background-color .1s ease!important;
}

/* Prefer immediate interactions for users who request reduced motion. */
@media (prefers-reduced-motion:reduce){
  .otr-authenticated *,
  .otr-authenticated *::before,
  .otr-authenticated *::after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}

/* Responsive analytics behavior: stack cleanly before horizontal overflow becomes costly. */
@media(max-width:1100px){
  .otr-authenticated .command-main-grid{grid-template-columns:minmax(0,1fr)!important}
  .otr-authenticated .command-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:680px){
  .otr-authenticated .command-kpis{grid-template-columns:minmax(0,1fr)!important}
  .otr-authenticated .command-map{min-height:320px!important}
}
