@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap);.leaflet-image-layer,.leaflet-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane,.leaflet-pane>canvas,.leaflet-pane>svg,.leaflet-tile,.leaflet-tile-container,.leaflet-zoom-box{left:0;position:absolute;top:0}.leaflet-container{overflow:hidden}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.leaflet-tile::selection{background:#0000}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{height:1600px;-webkit-transform-origin:0 0;width:1600px}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-height:none!important;max-width:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer{max-height:none!important;max-width:none!important;padding:0;width:auto}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;height:0;width:0;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{height:1px;width:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{pointer-events:visiblePainted;pointer-events:auto;position:relative;z-index:800}.leaflet-bottom,.leaflet-top{pointer-events:none;position:absolute;z-index:1000}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{clear:both;float:left}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-pan-anim .leaflet-tile,.leaflet-zoom-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-control,.leaflet-popup-pane{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:grabbing}.leaflet-image-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-image-layer.leaflet-interactive,.leaflet-marker-icon.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{background:#ffffff80;border:2px dotted #38f}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px #000000a6}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;color:#000;display:block;height:26px;line-height:26px;text-align:center;text-decoration:none;width:26px}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:focus,.leaflet-bar a:hover{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom:none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.leaflet-bar a.leaflet-disabled{background-color:#f4f4f4;color:#bbb;cursor:default}.leaflet-touch .leaflet-bar a{height:30px;line-height:30px;width:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{background:#fff;border-radius:5px;box-shadow:0 1px 5px #0006}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);height:36px;width:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{height:44px;width:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{background:#fff;color:#333;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{overflow-x:hidden;overflow-y:scroll;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{border-top:1px solid #ddd;height:0;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;line-height:1.4;padding:0 5px}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:focus,.leaflet-control-attribution a:hover{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;height:.6669em;vertical-align:initial!important;width:1em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{background:#fffc;border:2px solid #777;border-top:none;box-sizing:border-box;line-height:1.1;padding:2px 5px 1px;text-shadow:1px 1px #fff;white-space:nowrap}.leaflet-control-scale-line:not(:first-child){border-bottom:none;border-top:2px solid #777;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers{box-shadow:none}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-layers{background-clip:padding-box;border:2px solid #0003}.leaflet-popup{margin-bottom:20px;position:absolute;text-align:center}.leaflet-popup-content-wrapper{border-radius:12px;padding:1px;text-align:left}.leaflet-popup-content{font-size:13px;font-size:1.08333em;line-height:1.3;margin:13px 24px 13px 20px;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{height:20px;left:50%;margin-left:-20px;margin-top:-1px;overflow:hidden;pointer-events:none;position:absolute;width:40px}.leaflet-popup-tip{height:17px;margin:-10px auto 0;padding:1px;pointer-events:auto;transform:rotate(45deg);width:17px}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;box-shadow:0 3px 14px #0006;color:#333}.leaflet-container a.leaflet-popup-close-button{background:#0000;border:none;color:#757575;font:16px/24px Tahoma,Verdana,sans-serif;height:24px;position:absolute;right:0;text-align:center;text-decoration:none;top:0;width:24px}.leaflet-container a.leaflet-popup-close-button:focus,.leaflet-container a.leaflet-popup-close-button:hover{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678,M12=0.70710678,M21=-0.70710678,M22=0.70710678);margin:0 auto;width:24px}.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{background-color:#fff;border:1px solid #fff;border-radius:3px;box-shadow:0 1px 3px #0006;color:#222;padding:6px;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none;white-space:nowrap}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before,.leaflet-tooltip-top:before{background:#0000;border:6px solid #0000;content:"";pointer-events:none;position:absolute}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{border-top-color:#fff;bottom:0;margin-bottom:-12px}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-left:-6px;margin-top:-12px;top:0}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{margin-top:-6px;top:50%}.leaflet-tooltip-left:before{border-left-color:#fff;margin-right:-12px;right:0}.leaflet-tooltip-right:before{border-right-color:#fff;left:0;margin-left:-12px}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}:root{--ink-950:#07141a;--ink-900:#0b1b22;--ink-800:#0f2731;--ink-700:#153341;--ink-600:#1c4152;--ink-500:#2b5b70;--ink-100:#c9d6db;--ink-200:#a9bbc2;--ink-300:#8fa9af;--ink-400:#6d8189;--teal-900:#0a3844;--teal-800:#0f4c5c;--teal-700:#146276;--teal-500:#2a9d8f;--teal-glow:#7cd3c6;--teal-500-soft:#2a9d8f24;--amber:#e76f51;--amber-700:#c1573b;--amber-soft:#e76f511f;--yellow:#e9c46a;--yellow-soft:#e9c46a2e;--danger:#c94a3f;--danger-soft:#c94a3f1f;--danger-100:#f0d0cd;--danger-200:#fdf5f4;--line:#e1e6ea;--line-2:#eef1f3;--paper:#f6f7f8;--paper-2:#fbfbfc;--white:#fff;--teal-text:#0d7a6c;--amber-text:#c1573b;--yellow-text:#a97f22;--text-1:#0b1b22;--text-2:#3a4a53;--text-3:#67757e;--text-4:#8d99a3;--accent-1:#0a3844;--accent-2:#1a5f75;--accent-3:#0b2b36;--accent-4:#061a22;--accent-glow-12:#7cd3c61f;--accent-glow-24:#7cd3c63d;--accent-glow-08:#7cd3c614;--shadow-1:0 1px 2px #0f1e280a,0 1px 1px #0f1e2808;--shadow-2:0 4px 12px #0f1e280f,0 2px 4px #0f1e280a;--shadow-3:0 12px 32px #0f1e281a,0 4px 12px #0f1e280f;--shadow-brand:0 8px 24px #00000040,inset 0 1px 0 #ffffff26;--shadow-modal:0 16px 40px #0000001f;--radius-xs:4px;--radius-s:6px;--radius:10px;--radius-l:16px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--space-10:40px;--text-xs:11px;--text-sm:12px;--text-base:13px;--text-md:14px;--text-lg:15px;--text-xl:16px;--text-2xl:17px;--text-3xl:20px;--text-4xl:22px;--text-5xl:24px;--text-6xl:26px;--text-7xl:28px;--text-8xl:32px;--text-display:44px;--bp-md:1100px;--z-base:1;--z-sticky:20;--z-overlay:400;--z-modal:1000;--z-toast:2000;--t-fast:0.12s;--t-base:0.15s;--t-slow:0.2s;--ease:ease;--brand:var(--teal-800);--brand-dark:var(--teal-900);--brand-light:var(--teal-500);--brand-accent:var(--teal-500);--brand-accent-dark:var(--teal-700);--text-primary:var(--text-1);--text-secondary:var(--text-3);--bg-page:var(--paper);--bg-card:var(--white);--bg-subtle:var(--paper);--border:var(--line-2);--border-light:var(--line-2);--border-color:var(--line-2);--error:var(--danger);--hover-row:var(--paper-2)}body{background:var(--paper);color:var(--text-1);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;line-height:1.5}button{background:#0000;border:0;cursor:pointer;font-family:inherit}input:not([type=checkbox]):not([type=radio]),select,textarea{background:#fff;border:1px solid var(--line);border-radius:8px;color:inherit;font-family:inherit;font-size:14px;padding:10px 14px;transition:all .2s ease;width:100%}input[type=checkbox],input[type=radio]{accent-color:var(--teal-700);cursor:pointer;flex:none;height:16px;margin:0;padding:0;width:16px}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:2px solid var(--teal-700);outline-offset:2px}input:not([type=checkbox]):not([type=radio]):focus-visible,select:focus-visible,textarea:focus-visible{background:var(--white);border-color:var(--teal-700);box-shadow:0 0 0 3px var(--teal-500-soft);outline:none}a{color:inherit;text-decoration:none}.mono{font-feature-settings:"tnum";font-family:JetBrains Mono,ui-monospace,monospace}.icon-md{flex-shrink:0;height:18px;width:18px}.icn{flex-shrink:0;height:16px;width:16px}.input-wrap .icn{color:var(--text-3);pointer-events:none}.input-wrap .input{padding-left:38px}.hidden{display:none!important}.btn{border:1px solid #0000;border-radius:var(--radius-s);font-family:inherit;font-size:var(--text-md);gap:var(--space-2);line-height:1.2;padding:11px var(--space-4);transition:transform var(--t-fast),background var(--t-base),box-shadow var(--t-base),border-color var(--t-base);-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:2px solid var(--teal-500);outline-offset:2px}.btn:disabled,.btn[disabled]{box-shadow:none;cursor:not-allowed;opacity:.5;transform:none}.btn-primary{box-shadow:inset 0 1px 0 #ffffff26,0 8px 20px -8px #0f4c5c80;color:var(--white)}.btn-primary:hover:not(:disabled){box-shadow:inset 0 1px 0 #ffffff26,0 10px 22px -8px #0f4c5c99}.btn-secondary{background:var(--white);border-color:var(--line);color:var(--text-1)}.btn-secondary:hover:not(:disabled){background:var(--paper);border-color:var(--line-2)}.btn-ghost{background:#0000;color:var(--text-2)}.btn-ghost:hover:not(:disabled){background:var(--paper);color:var(--text-1)}.btn-danger{background:var(--white);border:1px solid var(--danger-100);color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-200);border-color:var(--danger)}.btn-danger.solid{background:var(--danger);border-color:var(--danger);color:var(--white)}.btn-danger.solid:hover:not(:disabled){background:var(--amber-700);border-color:var(--amber-700)}.btn-sm{border-radius:var(--radius-s);font-size:var(--text-base);padding:var(--space-1) var(--space-3)}.btn-lg{font-size:var(--text-lg);padding:var(--space-3) var(--space-5)}.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh;transition:grid-template-columns var(--t-base) ease-in-out}.sidebar-overlay{display:none}.sidebar{background:#082129;background:var(--sidebar-bg,#082129);color:#c9d6db;color:var(--sidebar-text,#c9d6db);display:flex;flex-direction:column;height:100vh;overflow-y:auto;padding:20px 14px;position:sticky;scrollbar-color:#fff3 #0000;scrollbar-width:thin;top:0}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.sidebar::-webkit-scrollbar-thumb:hover{background:#ffffff59}.sidebar::-webkit-scrollbar-track{background:#0000}@media (max-width:768px){.app{grid-template-columns:1fr}.sidebar{bottom:0;box-shadow:var(--shadow-modal);left:0;position:fixed;top:0;transform:translateX(-100%);transition:transform var(--t-base) ease-in-out;width:260px;z-index:var(--z-modal)}.app.sidebar-open .sidebar{transform:translateX(0)}.app.sidebar-open .sidebar-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;display:block;inset:0;position:fixed;z-index:calc(var(--z-modal) - 1)}}@media (min-width:769px){.app.sidebar-open{grid-template-columns:72px 1fr}.app.sidebar-open .sidebar{min-width:0;padding:20px 12px;z-index:1}.app.sidebar-open .brand{gap:0;justify-content:center;padding-left:0;padding-right:0}.app.sidebar-open .brand-name,.app.sidebar-open .nav a .num,.app.sidebar-open .nav-label,.app.sidebar-open .nav-section,.app.sidebar-open .side-user .who{display:none}.app.sidebar-open .nav a{gap:0;justify-content:center;margin:0;padding:10px;position:relative}.app.sidebar-open .side-user{justify-content:center}.app.sidebar-open .side-user svg{display:none}.app.sidebar-open .nav a:hover:after{background:#0c2027;border-radius:6px;box-shadow:var(--shadow-3);color:#fff;content:attr(data-tooltip);font-size:12px;font-weight:500;left:calc(100% + 12px);padding:6px 10px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);white-space:nowrap;z-index:var(--z-modal)}}.sidebar .brand{align-items:center;border-bottom:1px solid #ffffff0f;display:flex;gap:12px;margin-bottom:14px;padding:6px 8px 22px}.brand-mark{background:linear-gradient(135deg,#2a9d8f,#0f4c5c);border-radius:9px;box-shadow:0 8px 24px #00000040,inset 0 1px 0 #ffffff26;display:grid;height:36px;place-items:center;width:36px}.brand-mark,.brand-name{color:#fff;font-weight:700}.brand-name{font-size:16px;letter-spacing:-.01em}.brand-name span{color:#7cd3c6;color:var(--sidebar-accent,#7cd3c6)}.nav-section{color:#6d8189;font-size:11px;font-weight:600;letter-spacing:.08em;padding:16px 4px 8px;text-transform:uppercase}.nav{grid-gap:4px;display:grid;gap:4px}.nav a{align-items:center;border-radius:8px;color:#a9bbc2;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:11px;margin:0 12px;padding:10px;transition:background .12s,color .12s,transform .12s}.nav a:hover{background:#ffffff0a;color:#fff}.nav a.active{background:#95e8c4;color:#102a2b;font-weight:600}.nav a.active svg{color:#102a2b}.nav a svg{color:#6d8189;height:18px;width:18px}.nav a .num{background:#ffffff0d;border-radius:999px;color:#6d8189;font-family:JetBrains Mono,monospace;font-size:11px;margin-left:auto;padding:2px 6px}.nav a.active .num{background:#102a2b1f;color:#102a2b}.side-foot{border-top:1px solid #ffffff0f;margin-top:auto;padding-top:16px}.side-user{align-items:center;border-radius:8px;cursor:pointer;display:flex;gap:10px;padding:8px 10px}.side-user:hover{background:#ffffff0a}.avatar{background:linear-gradient(135deg,#2a9d8f,#0f4c5c);border-radius:50%;color:#fff;display:grid;font-size:13px;font-weight:600;height:34px;place-items:center;width:34px}.side-user .who{line-height:1.2}.side-user .name{color:#fff;font-size:13px;font-weight:600}.side-user .role{color:#8fa9af;font-size:11px}.main{background:var(--paper);min-height:100vh;min-width:0;padding:0;position:relative}.topbar{background:#fff;border-bottom:1px solid var(--line-2);gap:16px;height:60px;padding:0 32px;position:sticky;top:0;z-index:20}.crumbs,.topbar{align-items:center;display:flex}.crumbs{color:var(--text-3);font-size:13px;gap:8px}.crumbs .sep{color:var(--text-4)}.crumbs .cur{color:var(--text-1);font-weight:500}.topbar-search{flex:1 1;margin-left:16px;max-width:380px;position:relative;z-index:100}.topbar-search input[type=text]{background:var(--paper);border:1px solid var(--line);border-radius:8px;font-size:13px;padding:8px 12px 8px 40px;width:100%}.topbar-search input[type=text]:focus{background:#fff;border-color:var(--teal-700);box-shadow:0 0 0 3px #1462761a;outline:0}.topbar-search svg{color:var(--text-4);height:16px;left:14px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);width:16px}.search-dropdown{background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-3);left:0;max-height:360px;overflow-y:auto;padding:6px;position:absolute;right:0;top:calc(100% + 6px);z-index:101}.search-empty{color:var(--text-3);font-size:12.5px;padding:12px 10px}.search-group+.search-group{border-top:1px solid var(--line-2);margin-top:6px;padding-top:6px}.search-group-label{color:var(--text-4);font-size:10.5px;font-weight:600;letter-spacing:.04em;padding:4px 8px;text-transform:uppercase}.search-item{border-radius:6px;cursor:pointer;display:flex;flex-direction:column;gap:1px;padding:7px 8px}.search-item.keyboard-active,.search-item:hover{background:var(--paper)}.search-item-title{color:var(--text-1);font-size:13px;font-weight:600}.search-item-sub{color:var(--text-3);font-size:11.5px}.topbar-right{align-items:center;display:flex;gap:14px;margin-left:auto}.icon-btn{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--text-2);cursor:pointer;display:grid;height:34px;place-items:center;position:relative;width:34px}.icon-btn:hover{background:var(--paper);color:var(--text-1)}.icon-btn .badge{background:var(--amber);border:2px solid #fff;border-radius:50%;color:#fff;display:grid;font-size:10px;font-weight:700;height:16px;padding:0;place-items:center;position:absolute;right:-3px;top:-3px;width:16px}.top-user{align-items:center;background:var(--paper);border:1px solid var(--line-2);border-radius:999px;display:flex;gap:10px;padding:4px 4px 4px 10px}.top-user .name{font-size:13px;font-weight:600}.top-user .avatar{font-size:11px;height:28px;width:28px}.page{padding:28px 32px 40px}.page-head{align-items:flex-end;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:24px}.page-title{font-size:26px;font-weight:700;letter-spacing:-.02em}.page-lede{color:var(--text-3);font-size:14px;margin-top:4px;max-width:640px}.page-actions{display:flex;flex-wrap:wrap;gap:10px}.card{background:#fff;border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow-1)}.card-head{align-items:center;border-bottom:1px solid var(--line-2);display:flex;gap:12px;justify-content:space-between;padding:16px 20px}.card-title{font-size:14px;font-weight:600}.card-sub{color:var(--text-3);font-size:12px;margin-top:2px}.card-body{padding:20px}.card-foot{align-items:center;border-top:1px solid var(--line-2);display:flex;gap:10px;padding:12px 20px}.stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:24px}.stat{background:#fff;border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow-1);overflow:hidden;padding:18px 20px;position:relative}.stat .lbl{align-items:center;color:var(--text-3);display:flex;font-size:12px;font-weight:500;gap:8px;letter-spacing:.02em;margin-bottom:10px;text-transform:uppercase}.stat .lbl .ico{background:var(--paper);border-radius:7px;color:var(--teal-800);display:grid;height:26px;place-items:center;width:26px}.stat .lbl .ico svg{height:14px;width:14px}.stat .val{font-family:JetBrains Mono,monospace;font-size:28px;font-weight:600;letter-spacing:-.02em}.stat .val .unit{color:var(--text-3);font-size:14px;font-weight:500;margin-left:4px}.stat .delta{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:600;gap:4px;margin-top:8px;padding:3px 7px}.delta.up{background:var(--teal-500-soft);color:#0d7a6c}.delta.down{background:var(--danger-soft);color:var(--danger)}.delta.flat{background:var(--paper);color:var(--text-3)}.stat .foot{color:var(--text-4);font-size:12px;margin-top:8px}.tbl-wrap{background:#fff;border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow-1);overflow:hidden}.tbl-toolbar{align-items:center;border-bottom:1px solid var(--line-2);display:flex;flex-wrap:wrap;gap:10px;padding:14px 18px}.filter-chip{align-items:center;background:#fff;border:1px solid var(--line);border-radius:999px;color:var(--text-2);cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;gap:6px;padding:5px 10px}.filter-chip:hover{background:var(--paper)}.filter-chip.on{background:var(--teal-800);border-color:var(--teal-800);color:#fff}table.data{border-collapse:collapse;width:100%}table.data th{background:var(--paper-2);color:var(--text-3);font-size:11px;font-weight:600;letter-spacing:.06em;padding:12px 18px;text-align:left;text-transform:uppercase}table.data td,table.data th{border-bottom:1px solid var(--line-2)}table.data td{font-size:13.5px;padding:14px 18px;vertical-align:middle}table.data tr:last-child td{border-bottom:0}table.data tr:hover td{background:var(--paper-2)}table.data td.right,table.data th.right{font-feature-settings:"tnum";font-family:JetBrains Mono,monospace;text-align:right}table.data th.sortable{cursor:pointer;transition:background .1s,color .1s;-webkit-user-select:none;user-select:none}table.data th.sortable:hover{background:#eef1f3;color:var(--text-1)}table.data th.sortable .sort-ico{display:inline-flex;flex-direction:column;gap:1px;margin-left:6px;opacity:.3;transition:opacity .12s;vertical-align:middle}table.data th.sortable:hover .sort-ico{opacity:.7}table.data th.sortable .sort-ico svg{color:var(--text-3);display:block;height:5px;width:9px}table.data th.sortable.active .sort-ico{opacity:1}table.data th.sortable.active,table.data th.sortable.asc .sort-ico .up,table.data th.sortable.desc .sort-ico .down{color:var(--teal-800)}table.data th.sortable.asc .sort-ico .down,table.data th.sortable.desc .sort-ico .up{opacity:.25}.badge{align-items:center;border-radius:999px;display:inline-flex;font-size:var(--text-sm);font-weight:600;gap:6px;letter-spacing:.01em;padding:3px 9px;white-space:nowrap}.badge .dot{border-radius:50%;height:6px;width:6px}.b-teal{background:var(--teal-500-soft);color:var(--teal-text)}.b-teal .dot{background:var(--teal-text)}.b-amber{background:var(--amber-soft);color:var(--amber-700)}.b-amber .dot{background:var(--amber)}.b-yellow{background:var(--yellow-soft);color:var(--yellow-text)}.b-yellow .dot{background:var(--yellow)}.b-gray{background:var(--line-2);color:var(--text-2)}.b-gray .dot{background:var(--text-4)}.b-danger{background:var(--danger-soft);color:var(--danger)}.b-danger .dot{background:var(--danger)}.row-actions{display:flex;gap:6px;justify-content:flex-end}.row-btn{background:#0000;border:1px solid #0000;border-radius:var(--radius-s);color:var(--text-3);cursor:pointer;display:grid;height:28px;place-items:center;transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast);width:28px}.row-btn:hover{background:var(--paper);border-color:var(--line);color:var(--text-1)}.row-btn:focus-visible{outline:2px solid var(--teal-500);outline-offset:1px}.dash-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1.6fr 1fr;margin-bottom:16px}.chart-wrap{height:220px;position:relative}.legend{align-items:center;color:var(--text-3);display:flex;font-size:var(--text-sm);gap:14px;margin-top:12px}.legend .swatch{border-radius:2px;display:inline-block;height:10px;width:10px}.mini-map-wrap{background:#dfe5e8;border-radius:8px;height:220px;overflow:hidden;position:relative}#dash-mini-map{inset:0;position:absolute}.recent-route-item{grid-gap:12px;align-items:center;border-bottom:1px solid var(--line-2);cursor:pointer;display:grid;gap:12px;grid-template-columns:1fr auto;padding:12px 0}.recent-route-item:last-child{border-bottom:0}.recent-route-item:hover .rr-name{color:var(--teal-800)}.rr-name{font-size:var(--text-base);font-weight:600;transition:color var(--t-fast)}.rr-meta{align-items:center;color:var(--text-3);display:flex;font-size:var(--text-sm);gap:10px;margin-top:2px}.rr-meta .sep{background:var(--text-4);border-radius:50%;height:3px;width:3px}.rr-val{font-family:JetBrains Mono,monospace;font-size:var(--text-base);font-weight:600;text-align:right}.rr-val .u{color:var(--text-3);font-size:var(--text-xs)}.chart-tooltip{background:var(--ink-900);border-radius:var(--radius-s);box-shadow:var(--shadow-3);color:var(--white);font-size:var(--text-sm);font-weight:500;padding:10px 12px;pointer-events:none;position:absolute;transform:translate(-50%,-100%);white-space:nowrap;z-index:50}.chart-tooltip.show{display:block}.chart-tooltip .ct-date{color:var(--ink-300);font-size:var(--text-xs);letter-spacing:.04em;margin-bottom:4px;text-transform:uppercase}.chart-tooltip .ct-val{font-family:JetBrains Mono,monospace;font-size:var(--text-md);font-weight:700}.chart-tooltip .ct-val .u{color:var(--ink-300);font-size:var(--text-xs);font-weight:500}.chart-tooltip .ct-note{color:var(--ink-200);font-size:var(--text-xs);margin-top:4px}.form-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 380px}.form-section{border-radius:var(--radius);box-shadow:var(--shadow-1);margin-bottom:20px;padding:24px}.form-section h3{align-items:center;display:flex;font-size:15px;font-weight:600;gap:10px;margin-bottom:4px}.form-section .step-num{background:var(--teal-800);border-radius:50%;color:#fff;display:grid;font-size:12px;font-weight:600;height:24px;place-items:center;width:24px}.form-section .step-desc{color:var(--text-3);font-size:13px;margin-bottom:18px;padding-left:34px}label{color:var(--text-2);display:block;font-size:12.5px;font-weight:600;margin-bottom:var(--space-2)}.field,.field-row,.field-row-3{margin-bottom:var(--space-4)}.field-row-3:last-child,.field-row-3>.field,.field-row:last-child,.field-row>.field,.field:last-child{margin-bottom:0}.field-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.field-row-3{grid-gap:12px;display:grid;gap:12px;grid-template-columns:2fr 1fr 1fr}.stop-item{grid-gap:10px;align-items:center;background:var(--paper-2);border:1px solid var(--line-2);border-radius:8px;display:grid;gap:10px;grid-template-columns:auto auto 1fr auto auto;margin-bottom:8px;padding:12px;position:relative;transition:opacity .12s,transform .12s,box-shadow .12s,border-color .12s}.stop-item .stop-extra{align-items:center;display:flex;gap:10px}.stop-item:after,.stop-item:before{background:var(--teal-500);border-radius:2px;box-shadow:0 0 0 3px #2a9d8f2e;content:"";height:2px;left:8px;opacity:0;pointer-events:none;position:absolute;right:8px;transition:opacity .1s}.stop-item:before{top:-6px}.stop-item:after{bottom:-6px}.stop-item.drop-above:before,.stop-item.drop-below:after{opacity:1}.stop-item.dragging{background:#fff;border-color:var(--teal-800);border-style:dashed;opacity:.35;transform:scale(.98)}.stop-item.drag-over{background:var(--paper)}.stop-handle{border-radius:5px;color:var(--text-4);cursor:grab;display:grid;height:26px;place-items:center;transition:color .12s,background .12s;width:24px}.stop-handle:hover{background:#fff;color:var(--teal-800)}.stop-handle:active{color:var(--teal-800);cursor:grabbing}.stop-handle svg{height:14px;width:14px}.stops-hint{align-items:center;background:#1462760f;border:1px dashed #14627633;border-radius:8px;color:var(--teal-800);display:flex;font-size:12.5px;font-weight:500;gap:8px;margin-top:8px;padding:10px 12px}.stops-hint svg{flex-shrink:0;height:14px;width:14px}.stop-item .stop-num{background:var(--teal-800);border-radius:50%;color:#fff;display:grid;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600;height:28px;place-items:center;width:28px}.stop-item .addr{font-size:13.5px;font-weight:500}.stop-item .meta{color:var(--text-3);font-size:12px;margin-top:2px}.stop-btn{border:1px solid #0000;border-radius:6px;color:var(--text-3);cursor:pointer;display:grid;height:28px;place-items:center;width:28px}.stop-btn:hover{background:#fff;border-color:var(--line);color:var(--text-1)}.addr-suggest{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-3);left:0;margin-top:4px;max-height:260px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:30}.addr-suggest-item{align-items:center;border-bottom:1px solid var(--line-2);cursor:pointer;display:flex;font-size:13px;gap:10px;padding:10px 12px}.addr-suggest-item:last-child{border-bottom:0}.addr-suggest-item.keyboard-active,.addr-suggest-item:hover{background:var(--paper)}.addr-suggest-item .pin{background:var(--paper);border-radius:6px;color:var(--teal-700);display:grid;flex-shrink:0;height:22px;place-items:center;width:22px}.addr-suggest-item .a{font-weight:500}.addr-suggest-item .c{color:var(--text-3);font-size:12px}.route-summary{position:sticky;top:80px}.summary-card{background:#fff;border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:20px}.summary-card h4{color:var(--text-3);font-size:12px;font-weight:600;letter-spacing:.06em;margin-bottom:16px;text-transform:uppercase}.summary-metric{align-items:baseline;border-bottom:1px dashed var(--line-2);padding:10px 0}.summary-metric:last-of-type{border-bottom:0}.summary-metric .v{font-family:JetBrains Mono,monospace;font-size:15px}.summary-metric .v .u{color:var(--text-3);font-size:12px;font-weight:400;margin-left:3px}.savings-callout{background:linear-gradient(135deg,#2a9d8f1a,#2a9d8f05);border:1px solid #2a9d8f33;border-radius:8px;margin-top:16px;padding:14px}.savings-callout .k{color:#0d7a6c;font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.savings-callout .v{color:#0d7a6c;font-family:JetBrains Mono,monospace;font-size:22px;font-weight:600;margin-top:2px}.savings-callout .d{color:var(--text-2);font-size:12px;margin-top:2px}.route-detail{grid-gap:0;display:grid;gap:0;grid-template-columns:1fr 380px;height:calc(100vh - 60px);position:relative}.route-map-wrap{background:#dfe5e8;position:relative}#detail-map{inset:0;position:absolute}.route-map-overlay{align-items:center;background:#fff;border-radius:10px;box-shadow:var(--shadow-3);display:flex;gap:14px;left:20px;padding:12px 16px;position:absolute;top:20px;z-index:400}.route-map-overlay .label{color:var(--text-3);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.route-map-overlay .val{font-family:JetBrains Mono,monospace;font-size:14px;font-weight:600}.route-map-overlay .sep{background:var(--line);height:24px;width:1px}.route-panel{background:#fff;border-left:1px solid var(--line-2);display:flex;flex-direction:column;overflow:hidden}.route-panel-head{border-bottom:1px solid var(--line-2);padding:20px}.route-panel-head .name{font-size:17px;font-weight:600;letter-spacing:-.01em}.route-panel-head .sub{color:var(--text-3);font-size:12px;margin-top:2px}.route-panel-metrics{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,1fr);margin-top:14px}.rp-metric{background:var(--paper);border-radius:8px;padding:10px 12px}.rp-metric .k{color:var(--text-3);font-size:11px;letter-spacing:.04em;text-transform:uppercase}.rp-metric .v{font-family:JetBrains Mono,monospace;font-size:16px;font-weight:600;margin-top:2px}.route-panel-tabs{border-bottom:1px solid var(--line-2);display:flex;padding:0 20px}.rp-tab{border-bottom:2px solid #0000;color:var(--text-3);cursor:pointer;font-size:13px;font-weight:600;margin-right:20px;padding:12px 4px}.rp-tab.active{border-bottom-color:var(--teal-800);color:var(--text-1)}.route-stops-list{flex:1 1;overflow-y:auto;padding:8px 0}.rp-stop{grid-gap:12px;align-items:center;border-bottom:1px solid var(--line-2);cursor:pointer;display:grid;gap:12px;grid-template-columns:auto 1fr auto;padding:12px 20px}.rp-stop:hover{background:var(--paper-2)}.rp-stop.active{background:var(--paper);border-left:3px solid var(--teal-800);padding-left:17px}.rp-stop-num{background:var(--teal-800);border-radius:50%;color:#fff;display:grid;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:600;height:30px;place-items:center;width:30px}.rp-stop.origin .rp-stop-num{background:var(--teal-500)}.rp-stop.destination .rp-stop-num{background:var(--amber)}.rp-stop .a{font-size:13.5px;font-weight:500;line-height:1.35}.rp-stop .m{align-items:center;color:var(--text-3);display:flex;flex-wrap:wrap;font-size:12px;gap:10px;margin-top:2px}.rp-stop .m .sep{background:var(--text-4);border-radius:50%;height:3px;width:3px}.route-panel-foot{border-top:1px solid var(--line-2);display:flex;gap:10px;padding:16px 20px}.route-panel-foot .btn{flex:1 1}.marker-pin{background:var(--teal-800);box-shadow:0 4px 10px #00000040;color:#fff;display:grid;height:32px;place-items:center;width:32px}.marker-pin span{font-family:JetBrains Mono,monospace;font-size:13px}.marker-pin.origin{background:var(--teal-500)}.marker-pin.destination{background:var(--amber)}.veh-sort-bar{align-items:center;background:#fff;border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow-1);display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;padding:14px 18px}.veh-sort-bar .lbl{color:var(--text-3);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.veh-sort-chip{align-items:center;background:#fff;border:1px solid var(--line);border-radius:999px;color:var(--text-2);cursor:pointer;display:inline-flex;font-size:12.5px;font-weight:500;gap:6px;padding:6px 11px;transition:all .1s}.veh-sort-chip:hover{background:var(--paper);color:var(--text-1)}.veh-sort-chip.on{background:var(--teal-800);border-color:var(--teal-800);color:#fff}.veh-sort-chip svg{height:11px;opacity:.6;width:11px}.veh-sort-chip.on svg{opacity:1}.veh-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.veh-card{background:#fff;border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:20px;transition:transform .12s,box-shadow .12s}.veh-card:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}.veh-head{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:14px}.veh-icon{background:var(--paper);border-radius:10px;color:var(--teal-800);display:grid;height:44px;place-items:center;width:44px}.veh-icon svg{height:22px;width:22px}.veh-name{font-size:15px;font-weight:600;letter-spacing:-.01em}.veh-plate{color:var(--text-3);font-family:JetBrains Mono,monospace;font-size:13px;letter-spacing:.05em;margin-top:2px}.veh-body{grid-gap:12px;border-bottom:1px solid var(--line-2);border-top:1px solid var(--line-2);display:grid;gap:12px;grid-template-columns:1fr 1fr;padding:12px 0}.veh-body .k{color:var(--text-3);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.veh-body .v{font-family:JetBrains Mono,monospace;font-size:14px;font-weight:600;margin-top:3px}.veh-body .v.text{font-family:Inter,sans-serif;font-size:13.5px;font-weight:500}.veh-foot{align-items:center;display:flex;justify-content:space-between;margin-top:14px}.toggle{display:inline-block;height:22px;position:relative;width:38px}.toggle input{height:0;opacity:0;width:0}.toggle-slider{background:var(--line);border-radius:999px;cursor:pointer;inset:0;position:absolute;transition:.15s}.toggle-slider:before{background:#fff;border-radius:50%;box-shadow:0 1px 3px #00000026;content:"";height:16px;left:3px;position:absolute;top:3px;transition:.15s;width:16px}.toggle input:checked+.toggle-slider{background:var(--teal-500)}.toggle input:checked+.toggle-slider:before{transform:translateX(16px)}.settings-layout{grid-gap:28px;display:grid;gap:28px;grid-template-columns:220px 1fr}.settings-nav{align-self:start;display:flex;flex-direction:column;gap:4px;position:sticky;top:80px}.settings-nav a,.settings-nav button{align-items:center;background:#0000;border:1px solid #0000;border-radius:8px;color:var(--text-2);cursor:pointer;display:flex;font-family:inherit;font-size:13.5px;font-weight:500;gap:10px;margin-bottom:2px;padding:10px 14px;text-align:left;transition:all var(--t-fast);width:100%}.settings-nav a:hover,.settings-nav button:hover{background:#fff;color:var(--text-1)}.settings-nav a.active,.settings-nav button.active{background:#fff;border:1px solid var(--line-2);box-shadow:var(--shadow-1);color:var(--teal-800);font-weight:600}.settings-nav a svg,.settings-nav button svg{stroke:currentColor;flex-shrink:0;height:18px;max-height:18px;max-width:18px;min-height:18px;min-width:18px;width:18px}.pref-item{align-items:flex-start;border-bottom:1px solid var(--line-2);display:flex;gap:20px;justify-content:space-between;padding:16px 0}.pref-item:last-child{border-bottom:0}.pref-item .k{font-size:14px;font-weight:600}.pref-item .d{color:var(--text-3);font-size:13px;margin-top:2px;max-width:520px}.pref-slider-wrap{align-items:center;display:flex;gap:10px;justify-content:flex-end;min-width:200px}input[type=range]{accent-color:var(--teal-800);width:140px}.tw-toggle-row{background:var(--paper);border:1px solid var(--line-2);border-radius:10px;margin-bottom:18px;padding:4px}.tw-toggle-row button{background:#0000;border:0;border-radius:7px;color:var(--text-3);font-weight:600;padding:9px 12px;transition:all .15s}.tw-toggle-row button.on{background:#fff;box-shadow:var(--shadow-1);color:var(--teal-800)}.tw-picker{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:1fr auto 1fr;padding:6px 0 4px}.tw-picker.disabled{opacity:.35}.tw-arrow-connector{color:var(--text-4);display:grid;padding-top:22px;place-items:center}.time-stepper{background:var(--paper-2);border:1px solid var(--line-2);border-radius:12px;padding:14px 12px}.time-stepper .ts-label{color:var(--text-3);font-size:11px;font-weight:600;letter-spacing:.06em;margin-bottom:10px;text-align:center;text-transform:uppercase}.ts-body{grid-gap:6px;display:grid;gap:6px;grid-template-columns:1fr auto 1fr}.ts-unit{flex-direction:column}.ts-arrow{background:#fff;border:1px solid var(--line);border-radius:6px;color:var(--text-2);display:grid;height:24px;place-items:center;transition:all .1s;width:32px}.ts-arrow:hover{background:var(--teal-800);border-color:var(--teal-800);color:#fff}.ts-arrow:active{transform:scale(.95)}.ts-arrow svg{height:12px;width:12px}.ts-value{font-size:28px;font-weight:600;letter-spacing:-.02em;min-width:52px;padding:2px 6px;-webkit-user-select:none;user-select:none}.ts-sep,.ts-value{font-family:JetBrains Mono,monospace}.ts-sep{font-size:26px;padding-bottom:4px}.tw-quick{border-top:1px solid var(--line-2);display:flex;flex-wrap:wrap;gap:6px;margin-top:14px;padding-top:14px}.tw-quick-lbl{color:var(--text-3);font-size:11px;letter-spacing:.05em;margin-bottom:2px;text-transform:uppercase;width:100%}.tw-preset{border:1px solid var(--line);border-radius:999px;font-weight:500;padding:5px 10px}.tw-preset:hover{background:#fff;border-color:var(--teal-700);color:var(--teal-800)}.tw-preview{background:var(--teal-500-soft);border-radius:10px;color:#0d7a6c;font-family:JetBrains Mono,monospace;font-size:14px;letter-spacing:.02em;margin-top:14px;padding:12px 14px}.tw-preview.free{background:var(--paper)}.tw-error{background:var(--danger-soft);border-radius:8px;color:var(--danger);font-size:12.5px;font-weight:500;margin-top:10px;padding:10px 12px}.modal-back{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0b1b2280;display:none;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.modal-back.open{display:flex}.modal{animation:pop .18s ease-out;background:#fff;border-radius:14px;box-shadow:var(--shadow-3);max-height:90vh;max-width:520px;overflow-y:auto;width:100%}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-head{align-items:center;border-bottom:1px solid var(--line-2);display:flex;justify-content:space-between;padding:20px 24px}.modal-title{font-size:17px;font-weight:600;letter-spacing:-.01em}.modal-body{padding:20px 24px}.modal-foot{border-top:1px solid var(--line-2);display:flex;gap:10px;justify-content:flex-end;padding:14px 24px}.opt-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#07141ab8;color:var(--white);gap:4px;inset:0;padding:20px;text-align:center;z-index:var(--z-modal)}.opt-spinner{border:3px solid #fff3;border-top:3px solid var(--teal-glow);height:40px;margin-bottom:14px;width:40px}.opt-msg{font-size:15px}.opt-detail{color:var(--ink-200)}.empty{color:var(--text-3);font-size:13.5px;padding:40px 20px;text-align:center}.toast-container{bottom:24px;display:flex;flex-direction:column;gap:8px;pointer-events:none;position:fixed;right:24px;z-index:2000}.toast{align-items:center;animation:slideIn var(--t-base) ease-out;background:var(--ink-800);border-radius:var(--radius);box-shadow:var(--shadow-modal);color:var(--white);display:flex;font-size:var(--text-base);font-weight:500;gap:var(--space-2);max-width:400px;min-width:280px;padding:var(--space-3) var(--space-4);pointer-events:all}.toast .icn{flex-shrink:0;height:20px;width:20px}.toast.success .icn{color:var(--teal-glow)}.toast.error{background:var(--danger);color:var(--white)}.toast.error .icn{color:var(--danger-100)}@keyframes slideIn{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.split{align-items:center;display:flex;gap:10px}.gap-lg{gap:16px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-4{margin-bottom:4px}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}@media (max-width:1100px){.form-grid,.route-detail{grid-template-columns:1fr}.route-detail{height:auto}.route-panel{border-left:0;border-top:1px solid var(--line-2)}.route-map-wrap{height:60vh}.stats-grid{grid-template-columns:repeat(2,1fr)}.dash-grid,.settings-layout{grid-template-columns:1fr}}@media (max-width:768px){.stats-grid{grid-template-columns:1fr}.topbar{gap:var(--space-2);padding:0 var(--space-3)}.topbar-search{display:none}.card-body,.card-foot,.card-head,.page{padding:var(--space-4)}.crumbs{flex:1 1;min-width:0}.crumbs>span:not(.cur){display:none}.crumbs .cur{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-right{gap:var(--space-2)}.top-user{padding:3px}.top-user .name{display:none}.form-section{padding:var(--space-4)}.route-map-overlay{flex-wrap:wrap;left:var(--space-3);right:var(--space-3);row-gap:8px;top:var(--space-3)}.route-map-overlay .sep{display:none}.field-row,.field-row-3{grid-template-columns:1fr}.stop-item{grid-template-areas:"handle num addr remove" "extra extra extra extra";grid-template-columns:auto auto 1fr auto;row-gap:8px}.stop-item>.stop-handle{grid-area:handle}.stop-item>.stop-num{grid-area:num}.stop-item>.stop-addr-wrap{grid-area:addr;min-width:0}.stop-item>.stop-remove{grid-area:remove}.stop-item>.stop-extra{flex-wrap:wrap;grid-area:extra}.pref-item,.route-panel-foot{flex-direction:column}.pref-item{align-items:stretch;gap:10px}.pref-slider-wrap{justify-content:space-between;min-width:0;width:100%}input[type=range]{width:100%}}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}.leaflet-container{background:#f8f8f8!important;height:100%!important;position:relative!important;width:100%!important}.leaflet-tile{height:256px!important;width:256px!important}.leaflet-tile,.leaflet-tile-container{position:absolute!important}.leaflet-map-container{height:100%!important;min-height:400px!important}.leaflet-top.leaflet-left{left:auto!important;right:15px!important;top:15px!important}.leaflet-control-zoom{border:1px solid #0000001a!important;border-radius:8px!important;box-shadow:0 4px 12px #00000026!important;margin:0!important;overflow:hidden}.leaflet-control-zoom a{background-color:#fff!important;color:#333!important;font-size:14px!important;height:28px!important;line-height:28px!important;transition:background .2s;width:28px!important}.leaflet-control-zoom a:hover{background-color:#f0f2f5!important}.login-wrap{background:var(--white);display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh}.login-form{background:var(--white);border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow-modal);margin:auto;max-width:420px;padding:var(--space-10) var(--space-10);width:100%}.login-form .form-group{margin-bottom:var(--space-6)}.login-form label{color:var(--text-1);display:block;font-weight:500;margin-bottom:var(--space-2)}.login-form input{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-s);font-size:var(--text-md);padding:var(--space-3) var(--space-4);transition:all var(--t-base);width:100%}.login-form input:focus{border-color:var(--teal-700);box-shadow:0 0 0 3px var(--teal-500-soft);outline:none}.login-form input::placeholder{color:var(--text-4)}.login-form .btn-block{margin-top:var(--space-8)}.login-visual{background:radial-gradient(1200px 600px at 10% -10%,var(--accent-2) 0,#0000 60%),radial-gradient(900px 500px at 100% 100%,var(--accent-1) 0,#0000 55%),linear-gradient(180deg,var(--accent-3) 0,var(--accent-4) 100%);color:var(--ink-100);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;padding:var(--space-8) var(--space-10);position:relative}.login-visual:before{background-image:linear-gradient(90deg,#ffffff0a 1px,#0000 0),linear-gradient(180deg,#ffffff0a 1px,#0000 0);background-size:44px 44px;content:"";inset:0;-webkit-mask-image:radial-gradient(700px 500px at 40% 40%,#000 30%,#0000 80%);mask-image:radial-gradient(700px 500px at 40% 40%,#000 30%,#0000 80%);position:absolute}.login-hero{max-width:520px;position:relative;z-index:1}.login-eyebrow{align-items:center;background:var(--accent-glow-12);border:1px solid var(--accent-glow-24);border-radius:999px;color:var(--teal-glow);display:inline-flex;font-size:var(--text-sm);font-weight:600;gap:var(--space-2);letter-spacing:.02em;margin-bottom:var(--space-5);padding:6px var(--space-3)}.login-eyebrow .dot{background:var(--teal-glow);border-radius:50%;box-shadow:0 0 0 3px var(--accent-glow-12);height:6px;width:6px}.login-h1{font-size:var(--text-display);font-weight:700;letter-spacing:-.025em;line-height:1.08;margin-bottom:var(--space-4)}.login-h1 em{color:var(--teal-glow);font-style:normal}.login-lede{color:var(--ink-200);font-size:var(--text-xl);margin-bottom:var(--space-7);max-width:460px}.login-metrics{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(3,1fr);margin-top:var(--space-8);position:relative;z-index:1}.metric-tile{background:#ffffff0a;border:1px solid #ffffff14;border-radius:var(--radius);padding:var(--space-4) var(--space-5)}.metric-tile .n{color:var(--white);font-family:JetBrains Mono,monospace;font-size:var(--text-3xl);font-weight:600;letter-spacing:-.01em}.metric-tile .l{color:var(--ink-300);font-size:var(--text-sm);letter-spacing:.02em;margin-top:var(--space-1)}.login-form-wrap{align-items:center;display:flex;justify-content:center;padding:var(--space-8)}.login-card{max-width:400px;width:100%}.login-card h2{color:var(--text-1);font-size:var(--text-5xl);font-weight:600;letter-spacing:-.01em;margin-bottom:var(--space-2)}.login-card .sub{color:var(--text-3);margin-bottom:var(--space-8)}.pw-toggle{background:none;border:none;border-radius:var(--radius-s);color:var(--text-4);cursor:pointer;font-size:var(--text-sm);padding:6px;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.pw-toggle:hover{background:var(--paper);color:var(--text-2)}.login-foot{color:var(--text-3);font-size:var(--text-base);margin-top:var(--space-6);text-align:center}.login-foot a{color:var(--teal-800);font-weight:600}.msg-error{background:var(--danger-soft);border:1px solid var(--danger-100);color:var(--danger);font-size:13px;font-weight:500;margin-bottom:var(--space-5);padding:10px 14px}.login-hint,.msg-error{border-radius:var(--radius-s)}.login-hint{background:var(--paper);border:1px dashed var(--line);color:var(--text-3);font-size:12px;line-height:1.5;margin-top:var(--space-5);padding:10px 12px;text-align:center}.login-hint b{color:var(--text-2)}.login-hint code{background:var(--line-2);border-radius:4px;font-family:JetBrains Mono,monospace;font-size:11.5px;padding:1px 5px}@media (max-width:1100px){.login-wrap{grid-template-columns:1fr}.login-visual{display:none}.login-metrics{grid-template-columns:1fr}}.leaflet-numbered-marker{background:#0000;border:none}.leaflet-container{height:100%;position:relative;width:100%}.leaflet-tile{height:256px;position:absolute;width:256px}.leaflet-map-pane{transform:translateZ(0)}.route-new-container{margin:0 auto;max-width:1600px;padding:24px}.page-header{margin-bottom:24px}.page-header h1{color:var(--text-1);font-size:28px;font-weight:700;margin:0 0 8px}.page-subtitle{color:var(--text-3);font-size:14px;margin:0}.input-mode-tabs{border-bottom:1px solid var(--line-2);display:flex;gap:8px;margin-bottom:24px;padding-bottom:8px}.input-mode-tabs .mode-tab{align-items:center;background:var(--paper);border:1px solid var(--line-2);border-bottom:2px solid #0000;border-radius:8px 8px 0 0;color:var(--text-2);cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:12px 20px;transition:all .2s ease}.input-mode-tabs .mode-tab svg{height:18px;width:18px}.input-mode-tabs .mode-tab:hover{background:var(--white);border-color:var(--line-2);color:var(--text-1)}.input-mode-tabs .mode-tab.active{background:var(--teal-800);border-color:var(--teal-800);color:#fff}.input-mode-tabs .mode-tab:nth-child(2){background:var(--teal-500-soft)!important;border:2px dashed var(--teal-500)!important;color:var(--teal-700)!important;font-weight:700}.input-mode-tabs .mode-tab:nth-child(2):hover{background:#2a9d8f26!important;border-color:var(--teal-700)!important;color:var(--teal-800)!important}.input-mode-tabs .mode-tab:nth-child(2).active{background:var(--teal-800);border:2px solid var(--teal-800)!important;box-shadow:0 4px 12px #2a9d8f4d;color:#fff}.route-new-content{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 1fr}.left-panel,.right-panel{display:flex;flex-direction:column;gap:20px}.map-container{background:#f0f0f0;border-radius:12px;box-shadow:0 4px 16px #00000014;height:400px;overflow:hidden}.form-section{background:#fff;border:1px solid var(--line-2);border-radius:12px;box-shadow:0 2px 8px #0000000d;padding:20px}.form-section h3{color:var(--text-1);font-size:16px;font-weight:700;margin:0 0 12px}.route-depot-options{background:var(--teal-500-soft);border:1px solid #2a9d8f47;border-radius:10px;margin-top:16px;padding:14px 16px}.route-depot-options h4{color:var(--teal-800);font-size:14px;margin:0 0 4px}.route-depot-options>p{color:var(--text-3);font-size:12px;margin:0 0 6px}.route-depot-options fieldset{grid-gap:8px 10px;border:0;display:grid;gap:8px 10px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0}.route-depot-options fieldset+fieldset{margin-top:12px}.route-depot-options legend{color:var(--text-1);font-size:12px;font-weight:700;grid-column:1/-1;margin-bottom:8px;padding:0;width:100%}.route-depot-options label{align-items:center;background:#ffffffb8;border:1px solid #2a9d8f38;border-radius:8px;color:var(--text-2);cursor:pointer;display:flex;font-size:12px;font-weight:500;gap:8px;justify-content:flex-start;line-height:1.25;margin:0;min-height:36px;min-width:0;padding:6px 10px;text-align:left;white-space:normal}.route-depot-options label input[type=radio]{accent-color:var(--teal-700);flex:none;height:15px;margin:0;width:15px}.route-depot-options label:has(input:checked){background:#fff;border-color:var(--teal-700);color:var(--teal-800);font-weight:600}@media (max-width:600px){.route-depot-options fieldset{grid-template-columns:1fr}}.field{margin-bottom:16px}.field:last-child{margin-bottom:0}.field label{color:var(--text-2);display:block;font-size:13px;font-weight:600;margin-bottom:6px}.input-wrap{position:relative}.input-wrap .icn{color:var(--text-4);height:18px;left:12px;position:absolute;top:50%;transform:translateY(-50%);width:18px}.input{background:#fff;border:1px solid var(--line-2);border-radius:8px;font-size:14px;padding:10px 12px 10px 40px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.input:focus{border-color:var(--teal-700);box-shadow:0 0 0 2px var(--teal-500-soft);outline:none}.input::placeholder{color:var(--text-4)}.input-wrap .input{padding-left:40px}.input-loading{animation:spin .8s linear infinite;border:2px solid var(--line-2);border-radius:50%;border-top-color:var(--teal-500);height:16px;position:absolute;right:12px;top:50%;transform:translateY(-50%);width:16px}@keyframes spin{to{transform:translateY(-50%) rotate(1turn)}}.suggestions-list{background:#fff;border:1px solid var(--line-2);border-radius:8px;box-shadow:0 8px 24px #0000001f;left:0;margin-top:4px;max-height:240px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:100}.suggestion-item{align-items:center;border-bottom:1px solid var(--line-2);cursor:pointer;display:flex;gap:10px;padding:10px 12px;transition:background .15s ease}.suggestion-item:last-child{border-bottom:none}.suggestion-item.keyboard-active,.suggestion-item:hover{background:var(--paper)}.suggestion-item svg{color:var(--teal-700);flex-shrink:0;height:16px;width:16px}.suggestion-item span{color:var(--text-1);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.draw-controls{display:flex;flex-wrap:wrap;gap:8px}.draw-controls .btn{font-size:13px;padding:8px 16px}.draw-controls .btn svg{height:16px;width:16px}.points-scroll{overflow-y:auto}.drawn-point-card{background:var(--bg-subtle);border:1px solid var(--border);border-radius:8px;margin-bottom:12px;padding:12px;transition:all .2s ease}.drawn-point-card:hover{border-color:var(--brand);box-shadow:0 2px 8px #2a9d8f26}.drawn-point-card.dragging{opacity:.5}.point-num{background:var(--brand);cursor:pointer}.point-coords{color:var(--text-4);font-family:JetBrains Mono,monospace;font-size:11px}.btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;padding:10px 20px;transition:all .2s ease}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:var(--teal-800);color:#fff}.btn-primary:hover:not(:disabled){background:var(--teal-900)}.btn-secondary{background:var(--paper);border:1px solid var(--line-2);color:var(--text-2)}.btn-secondary:hover:not(:disabled){background:var(--white)}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-sm{font-size:12px;padding:6px 12px}.btn-xs{font-size:11px;padding:4px 8px}.btn-block{width:100%}.btn-lg{font-size:15px;padding:14px 24px}.route-summary{background:#fff;border:1px solid var(--line-2);border-radius:12px;box-shadow:0 2px 8px #0000000d;padding:20px}.summary-card h4{color:var(--text-1);font-size:16px;font-weight:700;margin:0 0 16px}.summary-metric{border-bottom:1px solid var(--line-2);display:flex;justify-content:space-between;padding:8px 0}.summary-metric:last-child{border-bottom:none}.summary-metric .k{color:var(--text-3);font-size:13px}.summary-metric .v{color:var(--text-1);font-size:14px;font-weight:600}.summary-metric .u{color:var(--text-4);font-size:12px;font-weight:400}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:12px;max-height:80vh;max-width:480px;overflow:auto;padding:24px;width:90%}.tw-toggle-row{display:flex;gap:8px;margin-bottom:20px}.tw-toggle-row button{background:#fff;border:1px solid var(--line-2);border-radius:6px;color:var(--text-1);cursor:pointer;flex:1 1;font-size:13px;font-weight:500;padding:10px}.tw-toggle-row button.on{background:var(--teal-700);border-color:var(--teal-700);color:#fff}.tw-picker{opacity:1}.tw-picker.disabled{opacity:.5;pointer-events:none}.ts-label{font-size:12px;font-weight:600;margin-bottom:6px}.ts-body{gap:8px}.ts-body,.ts-unit{align-items:center;display:flex}.ts-unit{gap:4px}.ts-sep{color:var(--text-4);font-weight:600}.ts-value{color:var(--text-1);font-family:monospace;font-size:16px;font-weight:700;min-width:40px;text-align:center}.ts-arrow{background:none;border:none;color:var(--text-3);cursor:pointer;padding:4px}.ts-arrow:disabled{cursor:not-allowed;opacity:.3}.ts-arrow svg{height:14px;width:14px}.ts-arrow:hover:not(:disabled){color:var(--teal-700)}.tw-arrow-connector{color:var(--text-3);margin:8px 0;text-align:center}.tw-quick{margin-top:16px}.tw-quick-lbl{font-size:12px;font-weight:600;margin-bottom:8px}.tw-preset{background:var(--paper);border:1px solid var(--line-2);border-radius:6px;color:var(--text-2);cursor:pointer;font-size:12px;padding:6px 12px;transition:all .2s ease}.tw-preset:hover:not(:disabled){background:var(--teal-700);border-color:var(--teal-700);color:#fff}.tw-preset:disabled{cursor:not-allowed;opacity:.5}.tw-preview{background:var(--bg-subtle);border-radius:6px;color:var(--text-1);font-size:13px;font-weight:600;margin-top:16px;padding:12px;text-align:center}.tw-preview.free{color:var(--text-3);font-weight:400}.opt-overlay{align-items:center;background:#00000080;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.opt-spinner{animation:spin .8s linear infinite;border:4px solid var(--line-2);border-radius:50%;border-top-color:var(--teal-500);height:48px;width:48px}.opt-msg{color:#fff;font-size:16px;font-weight:600;margin-top:16px}.opt-detail{color:var(--text-3);font-size:13px;margin-top:4px}@media (max-width:1024px){.route-new-content{grid-template-columns:1fr}.map-container{height:350px}.input-mode-tabs{overflow-x:auto}}@media (max-width:640px){.route-new-container{padding:16px}.page-header h1{font-size:24px}.map-container{height:300px}.btn-lg{padding:12px 20px}}.marker-pin{align-items:center;background:#2a9d8f;border:2px solid #fff;border-radius:50% 50% 50% 0;box-shadow:0 3px 6px #0000004d;display:flex;height:30px;justify-content:center;left:50%;margin:-15px 0 0 -15px;position:absolute;top:50%;transform:rotate(-45deg);width:30px}.marker-pin span{color:#fff;font-family:sans-serif;font-size:12px;font-weight:700;transform:rotate(45deg)}.point-num{background:#2a9d8f;background:var(--brand,#2a9d8f);border:2px solid #fff;border-radius:8px;box-shadow:0 2px 4px #2a9d8f4d;color:#fff;display:grid;font-size:13px;font-weight:800;height:28px;place-items:center;transition:all .2s ease;width:28px}.drawn-point-card:hover .point-num{box-shadow:0 4px 8px #2a9d8f66;transform:scale(1.1)}.drawn-point-card .input{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--border,#e2e8f0);border-radius:6px;font-size:13px;padding:8px 10px;width:100%}.drawn-point-card .input:focus{border-color:#2a9d8f;border-color:var(--brand,#2a9d8f);box-shadow:0 0 0 2px #2a9d8f1a;outline:none}.reports-period-bar{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.period-chip{background:var(--paper-2);border:1px solid var(--line-2);border-radius:8px;color:var(--text-2);cursor:pointer;font-size:12.5px;font-weight:500;padding:6px 12px;transition:all .15s ease}.period-chip:hover{background:#fff;border-color:var(--teal-500);color:var(--teal-800)}.period-chip.active{background:var(--teal-800);border-color:var(--teal-800);box-shadow:0 2px 8px #0d7a6c40;color:#fff;font-weight:600}.progress-bar-wrap{background:var(--paper-2);height:8px;margin-top:6px;width:100%}.progress-bar-fill{transition:width .3s ease}.progress-bar-fill.amber{background:#f59e0b;background:var(--amber-500,#f59e0b)}.progress-bar-fill.blue{background:#3b82f6;background:var(--blue-500,#3b82f6)}.table-footer-total td{background:var(--paper-2);border-top:2px solid var(--line-2);color:var(--text-1);font-weight:700}@media print{.card-filter-section,.no-print,.page-actions,.sidebar,.sidebar-overlay,.topbar{display:none!important}.app{display:block!important}.app,.main{padding:0!important}.card{border:1px solid #ccc!important;box-shadow:none!important}}.vrp-hero{background:radial-gradient(1200px 600px at 10% -10%,#1a5f75 0,#0000 60%),radial-gradient(900px 500px at 100% 100%,#0a3844 0,#0000 55%),linear-gradient(180deg,#0b2b36,#061a22);border-radius:var(--radius-l);box-shadow:var(--shadow-3);color:#e9f2f4;overflow:hidden;padding:var(--space-8) var(--space-10);position:relative}.vrp-hero:before{background-image:linear-gradient(90deg,#ffffff0a 1px,#0000 0),linear-gradient(180deg,#ffffff0a 1px,#0000 0);background-size:44px 44px;content:"";inset:0;-webkit-mask-image:radial-gradient(700px 500px at 40% 40%,#000 30%,#0000 80%);mask-image:radial-gradient(700px 500px at 40% 40%,#000 30%,#0000 80%);pointer-events:none;position:absolute}.vrp-hero h1,.vrp-hero p,.vrp-hero-metrics{position:relative;z-index:1}.vrp-hero-metrics{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(3,1fr);margin-top:var(--space-8)}.vrp-hero-metric{background:#ffffff0a;border:1px solid #ffffff14;border-radius:var(--radius);padding:var(--space-4)}.vrp-hero-metric .n{color:var(--white);font-family:JetBrains Mono,monospace;font-size:var(--text-2xl);font-weight:700}.vrp-hero-metric .l{color:var(--ink-300);font-size:var(--text-xs);margin-top:var(--space-1)}.vrp-vehicle-list{grid-gap:var(--space-3);display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.vrp-vehicle-check{align-items:center;background:var(--paper-2);border:1px solid var(--line-2);border-radius:var(--radius);cursor:pointer;display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);transition:all var(--t-fast)}.vrp-vehicle-check:hover{background:var(--white);border-color:var(--teal-700)}.vrp-vehicle-check.selected{background:#0f4c5c0d;border-color:var(--teal-800)}.vrp-vehicle-check .cbox{background:var(--white);border:2px solid var(--line);border-radius:var(--radius-xs);color:var(--white);display:grid;flex-shrink:0;height:18px;place-items:center;transition:all var(--t-fast);width:18px}.vrp-vehicle-check .cbox svg{stroke:var(--white);display:block;height:12px;width:12px}.vrp-vehicle-check.selected .cbox{background:var(--teal-800);border-color:var(--teal-800)}.vrp-vehicle-check .veh-info{flex:1 1;min-width:0}.vrp-vehicle-check .name{font-size:var(--text-md);font-weight:600}.vrp-vehicle-check .meta{color:var(--text-3);font-size:var(--text-sm);margin-top:2px}.cap-badge{background:var(--white);border:1px solid var(--line-2);border-radius:999px;color:var(--text-2);flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:11.5px;font-weight:600;padding:3px 8px;white-space:nowrap}.vrp-stop-item{grid-gap:var(--space-3);align-items:center;background:var(--paper-2);border:1px solid var(--line-2);border-radius:var(--radius);display:grid;gap:var(--space-3);grid-template-columns:auto 1fr auto;margin-bottom:var(--space-2);padding:var(--space-3)}.vrp-stop-item .stop-num{background:var(--teal-800);border-radius:50%;color:var(--white);display:grid;font-family:JetBrains Mono,monospace;font-size:var(--text-sm);font-weight:600;height:28px;place-items:center;width:28px}.vrp-stop-item .addr{font-size:var(--text-md);font-weight:500}.vrp-stop-item .meta{color:var(--text-3);font-size:var(--text-sm);margin-top:2px}.vrp-weight-input{align-items:center;display:flex;gap:var(--space-2)}.vrp-weight-input input{border:1px solid var(--line);border-radius:var(--radius-s);font-family:JetBrains Mono,monospace;font-size:var(--text-sm);padding:6px var(--space-2);text-align:right;width:80px}.vrp-weight-input .unit{color:var(--text-3);font-size:var(--text-sm)}.vrp-feasibility{align-items:center;border-radius:var(--radius);display:flex;font-size:var(--text-md);font-weight:600;gap:var(--space-3);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4)}.vrp-feasibility.ok{background:var(--teal-500-soft);color:var(--teal-text)}.vrp-feasibility.warn{background:var(--yellow-soft);color:var(--yellow-text)}.vrp-feasibility.error{background:var(--danger-soft);color:var(--danger)}.vrp-result{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:1fr 1fr}.vrp-result-hero{background:var(--white);border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:var(--space-5)}.vrp-result-metrics{grid-gap:var(--space-3);display:grid;gap:var(--space-3);grid-template-columns:repeat(2,1fr);margin-top:var(--space-4)}.vrp-result-metric{background:var(--paper);border-radius:var(--radius-s);padding:var(--space-3)}.vrp-result-metric .k{color:var(--text-3);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.vrp-result-metric .v{font-family:JetBrains Mono,monospace;font-size:var(--text-xl);font-weight:700;margin-top:2px}.vrp-fleet-map-card{background:var(--white);border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow-1);display:flex;flex-direction:column;overflow:hidden}.vrp-fleet-map{background:#dfe5e8;height:380px;position:relative}#fleet-map{inset:0;position:absolute}.vrp-fleet-legend{background:var(--paper-2);border-top:1px solid var(--line-2);display:flex;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.vrp-legend-item{align-items:center;background:var(--white);border:1px solid var(--line-2);border-radius:999px;cursor:pointer;display:inline-flex;font-size:var(--text-sm);font-weight:500;gap:var(--space-2);padding:4px var(--space-3);transition:opacity var(--t-fast)}.vrp-legend-item.dim{opacity:.4}.vrp-legend-item .swatch{border-radius:50%;height:10px;width:10px}.vrp-vehicles-result{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));margin-top:var(--space-4)}.vrp-vres-card{background:var(--white);border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:var(--space-4);transition:transform var(--t-fast),box-shadow var(--t-fast)}.vrp-vres-card:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}.vrp-vres-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-3)}.vrp-vres-stats{grid-gap:var(--space-3);border-bottom:1px solid var(--line-2);border-top:1px solid var(--line-2);display:grid;gap:var(--space-3);grid-template-columns:1fr 1fr;padding:var(--space-3) 0}.vrp-vres-stats .k{color:var(--text-3);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.vrp-vres-stats .v{font-family:JetBrains Mono,monospace;font-size:var(--text-md);font-weight:600;margin-top:2px}.vrp-vres-util{margin-top:var(--space-3)}.vrp-vres-util-head{align-items:baseline;color:var(--text-3);display:flex;font-size:var(--text-sm);justify-content:space-between;margin-bottom:6px}.vrp-vres-util-head .pct{color:var(--text-1);font-family:JetBrains Mono,monospace;font-weight:600}.vrp-util-bar{background:var(--paper);border-radius:999px;height:8px;overflow:hidden}.vrp-util-fill{border-radius:999px;height:100%;transition:width var(--t-base)}.vrp-vres-stop-list{display:flex;flex-direction:column;gap:var(--space-1);margin-top:var(--space-3)}.vrp-vres-stop{grid-gap:var(--space-2);align-items:center;border-radius:var(--radius-s);display:grid;font-size:var(--text-sm);gap:var(--space-2);grid-template-columns:auto 1fr auto;padding:6px var(--space-2)}.vrp-vres-stop:hover{background:var(--paper)}.vrp-vres-stop .num{background:var(--teal-800);border-radius:50%;color:var(--white);display:grid;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;height:20px;place-items:center;width:20px}@media (max-width:1100px){.vrp-hero-metrics,.vrp-result,.vrp-vehicle-list{grid-template-columns:1fr}}.bi-kpi-grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(4,1fr);margin-bottom:var(--space-6)}.margin-badge{align-items:center;background:var(--teal-500-soft);border-radius:999px;color:var(--teal-text);display:inline-flex;font-size:var(--text-xs);font-weight:700;padding:2px 8px}.margin-badge.neg{background:var(--danger-soft);color:var(--danger)}.margin-badge.flat{background:var(--paper);color:var(--text-3)}@media (max-width:1100px){.bi-kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.bi-kpi-grid{grid-template-columns:1fr}}.bi-cost-grid{grid-gap:var(--space-5);display:grid;gap:var(--space-5);grid-template-columns:1.4fr 1fr;margin-bottom:var(--space-6)}.bi-sim-grid{grid-gap:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:1fr 1fr}@media (max-width:1100px){.bi-cost-grid{grid-template-columns:1fr}}@media (max-width:700px){.bi-sim-grid{grid-template-columns:1fr}}.cost-model-item{background:var(--paper);border:1px solid var(--line-2);border-radius:var(--radius-s);padding:12px 14px}.cost-model-item .lbl{color:var(--text-3);font-size:11px;font-weight:600;letter-spacing:.04em;margin-bottom:8px;text-transform:uppercase}.cost-model-item .input-line{align-items:center;display:flex;gap:8px}.cost-model-item .input-line input{flex:1 1;min-width:0}.cost-model-item .input-line .u{color:var(--text-3);font-size:12px;white-space:nowrap}.pricing-recommendation{background:var(--paper);border:1px solid var(--line-2)}.pricing-recommendation .lead{font-size:13.5px;font-weight:700}.pricing-recommendation .d{color:var(--text-3);font-size:12px;margin-top:2px}.pricing-recommendation.ok{background:var(--teal-500-soft);border-color:#2a9d8f4d}.pricing-recommendation.ok .lead{color:var(--teal-text)}.pricing-recommendation.warn{background:var(--yellow-soft);border-color:#e9c46a66}.pricing-recommendation.warn .lead{color:var(--yellow-text)}.pricing-recommendation.err{background:var(--danger-soft);border-color:var(--danger-100)}.pricing-recommendation.err .lead{color:var(--danger)}.wa-layout{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1.4fr 1fr;margin-top:8px}@media (max-width:1024px){.wa-layout{grid-template-columns:1fr}}.wa-log{background:#fff;border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow-1);overflow:hidden}.wa-log-head{align-items:center;border-bottom:1px solid var(--line-2);display:flex;flex-wrap:wrap;gap:12px;padding:16px 20px}.wa-log-head .title{font-size:15px;font-weight:600;letter-spacing:-.01em}.wa-log-head .sub{color:var(--text-3);font-size:12px;margin-top:2px}.wa-log-body{max-height:640px;overflow-y:auto}.wa-notif-item{grid-gap:14px;align-items:flex-start;border-bottom:1px solid var(--line-2);cursor:pointer;display:grid;gap:14px;grid-template-columns:auto 1fr auto;padding:14px 20px;transition:background .1s}.wa-notif-item:last-child{border-bottom:none}.wa-notif-item:hover{background:var(--paper-2)}.wa-notif-item.selected{background:#1462760d;border-left:3px solid var(--teal-800);padding-left:17px}.wa-notif-icon{background:#25d366;border-radius:10px;color:#fff;display:grid;flex-shrink:0;height:36px;place-items:center;width:36px}.wa-notif-icon svg{height:18px;width:18px}.wa-notif-icon.event-start{background:var(--teal-800)}.wa-notif-icon.event-next{background:#e9c46a;color:#0b1b22}.wa-notif-icon.event-arrived{background:var(--teal-500)}.wa-notif-icon.event-delivered{background:#25d366}.wa-notif-icon.event-delayed{background:var(--amber);color:#fff}.wa-notif-body{min-width:0}.wa-notif-name{align-items:center;display:flex;flex-wrap:wrap;font-size:13.5px;font-weight:600;gap:8px}.wa-notif-name .ev{border-radius:4px;font-size:10px;font-weight:700;letter-spacing:.05em;padding:2px 6px;text-transform:uppercase}.wa-notif-preview{color:var(--text-3);font-size:12.5px;margin-top:3px;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wa-notif-meta{color:var(--text-4);font-family:JetBrains Mono,monospace;font-size:11px;margin-top:4px}.wa-notif-status{align-items:center;color:var(--text-3);display:flex;font-size:11px;gap:3px;text-align:right;white-space:nowrap}.wa-notif-status .st-ico{align-items:center;color:#8696a0;display:inline-flex}.wa-notif-status .st-ico.read svg{color:#0891cf}.wa-phone-preview{background:#efeae2;border:1px solid var(--line-2);border-radius:24px;box-shadow:0 20px 40px -10px #00000026,0 4px 12px #0000000f;padding:20px 12px 24px;position:sticky;top:80px}.wa-phone-header{align-items:center;background:#075e54;border-radius:16px 16px 6px 6px;color:#fff;display:flex;gap:10px;margin:0 -4px 4px;padding:10px 14px}.wa-phone-header .avatar{background:#2a9d8f;border-radius:50%;color:#fff;display:grid;height:34px;place-items:center;width:34px}.wa-phone-header .avatar,.wa-phone-header .who .name{font-size:13px;font-weight:600}.wa-phone-header .who .status{color:#c4ded9;font-size:11px;margin-top:1px}.wa-phone-header .icons{color:#c4ded9;display:flex;gap:14px;margin-left:auto}.wa-phone-header .icons svg{height:16px;width:16px}.wa-phone-body{background:#efeae2;background-image:radial-gradient(circle at 20% 20%,#25d36608 0,#0000 40%),radial-gradient(circle at 80% 60%,#075e540a 0,#0000 45%);border-radius:6px;min-height:340px;padding:14px 6px}.wa-bubble{background:#fff;border-radius:8px;box-shadow:0 1px 1px #00000014;font-size:13.5px;line-height:1.4;margin-bottom:8px;max-width:86%;padding:8px 10px 6px;position:relative}.wa-bubble.out{background:#dcf8c6;border-radius:8px 8px 2px 8px;margin-left:auto}.wa-bubble .time{align-items:center;color:var(--text-4);display:flex;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:400;gap:3px;justify-content:flex-end;margin-top:4px;text-align:right}.wa-bubble .time .check{align-items:center;color:#0891cf;display:inline-flex}.wa-bubble a{color:#0891cf;font-weight:500;text-decoration:none;word-break:break-all}.wa-bubble .btn-track{background:#f0f8ff;border:1px solid #b3d4e5;border-radius:6px;color:#075e54;cursor:pointer;display:block;font-size:12.5px;font-weight:600;margin-top:8px;padding:8px 10px;text-align:center;transition:all .15s ease}.wa-bubble .btn-track:hover{background:#e1f0f8;border-color:#92bed6}.wa-bubble b{color:#075e54}.wa-bubble-empty{color:var(--text-3);font-size:13px;padding:100px 20px;text-align:center}.wa-bubble-empty svg{color:var(--text-4);margin-bottom:12px}.wa-templates{border-top:1px dashed #0000001a;margin-top:16px;padding-top:14px}.wa-templates .lbl{color:var(--text-3);font-size:11px;font-weight:600;letter-spacing:.05em;margin-bottom:8px;padding:0 4px;text-transform:uppercase}.wa-template-item{background:#fff9;border:1px solid #0000000f;border-radius:8px;color:var(--text-2);font-size:12px;line-height:1.45;margin-bottom:6px;padding:9px 12px}.wa-template-item b{color:#075e54}.wa-integration-card{background:#fff;border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow-1);margin-bottom:16px;padding:20px}.wa-integration-card .split{align-items:flex-start;display:flex;gap:14px}.wa-integration-badge{background:#25d366;border-radius:12px;color:#fff;display:grid;flex-shrink:0;height:44px;place-items:center;width:44px}.wa-integration-card .lead{color:var(--text-1);font-size:14.5px;font-weight:600;letter-spacing:-.01em}.wa-integration-card .sub{color:var(--text-3);font-size:12.5px;line-height:1.5;margin-top:3px}.wa-integration-card .stat-row{grid-gap:12px;border-top:1px solid var(--line-2);display:grid;gap:12px;grid-template-columns:repeat(4,1fr);margin-top:16px;padding-top:16px}@media (max-width:768px){.wa-integration-card .stat-row{grid-template-columns:repeat(2,1fr)}}.wa-integration-card .stat-item .k{color:var(--text-3);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.wa-integration-card .stat-item .v{color:var(--text-1);font-family:JetBrains Mono,monospace;font-size:18px;font-weight:600;margin-top:2px}.wa-integration-card .stat-item .v .u{color:var(--text-3);font-size:11px;font-weight:500;margin-left:2px}.wa-empty{color:var(--text-3);padding:60px 20px;text-align:center}.wa-empty svg{color:var(--text-4);margin-bottom:14px}.track-shell{background:#f6f7f8;color:var(--text-1);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;inset:0;overflow-y:auto;position:fixed;z-index:70}.track-container{background:#fff;box-shadow:var(--shadow-2);margin:0 auto;max-width:520px;min-height:100vh;position:relative}.track-header{align-items:center;background:#fff;border-bottom:1px solid var(--line-2);display:flex;gap:12px;padding:16px 20px;position:sticky;top:0;z-index:5}.track-header .brand-mini{background:linear-gradient(135deg,#2a9d8f,#0f4c5c);border-radius:8px;color:#fff;display:grid;height:32px;place-items:center;width:32px}.track-header .info{flex:1 1;min-width:0}.track-header .cname{color:var(--text-3);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.track-header .order{font-family:JetBrains Mono,monospace;font-size:14px;font-weight:600}.track-header .support-btn{align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:8px;color:var(--text-2);display:inline-flex;font-size:12px;font-weight:600;gap:4px;padding:6px 10px}.track-header .support-btn:hover{background:#fff;border-color:var(--teal-500);color:var(--teal-800)}.track-status-hero{background:linear-gradient(180deg,#f6f7f8,#fff);padding:24px 20px 20px;position:relative;text-align:center}.track-status-badge{align-items:center;background:var(--teal-500-soft);border-radius:999px;color:#0d7a6c;display:inline-flex;font-size:12px;font-weight:600;gap:8px;letter-spacing:.03em;margin-bottom:12px;padding:6px 12px}.track-status-badge .pulse{animation:trackPulse 1.6s ease-out infinite;background:#0d7a6c;border-radius:50%;box-shadow:0 0 0 0 #0d7a6cb3;height:7px;width:7px}@keyframes trackPulse{0%{box-shadow:0 0 0 0 #0d7a6c99}to{box-shadow:0 0 0 10px #0d7a6c00}}.track-status-eta{color:var(--text-1);font-family:JetBrains Mono,monospace;font-size:38px;font-weight:700;letter-spacing:-.03em;line-height:1.05}.track-status-eta .u{color:var(--text-3);font-family:Inter,sans-serif;font-size:15px;font-weight:500;letter-spacing:0;margin-left:6px}.track-status-detail{color:var(--text-3);font-size:13.5px;margin-top:6px;padding:0 16px}.track-map-wrap{background:#dfe5e8;height:360px;position:relative}#public-track-map{inset:0;position:absolute}.track-progress{background:#fff;padding:22px 20px 10px}.track-progress-title{color:var(--text-3);font-size:11px;font-weight:600;letter-spacing:.05em;margin-bottom:14px;text-transform:uppercase}.track-steps{grid-gap:0;display:grid;gap:0;grid-template-columns:repeat(4,1fr);position:relative}.track-steps:before{background:var(--line);content:"";height:2px;left:12%;position:absolute;right:12%;top:11px;z-index:0}.track-step{position:relative;text-align:center;z-index:1}.track-step .dot{background:#fff;border:2px solid var(--line);border-radius:50%;display:grid;height:22px;margin:0 auto 8px;place-items:center;transition:all .3s;width:22px}.track-step.done .dot{background:var(--teal-500);border-color:var(--teal-500);color:#fff}.track-step.done .dot:after{content:"✓";font-size:11px;font-weight:800}.track-step.current .dot{background:var(--teal-800);border-color:var(--teal-800);box-shadow:0 0 0 4px #0f4c5c26;color:#fff}.track-step.current .dot:after{background:#fff;border-radius:50%;content:"";height:6px;width:6px}.track-step .lbl{color:var(--text-3);font-size:11px;font-weight:600;line-height:1.3}.track-step.current .lbl,.track-step.done .lbl{color:var(--text-1)}.track-step .time{color:var(--text-4);font-family:JetBrains Mono,monospace;font-size:10px;margin-top:2px}.track-driver-card{align-items:center;background:var(--paper);border:1px solid var(--line-2);border-radius:14px;display:flex;gap:14px;margin:16px 20px;padding:16px}.track-driver-avatar{background:linear-gradient(135deg,#2a9d8f,#0f4c5c);border-radius:50%;box-shadow:0 6px 12px -4px #0f4c5c4d;color:#fff;display:grid;flex-shrink:0;font-size:18px;font-weight:700;height:52px;place-items:center;width:52px}.track-driver-card .who .name{font-size:15px;font-weight:600;letter-spacing:-.01em}.track-driver-card .who .role{color:var(--text-3);font-size:12px;margin-top:1px}.track-driver-card .who .veh{background:#fff;border:1px solid var(--line-2);border-radius:999px;color:var(--text-2);display:inline-block;font-family:JetBrains Mono,monospace;font-size:11.5px;margin-top:6px;padding:2px 8px}.track-driver-actions{display:flex;gap:8px;margin-left:auto}.track-action-btn{background:#fff;border:1px solid var(--line);border-radius:12px;color:var(--text-2);display:grid;height:40px;place-items:center;transition:all .12s;width:40px}.track-action-btn:hover{background:var(--paper-2);border-color:var(--teal-700);color:var(--teal-800)}.track-action-btn.wa{background:#25d366;border-color:#25d366;color:#fff}.track-action-btn.wa:hover{background:#128c7e}.track-order-details{background:var(--paper-2);border:1px solid var(--line-2);border-radius:12px;margin:0 20px 20px;padding:16px}.track-order-details h4{color:var(--text-3);font-size:11px;font-weight:600;letter-spacing:.05em;margin-bottom:10px;text-transform:uppercase}.track-detail-row{display:flex;font-size:13px;justify-content:space-between;padding:6px 0}.track-detail-row .k{color:var(--text-3)}.track-detail-row .v{font-weight:500;text-align:right}.track-detail-row .v.mono{font-family:JetBrains Mono,monospace}.track-footer{background:var(--paper-2);border-top:1px solid var(--line-2);color:var(--text-3);font-size:11px;padding:20px;text-align:center}.track-footer .brand-line{margin-bottom:6px}.track-footer .brand-line b{color:var(--teal-800);font-weight:600}.track-completed-overlay{align-items:center;background:#fffffffa;display:flex;flex-direction:column;inset:0;justify-content:center;padding:32px 20px;position:absolute;text-align:center;z-index:10}.track-completed-icon{animation:completedPop .5s ease-out;background:linear-gradient(135deg,#25d366,#128c7e);border-radius:50%;box-shadow:0 12px 32px #25d36659;color:#fff;display:grid;height:80px;margin-bottom:18px;place-items:center;width:80px}.track-completed-icon svg{height:38px;width:38px}@keyframes completedPop{0%{opacity:0;transform:scale(.6)}70%{transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@keyframes gpsPulse{0%{opacity:.8;transform:scale(.9)}50%{opacity:.2;transform:scale(1.4)}to{opacity:.8;transform:scale(.9)}}.track-not-found{color:var(--text-3);padding:80px 20px;text-align:center}.track-not-found h2{color:var(--text-1);font-size:18px;font-weight:700;margin-bottom:8px}.driver-shell{background:var(--ink-900);color:var(--white);inset:0;overflow:hidden;position:fixed}#driver-map{inset:0;position:absolute;z-index:0}.driver-header{align-items:flex-start;background:linear-gradient(180deg,#07141ae6,#07141a80 65%,#0000);display:flex;gap:12px;left:0;padding:calc(env(safe-area-inset-top, 0px) + 14px) 16px 30px;position:absolute;right:0;top:0;z-index:20}.driver-header .exit{background:#ffffff1f;border:1px solid #ffffff29;border-radius:50%;color:var(--white);display:grid;flex-shrink:0;height:38px;place-items:center;width:38px}.driver-header .exit:hover{background:#fff3}.driver-header .info{flex:1 1;min-width:0;padding-top:3px}.driver-header .rname{font-size:14.5px;font-weight:700;letter-spacing:-.01em}.driver-header .rname,.driver-header .rsub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.driver-header .rsub{color:var(--ink-200);font-size:11.5px;margin-top:2px}.driver-header .progress-badge{background:#ffffff24;border:1px solid #ffffff2e;border-radius:999px;color:var(--white);flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700;margin-top:2px;padding:6px 10px;white-space:nowrap}.progress-bar-wrap{background:#ffffff2e;border-radius:999px;height:4px;left:16px;overflow:hidden;position:absolute;right:16px;top:calc(env(safe-area-inset-top, 0px) + 76px);z-index:20}.progress-bar-fill{background:var(--teal-500);border-radius:999px;height:100%;transition:width var(--t-slow) ease}.driver-sync-status{background:#5f3f07f0;border:1px solid #ffdb7373;border-radius:9px;color:#fff2c4;font-size:11.5px;font-weight:600;left:16px;line-height:1.35;padding:8px 10px;position:absolute;right:16px;text-align:center;top:calc(env(safe-area-inset-top, 0px) + 88px);z-index:21}.driver-fabs{bottom:calc(58vh + 16px);display:flex;flex-direction:column;gap:10px;position:fixed;right:16px;z-index:18}.fab{border-radius:50%;box-shadow:0 8px 20px #00000059;color:var(--white);display:grid;height:48px;place-items:center;transition:transform var(--t-fast) ease,background var(--t-fast) ease;width:48px}.fab:active{transform:scale(.94)}.fab.dark{background:var(--ink-700);border:1px solid #ffffff24}.fab.dark:hover{background:var(--ink-600)}.fab:disabled{opacity:.4;pointer-events:none}.next-card{background:var(--white);border-radius:20px 20px 0 0;bottom:0;box-shadow:0 -12px 32px #00000059;color:var(--text-1);left:0;max-height:58vh;overflow-y:auto;padding:18px 18px calc(env(safe-area-inset-bottom, 0px) + 18px);position:fixed;right:0;z-index:15}.next-card-head{align-items:flex-start;display:flex;gap:12px}.next-card-num{background:var(--teal-800);border-radius:50%;color:var(--white);display:grid;flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700;height:30px;place-items:center;width:30px}.next-card-label{color:var(--text-3);font-size:11px;font-weight:600;letter-spacing:.05em;margin-bottom:2px;text-transform:uppercase}.next-card-body{border-top:1px solid var(--line-2);margin-top:14px;padding-top:14px}.next-card-addr{font-size:14px;font-weight:500;line-height:1.4}.next-card-city{color:var(--text-3);font-size:12.5px;margin-top:3px}.next-card-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.meta-chip{align-items:center;background:var(--paper);border:1px solid var(--line-2);border-radius:999px;color:var(--text-2);display:inline-flex;font-size:11.5px;font-weight:600;gap:6px;padding:5px 10px}.meta-chip svg{height:12px;width:12px}.meta-chip.prio-alta{background:var(--danger-soft);border-color:var(--danger-100);color:var(--danger)}.next-card-actions{display:flex;flex-direction:column;gap:10px;margin-top:18px}.btn-arrived,.btn-nav,.btn-push{align-items:center;border:0;border-radius:var(--radius);cursor:pointer;display:flex;font-family:inherit;font-size:14.5px;font-weight:700;gap:8px;justify-content:center;padding:14px;transition:transform var(--t-fast) ease,background var(--t-fast) ease;width:100%}.btn-nav{background:var(--paper);color:var(--teal-800)}.btn-nav,.btn-push{border:1px solid var(--line-2)}.btn-push{background:#f4f7f7;color:var(--ink-700)}.btn-push.active{background:#e7f7f2;border-color:#9bdcc9;color:#087361}.btn-nav:hover{background:var(--line-2)}.btn-arrived{background:var(--teal-800);box-shadow:0 8px 20px -8px #0f4c5c99;color:var(--white)}.btn-arrived:hover:not(:disabled){background:var(--teal-900)}.btn-arrived:disabled,.btn-nav:disabled{cursor:not-allowed;opacity:.55}.btn-arrived:active,.btn-nav:active{transform:translateY(1px)}.completed-overlay{align-items:center;background:radial-gradient(1000px 500px at 10% -10%,#1a5f75 0,#0000 60%),radial-gradient(800px 500px at 100% 100%,#0a3844 0,#0000 55%),linear-gradient(180deg,#0b2b36,#061a22);color:var(--white);display:flex;flex-direction:column;inset:0;justify-content:center;padding:32px 24px;position:fixed;text-align:center;z-index:30}.completed-icon{animation:pop .3s ease-out;background:linear-gradient(135deg,var(--teal-500),var(--teal-800));border-radius:50%;box-shadow:0 16px 36px #2a9d8f59;display:grid;height:84px;margin-bottom:20px;place-items:center;width:84px}.completed-h{font-size:22px;font-weight:700;letter-spacing:-.01em;margin-bottom:8px}.completed-p{color:var(--ink-200);font-size:14px;max-width:320px}.completed-metrics{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr);margin:28px 0 32px;max-width:340px;width:100%}.completed-metric{background:#ffffff0f;border:1px solid #ffffff1a;border-radius:var(--radius);padding:14px 8px}.completed-metric .v{font-family:JetBrains Mono,monospace;font-size:18px;font-weight:700}.completed-metric .k{color:var(--ink-300);font-size:10.5px;letter-spacing:.05em;margin-top:4px;text-transform:uppercase}.custom-driver-pin{background:#0000;border:none}.stop-marker-mini{background:var(--ink-600);border:2px solid var(--white);border-radius:50%;box-shadow:0 4px 10px #00000059;color:var(--white);display:grid;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700;height:30px;place-items:center;width:30px}.stop-marker-mini.done{background:var(--teal-500)}.stop-marker-mini.next{background:var(--teal-800);border-color:var(--teal-glow);box-shadow:0 0 0 6px #2a9d8f40,0 4px 10px #00000059;height:36px;width:36px}
/*# sourceMappingURL=main.a038cbf0.css.map*/