.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{color:#191815;background:#ece8df;font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,system-ui,sans-serif;font-synthesis:none;--bg: #fbfaf7;--surface: #fffefb;--ink: #191815;--muted: #77726b;--line: #e7ded0;--red: #c91d28;--red-dark: #a9131c;--green: #16844f;--gold: #e39a00;--blue: #1d70a8;--border: var(--line);--card-bg: var(--surface);--text: var(--ink);--danger: #b3261e;--service-emergency: #c62f25;--service-care: #087f5b;--service-utility: #2369a1;--service-culture: #8a5a00;--service-tour: #7d4e96;--service-transport: #0f766e;--shadow: 0 8px 24px rgba(54, 43, 30, .09);--color-brand: var(--red);--color-text: var(--ink);--color-text-muted: var(--muted);--color-border: var(--line);--color-border-strong: #d4cab9;--color-surface: var(--surface);--color-canvas: var(--bg);--color-jade: var(--green);--color-blue: var(--blue);--color-amber: var(--gold);--shadow-card: var(--shadow);--build-revision: 2026072101;--app-viewport-height: 100svh}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;min-width:320px}body{overflow:hidden}button,input,select,textarea{font:inherit}button{color:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(39,98,143,.42);outline-offset:2px}.prototype-stage{width:100%;height:100vh;height:100svh;height:var(--app-viewport-height, 100dvh);display:grid;place-items:center;overflow:hidden;background:#ece8df}.mobile-prototype{width:min(100vw,960px);height:min(100%,844px);background:var(--bg);overflow:hidden;position:relative;display:grid;grid-template-rows:72px minmax(0,1fr) calc(84px + env(safe-area-inset-bottom,0px));box-shadow:0 22px 70px #2d231929}.mobile-prototype.no-bottom-nav{grid-template-rows:72px minmax(0,1fr)}.app-header{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--surface);z-index:5}.brand{border:0;background:transparent;padding:0;display:inline-flex;align-items:center;gap:12px;min-width:0;cursor:pointer}.brand-mark{width:48px;height:48px;flex:0 0 48px;border-radius:13px;display:grid;place-items:center;color:#fff;font-size:22px;font-weight:900;letter-spacing:-1px;background:linear-gradient(145deg,#d9292d,#b70913);box-shadow:inset 0 -8px 16px #64000029}.brand-mark.small{width:38px;height:38px;flex-basis:38px;border-radius:10px;font-size:17px}.brand-name{font-size:26px;font-weight:700;white-space:nowrap;letter-spacing:-1px}.city-selector{min-height:44px;border:1px solid var(--line);border-radius:24px;padding:0 13px;background:var(--surface);display:inline-flex;align-items:center;gap:7px;cursor:pointer;box-shadow:0 3px 12px #40342608}.city-selector span{font-weight:550;white-space:nowrap}.menu-button,.icon-button{width:44px;height:44px;border:0;border-radius:12px;background:transparent;display:grid;place-items:center;cursor:pointer}.menu-button:hover,.icon-button:hover{background:#f3eee5}.header-share-button{color:var(--green);background:#edf8f1}.header-share-button:hover{color:#0d6d3e;background:#dff2e7}.back-button{justify-self:start}.page-title{font-size:22px;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-header:has(.page-title){grid-template-columns:auto minmax(0,1fr) auto auto auto}.app-header.metro-page-header:has(.page-title){grid-template-columns:44px minmax(0,1fr) auto 44px;gap:4px}.app-header.garbage-page-header:has(.page-title){grid-template-columns:44px minmax(0,1fr) auto 44px;gap:4px}.app-header.utility-page-header:has(.page-title){grid-template-columns:44px minmax(0,1fr) auto 44px;gap:4px}.metro-page-header .page-title{text-align:center;font-size:25px;font-weight:550}.metro-page-header .back-button,.metro-page-header .menu-button{color:#0fb6c3}.garbage-page-header .page-title,.utility-page-header .page-title{text-align:center}.scroll-area{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d4cab9 transparent}.route-screen{min-height:100%}.home-marquee{width:calc(100% - 28px);min-height:48px;display:grid;grid-template-columns:34px minmax(0,1fr) 24px;align-items:center;gap:8px;margin:10px 14px 6px;padding:6px 10px;overflow:hidden;border:1px solid #efbf69;border-radius:15px;color:#713b00;background:linear-gradient(90deg,#fff7dc,#fff2c1);box-shadow:0 5px 14px #8452081a;cursor:pointer}.home-marquee:hover{background:linear-gradient(90deg,#fff2c7,#ffeaa5)}.home-marquee-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--red)}.home-marquee-viewport{min-width:0;overflow:hidden}.home-marquee-track{width:max-content;display:flex;align-items:center;animation:invoice-marquee 9s linear infinite}.home-marquee-track strong{padding-right:54px;font-size:15px;font-weight:900;white-space:nowrap}.home-lifeapp-notice{width:calc(100% - 28px);min-height:64px;display:grid;grid-template-columns:40px minmax(0,1fr) 20px;align-items:center;gap:10px;margin:10px 14px 6px;padding:9px 12px;border:1px solid #cde4d6;border-radius:17px;color:var(--ink);background:linear-gradient(135deg,#f4fbf6,#fffdf8);box-shadow:0 6px 18px #16844f17;text-decoration:none;transition:opacity .5s ease,transform .5s ease,max-height .5s cubic-bezier(.4,0,.2,1),margin .5s ease,padding .5s ease,border-color .5s ease;overflow:hidden;max-height:120px;opacity:1}.home-lifeapp-notice.fade-out{opacity:0;max-height:0;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;border-top-width:0;border-bottom-width:0;transform:translateY(-12px);pointer-events:none;border-color:transparent}.home-lifeapp-notice:hover{border-color:#9bcbae;background:#edf8f1}.home-lifeapp-notice-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;color:#fff;background:var(--green)}.home-lifeapp-notice>span:nth-child(2){min-width:0;display:grid;gap:2px}.home-lifeapp-notice strong{color:var(--red-dark);font-size:14px;font-weight:900;line-height:1.35}.home-lifeapp-notice small{overflow:hidden;color:#5f665f;font-size:11px;font-weight:750;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.home-lifeapp-notice>svg{color:var(--green)}.nearby-section{margin:4px 14px 0;padding:13px 13px 18px;border:1px solid var(--line);border-radius:22px;background:#fffefb85}.section-heading-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-heading-row h1,.section-heading-row h2{margin:0;font-size:24px;font-weight:700;letter-spacing:-.7px}.section-heading-row h2{font-size:26px}.heading-with-icon{display:flex;align-items:center;gap:10px;min-width:0}.heading-icon{width:36px;height:36px;flex:0 0 36px;border-radius:50%;color:#fff;background:var(--red);display:grid;place-items:center}.relocate-button{min-height:44px;border:0;background:transparent;color:var(--red);font-weight:700;display:inline-flex;align-items:center;gap:6px;padding:0 3px;cursor:pointer;white-space:nowrap}.relocate-button:disabled{opacity:.7}.is-spinning{animation:spin .8s linear infinite}.arrival-panel{margin-top:14px;padding:0 12px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}.arrival-row{width:100%;min-height:64px;display:grid;grid-template-columns:34px 48px minmax(0,1fr) auto 17px;align-items:center;gap:8px;padding:6px 0;border:0;border-bottom:1px solid var(--line);background:transparent;cursor:pointer;text-align:left}.arrival-row:hover{background:#fbf6ee}.arrival-mode{width:31px;height:38px;display:grid;place-items:center;color:#fff;border-radius:8px}.arrival-mode.metro{background:var(--blue)}.arrival-mode.bus{background:var(--gold)}.arrival-route{font-size:18px;font-weight:600}.arrival-stop{font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.arrival-time{min-width:58px;height:40px;border:1.5px solid currentColor;border-radius:22px;display:inline-flex;justify-content:center;align-items:baseline;gap:2px;font-size:22px;font-weight:800}.arrival-time small{font-size:13px;font-weight:800}.arrival-time.green{color:var(--green);background:#f5fcf8}.arrival-time.gold{color:var(--gold);background:#fffaf0}.arrival-chevron{color:var(--green)}.updated-time{margin:0;padding:6px 0;color:var(--muted);font-size:13px}.heading-actions{display:flex;align-items:center;gap:2px}.home-settings-button,.collapse-button{width:40px;height:40px;color:var(--muted)}.home-settings-button:hover,.collapse-button:hover{color:var(--red);background:#fff2ef}.commute-home-section{padding-bottom:14px}.home-mode-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;margin-top:12px;padding:3px;border-radius:13px;background:#f0ebe3}.home-mode-tabs button{min-width:0;min-height:38px;padding:0 5px;border:0;border-radius:10px;color:#686159;background:transparent;font-size:13px;font-weight:900;cursor:pointer}.home-mode-tabs button.active{color:#fff;background:var(--red);box-shadow:0 3px 9px #a9131c2e}.home-favorite-panel{overflow:hidden;margin-top:10px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}.home-favorite-heading{min-height:43px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 11px;border-bottom:1px solid var(--line);background:#fffaf3}.home-favorite-mode{min-width:0;display:grid;gap:1px}.home-favorite-mode strong{color:var(--red);font-size:13px;font-weight:900}.home-favorite-mode small{overflow:hidden;color:var(--muted);font-size:10px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.home-favorite-heading>button{flex:0 0 auto;min-height:34px;display:inline-flex;align-items:center;gap:2px;padding:0 5px 0 8px;border:0;border-radius:9px;color:var(--blue);background:transparent;font-size:11px;font-weight:900;cursor:pointer}.home-favorite-heading>button:hover{background:#edf6fb}.home-favorite-route{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:9px;padding:10px 11px 7px}.home-favorite-route>span:first-child{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;color:#fff}.home-favorite-route>span:first-child.bus{background:var(--gold)}.home-favorite-route>span:first-child.rail{background:var(--blue)}.home-favorite-route>span:last-child{min-width:0;display:grid;gap:2px}.home-favorite-route strong{overflow:hidden;font-size:17px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.home-favorite-route small{overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.home-selected-routes{display:flex;flex-wrap:wrap;gap:5px;padding:0 11px 7px 62px}.home-selected-routes span,.home-route-badge{min-width:35px;min-height:24px;display:inline-flex;align-items:center;justify-content:center;padding:2px 7px;border-radius:8px;color:#fff;background:var(--blue);font-size:11px;font-weight:900}.home-commute-arrivals{border-top:1px solid var(--line)}.home-commute-arrivals>button{width:100%;min-height:58px;display:grid;grid-template-columns:auto minmax(0,1fr) auto 16px;align-items:center;gap:8px;padding:7px 10px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.home-commute-arrivals>button:last-child{border-bottom:0}.home-commute-arrivals>button:hover{background:#fffaf4}.home-commute-arrivals>button>span:nth-child(2){min-width:0;display:grid;gap:2px}.home-commute-arrivals>button>span:nth-child(2) strong,.home-commute-arrivals>button>span:nth-child(2) small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-commute-arrivals>button>span:nth-child(2) strong{font-size:13px}.home-commute-arrivals>button>span:nth-child(2) small{color:var(--muted);font-size:10px}.home-commute-arrivals>button>em{min-width:57px;color:var(--green);font-size:12px;font-style:normal;font-weight:900;text-align:right;white-space:nowrap}.home-commute-arrivals>button>em b{font-size:21px}.home-commute-arrivals>button>em.status{max-width:76px;color:var(--muted);white-space:normal;line-height:1.2}.home-commute-arrivals>button>em.arriving{color:var(--red)}.home-commute-arrivals>button>em.delayed{color:var(--red)}.home-commute-arrivals>button>em.on-time{color:var(--green)}.home-commute-arrivals>button>svg{color:var(--muted)}.home-train-time{min-width:51px;color:var(--red);font-size:20px;font-weight:900;letter-spacing:-.03em}.home-favorite-footer,.home-nearby-footer{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 8px 4px 11px;border-top:1px solid var(--line);color:var(--muted);background:#faf6ef;font-size:11px;font-weight:750}.home-favorite-footer button{width:30px;height:30px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;color:var(--green);background:transparent;cursor:pointer}.home-favorite-footer button:hover{background:#eaf6ef}.home-favorite-footer button:disabled{opacity:.55;cursor:wait}.home-commute-state{min-height:126px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px;color:var(--muted);font-size:13px;text-align:center}.home-commute-warning{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:7px;margin:0 10px 8px;padding:8px 9px;border-radius:10px;color:#7b5411;background:#fff6dd;font-size:11px;line-height:1.4}.home-commute-empty,.home-nearby-prompt{min-height:218px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;margin-top:10px;padding:20px 18px;border:1px dashed #d9c8b6;border-radius:18px;color:var(--muted);background:#fffaf4;text-align:center}.home-commute-empty>span,.home-nearby-prompt>span{width:50px;height:50px;display:grid;place-items:center;margin-bottom:2px;border-radius:16px;color:#c68209;background:#fff0cc}.home-commute-empty strong,.home-nearby-prompt strong{color:var(--ink);font-size:17px}.home-commute-empty small,.home-nearby-prompt small{max-width:280px;font-size:12px;line-height:1.5}.home-commute-empty .primary-button,.home-nearby-prompt .primary-button{min-height:44px;margin-top:7px;font-size:13px}.nearby-arrival-panel{margin-top:10px;padding:0}.home-nearby-list{padding:0 10px}.home-nearby-stop{width:100%;min-height:73px;display:grid;grid-template-columns:36px minmax(0,1fr) auto 17px;align-items:center;gap:8px;padding:8px 0;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.home-nearby-stop:last-child{border-bottom:0}.home-nearby-stop>span:nth-child(2){min-width:0;display:grid;gap:2px}.home-nearby-stop>span:nth-child(2) strong,.home-nearby-stop>span:nth-child(2) small,.home-nearby-stop>span:nth-child(2) em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-nearby-stop>span:nth-child(2) strong{font-size:15px}.home-nearby-stop>span:nth-child(2) small{color:var(--muted);font-size:10px}.home-nearby-stop>span:nth-child(2) em{color:var(--green);font-size:11px;font-style:normal;font-weight:900}.home-nearby-distance{color:var(--green);font-size:10px;font-weight:900;white-space:nowrap}.home-nearby-stop>svg{color:var(--muted)}.home-nearby-footer button{min-height:30px;display:inline-flex;align-items:center;gap:4px;padding:0 6px;border:0;border-radius:8px;color:var(--red);background:transparent;font-size:11px;font-weight:900;cursor:pointer}.home-nearby-error{min-height:158px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:18px;color:var(--red);font-size:13px;text-align:center}.home-nearby-error button{min-height:36px;padding:0 13px;border:1px solid rgba(201,29,40,.32);border-radius:10px;color:var(--red);background:#fff5f3;font-weight:900}.overlay.commute-settings-overlay{position:fixed;inset:50% auto auto 50%;width:min(100vw,960px);height:min(var(--app-viewport-height, 100dvh),844px);z-index:80;transform:translate(-50%,-50%)}.commute-settings-sheet{max-height:88%;overflow-y:auto;padding:16px 15px 20px}.commute-auto-toggle{display:grid;grid-template-columns:23px minmax(0,1fr);align-items:start;gap:9px;margin-top:14px;padding:11px;border:1px solid #bddbc8;border-radius:13px;background:#f3fbf6;cursor:pointer}.commute-auto-toggle input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--green)}.commute-auto-toggle>span{display:grid;gap:2px}.commute-auto-toggle strong{font-size:14px}.commute-auto-toggle small{color:var(--muted);font-size:11px;line-height:1.4}.commute-slot-list{display:grid;gap:11px;margin-top:12px}.commute-slot-editor{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px;border:1px solid var(--line);border-radius:16px;background:#fffdf9}.commute-slot-heading{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:8px}.commute-slot-heading span{min-width:60px;min-height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0 10px;border-radius:999px;color:#fff;background:var(--red);font-size:13px;font-weight:900}.commute-slot-heading small{color:var(--muted);font-size:11px;font-weight:800}.commute-time-fields{grid-column:1 / -1;display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:7px}.commute-time-fields>span{padding-bottom:12px;color:var(--muted);font-size:12px}.commute-time-fields label,.commute-field{display:grid;gap:5px;color:var(--muted);font-size:11px;font-weight:800}.commute-time-fields input,.commute-field select{width:100%;height:43px;padding:0 9px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff;font-weight:850}.commute-field:has(select[value=""]){grid-column:1 / -1}.commute-route-picker{grid-column:1 / -1;display:grid;gap:7px}.commute-route-picker>span{color:var(--muted);font-size:11px;font-weight:800}.commute-route-picker>span small{font-weight:650}.commute-route-picker>div{display:flex;flex-wrap:wrap;gap:6px}.commute-route-picker button{min-height:32px;padding:0 11px;border:1px solid var(--line);border-radius:999px;color:var(--blue);background:#fff;font-size:12px;font-weight:900;cursor:pointer}.commute-route-picker button.active{color:#fff;border-color:var(--blue);background:var(--blue)}.commute-no-favorites{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;margin:12px 0 0;padding:10px;border-radius:11px;color:#7b5411;background:#fff4d6;font-size:12px;line-height:1.45}.commute-settings-actions{display:grid;grid-template-columns:.8fr 1.2fr;gap:9px;margin-top:14px}.commute-settings-actions>button{min-height:48px;border-radius:12px;font-weight:900}.commute-settings-actions>button:first-child{border:1px solid var(--line);background:#fff}.services-section{padding:12px 12px 4px}.services-section .section-heading-row{padding:0 5px 5px}.service-count,.results-section .section-heading-row>span,.winning-numbers .section-heading-row>span{font-size:13px;font-weight:800;color:var(--muted)}.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.service-button{min-width:0;min-height:106px;border:0;border-radius:16px;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px 3px;cursor:pointer}.service-button:hover{background:#f3eee5}.service-button:active{transform:scale(.96)}.lightshow-service-left{grid-column:3}.lightshow-service-right{grid-column:4}.service-image{width:64px;height:58px;object-fit:contain;display:block;filter:drop-shadow(0 3px 2px rgba(0,0,0,.13))}.service-image-container{position:relative;display:inline-flex;align-items:center;justify-content:center}.service-icon-graphic{width:64px;height:58px;border:1px solid #ead9c6;border-radius:18px;color:var(--red);background:linear-gradient(145deg,#fffdf9,#f4e8d9);display:grid;place-items:center;filter:drop-shadow(0 3px 2px rgba(0,0,0,.11));position:relative}.service-icon-graphic.is-maintenance,.service-image-container.is-maintenance{position:relative}.service-image-container.is-maintenance .service-image{filter:opacity(.85) saturate(.85)}.service-icon-graphic.is-maintenance{opacity:.88}.service-maintenance-badge{position:absolute;top:-4px;right:-8px;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;font-size:10px;font-weight:800;padding:2px 6px;border-radius:8px;line-height:1.2;box-shadow:0 2px 6px #d9770666;border:1.5px solid #ffffff;z-index:5;white-space:nowrap;letter-spacing:.5px;pointer-events:none}.dark-theme .service-maintenance-badge{border-color:#1e293b}.service-theme-emergency{color:var(--service-emergency);border-color:#efc2bd;background:linear-gradient(145deg,#fff8f7,#fbe5e1)}.service-theme-care{color:var(--service-care);border-color:#b9ddcf;background:linear-gradient(145deg,#f7fffb,#e3f4eb)}.service-theme-utility{color:var(--service-utility);border-color:#c2d8eb;background:linear-gradient(145deg,#f8fcff,#e5f0f8)}.service-theme-culture{color:var(--service-culture);border-color:#ead6a4;background:linear-gradient(145deg,#fffdf6,#f7ecd1)}.service-theme-tour{color:var(--service-tour);border-color:#ddc7e8;background:linear-gradient(145deg,#fff9ff,#efe2f6)}.service-theme-transport{color:var(--service-transport);border-color:#b8ddd8;background:linear-gradient(145deg,#f7fffe,#ddf3ef)}.install-service-icon{color:#087c47;border-color:#b9ddc9;background:linear-gradient(145deg,#f7fff9,#dff4e8)}.service-button span{font-size:17px;font-weight:500;line-height:1.25;text-align:center;white-space:normal}.home-primary-services{padding-bottom:22px}.home-secondary-services{margin:24px 14px 12px;padding-top:18px;border-top:1px solid var(--line)}.home-secondary-heading{display:grid;gap:3px;margin:0 2px 12px}.home-secondary-heading h2{margin:0;color:var(--ink);font-size:22px;font-weight:900;line-height:1.2}.home-secondary-heading p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.deferred-service-sections{display:grid;gap:18px}.deferred-service-section{display:grid;gap:9px}.home-hidden-services{margin:4px 14px 24px}.deferred-service-more{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 5px 14px #362b1e0d}.deferred-service-more>summary{min-height:64px;display:grid;grid-template-columns:minmax(0,1fr) auto 20px;align-items:center;gap:9px;padding:9px 12px;color:var(--ink);list-style:none;cursor:pointer}.deferred-service-more>summary::-webkit-details-marker{display:none}.deferred-service-more>summary>span{min-width:0;display:grid;gap:2px}.deferred-service-more>summary strong{font-size:15px;font-weight:950}.deferred-service-more>summary small{overflow:hidden;color:var(--muted);font-size:11px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.deferred-service-more>summary em{color:#61584e;font-size:11px;font-style:normal;font-weight:900;white-space:nowrap}.deferred-service-more>summary>svg{color:var(--red);transition:transform .18s ease}.deferred-service-more[open]>summary{border-bottom:1px solid var(--line);background:#fffaf4}.deferred-service-more[open]>summary>svg{transform:rotate(90deg)}.deferred-service-more-content{display:grid;gap:18px;padding:14px 11px}.deferred-service-section-heading{min-height:44px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;padding:0 1px}.deferred-section-icon{width:34px;height:34px;display:grid;place-items:center;border:1px solid #c2d8eb;border-radius:12px;color:var(--blue);background:#eaf4fb}.deferred-section-icon>svg{filter:none}.service-section-emergency .deferred-section-icon{color:var(--service-emergency);border-color:#efc2bd;background:#fce9e6}.service-section-care .deferred-section-icon{color:var(--service-care);border-color:#b9ddcf;background:#e6f5ee}.service-section-utility .deferred-section-icon{color:var(--service-utility);border-color:#c2d8eb;background:#e8f2fa}.service-section-culture .deferred-section-icon{color:var(--service-culture);border-color:#ead6a4;background:#f7ecd0}.service-section-tour .deferred-section-icon{color:var(--service-tour);border-color:#ddc7e8;background:#f1e6f7}.service-section-transport .deferred-section-icon{color:var(--service-transport);border-color:#b8ddd8;background:#e3f4f1}.deferred-service-section-heading>span:nth-child(2){min-width:0;display:grid;gap:1px}.deferred-service-section-heading strong{color:var(--ink);font-size:16px;font-weight:950}.deferred-service-section-heading small{overflow:hidden;color:var(--muted);font-size:11px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.deferred-service-section-heading em{min-height:25px;display:inline-flex;align-items:center;justify-content:center;padding:0 8px;border-radius:999px;color:#61584e;background:#f2ece2;font-size:11px;font-style:normal;font-weight:900;white-space:nowrap}.deferred-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.deferred-service-card{min-width:0;min-height:116px;display:grid;grid-template-columns:52px minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;align-items:center;gap:7px 9px;padding:11px;border:1px solid var(--line);border-radius:16px;color:var(--ink);background:var(--surface);box-shadow:0 5px 14px #362b1e0d;cursor:pointer;text-align:left;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease}.deferred-service-card:hover{border-color:#cbbba6;background:#fffaf4;box-shadow:0 8px 18px #362b1e17;transform:translateY(-2px)}.deferred-service-card:active{transform:scale(.98)}.deferred-service-card .deferred-service-icon{grid-row:1 / 3;width:52px;height:50px;border-radius:15px;filter:none}.deferred-service-copy{min-width:0;display:grid;gap:3px;align-self:end}.deferred-service-copy strong{overflow-wrap:anywhere;color:var(--ink);font-size:15px;font-weight:950;line-height:1.25}.deferred-service-copy small{display:-webkit-box;overflow:hidden;color:var(--muted);font-size:11px;font-weight:700;line-height:1.35;-webkit-line-clamp:2;-webkit-box-orient:vertical}.deferred-service-chip{justify-self:start;min-height:23px;display:inline-flex;align-items:center;padding:0 8px;border-radius:999px;color:var(--blue);background:#eaf4fb;font-size:10px;font-weight:950;white-space:nowrap}.service-card-emergency .deferred-service-chip{color:var(--service-emergency);background:#fce9e6}.service-card-care .deferred-service-chip{color:var(--service-care);background:#e6f5ee}.service-card-utility .deferred-service-chip{color:var(--service-utility);background:#e8f2fa}.service-card-culture .deferred-service-chip{color:var(--service-culture);background:#f7ecd0}.service-card-tour .deferred-service-chip{color:var(--service-tour);background:#f1e6f7}.service-card-transport .deferred-service-chip{color:var(--service-transport);background:#e3f4f1}.deferred-service-list{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}.deferred-service-button{width:100%;min-height:62px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 14px;text-align:left;cursor:pointer}.deferred-service-button:last-child{border-bottom:0}.deferred-service-button:hover{background:#f9f3ea}.deferred-service-button:active{transform:scale(.99)}.deferred-service-button>span{display:grid;gap:3px}.deferred-service-button strong{font-size:16px;font-weight:850}.deferred-service-button small{color:var(--muted);font-size:12px;font-weight:700}.bottom-nav{min-height:0;padding-bottom:env(safe-area-inset-bottom,0px);border:1px solid var(--line);border-bottom:0;border-radius:20px 20px 0 0;background:var(--surface);display:grid;grid-template-columns:repeat(5,1fr);align-items:stretch;z-index:6}.bottom-nav button,.bottom-nav a{position:relative;min-width:0;border:0;background:transparent;color:#595751;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;text-decoration:none}.bottom-nav button span,.bottom-nav a span{font-size:13px;font-weight:550}.bottom-nav button.active,.bottom-nav a.active{color:var(--red)}.bottom-nav button.active:after,.bottom-nav a.active:after{content:"";position:absolute;left:18%;right:18%;bottom:0;height:4px;border-radius:4px 4px 0 0;background:var(--red)}.inner-screen{padding:17px 15px 24px}.intro-block{padding:2px 2px 18px}.intro-block.compact{padding-bottom:13px}.eyebrow{color:var(--red);font-size:13px;font-weight:900;letter-spacing:.04em}.intro-block h2{margin:5px 0 4px;font-size:27px;letter-spacing:-1px}.intro-block p{color:var(--muted);margin:0;line-height:1.55}.large-service-list,.result-list,.station-list,.event-list,.notice-list,.more-list{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}.large-service-list button,.more-list button{width:100%;min-height:78px;border:0;border-bottom:1px solid var(--line);background:transparent;display:grid;grid-template-columns:70px minmax(0,1fr) auto;align-items:center;gap:12px;text-align:left;padding:10px 14px;cursor:pointer}.large-service-list button:last-child,.more-list button:last-child{border-bottom:0}.large-service-list .service-image,.more-list .service-image,.large-service-list .service-icon-graphic,.more-list .service-icon-graphic{width:62px;height:56px}.large-service-list button>span,.more-list button>span{display:grid;gap:3px}.large-service-list strong,.more-list strong{font-size:17px}.large-service-list small,.more-list small{color:var(--muted);font-size:13px;line-height:1.35}.search-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 46px minmax(0,1fr);gap:10px;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}.segmented-control{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;padding:3px;border-radius:12px;background:#f2ede4}.segmented-control button{min-height:38px;border:0;border-radius:9px;background:transparent;font-weight:800;cursor:pointer}.segmented-control button.active{color:#fff;background:var(--red)}.search-card label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:800}.search-card select,.search-card input[type=date],.search-card input[type=time]{width:100%;height:45px;border:1px solid var(--line);border-radius:10px;padding:0 10px;background:#fff;color:var(--ink);font-weight:800}.search-card select:disabled{color:var(--muted);background:#f5f1ea}.station-field{min-width:0;display:grid;gap:6px}.station-field>span{color:var(--muted);font-size:12px;font-weight:800}.station-select-button{width:100%;min-width:0;min-height:58px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;padding:7px 9px 7px 11px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:left;cursor:pointer}.station-select-button:hover{border-color:#cbbba6;background:#fffcf7}.station-select-button:disabled{color:var(--muted);background:#f5f1ea;cursor:wait}.station-select-button>span{min-width:0;display:grid;gap:1px}.station-select-button small{overflow:hidden;color:var(--muted);font-size:10px;font-weight:700;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.station-select-button strong{overflow:hidden;color:var(--ink);font-size:18px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.station-select-button>svg{color:var(--red)}.search-card .rail-date-time-group{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:10px}.swap-button{align-self:end;width:46px;height:58px;border:1px solid var(--line);border-radius:12px;color:var(--red);background:#fff8f6;display:grid;place-items:center;cursor:pointer}.swap-button:hover{border-color:#c91d2859;background:#fff1ef}.primary-button{min-height:48px;border:0;border-radius:12px;background:var(--red);color:#fff;font-weight:900;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 17px;cursor:pointer}.primary-button:hover{background:var(--red-dark)}.primary-button:disabled{background:#c9c1b6;cursor:not-allowed}.search-card .primary-button{grid-column:1 / -1}.results-section{margin-top:20px}.results-section .section-heading-row{margin-bottom:10px}.rail-results-header{align-items:flex-start}.rail-results-header h2{min-width:0;display:flex;align-items:center;gap:4px;font-size:20px;line-height:1.3}.rail-results-header h2>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-results-header h2>svg{flex:0 0 auto;color:var(--muted)}.rail-favorite-button{width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;margin:-5px 0 -5px 2px;padding:0;border:0;border-radius:50%;color:var(--muted);background:transparent;cursor:pointer}.rail-favorite-button.active{color:var(--red);background:#fff3f2}.result-row{width:100%;min-height:75px;border:0;border-bottom:1px solid var(--line);background:transparent;display:grid;grid-template-columns:auto auto minmax(22px,1fr) auto minmax(65px,auto) auto;align-items:center;gap:8px;padding:12px;cursor:pointer}.result-row:last-child{border-bottom:0}.route-badge{color:var(--blue);font-weight:900}.result-row strong{display:grid;font-size:17px}.result-row strong small{font-size:10px;color:var(--muted);font-weight:700}.journey-line{width:100%;height:2px;background:var(--line);margin-bottom:2px}.result-note{font-size:11px;color:var(--muted)}.rail-live-meta{min-height:58px;display:grid;grid-template-columns:auto minmax(0,1fr) 38px;align-items:center;gap:10px;margin:0 0 10px;padding:9px 11px;border:1px solid #bcdcc9;border-radius:13px;color:#17673b;background:#f4fbf6}.rail-live-meta.has-warning{color:#795613;border-color:#ecd69d;background:#fffaf0}.rail-live-meta>span{min-width:0;display:grid;gap:2px}.rail-live-meta strong{font-size:13px}.rail-live-meta small{overflow:hidden;color:currentColor;font-size:11px;line-height:1.35;text-overflow:ellipsis}.rail-live-meta button{width:38px;height:38px;display:grid;place-items:center;border:0;border-radius:50%;color:currentColor;background:transparent;cursor:pointer}.rail-live-meta button:hover{background:#0000000d}.rail-live-meta button:disabled{opacity:.55;cursor:wait}.rail-trip-list{display:grid;gap:11px;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}.rail-trip-card{overflow:hidden;border:1px solid var(--line);border-radius:17px;background:var(--surface);box-shadow:0 5px 16px #362b1e12}.rail-trip-card-header{min-height:45px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 13px 5px}.rail-service-identity{min-width:0;display:flex;align-items:center;gap:8px}.rail-train-number{color:var(--blue);font-size:18px;font-weight:900;white-space:nowrap}.rail-train-number small{margin-left:2px;font-size:12px}.train-amenities{display:flex;align-items:center;gap:7px}.amenity-icon{opacity:.8;display:inline-flex;align-items:center}.amenity-icon.wheelchair-icon{color:#2196f3}.amenity-icon.baby-icon{color:#e91e63}.amenity-icon.bicycle-icon{color:#4caf50}.train-type-badge{display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800;line-height:1;text-align:center;white-space:nowrap}.journey-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-width:32px}.journey-duration{font-size:10px;color:var(--muted);font-weight:700;white-space:nowrap;margin-top:1px}.rail-trip-times{display:grid;grid-template-columns:minmax(0,1fr) 92px minmax(0,1fr);align-items:center;gap:7px;padding:4px 13px 13px}.rail-time-block{min-width:0;display:grid;gap:2px}.rail-time-block:last-child{text-align:right}.rail-time-block strong{font-size:31px;line-height:1.08;letter-spacing:-.04em}.rail-time-block.is-departure strong{color:var(--red)}.rail-time-block span{overflow:hidden;color:var(--muted);font-size:12px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.rail-duration-block{min-width:0;display:grid;justify-items:center;gap:4px;color:var(--muted)}.rail-duration-block small{font-size:11px;font-weight:800;white-space:nowrap}.rail-duration-block span{width:100%;height:1px;position:relative;background:var(--line)}.rail-duration-block span svg{position:absolute;right:-5px;top:50%;transform:translateY(-50%);padding:2px;color:var(--muted);background:var(--surface)}.rail-trip-card-footer{min-height:49px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px 8px 7px 13px;border-top:1px solid #eee6da;background:#fdfaf5}.rail-status-copy{min-width:0;display:flex;align-items:center;gap:7px}.rail-live-badge{min-height:30px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:5px 8px;border:1px solid currentColor;border-radius:15px;font-size:11px;font-weight:900;line-height:1;white-space:nowrap}.rail-live-badge.is-on-time{color:#177348;background:#f1fbf5}.rail-live-badge.is-delayed{color:#a3252f;background:#fff4f4}.rail-live-badge.is-pending{color:#6d6962;border-color:var(--line);background:#f7f3ec}.rail-live-location{min-width:0;overflow:hidden;color:var(--muted);font-size:10px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.rail-book-button{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 12px;border:0;border-radius:12px;color:#fff;background:var(--green);font-size:14px;font-weight:900;text-decoration:none;white-space:nowrap;cursor:pointer}.rail-book-button:hover{background:#106e40}.data-source{margin:11px 2px 0;color:var(--muted);font-size:11px;line-height:1.5}.booking-button{color:var(--red)}.query-state{min-height:64px;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;color:var(--muted);text-align:center;line-height:1.45}.query-state.error-state{min-height:54px;margin-top:12px;border:1px solid #f1c4c4;border-radius:13px;color:#9e1d27;background:#fff5f5}.query-state.warning-state{min-height:54px;margin-top:12px;border:1px solid #ecd69d;border-radius:13px;color:#795613;background:#fffaf0}.search-field{height:50px;display:grid;grid-template-columns:auto minmax(0,1fr) 30px;align-items:center;gap:8px;padding:0 13px;border:1px solid var(--line);border-radius:13px;background:#fff}.search-field input{width:100%;border:0;outline:0;background:transparent;font-size:16px}.search-field button{width:30px;height:30px;border:0;background:transparent;display:grid;place-items:center}.bus-search-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.bus-search-button{min-height:50px;padding-inline:14px;white-space:nowrap}.refresh-row{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px}.refresh-row button{min-height:38px;border:0;color:var(--red);background:transparent;display:inline-flex;align-items:center;gap:5px;font-weight:800;cursor:pointer}.refresh-row button:disabled{opacity:.55}.chip-row{display:flex;gap:8px;overflow-x:auto;padding:12px 0;scrollbar-width:none}.chip-row button{min-height:38px;border:1px solid var(--line);border-radius:20px;background:#fff;padding:0 15px;font-size:13px;font-weight:800;white-space:nowrap;cursor:pointer}.chip-row button.active{color:#fff;border-color:var(--red);background:var(--red)}.bus-result-row{width:100%;min-height:72px;display:grid;grid-template-columns:51px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 12px;border:0;border-bottom:1px solid var(--line);color:inherit;background:transparent;font:inherit;text-align:left;cursor:pointer}.bus-result-row:last-child{border-bottom:0}.bus-result-row:hover{background:#fff9f3}.bus-result-row:focus-visible{position:relative;z-index:1;outline:3px solid rgba(201,29,40,.25);outline-offset:-3px;background:#fff7f2}.bus-result-row>span:nth-child(2){display:grid;gap:3px}.bus-result-row>span:nth-child(2) small{color:var(--muted);font-size:11px}.bus-badge{width:48px;min-height:34px;border-radius:8px;display:grid;place-items:center;color:#fff;background:var(--blue)}.bus-result-row .arrival-time{min-width:53px;height:36px;font-size:18px}.bus-result-row .bus-arriving{font-size:15px}.bus-result-row .bus-status{min-width:76px;height:auto;min-height:36px;padding:5px 8px;color:var(--muted);border-color:var(--line);background:#f7f3ec;font-size:12px;line-height:1.2;text-align:center}.bus-result-meta{display:flex;justify-content:space-between;gap:12px;margin:-2px 2px 9px;color:var(--muted);font-size:11px;line-height:1.4}.bus-result-meta span:last-child{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px}.bus-inline-refresh{width:28px;height:28px;display:inline-grid;place-items:center;padding:0;border:0;border-radius:50%;color:var(--red);background:transparent;cursor:pointer}.bus-inline-refresh:hover{background:#f7eee7}.bus-inline-refresh:disabled{opacity:.55;cursor:wait}.bus-screen{padding-top:14px}.bus-screen-intro{padding:0 2px 12px}.bus-screen-intro h2{margin-bottom:5px;font-size:25px}.bus-screen-intro p{font-size:14px;line-height:1.45}.bus-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;border:1px solid var(--line);border-radius:17px;background:#f2ede4}.bus-mode-tabs button{min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 9px;border:0;border-radius:12px;color:#625d55;background:transparent;font-size:16px;font-weight:900;cursor:pointer}.bus-mode-tabs button.active{color:#fff;background:var(--red);box-shadow:0 5px 13px #a9131c33}.bus-mode-panel{margin-top:14px}.bus-locate-card{padding:15px;border:1px solid #ead8cf;border-radius:19px;background:#fffaf7;box-shadow:var(--shadow)}.bus-locate-copy{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:11px}.bus-locate-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;color:#fff;background:var(--red)}.bus-locate-copy>span:last-child{min-width:0;display:grid;gap:3px}.bus-locate-copy strong{font-size:18px;line-height:1.3}.bus-locate-copy small{color:var(--muted);font-size:12px;line-height:1.45}.bus-locate-button{width:100%;min-height:52px;margin-top:14px;font-size:16px}.bus-locate-card>p{display:flex;align-items:center;justify-content:center;gap:5px;margin:10px 0 0;color:var(--muted);font-size:11px;line-height:1.4}.bus-locate-card>p svg{flex:0 0 auto;color:var(--green)}.bus-favorite-results .section-heading-row{margin-bottom:10px}.bus-favorite-results .section-heading-row h2{font-size:23px}.bus-favorite-results .section-heading-row>span{color:var(--muted);font-size:11px;font-weight:800}.bus-favorite-results+.bus-locate-card{margin-top:14px}.bus-favorite-empty{min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:22px 18px;border:1px dashed #d9c8b6;border-radius:18px;color:var(--muted);background:#fffaf4;text-align:center}.bus-favorite-empty>span{width:52px;height:52px;display:grid;place-items:center;margin-bottom:2px;border-radius:17px;color:#c68209;background:#fff1cf}.bus-favorite-empty strong{color:#48433c;font-size:17px}.bus-favorite-empty small{font-size:12px;line-height:1.5}.bus-journey-favorites .section-heading-row{margin-bottom:10px}.bus-journey-favorites .section-heading-row h2{font-size:23px}.bus-journey-favorites .section-heading-row>span{color:var(--muted);font-size:11px;font-weight:800}.bus-journey-favorites+.bus-favorite-results{margin-top:18px}.bus-journey-favorite-list{display:grid;gap:8px}.bus-journey-favorite-card{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 58px;overflow:hidden;border:1px solid #e2d6c8;border-radius:17px;background:#fff;box-shadow:0 5px 15px #362b1e0f}.bus-journey-favorite-open{min-width:0;min-height:78px;display:grid;grid-template-columns:52px minmax(0,1fr) 22px;align-items:center;gap:10px;padding:10px 8px 10px 12px;border:0;color:var(--ink);background:#fff;text-align:left;cursor:pointer}.bus-journey-favorite-open:hover{background:#fffaf4}.bus-journey-favorite-open>span:nth-child(2){min-width:0;display:grid;gap:4px}.bus-journey-favorite-open strong,.bus-journey-favorite-open small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bus-journey-favorite-open strong{font-size:15px}.bus-journey-favorite-open small{color:var(--muted);font-size:11px}.bus-journey-favorite-open>svg{color:#8c8378}.bus-journey-favorite-remove{min-height:78px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:5px 3px;border:0;border-left:1px solid #eee5db;color:#c68209;background:#fffaf2;font-size:10px;font-weight:800;cursor:pointer}.bus-journey-favorite-remove:hover{background:#fff2dd}.bus-journey-favorite-empty{min-height:72px;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px;padding:11px 13px;border:1px dashed #d9c8b6;border-radius:16px;color:#c68209;background:#fffaf4}.bus-journey-favorite-empty>svg{justify-self:center}.bus-journey-favorite-empty>span{min-width:0;display:grid;gap:2px}.bus-journey-favorite-empty strong{color:#48433c;font-size:14px}.bus-journey-favorite-empty small{color:var(--muted);font-size:11px;line-height:1.4}.bus-nearby-results{margin-top:19px}.bus-nearby-results .section-heading-row{margin-bottom:10px}.bus-nearby-results .section-heading-row h2{font-size:23px}.bus-nearby-results .section-heading-row>span{color:var(--muted);font-size:11px;font-weight:800}.bus-stop-list{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}.bus-stop-item{border-bottom:1px solid var(--line)}.bus-stop-item:last-child{border-bottom:0}.bus-stop-item.expanded{background:#fffaf4}.bus-stop-item-header{display:grid;grid-template-columns:minmax(0,1fr) 55px;align-items:stretch}.bus-stop-card{width:100%;min-height:112px;display:grid;grid-template-columns:38px minmax(0,1fr) 18px;align-items:start;gap:10px;padding:13px 7px 13px 12px;border:0;background:transparent;text-align:left;cursor:pointer}.bus-stop-card:hover{background:#fff9f3}.bus-stop-card>svg{align-self:center;color:var(--green)}.bus-stop-favorite{width:55px;min-height:74px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:5px 3px;border:0;color:#91887d;background:transparent;font-size:10px;font-weight:800;cursor:pointer}.bus-stop-favorite:hover{background:#fff6e8}.bus-stop-favorite.active{color:#c68209}.bus-stop-favorite svg{flex:0 0 auto}.bus-stop-pin{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;color:var(--red);background:#fff0ee}.bus-stop-copy{min-width:0;display:grid;gap:4px}.bus-stop-title{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px}.bus-stop-title strong{overflow:hidden;font-size:18px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.bus-stop-title em{flex:0 0 auto;color:var(--green);font-size:12px;font-style:normal;font-weight:900;white-space:nowrap}.bus-stop-copy>small{overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.bus-route-pills{display:flex;gap:5px;overflow:hidden;padding-top:2px}.bus-route-pills>span{min-width:31px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0 7px;border-radius:8px;color:#fff;background:var(--blue);font-size:11px;font-weight:900;white-space:nowrap}.bus-route-pills>span.muted{color:var(--muted);background:#f2eee8}.bus-stop-next{color:var(--green);font-size:12px;font-weight:900}.bus-stop-details{margin:0 12px 14px;overflow:hidden;border:1px solid #e5d7c7;border-radius:14px;background:#fff}.bus-stop-details-heading{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px 9px 11px;border-bottom:1px solid var(--line);background:#f8f2e9}.bus-stop-details-heading>span{display:grid;gap:2px}.bus-stop-details-heading strong{font-size:15px}.bus-stop-details-heading small{color:var(--muted);font-size:10px}.bus-stop-details-heading em{flex:0 0 auto;color:var(--green);font-size:10px;font-style:normal;font-weight:900}.bus-stop-details-actions{flex:0 0 auto;justify-items:end}.bus-stop-details-actions button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 10px;border:1px solid rgba(201,29,40,.28);border-radius:11px;color:var(--red);background:#fff;font-size:11px;font-weight:900;cursor:pointer}.bus-stop-details-actions button:hover{background:#fff5f3}.bus-stop-details-actions button:disabled{opacity:.58;cursor:wait}.bus-stop-refresh-error{min-height:34px;display:flex;align-items:center;justify-content:center;gap:5px;padding:7px 10px;color:#9e1d27;border-bottom:1px solid #efc5c8;background:#fff1f2;font-size:10px;font-weight:800}.bus-stop-arrival-row{width:100%;min-height:65px;display:grid;grid-template-columns:48px minmax(0,1fr) minmax(68px,auto) 19px;align-items:center;gap:9px;padding:8px 10px;border:0;border-bottom:1px solid var(--line);color:var(--ink);background:#fff;text-align:left;cursor:pointer}.bus-stop-arrival-row:last-child{border-bottom:0}.bus-stop-arrival-row:hover{background:#fffaf4}.bus-stop-arrival-row>svg{color:#8c8378}.bus-stop-arrival-copy{min-width:0;display:grid;gap:2px}.bus-stop-arrival-copy strong,.bus-stop-arrival-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bus-stop-arrival-copy strong{font-size:13px}.bus-stop-arrival-copy small{color:var(--muted);font-size:10px}.bus-stop-arrival-status{min-height:35px;display:inline-flex;align-items:center;justify-content:center;gap:2px;padding:5px 7px;border:1px solid #ded5c9;border-radius:10px;color:#625d55;background:#f7f3ed;font-size:11px;font-weight:900;line-height:1.15;text-align:center}.bus-stop-arrival-status strong{color:var(--gold);font-size:20px;line-height:1}.bus-stop-arrival-status small{color:var(--muted);font-size:9px}.bus-stop-arrival-status.soon,.bus-stop-arrival-status.arriving{color:var(--green);border-color:#b8d8c7;background:#edf8f1}.bus-stop-arrival-status.soon strong{color:var(--green)}.bus-stop-arrival-status.inactive{color:#746d65;border-color:#d9d2ca;background:#eeeae5}.bus-stop-arrival-status.alert{color:#9e1d27;border-color:#efc5c8;background:#fff1f2}.bus-stop-empty{min-height:64px;display:flex;align-items:center;justify-content:center;gap:7px;padding:12px;color:var(--muted);font-size:11px;line-height:1.4;text-align:center}.bus-stop-status-note{display:flex;align-items:flex-start;gap:5px;margin:0;padding:9px 10px;color:#6d6255;border-top:1px solid #eadfcf;background:#fff9ed;font-size:10px;line-height:1.45}.bus-stop-status-note svg{flex:0 0 auto;margin-top:1px;color:#a16c08}.bus-keypad{margin-top:13px;padding:13px;border:1px solid var(--line);border-radius:19px;background:var(--surface);box-shadow:var(--shadow)}.bus-keypad-heading{min-height:39px;display:flex;align-items:start;justify-content:space-between;gap:10px}.bus-keypad-heading>span{display:grid;gap:1px}.bus-keypad-heading strong{font-size:17px}.bus-keypad-heading small{color:var(--muted);font-size:11px}.bus-keypad-heading em{max-width:46%;overflow:hidden;color:var(--red);font-size:20px;font-style:normal;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.bus-prefix-keys{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-top:7px}.bus-prefix-keys button{min-width:0;min-height:44px;padding:0;border:1px solid #decfbe;border-radius:12px;color:#545047;background:#fffaf4;font-size:18px;font-weight:900;cursor:pointer}.bus-prefix-keys button.active{color:#fff;border-color:var(--red);background:var(--red)}.bus-number-keys{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:9px}.bus-number-keys button{min-width:0;min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:0 5px;border:1px solid var(--line);border-radius:12px;color:#36332e;background:#fff;font-size:21px;font-weight:900;cursor:pointer;box-shadow:0 3px 7px #362b1e0d}.bus-number-keys button:active,.bus-prefix-keys button:active{transform:scale(.96)}.bus-number-keys .delete-key{color:var(--muted);background:#f6f1ea}.bus-number-keys .confirm-key{color:#fff;border-color:var(--green);background:var(--green);font-size:13px}.bus-number-keys .confirm-key:disabled{color:#a49d94;border-color:#e2d9cd;background:#eee9e2;cursor:not-allowed;box-shadow:none}.bus-popular-routes{align-items:center;padding-bottom:2px}.bus-popular-routes>span{color:var(--muted);font-size:12px;font-weight:900}.bus-route-results{margin-top:16px}.bus-route-results .section-heading-row h2{min-width:0;overflow:hidden;font-size:22px;text-overflow:ellipsis;white-space:nowrap}.overlay.bus-journey-overlay{position:fixed;inset:50% auto auto 50%;width:min(100vw,960px);height:min(var(--app-viewport-height, 100dvh),844px);z-index:70;transform:translate(-50%,-50%)}.bus-journey-sheet{max-height:min(90%,760px);display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:9px;padding:14px 14px max(17px,env(safe-area-inset-bottom))}.bus-journey-header{display:grid!important;grid-template-columns:54px minmax(0,1fr) 44px 44px;align-items:center;gap:8px}.bus-journey-header>.bus-badge{width:54px;min-height:42px;font-size:18px;font-weight:900}.bus-journey-header>div{min-width:0;display:grid;gap:1px}.bus-journey-header .eyebrow{overflow:hidden;color:var(--green);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.bus-journey-header h2{margin:0;font-size:23px}.bus-journey-header .bus-journey-favorite.active{color:#c68209;border-color:#e5bd72;background:#fff1cf}.bus-journey-selected-stop{min-height:66px;display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px 11px;border:1px solid #b8d8c7;border-radius:15px;background:#f1faf5}.bus-journey-selected-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;color:#fff;background:var(--green)}.bus-journey-selected-stop>span:nth-child(2){min-width:0;display:grid;gap:2px}.bus-journey-selected-stop small{color:#617368;font-size:10px;font-weight:800}.bus-journey-selected-stop strong{overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.bus-journey-selected-stop>em{min-height:34px;display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border:1px solid #d7bb77;border-radius:11px;color:#9b6a08;background:#fffaf0;font-size:12px;font-style:normal;font-weight:900;white-space:nowrap}.bus-journey-selected-stop>em.arriving{color:var(--green);border-color:#8fc5a7;background:#fff}.bus-journey-refresh-row{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:9px;padding:5px 5px 5px 10px;border:1px solid #d9d0c5;border-radius:13px;background:#fffaf4}.bus-journey-refresh-row>span{min-width:0;display:grid;gap:1px}.bus-journey-refresh-row strong{color:var(--ink);font-size:11px}.bus-journey-refresh-row small{overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.bus-journey-refresh-row button{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 10px;border:0;border-radius:10px;color:#fff;background:var(--red);font-size:11px;font-weight:900;white-space:nowrap;cursor:pointer}.bus-journey-refresh-row button:disabled{opacity:.58;cursor:wait}.bus-journey-content{min-height:0;overflow-y:auto;border:1px solid var(--line);border-radius:16px;background:#fff;overscroll-behavior:contain}.bus-journey-refresh-error{min-height:36px;display:flex;align-items:center;justify-content:center;gap:5px;padding:7px 10px;color:#9e1d27;border-bottom:1px solid #efc5c8;background:#fff1f2;font-size:10px;font-weight:800}.bus-journey-state{min-height:230px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:24px;color:var(--green);text-align:center}.bus-journey-state strong{color:var(--ink);font-size:16px}.bus-journey-state small{max-width:330px;color:var(--muted);font-size:12px;line-height:1.5}.bus-journey-state.error-state{color:#9e1d27;background:#fff8f7}.bus-journey-state button{min-height:42px;margin-top:4px;padding:0 17px;border:0;border-radius:12px;color:#fff;background:var(--red);font-weight:900;cursor:pointer}.bus-journey-route-summary{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:7px;padding:11px 12px;border-bottom:1px solid var(--line);background:#faf6ef}.bus-journey-route-summary>span{min-width:0;display:grid;gap:2px}.bus-journey-route-summary>span:nth-of-type(2){text-align:right}.bus-journey-route-summary small{color:var(--muted);font-size:10px;font-weight:800}.bus-journey-route-summary strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.bus-journey-route-summary>svg{color:var(--red)}.bus-journey-route-summary>em{grid-column:1 / -1;color:var(--muted);font-size:10px;font-style:normal;font-weight:800;text-align:center}.bus-journey-timeline{margin:0;padding:5px 0 7px;list-style:none}.bus-journey-timeline li{min-height:59px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;padding:6px 12px}.bus-journey-timeline li.selected{margin:2px 7px;padding-inline:7px;border:1px solid #a9d5bb;border-radius:13px;background:#eff9f3}.bus-journey-node{position:relative;align-self:stretch;display:grid;place-items:center;color:#fff}.bus-journey-timeline li:not(:last-child) .bus-journey-node:after{position:absolute;top:50%;bottom:-50%;left:calc(50% - 1px);width:2px;content:"";background:#d8d1c8}.bus-journey-node i{position:relative;z-index:1;width:12px;height:12px;border:3px solid white;border-radius:50%;background:var(--blue);box-shadow:0 0 0 2px #a7cadb}.bus-journey-timeline li.before .bus-journey-node i{background:#a49d94;box-shadow:0 0 0 2px #d5cec5}.bus-journey-node svg{position:relative;z-index:1;width:30px;height:30px;padding:5px;border:3px solid white;border-radius:10px;background:var(--green);box-shadow:0 0 0 2px #8bc2a4}.bus-journey-timeline li>span:nth-child(2){min-width:0;display:grid;gap:2px}.bus-journey-timeline li strong{overflow:hidden;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.bus-journey-timeline li small{color:var(--muted);font-size:10px;font-weight:750}.bus-journey-timeline li.selected strong{color:#105f39}.bus-journey-timeline li>em{min-height:30px;display:inline-flex;align-items:center;padding:4px 8px;border-radius:10px;color:var(--green);background:#fff;font-size:10px;font-style:normal;font-weight:900;white-space:nowrap}.bus-journey-timeline li>.bus-journey-eta{min-width:52px;justify-content:center;gap:2px;color:#fff;background:var(--green)}.bus-journey-eta>strong{color:inherit!important;font-size:15px!important;line-height:1}.bus-journey-eta>small{color:inherit!important;font-size:9px!important;line-height:1}.bus-journey-timeline li>.bus-journey-eta.arriving{min-width:62px;font-size:9px}.bus-journey-timeline li>.bus-journey-eta.status{max-width:72px;color:var(--muted);border:1px solid var(--line);background:#f7f3ec;line-height:1.2;text-align:center;white-space:normal}.bus-journey-timeline li>.bus-journey-eta.status.passed{color:#7b756d;background:#f0ece6}.bus-journey-timeline li>.bus-journey-eta.status.inactive{color:#7b756d;background:#eee9e2}.bus-journey-timeline li>.bus-journey-eta.status.alert{color:#9e1d27;border-color:#efb9bd;background:#fff1f1}.bus-journey-source{margin:0 2px}.intercity-screen{padding-top:14px}.intercity-intro{padding:0 2px 12px}.intercity-intro h2{margin-bottom:5px;font-size:25px}.intercity-intro p{font-size:14px;line-height:1.5}.intercity-scope-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;border:1px solid var(--line);border-radius:17px;background:#f2ede4}.intercity-scope-tabs button{min-width:0;min-height:54px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 8px;border:0;border-radius:12px;color:#625d55;background:transparent;font-size:17px;font-weight:900;cursor:pointer}.intercity-scope-tabs button.active{color:#fff;background:var(--green);box-shadow:0 5px 13px #16844f33}.intercity-operator-button{width:100%;min-height:59px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:13px;padding:8px 14px;border:1px solid #d8cbb9;border-radius:15px;color:var(--ink);background:#fff;text-align:left;box-shadow:0 4px 12px #362b1e0d;cursor:pointer}.intercity-operator-button:disabled{opacity:.6;cursor:wait}.intercity-operator-button>span{min-width:0;display:grid;gap:1px}.intercity-operator-button small{color:var(--muted);font-size:10px;font-weight:800}.intercity-operator-button strong{overflow:hidden;color:var(--green);font-size:18px;text-overflow:ellipsis;white-space:nowrap}.intercity-search-field{min-height:50px;display:grid;grid-template-columns:auto minmax(0,1fr) 30px;align-items:center;gap:8px;margin-top:10px;padding:0 13px;border:1px solid var(--line);border-radius:13px;background:#fff}.intercity-search-field input{width:100%;border:0;outline:0;background:transparent;font-size:15px}.intercity-search-field button{width:30px;height:30px;display:grid;place-items:center;padding:0;border:0;background:transparent;cursor:pointer}.intercity-quick-routes{align-items:center;padding:10px 0 13px}.intercity-quick-routes>span{color:var(--muted);font-size:12px;font-weight:900}.intercity-loading{min-height:120px;display:flex;align-items:center;justify-content:center;gap:9px;color:var(--muted);font-size:13px;font-weight:800}.intercity-results .section-heading-row{margin-bottom:10px}.intercity-results .section-heading-row h2{font-size:22px}.intercity-results .section-heading-row>span{color:var(--muted);font-size:11px;font-weight:800}.intercity-route-list{display:grid;gap:10px}.intercity-route-card{min-width:0;min-height:100px;display:grid;grid-template-columns:minmax(0,1fr) 48px;overflow:hidden;border:1px solid var(--line);border-radius:17px;background:var(--surface);box-shadow:var(--shadow)}.intercity-route-main{min-width:0;min-height:100px;display:grid;grid-template-columns:62px minmax(0,1fr) 19px;align-items:center;gap:11px;padding:11px 7px 11px 12px;border:0;background:transparent;text-align:left;cursor:pointer}.intercity-route-main:hover{background:#fff9f3}.intercity-route-number{min-width:58px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;padding:6px 7px;border-radius:11px;color:#fff;background:var(--blue);font-size:18px;font-weight:900;line-height:1;text-align:center}.intercity-route-copy{min-width:0;display:grid;gap:5px}.intercity-route-copy strong{font-size:17px;line-height:1.35}.intercity-route-copy small{overflow:hidden;color:var(--muted);font-size:11px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.intercity-route-main>svg{color:var(--green)}.intercity-route-favorite{width:48px;min-height:100%;display:grid;place-items:center;padding:0;border:0;border-left:1px solid var(--line);color:#91887d;background:#fffaf4;cursor:pointer}.intercity-route-favorite.active{color:#c68209;background:#fff5dc}.intercity-result-limit{margin:11px 3px 0;color:var(--muted);font-size:11px;line-height:1.5;text-align:center}.intercity-source{margin-top:14px;padding-bottom:2px;text-align:center}.intercity-operator-sheet{max-height:min(84%,710px)}.intercity-operator-list{min-height:0}.intercity-picker-empty{min-height:88px;display:grid;place-items:center;color:var(--muted);font-size:13px;text-align:center}.intercity-detail-screen{padding-top:12px}.intercity-back-button{min-height:42px;display:inline-flex;align-items:center;gap:6px;margin:-2px 0 9px;padding:0 8px 0 1px;border:0;color:var(--red);background:transparent;font-size:13px;font-weight:900;cursor:pointer}.intercity-detail-hero{min-height:126px;display:grid;grid-template-columns:66px minmax(0,1fr) 42px;align-items:center;gap:11px;padding:15px 10px 15px 14px;border:1px solid #d7c8b5;border-radius:19px;background:#fffaf4;box-shadow:var(--shadow)}.intercity-detail-hero>span:nth-child(2){min-width:0;display:grid;gap:4px}.intercity-detail-hero em{color:var(--green);font-size:11px;font-style:normal;font-weight:900}.intercity-detail-hero h2{margin:0;font-size:20px;line-height:1.35}.intercity-detail-hero p{margin:0;color:var(--muted);font-size:11px;line-height:1.4}.intercity-detail-hero>button{width:42px;height:42px;display:grid;place-items:center;padding:0;border:0;border-radius:13px;color:#c68209;background:#fff2cf;cursor:pointer}.intercity-live-meta{min-height:55px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:13px}.intercity-live-meta>span{display:grid;gap:2px}.intercity-live-meta strong{font-size:20px}.intercity-live-meta small{color:var(--muted);font-size:10px}.intercity-live-meta button{min-height:40px;display:inline-flex;align-items:center;gap:6px;padding:0 11px;border:1px solid var(--line);border-radius:12px;color:var(--red);background:#fff;font-size:12px;font-weight:900;cursor:pointer}.intercity-live-meta button:disabled{opacity:.55;cursor:wait}.intercity-refresh-note{display:flex;align-items:flex-start;gap:5px;margin:-2px 0 12px;padding:8px 10px;border-radius:11px;color:#55685c;background:#eef7f1;font-size:10px;line-height:1.45}.intercity-refresh-note svg{flex:0 0 auto;color:var(--green)}.intercity-direction-tabs{display:flex;gap:8px;overflow-x:auto;padding:2px 0 11px;scrollbar-width:none}.intercity-direction-tabs button{min-width:min(78%,250px);min-height:61px;display:grid;gap:3px;padding:8px 10px;border:1px solid var(--line);border-radius:14px;color:var(--ink);background:#fff;text-align:left;cursor:pointer}.intercity-direction-tabs button.active{color:#fff;border-color:var(--green);background:var(--green);box-shadow:0 5px 13px #16844f29}.intercity-direction-tabs span{font-size:13px;font-weight:900}.intercity-direction-tabs small{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.intercity-direction-tabs button.active small{color:#ffffffd1}.intercity-stop-list{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow)}.intercity-stop-row{min-height:70px;display:grid;grid-template-columns:31px minmax(0,1fr) minmax(72px,auto);align-items:center;gap:9px;padding:9px 10px;border-bottom:1px solid var(--line)}.intercity-stop-row:last-child{border-bottom:0}.intercity-stop-sequence{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--green);font-size:11px;font-weight:900}.intercity-stop-copy{min-width:0;display:grid;gap:3px}.intercity-stop-copy strong{overflow:hidden;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.intercity-stop-copy small{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.intercity-stop-time{min-height:37px;display:inline-flex;align-items:center;justify-content:center;gap:2px;padding:5px 8px;border:1px solid #decfbe;border-radius:10px;color:#6b6156;background:#f8f3ec;font-size:11px;font-weight:900;line-height:1.15;text-align:center}.intercity-stop-time strong{color:var(--gold);font-size:21px;line-height:1}.intercity-stop-time small{color:var(--muted);font-size:9px}.intercity-stop-time.soon,.intercity-stop-time.arriving{color:var(--green);border-color:#b8d8c7;background:#edf8f1}.intercity-stop-time.soon strong{color:var(--green)}.intercity-stop-time.status{max-width:90px}.intercity-stop-time.inactive{color:#746d65;border-color:#d9d2ca;background:#eeeae5}.metro-status,.bike-summary,.check-message,.about-panel{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:15px;background:#fff}.metro-status{color:var(--green)}.metro-status div,.bike-summary span,.check-message span,.about-panel span{display:grid;gap:3px}.metro-status span,.bike-summary small{color:var(--muted);font-size:12px}.metro-lines{margin-top:14px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}.metro-lines button{width:100%;min-height:71px;border:0;border-bottom:1px solid var(--line);background:transparent;display:grid;grid-template-columns:42px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 13px;text-align:left}.metro-lines button:last-child{border-bottom:0}.line-dot{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:900}.line-dot.blue{background:#1479b8}.line-dot.red{background:#c92a39}.line-dot.green{background:#28894e}.metro-lines button>span:nth-child(2){display:grid}.metro-lines small{color:var(--muted)}.metro-lines em{color:var(--green);font-size:12px;font-style:normal;font-weight:800}.inner-screen.metro-screen{width:100%;min-height:100%;padding:0;overflow:hidden;background:#30332f}.metro-city-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:0 10px 12px;background:#30332f}.metro-city-tabs button{min-width:0;min-height:57px;border:0;border-right:1px solid #5d5e59;color:#505355;background:#faf6ec;font-size:23px;font-weight:550;cursor:pointer}.metro-city-tabs button:first-child{border-radius:0 0 0 8px}.metro-city-tabs button:last-child{border-right:0;border-radius:0 0 8px}.metro-city-tabs button.active{color:#171916;background:#ffd000;font-weight:800}.metro-map-view{position:relative;height:496px;margin:0 10px;overflow:hidden;border:1px solid #bfc0bd;border-top:14px solid #dddddd;background:#fff;cursor:grab;touch-action:none}.metro-map-view:active{cursor:grabbing}.metro-map-view>img{position:absolute;left:0;top:0;width:100%;height:auto;display:block;transform-origin:center top;pointer-events:none;-webkit-user-select:none;user-select:none;will-change:transform}.metro-map-credit{position:absolute;right:8px;bottom:7px;z-index:2;min-height:30px;display:inline-flex;align-items:center;padding:0 8px;border:1px solid #d8d9d6;border-radius:5px;color:#087ea4;background:#ffffffeb;font-size:11px;font-weight:800;text-decoration:none}.metro-planner{display:grid;grid-template-columns:minmax(0,1fr) 78px;gap:8px 12px;align-items:center;padding:6px 14px;color:#fff;background:#30332f}.metro-station-fields{min-width:0;display:grid;gap:7px}.metro-station-row{min-width:0;display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:6px}.metro-station-row>span:first-child{color:#ffd000;font-size:24px;font-weight:550;letter-spacing:.01em}.metro-select-wrap{min-width:0;min-height:36px;display:grid;grid-template-columns:minmax(0,1fr) 18px;align-items:center;gap:4px;border-bottom:1px solid rgba(255,255,255,.22)}.metro-select-wrap select{min-width:0;width:100%;height:36px;border:0;outline:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;color:#fff;background:transparent;font-size:22px;font-weight:450;text-overflow:ellipsis;cursor:pointer}.metro-select-wrap select option{color:#191815;background:#fff}.metro-select-wrap svg{color:#ffd000;pointer-events:none}.metro-plan-button{width:78px;min-height:62px;border:0;border-radius:7px;color:#171916;background:#ffd000;display:grid;place-items:center;align-content:center;gap:1px;font-size:27px;font-weight:750;cursor:pointer}.metro-plan-button:hover{background:#ffda32}.metro-plan-button:disabled{color:#74746f;background:#d8d1a8;cursor:not-allowed}.metro-plan-button.is-planning{color:#3d381e;background:#ffdc4a}.metro-plan-button.is-success{color:#fff;background:#23875e;animation:metro-plan-confirm .58s ease-out}.metro-plan-button.is-planning span,.metro-plan-button.is-success span{font-size:13px;font-weight:850;line-height:1.05}.metro-plan-result{grid-column:1 / -1;display:none;align-items:center;gap:6px;color:#effff5;font-size:12px;font-weight:750}.metro-plan-result.visible{min-height:22px;display:flex}.metro-plan-result svg{color:#64d594}.metro-plan-result.error{color:#ffe3dd}.metro-plan-result.error svg{color:#ff8c78}.metro-route-card{margin:12px 14px 18px;overflow:hidden;border:1px solid #dedfdc;border-radius:16px;background:#fff;box-shadow:0 7px 20px #181e1b14;scroll-margin-top:12px}.metro-route-card:focus{outline:none}.metro-route-card.is-revealed{animation:metro-route-reveal .55s ease-out both}@keyframes metro-plan-confirm{0%{transform:scale(.94);box-shadow:0 0 #48cd9180}55%{transform:scale(1.05);box-shadow:0 0 0 8px #48cd9121}to{transform:scale(1);box-shadow:0 0 #48cd9100}}@keyframes metro-route-reveal{0%{opacity:0;transform:translateY(18px);box-shadow:0 0 0 3px #ffd00073}to{opacity:1;transform:translateY(0);box-shadow:0 7px 20px #181e1b14}}.metro-route-heading{display:grid;gap:6px;padding:14px 15px 11px;border-bottom:1px solid #eceeeb}.metro-route-heading>span{display:flex;align-items:center;gap:7px;color:#177556;font-size:13px;font-weight:850}.metro-route-heading>strong{color:#20231f;font-size:18px;line-height:1.35}.metro-route-stats{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #eceeeb;background:#f7f8f5}.metro-route-stats span{padding:10px 5px;color:#686d68;font-size:12px;text-align:center}.metro-route-stats span+span{border-left:1px solid #e2e4e0}.metro-route-stats strong{margin-right:2px;color:#20231f;font-size:18px}.metro-route-steps{display:grid;margin:0;padding:6px 15px 3px;list-style:none}.metro-route-steps li{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr);gap:11px;align-items:flex-start;padding:11px 0}.metro-route-steps li+li{border-top:1px dashed #dedfdc}.metro-line-badge{min-width:42px;min-height:32px;display:inline-flex;align-items:center;justify-content:center;align-self:center;padding:3px 5px;border-radius:8px;font-size:12px;font-weight:900;letter-spacing:-.02em}.metro-step-copy{min-width:0;display:grid;gap:3px}.metro-step-copy>strong{color:#252824;font-size:15px}.metro-step-copy>small{color:#656b65;font-size:12px;line-height:1.45}.metro-step-copy>span{color:#272b27;font-size:13px;font-weight:750;overflow-wrap:anywhere}.metro-route-note{margin:0;padding:10px 15px 13px;color:#777c77;background:#fafbf9;font-size:11px;line-height:1.55}.metro-station-trigger-btn{width:100%;height:48px;border:1px solid var(--line);border-radius:12px;padding:0 13px;font-size:15px;font-weight:750;background:#fff;display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer;color:var(--ink);transition:border-color .2s,background-color .2s}.metro-station-trigger-btn:hover{border-color:#ffd000;background-color:#fffdf6}.metro-station-trigger-text.placeholder{color:var(--muted);font-weight:400}.metro-picker-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10000;background:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeIn .25s ease-out}.metro-picker-card{width:100%;max-width:580px;height:80vh;max-height:680px;background:#ffffffe6;border:1px solid rgba(255,255,255,.4);border-radius:24px;box-shadow:0 20px 40px #00000026;display:flex;flex-direction:column;overflow:hidden;animation:slideUp .3s cubic-bezier(.16,1,.3,1)}.metro-picker-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 12px}.metro-picker-title h2{font-size:20px;font-weight:800;color:#1a1a1a;margin:0}.metro-picker-title small{color:var(--muted);font-size:12px;font-weight:500}.metro-picker-close-btn{background:#f0f0f0;border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:#666;cursor:pointer;transition:background-color .2s,color .2s}.metro-picker-close-btn:hover{background:#e4e4e4;color:#000}.metro-picker-search-wrapper{margin:0 24px 16px;position:relative;display:flex;align-items:center}.metro-picker-search-wrapper .search-icon{position:absolute;left:14px;color:#888;pointer-events:none}.metro-picker-search-input{width:100%;height:48px;border:1.5px solid #e0e0e0;border-radius:14px;padding:0 40px 0 42px;font-size:15px;color:#222;background:#f9f9f9;transition:all .25s ease}.metro-picker-search-input:focus{outline:none;border-color:#ffd000;background:#fff;box-shadow:0 0 0 3px #ffd00026}.metro-picker-search-clear{position:absolute;right:12px;background:#e0e0e0;border:none;border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;color:#555;cursor:pointer}.metro-picker-search-clear:hover{background:#d0d0d0;color:#111}.metro-picker-body{flex:1;display:flex;overflow:hidden;border-top:1px solid #eee}.metro-picker-sidebar{width:150px;background:#f7f7f7;overflow-y:auto;border-right:1px solid #eee;padding:12px 6px;display:flex;flex-direction:column;gap:6px;scrollbar-width:none}.metro-picker-sidebar::-webkit-scrollbar{display:none}.metro-picker-line-tab{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid transparent;border-radius:12px;background:transparent;text-align:left;cursor:pointer;transition:all .2s ease;font-weight:700;color:#444}.metro-picker-line-tab:hover{background:#efefef}.metro-picker-line-tab.active{background:#fff;color:#000;border-color:#ddd;box-shadow:0 4px 10px #0000000d}.metro-picker-line-tab .line-badge{font-size:10px;font-weight:900;min-width:24px;height:18px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px}.metro-picker-line-tab .line-name{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metro-picker-content{flex:1;overflow-y:auto;padding:16px 20px}.metro-picker-content.full-width{width:100%}.metro-picker-station-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}.metro-picker-station-btn{background:#fff;border:1px solid #e2e4e0;border-radius:14px;padding:10px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;transition:all .25s cubic-bezier(.16,1,.3,1);min-height:72px;text-align:center}.metro-picker-station-btn:hover:not(:disabled){border-color:#ffd000;background-color:#fffdf5;transform:translateY(-2px);box-shadow:0 6px 12px #ffd0001f}.metro-picker-station-btn.selected{background:#ffd000;border-color:#ffd000;color:#191815;font-weight:800}.metro-picker-station-btn.disabled{opacity:.35;background:#f5f5f5;border-color:#e8e8e8;cursor:not-allowed}.metro-picker-station-btn .station-name{font-size:14px;font-weight:750;color:inherit;word-break:break-all;line-height:1.25}.metro-picker-station-btn .station-badges{display:flex;flex-wrap:wrap;gap:3px;justify-content:center}.metro-picker-station-btn .station-code-badge{font-size:9px;font-weight:900;color:#fff;padding:1px 4px;border-radius:4px;min-width:22px;text-align:center;line-height:1.1}.metro-picker-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 0;color:#999;gap:12px}.metro-picker-empty-state p{margin:0;font-size:14px}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:580px){.metro-picker-overlay{padding:0;align-items:flex-end}.metro-picker-card{height:85vh;max-height:85vh;border-radius:24px 24px 0 0;border-bottom:none;animation:slideUpMobile .35s cubic-bezier(.16,1,.3,1)}.metro-picker-sidebar{width:95px;padding:10px 4px}.metro-picker-line-tab{padding:8px 6px;flex-direction:column;align-items:center;gap:4px;text-align:center}.metro-picker-line-tab .line-name{font-size:11px}.metro-picker-station-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px}.metro-picker-station-btn{min-height:64px;padding:8px 4px}.metro-picker-station-btn .station-name{font-size:13px}}@keyframes slideUpMobile{0%{transform:translateY(100%)}to{transform:translateY(0)}}.number-checker{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:14px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow)}.invoice-periods{display:flex;gap:8px;overflow-x:auto;margin:-5px 0 12px;scrollbar-width:none}.invoice-periods button{min-height:38px;border:1px solid var(--line);border-radius:20px;color:var(--ink);background:#fff;padding:0 14px;font-size:13px;font-weight:800;white-space:nowrap;cursor:pointer}.invoice-periods button.active{color:#fff;border-color:var(--red);background:var(--red)}.number-checker label{grid-column:1 / -1;color:var(--muted);font-size:12px;font-weight:850}.number-checker input{min-width:0;height:54px;border:1px solid var(--line);border-radius:12px;padding:0 13px;font-size:25px;letter-spacing:.18em;font-weight:900}.check-message{margin-top:12px;align-items:flex-start;color:var(--blue)}.check-message.is-match{color:var(--green);border-color:#b9ddc6;background:#f5fcf8}.check-message span{color:var(--ink)}.check-message span:not(strong){font-size:13px}.winning-numbers{margin-top:18px;padding:15px;border:1px solid var(--line);border-radius:18px;background:#fff}.winning-numbers .section-heading-row{margin-bottom:5px}.winning-numbers .section-heading-row a{display:inline-flex;align-items:center;gap:3px;color:var(--blue);font-size:13px;font-weight:800;text-decoration:none}.winning-numbers>div:not(.section-heading-row){display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.winning-numbers>div span{color:var(--muted)}.winning-numbers>div strong{letter-spacing:.08em}.winning-numbers .first-prize-row{align-items:flex-start;gap:16px}.winning-numbers .first-prize-row strong{max-width:70%;line-height:1.7;text-align:right;overflow-wrap:anywhere}.claim-period{margin:12px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.lottery-list{display:grid;gap:11px}.lottery-list article{padding:14px;border:1px solid var(--line);border-radius:16px;background:#fff}.lottery-title{display:flex;justify-content:space-between;margin-bottom:12px}.lottery-title strong{font-size:19px}.lottery-title span{color:var(--muted);font-size:13px}.balls{display:flex;flex-wrap:nowrap;gap:6px}.balls i{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(#eb5962,#b6101b);font-size:18px;font-style:normal;font-weight:900;line-height:1}.balls i.special{color:#191815;background:linear-gradient(#ffd96f,#d59805)}.external-button{min-height:50px;margin-top:14px;border:1px solid var(--line);border-radius:13px;color:var(--blue);background:#fff;display:flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;font-weight:850}.bike-summary{margin-bottom:13px;color:var(--green)}.bike-summary span{color:var(--ink)}.bike-mode-switch{margin-bottom:13px}.bike-mode-switch button{display:inline-flex;align-items:center;justify-content:center;gap:7px}.bike-locate-card{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;padding:16px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow)}.bike-locate-card>span:nth-child(2){min-width:0;display:grid;gap:5px}.bike-locate-card strong{font-size:17px}.bike-locate-card small{color:var(--muted);font-size:12px;line-height:1.5}.bike-locate-icon{width:48px;height:48px;border-radius:50%;color:var(--green);background:#edf8f2;display:grid;place-items:center}.bike-locate-card .primary-button{grid-column:1 / -1}.bike-region-panel{padding:14px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow)}.bike-region-panel .section-heading-row{margin-bottom:12px}.bike-region-panel .section-heading-row h2{font-size:20px}.bike-region-panel .section-heading-row small{color:var(--muted);font-size:11px}.bike-region-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.bike-region-grid button{min-width:0;min-height:58px;border:1px solid var(--line);border-radius:13px;color:var(--ink);background:#fffdf9;display:grid;grid-template-columns:32px minmax(0,1fr) 18px;align-items:center;gap:7px;padding:8px 10px;text-align:left;cursor:pointer}.bike-region-grid button svg:first-child{color:var(--gold)}.bike-region-grid button strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bike-region-grid button.active{color:var(--red);border-color:#c91d2873;background:#fff7f5}.bike-region-grid button:disabled{opacity:.6;cursor:wait}.youbike-screen .bike-summary{margin-top:15px}.station-list a{width:100%;min-height:78px;border:0;border-bottom:1px solid var(--line);color:var(--ink);background:transparent;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:11px 13px;text-align:left;text-decoration:none}.station-list a:last-child{border-bottom:0}.station-list a>span:first-child{min-width:0;display:grid;gap:4px}.station-list a>span:first-child strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.station-list a.is-paused{opacity:.58}.station-list small{color:var(--muted)}.bike-count{display:grid;grid-template-columns:auto auto;gap:1px 4px;color:var(--muted);font-size:10px}.bike-count b,.bike-count em{font-size:19px;font-style:normal;color:var(--green)}.bike-count em{color:var(--blue)}.parking-list,.traffic-list{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}.parking-list article{min-height:78px;display:grid;grid-template-columns:58px minmax(0,1fr) 34px;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line)}.parking-list article:last-child,.traffic-list article:last-child{border-bottom:0}.parking-list article>span:nth-child(2){min-width:0;display:grid;gap:4px}.parking-list article>span:nth-child(2) strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parking-list article>span:nth-child(2) small{color:var(--muted);font-size:11px;line-height:1.4}.parking-list article>a{width:34px;height:34px;border-radius:50%;color:#fff;background:var(--green);display:grid;place-items:center}.parking-count{width:56px;min-height:52px;border:1px solid #8bc6a6;border-radius:13px;color:var(--green);background:#f4fbf7;display:grid;place-items:center;align-content:center}.parking-count strong{font-size:21px;line-height:1}.parking-count small{margin-top:3px;font-size:10px;font-weight:800}.parking-count.is-full{color:var(--red);border-color:#e5a9ad;background:#fff5f5}.traffic-screen{--traffic-green: #176f5e;--traffic-green-soft: #edf7f3;--traffic-line: #dce5e1;padding-top:20px}.traffic-hero{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:11px;padding:0 2px 19px}.traffic-hero-icon{width:42px;height:42px;display:grid;place-items:center;color:var(--traffic-green)}.traffic-hero h2{margin:5px 0 0;color:#17332c;font-size:clamp(20px,5.1vw,22px);line-height:1.35;letter-spacing:-.45px;white-space:nowrap}.commute-alert-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:start;gap:11px;margin:0 0 16px;padding:14px;border:1px solid #d8e4df;border-radius:18px;background:linear-gradient(135deg,#fffefb,#f2f8f5);box-shadow:0 7px 18px #176f5e14}.commute-alert-card.is-active{border-color:#9dceba;background:linear-gradient(135deg,#f1fbf5,#fffdf8)}.commute-alert-card-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;color:var(--traffic-green);background:#e4f4ed}.commute-alert-card-copy{min-width:0;display:grid;gap:4px}.commute-alert-card-status{width:fit-content;padding:3px 8px;border-radius:999px;color:#176f5e;background:#dff2ea;font-size:10px;font-weight:900}.commute-alert-card-copy h3{margin:1px 0 2px;color:#17332c;font-size:16px}.commute-alert-card-copy p{min-width:0;display:flex;align-items:flex-start;gap:5px;margin:0;color:#5e6763;font-size:11px;line-height:1.5}.commute-alert-card-copy p svg{flex:0 0 auto;margin-top:1px;color:var(--traffic-green)}.commute-alert-card-copy p span{min-width:0;display:grid}.commute-alert-card-copy p strong{color:#223a34;font-size:12px}.commute-alert-card-copy small{color:#8a5a08;font-size:10px;line-height:1.45}.commute-alert-inline-error{color:var(--red)!important}.commute-alert-card-actions{display:grid;justify-items:stretch;gap:5px}.commute-alert-card-actions button{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:0 10px;border:1px solid #b7d7cb;border-radius:10px;color:var(--traffic-green);background:#fff;font-size:11px;font-weight:900;cursor:pointer;white-space:nowrap}.commute-alert-card-actions .primary-button{color:#fff;border-color:var(--traffic-green);background:var(--traffic-green)}.commute-alert-card-actions button:disabled{opacity:.55;cursor:wait}.overlay.commute-alert-overlay{position:fixed;inset:50% auto auto 50%;width:min(100vw,960px);height:min(var(--app-viewport-height, 100dvh),844px);z-index:90;transform:translate(-50%,-50%)}.commute-alert-sheet{max-height:92%;overflow-y:auto;padding:16px 15px calc(20px + env(safe-area-inset-bottom,0px))}.commute-alert-intro{margin:12px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.commute-alert-slot-list{display:grid;gap:11px;margin-top:13px}.commute-alert-slot{display:grid;gap:11px;padding:13px;border:1px solid var(--line);border-radius:16px;background:#fffdf9}.commute-alert-slot-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.commute-alert-slot-heading>strong{min-width:62px;min-height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0 11px;border-radius:999px;color:#fff;background:var(--red);font-size:13px}.commute-alert-switch{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;font-weight:850;cursor:pointer}.commute-alert-switch input{width:19px;height:19px;accent-color:var(--green)}.commute-alert-time-row,.commute-alert-route-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px}.commute-alert-time-row label,.commute-alert-route-fields label{min-width:0;display:grid;gap:5px;color:var(--muted);font-size:11px;font-weight:850}.commute-alert-time-row input,.commute-alert-time-row select,.commute-alert-route-fields select{width:100%;height:43px;min-width:0;padding:0 9px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff;font-weight:850}.commute-alert-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.commute-alert-days button{min-width:0;height:34px;padding:0;border:1px solid var(--line);border-radius:10px;color:var(--muted);background:#fff;font-size:12px;font-weight:900;cursor:pointer}.commute-alert-days button.active{color:#fff;border-color:var(--green);background:var(--green)}.commute-alert-policy{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;margin-top:13px;padding:11px;border-radius:13px;color:#176f5e;background:#edf8f2}.commute-alert-policy p{display:grid;gap:2px;margin:0}.commute-alert-policy strong{font-size:12px}.commute-alert-policy span{color:#52645e;font-size:10px;line-height:1.5}.commute-alert-error{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:7px;margin-top:11px;padding:10px;border-radius:11px;color:#a9131c;background:#fff0ef;font-size:12px;line-height:1.45}.commute-alert-actions{display:grid;grid-template-columns:.8fr 1.2fr;gap:9px;margin-top:14px}.commute-alert-actions>button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:12px;background:#fff;font-weight:900;cursor:pointer}.commute-alert-actions>.primary-button{color:#fff;border-color:var(--red);background:var(--red)}.commute-alert-actions>button:disabled{opacity:.55;cursor:not-allowed}@media(max-width:560px){.commute-alert-card{grid-template-columns:40px minmax(0,1fr)}.commute-alert-card-icon{width:40px;height:40px}.commute-alert-card-actions{grid-column:1 / -1;grid-template-columns:1fr auto}.commute-alert-card-actions button{min-height:42px}}.traffic-filters{display:grid;gap:18px;padding:1px 2px 17px;border-bottom:1px solid var(--traffic-line)}.traffic-filter-group{display:grid;gap:9px;min-width:0}.traffic-filter-group h3{margin:0;color:#63736e;font-size:15px}.traffic-chip-row{display:flex;gap:8px;overflow-x:auto;padding:1px 0 5px;scrollbar-width:thin;scrollbar-color:#b7bcb9 transparent}.traffic-chip-row button{min-width:66px;min-height:44px;flex:0 0 auto;border:1px solid var(--traffic-line);border-radius:24px;background:#fff;color:#52635e;padding:0 17px;font-size:15px;font-weight:850;cursor:pointer}.traffic-chip-row button.active{color:#fff;border-color:var(--traffic-green);background:var(--traffic-green);box-shadow:0 4px 12px #176f5e26}.traffic-chip-row button:active{transform:scale(.97)}.traffic-chip-row.direction-row button{min-width:66px}.traffic-loading{min-height:88px;color:var(--traffic-green);font-weight:800}.traffic-road-list{display:grid;gap:10px;padding-top:17px}.traffic-road-card{overflow:hidden;border:1px solid var(--traffic-line);border-radius:16px;background:#fff;box-shadow:0 3px 12px #263f3709}.traffic-road-card.is-open{background:#fbfdfc}.traffic-road-toggle{width:100%;min-height:67px;display:grid;grid-template-columns:44px minmax(0,1fr) auto 18px;align-items:center;gap:9px;border:0;background:transparent;padding:10px 13px;text-align:left;cursor:pointer}.traffic-road-toggle:hover{background:#f7faf8}.traffic-road-toggle>strong{min-width:0;color:#17332c;font-size:17px;line-height:1.3}.traffic-road-icon{width:39px;height:39px;display:grid;place-items:center;border-radius:11px;color:var(--traffic-green);background:var(--traffic-green-soft)}.traffic-road-icon.other-freeway{color:var(--red);background:#fff1f1}.traffic-road-icon.highway{color:#bd7900;background:#fff7dd}.traffic-road-status{min-height:32px;display:inline-flex;align-items:center;justify-content:center;gap:4px;border-radius:18px;padding:0 10px;font-size:12px;font-weight:900;white-space:nowrap}.traffic-road-status.is-normal{color:var(--traffic-green);border:1px solid #c8ded7;background:var(--traffic-green-soft)}.traffic-road-status.has-events{color:#a63b36;border:1px solid #f0c7c3;background:#fff0ee}.traffic-road-caret{color:#869b94;transition:transform .18s ease}.traffic-road-card.is-open .traffic-road-caret{transform:rotate(180deg)}.traffic-event-list{display:grid;gap:10px;padding:12px;border-top:1px solid var(--traffic-line);background:#f8fbf9}.traffic-event-card{padding:14px;border:1px solid var(--traffic-line);border-radius:14px;background:#fff;box-shadow:0 4px 13px #233b330a}.traffic-event-card header{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:8px;color:#7a8883;font-size:11px}.traffic-event-card header>span:last-child{overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.traffic-event-badge{min-height:28px;display:inline-flex;align-items:center;gap:4px;border-radius:7px;padding:0 8px;color:#1769aa;background:#e8f4ff;font-size:12px;font-weight:900}.traffic-event-badge.type-1{color:#a72f32;background:#fff0ef}.traffic-event-badge.type-2{color:#8b5b00;background:#fff5d8}.traffic-event-badge.type-3{color:#9b4d00;background:#fff0d9}.traffic-event-badge.type-4{color:#1769aa;background:#e8f4ff}.traffic-event-badge.type-5,.traffic-event-badge.type-6{color:#6a499a;background:#f4edff}.traffic-event-card h3{margin:15px 0 7px;color:#17332c;font-size:20px}.traffic-event-card p{margin:0;color:#62706c;font-size:14px;line-height:1.65;overflow-wrap:anywhere}.traffic-event-card .traffic-event-location{margin-bottom:5px;color:#284a42;font-weight:850}.traffic-event-card small{display:block;margin-top:10px;color:#6e7f79;font-size:11px;line-height:1.45}.traffic-source{margin-top:14px}.traffic-external{color:var(--traffic-green);border-color:#cadcd6;background:#f8fcfa}@media(max-width:380px){.traffic-hero h2{font-size:19px;white-space:normal}.traffic-road-toggle{grid-template-columns:40px minmax(0,1fr) auto 16px;gap:7px;padding-inline:10px}.traffic-road-toggle>strong{font-size:15px}.traffic-road-status{padding-inline:8px;font-size:11px}.traffic-event-card header{grid-template-columns:auto auto}.traffic-event-card header>span:last-child{grid-column:1 / -1;text-align:left}}.events-screen{display:grid;align-content:start;gap:13px;background:#fbfaf7}.events-hero{min-height:122px;display:grid;grid-template-columns:minmax(0,1fr) 58px;align-items:center;gap:14px;padding:17px 18px;border:1px solid #edd6b9;border-radius:20px;color:#4f2c19;background:radial-gradient(circle at 88% 18%,rgba(227,154,0,.19),transparent 34%),linear-gradient(145deg,#fff9ec,#fff4e6);box-shadow:0 8px 20px #653f1812}.events-hero .eyebrow{color:#ad501c}.events-hero h2{margin:4px 0 5px;font-size:25px;letter-spacing:-.04em}.events-hero p{max-width:650px;margin:0;color:#775e4c;font-size:13px;line-height:1.55}.events-hero>svg{justify-self:end;color:#bf5b22}.events-filter-panel{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:19px;background:var(--surface);box-shadow:0 6px 18px #362b1e0f}.events-search{min-height:50px;display:grid;grid-template-columns:auto minmax(0,1fr) 30px;align-items:center;gap:8px;padding:0 12px;border:1px solid #dfd3c3;border-radius:13px;background:#fff}.events-search>svg{color:var(--red)}.events-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;font-size:16px}.events-search button{width:30px;height:30px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;color:var(--muted);background:transparent;cursor:pointer}.events-select-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.events-select-row label{min-width:0;display:grid;gap:5px;color:var(--muted);font-size:12px;font-weight:900}.events-select-row select{width:100%;min-height:47px;padding:0 37px 0 12px;border:1px solid #dfd3c3;border-radius:12px;color:var(--ink);background:#fff;font-size:15px;font-weight:800}.events-topic-filter{display:grid;gap:8px}.events-topic-filter h3{margin:0;color:#4f4a44;font-size:13px}.events-topic-chips{display:flex;flex-wrap:wrap;gap:7px}.events-topic-chips button{min-height:38px;padding:0 13px;border:1px solid var(--line);border-radius:20px;color:#5e5952;background:#faf7f1;font-size:13px;font-weight:850;white-space:nowrap;cursor:pointer}.events-topic-chips button.active{color:#fff;border-color:var(--red);background:var(--red)}.events-topic-chips button.is-free{color:#116c42;border-color:#b7d9c7;background:#f1faf5}.events-topic-chips button.is-free.active{color:#fff;border-color:var(--green);background:var(--green)}.events-filter-summary{min-height:25px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px;font-weight:800}.events-filter-summary button{min-height:32px;padding:0 7px;border:0;color:var(--red);background:transparent;font-size:12px;font-weight:900;cursor:pointer}.live-event-list{overflow:hidden;border:1px solid var(--line);border-radius:19px;background:var(--surface);box-shadow:var(--shadow)}.live-event-card{width:100%;min-height:108px;display:grid;grid-template-columns:58px minmax(0,1fr) 20px;align-items:center;gap:11px;padding:13px 12px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.live-event-card:last-child{border-bottom:0}.live-event-card:hover{background:#fffaf2}.live-event-card>time{width:56px;min-height:57px;display:grid;align-content:center;justify-items:center;gap:2px;padding:5px 2px;border-radius:13px;color:#a72730;background:#fff1ef}.live-event-card>time strong{font-size:15px;line-height:1.15;text-align:center}.live-event-card>time small{color:inherit;font-size:10px;font-weight:850;text-align:center}.live-event-card>time.is-ongoing{color:#116c42;background:#eaf8f0}.live-event-copy{min-width:0;display:grid;gap:5px}.live-event-copy>strong{font-size:16px;line-height:1.38;overflow-wrap:anywhere}.live-event-copy>small{min-width:0;display:flex;align-items:center;gap:4px;overflow:hidden;color:var(--muted);font-size:11px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.live-event-copy>small svg{flex:0 0 auto;color:#b9602d}.live-event-badges{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.live-event-badges em,.event-topic-badge,.event-free-badge{min-height:22px;display:inline-flex;align-items:center;padding:0 8px;border-radius:11px;color:#70551a;background:#fff3cf;font-size:10px;font-style:normal;font-weight:900}.live-event-badges .topic-family,.event-topic-badge.topic-family{color:#9b3c69;background:#fff0f7}.live-event-badges .topic-arts,.event-topic-badge.topic-arts{color:#6b4b9b;background:#f3edff}.live-event-badges .topic-food,.event-topic-badge.topic-food{color:#9b4d00;background:#fff0d9}.live-event-badges .topic-festival,.event-topic-badge.topic-festival{color:#a72f32;background:#fff0ef}.live-event-badges .topic-outdoor,.event-topic-badge.topic-outdoor{color:#176b45;background:#eaf8f0}.live-event-badges .topic-sports,.event-topic-badge.topic-sports{color:#1769aa;background:#e8f4ff}.live-event-badges .topic-other,.event-topic-badge.topic-other{color:#655e56;background:#f1ede7}.live-event-badges em.is-free,.event-free-badge{color:#116c42;background:#eaf8f0}.live-event-badges em.is-city{color:#70551a;background:#fff7dd}.live-event-card>svg{color:#a89e92}.events-loading,.events-empty,.events-error{border:1px solid var(--line);border-radius:16px;background:#fff}.events-error{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;margin-top:0!important;text-align:left}.events-error button,.events-empty button{min-height:36px;padding:0 11px;border:1px solid currentColor;border-radius:10px;color:inherit;background:transparent;font-size:12px;font-weight:900;cursor:pointer}.events-empty{display:grid;grid-template-columns:auto minmax(0,1fr) auto}.events-source{margin-top:0;padding:0 3px 12px}.events-source a{color:var(--blue);font-weight:850}.overlay.event-detail-overlay{position:fixed;inset:50% auto auto 50%;width:min(100vw,960px);height:min(var(--app-viewport-height, 100dvh),844px);z-index:70;transform:translate(-50%,-50%)}.event-detail-sheet{max-height:min(88%,740px);overflow-y:auto;padding:16px 16px 23px}.event-detail-header{align-items:flex-start!important;gap:12px}.event-detail-header>div{min-width:0}.event-detail-header h2{margin-top:4px;font-size:22px;line-height:1.4;overflow-wrap:anywhere}.event-detail-header .icon-button{flex:0 0 44px}.event-detail-badges{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.event-detail-facts{display:grid;margin:0;border:1px solid var(--line);border-radius:15px;background:#fffdf9}.event-detail-facts>div{display:grid;grid-template-columns:82px minmax(0,1fr);gap:9px;padding:11px 12px;border-bottom:1px solid var(--line)}.event-detail-facts>div:last-child{border-bottom:0}.event-detail-facts dt{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;font-weight:850}.event-detail-facts dt svg{color:#b9602d}.event-detail-facts dd{margin:0;font-size:14px;font-weight:850;line-height:1.45;overflow-wrap:anywhere}.event-detail-description{max-height:180px;overflow-y:auto;margin:13px 1px 0;color:#625b53;font-size:13px;line-height:1.7}.event-detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}.event-detail-actions .primary-button,.event-detail-actions .external-button{min-width:0;min-height:49px;margin:0;padding:8px 10px;font-size:13px;text-decoration:none;text-align:center}.event-detail-actions .lotto168-link{grid-column:1 / -1;color:#8d3e17;border-color:#e7c9ad;background:#fff8ee}.event-detail-source{margin-top:12px}@media(min-width:720px){.events-filter-panel{grid-template-columns:minmax(0,1.35fr) minmax(300px,.8fr)}.events-search,.events-select-row{align-self:end}.events-topic-filter,.events-filter-summary{grid-column:1 / -1}.live-event-list{display:grid;grid-template-columns:1fr 1fr;gap:1px;border:0;background:var(--line)}.live-event-card{min-height:118px;border:0;background:var(--surface)}.live-event-card:nth-child(odd):last-child{grid-column:1 / -1}}@media(max-width:380px){.events-hero{grid-template-columns:minmax(0,1fr) 42px;padding:15px}.events-hero h2{font-size:22px}.events-select-row{grid-template-columns:1fr}.events-topic-chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:3px;scrollbar-width:none}.live-event-card{grid-template-columns:53px minmax(0,1fr) 17px;gap:8px;padding-inline:9px}.live-event-card>time{width:51px}.event-detail-actions{grid-template-columns:1fr}.event-detail-actions .lotto168-link{grid-column:auto}}.notice-list article{display:grid;grid-template-columns:35px minmax(0,1fr);gap:10px;padding:14px;border-bottom:1px solid var(--line)}.notice-list article:last-child{border-bottom:0}.notice-list article>span{display:grid;gap:3px}.notice-list p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.notice-list small{color:var(--muted);font-size:10px}.news-title-container{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px}.news-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 7px;font-size:10px;font-weight:800;border-radius:6px;line-height:1;text-transform:uppercase;letter-spacing:.02em}.news-badge.badge-new{color:#a72f32;background:#fff0ef;border:1px solid rgba(167,47,50,.2)}.news-badge.badge-upgrade{color:#1769aa;background:#e8f4ff;border:1px solid rgba(23,105,170,.2)}.news-badge.badge-release{color:var(--color-jade);background:var(--color-jade-soft);border:1px solid color-mix(in srgb,var(--color-jade) 24%,transparent)}.news-badge.badge-maintenance{color:#d97706;background:#fff4e5;border:1px solid rgba(217,119,6,.3)}.dark-theme .news-badge.badge-maintenance{color:#fbbf24;background:#d977062e;border:1px solid rgba(251,191,36,.35)}.news-release-details{display:grid;gap:4px;margin:5px 0 3px;padding-left:18px;color:var(--color-text-muted);font-size:12px;line-height:1.5}.generic-service{text-align:center;display:flex;flex-direction:column;align-items:center;padding-top:38px}.generic-service h2{margin:20px 0 7px;font-size:26px}.generic-service p{max-width:310px;margin:0 0 17px;color:var(--muted);line-height:1.6}.generic-service .service-image{width:112px;height:102px}.lightshow-screen{display:grid;align-content:start;gap:18px}.lightshow-hero{padding:20px;overflow:hidden;border:1px solid #eadcc9;border-radius:22px;background:radial-gradient(circle at 92% 5%,rgba(255,199,76,.35),transparent 34%),linear-gradient(145deg,#fffdf8,#fff3df);box-shadow:var(--shadow)}.lightshow-hero h2{margin:5px 0 6px;font-size:28px;letter-spacing:-.04em}.lightshow-hero p{max-width:560px;margin:0;color:var(--muted);line-height:1.6}.lightshow-tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.lightshow-tool-card{min-width:0;min-height:278px;display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px 14px 15px;border:1px solid var(--line);border-radius:22px;color:var(--ink);background:var(--surface);box-shadow:var(--shadow);text-align:center;text-decoration:none;transition:transform .16s ease,box-shadow .16s ease}.lightshow-tool-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px #362b1e24}.lightshow-tool-card.scene-light{background:linear-gradient(160deg,#fff8dc,#fffefb 58%)}.lightshow-tool-card.marquee{background:linear-gradient(160deg,#eef7ff,#fffefb 58%)}.lightshow-tool-card .service-image{width:112px;height:98px}.lightshow-tool-card>span{display:grid;gap:5px}.lightshow-tool-card strong{font-size:21px}.lightshow-tool-card small{color:var(--muted);font-size:13px;line-height:1.45}.lightshow-tool-card .lightshow-open{display:inline-flex;grid-auto-flow:column;align-items:center;justify-content:center;gap:5px;min-height:42px;width:100%;margin-top:auto;border-radius:12px;color:#fff;background:var(--red);font-size:14px;font-weight:900}.lightshow-note{display:flex;align-items:flex-start;gap:6px;margin:0 3px;color:var(--muted);font-size:12px;line-height:1.55}.lightshow-note svg{flex:0 0 auto;margin-top:1px;color:var(--blue)}.install-screen{display:grid;align-content:start;gap:16px}.install-card{display:flex;flex-direction:column;align-items:center;padding:24px 20px 22px;border:1px solid #cde3d7;border-radius:24px;background:radial-gradient(circle at 50% 0,#e3f7eb,transparent 48%),var(--surface);box-shadow:var(--shadow);text-align:center}.install-app-icon{width:96px;height:96px;margin-bottom:13px;overflow:hidden;border-radius:24px;box-shadow:0 10px 24px #0d693d2e}.install-app-icon img{width:100%;height:100%;display:block;object-fit:cover}.install-card h2{margin:5px 0 7px;font-size:27px}.install-card p{max-width:420px;margin:0;color:var(--muted);line-height:1.6}.install-now-button{width:min(100%,320px);margin-top:18px;background:var(--green)}.install-now-button:hover{background:#106e40}.install-steps{padding:18px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}.install-steps h3{display:flex;align-items:center;gap:8px;margin:0 0 13px;font-size:17px}.install-steps h3 svg{color:var(--green)}.install-steps ol{display:grid;gap:12px;margin:0;padding:0;list-style:none;counter-reset:install-step}.install-steps li{counter-increment:install-step;display:grid;grid-template-columns:34px minmax(0,1fr);column-gap:10px}.install-steps li:before{content:counter(install-step);grid-row:1 / 3;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--green);font-weight:900}.install-steps li strong,.install-steps li span{grid-column:2}.install-steps li span{color:var(--muted);font-size:13px;line-height:1.45}.install-faq-link{width:100%;min-height:70px;display:grid;grid-template-columns:30px minmax(0,1fr) 20px;align-items:center;gap:9px;padding:10px 14px;border:1px solid #c9dbea;border-radius:17px;color:var(--blue);background:#f4f9fd;text-align:left;cursor:pointer}.install-faq-link>span{min-width:0;display:grid;gap:3px;color:var(--ink)}.install-faq-link strong{font-size:16px}.install-faq-link small{color:var(--muted);font-size:12px;line-height:1.4}.faq-screen{display:grid;align-content:start;gap:16px}.faq-hero{display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:13px;padding:20px 18px;border:1px solid #c9dbea;border-radius:22px;background:radial-gradient(circle at 100% 0,rgba(74,157,210,.18),transparent 42%),linear-gradient(145deg,#f8fcff,#eef7fc);box-shadow:var(--shadow)}.faq-hero-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:16px;color:#fff;background:var(--blue);box-shadow:0 8px 18px #1d70a838}.faq-hero>span:last-child{min-width:0}.faq-hero h2{margin:4px 0 5px;font-size:25px;line-height:1.25;letter-spacing:-.04em}.faq-hero p{margin:0;color:var(--muted);font-size:14px;line-height:1.55}.faq-critical{display:grid;grid-template-columns:38px minmax(0,1fr);gap:11px;padding:17px 16px;border:2px solid #d33a40;border-radius:19px;color:#8e1119;background:#fff1f1;box-shadow:0 8px 22px #a4141e1a}.faq-critical>svg{margin-top:1px}.faq-critical>span{min-width:0;display:grid;gap:7px}.faq-critical strong{font-size:18px;line-height:1.4}.faq-critical p{margin:0;color:#5f2528;font-size:14px;font-weight:700;line-height:1.65}.faq-critical b{padding:8px 10px;border-radius:10px;color:#fff;background:#b51e28;font-size:13px;line-height:1.5}.faq-section{padding:17px 15px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}.faq-section>h3{display:flex;align-items:center;gap:8px;margin:0 0 13px;font-size:19px}.faq-section>h3 svg{flex:0 0 auto;color:var(--blue)}.pwa-comparison-wrap{overflow:hidden;border:1px solid var(--line);border-radius:14px}.pwa-comparison{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px;line-height:1.45}.pwa-comparison th,.pwa-comparison td{padding:10px 8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left;vertical-align:top;overflow-wrap:anywhere}.pwa-comparison tr>:last-child{border-right:0}.pwa-comparison tbody tr:last-child>*{border-bottom:0}.pwa-comparison thead th{color:#fff;background:#2e4655;font-size:13px}.pwa-comparison thead th:first-child,.pwa-comparison tbody th{width:20%}.pwa-comparison tbody th{color:#3f3b36;background:#f6f1e8}.pwa-comparison tbody td:nth-child(2){background:#f4fbf7}.pwa-comparison td strong{color:var(--red)}.faq-install-guide ol{display:grid;gap:12px;margin:0;padding:0;list-style:none;counter-reset:faq-install-step}.faq-install-guide li{counter-increment:faq-install-step;display:grid;grid-template-columns:35px minmax(0,1fr);column-gap:10px}.faq-install-guide li:before{content:counter(faq-install-step);grid-row:1 / 3;width:31px;height:31px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--green);font-weight:900}.faq-install-guide li strong,.faq-install-guide li span{grid-column:2}.faq-install-guide li strong{font-size:15px;line-height:1.45}.faq-install-guide li span{color:var(--muted);font-size:13px;line-height:1.5}.faq-install-button{width:100%;min-height:48px;display:flex;align-items:center;justify-content:center;gap:6px;margin-top:16px;border:0;border-radius:13px;color:#fff;background:var(--green);font-weight:900;cursor:pointer}.faq-install-button:hover{background:#106e40}.faq-list{display:grid;gap:9px}.faq-list details{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#fffdf9}.faq-list summary{min-height:52px;display:grid;grid-template-columns:minmax(0,1fr) 24px;align-items:center;gap:8px;padding:10px 12px;font-size:15px;font-weight:900;line-height:1.45;list-style:none;cursor:pointer}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:"+";width:24px;height:24px;display:grid;place-items:center;border-radius:50%;color:var(--blue);background:#eaf4fa;font-size:18px}.faq-list details[open] summary:after{content:"−"}.faq-list details[open] summary{color:var(--blue);background:#f4f9fc}.faq-list details p{margin:0;padding:0 12px 13px;color:var(--muted);font-size:13px;line-height:1.65}.assistant-message{display:flex;align-items:flex-start;gap:10px;padding:14px;border-radius:16px 16px 16px 4px;background:#f1f8fb;color:var(--blue)}.assistant-message p{margin:0;color:var(--ink);line-height:1.55}.quick-questions{display:grid;gap:9px;margin-top:17px}.quick-questions button{min-height:50px;border:1px solid var(--line);border-radius:13px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 14px;font-weight:750;text-align:left}.more-list button{grid-template-columns:58px minmax(0,1fr) auto}.more-list .service-image,.more-list .service-icon-graphic{width:50px;height:47px}.about-panel{margin-top:15px;align-items:flex-start;color:var(--red)}.about-panel span{color:var(--ink)}.about-panel p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.feedback-screen{padding-bottom:34px}.feedback-screen>.feedback-intro,.feedback-screen>.feedback-form,.feedback-screen>.feedback-success{width:min(100%,680px);margin-right:auto;margin-left:auto}.feedback-intro{padding:4px 3px 15px}.feedback-intro h2{margin-top:4px}.feedback-form{display:grid;gap:17px;padding:16px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}.feedback-fieldset{min-width:0;display:grid;gap:10px;margin:0;padding:0;border:0}.feedback-fieldset legend,.feedback-field>span:first-child{margin-bottom:8px;color:var(--ink);font-size:15px;font-weight:900}.feedback-fieldset legend strong,.feedback-field>span:first-child strong{color:var(--red);font-size:11px}.feedback-field>span:first-child em{color:var(--muted);font-size:11px;font-style:normal}.feedback-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.feedback-type-grid button{min-height:52px;display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:0 12px;border:1px solid var(--line);border-radius:13px;color:#5d5750;background:#fff;font-weight:850;cursor:pointer}.feedback-type-grid button:hover{border-color:#d4b8a7;background:#fff9f4}.feedback-type-grid button.selected{color:var(--red);border-color:#c91d288c;background:#fff3f1;box-shadow:inset 0 0 0 1px #c91d2814}.feedback-type-grid button:last-child{grid-column:1 / -1}.feedback-field{min-width:0;display:grid}.feedback-field select,.feedback-field input,.feedback-field textarea{width:100%;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:#fff}.feedback-field select,.feedback-field input{min-height:48px;padding:0 12px}.feedback-field textarea{min-height:142px;padding:11px 12px;line-height:1.55;resize:vertical}.feedback-field textarea::placeholder,.feedback-field input::placeholder{color:#9a948c}.feedback-field select:hover,.feedback-field input:hover,.feedback-field textarea:hover{border-color:#cdbca8}.feedback-field>small{margin-top:6px;color:var(--muted);font-size:11px;line-height:1.45}.feedback-field-help{display:flex;justify-content:space-between;gap:10px;margin-top:6px;color:var(--muted);font-size:11px;line-height:1.4}.feedback-field-help small:last-child{flex:0 0 auto}.feedback-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.feedback-privacy-note{display:grid;grid-template-columns:25px minmax(0,1fr);align-items:start;gap:8px;padding:11px;border:1px solid #b9ddc8;border-radius:13px;color:var(--green);background:#f1faf5}.feedback-privacy-note p{display:grid;gap:2px;margin:0}.feedback-privacy-note strong{color:#105f39;font-size:13px}.feedback-privacy-note span{color:#526d5c;font-size:11px;line-height:1.45}.feedback-error{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:start;gap:7px;margin-top:-4px;padding:10px;border-radius:11px;color:#9f1820;background:#fff0ef;font-size:13px;font-weight:750;line-height:1.45}.feedback-submit{width:100%;min-height:52px;margin-top:-2px}.feedback-response-note{margin:-9px 0 0;color:var(--muted);font-size:11px;line-height:1.45;text-align:center}.feedback-success{min-height:520px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 19px;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:var(--shadow);text-align:center}.feedback-success-icon{width:74px;height:74px;display:grid;place-items:center;margin-bottom:14px;border-radius:50%;color:#fff;background:var(--green);box-shadow:0 9px 22px #16844f2e}.feedback-success h2{max-width:450px;margin:5px 0 8px;font-size:25px;line-height:1.3}.feedback-success>p{max-width:440px;margin:0;color:var(--muted);font-size:13px;line-height:1.6}.feedback-ticket{min-width:min(100%,310px);display:grid;gap:4px;margin:21px 0;padding:13px 16px;border:1px dashed #d3b993;border-radius:13px;background:#fff9ef}.feedback-ticket small{color:var(--muted);font-size:11px;font-weight:800}.feedback-ticket strong{color:var(--red);font-size:18px;letter-spacing:.03em}.feedback-success-actions{width:min(100%,390px);display:grid;grid-template-columns:1fr 1.15fr;gap:9px}.feedback-success-actions>button{min-height:48px;border-radius:12px;font-weight:900;cursor:pointer}.feedback-success-actions>button:first-child{border:1px solid var(--line);background:#fff}.feedback-entry-card{width:100%;min-height:82px;display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:11px;margin-top:16px;padding:11px 13px;border:1px solid #bcdcc9;border-radius:17px;color:var(--green);background:#f2faf5;text-align:left;cursor:pointer}.feedback-entry-card:hover{border-color:#8cc5a3;background:#e7f6ed}.feedback-entry-card>span:first-child{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;color:#fff;background:var(--green)}.feedback-entry-card>span:nth-child(2){min-width:0;display:grid;gap:3px}.feedback-entry-card strong{color:var(--ink);font-size:16px}.feedback-entry-card small{color:#5c7564;font-size:11px;line-height:1.4}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:flex-end;background:#241d1661;animation:fade-in .18s ease-out}.bottom-sheet{width:100%;padding:18px 16px 23px;border-radius:24px 24px 0 0;background:var(--surface);box-shadow:0 -16px 45px #251c122e;animation:slide-up .22s ease-out}.bottom-sheet header,.side-menu header{display:flex;align-items:center;justify-content:space-between}.bottom-sheet h2,.side-menu h2{margin:3px 0 0;font-size:23px}.station-picker-overlay,.booking-overlay{position:fixed;inset:50% auto auto 50%;width:min(100vw,960px);height:min(var(--app-viewport-height, 100dvh),844px);z-index:60;transform:translate(-50%,-50%)}.station-picker-sheet{max-height:min(78%,660px);display:grid;grid-template-rows:auto auto minmax(0,1fr);padding:14px 14px 20px}.station-picker-header{display:grid!important;grid-template-columns:44px minmax(0,1fr) 44px;text-align:center}.station-picker-header-spacer{width:44px}.station-picker-step{color:var(--red);font-size:12px;font-weight:900;letter-spacing:.03em}.station-picker-header h2{margin-top:1px;font-size:24px}.station-picker-hint{margin:9px 4px 11px;color:var(--muted);font-size:13px;text-align:center}.station-region-grid{min-height:0;overflow-y:auto;display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:0 2px 4px}.station-region-grid button{min-width:0;min-height:58px;display:grid;grid-template-columns:25px minmax(0,1fr) 18px;align-items:center;gap:7px;padding:8px 10px;border:1px solid var(--line);border-radius:13px;background:#fff;text-align:left;cursor:pointer}.station-region-grid button.active{color:var(--red);border-color:#c91d2866;background:#fff7f5}.station-region-grid button>span{min-width:0;display:grid;gap:1px}.station-region-grid strong{overflow:hidden;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.station-region-grid small{color:var(--muted);font-size:11px;font-weight:700}.station-picker-search{min-height:48px;display:grid;grid-template-columns:auto minmax(0,1fr) 30px;align-items:center;gap:8px;margin:10px 2px;padding:0 12px;border:1px solid var(--line);border-radius:13px;background:#fff}.station-picker-search input{width:100%;border:0;outline:0;background:transparent;font-size:16px}.station-picker-search button{width:30px;height:30px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:transparent}.station-option-list{min-height:0;overflow-y:auto;border-top:1px solid var(--line)}.station-option-list>button{width:100%;min-height:62px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 11px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.station-option-list>button.active{color:var(--red);background:#fff7f5}.station-option-list>button>span{min-width:0;display:grid;gap:2px}.station-option-list strong{font-size:18px}.station-option-list small{overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.booking-sheet{display:grid;gap:13px;padding-top:16px}.booking-summary-card{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fffdf9}.booking-train-heading{min-height:48px;display:flex;align-items:center;gap:9px;padding:10px 13px 4px}.booking-route-time{display:grid;grid-template-columns:minmax(0,1fr) 82px minmax(0,1fr);align-items:end;gap:7px;padding:3px 13px 13px}.booking-route-time>span{min-width:0;display:grid;gap:2px}.booking-route-time>span:last-child{text-align:right}.booking-route-time>span small{overflow:hidden;color:var(--muted);font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.booking-route-time>span strong{font-size:30px;letter-spacing:-.04em}.booking-route-time>span:first-child strong{color:var(--red)}.booking-route-time>div{display:grid;justify-items:center;gap:2px;color:var(--muted)}.booking-route-time>div small{font-size:10px;font-weight:800;white-space:nowrap}.booking-data-grid{display:grid;grid-template-columns:1fr 1fr;margin:0;border-top:1px solid var(--line);background:#faf6ef}.booking-data-grid>div{min-width:0;display:grid;gap:2px;padding:9px 12px;border-bottom:1px solid var(--line)}.booking-data-grid>div:nth-child(odd){border-right:1px solid var(--line)}.booking-data-grid dt{color:var(--muted);font-size:11px;font-weight:800}.booking-data-grid dd{overflow:hidden;margin:0;font-size:14px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.booking-option-field{min-height:52px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:7px 11px;border:1px solid var(--line);border-radius:12px;background:#fff}.booking-option-field>span{color:var(--muted);font-size:12px;font-weight:900}.booking-option-field select{width:100%;min-height:38px;border:0;outline:0;color:var(--ink);background:transparent;font-size:15px;font-weight:900;text-align:right}.booking-prefill-note{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:7px;margin:0;padding:10px 11px;border-radius:12px;color:#6c5527;background:#fff8e8;font-size:12px;line-height:1.5}.booking-prefill-note.is-success{color:#105f39;background:#edf9f1}.booking-prefill-note.is-error{color:var(--red);background:#fff2f1}.booking-sheet-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:9px}.booking-copy-button,.booking-official-button{min-height:49px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 11px;border-radius:13px;font-size:14px;font-weight:900;text-decoration:none;text-align:center;cursor:pointer}.booking-copy-button{border:1px solid var(--line);color:var(--ink);background:#fff}.booking-official-button{border:0;color:#fff;background:var(--green)}.booking-official-button:hover{background:#106e40}.booking-official-button:disabled{opacity:.68;cursor:wait}.official-train-link{display:inline-flex;align-items:center;justify-content:center;gap:5px;color:var(--blue);font-size:12px;font-weight:800;text-decoration:none}.city-grid{margin-top:15px;display:grid;grid-template-columns:1fr 1fr;gap:9px}.city-grid button{min-height:50px;border:1px solid var(--line);border-radius:13px;background:#fff;display:grid;grid-template-columns:23px minmax(0,1fr) 19px;align-items:center;gap:6px;padding:0 12px;text-align:left;font-weight:800}.city-grid button.active{color:var(--red);border-color:#c91d2873;background:#fff7f5}.menu-overlay{justify-content:flex-end;align-items:stretch}.side-menu{width:min(84%,330px);height:100%;overflow-y:auto;overscroll-behavior:contain;padding:17px 15px;background:var(--surface);box-shadow:-18px 0 45px #251c122e;animation:slide-left .22s ease-out}.side-menu header>div{display:flex;align-items:center;gap:10px}.menu-share-card{width:100%;min-height:72px;display:grid;grid-template-columns:44px minmax(0,1fr) 19px;align-items:center;gap:10px;margin-top:18px;padding:9px 11px;border:1px solid #bcdcc9;border-radius:16px;color:#105f39;background:linear-gradient(135deg,#f5fff8,#e5f5eb);text-align:left;cursor:pointer;box-shadow:0 6px 16px #16844f17}.menu-share-card:hover{border-color:#8cc5a3;background:linear-gradient(135deg,#effcf3,#d9f0e2)}.menu-share-card:active{transform:scale(.98)}.menu-share-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;color:#fff;background:var(--green)}.menu-share-card>span:nth-child(2){min-width:0;display:grid;gap:2px}.menu-share-card strong{color:var(--ink);font-size:16px;font-weight:900}.menu-share-card small{color:#557060;font-size:11px;font-weight:700;line-height:1.4}.side-menu nav{display:grid;margin-top:10px}.side-menu nav button,.side-menu nav a{min-height:56px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:8px;padding:0;text-align:left;text-decoration:none;font-weight:800;cursor:pointer}.menu-note{margin:20px 4px;color:var(--muted);font-size:12px;line-height:1.55}.toast{position:absolute;left:50%;bottom:90px;z-index:30;transform:translate(-50%);min-width:220px;min-height:45px;border-radius:23px;color:#fff;background:#26352c;box-shadow:0 9px 24px #0000002e;display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 16px;font-size:13px;font-weight:800;animation:toast-in .2s ease-out}@keyframes fade-in{0%{opacity:0}}@keyframes slide-up{0%{transform:translateY(100%)}}@keyframes slide-left{0%{transform:translate(100%)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}@keyframes invoice-marquee{to{transform:translate(-50%)}}@media(min-width:640px){.mobile-prototype{grid-template-rows:82px minmax(0,1fr) calc(84px + env(safe-area-inset-bottom,0px));border-radius:22px}.app-header{padding-inline:24px}.home-screen{display:grid;grid-template-columns:minmax(330px,.9fr) minmax(420px,1.2fr);gap:22px;padding:24px}.home-marquee{grid-column:1 / -1;width:100%;margin:0}.nearby-section{margin:0;align-self:start}.services-section{padding:0}.home-secondary-services,.home-hidden-services{grid-column:1 / -1}.service-button{min-height:132px}.service-image,.service-icon-graphic{width:78px;height:72px}.inner-screen{max-width:760px;margin:0 auto;padding-top:28px}.balls{gap:10px}.balls i{width:48px;height:48px;font-size:22px}}@media(max-width:420px){.mobile-prototype{width:100vw;height:min(100%,844px);box-shadow:none}.brand-name{font-size:24px}.brand-mark{width:46px;height:46px;flex-basis:46px}.city-selector{padding-inline:10px}.nearby-section{margin-inline:11px}.nearby-heading h1{font-size:22px}.service-button{min-height:126px}.service-image,.service-icon-graphic{width:78px;height:70px}.station-picker-overlay,.booking-overlay{width:100vw;height:min(var(--app-viewport-height, 100dvh),844px)}}@media(max-width:360px){.app-header{padding-inline:10px;gap:5px}.brand-name{font-size:21px}.city-selector{width:48px;padding:0;justify-content:center}.city-selector span,.city-selector .ph-caret-down{display:none}.arrival-row{grid-template-columns:31px 43px minmax(0,1fr) auto 15px;gap:5px}.arrival-stop,.service-button span{font-size:14px}.balls i{width:34px;height:34px;font-size:16px}.bike-region-grid{grid-template-columns:1fr}.station-list a{grid-template-columns:minmax(0,1fr) auto}.station-list a>svg{display:none}.rail-trip-times{grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr);padding-inline:10px}.rail-time-block strong{font-size:27px}.rail-duration-block small{font-size:10px}.rail-book-button{padding-inline:10px}.lightshow-tool-grid{gap:8px}.lightshow-tool-card{min-height:258px;padding-inline:8px}.lightshow-tool-card .service-image{width:92px;height:82px}.lightshow-tool-card strong{font-size:18px}.faq-hero{grid-template-columns:46px minmax(0,1fr);padding-inline:14px}.faq-hero-icon{width:45px;height:45px}.faq-hero h2{font-size:21px}.faq-section{padding-inline:11px}.pwa-comparison{font-size:11px}.pwa-comparison th,.pwa-comparison td{padding:8px 5px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.home-marquee-track{animation:none!important}.home-marquee-copy{display:none}}.policy-container{display:flex;flex-direction:column;gap:16px;line-height:1.7;padding-bottom:24px}.policy-hero{padding:24px 16px;border-radius:20px;background:linear-gradient(135deg,#fffdf9,#f5ecd8);border:1px solid var(--line);display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow)}.policy-hero h2{margin:0;font-size:24px;color:var(--ink);font-weight:800}.policy-hero p{margin:0;color:var(--muted);font-size:14px}.policy-section{padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}.policy-section h3{margin:0 0 12px;font-size:18px;color:var(--ink);font-weight:700;display:flex;align-items:center;gap:8px}.policy-section h3 svg{color:var(--red)}.policy-section p{margin:0 0 10px;color:#4a453f;font-size:14px}.policy-section p:last-child{margin-bottom:0}.policy-section ul{margin:0;padding-left:20px;color:#4a453f;font-size:14px}.policy-section li{margin-bottom:8px}.policy-section li:last-child{margin-bottom:0}.about-site-list{display:grid;gap:10px;padding:2px 0 0;list-style:none}.about-site-list li{margin:0}.about-site-list a{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:66px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fffdf9;color:var(--ink);text-decoration:none}.about-site-list a:active{transform:translateY(1px)}.about-site-list a>span:first-child{display:grid;gap:2px}.about-site-list strong{font-size:15px}.about-site-list small{color:var(--muted);font-size:12px}.about-site-url{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;color:var(--red);font-size:12px;font-weight:700;overflow-wrap:anywhere;text-align:right}.about-site-url svg{flex:0 0 auto}@media(max-width:420px){.about-site-list a{align-items:flex-start;flex-direction:column;gap:7px}.about-site-url{justify-content:flex-start;text-align:left}}.gov-invoice-table{width:100%;border-collapse:collapse;margin-top:15px;background:var(--surface);border-radius:14px;overflow:hidden;border:1px solid var(--line);box-shadow:0 4px 12px #362b1e0a}.gov-invoice-table th,.gov-invoice-table td{padding:12px 10px;text-align:center;border-bottom:1px solid var(--line);font-size:14px}.gov-invoice-table th{background:#f7f2ea;color:var(--muted);font-weight:700;font-size:13px;border-bottom:2px solid var(--line)}.gov-invoice-table tr:last-child td{border-bottom:0}.gov-invoice-table .prize-name{font-weight:700;color:var(--ink);width:25%;background:#faf7f2}.gov-invoice-table .prize-no{font-weight:800;font-size:20px;letter-spacing:.05em;color:var(--red)}.gov-invoice-table .prize-desc{color:#595550;font-size:12px;text-align:left;padding-left:15px}.gov-invoice-table .prize-amt{width:30%;font-weight:700;color:#595550;text-align:right;padding-right:15px}.gov-invoice-table .prize-special .prize-no,.gov-invoice-table .prize-grand .prize-no{font-size:20px}.gov-invoice-table .prize-special .prize-amt,.gov-invoice-table .prize-grand .prize-amt{color:var(--red)}.first-prizes-list{display:flex;flex-direction:column;gap:6px;align-items:center}.first-prize-num{font-size:20px;font-weight:800;color:var(--ink);letter-spacing:.05em}.first-prize-num .last-three{color:var(--red)}.claim-period-box{margin-top:14px;padding:12px 14px;border-radius:12px;background:#fcfbfa;border:1px dashed var(--line);font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:4px}.claim-period-box strong{color:var(--ink);font-weight:700}.history-link{width:fit-content;min-height:40px;margin-top:13px;display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--blue);text-decoration:none;font-weight:800;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:#fdfcfa;transition:all .2s ease;white-space:nowrap}.history-link:hover,.history-link:focus-visible{background:var(--blue);color:#fff;border-color:var(--blue)}.favorite-routes-container{margin-top:14px;display:grid;gap:6px;padding:0 4px}.favorite-title{font-size:13px;font-weight:800;color:var(--muted)}.favorite-chips{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 8px;scrollbar-width:none}.favorite-chips::-webkit-scrollbar{display:none}.favorite-chip{min-height:34px;border:1px solid var(--line);border-radius:17px;background:var(--surface);padding:0 14px;font-size:13px;font-weight:750;color:var(--ink);white-space:nowrap;cursor:pointer;box-shadow:0 2px 6px #0000000a;transition:all .2s ease}.favorite-chip:hover{background:#fbf6ee;border-color:var(--red);color:var(--red);transform:translateY(-1px)}.favorite-chip:active{transform:translateY(0)}.garbage-screen{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;width:100%;min-width:0;padding-bottom:30px}.garbage-screen>*{width:100%;min-width:0}.garbage-hero{display:grid;grid-template-columns:54px minmax(0,1fr);align-items:start;gap:12px;padding:16px;border:1px solid #e2d8c8;border-radius:20px;background:radial-gradient(circle at 95% 10%,rgba(227,154,0,.16),transparent 34%),linear-gradient(145deg,#fffef9,#f8f1e5);box-shadow:var(--shadow)}.garbage-hero-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:17px;color:#785400;background:#f8c84d;box-shadow:inset 0 -7px 13px #85530021}.garbage-hero h2{margin:3px 0 4px;font-size:25px;letter-spacing:-.04em}.garbage-hero p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.garbage-city-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.garbage-city-tabs button{min-height:62px;display:grid;grid-template-columns:1fr;justify-items:center;align-items:center;gap:3px;padding:8px 4px;border:1px solid var(--line);border-radius:15px;color:var(--ink);background:var(--surface);text-align:center;cursor:pointer}.garbage-city-tabs button>span{display:grid;gap:2px;font-size:16px;font-weight:900}.garbage-city-tabs button small{color:var(--muted);font-size:10px;font-weight:700}.garbage-city-tabs button.active{color:#fff;border-color:#9f151f;background:var(--red);box-shadow:0 7px 17px #a9131c33}.garbage-city-tabs button.active small{color:#ffffffd1}.garbage-action-card{padding:12px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 5px 16px #362b1e0f}.garbage-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.garbage-search-row .search-field{min-width:0}.garbage-locate-button{min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 12px;border:0;border-radius:13px;color:#fff;background:var(--green);font-size:13px;font-weight:900;white-space:nowrap;cursor:pointer}.garbage-locate-button:disabled{opacity:.65;cursor:wait}.garbage-district-row{width:100%;min-width:0;display:flex;gap:7px;overflow-x:auto;margin:10px -2px -2px;padding:2px 2px 4px;scrollbar-width:none}.garbage-district-row::-webkit-scrollbar{display:none}.garbage-district-row button{min-height:34px;padding:0 13px;border:1px solid var(--line);border-radius:17px;color:#5e5952;background:#faf7f1;font-size:12px;font-weight:800;white-space:nowrap;cursor:pointer}.garbage-district-row button.active{color:#fff;border-color:var(--blue);background:var(--blue)}.garbage-location-error{display:flex;align-items:center;gap:6px;margin:9px 2px 0;color:#9e1d27;font-size:12px;line-height:1.4}.garbage-screen .query-state.error-state{display:grid;grid-template-columns:auto minmax(0,1fr) auto;margin:0}.garbage-screen .query-state.error-state button{min-height:35px;padding:0 10px;border:1px solid currentColor;border-radius:9px;color:inherit;background:transparent;font-size:12px;font-weight:900;cursor:pointer}.garbage-live-summary{min-height:54px;display:grid;grid-template-columns:12px minmax(0,1fr) 42px;align-items:center;gap:9px;padding:8px 9px 8px 13px;border:1px solid #bcdec9;border-radius:15px;color:#17673b;background:#f3fbf6}.garbage-live-dot{width:10px;height:10px;border-radius:50%;background:#18a55b;box-shadow:0 0 0 5px #18a55b1f;animation:garbage-pulse 1.8s ease-out infinite}.garbage-live-summary.is-schedule .garbage-live-dot{background:var(--blue);box-shadow:0 0 0 5px #1d70a81f;animation:none}.garbage-live-summary>span:nth-child(2){min-width:0;display:grid;gap:2px}.garbage-live-summary strong{font-size:14px}.garbage-live-summary small{overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.garbage-live-summary button{width:42px;height:42px;display:grid;place-items:center;border:0;border-radius:12px;color:inherit;background:transparent;cursor:pointer}.garbage-live-summary button:hover{background:#17673b14}.garbage-live-summary button:disabled{opacity:.55}.garbage-map-shell{position:relative;min-height:320px;overflow:hidden;border:1px solid #d8ccb9;border-radius:20px;background:#e8ece8;box-shadow:var(--shadow)}.garbage-map{width:100%;height:320px;z-index:0}.garbage-map-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);background:#f1eee7;font-size:13px;font-weight:800}.garbage-map-legend{position:absolute;left:10px;bottom:23px;z-index:450;display:flex;gap:9px;padding:7px 9px;border:1px solid rgba(71,61,48,.15);border-radius:11px;background:#fffefbf0;box-shadow:0 3px 10px #241f191f;font-size:10px;font-weight:800}.garbage-map-legend span{display:inline-flex;align-items:center;gap:4px}.garbage-map-legend i{width:9px;height:9px;border-radius:50%}.garbage-map-legend i.live{background:var(--red)}.garbage-map-legend i.schedule{background:#1d70a8}.garbage-map-legend i.you{background:var(--blue)}.garbage-map-marker{width:38px;height:38px;display:grid;place-items:center;border:3px solid white;border-radius:50% 50% 50% 8px;background:#d59b16;box-shadow:0 4px 11px #2d23194d;transform:rotate(-45deg);font-size:19px}.garbage-map-marker.is-moving{background:var(--red)}.garbage-map-marker.is-schedule{background:#1d70a8}.garbage-map-marker b{display:block;font-weight:400;transform:rotate(45deg)}.garbage-empty{min-height:150px;display:grid;place-items:center;align-content:center;gap:7px;padding:20px;border:1px dashed #d7c8b3;border-radius:18px;color:var(--muted);background:#fcfaf6;text-align:center}.garbage-empty strong{color:var(--ink)}.garbage-empty p{max-width:410px;margin:0;font-size:12px;line-height:1.55}.garbage-results{margin-top:2px}.garbage-results .section-heading-row{margin-bottom:9px;padding-inline:2px}.garbage-results .section-heading-row h2{font-size:21px}.garbage-results .section-heading-row>span{color:var(--muted);font-size:12px;font-weight:800}.garbage-truck-list{display:grid;gap:9px}.garbage-truck-card{overflow:hidden;border:1px solid var(--line);border-radius:17px;background:var(--surface);box-shadow:0 4px 13px #362b1e0f}.garbage-truck-card.is-selected{border-color:#c91d28a6;box-shadow:0 0 0 2px #c91d281a,0 6px 16px #362b1e14}.garbage-card-main{width:100%;min-height:100px;display:grid;grid-template-columns:48px minmax(0,1fr) 18px;align-items:center;gap:10px;padding:12px;border:0;background:transparent;text-align:left;cursor:pointer}.garbage-card-main:hover{background:#fdf8f1}.garbage-truck-symbol{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:#fff4cf;font-size:27px}.garbage-truck-symbol.is-moving{background:#fff0ee}.garbage-truck-symbol.is-schedule{background:#eaf5fb}.garbage-card-copy{min-width:0;display:grid;gap:5px}.garbage-card-title{display:flex;align-items:center;gap:7px}.garbage-card-title strong{font-size:17px}.garbage-card-title em{padding:3px 7px;border-radius:10px;color:var(--blue);background:#edf7fc;font-size:10px;font-style:normal;font-weight:900}.garbage-address{overflow:hidden;color:#4e4a44;font-size:13px;font-weight:700;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.garbage-card-meta{display:flex;flex-wrap:wrap;gap:4px 9px;color:var(--muted)}.garbage-card-meta small{display:inline-flex;align-items:center;gap:3px;font-size:10px}.garbage-truck-card>a{min-height:39px;display:flex;align-items:center;justify-content:flex-end;gap:5px;padding:6px 13px;border-top:1px solid #eee6da;color:var(--green);background:#fdfaf5;font-size:12px;font-weight:900;text-decoration:none}.garbage-source-note{margin:0 2px;color:var(--muted);font-size:10px;line-height:1.6}.garbage-source-note a{color:var(--blue);font-weight:800}@keyframes garbage-pulse{0%,55%{box-shadow:0 0 0 4px #18a55b21}to{box-shadow:0 0 0 10px #18a55b00}}@media(min-width:700px){.garbage-screen{grid-template-columns:minmax(300px,.8fr) minmax(390px,1.2fr);max-width:920px}.garbage-hero,.garbage-city-tabs,.garbage-action-card,.garbage-live-summary,.garbage-screen>.query-state,.garbage-empty,.garbage-source-note{grid-column:1 / -1}.garbage-map-shell{position:sticky;top:0;align-self:start;min-height:460px}.garbage-map{height:460px}.garbage-results{margin-top:0}}.traffic-tabs{display:flex;gap:8px;background-color:var(--card-bg, rgba(30, 30, 30, .6));padding:4px;border-radius:12px;border:1px solid var(--border-color, rgba(255, 255, 255, .08));margin-bottom:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.traffic-tab{flex:1;padding:10px 16px;font-size:14px;font-weight:600;border:none;background:transparent;color:var(--text-secondary, #a0a0a0);border-radius:8px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);text-align:center}.traffic-tab:hover{color:var(--text-primary, #ffffff);background-color:#ffffff0a}.traffic-tab.active{color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 12px #2563eb4d}.traffic-event-cctv-wrapper{margin-top:14px;border-top:1px solid var(--border-color, rgba(255, 255, 255, .08));padding-top:12px}.btn-cctv-toggle{display:flex;align-items:center;gap:6px;background-color:#2563eb1a;color:#60a5fa;border:1px solid rgba(37,99,235,.2);padding:8px 12px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;width:fit-content}.btn-cctv-toggle:hover{background-color:#2563eb33;border-color:#2563eb66}.btn-cctv-toggle.active{background-color:#ef44441a;color:#f87171;border-color:#ef444433}.traffic-event-cctvs{display:flex;flex-direction:column;gap:12px;margin-top:12px;animation:slideDown .25s ease-out}.traffic-event-cctv-item{background-color:#0003;border-radius:8px;padding:10px;border:1px solid rgba(255,255,255,.04)}.cctv-item-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;font-weight:500;color:var(--text-primary, #e0e0e0)}.cctv-distance{font-size:11px;color:#3b82f6;background-color:#3b82f61a;padding:2px 6px;border-radius:4px}.cctv-player-container{position:relative;width:100%;aspect-ratio:4/3;background-color:#111;border-radius:8px;overflow:hidden}.cctv-player-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--text-secondary, #888);font-size:12px}.cctv-player-error{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;text-align:center;color:#ef4444;background-color:#111111f2;font-size:12px;gap:10px}.cctv-player-error p{margin:0;line-height:1.5;color:#f87171}.cctv-player-actions{display:flex;gap:8px;margin-top:4px}.cctv-reload-btn,.cctv-external-btn{padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;border:none}.cctv-reload-btn{background-color:#ffffff14;color:#e0e0e0}.cctv-reload-btn:hover{background-color:#ffffff26}.cctv-external-btn{background-color:#2563eb;color:#fff;text-decoration:none;display:inline-flex;align-items:center}.cctv-external-btn:hover{background-color:#3b82f6}.cctv-search-wrapper{margin-top:12px}.cctv-search-box{position:relative;width:100%}.cctv-search-box .search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-secondary, #888)}.cctv-search-input{width:100%;padding:12px 40px 12px 42px;background-color:var(--input-bg, rgba(20, 20, 20, .6));border:1px solid var(--border-color, rgba(255, 255, 255, .08));border-radius:10px;color:var(--text-primary, #fff);font-size:14px;transition:all .2s}.cctv-search-input:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26;outline:none}.clear-search-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--text-secondary, #888);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px;border-radius:50%}.clear-search-btn:hover{background-color:#ffffff14;color:#fff}.cctv-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:20px;animation:fadeIn .3s ease-out}.cctv-card{background-color:var(--card-bg, rgba(30, 30, 30, .6));border:1px solid var(--border-color, rgba(255, 255, 255, .08));border-radius:12px;overflow:hidden;transition:all .25s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.cctv-card:hover{border-color:#2563eb4d;transform:translateY(-2px);box-shadow:0 6px 20px #0003}.cctv-card.is-open{border-color:#2563eb66}.cctv-card-toggle{width:100%;display:flex;align-items:center;gap:12px;padding:14px 16px;background:transparent;border:none;color:var(--text-primary, #fff);cursor:pointer;text-align:left}.cctv-icon{color:#3b82f6;transition:transform .2s}.cctv-card.is-open .cctv-icon{color:#60a5fa;transform:scale(1.1)}.cctv-info{flex:1;display:flex;flex-direction:column;gap:4px}.cctv-info strong{font-size:14px;font-weight:600;color:var(--text-primary, #fff)}.cctv-info small{font-size:11.5px;color:var(--text-secondary, #999)}.cctv-caret{color:var(--text-secondary, #666);transition:transform .25s}.cctv-card.is-open .cctv-caret{transform:rotate(180deg);color:var(--text-primary, #fff)}.cctv-media-body{padding:0 16px 16px;animation:slideDown .25s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media(min-width:640px){.cctv-grid{grid-template-columns:repeat(2,1fr);gap:16px}}@media(min-width:1024px){.cctv-grid{grid-template-columns:repeat(3,1fr)}}.home-update-banner{width:calc(100% - 28px);display:grid;grid-template-columns:44px minmax(0,1fr);align-items:start;gap:10px 12px;margin:10px 14px 6px;padding:14px;border-color:var(--color-border-strong);background:linear-gradient(135deg,var(--color-surface),var(--color-blue-soft))}.home-update-banner.is-required{border-color:color-mix(in srgb,var(--color-danger) 35%,var(--color-border));background:linear-gradient(135deg,var(--color-surface),var(--color-danger-soft))}.home-update-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:var(--radius-sm);color:#fff;background:var(--color-blue)}.home-update-banner.is-required .home-update-icon{background:var(--color-danger)}.home-update-copy{min-width:0;display:grid;gap:4px}.home-update-eyebrow{color:var(--color-blue);font-size:12px;font-weight:800}.home-update-banner.is-required .home-update-eyebrow{color:var(--color-danger)}.home-update-copy>strong{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;color:var(--color-text);font-size:17px;line-height:1.35}.home-update-copy>strong small{color:var(--color-text-muted);font-size:11px;font-weight:700}.home-update-copy p{margin:0;color:var(--color-text-muted);font-size:13px;line-height:1.55}.home-update-details{min-height:44px;width:max-content;display:inline-flex;align-items:center;gap:3px;margin-left:-8px;padding:0 8px;border:0;color:var(--color-blue);background:transparent;font-size:13px;font-weight:800;cursor:pointer}.home-update-actions{grid-column:1 / -1;display:grid;grid-template-columns:minmax(92px,.75fr) minmax(132px,1.25fr);gap:8px}.home-update-banner.is-required .home-update-actions{grid-template-columns:1fr}.home-update-actions .ds-button{width:100%;padding-inline:12px;white-space:nowrap}.home-update-actions .ds-button:disabled{opacity:.7;cursor:wait;transform:none}@media(min-width:640px){.home-update-banner{grid-column:1 / -1;width:100%;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;margin:0}.home-update-actions{grid-column:3;grid-row:1;min-width:244px}}.pwa-update-section{border-top:1px solid var(--border-color, rgba(255, 255, 255, .08));padding-top:20px}.pwa-update-section .update-note{font-size:12.5px;color:var(--text-muted, #94a3b8);line-height:1.6;margin-top:6px;margin-bottom:12px}.app-version-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}.app-version-line span{color:var(--color-text-muted);font-size:12px}.app-version-status{margin:8px 0 0;padding:9px 12px;border-radius:var(--radius-sm);background:var(--color-jade-soft);color:var(--color-jade);font-size:12.5px;font-weight:700;line-height:1.5}.app-version-status.needs-update{background:var(--color-gold-soft);color:var(--color-gold)}.btn-force-update{display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:all .2s ease}.btn-force-update:disabled{opacity:.6;cursor:not-allowed}.is-spinning{animation:spin 1.2s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.global-search-container input:focus{border-color:#1a73e8!important;box-shadow:0 4px 12px #1a73e826!important}.opendata-screen{padding:15px}.opendata-page-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:14px}.opendata-title-block{min-width:0;display:grid;grid-template-columns:44px 56px minmax(0,1fr);align-items:center;gap:9px}.opendata-title-icon{width:56px;height:52px;border-radius:16px;filter:none}.opendata-title-copy{min-width:0;display:grid;gap:2px}.opendata-title-copy h1{overflow-wrap:anywhere;margin:0;color:var(--ink);font-size:22px;font-weight:950;line-height:1.18}.opendata-title-copy p{display:-webkit-box;overflow:hidden;margin:0;color:var(--muted);font-size:12px;font-weight:700;line-height:1.35;-webkit-line-clamp:2;-webkit-box-orient:vertical}.opendata-map-marker{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:2px solid white;border-radius:50%;background:#fffffff0;box-shadow:0 2px 8px #00000047;font-size:15px;line-height:1;cursor:pointer;transition:transform .2s ease,width .2s ease,height .2s ease,font-size .2s ease;animation:markerFadeIn .3s ease-out}.opendata-map-marker.is-selected{width:34px;height:34px;font-size:20px;transform:translateY(-4px) scale(1.05)}@keyframes markerFadeIn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.opendata-route-selectors{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.opendata-route-selectors select{max-width:145px;padding:7px 9px;border:1px solid var(--border);border-radius:8px;background:var(--card-bg);color:var(--text);font:inherit}.opendata-coordinate-notice,.opendata-source-meta{display:flex;gap:8px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--card-bg);color:var(--muted);font-size:.86rem}.opendata-coordinate-notice{align-items:center;margin-bottom:14px}.opendata-source-meta{flex-direction:column;margin:0 0 14px}.opendata-source-meta a{color:#1967d2;font-weight:700}.opendata-control-panel{display:grid;gap:12px;margin-top:15px;padding:13px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 5px 14px #362b1e0d}.opendata-control-primary{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px}.opendata-locate-action{min-width:112px;min-height:42px;border-radius:12px;padding:0 14px;font-size:13px}.radius-scope-selector{min-width:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:4px;border-radius:13px;background:#f0ebe3}.radius-scope-selector button{min-width:0;min-height:34px;padding:0 5px;border:0;border-radius:10px;color:#686159;background:transparent;font-size:12px;font-weight:900;cursor:pointer;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.radius-scope-selector button.active{color:#fff;background:var(--blue);box-shadow:0 3px 9px #1d70a82e}.opendata-location-error{display:flex;align-items:flex-start;gap:6px;color:var(--danger);font-size:12px;font-weight:800;line-height:1.45}.opendata-filter-row{display:grid;grid-template-columns:132px minmax(0,1fr);gap:8px}.opendata-select-field select,.opendata-search-field input{width:100%;height:44px;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:#fffdf9;font-size:14px;font-weight:800}.opendata-select-field select{padding:0 10px}.opendata-search-field{position:relative;min-width:0;display:block}.opendata-search-field span{position:absolute;left:11px;top:50%;display:grid;place-items:center;color:var(--muted);transform:translateY(-50%);pointer-events:none}.opendata-search-field input{padding:0 12px 0 36px}.opendata-results-panel{display:grid;gap:12px;margin-top:18px}.opendata-results-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.opendata-results-heading h2{margin:0;color:var(--ink);font-size:18px;font-weight:950}.opendata-sort-chip,.opendata-distance-chip{display:inline-flex;align-items:center;justify-content:center;gap:4px;border-radius:999px;color:var(--blue);background:#eaf4fb;font-size:11px;font-weight:950;white-space:nowrap}.opendata-sort-chip{min-height:27px;padding:0 9px}.opendata-state-card{min-height:112px;display:grid;place-items:center;align-content:center;gap:8px;padding:22px;border:1px dashed #d8c7b5;border-radius:16px;color:var(--muted);background:#fffaf4;text-align:center;font-size:13px;font-weight:750}.opendata-state-card.is-error{color:var(--danger);border-color:#efc2bd;background:#fff8f7}.opendata-result-list{display:grid;gap:9px}.opendata-result-card{width:100%;min-height:92px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px;border:1px solid var(--line);border-radius:15px;color:inherit;background:var(--surface);box-shadow:0 4px 12px #362b1e0a;text-align:left;transition:border-color .18s,box-shadow .18s,transform .18s,background .18s}.opendata-result-card.is-selected{border-color:var(--blue);box-shadow:0 0 0 2px #1d70a81f,0 7px 18px #362b1e14}.opendata-result-card:hover,.opendata-result-card:focus-within{border-color:#cbbba6;background:#fffaf4;box-shadow:0 7px 18px #362b1e14;transform:translateY(-1px);outline:none}.opendata-result-select{min-width:0;min-height:76px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:5px;border:0;border-radius:11px;color:inherit;background:transparent;cursor:pointer;text-align:left;font:inherit}.opendata-result-select:focus-visible{outline:3px solid rgba(29,112,168,.28);outline-offset:1px}.opendata-result-actions{display:grid;gap:6px}.opendata-result-nav,.opendata-result-site{min-width:68px;min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 11px;border-radius:11px;color:#fff;background:var(--blue);box-shadow:0 3px 9px #1d70a82e;text-decoration:none;font-size:12px;font-weight:950;white-space:nowrap}.opendata-result-site{min-height:34px;color:var(--blue);border:1px solid rgba(29,112,168,.28);background:#1d70a80f;box-shadow:none}.opendata-result-nav:hover,.opendata-result-site:hover{color:#fff;background:#155d91}.opendata-result-nav:focus-visible,.opendata-result-site:focus-visible{outline:3px solid rgba(29,112,168,.28);outline-offset:2px}.opendata-result-main{min-width:0;display:grid;gap:5px}.opendata-result-main strong{overflow-wrap:anywhere;color:var(--ink);font-size:16px;font-weight:950;line-height:1.3}.opendata-result-line{min-width:0;display:grid;grid-template-columns:16px minmax(0,1fr);align-items:start;gap:5px;color:var(--muted);font-size:12px;font-weight:750;line-height:1.4}.opendata-result-line svg{margin-top:1px;color:var(--blue)}.opendata-result-note{justify-self:start;max-width:100%;display:-webkit-box;overflow:hidden;padding:5px 8px;border-radius:8px;color:#455b74;background:#f0f4f9;font-size:11px;font-weight:750;line-height:1.35;-webkit-line-clamp:2;-webkit-box-orient:vertical}.opendata-distance-chip{min-height:30px;padding:0 9px}.opendata-pagination{display:grid;grid-template-columns:86px minmax(0,1fr) 86px;align-items:center;gap:8px;margin-top:8px;padding:4px 0}.opendata-pagination span{color:var(--muted);font-size:13px;font-weight:850;text-align:center}.opendata-stale-warning{display:flex;align-items:flex-start;gap:7px;padding:9px 11px;border-radius:9px;background:#d977061f;color:#a04f00;font-weight:700;line-height:1.5}.opendata-stale-warning svg{flex:0 0 auto;margin-top:2px}.opendata-popup{min-width:240px;max-width:290px;color:#1e293b;font-family:inherit;padding:2px 0}.opendata-popup-title{margin:0 0 6px;font-size:15px;font-weight:700;color:#0f172a;line-height:1.35;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.opendata-popup-badge{display:inline-flex;align-items:center;font-size:12px;font-weight:600;color:#e11d48;background:#ffe4e6;padding:2px 6px;border-radius:4px}.opendata-popup-address{margin:0 0 6px;font-size:13px;color:#334155;line-height:1.4}.opendata-popup-phone{margin:0 0 6px;font-size:13px;color:#475569}.opendata-popup-distance{margin:0 0 8px;color:#2563eb;font-size:12px;font-weight:700}.opendata-popup-note-box{margin:6px 0 10px;padding:8px 10px;border-radius:8px;background:#f1f5f9;border:1px solid #e2e8f0}.opendata-popup-note-title{font-size:12px;font-weight:700;color:#475569;margin-bottom:3px}.opendata-popup-note{margin:0;font-size:12px;color:#334155;line-height:1.45;white-space:pre-line}.opendata-popup-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.opendata-popup-nav-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:8px;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff!important;text-align:center;text-decoration:none;font-size:13px;font-weight:700;box-shadow:0 2px 6px #2563eb40;transition:transform .15s ease,box-shadow .15s ease}.opendata-popup-nav-btn:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af);box-shadow:0 4px 10px #2563eb59;transform:translateY(-1px)}.opendata-popup-call-btn,.opendata-popup-site-btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 10px;border-radius:8px;background:#f8fafc;color:#0f172a!important;border:1px solid #cbd5e1;text-decoration:none;font-size:13px;font-weight:600}.opendata-popup-call-btn:hover,.opendata-popup-site-btn:hover{background:#e2e8f0}.opendata-count-badge{display:inline-block;margin-left:6px;font-size:12px;font-weight:700;color:#e11d48;background:#ffe4e6;padding:2px 7px;border-radius:999px;vertical-align:middle}@media(max-width:620px){.opendata-screen{padding:12px}.opendata-page-head{grid-template-columns:1fr;align-items:start}.opendata-title-block{grid-template-columns:42px 52px minmax(0,1fr);gap:8px}.opendata-title-icon{width:52px;height:48px}.opendata-route-selectors{justify-content:flex-start;width:100%}.opendata-route-selectors label{min-width:0;flex:1 1 138px}.opendata-route-selectors select{width:100%;max-width:none}.opendata-control-primary,.opendata-filter-row,.opendata-result-card,.opendata-result-select{grid-template-columns:1fr}.opendata-result-nav{min-height:44px}.radius-scope-selector{grid-template-columns:repeat(2,minmax(0,1fr))}.opendata-distance-chip{justify-self:start}.opendata-pagination{grid-template-columns:78px minmax(0,1fr) 78px}}.all-services-section h3{margin-top:12px;font-size:.95rem;color:var(--muted);font-weight:700;padding-bottom:6px;border-bottom:1px dashed var(--border)}.secondary-button.active{background:#1a73e81a!important;color:#1a73e8!important;border-color:#1a73e8!important}body{top:0!important}.goog-te-banner-frame.skiptranslate,.goog-te-banner-frame,.goog-spelling-page,iframe.goog-te-banner-frame{display:none!important}.goog-text-highlight{background:transparent!important;box-shadow:none!important}.header-lang-selector-wrapper{position:relative;display:inline-flex;align-items:center;margin-right:2px}.header-lang-icon{position:absolute;left:8px;color:var(--muted);width:14px;height:14px;pointer-events:none;z-index:2}#global-select-lang{padding:6px 14px 6px 26px;border-radius:20px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:.75rem;font-weight:700;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;transition:all .2s ease}#global-select-lang:hover{background:#fcf9f2;border-color:var(--red)}#global-select-lang option{background:var(--surface);color:var(--ink)}.opendata-map-large{position:relative;overflow:hidden;height:480px!important;margin-bottom:14px;border:1px solid var(--line);border-radius:20px;box-shadow:0 8px 22px #362b1e1a;transition:height .3s cubic-bezier(.4,0,.2,1)}.opendata-map-canvas{width:100%;height:100%}.opendata-map-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);background:#fffefbe0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-size:13px;font-weight:850}@media(max-width:768px){.opendata-map-large{height:380px!important}}.opendata-map-locate-btn{position:absolute;right:14px;bottom:24px;z-index:999;width:44px;height:44px;border-radius:50%;background:var(--card-bg, #ffffff);color:var(--blue);border:1px solid var(--border, rgba(0, 0, 0, .12));box-shadow:0 4px 14px #00000038;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1)}.opendata-map-locate-btn:hover{background:var(--blue);color:#fff;transform:scale(1.1);box-shadow:0 6px 18px #1a73e866}.opendata-map-locate-btn:active{transform:scale(.92)}.consultation-container{padding:16px;max-width:1200px;margin:0 auto}.consultation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:12px}.consultation-title-row{display:flex;align-items:center;gap:12px}.consultation-title-badge{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,#0284c7,#0369a1);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0284c74d}.consultation-title{font-size:22px;font-weight:800;color:var(--text-color, #1e293b);margin:0;letter-spacing:-.5px}.consultation-subtitle{font-size:13px;color:var(--muted, #64748b);margin:2px 0 0}.consultation-refresh-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:99px;background:var(--card-bg, #ffffff);border:1px solid var(--border, #e2e8f0);color:var(--blue, #0284c7);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 6px #0000000a}.consultation-refresh-btn:hover{background:#f0f9ff;border-color:#0284c7}.consultation-connection-panel{display:grid;gap:12px;margin-bottom:20px;padding:14px;border:1px solid var(--color-border);border-radius:16px;background:var(--color-jade-soft);box-shadow:var(--shadow-card)}.consultation-connection-panel.has-warning{background:var(--color-gold-soft)}.connection-summary{display:flex;align-items:flex-start;gap:9px;color:var(--color-jade)}.has-warning .connection-summary{color:var(--color-gold)}.connection-summary>svg{flex:0 0 auto;margin-top:1px}.connection-summary>span{min-width:0;display:grid;gap:2px}.connection-summary strong{color:var(--color-text);font-size:14px}.connection-summary small{color:var(--color-text-muted);font-size:12px;line-height:1.45}.connection-source-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}.connection-source{min-height:48px;display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:center;border:1px solid var(--color-border);border-radius:12px;color:var(--color-text);background:var(--color-surface);overflow:hidden}.connection-source:hover{border-color:var(--color-border-strong)}.connection-source-main{min-width:0;min-height:48px;display:grid;grid-template-columns:10px minmax(0,1fr);align-items:center;gap:8px;padding:7px 8px 7px 10px;border:0;color:var(--color-text);background:transparent;font:inherit;text-align:left;text-decoration:none;cursor:pointer}.connection-source-main:hover{background:var(--color-surface-subtle)}.connection-source-main>i{width:9px;height:9px;border-radius:50%;background:var(--color-jade);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-jade) 14%,transparent)}.connection-source.is-stale .connection-source-main>i,.connection-source.is-partial .connection-source-main>i{background:var(--color-gold);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-gold) 14%,transparent)}.connection-source.is-personal .connection-source-main>i,.connection-source.is-anonymous .connection-source-main>i{background:var(--color-blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-blue) 14%,transparent)}.connection-source.is-offline .connection-source-main>i{background:var(--color-brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-brand) 14%,transparent)}.connection-source-main>span{min-width:0;display:grid;gap:1px}.connection-source-main strong,.connection-source-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connection-source-main strong{font-size:13px}.connection-source-main small{color:var(--color-text-muted);font-size:10px}.connection-source-official{align-self:stretch;display:grid;place-items:center;border-left:1px solid var(--color-border);color:var(--color-blue);background:var(--color-surface)}.connection-source-official:hover{background:var(--color-blue-soft)}.connection-disclosure{margin:0;color:var(--color-text-muted);font-size:11px;line-height:1.5}.hospital-directory-section{display:grid;gap:14px;margin-bottom:24px;padding:16px;border:1px solid var(--color-border);border-radius:18px;background:var(--color-surface);box-shadow:var(--shadow-card)}.hospital-directory-heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:11px}.hospital-directory-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;color:var(--color-blue);background:var(--color-blue-soft)}.hospital-directory-heading h2{margin:0;color:var(--color-text);font-size:16px;line-height:1.35}.hospital-directory-heading p{margin:3px 0 0;color:var(--color-text-muted);font-size:11px;line-height:1.5}.hospital-directory-heading>a,.hospital-directory-row>a{display:inline-flex;align-items:center;justify-content:center;gap:4px;color:var(--color-blue);font-size:11px;font-weight:700;text-decoration:none;white-space:nowrap}.hospital-directory-heading>a:hover,.hospital-directory-row>a:hover{text-decoration:underline}.hospital-directory-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.hospital-directory-stats span{display:grid;gap:1px;padding:8px 10px;border:1px solid var(--color-border);border-radius:10px;color:var(--color-text-muted);background:var(--color-surface-subtle);font-size:10px}.hospital-directory-stats strong{color:var(--color-text);font-size:17px;line-height:1.1}.hospital-directory-stats .is-live{border-color:color-mix(in srgb,var(--color-jade) 28%,var(--color-border));background:var(--color-jade-soft)}.hospital-directory-stats .is-anonymous{border-color:color-mix(in srgb,var(--color-blue) 25%,var(--color-border));background:var(--color-blue-soft)}.hospital-directory-filters{display:grid;grid-template-columns:minmax(220px,1fr) minmax(140px,auto) minmax(150px,auto);gap:8px}.directory-search{min-width:0;display:flex;align-items:center;gap:8px;padding:0 11px;border:1px solid var(--color-border);border-radius:10px;color:var(--color-text-muted);background:var(--color-surface)}.directory-search:focus-within{border-color:var(--color-blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-blue) 12%,transparent)}.directory-search input,.hospital-directory-filters select{min-width:0;min-height:40px;border:0;outline:0;color:var(--color-text);background:transparent;font:inherit;font-size:12px}.directory-search input{width:100%}.hospital-directory-filters select{padding:0 10px;border:1px solid var(--color-border);border-radius:10px;cursor:pointer}.hospital-directory-meta{display:flex;justify-content:space-between;gap:12px;color:var(--color-text-muted);font-size:11px}.hospital-directory-list{display:grid;gap:7px}.hospital-directory-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(92px,auto);align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface)}.hospital-directory-row h3{margin:0;color:var(--color-text);font-size:13px;line-height:1.4}.hospital-directory-row p{margin:2px 0;color:var(--color-text-muted);font-size:10px}.hospital-directory-row small{display:block;color:var(--color-text-muted);font-size:10px;line-height:1.45}.hospital-coverage-badge{padding:5px 8px;border-radius:999px;color:var(--color-text-muted);background:var(--color-surface-subtle);font-size:10px;font-weight:800;white-space:nowrap}.hospital-coverage-badge.is-live{color:var(--color-jade);background:var(--color-jade-soft)}.hospital-coverage-badge.is-anonymous{color:var(--color-blue);background:var(--color-blue-soft)}.hospital-coverage-badge.is-personal{color:var(--color-gold);background:var(--color-gold-soft)}.hospital-coverage-badge.is-unavailable{color:var(--color-text-muted);background:var(--color-surface-subtle)}.hospital-directory-empty{padding:24px;border:1px dashed var(--color-border);border-radius:12px;color:var(--color-text-muted);text-align:center;font-size:12px}@media(max-width:700px){.hospital-directory-heading{grid-template-columns:auto minmax(0,1fr)}.hospital-directory-heading>a{grid-column:2;justify-self:start}.hospital-directory-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.hospital-directory-stats span:first-child{grid-column:span 2}.hospital-directory-filters,.hospital-directory-row{grid-template-columns:1fr}.hospital-directory-row{align-items:start}.hospital-coverage-badge,.hospital-directory-row>a{justify-self:start}}.spin-icon{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.watchlist-section{background:linear-gradient(135deg,#fefce8,#fef9c3);border:1.5px solid #fde047;border-radius:16px;padding:16px;margin-bottom:24px;box-shadow:0 4px 16px #eab3081f}.watchlist-section-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.watchlist-section-header h2{font-size:16px;font-weight:700;color:#854d0e;margin:0}.watchlist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.watchlist-card{background:#fff;border-radius:12px;padding:14px;border:1px solid #fef08a;box-shadow:0 2px 8px #0000000a;position:relative;display:flex;flex-direction:column;gap:10px}.watchlist-card.alert{border-color:#f87171;background:#fef2f2}.watchlist-card.active{border-color:#4ade80;background:#f0fdf4}.watchlist-card-top{display:flex;justify-content:space-between;align-items:flex-start}.watchlist-hospital{font-size:14px;font-weight:700;color:#1e293b}.watchlist-dept{font-size:12px;color:#64748b;margin-top:2px}.watchlist-remove-btn{background:transparent;border:none;color:#94a3b8;cursor:pointer;padding:4px;border-radius:6px}.watchlist-remove-btn:hover{color:#ef4444;background:#fee2e2}.watchlist-numbers-row{display:flex;align-items:center;justify-content:space-around;background:#f8fafc;border-radius:10px;padding:8px}.watchlist-num-box{display:flex;flex-direction:column;align-items:center}.num-label{font-size:11px;color:#64748b}.num-val{font-size:20px;font-weight:800}.num-val.main-num{color:#0284c7}.num-val.my-num{color:#d97706}.watchlist-num-divider{color:#cbd5e1;font-weight:700}.watchlist-status-bar{font-size:12px;font-weight:700;text-align:center;padding:6px;border-radius:6px;background:#fef3c7;color:#92400e}.watchlist-card.alert .watchlist-status-bar{background:#fee2e2;color:#991b1b}.watchlist-card.active .watchlist-status-bar{background:#dcfce7;color:#166534}.consultation-filter-bar{background:var(--card-bg, #ffffff);border:1px solid var(--border, #e2e8f0);border-radius:16px;padding:14px;margin-bottom:20px;display:flex;flex-direction:column;gap:12px;box-shadow:0 2px 8px #00000008}.search-input-wrapper{position:relative;display:flex;align-items:center;width:100%}.search-input-wrapper .search-icon{position:absolute;left:14px;color:#94a3b8}.consultation-search-input{width:100%;padding:10px 38px;border-radius:10px;border:1px solid var(--border, #cbd5e1);font-size:14px;outline:none;background:var(--bg, #ffffff);color:var(--text-color, #1e293b);transition:border-color .2s ease}.consultation-search-input:focus{border-color:#0284c7}.clear-search-btn{position:absolute;right:12px;background:none;border:none;color:#94a3b8;cursor:pointer}.filter-selects-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media(max-width:640px){.filter-selects-row{grid-template-columns:1fr}}.filter-select-group{position:relative;display:flex;align-items:center;background:var(--bg, #f8fafc);border:1px solid var(--border, #e2e8f0);border-radius:10px;padding:0 12px;color:#64748b}.filter-select-group select{width:100%;padding:9px 24px 9px 8px;border:none;background:transparent;font-size:13px;font-weight:600;color:var(--text-color, #334155);-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;cursor:pointer}.filter-select-group .caret-icon{position:absolute;right:10px;pointer-events:none;color:#94a3b8}.list-meta-info{display:flex;justify-content:space-between;font-size:13px;color:var(--muted, #64748b);margin-bottom:12px;font-weight:600}.updating-hint{color:#0284c7;font-style:italic}.empty-result-card{text-align:center;padding:48px 16px;background:var(--card-bg, #ffffff);border-radius:16px;border:1px dashed var(--border, #cbd5e1);color:var(--muted, #64748b);display:flex;flex-direction:column;align-items:center;gap:12px}.reset-filter-btn{padding:8px 18px;border-radius:8px;background:#0284c7;color:#fff;border:none;font-size:13px;font-weight:600;cursor:pointer}.consultation-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.consultation-load-more{display:block;margin:18px auto 0;padding:10px 20px;border:1px solid var(--color-blue);border-radius:999px;background:var(--color-surface);color:var(--color-blue);font-weight:700;cursor:pointer}.consultation-load-more:hover{background:var(--color-blue-soft)}.hospital-card{background:var(--card-bg, #ffffff);border:1px solid var(--border, #e2e8f0);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px;box-shadow:0 2px 10px #00000008;transition:transform .2s ease,box-shadow .2s ease}.hospital-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0000000f}.hospital-card-header{display:flex;justify-content:space-between;align-items:center}.city-tag{background:#e0f2fe;color:#0369a1;font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px}.time-tag{font-size:11px;color:#94a3b8;display:flex;align-items:center;gap:4px}.hospital-name{font-size:16px;font-weight:800;color:var(--text-color, #0f172a);margin:0;line-height:1.3}.dept-info-row{display:flex;align-items:center;gap:8px}.dept-badge{background:#f1f5f9;color:#334155;font-size:12px;font-weight:700;padding:3px 8px;border-radius:6px}.room-info{font-size:13px;color:#475569;font-weight:600}.doctor-row{display:flex;align-items:center;gap:6px;font-size:13px;color:#64748b}.shift-badge{font-size:11px;color:#94a3b8;margin-left:auto}.light-display-box{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-radius:12px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:6px;border:1px solid #e2e8f0}.light-pulse-indicator{display:flex;align-items:center;gap:6px}.pulse-dot{width:8px;height:8px;background-color:var(--color-jade);border-radius:50%;box-shadow:0 0 color-mix(in srgb,var(--color-jade) 70%,transparent);animation:pulse 1.6s infinite}.pulse-dot.is-idle{background:var(--color-text-subtle);box-shadow:none;animation:none}.pulse-dot.is-stale{background:var(--color-gold);box-shadow:none;animation:none}@keyframes pulse{0%{transform:scale(.95);box-shadow:0 0 color-mix(in srgb,var(--color-jade) 70%,transparent)}70%{transform:scale(1);box-shadow:0 0 0 6px color-mix(in srgb,var(--color-jade) 0%,transparent)}to{transform:scale(.95);box-shadow:0 0 color-mix(in srgb,var(--color-jade) 0%,transparent)}}.status-text{font-size:12px;font-weight:700;color:#15803d}.current-number-wrapper{display:flex;align-items:baseline;gap:4px}.number-label{font-size:13px;color:#64748b;font-weight:600}.current-number-val{font-size:32px;font-weight:900;color:#0284c7;line-height:1;font-family:system-ui,-apple-system,sans-serif}.number-unit{font-size:14px;color:#64748b;font-weight:700}.registered-info{font-size:11px;color:#94a3b8}.hospital-card.is-stale{border-color:var(--color-gold)}.light-display-box.is-stale .status-text{color:var(--color-gold)}.light-display-box.is-idle .status-text{color:var(--color-text-muted)}.hospital-progress-note{margin:0;padding:8px 10px;border-radius:10px;color:var(--color-text-muted);background:var(--color-surface-soft);font-size:11px;line-height:1.45}.hospital-source-link{min-height:32px;display:inline-flex;align-items:center;gap:5px;align-self:flex-start;color:var(--color-blue);font-size:11px;font-weight:700;text-decoration:none}.hospital-source-link:hover{text-decoration:underline}.hospital-card-footer{margin-top:4px}.track-btn{width:100%;padding:9px;border-radius:10px;background:var(--bg, #f1f5f9);border:1px solid var(--border, #cbd5e1);color:var(--text-color, #334155);font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;transition:all .2s ease}.track-btn:hover{background:#e0f2fe;border-color:#0284c7;color:#0284c7}.track-btn.active{background:#fef3c7;border-color:#f59e0b;color:#b45309}.tracking-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:16px}.tracking-modal-content{background:var(--card-bg, #ffffff);border-radius:20px;width:100%;max-width:420px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;overflow:hidden;display:flex;flex-direction:column}.modal-header{padding:16px 20px;border-bottom:1px solid var(--border, #e2e8f0);display:flex;justify-content:space-between;align-items:center}.modal-header h3{font-size:17px;font-weight:700;margin:0;color:var(--text-color, #0f172a)}.modal-close-btn{background:none;border:none;color:#94a3b8;cursor:pointer;padding:4px}.modal-body{padding:20px;display:flex;flex-direction:column;gap:16px}.modal-hospital-info{background:#f8fafc;padding:12px;border-radius:10px}.modal-hospital-info strong{display:block;font-size:14px;color:#0f172a}.modal-hospital-info p{font-size:12px;color:#64748b;margin:4px 0 0}.modal-input-group label{display:block;font-size:13px;font-weight:600;color:#334155;margin-bottom:8px}.modal-input-group input{width:100%;padding:10px 14px;border-radius:10px;border:1.5px solid #cbd5e1;font-size:16px;font-weight:700;outline:none;box-sizing:border-box}.modal-input-group input:focus{border-color:#0284c7}.modal-footer{padding:16px 20px;background:#f8fafc;border-top:1px solid var(--border, #e2e8f0);display:flex;justify-content:flex-end;gap:10px}.modal-save-btn{padding:9px 20px;border-radius:10px;background:#0284c7;color:#fff;border:none;font-size:14px;font-weight:700;cursor:pointer}.modal-delete-btn{padding:9px 16px;border-radius:10px;background:#fee2e2;color:#ef4444;border:none;font-size:13px;font-weight:600;cursor:pointer}.rail-trip-actions{display:flex;align-items:center;gap:7px}.rail-track-button{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 11px;border:1px solid var(--color-blue);border-radius:12px;color:var(--color-blue);background:var(--color-blue-soft);font-size:14px;font-weight:900;white-space:nowrap;cursor:pointer}.rail-track-button:hover{color:#fff;background:var(--color-blue)}.rail-tracking-overlay{position:fixed;inset:50% auto auto 50%;z-index:80;width:min(100vw,960px);height:min(var(--app-viewport-height, 100dvh),844px);display:flex;align-items:stretch;justify-content:center;transform:translate(-50%,-50%);background:#211e1a70;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.rail-tracking-sheet{width:min(100%,560px);height:100%;display:flex;flex-direction:column;overflow:hidden;color:var(--color-text);background:var(--color-canvas);box-shadow:var(--shadow-floating);animation:slide-up .24s ease-out}.rail-tracking-header{min-height:68px;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;padding:max(8px,env(safe-area-inset-top)) 12px 8px;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.rail-tracking-header>div{min-width:0;text-align:center}.rail-tracking-header span{display:block;color:var(--color-jade);font-size:11px;font-weight:900}.rail-tracking-header h2{overflow:hidden;margin:2px 0 0;font-size:19px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.rail-tracking-header .icon-button:disabled{opacity:.55;cursor:wait}.rail-tracking-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:14px 14px calc(26px + env(safe-area-inset-bottom));scrollbar-color:var(--color-border-strong) transparent}.tracking-loading{min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--color-text-muted);text-align:center}.tracking-loading strong{color:var(--color-text);font-size:17px}.tracking-loading span{font-size:13px}.tracking-error{min-height:180px;display:grid;grid-template-columns:auto minmax(0,1fr);align-content:center;text-align:left}.tracking-error>span{display:grid;gap:4px}.tracking-error small{font-size:12px;font-weight:500}.tracking-error button{grid-column:1 / -1;margin-top:8px}.tracking-status-card{overflow:hidden;padding:16px;border:1px solid var(--color-border);border-radius:20px;background:radial-gradient(circle at 94% 6%,rgba(45,111,152,.18),transparent 35%),linear-gradient(145deg,var(--color-surface),var(--color-blue-soft));box-shadow:var(--shadow-card)}.tracking-status-card.is-live{background:radial-gradient(circle at 94% 6%,rgba(23,122,82,.18),transparent 35%),linear-gradient(145deg,var(--color-surface),var(--color-jade-soft))}.tracking-status-card.is-delayed{background:radial-gradient(circle at 94% 6%,rgba(200,36,50,.16),transparent 35%),linear-gradient(145deg,var(--color-surface),var(--color-brand-soft))}.tracking-status-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--color-text-muted);font-size:11px;font-weight:800}.tracking-live-pill{min-height:28px;display:inline-flex;align-items:center;gap:7px;padding:0 10px;border-radius:999px;color:var(--color-jade);background:var(--color-jade-soft)}.is-delayed .tracking-live-pill{color:var(--color-brand);background:var(--color-brand-soft)}.is-estimated .tracking-live-pill{color:var(--color-blue);background:var(--color-blue-soft)}.tracking-live-pill i{width:8px;height:8px;border:2px solid var(--color-surface);border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 18%,transparent);animation:tracking-pulse 1.8s ease-in-out infinite}@keyframes tracking-pulse{50%{transform:scale(1.22);opacity:.7}}.tracking-status-route{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;margin-top:16px}.tracking-status-route>span{min-width:0;display:grid;gap:2px}.tracking-status-route>span:last-child{text-align:right}.tracking-status-route small{color:var(--color-text-muted);font-size:10px;font-weight:800}.tracking-status-route strong{overflow:hidden;font-size:22px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.tracking-status-route>svg{color:var(--color-text-muted)}.tracking-status-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:1px;margin:15px -16px -16px;border-top:1px solid var(--color-border);background:var(--color-border)}.tracking-status-grid>span{min-width:0;display:grid;gap:3px;padding:10px 8px 11px;background:#fffefce0;text-align:center}.tracking-status-grid small{color:var(--color-text-muted);font-size:10px;font-weight:700}.tracking-status-grid strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.tracking-map-card,.tracking-next-card{margin-top:14px;padding:14px}.tracking-section-heading{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:10px}.tracking-section-heading>span:first-child{min-width:0;display:inline-flex;align-items:center;gap:7px}.tracking-section-heading>span:first-child>svg{color:var(--color-blue)}.tracking-section-heading strong{font-size:16px}.tracking-section-heading>span:last-child{overflow:hidden;color:var(--color-text-muted);font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.tracking-section-heading .ds-chip{min-height:28px;padding-inline:10px;color:var(--color-blue);border-color:var(--color-blue);background:var(--color-blue-soft);font-size:11px}.tracking-geographic-card{margin-top:14px;padding:14px}.tracking-geographic-heading>span:first-child>svg{color:#2d6f98}.tracking-map-view-controls{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:8px 0;padding:4px;border:1px solid var(--color-border);border-radius:13px;background:var(--color-canvas)}.tracking-map-view-controls button{min-height:39px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 11px;border:0;border-radius:10px;color:var(--color-text-muted);background:transparent;font-size:12px;font-weight:900;cursor:pointer}.tracking-map-view-controls button.active{color:#173e57;background:var(--color-surface);box-shadow:0 2px 8px #211e1a17}.tracking-map-view-controls button:disabled{opacity:.48;cursor:default}.tracking-geographic-map{position:relative;height:clamp(370px,58dvh,520px);overflow:hidden;border:1px solid rgba(4,27,43,.42);border-radius:18px;background:#0b314c;box-shadow:inset 0 0 0 1px #ffffff14,0 10px 25px #0a243024}.tracking-geographic-svg{width:100%;height:100%;display:block}.tracking-geographic-state{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:22px;color:#ffffffd1;background:linear-gradient(145deg,#123f59,#082a43);text-align:center}.tracking-geographic-state.is-error{color:#fff1e7}.tracking-geographic-state small{max-width:270px;font-size:11px;line-height:1.45}.tracking-geographic-grid path{fill:none;stroke:#c1e2ee0e;stroke-width:1}.tracking-geographic-land{fill:url(#tra-land-gradient);stroke:#dcf2dead;stroke-width:1.8}.tracking-geographic-ridge-shadow,.tracking-geographic-ridge{fill:none;stroke-linecap:round;stroke-linejoin:round}.tracking-geographic-ridge-shadow{stroke:#14312b47;stroke-width:104;transform:translate(9px,10px)}.tracking-geographic-ridge{stroke:url(#tra-ridge-gradient);stroke-width:88}.tracking-geographic-haze{fill:url(#tra-haze-gradient);pointer-events:none}.tracking-geographic-network{fill:none;stroke:#103a3e80;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2}.tracking-geographic-route-casing,.tracking-geographic-route{fill:none;stroke-linecap:round;stroke-linejoin:round}.tracking-geographic-route-casing{stroke:#fff9e7db;stroke-width:10;filter:url(#tra-route-glow)}.tracking-geographic-route{stroke:#f28b26;stroke-width:6.2}.tracking-geographic-stations circle{fill:#f7efe0;stroke:#173130e0;stroke-width:2}.tracking-geographic-stations .is-current circle{fill:#f6c14c;stroke:#fff9ec;stroke-width:3}.tracking-geographic-stations .is-next circle{fill:#fff;stroke:#f28b26;stroke-width:3}.tracking-geographic-stations text{paint-order:stroke;fill:#fff;stroke:#051d2ae0;stroke-linejoin:round;stroke-width:5px;font-size:12px;font-weight:900}.tracking-geographic-train{position:absolute;z-index:4;width:42px;height:42px;display:grid;place-items:center;border:4px solid rgba(255,255,255,.96);border-radius:50% 50% 45% 45%;color:#fff;transform:translate(-50%,-50%) rotate(var(--train-bearing));background:var(--train-color);box-shadow:0 0 0 3px #06202e47,0 8px 15px #02152275;transition:left 1s linear,top 1s linear,transform .5s ease;pointer-events:none}.tracking-geographic-train:after{position:absolute;top:calc(100% + 3px);left:50%;width:9px;height:9px;border-right:3px solid white;border-bottom:3px solid white;content:"";transform:translate(-50%) rotate(45deg);opacity:.92}.tracking-geographic-overview{position:absolute;right:10px;bottom:10px;z-index:5;width:78px;height:116px;overflow:hidden;border:2px solid rgba(255,255,255,.86);border-radius:13px;background:#0b314c;box-shadow:0 6px 17px #02152261}.tracking-geographic-overview-land{fill:#8eb88e;stroke:#ffffff9e;stroke-width:4}.tracking-geographic-overview-dot{fill:#ffd45e;stroke:#fff;stroke-width:10;animation:tracking-overview-pulse 1.8s ease-in-out infinite}@keyframes tracking-overview-pulse{50%{r:28px;opacity:.7}}.tracking-map-legend{display:flex;align-items:center;flex-wrap:wrap;gap:7px 12px;margin:10px 1px 0;color:var(--color-text-muted);font-size:10px;font-weight:800}.tracking-map-legend>span{display:inline-flex;align-items:center;gap:5px}.tracking-map-legend>span:last-child{margin-left:auto}.tracking-map-legend i{width:12px;height:12px;display:inline-block;border:2px solid var(--color-surface);border-radius:50%;box-shadow:0 0 0 1px var(--color-border-strong)}.tracking-map-legend .route-swatch{width:18px;height:5px;border:0;border-radius:999px;background:#f28b26;box-shadow:0 0 0 2px #fff6df}.tracking-route-map{position:relative;overflow:hidden;margin-top:8px;border:1px solid var(--color-border);border-radius:16px;background:linear-gradient(135deg,rgba(255,255,255,.66),transparent 45%),repeating-linear-gradient(0deg,transparent 0 23px,rgba(45,111,152,.05) 24px),var(--color-blue-soft)}.tracking-map-terrain{position:absolute;border:1px solid rgba(23,122,82,.16);border-radius:44% 56% 52% 48%;background:#eaf6efc7;transform:rotate(-8deg) skew(-10deg)}.tracking-map-terrain--one{width:190px;height:96px;top:18px;right:-54px}.tracking-map-terrain--two{width:220px;height:118px;bottom:14px;left:-76px;transform:rotate(9deg) skew(8deg)}.tracking-map-rail{position:absolute;top:30px;bottom:30px;left:50%;width:10px;border-inline:2px solid var(--color-blue);transform:translate(-50%) rotate(-1.5deg);background:repeating-linear-gradient(to bottom,transparent 0 6px,var(--color-border-strong) 7px 10px);box-shadow:4px 7px #211e1a14}.tracking-map-stop{position:absolute;left:0;right:0;min-height:42px;transform:translateY(-50%)}.tracking-map-node{position:absolute;top:50%;left:50%;width:19px;height:19px;display:grid;place-items:center;border:4px solid var(--color-surface);border-radius:50%;transform:translate(-50%,-50%);background:var(--color-border-strong);box-shadow:0 2px #211e1a24}.tracking-map-stop.is-passed .tracking-map-node{background:var(--color-jade)}.tracking-map-stop.is-current .tracking-map-node,.tracking-map-stop.is-next .tracking-map-node{width:23px;height:23px;background:var(--color-brand);box-shadow:0 0 0 4px #c824321f,0 3px #211e1a1f}.tracking-map-label{position:absolute;top:50%;left:calc(50% + 28px);width:calc(50% - 40px);display:grid;gap:1px;transform:translateY(-50%)}.tracking-map-stop:nth-child(odd) .tracking-map-label{right:calc(50% + 28px);left:auto;text-align:right}.tracking-map-label strong{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.tracking-map-label small{color:var(--color-text-muted);font-size:10px;font-weight:800}.tracking-map-stop.is-current .tracking-map-label strong,.tracking-map-stop.is-next .tracking-map-label strong{color:var(--color-brand)}.tracking-train-marker{position:absolute;left:50%;z-index:4;width:46px;height:38px;display:grid;place-items:center;border:4px solid var(--color-surface);border-radius:14px 14px 12px 12px;color:#fff;transform:translate(-50%,-50%) rotate(-2deg);background:var(--color-brand);box-shadow:0 6px #211e1a21,var(--shadow-card);transition:top .45s ease}.tracking-estimate-note{display:flex;align-items:flex-start;gap:6px;margin:9px 1px 0;color:var(--color-text-muted);font-size:11px;line-height:1.45}.tracking-estimate-note svg{flex:0 0 auto;margin-top:1px;color:var(--color-blue)}.tracking-next-card dl{display:grid;margin:6px 0 0}.tracking-next-card dl>div{min-height:49px;display:grid;grid-template-columns:82px minmax(0,1fr);align-items:center;gap:10px;border-top:1px solid var(--color-border)}.tracking-next-card dt{color:var(--color-text-muted);font-size:12px;font-weight:800}.tracking-next-card dd{margin:0;font-size:13px;font-weight:800;text-align:right}.tracking-stop-section{margin-top:18px}.tracking-stop-list{margin:7px 0 0;padding:0;list-style:none}.tracking-stop-list li{min-height:58px;display:grid;grid-template-columns:48px 26px minmax(0,1fr);align-items:center;gap:8px}.tracking-stop-time{color:var(--color-text-muted);font-size:12px;font-variant-numeric:tabular-nums;font-weight:800;text-align:right}.tracking-stop-dot{position:relative;align-self:stretch;display:grid;place-items:center;color:var(--color-jade)}.tracking-stop-dot:before,.tracking-stop-dot:after{position:absolute;left:50%;width:2px;height:50%;content:"";transform:translate(-50%);background:var(--color-border-strong)}.tracking-stop-dot:before{top:0}.tracking-stop-dot:after{bottom:0}.tracking-stop-list li:first-child .tracking-stop-dot:before,.tracking-stop-list li:last-child .tracking-stop-dot:after{display:none}.tracking-stop-dot>i{z-index:1;width:13px;height:13px;border:3px solid var(--color-surface);border-radius:50%;background:var(--color-border-strong);box-shadow:0 0 0 1px var(--color-border-strong)}.tracking-stop-dot>svg{z-index:1;background:var(--color-canvas)}.tracking-stop-list li>span:last-child{min-width:0;display:grid;gap:2px}.tracking-stop-list li strong{font-size:15px}.tracking-stop-list li small{color:var(--color-text-muted);font-size:10px;font-weight:700}.tracking-stop-list li.is-current strong,.tracking-stop-list li.is-next strong{color:var(--color-brand)}.tracking-stop-list li.is-current .tracking-stop-dot>i,.tracking-stop-list li.is-next .tracking-stop-dot>i{background:var(--color-brand);box-shadow:0 0 0 4px #c824321f}.tracking-source-note{margin:16px 2px 0;color:var(--color-text-muted);font-size:11px;line-height:1.55}@media(min-width:561px){.rail-tracking-sheet{height:calc(100% - 24px);margin:12px 0;border:1px solid var(--color-border);border-radius:26px}}@media(max-width:380px){.rail-tracking-scroll{padding-inline:10px}.tracking-status-card{padding-inline:12px}.tracking-status-route strong{font-size:19px}.tracking-status-grid{margin-inline:-12px}.tracking-status-grid strong{font-size:11px}.tracking-map-card,.tracking-geographic-card,.tracking-next-card{padding-inline:11px}.tracking-geographic-map{height:390px}.tracking-map-legend>span:last-child{width:100%;margin-left:0}.tracking-map-label{left:calc(50% + 24px);width:calc(50% - 30px)}.tracking-map-stop:nth-child(odd) .tracking-map-label{right:calc(50% + 24px);left:auto}.rail-track-button,.rail-book-button{padding-inline:9px}}@media(prefers-reduced-motion:reduce){.tracking-geographic-train{transition:none!important}}.parking-bills-screen{display:grid;gap:16px}.parking-bills-hero{display:flex;align-items:flex-start;gap:13px;padding:18px;border:1px solid var(--color-border);border-radius:20px;background:linear-gradient(145deg,rgba(200,36,50,.1),var(--color-surface));box-shadow:var(--shadow-card)}.parking-bills-hero>span{width:50px;height:50px;display:grid;flex:0 0 auto;place-items:center;border-radius:16px;color:#fff;background:var(--color-brand)}.parking-bills-hero h2,.parking-bills-hero p{margin:0}.parking-bills-hero h2{margin-top:2px;font-size:clamp(21px,6vw,27px)}.parking-bills-hero p:last-child{margin-top:7px;color:var(--color-text-muted);font-size:13px;line-height:1.65}.parking-bills-form{display:grid;gap:15px;padding:18px;border:1px solid var(--color-border);border-radius:20px;background:var(--color-surface);box-shadow:var(--shadow-card)}.parking-bills-form>label,.parking-bills-form legend{display:grid;gap:7px;color:var(--color-text);font-size:13px;font-weight:800}.parking-bills-form select,.parking-bills-form>label>input{width:100%;min-height:50px;padding:0 14px;border:1px solid var(--color-border-strong);border-radius:13px;color:var(--color-text);background:var(--color-canvas);font:inherit;font-size:16px}.parking-bills-form select:focus,.parking-bills-form>label>input:focus{border-color:var(--color-brand);outline:3px solid rgba(200,36,50,.14)}.parking-bills-form fieldset{min-width:0;margin:0;padding:0;border:0}.parking-bills-car-types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:7px}.parking-bills-car-types label{min-height:48px;display:flex;align-items:center;justify-content:center;gap:5px;padding:8px;border:1px solid var(--color-border);border-radius:13px;color:var(--color-text-muted);font-size:13px;font-weight:800;cursor:pointer}.parking-bills-car-types label.is-selected{border-color:var(--color-brand);color:var(--color-brand);background:#c8243214}.parking-bills-car-types input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.parking-bills-car-types label:focus-within{outline:3px solid rgba(200,36,50,.16)}.parking-bills-submit{min-height:52px}.parking-bills-privacy,.parking-bill-reminders,.parking-bills-taichung-note{display:flex;align-items:flex-start;gap:10px;padding:14px;border-radius:16px}.parking-bills-privacy{color:var(--color-jade);background:#19876917}.parking-bills-privacy svg,.parking-bill-reminders svg,.parking-bills-taichung-note svg{flex:0 0 auto}.parking-bills-privacy p,.parking-bill-reminders p,.parking-bills-taichung-note p{display:grid;gap:3px;margin:0}.parking-bills-privacy span,.parking-bill-reminders span,.parking-bills-taichung-note span{color:var(--color-text-muted);font-size:12px;line-height:1.55}.parking-bills-result{display:grid;gap:14px;padding:18px;border:1px solid var(--color-border);border-radius:20px;background:var(--color-surface);box-shadow:var(--shadow-card)}.parking-bills-result>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.parking-bills-result>header span{color:var(--color-text-muted);font-size:12px;font-weight:800}.parking-bills-result>header h3{margin:3px 0 0;font-size:18px}.parking-bills-result>header svg{color:var(--color-jade)}.parking-bills-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.parking-bills-summary span{display:grid;gap:4px;padding:13px;border-radius:14px;background:var(--color-canvas)}.parking-bills-summary small{color:var(--color-text-muted);font-size:11px;font-weight:800}.parking-bills-summary strong{color:var(--color-brand);font-size:21px}.parking-bill-list{display:grid;gap:8px}.parking-bill-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:9px;padding:12px;border:1px solid var(--color-border);border-radius:14px}.parking-bill-item-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;color:var(--color-brand);background:#c8243217}.parking-bill-item>div{min-width:0;display:grid;gap:2px}.parking-bill-item small{color:var(--color-text-muted);font-size:11px}.parking-bill-item b{color:var(--color-brand);font-size:14px}.parking-bill-reminders{color:var(--color-amber);background:#d18b001a}.parking-bills-taichung-note{flex-wrap:wrap;border:1px solid var(--color-border);color:var(--color-blue);background:var(--color-surface)}.parking-bills-taichung-note p{min-width:0;flex:1}.parking-bills-taichung-note a{min-height:44px;display:inline-flex;align-items:center;gap:5px;margin-left:32px;color:var(--color-blue);font-size:13px;font-weight:800}@media(max-width:380px){.parking-bills-car-types label{padding-inline:5px;font-size:12px}.parking-bill-item{grid-template-columns:34px minmax(0,1fr)}.parking-bill-item>b{grid-column:2}}:root{--color-canvas: #f7f4ef;--color-canvas-strong: #eee9e1;--color-surface: #fffefc;--color-surface-soft: #faf7f2;--color-surface-muted: #f3eee7;--color-text: #211e1a;--color-text-muted: #706a62;--color-text-subtle: #918980;--color-border: #e5ddd2;--color-border-strong: #d3c7b9;--color-brand: #c82432;--color-brand-strong: #a81723;--color-brand-soft: #fff0f1;--color-jade: #177a52;--color-jade-strong: #0e6240;--color-jade-soft: #eaf6ef;--color-gold: #bf7b12;--color-gold-soft: #fff4d7;--color-blue: #2d6f98;--color-blue-soft: #eaf3f8;--color-danger: #b42318;--color-danger-soft: #fff0ee;--color-focus: #2879ab;--bg: var(--color-canvas);--surface: var(--color-surface);--ink: var(--color-text);--text: var(--color-text);--muted: var(--color-text-muted);--line: var(--color-border);--border: var(--color-border);--card-bg: var(--color-surface);--red: var(--color-brand);--red-dark: var(--color-brand-strong);--green: var(--color-jade);--gold: var(--color-gold);--blue: var(--color-blue);--danger: var(--color-danger);--font-sans: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, -apple-system, sans-serif;--font-size-xs: .75rem;--font-size-sm: .8125rem;--font-size-md: .9375rem;--font-size-lg: 1.0625rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.75rem;--font-weight-regular: 400;--font-weight-medium: 600;--font-weight-semibold: 700;--font-weight-bold: 800;--line-height-tight: 1.3;--line-height-body: 1.55;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-xs: 8px;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 20px;--radius-xl: 24px;--radius-pill: 999px;--shadow-card: 0 1px 2px rgba(49, 39, 28, .04), 0 8px 24px rgba(49, 39, 28, .06);--shadow-raised: 0 4px 10px rgba(49, 39, 28, .06), 0 16px 38px rgba(49, 39, 28, .1);--shadow-floating: 0 12px 36px rgba(37, 29, 22, .18);--shadow: var(--shadow-card);--duration-fast: .14s;--duration-base: .22s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--focus-ring: 0 0 0 3px rgba(40, 121, 171, .28);--icon-sticker-outline: drop-shadow(1px 0 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 1px 0 #fff) drop-shadow(0 -1px 0 #fff) drop-shadow(1px 1px 0 #fff) drop-shadow(-1px -1px 0 #fff) drop-shadow(0 3px 3px rgba(49, 39, 28, .14))}html{color-scheme:light;background:var(--color-canvas-strong)}body{color:var(--color-text);background:var(--color-canvas-strong);font-family:var(--font-sans);font-size:16px;line-height:var(--line-height-body);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}button,input,select,textarea{font-family:inherit}button,a,input,select,textarea{transition:color var(--duration-fast) var(--ease-standard),background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}:where(button,a,input,select,textarea):focus-visible{outline:0;box-shadow:var(--focus-ring)}.ds-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-card)}.ds-card--flat{box-shadow:none}.ds-stack{display:grid;gap:var(--space-4)}.ds-inline{display:flex;align-items:center;gap:var(--space-2)}.ds-button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-sm);color:#fff;background:var(--color-brand);font-weight:var(--font-weight-bold);text-decoration:none;cursor:pointer}.ds-button:hover{background:var(--color-brand-strong);transform:translateY(-1px)}.ds-button--secondary{color:var(--color-text);border-color:var(--color-border);background:var(--color-surface)}.ds-button--secondary:hover{border-color:var(--color-border-strong);background:var(--color-surface-soft)}.ds-field{width:100%;min-height:48px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-surface)}.ds-field:hover{border-color:var(--color-border-strong)}.ds-field:focus{border-color:var(--color-focus)}.ds-chip{min-height:32px;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text-muted);background:var(--color-surface-soft);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.ds-chip.is-active{color:#fff;border-color:var(--color-brand);background:var(--color-brand)}.ds-icon-sticker,.ds-icon-sticker>svg{filter:var(--icon-sticker-outline)}.prototype-stage{background:radial-gradient(circle at 15% 0%,rgba(200,36,50,.045),transparent 30%),var(--color-canvas-strong)}.mobile-prototype{color:var(--color-text);background:var(--color-canvas);box-shadow:var(--shadow-raised)}.app-header{border-color:#d3c7b9b8;background:#fffefcf0;box-shadow:0 1px #ffffffb8;backdrop-filter:saturate(135%) blur(14px);-webkit-backdrop-filter:saturate(135%) blur(14px)}.brand-mark{border:2px solid #fff;border-radius:var(--radius-md);background:linear-gradient(145deg,#d8323f,var(--color-brand-strong));box-shadow:0 5px 14px #a8172338}.brand-name,.page-title{color:var(--color-text);font-weight:var(--font-weight-bold);letter-spacing:-.035em}.city-selector,.menu-button,.icon-button{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:0 2px 8px #31271c0a}.header-share-button{color:var(--color-jade);border-color:#cce3d5;background:var(--color-jade-soft)}.menu-button:hover,.icon-button:hover,.city-selector:hover{border-color:var(--color-border-strong);background:var(--color-surface-soft)}.scroll-area{scrollbar-color:var(--color-border-strong) transparent}.inner-screen{padding:var(--space-5) var(--space-4) var(--space-8)}.home-screen>.global-search-container,.home-screen>.search-results-section{margin-inline:14px!important}.intro-block h2,.section-heading-row h1,.section-heading-row h2,.home-secondary-heading h2{color:var(--color-text);font-weight:var(--font-weight-bold);letter-spacing:-.035em;line-height:var(--line-height-tight)}.eyebrow{color:var(--color-brand);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.08em;text-transform:uppercase}.service-image,.service-icon-graphic,.mobile-prototype :where(button,a)>svg,.mobile-prototype :where(.heading-icon,.home-marquee-icon,.home-lifeapp-notice-icon,.menu-share-icon,.bike-locate-icon,.traffic-hero-icon,.traffic-road-icon,.commute-alert-card-icon,.faq-hero-icon,.bus-stop-pin,.arrival-mode,.line-dot)>svg{filter:var(--icon-sticker-outline)}.service-image{filter:drop-shadow(1.5px 0 0 #fff) drop-shadow(-1.5px 0 0 #fff) drop-shadow(0 1.5px 0 #fff) drop-shadow(0 -1.5px 0 #fff) drop-shadow(1.5px 1.5px 0 #fff) drop-shadow(-1.5px -1.5px 0 #fff) drop-shadow(0 4px 3px rgba(49,39,28,.16))}.service-icon-graphic{border:2px solid #fff;box-shadow:0 0 0 1px var(--color-border),var(--shadow-card);filter:none}.mobile-prototype :is(.nearby-section,.arrival-panel,.home-favorite-panel,.search-card,.large-service-list,.result-list,.station-list,.event-list,.notice-list,.more-list,.number-checker,.winning-numbers,.bike-locate-card,.bike-region-panel,.parking-list,.traffic-list,.events-filter-panel,.live-event-list,.policy-section,.opendata-result-card,.intercity-route-card,.intercity-stop-list,.traffic-road-card,.faq-section){border-color:var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-surface);box-shadow:var(--shadow-card)}.nearby-section{background:var(--color-surface)}.service-grid{gap:var(--space-1)}.service-button{border:1px solid transparent;border-radius:var(--radius-md)}.service-button:hover{border-color:var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-card);transform:translateY(-1px)}.service-button span{color:var(--color-text);font-weight:var(--font-weight-medium)}.deferred-service-card{border-color:var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-card)}.deferred-service-card:hover,.opendata-result-card:hover,.opendata-result-card:focus-visible{border-color:var(--color-border-strong);background:var(--color-surface-soft);box-shadow:var(--shadow-raised)}.mobile-prototype :is(.primary-button,.external-button,.booking-copy-button,.booking-official-button,.faq-install-button,.commute-settings-actions>button,.commute-alert-actions>button){min-height:48px;border-radius:var(--radius-sm);font-weight:var(--font-weight-bold)}.primary-button{background:var(--color-brand);box-shadow:0 5px 14px #c824322e}.primary-button:hover{background:var(--color-brand-strong);transform:translateY(-1px)}.primary-button:active,.external-button:active{transform:translateY(0) scale(.98)}.mobile-prototype :is(.search-card select,.search-card input,.search-field,.station-picker-search,.events-search,.events-select-row select,.intercity-search-field,.metro-station-trigger-btn,.opendata-route-selectors select,#global-select-lang){border-color:var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface)}.mobile-prototype :is(.search-card select,.search-card input,.station-picker-search,.events-search,.events-select-row select,.intercity-search-field,.metro-station-trigger-btn,.opendata-route-selectors select):focus-within{border-color:var(--color-focus);box-shadow:var(--focus-ring)}.mobile-prototype :is(.home-mode-tabs,.segmented-control,.bus-mode-tabs,.bike-mode-switch,.intercity-scope-tabs,.traffic-tabs){border-radius:var(--radius-md);background:var(--color-surface-muted)}.mobile-prototype :is(.events-topic-chips button,.invoice-periods button,.chip-row button,.traffic-chip-row button,.home-mode-tabs button,.segmented-control button,.bus-mode-tabs button,.bike-mode-switch button,.radius-scope-selector button,.opendata-quick-chip){min-height:44px}.bottom-nav{margin:7px 10px calc(7px + env(safe-area-inset-bottom,0px));padding-bottom:0;overflow:hidden;border:1px solid rgba(211,199,185,.9);border-radius:var(--radius-lg);background:#fffefcf5;box-shadow:0 8px 24px #31271c1a;backdrop-filter:saturate(130%) blur(14px);-webkit-backdrop-filter:saturate(130%) blur(14px)}.bottom-nav button,.bottom-nav a{min-height:68px;color:var(--color-text-muted)}.bottom-nav button.active,.bottom-nav a.active{color:var(--color-brand);background:var(--color-brand-soft)}.bottom-nav button.active:after,.bottom-nav a.active:after{left:28%;right:28%;height:3px;border-radius:var(--radius-pill)}.overlay{background:#211e1a6b;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.bottom-sheet{border:1px solid rgba(255,255,255,.72);border-bottom:0;border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:var(--color-surface);box-shadow:var(--shadow-floating)}.side-menu{background:var(--color-surface);box-shadow:var(--shadow-floating)}.toast{border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-pill);background:#25342c;box-shadow:var(--shadow-floating)}.query-state.error-state,.opendata-state-card.is-error{color:var(--color-danger);border-color:#efc2bd;background:var(--color-danger-soft)}.check-message.is-match,.traffic-road-status.is-normal,.bus-stop-arrival-status.soon,.bus-stop-arrival-status.arriving{color:var(--color-jade);border-color:#b8d8c7;background:var(--color-jade-soft)}@media(min-width:640px){.mobile-prototype{border:1px solid rgba(211,199,185,.78);border-radius:var(--radius-xl)}.home-screen>.global-search-container,.home-screen>.search-results-section{grid-column:1 / -1;width:100%;margin:0!important}}@media(max-width:420px){.inner-screen{padding-inline:var(--space-3)}.bottom-nav{margin-inline:var(--space-2)}}@media(max-width:520px){.city-selector{width:44px;padding:0;justify-content:center}.city-selector span,.city-selector .ph-caret-down,.city-selector>svg:last-child{display:none}.header-lang-selector-wrapper{width:44px;height:44px;flex:0 0 44px;margin:0}.header-lang-icon{left:50%;width:18px;height:18px;color:var(--color-text-muted);transform:translate(-50%)}#global-select-lang{width:44px;height:44px;padding:0;color:transparent;font-size:0}#global-select-lang option{color:var(--color-text);font-size:16px}}@media(prefers-reduced-motion:reduce){button,a,input,select,textarea{transition-duration:.01ms!important}}
