.content.dispatch-route-shell{padding:14px 16px 20px;background:#f3f5f7}
.dispatch-shell{display:flex;flex-direction:column;gap:10px;width:100%;min-height:calc(100dvh - 82px);max-width:none;margin:0}
.dispatch-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:3px 2px}
.dispatch-head h2{margin:2px 0 0;font-size:21px;letter-spacing:-.03em}.dispatch-head p{margin:3px 0 0;color:#657080;font-size:12px}
.dispatch-kicker{font-size:9px;font-weight:900;letter-spacing:.13em;color:#e0202f}.dispatch-head-actions{display:flex;align-items:center;gap:8px}.dispatch-head-action svg{width:16px;height:16px;flex:0 0 16px}
.dispatch-live{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid #9ee8c5;border-radius:999px;background:#ecfff6;color:#067a46;font-size:10px;font-weight:900}.dispatch-live i{width:7px;height:7px;border-radius:50%;background:#10b56f;box-shadow:0 0 0 5px #10b56f20;animation:dispatchPulse 1.5s infinite}
.dispatch-accuracy{display:flex;align-items:center;gap:11px;padding:9px 12px;border:1px solid #cfe0ec;border-radius:11px;background:linear-gradient(100deg,#f5fbff,#fff)}.dispatch-accuracy-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#e5f3ff;color:#1766db}.dispatch-accuracy-icon svg{width:16px;height:16px}.dispatch-accuracy b{font-size:12px;white-space:nowrap}.dispatch-accuracy span{flex:1;color:#66717e;font-size:10.5px}.dispatch-accuracy label{font-size:10.5px;font-weight:800;white-space:nowrap}
.dispatch-layout{display:grid;grid-template-columns:318px minmax(0,1fr);min-height:0;height:calc(100dvh - 205px);flex:1;border:1px solid #d9dfe5;border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 12px 34px rgba(15,23,42,.08)}
.dispatch-layout>aside{display:flex;min-height:0;flex-direction:column;border-right:1px solid #dde3e8;background:#fff}.dispatch-layout>main{position:relative;min-width:0;min-height:560px;background:#dce8ed}
.dispatch-search{display:flex;align-items:center;gap:8px;margin:12px;padding:0 10px;border:1px solid #d7dde3;border-radius:10px;background:#f8fafb}.dispatch-search svg{width:16px;color:#697382}.dispatch-search input{width:100%;padding:11px 0;border:0;outline:0;background:transparent;font-size:12px}
.dispatch-tabs{display:flex;margin:0 12px;border-radius:9px;background:#edf1f4;padding:3px}.dispatch-tabs button{flex:1;padding:8px;border:0;border-radius:7px;background:transparent;color:#657080;font-size:11px;cursor:pointer}.dispatch-tabs button.on{background:#fff;color:#111;box-shadow:0 2px 7px #1111;font-weight:900}.dispatch-tabs b{margin-left:4px;color:#7c8590}
.dispatch-filters{display:grid;gap:8px;padding:11px 12px;border-bottom:1px solid #e4e8ec}.dispatch-filters select{padding:8px;border:1px solid #d7dde3;border-radius:7px;background:#fff;font-size:11px}.dispatch-filters label{font-size:10.5px}.dispatch-list{min-height:0;overflow:auto;flex:1}.dispatch-list-item{display:flex;width:100%;gap:10px;align-items:flex-start;padding:12px;border:0;border-bottom:1px solid #ebedf0;background:#fff;text-align:left;cursor:pointer}.dispatch-list-item:hover{background:#f7f9fa}.dispatch-list-item span{min-width:0}.dispatch-list-item b,.dispatch-list-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dispatch-list-item b{font-size:11.5px}.dispatch-list-item small{margin-top:4px;color:#697381;font-size:10px}.dispatch-dot{flex:0 0 11px;width:11px;height:11px;margin-top:3px;border-radius:50%;background:#1f2937}.dispatch-dot.scheduled{background:#2a78d6}.dispatch-dot.in_progress{background:#e0202f}.dispatch-dot.completed,.dispatch-dot.available{background:#10a36f}.dispatch-dot.precise_off{background:#f59e0b;box-shadow:0 0 0 4px #f59e0b20}
.dispatch-state{display:grid;justify-items:center;align-content:center;gap:7px;min-height:190px;padding:32px 20px;text-align:center}.dispatch-state b{font-size:12px}.dispatch-state p{max-width:245px;margin:0;color:#707986;font-size:11px;line-height:1.5}.dispatch-state>span{width:23px;height:23px;border:3px solid #d7dde3;border-top-color:#e0202f;border-radius:50%}.dispatch-state.loading>span{animation:dispatchSpin .8s linear infinite}.dispatch-state.error>span{border:0;background:#e0202f}.dispatch-state.empty>span{border-color:#9aa5b1}
.dispatch-map{position:absolute;inset:0 0 104px}.dispatch-map .gm-style img{max-width:none!important;max-height:none!important}.dispatch-map-badge{position:absolute;z-index:3;right:12px;top:12px;display:flex;align-items:center;gap:6px;padding:7px 9px;border-radius:999px;background:#111d;color:#fff;font-size:9px;font-weight:800;backdrop-filter:blur(8px)}.dispatch-map-badge span{width:7px;height:7px;border-radius:50%;background:#1fd185}
.dispatch-map-controls{position:absolute;z-index:3;top:12px;left:12px;display:flex;overflow:hidden;border:1px solid #dfe4e8;border-radius:9px;background:#fff;box-shadow:0 3px 16px #1f29372c}.dispatch-map-controls button{padding:9px 11px;border:0;border-right:1px solid #e3e7eb;background:#fff;font-size:10px;font-weight:700;cursor:pointer}.dispatch-map-controls button:hover{background:#f3f5f7}
.dispatch-route{position:absolute;z-index:2;right:12px;bottom:12px;left:12px;display:grid;grid-template-columns:minmax(210px,1fr) 170px 138px auto auto;gap:8px;align-items:center;padding:11px 12px;border:1px solid #fff7;border-radius:12px;background:#fffffff2;box-shadow:0 5px 22px #15202c2b;backdrop-filter:blur(12px)}.dispatch-route b{font-size:11.5px}.dispatch-route p{margin:2px 0 0;color:#687381;font-size:9.5px}.dispatch-route select,.dispatch-route input{min-width:0;padding:8px;border:1px solid #d5dbe1;border-radius:7px;background:#fff;font-size:10px}.dispatch-route .btn{padding:8px 10px;font-size:10px}.dispatch-route-result{grid-column:1/-1;display:flex;gap:10px;color:#344054;font-size:10px}.dispatch-route-result span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dispatch-pop{min-width:230px}.dispatch-pop>*{display:block}.dispatch-pop p{margin:7px 0}.dispatch-pop small{color:#667085}.dispatch-pop div{display:flex;gap:7px;margin-top:10px}.dispatch-pop a{padding:6px 8px;border-radius:6px;background:#111;color:#fff;text-decoration:none;font-size:11px}
@keyframes dispatchSpin{to{transform:rotate(360deg)}}@keyframes dispatchPulse{50%{box-shadow:0 0 0 8px #10b56f00}}
@media(max-width:900px){.content.dispatch-route-shell{padding:12px}.dispatch-head{align-items:flex-start;flex-direction:column}.dispatch-head-actions{width:100%;flex-wrap:wrap}.dispatch-layout{grid-template-columns:1fr;height:auto;min-height:930px}.dispatch-layout>aside{max-height:330px;border-right:0;border-bottom:1px solid #dde3e8}.dispatch-layout>main{min-height:590px}.dispatch-map{bottom:196px}.dispatch-route{grid-template-columns:1fr 1fr}.dispatch-route>div:first-child,.dispatch-route-result{grid-column:1/-1}.dispatch-route .btn{width:100%}.dispatch-accuracy{align-items:flex-start;flex-wrap:wrap}.dispatch-accuracy span{flex-basis:70%}}
@media(max-width:430px){.content.dispatch-route-shell{padding:8px 8px calc(82px + env(safe-area-inset-bottom,0px))}.dispatch-shell{gap:8px}.dispatch-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:9px;padding:2px}.dispatch-head>div:first-child{min-width:0}.dispatch-head h2{font-size:19px}.dispatch-head p{display:none}.dispatch-head-actions{width:auto;align-self:center;flex-wrap:nowrap;gap:6px}.dispatch-head-actions .dispatch-head-action{display:inline-flex;flex:0 0 40px;width:40px;height:40px;min-height:40px;padding:0;border-radius:10px}.dispatch-head-action#dispatchRefresh{background:#fff;color:#111}.dispatch-head-action#dispatchLocate{border-color:#8fbaf0;background:#dcecff;color:#0b3a78;box-shadow:0 4px 12px rgba(11,58,120,.16)}.dispatch-head-action span{display:none}.dispatch-live{display:none}.dispatch-accuracy{padding:8px}.dispatch-accuracy-icon{display:none}.dispatch-accuracy span{flex-basis:100%;order:3}.dispatch-layout{border-radius:12px;min-height:930px}.dispatch-layout>aside{max-height:300px}.dispatch-layout:has(>aside.dispatch-list-empty){align-content:start}.dispatch-layout>aside.dispatch-list-empty{max-height:none;align-self:start}.dispatch-list-empty .dispatch-list{display:none}.dispatch-layout>main{min-height:620px}.dispatch-map-controls{right:8px;left:8px;top:8px;overflow:auto}.dispatch-map-controls button{flex:1;font-size:9px;padding:8px 6px}.dispatch-map-badge{top:49px;right:8px}.dispatch-route{grid-template-columns:1fr;right:8px;bottom:8px;left:8px}.dispatch-route>*,.dispatch-route>div:first-child,.dispatch-route-result{grid-column:1}.dispatch-map{bottom:300px}}
