.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;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{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;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{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.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;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.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{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{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-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height: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{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.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);width:36px;height: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{width:44px;height: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{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;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{height:0;border-top:1px solid #ddd;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{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.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{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.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{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}:root{--bg: #f3f5f7;--bg-grad-top: #eef6f8;--bg-grad-bottom: #f7f5f2;--surface: #ffffff;--surface-2: #f0f3f6;--surface-elevated: #ffffff;--surface-glass: rgba(255, 255, 255, .9);--text: #14181f;--text-muted: #5c6b7a;--muted: #5c6b7a;--primary: #0f766e;--primary-hover: #0d9488;--primary-on: #ffffff;--accent: #0d9488;--ok: #15803d;--warn: #c2410c;--danger: #dc2626;--border: #dde3ea;--border-strong: #c5ced8;--radius-sm: 8px;--radius: 12px;--radius-md: 12px;--radius-lg: 18px;--shadow: 0 10px 30px rgba(20, 40, 60, .08);--shadow-sm: 0 2px 10px rgba(20, 40, 60, .06);--safe-top: var(--safe-area-inset-top, env(safe-area-inset-top, 0px));--safe-bottom: var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));--safe-left: var(--safe-area-inset-left, env(safe-area-inset-left, 0px));--safe-right: var(--safe-area-inset-right, env(safe-area-inset-right, 0px));--tabbar-height: 60px;--vv-bottom: 0px;--vv-top: 0px;--app-height: 100svh;--dock-bottom: calc(var(--tabbar-height) + var(--safe-bottom));--ad-banner-height: 0px;--sheet-radius: 20px;--font-body: "Pretendard", "SUIT", -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans KR", sans-serif;--font-display: "SUIT", "Pretendard", -apple-system, BlinkMacSystemFont, sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;background:var(--bg);background-image:radial-gradient(ellipse 100% 70% at 50% -10%,#d8eef0 0%,transparent 50%),linear-gradient(165deg,var(--bg-grad-top) 0%,var(--bg) 45%,var(--bg-grad-bottom) 100%);background-attachment:fixed;color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.45;-webkit-text-size-adjust:100%;min-height:100dvh;min-height:var(--app-height, 100svh)}html:has(.app-shell),body:has(.app-shell),#root:has(.app-shell){height:var(--app-height, 100svh);overflow:hidden;overscroll-behavior:none}.page{max-width:480px;margin:0 auto;padding:calc(16px + var(--safe-top)) 16px 24px}.page--flush{max-width:none;padding:0}.page--no-tab{padding-bottom:calc(24px + var(--safe-bottom))}.app-header h1{font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:-.02em;margin:8px 0 2px}.subtitle{color:var(--muted);font-size:13px;margin:0 0 12px}.status-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;overflow:hidden}.status-header{width:100%;display:flex;justify-content:space-between;align-items:center;background:transparent;color:var(--text);border:none;padding:14px 16px;font-size:15px;cursor:pointer}.status-body{padding:0 16px 16px}.status-grid{display:grid;grid-template-columns:1fr auto;gap:6px 12px;font-size:14px;margin-bottom:12px}.status-grid>div:nth-child(2n){text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.badge{font-size:11px;padding:2px 8px;border-radius:999px;margin-left:6px}.badge-ok{background:#16a34a1f;color:#15803d}.badge-warn{background:#0d94881f;color:#0f766e}.badge-off{background:#dc26261a;color:#dc2626}.badge-muted{background:#64748b1f;color:#64748b}.service-status-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:10px}.service-status-row{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:10px 12px;background:var(--surface-2);border-radius:8px;border:1px solid var(--border)}.service-status-row--error{margin-bottom:10px}.service-status-name{font-weight:600;font-size:14px}.service-status-message{grid-column:1 / -1;margin:0;font-size:13px;color:var(--muted)}.service-status-meta{grid-column:1 / -1;margin:0;font-size:12px;color:var(--muted)}.service-status-regions{margin-bottom:12px}.service-status-regions-title{font-size:13px;margin:0 0 8px;color:var(--muted)}.service-status-region-row{font-size:13px;padding:8px 0;border-bottom:1px solid var(--border)}.service-status-region-row:last-child{border-bottom:none}.service-status-region-mode{margin-left:8px;font-size:11px;color:var(--muted)}.service-status-checked-at{font-size:12px;color:var(--muted);margin:0 0 10px}.route-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:18px}.field-group{display:flex;flex-direction:column;gap:8px}.field-label{font-size:14px;font-weight:600;color:var(--muted)}.coord-row{display:flex;gap:8px}.coord-row input{flex:1;min-width:0}input{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:12px;font-size:16px}input:focus{outline:2px solid var(--primary);border-color:var(--primary)}.segmented{display:flex;gap:6px;flex-wrap:wrap}.seg{flex:1;min-width:64px;padding:12px 8px;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:8px;font-size:14px;cursor:pointer}.seg-on{background:var(--primary);border-color:var(--primary);color:var(--primary-on);font-weight:600}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:10px 14px;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:999px;font-size:14px;cursor:pointer}.chip-on{background:#0f766e1f;border-color:var(--primary);color:var(--primary);font-weight:600}.btn-primary{background:var(--primary);color:var(--primary-on);border:none;border-radius:10px;padding:16px;font-size:16px;font-weight:700;cursor:pointer}.btn-primary:disabled{opacity:.6;cursor:default}.btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 14px;font-size:14px;cursor:pointer;align-self:flex-start}.btn-location{width:100%;min-height:48px;background:var(--primary);color:var(--primary-on);border:none;border-radius:10px;padding:14px 16px;font-size:16px;font-weight:700;cursor:pointer}.btn-location:disabled{opacity:.65;cursor:default}.btn-advanced-toggle{background:transparent;color:var(--muted);border:none;padding:8px 0;font-size:13px;text-align:left;cursor:pointer;min-height:44px}.location-block{display:flex;flex-direction:column;gap:4px;margin-bottom:4px}.start-location-picker{display:flex;flex-direction:column;gap:10px}.start-location-search-wrap{position:relative;display:flex;flex-direction:column;gap:6px}.start-location-search-input{width:100%;min-height:48px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text);padding:12px 14px;font-size:16px}.start-location-results{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:10px;background:var(--surface);max-height:240px;overflow-y:auto}.start-location-result-btn{width:100%;text-align:left;border:none;border-bottom:1px solid var(--border);background:transparent;color:var(--text);padding:12px 14px;cursor:pointer;display:flex;flex-direction:column;gap:4px}.start-location-result-btn:last-child{border-bottom:none}.start-location-result-btn strong{font-size:15px}.start-location-result-btn span{font-size:12px;color:var(--muted)}.start-location-selected{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:10px;background:#2563eb1f;border:1px solid rgba(37,99,235,.35)}.start-location-selected-label,.start-location-selected-coord{font-size:12px;color:var(--muted)}.coord-advanced{margin-top:8px}.network-banner{background:#d977062e;border:1px solid rgba(217,119,6,.45);color:#fcd34d;border-radius:8px;padding:10px 12px;font-size:13px;margin-bottom:12px;line-height:1.4}.route-gen-status-banner{position:sticky;top:0;z-index:1100;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:calc(8px + var(--safe-top)) 12px 0;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);font-size:14px;color:var(--text)}.route-gen-status-banner--ready{border-color:var(--primary)}.route-gen-status-banner a{flex-shrink:0;color:var(--primary);font-weight:700;text-decoration:none}.results{margin-top:20px;display:flex;flex-direction:column;gap:14px;scroll-margin-top:12px}.results-title{font-size:16px;margin:4px 0}.route-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.route-card-head{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:6px;margin-bottom:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.route-card-head::-webkit-scrollbar{display:none}.route-card-head__row,.route-card-head__chips{display:contents}.route-rank{font-weight:700;font-size:14px;flex-shrink:0;white-space:nowrap}.route-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;line-height:1.3;border:1px solid transparent;white-space:nowrap;flex-shrink:0}.route-chip--type{background:#0f766e1f;color:#0f766e;border-color:#0f766e38}.route-chip--trust{background:#ca8a0424;color:#a16207;border-color:#ca8a0447}.route-chip--observe{background:#64748b1f;color:#475569;border-color:#64748b40}.route-chip--basic{background:#b453091f;color:#c2410c;border-color:#b4530940}.route-chip--ok{background:#2563eb1a;color:#1d4ed8;border-color:#2563eb38}.route-chip--warn{background:#f59e0b24;color:#b45309;border-color:#f59e0b4d}.route-badge{background:#0f766e1f;color:#0f766e;padding:4px 10px;border-radius:8px;font-size:12px;font-weight:600}.route-badge-gold{background:#ca8a0424;color:#a16207}.route-badge-silver{background:#64748b1f;color:#475569}.route-badge-bronze{background:#b453091f;color:#c2410c}.route-bronze-notice{margin:0 0 10px;font-size:.9rem;line-height:1.45}.route-guidance-panel{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:#f59e0b24;border:1px solid rgba(245,158,11,.35);font-size:.9rem}.route-guidance-panel--compact{margin:0 0 10px;padding:8px 10px;font-size:.84rem;background:color-mix(in srgb,#f59e0b 10%,var(--surface));border-color:color-mix(in srgb,#f59e0b 28%,var(--border))}.route-guidance-panel--compact strong{margin-bottom:4px;font-size:.8rem}.route-guidance-panel--compact ul{padding-left:16px}.route-guidance-panel--compact li+li{margin-top:2px}.route-guidance-panel strong{display:block;margin-bottom:6px}.route-guidance-panel ul{margin:0;padding-left:18px}.route-guidance-panel li+li{margin-top:4px}.results-tier-badge{margin-left:10px;font-size:.85rem;font-weight:600;padding:3px 10px;border-radius:999px;vertical-align:middle}.results-tier-gold{background:#ca8a0438;color:#facc15}.results-tier-silver{background:#94a3b840;color:#cbd5e1}.results-tier-bronze{background:#b4530940;color:#fdba74}.nav-bronze-ack{display:flex;gap:8px;align-items:flex-start;font-size:.88rem;line-height:1.4;color:var(--text);margin-bottom:4px}.nav-bronze-ack input{margin-top:3px}.status-trust-split{margin:0 0 12px;padding:10px 12px;background:var(--surface-2);border-radius:8px;font-size:.9rem;line-height:1.5}.status-trust-split strong{display:block;margin-bottom:4px}.route-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.route-stats>div{background:var(--surface-2);border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:2px}.stat-label{font-size:12px;color:var(--muted)}.stat-value{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}.route-map-wrap{position:relative;margin-bottom:16px}.route-map{width:100%;height:360px;border-radius:12px;z-index:0}@media(min-width:768px){.route-map{height:520px}}.map-empty-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#f3f5f7b8;color:var(--text);border-radius:12px;font-size:14px;pointer-events:none}.route-loading-ring--1{animation:route-ring-pulse 1.8s ease-out infinite}.route-loading-ring--2{animation:route-ring-pulse 1.8s ease-out infinite .55s}@keyframes route-ring-pulse{0%{stroke-opacity:.65;fill-opacity:.12}70%{stroke-opacity:.18;fill-opacity:.03}to{stroke-opacity:.06;fill-opacity:.01}}.route-generation-progress{margin:0 0 12px;padding:14px 16px;border-radius:var(--radius-md);border:1px solid rgba(15,118,110,.25);background:var(--surface-elevated)}.route-generation-progress__header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.route-generation-progress__elapsed{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.route-generation-progress__message{margin:0 0 10px;font-size:14px;color:var(--primary)}.route-generation-progress__steps{list-style:none;margin:0;padding:0;display:grid;gap:6px}.route-generation-progress__step{display:grid;grid-template-columns:auto 1fr;gap:4px 8px;align-items:baseline;font-size:13px}.route-generation-progress__step-icon{font-size:12px;line-height:1.4}.route-generation-progress__step--pending{color:var(--muted)}.route-generation-progress__step--active{color:var(--primary);font-weight:600}.route-generation-progress__step--active .route-generation-progress__step-icon{animation:step-active-blink 1.2s ease-in-out infinite}@keyframes step-active-blink{0%,to{opacity:1}50%{opacity:.35}}.route-generation-progress__step--done{color:var(--ok)}.route-generation-progress__step-detail{grid-column:2;font-size:12px;color:var(--muted);font-weight:400}.route-generation-progress__tip{margin:10px 0 0;padding-top:10px;border-top:1px dashed rgba(148,163,184,.5);font-size:12px;color:var(--muted)}.route-polyline-drawing{pointer-events:none}.route-polyline--flow{stroke-dasharray:10 18;animation:route-polyline-flow 1.6s linear infinite;pointer-events:none}.route-polyline-drawing.route-polyline--flow,.leaflet-overlay-pane .route-polyline--flow{animation:route-polyline-flow 1.6s linear infinite}.route-map-wrap--flow-paused .route-polyline--flow{animation-play-state:paused}@keyframes route-polyline-flow{to{stroke-dashoffset:-28}}.route-vote-row{display:flex;gap:8px;margin:8px 0 4px}.route-vote-btn--on{border-color:#2563eb;color:#1d4ed8;font-weight:600}.nearby-recommendations{margin:12px 0 8px}.nearby-recommendations--collapsed{margin-top:8px}.nearby-recommendations__loading{margin:0;font-size:.85rem}.nearby-recommendations__toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 12px;border:1px solid var(--border, #e5e7eb);border-radius:10px;background:var(--surface, #fff);color:inherit;font:inherit;text-align:left;cursor:pointer}.nearby-recommendations__toggle-title{font-size:.9rem;font-weight:600}.nearby-recommendations__toggle-action{font-size:.8rem;color:var(--text-muted, #6b7280);flex-shrink:0}.nearby-recommendations__body{margin-top:10px}.nearby-recommendation-card{margin-bottom:10px}.nearby-recommendation-card--compact{padding:10px 12px;margin-bottom:8px}.nearby-recommendation-card--selectable .btn-secondary{width:100%;margin-top:8px}.nearby-recommendation-card--compact .route-stats--compact{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.nearby-recommendation-card--compact .stat-label,.nearby-recommendation-card--compact .stat-value{font-size:.8rem}.map-legend{position:absolute;bottom:10px;left:10px;right:auto;z-index:450;display:flex;flex-direction:column;gap:6px;max-width:min(calc(100% - 20px),340px);background:#fffffff0;color:#1f2937;border-radius:10px;padding:8px 10px;font-size:11px;box-shadow:0 1px 4px #0003;pointer-events:none}@media(max-width:480px){.map-legend{left:8px;max-width:calc(100% - 72px);font-size:10px;padding:6px 8px}}.map-legend__row{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}.map-legend__item{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.map-legend .legend-line{display:inline-block;width:16px;height:0;border-top:4px solid #0f766e;vertical-align:middle}.map-legend .legend-line--dash{border-top:3px dashed #f59e0b}.map-legend .legend-line--motorway{border-top:4px solid #c2410c}.legend-swatch--origin-tap{background:#64748b}.map-legend .legend-chevron{display:inline-flex;align-items:center;justify-content:center;width:16px;height:10px;vertical-align:middle;transform:rotate(90deg);filter:drop-shadow(0 0 .6px rgba(15,23,42,.4))}.map-legend .legend-chevron svg{display:block}.map-divicon--route-direction{background:transparent;border:none}.route-direction-chevron{display:flex;align-items:center;justify-content:center;width:26px;height:26px;opacity:var(--arrow-opacity, 1);transform:rotate(var(--bearing, 0deg));transform-origin:center center;pointer-events:none;filter:drop-shadow(0 1px 1.5px rgba(15,23,42,.35))}.route-direction-chevron svg{display:block;overflow:visible}.route-direction-chevron__stroke{fill:none;stroke:#fff;stroke-width:5.5;stroke-linecap:round;stroke-linejoin:round}.route-direction-chevron__fill{fill:none;stroke:var(--arrow-accent, #0f766e);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}.route-direction-arrow{display:block;width:0;height:0;margin:3px auto;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:10px solid var(--arrow-color, #0f766e);opacity:var(--arrow-opacity, .92);transform:rotate(var(--bearing, 0deg));transform-origin:center 70%;filter:drop-shadow(0 0 1px rgba(255,255,255,.95));pointer-events:none}.legend-swatch{display:inline-block;width:10px;height:10px;border-radius:999px;border:1px solid rgba(255,255,255,.9);box-shadow:0 0 0 1px #0000001f;flex-shrink:0}.legend-swatch--start{background:#16a34a}.legend-swatch--via{background:#0f766e;border-radius:2px}.legend-swatch--caution{background:#f59e0b;border-radius:2px}.map-divicon--poi{overflow:visible}.map-poi-chip{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:22px;padding:0 6px;border-radius:999px;border:2px solid #fff;box-shadow:0 0 0 1.5px #0f172a73,0 1px 4px #0006;color:#fff;font-size:10px;font-weight:700;letter-spacing:-.02em;line-height:1;white-space:nowrap;background:#64748b}.map-poi-chip__label{transform:translateY(.5px)}.map-poi-chip--cafe{background:#b45309}.map-poi-chip--gas_station{background:#0369a1}.map-poi-chip--fuel-price{background:#0369a1;font-variant-numeric:tabular-nums;letter-spacing:-.03em}.map-poi-chip--fuel-cheapest{background:#15803d}.map-poi-chip--fuel-compact{height:18px;font-size:9px;padding:0 5px}.map-poi-chip--toilet{background:#0f766e}.map-poi-chip--convenience_store{background:#c2410c}.map-poi-chip--restaurant{background:#b91c1c}.map-poi-chip--tourist_spot{background:#15803d}.map-poi-chip--viewpoint{background:#a16207}.map-poi-chip--repair_shop{background:#475569}.map-poi-chip--parking{background:#64748b}.map-poi-chip--rest_area{background:#0891b2}.map-poi-chip--unknown{background:#6b7280}.map-poi-chip--focused{outline:2px solid #fff;box-shadow:0 0 0 3px #0f766ed9;transform:scale(1.12)}.map-divicon--poi-dot,.map-divicon--poi-badge{overflow:visible}.map-poi-badge{width:24px;height:24px;border-radius:50%;border:2.5px solid #fff;box-shadow:0 0 0 1.5px #0f172a8c,0 2px 6px #0006;background:#64748b;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.map-poi-badge__glyph{font-size:11px;font-weight:800;line-height:1;color:#fff;letter-spacing:-.02em}.map-poi-badge--focused{width:28px;height:28px;box-shadow:0 0 0 2px #fff,0 0 0 4px #0f766ee6,0 2px 6px #0006}.map-poi-badge--cafe{background:#b45309}.map-poi-badge--gas_station{background:#0369a1}.map-poi-badge--toilet{background:#0f766e}.map-poi-badge--convenience_store{background:#c2410c}.map-poi-badge--restaurant{background:#b91c1c}.map-poi-badge--tourist_spot{background:#15803d}.map-poi-badge--viewpoint{background:#a16207}.map-poi-badge--repair_shop{background:#475569}.map-poi-badge--parking{background:#64748b}.map-poi-badge--rest_area{background:#0891b2}.map-poi-badge--unknown{background:#6b7280}.map-poi-dot{width:14px;height:14px;border-radius:50%;border:2.5px solid #fff;box-shadow:0 0 0 1.5px #0f172a80,0 1px 4px #00000073;background:#64748b;box-sizing:border-box}.map-poi-dot--focused{width:16px;height:16px;box-shadow:0 0 0 2px #fff,0 0 0 3.5px #0f766ee6}.map-poi-dot--cafe{background:#b45309}.map-poi-dot--gas_station{background:#0369a1}.map-poi-dot--toilet{background:#0f766e}.map-poi-dot--convenience_store{background:#c2410c}.map-poi-dot--restaurant{background:#b91c1c}.map-poi-dot--tourist_spot{background:#15803d}.map-poi-dot--viewpoint{background:#a16207}.map-poi-dot--repair_shop{background:#475569}.map-poi-dot--parking{background:#64748b}.map-poi-dot--rest_area{background:#0891b2}.map-poi-dot--unknown{background:#6b7280}.map-marker-dot{width:22px;height:22px;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 4px #00000073;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;background:var(--primary)}.map-marker-dot--start{background:#16a34a}.map-marker-dot--end{background:#dc2626}.map-marker-dot--caution{background:#f59e0b;border-radius:4px}.map-marker-dot--poi{background:#0ea5e9;font-size:11px}.map-divicon{background:transparent;border:none}.map-emoji-marker{font-size:18px;line-height:26px;text-align:center;filter:drop-shadow(0 1px 1px rgba(0,0,0,.4))}.map-emoji-marker.caution{font-size:20px}.map-divicon--place-pin{background:transparent;border:none}.map-place-pin{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;width:100%;height:100%;pointer-events:none;filter:drop-shadow(0 2px 4px rgba(15,23,42,.32))}.map-place-pin__label{flex:0 0 auto;height:22px;line-height:22px;padding:0 8px;border-radius:11px;font-size:11px;font-weight:700;color:#fff;white-space:nowrap}.map-place-pin__glyph{display:block;flex:0 0 auto;margin-top:2px}.map-place-pin--picker{color:#0f766e}.map-place-pin--picker .map-place-pin__label{background:#0f766e}.map-place-pin--origin-tap{color:#64748b}.map-place-pin--origin-tap .map-place-pin__label{background:#64748b}.map-place-pin--start{color:#15803d}.map-place-pin--start .map-place-pin__label{background:#15803d}.map-place-pin--end{color:#dc2626}.map-place-pin--end .map-place-pin__label{background:#dc2626}.map-place-pin--busy .map-place-pin__glyph{animation:map-place-pin-busy 1.6s ease-in-out infinite}@keyframes map-place-pin-busy{0%,to{transform:translateY(0);filter:drop-shadow(0 1px 0 rgba(15,23,42,.12))}50%{transform:translateY(-2px);filter:drop-shadow(0 4px 4px rgba(15,118,110,.28))}}.map-pin{font-size:11px;font-weight:700;color:#fff;text-align:center;line-height:22px;border-radius:11px;white-space:nowrap;box-shadow:0 1px 3px #00000059}.map-pin.start{background:#16a34a;min-width:40px;padding:0 8px}.map-pin.end{background:#dc2626;min-width:40px;padding:0 8px}.map-pin.via{background:#0f766e;min-width:40px;padding:0 6px}.map-pin--via-compact{min-width:0!important;padding:0 5px!important;line-height:18px!important;font-size:10px!important;border-radius:9px!important;opacity:.92}.map-via-dot{width:8px;height:8px;border-radius:2px;background:#0f766e;border:1.5px solid #fff;box-shadow:0 0 0 1px #0f766e59}.map-via-dot--turn{width:10px;height:10px;border-radius:50%;background:#0f766e}.map-pin.picker{background:#0f766e;min-width:48px;padding:0 8px}.map-pin.origin-tap{background:#64748b;min-width:56px;padding:0 8px}.map-current-dot{width:14px;height:14px;border-radius:50%;background:#2563eb;border:2px solid #fff;box-shadow:0 0 0 2px #2563eb66}.route-card{cursor:pointer}.route-card-selected{border-color:var(--accent, #2563eb);box-shadow:0 0 0 2px var(--accent, #2563eb)}.route-selected-badge{font-size:12px;color:#1d4ed8;font-weight:600;padding:4px 10px;border-radius:8px;background:#2563eb1a}.ai-summary-box{background:var(--surface-2);border-left:3px solid var(--accent, #2563eb);border-radius:8px;padding:10px 12px;margin-bottom:12px}.ai-summary-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px}.ai-summary-meta{font-size:11px;color:var(--muted)}.ai-summary-text{margin:0;font-size:13px;line-height:1.5}.validation-box{background:var(--surface-2);border-radius:8px;padding:8px 12px;margin-bottom:12px;display:flex;flex-direction:column;gap:4px}.validation-row{display:flex;justify-content:space-between;align-items:center;font-size:13px}.caution-box{background:#dc26261f;border:1px solid rgba(220,38,38,.4);border-radius:8px;padding:10px 12px;margin-bottom:12px;font-size:13px}.caution-box ul,.warning-box ul{margin:6px 0 0;padding-left:18px}.warning-box{background:#d977061f;border:1px solid rgba(217,119,6,.4);border-radius:8px;padding:10px 12px;font-size:13px}.error-box{background:#dc26261f;border:1px solid rgba(220,38,38,.4);border-radius:8px;padding:12px;margin-top:16px;font-size:14px}.error-text{color:var(--danger);font-size:13px;margin:4px 0 0}.success-text{color:var(--ok);font-size:13px;margin:4px 0 0}.auth-result{display:flex;flex-direction:column;gap:8px;max-width:100%;min-width:0;box-sizing:border-box;padding:14px 14px 12px;border-radius:12px;font-size:14px;line-height:1.45}.auth-result--ok{background:#0f766e1a;border:1px solid rgba(15,118,110,.35);color:var(--text)}.auth-result__title{font-size:1rem;font-weight:700}.auth-result__body{margin:0;color:var(--muted);font-size:.92rem}.auth-result .my-peer-actions{margin-top:8px}.info-text{color:var(--muted);font-size:13px;margin:4px 0 0}.warn-text{color:var(--warn);font-size:13px;margin:4px 0 0}.route-poi-section{margin:12px 0 4px}.poi-list__head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:4px}.poi-list__title{font-size:.95rem}.poi-list__count{font-size:.8rem;color:var(--text-muted, #6b7280)}.poi-list__count--inline{margin-left:auto;font-size:12px;font-weight:600;color:var(--muted)}.poi-list__panel-bar--compact{justify-content:flex-end;margin-bottom:4px}.poi-list--compact .poi-list__scroller{max-height:none;overflow-y:visible;padding:2px 0 4px}.poi-list--compact.poi-list--expanded .poi-list__scroller{--poi-expanded-row: 54px;--poi-expanded-gap: 4px;max-height:calc(8px + (3 * var(--poi-expanded-row)) + (2 * var(--poi-expanded-gap)));overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;border:1px solid color-mix(in srgb,var(--border) 85%,transparent);border-radius:10px;padding:4px;background:color-mix(in srgb,var(--surface) 96%,var(--surface-2))}.poi-list--compact.poi-list--expanded .poi-item-wrap{height:var(--poi-expanded-row)}.poi-list--compact.poi-list--expanded .poi-list__scroller .poi-item-wrap+.poi-item-wrap{margin-top:var(--poi-expanded-gap)}.poi-list--compact.poi-list--expanded .poi-item{height:100%;box-sizing:border-box;padding:7px 10px;display:flex;flex-direction:column;justify-content:center}.poi-list--compact.poi-list--expanded .poi-meta{margin-top:2px}.poi-list__more{display:flex;align-items:center;justify-content:center;width:100%;min-height:40px;margin:6px 0 2px;padding:8px 12px;border:1px dashed color-mix(in srgb,var(--border) 90%,var(--primary));border-radius:10px;background:color-mix(in srgb,var(--primary) 6%,var(--surface));color:var(--primary);font:inherit;font-size:13px;font-weight:650;cursor:pointer}.poi-list__jump-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 0 6px;min-height:36px}.poi-list__jump-bar--top{position:sticky;top:0;z-index:2;margin:0 0 6px;padding:4px 0;background:var(--surface)}.poi-list__hint{margin:4px 0 0;font-size:11px;color:var(--muted)}.poi-filter-chips{margin:0 0 6px;gap:5px}.poi-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 6px}.poi-map-switch{display:inline-flex;align-items:center;gap:7px;margin:0;padding:4px 8px 4px 4px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);font-size:12px;font-weight:650;cursor:pointer}.poi-map-switch.is-on{border-color:color-mix(in srgb,#0f766e 40%,var(--border));color:#0f766e;background:color-mix(in srgb,#0f766e 10%,var(--surface))}.poi-map-switch__track{position:relative;width:28px;height:16px;border-radius:999px;background:color-mix(in srgb,var(--border) 80%,#94a3b8);flex-shrink:0}.poi-map-switch.is-on .poi-map-switch__track{background:#0f766e}.poi-map-switch__thumb{position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;transition:transform .15s ease}.poi-map-switch.is-on .poi-map-switch__thumb{transform:translate(12px)}.poi-list-link{margin:0;padding:4px 2px;border:none;background:transparent;color:var(--muted);font-size:12px;font-weight:650;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.poi-list__panel{margin:2px 0 0;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--surface-2, #f8fafc) 70%,var(--surface));overflow:hidden}.poi-list__panel-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border-bottom:1px solid color-mix(in srgb,var(--border) 80%,transparent);background:color-mix(in srgb,var(--surface) 92%,transparent)}.poi-list__panel-count{font-size:11px;font-weight:700;color:var(--muted)}.poi-list__panel-actions{display:inline-flex;align-items:center;gap:4px}.poi-list__jump{margin:0;padding:4px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font-size:11px;font-weight:650;cursor:pointer}.poi-list__jump--primary{border-color:color-mix(in srgb,#0f766e 35%,var(--border));color:#0f766e;background:color-mix(in srgb,#0f766e 10%,var(--surface))}.poi-list__scroller{list-style:none;margin:0;padding:4px;max-height:min(38vh,260px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.poi-list__scroller .poi-item-wrap+.poi-item-wrap{margin-top:4px}.chip--slim{padding:5px 9px;font-size:12px;min-height:28px}.map-poi-filter-rail{--route-card-w: min(78vw, 280px);--route-card-side: max(14px, calc((100% - var(--route-card-w)) / 2));position:absolute;left:0;right:0;z-index:625;pointer-events:none;max-width:480px;margin:0 auto;box-sizing:border-box;padding-left:var(--route-card-side);padding-right:var(--route-card-side)}.map-poi-filter-rail__shell{position:relative;pointer-events:auto;width:100%;min-width:0}.map-poi-filter-rail__track{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px 0 4px;mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;-webkit-mask-repeat:no-repeat}.map-poi-filter-rail__track::-webkit-scrollbar{display:none}.map-poi-filter-rail.is-fade-right .map-poi-filter-rail__track{mask-image:linear-gradient(to right,#000 0%,#000 calc(100% - 40px),transparent 100%);-webkit-mask-image:linear-gradient(to right,#000 0%,#000 calc(100% - 40px),transparent 100%)}.map-poi-filter-rail.is-fade-left .map-poi-filter-rail__track{mask-image:linear-gradient(to right,transparent 0%,#000 40px,#000 100%);-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 40px,#000 100%)}.map-poi-filter-rail.is-fade-left.is-fade-right .map-poi-filter-rail__track{mask-image:linear-gradient(to right,transparent 0%,#000 36px,#000 calc(100% - 36px),transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 36px,#000 calc(100% - 36px),transparent 100%)}.map-poi-filter-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;min-height:32px;padding:5px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-sm);color:var(--text);font-size:12px;font-weight:600;line-height:1.2;cursor:pointer;white-space:nowrap}.map-poi-filter-chip--master{font-weight:700}.map-poi-filter-chip.is-on{background:color-mix(in srgb,var(--primary) 14%,var(--surface-glass));border-color:var(--primary);color:var(--primary)}.map-poi-filter-chip__count{font-size:11px;font-weight:600;color:var(--muted)}.map-poi-filter-chip.is-on .map-poi-filter-chip__count{color:color-mix(in srgb,var(--primary) 75%,var(--muted))}.map-poi-preview{--route-card-w: min(78vw, 280px);--route-card-side: max(14px, calc((100% - var(--route-card-w)) / 2));position:absolute;left:0;right:0;z-index:630;max-width:480px;margin:0 auto;box-sizing:border-box;padding-left:var(--route-card-side);padding-right:var(--route-card-side);pointer-events:none}.map-poi-preview__panel{pointer-events:auto;width:100%;min-height:44px;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:14px;border:1px solid var(--border);background:var(--surface-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-sm)}.map-poi-preview__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.map-poi-preview__cat{font-size:11px;font-weight:600;color:var(--muted);line-height:1.2}.map-poi-preview__cheapest{font-size:11px;font-weight:700;color:#15803d;line-height:1.2}.map-poi-preview__name{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}.map-poi-preview__meta{font-size:11px;color:var(--muted);line-height:1.2}.map-poi-preview__actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.map-poi-preview__btn{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 10px;border-radius:8px;font:inherit;font-size:12px;font-weight:600;cursor:pointer;line-height:1}.map-poi-preview__btn--secondary{border:1px solid var(--border);background:var(--surface-2);color:var(--text)}.map-poi-preview__btn--ghost{border:none;background:transparent;color:var(--muted);padding:0 6px}.map-divicon--poi-cluster{overflow:visible}.map-poi-cluster{width:100%;height:100%;border-radius:50%;box-sizing:border-box;border:2.5px solid #fff;box-shadow:0 0 0 1.5px #0f172a80,0 2px 6px #0006;background:#64748b;color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;letter-spacing:-.03em;line-height:1}.map-poi-cluster--cafe{background:#b45309}.map-poi-cluster--gas_station{background:#0369a1}.map-poi-cluster--toilet{background:#0f766e}.map-poi-cluster--convenience_store{background:#c2410c}.map-poi-cluster--restaurant{background:#b91c1c}.map-poi-cluster--tourist_spot{background:#15803d}.map-poi-cluster--viewpoint{background:#a16207}.map-poi-cluster--repair_shop{background:#475569}.map-poi-cluster--parking{background:#64748b}.map-poi-cluster--rest_area{background:#0891b2}.map-poi-cluster--unknown{background:#6b7280}.map-poi-cluster-picker{--route-card-w: min(78vw, 280px);--route-card-side: max(14px, calc((100% - var(--route-card-w)) / 2));position:absolute;left:0;right:0;z-index:630;max-width:480px;margin:0 auto;box-sizing:border-box;padding-left:var(--route-card-side);padding-right:var(--route-card-side);pointer-events:none}.map-poi-cluster-picker__panel{pointer-events:auto;width:100%;max-width:100%;display:flex;flex-direction:column;gap:8px;padding:10px 12px 12px;border-radius:14px;border:1px solid var(--border);background:var(--surface-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-sm);max-height:min(36dvh,calc(var(--app-height, 100svh) - var(--safe-top) - 200px));box-sizing:border-box;overflow:hidden}.map-poi-cluster-picker__head{display:flex;flex-direction:column;gap:2px;min-width:0}.map-poi-cluster-picker__title{font-size:13px;font-weight:700;color:var(--text);line-height:1.25}.map-poi-cluster-picker__list{list-style:none;margin:0;padding:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;min-height:0;flex:1 1 auto}.map-poi-cluster-picker__item{display:flex;align-items:center;gap:8px;width:100%;min-width:0;box-sizing:border-box;margin:0;padding:8px 6px;border:0;border-radius:10px;background:transparent;text-align:left;cursor:pointer;font:inherit}.map-poi-cluster-picker__list li+li .map-poi-cluster-picker__item{border-top:1px solid color-mix(in srgb,var(--border) 80%,transparent);border-radius:0}.map-poi-cluster-picker__item:active{background:color-mix(in srgb,var(--primary) 8%,transparent)}.map-poi-cluster-picker__item-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.map-poi-cluster-picker__item-cat{font-size:11px;font-weight:600;color:var(--muted);line-height:1.2}.map-poi-cluster-picker__item-name{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}.map-poi-cluster-picker__item-meta{flex-shrink:0;font-size:11px;font-weight:600;color:var(--muted)}.map-poi-cluster-picker__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:stretch}.map-poi-cluster-picker__actions:has(>:only-child){grid-template-columns:1fr}.map-poi-cluster-picker__btn{display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:36px;padding:0 12px;box-sizing:border-box;border-radius:10px;border:1px solid var(--border);font:inherit;font-size:13px;font-weight:600;cursor:pointer;align-self:stretch}.map-poi-cluster-picker__btn--secondary{background:color-mix(in srgb,var(--primary) 12%,var(--surface));color:var(--primary);border-color:color-mix(in srgb,var(--primary) 35%,var(--border))}.map-poi-cluster-picker__btn--ghost{background:transparent;color:var(--muted)}.route-detail-map-wrap{position:relative;margin:0 0 12px}.route-detail-map-wrap .map-poi-filter-rail,.route-detail-map-wrap .map-poi-preview,.route-detail-map-wrap .map-poi-cluster-picker{position:absolute;--route-card-w: calc(100% - 24px) ;--route-card-side: 12px;max-width:none}.poi-map-toggle-row{display:flex;flex-direction:column;gap:6px;margin:0 0 10px}.poi-map-toggle{align-self:flex-start;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:8px;padding:8px 12px;font-size:13px;font-weight:600;cursor:pointer}.poi-map-toggle--on{border-color:var(--accent, #0f766e);background:color-mix(in srgb,var(--accent, #0f766e) 14%,var(--surface-2));color:var(--accent, #0f766e)}.poi-map-toggle__hint{font-size:12px;color:var(--muted);line-height:1.4}.poi-list--empty{padding:10px 12px;border-radius:10px;border:1px dashed var(--border);background:var(--surface-2)}.route-form-poi-hint{margin:4px 0 12px}.home-sheet-guide{margin:4px 0 0;padding:0;border:none;background:transparent}.home-sheet-guide__text{margin:0;font-size:12.5px;line-height:1.45;color:var(--muted)}.poi-toggle{background:transparent;color:var(--muted);border:none;border-radius:0;padding:4px 0;font-size:12px;font-weight:650;width:auto;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.poi-list ul{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.poi-list__scroller.poi-list__scroller{margin:0;gap:0}.poi-item{background:var(--surface-2);border-radius:8px;padding:10px 12px}.poi-item-wrap{list-style:none}.poi-item--button{width:100%;display:block;text-align:left;border:1px solid transparent;cursor:pointer;font:inherit;color:inherit;transition:border-color .15s ease,box-shadow .15s ease}.poi-item--button:hover{border-color:color-mix(in srgb,var(--accent, #0f766e) 45%,transparent)}.poi-item--selected{border-color:var(--accent, #0f766e);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent, #0f766e) 35%,transparent)}.poi-item__action{margin-left:auto;color:var(--accent, #0f766e);font-size:12px;font-weight:600}.poi-meta{display:flex;align-items:center;gap:8px;margin-top:4px;color:var(--muted);font-size:12px}.poi-main{display:flex;justify-content:space-between;gap:8px}.poi-name{font-weight:600;font-size:14px}.poi-cat{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:13px;white-space:nowrap}.poi-cat-dot{display:inline-block;width:8px;height:8px;border-radius:999px;flex-shrink:0;box-shadow:0 0 0 1px #0000001f}.chip--poi{display:inline-flex;align-items:center;gap:6px}.tag{padding:1px 8px;border-radius:999px;font-size:11px}.tag-admin{background:#dc262633;color:#fca5a5}.tag-user{background:#2563eb33;color:#93c5fd}.poi-prio{margin-left:auto}.poi-empty{color:var(--muted);font-size:13px}.report-section{margin-top:14px;border-top:1px solid var(--border);padding-top:14px}.report-section--nested{margin-top:0;border-top:none;padding-top:0;margin-bottom:8px}.btn-report{width:100%;background:var(--surface-2);color:#fbbf24;border:1px solid rgba(217,119,6,.5);border-radius:10px;padding:12px;font-size:14px;font-weight:600;cursor:pointer}.btn-report--compact{padding:8px 10px;font-size:13px;border-radius:8px}.report-form{display:flex;flex-direction:column;gap:14px}.report-form select,.report-form textarea{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:12px;font-size:16px;font-family:inherit;width:100%}.report-form select:focus,.report-form textarea:focus{outline:2px solid var(--primary);border-color:var(--primary)}.report-form--modern .field-label{margin-bottom:0}.report-form__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.report-form__dismiss{margin:0;padding:0;border:none;background:transparent;color:var(--muted);font-size:12px;font-weight:650;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.report-form--compact{gap:8px;padding:10px;border:1px solid color-mix(in srgb,#d97706 35%,var(--border));border-radius:12px;background:color-mix(in srgb,#f59e0b 6%,var(--surface))}.report-form--compact .report-group-tabs{margin-bottom:0}.report-form--compact .report-group-tab{min-height:34px;font-size:.78rem}.report-section-label{display:flex;align-items:baseline;gap:6px;margin:0 0 6px;font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--muted)}.report-section-label__meta{font-weight:600;color:color-mix(in srgb,var(--muted) 80%,var(--text))}.report-section-label__meta:before{content:"· "}.report-category-block{display:flex;flex-direction:column}.report-detail-block{display:flex;flex-direction:column;gap:6px;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--border) 80%,transparent)}.report-detail-block--solo{padding-top:0;border-top:none}.report-group-tabs--segment{padding:3px;border-radius:999px;background:color-mix(in srgb,var(--surface-2) 88%,var(--border));border:1px solid var(--border);gap:2px;margin-bottom:0}.report-group-tabs--segment .report-group-tab{min-height:32px;border:none;border-radius:999px;background:transparent;box-shadow:none;font-size:.78rem;font-weight:700;color:var(--muted)}.report-group-tabs--segment .report-group-tab.is-on{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #0f172a14}.report-group-tabs--segment .report-group-tab.is-on.report-group-tab--hazard{background:color-mix(in srgb,#b45309 14%,var(--surface));color:#9a3412}.report-group-tabs--segment .report-group-tab.is-on.report-group-tab--good{background:color-mix(in srgb,#0f766e 14%,var(--surface));color:#0f766e}.type-chip-grid--dense{gap:5px}.type-chip-grid--dense .type-chip--report{min-height:32px;padding:5px 7px;font-size:.72rem;border-radius:9px;flex:1 1 calc(50% - 5px)}.report-more-types,.report-desc-toggle,.report-soft-btn{display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:44px;margin:0;padding:10px 12px;box-sizing:border-box;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);font:inherit;font-size:13px;font-weight:650;line-height:1.3;text-align:center;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.report-more-types:active,.report-desc-toggle:active,.report-soft-btn:active{background:var(--surface-2, #f5f3ef)}.report-soft-btn--muted{color:var(--muted)}.report-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;align-items:stretch}.report-action-grid--single{grid-template-columns:minmax(0,1fr)}.report-action-btn{display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:38px;margin:0;padding:8px 10px;box-sizing:border-box;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;font-size:13px;font-weight:650;line-height:1.25;text-align:center;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.report-action-btn:disabled{opacity:.55;cursor:default}.report-action-btn--primary:active:not(:disabled){background:var(--surface-2, #f5f3ef)}.report-action-btn--secondary{background:var(--surface-2, #f5f3ef);color:var(--muted)}.report-action-btn--secondary:active:not(:disabled){background:color-mix(in srgb,var(--border) 40%,var(--surface))}.report-action-btn--span{grid-column:1 / -1}.report-action-btn.is-on{border-color:color-mix(in srgb,#0f766e 45%,var(--border));background:color-mix(in srgb,#0f766e 12%,var(--surface));color:#0f766e}.report-location-note{margin:0;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);font-size:13px;color:var(--muted);line-height:1.4}.report-location-note.report-location-note--slim{padding:0;border:none;border-radius:0;background:transparent;font-size:11px;line-height:1.3;color:var(--muted)}.field-group--tight{gap:4px}.report-desc-input{width:100%;min-height:40px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font-size:14px;font-family:inherit}.report-desc-input:focus{outline:2px solid var(--primary);border-color:var(--primary)}.report-actions--inline{display:flex;gap:8px}.report-actions--inline .btn-primary{flex:1;min-height:42px}.report-group-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}.report-group-tab{margin:0;min-height:42px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font-size:.85rem;font-weight:700;cursor:pointer}.report-group-tab.is-on.report-group-tab--hazard{border-color:color-mix(in srgb,#b45309 50%,var(--border));background:color-mix(in srgb,#b45309 12%,var(--surface));color:#9a3412}.report-group-tab.is-on.report-group-tab--good{border-color:color-mix(in srgb,#0f766e 45%,var(--border));background:color-mix(in srgb,#0f766e 12%,var(--surface));color:#0f766e}.report-group-hint{margin:0 0 8px;font-size:12px;color:var(--muted);line-height:1.35}.type-chip-grid{display:flex;flex-wrap:wrap;gap:6px}.type-chip-grid--report{gap:8px}.type-chip{margin:0;min-height:38px;padding:8px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font-size:.8rem;font-weight:650;line-height:1.2;cursor:pointer}.type-chip:disabled{opacity:.6;cursor:default}.type-chip.is-on{border-color:color-mix(in srgb,#0f766e 45%,var(--border));background:color-mix(in srgb,#0f766e 12%,var(--surface));color:#0f766e}.type-chip--report{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:6px 8px;font-size:.78rem;border-radius:10px;flex:1 1 calc(50% - 8px);text-align:center}.type-chip--hazard.is-on{border-color:color-mix(in srgb,#b45309 50%,var(--border));background:color-mix(in srgb,#b45309 12%,var(--surface));color:#9a3412}.type-chip--good.is-on{border-color:color-mix(in srgb,#0f766e 45%,var(--border));background:color-mix(in srgb,#0f766e 12%,var(--surface));color:#0f766e}.report-selected{margin:10px 0 0;font-size:12px;color:var(--muted)}.report-selected strong{color:var(--text);font-weight:700}.report-desc-hint{margin:6px 0 0;font-size:12px;color:var(--muted)}.report-actions{display:flex;gap:8px}.report-actions .btn-primary{flex:1}.report-actions--stack{flex-direction:column}.report-actions--stack .btn-primary,.report-actions--stack .btn-secondary{width:100%;min-height:44px}.report-success{background:#16a34a26;border:1px solid rgba(22,163,74,.4);color:#4ade80;border-radius:8px;padding:12px;font-size:14px;margin:0}.hint{color:var(--muted);font-size:13px;text-align:center;margin-top:24px}.admin-shell{display:flex;min-height:var(--app-height, 100vh);max-width:none;background:var(--bg);color:var(--text)}.admin-sidebar{width:220px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);padding:20px 14px;display:flex;flex-direction:column;gap:6px}.admin-brand{font-family:var(--font-display);font-size:16px;font-weight:700;margin-bottom:16px;letter-spacing:-.02em}.admin-nav{display:flex;flex-direction:column;gap:4px}.admin-nav-link{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:8px;color:var(--text);text-decoration:none;font-size:14px;min-width:0}.admin-nav-link__label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-nav-link:hover{background:var(--surface-2)}.admin-nav-link-active{background:var(--primary);color:var(--primary-on);font-weight:600}.admin-nav-link-active .admin-queue-count{background:#ffffff38;color:inherit}.admin-sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:6px}.admin-sidebar-footer .admin-btn{width:100%}.admin-back{color:var(--muted);font-size:13px;text-decoration:none;padding:10px 12px}.admin-login-wrap{min-height:var(--app-height, 100vh);display:flex;align-items:center;justify-content:center;padding:20px}.admin-login-card{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px 24px;display:flex;flex-direction:column;gap:16px}.admin-login-card h1{font-size:20px;margin:0 0 4px;text-align:center}.admin-login-card label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.admin-login-card input{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:10px 12px;font-size:14px}.admin-login-error{color:#fca5a5;font-size:13px;margin:0}.admin-main{flex:1;padding:24px 28px;min-width:0}.admin-page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.admin-page-head h1{font-size:20px;margin:0}.admin-muted{color:var(--muted);font-size:13px}.admin-btn{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 14px;font-size:13px;cursor:pointer}.admin-status-bar{display:flex;align-items:center;gap:14px;margin-bottom:16px}.admin-badge{font-size:12px;padding:3px 10px;border-radius:999px}.admin-badge-ok{background:#16a34a33;color:#4ade80}.admin-badge-warn{background:#d9770633;color:#fbbf24}.admin-badge-err{background:#dc262633;color:#fca5a5}.admin-ops-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-bottom:24px}.admin-ops-card h2{margin:0;font-size:1.05rem}.admin-ops-card p{margin:0;font-size:.88rem;line-height:1.45;color:var(--muted)}.admin-ops-check{display:flex;align-items:center;gap:8px;font-size:.85rem}.admin-ops-actions{display:flex;gap:8px;margin-top:4px}.admin-ops-monitor{margin-top:8px}.admin-ops-progress{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin:8px 0 12px}.admin-ops-progress__bar{height:100%;background:var(--primary);transition:width .3s ease}.admin-ops-progress__bar--wait{background:#fbbf24}.admin-ops-progress--live .admin-ops-progress__bar{animation:admin-ops-bar-pulse 1.6s ease-in-out infinite}.admin-ops-live{margin:0 0 8px;font-size:.9rem;line-height:1.45;color:var(--text)}.admin-badge-run{background:#0d948838;color:#5eead4}.admin-badge-pulse{animation:admin-ops-badge-pulse 1.4s ease-in-out infinite}@keyframes admin-ops-badge-pulse{0%,to{opacity:1}50%{opacity:.55}}@keyframes admin-ops-bar-pulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.25)}}.admin-ops-log{margin:0;max-height:320px;overflow:auto;padding:12px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);font-size:12px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.admin-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.admin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:8px}.admin-card-label{font-size:13px;color:var(--muted)}.admin-card-value{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums}.admin-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.admin-filters select{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:8px 12px;font-size:14px}.admin-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}.admin-table{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}.admin-table th,.admin-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border)}.admin-table thead th{background:var(--surface-2);color:var(--muted);font-weight:600;position:sticky;top:0}.admin-table tbody tr:hover{background:var(--surface)}.admin-cell-desc{white-space:normal;max-width:280px}.admin-state{color:var(--muted);font-size:14px;padding:24px 0}.admin-state-error{color:#fca5a5}.admin-btn-primary{background:var(--primary);color:var(--primary-on);border-color:var(--primary);font-weight:600}.admin-action-row td{background:var(--surface-2)}.admin-action-panel{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:6px 4px;white-space:normal}.admin-action-panel label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.admin-action-panel select,.admin-action-panel input{background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:7px 10px;font-size:13px}.admin-action-panel input[type=number]{width:110px}.admin-action-memo{flex:1;min-width:200px}.admin-action-memo input{width:100%}.admin-result{flex-basis:100%;font-size:13px;padding:8px 10px;border-radius:8px}.admin-result-ok{background:#16a34a26;color:#4ade80}.admin-result-error{background:#dc262626;color:#fca5a5}.admin-result ul{margin:6px 0 0;padding-left:18px;color:#fbbf24}.admin-report-queue__title{display:flex;align-items:baseline;gap:12px}.admin-report-queue__secondary{opacity:.9;font-size:12px}.admin-report-queue__intro{margin:0 0 12px;font-size:13px;line-height:1.45;max-width:52rem}.admin-poi-review{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:16px;align-items:start;max-width:100%}@media(max-width:960px){.admin-poi-review{grid-template-columns:1fr}}.admin-poi-review__list{display:flex;flex-direction:column;gap:8px;max-height:min(70vh,720px);overflow-y:auto;min-width:0}.admin-poi-review__card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);max-width:100%;box-sizing:border-box}.admin-poi-review__card.is-active{border-color:color-mix(in srgb,var(--primary) 45%,var(--border));background:color-mix(in srgb,var(--primary) 8%,var(--surface))}.admin-poi-review__check{display:flex;align-items:center}.admin-poi-review__body{display:flex;flex-direction:column;gap:2px;align-items:flex-start;min-width:0;margin:0;padding:0;border:none;background:transparent;font:inherit;text-align:left;cursor:pointer;color:inherit}.admin-poi-review__body strong{font-size:14px}.admin-poi-review__actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;align-items:stretch}.admin-poi-review__actions--single{grid-template-columns:1fr}.admin-poi-review__actions .admin-btn-primary,.admin-poi-review__actions .admin-btn,.admin-poi-review__actions .admin-btn-compact{width:100%;min-width:0;box-sizing:border-box;align-self:stretch}.admin-poi-review__detail{position:sticky;top:12px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);min-width:0;box-sizing:border-box}.admin-poi-review__meta{display:grid;gap:8px;margin:0 0 12px}.admin-poi-review__meta>div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px;font-size:13px}.admin-poi-review__meta dt{margin:0;color:var(--muted);font-weight:600}.admin-poi-review__meta dd{margin:0;min-width:0;word-break:break-word}.admin-poi-review__map{height:220px;border-radius:10px;overflow:hidden;border:1px solid var(--border);margin-bottom:12px}.admin-poi-review__detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:stretch}.admin-poi-review__detail-actions--single{grid-template-columns:1fr;margin-top:8px}.admin-poi-review__reason{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 12px;max-width:100%}.admin-poi-review__reason select{min-width:0;max-width:100%;box-sizing:border-box;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:8px 12px;font:inherit}.admin-poi-review__detail-actions .admin-btn-primary,.admin-poi-review__detail-actions .admin-btn{width:100%;min-width:0;box-sizing:border-box;min-height:40px;align-self:stretch;display:inline-flex;align-items:center;justify-content:center}.admin-report-tabs{display:flex;gap:6px;margin-bottom:14px;padding:4px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);width:fit-content;max-width:100%}.admin-report-tabs__btn{font:inherit;font-size:14px;font-weight:600;line-height:1.2;min-height:36px;padding:0 14px;border:none;border-radius:9px;background:transparent;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:6px;max-width:100%}.admin-report-tabs__btn.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, .08))}.admin-queue-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.4rem;height:1.25rem;padding:0 6px;border-radius:999px;background:#dc2626;color:#fff;font-size:11px;font-weight:700;line-height:1;flex-shrink:0;box-sizing:border-box}.admin-queue-hint{margin:-6px 0 12px;font-size:12px;line-height:1.4}.admin-queue-pending-banner{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 12px;padding:10px 12px;border-radius:10px;border:1px solid color-mix(in srgb,#dc2626 35%,var(--border));background:color-mix(in srgb,#dc2626 8%,var(--surface));font-size:13px;max-width:100%;box-sizing:border-box}.admin-badge-stale{background:color-mix(in srgb,#b45309 18%,var(--surface-2));color:#92400e;border:1px solid color-mix(in srgb,#b45309 30%,var(--border))}.admin-poi-review__title-row{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.admin-poi-review__title-row strong{min-width:0}.admin-report-toolbar{align-items:center;justify-content:space-between}.admin-report-shortcuts-hint{font-size:12px}.admin-report-toast{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:#16a34a26;color:#4ade80;font-size:13px}.admin-report-split{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:14px;align-items:start;min-height:420px;padding-bottom:72px}.admin-report-split__list-wrap{display:flex;flex-direction:column;gap:6px;min-width:0}.admin-report-list-head{display:flex;align-items:center;padding:0 6px}.admin-report-check{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);cursor:pointer}.admin-report-split__list{display:flex;flex-direction:column;gap:4px;max-height:min(70vh,720px);overflow:auto;padding:4px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}.admin-report-row{display:flex;align-items:stretch;gap:2px;width:100%;border:1px solid transparent;border-radius:10px;background:transparent}.admin-report-row:hover{background:var(--surface)}.admin-report-row.is-active{background:var(--surface);border-color:var(--border)}.admin-report-row.is-checked{background:#0d94881f}.admin-report-row__check{display:inline-flex;align-items:center;justify-content:center;padding:0 8px;cursor:pointer}.admin-report-row__body{flex:1;display:flex;flex-direction:column;align-items:stretch;gap:4px;min-width:0;text-align:left;font:inherit;color:var(--text);background:transparent;border:none;border-radius:8px;padding:10px 10px 10px 4px;cursor:pointer}.admin-report-row__main{display:flex;align-items:center;gap:8px;min-width:0}.admin-report-row__type{font-size:14px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-report-row__meta{display:flex;flex-wrap:wrap;gap:6px 10px;font-size:11px}.admin-report-bulk-bar{position:sticky;bottom:12px;z-index:20;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 14px;margin-top:12px;padding:10px 14px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.admin-report-bulk-bar__count{font-size:13px;font-weight:600}.admin-report-bulk-bar__actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.admin-report-bulk-bar__danger{color:#fca5a5;border-color:#dc262659}.admin-report-split__detail{min-width:0}.admin-report-detail{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.admin-report-card-list{display:flex;flex-direction:column;gap:14px}.admin-report-card{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.admin-report-road-panel{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--border)}.admin-report-road-panel__text{margin:0;flex:1;min-width:180px;font-size:13px;line-height:1.4}.admin-report-road-label{color:var(--text);font-weight:600}.admin-report-advanced__hint{flex-basis:100%;margin:0;font-size:12px;line-height:1.35}.admin-report-advanced__preview-road{flex-basis:100%;display:flex;flex-direction:column;align-items:stretch;gap:6px;max-width:100%}.admin-report-advanced__preview-road .admin-btn{width:100%;box-sizing:border-box}.admin-report-kbd{display:inline-flex;align-items:center;margin-left:8px;padding:1px 5px;border-radius:4px;border:1px solid var(--border);background:var(--surface-2);font-size:10px;font-weight:600;line-height:1.2;color:var(--muted)}@media(max-width:900px){.admin-report-split{grid-template-columns:1fr}.admin-report-split__list{max-height:240px}.admin-report-bulk-bar{position:fixed;left:12px;right:12px;bottom:calc(12px + var(--vv-bottom, 0px) + var(--safe-bottom, 0px))}}.admin-report-card__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-report-card__titles{display:flex;align-items:center;gap:8px;min-width:0}.admin-report-card__type{font-size:16px;font-weight:700}.admin-report-card__desc{margin:0;font-size:14px;line-height:1.4}.admin-report-card__meta{display:flex;flex-wrap:wrap;gap:10px 14px;font-size:12px}.admin-report-card__map{border-radius:12px;overflow:hidden;border:1px solid var(--border)}.admin-report-card__hint{margin:0;font-size:13px;color:#fbbf24}.admin-report-actions-block{display:flex;flex-direction:column;gap:8px;margin-top:4px;max-width:100%}.admin-report-actions-hint{margin:0;font-size:12px;line-height:1.4}.admin-report-process{margin:0 0 4px;padding:12px;border-radius:12px;border:1px solid var(--border);background:color-mix(in srgb,var(--primary) 6%,var(--surface));max-width:100%;box-sizing:border-box}.admin-report-process__title{margin:0 0 8px;font-size:13px;font-weight:700;color:var(--text)}.admin-report-process__steps{margin:0;padding-left:1.2rem;font-size:13px;line-height:1.45;color:var(--text)}.admin-report-process__steps li+li{margin-top:6px}.admin-report-process__alt{margin:10px 0 0;font-size:12px;line-height:1.4}.admin-report-impact{margin-top:12px;padding-top:10px;border-top:1px solid color-mix(in srgb,var(--border) 80%,transparent)}.admin-report-impact__title{margin:0 0 6px;font-size:13px;font-weight:700;color:var(--text)}.admin-report-impact__status{margin:0;font-size:12px;line-height:1.4}.admin-report-impact__list{margin:0;padding-left:1.15rem;font-size:12px;line-height:1.45;color:var(--text)}.admin-report-impact__list li+li{margin-top:4px}.admin-report-impact__callout{margin:8px 0 0;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,#b45309 12%,var(--surface));border:1px solid color-mix(in srgb,#b45309 28%,var(--border));font-size:12px;line-height:1.4;color:var(--text)}.admin-report-reason-chips{display:flex;flex-direction:column;gap:6px;max-width:100%;min-width:0}.admin-report-reason-chips__label{font-size:12px;font-weight:700;color:var(--text)}.admin-report-reason-chips__list{display:flex;flex-wrap:wrap;gap:6px;max-width:100%}.admin-report-reason-chip{font:inherit;font-size:12px;font-weight:600;line-height:1.25;margin:0;padding:7px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;max-width:100%;box-sizing:border-box;text-align:left}.admin-report-reason-chip:hover{border-color:color-mix(in srgb,var(--primary) 45%,var(--border))}.admin-report-reason-chip.is-selected{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 14%,var(--surface));color:var(--text)}.admin-report-reason-chips__hint{margin:0;font-size:11px;line-height:1.35}.admin-report-reject-panel{display:flex;flex-direction:column;gap:8px;margin-top:2px;padding:12px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);max-width:100%;box-sizing:border-box}.admin-report-reject-panel__title{margin:0;font-size:13px;font-weight:700;color:var(--text)}.admin-report-reject-panel__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:stretch;width:100%}.admin-report-reject-panel__actions .admin-btn{width:100%;min-width:0;box-sizing:border-box;align-self:stretch;display:inline-flex;align-items:center;justify-content:center;min-height:40px;font-size:14px}.admin-report-actions{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px;max-width:100%}.admin-report-actions .admin-btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 16px;font-size:14px;box-sizing:border-box}.admin-report-actions__more{margin-left:auto}.admin-report-advanced{display:flex;flex-direction:column;gap:14px;padding:12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);max-width:100%;box-sizing:border-box;overflow-x:hidden}.admin-report-advanced__lead{margin:0;font-size:12px;line-height:1.4}.admin-report-advanced__section{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;padding-top:10px;border-top:1px solid var(--border);max-width:100%}.admin-report-advanced__section:first-of-type{border-top:none;padding-top:0}.admin-report-advanced__title{flex:1 0 100%;margin:0;font-size:13px;font-weight:700;color:var(--text)}.admin-report-advanced label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);min-width:0}.admin-report-advanced select,.admin-report-advanced input[type=text],.admin-report-advanced input[type=number],.admin-report-advanced input[type=datetime-local]{background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:7px 10px;font-size:13px;width:100%;max-width:100%;box-sizing:border-box}.admin-report-advanced input[type=number]{width:120px;max-width:100%}.admin-report-advanced__actions{display:flex;flex-wrap:wrap;gap:8px;width:100%}.admin-report-advanced__actions--peer{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:stretch}.admin-report-advanced__actions--peer .admin-btn{width:100%;min-width:0;box-sizing:border-box;align-self:stretch;display:inline-flex;align-items:center;justify-content:center;min-height:40px;font-size:14px}@media(max-width:420px){.admin-report-advanced__actions--peer{grid-template-columns:1fr}}.admin-action-check{display:flex;flex-direction:row!important;align-items:center;gap:8px!important;flex:1 1 100%}.admin-page-actions{display:flex;align-items:center;gap:12px}.admin-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:16px}.admin-panel-title{margin:0 0 12px;font-size:16px}.admin-poi-form{display:flex;flex-direction:column;gap:12px}.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px}.admin-form-grid label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.admin-form-grid input,.admin-form-grid select,.admin-form-grid textarea{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:8px 10px;font-size:13px}.admin-form-span2{grid-column:span 2}.admin-form-actions{display:flex;gap:8px}.admin-btn-compact{padding:6px 10px;font-size:12px}.admin-table-wide{min-width:1100px}.admin-row-muted{opacity:.55}.admin-success{margin:0;color:#4ade80;font-size:13px}.admin-error{margin:0;color:#fca5a5;font-size:13px}.admin-distance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.admin-distance-card{gap:14px}.admin-distance-card__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.admin-label{display:inline-block;margin-bottom:6px;font-size:12px;color:var(--muted)}.admin-distance-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-distance-fields label:first-child{grid-column:1 / -1}.admin-distance-preview{display:grid;grid-template-columns:1fr 1fr;gap:10px}.admin-distance-warnings{margin:10px 0 0;padding:8px 10px 8px 26px;border-radius:8px;background:#b453091a;border:1px solid rgba(180,83,9,.35);color:#92400e;font-size:13px;line-height:1.4}.admin-distance-warnings li+li{margin-top:4px}.admin-distance-preview>div{padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.admin-distance-preview strong{display:block;font-size:14px}@media(max-width:720px){.admin-shell{flex-direction:column}.admin-sidebar{width:100%;flex-direction:row;flex-wrap:wrap;align-items:center}.admin-nav{flex-direction:row;flex-wrap:wrap}.admin-back{margin-top:0}.admin-distance-fields,.admin-distance-preview{grid-template-columns:1fr}}.header-link{display:inline-block;margin-top:8px;font-size:13px;color:var(--primary);text-decoration:none}.header-link:hover{text-decoration:underline}.page-nav{display:flex;gap:8px;margin-bottom:16px}.page-nav-split{justify-content:space-between}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.history-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;display:flex;flex-direction:column;gap:8px;position:relative}.history-item-head{display:flex;align-items:center;gap:6px;margin-bottom:2px;min-width:0}.history-date{font-size:12px;color:var(--muted)}.history-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--muted);margin-bottom:10px}.history-stats{margin-bottom:10px}.history-ai-preview{font-size:13px;color:var(--muted);margin:4px 0 0;line-height:1.4;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;text-wrap:pretty;overflow-wrap:anywhere;word-break:keep-all}.history-view-btn{display:inline-block;text-align:center;text-decoration:none}.route-card-actions{display:flex;gap:8px;margin-bottom:12px}.route-card-actions .btn-secondary,.route-card-actions .btn-share{flex:1;text-align:center;text-decoration:none}.share-route-wrap{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.share-feedback{margin:0;padding:8px 10px;border-radius:8px;font-size:13px;line-height:1.4;font-weight:600;color:var(--text);background:var(--surface-2, #f3f1ec);border:1px solid var(--border)}.share-feedback--working{color:var(--muted);font-weight:500}.share-feedback--shared,.share-feedback--copied{color:#0f5c4c;background:#0f766e1a;border-color:#0f766e47}.share-feedback--cancelled{color:var(--muted);font-weight:500}.share-feedback--failed{color:var(--warn, #a35b00);background:#a35b0014;border-color:#a35b0047}.share-feedback-url{margin:0;font-size:11px;color:var(--muted);word-break:break-all;line-height:1.35}.share-fallback-hint{font-size:11px;color:var(--warn);margin:0;word-break:break-all}.share-fallback-hint code{font-size:10px}.share-toast-viewport{display:none}.share-toast{position:fixed;left:50%;top:calc(var(--vv-top, 0px) + var(--safe-top) + 10px);bottom:auto;transform:translate(-50%);z-index:1200;width:min(420px,calc(100vw - 24px));max-width:420px;padding:10px 14px;border-radius:12px;box-shadow:0 8px 24px #14181c29;background:#143028;color:#f4faf7;pointer-events:none;animation:app-toast-in .22s ease-out}.share-toast--failed{background:#5c3a12}.share-toast--cancelled{background:#3a3f45}.share-toast__title{display:block;font-size:14px;font-weight:700;margin-bottom:4px}.share-toast__body{margin:0;font-size:13px;line-height:1.4;opacity:.95}.share-toast__url{margin:8px 0 0;font-size:11px;line-height:1.35;word-break:break-all;opacity:.8}.detail-share-row{margin-bottom:12px}.route-ownership-panel{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.route-detail-toolbar{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;margin-bottom:14px}.route-detail-toolbar .btn-favorite,.route-detail-toolbar .btn-secondary,.route-detail-toolbar .btn-name-edit,.route-detail-toolbar .route-card-toolbar__btn,.route-detail-toolbar .history-delete-btn{align-self:auto;min-height:40px;padding:8px 12px;font-size:13px}.route-detail-toolbar .share-route-wrap{flex:0 1 auto}.route-detail-toolbar .share-route-wrap>button{width:auto;min-width:88px}.route-detail-toolbar .share-route-wrap--active{flex:1 1 100%;order:10}.route-name-editor--toolbar{flex:1 1 100%;margin-bottom:0}.route-detail-header-meta{display:flex;flex-direction:column;gap:4px;margin-top:4px}.route-detail-region{margin:0;font-size:15px;font-weight:700;color:var(--accent, #2f6f4e);line-height:1.3}.route-detail-type-line{margin:0;font-size:14px;font-weight:600;color:var(--text)}.route-detail-stats{display:flex;flex-wrap:wrap;gap:2px 0;margin:2px 0 0;font-size:13px;color:var(--muted);line-height:1.35}.route-detail-stats>span:not(:last-child):after{content:" ·";white-space:pre}.route-detail-readonly-hint{margin-top:8px}.route-summary-region{margin:0;font-size:14px;font-weight:700;color:var(--accent, #2f6f4e)}.route-name-editor{display:flex;flex-direction:column;gap:8px}.route-name-editor--toolbar{flex-direction:column;width:100%}.route-name-value{font-size:15px;font-weight:600}.route-name-input{width:100%;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:14px}.route-name-actions{display:flex;gap:8px}.route-name-error{margin:0;font-size:12px;color:var(--danger)}.route-name-readonly{margin:0;font-size:15px;font-weight:600}.btn-name-edit{align-self:flex-start}.btn-favorite{align-self:flex-start;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:13px;cursor:pointer}.btn-favorite-on{border-color:var(--primary);color:var(--primary);background:#0f766e14}.route-card-meta-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px}.route-share-toggle{display:inline-flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--text-muted);cursor:pointer}.route-share-toggle input{margin-top:2px;flex-shrink:0}.route-share-toggle__copy{display:flex;flex-direction:column;gap:2px;min-width:0}.route-share-toggle__title{font-size:.85rem;font-weight:600;color:var(--text);line-height:1.35}.route-share-toggle--explained{display:flex;width:100%;margin:0 0 10px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface-2, #f8fafc) 88%,transparent)}.route-share-pre{margin:0 0 10px;border-radius:10px;border:1px dashed color-mix(in srgb,var(--border) 90%,var(--muted));background:color-mix(in srgb,var(--surface) 92%,transparent)}.route-share-pre>summary{cursor:pointer;list-style:none;padding:8px 12px;font-size:.8rem;font-weight:600;color:var(--muted);line-height:1.35}.route-share-pre>summary::-webkit-details-marker{display:none}.route-share-pre[open]>summary{border-bottom:1px solid var(--border);color:var(--text)}.route-share-toggle--pre{margin:0;border:none;border-radius:0 0 10px 10px;background:transparent}.nearby-source-badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.01em;line-height:1.2}.nearby-source-badge--ridden{color:#166534;background:color-mix(in srgb,#16a34a 16%,var(--surface));border:1px solid color-mix(in srgb,#16a34a 28%,var(--border))}.nearby-source-badge--planned{color:#475569;background:color-mix(in srgb,#94a3b8 14%,var(--surface));border:1px solid color-mix(in srgb,#94a3b8 30%,var(--border))}.nearby-source-badge--inline{margin-left:6px;vertical-align:middle}.ride-recommend-lead{margin:0 0 12px;padding:10px 12px;border-radius:10px;border:1px solid color-mix(in srgb,var(--primary, #2563eb) 22%,var(--border));background:color-mix(in srgb,var(--primary, #2563eb) 8%,var(--surface));font-size:.85rem;line-height:1.45;color:var(--text)}.ride-recommend-cta{margin:16px 0 8px;padding:14px 14px 12px;border-radius:12px;border:1px solid color-mix(in srgb,#16a34a 28%,var(--border));background:color-mix(in srgb,#16a34a 8%,var(--surface))}.ride-recommend-cta__title{margin:0 0 6px;font-size:1rem;font-weight:700;line-height:1.35;color:var(--text)}.ride-recommend-cta__hint{margin:0 0 12px;font-size:.8rem;line-height:1.45;color:var(--muted)}.ride-recommend-cta__status{margin:8px 0 0}.ride-recommend-cta .ride-record-actions{margin:0}.generation-timing-banner{margin:0 0 10px;padding:8px 12px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border)}.generation-timing-banner__primary{margin:0;font-size:13px;font-weight:600;color:var(--text);line-height:1.35}.generation-timing-banner__note{margin:2px 0 0;font-size:12px;color:var(--muted);line-height:1.35}.results-inline-hint{margin:0 0 10px;text-align:left}.history-filter-toggle{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);cursor:pointer}.history-route-title{font-size:14px;font-weight:650;flex:1;min-width:0;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-item-subhead{display:flex;gap:10px;font-size:12px;color:var(--muted);margin-bottom:10px}.history-item-meta{display:block;margin:0;font-size:12px;color:var(--muted);line-height:1.35;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-item-meta__unit{white-space:nowrap}.history-item-meta__unit:not(:last-child):after{content:" ·";white-space:pre}.poi-report-links{display:flex;flex-direction:column;gap:10px;margin-top:24px;padding-top:16px;border-top:1px solid var(--border)}.poi-report-link-btn{display:block;text-align:center;text-decoration:none}.poi-report-form{display:flex;flex-direction:column;gap:8px}.poi-report-form__label{margin:0;font-size:14px;font-weight:600}.poi-report-form__section{display:flex;flex-direction:column;gap:8px}.poi-report-form__hint{margin:0}.poi-report-field{display:flex;flex-direction:column;gap:6px;margin:0;font-size:12px;font-weight:650;color:var(--muted)}.poi-report-field input,.poi-report-field textarea{width:100%;min-width:0;box-sizing:border-box;min-height:44px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);font:inherit;font-size:14px}.poi-report-field textarea{min-height:72px;resize:vertical}.poi-report-page__geo-error{margin:0 0 8px}.poi-report-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:stretch;margin-top:4px}.poi-report-actions__btn{display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:44px;margin:0;padding:10px 12px;box-sizing:border-box;border-radius:12px;font:inherit;font-size:14px;font-weight:650;line-height:1.25;text-align:center;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.poi-report-actions__btn:disabled{opacity:.55;cursor:default}.poi-report-actions__btn--primary{border:1px solid var(--primary);background:var(--primary);color:#fff}.poi-report-actions__btn--secondary{border:1px solid var(--border);background:var(--surface);color:var(--text)}.app-feedback-form{display:flex;flex-direction:column;gap:8px}.app-feedback-form__label{margin:0;font-size:14px;font-weight:600}.app-feedback-form__hint{margin:0;line-height:1.4}.app-feedback-form__submit{margin-top:4px}.poi-report-coords{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;width:100%;max-width:100%}.poi-report-coords__field,.poi-report-coords>label{display:flex;flex-direction:column;gap:6px;min-width:0;margin:0;font-size:13px;color:var(--muted)}.poi-report-coords__label{font-weight:600;color:var(--text-muted)}.poi-report-coords input{width:100%;min-width:0;max-width:100%;box-sizing:border-box;min-height:44px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:15px;font-variant-numeric:tabular-nums}.poi-report-coords input:focus{outline:2px solid color-mix(in srgb,var(--primary) 45%,transparent);outline-offset:1px;border-color:var(--primary)}.poi-report-coords input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.poi-report-coords input[type=number]::-webkit-outer-spin-button,.poi-report-coords input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}@media(max-width:360px){.poi-report-coords{grid-template-columns:minmax(0,1fr)}}.success-box{background:#16a34a1f;border:1px solid rgba(22,163,74,.35);border-radius:var(--radius);padding:14px 16px}.poi-coordinate-picker{display:flex;flex-direction:column;gap:10px;margin-bottom:8px;width:100%;max-width:100%;min-width:0}.poi-coordinate-picker-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px}.poi-coordinate-picker__title{font-size:.95rem;font-weight:700;color:var(--text)}.poi-coordinate-picker__title-spacer{flex:0 0 0}.poi-coordinate-actions{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}.poi-coordinate-actions__btn,.poi-coordinate-actions .btn-location,.poi-coordinate-actions .btn-secondary{min-height:40px;padding:8px 12px;font-size:13px;flex:0 0 auto}.poi-coordinate-status{margin:0;padding:8px 10px;border-radius:var(--radius-sm);font-size:13px;line-height:1.4;border:1px solid transparent}.poi-coordinate-status--ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 10%,var(--surface));border-color:color-mix(in srgb,var(--ok) 28%,var(--border))}.poi-coordinate-status--loading,.poi-coordinate-status--idle{color:var(--muted);background:var(--surface-2);border-color:var(--border)}.poi-coordinate-status--error{color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,var(--surface));border-color:color-mix(in srgb,var(--danger) 28%,var(--border))}.poi-coordinate-status--warn{color:var(--warn);background:color-mix(in srgb,var(--warn) 10%,var(--surface));border-color:color-mix(in srgb,var(--warn) 28%,var(--border))}.coordinate-picker-map-wrap{position:relative;width:100%;max-width:100%;min-width:0}.coordinate-picker-map{width:100%;border-radius:12px;z-index:0}.coordinate-picker-map--mobile{height:280px}.coordinate-picker-map--admin{height:400px}@media(min-width:768px){.coordinate-picker-map--mobile{height:340px}.coordinate-picker-map--admin{height:480px}}.coordinate-picker-hint{margin:6px 0 0;font-size:12px;color:var(--muted)}.coordinate-selected-label{margin:0;font-size:13px;color:var(--text-muted);font-variant-numeric:tabular-nums;line-height:1.4}.coordinate-manual-toggle{align-self:stretch;display:inline-flex;align-items:center;justify-content:flex-start;background:transparent;border:none;color:var(--primary);font-size:13px;font-weight:600;cursor:pointer;padding:8px 0;min-height:40px;font:inherit}.map-emoji-marker.picker{font-size:22px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.45))}.admin-poi-form-layout{display:grid;grid-template-columns:1fr;gap:16px}@media(min-width:960px){.admin-poi-form-layout{grid-template-columns:1fr 1fr;align-items:start}}.road-report-page-form{margin-top:8px}.road-report-location-map{margin:8px 0 12px;max-width:100%;overflow-x:hidden}.road-report-map-meta{display:flex;flex-wrap:wrap;gap:8px 16px;margin-bottom:8px;font-size:.9rem}.road-report-map-desc{flex:1 1 100%}.road-report-map-empty{padding:12px 0}.road-report-map-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin:0 0 8px;padding:0;list-style:none;font-size:12px;color:var(--muted, #64748b)}.road-report-map-legend li{display:inline-flex;align-items:center;gap:6px;min-width:0}.road-report-map-legend__swatch{width:18px;height:4px;border-radius:2px;flex-shrink:0}.road-report-map-legend__swatch--pin{width:10px;height:10px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 2px #fff}.road-report-map-legend__swatch--linked{background:#ea580c;height:5px}.road-report-map-legend__swatch--nearby{background:repeating-linear-gradient(90deg,#64748b 0 4px,transparent 4px 8px);height:3px}.road-report-map-status{margin:0 0 8px;font-size:13px}.road-report-admin-map{min-height:320px}.admin-cell-coord{font-family:ui-monospace,monospace;font-size:.82rem;white-space:nowrap}.admin-row-actions{display:flex;flex-direction:column;gap:6px}.admin-map-row td{background:var(--surface-2);padding:12px}.admin-map-row .coordinate-picker-map-wrap--admin{min-height:360px}.route-minimap{position:relative;width:100%;border-radius:10px;overflow:hidden;border:1px solid var(--border);background:#f1f5f9}.route-minimap--fluid{width:100%}.route-summary-minimap-wrap{width:100%;display:block}.route-minimap-canvas{width:100%;overflow:hidden;background:#e8eef5}.route-minimap-empty{display:flex;align-items:center;justify-content:center;min-height:120px;color:var(--muted);font-size:.9rem}.route-minimap-svg{display:block;width:100%;height:100%}.route-minimap-bg{fill:#e8eef5}.route-minimap-line{stroke:#0f766e;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.route-minimap-line-casing{stroke:#fff;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;opacity:.95}.route-minimap-direction__stroke{fill:#fff;stroke:#fff;stroke-width:1.2;stroke-linejoin:round}.route-minimap-direction__fill{fill:#0f766e;stroke:none}.route-minimap-label{font-size:9px;font-weight:700;fill:#0f172a;paint-order:stroke;stroke:#ffffffeb;stroke-width:3px}.route-minimap-compass-arrow{fill:#334155}.route-minimap-compass-n{font-size:8px;font-weight:700;fill:#475569}.route-minimap-start{fill:#16a34a;stroke:#fff;stroke-width:1.5}.route-minimap-end{fill:#dc2626;stroke:#fff;stroke-width:1.5}.route-minimap-turn{fill:#f59e0b;stroke:#fff;stroke-width:1.5}.route-minimap-poi{fill:#7c3aed;stroke:#fff;stroke-width:1}.route-minimap-via{fill:#0f766e;stroke:#fff;stroke-width:1}.route-minimap-caution{font-size:11px}.route-minimap-legend{display:flex;flex-wrap:wrap;gap:8px;padding:6px 8px;font-size:.75rem;color:var(--muted);background:#ffffffd9}.legend-start:before{content:"●";color:#16a34a}.legend-via:before{content:"■";color:#0f766e}.legend-poi:before{content:"●";color:#7c3aed}.legend-caution:before{content:"⚠"}.legend-direction:before{content:"››";color:#0f766e;font-weight:700;letter-spacing:-.12em}.route-summary-card{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.route-summary-tags{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;font-weight:600;font-size:.95rem}.route-summary-type{color:var(--text)}.route-summary-meta{font-weight:500;color:var(--muted);font-size:.88rem}.route-summary-stats{margin:0;color:var(--muted);font-size:.9rem}.route-summary-stats--hero{margin:0 0 2px;font-size:1.05rem;font-weight:650;letter-spacing:-.01em;color:var(--text)}.route-summary-kicker{margin:0;font-size:.84rem;font-weight:600;color:var(--muted)}.origin-adjustment-line{display:flex;align-items:center;gap:8px;margin:0;padding:0}.origin-adjustment-line__text,.origin-adjustment-line__dismiss{margin:0;font-family:inherit;font-size:.75rem;line-height:1.25}.origin-adjustment-line__text{flex:1;min-width:0;color:var(--muted)}.origin-adjustment-line__dismiss{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;font-weight:600;color:var(--muted);cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;min-height:0}.route-summary-card--home-detail{gap:10px}.route-summary-card--home-detail .route-desc-sections{gap:6px}.route-summary-card--home-detail .route-desc-sections__headline{font-size:.92rem;font-weight:600}.route-summary-card--home-detail .route-desc-sections__list{font-size:.84rem;gap:3px}.route-desc-sections__cautions-fold{margin:2px 0 0;border-radius:8px;background:color-mix(in srgb,var(--surface-2, #f1f5f9) 88%,transparent)}.route-desc-sections__cautions-fold>summary{cursor:pointer;list-style:none;padding:8px 10px;font-size:.8rem;font-weight:650;color:var(--muted)}.route-desc-sections__cautions-fold>summary::-webkit-details-marker{display:none}.route-desc-sections__cautions-fold[open]>summary{padding-bottom:4px}.route-desc-sections__cautions-fold .route-desc-sections__list{padding:0 10px 8px 1.35rem}.route-summary-ai{margin:0;font-size:.9rem;line-height:1.45;color:var(--text)}.route-summary-ai-note{margin:0;font-size:.82rem;line-height:1.4;color:var(--muted)}.route-desc-sections{display:flex;flex-direction:column;gap:8px;margin:2px 0 0}.route-desc-sections__headline{margin:0;font-size:.95rem;font-weight:650;line-height:1.4;color:var(--text)}.route-desc-sections__list{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:4px;font-size:.88rem;line-height:1.45;color:var(--text)}.route-desc-sections__list--caution{color:var(--muted)}.route-desc-sections__cautions-label{margin:0 0 2px;font-size:.78rem;font-weight:650;color:var(--muted);letter-spacing:.02em}.nearby-recommendation-preview{margin:6px 0 0;font-size:12.5px;line-height:1.4;color:var(--muted)}.nav-handoff{display:flex;flex-direction:column;gap:8px}.nav-handoff-tip{margin:0;font-size:.82rem;line-height:1.45;color:var(--muted)}.nav-handoff-tip--action{font-size:.8rem;font-weight:650;line-height:1.35;color:var(--text)}.nav-handoff-tip-fold{margin:0;border-radius:8px;background:color-mix(in srgb,var(--surface-2, #f1f5f9) 90%,transparent)}.nav-handoff-tip-fold>summary{cursor:pointer;list-style:none;padding:8px 10px;font-size:.8rem;font-weight:600;color:var(--muted)}.nav-handoff-tip-fold>summary::-webkit-details-marker{display:none}.nav-handoff-tip-fold[open]>summary{padding-bottom:2px}.nav-handoff-tip-fold .nav-handoff-tip{padding:0 10px 8px;font-size:.78rem}.nav-handoff-actions{display:flex;flex-direction:column;gap:8px}.nav-handoff-primary{width:100%;min-height:48px}.nav-handoff-secondary{display:flex;gap:8px}.nav-handoff-secondary button{flex:1 1 0;min-height:40px;font-size:.9rem}.nav-handoff-actions button:disabled{opacity:.55;cursor:not-allowed}.btn-nav-kakao{background:#fee500;color:#1a1a1a;border:none;border-radius:8px;font-weight:600;min-height:44px;cursor:pointer}.btn-nav-naver{background:#03c75a;color:#fff;border:none;border-radius:8px;font-weight:600;min-height:44px;cursor:pointer}.btn-nav-tmap{background:#fff;color:#c62828;border:1.5px solid #e53935;border-radius:8px;font-weight:600;min-height:44px;cursor:pointer}.btn-nav-label{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:0}.btn-nav-icon{flex-shrink:0;width:15px;height:15px;display:block}.nav-handoff-primary,.nav-handoff-secondary button{display:inline-flex;align-items:center;justify-content:center}.btn-nav-copy{min-height:44px}.btn-nav-preferred{font-weight:700}.nav-preferred-badge{margin-left:6px;font-size:.72rem;opacity:.9}.segmented-wrap{flex-wrap:wrap}.bike-profile-delete{margin-top:10px}.bike-profile-cc-hint{margin-bottom:12px}.bike-profile-form__types{margin-top:4px}.bike-profile-form__distance{margin-top:8px}.bike-profile-form__hint{margin:0 0 8px}.bike-profile-form__auto-preset{margin:0;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--primary) 6%,var(--surface));border:1px solid color-mix(in srgb,var(--primary) 20%,var(--border));font-size:13px;line-height:1.4}.bike-profile-form__auto-preset-note{color:var(--muted);font-weight:400}.bike-profile-form__type-tip{display:block;margin-top:6px;color:var(--muted);font-size:12px;font-weight:500;line-height:1.4}.bike-garage{display:flex;flex-direction:column;gap:8px}.bike-garage__empty{margin:0}.bike-garage__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.bike-garage__item{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.bike-garage__item.is-active{border-color:color-mix(in srgb,var(--primary) 35%,var(--border));background:color-mix(in srgb,var(--primary) 5%,var(--surface))}.bike-garage__item-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.bike-garage__item-head strong{font-size:15px;min-width:0}.bike-garage__badge{flex-shrink:0;font-size:11px;font-weight:700;color:var(--primary)}.bike-garage__meta{margin:0;font-size:13px;color:var(--muted)}.bike-garage__actions{display:flex;gap:8px;align-items:stretch;min-width:0}.bike-garage__actions--two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.bike-garage__actions .report-action-btn{font-size:13px;padding:8px 10px;white-space:nowrap}.bike-garage__actions:not(.bike-garage__actions--two) .report-action-btn--primary{flex:1 1 0;min-width:0;width:auto}.bike-garage__actions:not(.bike-garage__actions--two) .report-action-btn--secondary{flex:0 0 56px;width:56px;min-width:56px;max-width:56px;padding-left:6px;padding-right:6px}.bike-garage__actions--two .report-action-btn{width:100%;min-width:0}.bike-garage__add{margin-top:4px;text-decoration:none}.poi-report-actions--single{grid-template-columns:minmax(0,1fr)}.home-cc-distance-hint{margin:0 0 8px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--primary) 6%,var(--surface));border:1px solid color-mix(in srgb,var(--primary) 18%,var(--border));font-size:12px;font-weight:600;color:var(--text);line-height:1.35}.home-bike-route-impact{display:flex;flex-direction:column;gap:2px;margin:0 0 8px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--primary) 6%,var(--surface));border:1px solid color-mix(in srgb,var(--primary) 18%,var(--border));max-width:100%;box-sizing:border-box;min-width:0}.route-card--home-detail>.home-bike-route-impact{margin-top:2px}.home-bike-route-impact--result{margin:0 0 10px}.home-bike-route-impact__title{font-size:12px;font-weight:700;color:var(--text);line-height:1.35}.home-bike-route-impact__line,.home-bike-route-impact__tip{font-size:12px;font-weight:500;color:var(--muted);line-height:1.4}.why-this-course-card{display:flex;flex-direction:column;gap:8px;margin:0 0 10px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--primary) 6%,var(--surface));border:1px solid color-mix(in srgb,var(--primary) 18%,var(--border));max-width:100%;box-sizing:border-box;min-width:0}.why-this-course-card__headline{margin:0;font-size:14px;font-weight:700;line-height:1.35;color:var(--text)}.why-this-course-card__headline--action{display:block;width:100%;text-align:left;padding:0;border:none;background:transparent;font:inherit;font-size:14px;font-weight:700;line-height:1.35;color:var(--primary);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.why-this-course-card__map-hint{display:inline-block;margin-left:6px;font-size:11px;font-weight:600;text-decoration:none;color:var(--muted);vertical-align:baseline}.route-course-brief{display:flex;flex-direction:column;gap:8px;margin:0 0 10px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--primary) 6%,var(--surface));border:1px solid color-mix(in srgb,var(--primary) 18%,var(--border));max-width:100%;box-sizing:border-box;min-width:0}.route-course-brief__bike{display:flex;flex-direction:column;gap:2px;margin:0;padding:0 0 8px;border-bottom:1px solid color-mix(in srgb,var(--primary) 14%,var(--border));max-width:100%;min-width:0}.route-course-brief__bike-label{font-size:12px;font-weight:700;line-height:1.35;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-course-brief__bike-line{font-size:12px;font-weight:500;line-height:1.4;color:var(--muted)}.route-course-brief__lead{margin:0;font-size:13px;font-weight:700;line-height:1.35;color:var(--text)}.route-course-brief__lead--action{display:block;width:100%;text-align:left;padding:0;border:none;background:transparent;font:inherit;font-size:13px;font-weight:700;line-height:1.35;color:var(--primary);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.route-course-brief__lead--muted{font-weight:500;color:var(--muted);text-decoration:none}.route-course-brief__map-hint{display:inline-block;margin-left:6px;font-size:11px;font-weight:600;text-decoration:none;color:var(--muted);vertical-align:baseline}.route-course-brief__slots{margin:0;display:flex;flex-direction:column;gap:8px;min-width:0}.route-course-brief__row{display:grid;grid-template-columns:2.5rem minmax(0,1fr);gap:8px;align-items:center;min-width:0}.route-course-brief__row--meters{align-items:start}.route-course-brief__row dt{margin:0;font-size:11px;font-weight:600;color:var(--muted);padding-top:2px}.route-course-brief__row dd{margin:0;font-size:13px;font-weight:500;line-height:1.35;color:var(--text);min-width:0}.route-course-brief__meters{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;min-width:0}.route-course-brief__meter{display:inline-flex;align-items:center;gap:5px;min-width:0}.route-course-brief__meter-name{font-size:12px;font-weight:600;color:var(--text);white-space:nowrap}.route-course-brief__meter-bars{display:inline-flex;align-items:flex-end;gap:2px;height:12px}.route-course-brief__bar{display:block;width:5px;border-radius:1px;background:color-mix(in srgb,var(--border) 80%,var(--muted));opacity:.45}.route-course-brief__bar:nth-child(1){height:6px}.route-course-brief__bar:nth-child(2){height:9px}.route-course-brief__bar:nth-child(3){height:12px}.route-course-brief__bar.is-on{background:var(--primary);opacity:1}.route-course-brief__link{display:inline-flex;align-items:center;font:inherit;font-size:13px;font-weight:600;padding:0;border:none;background:transparent;color:var(--primary);cursor:pointer;text-decoration:underline;text-underline-offset:2px;max-width:100%;text-align:left}.pre-ride-brief-bar{display:flex;align-items:center;gap:8px;margin:0 0 10px;max-width:100%;min-width:0;box-sizing:border-box}.pre-ride-brief-bar__label{flex:0 0 auto;font-size:11px;font-weight:600;color:var(--muted);white-space:nowrap}.pre-ride-brief-bar__chips{display:flex;flex-wrap:wrap;gap:6px;min-width:0;flex:1 1 auto}.pre-ride-brief-bar__chip{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font:inherit;font-size:12px;font-weight:600;color:var(--text);cursor:pointer;box-sizing:border-box}.course-character-chips__chip--action{cursor:pointer;font:inherit;border:none}.why-this-course-card__bike,.why-this-course-card__highlight,.why-this-course-card__tip{margin:0;font-size:12px;font-weight:500;line-height:1.4;color:var(--muted)}.course-metric-bars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;min-width:0}.course-metric-bars__item{display:flex;flex-direction:column;gap:4px;min-width:0}.course-metric-bars__label{font-size:11px;font-weight:600;line-height:1.2;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.course-metric-bars__track{height:4px;border-radius:999px;background:color-mix(in srgb,var(--border) 70%,transparent);overflow:hidden}.course-metric-bars__fill{display:block;height:100%;border-radius:inherit;background:color-mix(in srgb,var(--primary) 72%,#fff)}.course-metric-bars__fill--1{background:color-mix(in srgb,var(--primary) 45%,#fff)}.course-metric-bars__fill--2{background:color-mix(in srgb,var(--primary) 62%,#fff)}.course-metric-bars__fill--3{background:color-mix(in srgb,var(--primary) 78%,#fff)}.course-character-chips{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.course-character-chips__chip{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600;line-height:1.25;color:var(--text);background:color-mix(in srgb,var(--primary) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--primary) 16%,var(--border))}.why-this-course-card__fold{margin:0}.why-this-course-card__fold>summary{font-size:12px;font-weight:600;color:var(--primary);cursor:pointer;list-style:none}.why-this-course-card__fold>summary::-webkit-details-marker{display:none}.why-this-course-card__list{margin:6px 0 0;padding-left:16px;font-size:12px;line-height:1.4;color:var(--muted)}.why-this-course-card__pois{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.why-this-course-card__poi-pills{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.why-this-course-card__poi-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;color:var(--text);background:color-mix(in srgb,var(--primary) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--primary) 14%,var(--border))}.why-this-course-card__poi-action{flex:0 0 auto;margin:0;padding:0;border:none;background:none;font:inherit;font-size:11px;font-weight:600;color:var(--primary);cursor:pointer;white-space:nowrap}.home-active-bike-bar{display:flex;flex-direction:column;align-items:stretch;gap:4px;margin:0;padding:7px 10px;border-radius:10px;background:color-mix(in srgb,var(--primary) 5%,var(--surface));border:1px solid color-mix(in srgb,var(--primary) 16%,var(--border));max-width:100%;min-width:0;box-sizing:border-box}.home-sheet-scroll--plan>.home-active-bike-bar,.home-sheet-scroll--stack>.home-active-bike-bar{margin-inline:12px}.home-active-bike-bar__row{display:flex;align-items:center;gap:10px;min-width:0;max-width:100%}.home-active-bike-bar__bike{flex:1 1 auto;min-width:0;font-size:13px;font-weight:700;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-active-bike-bar__link{flex:0 0 auto;font-size:12px;font-weight:700;line-height:1.2;color:var(--primary);text-decoration:none;padding:2px 0;white-space:nowrap}.home-active-bike-bar__reset{display:inline-flex;align-items:center;align-self:flex-start;margin:0;padding:0;border:none;background:transparent;font:inherit;font-size:12px;font-weight:650;line-height:1.35;color:var(--primary);cursor:pointer;text-align:left;max-width:100%;min-width:0;min-height:calc(12px * 1.35)}.home-active-bike-bar__hint{display:inline-flex;align-items:center;align-self:flex-start;margin:0;font-size:12px;font-weight:550;line-height:1.35;color:var(--text-muted, #64748b);text-align:left;max-width:100%;min-width:0;min-height:calc(12px * 1.35)}.history-status-badge--bike{flex:0 0 auto;max-width:100%;box-sizing:border-box;white-space:nowrap;overflow:visible;word-break:keep-all;background:color-mix(in srgb,var(--primary) 12%,var(--surface));color:var(--text);border:1px solid color-mix(in srgb,var(--primary) 22%,var(--border))}.home-active-bike{margin:0 0 8px;padding:8px 10px;border-radius:10px;background:var(--surface-2, #f5f3ef);font-size:13px;line-height:1.35}.home-active-bike__link{font-weight:650;color:var(--primary);text-decoration:none}.home-active-bike__suffix{color:var(--muted)}.coverage-notice{margin:0 0 16px;padding:14px 16px;border:1px solid rgba(15,118,110,.28);border-radius:var(--radius-md);background:#0f766e0f;line-height:1.5}.coverage-notice p{margin:0}.coverage-notice__line{margin:0;word-break:keep-all;overflow-wrap:normal}.coverage-notice__line+.coverage-notice__line{margin-top:4px}.coverage-notice p+p{margin-top:6px}.coverage-notice strong{display:block;margin-bottom:6px}.status-regions{margin-top:12px}.status-regions-title{margin:0 0 8px;font-size:.95rem}.status-regions-list{margin:0;padding-left:18px;font-size:.88rem}.status-region-badge{margin-left:6px;font-size:.75rem;color:var(--muted)}.admin-section-title{margin:20px 0 10px;font-size:1.05rem}.nav-handoff-notice{margin:0;font-size:.82rem;color:var(--muted);line-height:1.45}.nav-handoff-msg{margin:0;font-size:.8rem;font-weight:600;line-height:1.4}.nav-handoff-msg.success-text{color:var(--ok)}.history-minimap{margin:0;flex:0 0 auto;border-radius:8px;overflow:hidden;background:var(--surface-2, #f3f1ec)}.history-minimap .route-minimap-line-casing--departure{stroke-width:5.5;opacity:1}.history-minimap .route-minimap-line--departure{stroke:#22c55e;stroke-width:3.2}.history-minimap .route-minimap-departure-locator__wedge{fill:#22c55e80;stroke:#ffffffd1;stroke-width:.65;stroke-linejoin:round;filter:drop-shadow(0 .5px 1px rgba(15,23,42,.18))}.history-minimap .route-minimap-waypoint-dot{fill:#f97316;stroke:#fff;stroke-width:1.2;opacity:1;paint-order:stroke fill}.history-item{display:flex;flex-direction:column}@media(min-width:640px){.nav-handoff-secondary button{min-height:44px}}.auth-nav{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:8px 0 16px}.auth-nav-greeting{font-size:.9rem;color:var(--muted)}.auth-form{display:flex;flex-direction:column;gap:12px;max-width:420px}.auth-form label{display:flex;flex-direction:column;gap:6px;font-size:.9rem}.auth-form input{min-height:44px;padding:8px 12px;border:1px solid var(--border);border-radius:8px}.auth-consent{margin:0;padding:12px;border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;gap:10px}.auth-consent__legend{padding:0 4px;font-size:.85rem;font-weight:600}.auth-consent__row{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:10px;font-size:.9rem;line-height:1.4}.auth-consent__row input[type=checkbox]{min-height:20px;width:18px;margin-top:2px;flex-shrink:0}.auth-consent__link{display:inline;margin:0;padding:0;border:none;background:none;color:var(--primary);font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.auth-consent__link:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:2px}.auth-field{display:flex;flex-direction:column;gap:6px;font-size:.9rem;min-width:0}.auth-password-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch;max-width:100%}.auth-password-row input{width:100%;min-width:0;box-sizing:border-box;min-height:44px;padding:8px 12px;border:1px solid var(--border);border-radius:8px}.auth-password-toggle{box-sizing:border-box;min-width:72px;min-height:44px;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2, #f3f4f5);color:var(--text);font:inherit;font-size:.85rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.auth-password-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.auth-field__meta{display:flex;justify-content:flex-end;margin-top:2px}.auth-inline-link{color:var(--muted);text-decoration:none;font-size:.85rem;font-weight:600}.auth-inline-link:hover{color:var(--primary);text-decoration:underline;text-underline-offset:2px}.auth-submit{width:100%;min-height:48px;margin-top:4px}.auth-footer{margin-top:20px;max-width:420px}.auth-footer__row{margin:0 0 10px;font-size:.9rem;color:var(--text)}.auth-footer__row--muted{color:var(--muted);font-size:.85rem}.auth-footer__strong{color:var(--primary);font-weight:700;text-decoration:none}.auth-footer__strong:hover{text-decoration:underline;text-underline-offset:2px}.legal-doc-sheet{position:fixed;top:var(--vv-top, 0px);left:0;right:0;height:var(--app-height, 100svh);max-height:var(--app-height, 100svh);z-index:1200;display:flex;flex-direction:column;justify-content:flex-end;max-width:100%;overflow-x:hidden;box-sizing:border-box}.legal-doc-sheet__scrim{position:absolute;top:0;right:0;bottom:0;left:0;border:none;padding:0;margin:0;background:#0f172073;cursor:pointer}.legal-doc-sheet__panel{position:relative;z-index:1;display:flex;flex-direction:column;width:100%;max-width:100%;min-width:0;max-height:calc(var(--app-height, 100svh) - var(--safe-top, 0px) - 12px);margin-top:var(--safe-top, 0px);background:var(--surface, #fff);border-radius:16px 16px 0 0;box-shadow:0 -8px 28px #0f17202e;box-sizing:border-box}.legal-doc-sheet__drag{flex-shrink:0}.legal-doc-sheet__header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;padding:14px 16px 10px;border-bottom:1px solid var(--border);min-width:0}.legal-doc-sheet__title{margin:0;font-size:1.1rem;font-weight:700;min-width:0}.legal-doc-sheet__close{flex-shrink:0;min-height:48px;padding:8px 12px;border:none;border-radius:8px;background:transparent;color:var(--muted);font:inherit;font-weight:600;cursor:pointer}.legal-doc-sheet__close:hover{color:var(--text);background:var(--surface-2, #f3f4f5)}.legal-doc-sheet__body{flex:1 1 auto;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:12px 16px 8px;max-width:none}.legal-doc-sheet__footer{flex-shrink:0;padding:12px 16px calc(12px + var(--safe-bottom, 0px));border-top:1px solid var(--border)}.legal-doc-sheet__done{width:100%;min-height:48px}.ad-banner-slot{margin:10px 0 calc(10px + var(--safe-bottom, 0px));padding:0;border:1px solid var(--border);border-radius:10px;background:var(--surface-2, #f3f4f5);max-width:100%;box-sizing:border-box;min-width:0;overflow:hidden}.ad-banner-slot--page-end{margin-bottom:10px}.ad-banner-slot--compact{margin:8px 0 4px}.ad-banner-slot__chrome{display:flex;align-items:center;gap:8px;padding:3px 8px;min-width:0}.ad-banner-slot__badge{flex-shrink:0;font-size:.62rem;font-weight:800;letter-spacing:.04em;color:var(--muted);border:1px solid var(--border);border-radius:3px;padding:1px 4px;line-height:1.2;background:var(--surface, #fff)}.ad-banner-slot__rotate{flex:1 1 auto;min-width:0;font-size:.68rem;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}.ad-banner-slot__why{flex-shrink:0;margin-left:auto;font-size:.68rem;font-weight:600;color:var(--muted);text-decoration:none}.ad-banner-slot__why:hover{color:var(--primary);text-decoration:underline;text-underline-offset:2px}.ad-banner-slot__hit{display:block;width:100%;margin:0;padding:0;border:none;background:transparent;cursor:pointer;line-height:0;min-width:0;box-sizing:border-box}.ad-banner-slot__hit:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.ad-banner-slot__stage{position:relative;display:block;width:100%;aspect-ratio:16 / 9;overflow:hidden;background:#1a2229}.ad-banner-slot__slide{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .45s ease;pointer-events:none}.ad-banner-slot__slide.is-active{opacity:1;pointer-events:auto;z-index:1}@media(prefers-reduced-motion:reduce){.ad-banner-slot__slide{transition:none}}.ad-banner-slot__img{display:block;width:100%;height:100%;object-fit:fill;object-position:center;vertical-align:top}.ad-banner-slot--compact .ad-banner-slot__stage{aspect-ratio:16 / 9}.ad-banner-slot__fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#cfd6dc;font-size:.85rem;font-weight:700;line-height:1.2;background:#1a2229}.ad-banner-slot__dots{display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 8px 8px}.ad-banner-slot__dot{width:6px;height:6px;padding:0;border:none;border-radius:999px;background:color-mix(in srgb,var(--muted) 35%,transparent);cursor:pointer}.ad-banner-slot__dot.is-active{width:14px;background:var(--primary)}.ad-banner-slot__dot:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.auth-switch{margin-top:16px;font-size:.9rem}.auth-masked-list{margin:0;padding-left:1.2rem;font-size:.95rem}.auth-register-btn,.auth-logout-btn{min-height:44px}.my-page-card{padding:16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);margin-bottom:12px}.my-page-card p{margin:8px 0}.my-page-actions{display:flex;flex-direction:column;gap:10px}.my-page-actions .btn-primary,.my-page-actions .btn-secondary{min-height:44px;text-align:center;text-decoration:none}.my-flash{margin:0 0 12px;padding:10px 12px;border-radius:var(--radius-sm);font-size:13px;line-height:1.4}.my-flash--ok{background:#15803d1a;border:1px solid rgba(21,128,61,.28);color:#15803d}.my-flash--err{background:#dc262614;border:1px solid rgba(220,38,38,.28);color:#dc2626}.my-quick-nav{display:flex;gap:8px;margin:0 0 14px}.my-quick-nav__item{flex:1;display:flex;align-items:baseline;justify-content:center;gap:6px;min-height:44px;padding:8px 6px;border-radius:var(--radius);background:var(--surface-2);color:var(--text-muted);text-decoration:none;font-size:12px}.my-quick-nav__item strong{color:var(--text);font-family:var(--font-display);font-size:15px;font-weight:700}.my-hub-card{display:flex;flex-direction:column;gap:8px;padding:16px;margin-bottom:10px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);text-decoration:none;color:var(--text);transition:border-color .15s ease,background .15s ease}.my-hub-card:active{background:var(--surface-2);border-color:var(--primary)}.my-hub-card__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.my-hub-card__head strong{font-family:var(--font-display);font-size:1.05rem;font-weight:700}.my-hub-card__head span{color:var(--primary);font-size:13px;font-weight:700}.my-hub-card__hint{margin:0;font-style:normal;font-size:13px;line-height:1.45;color:var(--text-muted)}.my-chip-row{display:flex;flex-wrap:wrap;gap:6px}.my-bike-title{margin:0;font-size:15px;font-weight:600}.my-page{display:flex;flex-direction:column;min-height:100%;box-sizing:border-box}.my-page-header{margin-bottom:4px}.my-page-header h1{margin-top:4px;font-size:1.25rem}.my-page-main{display:flex;flex-direction:column;gap:12px;min-width:0}.my-bike-hero{display:flex;flex-direction:column;gap:12px;padding:16px;margin:0;border-radius:calc(var(--radius-md) + 2px);border:1px solid color-mix(in srgb,var(--primary) 28%,var(--border));background:color-mix(in srgb,var(--primary) 8%,var(--surface));text-decoration:none;color:var(--text);min-width:0;box-sizing:border-box;transition:border-color .15s ease,background .15s ease}.my-bike-hero:active{background:color-mix(in srgb,var(--primary) 14%,var(--surface));border-color:color-mix(in srgb,var(--primary) 45%,var(--border))}.my-bike-hero--empty{background:var(--surface);border-style:dashed;border-color:color-mix(in srgb,var(--primary) 35%,var(--border))}.my-bike-hero__head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.my-bike-hero__head strong{font-family:var(--font-display);font-size:.82rem;font-weight:700;letter-spacing:.02em;color:color-mix(in srgb,var(--primary) 75%,var(--text))}.my-bike-hero__head span{flex:0 0 auto;color:var(--primary);font-size:13px;font-weight:700}.my-bike-hero__identity{display:flex;align-items:flex-start;gap:12px;min-width:0}.my-bike-hero__identity-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:8px}.my-bike-mark{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:16px;background:var(--surface-2, #f0f3f6);box-sizing:border-box;overflow:visible}.my-bike-mark.is-active{background:color-mix(in srgb,var(--primary) 10%,var(--surface));color:var(--primary)}.my-bike-mark.is-inactive{background:var(--surface-2, #f0f3f6);color:#c8d0d8}.my-bike-mark--sm{width:40px;height:40px;border-radius:12px}.my-bike-mark__icon{display:block;width:54px;height:32px;flex:0 0 auto;background-color:#c8d0d8;-webkit-mask-image:var(--bike-icon-url);mask-image:var(--bike-icon-url);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.my-bike-mark.is-active .my-bike-mark__icon{background-color:var(--primary)}.my-bike-mark.is-inactive .my-bike-mark__icon{background-color:#c8d0d8}.my-bike-mark--sm .my-bike-mark__icon{width:34px;height:20px}.my-bike-mark--empty{background:var(--surface-2, #f5f3ef);color:var(--muted);border:1px dashed var(--border)}.my-bike-mark__empty{font-size:1.65rem;font-weight:300;line-height:1;color:var(--muted)}.my-bike-hero__title{margin:0;font-family:var(--font-display);font-size:1.18rem;font-weight:700;letter-spacing:-.02em;line-height:1.3;min-width:0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;word-break:keep-all}.my-bike-hero__sub{margin:0;font-size:12px;font-weight:500;color:var(--muted);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-bike-hero__prefs{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.my-bike-hero__prefs-label{flex:0 0 auto;font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--muted)}.my-bike-hero__hint{margin:0;font-style:normal;font-size:12px;line-height:1.4;color:var(--text-muted)}.my-bike-hero__cta{display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:42px;margin-top:2px;padding:10px 14px;box-sizing:border-box;border-radius:12px;background:var(--primary);color:var(--primary-on, #fff);font-size:14px;font-weight:700;line-height:1.2}.my-garage{display:flex;flex-direction:column;gap:10px;min-width:0}.my-garage__head{display:flex;flex-direction:column;gap:6px;min-width:0}.my-garage__title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.my-garage__count{flex:0 0 auto;font-size:13px;font-weight:700;color:var(--primary);line-height:1.2}.my-garage__title{margin:0;font-family:var(--font-display);font-size:1rem;font-weight:700;letter-spacing:-.01em;min-width:0}.my-garage__lead{margin:0;font-size:13px;line-height:1.45;color:var(--muted)}.my-bike-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;min-width:0}.my-bike-card{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:calc(var(--radius-md) + 2px);border:1px solid var(--border);background:var(--surface);min-width:0;box-sizing:border-box}.my-bike-card__body{display:flex;flex-direction:column;gap:8px;min-width:0}.my-bike-card__identity{display:flex;align-items:center;gap:12px;min-width:0}.my-bike-card__info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:6px}.my-bike-card.is-active .my-bike-card__info{gap:8px}.my-bike-card__main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:6px}.my-bike-card.is-active{border-color:color-mix(in srgb,var(--primary) 28%,var(--border));background:color-mix(in srgb,var(--primary) 6%,var(--surface))}.my-bike-card__badge{flex:0 0 auto;font-size:11px;font-weight:700;color:var(--primary)}.my-bike-card__status{display:block;font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--primary);line-height:1.2}.my-bike-route-row{display:flex;flex-direction:column;gap:4px;margin-top:0;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--border) 80%,transparent);min-width:0}.my-bike-card.is-active .my-bike-route-row{border-top-color:color-mix(in srgb,var(--primary) 18%,var(--border))}.my-bike-route-row__head{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;min-width:0}.my-bike-route-row__label{flex:0 0 auto;font-size:11px;font-weight:700;color:var(--muted);line-height:1.3}.my-bike-route-row__value{flex:1 1 auto;min-width:0;font-size:13px;font-weight:700;color:var(--text);line-height:1.35}.my-bike-route-row__note{margin:0;font-size:12px;font-weight:500;color:var(--muted);line-height:1.45}.my-bike-route-preview{margin:2px 0 0;padding:0;font-size:12px;font-weight:600;color:var(--muted);line-height:1.4}.my-section-flash{margin:0;padding:8px 10px;border-radius:8px;font-size:13px;line-height:1.4}.my-section-flash--ok{background:color-mix(in srgb,var(--primary) 10%,var(--surface));color:var(--primary)}.my-section-flash--err{background:color-mix(in srgb,#dc2626 10%,var(--surface));color:#b91c1c}.my-peer-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:stretch;width:100%;min-width:0}.my-peer-actions .report-action-btn{width:100%;min-width:0;min-height:44px;box-sizing:border-box;align-self:stretch}.my-bike-route-fit{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:12px;border:1px solid color-mix(in srgb,var(--primary) 18%,var(--border));background:color-mix(in srgb,var(--primary) 5%,var(--surface));min-width:0;box-sizing:border-box}.my-bike-route-fit__title{font-size:12px;font-weight:700;color:var(--text);line-height:1.35}.my-bike-route-fit__desc{font-size:12px;font-weight:500;color:var(--muted);line-height:1.4}.my-garage-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;min-width:0}.my-garage-row{display:flex;align-items:center;gap:10px;min-width:0;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);text-decoration:none;color:var(--text);box-sizing:border-box}.my-garage-row:active{background:var(--surface-2)}.my-garage-row__text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.my-garage-row__title{font-size:14px;font-weight:650;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-garage-row__meta{font-size:12px;color:var(--muted);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-garage-row__action{flex:0 0 auto;font-size:13px;font-weight:700;color:var(--primary)}.my-garage-add{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:44px;padding:10px 12px;box-sizing:border-box;border-radius:var(--radius-md);border:1px dashed color-mix(in srgb,var(--primary) 35%,var(--border));background:color-mix(in srgb,var(--primary) 4%,var(--surface));color:var(--primary);font-size:14px;font-weight:700;text-decoration:none}.my-garage-add:active{background:color-mix(in srgb,var(--primary) 10%,var(--surface))}.my-page-main .my-service-info{margin:0}.my-page-main .my-service-info__details{border-radius:calc(var(--radius-md) + 2px)}.my-account-card{display:flex;flex-direction:column;gap:4px;padding:14px 12px 4px;border:1px solid var(--border);border-radius:calc(var(--radius-md) + 2px);background:var(--surface);overflow:hidden;min-width:0;box-sizing:border-box}.my-page-footer{margin-top:auto;padding-top:12px;display:flex;flex-direction:column;gap:0;min-width:0}.my-service-info--embedded{margin:0}.my-service-info--embedded .my-service-info__details{border:none;border-top:1px solid var(--border);border-radius:0;background:transparent;padding:0 12px 8px;margin-top:4px}.my-service-info--embedded .my-service-info__summary{padding-left:0;padding-right:0}.my-account-card__title{margin:0;padding:0 2px;font-family:var(--font-display);font-size:1rem;font-weight:700;letter-spacing:-.01em;color:var(--text)}.my-account-list{display:flex;flex-direction:column}.my-account-row{width:100%;min-height:44px;padding:8px;border:none;border-top:1px solid var(--border);background:transparent;color:var(--text);text-align:left;font-size:15px;cursor:pointer}.my-account-list>.my-account-row:first-of-type{border-top:none}.my-account-row.is-open{color:var(--primary);font-weight:600}.my-account-panel{display:flex;flex-direction:column;gap:10px;padding:0 8px 12px}.my-account-panel .btn-secondary{min-height:44px}.my-inline-form{display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:0 8px 12px;min-width:0}.my-inline-form label{width:100%;display:flex;flex-direction:column;gap:6px;font-size:.9rem;min-width:0}.my-inline-form input{width:100%;min-width:0;min-height:44px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;box-sizing:border-box}.my-password-form{margin:0;padding:0 8px 12px;max-width:none;display:flex;flex-direction:column;gap:10px;min-width:0}.my-password-form .my-peer-actions{margin-top:2px}.my-logout-text{display:block;width:100%;margin:8px 0 4px;padding:12px;border:none;background:transparent;color:var(--text-muted);font-size:14px;text-align:center;cursor:pointer;min-height:44px}.my-service-info{margin:20px 0 8px;display:flex;flex-direction:column;gap:10px}.my-service-info__details{border:1px solid var(--border, rgba(0, 0, 0, .1));border-radius:var(--radius-sm, 10px);background:var(--surface, #fff);padding:0 12px 4px}.my-service-info__summary{cursor:pointer;list-style:none;font-size:.95rem;font-weight:700;color:var(--text);padding:12px 0;min-height:44px;display:flex;align-items:center}.my-service-info__summary::-webkit-details-marker{display:none}.my-service-info__summary:after{content:"▾";margin-left:auto;font-weight:500;opacity:.55}.my-service-info__details[open] .my-service-info__summary:after{content:"▴"}.my-service-info__body{display:flex;flex-direction:column;gap:10px;padding-bottom:12px}.my-service-info__title{margin:0 0 4px;font-size:1rem;font-weight:700;color:var(--text)}.my-service-info__legal{margin:.75rem 0 0}.privacy-policy-page{padding:1rem 1.25rem 2rem;max-width:40rem}.privacy-policy-page__header h1{margin:0 0 .25rem;font-size:1.35rem}.privacy-policy-page section{margin-top:1.25rem}.privacy-policy-page h2{margin:0 0 .5rem;font-size:1.05rem}.privacy-policy-page ul{margin:0;padding-left:1.2rem}.auth-mvp-note{margin-top:20px;font-size:.82rem;color:var(--muted);line-height:1.45}.riding-profile-nav-hint{margin:-4px 0 8px;font-size:12px}.riding-profile-form__role-note{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--primary) 6%,var(--surface));border:1px solid color-mix(in srgb,var(--primary) 16%,var(--border));font-size:12px;font-weight:500;line-height:1.45;color:var(--muted);max-width:100%;box-sizing:border-box}.riding-profile-save-row{display:flex;flex-direction:column;gap:8px;margin:0 0 16px}.riding-profile-summary .section-title{margin:0 0 12px;font-size:1.05rem}.riding-profile-form .text-input{width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;margin-bottom:8px}.riding-profile-form__submit{width:100%;margin-top:8px;margin-bottom:8px}.riding-profile-form .field-group{min-width:0;max-width:100%}.checkbox-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:.9rem}.beta-banner{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-elevated)}.beta-banner-title{margin:0 0 8px;font-size:1.15rem}.beta-banner-lead,.beta-banner-note{margin:0 0 8px;color:var(--muted);line-height:1.5}.beta-banner-regions ul{margin:8px 0 0;padding-left:20px}.safety-notice{margin:0 0 16px;padding:14px 16px;border-left:4px solid var(--warn);background:#c2410c0f;border:1px solid rgba(194,65,12,.2);border-left-width:4px;border-radius:var(--radius-sm);line-height:1.5}.safety-notice-compact{margin:0 0 12px;padding:8px 10px;font-size:.88rem;border-left-width:3px}.internal-test-guide{margin:0 0 16px;padding:14px 16px;border-left:4px solid var(--primary);background:#0f766e0f;border:1px solid var(--border);border-left-width:4px;border-radius:var(--radius-sm);line-height:1.5}.internal-test-guide h2{margin:0 0 8px;font-size:1rem}.internal-test-guide ul{margin:8px 0;padding-left:1.2rem}.internal-test-guide-note{margin:8px 0 0;font-size:.9rem}.origin-region-status{margin:8px 0 12px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);line-height:1.5}.origin-region-status--unsupported{border-left:4px solid #f59e0b}.origin-region-status--supported{border-left:4px solid #22c55e}.origin-map-picker{margin:8px 0 12px}.origin-map-picker-hint{margin-top:8px}.feedback-form{margin-top:12px;padding-top:12px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:10px}.feedback-form-title{margin:0;font-size:1rem}.feedback-field{display:flex;flex-direction:column;gap:6px;font-size:.92rem}.feedback-field textarea,.feedback-field select{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px}.admin-row-highlight{background:#f59e0b1f}.admin-row-warn{background:#f59e0b14}.admin-row-kakao-warn{background:#38bdf81a}.admin-subsection{margin-top:2rem}.admin-subsection h2{font-size:1.1rem;margin-bottom:.5rem}.admin-badge-warning{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:999px;background:#ef4444;color:#fff;font-size:.75rem}.admin-message-cell{max-width:320px;white-space:pre-wrap;word-break:break-word}.app-shell{position:fixed;top:var(--vv-top, 0px);left:0;right:0;height:var(--app-height, 100svh);max-height:var(--app-height, 100svh);display:flex;flex-direction:column;overflow:hidden;z-index:1}.app-shell--no-tab{--tabbar-height: 0px}.app-shell__content{flex:1 1 0;height:0;min-height:0;min-width:0;position:relative;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.app-shell--map .app-shell__content{overflow:hidden;display:flex;flex-direction:column}.app-shell--map .page--flush{flex:1 1 0;width:100%;min-height:0;height:0}.app-shell--no-tab .page{padding-bottom:calc(24px + var(--safe-bottom))}.bottom-tabbar{position:relative;flex-shrink:0;left:auto;right:auto;bottom:auto;z-index:1000;display:flex;justify-content:center;gap:0;width:100%;max-width:480px;margin:0 auto;padding:6px 8px calc(6px + var(--safe-bottom));background:color-mix(in srgb,var(--surface) 94%,transparent);border-top:1px solid var(--border)}.bottom-tabbar__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:48px;padding:4px;color:var(--muted);text-decoration:none;font-size:11px;font-weight:500;border-radius:var(--radius-sm);transition:color .15s ease,background .15s ease}.bottom-tabbar__item--active{color:var(--primary)}.bottom-tabbar__icon-wrap{position:relative;display:flex}.bottom-tabbar__icon{display:flex;opacity:.85}.bottom-tabbar__badge{position:absolute;top:-2px;right:-4px;width:8px;height:8px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 2px var(--surface)}.bottom-tabbar__badge--pulse{animation:tab-badge-pulse 1.4s ease-in-out infinite}@keyframes tab-badge-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.85)}}.bottom-tabbar__item--active .bottom-tabbar__icon{opacity:1}.btn-ghost{background:transparent;color:var(--text);border:1px solid transparent;border-radius:var(--radius-sm);padding:10px 14px;font-size:14px;cursor:pointer;min-height:48px}.btn-ghost:hover{background:var(--surface-2)}.btn-primary{transition:transform .12s ease,filter .12s ease,opacity .12s ease}.btn-primary:not(:disabled):active{transform:scale(.98);filter:brightness(1.05)}.ui-chip{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:12px;line-height:1.2}button.ui-chip{cursor:pointer;min-height:36px}.ui-chip--active{border-color:var(--primary);background:#0f766e1a;color:var(--primary)}.ui-chip--progress{border-color:#0f766e59;background:#0f766e14;color:var(--primary);font-weight:600}.status-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text);font-size:12px;font-weight:600;min-height:36px;cursor:default}button.status-chip{cursor:pointer}.status-chip--warn{border-color:#0f766e59;color:var(--primary)}.status-chip--ok{border-color:#15803d59;color:#15803d}.status-chip--danger{border-color:#dc262659;color:#dc2626}.empty-state{text-align:center;padding:32px 16px}.empty-state__title{margin:0 0 8px;font-family:var(--font-display);font-size:1.15rem}.empty-state__desc{color:var(--muted);font-size:14px;line-height:1.45;max-width:22em;margin:0 auto 16px}.empty-state__action{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;min-height:48px;padding:12px 20px;min-width:10.5rem}.guest-auth-gate .empty-state{padding:28px 16px 8px}.guest-auth-gate__signup{margin:0 0 20px;text-align:center;font-size:14px;color:var(--muted);line-height:1.4}.guest-auth-gate__signup a{font-weight:600}.guest-auth-gate__loading{text-align:center;padding:24px 16px}.bottom-sheet{position:absolute;left:0;right:0;bottom:0;max-height:100%;z-index:900;max-width:480px;margin:0 auto;display:flex;flex-direction:column;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-bottom:none;border-radius:var(--sheet-radius) var(--sheet-radius) 0 0;box-shadow:var(--shadow);transition:height .28s cubic-bezier(.22,1,.36,1);overflow:hidden}.bottom-sheet--dragging{transition:none}.bottom-sheet--animating{backdrop-filter:none;-webkit-backdrop-filter:none;background:color-mix(in srgb,var(--surface) 96%,#fff)}.bottom-sheet--peek{height:188px}.bottom-sheet--half{height:min(52dvh,460px)}.bottom-sheet--has-result.bottom-sheet--half{height:min(44dvh,380px)}.bottom-sheet--detail.bottom-sheet--half{height:min(48dvh,420px)}.bottom-sheet--detail.bottom-sheet--full{height:min(76dvh,660px)}.bottom-sheet--full{height:min(78dvh,680px)}.sheet-drag-handle,.bottom-sheet__handle-area{flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;width:100%;box-sizing:border-box;padding:14px 16px 10px;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.sheet-drag-handle:active,.bottom-sheet__handle-area:active,.route-candidate-chip__drag:active{cursor:grabbing}.sheet-drag-handle__bar,.bottom-sheet__handle,.route-candidate-chip__grabber,.confirm-bottom-sheet__grabber,.favorite-save-dialog__grabber{display:block;width:48px;height:5px;margin:0;border-radius:999px;background:color-mix(in srgb,var(--muted) 45%,transparent);pointer-events:none}.bottom-sheet__handle{background:var(--border-strong)}.bottom-sheet__peek{padding-bottom:4px}.bottom-sheet__body{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.bottom-sheet__body>*{flex:1 1 auto;min-height:0}.bottom-sheet__footer{flex-shrink:0;z-index:2;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);background:var(--surface-elevated);box-shadow:0 -4px 12px #0f172a0f}.home-sheet-footer-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:stretch}.home-sheet-footer-cta{width:100%;min-height:48px;box-sizing:border-box;align-self:stretch;display:inline-flex;align-items:center;justify-content:center;padding:14px 16px;font-size:15px;font-weight:700;border-radius:10px}.home-sheet-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 14px 16px;overscroll-behavior:contain}.bottom-sheet:not(.bottom-sheet--peek) .home-sheet-scroll{padding-bottom:16px}.home-sheet-scroll--stack{display:flex;flex-direction:column;gap:12px}.home-sheet-form-slot{order:1}.home-sheet-form-slot--below{order:30}.home-sheet-main{order:10;display:flex;flex-direction:column;gap:12px}.home-sheet-main:not(:has(*)){display:none}.route-form-plain{border:none;background:transparent;padding:0}.route-form-plain>summary{display:none}.home-map-page{position:relative;display:flex;flex-direction:column;flex:1 1 0;height:0;width:100%;min-height:0;max-width:none;overflow:hidden}.app-shell--map .page--flush{padding-bottom:0}.app-shell--map .bottom-tabbar{background:color-mix(in srgb,var(--surface) 92%,transparent)}body.home-map-follow .bottom-tabbar{position:absolute;left:0;right:0;bottom:0;transform:translateY(calc(100% + 12px));opacity:0;pointer-events:none;transition:transform .22s ease,opacity .18s ease}body.home-map-follow .map-fab-stack,body.home-map-follow .home-post-ride-report,body.home-map-follow .quick-road-report-slot{margin-bottom:var(--safe-bottom)}.bottom-tabbar{transition:transform .22s ease,opacity .18s ease}.bottom-sheet--map-hidden{height:0!important;min-height:0!important;opacity:0;pointer-events:none;border:none;box-shadow:none}.map-fab-stack{position:absolute;right:12px;z-index:640;display:flex;flex-direction:column;align-items:flex-end;gap:14px;pointer-events:none}.map-fab{pointer-events:auto;width:44px;height:44px;border-radius:12px;border:1px solid var(--border);background:var(--surface-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--primary);box-shadow:var(--shadow-sm);display:grid;place-items:center;cursor:pointer;padding:0}.map-fab--label{width:auto;min-width:44px;max-width:min(42vw,132px);padding:0 10px}.map-fab__label{font-size:12px;font-weight:600;line-height:1.2;text-align:center;white-space:nowrap}.map-fab.is-active{background:var(--primary);color:var(--primary-on);border-color:var(--primary)}.map-fab--report{color:#b45309}.quick-road-report{position:relative;z-index:720;max-width:456px;margin:0 auto;padding:12px 12px 10px;border-radius:16px;background:color-mix(in srgb,var(--surface) 94%,transparent);border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.quick-road-report--fixed{position:fixed;left:12px;right:12px;bottom:calc(var(--dock-bottom) + var(--vv-bottom) + 12px)}.quick-road-report__head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.quick-road-report__title{flex:1;font-size:15px;font-weight:700;line-height:1.3}.quick-road-report__close{font:inherit;font-size:13px;line-height:1.2;display:inline-flex;align-items:center;padding:0;min-height:0;border:none;background:none;color:var(--muted);cursor:pointer}.quick-road-report__hint{margin:0 0 8px;font-size:12px;color:var(--muted)}.quick-road-report__relocate{margin:-4px 0 10px;font-size:12px;font-weight:600;line-height:1.35;color:var(--primary)}.quick-road-report__resolve{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.quick-road-report__resolve-label{margin:0 0 8px;font-size:13px;font-weight:600}.home-post-ride-report{position:absolute;left:12px;right:12px;z-index:970;max-width:420px;margin:0 auto;display:flex;flex-direction:column;gap:12px;padding:14px 14px 12px;border-radius:16px;background:color-mix(in srgb,var(--surface) 96%,transparent);border:1px solid var(--border);box-shadow:var(--shadow-md, 0 8px 24px rgba(0, 0, 0, .14));pointer-events:auto}.home-post-ride-report--picking{flex-direction:row;align-items:center;gap:10px;padding:12px 14px}.home-post-ride-report__copy{display:flex;flex-direction:column;gap:4px;min-width:0}.home-post-ride-report__title{font-size:15px;font-weight:700;line-height:1.35}.home-post-ride-report__sub,.home-post-ride-report__pick-text{font-size:13px;line-height:1.35;color:var(--muted)}.home-post-ride-report__pick-text{flex:1;min-width:0;font-weight:600;color:var(--text)}.home-post-ride-report__actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.home-post-ride-report__primary,.home-post-ride-report__secondary{font:inherit;font-size:14px;line-height:1.2;display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 14px;border-radius:999px;cursor:pointer}.home-post-ride-report__primary{border:none;background:var(--primary);color:var(--primary-on, #fff);font-weight:700}.home-post-ride-report__secondary{border:1px solid var(--border);background:var(--surface);color:var(--muted);font-weight:600}.ride-along-report{margin:12px 0 16px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.ride-along-report__row{display:flex;align-items:center;gap:12px}.ride-along-report__copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ride-along-report__title{font-size:14px;font-weight:700;line-height:1.35}.ride-along-report__sub,.ride-along-report__text{font-size:13px;line-height:1.35;color:var(--muted)}.ride-edit-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.map-fab__icon{display:block;overflow:visible;shape-rendering:geometricPrecision}.map-fab-action-hint{pointer-events:none;max-width:min(52vw,180px)}.home-locate-toast{position:absolute;top:calc(var(--home-map-top-clearance) + 8px);left:50%;transform:translate(-50%);z-index:960;max-width:min(90vw,320px);margin:0;padding:8px 14px;border-radius:999px;background:color-mix(in srgb,var(--surface) 92%,transparent);border:1px solid color-mix(in srgb,var(--border) 80%,transparent);box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .12));font-size:12px;font-weight:600;color:var(--text-muted);text-align:center;pointer-events:none;animation:home-locate-toast-in .2s ease-out}@keyframes home-locate-toast-in{0%{opacity:0;transform:translate(-50%,-4px)}to{opacity:1;transform:translate(-50%)}}.home-gen-bar{flex:1;min-width:0;display:flex;align-items:center;gap:8px;min-height:44px;padding:0 4px 0 10px;border-radius:12px;background:color-mix(in srgb,var(--surface) 92%,transparent);border:1px solid color-mix(in srgb,var(--border) 80%,transparent);box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .1));pointer-events:auto}.home-gen-bar__pulse{flex:0 0 auto;width:10px;height:10px;border-radius:50%;background:var(--primary, #0f766e);box-shadow:0 0 color-mix(in srgb,var(--primary, #0f766e) 45%,transparent);animation:home-gen-pulse 1.4s ease-out infinite}@keyframes home-gen-pulse{0%{transform:scale(.9);box-shadow:0 0 color-mix(in srgb,var(--primary, #0f766e) 50%,transparent)}70%{transform:scale(1);box-shadow:0 0 0 10px transparent}to{transform:scale(.9);box-shadow:0 0 0 0 transparent}}.home-gen-bar__msg{flex:1;min-width:0;font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-gen-bar__time{flex-shrink:0;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--muted)}.home-gen-bar__cancel{flex-shrink:0;margin:0;padding:10px 12px;border:none;border-radius:10px;background:transparent;color:var(--primary);font-size:13px;font-weight:700;cursor:pointer;min-height:44px}.home-gen-bar__cancel:active{opacity:.75}.route-gen-wait{display:grid;grid-template-columns:auto 1fr;gap:14px 16px;margin:0 0 12px;padding:16px;border-radius:16px;border:1px solid color-mix(in srgb,#0f766e 28%,var(--border));background:radial-gradient(120% 80% at 0% 0%,color-mix(in srgb,#0f766e 10%,transparent),transparent 55%),var(--surface-elevated, var(--surface))}.route-gen-wait__visual{position:relative;width:88px;height:88px;align-self:start}.route-gen-wait__ring{width:88px;height:88px;transform:rotate(-90deg)}.route-gen-wait__ring-track{fill:none;stroke:color-mix(in srgb,var(--border) 80%,transparent);stroke-width:8}.route-gen-wait__ring-value{fill:none;stroke:#0f766e;stroke-width:8;stroke-linecap:round;transition:stroke-dasharray .45s ease-out}.route-gen-wait__route{fill:none;stroke:color-mix(in srgb,#0f766e 70%,#134e4a);stroke-width:3.5;stroke-linecap:round;stroke-dasharray:6 8;animation:route-gen-dash 1.1s linear infinite;transform:rotate(90deg);transform-origin:60px 60px}.route-gen-wait__dot{fill:#0f766e;transform:rotate(90deg);transform-origin:60px 60px}.route-gen-wait__dot--b{animation:route-gen-dot 1.6s ease-in-out infinite}@keyframes route-gen-dash{to{stroke-dashoffset:-28}}@keyframes route-gen-dot{0%,to{opacity:.35}50%{opacity:1}}.route-gen-wait__pct{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;pointer-events:none}.route-gen-wait__pct strong{font-size:1.05rem;font-variant-numeric:tabular-nums;color:var(--text);line-height:1}.route-gen-wait__pct span{font-size:10px;font-weight:600;color:var(--muted)}.route-gen-wait__body{min-width:0;display:flex;flex-direction:column;gap:6px}.route-gen-wait__header{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.route-gen-wait__header strong{font-size:.95rem}.route-gen-wait__elapsed{font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted)}.route-gen-wait__message{margin:0;font-size:.86rem;font-weight:600;color:#0f766e;line-height:1.35}.route-gen-wait__bar{height:8px;border-radius:999px;background:color-mix(in srgb,var(--border) 70%,transparent);overflow:hidden}.route-gen-wait__bar>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0d9488,#0f766e);transition:width .45s ease-out}.route-gen-wait__meta{display:flex;flex-wrap:wrap;gap:8px 12px;font-size:12px;font-weight:650;color:var(--text)}.route-gen-wait__eta{font-variant-numeric:tabular-nums}.route-gen-wait__stream{color:#0f766e}.route-gen-wait__hint{margin:0;font-size:12px;color:var(--muted);line-height:1.4}.route-gen-wait__steps{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:4px}.route-gen-wait__step{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;font-size:12px;color:var(--muted)}.route-gen-wait__step--active{color:#0f766e;font-weight:700}.route-gen-wait__step--done{color:var(--ok, #15803d)}.route-gen-wait__step-detail{grid-column:2;font-size:11px;font-weight:500;color:var(--muted)}.route-gen-wait__tip{margin:4px 0 0;padding-top:8px;border-top:1px dashed color-mix(in srgb,var(--border) 80%,transparent);font-size:12px;color:var(--muted);line-height:1.4}.route-gen-wait__cancel{margin-top:6px;width:100%}@media(max-width:380px){.route-gen-wait{grid-template-columns:1fr;justify-items:center;text-align:center}.route-gen-wait__header{flex-direction:column;align-items:center}.route-gen-wait__steps{text-align:left;width:100%}}@media(prefers-reduced-motion:reduce){.home-gen-bar__pulse,.route-gen-wait__route,.route-gen-wait__dot--b{animation:none}.route-gen-wait__ring-value,.route-gen-wait__bar>span{transition:none}}.route-summary-carousel{--route-card-w: min(78vw, 280px);--route-card-side: max(18px, calc((100% - var(--route-card-w)) / 2));position:absolute;left:0;right:0;bottom:0;z-index:620;pointer-events:none;width:100%;max-width:480px;margin:0 auto;padding:0 0 10px;display:flex;flex-direction:column;align-items:stretch;gap:6px}.route-summary-carousel__notice{flex:0 0 auto;box-sizing:border-box;width:var(--route-card-w);max-width:calc(100% - 36px);margin:0 auto;padding:7px 12px;border-radius:12px;border:1px solid color-mix(in srgb,var(--border) 65%,transparent);background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:0 1px 4px #0f172014;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:11.5px;font-weight:650;line-height:1.35;letter-spacing:-.03em;color:var(--text);text-align:center;white-space:normal;overflow-wrap:break-word;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.route-summary-carousel__track{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--route-card-side);padding:4px var(--route-card-side) 8px;pointer-events:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.route-summary-carousel__track::-webkit-scrollbar{display:none}.route-candidate-chip{flex:0 0 var(--route-card-w, min(78vw, 280px));width:var(--route-card-w, min(78vw, 280px));max-width:var(--route-card-w, min(78vw, 280px));min-width:0;box-sizing:border-box;scroll-snap-align:center;max-height:112px;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0 0 8px;border-radius:14px;border:1px solid color-mix(in srgb,var(--border) 70%,#94a3b8);background:color-mix(in srgb,var(--surface) 94%,#fff);box-shadow:0 1px 2px #0f17200f,0 6px 16px #0f17201a;cursor:pointer;overflow:hidden;transition:transform .12s ease-out,box-shadow .12s ease-out,border-color .12s ease-out,background-color .12s ease-out;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.route-candidate-chip:active:not(:has(button:active)){transform:scale(.98);background:color-mix(in srgb,var(--surface-glass) 88%,#0f172a 12%);box-shadow:0 1px 2px #0f172014,0 3px 10px #0f17201f}.route-candidate-chip.is-selected{border-color:var(--primary);box-shadow:0 0 0 1.5px color-mix(in srgb,var(--primary) 55%,transparent),0 4px 14px color-mix(in srgb,var(--primary) 22%,rgba(15,23,32,.12))}.route-candidate-chip__drag{flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;width:100%;min-height:32px;margin:0;padding:8px 12px 2px;border:none;background:transparent;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.route-candidate-chip.is-selected .route-candidate-chip__grabber{background:color-mix(in srgb,#475569 48%,transparent)}.route-candidate-chip__drag.is-hint .route-candidate-chip__grabber{animation:route-chip-grabber-hint 1.1s ease-in-out 2}@keyframes route-chip-grabber-hint{0%,to{transform:translateY(0)}40%{transform:translateY(-3px)}70%{transform:translateY(-1px)}}@media(prefers-reduced-motion:reduce){.route-candidate-chip__drag.is-hint .route-candidate-chip__grabber{animation:none}}.route-candidate-chip__row{display:flex;align-items:center;gap:8px;min-width:0;padding:0 10px 0 12px;box-sizing:border-box}.route-candidate-chip__main{flex:1;min-width:0}.route-candidate-chip__title{margin:0;font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.route-candidate-chip__metrics{margin:2px 0 0;font-size:13px;color:var(--text)}.route-candidate-chip__blurb{margin:2px 0 0;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;max-width:100%;font:inherit;text-align:left;background:none;border:none;padding:0;line-height:inherit}button.route-candidate-chip__blurb.is-action{color:#c2410c;cursor:pointer;text-decoration:underline;text-underline-offset:2px}button.route-candidate-chip__blurb.is-action:active{opacity:.75}.route-candidate-chip__actions{display:flex;flex-shrink:0;align-items:center;justify-content:center}.route-candidate-chip__nav{border:1px solid var(--border);border-radius:8px;background:var(--surface);font-size:11px;font-weight:600;padding:5px 8px;cursor:pointer;color:var(--text);min-width:40px}.home-sheet-footer-cta--solo{width:100%}.results-header--compact{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.results-header--compact .results-title{margin:0;font-size:15px}.results-collapse-btn{flex-shrink:0;font-size:14px;padding:4px 8px}.results--home-detail .route-card{cursor:default;border:none;padding:0;background:transparent;box-shadow:none}.home-history-open-actions{display:flex;align-items:center;margin:0 0 8px}.home-history-open-back{display:inline-flex;align-items:center;margin:0;padding:4px 0;border:none;background:transparent;color:var(--primary);font:inherit;font-size:13px;font-weight:600;line-height:1.35;text-align:left;cursor:pointer}.home-history-open-back:hover{text-decoration:underline}.results--home-detail .route-card-selected{border:none;box-shadow:none}.results--home-detail .route-summary-card--home-detail{gap:8px;margin-bottom:4px}.results--home-detail .why-this-course-card,.results--home-detail .route-course-brief{margin-bottom:8px}.results--home-detail .route-summary-kicker{margin:0;font-size:.82rem;font-weight:600;color:var(--muted)}.results--home-detail .origin-adjustment-line{margin-top:-4px}.results--home-detail .nav-handoff{margin-top:8px;margin-bottom:0;gap:8px}.results--home-detail .nav-handoff-actions,.results--home-detail .nav-handoff-secondary{gap:8px}.results--home-detail .nav-handoff-primary,.results--home-detail .nav-handoff-secondary button{min-height:48px}.results--home-detail .btn-nav-tmap{border-color:color-mix(in srgb,#e11d48 40%,var(--border));color:color-mix(in srgb,#e11d48 70%,var(--text));background:transparent}.results--home-detail .nav-handoff-secondary:has(>:only-child) button{flex:1 1 100%}.results--home-detail .route-engage-row{margin-top:8px}.results--home-detail .route-keep-prompt{margin:4px 0 10px}.route-quick-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:2px 0 4px}.route-quick-actions .share-route-wrap{flex:0 0 auto}.route-quick-actions__btn,.route-quick-actions .btn-favorite--compact{flex:1 1 0;min-width:0;min-height:36px;padding:6px 10px;border-radius:10px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface-2, #f1f5f9) 88%,transparent);font-size:.8rem;font-weight:600;color:var(--text);cursor:pointer}.route-quick-actions .btn-favorite--compact.btn-favorite-on{border-color:color-mix(in srgb,#0f766e 35%,var(--border));color:#0f766e}.route-quick-actions__feedback{margin:0 0 6px;font-size:.78rem;color:var(--muted)}.route-quick-actions--in-more{margin:8px 0 4px}.route-engage-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 8px}.route-engage-row .btn-favorite--compact{flex:0 0 auto;min-height:40px;padding:8px 12px;border-radius:10px}.route-engage-row .share-route-wrap{flex:0 0 auto;min-width:auto;width:auto;align-self:center}.route-engage-row .route-vote-row{flex:1 1 140px;margin:0;gap:6px;min-width:0}.route-engage-row .route-vote-row button{flex:1 1 0;min-height:40px}.route-engage-row .route-vote-error{flex:1 1 100%;margin:0}.route-engage-row__share{flex:0 0 auto;min-height:40px;padding:8px 12px;border-radius:10px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface-2, #f1f5f9) 88%,transparent);font:inherit;font-size:.875rem;font-weight:600;line-height:1.2;color:var(--text);white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.route-course-feel{margin:2px 0 8px;font-size:.875rem;line-height:1.35;color:var(--muted, #64748b)}.route-caution-banner{display:flex;flex-direction:column;gap:6px;margin:2px 0 8px}.route-caution-banner__main{display:flex;align-items:center;gap:8px;width:100%;margin:0;padding:8px 10px;border-radius:10px;border:1px solid color-mix(in srgb,#f59e0b 40%,var(--border));background:color-mix(in srgb,#f59e0b 10%,var(--surface));text-align:left;cursor:default;color:var(--text)}.route-caution-banner__main.is-action{cursor:pointer}.route-caution-banner__main.is-action:active{filter:brightness(.98)}.route-caution-banner__main:disabled{opacity:1;cursor:default}.route-caution-banner__mark{flex:0 0 auto;width:22px;height:22px;border-radius:6px;background:#f59e0b;color:#fff;font-size:12px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}.route-caution-banner__text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}.route-caution-banner__title{font-size:.82rem;font-weight:700;line-height:1.25}.route-caution-banner__hint{font-size:11px;font-weight:600;color:#b45309}.route-caution-banner__chevron{flex:0 0 auto;color:#b45309;font-weight:700}.route-caution-banner__chips{display:flex;flex-wrap:wrap;gap:6px}.route-caution-banner__chip{margin:0;min-height:30px;padding:4px 10px;border-radius:999px;border:1px solid color-mix(in srgb,#f59e0b 35%,var(--border));background:var(--surface);color:#92400e;font-size:.72rem;font-weight:650;cursor:pointer}.map-marker-dot--caution-focus{width:28px;height:28px;font-size:13px;box-shadow:0 0 0 3px #f59e0b59}.route-fold--primary{margin:0 0 6px;padding:0 8px;border-radius:10px;border:1px solid var(--border);background:var(--surface)}.route-fold--primary>summary{padding:8px 2px;font-size:.84rem;font-weight:700}.route-extras-fold{margin:6px 0 0;border-radius:12px;background:color-mix(in srgb,var(--surface) 96%,transparent);border:1px dashed color-mix(in srgb,var(--border) 85%,var(--muted))}.route-extras-fold>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;list-style:none;padding:10px 12px;font-size:.8rem;font-weight:600;color:var(--muted)}.route-extras-fold>summary::-webkit-details-marker{display:none}.route-extras-fold__hints{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.route-extras-fold__chip{font-size:.72rem;font-weight:650;padding:2px 7px;border-radius:999px;background:color-mix(in srgb,#0f766e 12%,transparent);color:#0f766e}.route-extras-fold__chip--warn{background:color-mix(in srgb,#f59e0b 18%,transparent);color:#b45309}.route-extras-fold__meta{font-size:.75rem;font-weight:500;color:var(--muted)}.route-extras-fold[open]>summary{border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent);color:var(--text)}.route-extras-fold>*:not(summary){margin-left:10px;margin-right:10px}.route-extras-votes{margin:0 0 8px}.route-extras-votes .route-vote-row{margin:0;gap:6px}.route-extras-fold__tip{margin:8px 0;font-size:.78rem;line-height:1.4;color:var(--muted)}.route-extras-block{margin:0 0 8px}.route-extras-block__label{margin:0 0 4px;font-size:.78rem;font-weight:650;color:var(--muted)}.route-fold--nested{margin:0 0 8px;border:none;background:transparent;padding:0}.route-fold--nested>summary{padding:8px 0;font-size:.82rem}.results--home-detail .route-share-toggle--home{display:flex;margin:0 0 10px}.route-share-toggle--compact{display:inline-flex;align-items:flex-start;gap:8px;margin:0 0 8px;font-size:.85rem;color:var(--muted)}.home-map-canvas{position:relative;flex:1 1 0;min-height:0;width:100%}.home-map-boot{position:absolute;top:0;right:0;bottom:0;left:0;z-index:400;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,color-mix(in srgb,var(--surface) 88%,#94a3b8),color-mix(in srgb,var(--surface) 92%,#64748b))}.home-map-boot__label{margin:0;padding:10px 16px;border-radius:999px;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:var(--shadow-sm);font-size:14px;font-weight:600;color:var(--text)}.home-topbar{position:absolute;top:0;left:0;right:0;z-index:950;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;max-width:480px;margin:0 auto;min-height:calc(52px + var(--safe-top));padding:calc(10px + var(--safe-top)) 12px 10px;pointer-events:none}.home-topbar__search{flex:1;min-width:0}.home-map-page--origin-search{--home-map-top-clearance: calc(76px + var(--safe-top))}.origin-search-bar{position:relative;z-index:1;width:100%}.origin-search-bar--embedded{position:relative;top:auto;left:auto;right:auto;pointer-events:auto}.origin-search-bar:not(.origin-search-bar--embedded){position:absolute;top:calc(10px + var(--safe-top));left:12px;right:12px;z-index:520;pointer-events:none}.origin-search-bar:not(.origin-search-bar--embedded)>*{pointer-events:auto}.origin-search-bar__field{display:flex;align-items:center;gap:6px;min-height:40px;padding:0 8px 0 6px;border-radius:999px;background:color-mix(in srgb,var(--surface) 90%,transparent);border:1px solid color-mix(in srgb,var(--border) 55%,transparent);box-shadow:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.origin-search-bar__icon,.origin-search-bar__nav,.origin-search-bar__clear{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--muted);border:none;background:transparent;padding:4px;cursor:pointer}.origin-search-bar__nav{color:var(--text)}.origin-search-bar__clear{width:28px;height:28px;border-radius:999px;font-size:18px;line-height:1;color:var(--muted)}.origin-search-bar__input{flex:1;min-width:0;border:none!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:var(--text);font-size:15px;padding:10px 0!important;outline:none!important;-webkit-appearance:none;-moz-appearance:none;appearance:none}.origin-search-bar__input:focus{outline:none!important;border:none!important;box-shadow:none!important}.origin-search-bar__input::-webkit-search-decoration,.origin-search-bar__input::-webkit-search-cancel-button,.origin-search-bar__input::-webkit-search-results-button,.origin-search-bar__input::-webkit-search-results-decoration{display:none}.origin-search-bar__panel{margin-top:8px;padding:4px 0;border-radius:14px;background:color-mix(in srgb,var(--surface) 94%,transparent);border:1px solid color-mix(in srgb,var(--border) 50%,transparent);box-shadow:0 8px 24px #0f172a14;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);max-height:min(52vh,380px);max-width:100%;overflow-x:hidden;overflow-y:auto;box-sizing:border-box}.origin-search-bar__section{margin-top:4px;padding-top:4px;border-top:1px solid color-mix(in srgb,var(--border) 55%,transparent)}.origin-search-bar__section-title{margin:0;padding:8px 14px 4px;font-size:12px;font-weight:600;color:var(--muted)}.origin-search-bar__list{list-style:none;margin:0;padding:0}.origin-search-bar__item{display:flex;align-items:stretch;gap:0}.origin-search-bar__item .origin-search-bar__row{flex:1;min-width:0}.origin-search-bar__star{flex-shrink:0;width:44px;border:none;background:transparent;color:var(--muted);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.origin-search-bar__star.is-on{color:#ca8a04}.origin-search-bar__home-set{flex-shrink:0;width:40px;border:none;background:transparent;color:var(--muted);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.origin-search-bar__home-set:disabled{opacity:.45;cursor:default}.origin-search-bar__side-action{flex-shrink:0;align-self:center;margin-right:8px;padding:6px 8px}.origin-search-bar__default-actions{display:flex;flex-direction:column;gap:4px;min-width:0;max-width:100%}.origin-search-bar__row{width:100%;display:flex;align-items:flex-start;gap:10px;text-align:left;border:none;background:transparent;padding:10px 14px;cursor:pointer;color:var(--text)}.origin-search-bar__row:disabled{opacity:.55;cursor:default}.origin-search-bar__row.is-on,.origin-search-bar__row:active{background:color-mix(in srgb,var(--primary) 8%,transparent)}.origin-search-bar__row-icon{display:flex;color:var(--muted);margin-top:1px}.origin-search-bar__row-text{display:flex;flex-direction:column;gap:2px;min-width:0}.origin-search-bar__row-text strong{font-size:14px;font-weight:600}.origin-search-bar__row-text span{font-size:12px;color:var(--muted)}.origin-search-bar__coords{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:end;margin:0 12px 10px;max-width:100%;min-width:0;box-sizing:border-box}.origin-search-bar__coords label{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:12px;color:var(--muted);font-weight:600}.origin-search-bar__coords input{width:100%;max-width:100%;min-width:0;box-sizing:border-box;min-height:40px;font-size:14px}.origin-search-bar__coords-apply{grid-column:1 / -1;width:100%;min-height:40px;padding:0 12px;border:none;border-radius:10px;background:var(--primary);color:var(--primary-on);font-weight:600;cursor:pointer;box-sizing:border-box}.origin-search-bar__msg{margin:6px 14px 10px;font-size:12px}.origin-search-bar__empty{margin:0;padding:6px 14px 4px;font-size:12px;line-height:1.4;color:var(--muted)}.origin-search-bar__empty-block{padding-bottom:8px}.origin-search-bar__empty-actions{display:flex;flex-wrap:wrap;gap:8px 12px;padding:0 14px 8px}.origin-search-bar__more{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:4px 14px 10px;border-top:1px solid color-mix(in srgb,var(--border) 45%,transparent);margin-top:4px;box-sizing:border-box;max-width:100%;min-width:0}.origin-search-bar__text-action{display:inline-flex;align-items:center;min-height:36px;padding:0;border:none;background:transparent;color:var(--primary);font:inherit;font-size:13px;font-weight:600;text-decoration:none;cursor:pointer}.origin-search-bar__text-action.is-on{text-decoration:underline}a.origin-search-bar__row--link{text-decoration:none;color:inherit;box-sizing:border-box}.origin-action-chip{display:none}.origin-action-row{display:flex;align-items:center;gap:10px;min-width:0}.origin-selected-inline{flex:1;min-width:0;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field-group--bare,.start-location-picker--sheet{gap:6px}.home-map-canvas .route-map-wrap{margin-bottom:0;height:100%}.home-map-canvas .route-map-wrap,.home-map-canvas .route-map,.home-map-canvas .leaflet-container{height:100%!important;min-height:100%!important;border-radius:0;border:none}.home-map-page{--home-map-top-clearance: calc(76px + var(--safe-top))}.home-map-canvas .leaflet-top.leaflet-right{top:var(--home-map-top-clearance);right:12px;z-index:500}.home-map-canvas .leaflet-top.leaflet-right .leaflet-control{margin-top:0}.home-map-canvas .leaflet-control-zoom{margin-top:0;border:none!important;box-shadow:var(--shadow-sm, 0 1px 4px rgba(0, 0, 0, .18))}.home-map-page--generating .map-compact-attr{display:none}.map-compact-attr{position:absolute;top:10px;left:10px;z-index:550;display:flex;align-items:flex-start;gap:6px;max-width:min(72vw,300px);pointer-events:none}.map-compact-attr--bottom-left{top:auto;bottom:10px;left:10px;flex-direction:column-reverse;align-items:flex-start}.home-map-canvas .map-compact-attr{top:var(--home-map-top-clearance);left:12px}.map-compact-attr__toggle,.map-compact-attr__panel{pointer-events:auto}.map-compact-attr__toggle{flex-shrink:0;width:28px;height:28px;margin:0;padding:0;border:1px solid color-mix(in srgb,var(--border) 70%,transparent);border-radius:8px;background:color-mix(in srgb,var(--surface) 86%,transparent);box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .12));color:var(--text-muted, #64748b);font-size:12px;font-weight:700;line-height:1;cursor:pointer;opacity:.85}.map-compact-attr__toggle:hover,.map-compact-attr.is-open .map-compact-attr__toggle{opacity:1;color:var(--text)}.map-compact-attr__panel{min-width:0;margin-top:2px;padding:5px 8px;border-radius:8px;border:1px solid color-mix(in srgb,var(--border) 70%,transparent);background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .12));font-size:11px;line-height:1.3;color:var(--text-muted, #64748b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-compact-attr__panel a{color:inherit;text-decoration:underline;text-underline-offset:2px}.leaflet-control-attribution{pointer-events:none;-webkit-user-select:none;user-select:none}.home-topbar{position:absolute;top:0;left:0;right:0;z-index:950;display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:480px;margin:0 auto;min-height:calc(52px + var(--safe-top));padding:calc(10px + var(--safe-top)) 14px 10px;pointer-events:none}@media(max-width:480px){.home-map-page{--home-map-top-clearance: calc(80px + var(--safe-top))}.home-brand__name{font-size:1.05rem}}.home-topbar>*{pointer-events:auto}.home-brand__name{margin:0;font-family:var(--font-display);font-size:1.2rem;font-weight:800;letter-spacing:-.03em;color:var(--text);text-shadow:0 1px 0 rgba(255,255,255,.8)}.home-peek{display:flex;flex-direction:column;gap:10px;padding:0 2px 2px}.home-map-plan{display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:0 12px 8px;width:100%;box-sizing:border-box}.home-map-plan__row{display:flex;align-items:stretch;gap:6px;min-width:0}.home-map-plan__row--meta{align-items:stretch;gap:8px}.map-plan-seg{display:flex;align-items:stretch;box-sizing:border-box;height:34px;padding:2px;border-radius:10px;border:1px solid color-mix(in srgb,var(--border) 55%,transparent);background:color-mix(in srgb,var(--surface-muted, var(--surface)) 88%,transparent)}.map-plan-seg--block{width:100%}.map-plan-seg--distance{flex:1 1 0;min-width:0}.map-plan-seg__btn{flex:1 1 0;min-width:0;margin:0;padding:0 2px;border:none;border-radius:8px;background:transparent;color:var(--text-muted, #64748b);font-size:11.5px;font-weight:650;line-height:1.1;letter-spacing:-.03em;white-space:nowrap;overflow:hidden;text-overflow:clip;cursor:pointer}.map-plan-seg__btn.is-on{background:color-mix(in srgb,var(--primary) 14%,#fff);color:var(--primary)}.map-plan-time-toggle{display:inline-flex;align-items:center;justify-content:center;gap:4px;box-sizing:border-box;flex:0 0 64px;width:64px;height:34px;margin:0;padding:0 8px;border-radius:10px;border:1px solid color-mix(in srgb,var(--border) 55%,transparent);background:color-mix(in srgb,var(--surface-muted, var(--surface)) 88%,transparent);color:var(--text);font-size:12px;font-weight:700;line-height:1;cursor:pointer}.map-plan-time-toggle.is-day{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 40%,var(--border));background:color-mix(in srgb,var(--primary) 12%,var(--surface))}.map-plan-time-toggle.is-night{color:#334155;border-color:color-mix(in srgb,#64748b 45%,var(--border));background:color-mix(in srgb,#94a3b8 16%,var(--surface))}.map-plan-time-toggle__icon{display:inline-grid;place-items:center;flex:0 0 auto;opacity:.9}.map-plan-time-toggle__text{flex:0 0 auto}.map-plan-icon-btn{flex:0 0 34px;width:34px;height:34px;margin:0;padding:0;display:inline-grid;place-items:center;border-radius:10px;border:1px solid color-mix(in srgb,var(--border) 55%,transparent);background:color-mix(in srgb,var(--surface-muted, var(--surface)) 88%,transparent);color:var(--text-muted, #64748b);cursor:pointer}.map-plan-icon-btn.is-on{border-color:color-mix(in srgb,var(--primary) 45%,var(--border));color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,var(--surface))}.map-plan-cta{width:100%;margin:0;padding:0 16px;height:40px;border:none;border-radius:12px;background:var(--primary);color:var(--primary-on, #fff);font-size:14px;font-weight:700;letter-spacing:-.01em;line-height:1;cursor:pointer}.map-plan-cta:disabled{opacity:.65;cursor:not-allowed}.home-map-plan__cta-row{display:flex;align-items:stretch;gap:8px}.home-map-plan__cta-row .map-plan-cta{flex:1 1 auto;width:auto;min-width:0}.home-map-plan__back{flex:0 0 auto;height:40px;margin:0;padding:0 12px;border-radius:12px;border:1px solid color-mix(in srgb,var(--border) 70%,transparent);background:var(--surface);color:var(--text);font-size:13px;font-weight:650;letter-spacing:-.02em;line-height:1;white-space:nowrap;cursor:pointer}.home-map-plan__hint{margin:0;padding:8px 2px;font-size:11.5px;line-height:1.35;letter-spacing:-.02em;color:var(--muted)}.bottom-sheet--peek{touch-action:none}.bottom-sheet--peek .bottom-sheet__body{cursor:grab}.bottom-sheet--peek button,.bottom-sheet--peek a,.bottom-sheet--peek input{cursor:pointer;touch-action:manipulation}.bottom-sheet--plan.bottom-sheet--peek,.bottom-sheet--plan.bottom-sheet--peek.bottom-sheet--plan-bike,.bottom-sheet--plan.bottom-sheet--peek.bottom-sheet--plan-fail,.bottom-sheet--plan.bottom-sheet--peek.bottom-sheet--plan-fail.bottom-sheet--plan-bike,.bottom-sheet--plan.bottom-sheet--peek.bottom-sheet--plan-edit:has(.home-map-plan__hint),.bottom-sheet--plan.bottom-sheet--peek.bottom-sheet--plan-edit.bottom-sheet--plan-bike:has(.home-map-plan__hint){height:auto;max-height:min(58%,340px)}.home-map-plan__fail{margin:0;padding:0 2px;font-size:12px;line-height:1.35;letter-spacing:-.02em;color:var(--text);display:flex;flex-direction:column;gap:2px;max-height:calc(2.7em + 2px);overflow:hidden}.home-map-plan__fail-line{display:block;margin:0;word-break:keep-all;overflow-wrap:normal}.bottom-sheet--plan .bottom-sheet__body{overflow:hidden}.bottom-sheet--plan.bottom-sheet--half .bottom-sheet__body,.bottom-sheet--plan.bottom-sheet--full .bottom-sheet__body{overflow:auto}.bottom-sheet--plan .home-sheet-scroll--plan{display:flex;flex-direction:column;gap:8px;padding-bottom:4px}.bottom-sheet--plan.bottom-sheet--peek .home-sheet-scroll--plan{overflow-y:hidden;flex:0 0 auto;padding-bottom:10px}.bottom-sheet--plan .home-sheet-scroll--plan .nearby-recommendations{padding-inline:12px}.nearby-strip{display:flex;flex-direction:column;gap:6px;min-width:0}.nearby-strip__label,.nearby-strip__hint{margin:0;padding:0 4px;font-size:11px;font-weight:600;color:var(--text-muted)}.nearby-strip__scroller{display:flex;gap:8px;overflow-x:auto;padding:0 2px 2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.nearby-strip__scroller::-webkit-scrollbar{display:none}.nearby-strip__card{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:132px;max-width:160px;margin:0;padding:8px 10px;border-radius:12px;border:1px solid color-mix(in srgb,var(--border) 80%,transparent);background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:var(--shadow-sm, 0 1px 4px rgba(0, 0, 0, .08));text-align:left;cursor:pointer}.nearby-strip__card:disabled{opacity:.65}.nearby-strip__title{display:flex;flex-wrap:wrap;align-items:center;gap:4px 0;font-size:12px;font-weight:700;color:var(--text)}.nearby-strip__meta{font-size:11px;color:var(--text-muted)}.home-peek__chips{display:flex;flex-wrap:wrap;gap:6px;min-height:28px;align-items:center}.home-peek__cta{width:100%;min-height:48px}.results-repick-row{margin-bottom:12px}.results-repick-row .btn-secondary{width:100%}.results-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:nowrap;margin-bottom:8px}.results-header .results-title{margin:0;flex:1 1 auto;min-width:0}.results-repick-btn{flex:0 0 auto;min-height:36px;padding:6px 10px;font-size:.8rem;white-space:nowrap}.route-form-fold,.route-fold{border:1px solid var(--border);border-radius:10px;background:var(--surface-2, rgba(0, 0, 0, .02));padding:0 12px}.route-form-fold{margin-bottom:10px}.route-form-fold>summary,.route-fold>summary{cursor:pointer;list-style:none;padding:10px 0;font-size:.9rem;font-weight:600;color:var(--text)}.route-form-fold>summary::-webkit-details-marker,.route-fold>summary::-webkit-details-marker{display:none}.route-form-fold>summary:after,.route-fold>summary:after{content:" ▼";font-size:.75rem;color:var(--muted);font-weight:500}.route-form-fold[open]>summary:after,.route-fold[open]>summary:after{content:" ▲"}.route-fold+.route-fold{margin-top:8px}.route-fold__list{margin:0 0 10px;padding-left:18px;font-size:.88rem}.route-card-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 6px}.route-card-toolbar .share-route-wrap{flex:1 1 auto;min-width:96px}.route-card-toolbar .share-route-wrap .btn-share,.route-card-toolbar .share-route-wrap button{width:100%}.route-card-toolbar .route-vote-row{flex:1 1 100%;margin:0}.validation-box--nested{margin:0 0 10px;border:none;background:transparent;padding:0 0 4px}.poi-list--compact{margin:0 0 4px}.feedback-form--compact{margin-top:0;padding-top:0;border-top:none;gap:8px}.feedback-form--mobile{gap:8px}.feedback-mobile__prompt{margin:0;font-size:.8rem;font-weight:700;color:var(--text)}.feedback-sentiment{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.feedback-sentiment__btn{margin:0;min-height:40px;padding:8px 6px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font-size:.8rem;font-weight:650;cursor:pointer}.feedback-sentiment__btn.is-on{border-color:color-mix(in srgb,#0f766e 45%,var(--border));background:color-mix(in srgb,#0f766e 12%,var(--surface));color:#0f766e}.feedback-mobile__footer{display:flex;align-items:center;gap:8px}.feedback-mobile__more{flex:0 0 auto;max-width:42%;margin:0;padding:0;border:none;background:transparent;color:var(--muted);font-size:12px;font-weight:650;text-align:left;text-decoration:underline;text-underline-offset:2px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feedback-type-panel{display:flex;flex-direction:column;gap:6px;padding:8px 0 2px}.feedback-type-panel__label{margin:0;font-size:12px;font-weight:650;color:var(--muted)}.feedback-compact-input{width:100%;min-height:40px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:14px;color:var(--text)}.feedback-compact-submit{border:none;background:var(--primary);color:var(--primary-on);font-weight:700;cursor:pointer}.feedback-compact-submit:disabled{opacity:.65;cursor:default}.feedback-compact-select{min-height:36px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-size:13px;color:var(--text)}.feedback-compact-submit--block{flex:1 1 auto;min-height:40px;padding:8px 12px;border-radius:10px;font-size:.85rem}.feedback-field .type-chip-grid{margin-top:6px}.route-react-panel{display:flex;flex-direction:column;gap:10px;padding:0 0 8px}.route-react-panel__hint,.report-section__hint{margin:0;font-size:.78rem;line-height:1.35;color:var(--muted, #64748b)}.route-react-divider{height:1px;background:color-mix(in srgb,var(--border) 85%,transparent)}.route-react-report{width:100%;margin:0;min-height:40px;padding:8px 12px;border:1px dashed color-mix(in srgb,#d97706 45%,var(--border));border-radius:10px;background:color-mix(in srgb,#f59e0b 8%,var(--surface));color:#b45309;font-size:.82rem;font-weight:650;text-align:left;cursor:pointer}.feedback-form-row{display:flex;gap:10px}.feedback-form-row .feedback-field{flex:1}.route-form--sheet{background:transparent;border:none;padding:4px 0 0;box-shadow:none;gap:14px}.route-form--sheet .field-group{gap:6px}.route-form--sheet .chip-row{display:flex;flex-wrap:nowrap;gap:6px;width:100%}.route-form--sheet .chip{flex:1 1 0;min-width:0;text-align:center;padding:10px 6px;border-radius:10px;font-size:13px;white-space:nowrap}.route-form--sheet .start-location-picker{gap:6px}.route-form--sheet .field-group--bare .field-label{font-size:13px;font-weight:600;color:var(--muted)}.route-form--sheet .chip{flex:1 1 0;min-width:0;text-align:center;padding:10px 6px;border-radius:999px;font-size:13px;white-space:nowrap}.route-form--sheet .btn-advanced-toggle{margin-top:0;font-size:12px;min-height:36px;padding:6px 8px}.report-hub-page .report-hub__card{margin-top:12px}.report-hub-tabs{display:flex;gap:6px;margin-bottom:10px}.report-hub-tabs__btn{flex:1;font:inherit;font-size:14px;font-weight:600;line-height:1.2;min-height:40px;padding:8px 12px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer}.report-hub-tabs__btn.is-on{border-color:var(--primary);color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,var(--surface))}.report-hub-map-wrap{position:relative;margin-bottom:12px}.report-hub-map-wrap--compact .report-hub-map{height:min(28vh,180px)}.report-hub-map-frame{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--border)}.report-hub-map{height:min(36vh,240px);width:100%;border-radius:0;overflow:hidden;border:none}.report-hub-map-locate{position:absolute;right:10px;bottom:10px;z-index:1000;width:44px;height:44px;min-width:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;box-shadow:0 2px 10px #0f172a2e;pointer-events:auto;-webkit-tap-highlight-color:transparent}.report-hub-map-locate.is-busy,.report-hub-map-locate:disabled{opacity:.65}.report-hub-map-meta{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-top:6px;min-width:0}.report-hub-map-hint{margin:0;flex:1 1 auto;min-width:0;font-size:12px;line-height:1.4;color:var(--muted)}.report-hub-map-attr{flex:0 0 auto;font-size:11px;line-height:1.4;color:var(--muted);text-decoration:none;opacity:.85;white-space:nowrap}.report-hub-map-attr:hover{opacity:1;text-decoration:underline;text-underline-offset:2px}.report-hub-geo-error{margin:0 0 10px}.report-hub-panel{display:flex;flex-direction:column;gap:8px}.report-hub-panel__row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.report-hub-more{margin-top:4px;padding-top:12px;border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.report-hub-more__link{display:flex;flex-direction:column;gap:2px;padding:12px 14px;min-height:44px;box-sizing:border-box;border-radius:12px;border:1px solid var(--border);background:var(--surface);text-decoration:none;color:inherit;min-width:0;justify-content:center}.report-hub-more__link strong{font-size:14px;font-weight:700;color:var(--text)}.report-hub-more__link span{font-size:12px;color:var(--muted);line-height:1.35}.report-hub-secondary-links{display:flex;flex-direction:column;gap:6px;margin-top:2px}.report-hub-secondary-links__item{font-size:13px;font-weight:600;color:var(--primary);text-decoration:none;min-height:40px;display:inline-flex;align-items:center}.report-hub-secondary-links__item:active{opacity:.75}.report-hub-panel__link{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.road-report-quick{display:flex;flex-direction:column;gap:8px}.road-report-quick__label{margin:0;font-size:14px;font-weight:600}.road-report-quick__memo{display:flex;flex-direction:column;gap:8px}.road-report-quick__memo-field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:650;color:var(--muted)}.road-report-quick__memo-field textarea{width:100%;min-width:0;box-sizing:border-box;min-height:72px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text);font:inherit;font-size:14px;resize:vertical}.road-report-quick__resolve{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.road-report-quick__resolve--focus{margin-top:8px;padding:12px;border-radius:12px;border:1px solid color-mix(in srgb,var(--primary) 35%,var(--border));background:color-mix(in srgb,var(--primary) 6%,var(--surface));border-top:1px solid color-mix(in srgb,var(--primary) 35%,var(--border))}.road-report-quick__resolve-label{margin:0 0 8px;font-size:13px;font-weight:600}.road-report-quick__resolve-hint{margin:8px 0 0;font-size:12px}.type-chip--resolve{border-color:color-mix(in srgb,var(--primary) 35%,var(--border));color:var(--primary);background:color-mix(in srgb,var(--primary) 6%,var(--surface))}.my-report-row{width:100%;text-align:left;font:inherit;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);cursor:pointer}.my-report-row.is-selected{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 6%,var(--surface))}.my-report-row:disabled{opacity:.55;cursor:not-allowed}.my-report-row__hint{color:var(--muted);margin:4px 0 2px;font-size:12px;line-height:1.35}.my-reports__list{display:flex;flex-direction:column;gap:8px;list-style:none;padding:0;margin:0}.my-reports__list .history-item-head,.my-reports__list .history-meta,.my-reports__list .history-date{margin:0}.my-report-detail{margin-bottom:10px;padding:12px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2, var(--surface))}.my-report-detail__head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.my-report-detail__head strong{flex:1;min-width:0;font-size:15px}.my-report-detail__impact{margin:0 0 4px;font-size:13px;line-height:1.4;color:var(--text)}.my-report-detail__more{margin-top:4px;margin-bottom:8px}.my-report-detail__desc{margin:0 0 8px;font-size:13px;color:var(--muted)}.my-report-detail__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:stretch;margin-top:4px}.my-report-detail__actions .btn-primary,.my-report-detail__actions .btn-secondary{width:100%;min-width:0;min-height:40px;margin:0;padding:8px 10px;font-size:13px;font-weight:600;align-self:stretch;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;text-decoration:none}.my-report-detail__actions>:last-child:nth-child(odd){grid-column:1 / -1}.my-reports{margin-top:8px}.my-reports__head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.my-reports__title{flex:1;margin:0;font-size:1.05rem;font-family:var(--font-display)}.my-reports__filters{display:flex;align-items:center;gap:4px}.my-reports__filter{font:inherit;font-size:13px;line-height:1.2;display:inline-flex;align-items:center;min-height:0;padding:6px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer}.my-reports__filter.is-on{border-color:var(--primary);color:var(--primary);font-weight:700}.report-hub__card{display:flex;flex-direction:column;gap:6px;padding:18px 16px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);text-decoration:none;color:var(--text);min-height:72px;transition:border-color .15s ease,background .15s ease}.report-hub__card:active{background:var(--surface-2);border-color:var(--primary)}.report-hub__card strong{font-size:1.05rem;font-family:var(--font-display)}.report-hub__card span{font-size:13px;color:var(--muted)}.report-hub__link{color:var(--primary-hover);font-size:14px;text-decoration:none;padding:8px 0;min-height:44px;display:inline-flex;align-items:center}.page-back-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 12px;min-height:44px}.page-back-row__dest{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.page-back-link{color:var(--muted);text-decoration:none;font-size:14px;font-weight:600;min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:4px;background:none;border:none;padding:8px 4px;cursor:pointer;font-family:inherit;line-height:1.2;border-radius:999px;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.page-back-link__chevron{font-size:15px;line-height:1}.page-back-link--back{color:var(--text);padding:8px 14px 8px 10px;background:var(--surface);border:1px solid var(--border);box-shadow:0 1px 2px #141c240a}.page-back-link--chip,.page-back-link--secondary{min-width:52px;padding:8px 14px;color:var(--muted);background:var(--surface-2);border:1px solid var(--border)}.page-back-link--chip[aria-current=page]{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 35%,var(--border));background:color-mix(in srgb,var(--primary) 10%,var(--surface))}.page-back-link:hover{color:var(--text)}.page-back-link--back:hover,.page-back-link--chip:hover,.page-back-link--secondary:hover{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 40%,var(--border));background:color-mix(in srgb,var(--primary) 8%,var(--surface))}.page-back-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.page-back-link:active{transform:translateY(.5px)}.error-box__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.history-item-main{display:flex;flex-direction:column;gap:8px;color:inherit;text-decoration:none;min-width:0}.history-item-chrome{min-width:0;max-width:100%}.history-item-row{display:grid;grid-template-columns:112px minmax(0,1fr);gap:10px;align-items:center;min-width:0}.history-item-body{min-width:0}.history-item-region{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 8px;margin:0;font-size:14px;font-weight:700;color:var(--accent, #2f6f4e);line-height:1.3;min-width:0;max-width:100%;box-sizing:border-box}.history-item-region__left{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0;flex:1 1 0}.history-item-region__name{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-item-region .history-status-badge{flex:0 0 auto}.history-item-region .history-status-badge--bike{flex:0 0 auto;margin-left:auto;max-width:100%;overflow:visible;white-space:nowrap}.history-item-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:0}.history-item-actions .btn-favorite,.history-item-actions .btn-secondary,.history-item-actions .route-card-toolbar__btn{min-height:36px;padding:6px 10px;font-size:13px}.history-bulk-bar{display:flex;flex-direction:column;gap:8px;margin:6px 0 12px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--border, #cfc8bf) 80%,transparent);background:color-mix(in srgb,var(--surface, #fff) 88%,var(--accent, #2f6f4e) 12%);border-radius:var(--radius)}.history-bulk-bar__meta{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.history-bulk-bar__select-all{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;min-width:0}.history-bulk-bar__select-all input{width:16px;height:16px;flex-shrink:0}.history-bulk-bar__count{font-size:12px;color:var(--muted);flex-shrink:0}.history-item--selected{outline:2px solid color-mix(in srgb,var(--accent, #2f6f4e) 70%,transparent);outline-offset:2px}.history-item-check{position:absolute;top:10px;left:10px;z-index:2;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;background:color-mix(in srgb,#fff 90%,transparent);box-shadow:0 1px 3px #0000001f}.history-item-check input{width:18px;height:18px}.history-favorite-badge{flex:0 0 auto;font-size:13px;color:var(--accent, #2f6f4e);line-height:1}.history-status-badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;font-size:11px;font-weight:700;line-height:1.2}.history-status-badge--active{background:color-mix(in srgb,#0f766e 14%,var(--surface));color:#0f766e}.history-item--active{border-color:color-mix(in srgb,#0f766e 35%,var(--border))}.favorite-save-dialog{position:fixed;top:var(--vv-top, 0px);left:0;right:0;height:var(--app-height, 100svh);max-height:var(--app-height, 100svh);z-index:1200;display:flex;align-items:flex-end;justify-content:center;padding:16px 16px calc(12px + var(--dock-bottom));box-sizing:border-box;pointer-events:none}.favorite-save-dialog__scrim{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;padding:0;border:none;background:#0f172a59;cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent}.favorite-save-dialog__card{position:relative;z-index:1;width:min(100%,420px);max-width:100%;max-height:min(72dvh,calc(var(--app-height, 100svh) - var(--dock-bottom) - 24px));padding:10px 16px 16px;border-radius:16px;background:var(--surface);border:1px solid var(--border);box-shadow:0 12px 40px #0f172a2e;box-sizing:border-box;display:flex;flex-direction:column;gap:0;overflow:auto;overscroll-behavior:contain;pointer-events:auto;transition:transform .18s ease}.favorite-save-dialog__drag{display:flex;flex-direction:column;align-items:stretch;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.favorite-save-dialog__drag .sheet-drag-handle{padding-bottom:8px}.favorite-save-dialog__title{margin:0 0 6px;font-size:1.05rem;font-weight:750;flex-shrink:0}.favorite-save-dialog__hint{margin:0 0 12px;font-size:13px;color:var(--muted);line-height:1.4;flex-shrink:0}.favorite-save-dialog__field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;font-size:12px;font-weight:650;color:var(--muted);min-width:0}.favorite-save-dialog__field input{width:100%;max-width:100%;min-width:0;box-sizing:border-box;min-height:44px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text);font-size:15px;font-family:inherit}.favorite-save-dialog__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;flex-shrink:0;margin-top:auto;align-items:stretch}.favorite-save-dialog__actions .btn-primary,.favorite-save-dialog__actions .btn-secondary{width:100%;min-width:0;margin:0;align-self:stretch;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 12px;font-size:14px;font-weight:600;line-height:1.3;border-radius:10px;box-sizing:border-box}.route-keep-prompt{display:flex;flex-direction:column;gap:8px;margin:8px 0 10px;padding:12px 14px 14px;border-radius:14px;border:1px solid color-mix(in srgb,var(--primary) 20%,var(--border));background:color-mix(in srgb,var(--primary) 6%,var(--surface));box-shadow:var(--shadow-sm)}.route-keep-prompt__status{margin:0;font-size:.78rem;font-weight:600;line-height:1.4;color:var(--ok)}.route-keep-prompt__text{margin:0;font-size:.9rem;font-weight:650;color:var(--text);line-height:1.4}.route-keep-prompt__actions{display:flex;gap:8px;margin-top:2px}.route-keep-prompt__btn{flex:1 1 0;min-width:0;min-height:40px;padding:8px 12px;border-radius:10px;font-size:.84rem;font-weight:650;cursor:pointer}.route-keep-prompt__btn:disabled{opacity:.6;cursor:default}.route-keep-prompt__btn--primary{background:var(--primary);color:var(--primary-on);border:none}.route-keep-prompt__btn--ghost{background:var(--surface);color:var(--text);border:1px solid var(--border)}.history-item.selectMode,.history-item:has(.history-item-check) .history-item-main{padding-left:22px}@media(max-width:420px){.history-item-row{grid-template-columns:88px minmax(0,1fr);gap:8px}.history-minimap{width:88px}.history-item-actions .btn-favorite{flex:1 1 auto}}.route-share-toggle__hint{display:block;font-size:.75rem;font-weight:400;color:var(--muted);line-height:1.4}.route-nav-blocked-hint{margin:6px 0 0}.nav-handoff-confirm{background:color-mix(in srgb,var(--surface-2, #f3f4f5) 88%,transparent);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin:8px 0 12px;font-size:13px;box-sizing:border-box;max-width:100%;min-width:0}.nav-handoff-confirm--modal{margin:0;background:var(--surface, #fff);border:none;border-radius:0;padding:0 16px 12px;font-size:14px}.nav-handoff-confirm__drag{margin:0 -16px 4px;width:calc(100% + 32px)}.nav-handoff-confirm__header{display:flex;align-items:center;margin-bottom:6px}.nav-handoff-confirm__title{font-weight:700;font-size:14px;line-height:1.35;color:var(--text)}.nav-handoff-confirm--modal .nav-handoff-confirm__title{font-size:1.05rem}.nav-handoff-confirm__body{margin:0;line-height:1.45;color:var(--text-secondary, #475569)}.nav-handoff-confirm__lead{margin:0;line-height:1.45;font-size:13px;color:var(--text-secondary, #475569)}.nav-handoff-confirm__callout{margin:10px 0 0;padding:10px 12px;border-radius:10px;border-left:3px solid var(--primary, #0f766e);background:color-mix(in srgb,var(--primary, #0f766e) 12%,var(--surface, #fff));font-size:14px;font-weight:600;line-height:1.4;color:var(--text);box-sizing:border-box;max-width:100%}.nav-handoff-confirm__highlight{font-weight:800;color:var(--primary, #0f766e)}.nav-handoff-confirm__next{margin:8px 0 0;line-height:1.4;font-size:13px;color:var(--text-secondary, #475569)}.nav-handoff-confirm__recheck{margin:8px 0 0;line-height:1.4;font-size:12px;color:var(--text-secondary, #64748b)}.nav-handoff-confirm__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:stretch;margin-top:12px}.nav-handoff-confirm__actions .btn-primary,.nav-handoff-confirm__actions .btn-secondary{width:100%;min-width:0;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;align-self:stretch;min-height:44px;padding:10px 12px;font-size:14px;font-weight:600;line-height:1.3;border-radius:10px}.nav-handoff-confirm-layer{position:fixed;top:var(--vv-top, 0px);left:0;right:0;height:var(--app-height, 100svh);max-height:var(--app-height, 100svh);z-index:1300;display:flex;flex-direction:column;justify-content:flex-end;max-width:100%;overflow-x:hidden;pointer-events:auto;box-sizing:border-box;padding-bottom:var(--dock-bottom)}.nav-handoff-confirm-layer__scrim{position:absolute;top:0;right:0;bottom:0;left:0;border:none;padding:0;margin:0;background:#0f172073;cursor:pointer}.nav-handoff-confirm-layer__sheet{position:relative;z-index:1;width:100%;max-width:480px;margin:0 auto;min-width:0;box-sizing:border-box;background:var(--surface, #fff);border-radius:16px 16px 0 0;box-shadow:0 -8px 28px #0f17202e;padding-bottom:16px;max-height:calc(var(--app-height, 100svh) - var(--dock-bottom) - var(--safe-top, 0px) - 24px);overflow-x:hidden;overflow-y:auto}.route-summary-carousel__nav-confirm{margin:0 12px 8px;pointer-events:auto}.route-generation-progress__eta{margin:4px 0 8px}.route-generation-progress__cancel{margin-top:10px;width:100%}.history-anon-hint{margin-bottom:12px}.nearby-recommendations__preview{margin:6px 0 0}.history-filter-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.page--history .app-header--history{margin-bottom:8px}.page--history .app-header--history h1{margin:4px 0 0;font-size:20px}.history-toolbar{margin-bottom:10px;padding:0;border:none;border-radius:0;background:transparent;display:flex;flex-direction:column;gap:8px;max-width:100%;box-sizing:border-box}.history-toolbar__top{display:flex;align-items:stretch;gap:6px;min-width:0}.history-segmented{display:flex;flex:1 1 auto;min-width:0;padding:2px;border-radius:10px;background:color-mix(in srgb,var(--surface-2) 92%,var(--border));border:1px solid var(--border)}.history-segmented__btn{flex:1 1 0;min-width:0;min-height:32px;padding:0 8px;border:none;border-radius:8px;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:650;cursor:pointer}.history-segmented__btn--active{background:var(--surface);color:var(--primary);box-shadow:0 1px 2px #0f172a14}.history-toolbar__select{flex:0 0 auto;min-width:48px;min-height:32px;padding:0 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.history-toolbar__select--active{border-color:var(--primary);color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,var(--surface))}.history-toolbar__select:disabled{opacity:.45;cursor:not-allowed}.history-toolbar__details{border:none;padding:0}.history-toolbar__details--active .history-toolbar__summary-label{color:var(--primary)}.history-toolbar__summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:28px;padding:0;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.history-toolbar__summary::-webkit-details-marker{display:none}.history-toolbar__summary-main{display:inline-flex;align-items:center;gap:6px;min-width:0}.history-toolbar__summary-main:before{content:"";width:6px;height:6px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(-45deg);transition:transform .15s ease;flex-shrink:0}.history-toolbar__details[open] .history-toolbar__summary-main:before{transform:rotate(45deg);margin-top:-2px}.history-toolbar__summary-label{font-size:12px;font-weight:650;color:var(--text)}.history-toolbar__summary-hint{font-size:12px;color:var(--muted)}.history-toolbar__summary-tags{display:flex;flex-wrap:wrap;gap:4px;min-width:0}.history-toolbar__summary-tag{display:inline-flex;align-items:center;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:600;color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--primary) 22%,var(--border))}.history-toolbar__summary-end{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.history-toolbar__filters{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:var(--surface)}.history-toolbar__filter-row{display:grid;grid-template-columns:36px minmax(0,1fr);gap:8px;align-items:center}.history-toolbar__filter-row--region{grid-template-columns:36px minmax(0,1fr)}.history-toolbar__filter-label{font-size:12px;font-weight:650;color:var(--muted)}.history-toolbar__chip-row{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.history-filter-chip{min-height:30px;padding:4px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);color:var(--text);font:inherit;font-size:12px;font-weight:600;cursor:pointer}.history-filter-chip--active{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,var(--surface));color:var(--primary)}.history-toolbar__region-select{width:100%;min-width:0;min-height:34px;box-sizing:border-box;padding:6px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text);font:inherit;font-size:13px}.history-toolbar__count{margin:0;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.history-toolbar__reset{flex:0 0 auto;border:none;background:transparent;color:var(--accent, #2f6f4e);font:inherit;font-size:12px;font-weight:650;padding:0;cursor:pointer}.history-retention-hint{margin:16px 0 0;padding:10px 12px;border-radius:10px;font-size:12px;line-height:1.45;color:var(--muted);background:color-mix(in srgb,var(--surface-2, #f5f3ef) 88%,var(--accent, #2f6f4e) 12%);border:1px solid color-mix(in srgb,var(--border, #cfc8bf) 70%,transparent)}.history-loading-hint{margin-bottom:8px}.history-list--skeleton{pointer-events:none}.history-item--skeleton{border-color:color-mix(in srgb,var(--border) 65%,transparent)}.history-skeleton-minimap{width:112px;height:72px;border-radius:8px;background:linear-gradient(90deg,color-mix(in srgb,var(--surface-2, #eee) 80%,transparent),color-mix(in srgb,var(--border, #ddd) 40%,transparent),color-mix(in srgb,var(--surface-2, #eee) 80%,transparent));background-size:200% 100%;animation:history-skeleton-shimmer 1.4s ease-in-out infinite}.history-skeleton-line{height:12px;border-radius:6px;margin-bottom:8px;background:linear-gradient(90deg,color-mix(in srgb,var(--surface-2, #eee) 80%,transparent),color-mix(in srgb,var(--border, #ddd) 40%,transparent),color-mix(in srgb,var(--surface-2, #eee) 80%,transparent));background-size:200% 100%;animation:history-skeleton-shimmer 1.4s ease-in-out infinite}.history-skeleton-line--region{width:42%;height:14px}.history-skeleton-line--title{width:78%;height:16px}.history-skeleton-line--meta{width:92%;margin-bottom:0}.history-skeleton-actions{display:flex;flex-wrap:wrap;gap:6px}.history-skeleton-pill{flex:1 1 72px;min-width:72px;max-width:120px;height:36px;border-radius:8px;background:linear-gradient(90deg,color-mix(in srgb,var(--surface-2, #eee) 80%,transparent),color-mix(in srgb,var(--border, #ddd) 40%,transparent),color-mix(in srgb,var(--surface-2, #eee) 80%,transparent));background-size:200% 100%;animation:history-skeleton-shimmer 1.4s ease-in-out infinite}@keyframes history-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.history-item--favorite{border-color:color-mix(in srgb,var(--accent, #2f6f4e) 28%,var(--border));background:color-mix(in srgb,var(--surface) 92%,var(--accent, #2f6f4e) 8%)}.history-load-more{display:flex;justify-content:center;margin-top:12px}.history-load-more .btn-secondary{width:100%;min-height:44px}.confirm-bottom-sheet{position:fixed;top:var(--vv-top, 0px);left:0;right:0;height:var(--app-height, 100svh);max-height:var(--app-height, 100svh);z-index:1200;display:flex;align-items:flex-end;justify-content:center;padding:16px 16px calc(12px + var(--dock-bottom));box-sizing:border-box;pointer-events:none}.confirm-bottom-sheet__scrim{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;padding:0;border:none;background:#0f172a59;cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent}.confirm-bottom-sheet__card{position:relative;z-index:1;width:min(100%,420px);max-width:100%;padding:10px 16px 16px;border-radius:16px;background:var(--surface);border:1px solid var(--border);box-shadow:0 12px 40px #0f172a2e;box-sizing:border-box;display:flex;flex-direction:column;gap:0;pointer-events:auto;transition:transform .18s ease}.confirm-bottom-sheet__drag{display:flex;flex-direction:column;align-items:stretch;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.confirm-bottom-sheet__drag .sheet-drag-handle{padding-bottom:8px}.confirm-bottom-sheet__title{margin:0 0 6px;font-size:1.05rem;font-weight:750}.confirm-bottom-sheet__message{margin:0 0 14px;font-size:14px;line-height:1.45;color:var(--text)}.confirm-bottom-sheet__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:stretch}.confirm-bottom-sheet__actions .btn-primary,.confirm-bottom-sheet__actions .btn-secondary{width:100%;min-width:0;margin:0;align-self:stretch;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 12px;font-size:14px;font-weight:600;line-height:1.3;border-radius:10px;box-sizing:border-box}.confirm-bottom-sheet__confirm--destructive{background:#b91c1c;border-color:#b91c1c;color:#fff}.auth-prompt-sheet{position:fixed;top:var(--vv-top, 0px);left:0;right:0;height:var(--app-height, 100svh);max-height:var(--app-height, 100svh);z-index:1400;display:flex;align-items:flex-end;justify-content:center;padding:16px 16px calc(12px + var(--dock-bottom));box-sizing:border-box;pointer-events:none}.auth-prompt-sheet__scrim{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;padding:0;border:none;background:#0f172a59;cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent}.auth-prompt-sheet__card{position:relative;z-index:1;width:min(100%,420px);max-width:100%;padding:10px 16px 16px;border-radius:16px;background:var(--surface);border:1px solid var(--border);box-shadow:0 12px 40px #0f172a2e;box-sizing:border-box;display:flex;flex-direction:column;gap:0;pointer-events:auto;transition:transform .18s ease}.auth-prompt-sheet__drag{display:flex;flex-direction:column;align-items:stretch;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.auth-prompt-sheet__drag .sheet-drag-handle{padding-bottom:8px}.auth-prompt-sheet__title{margin:0 0 6px;font-size:1.05rem;font-weight:750}.auth-prompt-sheet__message{margin:0 0 14px;font-size:14px;line-height:1.45;color:var(--text)}.auth-prompt-sheet__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:stretch}.auth-prompt-sheet__actions .btn-primary,.auth-prompt-sheet__actions .btn-secondary{width:100%;min-width:0;margin:0;align-self:stretch;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 12px;font-size:14px;font-weight:600;line-height:1.3;border-radius:10px;box-sizing:border-box}.auth-prompt-sheet__later{margin:10px 0 0;padding:8px;border:none;background:transparent;color:var(--muted, #64748b);font:inherit;font-size:14px;font-weight:500;cursor:pointer;align-self:center}.guest-preview-banner{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--accent, #2563eb) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--accent, #2563eb) 28%,var(--border));box-sizing:border-box;max-width:100%;min-width:0}.guest-preview-banner__text{flex:1 1 auto;min-width:0;margin:0;font-size:13px;line-height:1.4;color:var(--text)}.guest-preview-banner__cta{flex:0 0 auto;margin:0;padding:8px 12px;min-height:36px;border-radius:10px;border:none;background:var(--accent, #2563eb);color:#fff;font:inherit;font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.confirm-bottom-sheet__confirm--destructive:hover:not(:disabled){background:#991b1b;border-color:#991b1b}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.history-search{margin-bottom:0}.history-search--compact .history-search__input{min-height:40px;padding:8px 36px 8px 34px;font-size:14px;border-radius:10px}.history-search--compact .history-search__icon{left:10px}.history-search--compact .history-search__clear{width:26px;height:26px;right:6px}.history-search__field{position:relative;display:block}.history-search__icon{position:absolute;top:50%;left:12px;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;color:var(--muted);pointer-events:none}.history-search__input{width:100%;min-width:0;box-sizing:border-box;min-height:44px;padding:10px 40px 10px 38px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);color:var(--text);font-size:15px;font-family:inherit}.history-search__input::-webkit-search-decoration,.history-search__input::-webkit-search-cancel-button,.history-search__input::-webkit-search-results-button,.history-search__input::-webkit-search-results-decoration{display:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.history-search__clear{position:absolute;top:50%;right:8px;transform:translateY(-50%);width:28px;height:28px;border:none;border-radius:999px;background:color-mix(in srgb,var(--muted) 14%,transparent);color:var(--muted);font-size:18px;line-height:1;cursor:pointer}.history-search__meta{margin:6px 2px 0;font-size:12px;color:var(--muted)}.history-secondary-filters{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.history-secondary-filters__group{display:flex;flex-wrap:wrap;gap:6px}.ui-chip--compact{min-height:32px;padding:5px 10px;font-size:12px}.history-region-filter select{width:100%;min-height:40px;box-sizing:border-box;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text);font-size:14px;font-family:inherit}.history-filter-reset{align-self:flex-start;border:none;background:transparent;color:var(--accent, #2f6f4e);font-size:13px;font-weight:650;padding:4px 0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.history-date-group+.history-date-group{margin-top:14px}.history-date-group__title{margin:0 0 8px;font-size:13px;font-weight:750;color:var(--muted)}.history-status-badge--pending{background:color-mix(in srgb,#2563eb 12%,var(--surface));color:#2563eb}.history-status-badge--warn{background:color-mix(in srgb,#d97706 14%,var(--surface));color:#b45309}.history-status-badge--fail{background:color-mix(in srgb,#dc2626 12%,var(--surface));color:#b91c1c}.history-swipe{position:relative;overflow:hidden;border-radius:var(--radius)}.history-swipe__panel{position:relative;z-index:1;touch-action:pan-y;transition:transform .16s ease}.history-swipe__actions{position:absolute;top:0;bottom:0;display:flex;align-items:stretch}.history-swipe__actions--start{left:0;width:88px}.history-swipe__actions--end{right:0;width:88px}.history-swipe__action{width:100%;min-height:48px;border:none;font-size:13px;font-weight:700;cursor:pointer}.history-swipe__action--favorite{background:color-mix(in srgb,var(--accent, #2f6f4e) 88%,#fff);color:#fff}.history-swipe__action--delete{background:#b91c1c;color:#fff}.history-bulk-bar__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;align-items:stretch}.history-bulk-bar__actions .btn-primary,.history-bulk-bar__actions .btn-secondary{width:100%;min-width:0;min-height:36px;margin:0;padding:6px 10px;font-size:13px;font-weight:600;line-height:1.25;align-self:stretch;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border-radius:8px}@media(min-width:420px){.history-bulk-bar{flex-direction:row;align-items:center;gap:10px}.history-bulk-bar__meta{flex:1 1 auto;justify-content:flex-start;gap:10px}.history-bulk-bar__count{margin-left:auto}.history-bulk-bar__actions{flex:0 0 auto;width:min(100%,200px)}}.error-box__actions--grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:stretch}.error-box__actions--grid .btn-primary,.error-box__actions--grid .btn-secondary{width:100%;min-width:0;min-height:44px;margin:0;align-self:stretch;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}.bottom-tabbar__count-badge{position:absolute;top:-5px;right:-8px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--accent, #2f6f4e);color:#fff;font-size:10px;font-weight:800;line-height:16px;text-align:center;box-shadow:0 0 0 2px var(--surface)}.bottom-tabbar__count-badge--new{background:#dc2626}.history-item-actions .history-rename-btn{min-height:36px;padding:6px 10px;font-size:13px}@media(max-width:420px){.history-skeleton-minimap{width:88px;height:56px}}@media(prefers-reduced-motion:reduce){.history-skeleton-minimap,.history-skeleton-line,.history-skeleton-pill,.history-swipe__panel{animation:none;transition:none}}.map-pin.start{background:#16a34a;border-radius:6px;padding:2px 6px}.map-pin.end{background:#dc2626;border-radius:6px;padding:2px 6px}.map-pin.via{background:#0f766e;border-radius:6px;padding:2px 6px}@media(prefers-reduced-motion:reduce){.bottom-sheet,.btn-primary,.bottom-tabbar__item{transition:none!important}.route-generation-progress__step--active .route-generation-progress__step-icon{animation:none!important}.route-polyline--flow{animation:none!important;stroke-dasharray:none}.route-polyline-drawing{transition:none!important;stroke-dasharray:none!important;stroke-dashoffset:0!important}.route-loading-ring--1,.route-loading-ring--2,.map-loc-marker__pulse,.bottom-tabbar__badge--pulse,.map-place-pin-busy{animation:none!important}.map-loc-marker__pulse{opacity:.35;transform:none}}.map-pick-hint{position:absolute;left:50%;top:calc(56px + var(--safe-top));transform:translate(-50%);z-index:500;margin:0;padding:8px 12px;border-radius:999px;background:var(--surface-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);font-size:12px;font-weight:600;color:var(--primary);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-sm)}.home-map-canvas .map-pick-hint{top:calc(var(--home-map-top-clearance) + 8px)}.home-map-page--generating .map-pick-hint{display:none}.route-map-wrap--pickable .leaflet-container{cursor:crosshair}.home-map-pick-tip{margin:4px 0 12px;font-size:12px}.map-current-heading{width:28px;height:28px;display:grid;place-items:center}.map-current-heading span{display:block;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:16px solid #2563eb;filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))}.live-tracking-panel{margin:12px 0;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.live-tracking-panel__row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}.live-tracking-panel__stats{display:flex;flex-wrap:wrap;gap:12px;font-size:13px;margin:6px 0}.live-tracking-panel__off{color:var(--warn);font-weight:600}.hint--warn{color:var(--warn)}.location-privacy-card{margin:12px 0;padding:12px 14px;background:var(--surface-2);border-radius:var(--radius);border:1px solid var(--border)}.location-privacy-card__title{margin:0 0 8px;font-size:15px}.location-privacy-card__list{margin:0;padding-left:18px;color:var(--text-muted);font-size:13px}.ride-record-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.ride-record-stats__label{display:block;font-size:12px;color:var(--muted)}.ride-record-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.btn-secondary.is-active,.ride-chip.is-on{background:var(--primary);color:var(--primary-on);border-color:var(--primary)}.ride-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.ride-chip{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer}.ride-chip-fieldset{border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin:12px 0}.ride-chip-fieldset textarea,.field input,.ride-comment-form input{width:100%;margin-top:6px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);font:inherit}.ride-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.ride-photo-grid img,.ride-feed-item__cover{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-sm);background:var(--surface-2)}.ride-feed-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.ride-feed-item a{display:grid;grid-template-columns:72px 1fr;gap:12px;text-decoration:none;color:inherit;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.ride-feed-item a:not(:has(img)){grid-template-columns:1fr}.ride-sort-row{display:flex;gap:8px;margin-bottom:12px}.ride-review-block{margin:16px 0}.ride-review-block h2{font-size:16px;margin:0 0 8px}.ride-comments ul{list-style:none;padding:0}.ride-comments li{padding:10px 0;border-bottom:1px solid var(--border)}.ride-comment-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:12px}.ride-toast{position:fixed;left:50%;bottom:calc(var(--dock-bottom) + var(--vv-bottom) + 12px);transform:translate(-50%);z-index:9999;box-sizing:border-box;width:min(calc(100vw - 24px),400px);background:#1e293b;color:#fff;padding:10px 16px;border-radius:999px;font-size:14px;box-shadow:var(--shadow);text-align:center}.app-toast{position:fixed;left:50%;top:calc(var(--vv-top, 0px) + var(--safe-top) + 10px);bottom:auto;transform:translate(-50%);z-index:9999;box-sizing:border-box;width:min(calc(100vw - 24px),400px);display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px 10px 10px 12px;border-radius:12px;background:color-mix(in srgb,var(--surface, #fff) 96%,#0f172a 4%);color:var(--text, #0f172a);border:1px solid color-mix(in srgb,var(--border, #cfc8bf) 80%,transparent);box-shadow:0 8px 24px #0f172a24;animation:app-toast-in .22s ease-out}@keyframes app-toast-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.app-toast--success{border-color:color-mix(in srgb,var(--accent, #2f6f4e) 35%,var(--border))}.app-toast__icon{width:24px;height:24px;margin-top:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;line-height:1;background:color-mix(in srgb,var(--accent, #2f6f4e) 16%,transparent);color:var(--accent, #2f6f4e);flex-shrink:0}.app-toast--info .app-toast__icon{background:color-mix(in srgb,#2563eb 14%,transparent);color:#2563eb}.app-toast__text{min-width:0;display:flex;flex-direction:column;gap:1px}.app-toast__title{font-size:13px;font-weight:750;line-height:1.3}.app-toast__body{margin:0;font-size:12px;line-height:1.4;color:var(--muted);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.app-toast__actions{display:flex;flex-direction:row;align-items:center;gap:4px;flex-shrink:0}.app-toast__action{font:inherit;font-size:12px;font-weight:700;color:var(--accent, #2f6f4e);background:transparent;border:none;padding:4px 2px;cursor:pointer;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}.app-toast__close{font:inherit;width:28px;height:28px;min-width:28px;margin:0;padding:0;border:none;border-radius:8px;background:color-mix(in srgb,var(--muted) 12%,transparent);color:var(--muted);font-size:18px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}.app-toast__close:hover{color:var(--text)}.ride-summary-text{font-size:15px;margin:12px 0}.home-locate-fab-wrap{position:absolute;right:12px;bottom:12px;z-index:600;display:flex;flex-direction:column;align-items:flex-end;gap:6px;pointer-events:none}.home-map-page .home-locate-fab-wrap{bottom:12px}.home-locate-fab{pointer-events:auto;width:44px;height:44px;border-radius:12px;border:1px solid var(--border);background:var(--surface-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--primary);box-shadow:var(--shadow-sm);display:grid;place-items:center;cursor:pointer}.home-locate-fab.is-active{background:var(--primary);color:var(--primary-on);border-color:var(--primary)}.home-locate-hint{pointer-events:none;margin:0;padding:6px 10px;font-size:12px;border-radius:999px;background:var(--surface-glass);border:1px solid var(--border);color:var(--text-muted);max-width:200px;line-height:1.35}.home-locate-hint--warn{color:var(--warn)}.map-divicon--current{background:transparent!important;border:none!important}.map-current-dot{width:16px;height:16px}.map-loc-marker{position:relative;width:48px;height:48px;display:grid;place-items:center;transform-origin:center center;transition:none}.map-loc-marker--no-heading{width:32px;height:32px}.map-loc-marker__pulse{position:absolute;width:16px;height:16px;border-radius:50%;background:#1a73e847;z-index:1;pointer-events:none;animation:map-loc-pulse 2s ease-out infinite}.map-loc-marker__dot{width:16px;height:16px;border-radius:50%;background:#1a73e8;border:3px solid #fff;box-shadow:0 0 0 1px #1a73e866,0 2px 6px #00000047;position:relative;z-index:2}.map-loc-marker__cone{position:absolute;left:50%;top:2px;width:28px;height:22px;transform:translate(-50%);z-index:1;background:linear-gradient(180deg,#1a73e88c,#1a73e81f 70%,#1a73e800);clip-path:polygon(50% 0%,0% 100%,100% 100%);filter:drop-shadow(0 1px 1px rgba(0,0,0,.15));pointer-events:none}@keyframes map-loc-pulse{0%{transform:scale(1);opacity:.55}70%{transform:scale(2.1);opacity:0}to{transform:scale(2.1);opacity:0}}
