:root{color-scheme:dark;--bg:#08090b;--panel:#0d0e10;--btn:#1a1c1f;--edge:#2e3034;--line:#393c41;--text:#f4f5f6;--muted:#91959e;--white:#f2f3f5;--green:#bce7cf;--danger:#e4a6a6;--corner:6px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif;font-synthesis:none;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;min-height:100%;overflow:hidden;background:var(--bg);color:var(--text)}button,input{font:inherit;-webkit-tap-highlight-color:transparent}button{cursor:pointer;user-select:none;touch-action:manipulation;border:1px solid var(--edge);background:var(--btn);color:var(--text);border-radius:var(--corner);font-size:11px;font-weight:700;letter-spacing:.075em;min-height:44px;padding:0 13px;white-space:nowrap}button:hover{border-color:#55585e;background:#25272b}button:active{transform:scale(.98)}button:disabled{opacity:.38;pointer-events:none}button:focus-visible,input:focus-visible{outline:2px solid #e5ebf5;outline-offset:2px}.accent{background:#f0f2f5;color:#0c0d0f;border-color:#f0f2f5}.accent:hover{background:#fff;border-color:#fff}.danger{color:#f1b3b3;border-color:#493537}.selected{background:#e8ebef!important;color:#0b0c0f!important;border-color:#e8ebef!important}.topbar{position:relative;z-index:20;height:62px;padding:10px 16px 9px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #25272a;background:#08090bf2}.brand{font-size:22px;font-weight:850;letter-spacing:-.06em;padding:0 7px;min-height:40px;background:transparent;border:0}.brand:hover{background:transparent}.top-right{display:flex;align-items:center;gap:7px}.top-chip{min-height:34px;font-size:10px;color:#c7c9cd;padding:0 11px;background:#141619}.dot-chip{min-width:35px;padding:0;font-size:13px}.dot-chip.good{color:#b8e8d0}.dot-chip.bad{color:#d4a5a5}.workspace{height:calc(100% - 127px);display:flex;min-height:0;position:relative}.map-stage{position:relative;flex:1;overflow:hidden;min-width:0;background:#101419;touch-action:none;cursor:grab}.map-stage.dragging{cursor:grabbing}.map-stage.route-edit{cursor:crosshair}.tile-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none}.tile-layer img{position:absolute;width:256px;height:256px;image-rendering:auto;opacity:.67;filter:grayscale(1) brightness(.62) contrast(1.12);user-select:none;pointer-events:none}#mapCanvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.map-top{position:absolute;left:12px;top:12px;right:70px;display:flex;gap:8px;align-items:center;pointer-events:none}.map-pill{pointer-events:auto;min-height:32px;background:#0a0b0de8;backdrop-filter:blur(6px);color:#cbced2;border-color:#3b3d40;font-size:10px;padding:0 10px;max-width:180px;overflow:hidden;text-overflow:ellipsis}.map-pill.state{color:#b7ddca}.map-pill.uncertain{color:#f0d5a3}.map-pill.alert{color:#f0b8b8}.map-controls{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:7px}.map-control{background:#0b0c0fe8;backdrop-filter:blur(6px);width:43px;height:43px;min-height:43px;font-size:22px;font-weight:400;padding:0}.attribution{position:absolute;bottom:11px;left:12px;color:#ccd0d6;background:#0a0b0dce;padding:5px 8px;font-size:9px;text-decoration:none;border-radius:3px;letter-spacing:.01em;z-index:4}.panel{position:relative;z-index:9;width:332px;flex:0 0 332px;background:#0b0c0f;border-left:1px solid #26282c;padding:13px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#303236 transparent}.panel::-webkit-scrollbar{width:5px}.panel::-webkit-scrollbar-thumb{background:#2e3137}.panel-inner{display:flex;flex-direction:column;gap:12px;min-height:100%}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:7px}.panel-title{font-size:13px;font-weight:850;letter-spacing:.1em;margin:0}.panel-head button{min-height:35px;font-size:10px}.panel-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.panel-actions.three{grid-template-columns:repeat(3,minmax(0,1fr))}.panel-actions.one{grid-template-columns:1fr}.panel-actions button{min-width:0;min-height:49px;overflow:hidden;text-overflow:ellipsis}.panel-actions button.wide{grid-column:1/-1}.panel-divider{height:1px;background:#282a2f;flex:0 0 auto}.small-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.small-grid button{padding:0 6px;min-height:42px;font-size:10px}.stack{display:flex;flex-direction:column;gap:7px}.row-card{display:flex;gap:7px;min-height:53px}.row-card>.main{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;text-align:left;padding-left:13px}.row-card>.mini{flex:0 0 56px;padding:0 4px;font-size:10px}.row-card>.mini-two{flex:0 0 71px;padding:0 6px}.row-card.is-active>.main{border-color:#dadddf;background:#24272c}.row-card>.main .sub{display:block;color:#92969e;font-size:9px;margin-top:4px;font-weight:500}.row-card.is-active>.main .sub{color:#c0c4c9}.pill-strip{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none}.pill-strip button{flex:1;padding:0 7px;font-size:10px;min-width:0}.text-field{border:1px solid #373b40;background:#17191c;color:#f3f5f7;border-radius:var(--corner);padding:0 14px;min-height:48px;width:100%;outline:0;font-size:13px;letter-spacing:.02em}.text-field::placeholder{color:#858991}.num-box{padding:15px;border:1px solid #303236;background:#131519;border-radius:var(--corner);font-weight:800;letter-spacing:.08em;font-size:12px;text-align:center;color:#c9cbd0}.num-box.big{font-size:19px;padding:21px 10px}.tiny-footer{margin-top:auto;display:flex;gap:7px}.tiny-footer>button{flex:1;font-size:10px}.bottom-nav{height:65px;padding:7px max(12px,env(safe-area-inset-right)) 10px max(12px,env(safe-area-inset-left));display:flex;gap:8px;background:#090a0c;border-top:1px solid #292b2f;position:relative;z-index:20}.nav-item{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:47px;font-size:10px;background:#121416}.nav-icon{font-size:17px;line-height:1;letter-spacing:0;font-weight:400}.nav-item.active{background:#e9eaec;color:#0a0b0c;border-color:#e9eaec}#toast{position:fixed;z-index:90;top:76px;left:50%;transform:translateX(-50%);background:#e6e8eb;color:#090a0b;border-radius:6px;padding:13px 18px;min-width:140px;text-align:center;font-size:11px;font-weight:800;letter-spacing:.05em;box-shadow:0 10px 40px #0008;max-width:min(95vw,440px)}#toast[hidden],.overlay[hidden],*[hidden]{display:none!important}.overlay{position:fixed;inset:0;z-index:99;background:#000b;display:flex;align-items:center;justify-content:center;padding:20px}.dialog{width:min(330px,100%);background:#111316;border:1px solid #3b3e42;border-radius:9px;padding:15px;display:grid;gap:13px}.dialog-line{width:100%;font-size:12px;letter-spacing:.09em;background:#1d2023;min-height:74px;white-space:normal;line-height:1.55}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dialog-actions>button{min-height:51px}.busy{opacity:.6;pointer-events:none}.pulse{animation:pulse 1.9s infinite}@keyframes pulse{0%,100%{box-shadow:inset 0 0 0 0 #fff0}50%{box-shadow:inset 0 0 0 2px #fff8}}.map-stage.no-tiles{background:radial-gradient(circle at center,#151a1f,#0d1013 75%)}.map-stage.no-tiles:before{content:"";position:absolute;inset:0;opacity:.14;background-image:linear-gradient(#53606b 1px,transparent 1px),linear-gradient(90deg,#53606b 1px,transparent 1px);background-size:52px 52px;pointer-events:none}.status-on{border-color:#40634e!important;color:#bce7cf!important}.status-off{border-color:#5d4741!important;color:#e8b5aa!important}a:focus-visible{outline:2px solid white;outline-offset:3px}
@media(max-width:720px){.topbar{height:56px;padding:8px 12px}.brand{font-size:20px}.top-chip{font-size:9px;padding:0 9px;min-height:34px}.workspace{height:calc(100% - 56px - 70px - env(safe-area-inset-bottom))}.bottom-nav{height:calc(70px + env(safe-area-inset-bottom));padding:7px 8px calc(10px + env(safe-area-inset-bottom));gap:6px}.nav-item{flex-direction:column;gap:2px;font-size:9px;padding:3px 0;min-height:50px}.nav-icon{font-size:18px}.panel{position:absolute;left:7px;right:7px;bottom:7px;top:auto;width:auto;max-height:min(49%,320px);border:1px solid #34363a;background:#0b0c0ff2;backdrop-filter:blur(14px);border-radius:9px;padding:12px;box-shadow:0 8px 35px #0008}.panel.editing{max-height:58%}.panel.closed{display:none}.map-top{left:10px;top:10px;right:65px}.map-controls{right:10px;top:10px}.attribution{bottom:9px;left:9px;font-size:8px}.panel-actions button{min-height:44px}.row-card{min-height:48px}}
@media(min-width:721px) and (max-width:960px){.panel{width:285px;flex-basis:285px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
