:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#e9eef5;background:#0a1017;--bg:#0a1017;--nav:#0c131c;--panel:#111a24;--panel2:#0e1620;--line:#263443;--line2:#344455;--muted:#8f9cac;--text:#edf2f7;--red:#cf3036;--red2:#a92129;--blue:#3279d7;--green:#42b86d;--amber:#d8a535}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}[hidden]{display:none!important}
label{display:grid;gap:7px;color:#b9c4d0;font-size:12px;font-weight:700}input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--line2);border-radius:4px;background:#0b121a;color:#fff;outline:none}input:focus,select:focus,textarea:focus{border-color:#5795df;box-shadow:0 0 0 2px rgba(87,149,223,.12)}textarea{resize:vertical}.ghost,.secondary,.primary-blue,.dispatch-primary,.quick,.logout-button{border:1px solid var(--line2);border-radius:4px;color:#fff;font-weight:800}.ghost,.secondary{padding:9px 12px;background:#111a24}.secondary:hover,.ghost:hover{background:#192431}.primary-blue{padding:12px 15px;background:#245e9f;border-color:#3279d7}.dispatch-primary{padding:15px 24px;background:linear-gradient(180deg,#d43b40,#b7272d);border-color:#e45156;letter-spacing:.02em}.full-button{width:100%}

.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#08101a,#101b27)}.login-card{width:min(430px,100%);padding:34px;border:1px solid var(--line2);border-radius:8px;background:#0e1620;box-shadow:0 24px 70px rgba(0,0,0,.35)}.login-logo{display:block;width:235px;max-height:125px;object-fit:contain;object-position:left center}.login-card h1{margin:24px 0 5px}.login-card>p{margin:0 0 24px;color:var(--muted)}.login-card form{display:grid;gap:15px}.login-card form>button{padding:13px;border:1px solid #dc454a;border-radius:4px;background:var(--red);color:#fff;font-weight:900}.remember{display:flex;align-items:center;gap:8px}.remember input{width:auto}.login-error{min-height:18px;color:#ff7379;text-align:center;font-size:12px}

.topbar{height:76px;position:sticky;top:0;z-index:1100;display:flex;align-items:center;gap:22px;padding:0 20px;border-bottom:1px solid var(--line);background:#0a1119;box-shadow:0 4px 18px rgba(0,0,0,.18)}.topbar-brand{display:flex;align-items:center;gap:12px;min-width:285px}.topbar-brand img{width:148px;height:62px;object-fit:contain;object-position:left center}.topbar-brand>div{display:flex;flex-direction:column;padding-left:12px;border-left:1px solid var(--line)}.topbar-brand strong{font-size:11px}.topbar-brand small,.clock span{color:var(--muted);font-size:10px}.clock{display:flex;flex-direction:column;min-width:78px}.clock strong{font-size:17px}.topbar-status{display:flex;align-items:center;gap:8px;color:#74d896;font-size:11px;font-weight:800}.pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(66,184,109,.12)}.active-counter{display:flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid var(--line2);border-radius:4px;background:#111a24}.active-counter b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--red);font-size:12px}.active-counter span{font-size:10px;font-weight:850}.quick-actions{margin-left:auto;display:flex;gap:8px}.quick{min-height:42px;padding:0 14px;background:#111a24;font-size:10px}.quick.info{border-color:#315c88;color:#b9d9ff}.quick.danger{border-color:#8f3036;color:#ffd9dc;background:#231318}.logout-button{padding:10px 12px;background:transparent;font-size:10px}

.app-shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:calc(100vh - 76px)}.sidebar{position:sticky;top:76px;height:calc(100vh - 76px);display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--nav)}.sidebar nav{display:grid;gap:5px;padding:20px 10px}.nav-item{display:flex;align-items:center;gap:11px;width:100%;padding:13px 12px;border:0;border-left:3px solid transparent;border-radius:4px;background:transparent;color:#9eabb9;text-align:left;font-size:11px;font-weight:800;text-decoration:none;cursor:pointer}.nav-item span{width:22px;color:#b8c4d0;font-size:17px}.nav-item:hover{background:#131e29;color:#fff}.nav-item.active{border-left-color:#4b91e6;background:#182538;color:#fff}.nav-link{margin-top:8px;border-top:1px solid #223142}.sidebar-connection{margin:auto 14px 18px;display:flex;align-items:center;gap:10px;padding:12px;border-top:1px solid var(--line);color:#b9c4d0}.sidebar-connection div{display:flex;flex-direction:column}.sidebar-connection strong{font-size:10px}.sidebar-connection small{font-size:9px;color:var(--muted)}

.workspace{min-width:0;padding:20px 24px 80px}.page-section{scroll-margin-top:94px;margin:0 auto 20px;max-width:1500px}.page-title,.section-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:14px}.page-title span,.section-title span,.eyebrow{color:#e05257;font-size:9px;font-weight:900;letter-spacing:.16em}.page-title h1,.section-title h2{margin:3px 0 0;font-size:23px}.section-title p{margin:0;color:var(--muted);font-size:11px}.event-number{padding:8px 11px;border:1px solid var(--line);border-radius:4px;background:#0f1721;color:var(--muted);font-size:10px}
.dispatch-upper-grid{display:grid;grid-template-columns:minmax(430px,.95fr) minmax(480px,1.05fr);gap:14px}.corporate-card{border:1px solid var(--line);border-radius:6px;background:var(--panel);box-shadow:0 8px 22px rgba(0,0,0,.08)}.emergency-data-card,.map-card,.resources-card,.movement-panel,.add-vehicle-panel,.operational-report-panel,.body-status-layout>.corporate-card{padding:15px}.card-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:13px;padding-bottom:11px;border-bottom:1px solid var(--line)}.card-title>div{display:flex;align-items:center;gap:9px}.card-title span{display:grid;place-items:center;width:25px;height:25px;border-radius:3px;background:#182839;color:#80b6f0;font-size:10px;font-weight:900}.card-title h2{margin:0;font-size:15px}.card-title small{color:var(--muted);font-size:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .full{grid-column:1/-1}.input-action{display:grid;grid-template-columns:1fr auto}.input-action input{border-radius:4px 0 0 4px}.input-action button{border-radius:0 4px 4px 0}.tone-strip{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding:10px 11px;border:1px solid #29435e;border-radius:4px;background:#0c1621}.tone-strip>div:first-child{display:flex;flex-direction:column}.tone-strip span{color:#76aee9;font-size:8px;font-weight:900;letter-spacing:.1em}.tone-strip strong{margin-top:3px;font-size:11px}.tone-strip>div:last-child{display:flex;gap:6px}.tone-strip button{padding:7px 9px;font-size:9px}
.map-card{position:relative}.map-toolbar{position:absolute;right:15px;top:54px;z-index:500;display:flex;gap:5px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.map-toolbar button{font-size:9px}#dispatchMap{height:338px;border:1px solid var(--line2);border-radius:4px;background:#091018}.map-operational-hint{margin-top:7px;color:var(--muted);font-size:9px}.map-mobile-status{display:flex;align-items:center;gap:7px;margin-top:7px;padding:7px 9px;border:1px solid #71414a;border-left:3px solid #e13d4a;border-radius:4px;background:#1d1216;color:#f3c6cb;font-size:9px;font-weight:700}.map-mobile-status::before{content:"🚒";font-size:13px}.map-mobile-status[hidden]{display:none}.nearest-company-recommendation{margin-top:9px;padding:10px 11px;border:1px solid #2d5579;border-left:4px solid #49a2ef;border-radius:4px;background:#0c1926;display:flex;align-items:center;justify-content:space-between;gap:12px}.nearest-company-recommendation[hidden]{display:none}.nearest-company-recommendation>div{display:flex;flex-direction:column;gap:2px}.nearest-company-recommendation span{font-size:8px;font-weight:900;letter-spacing:.09em;color:#79b8f1}.nearest-company-recommendation strong{font-size:13px}.nearest-company-recommendation small{color:var(--muted)}.target-company.map-recommended{border-color:#4ba6f2!important;box-shadow:0 0 0 2px rgba(75,166,242,.2)}.leaflet-control-attribution{font-size:8px!important}.fireops-map-icon{display:grid!important;place-items:center;width:34px!important;height:34px!important;border:2px solid #fff;border-radius:50%;background:#102236;box-shadow:0 3px 10px rgba(0,0,0,.45);font-size:19px}.fireops-map-icon.company{background:#174b72}.fireops-map-icon.mobile{background:#e13d4a;animation:mapPulse 1.4s infinite}.fireops-map-icon.active{background:#d92837;animation:mapPulse 1.4s infinite}.fireops-map-popup strong{display:block;margin-bottom:4px}.fireops-map-popup span{display:block;font-size:11px}.fireops-map-popup button{margin-top:7px;border:0;border-radius:4px;padding:6px 8px;background:#216db8;color:white;font-weight:700}@keyframes mapPulse{50%{box-shadow:0 0 0 8px rgba(217,40,55,.2)}}.resources-card{margin-top:14px}.status-legend{display:flex;gap:16px;flex-wrap:wrap;margin:-2px 0 11px;color:var(--muted);font-size:9px}.status-legend span{display:flex;align-items:center;gap:5px}.status-legend i{width:8px;height:8px;border-radius:50%}.status-legend .available{background:var(--green)}.status-legend .attention{background:var(--amber)}.status-legend .selected{background:var(--blue)}.status-legend .unavailable{background:#66717e}
.target-company{display:grid;grid-template-columns:minmax(220px,.45fr) minmax(0,1.55fr);align-items:center;gap:14px;padding:9px 11px;border:1px solid var(--line);border-radius:5px;background:#0e1721;margin-top:7px}.target-company.disabled{opacity:.62}.target-company-head{display:flex;align-items:center;gap:9px}.target-company-head input{width:16px;height:16px}.target-company-head strong{font-size:12px}.target-company-head .company-state{margin-left:auto}.company-state{display:inline-flex;padding:5px 7px;border-radius:3px;font-size:8px;font-weight:900}.company-state.on{background:#123c26;color:#75d899}.company-state.off{background:#3c171b;color:#ff7b82}.target-vehicles{display:flex;gap:8px;flex-wrap:wrap;margin:0}.vehicle-choice{position:relative;display:flex;align-items:center;gap:8px;min-width:150px;padding:9px 11px;border:1px solid #3d7950;border-radius:4px;background:#12251b;color:#e9f5ed;font-size:10px}.vehicle-choice input{width:15px;height:15px;accent-color:#3279d7}.vehicle-choice:has(input:checked){border-color:#559aef;background:#142b48;box-shadow:0 0 0 1px rgba(85,154,239,.2)}.vehicle-choice.unavailable{border-color:#7a6230;background:#2a2415;color:#d8c99b;opacity:.75}.vehicle-choice.unavailable:has(input:disabled){border-color:#3a4653;background:#151d26;color:#7f8b98}.vehicle-driver{display:block;color:#8da0b2;font-size:8px}
.dispatch-summary-bar{position:sticky;bottom:0;z-index:800;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:14px;padding:13px 15px;border:1px solid #344456;border-radius:6px;background:rgba(15,24,34,.97);box-shadow:0 -10px 30px rgba(0,0,0,.22);backdrop-filter:blur(8px)}.dispatch-summary-bar>div{display:flex;flex-direction:column;min-width:0}.dispatch-summary-bar span{color:#7e8b99;font-size:8px;font-weight:900;letter-spacing:.13em}.dispatch-summary-bar strong{margin:3px 0;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dispatch-summary-bar small{color:#8190a0;font-size:9px}.dispatch-primary{min-width:240px}

.event-list,.company-list,.history-list{display:grid;gap:10px}.event-card{padding:15px;border:1px solid var(--line);border-left:4px solid var(--red);border-radius:5px;background:var(--panel)}.event-top,.history-top,.company-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.event-code{font-size:18px;font-weight:900;color:#ff6268}.event-card p,.history-card p{margin:7px 0;color:#bac5d0;font-size:11px}.event-targets{color:#8f9cac;font-size:10px}.event-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}.event-actions button{padding:8px 10px;border:1px solid #3b5065;border-radius:4px;background:#14202c;color:#dce7f2;font-size:8px;font-weight:900}.event-actions button:nth-last-child(-n+2){border-color:#794047;background:#261519;color:#ffd3d5}.close-event{padding:7px 9px;border:1px solid #794047;border-radius:4px;background:#261519;color:#ffc9cc;font-size:9px}.operations-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);gap:14px}.movement-grid{display:grid;grid-template-columns:1.2fr 1fr 1.2fr;gap:11px}.movement-actions{display:flex;align-items:center;gap:12px;margin-top:12px}.section-note{color:var(--muted);font-size:10px}.dispatch-log-preview{display:grid;gap:7px;margin-top:15px}.dispatch-log-preview article{display:grid;grid-template-columns:60px minmax(130px,.7fr) 1fr;gap:8px;padding:10px;border:1px solid var(--line);border-radius:4px;background:#0c141d;font-size:10px}.dispatch-log-preview time{color:#7d8b9b}.dispatch-log-preview p{grid-column:2/-1;margin:0;color:#c5ced8}.add-vehicle-choices{display:grid;gap:7px;margin:10px 0}.add-vehicle-choices .vehicle-choice{display:grid;grid-template-columns:auto auto 1fr}.add-vehicle-choices small{color:#8493a4}.general-alarm-panel{padding:15px;border:1px solid #604048;border-radius:6px;background:#151419}.general-alarm-panel.transmitting{border-color:#e55156}.general-alarm-actions{display:flex;gap:10px}.body-status-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}.company-card,.history-card{padding:11px;border:1px solid var(--line);border-radius:4px;background:#0d151e}.company-card.in-service{border-left:3px solid var(--green)}.company-card.out-service{border-left:3px solid var(--red)}.company-head strong{font-size:12px}.company-metrics{display:flex;gap:22px;margin:8px 0}.company-metrics span{color:var(--muted);font-size:9px}.company-metrics strong{display:block;color:#fff;font-size:12px}.mini-vehicle{margin-top:4px;color:#8794a2;font-size:9px}.mini-vehicle.on{color:#7fcea0}.manual-service-reason{margin:8px 0;padding:8px;border-left:3px solid var(--red);background:#26171b;font-size:10px}.manual-service-reason small{display:block;margin-top:3px;opacity:.7}.manual-service-button{width:100%;margin-top:9px;padding:8px;border:0;border-radius:3px;background:#7c252a;color:#fff;font-size:8px;font-weight:900}.manual-service-button.restore{background:#236f47}.history-card{padding:10px}.history-code{font-weight:900}.history-card time{color:#7e8a98;font-size:9px}.report-companies{display:grid;gap:7px;margin:14px 0}.report-row{display:grid;grid-template-columns:minmax(170px,1.3fr) minmax(170px,1fr) 120px;gap:9px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:4px;background:#0d151e}.report-head{border:0;background:transparent;color:var(--muted);font-size:9px}.notice-targets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:8px 0}.notice-targets label{display:flex;align-items:center;gap:7px;padding:8px;border:1px solid var(--line);border-radius:4px}.notice-targets input{width:auto}.empty{padding:16px;border:1px dashed var(--line2);color:#7c8998;text-align:center;font-size:10px}

.modal-backdrop{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:20px;background:rgba(3,7,12,.78)}.modal-card{width:min(580px,100%);padding:20px;border:1px solid var(--line2);border-radius:6px;background:#111a24;box-shadow:0 28px 80px rgba(0,0,0,.45)}.modal-card h2{margin:5px 0 16px}.modal-actions{display:flex;gap:8px;margin-top:14px}.escalation-modal-card{width:min(850px,94vw);max-height:90vh;overflow:auto}.escalation-targets{display:grid;gap:8px;margin-top:10px}.toast{position:fixed;left:50%;bottom:24px;z-index:5000;padding:10px 14px;border:1px solid var(--line2);border-radius:4px;background:#17212c;opacity:0;transform:translate(-50%,18px);transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}

.escalation-company{display:block;padding:14px}.escalation-company-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--line)}.escalation-company-title strong{font-size:13px}.escalation-company-title span{padding:4px 7px;border-radius:3px;background:#3c171b;color:#ff8b91;font-size:8px;font-weight:900}.escalation-company .target-vehicles{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;width:100%}.escalation-vehicle{width:100%;min-width:0;min-height:62px;padding:10px;align-items:flex-start;overflow:hidden}.escalation-vehicle input{flex:0 0 auto;margin-top:3px}.escalation-vehicle-info{display:flex;min-width:0;flex-direction:column;gap:3px}.escalation-vehicle-info strong{font-size:12px;line-height:1.2}.escalation-vehicle-info small{color:#7fd39d;font-size:8px;font-weight:900;letter-spacing:.05em}.escalation-vehicle.unavailable .escalation-vehicle-info small{color:#a6aeb8}.escalation-vehicle .vehicle-driver{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.additional-vehicle-tone{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0;padding:9px 10px;border:1px solid #315c88;border-radius:4px;background:#0c1621}.additional-vehicle-tone span{color:#76aee9;font-size:8px;font-weight:900;letter-spacing:.09em}.additional-vehicle-tone strong{font-size:10px;text-align:right}

@media(max-width:1250px){.topbar-brand{min-width:220px}.topbar-brand>div{display:none}.quick{padding:0 9px}.app-shell{grid-template-columns:190px}.dispatch-upper-grid{grid-template-columns:1fr}.map-card #dispatchMap{height:310px}.body-status-layout,.operations-grid{grid-template-columns:1fr}}
@media(max-width:900px){.topbar{height:auto;min-height:72px;flex-wrap:wrap;padding:8px 12px}.topbar-brand{min-width:180px}.quick-actions{order:5;width:100%;margin-left:0}.quick{flex:1}.app-shell{display:block}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line)}.sidebar nav{display:flex;overflow:auto;padding:8px}.nav-item{min-width:max-content}.sidebar-connection{display:none}.workspace{padding:14px 12px 70px}.dispatch-upper-grid,.operations-grid,.body-status-layout{grid-template-columns:1fr}.target-company{grid-template-columns:1fr}.dispatch-summary-bar{align-items:stretch;flex-direction:column}.dispatch-primary{width:100%;min-width:0}.movement-grid,.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}

.location-request-action{grid-template-columns:minmax(0,1fr) auto}.location-request-action button{white-space:nowrap}.location-request-status{display:block;margin-top:6px;color:#7f9fba;font-size:9px;line-height:1.4}.event-actions .location-event-button{border-color:#3975a3;background:#102b40;color:#bfe2ff}@media(max-width:620px){.location-request-action{grid-template-columns:1fr}.location-request-action input,.location-request-action button{border-radius:4px}.location-request-action button{margin-top:6px;min-height:38px}}
.dispatch-report-section,.reports-view-heading{display:none}.reports-view .topbar,.reports-view .sidebar,.reports-view #newDispatchSection,.reports-view #activeDispatchSection,.reports-view #movementSection,.reports-view #bodyStatusSection{display:none}.reports-view .app-shell{display:block;min-height:100vh}.reports-view .workspace{max-width:1180px;margin:0 auto;padding:38px 28px 70px}.reports-view .dispatch-report-section,.reports-view .reports-view-heading{display:block}.reports-view-heading{margin:0 auto 24px;padding:22px 24px;border:1px solid var(--line);border-left:4px solid #d43b40;border-radius:6px;background:var(--panel)}.reports-view-heading span{color:#e05257;font-size:10px;font-weight:900;letter-spacing:.16em}.reports-view-heading h1{margin:5px 0 7px;font-size:27px}.reports-view-heading p{margin:0;color:var(--muted);font-size:12px}.reports-return{display:inline-flex;margin-top:16px;padding:9px 12px;font-size:10px;text-decoration:none}.reports-view .operational-report-panel{margin-bottom:18px}
@media(max-width:600px){.clock,.topbar-status,.active-counter{display:none}.topbar-brand img{width:130px}.quick-actions{display:grid;grid-template-columns:1fr 1fr 1fr}.quick{font-size:8px}.page-title,.section-title,.card-title{align-items:flex-start;flex-direction:column}.status-legend{gap:8px}.target-vehicles{display:grid;grid-template-columns:1fr 1fr}.vehicle-choice{min-width:0}.escalation-modal-card{width:100%;padding:14px}.escalation-company .target-vehicles{grid-template-columns:1fr}.escalation-company-title{align-items:flex-start;flex-direction:column}.notice-targets,.report-row{grid-template-columns:1fr}.report-head{display:none}}
.history-list[hidden]{display:none}.monthly-report-filters{display:grid;grid-template-columns:1fr 220px auto;gap:12px;align-items:end}.monthly-report-filters button{min-height:42px}@media(max-width:800px){.monthly-report-filters{grid-template-columns:1fr}}
.tablet-approval-queue{position:fixed;right:18px;bottom:18px;z-index:5000;width:min(390px,calc(100vw - 36px));padding:15px;border:1px solid #4d7398;border-left:5px solid #52a9f4;border-radius:7px;background:#0b1a28;box-shadow:0 16px 42px #0009}.tablet-approval-queue[hidden]{display:none}.tablet-approval-queue span{display:block;color:#76b9f4;font-size:9px;font-weight:900;letter-spacing:.12em}.tablet-approval-queue h3{margin:6px 0;color:#fff;font-size:18px}.tablet-approval-queue p{margin:0;color:#c0d1df;font-size:12px;line-height:1.45}.tablet-approval-queue small{display:block;margin-top:8px;color:#89a5bc;font-size:10px}.tablet-approval-actions{display:flex;gap:8px;margin-top:13px}.tablet-approval-actions button{flex:1;border-radius:5px;padding:10px;border:1px solid;font-size:11px;font-weight:900}.tablet-approval-accept{border-color:#58c982!important;background:#2d9d5c;color:#06170c}.tablet-approval-omit{border-color:#b75d67!important;background:#32171d;color:#ffdfe2}
