body{margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.leaflet-control-attribution{display:none}.leaflet-image-layer,.leaflet-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane,.leaflet-pane>canvas,.leaflet-pane>svg,.leaflet-tile,.leaflet-tile-container,.leaflet-zoom-box{left:0;position:absolute;top:0}.leaflet-container{overflow:hidden}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.leaflet-tile::selection{background:#0000}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{height:1600px;-webkit-transform-origin:0 0;width:1600px}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-height:none!important;max-width:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer{max-height:none!important;max-width:none!important;padding:0;width:auto}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;height:0;width:0;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{height:1px;width:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{pointer-events:visiblePainted;pointer-events:auto;position:relative;z-index:800}.leaflet-bottom,.leaflet-top{pointer-events:none;position:absolute;z-index:1000}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{clear:both;float:left}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-pan-anim .leaflet-tile,.leaflet-zoom-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-control,.leaflet-popup-pane{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:grabbing}.leaflet-image-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-image-layer.leaflet-interactive,.leaflet-marker-icon.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{background:#ffffff80;border:2px dotted #38f}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px #000000a6}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;color:#000;display:block;height:26px;line-height:26px;text-align:center;text-decoration:none;width:26px}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:focus,.leaflet-bar a:hover{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom:none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.leaflet-bar a.leaflet-disabled{background-color:#f4f4f4;color:#bbb;cursor:default}.leaflet-touch .leaflet-bar a{height:30px;line-height:30px;width:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{background:#fff;border-radius:5px;box-shadow:0 1px 5px #0006}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);height:36px;width:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{height:44px;width:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{background:#fff;color:#333;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{overflow-x:hidden;overflow-y:scroll;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{border-top:1px solid #ddd;height:0;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;line-height:1.4;padding:0 5px}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:focus,.leaflet-control-attribution a:hover{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;height:.6669em;vertical-align:initial!important;width:1em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{background:#fffc;border:2px solid #777;border-top:none;box-sizing:border-box;line-height:1.1;padding:2px 5px 1px;text-shadow:1px 1px #fff;white-space:nowrap}.leaflet-control-scale-line:not(:first-child){border-bottom:none;border-top:2px solid #777;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers{box-shadow:none}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-layers{background-clip:padding-box;border:2px solid #0003}.leaflet-popup{margin-bottom:20px;position:absolute;text-align:center}.leaflet-popup-content-wrapper{border-radius:12px;padding:1px;text-align:left}.leaflet-popup-content{font-size:13px;font-size:1.08333em;line-height:1.3;margin:13px 24px 13px 20px;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{height:20px;left:50%;margin-left:-20px;margin-top:-1px;overflow:hidden;pointer-events:none;position:absolute;width:40px}.leaflet-popup-tip{height:17px;margin:-10px auto 0;padding:1px;pointer-events:auto;transform:rotate(45deg);width:17px}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;box-shadow:0 3px 14px #0006;color:#333}.leaflet-container a.leaflet-popup-close-button{background:#0000;border:none;color:#757575;font:16px/24px Tahoma,Verdana,sans-serif;height:24px;position:absolute;right:0;text-align:center;text-decoration:none;top:0;width:24px}.leaflet-container a.leaflet-popup-close-button:focus,.leaflet-container a.leaflet-popup-close-button:hover{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678,M12=0.70710678,M21=-0.70710678,M22=0.70710678);margin:0 auto;width:24px}.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{background-color:#fff;border:1px solid #fff;border-radius:3px;box-shadow:0 1px 3px #0006;color:#222;padding:6px;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none;white-space:nowrap}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before,.leaflet-tooltip-top:before{background:#0000;border:6px solid #0000;content:"";pointer-events:none;position:absolute}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{border-top-color:#fff;bottom:0;margin-bottom:-12px}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-left:-6px;margin-top:-12px;top:0}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{margin-top:-6px;top:50%}.leaflet-tooltip-left:before{border-left-color:#fff;margin-right:-12px;right:0}.leaflet-tooltip-right:before{border-right-color:#fff;left:0;margin-left:-12px}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.modal-overlay.parking-location-overlay{z-index:10030!important}.parking-location-modal{display:flex;flex-direction:column;height:100%}.parking-location-modal .modal-content{background:#f8fafc;flex:1 1;overflow-y:auto;padding:1.75rem}@media (max-width:768px){.parking-location-modal .modal-content{padding:1.25rem}}.parking-hero{background:linear-gradient(135deg,#7c3aedf2,#6366f1d9);border-radius:1.5rem;box-shadow:0 18px 50px #581c8740;color:#fff;margin-bottom:1.5rem;overflow:hidden;padding:1.75rem;position:relative}.parking-hero:after{background:radial-gradient(circle at top left,#ffffff59,#0000 55%);content:"";inset:0;opacity:.5;pointer-events:none;position:absolute}.parking-hero>*{position:relative}.hero-type-badge{margin-bottom:1rem}.hero-name{font-size:1.9rem;font-weight:700;letter-spacing:-.02em;margin:0}.hero-subtitle{color:#ffffffd9;font-size:.95rem;margin:.35rem 0 0}.hero-chip-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.25rem}.hero-chip{align-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172a40;border:1px solid #ffffff40;border-radius:999px;color:#fffffff2;display:inline-flex;font-size:.85rem;font-weight:600;gap:.5rem;padding:.55rem .95rem}.hero-chip svg{color:#ffffffe6;height:16px;width:16px}.insight-card{--insight-accent:#7c3aed40;background:#6366f112;border:1px solid #6366f11f;border-radius:1rem;gap:.9rem;margin-bottom:1.5rem;padding:1rem 1.25rem}.insight-card,.insight-icon{align-items:center;display:flex}.insight-icon{background:#7c3aed1f;border-radius:50%;color:#7c3aed;flex-shrink:0;height:42px;justify-content:center;width:42px}.insight-body{display:flex;flex-direction:column;gap:.2rem}.insight-label{color:#6b7280;font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.insight-value{color:#1f2937;font-size:1rem;font-weight:700}.parking-actions{display:flex;flex-wrap:wrap;gap:.9rem}.action-button{border:none;border-radius:.85rem;display:inline-flex;flex:1 1 200px;font-size:.9rem;font-weight:600;padding:.95rem 1.6rem;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}.action-button.primary{background:linear-gradient(135deg,#7c3aed,#6d28d9);box-shadow:0 14px 30px #7c3aed52;color:#fff}.action-button.primary:hover{box-shadow:0 16px 32px #7c3aed61;transform:translateY(-2px)}.action-button.secondary{background:#fff;border:2px solid #7c3aed40;color:#7c3aed}.action-button.secondary:hover{box-shadow:0 10px 24px #7c3aed1f;transform:translateY(-2px)}.action-button.secondary.full-width{flex:1 1 100%}@media (max-width:768px){.parking-hero{border-radius:1.2rem;padding:1.4rem}.hero-name{font-size:1.6rem}.hero-chip-row{gap:.5rem}.hero-chip{font-size:.8rem;padding:.5rem .85rem}.parking-actions{flex-direction:column}}.sales-overview-card{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin-top:1.5rem;width:100%}.sales-overview-item{align-items:center;border:none;border-radius:12px;color:inherit;cursor:pointer;display:flex;gap:.75rem;padding:1rem 1.25rem;text-decoration:none;transition:all .3s ease}.sales-overview-black-friday{background:linear-gradient(135deg,#1f2937,#111827);box-shadow:0 4px 12px #1f29374d;color:#fff}.sales-overview-black-friday:hover{background:linear-gradient(135deg,#111827,#030712);box-shadow:0 8px 20px #1f293766;transform:translateY(-2px)}.sales-overview-all{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 4px 12px #3b82f64d;color:#fff}.sales-overview-all:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 8px 20px #3b82f666;transform:translateY(-2px)}.sales-overview-item:active{transform:translateY(0)}.sales-overview-item svg:first-child{flex-shrink:0}.sales-overview-content{align-items:flex-start;display:flex;flex:1 1;flex-direction:column;text-align:left}.sales-overview-title{color:#fff;font-size:.95rem;font-weight:600}.sales-overview-item svg:last-child{flex-shrink:0;opacity:.9}@media (max-width:768px){.sales-overview-card{gap:.75rem;grid-template-columns:1fr}.sales-overview-item{padding:.875rem 1rem}.sales-overview-title{font-size:.875rem}}.store-layout-link-btn{align-items:center;background:linear-gradient(135deg,#059669,#047857);border:none;border-radius:16px;box-shadow:0 4px 12px #0596694d;color:#fff;cursor:pointer;display:flex;gap:1rem;margin-top:1.5rem;padding:1.25rem 1.5rem;transition:all .3s ease;width:100%}.store-layout-link-btn:hover{background:linear-gradient(135deg,#047857,#065f46);box-shadow:0 8px 20px #05966966;transform:translateY(-2px)}.store-layout-link-btn:active{transform:translateY(0)}.store-layout-link-btn svg:first-child{flex-shrink:0}.store-layout-link-content{align-items:flex-start;display:flex;flex:1 1;flex-direction:column;gap:.25rem;text-align:left}.store-layout-link-title{color:#fff;font-size:1rem;font-weight:600}.store-layout-link-desc{color:#ffffffe6;font-size:.875rem;line-height:1.4}.store-layout-link-btn svg:last-child{flex-shrink:0;opacity:.9}.current-busyness-badge{align-items:center;background:#fff3;border:1px solid #ffffff4d;border-radius:1rem;display:flex;font-size:.875rem;gap:.5rem;padding:.25rem .75rem}.busyness-dot{border-radius:50%;height:8px;width:8px}.modal-content.fullscreen{padding:1rem 2rem 3rem}@media (min-width:768px){.modal-content.fullscreen{padding:1rem 2rem 3.5rem}}@media (min-width:1024px){.modal-content.fullscreen{padding:1rem 2rem 4rem}}@media (max-width:768px){.tab-content{padding-bottom:calc(5rem + env(safe-area-inset-bottom, 0px))}.modal-content.fullscreen{-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain;padding:1rem 1rem calc(3rem + env(safe-area-inset-bottom, 0px))}}.costco-overview-section{display:flex;flex-direction:column;gap:2rem}.costco-header-info{border-bottom:1px solid #e5e7eb;padding:2rem 0;text-align:center}.costco-name{color:#1f2937;font-size:2rem;font-weight:700;margin:0 0 .5rem}.costco-address{color:#6b7280;font-size:1.125rem;margin:0 0 1rem}.costco-type{background:#7c3aed;border-radius:1rem;color:#fff;display:inline-block;font-weight:500;padding:.5rem 1rem}.costco-details-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.detail-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem}.detail-card h3{color:#1f2937;font-size:1.125rem;font-weight:600;margin:0 0 1rem}.detail-item{border-bottom:1px solid #e5e7eb;justify-content:space-between;padding:.5rem 0}.detail-item:last-child{border-bottom:none}.detail-value{text-align:right}.detail-value.required{color:#dc2626;font-weight:600}.detail-value.not-required{color:#059669;font-weight:600}.services-list{display:flex;flex-wrap:wrap;gap:.5rem}.service-tag{background:#7c3aed;border-radius:1rem;color:#fff;font-size:.875rem;font-weight:500;padding:.25rem .75rem}.specialty-sections{display:flex;flex-wrap:wrap;gap:.5rem}.specialty-tag{background:#10b981;border-radius:1rem;color:#fff;font-size:.875rem;font-weight:500;padding:.25rem .75rem}.transport-info{color:#6b7280;line-height:1.6}.costco-tips-section{background:#f0f9ff;border:1px solid #0ea5e9;border-radius:.75rem;padding:2rem}.costco-tips-section h3{color:#0c4a6e;font-size:1.25rem;font-weight:600;margin:0 0 1.5rem}.tip-card{background:#fff;border:1px solid #0ea5e9;border-radius:.5rem;padding:1rem}.tip-card h4{color:#0c4a6e;font-size:1rem;font-weight:600;margin:0 0 .5rem}.costco-busyness-section{display:flex;flex-direction:column;gap:2rem}.current-busyness{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.75rem;padding:2rem;text-align:center}.current-busyness h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1rem}.busyness-circle{box-shadow:0 4px 12px #00000026;font-size:1.125rem;font-weight:600}.busyness-time{color:#6b7280;font-size:1rem;margin:0}.day-selector{text-align:center}.day-selector h3{color:#1f2937;font-size:1.125rem;font-weight:600;margin:0 0 1rem}.day-buttons{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.day-button{background:#fff;border:1px solid #d1d5db;border-radius:.5rem;color:#374151;cursor:pointer;font-weight:500;padding:.5rem 1rem;transition:all .2s}.day-button:hover{background:#f3f4f6}.day-button.active{background:#7c3aed;border-color:#7c3aed;color:#fff}.hourly-busyness h3{color:#1f2937;font-size:1.125rem;font-weight:600;margin:0 0 1rem}.busyness-chart{display:flex;flex-direction:column;gap:.75rem}.busyness-bar{align-items:center;display:flex;gap:1rem}.time-label{color:#374151;font-weight:500;width:60px}.bar-container{background:#e5e7eb;border-radius:10px;flex:1 1;height:20px;overflow:hidden}.busyness-bar-fill{border-radius:10px;height:100%;transition:width .3s ease}.busyness-label{color:#374151;font-weight:500;text-align:right;width:80px}.best-times-section h3{color:#1f2937;font-size:1.125rem;font-weight:600;margin:0 0 1rem}.best-times-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.best-time-card{background:#f0f9ff;border:1px solid #0ea5e9;border-radius:.5rem;padding:1rem}.best-time-card h4{color:#0c4a6e;font-size:1rem;font-weight:600;margin:0 0 .5rem}.best-time-card p{color:#0c4a6e;line-height:1.5;margin:0}.costco-parking-section{display:flex;flex-direction:column;gap:2rem}.parking-overview{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem}.parking-overview h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1rem}.parking-details{gap:.75rem}.parking-item{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:.5rem 0}.parking-item:last-child{border-bottom:none}.parking-label{color:#374151;font-weight:500}.parking-value{color:#6b7280;text-align:right}.parking-restrictions h3{color:#1f2937;font-size:1.125rem;font-weight:600;margin:0 0 1rem}.restrictions-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.restriction-card{background:#fef3c7;border:1px solid #f59e0b;border-radius:.5rem;padding:1rem}.restriction-card h4{color:#92400e;font-size:1rem;font-weight:600;margin:0 0 .5rem}.restriction-card p{color:#92400e;line-height:1.5;margin:0}.costco-food-section{display:flex;flex-direction:column;gap:2rem}.costco-sales-section{padding:0}.sales-header{margin-bottom:1.5rem}.sales-header h3{color:#1f2937;font-size:1.5rem;font-weight:700;margin:0 0 .5rem}.sales-subtitle{color:#6b7280;font-size:.9rem;margin:0}.sales-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr}.sales-card{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:12px;color:inherit;cursor:pointer;display:flex;gap:1rem;padding:1.25rem;text-decoration:none;transition:all .2s ease}.sales-card-black-friday{border-color:#1f2937}.sales-card-black-friday:hover{background:#f9fafb;border-color:#111827;box-shadow:0 4px 12px #1f293733}.sales-card-icon-black-friday{background:linear-gradient(135deg,#1f2937,#111827)}.sales-card-arrow-black-friday{color:#1f2937}.sales-card-black-friday:hover .sales-card-arrow-black-friday{color:#111827}.sales-card-hot-buys{border-color:#ef4444}.sales-card-hot-buys:hover{background:#fef2f2;border-color:#dc2626;box-shadow:0 4px 12px #ef444433}.sales-card-icon-hot-buys{background:linear-gradient(135deg,#ef4444,#dc2626)}.sales-card-arrow-hot-buys{color:#ef4444}.sales-card-hot-buys:hover .sales-card-arrow-hot-buys{color:#dc2626}.sales-card-last-chance{border-color:#f59e0b}.sales-card-last-chance:hover{background:#fffbeb;border-color:#d97706;box-shadow:0 4px 12px #f59e0b33}.sales-card-icon-last-chance{background:linear-gradient(135deg,#f59e0b,#d97706)}.sales-card-arrow-last-chance{color:#f59e0b}.sales-card-last-chance:hover .sales-card-arrow-last-chance{color:#d97706}.sales-card-christmas{border-color:#10b981}.sales-card-christmas:hover{background:#f0fdf4;border-color:#059669;box-shadow:0 4px 12px #10b98133}.sales-card-icon-christmas{background:linear-gradient(135deg,#10b981,#059669)}.sales-card-arrow-christmas{color:#10b981}.sales-card-christmas:hover .sales-card-arrow-christmas{color:#059669}.sales-card:hover{transform:translateY(-2px)}.sales-card-icon{align-items:center;border-radius:10px;color:#fff;display:flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.sales-card-content{flex:1 1;min-width:0}.sales-card-content h4{color:#1f2937;font-size:1.1rem;font-weight:600;margin:0 0 .25rem}.sales-card-description{color:#6b7280;font-size:.875rem;margin:0}.sales-card-arrow{flex-shrink:0;transition:transform .2s ease,color .2s ease}.sales-card:hover .sales-card-arrow{transform:translateX(4px)}@media (max-width:768px){.sales-card{padding:1rem}.sales-card-icon{height:40px;width:40px}.sales-card-content h4{font-size:1rem}.sales-card-description{font-size:.8rem}}.food-court-info{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem}.food-court-info h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1rem}.food-details{display:flex;flex-direction:column;gap:.75rem}.food-item{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:.5rem 0}.food-item:last-child{border-bottom:none}.food-label{color:#374151;font-weight:500}.food-value{color:#6b7280;text-align:right}.menu-section{margin-bottom:1.5rem}.menu-section h3{color:#1f2937;font-size:1.125rem;font-weight:600;margin:0 0 1rem}.menu-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.menu-item{background:#f0f9ff;border:1px solid #0ea5e9;border-radius:.5rem;display:flex;flex-direction:column;gap:.5rem;padding:1rem}.menu-item-header{align-items:center;display:flex;justify-content:space-between}.menu-item-name{color:#0c4a6e;flex:1 1;font-weight:500}.menu-item-price{color:#0c4a6e;flex-shrink:0;font-size:1.125rem;font-weight:600}.menu-item-description{color:#64748b;font-size:.875rem;font-style:italic;margin-top:.25rem}.store-layout-section h3{color:#1f2937;font-size:1.125rem;font-weight:600;margin:0 0 1rem}.food-categories-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.food-category-card{background:#f0fdf4;border:1px solid #22c55e;border-radius:.5rem;padding:1rem}.food-category-card h4{color:#15803d;font-size:1rem;font-weight:600;margin:0 0 .5rem}.food-category-card p{color:#15803d;line-height:1.5;margin:0}.costco-services-section{display:flex;flex-direction:column;gap:2rem}.services-overview h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1rem}.services-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.service-card{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:.75rem;display:flex;flex-direction:column;gap:.5rem;padding:1.5rem;text-align:center}.service-card svg{color:#7c3aed}.service-card h4{color:#1f2937;font-size:1rem;font-weight:600;margin:0}.service-card p{color:#6b7280;font-size:.875rem;margin:0}.holiday-hours-section h3{color:#1f2937;font-size:1.125rem;font-weight:600;margin:0 0 1rem}.holiday-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.holiday-card{background:#fef3c7;border:1px solid #f59e0b;border-radius:.5rem;padding:1rem}.holiday-card h4{color:#92400e;font-size:1rem;font-weight:600;margin:0 0 .5rem}.holiday-card p{color:#92400e;line-height:1.5;margin:0}.special-events-section h3{color:#1f2937;font-size:1.125rem;font-weight:600;margin:0 0 1rem}.events-list{display:flex;flex-direction:column;gap:.75rem}.event-item{align-items:center;background:#f0f9ff;border:1px solid #0ea5e9;border-radius:.5rem;display:flex;gap:.75rem;padding:.75rem}.event-icon{color:#7c3aed;flex-shrink:0}.event-icon svg{height:18px;width:18px}.event-text{color:#0c4a6e;font-weight:500}.costco-store-layout-section{display:flex;flex-direction:column;gap:2rem}.store-layout-header{border-bottom:1px solid #e5e7eb;padding:1rem 0;text-align:center}.store-layout-header h3{color:#1f2937;font-size:1.5rem;font-weight:600;margin:0 0 .5rem}.layout-description{color:#6b7280;line-height:1.6;margin:0}.store-sections-grid{display:none;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.section-category{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:2px solid #e2e8f0;border-radius:1rem;box-shadow:0 4px 12px #0000000d;padding:1.5rem}.section-category h4{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#7c3aed,#8b5cf6);-webkit-background-clip:text;background-clip:text;border-bottom:3px solid #7c3aed;color:#1e293b;font-size:1.125rem;font-weight:700;margin:0 0 1rem;padding-bottom:.75rem;text-align:center}.section-items{display:flex;flex-direction:column;gap:1rem}.section-item{align-items:center;border-radius:.5rem;display:flex;gap:1rem;padding:1rem;transition:all .2s}.section-item:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.section-item.fresh-food{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:2px solid #22c55e;box-shadow:0 2px 8px #22c55e33}.section-item.frozen-goods{background:linear-gradient(135deg,#f0f9ff,#dbeafe);border:2px solid #0ea5e9;box-shadow:0 2px 8px #0ea5e933}.section-item.specialty{background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #f59e0b;box-shadow:0 2px 8px #f59e0b33}.section-icon{align-items:center;background:#fff;border-radius:50%;box-shadow:0 2px 8px #0000001a;display:flex;font-size:2rem;height:60px;justify-content:center;width:60px}.section-info h5{color:#1f2937;font-size:1rem;font-weight:600;margin:0 0 .25rem}.section-info p{color:#6b7280;font-size:.875rem;line-height:1.4;margin:0}.store-navigation-tips{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:2px solid #0ea5e9;border-radius:1rem;box-shadow:0 4px 16px #0ea5e926;padding:2rem}.store-navigation-tips h4{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#7c3aed,#8b5cf6);-webkit-background-clip:text;background-clip:text;color:#0c4a6e;font-size:1.25rem;font-weight:700;margin:0 0 1.5rem;text-align:center}.tips-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.tip-card{background:linear-gradient(135deg,#fff,#f8fafc);border:2px solid #0ea5e9;border-radius:.75rem;box-shadow:0 2px 8px #0ea5e91a;padding:1.25rem;transition:all .3s ease}.tip-card:hover{box-shadow:0 6px 16px #0ea5e933;transform:translateY(-2px)}.tip-card h5{color:#0c4a6e;font-size:1rem;font-weight:600;margin:0 0 .5rem}.tip-card p{color:#0c4a6e;font-size:.875rem;line-height:1.5;margin:0}.store-features{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem}.store-features h4{color:#1f2937;font-size:1.125rem;font-weight:600;margin:0 0 1rem;text-align:center}.features-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.feature-item{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;gap:.75rem}.feature-icon{align-items:center;background:#f3f4f6;border-radius:50%;display:flex;font-size:1.5rem;height:40px;justify-content:center;width:40px}.feature-info h5{color:#374151;font-size:.875rem;font-weight:600;margin:0 0 .25rem}.feature-info p{color:#6b7280;font-size:.875rem;line-height:1.4;margin:0}.costco-fuel-section{display:flex;flex-direction:column;gap:2rem}.fuel-station-info{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem}.fuel-station-info h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1rem}.fuel-details{display:flex;flex-direction:column;gap:.75rem}.fuel-item{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:.5rem 0}.fuel-item:last-child{border-bottom:none}.fuel-label{color:#374151;font-weight:500}.fuel-value{color:#6b7280;text-align:right}.fuel-location h3{color:#1f2937;font-size:1.125rem;font-weight:600;margin:0 0 1rem}.coordinates-info{background:#f0fdf4;border:1px solid #22c55e;border-radius:.5rem;padding:1rem}.coordinate-item{align-items:center;border-bottom:1px solid #22c55e;display:flex;justify-content:space-between;padding:.5rem 0}.coordinate-item:last-child{border-bottom:none}.coordinate-label{color:#15803d;font-weight:500}.coordinate-value{color:#15803d;font-family:monospace;font-weight:600}@media (max-width:768px){.best-times-grid,.costco-details-grid,.food-categories-grid,.holiday-grid,.menu-grid,.restrictions-grid,.services-grid,.tips-grid{grid-template-columns:1fr}.day-buttons{justify-content:flex-start;overflow-x:auto;padding-bottom:.5rem}.busyness-circle{font-size:1rem;height:100px;width:100px}.features-grid,.store-sections-grid,.tips-grid{grid-template-columns:1fr}.section-item{flex-direction:column;gap:.75rem;text-align:center}.section-icon{height:50px;width:50px}.section-icon svg{height:24px;width:24px}}.traffic-section{padding:2rem}.section-header{margin-bottom:2rem;text-align:center}.section-header h3{font-size:1.5rem;font-weight:700;margin:0 0 .5rem}.section-header p{color:#6b7280;font-size:.875rem;margin:0}.loading-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:3rem}.cameras-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.camera-card{border-radius:1rem;overflow:hidden}.camera-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e5e7eb;padding:1rem}.camera-header h4{font-size:1rem}.distance-badge{background:#7c3aed;border-radius:1rem}.camera-image-container{position:relative;width:100%}.camera-image{object-fit:cover;transition:transform .3s ease}.camera-card:hover .camera-image{transform:scale(1.05)}.camera-image-placeholder{align-items:center;background:#f3f4f6;display:flex;flex-direction:column;height:100%;justify-content:center;padding:1rem}.camera-image-placeholder p{margin:.5rem 0 0}.camera-image-placeholder small{font-size:.75rem}.camera-details{padding:1rem}.detail-label{color:#374151}.detail-value{color:#6b7280}.camera-actions{border-top:1px solid #f3f4f6;padding:1rem}.view-live-btn{background:#7c3aed;border-radius:.5rem;font-weight:500;justify-content:center;padding:.75rem;transition:all .2s;width:100%}.view-live-btn:hover:not(:disabled){background:#6d28d9}.no-cameras{align-items:center;color:#9ca3af;display:flex;flex-direction:column;justify-content:center;padding:3rem}.no-cameras p{margin:.5rem 0 0}.traffic-summary{background:#f0f9ff;border:1px solid #0ea5e9;border-radius:.5rem;color:#0c4a6e;margin-bottom:2rem}.hazards-grid{margin-bottom:1rem}.hazard-card{background:#fff;border-radius:1rem;box-shadow:0 4px 6px -1px #0000001a;padding:1.5rem}.hazard-card:hover{box-shadow:0 8px 20px -3px #0000001a;transform:translateY(-1px)}.hazard-header{align-items:center;margin-bottom:1rem}.hazard-header h4{font-size:1.125rem}.hazard-details{line-height:1.5}.hazard-details .grid{margin:.75rem 0}.severity-high{color:#dc2626;font-weight:600}.severity-medium{color:#f59e0b;font-weight:600}.severity-low{color:#10b981;font-weight:600}.status-active{color:#dc2626;font-weight:600}.status-cleared{color:#10b981;font-weight:600}.no-hazards{align-items:center;color:#9ca3af;display:flex;flex-direction:column;justify-content:center;padding:3rem}.no-hazards p{margin:.5rem 0 0}.hazards-summary{background:#fef3c7;border:1px solid #f59e0b;border-radius:.5rem;color:#92400e;padding:1rem}.experimental-store-mapper{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:2px solid #e2e8f0;border-radius:.875rem;box-shadow:0 4px 12px #0000000d;margin-bottom:1.5rem;padding:1rem}.mapper-header{align-items:center;display:flex;gap:.75rem;margin-bottom:.75rem;padding:0 .5rem}.mapper-header h4{color:#1e293b;font-size:1.25rem;font-weight:800;letter-spacing:-.02em;margin:0}.mapper-description{color:#64748b;font-size:.8125rem;line-height:1.5;margin:0 0 1rem;padding:0 .5rem}.view-toggle{background:#fff;border:2px solid #e2e8f0;border-radius:.625rem;box-shadow:0 2px 8px #0000000d;display:flex;gap:.5rem;margin-bottom:1rem;padding:.5rem}.view-toggle-btn{-webkit-tap-highlight-color:rgba(124,58,237,.1);align-items:center;background:#f8fafc;border:2px solid #0000;border-radius:.5rem;color:#64748b;cursor:pointer;display:flex;flex:1 1;font-size:.8125rem;font-weight:600;gap:.375rem;justify-content:center;padding:.625rem .5rem;transition:all .2s ease}.view-toggle-btn.active{background:linear-gradient(135deg,#7c3aed,#a855f7);border-color:#7c3aed;box-shadow:0 2px 8px #7c3aed4d;color:#fff}.view-toggle-btn:active{transform:scale(.98)}.store-layout-mobile-list{display:none;flex-direction:column;gap:1rem;margin-bottom:1rem}.store-layout-mobile-list.active{display:flex}@media (min-width:769px){.store-layout-mobile-list{display:none}.store-layout-mobile-list.active{display:flex}}.store-row-section{background:#fff;border:2px solid #e2e8f0;border-radius:.875rem;box-shadow:0 2px 8px #0000000d;padding:1rem}.row-section-header{align-items:center;border-bottom:2px solid #f1f5f9;display:flex;gap:.625rem;margin-bottom:.75rem;padding-bottom:.75rem}.row-position-badge{border-radius:.5rem;color:#fff;font-size:.75rem;font-weight:800;letter-spacing:.5px;min-width:65px;padding:.375rem .75rem;text-align:center;text-transform:uppercase}.back-badge{background:linear-gradient(135deg,#ef4444,#dc2626)}.middle-badge{background:linear-gradient(135deg,#3b82f6,#2563eb)}.front-badge{background:linear-gradient(135deg,#10b981,#059669)}.row-section-header h5{color:#1e293b;font-size:1.125rem;font-weight:700;margin:0}.row-zones{display:flex;flex-direction:column;gap:.75rem}.mobile-zone-card{background:linear-gradient(135deg,#fff,#f8fafc);border:2px solid #e2e8f0;border-radius:.75rem;box-shadow:0 2px 8px #0000000d;padding:.875rem}.mobile-zone-card:not(.clickable-zone-card){cursor:default;opacity:.85}.mobile-zone-card.clickable-zone-card{background:linear-gradient(135deg,#fff,#faf5ff);border:2px solid #7c3aed;box-shadow:0 2px 8px #7c3aed1a,0 0 0 1px #7c3aed0d;cursor:default;overflow:hidden;position:relative}.mobile-zone-card.clickable-zone-card:before{background:linear-gradient(90deg,#7c3aed,#a855f7);content:"";height:3px;left:0;position:absolute;right:0;top:0}.mobile-zone-header{align-items:center;display:flex;gap:.5rem;justify-content:space-between;margin-bottom:.625rem}.mobile-zone-header .zone-icon{color:#7c3aed}.clickable-indicator{color:#7c3aed;flex-shrink:0;margin-left:auto}.zone-position{background:#f1f5f9;border-radius:.375rem;color:#64748b;font-size:.75rem;font-weight:600;padding:.25rem .625rem}.mobile-zone-card h6{color:#1e293b;font-size:.9375rem;font-weight:700;margin:0 0 .25rem}.mobile-zone-desc{color:#64748b;font-size:.8125rem;line-height:1.4;margin:0 0 .375rem}.mobile-zone-aisles{background:#f3e8ff;border-radius:.375rem;color:#7c3aed;display:inline-block;font-size:.75rem;font-weight:600;margin-top:.375rem;padding:.375rem .625rem}.clickable-hint{align-items:center;border-top:1px dashed #7c3aed4d;color:#7c3aed;display:flex;font-size:.75rem;font-weight:500;gap:.375rem;margin-top:.5rem;padding-top:.625rem}.clickable-hint svg{color:#7c3aed;flex-shrink:0}.clickable-zone-card:hover .clickable-hint{border-top-color:#a855f766;color:#a855f7}.store-layout-wrapper{display:none;margin-bottom:1.5rem;position:relative}.store-layout-wrapper.active{display:block}@media (min-width:769px){.store-layout-wrapper{display:none}.store-layout-wrapper.active{display:block}}.store-floor-plan-container{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border:3px solid #cbd5e1;border-radius:1rem;box-shadow:inset 0 2px 8px #0000000d,0 4px 16px #0000001a,0 0 0 1px #7c3aed1a;cursor:grab;display:none;height:75vh;margin-bottom:1rem;max-height:750px;min-height:550px;overflow:hidden;position:relative;touch-action:none;user-select:none;-webkit-user-select:none;width:100%}.store-floor-plan-container.active{display:block}.store-floor-plan-container:before{animation:fadeInOut 4s ease-in-out;background:linear-gradient(135deg,#7c3aedf2,#a855f7f2);border-radius:.5rem;box-shadow:0 4px 12px #7c3aed66;color:#fff;content:"Interactive Map - Pinch to Zoom • Drag to Pan";font-size:.75rem;font-weight:700;left:50%;letter-spacing:.025em;padding:.5rem 1rem;pointer-events:none;position:absolute;top:.75rem;transform:translateX(-50%);white-space:nowrap;z-index:100}@keyframes fadeInOut{0%,to{opacity:0;transform:translateX(-50%) translateY(-10px)}10%,90%{opacity:1;transform:translateX(-50%) translateY(0)}}.store-floor-plan-container:active{cursor:grabbing}.store-floor-plan-container:active:before{display:none}@media (min-width:769px){.store-floor-plan-container{display:none!important}.store-floor-plan{padding:2.5rem;position:relative;transform:none!important}.store-layout-wrapper .store-floor-plan{display:block}}.map-fullscreen-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000b3;bottom:0;left:0;position:fixed;right:0;top:0;z-index:99998}.map-fullscreen-modal{background:#fff;bottom:0;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;left:0;overflow:hidden;position:fixed;right:0;top:0;z-index:99999}.map-fullscreen-header{align-items:center;background:linear-gradient(135deg,#7c3aed,#a855f7);border-bottom:2px solid #e5e7eb;box-shadow:0 2px 8px #0000001a;color:#fff;display:flex;flex-shrink:0;justify-content:space-between;padding:calc(1.5rem + env(safe-area-inset-top, 0px)) 1.5rem 1.5rem}.map-fullscreen-title{align-items:center;display:flex;gap:.75rem}.map-fullscreen-title h3{color:#fff;font-size:1.5rem;font-weight:800;letter-spacing:-.02em;margin:0}.map-fullscreen-title svg{flex-shrink:0}.map-fullscreen-close{-webkit-tap-highlight-color:rgba(255,255,255,.3);align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:44px;justify-content:center;transition:all .2s ease;width:44px}.map-fullscreen-close:hover{background:#ffffff4d;transform:scale(1.05)}.map-fullscreen-close:active{transform:scale(.95)}.map-zoom-controls-fullscreen{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 2px 4px #0000000d;display:flex;flex-shrink:0;gap:.75rem;justify-content:center;padding:1rem}.map-fullscreen-container{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);cursor:grab;flex:1 1;min-height:0;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}.map-fullscreen-container:active{cursor:grabbing}.map-fullscreen-container .store-floor-plan-wrapper{backface-visibility:hidden;-webkit-backface-visibility:hidden;contain:layout style paint;isolation:isolate;left:50%;min-height:600px;min-width:800px;position:absolute;top:50%;transform:translate3d(-50%,-50%,0);-webkit-transform:translate3d(-50%,-50%,0);transform-origin:center center;transform-style:preserve-3d;transition:none;will-change:transform}.map-fullscreen-container.interacting{contain:layout style paint}.map-fullscreen-container.interacting .store-floor-plan-wrapper{transition:none!important}.map-fullscreen-container .store-floor-plan{box-sizing:border-box;contain:layout style paint;height:100%;padding:2rem;transform:translateZ(0);-webkit-transform:translateZ(0);width:100%;will-change:contents}.map-fullscreen-hint{animation:fadeInOutHint 4s ease-in-out;background:linear-gradient(135deg,#7c3aedf2,#a855f7f2);border-radius:2rem;bottom:1rem;box-shadow:0 4px 16px #7c3aed66;color:#fff;font-size:.875rem;font-weight:700;left:50%;letter-spacing:.025em;padding:.75rem 1.5rem;pointer-events:none;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:100}@keyframes fadeInOutHint{0%,to{opacity:0;transform:translateX(-50%) translateY(10px)}10%,90%{opacity:1;transform:translateX(-50%) translateY(0)}}@media (min-width:769px){.map-fullscreen-modal{border-radius:1.5rem;bottom:5%;box-shadow:0 20px 60px #0000004d;left:5%;right:5%;top:5%}.map-fullscreen-header{border-radius:1.5rem 1.5rem 0 0}.map-fullscreen-container .store-floor-plan{min-height:700px;min-width:900px}.map-fullscreen-hint{bottom:2rem}}.map-zoom-controls-mobile{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:.75rem;box-shadow:0 2px 8px #0000000d;display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:1rem;padding:.875rem}@media (min-width:769px){.map-zoom-controls-mobile{display:none!important}}.zoom-control-btn{box-shadow:0 2px 8px #7c3aed4d}.zoom-level-indicator{box-shadow:0 2px 4px #7c3aed33;font-weight:700}.zoom-hint{align-items:center;background:linear-gradient(135deg,#f3e8ff,#faf5ff);border:2px dashed #c084fc;border-radius:.5rem;color:#64748b;display:flex;font-size:.75rem;font-weight:600;gap:.5rem;justify-content:center;margin-top:.5rem;padding:.625rem 1rem;text-align:center;width:100%}.zoom-hint:before{content:"👆";font-size:1rem}.map-zoom-controls{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:.75rem;box-shadow:0 2px 8px #0000000d;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:1rem;padding:.75rem}.zoom-level-indicator{background:#f3e8ff;border-radius:.5rem;color:#7c3aed;font-size:.875rem;font-weight:600;min-width:60px;padding:.5rem .75rem;text-align:center}@media (min-width:769px){.map-zoom-controls{display:none}}.zoom-control-btn{-webkit-tap-highlight-color:rgba(255,255,255,.2);align-items:center;background:linear-gradient(135deg,#7c3aed,#a855f7);border:none;border-radius:.5rem;color:#fff;cursor:pointer;display:flex;height:44px;justify-content:center;transition:all .2s ease;width:44px}.zoom-control-btn:active{background:linear-gradient(135deg,#6d28d9,#9333ea);transform:scale(.95)}.store-floor-plan-wrapper{display:inline-block;min-height:600px;min-width:800px;padding:3.5rem 4rem;position:relative}.store-floor-plan{background:#fff;background-image:none;border:3px solid #000;border-radius:0;box-shadow:none;box-sizing:border-box;display:flex;flex-direction:column;height:100%;min-height:500px;overflow:hidden;padding:0;position:relative;width:100%}@media (max-width:768px){.store-floor-plan{min-width:800px;padding:3rem}}@media (min-width:769px){.store-floor-plan{padding:2rem}}.store-wall{background:linear-gradient(135deg,#475569,#64748b);box-shadow:inset 0 2px 4px #0000004d,inset 0 -1px 0 #ffffff1a,0 1px 2px #0003;position:absolute;z-index:1}.store-wall-top{border-radius:.5rem .5rem 0 0;height:4px;left:0;right:0;top:0}.store-wall-bottom{border-radius:0 0 .5rem .5rem;bottom:0;height:4px;left:0;right:0}.store-wall-left{border-radius:.5rem 0 0 .5rem;bottom:0;left:0;top:0;width:4px}.store-wall-right{border-radius:0 .5rem .5rem 0;bottom:0;right:0;top:0;width:4px}@media (min-width:769px){.store-floor-plan-container{background:#0000;border:none;cursor:default;height:auto;max-height:none;min-height:auto;overflow:visible;touch-action:auto}.store-floor-plan{border-width:4px;min-width:auto;padding:2rem;transform:none!important;width:100%}.position-label{font-size:.875rem;padding:.5rem .875rem}}.category-card{cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.category-card:before{transition:opacity .2s ease}.category-card:hover{border-color:#c4b5fd;box-shadow:0 4px 12px #7c3aed26;transform:translateY(-2px)}.category-card:hover:before{opacity:1}.category-card:active{transform:translateY(0)}.category-icon-wrapper{transition:all .2s ease}.category-card:hover .category-icon-wrapper{background:linear-gradient(135deg,#ede9fe,#ddd6fe);transform:scale(1.05)}.category-icon{transition:all .2s ease}.category-card:hover .category-icon{color:#6d28d9;transform:scale(1.1)}.store-categories-view{display:none;margin-top:1.5rem;padding:0}.store-categories-view.active{display:block}.categories-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));padding:.5rem 0}.category-card{align-items:center;background:linear-gradient(135deg,#fff,#f8fafc);border:1.5px solid #e2e8f0;border-radius:.875rem;cursor:default;display:flex;flex-direction:column;justify-content:center;min-height:100px;overflow:hidden;padding:1rem .75rem;position:relative}.category-card:before{background:linear-gradient(90deg,#7c3aed,#a855f7 50%,#7c3aed);content:"";height:3px;left:0;opacity:0;position:absolute;right:0;top:0}.category-icon-wrapper{align-items:center;background:linear-gradient(135deg,#f3e8ff,#e9d5ff);border-radius:.75rem;display:flex;height:48px;justify-content:center;margin-bottom:.75rem;width:48px}.category-icon{color:#7c3aed}.category-content{text-align:center;width:100%}.category-name{color:#1e293b;font-size:.875rem;font-weight:600;letter-spacing:-.01em;line-height:1.3;margin:0 0 .25rem}.category-location{color:#64748b;font-size:.75rem;font-weight:500;letter-spacing:.05em;margin:0;text-transform:uppercase}.store-layout-mapper-grid{grid-gap:0;grid-row-gap:0;background-color:#fff;border:3px solid #000;box-sizing:border-box;contain:layout style paint;display:grid;gap:0;grid-template-columns:repeat(3,1fr);height:100%;overflow:visible;padding:0;position:relative;row-gap:0;transform:translateZ(0);-webkit-transform:translateZ(0);width:100%;will-change:contents;z-index:2}.store-section-header{align-items:center;background:#000;border:none;box-shadow:0 2px 8px #0003;color:#fff;display:flex;font-size:1.125rem;font-weight:900;grid-column:1/-1;justify-content:center;letter-spacing:.3em;padding:1.25rem 1.5rem;position:relative;text-transform:uppercase;z-index:10}.store-section-header.store-section-back{border-top:5px solid #000;margin-top:0}.store-section-header.store-section-middle{border-bottom:5px solid #000;border-top:5px solid #000}.store-section-header.store-section-front{border-top:5px solid #000}@media (max-width:768px){.store-layout-mapper-grid{gap:0;min-width:100%;padding:0}}@media (min-width:769px){.store-layout-mapper-grid{gap:0;min-width:auto;padding:0}.layout-zone-card{min-height:200px}}.floor-plan-marker{display:flex;filter:drop-shadow(0 4px 8px rgba(0,0,0,.15));flex-direction:column;gap:.5rem;pointer-events:none;position:absolute;white-space:nowrap;z-index:100}.marker-icon{align-items:center;background:linear-gradient(135deg,#fff,#f8fafc);border:3px solid #fff;border-radius:50%;box-shadow:0 4px 16px #00000026,0 2px 8px #0000001a,inset 0 1px 0 #ffffffe6;color:#475569;display:flex;height:44px;justify-content:center;width:44px}.marker-icon svg{height:22px;width:22px}.entrance-marker .marker-icon{background:linear-gradient(135deg,#10b981,#059669);border-color:#10b981;color:#fff}.exit-marker .marker-icon{background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:#3b82f6;color:#fff}.checkout-marker .marker-icon{background:linear-gradient(135deg,#7c3aed,#6d28d9);border-color:#7c3aed;color:#fff}.marker-label{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0cc;border-radius:.5rem;box-shadow:0 2px 8px #0000001f,0 1px 4px #00000014;color:#1e293b;font-size:.75rem;font-weight:700;letter-spacing:.025em;padding:.375rem .75rem;white-space:nowrap}.store-floor-plan .entrance-marker{bottom:.5rem;left:calc(2rem + 83.333%*(100% - 4rem)/100);transform:translateX(-50%)}.store-floor-plan .exit-marker{bottom:.5rem;left:calc(2rem + 50%*(100% - 4rem)/100);transform:translateX(-50%)}.store-floor-plan .checkout-marker{bottom:.5rem;left:calc(2rem + 16.666%*(100% - 4rem)/100);transform:translateX(-50%)}@media (max-width:768px){.store-floor-plan .entrance-marker{bottom:.5rem;left:calc(1rem + 83.333%*(100% - 2rem)/100)}.store-floor-plan .exit-marker{bottom:.5rem;left:calc(1rem + 50%*(100% - 2rem)/100)}.store-floor-plan .checkout-marker{bottom:.5rem;left:calc(1rem + 16.666%*(100% - 2rem)/100)}}.aisle-pathway{background:linear-gradient(135deg,#f1f5f9cc,#e2e8f099);border:2px dashed #94a3b866;border-radius:2px;box-shadow:inset 0 0 12px #94a3b826,0 1px 2px #0000000d;position:absolute;z-index:2}.aisle-vertical{height:100%;top:0;width:8px}.aisle-left{left:33.33%;transform:translateX(-50%)}.aisle-right{right:33.33%;transform:translateX(50%)}.aisle-horizontal{height:8px;left:0;width:100%}.aisle-top{top:33.33%;transform:translateY(-50%)}.aisle-bottom{bottom:33.33%;transform:translateY(50%)}.position-label{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(135deg,#fff,#f8fafc);border:2px solid #cbd5e1;border-radius:.75rem;box-shadow:0 4px 16px #0000001a,0 2px 8px #0000000f,inset 0 1px 0 #ffffffe6;color:#0f172a;font-size:.875rem;font-weight:900;letter-spacing:.15em;padding:.75rem 1.25rem;pointer-events:none;position:absolute;text-transform:uppercase;z-index:50}@media (min-width:769px){.position-label{font-size:.875rem;padding:.375rem .75rem}.position-label-top{left:50%;top:-2rem;transform:translateX(-50%)}.position-label-bottom{bottom:-2rem;left:50%;transform:translateX(-50%)}}.position-label-top{left:50%;top:0;transform:translateX(-50%)}.position-label-bottom{bottom:0;left:50%;transform:translateX(-50%)}.position-label-left{left:0;top:50%;transform:translateY(-50%) rotate(-90deg);transform-origin:center}.position-label-right{max-width:-webkit-fit-content;max-width:fit-content;right:.25rem;top:50%;transform:translateY(-50%) rotate(90deg);transform-origin:center}.map-fullscreen-container{position:relative}.map-fullscreen-container .position-label-fixed{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background:#ffffffd9;border:2px solid #000;border-radius:.5rem;box-shadow:0 4px 16px #00000026,0 2px 8px #0000001a;font-size:.6875rem;font-weight:900;letter-spacing:.15em;min-width:50px;padding:.375rem .625rem;pointer-events:none;position:absolute;text-align:center;text-transform:uppercase;white-space:nowrap;z-index:1000}.map-fullscreen-container .position-label-fixed.position-label-top{left:50%;top:.5rem;transform:translateX(-50%)}.map-fullscreen-container .position-label-fixed.position-label-left{left:.25rem;min-width:50px;top:50%;transform:translateY(-50%) rotate(-90deg);width:auto}.map-fullscreen-container .position-label-fixed.position-label-right{min-width:50px;right:.25rem;top:50%;transform:translateY(-50%) rotate(-90deg);width:auto}.layout-zone-card{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0000;border:2px solid #000;border-left:none;border-radius:0;border-top:none;box-shadow:none;box-sizing:border-box;cursor:default;display:flex;flex-direction:column;isolation:isolate;min-height:180px;overflow:hidden;padding:1.25rem;position:relative;transition:background-color .2s ease}.layout-zone-card.back-left,.layout-zone-card.back-middle,.layout-zone-card.back-right{background:#f9fafb4d}.layout-zone-card.middle-left,.layout-zone-card.middle-middle,.layout-zone-card.middle-right{background:#ffffff80}.layout-zone-card.front-left,.layout-zone-card.front-middle,.layout-zone-card.front-right{background:#f9fafb4d}.layout-zone-card.back-right,.layout-zone-card.front-right,.layout-zone-card.middle-right{border-right:none}.layout-zone-card.front-left,.layout-zone-card.front-middle,.layout-zone-card.front-right{border-bottom:none}.layout-zone-card.back-left,.layout-zone-card.front-left,.layout-zone-card.middle-left{border-left:2px solid #000}.layout-zone-card.back-left,.layout-zone-card.back-middle,.layout-zone-card.back-right{border-top:2px solid #000}.layout-zone-card.back-middle,.layout-zone-card.front-middle,.layout-zone-card.middle-middle{border-left:2px solid #00000026;border-right:2px solid #00000026}.layout-zone-card.back-left,.layout-zone-card.back-middle,.layout-zone-card.front-left,.layout-zone-card.front-middle,.layout-zone-card.middle-left,.layout-zone-card.middle-middle{position:relative}.layout-zone-card.back-left:after,.layout-zone-card.back-middle:after,.layout-zone-card.front-left:after,.layout-zone-card.front-middle:after,.layout-zone-card.middle-left:after,.layout-zone-card.middle-middle:after{background:#0000001a;bottom:0;content:"";position:absolute;right:-1px;top:0;width:1px;z-index:1}.store-section-header.store-section-back+.layout-zone-card.back-left,.store-section-header.store-section-back+.layout-zone-card.back-middle,.store-section-header.store-section-back+.layout-zone-card.back-right,.store-section-header.store-section-front+.layout-zone-card.front-left,.store-section-header.store-section-front+.layout-zone-card.front-middle,.store-section-header.store-section-front+.layout-zone-card.front-right,.store-section-header.store-section-middle+.layout-zone-card.middle-left,.store-section-header.store-section-middle+.layout-zone-card.middle-middle,.store-section-header.store-section-middle+.layout-zone-card.middle-right{border-top:3px solid #000;margin-top:0}.layout-zone-card.back-left,.layout-zone-card.back-middle,.layout-zone-card.back-right{margin-bottom:2rem;position:relative}.layout-zone-card.middle-left,.layout-zone-card.middle-middle,.layout-zone-card.middle-right{margin-bottom:2rem;margin-top:0;position:relative}.layout-zone-card.front-left,.layout-zone-card.front-middle,.layout-zone-card.front-right{margin-top:0;position:relative}.store-section-header.store-section-back{margin-bottom:0}.store-section-header.store-section-front,.store-section-header.store-section-middle{margin-bottom:0;margin-top:1.5rem}@media (max-width:768px){.layout-zone-card{border-radius:0;border-width:2.5px;min-height:240px;padding:1.75rem}.zone-card-header{margin-bottom:1rem;padding-bottom:1rem}.zone-card-header h5{font-size:1.25rem}.zone-icon{height:32px;padding:.5rem;width:32px}.zone-description{font-size:.875rem;line-height:1.6;margin-bottom:1.25rem}.zone-summary{gap:.75rem;margin-bottom:1.25rem}.summary-item{font-size:.8125rem;min-height:40px;padding:.625rem .875rem}.summary-item svg{height:18px;width:18px}.expand-rows-button{border-radius:.75rem;font-size:.9375rem;min-height:48px;padding:1rem 1.25rem}}.layout-zone-card.checkout-card,.layout-zone-card.entrance-card,.layout-zone-card.exit-card{align-items:center;cursor:default;display:flex;flex-direction:column;justify-content:center;min-height:100px;padding:1rem;text-align:center}.layout-zone-card.entrance-card{background:#0000;border:2px solid #000}.layout-zone-card.entrance-card .zone-icon{background:#0000;border:2px solid #000;color:#000;height:40px;margin-bottom:.75rem;padding:.75rem;width:40px}.layout-zone-card.exit-card{background:#0000;border:2px solid #000}.layout-zone-card.exit-card .zone-icon{background:#0000;border:2px solid #000;color:#000;height:40px;margin-bottom:.75rem;padding:.75rem;width:40px}.layout-zone-card.checkout-card{background:#0000;border:2px solid #000}.layout-zone-card.checkout-card .zone-icon{background:#0000;border:2px solid #000;color:#000;height:40px;margin-bottom:.75rem;padding:.75rem;width:40px}.checkout-card .zone-card-header,.entrance-card .zone-card-header,.exit-card .zone-card-header{align-items:center;border-bottom:none;flex-direction:column;margin-bottom:.5rem;padding-bottom:0}.checkout-card .zone-card-header h5,.entrance-card .zone-card-header h5,.exit-card .zone-card-header h5{font-size:1.5rem;font-weight:700;margin:0}.checkout-card .zone-description,.entrance-card .zone-description,.exit-card .zone-description{color:#000;font-size:1.125rem;font-weight:600;margin:0}.checkout-card:hover,.entrance-card:hover,.exit-card:hover{box-shadow:0 2px 12px #0000000f,0 1px 4px #0000000a;transform:none}.checkout-card:active,.entrance-card:active,.exit-card:active{transform:none}.layout-zone-card.back-left,.layout-zone-card.back-middle,.layout-zone-card.back-right,.layout-zone-card.front-left,.layout-zone-card.front-middle,.layout-zone-card.front-right,.layout-zone-card.middle-left,.layout-zone-card.middle-middle,.layout-zone-card.middle-right{background:#0000;border:2px solid #000}@media (min-width:769px){.layout-zone-card{border-radius:0;border-width:3px;min-height:120px;min-height:auto;padding:.75rem;padding:1rem}}.zone-card-header{align-items:center;border-bottom:2px solid #000;display:flex;gap:.75rem;margin-bottom:.75rem;padding-bottom:.875rem;position:relative}.zone-card-header:after{display:none}@media (min-width:769px){.zone-card-header{gap:.75rem;margin-bottom:.75rem;padding-bottom:.875rem}.zone-card-header h5{font-size:1.25rem}.zone-icon{height:32px;padding:.5rem;width:32px}}.zone-icon{background:#0000;border:2px solid #000;border-radius:4px;color:#000;padding:.5rem}.zone-indicator{display:none}.zone-description{color:#475569;font-size:.8125rem;font-weight:500;line-height:1.5;margin:0 0 1rem}@media (min-width:769px){.zone-description{font-size:.8125rem;margin:0 0 .75rem}}.back-left-indicator{background:linear-gradient(135deg,#ef4444,#dc2626)}.back-middle-indicator{background:linear-gradient(135deg,#f59e0b,#d97706)}.back-right-indicator{background:linear-gradient(135deg,#10b981,#059669)}.middle-left-indicator{background:linear-gradient(135deg,#3b82f6,#2563eb)}.middle-middle-indicator{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.middle-right-indicator{background:linear-gradient(135deg,#ec4899,#db2777)}.front-left-indicator{background:linear-gradient(135deg,#06b6d4,#0891b2)}.front-middle-indicator{background:linear-gradient(135deg,#14b8a6,#0d9488)}.front-right-indicator{background:linear-gradient(135deg,#f97316,#ea580c)}.zone-card-header h5{color:#1e293b;flex:1 1;font-size:1.125rem;font-weight:700;line-height:1.3;margin:0}@media (min-width:769px){.zone-card-header h5{font-size:1.25rem}}.zone-summary{display:flex;flex:1 1;flex-direction:column;gap:.5rem;margin-bottom:1rem;min-height:auto}@media (min-width:769px){.zone-summary{gap:.5rem;margin-bottom:.75rem;min-height:60px}}.summary-item{align-items:center;background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:.5rem;box-shadow:0 1px 2px #0000000a;color:#334155;display:flex;font-size:.75rem;font-weight:500;gap:.5rem;line-height:1.4;min-height:36px;padding:.5rem .75rem;transition:all .2s ease}.summary-item:hover{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-color:#cbd5e1;box-shadow:0 2px 4px #0000000f;transform:translateX(2px)}@media (min-width:769px){.summary-item{border-radius:.625rem;font-size:.875rem;gap:.625rem;min-height:40px;padding:.625rem .875rem}.summary-item svg{height:18px;width:18px}}.summary-item svg{color:#7c3aed}.expand-rows-button{-webkit-tap-highlight-color:rgba(255,255,255,.2);align-items:center;background:linear-gradient(135deg,#7c3aed,#a855f7);border:none;border-radius:.625rem;box-shadow:0 4px 12px #7c3aed4d,0 2px 4px #7c3aed33,inset 0 1px 0 #fff3;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:700;gap:.5rem;justify-content:center;letter-spacing:.01em;margin-top:auto;min-height:44px;padding:.75rem 1rem;touch-action:manipulation;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.expand-rows-button:hover{background:linear-gradient(135deg,#8b5cf6,#c084fc);box-shadow:0 6px 20px #7c3aed66,0 3px 8px #7c3aed4d,inset 0 1px 0 #ffffff4d}.expand-rows-button:active{box-shadow:0 2px 8px #7c3aed4d,0 1px 4px #7c3aed33,inset 0 1px 0 #fff3}.expand-rows-button svg{transition:transform .3s ease}.expand-rows-button:hover svg{transform:translateY(2px)}.expand-rows-button svg{height:14px;width:14px}@media (min-width:769px){.expand-rows-button{border-radius:.5rem;font-size:.875rem;gap:.5rem;min-height:auto;padding:.625rem}.expand-rows-button svg{height:16px;width:16px}}.expand-rows-button:hover{background:linear-gradient(135deg,#6d28d9,#9333ea);box-shadow:0 4px 8px #7c3aed4d;transform:translateY(-1px)}.expand-rows-button:active{transform:translateY(0)}.zone-rows-detail{border-top:2px solid #f1f5f9;margin-top:.75rem;overflow:hidden;padding-top:.75rem}.row-item{align-items:flex-start;background:#f8fafc;border-left:3px solid #7c3aed;border-radius:.5rem;display:flex;gap:.75rem;margin-bottom:.5rem;padding:.625rem}.row-item:last-child{margin-bottom:0}.row-number{color:#7c3aed;flex-shrink:0;font-size:.875rem;font-weight:700;min-width:60px}.row-items{color:#475569;flex:1 1;font-size:.875rem;line-height:1.5}.fridge-section{border-top:2px dashed #cbd5e1;margin-top:.75rem;padding-top:.75rem}.fridge-item{align-items:flex-start;background:#eff6ff;border-left:3px solid #3b82f6;border-radius:.5rem;display:flex;gap:.75rem;margin-bottom:.5rem;padding:.625rem}.fridge-item:last-child{margin-bottom:0}.fridge-label{color:#3b82f6;flex-shrink:0;font-size:.875rem;font-weight:700;min-width:40px}.fridge-items{color:#475569;flex:1 1;font-size:.875rem;line-height:1.5}.mapper-legend{background:linear-gradient(135deg,#fff,#f8fafc);border:2px solid #e2e8f0;border-radius:1rem;box-shadow:0 4px 16px #0000000f,0 2px 8px #0000000a,inset 0 1px 0 #ffffffe6;display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem;padding:1.5rem}@media (min-width:769px){.mapper-legend{flex-direction:row;flex-wrap:wrap;gap:1rem;justify-content:center;padding:1rem}}.legend-item{background:linear-gradient(135deg,#fff,#fafbfc);border:1px solid #e2e8f0;border-radius:.75rem;box-shadow:0 2px 8px #0000000a,0 1px 4px #00000005;gap:1rem;padding:1rem;transition:all .2s ease}.legend-item:hover{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-color:#cbd5e1;box-shadow:0 4px 12px #0000000f,0 2px 6px #0000000a;transform:translateY(-1px)}@media (min-width:769px){.legend-item{background:#0000;gap:.5rem;padding:0}}.legend-icon{border-radius:.5rem;color:#475569;flex-shrink:0;height:40px;width:40px}.legend-icon svg{height:24px;width:24px}@media (min-width:769px){.legend-icon{height:32px;width:32px}.legend-icon svg{height:20px;width:20px}}.entrance-icon{background:#dbeafe}.exit-icon{background:#fef3c7}.checkout-icon{background:#e0e7ff}.legend-text{color:#334155;font-size:.875rem;font-weight:500;line-height:1.5}.legend-text strong{color:#0f172a;font-weight:700}@media (min-width:769px){.legend-text{font-size:.875rem}}.legend-text strong{color:#1e293b;font-weight:600}.mapper-note{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;color:#64748b;font-size:.8125rem;line-height:1.6;margin:0;padding:.75rem;text-align:center}.mapper-note strong{color:#475569;font-weight:600}.aisle-modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00000080;bottom:0;left:0;position:fixed;right:0;top:0;z-index:99998}.aisle-modal-fullscreen{background:#fff;bottom:0;box-shadow:0 -4px 24px #00000026;display:flex;flex-direction:column;left:0;overflow:hidden;position:fixed;right:0;top:0;z-index:99999}@media (min-width:769px){.aisle-modal-fullscreen{border-radius:1.5rem;bottom:5%;box-shadow:0 20px 60px #0000004d;left:5%;right:5%;top:5%}}.aisle-modal-header-fullscreen{background:linear-gradient(135deg,#7c3aed,#a855f7);border-bottom:1px solid #e5e7eb;color:#fff;flex-shrink:0;padding:calc(1.5rem + env(safe-area-inset-top, 0px)) 1.5rem 1.5rem;position:relative}.aisle-header-content{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}.aisle-modal-title{color:#fff;font-size:1.75rem;font-weight:800;line-height:1.2;margin:0 0 .375rem}.aisle-modal-subtitle-fullscreen{color:#fff;font-size:.9375rem;font-weight:500;margin:0;opacity:.95}.aisle-modal-close-fullscreen{-webkit-tap-highlight-color:rgba(255,255,255,.3);align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:44px;justify-content:center;transition:all .2s ease;width:44px}.aisle-modal-close-fullscreen:hover{background:#ffffff4d;transform:scale(1.05)}.aisle-modal-close-fullscreen:active{transform:scale(.95)}.aisle-modal-content-fullscreen{-webkit-overflow-scrolling:touch;background:#f9fafb;flex:1 1;overflow-y:auto;padding:1.5rem 1.5rem calc(1.5rem + env(safe-area-inset-bottom, 0px))}.aisle-section{margin-bottom:2rem}.aisle-section:last-child{margin-bottom:0}.aisle-section-header{align-items:center;border-bottom:2px solid #e5e7eb;display:flex;gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem}.aisle-section-header svg{color:#7c3aed}.aisle-section-title{color:#1e293b;font-size:1.25rem;font-weight:700;margin:0}.aisle-rows-list{display:flex;flex-direction:column;gap:.75rem}.aisle-row-card{align-items:flex-start;background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 3px #0000000d;display:flex;gap:1rem;padding:1.25rem}.aisle-row-badge{background:linear-gradient(135deg,#7c3aed,#a855f7);border-radius:.5rem;box-shadow:0 2px 8px #7c3aed4d;color:#fff;flex-shrink:0;font-size:.9375rem;font-weight:700;min-width:80px;padding:.625rem 1rem;text-align:center}.aisle-row-badge,.fridge-badge{align-items:center;display:flex;gap:.375rem;justify-content:center}.fridge-badge{background:linear-gradient(135deg,#06b6d4,#0891b2);box-shadow:0 4px 12px #06b6d44d,0 2px 4px #06b6d433}.fridge-badge svg{flex-shrink:0;height:16px;width:16px}.fridge-badge .aisle-number{align-items:center;display:flex;line-height:1}.aisle-row-content{flex:1 1;min-width:0}.aisle-row-text{color:#475569;font-size:1rem;font-weight:500;line-height:1.6;margin:0}@media (max-width:768px){.aisle-modal-header-fullscreen{padding:calc(1.25rem + env(safe-area-inset-top, 0px)) 1.25rem 1.25rem}.aisle-modal-title{font-size:1.5rem}.aisle-modal-subtitle-fullscreen{font-size:.875rem}.aisle-modal-content-fullscreen{padding:1.25rem 1.25rem calc(1.25rem + env(safe-area-inset-bottom, 0px))}.aisle-section{margin-bottom:2rem}.aisle-section-header{gap:.875rem;margin-bottom:1.25rem}.aisle-section-header svg{height:20px;width:20px}.aisle-section-title{font-size:1.25rem}.aisle-section-subtitle{font-size:.8125rem}.aisle-rows-list{gap:.875rem}.aisle-row-card{gap:1rem;padding:1.25rem}.aisle-row-badge{font-size:.9375rem;min-width:75px;padding:.625rem 1rem}.aisle-row-badge .aisle-number{font-size:1rem}.aisle-row-text{font-size:1rem;line-height:1.6}}@media (max-width:480px){.aisle-modal-header-fullscreen{padding:calc(1rem + env(safe-area-inset-top, 0px)) 1rem 1rem}.aisle-modal-title{font-size:1.375rem}.aisle-modal-content-fullscreen{padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom, 0px))}.aisle-row-card{padding:.875rem}.aisle-row-badge{font-size:.8125rem;padding:.4375rem .625rem}.aisle-row-text{font-size:.875rem}}.experimental-store-mapper{margin-bottom:2rem;margin-top:0;padding:0}.mapper-header{margin-bottom:1rem;padding:0 .75rem}.mapper-header h4{font-size:1.375rem}.mapper-description{font-size:.875rem;line-height:1.6;padding:0 .75rem}.categories-grid{gap:1rem;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.category-card{min-height:110px;padding:1.25rem 1rem}.category-icon-wrapper{height:52px;width:52px}.category-name{font-size:.9375rem}.store-layout-wrapper{margin-bottom:2rem}.aisle-pathway{display:none}.floor-plan-marker{align-items:center;align-self:flex-start;bottom:auto!important;flex-direction:row;gap:.625rem;left:auto!important;margin-bottom:.75rem;pointer-events:auto;position:relative!important;right:auto!important}.marker-icon{flex-shrink:0;font-size:1.25rem;height:36px;width:36px}.marker-label{font-size:.8125rem;font-weight:600}.zone-icon{align-items:center;background:linear-gradient(135deg,#7c3aed1a,#a855f71a);border-radius:.5rem;box-shadow:0 2px 4px #7c3aed1a;color:#7c3aed;display:flex;flex-shrink:0;height:28px;justify-content:center;padding:.375rem;transition:all .3s cubic-bezier(.4,0,.2,1);width:28px}.zone-indicator{height:14px;width:14px}.summary-item svg{flex-shrink:0;height:16px;width:16px}@media (min-width:769px){.experimental-store-mapper{padding:1.5rem}.mapper-header{align-items:center;flex-direction:row;gap:1rem;padding:0 1rem}.mapper-header h4{font-size:1.5rem}.mapper-description{font-size:.875rem;padding:0 1rem}.store-layout-wrapper{margin-bottom:1.5rem}.categories-grid{gap:.875rem;grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.category-card{min-height:105px;padding:1rem .875rem}.category-icon-wrapper{height:46px;width:46px}.category-name{font-size:.875rem}.aisle-pathway{display:block}.floor-plan-marker{flex-direction:column;gap:.25rem;position:absolute!important}.marker-icon{height:32px;width:32px}.marker-icon svg{height:18px;width:18px}.marker-label{font-size:.6875rem}.zone-icon{height:20px;width:20px}.zone-indicator{height:12px;width:12px}.summary-item svg{height:14px;width:14px}.position-label{font-size:.6875rem;padding:.25rem .5rem}.position-label-top{left:50%;top:-1.5rem;transform:translateX(-50%)}.position-label-bottom{bottom:-1.5rem;left:50%;transform:translateX(-50%)}.position-label-left{left:.5rem;top:50%;transform:translateY(-50%) rotate(-90deg);transform-origin:center}.position-label-right{right:.5rem;top:50%;transform:translateY(-50%) rotate(90deg);transform-origin:center}.layout-zone-card{border-radius:0;padding:1rem}.zone-card-header{flex-wrap:wrap;gap:.375rem;margin-bottom:.5rem}.zone-icon{height:18px;width:18px}.zone-card-header h5{font-size:1.0625rem;line-height:1.3}.zone-description{font-size:.75rem;margin-bottom:.625rem}.zone-summary{gap:.375rem;margin-bottom:.625rem;min-height:auto}.summary-item{font-size:.75rem;gap:.375rem;padding:.4375rem .625rem}.summary-item svg{height:12px;width:12px}.expand-rows-button{border-radius:.625rem;font-size:.8125rem;gap:.375rem;padding:.625rem}.zone-rows-detail{margin-top:.625rem;padding-top:.625rem}.fridge-item,.row-item{flex-direction:row;gap:.625rem;margin-bottom:.4375rem;padding:.5625rem}.fridge-label,.row-number{font-size:.8125rem;min-width:50px}.fridge-items,.row-items{font-size:.8125rem;line-height:1.4}.fridge-section{margin-top:.625rem;padding-top:.625rem}.mapper-legend{flex-direction:column;gap:.75rem;padding:.875rem}.legend-item{justify-content:flex-start;width:100%}.legend-icon{height:28px;width:28px}.legend-icon svg{height:18px;width:18px}.legend-text{font-size:.8125rem}.mapper-note{font-size:.75rem;padding:.625rem}}@media (max-width:480px){.experimental-store-mapper,.layout-zone-card{padding:.875rem}.zone-card-header h5{font-size:1rem}.summary-item,.zone-description{font-size:.6875rem}.summary-item{padding:.375rem .5rem}.expand-rows-button{font-size:.75rem;padding:.5625rem}.fridge-item,.row-item{gap:.5rem;padding:.5rem}.fridge-label,.row-number{font-size:.75rem;min-width:45px}.fridge-items,.row-items{font-size:.75rem}}@media (max-width:768px){.traffic-section{padding:1rem}.section-header h3{font-size:1.25rem}.section-header p{font-size:.8rem}.cameras-grid,.hazards-grid{gap:1rem;grid-template-columns:1fr}.camera-card,.hazard-card{border-radius:.75rem}.camera-header,.hazard-header{padding:.75rem}.camera-header h4,.hazard-header h4{font-size:.875rem}.camera-image-container{height:150px}.camera-details,.hazard-details{padding:.75rem}.hazard-details .grid{grid-template-columns:1fr}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8f9fa;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;overflow-x:hidden}.App{display:flex;flex-direction:column;height:100vh;position:relative}.recommendation-glow-overlay{animation:glowClean 1.8s cubic-bezier(.4,0,.2,1) forwards;border:0 solid #8b5cf600;border-radius:0;bottom:0;left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:9999}@keyframes glowClean{0%{border-width:0;box-shadow:inset 0 0 0 0 #8b5cf600,0 0 0 0 #8b5cf600;opacity:0}25%{border-width:3px;box-shadow:inset 0 0 30px #8b5cf699,0 0 50px #8b5cf666;opacity:1}50%{border-width:4px;box-shadow:inset 0 0 50px #8b5cf6cc,0 0 80px #8b5cf699;opacity:1}75%{border-width:3px;box-shadow:inset 0 0 30px #8b5cf680,0 0 50px #8b5cf64d;opacity:.8}to{border-width:0;box-shadow:inset 0 0 0 0 #8b5cf600,0 0 0 0 #8b5cf600;opacity:0}}.app-header{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 10px #0000001a;color:#fff;padding:1.5rem 1rem;position:relative;z-index:1000}.header-content{align-items:center;justify-content:center}.app-title{font-size:2.2rem;font-weight:700;margin:0;text-align:center;text-shadow:0 2px 4px #0003}.search-section{background:#0000;border-bottom:none;box-shadow:none;left:0;padding:1rem;pointer-events:none;position:fixed;right:0;top:0;z-index:999}.search-section .search-container{margin:0 auto;max-width:500px;pointer-events:auto}.search-container{max-width:400px;position:relative;width:100%}@media (min-width:768px){.search-container,.search-section .search-container{max-width:600px}}@media (min-width:1024px){.search-section{padding:1.5rem 2rem}.search-container,.search-section .search-container{max-width:700px}}@media (min-width:1440px){.search-container,.search-section .search-container{max-width:800px}}.search-input-container{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:25px;box-shadow:0 4px 15px #0000001a;display:flex;padding:.5rem 1rem}.search-icon{color:#667eea;flex-shrink:0;margin-right:.75rem}.search-icon.vc-logo{align-items:center;color:#7c3aed;display:flex;font-size:1.2rem;font-weight:700;justify-content:center;letter-spacing:-.5px;min-width:28px}.search-input{background:#0000;border:none;color:#333;flex:1 1;font-size:1rem;outline:none;padding:.5rem 0}.search-input::placeholder{color:#999}.category-chip{align-items:center;background:#667eea;border:none;border-radius:15px;color:#fff;cursor:pointer;display:flex;font-size:.8rem;gap:.5rem;margin-left:.5rem;padding:.25rem .75rem;transition:background-color .2s}.category-chip:hover{background:#5a6fd8}.filter-button{align-items:center;background:#667eea;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:36px;justify-content:center;margin-left:.5rem;transition:all .2s;width:36px}.filter-button.active,.filter-button:hover{background:#5a6fd8;transform:scale(1.05)}.categories-dropdown,.search-dropdown{-webkit-overflow-scrolling:touch;background:#fff;border-radius:12px;box-shadow:0 8px 25px #00000026;left:0;margin-top:.5rem;max-height:60vh;overflow-y:auto;padding-bottom:max(8px,env(safe-area-inset-bottom));position:absolute;right:0;top:100%;z-index:10000}.feedback-bubble{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#7c3aed;border:2px solid #fff3;border-radius:2rem;bottom:1.5rem;box-shadow:0 8px 25px #7c3aed4d;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;gap:.5rem;padding:.75rem 1.25rem;position:fixed;right:1.5rem;transition:all .3s ease;z-index:1001}.feedback-bubble:hover{background:#7c3aed;box-shadow:0 12px 35px #7c3aed66;transform:translateY(-2px) scale(1.05)}.feedback-bubble-content{align-items:center;display:flex;gap:.5rem}.feedback-bubble-dismiss{align-items:center;background:#fff3;border:1px solid #ffffff4d;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:24px;justify-content:center;margin-left:.5rem;transition:all .2s;width:24px}.feedback-bubble-dismiss:hover{background:#ffffff4d;border-color:#ffffff80;transform:scale(1.1)}@media (max-width:768px){.categories-dropdown,.search-dropdown{max-height:calc(100vh - 190px)}.modal-overlay{padding:.5rem}.location-modal{border-radius:16px 16px 0 0;max-height:95vh;touch-action:pan-y}.modal-header{padding:1rem 1rem .75rem;touch-action:none}.modal-header.fullscreen{padding:.75rem}.modal-content{-webkit-overflow-scrolling:touch;overflow-x:hidden;overscroll-behavior-y:contain}.modal-content,.tab-content{touch-action:pan-y}.modal-tabs{overscroll-behavior-x:contain;touch-action:pan-x}.location-title{font-size:1.1rem}.header-right{gap:.25rem}.icon-action-button{height:32px;padding:.375rem;width:32px}.icon-action-button svg{height:16px;width:16px}.location-meta{gap:.5rem}.category-badge{font-size:.7rem;padding:.2rem .6rem}.rating-text{font-size:.8rem}.modal-tabs{gap:.375rem;padding:.75rem}.tab-button{font-size:.875rem;padding:.5rem .75rem}.modal-content,.modal-content.fullscreen{padding:1rem}.close-button{height:36px;right:.75rem;top:.75rem;width:36px}}@media (max-width:480px){.modal-overlay{padding:.25rem}.location-modal{border-radius:12px 12px 0 0;max-height:98vh}.modal-header{padding:.75rem .75rem .5rem}.location-title{font-size:1.125rem}.header-actions{gap:.375rem;margin-top:.25rem}.action-button{font-size:.75rem;padding:.25rem .5rem}.modal-tabs{gap:.25rem;padding:.5rem}.tab-button{font-size:.8rem;padding:.375rem .5rem}.modal-content{padding:.75rem}.close-button{height:32px;right:.5rem;top:.5rem;width:32px}}.categories-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1.5rem 1rem 1rem;text-align:center}.categories-header h3{font-size:1.2rem;font-weight:600;margin:0 0 .5rem}.categories-header p{font-size:.9rem;margin:0;opacity:.9}.categories-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));padding:1.5rem}.category-item{align-items:center;background:#f8f9fa;border:2px solid #0000;border-radius:12px;color:#333;cursor:pointer;display:flex;flex-direction:column;font-size:.9rem;gap:.5rem;justify-content:center;min-height:80px;padding:1rem;text-align:center;transition:all .2s}.category-item:hover{background:#e9ecef;box-shadow:0 4px 12px #667eea26}.category-item.selected,.category-item:hover{border-color:#667eea;transform:translateY(-2px)}.category-item.selected{background:#667eea;box-shadow:0 4px 12px #667eea4d;color:#fff}.category-icon{color:#667eea;transition:color .2s}.category-item.selected .category-icon,.category-item:hover .category-icon{color:#667eea}.category-item.selected .category-icon{color:#fff}.category-name{font-weight:500;line-height:1.2}.results-section,.suggestions-section{padding:1rem}.section-header{align-items:center;color:#667eea;font-size:.9rem;font-weight:600;gap:.5rem;margin-bottom:.75rem}.result-item,.suggestion-item{align-items:center;background:#0000;border:none;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;padding:.75rem;text-align:left;transition:background-color .2s;width:100%}.result-item:hover,.suggestion-item:hover{background:#f8f9fa}.suggestion-category{background:#667eea;border-radius:12px;color:#fff;font-size:.75rem;padding:.25rem .5rem}.map-container{flex:1 1;overflow:hidden;position:relative}.map{height:100%;width:100%}.custom-marker-container{background:#0000!important;border:none!important}.custom-marker{transition:all .2s ease}.modal-overlay{align-items:flex-end;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:0;position:fixed;right:0;top:0;z-index:10000}.modal-overlay.fullscreen{align-items:stretch;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000f2}.location-modal{background:#fff;border:1px solid #e5e7eb;border-radius:20px 20px 0 0;box-shadow:0 -10px 30px #0003;display:flex;flex-direction:column;max-height:90vh;overflow:hidden;position:relative;touch-action:pan-y;width:100%}.location-modal:after{background:#7c3aed;bottom:0;content:"";height:4px;left:0;pointer-events:none;position:fixed;right:0;z-index:10001}@media (min-width:768px){.modal-overlay{align-items:flex-end;padding:0}.location-modal{border-radius:20px 20px 0 0;max-height:90vh;max-width:100%}}.location-modal.fullscreen{border-radius:0;box-shadow:none;height:100vh;margin:0;max-height:100vh;max-width:100vw;width:100vw}.modal-header{background:#7c3aed;border-bottom:1px solid #e5e7eb;box-shadow:0 2px 8px #0000001a;color:#fff;padding:max(1.5rem,env(safe-area-inset-top) + .5rem) 1.5rem 1rem;position:-webkit-sticky;position:sticky;top:0;z-index:10}.modal-header.fullscreen{align-items:flex-start;border-bottom:1px solid #fff3;display:flex;gap:1rem;justify-content:space-between;padding:max(1rem,env(safe-area-inset-top) + .25rem) 1rem .75rem}.header-left{flex:1 1;min-width:0}.header-right{align-items:center;display:flex;flex-shrink:0;gap:.5rem}.header-content{display:flex;flex-direction:column;gap:.75rem}.location-title{word-wrap:break-word;color:#fff;font-size:1.25rem;font-weight:700;line-height:1.3;margin:0;overflow-wrap:break-word;text-shadow:0 1px 2px #0000001a}.location-meta{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.category-badge{background:#667eea;border-radius:15px;color:#fff;font-size:.8rem;font-weight:500;padding:.25rem .75rem}.rating-container{align-items:center;display:flex;gap:.5rem}.star-filled{color:gold}.star-empty{color:#ddd}.rating-text{color:#666;font-size:.9rem;font-weight:500}.header-actions{align-items:center;display:flex;gap:.75rem;margin-top:.5rem}.action-button{border:1px solid #ffffff4d;border-radius:.75rem;font-size:.875rem;font-weight:500;gap:.5rem;padding:.5rem 1rem}.action-button,.icon-action-button{align-items:center;background:#fff3;color:#fff;cursor:pointer;display:flex;justify-content:center;transition:all .2s}.icon-action-button{border:1px solid #ffffff4d;border-radius:8px;height:36px;padding:.5rem;width:36px}.icon-action-button:hover{background:#ffffff4d;transform:translateY(-1px)}.icon-action-button.close{background:#ef444433;border-color:#ef44444d}.icon-action-button.close:hover{background:#ef44444d}.action-button:hover{background:#ffffff4d;border-color:#ffffff80;transform:translateY(-1px)}.action-button.saved{background:#ff475733;border-color:#ff47574d;color:#ff4757}.action-button.saved:hover{background:#ff47574d;border-color:#ff475780}.close-button{background:#fff3;border:1px solid #ffffff4d;border-radius:50%;color:#fff;position:absolute;right:1rem;top:1rem;z-index:11}.close-button:hover{background:#ffffff4d;border-color:#ffffff80;transform:scale(1.05)}.modal-tabs{-webkit-overflow-scrolling:touch;background:#f8fafc;border-bottom:1px solid #e5e7eb;display:flex;flex-shrink:0;gap:.5rem;overflow-x:auto;padding:1rem;scrollbar-color:#7c3aed #f1f5f9;scrollbar-width:thin}.modal-tabs::-webkit-scrollbar{height:6px}.modal-tabs::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.modal-tabs::-webkit-scrollbar-thumb{background:#7c3aed;border-radius:3px}.modal-tabs::-webkit-scrollbar-thumb:hover{background:#8b5cf6}.tab-button{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:12px;color:#6b7280;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.5rem;padding:.75rem 1rem;transition:all .2s ease;white-space:nowrap}.tab-button:hover{background:#f3f4f6;border-color:#9ca3af;color:#374151}.tab-button.active{background:#7c3aed;border-color:#7c3aed;box-shadow:0 2px 4px #7c3aed33;color:#fff}.modal-content{-webkit-overflow-scrolling:touch;background:#fff;flex:1 1;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:1.5rem 1.5rem 3rem;position:relative}@media (min-width:768px){.modal-content{padding:2rem 2rem 3.5rem}}@media (min-width:1024px){.modal-content{padding:2.5rem 2.5rem 4rem}}@media (min-width:1440px){.modal-content{padding:3rem 3rem 4.5rem}}.modal-content.fullscreen{padding:1rem 2rem}.tab-content{min-height:300px;padding-bottom:4rem;width:100%}.overview-section{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr}.quick-info-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin-bottom:.5rem;margin-top:1.5rem}.info-card{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:2px solid #e2e8f0;transition:all .2s}.info-card:hover{border-color:#7c3aed;box-shadow:0 4px 12px #7c3aed1a}.info-icon{background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:10px;height:40px;width:40px}.info-label{font-size:.75rem}.peak-hours-alert{align-items:flex-start;animation:alertPulse 2s ease-in-out infinite;background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #fbbf24;border-radius:12px;display:flex;gap:1rem;padding:1.25rem}.alert-icon{animation:shake 3s ease-in-out infinite;flex-shrink:0;font-size:2rem}.alert-content{flex:1 1}.alert-content h4{color:#92400e;font-size:1.1rem;font-weight:700;margin:0 0 .25rem}.alert-content p{color:#78350f;font-size:.9rem;margin:0 0 .75rem}.alert-action-btn{background:linear-gradient(135deg,#f59e0b,#d97706);border:none;border-radius:8px;box-shadow:0 2px 8px #f59e0b4d;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:.5rem 1rem;transition:all .2s}.alert-action-btn:hover{box-shadow:0 4px 12px #f59e0b66;transform:translateY(-2px)}.at-location-card{background:#fff;border:2px solid #e2e8f0;border-radius:16px;box-shadow:0 2px 8px #0000000d;padding:1.5rem}.at-location-card h4{color:#1e293b;font-size:1.2rem;font-weight:700;margin:0 0 1rem}.location-features{display:flex;flex-direction:column;gap:.75rem}.feature-item{align-items:center;background:linear-gradient(135deg,#faf5ff,#f3e8ff);border:2px solid #e9d5ff;border-radius:12px;cursor:pointer;display:flex;gap:1rem;padding:1rem;transition:all .2s}.feature-item:hover{border-color:#7c3aed;box-shadow:0 4px 12px #7c3aed26;transform:translateX(4px)}.feature-icon{flex-shrink:0;font-size:1.75rem}.feature-info{display:flex;flex:1 1;flex-direction:column;gap:.25rem}.feature-title{color:#1e293b;font-size:1rem;font-weight:600}.feature-subtitle{color:#10b981;font-size:.85rem;font-weight:500}.feature-item svg{color:#7c3aed;flex-shrink:0}@keyframes alertPulse{0%,to{box-shadow:0 4px 12px #fbbf2433}50%{box-shadow:0 4px 16px #fbbf2466}}@keyframes shake{0%,to{transform:rotate(0deg)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}@media (min-width:768px){.overview-section{gap:2rem}.quick-info-grid{gap:1.25rem;grid-template-columns:repeat(2,1fr)}.peak-hours-alert{padding:1.5rem}}@media (min-width:1024px){.overview-section{gap:2rem}.quick-info-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:768px){.quick-info-grid{gap:.75rem}.info-card{padding:.875rem}.info-icon{height:36px;width:36px}.info-icon svg{height:18px;width:18px}.info-label{font-size:.7rem}.info-value{font-size:.875rem}.peak-hours-alert{gap:.75rem;padding:1rem}.alert-icon{font-size:1.5rem}.alert-content h4{font-size:1rem}.alert-content p{font-size:.85rem}.alert-action-btn{font-size:.8rem;padding:.45rem .875rem}.at-location-card{padding:1.25rem}.at-location-card h4{font-size:1.1rem;margin-bottom:.875rem}.feature-item{gap:.75rem;padding:.875rem}.feature-icon{font-size:1.5rem}.feature-title{font-size:.95rem}.feature-subtitle{font-size:.8rem}}.busyness-indicator{flex-direction:column;gap:1rem}.busyness-circle{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 8px 25px #667eea4d}.busyness-percentage{font-size:1.8rem;font-weight:700}.busyness-details{text-align:center}.busyness-details p{margin:.25rem 0}.directions-button{border-radius:25px;justify-content:center;text-align:center}.directions-button:hover{transform:translateY(-2px)}.busyness-section{display:flex;flex-direction:column;gap:1.5rem}.busyness-sub-tabs{border-bottom:1px solid #e9ecef;margin-bottom:1rem}.busyness-sub-tab{background:none;border-bottom:2px solid #0000;color:#666;padding:.75rem 1.5rem;transition:all .2s}.busyness-sub-tab:hover{color:#667eea}.busyness-sub-tab.active{border-bottom-color:#667eea;color:#667eea;font-weight:600}.current-busyness{display:flex;flex-direction:column;gap:1.5rem}.current-info h4{color:#333;margin:0 0 1rem}.timezone-info{background:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;color:#666;font-size:.8rem;margin:0 0 1rem;padding:.5rem}.current-cards{grid-template-columns:1fr}.current-card{border:1px solid #e9ecef}.current-card h5{color:#666;font-weight:500}.capacity-display{color:#667eea;font-size:2rem;font-weight:700}.park-time-display{color:#333;font-weight:600}.today-busyness h4,.week-busyness h4{color:#333;margin:0 0 1rem}.chart-container{background:#fff;padding:1rem}.chart-container,.no-data-message{border:1px solid #e9ecef;border-radius:8px}.no-data-message{background:#f8f9fa;color:#666;padding:2rem}.shops-section{display:flex;flex-direction:column;gap:1.5rem}.shops-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.shops-header-title h3{color:#333;font-size:1.5rem;margin:0}.open-shops-count{color:#64748b;font-size:.85rem;margin:.25rem 0 0}.shops-filters{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.filter-toggle{background:#fff;border:2px solid #e2e8f0;border-radius:8px;color:#64748b;cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1rem;transition:all .2s;white-space:nowrap}.filter-toggle:hover{border-color:#7c3aed;color:#7c3aed}.filter-toggle.active{background:#7c3aed;border-color:#7c3aed;color:#fff}.shop-search-container{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:25px;display:flex;min-width:300px;padding:.5rem 1rem;position:relative}.shop-search-container .search-icon{color:#667eea;margin-right:.75rem}.shop-search-input{background:#0000;border:none;color:#333;flex:1 1;font-size:.9rem;outline:none}.shop-search-input::placeholder{color:#999}.shops-table-container{background:#fff;border:1px solid #e9ecef;border-radius:12px;overflow-x:auto}.shops-table{border-collapse:collapse;font-size:.9rem;width:100%}.shops-table th{background:#f8f9fa;border-bottom:1px solid #e9ecef;color:#333;font-weight:600;padding:1rem;text-align:left;white-space:nowrap}.shops-table td{border-bottom:1px solid #f1f3f4;padding:1rem;vertical-align:top}.shop-row:hover{background:#f8f9fa}.clickable-row{cursor:pointer;transition:all .2s ease}.clickable-row:hover{background:#f1f5f9!important;box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.shop-click-hint{color:#64748b;font-size:.75rem;font-style:italic;margin-top:.25rem}.shop-name-cell{display:flex;flex-direction:column;gap:.25rem}.shop-name-cell strong{color:#333;font-size:1rem}.shop-status{align-items:center;display:flex;justify-content:flex-end}.shop-status-comparer{align-items:center;display:flex;justify-content:flex-start}.status-badge{align-items:center;border-radius:12px;display:inline-flex;font-size:.85rem;font-weight:500;gap:.375rem;padding:.375rem .75rem}.status-badge.open{background:#d1fae5;color:#065f46}.status-badge.closed{background:#fee2e2;color:#991b1b}.status-dot{display:inline-block;height:6px;width:6px}.status-badge.open .status-dot{animation:statusPulse 2s ease-in-out infinite;background:#10b981;box-shadow:0 0 0 0 #10b981b3}.status-badge.closed .status-dot{background:#ef4444}.status-unknown{color:#9ca3af;font-size:.85rem}@keyframes statusPulse{0%{box-shadow:0 0 0 0 #10b981b3;opacity:1}50%{box-shadow:0 0 0 4px #10b98100;opacity:.8}to{box-shadow:0 0 0 0 #10b98100;opacity:1}}.shop-description{color:#666;font-size:.8rem;font-style:italic}.shop-category,.shop-location{background:#667eea;border-radius:15px;color:#fff;display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .75rem}.shop-rating{align-items:center;display:flex;gap:.5rem}.rating-number{color:#333;font-weight:600}.busyness-indicator-small,.shop-busyness{display:flex;justify-content:center}.busyness-indicator-small{align-items:center;border:1px solid #ffffff4d;border-radius:12px;color:#fff;font-size:.75rem;font-weight:600;height:25px;width:50px}.opening-hours{color:#666;font-size:.85rem}.shop-actions{display:flex;flex-direction:column;gap:.5rem}.shop-action-btn{background:#667eea;border:none;border-radius:20px;color:#fff;cursor:pointer;font-size:.8rem;min-width:100px;padding:.5rem 1rem;transition:all .2s;white-space:nowrap}.shop-action-btn:hover{background:#5a6fd8;transform:translateY(-1px)}.no-shops-found{color:#666;padding:3rem 1rem;text-align:center}.no-shops-found svg{margin-bottom:1rem;opacity:.5}.no-shops-found p{margin:.5rem 0}.community-section h3{color:#333;margin-bottom:1rem}.recommendation-card{background:#f8f9fa;border-radius:12px;margin-bottom:1rem;padding:1rem}.rec-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.username{color:#667eea;font-weight:600}.rec-comment{color:#333;line-height:1.5;margin-bottom:.75rem}.rec-details{color:#666;display:flex;flex-direction:column;font-size:.85rem;gap:.25rem}.parking-option,.parking-section h3{margin-bottom:1rem}.parking-option{align-items:center;background:#f8f9fa;border-radius:12px;display:flex;justify-content:space-between;padding:1rem}.parking-info h4{color:#333;margin-bottom:.5rem}.parking-meta{align-items:center;display:flex;font-size:.85rem;gap:.75rem}.parking-directions{background:#667eea;border:none;border-radius:20px;color:#fff;cursor:pointer;font-size:.85rem;padding:.5rem 1rem;transition:background-color .2s}.parking-directions:hover{background:#5a6fd8}.ai-chatbot{display:flex;flex-direction:column;gap:1rem;height:100%}.suggested-questions h4{color:#333;margin-bottom:.75rem}.questions-grid{grid-gap:.5rem;display:grid;gap:.5rem;margin-bottom:1rem}.suggested-question{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;color:#333;cursor:pointer;font-size:.9rem;padding:.75rem;text-align:left;transition:all .2s}.suggested-question:hover{background:#e9ecef;border-color:#667eea}.chat-messages{display:flex;flex:1 1;flex-direction:column;gap:1rem;max-height:300px;overflow-y:auto;padding:1rem 0}.message{align-items:flex-start;display:flex;gap:.75rem}.message.user{flex-direction:row-reverse}.message-avatar{align-items:center;background:#667eea;border-radius:50%;color:#fff;display:flex;flex-shrink:0;height:32px;justify-content:center;width:32px}.message.user .message-avatar{background:#28a745}.message-content{background:#f8f9fa;border-radius:12px;max-width:80%;padding:.75rem}.message.user .message-content{background:#667eea;color:#fff}.message-content p{line-height:1.4;margin:0 0 .25rem}.message-time{font-size:.75rem;opacity:.7}.typing-indicator{align-items:center;display:flex;gap:.25rem}.typing-indicator span{animation:typing 1.4s ease-in-out infinite;background:#999;border-radius:50%;height:6px;width:6px}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-10px)}}.chat-input{align-items:center;display:flex;gap:.5rem}.chat-input-field{border:1px solid #e9ecef;border-radius:20px;flex:1 1;font-size:.9rem;outline:none;padding:.75rem 1rem}.chat-input-field:focus{border-color:#667eea}.send-button{align-items:center;background:#667eea;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:40px;justify-content:center;transition:all .2s;width:40px}.send-button:hover:not(:disabled){background:#5a6fd8;transform:scale(1.05)}.send-button:disabled{background:#ccc;cursor:not-allowed}.quick-actions{display:flex;gap:.5rem;justify-content:center}.quick-action{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:20px;color:#666;cursor:pointer;display:flex;font-size:.8rem;gap:.25rem;padding:.5rem 1rem;transition:all .2s}.quick-action:hover{background:#e9ecef;border-color:#667eea;color:#667eea}.bottom-navigation{background:#fff;border-top:1px solid #e9ecef;bottom:0;box-shadow:0 -2px 10px #0000001a;display:flex;left:0;padding:.5rem 0;position:fixed;right:0;width:100%;z-index:500}.nav-item{align-items:center;background:#0000;border:none;color:#666;cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-size:.75rem;gap:.25rem;padding:.5rem;transition:all .2s}.nav-item.active,.nav-item:hover{color:#7c3aed}.nav-item span{font-weight:500}.fullscreen-modal-overlay{align-items:flex-end;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10001}.fullscreen-modal{background:#fff;border-radius:20px 20px 0 0;box-shadow:0 -10px 30px #0003;display:flex;flex-direction:column;height:90vh;overflow:hidden;width:100%}.fullscreen-modal .modal-header{align-items:center;background:#7c3aed;border-bottom:1px solid #e5e7eb;box-shadow:0 2px 8px #0000001a;color:#fff;display:flex;justify-content:space-between;padding:1.5rem;position:-webkit-sticky;position:sticky;top:0;z-index:10}.fullscreen-modal .modal-header h2{color:#fff;font-size:1.5rem;margin:0}.fullscreen-modal .modal-header .close-button{background:#fff3;border:1px solid #ffffff4d;color:#fff;position:relative;right:auto;top:auto}.fullscreen-modal .modal-header .close-button:hover{background:#ffffff4d;border-color:#ffffff80}.fullscreen-modal .modal-content{flex:1 1;overflow-y:auto;padding:1.5rem}.feedback-form{margin:0 auto;max-width:600px}.feedback-intro{color:#666;font-size:.95rem;line-height:1.5}.feedback-intro,.form-group{margin-bottom:1.5rem}.form-group label{color:#333;display:block;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.form-input{border:1px solid #e2e8f0;border-radius:8px;font-family:inherit;font-size:.95rem;padding:.75rem;transition:border-color .2s ease;width:100%}.form-input:focus{border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a;outline:none}.form-input textarea{min-height:120px;resize:vertical}.submit-feedback-button{background:#7c3aed;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.875rem 1.5rem;transition:all .2s ease;width:100%}.submit-feedback-button:hover{background:#6d28d9;box-shadow:0 4px 12px #7c3aed4d;transform:translateY(-1px)}.submit-feedback-button:active{transform:translateY(0)}.locations-list,.parking-list{display:flex;flex-direction:column;gap:1rem}.location-item,.parking-item{align-items:center;background:#f8f9fa;border-radius:12px;display:flex;justify-content:space-between;padding:1rem}.location-info h3,.parking-info h3{color:#333;font-size:1.1rem;margin-bottom:.5rem}.category{background:#667eea;border-radius:12px;color:#fff;display:inline-block;font-size:.75rem;margin-bottom:.5rem;padding:.25rem .5rem}.metrics{color:#666;display:flex;font-size:.85rem;gap:1rem}.directions-button,.view-button{background:#7c3aed;border:none;border-radius:20px;color:#fff;cursor:pointer;font-size:.85rem;padding:.5rem 1rem;transition:background-color .2s}.directions-button:hover,.view-button:hover{background:#6d28d9}.compare-locations-button{background:#fff;border:none;border-radius:20px;color:#999;cursor:pointer;font-size:.85rem;margin:.5rem 0 0 .2rem;padding:.5rem 1rem;transition:background-color .2s;z-index:500}.compare-locations-button:hover{background:#6d28d9;color:#fff}.compare-locations-search{margin:.5rem auto}.profile-section{text-align:center}.profile-header{flex-direction:column;gap:1rem;margin-bottom:2rem}.avatar,.profile-header{align-items:center;display:flex}.avatar{background:#f8f9fa;border:3px solid #667eea;border-radius:50%;font-size:2rem;height:80px;justify-content:center;width:80px}.profile-info h3{color:#333;margin-bottom:.5rem}.profile-info p{color:#666;margin:0}.profile-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(3,1fr)}.stat{align-items:center;display:flex;flex-direction:column;gap:.5rem}.stat-number{color:#667eea;font-weight:700}.stat-label{color:#666;font-size:.85rem}.floating-action-button{background:#667eea;border:none;border-radius:50%;bottom:100px;box-shadow:0 4px 15px #667eea4d;color:#fff;cursor:pointer;font-size:1.2rem;font-weight:700;height:56px;position:fixed;right:20px;transition:all .2s;width:56px;z-index:999}.floating-action-button:hover{background:#5a6fd8;transform:scale(1.1)}@media (min-width:768px){.header-content{flex-direction:row;justify-content:space-between;margin:0 auto;max-width:1200px}.search-container{max-width:500px}.location-modal{border-radius:20px;max-height:80vh;max-width:600px}.location-modal.fullscreen{border-radius:0;height:100vh;max-height:100vh;max-width:100vw;width:100vw}.modal-overlay{align-items:center}.modal-overlay.fullscreen{align-items:stretch}.fullscreen-modal{border-radius:20px;height:80vh;max-width:600px}.fullscreen-modal-overlay{align-items:center}.categories-grid{grid-template-columns:repeat(3,1fr)}.questions-grid{grid-template-columns:repeat(2,1fr)}.shops-header{flex-direction:row}.shop-search-container{min-width:350px}}@media (max-width:767px){.shops-header{align-items:stretch;flex-direction:column}.shops-filters{flex-direction:column;width:100%}.filter-toggle{width:100%}.shop-search-container{min-width:100%}.shops-table{font-size:.8rem}.shops-table td,.shops-table th{padding:.75rem .5rem}.status-badge{font-size:.75rem;padding:.25rem .5rem}.shop-actions{flex-direction:column;gap:.25rem}.shop-action-btn{padding:.4rem .8rem}.current-cards{gap:.75rem;grid-template-columns:1fr}.busyness-sub-tabs{flex-wrap:wrap;gap:.25rem}.busyness-sub-tab{font-size:.8rem;padding:.5rem 1rem}}@media (min-width:1024px){.app-header{padding:1.5rem}.app-title{font-size:2rem}.search-container{max-width:600px}.location-modal{max-width:800px}.location-modal.fullscreen{border-radius:0;height:100vh;max-height:100vh;max-width:100vw;width:100vw}.fullscreen-modal{max-width:800px}}.hidden{display:none}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.tab-content{padding:1rem 0 5rem}.overview-section{margin-bottom:2rem}.busyness-indicator{align-items:center;background:#f8f9fa;border-radius:12px;display:flex;gap:1.5rem;margin-bottom:2rem;padding:1.5rem}.busyness-circle{align-items:center;border-radius:50%;box-shadow:0 4px 20px #00000026;color:#fff;display:flex;flex-direction:column;font-weight:700;height:120px;justify-content:center;width:120px}.busyness-percentage{font-size:2rem}.busyness-label{font-size:.9rem;opacity:.9}.busyness-details{flex:1 1}.busyness-details p{color:#666;font-size:1rem;margin:.5rem 0}.busyness-details strong{color:#333}.directions-button{align-items:center;background:#7c3aed;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:500;gap:.5rem;padding:.75rem 1.5rem;transition:all .2s}.directions-button:hover{background:#6d28d9;transform:translateY(-1px)}.directions-button.secondary{background:#10b981}.directions-button.secondary:hover{background:#059669}.stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.stat-card{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:12px;display:flex;gap:1rem;padding:1.5rem;transition:all .2s}.stat-card:hover{box-shadow:0 4px 20px #0000001a;transform:translateY(-2px)}.stat-icon{align-items:center;background:#f8f9fa;border-radius:12px;color:#667eea;display:flex;height:48px;justify-content:center;width:48px}.stat-content h3{color:#666;font-size:.9rem;font-weight:500;margin:0 0 .25rem}.stat-value{color:#333;font-size:1.5rem;font-weight:700;margin:0}.details-section{background:#fff;border:1px solid #e9ecef;border-radius:12px;margin-bottom:2rem;padding:1.5rem}.details-section h3{color:#333;font-size:1.1rem;font-weight:600;margin:0 0 1rem}.details-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.detail-item{gap:.25rem}.detail-label{color:#666;font-size:.9rem}.detail-value{color:#333;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:1rem}.parking-section{padding:0}.parking-section h3{color:#333;font-size:1.5rem;font-weight:700;margin-bottom:1.5rem}.parking-summary{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;box-shadow:0 8px 32px #667eea33;color:#fff;margin-bottom:2rem;padding:1.5rem}.parking-summary h4{align-items:center;color:#fff;display:flex;font-size:1.1rem;font-weight:600;gap:.5rem;margin:0 0 .75rem}.parking-summary p{line-height:1.6;margin:0;opacity:.95}.parking-table-container{background:#fff;border:1px solid #e9ecef;border-radius:16px;box-shadow:0 4px 20px #00000014;margin-bottom:2rem;overflow:hidden;padding:1.5rem}.parking-table-container h4{color:#333;font-size:1.2rem;font-weight:600;margin:0 0 1rem}.parking-table-note{align-items:center;background:#f8f9fa;border-left:4px solid #667eea;border-radius:8px;color:#6b7280;display:flex;font-size:.9rem;font-style:italic;gap:.5rem;margin-bottom:1.5rem;padding:.75rem}.parking-table-wrapper{-webkit-overflow-scrolling:touch;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin:0 -.5rem;overflow-x:auto;padding:0 .5rem;position:relative;scroll-behavior:smooth}.parking-table-wrapper:before{background:linear-gradient(90deg,#667eea,#764ba2);content:"";height:3px;left:0;opacity:.7;position:absolute;right:0;top:0;z-index:1}.parking-table-wrapper::-webkit-scrollbar{height:8px}.parking-table-wrapper::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.parking-table-wrapper::-webkit-scrollbar-thumb{background:linear-gradient(90deg,#667eea,#764ba2);border-radius:4px}.parking-table-wrapper::-webkit-scrollbar-thumb:hover{background:linear-gradient(90deg,#5a6fd8,#6b46c1)}.parking-table{background:#fff;border-collapse:initial;border-radius:12px;border-spacing:0;font-size:.9rem;margin:0;min-width:800px;overflow:hidden;width:100%}.parking-table th{background:#f8f9fa;border-bottom:1px solid #e5e7eb;color:#374151;font-size:.85rem;font-weight:600;letter-spacing:.05em;padding:1rem .75rem;text-align:left;text-transform:uppercase}.parking-table td{border-bottom:1px solid #f3f4f6;color:#374151;padding:1rem .75rem;vertical-align:middle}.parking-table tr:hover{background:#f9fafb}.parking-table tr:last-child td{border-bottom:none}.rank-cell{text-align:center;width:60px}.rank-badge{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-radius:12px;color:#fff;display:inline-block;font-size:.75rem;font-weight:600;min-width:24px;padding:.25rem .5rem;text-align:center}.name-cell{font-weight:500;min-width:150px}.type-cell{min-width:120px}.type-badge{background:#6b7280;border-radius:12px;color:#fff;font-size:.75rem;font-weight:500;padding:.25rem .5rem}.distance-cell,.walk-time-cell{font-weight:500;min-width:80px;text-align:center}.busyness-cell,.search-time-cell{min-width:100px;text-align:center}.busyness-badge,.search-time-badge{border-radius:12px;color:#fff;font-size:.75rem;font-weight:500;padding:.25rem .5rem;text-transform:capitalize}.cost-cell{font-weight:500;min-width:80px}.booking-cell{min-width:80px;text-align:center}.booking-link{align-items:center;border-radius:6px;color:#3b82f6;display:inline-flex;font-size:.875rem;font-weight:500;gap:.25rem;padding:.25rem .5rem;text-decoration:none;transition:all .2s ease}.booking-link:hover{background:#1e40af;color:#fff}.no-booking{color:#6b7280;font-size:.875rem}.notes-cell{max-width:200px}.notes-text{color:#6b7280;display:block;line-height:1.4}.no-parking-data{color:#6b7280;padding:3rem 1rem;text-align:center}.no-parking-data svg{color:#9ca3af;margin-bottom:1rem;opacity:.5}.no-parking-data p{color:#6b7280;font-size:1rem;margin:.5rem 0}.no-parking-data p:first-of-type{color:#374151;font-size:1.1rem;font-weight:500}.parking-actions{margin-top:2rem;text-align:center}.get-parking-btn,.refresh-parking-btn{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;box-shadow:0 4px 15px #667eea4d;color:#fff;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;gap:.75rem;justify-content:center;min-width:200px;padding:1rem 2rem;transition:all .3s ease}.get-parking-btn:hover:not(:disabled),.refresh-parking-btn:hover:not(:disabled){box-shadow:0 8px 25px #667eea66;transform:translateY(-2px)}.get-parking-btn:disabled,.refresh-parking-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.refresh-parking-btn{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 15px #10b9814d}.refresh-parking-btn:hover:not(:disabled){box-shadow:0 8px 25px #10b98166}.parking-error{background:#fee2e2;border:1px solid #fecaca;border-radius:12px;color:#dc2626;font-weight:500;margin:1rem 0;padding:1rem;text-align:center}.debug-btn{border-radius:8px;transition:all .2s ease}.capacity-overview{background:#fff;border:1px solid #e9ecef;border-radius:12px;margin-bottom:2rem;padding:1.5rem}.capacity-overview h3{color:#333;font-size:1.1rem;font-weight:600;margin:0 0 1rem}.capacity-bar{background:#e9ecef;border-radius:6px;height:12px;margin-bottom:1rem;overflow:hidden;width:100%}.capacity-fill{height:100%;transition:width .3s ease}.capacity-stats{color:#666;display:flex;font-size:.9rem;justify-content:space-between}.parking-tips{background:#fff;border:1px solid #e9ecef;border-radius:12px;padding:1.5rem}.parking-tips h3{color:#333;font-size:1.1rem;font-weight:600;margin:0 0 1rem}.parking-tips ul{color:#666;margin:0;padding-left:1.5rem}.parking-tips li{margin-bottom:.5rem}.directions-section{padding:1rem 0}.transport-options h3{color:#333;font-size:1.1rem;font-weight:600;margin:0 0 1.5rem}.transport-option{background:#fff;border:1px solid #e9ecef;border-radius:12px;margin-bottom:1.5rem;padding:1.5rem}.transport-option h4{color:#333;font-size:1rem;font-weight:600;margin:0 0 .75rem}.transport-option p{color:#666;line-height:1.5;margin:0 0 1rem}.facility-features{background:#fff;border:1px solid #e9ecef;border-radius:12px;padding:1.5rem}.facility-features h4{color:#333;font-size:1rem;font-weight:600;margin:0 0 1rem}.facility-features ul{color:#666;margin:0;padding-left:1.5rem}.facility-features li{margin-bottom:.5rem}.street-parking-table-container{background:#fff;border:1px solid #e9ecef;border-radius:16px;box-shadow:0 4px 20px #00000014;margin-bottom:2rem;overflow:hidden;padding:1.5rem}.street-parking-table-container h4{color:#333;font-size:1.2rem;font-weight:600;margin:0 0 1rem}.street-parking-table-note{align-items:center;background:#f8f9fa;border-left:4px solid #10b981;border-radius:8px;color:#6b7280;display:flex;font-size:.9rem;font-style:italic;gap:.5rem;margin-bottom:1.5rem;padding:.75rem}.street-parking-table-wrapper{-webkit-overflow-scrolling:touch;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin:0 -.5rem;overflow-x:auto;padding:0 .5rem;position:relative;scroll-behavior:smooth}.street-parking-table-wrapper:before{background:linear-gradient(90deg,#10b981,#059669);content:"";height:3px;left:0;opacity:.7;position:absolute;right:0;top:0;z-index:1}.street-parking-table-wrapper::-webkit-scrollbar{height:8px}.street-parking-table-wrapper::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.street-parking-table-wrapper::-webkit-scrollbar-thumb{background:linear-gradient(90deg,#10b981,#059669);border-radius:4px}.street-parking-table-wrapper::-webkit-scrollbar-thumb:hover{background:linear-gradient(90deg,#059669,#047857)}.street-parking-table{background:#fff;border-collapse:initial;border-radius:12px;border-spacing:0;font-size:.9rem;margin:0;min-width:800px;overflow:hidden;width:100%}.street-parking-table th{background:#f8f9fa;border-bottom:1px solid #e5e7eb;color:#374151;font-size:.85rem;font-weight:600;letter-spacing:.05em;padding:1rem .75rem;text-align:left;text-transform:uppercase}.street-parking-table td{border-bottom:1px solid #f3f4f6;font-size:.9rem;padding:1rem .75rem;vertical-align:middle}.street-parking-table tr:hover{background:#f8f9fa}.street-parking-table tr:last-child td{border-bottom:none}.street-badge{background:linear-gradient(135deg,#10b981,#059669);border-radius:12px;color:#fff;font-size:.75rem;font-weight:500;letter-spacing:.05em;padding:.25rem .5rem;text-transform:uppercase}.time-limits-cell{color:#6b7280;font-size:.85rem;font-weight:500}.busyness-card{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 12px #0000000d;margin-bottom:1rem;overflow:hidden;padding:1.5rem;position:relative}.busyness-card:before{background:linear-gradient(90deg,#667eea,#764ba2);content:"";height:4px;left:0;position:absolute;right:0;top:0}.busyness-header{align-items:center;display:flex;gap:.75rem;margin-bottom:1rem}.busyness-icon{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px;color:#fff;display:flex;height:40px;justify-content:center;width:40px}.busyness-title h3{color:#1e293b;font-size:1.25rem;font-weight:700;margin:0}.busyness-subtitle{color:#64748b;font-size:.9rem;margin:.25rem 0 0}.busyness-content{gap:1rem;text-align:center}.busyness-content,.busyness-visual{align-items:center;display:flex;flex-direction:column}.busyness-visual{gap:.5rem}.busyness-rectangle-container{align-items:center;display:flex;flex-direction:column;gap:1rem}.busyness-rectangle{background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 8px #0000001a;height:60px;overflow:hidden;position:relative;width:160px}.busyness-progress-bar{border-radius:14px;height:100%;left:0;opacity:.2;position:absolute;top:0;transition:width .3s ease}.busyness-content-overlay{align-items:center;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:2}.busyness-percentage{color:#1e293b;font-size:1.5rem;font-weight:800;line-height:1;margin-bottom:.25rem;text-align:center;width:100%}.busyness-label{color:#64748b;font-size:.7rem;font-weight:600;letter-spacing:.05em;text-align:center;text-transform:uppercase;width:100%}.busyness-status{margin-top:.5rem;text-align:center;width:100%}.status-indicator{gap:.5rem;justify-content:center}.status-dot{border-radius:50%;box-shadow:0 2px 4px #0003;height:12px;width:12px}.status-text{color:#374151;font-size:.9rem;font-weight:600}.busyness-section{padding:0}.busyness-sub-tabs{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;display:flex;gap:.5rem;margin-bottom:.5rem;padding:.5rem}.busyness-sub-tab{background:#0000;border:none;border-radius:8px;color:#64748b;cursor:pointer;flex:1 1;font-size:.9rem;font-weight:600;padding:.75rem 1rem;text-align:center;transition:all .2s ease}.busyness-sub-tab:hover{background:#e2e8f0;color:#475569}.busyness-sub-tab.active{background:#7c3aed;box-shadow:0 2px 8px #7c3aed4d;color:#fff}.current-busyness{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 12px #0000000d;padding:1.5rem}.current-info h4{color:#1e293b;font-size:1.5rem;font-weight:700;margin:0 0 .5rem;text-align:center}.timezone-info{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;color:#64748b;font-size:.85rem;margin:0 0 2rem;padding:.75rem;text-align:center}.current-cards{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.current-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 8px #0000000d;padding:1.5rem;text-align:center;transition:transform .2s ease,box-shadow .2s ease}.current-card:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-2px)}.current-card h5{color:#64748b;font-size:.9rem;font-weight:600;letter-spacing:.05em;margin:0 0 1rem;text-transform:uppercase}.capacity-display{color:#1e293b;font-size:3rem;font-weight:800;line-height:1;margin-bottom:.5rem}.park-time-display{color:#059669;font-size:1.5rem;font-weight:700;line-height:1}.current-chart-section{border-top:1px solid #e2e8f0;margin-top:2rem;padding-top:2rem}.current-chart-section h5{color:#374151;font-size:1.1rem;font-weight:600;margin:0 0 1rem;text-align:center}.day-selector-container{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:.5rem;padding:1rem}.day-selector-dropdown{display:flex;justify-content:center}.day-select{-webkit-appearance:none;appearance:none;background:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:1rem;border:2px solid #e2e8f0;border-radius:8px;color:#374151;cursor:pointer;font-size:.9rem;font-weight:600;max-width:200px;padding:.75rem 2.5rem .75rem 1rem;transition:all .2s ease;width:100%}.day-select:hover{background-color:#f8fafc;border-color:#cbd5e1}.day-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.day-select option{color:#374151;font-weight:500;padding:.5rem}.today-busyness{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 12px #0000000d;padding:1.5rem}.today-busyness h4{color:#1e293b;font-size:1.5rem;font-weight:700;margin:0 0 1.5rem;text-align:center}.chart-container{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-top:1rem;padding:1.5rem}.chart-container>div:first-child{background:#e0f2fe;border:1px solid #bae6fd;border-radius:8px;color:#0369a1;font-weight:600;margin-bottom:1rem;padding:.75rem 1rem;text-align:center}.week-busyness{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 12px #0000000d;padding:1.5rem}.week-busyness h4{color:#1e293b;font-size:1.5rem;font-weight:700;margin:0 0 1.5rem;text-align:center}.no-data-message{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-top:1rem;padding:3rem 2rem;text-align:center}.no-data-message p{color:#64748b;line-height:1.6;margin:.5rem 0}.no-data-message p:first-child{color:#475569;font-size:1.1rem;font-weight:600}.no-data-message p:last-child{color:#94a3b8;font-size:.9rem}@media (max-width:768px){.busyness-sub-tabs{gap:.25rem}.busyness-sub-tab{font-size:.85rem;padding:.5rem}.current-busyness,.current-card,.today-busyness,.week-busyness{padding:1rem}.current-cards{gap:.75rem;grid-template-columns:1fr 1fr}.capacity-display{font-size:2.5rem}.park-time-display{font-size:1.25rem}.chart-container{padding:1rem}.day-select{font-size:.85rem;max-width:180px;padding:.6rem .8rem}.day-selector-container{padding:1rem}}@media (max-width:480px){.current-info h4,.today-busyness h4,.week-busyness h4{font-size:1.25rem}.current-busyness,.current-card,.today-busyness,.week-busyness{padding:1rem}.current-cards{gap:.5rem;grid-template-columns:1fr 1fr}.capacity-display{font-size:2rem}.park-time-display{font-size:1.1rem}.timezone-info{font-size:.8rem;padding:.5rem}.day-select{font-size:.8rem;max-width:160px;padding:.5rem .6rem}.day-selector-container{padding:.75rem}}.busyness-info-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin:0 auto;max-width:350px;width:100%}.info-card{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 8px #0000000d;display:flex;flex-direction:column;gap:.5rem;padding:1rem;text-align:center;transition:all .2s ease}.info-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.info-icon{background:linear-gradient(135deg,#7c3aed,#a855f7);border-radius:8px;box-shadow:0 2px 8px #7c3aed33;color:#fff;height:32px;justify-content:center;width:32px}.info-content,.info-icon{align-items:center;display:flex}.info-content{flex-direction:column;text-align:center}.info-label{color:#64748b;font-size:.7rem;font-weight:600;letter-spacing:.05em;margin-bottom:.25rem;text-transform:uppercase}.info-value{color:#1e293b;font-size:.95rem;font-weight:700}@media (max-width:768px){.busyness-card{margin-bottom:.5rem;padding:1rem}.busyness-header{margin-bottom:.75rem}.busyness-icon{height:36px;width:36px}.busyness-title h3{font-size:1.1rem}.busyness-content{gap:.75rem}.busyness-rectangle{height:50px;width:140px}.busyness-percentage{font-size:1.25rem}.busyness-label{font-size:.65rem}.busyness-status{margin-top:.25rem}.busyness-info-grid{gap:.75rem;max-width:300px}.info-card{padding:.75rem}.info-icon{height:28px;width:28px}.info-label{font-size:.65rem}.info-value{font-size:.85rem}}.status-card-alt{background:#fff;border:3px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 12px #0000000d;margin-top:1.5rem;padding:1.5rem}.status-card-alt-header{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.status-card-alt-header h3{color:#1e293b;font-size:1.25rem;font-weight:700;margin:0}.status-time-badge{align-items:center;background:#7c3aed;border-radius:12px;color:#fff;display:flex;font-size:.75rem;font-weight:600;gap:.5rem;letter-spacing:.05em;padding:.25rem .75rem;text-transform:uppercase}.live-indicator{animation:pulse-live 2s ease-in-out infinite;background:#fff;border-radius:50%;box-shadow:0 0 0 0 #ffffffb3;height:8px;width:8px}@keyframes pulse-live{0%{box-shadow:0 0 0 0 #ffffffb3;opacity:1}50%{box-shadow:0 0 0 4px #fff0;opacity:.8}to{box-shadow:0 0 0 0 #fff0;opacity:1}}.status-metrics{align-items:stretch;display:flex;flex-direction:column;gap:1.5rem}.metric-item{align-items:flex-start;display:flex;flex:1 1;gap:1rem}.metric-icon{align-items:center;border-radius:12px;box-shadow:0 2px 8px #00000026;color:#fff;display:flex;flex-shrink:0;height:44px;justify-content:center;width:44px}.metric-content{align-items:flex-start;display:flex;flex-direction:column;gap:.25rem;min-width:0;text-align:left}.metric-label{color:#64748b;font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.metric-value{color:#1e293b;font-size:1.5rem;font-weight:800;line-height:1}.metric-value-small{color:#1e293b;font-size:.95rem;font-weight:700;line-height:1.3}.metric-status{color:#94a3b8;font-size:.8rem;font-weight:500}.metric-divider{background:linear-gradient(90deg,#0000,#e2e8f0,#0000);flex-shrink:0;height:1px;width:100%}@media (max-width:768px){.status-card-alt{margin-top:1rem;padding:1rem}.status-metrics{flex-direction:column;gap:1rem}.metric-divider{background:linear-gradient(90deg,#0000,#e2e8f0,#0000);height:1px;width:100%}.metric-item{gap:.75rem}.metric-icon{height:40px;width:40px}.metric-value{font-size:1.25rem}.status-card-alt-header h3{font-size:1.1rem}}.current-busyness-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr;margin-top:.75rem}@media (min-width:768px){.current-busyness-grid{gap:1.5rem;grid-template-columns:repeat(2,1fr);margin-top:1rem}}@media (min-width:1024px){.current-busyness-grid{gap:2rem;grid-template-columns:1fr 1fr}}@media (min-width:1440px){.current-busyness-grid{gap:2rem;grid-template-columns:1fr 1.5fr}}.current-busyness-alt{background:#fff;border:3px solid;border-radius:16px;box-shadow:0 4px 12px #0000000d;margin-top:0;padding:1.5rem;position:relative}.closed-content{gap:1.5rem;width:100%}.closed-content,.closed-header{display:flex;flex-direction:column}.closed-header{align-items:center;border-bottom:2px solid #f1f5f9;gap:1rem;padding-bottom:1rem}.closed-header svg{color:#64748b;opacity:.6}.closed-header h3{color:#64748b;font-size:1.5rem;font-weight:800;letter-spacing:.05em;margin:0;text-align:center;text-transform:uppercase}.closed-header .time-display{color:#94a3b8;font-size:.9rem;font-weight:500}.next-opening{align-items:center;background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:2px solid #86efac;border-radius:12px;display:flex;flex-direction:column;margin-top:.5rem;padding:1.25rem;text-align:center}.opening-badge{align-items:center;animation:badgeBounce 2s ease-in-out infinite;background:#22c55e;border-radius:10px;box-shadow:0 4px 12px #22c55e4d;color:#fff;display:inline-flex;font-size:.95rem;font-weight:600;gap:.5rem;justify-content:center;margin-bottom:.75rem;padding:.625rem 1.25rem}.opening-badge svg{animation:iconPulse 1.5s ease-in-out infinite;color:#fff;height:14px;opacity:1;width:14px}.opening-subtitle{color:#065f46;font-size:.9rem;font-weight:500;margin:0}@keyframes badgeBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes iconPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.15)}}.closed-best-times{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:1rem;text-align:left}.section-label{color:#64748b;font-size:.85rem;font-weight:600;letter-spacing:.05em;margin:0 0 .75rem;text-transform:uppercase}.closed-time-chips{display:flex;flex-direction:column;gap:.5rem}.mini-time-chip{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;display:flex;justify-content:space-between;padding:.5rem .75rem;transition:all .2s}.mini-time-chip:hover{border-color:#7c3aed;box-shadow:0 2px 8px #7c3aed1a}.mini-time{color:#1e293b;font-size:.9rem;font-weight:600}.mini-capacity{background:#d1fae5;border-radius:6px;color:#10b981;font-size:.85rem;font-weight:600;padding:.25rem .5rem}.view-schedule-btn{align-items:center;background:linear-gradient(135deg,#7c3aed,#6d28d9);border:none;border-radius:16px;box-shadow:0 4px 12px #7c3aed4d;color:#fff;cursor:pointer;display:flex;font-size:.95rem;font-weight:700;gap:.75rem;justify-content:center;margin-top:.5rem;padding:1.25rem 1.5rem;text-align:center;transition:all .3s ease;width:100%}.view-schedule-btn:hover{background:linear-gradient(135deg,#6d28d9,#5b21b6);box-shadow:0 8px 20px #7c3aed66;transform:translateY(-2px)}.view-schedule-btn:active{transform:translateY(0)}.view-schedule-btn>svg:first-child{color:#fff;flex-shrink:0}.view-schedule-btn>svg:last-child{color:#fff;flex-shrink:0;transition:transform .3s ease}.view-schedule-btn:hover>svg:last-child{transform:translateX(4px)}.no-data-hint{color:#94a3b8;font-size:.9rem;font-style:italic;margin:.5rem 0 0}.closed-text p{color:#94a3b8;font-size:.95rem;font-weight:500;margin:0}@media (max-width:768px){.closed-content{gap:1rem}.closed-header{gap:.75rem;padding-bottom:.75rem}.closed-header svg{height:40px;width:40px}.closed-header h3{font-size:1.25rem}.closed-header .time-display{font-size:.85rem}.next-opening{padding:.75rem}.opening-badge{font-size:.85rem;padding:.4rem .75rem}.opening-subtitle{font-size:.8rem}.closed-best-times{padding:.75rem}.mini-time-chip{padding:.4rem .6rem}.mini-time{font-size:.85rem}.mini-capacity{font-size:.8rem;padding:.2rem .4rem}.view-schedule-btn{font-size:.9rem;padding:1rem 1.25rem}}.busyness-alt-header{margin-bottom:1.5rem}.busyness-alt-title{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.busyness-alt-title h4{color:#1e293b;font-size:1.25rem;font-weight:700;margin:0}.live-badge{align-items:center;background:#ef4444;border-radius:12px;color:#fff;display:flex;font-size:.7rem;font-weight:700;gap:.4rem;letter-spacing:.05em;padding:.25rem .75rem;text-transform:uppercase}.time-display{color:#64748b;font-size:.85rem;font-weight:500}.busyness-alt-main{gap:2rem}.busyness-alt-main,.capacity-section{align-items:center;display:flex;flex-direction:column}.capacity-section{gap:1rem}.capacity-circle{box-shadow:0 4px 12px #0000001a;height:140px;position:relative;width:140px}.capacity-circle,.capacity-circle-inner{align-items:center;border-radius:50%;display:flex;justify-content:center}.capacity-circle-inner{background:#fff;flex-direction:column;gap:.25rem;height:110px;width:110px}.capacity-number{color:#1e293b;font-size:2.5rem;font-weight:800;line-height:1}.capacity-label{color:#64748b;font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.capacity-status{font-size:1rem;font-weight:700;text-align:center}.quick-stats{display:flex;flex:1 1;flex-direction:column;gap:1rem}.quick-stat-item{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;display:flex;gap:1rem;padding:1rem}.quick-stat-icon{align-items:center;border-radius:10px;box-shadow:0 2px 6px #00000026;color:#fff;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.quick-stat-content{display:flex;flex-direction:column;gap:.25rem}.quick-stat-label{color:#64748b;font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.quick-stat-value{color:#1e293b;font-size:1.25rem;font-weight:700}@media (max-width:768px){.current-busyness-alt{margin-top:.5rem;padding:1rem}.busyness-alt-main{flex-direction:column;gap:1.5rem}.capacity-circle{height:120px;width:120px}.capacity-circle-inner{height:95px;width:95px}.capacity-number{font-size:2rem}.quick-stats{width:100%}}.busyness-graph-alt{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 12px #0000000d;margin-top:0;padding:1.5rem}@media (min-width:768px){.busyness-graph-alt{padding:2rem}}@media (min-width:1024px){.busyness-graph-alt{padding:2rem}}.graph-alt-header{align-items:flex-start;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.graph-alt-title{align-items:center;display:flex;gap:.75rem}.graph-alt-title svg{color:#7c3aed;flex-shrink:0}.graph-alt-title h4{color:#1e293b;font-size:1.1rem;font-weight:700;margin:0}.graph-meta{align-items:flex-end;display:flex;flex-direction:column;gap:.25rem}.graph-date{color:#374151;font-size:.85rem;font-weight:600}.graph-count{background:#f1f5f9;border-radius:8px;color:#94a3b8;font-size:.75rem;font-weight:500;padding:.2rem .6rem}.graph-alt-content{-webkit-overflow-scrolling:touch;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;overflow-x:auto;padding:1.5rem}.graph-alt-content canvas{height:auto!important;max-width:100%}.graph-alt-footer{display:flex;justify-content:center;margin-top:1rem}.graph-insight{align-items:center;background:#fef3c7;border:1px solid #fde68a;border-radius:8px;color:#64748b;display:flex;font-size:.85rem;font-style:italic;gap:.5rem;padding:.5rem 1rem}.graph-insight svg{color:#f59e0b;flex-shrink:0}@media (max-width:768px){.busyness-graph-alt{margin-top:.75rem;padding:1rem}.graph-alt-header{flex-direction:column;gap:.75rem}.graph-alt-header,.graph-meta{align-items:flex-start}.graph-alt-content{overflow-x:auto;padding:.75rem}.graph-alt-content canvas{min-width:100%}.graph-insight{font-size:.8rem;padding:.4rem .8rem}}@media (max-width:480px){.graph-alt-content{padding:.5rem}.graph-alt-title h4{font-size:1rem}.graph-date{font-size:.8rem}.graph-count{font-size:.7rem}}.suggested-times-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 12px #0000000d;margin-top:.75rem;padding:1.5rem}.suggested-times-header{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;gap:.75rem;margin-bottom:1.5rem;padding-bottom:1rem}.suggested-times-header svg{color:#7c3aed;flex-shrink:0}.suggested-times-header h4{color:#1e293b;font-size:1.1rem;font-weight:700;margin:0}.times-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr}.times-card{background:#fff;border:2px solid;border-radius:12px;padding:1rem}.best-times-card{background:linear-gradient(135deg,#fff,#f0fdf4);border-color:#10b981}.avoid-times-card{background:linear-gradient(135deg,#fff,#fef2f2);border-color:#ef4444}.times-column{display:flex;flex-direction:column;gap:1rem}.times-column-header{align-items:center;border-radius:8px;display:flex;font-size:.85rem;font-weight:600;gap:.5rem;padding:.75rem 1rem}.times-column-header.best{background:#ecfdf5;border:1px solid #a7f3d0;color:#059669}.times-column-header.avoid{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.times-column-header svg{flex-shrink:0}.time-slots{display:flex;flex-direction:column;gap:.75rem}.time-slot-item{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:flex;gap:.75rem;padding:.75rem;transition:all .2s ease}.time-slot-item:hover{background:#f1f5f9;transform:translateX(2px)}.time-slot-rank{align-items:center;background:#7c3aed;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.75rem;font-weight:700;height:24px;justify-content:center;width:24px}.time-slot-rank.warn{background:#ef4444}.time-slot-details{display:flex;flex:1 1;flex-direction:column;gap:.25rem;min-width:0}.time-slot-time{color:#1e293b;font-size:.9rem;font-weight:600}.time-slot-bar{background:#e2e8f0;border-radius:3px;height:6px;overflow:hidden;width:100%}.time-slot-fill{border-radius:3px;height:100%;transition:width .3s ease}.time-slot-percentage{color:#64748b;flex-shrink:0;font-size:.8rem;font-weight:700;min-width:35px;text-align:right}@media (max-width:768px){.suggested-times-card{margin-top:.75rem;padding:1rem}.times-grid{gap:1rem;grid-template-columns:1fr}.times-column-header{font-size:.8rem;padding:.6rem .8rem}.time-slot-item{gap:.5rem;padding:.6rem}.time-slot-rank{font-size:.7rem;height:20px;width:20px}.time-slot-time{font-size:.85rem}.time-slot-percentage{font-size:.75rem;min-width:30px}}.suggested-times-alt{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 12px #0000000d;margin-top:.75rem;padding:1rem}.suggested-times-alt-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.suggested-times-alt-header h4{color:#1e293b;font-size:1.1rem;font-weight:700;margin:0}.times-toggle{background:#7c3aed;border-radius:12px;color:#fff;font-size:.75rem;font-weight:600;padding:.25rem .75rem}.timeline-container{grid-gap:1rem;align-items:start;display:grid;gap:1rem;grid-template-columns:1fr auto 1fr}.timeline-section{display:flex;flex-direction:column;gap:.75rem}.timeline-label{align-items:center;display:flex;font-size:.85rem;font-weight:700;gap:.5rem;padding:.25rem 0}.timeline-label.best{color:#059669}.timeline-label.avoid{color:#dc2626}.timeline-emoji{font-size:1.1rem}.timeline-items{display:flex;flex-direction:column;gap:.75rem}.timeline-bubble{border-radius:10px;box-shadow:0 2px 8px #00000014;padding:.75rem;position:relative;transition:all .2s ease}.timeline-bubble:hover{box-shadow:0 4px 12px #0000001f;transform:scale(1.02)}.timeline-bubble.best{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:2px solid #10b981}.timeline-bubble.avoid{background:linear-gradient(135deg,#fef2f2,#fecaca);border:2px solid #ef4444}.bubble-info{align-items:center;display:flex;gap:.5rem;justify-content:space-between;margin-bottom:.5rem}.bubble-time{font-weight:800}.bubble-percentage,.bubble-time{color:#1e293b;flex-shrink:0;font-size:1rem}.bubble-percentage{font-weight:700}.bubble-meter{border-radius:3px;height:6px;transition:width .3s ease}.bubble-label{color:#64748b;flex:1 1;font-size:.75rem;font-weight:600;text-align:right}.timeline-divider{align-self:stretch;background:linear-gradient(180deg,#0000,#e2e8f0,#0000);height:100%;width:2px}@media (max-width:768px){.suggested-times-alt{margin-top:.75rem;padding:.75rem}.timeline-container{gap:1rem;grid-template-columns:1fr}.timeline-divider{background:linear-gradient(90deg,#0000,#e2e8f0,#0000);height:2px;width:100%}.bubble-percentage,.bubble-time{font-size:.9rem}.bubble-label{font-size:.7rem}.timeline-bubble{padding:.6rem}.bubble-info{margin-bottom:.4rem}.timeline-label{font-size:.8rem}}.week-best-times-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 12px #0000000d;margin-top:.75rem;padding:1.25rem}@media (min-width:768px){.week-best-times-card{margin-top:1rem;padding:2rem}}@media (min-width:1024px){.week-best-times-card{margin-top:1.25rem;padding:2.5rem}}.week-best-times-header{align-items:flex-start;display:flex;gap:.75rem;margin-bottom:1.25rem}.week-best-times-header svg{color:#7c3aed;flex-shrink:0;margin-top:.25rem}.week-best-times-title{flex:1 1}.week-best-times-title h4{color:#1e293b;font-size:1.1rem;font-weight:700;margin:0 0 .25rem}.week-subtitle{color:#64748b;font-size:.85rem;font-weight:500}.week-sections-container{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr;margin-bottom:1rem}@media (min-width:768px){.week-sections-container{gap:1.5rem;grid-template-columns:1fr 1fr}}@media (min-width:1024px){.week-sections-container{gap:2rem}}.week-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:1rem}.week-section-header{align-items:center;border-bottom:2px solid #e2e8f0;display:flex;gap:.5rem;margin-bottom:.75rem;padding-bottom:.75rem}.week-section-header svg{color:#7c3aed;flex-shrink:0}.week-section-header h5{color:#1e293b;flex:1 1;font-size:1rem;font-weight:700;margin:0}.week-days-label{background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#64748b;font-size:.75rem;font-weight:600;padding:.25rem .5rem}.week-times-list{display:flex;flex-direction:column;gap:.75rem}.week-time-item{align-items:center;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:12px;display:flex;gap:.75rem;padding:.75rem;transition:all .2s ease}.week-time-item:hover{border-color:#7c3aed;box-shadow:0 4px 12px #7c3aed1a;transform:translateX(4px)}.week-time-rank{align-items:center;background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:50%;box-shadow:0 2px 8px #7c3aed4d;color:#fff;display:flex;flex-shrink:0;font-size:.9rem;font-weight:800;height:32px;justify-content:center;width:32px}.week-time-info{flex:1 1}.week-time-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.week-day{color:#1e293b;flex:1 1;font-size:.95rem;font-weight:700}.week-time{color:#475569;font-size:.9rem;font-weight:600;margin:0 .75rem}.week-percentage{color:#7c3aed;font-size:.9rem;font-weight:700;min-width:45px;text-align:right}.week-time-bar{background:#e2e8f0;border-radius:3px;height:6px;overflow:hidden;width:100%}.week-time-fill{border-radius:3px;height:100%;transition:width .3s ease}.week-best-times-footer{align-items:center;background:linear-gradient(135deg,#faf5ff,#f3e8ff);border:1px solid #e9d5ff;border-radius:10px;display:flex;gap:.5rem;padding:.75rem}.week-best-times-footer svg{color:#7c3aed;flex-shrink:0}.week-best-times-footer span{color:#6d28d9;font-size:.85rem;font-weight:500}@media (max-width:768px){.week-best-times-card{margin-top:.75rem;padding:1rem}.week-best-times-header{gap:.5rem;margin-bottom:1rem}.week-best-times-header svg{height:18px;width:18px}.week-best-times-title h4{font-size:1rem}.week-subtitle{font-size:.8rem}.week-sections-container{gap:.75rem;grid-template-columns:1fr}.week-section{padding:.75rem}.week-section-header{margin-bottom:.6rem;padding-bottom:.6rem}.week-section-header svg{height:16px;width:16px}.week-section-header h5{font-size:.9rem}.week-days-label{font-size:.7rem;padding:.2rem .4rem}.week-times-list{gap:.6rem}.week-time-item{padding:.6rem}.week-time-rank{height:28px;width:28px}.week-day,.week-time-rank{font-size:.85rem}.week-time{font-size:.8rem;margin:0 .5rem}.week-percentage{font-size:.8rem;min-width:40px}.week-time-bar{height:5px}.week-best-times-footer{padding:.6rem}.week-best-times-footer svg{height:14px;width:14px}.week-best-times-footer span{font-size:.75rem}}.parking-cards-experimental{border-top:2px dashed #e2e8f0;margin-top:2rem;padding-top:2rem}.parking-cards-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.parking-cards-header h4{color:#1e293b;font-size:1.2rem;font-weight:700;margin:0}.experimental-badge{background:linear-gradient(135deg,#10b981,#059669);border-radius:20px;box-shadow:0 2px 8px #10b9814d;color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.5px;padding:.35rem .75rem;text-transform:uppercase}.parking-category-section{margin-bottom:2rem}.category-header{align-items:center;border-radius:12px;display:flex;gap:.75rem;margin-bottom:1rem;padding:1rem}.car-park-header{background:linear-gradient(135deg,#f3e8ff,#ede9fe);border:2px solid #7c3aed}.street-parking-header{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border:2px solid #10b981}.category-header svg{flex-shrink:0}.car-park-header svg{color:#7c3aed}.street-parking-header svg{color:#10b981}.category-header h5{color:#1e293b;flex:1 1;font-size:1.1rem;font-weight:700;margin:0}.count-badge{background:#fff;border-radius:20px;box-shadow:0 2px 4px #0000001a;color:#1e293b;font-size:.85rem;font-weight:700;padding:.25rem .75rem}.parking-cards-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width:768px){.parking-cards-grid{gap:1.5rem;grid-template-columns:repeat(2,1fr)}}@media (min-width:1440px){.parking-cards-grid{gap:1.5rem;grid-template-columns:repeat(3,1fr)}}.parking-option-card{background:#fff;border:2px solid #0000;border-radius:16px;box-shadow:0 4px 12px #00000014;padding:1.25rem;transition:all .3s ease}.parking-option-card:hover{box-shadow:0 8px 24px #0000001f;transform:translateY(-4px)}.car-park-card{border-color:#e9d5ff}.car-park-card:hover{border-color:#7c3aed}.street-parking-card{border-color:#d1fae5}.street-parking-card:hover{border-color:#10b981}.parking-card-header{align-items:flex-start;border-bottom:1px solid #e2e8f0;display:flex;gap:.75rem;margin-bottom:1rem;padding-bottom:1rem}.parking-card-rank{align-items:center;background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:50%;box-shadow:0 2px 8px #7c3aed4d;color:#fff;display:flex;flex-shrink:0;font-size:.9rem;font-weight:800;height:36px;justify-content:center;width:36px}.street-parking-card .parking-card-rank{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 2px 8px #10b9814d}.parking-card-title{flex:1 1}.parking-card-title h6{color:#1e293b;font-size:1rem;font-weight:700;line-height:1.3;margin:0 0 .25rem}.parking-card-type{color:#64748b;font-size:.8rem;font-weight:500}.parking-card-metrics{margin-bottom:1rem}.parking-metric-row{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr 1fr}.parking-metric-item{align-items:center;background:#f8fafc;border-radius:8px;display:flex;flex:1 1;gap:.4rem;padding:.5rem .75rem}.parking-metric-item svg{color:#7c3aed;flex-shrink:0}.parking-metric-item span{color:#475569;font-size:.85rem;font-weight:600}.parking-card-status{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr 1fr;margin-bottom:.75rem}.status-indicator{flex:1 1;font-size:.85rem;padding:.5rem .75rem;text-transform:capitalize}.cost-info,.status-indicator{border-radius:8px;font-weight:700;text-align:center}.cost-info{background:#f8fafc;color:#1e293b;font-size:.9rem;margin-bottom:.75rem;padding:.75rem}.parking-card-actions{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr 1fr}.parking-card-actions.single-action{grid-template-columns:1fr}.parking-card-button{align-items:center;background:linear-gradient(135deg,#7c3aed,#6d28d9);border:none;border-radius:10px;box-shadow:0 2px 8px #7c3aed4d;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:700;gap:.5rem;justify-content:center;padding:.75rem;text-align:center;text-decoration:none;transition:all .2s ease}.parking-card-button:hover{background:linear-gradient(135deg,#6d28d9,#5b21b6);box-shadow:0 4px 12px #7c3aed66;transform:translateY(-2px)}.parking-card-button.directions-button{background:linear-gradient(135deg,#7c3aed,#6d28d9);box-shadow:0 2px 8px #7c3aed4d}.parking-card-button.directions-button:hover{background:linear-gradient(135deg,#6d28d9,#5b21b6);box-shadow:0 4px 12px #7c3aed66}@media (max-width:768px){.parking-cards-experimental{margin-top:1.5rem;padding-top:1.5rem}.parking-cards-header{align-items:flex-start;flex-direction:column;gap:.75rem;margin-bottom:1rem}.parking-cards-header h4{font-size:1.1rem}.parking-option-card{padding:1rem}.category-header{gap:.5rem;padding:.75rem}.category-header h5{font-size:1rem}.category-header svg{height:18px;width:18px}.parking-card-rank{font-size:.85rem;height:32px;width:32px}.parking-card-title h6{font-size:.95rem}.parking-card-type{font-size:.75rem}.parking-metric-row{gap:.5rem;grid-template-columns:1fr}.parking-metric-item{padding:.5rem}.parking-metric-item svg{height:14px;width:14px}.parking-metric-item span{font-size:.8rem}.parking-card-status{gap:.5rem;grid-template-columns:1fr}.status-indicator{font-size:.8rem;padding:.5rem}.cost-info{font-size:.85rem;padding:.6rem}.parking-card-actions{gap:.5rem;grid-template-columns:1fr}.parking-card-button{font-size:.85rem;padding:.65rem}}.feedback-section{background:#f8fafc;border:2px solid #e2e8f0;border-radius:16px;margin-bottom:1.5rem;padding:1.5rem}.feedback-section h3{color:#1e293b;font-size:1.2rem;font-weight:700;margin:0 0 .5rem}.feedback-section p{color:#64748b;font-size:.95rem;line-height:1.5;margin:0 0 1rem}.feedback-link-button{align-items:center;background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:12px;box-shadow:0 4px 12px #7c3aed4d;color:#fff;display:flex;font-size:1rem;font-weight:700;gap:.5rem;justify-content:center;padding:.875rem 1.5rem;text-decoration:none;transition:all .2s ease}.feedback-link-button:hover{box-shadow:0 6px 20px #7c3aed66;transform:translateY(-2px)}.feedback-divider{color:#94a3b8;font-size:.9rem;font-weight:600;margin:1.5rem 0;position:relative;text-align:center}.feedback-divider:after,.feedback-divider:before{background:#e2e8f0;content:"";height:1px;position:absolute;top:50%;width:40%}.feedback-divider:before{left:0}.feedback-divider:after{right:0}.social-links{display:flex;flex-direction:column;gap:.75rem}.social-link{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:12px;display:flex;gap:1rem;padding:1rem;text-decoration:none;transition:all .2s ease}.social-link:hover{box-shadow:0 4px 12px #0000001a;transform:translateX(4px)}.social-link.instagram{border-color:#e4405f}.social-link.instagram:hover{background:linear-gradient(135deg,#fdf2f8,#fce7f3);border-color:#e4405f}.social-link.tiktok{border-color:#000}.social-link.tiktok:hover{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-color:#000}.social-icon{align-items:center;border-radius:12px;display:flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.social-link.instagram .social-icon{background:linear-gradient(135deg,#e4405f,#c13584);color:#fff}.social-link.tiktok .social-icon{background:#000;color:#fff}.social-info{display:flex;flex-direction:column;gap:.25rem}.social-name{color:#1e293b;font-size:1rem;font-weight:700}.social-handle{color:#64748b;font-size:.9rem}@media (max-width:768px){.feedback-section{padding:1.25rem}.feedback-section h3{font-size:1.1rem}.feedback-link-button{font-size:.95rem;padding:.75rem 1.25rem}.social-link{padding:.875rem}.social-icon{height:40px;width:40px}.social-icon svg{height:20px;width:20px}.social-name{font-size:.95rem}.social-handle{font-size:.85rem}}.coming-soon-modal{background:#f8fafc;max-width:100%;overflow:hidden;padding:0!important;position:relative}.coming-soon-content-wrapper{display:flex;flex-direction:column;min-height:100%}.coming-soon-header{background:linear-gradient(135deg,#7c3aed,#6d28d9);box-shadow:0 2px 8px #0000001a;color:#fff;margin:0;padding:max(2.5rem,env(safe-area-inset-top) + 1rem) 2rem 2.5rem;position:-webkit-sticky;position:sticky;text-align:center;top:0;z-index:10}.sparkle-icon{animation:sparkle 2s infinite;font-size:3rem;margin-bottom:1rem}@keyframes sparkle{0%,to{transform:scale(1) rotate(0deg)}25%{transform:scale(1.1) rotate(5deg)}75%{transform:scale(1.1) rotate(-5deg)}}.coming-soon-header h2{font-size:1.8rem;font-weight:800;margin:0 0 .5rem}.coming-soon-subtitle{font-size:1rem;margin:0;opacity:.9}.coming-soon-features{grid-gap:1.5rem;background:#f8fafc;display:grid;flex:1 1;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));padding:2.5rem 2rem}.feature-card{background:#fff;border:2px solid #e2e8f0;border-radius:16px;overflow:hidden;padding:1.5rem;position:relative;transition:all .3s ease}.feature-card:hover{border-color:#7c3aed;box-shadow:0 8px 24px #7c3aed26;transform:translateY(-4px)}.feature-icon{font-size:2.5rem;margin-bottom:1rem}.feature-card h3{color:#1e293b;font-size:1.2rem;font-weight:700;margin:0 0 .75rem}.feature-card p{color:#64748b;font-size:.95rem;line-height:1.6;margin:0 0 1rem}.feature-tag{background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:20px;color:#fff;display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.5px;padding:.35rem .75rem;text-transform:uppercase}.coming-soon-footer{background:#fff;border-top:2px solid #e2e8f0;margin:0;padding:2rem;text-align:center}.coming-soon-footer p{color:#1e293b;font-size:1.1rem;font-weight:600;margin:0 0 1rem}.notify-button{background:linear-gradient(135deg,#7c3aed,#6d28d9);border:none;border-radius:12px;box-shadow:0 4px 12px #7c3aed4d;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;padding:.875rem 2rem;transition:all .2s ease}.notify-button:hover{box-shadow:0 6px 20px #7c3aed66;transform:translateY(-2px)}@media (min-width:768px){.coming-soon-features{gap:2rem;grid-template-columns:repeat(2,1fr);padding:3rem 2.5rem}.coming-soon-header{padding:3rem 2rem}.coming-soon-footer{padding:2.5rem 2rem}}@media (min-width:1024px){.coming-soon-features{gap:2rem;grid-template-columns:repeat(3,1fr);padding:3rem}}@media (max-width:768px){.coming-soon-header{padding:2rem 1.5rem}.sparkle-icon{font-size:2.5rem}.coming-soon-header h2{font-size:1.5rem}.coming-soon-subtitle{font-size:.9rem}.coming-soon-features{gap:1.25rem;grid-template-columns:1fr;padding:2rem 1.5rem}.feature-card{padding:1.5rem}.feature-icon{font-size:2.25rem}.feature-card h3{font-size:1.1rem}.feature-card p{font-size:.9rem}.coming-soon-footer{padding:1.5rem}.coming-soon-footer p{font-size:1rem}}.coming-soon-overlay{align-items:center;display:flex;justify-content:center;min-height:400px;padding:2rem}.coming-soon-content{background:linear-gradient(135deg,#f8fafc,#e2e8f0);border:2px solid #e2e8f0;border-radius:24px;box-shadow:0 8px 32px #0000001a;max-width:500px;padding:3rem 2rem;text-align:center}.coming-soon-icon{animation:bounce 2s infinite;font-size:4rem;margin-bottom:1.5rem}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.coming-soon-content h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#7c3aed,#6d28d9);-webkit-background-clip:text;background-clip:text;color:#1e293b;font-size:2rem;font-weight:800;margin:0 0 1rem}.coming-soon-content p{color:#64748b;font-size:1.1rem;line-height:1.6;margin:0}@media (max-width:768px){.coming-soon-overlay{min-height:300px;padding:1rem}.coming-soon-content{padding:2rem 1.5rem}.coming-soon-icon{font-size:3rem;margin-bottom:1rem}.coming-soon-content h2{font-size:1.5rem}.coming-soon-content p{font-size:1rem}}.suggested-times-v2{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 12px #0000000d;margin-top:.75rem;padding:1.5rem}@media (min-width:768px){.suggested-times-v2{margin-top:1rem;padding:2rem}}@media (min-width:1024px){.suggested-times-v2{margin-top:1.25rem;padding:2.5rem}}.suggested-times-v2-header{align-items:flex-start;border-bottom:2px solid #e2e8f0;display:flex;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem}.suggested-times-v2-header svg{color:#7c3aed;flex-shrink:0;margin-top:.25rem}.suggested-times-v2-header h4{color:#1e293b;font-size:1.3rem;font-weight:800;margin:0 0 .25rem}.suggested-times-v2-header p{color:#64748b;font-size:.9rem;margin:0}.recommendation-section{margin-bottom:1.5rem}.recommendation-section:last-child{margin-bottom:0}@media (min-width:1024px){.recommendation-section{margin-bottom:2rem}}.section-title{align-items:center;display:flex;font-size:1rem;font-weight:700;gap:.75rem;margin-bottom:1rem}.section-title.best{color:#059669}.section-title.peak{color:#f59e0b}.section-title.time-of-day{color:#7c3aed}.section-title.avoid{color:#dc2626}.section-title svg{flex-shrink:0}.time-chips{display:flex;flex-wrap:wrap;gap:.75rem}.time-chips-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(3,1fr)}.show-more-btn{align-items:center;background:linear-gradient(135deg,#faf5ff,#f3e8ff);border:2px solid #e9d5ff;border-radius:10px;color:#7c3aed;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:.5rem;justify-content:center;margin-top:.75rem;padding:.75rem 1rem;transition:all .2s;width:100%}.show-more-btn:hover{background:linear-gradient(135deg,#f3e8ff,#e9d5ff);border-color:#7c3aed;box-shadow:0 4px 12px #7c3aed26;transform:translateY(-2px)}.show-more-btn svg{transition:transform .2s}.show-more-btn:hover svg{transform:translateY(2px)}@media (min-width:768px){.time-chips-grid{gap:1rem;grid-template-columns:repeat(4,1fr)}}@media (min-width:1024px){.time-chips-grid{gap:1rem;grid-template-columns:repeat(6,1fr)}}.time-chip{align-items:center;background:#fff;border:2px solid;border-radius:12px;display:flex;flex-direction:column;gap:.5rem;min-width:100px;overflow:hidden;padding:.75rem 1rem;position:relative;transition:all .2s ease}.time-chip.best{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-color:#10b981}.time-chip.best:hover{box-shadow:0 4px 12px #10b98133;transform:translateY(-2px)}.time-chip.peak{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#f59e0b}.time-chip.peak:hover{box-shadow:0 4px 12px #f59e0b33;transform:translateY(-2px)}.time-chip.avoid{background:linear-gradient(135deg,#fef2f2,#fee2e2);border-color:#ef4444}.time-chip.avoid:hover{box-shadow:0 4px 12px #ef444433;transform:translateY(-2px)}.chip-capacity{color:#64748b;font-size:.9rem}.chip-label{color:#64748b;font-weight:600;text-align:center}.chip-bar{border-radius:2px;bottom:0;height:4px;left:0;margin-top:.25rem;position:absolute;transition:width .3s ease;width:100%}.time-periods-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}@media (min-width:768px){.time-periods-grid{gap:1.5rem;grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.time-periods-grid{gap:1.5rem;grid-template-columns:repeat(3,1fr)}}.period-card{background:#fff;border:2px solid #e2e8f0;border-radius:16px;padding:1.25rem;text-align:center;transition:all .2s ease}.period-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.period-card.morning{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#fbbf24}.period-card.afternoon{background:linear-gradient(135deg,#fff7ed,#fed7aa);border-color:#f59e0b}.period-card.evening{background:linear-gradient(135deg,#eef2ff,#e0e7ff);border-color:#6366f1}.period-icon{align-items:center;color:inherit;display:flex;justify-content:center;margin-bottom:.5rem}.period-card h5{color:#1e293b;font-size:1rem;font-weight:700;margin:0 0 .25rem}.period-range{color:#64748b;font-size:.75rem;margin:0 0 1rem}.period-times{display:flex;flex-direction:column;gap:.5rem}.period-time{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;display:flex;justify-content:space-between;padding:.5rem .75rem}.period-time-value{color:#1e293b;font-size:.95rem;font-weight:700}.period-capacity{color:#7c3aed;font-size:.85rem;font-weight:700}@media (max-width:768px){.suggested-times-v2{margin-top:.75rem;padding:1rem}.suggested-times-v2-header{margin-bottom:1rem;padding-bottom:.75rem}.suggested-times-v2-header h4{font-size:1.1rem}.suggested-times-v2-header p{font-size:.85rem}.recommendation-section{margin-bottom:1rem}.section-title{font-size:.9rem}.section-title svg{height:18px;width:18px}.time-chips{gap:.5rem}.time-chips-grid{gap:.5rem;grid-template-columns:repeat(3,1fr)}.time-chip{min-width:0;min-width:auto;padding:.6rem .5rem}.chip-time{font-size:.95rem}.chip-capacity{font-size:.8rem}.time-periods-grid{gap:.75rem;grid-template-columns:1fr}.period-card{padding:1rem}.period-icon svg{height:24px;width:24px}}.weekly-insights-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 12px #0000000d;margin-top:1.5rem;padding:1.5rem}.weekly-insights-card.collapsible{overflow:hidden;padding:0}.weekly-insights-toggle{align-items:center;background:linear-gradient(135deg,#fafafa,#f5f5f5);border:none;cursor:pointer;display:flex;gap:1rem;justify-content:space-between;padding:1.25rem 1.5rem;text-align:left;transition:all .2s;width:100%}.weekly-insights-toggle:hover{background:linear-gradient(135deg,#f3e8ff,#faf5ff)}.weekly-insights-toggle-content{align-items:center;display:flex;flex:1 1;gap:1rem}.weekly-insights-toggle-content svg{color:#7c3aed;flex-shrink:0}.weekly-insights-toggle-content h4{color:#1e293b;font-size:1rem;font-weight:700;margin:0 0 .25rem}.weekly-insights-toggle-content p{color:#64748b;font-size:.85rem;margin:0}.weekly-insights-toggle>svg{color:#7c3aed;flex-shrink:0}.weekly-insights-content{animation:slideDown .3s ease-out;border-top:2px solid #e2e8f0;padding:1.5rem}.overview-week-filter{background:#f1f5f9;border-radius:10px;display:flex;gap:.5rem;margin-bottom:1.5rem;padding:.25rem;width:-webkit-fit-content;width:fit-content}.overview-week-filter .filter-btn{background:#0000;border:none;border-radius:8px;color:#64748b;cursor:pointer;font-size:.875rem;font-weight:600;padding:.5rem 1rem;transition:all .2s}.overview-week-filter .filter-btn:hover{background:#7c3aed1a;color:#7c3aed}.overview-week-filter .filter-btn.active{background:#fff;box-shadow:0 2px 4px #0000001a;color:#7c3aed}.planner-link-btn{align-items:center;background:linear-gradient(135deg,#7c3aed,#6d28d9);border:none;border-radius:16px;box-shadow:0 4px 12px #7c3aed4d;cursor:pointer;display:flex;gap:1rem;margin-top:1.5rem;padding:1.25rem 1.5rem;transition:all .3s ease;width:100%}.planner-link-btn:hover{background:linear-gradient(135deg,#6d28d9,#5b21b6);box-shadow:0 8px 20px #7c3aed66;transform:translateY(-2px)}.planner-link-btn:active{transform:translateY(0)}.planner-link-btn>svg:first-child{color:#fff;flex-shrink:0}.planner-link-content{display:flex;flex:1 1;flex-direction:column;gap:.25rem;text-align:left}.planner-link-title{color:#fff;font-size:1rem;font-weight:700}.planner-link-desc{color:#ffffffe6;font-size:.85rem}.planner-link-btn>svg:last-child{color:#fff;flex-shrink:0;transition:transform .3s ease}.planner-link-btn:hover>svg:last-child{transform:translateX(4px)}@media (min-width:768px){.weekly-insights-card{margin-top:1rem;padding:2rem}}@media (min-width:1024px){.weekly-insights-card{margin-top:1.25rem;padding:2.5rem}}.weekly-insights-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.weekly-insights-title-section{align-items:center;display:flex;flex:1 1;gap:1rem;min-width:200px}.weekly-insights-title-section svg{color:#7c3aed;flex-shrink:0}.weekly-insights-title{flex:1 1}.weekly-insights-title h4{color:#1e293b;font-size:1.25rem;font-weight:700;margin:0 0 .25rem}.weekly-insights-title p{color:#64748b;font-size:.9rem;margin:0}.week-filter-toggle{background:#f1f5f9;border-radius:10px;display:flex;gap:.5rem;padding:.25rem}.week-filter-toggle .filter-btn{background:#0000;border:none;border-radius:8px;color:#64748b;cursor:pointer;font-size:.9rem;font-weight:600;padding:.5rem 1rem;transition:all .2s ease;white-space:nowrap}.week-filter-toggle .filter-btn:hover{background:#e2e8f0;color:#1e293b}.week-filter-toggle .filter-btn.active{background:#7c3aed;box-shadow:0 2px 8px #7c3aed4d;color:#fff}.insights-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}@media (min-width:768px){.insights-grid{gap:1.5rem;grid-template-columns:repeat(2,1fr)}}@media (min-width:1440px){.insights-grid{gap:1.5rem;grid-template-columns:repeat(3,1fr)}}.insight-section{background:#fff;border:2px solid #e2e8f0;border-radius:12px;padding:1.25rem;transition:all .2s ease}.insight-section:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.insight-section.peak-alternatives{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#f59e0b}.insight-section.early-bird{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#fbbf24}.insight-section.lunch-hour{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-color:#10b981}.insight-section.evening{background:linear-gradient(135deg,#eef2ff,#e0e7ff);border-color:#6366f1}.insight-section.best-hours{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-color:#10b981}.insight-section-header{align-items:center;display:flex;gap:.75rem;margin-bottom:.75rem}.insight-section-header svg{color:inherit;flex-shrink:0}.insight-section-header h5{color:#1e293b;font-size:1rem;font-weight:700;margin:0}.insight-description{color:#64748b;font-size:.85rem;line-height:1.4;margin:0 0 1rem}.insight-times{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.insight-time-chip{background:#fff;border:2px solid;border-radius:10px;display:flex;flex-direction:column;flex-shrink:0;gap:.5rem;padding:.75rem;transition:all .2s ease;width:100px}.insight-time-chip:hover{transform:scale(1.05)}.insight-time-chip.peak{border-color:#f59e0b}.insight-time-chip.early{border-color:#fbbf24}.insight-time-chip.lunch{border-color:#10b981}.insight-time-chip.evening{border-color:#6366f1}.insight-time-chip.best{border-color:#10b981}.chip-header{align-items:center;display:flex;justify-content:space-between}.chip-day{color:#64748b;text-transform:uppercase}.chip-capacity,.chip-day{font-size:.75rem;font-weight:700}.chip-capacity{color:#7c3aed}.chip-time{color:#1e293b;font-size:1.1rem;font-weight:800;text-align:center}.weekly-insights-footer{align-items:center;border-top:1px solid #e2e8f0;color:#64748b;display:flex;font-size:.9rem;gap:.75rem;margin-top:1.5rem;padding-top:1rem}.weekly-insights-footer svg{color:#7c3aed;flex-shrink:0}.planner-header{background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:16px;box-shadow:0 4px 16px #7c3aed33;color:#fff;margin-bottom:1.5rem;padding:1.5rem}.planner-title{align-items:center;display:flex;gap:1rem}.planner-title svg{flex-shrink:0}.planner-title h3{font-size:1.5rem;font-weight:700;margin:0}.planner-title p{font-size:.9rem;margin:.25rem 0 0;opacity:.9}.quick-presets-card{background:#fff;border:2px solid #e2e8f0;border-radius:16px;box-shadow:0 2px 8px #0000000d;margin-bottom:1.5rem;padding:1.5rem}.presets-header{align-items:center;display:flex;gap:.75rem;margin-bottom:1rem}.presets-header svg{color:#7c3aed}.presets-header h4{color:#1e293b;font-size:1.1rem;font-weight:700;margin:0}.presets-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(3,1fr)}.presets-grid .preset-btn:nth-child(4),.presets-grid .preset-btn:nth-child(5){grid-column:span 1.5}.presets-grid .preset-btn{min-height:80px;width:100%}.preset-btn{align-items:center;background:linear-gradient(135deg,#faf5ff,#f3e8ff);border:2px solid #e9d5ff;border-radius:10px;cursor:pointer;display:flex;gap:.75rem;padding:.875rem;text-align:left;transition:all .2s}.preset-btn:hover{background:linear-gradient(135deg,#f3e8ff,#e9d5ff);border-color:#7c3aed;box-shadow:0 4px 12px #7c3aed26;transform:translateY(-2px)}.preset-btn svg{color:#7c3aed;flex-shrink:0}.preset-info{display:flex;flex-direction:column;gap:.125rem}.preset-title{color:#1e293b;font-size:.9rem;font-weight:700}.preset-desc{color:#64748b;font-size:.75rem;font-weight:500}.planner-filters-card{background:#fff;border:2px solid #e2e8f0;border-radius:16px;box-shadow:0 2px 8px #0000000d;margin-bottom:1.5rem;overflow:hidden;padding:0}.customize-toggle{align-items:center;background:linear-gradient(135deg,#fafafa,#f5f5f5);border:none;cursor:pointer;display:flex;gap:1rem;justify-content:space-between;padding:1.25rem 1.5rem;text-align:left;transition:all .2s;width:100%}.customize-toggle:hover{background:linear-gradient(135deg,#f3e8ff,#faf5ff)}.customize-toggle-content{align-items:center;display:flex;flex:1 1;gap:1rem}.customize-toggle-content svg{color:#7c3aed;flex-shrink:0}.customize-toggle-content h4{color:#1e293b;font-size:1rem;font-weight:700;margin:0 0 .25rem}.customize-toggle-content p{color:#64748b;font-size:.85rem;margin:0}.customize-toggle>svg{color:#7c3aed;flex-shrink:0}.custom-filters-content{animation:slideDown .3s ease-out;border-top:2px solid #e2e8f0;padding:1.5rem}@keyframes slideDown{0%{max-height:0;opacity:0}to{max-height:2000px;opacity:1}}.filter-group{margin-bottom:1.5rem}.filter-group:last-child{margin-bottom:0}.filter-label{align-items:center;color:#64748b;display:flex;font-size:.9rem;font-weight:600;gap:.5rem;letter-spacing:.05em;margin-bottom:.75rem;text-transform:uppercase}.filter-label svg{color:#7c3aed}.filter-options{display:flex;flex-wrap:wrap;gap:.5rem}.filter-option{align-items:center;background:#f8fafc;border:2px solid #e2e8f0;border-radius:10px;color:#64748b;cursor:pointer;display:flex;flex:1 1;font-size:.9rem;font-weight:500;gap:.5rem;justify-content:center;min-width:-webkit-fit-content;min-width:fit-content;padding:.75rem 1rem;text-align:center;transition:all .2s}.filter-option svg{flex-shrink:0}.filter-option:hover{background:#faf5ff;border-color:#7c3aed;color:#7c3aed}.filter-option:hover svg{color:#7c3aed}.filter-option.active{background:linear-gradient(135deg,#7c3aed,#6d28d9);border-color:#7c3aed;box-shadow:0 4px 12px #7c3aed4d;color:#fff}.filter-option.active svg{color:#fff}.specific-days-selector{background:#f8fafc;border:2px solid #e2e8f0;border-radius:10px;display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;padding:1rem}.day-chip{background:#fff;border:2px solid #e2e8f0;border-radius:8px;color:#64748b;cursor:pointer;flex:1 1;font-size:.85rem;font-weight:600;min-width:70px;padding:.65rem .5rem;text-align:center;transition:all .2s}.day-chip:hover{background:#faf5ff;border-color:#7c3aed;color:#7c3aed}.day-chip.selected{background:#7c3aed;border-color:#7c3aed;box-shadow:0 2px 8px #7c3aed4d;color:#fff}.time-range-selector{background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;margin-top:1rem;padding:1.5rem}.time-range-display{align-items:center;background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:10px;color:#fff;display:flex;gap:1rem;justify-content:center;margin-bottom:1.5rem;padding:1rem}.range-label{font-size:.85rem;font-weight:600;opacity:.9}.range-value{background:#fff3;border-radius:8px;font-size:1.5rem;font-weight:800;padding:.25rem .75rem}.range-sliders{display:flex;flex-direction:column;gap:1.5rem}.range-slider-group{display:flex;flex-direction:column;gap:.75rem}.range-slider-group label{color:#64748b;font-size:.85rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.time-slider{-webkit-appearance:none;appearance:none;background:linear-gradient(90deg,#e2e8f0 0,#7c3aed 50%,#e2e8f0);border-radius:4px;cursor:pointer;height:8px;outline:none;width:100%}.time-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:linear-gradient(135deg,#7c3aed,#6d28d9);border:3px solid #fff;border-radius:50%;box-shadow:0 2px 8px #7c3aed66;cursor:pointer;height:24px;-webkit-transition:all .2s;transition:all .2s;width:24px}.time-slider::-webkit-slider-thumb:hover{box-shadow:0 4px 12px #7c3aed80;transform:scale(1.15)}.time-slider::-moz-range-thumb{background:linear-gradient(135deg,#7c3aed,#6d28d9);border:3px solid #fff;border-radius:50%;box-shadow:0 2px 8px #7c3aed66;cursor:pointer;height:24px;-moz-transition:all .2s;transition:all .2s;width:24px}.time-slider::-moz-range-thumb:hover{box-shadow:0 4px 12px #7c3aed80;transform:scale(1.15)}.slider-ticks{color:#94a3b8;display:flex;font-size:.75rem;font-weight:500;justify-content:space-between;margin-top:.5rem}.planner-summary{background:linear-gradient(135deg,#faf5ff,#f3e8ff);border:2px solid #e9d5ff;border-radius:10px;display:flex;gap:1rem;justify-content:space-around;margin-bottom:1rem;padding:.875rem 1rem}.summary-stat{align-items:center;display:flex;flex-direction:column;gap:.25rem;text-align:center}.stat-number{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#7c3aed,#6d28d9);-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:800;line-height:1}.stat-label{color:#64748b;font-size:.7rem;font-weight:600;letter-spacing:.05em;line-height:1.2;text-transform:uppercase}.planner-recommendations{background:#fff;border:2px solid #e2e8f0;border-radius:16px;box-shadow:0 2px 8px #0000000d;margin-bottom:1.5rem;padding:1.5rem}.planner-section-header{align-items:flex-start;border-bottom:2px solid #f1f5f9;display:flex;gap:.75rem;margin-bottom:1.25rem;padding-bottom:1rem}.planner-section-header svg{color:#7c3aed;flex-shrink:0;margin-top:.25rem}.planner-section-header h4{color:#1e293b;font-size:1.1rem;font-weight:700;margin:0}.planner-section-header p{color:#64748b;font-size:.85rem;margin:.25rem 0 0}.planner-times-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}.planner-time-card{align-items:center;background:linear-gradient(135deg,#faf5ff,#f3e8ff);border:2px solid #e9d5ff;border-radius:10px;display:flex;flex-direction:column;gap:.375rem;padding:.75rem .5rem;position:relative;transition:all .2s}.planner-time-card:hover{border-color:#7c3aed;box-shadow:0 8px 20px #7c3aed33;transform:translateY(-4px)}.planner-rank{align-items:center;border-radius:50%;box-shadow:0 2px 8px #7c3aed4d;display:flex;font-weight:700;height:22px;justify-content:center;position:absolute;right:.375rem;top:.375rem;width:22px}.planner-day-badge,.planner-rank{background:#7c3aed;color:#fff;font-size:.7rem}.planner-day-badge{border-radius:5px;font-weight:600;letter-spacing:.02em;padding:.25rem .5rem;text-transform:uppercase}.planner-time{color:#1e293b;font-size:1.25rem;font-weight:800;line-height:1;margin:0}.planner-capacity-bar{background:#f1f5f9;border-radius:2.5px;height:5px;margin:.125rem 0;overflow:hidden;width:100%}.planner-capacity-fill{border-radius:2.5px;height:100%;transition:width .3s ease}.planner-capacity-text{color:#64748b;font-size:.75rem;font-weight:600}.planner-by-day{background:#fff;border:2px solid #e2e8f0;border-radius:16px;box-shadow:0 2px 8px #0000000d;margin-bottom:1.5rem;padding:1.5rem}.planner-day-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.planner-day-card{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:2px solid #e2e8f0;border-radius:12px;padding:1rem;transition:all .2s}.planner-day-card:hover{border-color:#7c3aed;box-shadow:0 4px 12px #7c3aed1a}.planner-day-header{align-items:center;border-bottom:2px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:.75rem;padding-bottom:.75rem}.planner-day-name{color:#1e293b;font-size:1rem;font-weight:700}.planner-day-count{background:#f1f5f9;border-radius:6px;color:#64748b;font-size:.8rem;font-weight:600;padding:.25rem .5rem}.planner-day-times{display:flex;flex-direction:column;gap:.5rem}.planner-mini-chip{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;display:flex;justify-content:space-between;padding:.5rem .75rem;transition:all .2s}.planner-mini-chip:hover{border-color:#7c3aed;box-shadow:0 2px 8px #7c3aed1a}.mini-chip-time{color:#1e293b;font-size:.9rem;font-weight:600}.mini-chip-capacity{background:#d1fae5;border-radius:6px;color:#10b981;font-size:.8rem;font-weight:600;padding:.2rem .5rem}.planner-tips{background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #fbbf24;border-radius:16px;display:flex;gap:1rem;padding:1.5rem}.tip-icon{align-items:center;color:#f59e0b;display:flex;flex-shrink:0;justify-content:center}.tip-content h5{color:#92400e;font-size:1.1rem;font-weight:700;margin:0 0 .75rem}.tip-content ul{list-style:none;margin:0;padding-left:1.25rem}.tip-content li{color:#78350f;font-size:.9rem;margin-bottom:.5rem;padding-left:.5rem;position:relative}.tip-content li:before{color:#f59e0b;content:"→";font-weight:700;left:-1rem;position:absolute}.tip-content li:last-child{margin-bottom:0}.planner-no-results{align-items:center;background:#fff;border:2px dashed #e2e8f0;display:flex;flex-direction:column;gap:1rem;padding:2rem;text-align:center}.planner-no-results svg{color:#94a3b8;opacity:.5}.planner-no-results h4{color:#64748b;font-size:1.25rem;font-weight:700;margin:0}.planner-no-results p{color:#94a3b8;font-size:.95rem;margin:0}.planner-suggestions{background:#fff;border:2px solid #e2e8f0;border-radius:16px;box-shadow:0 2px 8px #0000000d;margin-top:1.5rem;padding:1.5rem}.suggestions-header{align-items:center;display:flex;gap:.75rem;margin-bottom:1rem}.suggestions-header svg{color:#7c3aed}.suggestions-header h5{color:#1e293b;font-size:1rem;font-weight:700;margin:0}.alternatives-list{margin-top:0;width:100%}.alternative-item{background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #fbbf24;border-radius:10px;text-align:left;transition:all .2s}.alternative-item:hover{border-color:#f59e0b;box-shadow:0 4px 12px #fbbf2433;transform:translateX(4px)}.alternative-item svg{color:#f59e0b}.alternative-content{align-items:center;gap:1rem;justify-content:space-between}.alternative-text{color:#78350f;font-size:.9rem}.alternative-count{background:#fff;border-radius:6px;color:#f59e0b;font-weight:700;padding:.25rem .75rem;white-space:nowrap}.no-alternatives{color:#94a3b8;font-size:.9rem;font-style:italic;margin-top:.5rem}@media (min-width:1024px){.preferences-modal-overlay{align-items:center;justify-content:center}.preferences-modal{border-radius:20px;box-shadow:0 20px 60px #0000004d;height:90%;max-height:700px;max-width:800px;width:90%}.preferences-modal-header{padding:2rem}.preferences-modal-title h3{font-size:1.5rem}.preferences-modal-title p{font-size:1rem}.preferences-modal-content{padding:2rem}}@media (min-width:1440px){.preferences-modal{max-height:800px;max-width:900px}.preferences-modal-content,.preferences-modal-header{padding:2.5rem}}@media (max-width:768px){.presets-grid{grid-template-columns:1fr}.preset-btn{padding:1rem}.alternatives-list{gap:.5rem}.alternative-item{padding:.875rem}.alternative-content{align-items:flex-start;flex-direction:column;gap:.5rem}.planner-header{padding:1.25rem}.planner-title h3{font-size:1.25rem}.planner-title p{font-size:.85rem}.planner-filters-card{padding:1.25rem}.planner-filters-card h4{font-size:1.1rem}.filter-options{flex-direction:column}.filter-option{width:100%}.planner-summary{flex-direction:column;gap:.5rem;padding:.75rem}.summary-stat{background:#fff;border-radius:6px;flex-direction:row;justify-content:space-between;padding:.5rem;width:100%}.stat-number{font-size:1.25rem}.stat-label{font-size:.65rem;text-align:left}.planner-times-grid{gap:.5rem;grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.planner-time-card{gap:.25rem;padding:.625rem .5rem}.planner-rank{font-size:.65rem;height:20px;right:.25rem;top:.25rem;width:20px}.planner-day-badge{font-size:.65rem;padding:.2rem .4rem}.planner-time{font-size:1.1rem}.planner-capacity-bar{height:4px}.planner-capacity-text{font-size:.7rem}.planner-day-grid{grid-template-columns:1fr}.planner-tips{gap:.75rem;padding:1.25rem}.tip-icon svg{height:28px;width:28px}.tip-content h5{font-size:1rem}.tip-content li{font-size:.85rem}.specific-days-selector{gap:.375rem;padding:.75rem}.day-chip{font-size:.8rem;min-width:60px;padding:.5rem .375rem}.time-range-selector{padding:1rem}.time-range-display{flex-wrap:wrap;gap:.5rem;padding:.875rem}.range-value{font-size:1.25rem}.range-sliders{gap:1.25rem}.weekly-insights-card{margin-top:.75rem;padding:1rem}.weekly-insights-header{margin-bottom:1rem}.weekly-insights-title-section{flex:1 1 100%}.weekly-insights-title h4{font-size:1.1rem}.weekly-insights-title p{font-size:.85rem}.week-filter-toggle{flex:1 1 100%;justify-content:center}.week-filter-toggle .filter-btn{flex:1 1;font-size:.85rem;padding:.5rem .75rem}.insights-grid{gap:.75rem;grid-template-columns:1fr}.insight-section{padding:1rem}.insight-section-header h5{font-size:.9rem}.insight-description{font-size:.8rem}.insight-times{gap:.5rem;justify-content:center}.insight-time-chip{padding:.6rem;width:90px}.chip-time{font-size:1rem}.weekly-insights-footer{font-size:.85rem}}.next-best-times-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 8px #0000000a;margin-top:1.5rem;padding:1rem}.next-best-times-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem}.next-best-times-header svg{color:#7c3aed;flex-shrink:0;height:20px;width:20px}.next-best-times-header h4{color:#1e293b;font-size:1rem;font-weight:700;margin:0 0 .15rem}.next-best-times-header p{color:#64748b;font-size:.75rem;margin:0}.next-times-chips{flex-wrap:wrap}.next-times-chips,.no-recommendations-message{display:flex;gap:.75rem;justify-content:center}.no-recommendations-message{align-items:center;flex-direction:column;padding:2rem 1rem;text-align:center}.no-recommendations-message svg{color:#94a3b8;opacity:.5}.no-recommendations-message p{color:#64748b;font-size:.95rem;font-weight:600;margin:0}.no-recommendations-message span{color:#94a3b8;font-size:.8rem}.view-week-btn{align-items:center;background:linear-gradient(135deg,#7c3aed,#6d28d9);border:none;border-radius:16px;box-shadow:0 4px 12px #7c3aed4d;color:#fff;cursor:pointer;display:flex;font-size:.95rem;font-weight:700;gap:.75rem;justify-content:center;margin-top:1rem;padding:1rem 1.25rem;text-align:center;transition:all .3s ease}.view-week-btn:hover{background:linear-gradient(135deg,#6d28d9,#5b21b6);box-shadow:0 8px 20px #7c3aed66;transform:translateY(-2px)}.view-week-btn:active{transform:translateY(0)}.view-week-btn>svg:first-child{color:#fff;flex-shrink:0}.view-week-btn>svg:last-child{color:#fff;flex-shrink:0;transition:transform .3s ease}.view-week-btn:hover>svg:last-child{transform:translateX(4px)}@media (max-width:768px){.next-best-times-card{margin-top:.75rem;padding:.875rem}.next-best-times-header{gap:.6rem;margin-bottom:.75rem;padding-bottom:.6rem}.next-best-times-header svg{height:18px;width:18px}.next-best-times-header h4{font-size:.95rem}.next-best-times-header p{font-size:.7rem}.next-times-chips{gap:.6rem}.no-recommendations-message{padding:1.5rem .75rem}.no-recommendations-message svg{height:40px;width:40px}}.traffic-section{display:flex;flex-direction:column;gap:1rem}.traffic-sub-tabs{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;display:flex;gap:.5rem;padding:.5rem}.traffic-sub-tab{align-items:center;background:#0000;border:none;border-radius:10px;color:#64748b;cursor:pointer;display:flex;flex:1 1;font-size:.9rem;font-weight:600;gap:.5rem;justify-content:center;padding:.75rem 1rem;transition:all .2s ease}.traffic-sub-tab:hover{background:#7c3aed1a;color:#7c3aed}.traffic-sub-tab.active{background:#7c3aed;box-shadow:0 2px 8px #7c3aed4d;color:#fff}.traffic-sub-tab svg{flex-shrink:0}.traffic-summary-card{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 12px #0000000d;display:flex;gap:1rem;padding:1.25rem}.traffic-summary-icon{align-items:center;background:#7c3aed;border-radius:12px;color:#fff;display:flex;flex-shrink:0;height:56px;justify-content:center;width:56px}.traffic-summary-icon.hazard{background:#ef4444}.traffic-summary-content{flex:1 1}.traffic-summary-content h4{color:#1e293b;font-size:1.2rem;font-weight:700;margin:0 0 .25rem}.traffic-summary-content p{color:#64748b;font-size:.9rem;margin:0}.traffic-summary-badge{align-items:center;background:#7c3aed;border-radius:50%;box-shadow:0 2px 8px #7c3aed4d;color:#fff;display:flex;flex-shrink:0;font-size:1.3rem;font-weight:800;height:48px;justify-content:center;width:48px}.traffic-summary-badge.hazard{background:#ef4444;box-shadow:0 2px 8px #ef44444d}.traffic-loading-modern{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 12px #0000000d;color:#64748b;display:flex;flex-direction:column;justify-content:center;padding:3rem 1rem}.loading-spinner{animation:pulse 2s infinite;color:#7c3aed;margin-bottom:1rem}.cameras-grid-modern{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width:768px){.cameras-grid-modern{gap:1.5rem;grid-template-columns:repeat(2,1fr)}}@media (min-width:1440px){.cameras-grid-modern{gap:1.5rem;grid-template-columns:repeat(3,1fr)}}.camera-card-modern{background:#f8fafc;border:2px solid #e2e8f0;border-radius:16px;overflow:hidden;transition:all .3s ease;width:100%}.camera-card-modern:hover{border-color:#7c3aed;box-shadow:0 8px 24px #0000001a;transform:translateY(-2px)}.camera-image-wrapper{background:#1e293b;height:250px;overflow:hidden;position:relative;width:100%}.camera-feed-image{height:100%;object-fit:cover;width:100%}.camera-feed-error,.camera-feed-loading{align-items:center;color:#94a3b8;display:flex;flex-direction:column;height:100%;justify-content:center}.camera-feed-error svg,.camera-feed-loading svg{margin-bottom:.5rem}.live-indicator-badge{align-items:center;background:#ef4444;border-radius:20px;box-shadow:0 2px 8px #ef444466;color:#fff;display:flex;font-size:.75rem;font-weight:700;gap:.4rem;padding:.35rem .75rem;position:absolute;right:1rem;top:1rem}.live-dot{animation:blink 1.5s infinite;background:#fff;border-radius:50%;height:8px;width:8px}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.camera-info-modern{padding:1.25rem}.camera-name{color:#1e293b;font-size:1.1rem;font-weight:700;line-height:1.3;margin:0 0 .75rem}.camera-meta{display:flex;gap:1rem;margin-bottom:1rem}.camera-meta-item{align-items:center;color:#64748b;display:flex;font-size:.85rem;font-weight:600;gap:.4rem}.camera-meta-item svg{color:#7c3aed}.view-feed-button{align-items:center;background:#7c3aed;border:none;border-radius:10px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:700;gap:.5rem;justify-content:center;padding:.75rem;transition:all .2s ease;width:100%}.view-feed-button:hover{background:#6d28d9;box-shadow:0 4px 12px #7c3aed4d;transform:translateY(-1px)}.no-traffic-data{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 12px #0000000d;display:flex;flex-direction:column;justify-content:center;padding:3rem 1rem;text-align:center}.no-data-icon{color:#94a3b8;margin-bottom:1rem}.no-data-icon.success{color:#10b981}.no-traffic-data h4{color:#1e293b;font-size:1.2rem;font-weight:700;margin:0 0 .5rem}.no-traffic-data p{color:#64748b;font-size:.95rem;margin:0}.hazards-grid-modern{display:flex;flex-direction:column;gap:1rem}.hazard-card-modern{background:#fff;border:2px solid #e2e8f0;border-radius:16px;padding:1.25rem;transition:all .3s ease;width:100%}.hazard-card-modern:hover{border-color:#ef4444;box-shadow:0 8px 24px #0000001a;transform:translateY(-2px)}.hazard-card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.hazard-severity-badge{border-radius:20px;font-size:.75rem;font-weight:700;letter-spacing:.5px;padding:.35rem .75rem;text-transform:uppercase}.hazard-severity-badge.high{background:#fecaca;color:#991b1b}.hazard-severity-badge.medium{background:#fed7aa;color:#9a3412}.hazard-severity-badge.low{background:#fef08a;color:#854d0e}.hazard-distance-badge{background:#f1f5f9;border-radius:20px;color:#475569;font-size:.85rem;font-weight:700;padding:.35rem .75rem}.hazard-title{color:#1e293b;font-size:1.1rem;font-weight:700;line-height:1.3;margin:0 0 .5rem}.hazard-description{color:#64748b;font-size:.95rem;line-height:1.5;margin:0 0 1rem}.hazard-info-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr 1fr;margin-bottom:1rem}.hazard-info-item{align-items:center;color:#475569;display:flex;font-size:.85rem;font-weight:600;gap:.5rem}.hazard-info-item svg{color:#7c3aed;flex-shrink:0}.hazard-status-badge{border-radius:10px;display:inline-block;font-size:.85rem;font-weight:700;padding:.5rem 1rem;text-transform:capitalize}.hazard-status-badge.active{background:#fecaca;color:#991b1b}.hazard-status-badge.resolved{background:#d1fae5;color:#065f46}.hazard-status-badge.monitoring{background:#fed7aa;color:#9a3412}@media (max-width:768px){.traffic-section{gap:.75rem}.traffic-sub-tabs{gap:.4rem;padding:.4rem}.traffic-sub-tab{font-size:.85rem;padding:.6rem .75rem}.traffic-sub-tab svg{height:14px;width:14px}.traffic-summary-card{padding:1rem}.traffic-summary-icon{height:48px;width:48px}.traffic-summary-icon svg{height:20px;width:20px}.traffic-summary-content h4{font-size:1.1rem}.traffic-summary-content p{font-size:.85rem}.traffic-summary-badge{font-size:1.1rem;height:40px;width:40px}.traffic-header-modern{gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem}.traffic-header-icon{height:40px;width:40px}.traffic-header-icon svg{height:20px;width:20px}.traffic-header-content h3{font-size:1.1rem}.traffic-header-content p{font-size:.85rem}.camera-count-badge,.hazard-count-badge{font-size:1rem;height:36px;width:36px}.camera-image-wrapper{height:200px}.camera-info-modern{padding:1rem}.camera-name{font-size:1rem}.camera-meta{flex-direction:column;gap:.5rem}.hazard-info-grid{gap:.5rem;grid-template-columns:1fr}.hazard-title{font-size:1rem}.hazard-description{font-size:.9rem}}.parking-detail-modal-overlay{align-items:flex-end;background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.parking-detail-modal{background:#fff;border-radius:20px 20px 0 0;box-shadow:0 -10px 30px #0000004d;display:flex;flex-direction:column;max-height:90vh;overflow:hidden;width:100%}.parking-detail-modal.fullscreen{height:100vh;max-height:100vh}.parking-modal-header{align-items:center;background:#7c3aed;box-shadow:0 2px 8px #0000001a;color:#fff;gap:1rem;padding:1.5rem;position:-webkit-sticky;position:sticky;top:0;z-index:10}.parking-modal-header h3{font-size:1.3rem;font-weight:700;line-height:1.3;margin:0}.parking-modal-close{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:36px;justify-content:center;transition:all .2s ease;width:36px}.parking-modal-close:hover{background:#ffffff4d;transform:scale(1.1)}.parking-modal-content{overflow-x:visible;padding:1.5rem}.parking-modal-type{margin-bottom:1.5rem}.type-badge-modal{border-radius:20px;display:inline-block;font-size:.9rem;font-weight:700;padding:.5rem 1rem;text-transform:capitalize}.type-badge-modal.carpark{background:#ede9fe;color:#7c3aed}.type-badge-modal.street{background:#d1fae5;color:#059669}.parking-modal-details{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;padding-bottom:4px}.detail-item{align-items:center;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:2px solid #e2e8f0;border-radius:16px;display:flex;flex-direction:column;gap:.75rem;justify-content:center;padding:1.5rem;text-align:center;transition:all .2s ease}.detail-item:hover{border-color:#7c3aed;transform:scale(1.02)}.detail-item svg{color:#7c3aed;flex-shrink:0;height:28px;width:28px}.detail-item>div{align-items:center;display:flex;flex-direction:column;gap:.5rem;width:100%}.detail-label{color:#64748b;font-size:.75rem;letter-spacing:.8px;text-transform:uppercase}.detail-value{color:#1e293b;font-size:1.5rem;font-weight:800}.parking-modal-notes{background:#fef3c7;border:2px solid #fbbf24;border-radius:12px;display:flex;gap:.75rem;margin-bottom:1.5rem;padding:1rem}.parking-modal-notes svg{color:#f59e0b;flex-shrink:0;margin-top:.25rem}.parking-modal-notes p{color:#92400e;font-size:.9rem;line-height:1.5;margin:0}.parking-modal-actions{display:flex;flex-direction:column;gap:.75rem}.parking-modal-button{align-items:center;border:none;border-radius:14px;cursor:pointer;display:flex;font-size:1rem;font-weight:700;gap:.75rem;justify-content:center;padding:1rem;text-decoration:none;transition:all .2s ease}.parking-modal-button.book{background:linear-gradient(135deg,#7c3aed,#6d28d9);box-shadow:0 4px 16px #7c3aed4d;color:#fff}.parking-modal-button.book:hover{box-shadow:0 8px 24px #7c3aed66;transform:translateY(-3px)}.parking-modal-button.directions{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 16px #10b9814d;color:#fff}.parking-modal-button.directions:hover{box-shadow:0 8px 24px #10b98166;transform:translateY(-3px)}@media (min-width:768px){.parking-detail-modal-overlay{align-items:center}.parking-detail-modal{border-radius:20px;max-height:85vh;max-width:600px}.parking-detail-modal.fullscreen{height:auto;max-height:85vh;max-width:600px}}@media (min-width:1024px){.parking-detail-modal,.parking-detail-modal.fullscreen{max-width:700px}}@media (max-width:768px){.parking-detail-modal{border-radius:20px 20px 0 0;margin:0;max-width:100%}.parking-detail-modal.fullscreen{border-radius:0}.parking-modal-header{padding:1.25rem}.parking-modal-header h3{font-size:1.1rem}.parking-modal-content{padding:1.25rem}.detail-item{padding:1rem}.detail-item svg{height:24px;width:24px}.detail-value{font-size:1.3rem}.parking-modal-button{font-size:.95rem;padding:.875rem}}.parking-sub-tabs{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;display:flex;gap:.5rem;margin-bottom:1rem;padding:.5rem}.parking-sub-tab{align-items:center;background:#0000;border:none;border-radius:8px;color:#64748b;cursor:pointer;display:flex;flex:1 1;font-size:.9rem;font-weight:600;gap:.5rem;justify-content:center;padding:.75rem 1rem;text-align:center;transition:all .2s ease}.parking-sub-tab:hover{background:#e2e8f0;color:#475569}.parking-sub-tab.active{background:#7c3aed;box-shadow:0 2px 8px #7c3aed4d;color:#fff}.parking-sub-tab svg{flex-shrink:0}.parking-map-container{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 12px #0000000d;padding:1.5rem}.parking-map-legend{background:#f8fafc;border-radius:8px;display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center;margin-bottom:1rem;padding:1rem}.legend-item{gap:.5rem}.legend-icon,.legend-item{align-items:center;display:flex}.legend-icon{border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px #0003;color:#fff;font-size:14px;font-weight:700;height:28px;justify-content:center;width:28px}.legend-item span{color:#374151;font-size:.85rem;font-weight:500}.parking-map-summary{background:#e0f2fe;border:1px solid #bae6fd;border-radius:8px;margin-top:1rem;padding:.75rem;text-align:center}.parking-map-summary p{color:#0369a1;font-size:.9rem;font-weight:600;margin:0}.parking-popup{min-width:200px}.parking-popup strong{color:#1e293b;display:block;font-size:1rem;margin-bottom:.5rem}.parking-type{background:#7c3aed;border-radius:12px;color:#fff;display:inline-block;font-size:.75rem;font-weight:600;margin-bottom:.75rem;padding:.25rem .75rem}.parking-popup-details{margin:.75rem 0}.parking-popup-details p{color:#475569;font-size:.85rem;margin:.25rem 0}.popup-booking-link{background:#7c3aed;border-radius:6px;color:#fff;display:inline-block;font-size:.85rem;font-weight:600;margin-top:.5rem;padding:.5rem 1rem;text-decoration:none;transition:all .2s ease}.popup-booking-link:hover{background:#6d28d9;transform:translateY(-1px)}.parking-notes{border-top:1px solid #e2e8f0;color:#64748b;font-size:.8rem;font-style:italic;margin-top:.75rem;padding-top:.75rem}@media (max-width:768px){.parking-map-container{padding:1rem}.parking-map-legend{gap:1rem}.legend-icon{font-size:12px;height:24px;width:24px}.legend-item span{font-size:.8rem}.parking-table-container,.street-parking-table-container{margin-bottom:1.5rem;padding:1rem}.parking-table-container h4,.street-parking-table-container h4{font-size:1.1rem}.parking-table-note,.street-parking-table-note{font-size:.85rem;margin-bottom:1rem;padding:.5rem}.parking-table-wrapper,.street-parking-table-wrapper{border-radius:8px;margin:0 -.25rem;padding:0 .25rem}.parking-table,.street-parking-table{font-size:.75rem;min-width:700px}.parking-table td,.parking-table th,.street-parking-table td,.street-parking-table th{padding:.75rem .5rem;white-space:nowrap}.rank-cell{min-width:50px;width:50px}.name-cell{min-width:120px}.type-cell{min-width:80px}.distance-cell,.walk-time-cell{min-width:60px}.busyness-cell,.search-time-cell{min-width:80px}.cost-cell{min-width:60px}.booking-cell{min-width:70px}.notes-cell{max-width:150px;min-width:120px}.time-limits-cell{font-size:.7rem;min-width:70px}.busyness-badge,.rank-badge,.search-time-badge,.street-badge,.type-badge{border-radius:8px;font-size:.7rem;padding:.2rem .4rem}.get-parking-btn,.refresh-parking-btn{font-size:.9rem;min-width:100%;padding:.875rem 1.5rem}.parking-summary{margin-bottom:1.5rem;padding:1rem}.parking-summary h4{font-size:1rem}.parking-table-wrapper:after,.street-parking-table-wrapper:after{background:#f8f9fa;border-top:1px solid #e5e7eb;color:#6b7280;content:"← Scroll →";display:block;font-size:.8rem;font-style:italic;padding:.5rem;text-align:center}}@media (max-width:480px){.parking-table-container,.street-parking-table-container{padding:.75rem}.parking-table,.street-parking-table{font-size:.7rem;min-width:600px}.parking-table td,.parking-table th,.street-parking-table td,.street-parking-table th{padding:.5rem .25rem}.rank-cell{min-width:40px;width:40px}.name-cell{min-width:100px}.type-cell{min-width:70px}.distance-cell,.walk-time-cell{min-width:50px}.busyness-cell,.search-time-cell{min-width:70px}.cost-cell{min-width:50px}.booking-cell{min-width:60px}.notes-cell{max-width:120px;min-width:100px}}.parking-table tbody tr{transition:all .2s ease}.parking-table tbody tr:hover{background:linear-gradient(135deg,#f8fafc,#f1f5f9);box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.busyness-badge,.rank-badge,.search-time-badge,.type-badge{transition:all .2s ease}.busyness-badge:hover,.rank-badge:hover,.search-time-badge:hover,.type-badge:hover{box-shadow:0 2px 8px #0003;transform:scale(1.05)}.get-parking-btn,.refresh-parking-btn{overflow:hidden;position:relative}.get-parking-btn:before,.refresh-parking-btn:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.get-parking-btn:hover:before,.refresh-parking-btn:hover:before{left:100%}.parking-table th{min-width:-webkit-fit-content;min-width:fit-content;position:relative;white-space:nowrap}.parking-table th:after{background:linear-gradient(90deg,#667eea,#764ba2);bottom:0;content:"";height:2px;left:0;opacity:0;position:absolute;right:0;transition:opacity .3s ease}.parking-table th:hover:after{opacity:1}.parking-table td{max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parking-table .notes-cell{word-wrap:break-word;max-width:200px;white-space:normal}.parking-section .section-divider{background:linear-gradient(90deg,#0000,#e5e7eb,#0000);height:1px;margin:2rem 0}.parking-section .info-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 8px #0000000d;margin-bottom:1.5rem;padding:1.5rem;transition:all .2s ease}.parking-section .info-card:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-1px)}.parking-section .info-card h4{align-items:center;color:#333;display:flex;font-size:1.1rem;font-weight:600;gap:.5rem;margin:0 0 1rem}.parking-section .info-card p{color:#666;line-height:1.6;margin:0}.parking-section .loading-state{color:#6b7280;padding:3rem 1rem;text-align:center}.parking-section .loading-state svg{animation:spin 1s linear infinite;color:#667eea;margin-bottom:1rem}.parking-section .empty-state{background:#f9fafb;border:2px dashed #d1d5db;border-radius:12px;color:#6b7280;padding:3rem 1rem;text-align:center}.parking-section .empty-state svg{color:#9ca3af;margin-bottom:1rem;opacity:.5}.parking-section .empty-state h4{color:#374151;font-weight:600;margin:0 0 .5rem}.parking-section .empty-state p{color:#6b7280;margin:.25rem 0}.powered-by-section{animation:fadeInUp .6s ease-out;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:12px;margin-top:20px;padding:16px;position:relative;text-align:center}.powered-by-section:before{background:linear-gradient(90deg,#667eea,#764ba2);border-radius:1px;content:"";height:2px;left:50%;position:absolute;top:-1px;transform:translateX(-50%);width:60px}.powered-by-content{align-items:center;display:flex;flex-direction:row;gap:8px;justify-content:center}.powered-by-text{color:#64748b;font-size:.75rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.logo-container,.logo-item{align-items:center;display:flex;gap:8px}.logo-item{background:#0000;border:none;border-radius:0;box-shadow:none;padding:0;transition:all .3s ease}.logo-item:hover{border-color:#e2e8f0;box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.logo-item:active{transform:translateY(0);transition:transform .1s ease}.nsw-logo{height:24px;object-fit:contain;width:24px}.transport-nsw-text{color:#667eea;font-size:.875rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}@media (max-width:768px){.powered-by-section{margin-top:1.5rem;padding:1rem}.logo-container{flex-direction:column;gap:1rem}.logo-item{padding:.75rem}.nsw-logo{height:40px;max-width:120px}.powered-by-text{font-size:.8rem}.transport-nsw-text{font-size:.9rem}}@media (max-width:480px){.powered-by-section{margin-top:1rem;padding:.75rem}.logo-container{gap:.75rem}.logo-item{padding:.5rem}.nsw-logo{height:35px;max-width:100px}}.park-ride-marker-container{background:#0000}.park-ride-marker{transition:all .3s ease}.park-ride-marker:hover{box-shadow:0 4px 16px #3b82f666!important;transform:scale(1.1)}.custom-marker-container{background:#0000}.custom-marker{transition:all .3s ease}.custom-marker:hover{box-shadow:0 4px 16px #0006!important;transform:scale(1.1)}.parking-table-wrapper.scroll-start:before{background:linear-gradient(90deg,#10b981,#059669)}.parking-table-wrapper.scroll-end:before{background:linear-gradient(90deg,#ef4444,#dc2626)}.parking-table-wrapper .scroll-shadow-right{background:linear-gradient(90deg,#0000,#fffc);content:"";height:100%;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .3s ease;width:20px;z-index:1}.parking-table-wrapper.has-overflow .scroll-shadow-right{opacity:1}.bicycle-parking-modal-backdrop{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:10001}.bicycle-parking-modal{animation:modalSlideIn .3s ease-out;background:#fff;border:1px solid #0000001a;border-radius:20px;box-shadow:0 25px 50px #00000040;display:flex;flex-direction:column;max-height:90vh;max-width:450px;overflow:hidden;width:100%}.bicycle-parking-modal .modal-header{align-items:center;background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;display:flex;justify-content:space-between;padding:20px 24px}.bicycle-parking-modal .modal-title{font-size:20px;font-weight:600;margin:0}.bicycle-parking-modal .modal-close-button{-webkit-tap-highlight-color:transparent;align-items:center;background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:40px;justify-content:center;min-height:40px;padding:8px;touch-action:manipulation;transition:background-color .2s;width:40px}.bicycle-parking-modal .modal-close-button:hover{background-color:#fff3}.bicycle-parking-modal .modal-content{-webkit-overflow-scrolling:touch;display:flex;flex:1 1;flex-direction:column;gap:20px;overflow-y:auto;padding:24px}.bicycle-parking-modal .location-details{display:flex;flex-direction:column;gap:16px}.bicycle-parking-modal .detail-row{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:12px 0}.bicycle-parking-modal .detail-row:last-child{border-bottom:none}.bicycle-parking-modal .detail-label{color:#666;font-size:14px;font-weight:600}.bicycle-parking-modal .detail-value{color:#333;font-size:14px;max-width:200px;text-align:right;word-break:break-word}.bicycle-parking-modal .modal-actions{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.bicycle-parking-modal .directions-button{-webkit-tap-highlight-color:transparent;align-items:center;background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:8px;box-shadow:0 4px 12px #7c3aed4d;color:#fff;display:flex;font-size:14px;font-weight:600;gap:8px;min-height:44px;padding:12px 24px;text-decoration:none;touch-action:manipulation;transition:all .2s}.bicycle-parking-modal .directions-button:hover{box-shadow:0 6px 16px #7c3aed66;transform:translateY(-2px)}.bicycle-parking-modal .directions-button:active{transform:translateY(0)}.bicycle-parking-modal .streetview-button{-webkit-tap-highlight-color:transparent;align-items:center;background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-radius:8px;box-shadow:0 4px 12px #8b5cf64d;color:#fff;display:flex;font-size:14px;font-weight:600;gap:8px;min-height:44px;padding:12px 24px;text-decoration:none;touch-action:manipulation;transition:all .2s}.bicycle-parking-modal .streetview-button:hover{box-shadow:0 6px 16px #8b5cf666;transform:translateY(-2px)}.bicycle-parking-modal .streetview-button:active{transform:translateY(0)}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.powered-by-sydney-card{animation:fadeInUp .6s ease-out;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:12px;margin-top:20px;padding:16px;position:relative;text-align:center}.powered-by-sydney-card:before{background:linear-gradient(90deg,#1e40af,#3b82f6);border-radius:1px;content:"";height:2px;left:50%;position:absolute;top:-1px;transform:translateX(-50%);width:60px}.powered-by-sydney-card .powered-by-content{align-items:center;display:flex;flex-direction:column;gap:8px}.powered-by-sydney-card .powered-by-text{color:#64748b;font-size:.75rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.powered-by-sydney-card .city-of-sydney-logo{align-items:center;background:#fff;border:1px solid #f1f5f9;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;gap:8px;padding:8px 16px}.powered-by-sydney-card .city-logo-image{filter:brightness(0) saturate(100%) invert(0) sepia(0) saturate(0) hue-rotate(0deg) brightness(0) contrast(100%);height:24px;object-fit:contain;width:24px}.powered-by-sydney-card .city-name{color:#1e40af;font-size:.875rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.bicycle-parking-marker-container{background:#0000;border:none}.bicycle-parking-marker{-webkit-tap-highlight-color:transparent;align-items:center;background:linear-gradient(135deg,#4caf50,#45a049);border:3px solid #fff;border-radius:50%;box-shadow:0 4px 12px #4caf5066;color:#fff;cursor:pointer;display:flex;font-size:18px;height:36px;justify-content:center;line-height:1;overflow:hidden;position:relative;text-align:center;transition:all .3s ease;user-select:none;-webkit-user-select:none;width:36px}.bicycle-parking-marker:hover{box-shadow:0 6px 16px #4caf5080;transform:scale(1.15)}.bicycle-parking-marker:active{transform:scale(.95);transition:all .1s ease}.bicycle-parking-marker .marker-pulse{animation:pulse 2s infinite;background:#4caf504d;border-radius:50%;height:100%;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%) scale(0);width:100%}@keyframes pulse{0%{opacity:1;transform:translate(-50%,-50%) scale(0)}to{opacity:0;transform:translate(-50%,-50%) scale(1.5)}}@media (max-width:768px){.bicycle-parking-marker{border-width:2px;font-size:16px;height:32px;width:32px}.bicycle-parking-marker:hover{transform:scale(1.1)}.bicycle-parking-marker .marker-pulse{animation:pulse 1.5s infinite}}@media (max-width:480px){.bicycle-parking-marker{border-width:2px;font-size:14px;height:28px;width:28px}}@media (max-width:768px){.bicycle-parking-modal-backdrop{padding:16px}.bicycle-parking-modal{border-radius:16px;max-height:90vh;max-width:100%}.bicycle-parking-modal .modal-header{padding:16px 20px}.bicycle-parking-modal .modal-content{gap:16px;padding:20px}.bicycle-parking-modal .detail-row{padding:10px 0}.bicycle-parking-modal .detail-label,.bicycle-parking-modal .detail-value{font-size:13px}.bicycle-parking-modal .modal-actions{flex-direction:column;gap:8px}.bicycle-parking-modal .directions-button,.bicycle-parking-modal .streetview-button{font-size:14px;justify-content:center;padding:12px 24px;width:100%}}@media (max-width:480px){.bicycle-parking-modal-backdrop{padding:12px}.bicycle-parking-modal{border-radius:12px;max-height:95vh}.bicycle-parking-modal .modal-header{padding:14px 16px}.bicycle-parking-modal .modal-content{gap:14px;padding:16px}.bicycle-parking-modal .detail-row{padding:8px 0}.bicycle-parking-modal .detail-label,.bicycle-parking-modal .detail-value{font-size:12px}.bicycle-parking-modal .directions-button,.bicycle-parking-modal .streetview-button{font-size:13px;padding:10px 20px}}.bicycle-parking-item{background:linear-gradient(135deg,#f8fff8,#f0f8f0);border:1px solid #e8f5e8;border-radius:12px;cursor:pointer;margin-bottom:8px;padding:12px 16px;text-align:left;transition:all .2s ease;width:100%}.bicycle-parking-item:hover{background:linear-gradient(135deg,#f0fff0,#e8f8e8);border-color:#4caf50;box-shadow:0 4px 12px #4caf5026;transform:translateY(-1px)}.bicycle-parking-item:active{transform:translateY(0);transition:all .1s ease}.bicycle-parking-option{align-items:center;display:flex;gap:12px;width:100%}.bicycle-parking-option .bike-icon{color:#4caf50;flex-shrink:0;font-size:20px}.bicycle-parking-details{display:flex;flex:1 1;flex-direction:column;gap:4px;min-width:0}.bicycle-parking-details .street-name{color:#333;font-size:14px;font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bicycle-parking-details .bicycle-parking-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.bicycle-parking-details .bicycle-parking-label{align-self:flex-start;background:linear-gradient(135deg,#4caf50,#45a049);border-radius:12px;box-shadow:0 2px 4px #4caf5033;color:#fff;font-size:11px;font-weight:600;letter-spacing:.5px;padding:4px 8px;text-transform:uppercase}.bicycle-parking-details .spot-count{background:linear-gradient(135deg,#2196f3,#1976d2);border-radius:8px;box-shadow:0 1px 3px #2196f333;color:#fff;font-size:10px;font-weight:600;padding:3px 6px}@media (max-width:768px){.bicycle-parking-item{border-radius:10px;margin-bottom:6px;padding:10px 14px}.bicycle-parking-option{gap:10px}.bicycle-parking-option .bike-icon{font-size:18px}.bicycle-parking-details .street-name{font-size:13px}.bicycle-parking-details .bicycle-parking-label{font-size:10px;padding:3px 6px}.bicycle-parking-details .spot-count{font-size:9px;padding:2px 5px}}@media (max-width:480px){.bicycle-parking-item{border-radius:8px;margin-bottom:4px;padding:8px 12px}.bicycle-parking-option{gap:8px}.bicycle-parking-option .bike-icon{font-size:16px}.bicycle-parking-details .street-name{font-size:12px}.bicycle-parking-details .bicycle-parking-label{font-size:9px;padding:2px 5px}}.mobility-parking-modal-backdrop{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:10001}.mobility-parking-modal{animation:modalSlideIn .3s ease-out;background:#fff;border:1px solid #0000001a;border-radius:20px;box-shadow:0 25px 50px #00000040;display:flex;flex-direction:column;max-height:90vh;max-width:500px;overflow:hidden;width:100%}.mobility-parking-modal .modal-header{align-items:center;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;display:flex;justify-content:space-between;padding:20px 24px}.mobility-parking-modal .modal-title{align-items:center;display:flex;font-size:20px;font-weight:600;gap:8px;margin:0}.mobility-parking-modal .modal-close-button{-webkit-tap-highlight-color:transparent;align-items:center;background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:40px;justify-content:center;min-height:40px;padding:8px;touch-action:manipulation;transition:background-color .2s;width:40px}.mobility-parking-modal .modal-close-button:hover{background-color:#fff3}.mobility-parking-modal .modal-content{-webkit-overflow-scrolling:touch;display:flex;flex:1 1;flex-direction:column;gap:20px;overflow-y:auto;padding:24px}.mobility-parking-modal .audit-details,.mobility-parking-modal .location-details,.mobility-parking-modal .parking-details,.mobility-parking-modal .sign-details{display:flex;flex-direction:column;gap:16px}.mobility-parking-modal .section-title{border-bottom:2px solid #f0f0f0;color:#333;font-size:16px;font-weight:600;margin:0;padding-bottom:8px}.mobility-parking-modal .detail-row{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:12px 0}.mobility-parking-modal .detail-row:last-child{border-bottom:none}.mobility-parking-modal .detail-label{align-items:center;color:#666;display:flex;font-size:14px;font-weight:600;gap:6px}.mobility-parking-modal .detail-value{color:#333;font-size:14px;max-width:60%;text-align:right;word-break:break-word}.mobility-parking-modal .sign-text{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-left:4px solid #2563eb;border-radius:8px;color:#495057;font-size:14px;line-height:1.4;padding:12px}.mobility-parking-modal .modal-actions{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.mobility-parking-modal .directions-button{-webkit-tap-highlight-color:transparent;align-items:center;background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:8px;box-shadow:0 4px 12px #7c3aed4d;color:#fff;display:flex;font-size:14px;font-weight:600;gap:8px;min-height:44px;padding:12px 24px;text-decoration:none;touch-action:manipulation;transition:all .2s}.mobility-parking-modal .directions-button:hover{box-shadow:0 6px 16px #7c3aed66;transform:translateY(-2px)}.mobility-parking-modal .directions-button:active{transform:translateY(0)}.mobility-parking-modal .streetview-button{-webkit-tap-highlight-color:transparent;align-items:center;background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-radius:8px;box-shadow:0 4px 12px #8b5cf64d;color:#fff;display:flex;font-size:14px;font-weight:600;gap:8px;min-height:44px;padding:12px 24px;text-decoration:none;touch-action:manipulation;transition:all .2s}.mobility-parking-modal .streetview-button:hover{box-shadow:0 6px 16px #8b5cf666;transform:translateY(-2px)}.mobility-parking-modal .streetview-button:active{transform:translateY(0)}.mobility-parking-modal .info-button{-webkit-tap-highlight-color:transparent;align-items:center;background:linear-gradient(135deg,#059669,#047857);border-radius:8px;box-shadow:0 4px 12px #0596694d;color:#fff;display:flex;font-size:14px;font-weight:600;gap:8px;min-height:44px;padding:12px 24px;text-decoration:none;touch-action:manipulation;transition:all .2s}.mobility-parking-modal .info-button:hover{box-shadow:0 6px 16px #05966966;transform:translateY(-2px)}.mobility-parking-modal .info-button:active{transform:translateY(0)}.mobility-parking-marker-container{background:#0000;border:none}.mobility-parking-marker{-webkit-tap-highlight-color:transparent;align-items:center;background:linear-gradient(135deg,#3b82f6,#2563eb);border:3px solid #fff;border-radius:50%;box-shadow:0 4px 12px #3b82f666;color:#fff;cursor:pointer;display:flex;font-size:18px;height:36px;justify-content:center;line-height:1;overflow:hidden;position:relative;text-align:center;transition:all .3s ease;user-select:none;-webkit-user-select:none;width:36px}.mobility-parking-marker:hover{box-shadow:0 6px 16px #3b82f680;transform:scale(1.15)}.mobility-parking-marker:active{transform:scale(.95);transition:all .1s ease}.mobility-parking-marker .marker-pulse{animation:pulse 2s infinite;background:#3b82f64d;border-radius:50%;height:100%;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%) scale(0);width:100%}@media (max-width:768px){.mobility-parking-modal{border-radius:16px;max-height:95vh;max-width:95vw}.mobility-parking-modal .modal-header{padding:16px 20px}.mobility-parking-modal .modal-title{font-size:18px}.mobility-parking-modal .modal-content{gap:16px;padding:20px}.mobility-parking-modal .detail-row{padding:10px 0}.mobility-parking-modal .detail-label,.mobility-parking-modal .detail-value{font-size:13px}.mobility-parking-modal .modal-actions{gap:8px}.mobility-parking-modal .directions-button,.mobility-parking-modal .info-button,.mobility-parking-modal .streetview-button{font-size:13px;min-height:40px;padding:10px 16px}}@media (max-width:480px){.mobility-parking-modal{border-radius:12px;max-height:98vh;max-width:98vw}.mobility-parking-modal .modal-header{padding:14px 18px}.mobility-parking-modal .modal-title{font-size:16px}.mobility-parking-modal .modal-content{gap:14px;padding:18px}.mobility-parking-modal .detail-row{padding:8px 0}.mobility-parking-modal .detail-label,.mobility-parking-modal .detail-value{font-size:12px}.mobility-parking-modal .directions-button,.mobility-parking-modal .info-button,.mobility-parking-modal .streetview-button{font-size:12px;padding:8px 16px}}.mobility-parking-item{background:linear-gradient(135deg,#f8f9ff,#f0f4ff);border:1px solid #e8f0ff;border-radius:12px;cursor:pointer;margin-bottom:8px;padding:12px 16px;text-align:left;transition:all .2s ease;width:100%}.mobility-parking-item:hover{background:linear-gradient(135deg,#f0f4ff,#e8f0ff);border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626;transform:translateY(-1px)}.mobility-parking-item:active{transform:translateY(0);transition:all .1s ease}.mobility-parking-option{align-items:center;display:flex;gap:12px;width:100%}.mobility-parking-option .wheelchair-icon{color:#3b82f6;flex-shrink:0;font-size:20px}.mobility-parking-details{display:flex;flex:1 1;flex-direction:column;gap:4px;min-width:0}.mobility-parking-details .street-name{color:#333;font-size:14px;font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobility-parking-details .mobility-parking-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.mobility-parking-details .mobility-parking-label{align-self:flex-start;background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:12px;box-shadow:0 2px 4px #3b82f633;color:#fff;font-size:11px;font-weight:600;letter-spacing:.5px;padding:4px 8px;text-transform:uppercase}.mobility-parking-details .spot-count{background:linear-gradient(135deg,#1e40af,#1d4ed8);border-radius:8px;box-shadow:0 1px 3px #1e40af33;color:#fff;font-size:10px;font-weight:600;padding:3px 6px}@media (max-width:768px){.mobility-parking-item{border-radius:10px;margin-bottom:6px;padding:10px 14px}.mobility-parking-option{gap:10px}.mobility-parking-option .wheelchair-icon{font-size:18px}.mobility-parking-details .street-name{font-size:13px}.mobility-parking-details .mobility-parking-label{font-size:10px;padding:3px 6px}.mobility-parking-details .spot-count{font-size:9px;padding:2px 5px}}@media (max-width:480px){.mobility-parking-item{border-radius:8px;margin-bottom:4px;padding:8px 12px}.mobility-parking-option{gap:8px}.mobility-parking-option .wheelchair-icon{font-size:16px}.mobility-parking-details .street-name{font-size:12px}.mobility-parking-details .mobility-parking-label{font-size:9px;padding:2px 5px}}@media (max-width:768px){.powered-by-sydney-card{margin-top:16px;padding:14px}.powered-by-sydney-card .powered-by-text{font-size:.7rem}.powered-by-sydney-card .city-of-sydney-logo{padding:6px 12px}.powered-by-sydney-card .city-logo-image{height:20px;width:20px}.powered-by-sydney-card .city-name{font-size:.8rem}}@media (max-width:480px){.powered-by-sydney-card{margin-top:12px;padding:12px}.powered-by-sydney-card .powered-by-text{font-size:.65rem}.powered-by-sydney-card .city-of-sydney-logo{padding:5px 10px}.powered-by-sydney-card .city-logo-image{height:18px;width:18px}.powered-by-sydney-card .city-name{font-size:.75rem}}.leaflet-container.map-centering{transition:all .8s ease-in-out}.leaflet-container.map-centering:before{animation:mapCenterPulse 1s ease-out;background:#3b82f6cc;border-radius:50%;content:"";height:60px;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:60px;z-index:1000}@keyframes mapCenterPulse{0%{opacity:1;transform:translate(-50%,-50%) scale(.5)}50%{opacity:.8;transform:translate(-50%,-50%) scale(1.2)}to{opacity:0;transform:translate(-50%,-50%) scale(1.5)}}.leaflet-container{transition:all .3s ease-out}.bicycle-parking-marker:hover,.custom-marker:hover,.park-and-ride-marker:hover{box-shadow:0 8px 25px #0000004d;transform:scale(1.2);z-index:1000}.car-share-bay-operator-modal-backdrop{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:10001}.car-share-bay-operator-modal{animation:modalSlideIn .3s ease-out;background:#fff;border:1px solid #0000001a;border-radius:20px;box-shadow:0 25px 50px #00000040;display:flex;flex-direction:column;max-height:90vh;max-width:500px;overflow:hidden;width:100%}.car-share-bay-operator-modal .modal-header{align-items:center;background:linear-gradient(135deg,#9c27b0,#7b1fa2);color:#fff;display:flex;justify-content:space-between;padding:20px 24px}.car-share-bay-operator-modal .modal-title{align-items:center;display:flex;font-size:20px;font-weight:600;gap:8px;margin:0}.car-share-bay-operator-modal .modal-close-button{-webkit-tap-highlight-color:transparent;align-items:center;background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:40px;justify-content:center;min-height:40px;padding:8px;touch-action:manipulation;transition:background-color .2s;width:40px}.car-share-bay-operator-modal .modal-close-button:hover{background-color:#fff3}.car-share-bay-operator-modal .modal-content{-webkit-overflow-scrolling:touch;display:flex;flex:1 1;flex-direction:column;gap:20px;overflow-y:auto;padding:24px}.car-share-bay-operator-modal .car-share-details,.car-share-bay-operator-modal .location-details{display:flex;flex-direction:column;gap:16px}.car-share-bay-operator-modal .section-title{border-bottom:2px solid #f0f0f0;color:#333;font-size:16px;font-weight:600;margin:0;padding-bottom:8px}.car-share-bay-operator-modal .detail-row{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:12px 0}.car-share-bay-operator-modal .detail-row:last-child{border-bottom:none}.car-share-bay-operator-modal .detail-label{align-items:center;color:#666;display:flex;font-size:14px;font-weight:600;gap:6px}.car-share-bay-operator-modal .detail-value{color:#333;font-size:14px;max-width:60%;text-align:right;word-break:break-word}.car-share-bay-operator-modal .modal-actions{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.car-share-bay-operator-modal .directions-button{-webkit-tap-highlight-color:transparent;align-items:center;background:linear-gradient(135deg,#1e40af,#3b82f6);border-radius:8px;box-shadow:0 4px 12px #1e40af4d;color:#fff;display:flex;font-size:14px;font-weight:600;gap:8px;min-height:44px;padding:12px 24px;text-decoration:none;touch-action:manipulation;transition:all .2s}.car-share-bay-operator-modal .directions-button:hover{box-shadow:0 6px 16px #1e40af66;transform:translateY(-2px)}.car-share-bay-operator-modal .directions-button:active{transform:translateY(0)}.car-share-bay-operator-modal .streetview-button{-webkit-tap-highlight-color:transparent;align-items:center;background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-radius:8px;box-shadow:0 4px 12px #8b5cf64d;color:#fff;display:flex;font-size:14px;font-weight:600;gap:8px;min-height:44px;padding:12px 24px;text-decoration:none;touch-action:manipulation;transition:all .2s}.car-share-bay-operator-modal .streetview-button:hover{box-shadow:0 6px 16px #8b5cf666;transform:translateY(-2px)}.car-share-bay-operator-modal .streetview-button:active{transform:translateY(0)}.car-share-bay-operator-marker-container{background:#0000;border:none}.car-share-bay-operator-marker{-webkit-tap-highlight-color:transparent;align-items:center;background:linear-gradient(135deg,#9c27b0,#7b1fa2);border:3px solid #fff;border-radius:50%;box-shadow:0 4px 12px #9c27b066;color:#fff;cursor:pointer;display:flex;font-size:18px;height:36px;justify-content:center;line-height:1;overflow:hidden;position:relative;text-align:center;transition:all .3s ease;user-select:none;-webkit-user-select:none;width:36px}.car-share-bay-operator-marker:hover{box-shadow:0 6px 16px #9c27b080;transform:scale(1.15)}.car-share-bay-operator-marker:active{transform:scale(.95);transition:all .1s ease}.car-share-bay-operator-marker .marker-pulse{animation:pulse 2s infinite;background:#9c27b04d;border-radius:50%;height:100%;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%) scale(0);width:100%}@media (max-width:768px){.car-share-bay-operator-modal{border-radius:16px;max-height:95vh;max-width:95vw}.car-share-bay-operator-modal .modal-header{padding:16px 20px}.car-share-bay-operator-modal .modal-title{font-size:18px}.car-share-bay-operator-modal .modal-content{gap:16px;padding:20px}.car-share-bay-operator-modal .detail-row{padding:10px 0}.car-share-bay-operator-modal .detail-label,.car-share-bay-operator-modal .detail-value{font-size:13px}.car-share-bay-operator-modal .modal-actions{gap:8px}.car-share-bay-operator-modal .directions-button,.car-share-bay-operator-modal .streetview-button{font-size:13px;min-height:40px;padding:10px 16px}}.car-share-bay-operator-item{background:linear-gradient(135deg,#f8f9ff,#f0f4ff);border:1px solid #e8f0ff;border-radius:12px;cursor:pointer;margin-bottom:8px;padding:12px 16px;text-align:left;transition:all .2s ease;width:100%}.car-share-bay-operator-item:hover{background:linear-gradient(135deg,#f0f4ff,#e8f0ff);border-color:#9c27b0;box-shadow:0 4px 12px #9c27b026;transform:translateY(-1px)}.car-share-bay-operator-item:active{transform:translateY(0);transition:all .1s ease}.car-share-bay-operator-option{align-items:center;display:flex;gap:12px;width:100%}.car-share-bay-operator-option .car-icon{color:#9c27b0;flex-shrink:0;font-size:20px}.car-share-bay-operator-details{display:flex;flex:1 1;flex-direction:column;gap:4px;min-width:0}.car-share-bay-operator-details .street-name{color:#333;font-size:14px;font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.car-share-bay-operator-details .car-share-bay-operator-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.car-share-bay-operator-details .car-share-bay-operator-label{align-self:flex-start;background:linear-gradient(135deg,#9c27b0,#7b1fa2);border-radius:12px;box-shadow:0 2px 4px #9c27b033;color:#fff;font-size:11px;font-weight:600;letter-spacing:.5px;padding:4px 8px;text-transform:uppercase}.car-share-bay-operator-details .operator,.car-share-bay-operator-details .spot-count{background:linear-gradient(135deg,#1e40af,#1d4ed8);border-radius:8px;box-shadow:0 1px 3px #1e40af33;color:#fff;font-size:10px;font-weight:600;padding:3px 6px}@media (max-width:768px){.car-share-bay-operator-item{border-radius:10px;margin-bottom:6px;padding:10px 14px}.car-share-bay-operator-option{gap:10px}.car-share-bay-operator-option .car-icon{font-size:18px}.car-share-bay-operator-details .street-name{font-size:13px}.car-share-bay-operator-details .car-share-bay-operator-label{font-size:10px;padding:3px 6px}.car-share-bay-operator-details .operator,.car-share-bay-operator-details .spot-count{font-size:9px;padding:2px 5px}}@media (max-width:480px){.car-share-bay-operator-item{border-radius:8px;margin-bottom:4px;padding:8px 12px}.car-share-bay-operator-option{gap:8px}.car-share-bay-operator-option .car-icon{font-size:16px}.car-share-bay-operator-details .street-name{font-size:12px}.car-share-bay-operator-details .car-share-bay-operator-label{font-size:9px;padding:2px 5px}.car-share-bay-operator-details .spot-count{font-size:8px;padding:2px 4px}}.current-location-button-container{bottom:170px;position:fixed;right:24px;z-index:500}.current-location-button{-webkit-tap-highlight-color:transparent;align-items:center;background:#fff;border:2px solid #3b82f6;border-radius:50%;box-shadow:0 4px 12px #3b82f640;color:#374151;cursor:pointer;display:flex;height:48px;justify-content:center;touch-action:manipulation;transition:all .2s ease;width:48px}.current-location-button:hover{background:#f9fafb;border-color:#2563eb;box-shadow:0 6px 16px #3b82f659;transform:translateY(-1px)}.current-location-button:active{box-shadow:0 2px 8px #00000026;transform:translateY(0)}.current-location-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.location-spinner{animation:spin 1s linear infinite;border:2px solid #e5e7eb;border-radius:50%;border-top-color:#3b82f6;height:20px;width:20px}@keyframes userLocationPulse{0%{box-shadow:0 4px 12px #3b82f666;transform:scale(1)}50%{box-shadow:0 4px 20px #3b82f699;transform:scale(1.1)}to{box-shadow:0 4px 12px #3b82f666;transform:scale(1)}}.leaflet-container.location-found{animation:locationFound .5s ease-out}@keyframes locationFound{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}@media (max-width:768px){.current-location-button-container{bottom:170px;right:18px}.current-location-button{height:44px;width:44px}.current-location-button svg{height:18px;width:18px}}@media (max-width:480px){.current-location-button-container{bottom:170px;right:20px}.current-location-button{height:40px;width:40px}.current-location-button svg{height:16px;width:16px}}.current-location-button svg{transition:all .2s ease}.current-location-button:hover:not(:disabled) svg{color:#1f2937}.location-error-notification{animation:slideDownNotification .3s ease-out;background:#fef2f2;border:2px solid #fecaca;border-radius:12px;box-shadow:0 8px 25px #00000026;left:50%;max-width:90vw;padding:1rem 1.5rem;position:fixed;top:20px;transform:translateX(-50%);width:400px;z-index:10000}.notification-content{align-items:center;color:#dc2626;display:flex;font-size:.9rem;font-weight:500;gap:.75rem}.notification-content svg{color:#dc2626;flex-shrink:0}@keyframes slideDownNotification{0%{opacity:0;transform:translateX(-50%) translateY(-20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@media (max-width:768px){.location-error-notification{left:10px;max-width:none;padding:.875rem 1rem;right:10px;top:10px;transform:none;width:auto}.notification-content{font-size:.85rem}}.smart-visit-planner-card{background:linear-gradient(135deg,#f8fafc,#fff);border:2px solid #e2e8f0;border-radius:20px;box-shadow:0 4px 20px #00000014;margin-bottom:1.5rem;overflow:hidden;padding:0}.planner-card-header{align-items:center;background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff;display:flex;padding:1.5rem}.planner-card-title{align-items:center;display:flex;flex:1 1;gap:1rem}.planner-icon-wrapper{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border-radius:12px;display:flex;height:48px;justify-content:center;width:48px}.planner-icon-wrapper svg{color:#fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.planner-title-content h3{color:#fff;font-size:1.25rem;font-weight:700;margin:0}.planner-title-content p{color:#fff;font-size:.9rem;margin:.25rem 0 0;opacity:.9}.planner-card-content{padding:1.5rem}.planner-description{margin-bottom:1.5rem}.planner-description p{color:#64748b;font-size:.95rem;line-height:1.6;margin:0}.preferences-button-primary{align-items:center;background:linear-gradient(135deg,#7c3aed,#a855f7);border:none;border-radius:16px;box-shadow:0 4px 16px #7c3aed66;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:700;gap:.75rem;justify-content:center;overflow:hidden;padding:1rem 1.5rem;position:relative;transition:all .3s ease;width:100%}.preferences-button-primary:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.preferences-button-primary:hover:before{left:100%}.preferences-button-primary:hover{box-shadow:0 8px 24px #7c3aed80;transform:translateY(-2px)}.preferences-button-primary:active{box-shadow:0 2px 8px #7c3aed66;transform:translateY(0)}.preferences-button-primary svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.1));height:20px;width:20px}.preferences-button{align-items:center;background:linear-gradient(135deg,#7c3aed,#a855f7);border:none;border-radius:16px;box-shadow:0 4px 16px #7c3aed66;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:700;gap:.75rem;overflow:hidden;padding:1rem 1.5rem;position:relative;transition:all .3s ease}.preferences-button:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.preferences-button:hover:before{left:100%}.preferences-button:hover{box-shadow:0 8px 24px #7c3aed80;transform:translateY(-2px)}.preferences-button:active{box-shadow:0 2px 8px #7c3aed66;transform:translateY(0)}.preferences-button svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.1));height:20px;width:20px}.adjust-preferences-btn{align-items:center;background:linear-gradient(135deg,#7c3aed,#a855f7);border:none;border-radius:12px;box-shadow:0 2px 8px #7c3aed4d;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:.5rem;margin-top:1rem;padding:.75rem 1.5rem;transition:all .2s ease}.adjust-preferences-btn:hover{box-shadow:0 4px 12px #7c3aed66;transform:translateY(-1px)}.preferences-modal-overlay{align-items:flex-end;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10002}.preferences-modal{background:#fff;border-radius:0;display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative;width:100%;z-index:10003}.preferences-modal-header{align-items:center;background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff;display:flex;justify-content:space-between;padding:1.5rem}.preferences-modal-title{align-items:center;display:flex;gap:1rem}.preferences-modal-title svg{height:24px;width:24px}.preferences-modal-title h3{font-size:1.25rem;font-weight:700;margin:0}.preferences-modal-title p{font-size:.9rem;margin:0;opacity:.9}.save-preferences-btn{align-items:center;background:#fff3;border:2px solid #ffffff4d;border-radius:12px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:.5rem;padding:.75rem 1.25rem;transition:all .2s ease}.save-preferences-btn:hover{background:#ffffff4d;border-color:#ffffff80;transform:translateY(-1px)}.save-preferences-btn svg{height:18px;width:18px}.preferences-modal-content{display:flex;flex:1 1;flex-direction:column;overflow-y:auto;padding:1.5rem}.preferences-filters-card{background:#f8fafc;border:2px solid #e2e8f0;border-radius:16px;margin-top:1.5rem;padding:1.5rem}.preferences-filters-card h4{align-items:center;color:#1e293b;display:flex;font-size:1.1rem;font-weight:700;gap:.5rem;margin:0 0 1.5rem}.preferences-filters-card h4:before{background:linear-gradient(135deg,#7c3aed,#a855f7);border-radius:2px;content:"";height:20px;width:4px}@media (max-width:768px){.smart-visit-planner-card{border-radius:16px;margin-bottom:1.25rem}.planner-card-header{padding:1.25rem}.planner-card-title{gap:.75rem}.planner-icon-wrapper{height:40px;width:40px}.planner-title-content h3{font-size:1.1rem}.planner-title-content p{font-size:.85rem}.planner-card-content{padding:1.25rem}.planner-description{margin-bottom:1.25rem}.planner-description p{font-size:.9rem}.preferences-button-primary{font-size:.9rem;padding:.875rem 1.25rem}.preferences-button-primary svg{height:18px;width:18px}.planner-no-results{margin-top:1.25rem;padding:1.25rem}.no-results-header{gap:.75rem;margin-bottom:1.25rem}.no-results-content h4{font-size:1.1rem}.no-results-content p{font-size:.9rem}.busy-times-section{padding-top:1.25rem}.busy-times-header{gap:.5rem;margin-bottom:.875rem}.busy-times-header h5{font-size:.95rem}.busy-times-header p{font-size:.8rem}.alternatives-section{margin-top:.5rem;padding:1.25rem}.alternatives-header{gap:.5rem;margin-bottom:.875rem}.alternatives-header h4{font-size:1rem}.alternatives-header p{font-size:.85rem}.alternatives-list{gap:.625rem}.alternative-item{gap:.625rem;padding:.875rem}.alternative-text{font-size:.9rem}.alternative-count{font-size:.8rem}.preferences-modal-header{padding:1.25rem}.preferences-modal-title h3{font-size:1.1rem}.preferences-modal-title p{font-size:.85rem}.preferences-modal-content{padding:1.25rem}.save-preferences-btn{font-size:.85rem;padding:.625rem 1rem}.save-preferences-btn svg{height:16px;width:16px}}@media (max-width:480px){.smart-visit-planner-card{border-radius:12px;margin-bottom:1rem}.planner-card-header{padding:1rem}.planner-card-title{gap:.5rem}.planner-icon-wrapper{height:36px;width:36px}.planner-title-content h3{font-size:1rem}.planner-title-content p{font-size:.8rem}.planner-card-content{padding:1rem}.planner-description{margin-bottom:1rem}.planner-description p{font-size:.85rem}.preferences-button-primary{font-size:.85rem;padding:.75rem 1rem}.preferences-button-primary svg{height:16px;width:16px}.planner-no-results{margin-top:1rem;padding:1rem}.no-results-header{gap:.5rem;margin-bottom:1rem}.no-results-content h4{font-size:1rem}.no-results-content p{font-size:.85rem}.busy-times-section{padding-top:1rem}.busy-times-header{gap:.5rem;margin-bottom:.75rem}.busy-times-header h5{font-size:.9rem}.busy-times-header p{font-size:.75rem}.alternatives-section{margin-top:.5rem;padding:1rem}.alternatives-header{gap:.5rem;margin-bottom:.75rem}.alternatives-header h4{font-size:.95rem}.alternatives-header p{font-size:.8rem}.alternatives-list{gap:.5rem}.alternative-item{gap:.5rem;padding:.75rem}.alternative-text{font-size:.85rem}.alternative-count{font-size:.75rem}.preferences-modal-content,.preferences-modal-header{padding:1rem}.preferences-filters-card{padding:1.25rem}}.planner-no-results{background:#fef2f2;border:2px solid #fecaca;border-radius:16px;margin-top:1.5rem;padding:1.5rem}.no-results-header{align-items:center;display:flex;gap:1rem;margin-bottom:1.5rem}.no-results-content h4{color:#1e293b;font-size:1.25rem;font-weight:700;margin:0}.no-results-content p{color:#64748b;font-size:.95rem;margin:.25rem 0 0}.busy-times-section{border-top:2px solid #fecaca;padding-top:1.5rem}.busy-times-header{align-items:center;display:flex;gap:.75rem;margin-bottom:1rem}.busy-times-header svg{color:#ef4444}.busy-times-header h5{color:#1e293b;font-size:1rem;font-weight:600;margin:0}.busy-times-header p{color:#64748b;font-size:.85rem;margin:.25rem 0 0}.busy-times-section .planner-time-card.busy{background:#fff;border:2px solid #fecaca}.busy-times-section .planner-time-card.busy:hover{border-color:#f87171;box-shadow:0 4px 12px #ef444426}.alternatives-section{background:#f8fafc;border:2px solid #e2e8f0;border-radius:16px;margin-top:.75rem;padding:1.5rem}.alternatives-header{align-items:center;display:flex;gap:.75rem;margin-bottom:1rem}.alternatives-header svg{color:#7c3aed}.alternatives-header h4{color:#1e293b;font-size:1.1rem;font-weight:700;margin:0}.alternatives-header p{color:#64748b;font-size:.9rem;margin:0}.alternatives-list{display:flex;flex-direction:column;gap:.75rem}.alternative-item{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:12px;cursor:pointer;display:flex;gap:.75rem;padding:1rem;transition:all .2s ease}.alternative-item:hover{border-color:#7c3aed;box-shadow:0 4px 12px #7c3aed26;transform:translateY(-1px)}.alternative-item svg{color:#7c3aed;flex-shrink:0}.alternative-content{display:flex;flex:1 1;flex-direction:column;gap:.25rem}.alternative-text{color:#1e293b;font-size:.95rem;font-weight:600}.alternative-count{color:#7c3aed;font-size:.85rem;font-weight:600}.traffic-section{padding:0}.info-banner{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 15px #0000001a;color:#fff;margin-bottom:1.5rem;padding:1.5rem}.banner-content{align-items:flex-start;display:flex;gap:1rem}.banner-content h3{font-size:1.25rem;font-weight:600;margin:0 0 .5rem}.banner-content p{line-height:1.5;margin:0;opacity:.9}.error-banner{align-items:center;background:#fee2e2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;display:flex;gap:.75rem;margin-bottom:1.5rem;padding:1rem}.camera-card{border:1px solid #e9ecef;box-shadow:0 4px 15px #00000014}.camera-card:hover{box-shadow:0 8px 25px #0000001f}.camera-header h4{font-size:1.1rem}.camera-status,.status-indicator{align-items:center;display:flex}.status-indicator{border-radius:20px;color:#fff;font-size:.75rem;font-weight:500;gap:.25rem;padding:.25rem .75rem}.camera-offline{color:#ef4444;text-align:center}.camera-offline p{font-weight:500;margin:.5rem 0 .25rem}.camera-offline small{font-size:.875rem;opacity:.7}.view-live-btn{background:linear-gradient(135deg,#10b981,#059669)}.view-live-btn:hover:not(:disabled){box-shadow:0 4px 15px #10b9814d}.traffic-info{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 4px 15px #00000014;padding:1.5rem}.traffic-info h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1.5rem}.info-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.info-item h4{color:#374151;font-size:1rem;font-weight:600;margin:0 0 .75rem}.info-item p{color:#6b7280;font-size:.875rem;line-height:1.4;margin:0 0 .5rem}.loading-overlay{align-items:center;background:#ffffffe6;bottom:0;display:flex;flex-direction:column;gap:1rem;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.loading-overlay p{color:#6b7280;font-weight:500}.spinning{animation:spin 1s linear infinite}.last-updated{align-items:center;display:flex;font-size:.875rem;gap:.5rem;opacity:.9}@media (max-width:768px){.cameras-grid,.info-grid{grid-template-columns:1fr}.camera-card{padding:1rem}.camera-image-container{height:150px}}.api-debug-section{background:#f8f9fa;border:1px solid #e9ecef;border-radius:12px;margin-top:1.5rem;padding:1.5rem}.api-debug-section h3{color:#374151;font-size:1.1rem;font-weight:600;margin:0 0 1rem}.debug-buttons{display:flex;flex-wrap:wrap;gap:.75rem}.debug-btn{background:#6b7280;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .3s ease}.debug-btn:hover{background:#4b5563;transform:translateY(-1px)}.debug-btn:active{transform:translateY(0)}.loading-state{color:#6b7280;padding:3rem 1rem;text-align:center}.loading-state p{font-weight:500;margin:1rem 0 0}.no-cameras{color:#6b7280;padding:3rem 1rem;text-align:center}.no-cameras p{font-weight:500;margin:1rem 0 .5rem}.no-cameras small{font-size:.875rem;opacity:.7}.cameras-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:2rem}.camera-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;padding:1.5rem;transition:all .3s ease}.camera-card:hover{box-shadow:0 10px 25px -3px #0000001a;transform:translateY(-2px)}.camera-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.camera-header h4{color:#1f2937;flex:1 1;font-size:1.125rem;font-weight:600;margin:0}.camera-distance{margin-left:1rem}.distance-badge{background:linear-gradient(135deg,#10b981,#059669);border-radius:20px;color:#fff;font-size:.75rem;font-weight:600;padding:.25rem .75rem}.camera-image-container{background:#f8f9fa;border:2px dashed #d1d5db;border-radius:8px;flex-direction:column;height:200px;margin-bottom:1rem;overflow:hidden}.camera-image,.camera-image-container{align-items:center;display:flex;justify-content:center}.camera-image,.camera-image img{height:100%;width:100%}.camera-image img{border-radius:6px;object-fit:cover}.camera-image-placeholder{color:#6b7280;text-align:center}.camera-image-placeholder p{font-weight:500;margin:.5rem 0 .25rem}.camera-image-placeholder small{font-size:.875rem;opacity:.7}.camera-details{margin-bottom:1.5rem}.detail-row{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;padding:.5rem 0}.detail-row:last-child{border-bottom:none}.detail-label{color:#6b7280;font-weight:500}.detail-value{color:#1f2937;font-size:.875rem;font-weight:600}.camera-actions{display:flex;justify-content:center}.view-live-btn{align-items:center;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:all .3s ease}.view-live-btn:hover:not(:disabled){box-shadow:0 4px 15px #3b82f64d;transform:translateY(-1px)}.view-live-btn:disabled{background:#9ca3af;box-shadow:none;cursor:not-allowed;transform:none}.traffic-summary{background:#f8f9fa;border-radius:8px;margin-top:1rem;padding:1rem;text-align:center}.traffic-summary p{color:#6b7280;font-size:.875rem;margin:0}.traffic-summary strong{color:#1f2937}.hazards-section{border-top:1px solid #e5e7eb;margin-top:2rem;padding-top:1.5rem}.hazards-section .section-header{margin-bottom:1.5rem;text-align:center}.hazards-section .section-header h3{color:#1f2937;font-size:1.5rem;font-weight:600;margin:0 0 .5rem}.hazards-section .section-header p{color:#6b7280;font-size:.875rem;margin:0}.hazards-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:1rem}.hazard-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:1rem;transition:all .3s ease}.hazard-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.hazard-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.5rem}.hazard-header h4{color:#1f2937;flex:1 1;font-size:1rem;font-weight:600;margin:0}.hazard-distance .distance-badge{background-color:#ef4444;border-radius:4px;color:#fff;font-size:.75rem;font-weight:500;padding:.25rem .5rem}.hazard-details{color:#6b7280;font-size:.875rem}.hazard-details>div:first-child{line-height:1.4;margin-bottom:.5rem}.hazard-details .grid{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:1fr 1fr;margin-top:.5rem}.hazard-details .grid>div{align-items:center;display:flex}.hazard-details strong{color:#374151;margin-right:.25rem}.hazard-details .severity-high{color:#dc2626}.hazard-details .severity-medium{color:#ea580c}.hazard-details .severity-low{color:#059669}.hazard-details .status-active{color:#dc2626}.hazard-details .status-resolved{color:#059669}.no-hazards{color:#6b7280;padding:2rem;text-align:center}.no-hazards p{font-weight:500;margin:1rem 0 .5rem}.no-hazards small{font-size:.875rem;opacity:.7}.hazards-summary{color:#6b7280;font-size:.875rem;margin-top:1rem;text-align:center}.hazards-summary strong{color:#1f2937}.shop-details-section{background:#fff;border:1px solid #e9ecef;border-radius:12px;margin-top:2rem;padding:1.5rem}.shop-details-section h3{color:#333;font-size:1.1rem;font-weight:600;margin:0 0 1rem}.shop-details-section .detail-item{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;padding:.75rem 0}.shop-details-section .detail-item:last-child{border-bottom:none}.shop-details-section .detail-label{color:#6b7280;font-size:.875rem;font-weight:500}.shop-details-section .detail-value{color:#1f2937;font-size:.875rem;font-weight:600;max-width:60%;text-align:right;word-break:break-word}.shop-details-section .detail-value a{align-items:center;color:#3b82f6;display:inline-flex;gap:.25rem;text-decoration:none}.shop-details-section .detail-value a:hover{text-decoration:underline}.max-shops-message{background:#ef44441a;border:1px solid #ef44444d;border-radius:8px;color:#ef4444;font-weight:500;padding:1rem;text-align:center}.max-shops-message p{margin:0}.comparer-chart-cell{max-width:300px;min-width:100px;width:60%}@media (max-width:600px){.comparer-chart-cell{max-width:120px;min-width:100px}}.recommendations-fab{align-items:center;background:linear-gradient(135deg,#7c3aede0,#6d28d9e0);border:3px solid #fff;border-radius:50%;bottom:100px;box-shadow:0 4px 16px #7c3aed66;color:#fff;cursor:pointer;display:flex;height:56px;justify-content:center;position:fixed;right:20px;transition:all .3s ease;width:56px;z-index:20000}.recommendations-fab:hover{box-shadow:0 6px 20px #7c3aed80}.recommendations-fab svg{filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.fab-bulb{align-items:center;background:#fff;border-radius:50%;box-shadow:0 2px 8px #0003;color:#f59e0b;display:flex;height:22px;justify-content:center;position:absolute;right:-6px;top:-6px;width:22px}.recommendations-modal-overlay{align-items:flex-end;background:#00000080;bottom:0;display:flex;left:0;position:fixed;right:0;top:0;z-index:10000}.recommendations-modal{background:#fff;border-radius:24px 24px 0 0;box-shadow:0 -4px 20px #00000026;display:flex;flex-direction:column;max-height:calc(100vh - 72px);max-height:calc(100dvh - 72px);max-width:100vw;overflow:hidden;padding:16px;touch-action:pan-y;width:100%}.recommendations-modal-header{align-items:center;background:#fff;display:flex;flex-shrink:0;gap:16px;justify-content:space-between;margin-bottom:8px;min-height:50px;position:relative;z-index:1}.recommendations-modal-header h2{color:#111827;flex:1 1;font-size:1.35rem;font-weight:700;line-height:1.3;margin:0;padding:0}.recommendations-modal-header .close-button{align-self:center;margin:0}.recommendations-modal-content{-webkit-overflow-scrolling:touch;flex:1 1;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:0 0 calc(3.5rem + env(safe-area-inset-bottom, 0px))}.recommendations-search-container{display:flex;flex-direction:column;gap:0;height:100%;min-height:0}.recommendations-search-fixed{background:#fff;box-shadow:0 2px 4px #0000000d;flex-shrink:0;margin-bottom:0;margin-top:-4px;padding:4px 0 12px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.location-help-text{margin-top:12px;padding:0 2px}.location-help-text p{color:#6b7280;font-size:.8rem;line-height:1.5;margin:0;text-align:center}.recommendations-search-fixed input{-webkit-appearance:none;appearance:none;background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;font-size:16px;padding:.75rem .875rem;width:100%}.recommendations-search-fixed input:focus{background:#fff;border-color:#8b5cf6;box-shadow:0 2px 8px #8b5cf626;outline:none}.recommendations-search-results-wrapper{-webkit-overflow-scrolling:touch;flex:1 1;max-height:100%;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.search-with-button,.search-with-buttons{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:1fr auto}.drop-pin-button,.location-buttons{align-items:center;display:flex;gap:6px}.drop-pin-button{background:linear-gradient(135deg,#f59e0b,#d97706);border:none;border-radius:10px;box-shadow:0 4px 12px #f59e0b4d;color:#fff;cursor:pointer;font-size:.875rem;font-weight:600;padding:8px 12px;transition:all .2s ease;white-space:nowrap}.drop-pin-button:hover{background:linear-gradient(135deg,#d97706,#b45309);box-shadow:0 6px 16px #f59e0b66;transform:translateY(-1px)}.drop-pin-label{font-size:.875rem;font-weight:600}.use-current-button{align-items:center;background:linear-gradient(135deg,#3b82f6,#2563eb);border:1px solid #0000;border-radius:10px;box-shadow:0 4px 12px #2563eb40;color:#fff;cursor:pointer;display:inline-flex;gap:6px;justify-content:center;padding:8px 10px}.use-current-button:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 6px 16px #2563eb59;transform:translateY(-1px)}.use-current-button svg{color:#fff}.use-current-label{font-size:.85rem;font-weight:600}.mini-spinner{animation:spin 1s linear infinite;border:2px solid #ffffff80;border-radius:50%;border-top-color:#fff;height:14px;width:14px}.recommendations-loading{align-items:center;color:#6b7280;display:flex;font-size:.9rem;gap:12px;justify-content:center;padding:2rem}.recommendations-loading .mini-spinner{border:2px solid #3b82f64d;border-top-color:#3b82f6;height:20px;width:20px}.recommendations-search-results{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:1rem;overflow:hidden}.search-result-item{align-items:flex-start;background:#fff;border:none;cursor:pointer;display:flex;gap:0;padding:1rem;text-align:left;transition:all .2s;width:100%}.search-result-item:active{background:#f5f3ff;transform:scale(.98)}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:#f9fafb}.search-result-content{display:flex;flex-direction:column;gap:4px;width:100%}.search-result-header{align-items:center;display:flex;gap:8px}.search-result-name{color:#111827;font-size:.9rem;font-weight:600;line-height:1.4}.search-result-address{color:#6b7280;font-size:.75rem;line-height:1.4}.search-result-distance{color:#8b5cf6;font-size:.7rem;font-weight:500}.vibecheck-badge-fab{align-items:center;background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:50%;color:#fff;display:inline-flex;flex-shrink:0;height:18px;justify-content:center;width:18px}.vibecheck-badge-fab svg{height:12px;width:12px}.search-hint{font-size:.875rem;gap:10px;padding:2rem 1rem}.no-results-message,.search-hint{align-items:center;color:#6b7280;display:flex;justify-content:center;text-align:center}.no-results-message{flex-direction:column;gap:8px;padding:3rem 1.5rem}.no-results-message svg{color:#9ca3af}.no-results-message p{color:#111827;font-size:1rem;font-weight:600;margin:0}.no-results-message span{color:#6b7280;font-size:.875rem}.recommendations-modal .close-button{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;color:#6b7280;cursor:pointer;display:flex;flex-shrink:0;height:40px;justify-content:center;margin:0;padding:8px;position:relative;top:0;transition:all .2s;width:40px}.recommendations-modal .close-button:hover{background:#f3f4f6;border-color:#d1d5db;color:#111827}.recommendations-modal .close-button:active{transform:scale(.95)}.other-location-row{display:flex;justify-content:center;margin-bottom:1rem}.alt-location-button{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;color:#6b7280;cursor:pointer;font-size:.85rem;font-weight:500;padding:8px 16px;transition:all .2s;white-space:nowrap}.alt-location-button:hover{background:#f3f4f6;border-color:#d1d5db;color:#111827}.alt-location-button:active{transform:scale(.98)}.recommendations-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr);padding-bottom:calc(24px + env(safe-area-inset-bottom, 0px))}.location-chip-row{display:block;margin:0 0 .5rem;width:100%}.location-chip{background:#fff;border:2px solid #3b82f6;border-radius:12px;gap:8px;justify-content:center;padding:8px 10px;text-align:center;width:100%}.location-chip .chip-left{align-items:center;background:#fff;border:1px solid #eef0f2;border-radius:8px;color:#7c3aed;display:flex;height:28px;justify-content:center;width:28px}.location-chip .chip-right{align-items:center;display:flex;flex-direction:column}.location-chip .chip-title{font-size:.9rem;font-weight:600}.location-chip .chip-subtitle{color:#6b7280;font-size:.75rem}.recommendation-option{align-items:center;background:#f9fafb;border:2px solid #e5e7eb;border-radius:20px;cursor:pointer;display:flex;flex-direction:column;gap:.5rem;padding:1.1rem 1rem;text-align:center;transition:all .2s ease}.recommendation-option:hover{background:#faf5ff;border-color:#8b5cf6;box-shadow:0 8px 16px #7c3aed26;transform:translateY(-2px)}.recommendation-option span{color:#111827;font-size:1rem;font-weight:700}.recommendation-option p{color:#6b7280;font-size:.75rem;margin:0}.option-icon{align-items:center;border-radius:50%;box-shadow:0 4px 12px #0003;color:#fff;display:flex;height:60px;justify-content:center;width:60px}.parking-icon{background:linear-gradient(135deg,#7c3aed,#6d28d9)}.coffee-icon{background:linear-gradient(135deg,#92400e,#78350f)}.crowd-icon{background:linear-gradient(135deg,#10b981,#059669)}.vibe-icon{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.beer-icon{background:linear-gradient(135deg,#f59e0b,#d97706)}.drop-pin-map-container{border:1px solid #e5e7eb;border-radius:12px;display:flex;flex-direction:column;height:400px;max-height:calc(100vh - 300px);max-height:calc(100dvh - 300px);overflow:hidden;touch-action:none}.drop-pin-header{align-items:center;background:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;flex-shrink:0;justify-content:space-between;padding:12px 16px}.drop-pin-instruction{color:#111827;font-size:.875rem;font-weight:600}.close-map-button{align-items:center;background:#0000;border:none;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;justify-content:center;padding:4px;transition:all .2s}.close-map-button:hover{background:#f3f4f6;color:#111827}.drop-pin-map-wrapper{flex:1 1;min-height:300px;position:relative;z-index:1000}.drop-pin-map-wrapper .leaflet-container{border-radius:0;height:100%;width:100%}@media (max-width:640px){.recommendations-fab{bottom:100px;height:48px;right:16px;width:48px}.recommendations-fab svg{height:20px;width:20px}.recommendations-modal{border-radius:20px 20px 0 0;max-height:calc(100vh - 56px);max-height:calc(100dvh - 56px);padding:1.25rem 1rem calc(1.5rem + env(safe-area-inset-bottom, 0px))}.recommendations-modal-header{margin-bottom:1rem;min-height:44px;padding-bottom:1rem}.recommendations-modal-header h2{font-size:1.05rem;line-height:1.3;padding-top:2px}.recommendations-modal .close-button{height:36px;padding:6px;width:36px}.recommendations-modal .close-button svg{height:20px;width:20px}.recommendation-option{padding:1rem .75rem}.option-icon{height:54px;width:54px}.option-icon svg{height:28px;width:28px}.recommendation-option span{font-size:.875rem}.recommendation-option p{font-size:.7rem}.recommendations-search-container{height:100%;min-height:0}.recommendations-search-fixed{background:#fff;border-bottom:1px solid #f3f4f6;box-shadow:0 2px 4px #0000000d;margin-bottom:0;padding-bottom:10px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.search-with-buttons{gap:10px;grid-template-columns:1fr}.location-buttons{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;width:100%}.drop-pin-button,.use-current-button{justify-content:center;padding:10px 12px;width:100%}.drop-pin-label,.use-current-label{font-size:.8rem}.search-result-item{padding:1rem}.search-result-name{font-size:.85rem}.search-result-address{font-size:.7rem}.search-result-distance{font-size:.65rem}.other-location-row{margin-bottom:.75rem}.alt-location-button{font-size:.8rem;padding:7px 14px}.location-chip .chip-title{font-size:.85rem}.location-chip .chip-subtitle{font-size:.7rem}.location-help-text{margin-top:10px;padding:0}.location-help-text p{font-size:.75rem;line-height:1.4}.no-results-message{padding:2rem 1rem}.no-results-message p{font-size:.9rem}.no-results-message span{font-size:.8rem}}.crowd-modal{background:#fff;border-top-left-radius:16px;border-top-right-radius:16px;bottom:0;box-shadow:0 -8px 24px #00000026;display:flex;flex-direction:column;left:0;max-height:calc(100vh - 72px);overflow-y:auto;padding:16px;position:fixed;right:0}.crowd-modal-header{align-items:flex-start;background:#fff;display:flex;gap:16px;justify-content:space-between;margin-bottom:8px;min-height:50px}.crowd-modal-header h2{color:#111827;flex:1 1;font-size:1.35rem;font-weight:700;line-height:1.3;margin:0;padding-top:4px}.crowd-options{grid-gap:10px;display:grid;flex:1 1;gap:10px;grid-template-columns:1fr 1fr;padding:6px 0 10px}.crowd-option{align-items:center;background:#fafafa;border:1px solid #e5e7eb;border-radius:12px;display:flex;gap:12px;padding:12px}.crowd-option.modern{flex-direction:column;gap:10px;justify-content:center;padding:14px 10px;text-align:center}.crowd-option.selected{background:#f5f3ff;border-color:#8b5cf6;box-shadow:0 6px 14px #8b5cf626}.crowd-icon-circle{align-items:center;border-radius:12px;color:#fff;display:flex;height:44px;justify-content:center;width:44px}.crowd-icon-circle.level-low{background:linear-gradient(135deg,#10b981,#059669)}.crowd-icon-circle.level-moderate{background:linear-gradient(135deg,#f59e0b,#d97706)}.crowd-icon-circle.level-high{background:linear-gradient(135deg,#ef4444,#dc2626)}.crowd-icon-circle.level-very-high{background:linear-gradient(135deg,#b91c1c,#991b1b)}.crowd-option-title{font-size:.95rem;font-weight:600}.crowd-actions{grid-gap:10px;align-items:stretch;display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-top:14px}.crowd-actions .action-button.secondary{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;color:#111827}.crowd-actions .action-button.primary,.crowd-actions .action-button.secondary{align-items:center;display:inline-flex;gap:8px;justify-content:center;padding:10px 14px;width:100%}.crowd-actions .action-button.primary{background:linear-gradient(135deg,#9ca3af,#6b7280);border:1px solid #0000;border-radius:12px;color:#fff;overflow:hidden;position:relative}.crowd-actions .action-button.primary.active:not(.filling),.crowd-actions .action-button.primary:not(:disabled):not(.filling){background:linear-gradient(135deg,#7c3aed,#6d28d9)}.crowd-actions .action-button.primary.filling{background:linear-gradient(135deg,#e9d5ff,#ddd6fe)!important}.crowd-actions .action-button.primary:disabled{opacity:.7}.crowd-actions .action-button.primary .button-content{pointer-events:none;position:relative;z-index:2}.crowd-actions .action-button.primary .fill-progress{background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:12px;height:100%;left:0;position:absolute;top:0;transition:width .03s linear;width:0;z-index:1}.coffee-modal{background:#fff;border-top-left-radius:16px;border-top-right-radius:16px;bottom:0;box-shadow:0 -8px 24px #00000026;display:flex;flex-direction:column;left:0;max-height:calc(100vh - 72px);overflow:hidden;position:fixed;right:0}.coffee-modal-header{align-items:flex-start;background:#fff;border-bottom:1px solid #f3f4f6;display:flex;flex-shrink:0;gap:16px;justify-content:space-between;min-height:60px;padding:20px 20px 16px}.coffee-modal-header h2{color:#111827;flex:1 1;font-size:1.35rem;font-weight:700;line-height:1.3;margin:0;padding-top:4px}.coffee-header-actions{align-items:center;display:flex;flex-shrink:0;gap:8px}.step-button{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;display:inline-flex;gap:6px;padding:6px 10px}.coffee-modal-content{-webkit-overflow-scrolling:touch;flex:1 1;overflow-y:auto;overscroll-behavior:contain;padding:16px}.coffee-types-scroll{padding:0}.coffee-types-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}.coffee-type{align-items:center;background:#fafafa;border:1px solid #e5e7eb;border-radius:12px;display:flex;flex-direction:column;gap:10px;justify-content:flex-start;min-height:100px;padding:14px 10px}.coffee-type.selected{background:#f5f3ff;border-color:#8b5cf6;box-shadow:0 6px 14px #8b5cf626}.coffee-icon-circle{align-items:center;border-radius:12px;color:#fff;display:flex;height:44px;justify-content:center;transition:transform .2s ease;width:44px}.coffee-type:hover .coffee-icon-circle{transform:scale(1.1)}.coffee-icon-circle svg{stroke-width:2;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.gradient-espresso{background:linear-gradient(135deg,#6b4423,#4a2c1a)}.gradient-long-black{background:linear-gradient(135deg,#1a1a1a,#0a0a0a)}.gradient-latte{background:linear-gradient(135deg,#d4a574,#c49660)}.gradient-flat-white{background:linear-gradient(135deg,beige,#e8e8d0);color:#6b4423}.gradient-flat-white svg{color:#6b4423}.gradient-cappuccino{background:linear-gradient(135deg,#8b6f47,#6b5230)}.gradient-mocha{background:linear-gradient(135deg,#7d4e37,#5c3a28)}.gradient-iced-latte{background:linear-gradient(135deg,#87ceeb,#6bb6ff);color:#1a1a1a}.gradient-iced-latte svg{color:#1a1a1a}.gradient-iced-long-black{background:linear-gradient(135deg,#2c3e50,#1a252e)}.gradient-macchiato{background:linear-gradient(135deg,#ff8c42,#ff6b1a)}.gradient-piccolo{background:linear-gradient(135deg,#8b4513,#654321)}.gradient-filter{background:linear-gradient(135deg,sienna,#8b4513)}.gradient-cold-brew{background:linear-gradient(135deg,#4682b4,#2e5c8a)}.gradient-other{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.coffee-type-title{align-items:center;display:flex;font-size:.85rem;font-weight:600;justify-content:center;line-height:1.3;min-height:2.2em;text-align:center;width:100%}.custom-coffee-input-container{display:flex;flex-direction:column;gap:8px;margin-top:20px;padding:0 4px}.custom-coffee-label{color:#111827;font-size:.875rem;font-weight:600}.custom-coffee-input{-webkit-appearance:none;appearance:none;background:#fafafa;border:1px solid #e5e7eb;border-radius:12px;font-family:inherit;font-size:16px;outline:none;padding:12px 16px;transition:all .2s;width:100%}.custom-coffee-input:focus{background:#fff;border-color:#8b5cf6;box-shadow:0 2px 8px #8b5cf626}.row-label{align-items:center;display:inline-flex;gap:6px}.coffee-price-quality{display:flex;flex-direction:column;gap:14px}.coffee-modal-content .crowd-options{padding:0}.coffee-price-quality .price-input-row{margin:6px 0 0}.price-input-row label,.quality-row label{display:block;font-weight:600;margin-bottom:6px}.quality-row .stars{display:flex;gap:10px}.quality-row{margin-top:6px}.star{align-items:center;background:#0000;border:none;color:#d1d5db;display:inline-flex;justify-content:center;transition:transform .1s ease,color .2s ease}.star.filled{color:#f59e0b;filter:drop-shadow(0 2px 6px rgba(245,158,11,.35))}.star:not(.filled):hover{color:#fbbf24;transform:scale(1.08)}.coffee-crowd-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}.crowd-chip{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;display:inline-flex;gap:8px;padding:10px 12px}.crowd-chip.selected{background:#f5f3ff;border-color:#8b5cf6}.coffee-actions{grid-gap:10px;align-items:stretch;background:#fff;border-top:1px solid #f3f4f6;display:grid;flex-shrink:0;gap:10px;grid-template-columns:1fr 1fr;padding:16px}.coffee-actions .action-button.primary{background:linear-gradient(135deg,#9ca3af,#6b7280);border:1px solid #0000;border-radius:12px;color:#fff;overflow:hidden;position:relative}.coffee-actions .action-button.primary,.coffee-actions .action-button.secondary{align-items:center;display:inline-flex;gap:8px;justify-content:center;padding:10px 14px;width:100%}.coffee-actions .action-button.secondary{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;color:#111827}.coffee-actions .action-button.primary.active:not(.filling){background:linear-gradient(135deg,#7c3aed,#6d28d9)}.coffee-actions .action-button.primary.filling{background:linear-gradient(135deg,#e9d5ff,#ddd6fe)!important}.coffee-actions .action-button.primary:disabled{opacity:.7}.coffee-actions .action-button.primary .button-content{pointer-events:none;position:relative;z-index:2}.coffee-actions .action-button.primary .fill-progress{background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:12px;height:100%;left:0;position:absolute;top:0;transition:width .03s linear;width:0;z-index:1}.vibe-modal{background:#fff;border-top-left-radius:16px;border-top-right-radius:16px;bottom:0;box-shadow:0 -8px 24px #00000026;display:flex;flex-direction:column;left:0;max-height:calc(100vh - 72px);overflow-y:auto;padding:16px;position:fixed;right:0}.vibe-modal-header{align-items:flex-start;background:#fff;display:flex;gap:16px;justify-content:space-between;margin-bottom:8px;min-height:50px}.vibe-modal-header h2{color:#111827;flex:1 1;font-size:1.35rem;font-weight:700;line-height:1.3;margin:0;padding-top:4px}.vibe-options{grid-gap:10px;display:grid;flex:1 1;gap:10px;grid-template-columns:repeat(3,1fr);padding:6px 0 10px}.vibe-option{align-items:center;background:#fafafa;border:1px solid #e5e7eb;border-radius:12px;display:flex;flex-direction:column;gap:8px;justify-content:center;padding:12px 8px;text-align:center}.vibe-option.selected{background:#f5f3ff;border-color:#8b5cf6;box-shadow:0 6px 14px #8b5cf626}.vibe-icon-circle{align-items:center;border-radius:12px;color:#fff;display:flex;height:40px;justify-content:center;width:40px}.vibe-option-title{font-size:.85rem;font-weight:600}.vibe-actions{grid-gap:10px;align-items:stretch;display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-top:14px}.vibe-actions .action-button.secondary{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;color:#111827}.vibe-actions .action-button.primary,.vibe-actions .action-button.secondary{align-items:center;display:inline-flex;gap:8px;justify-content:center;padding:10px 14px;width:100%}.vibe-actions .action-button.primary{background:linear-gradient(135deg,#9ca3af,#6b7280);border:1px solid #0000;border-radius:12px;color:#fff;overflow:hidden;position:relative}.vibe-actions .action-button.primary.active:not(.filling),.vibe-actions .action-button.primary:not(:disabled):not(.filling){background:linear-gradient(135deg,#7c3aed,#6d28d9)}.vibe-actions .action-button.primary.filling{background:linear-gradient(135deg,#e9d5ff,#ddd6fe)!important}.vibe-actions .action-button.primary:disabled{opacity:.7}.vibe-actions .action-button.primary .button-content{pointer-events:none;position:relative;z-index:2}.vibe-actions .action-button.primary .fill-progress{background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:12px;height:100%;left:0;position:absolute;top:0;transition:width .03s linear;width:0;z-index:1}.parking-modal{-webkit-overflow-scrolling:touch;background:#fff;border-top-left-radius:16px;border-top-right-radius:16px;bottom:0;box-shadow:0 -8px 24px #00000026;display:flex;flex-direction:column;left:0;max-height:calc(100vh - 72px);max-height:calc(100dvh - 72px);max-width:100vw;overflow:hidden;overscroll-behavior:contain;position:fixed;right:0;touch-action:pan-y}.parking-modal-header{align-items:flex-start;background:#fff;border-bottom:1px solid #f3f4f6;display:flex;flex-shrink:0;gap:16px;justify-content:space-between;min-height:60px;padding:20px 20px 16px}.parking-modal-content{-webkit-overflow-scrolling:touch;flex:1 1;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:16px}.parking-modal-header h2{color:#111827;flex:1 1;font-size:1.35rem;font-weight:700;line-height:1.3;margin:0;padding-top:4px}.parking-categories-scroll,.parking-details,.parking-location-selection,.parking-pricing-options{padding:0}.parking-location-selection{display:flex;flex-direction:column;gap:20px}.recommended-location-section{display:flex;flex-direction:column;gap:8px}.recommended-location-label{color:#6b7280;font-size:.875rem;font-weight:600;margin-bottom:4px}.location-search-container{display:flex;flex-direction:column;gap:12px;margin-top:12px}.location-search-label{color:#6b7280;font-size:.875rem;font-weight:600;margin-bottom:4px}.location-search-input-wrapper{align-items:center;display:flex;position:relative;width:100%}.location-search-input{-webkit-appearance:none;appearance:none;background:#fafafa;color:#111827;font-size:16px;outline:none;padding:12px 16px;transition:all .2s;width:100%}.location-search-input:focus{background:#fff;border-color:#8b5cf6}.location-search-results{-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-top:8px;max-height:300px;overflow:hidden;overflow-y:auto;overscroll-behavior:contain}.location-result-item{align-items:flex-start;background:#fff;border:none;border-bottom:1px solid #f3f4f6;color:#111827;cursor:pointer;display:flex;font-size:.875rem;gap:10px;padding:12px 16px;text-align:left;transition:all .2s;width:100%}.location-result-item:last-child{border-bottom:none}.location-result-item:hover{background:#f9fafb}.location-result-item.selected{background:#f5f3ff;color:#7c3aed}.location-result-item svg{color:#6b7280;flex-shrink:0;margin-top:2px}.location-result-item.selected svg{color:#7c3aed}.location-result-content{display:flex;flex:1 1;flex-direction:column;gap:4px;min-width:0}.location-result-header{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.location-result-name{color:#111827;font-size:.875rem;font-weight:600}.location-result-item.selected .location-result-name{color:#7c3aed}.location-result-address{color:#6b7280;font-size:.75rem;line-height:1.4}.location-result-distance{color:#8b5cf6;font-size:.7rem;font-weight:500;margin-top:2px}.vibechECK-badge{align-items:center;background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:8px;color:#fff;display:inline-flex;font-size:.65rem;font-weight:600;gap:4px;letter-spacing:.3px;padding:2px 6px;text-transform:uppercase;white-space:nowrap}.vibechECK-badge svg{color:#fff;flex-shrink:0}.search-loading-indicator{align-items:center;display:flex;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.search-spinner{animation:spin .6s linear infinite;border:2px solid #e5e7eb;border-radius:50%;border-top-color:#8b5cf6;height:16px;width:16px}@keyframes spin{to{transform:rotate(1turn)}}.selected-location-chip{align-items:center;background:#f5f3ff;border:2px solid #8b5cf6;border-radius:12px;color:#7c3aed;display:flex;font-size:.875rem;font-weight:600;gap:8px;padding:12px 16px}.selected-location-chip svg{color:#7c3aed;flex-shrink:0}.clear-location-button{align-items:center;background:#0000;border:none;border-radius:4px;color:#7c3aed;cursor:pointer;display:flex;justify-content:center;margin-left:auto;padding:4px;transition:all .2s}.clear-location-button:hover{background:#7c3aed1a}.no-locations-message{color:#6b7280;font-size:.875rem;padding:2rem;text-align:center}.parking-categories-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}.parking-category{align-items:center;background:#fafafa;border:1px solid #e5e7eb;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:.8rem;justify-content:center;min-height:120px;padding:14px 12px;transition:all .2s ease}.parking-category.selected{background:#f5f3ff;border-color:#8b5cf6;box-shadow:0 8px 20px #8b5cf626}.parking-icon-circle{align-items:center;border-radius:12px;color:#fff;display:flex;font-size:20px;height:44px;justify-content:center;width:44px}.gradient-street{background:linear-gradient(135deg,#fb7185,#f97316)}.gradient-car-park{background:linear-gradient(135deg,#22d3ee,#3b82f6)}.gradient-private{background:linear-gradient(135deg,#34d399,#059669)}.gradient-other{background:linear-gradient(135deg,#c084fc,#8b5cf6)}.parking-category-title{color:#1f2937;font-size:.85rem;font-weight:600;text-align:center}.parking-pricing-options{flex:1 1;padding:6px 0 10px}.pricing-options-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}.pricing-option{align-items:center;background:#fafafa;border:1px solid #e5e7eb;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:8px;justify-content:center;padding:10px;transition:all .2s}.pricing-option.selected{background:#f5f3ff;border-color:#8b5cf6;box-shadow:0 6px 14px #8b5cf626}.pricing-icon-circle{align-items:center;border-radius:12px;color:#fff;display:flex;font-size:20px;height:44px;justify-content:center;width:44px}.gradient-free{background:linear-gradient(135deg,#34d399,#059669)}.gradient-paid{background:linear-gradient(135deg,#f97316,#ea580c)}.pricing-option-title{color:#111827;font-size:.85rem;font-weight:600;text-align:center}.parking-details{display:flex;flex:1 1;flex-direction:column;gap:14px;padding:6px 0 10px}.detail-group{display:flex;flex-direction:column;gap:6px}.detail-label{color:#111827;font-size:.875rem;font-weight:600}.detail-input,.detail-select,.detail-textarea{background:#fafafa;border:1px solid #e5e7eb;border-radius:12px;color:#111827;font-size:.875rem;outline:none;padding:10px 12px;transition:all .2s;width:100%}.detail-input:focus,.detail-select:focus,.detail-textarea:focus{background:#fff;border-color:#8b5cf6}.detail-textarea{font-family:inherit;resize:vertical}.quick-select-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.quick-chip{background:#fafafa;border:1px solid #e5e7eb;border-radius:8px;color:#374151;cursor:pointer;font-size:.8rem;font-weight:500;padding:6px 12px;transition:all .2s;white-space:nowrap}.quick-chip:hover{background:#f5f3ff;border-color:#8b5cf6;color:#7c3aed}.quick-chip.selected{background:linear-gradient(135deg,#7c3aed,#6d28d9);border-color:#8b5cf6;color:#fff;font-weight:600}.quick-chip:active{transform:scale(.97)}.difficulty-slider{align-items:center;display:flex;gap:12px}.range-input{-webkit-appearance:none;background:#e5e7eb;border-radius:3px;flex:1 1;height:6px;outline:none}.range-input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#8b5cf6;border-radius:50%;cursor:pointer;height:20px;width:20px}.range-input::-moz-range-thumb{background:#8b5cf6;border:none;border-radius:50%;cursor:pointer;height:20px;width:20px}.difficulty-value{color:#8b5cf6;font-size:.875rem;font-weight:600;min-width:40px;text-align:center}.checkbox-group{display:flex;flex-direction:column;gap:12px}.checkbox-label{align-items:center;color:#111827;cursor:pointer;display:flex;font-size:.875rem;gap:10px}.checkbox-label input[type=checkbox]{accent-color:#8b5cf6;border:2px solid #e5e7eb;border-radius:4px;cursor:pointer;height:20px;width:20px}.parking-actions{grid-gap:10px;align-items:stretch;background:#fff;border-top:1px solid #f3f4f6;display:grid;flex-shrink:0;gap:10px;grid-template-columns:1fr 1fr;padding:16px}.parking-actions .action-button.primary{background:linear-gradient(135deg,#9ca3af,#6b7280);border:1px solid #0000;border-radius:12px;color:#fff}.parking-actions .action-button.primary,.parking-actions .action-button.secondary{align-items:center;display:inline-flex;gap:8px;justify-content:center;padding:10px 14px;width:100%}.parking-actions .action-button.secondary{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;color:#111827}.parking-actions .action-button.primary.active{background:linear-gradient(135deg,#7c3aed,#6d28d9)}.parking-actions .action-button.primary:disabled{opacity:.7}@media (max-width:640px){.parking-modal{border-top-left-radius:20px;border-top-right-radius:20px;max-height:calc(100vh - 56px);max-height:calc(100dvh - 56px)}.parking-modal-header{min-height:54px;padding:18px 16px 14px}.parking-modal-header h2{font-size:1.1rem;padding-top:2px}.close-button{height:36px;padding:6px;width:36px}.close-button svg{height:20px;width:20px}.parking-actions,.parking-modal-content{padding:14px}.parking-categories-grid,.pricing-options-grid{gap:8px}.parking-category,.pricing-option{padding:8px}.parking-icon-circle,.pricing-icon-circle{height:40px;width:40px}.location-search-label,.parking-category-title,.pricing-option-title,.recommended-location-label{font-size:.8rem}.location-search-input{padding:10px 36px}.selected-location-chip{font-size:.8rem;padding:10px 14px}.location-result-item{padding:10px 14px}.location-result-name{font-size:.8rem}.vibechECK-badge{font-size:.6rem;padding:2px 5px}.detail-group{gap:5px}.detail-label{font-size:.8rem}.detail-input,.detail-select,.detail-textarea{font-size:16px;padding:9px 11px}.parking-actions .action-button{font-size:.875rem;padding:9px 12px}.quick-chip{font-size:.75rem;padding:5px 10px}}.reference-location-banner{background:linear-gradient(135deg,#c7d2fe59,#e5e7eb4d);border:1px solid #c7d2fe;border-radius:1rem;display:flex;flex-direction:column;gap:.8rem;margin-bottom:1.25rem;padding:1rem 1.25rem}.reference-banner-text{display:flex;flex-direction:column;gap:.3rem}.reference-heading{color:#312e81;font-size:.95rem;font-weight:600}.reference-context{color:#4b5563;font-size:.85rem}.reference-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.6rem}.reference-change-button{align-items:center;background:#4f46e514;border:1px solid #4f46e559;border-radius:.75rem;color:#4338ca;cursor:pointer;display:inline-flex;font-size:.85rem;font-weight:600;gap:.45rem;padding:.55rem 1.05rem;transition:all .2s ease}.reference-change-button:hover{background:#4f46e51f;border-color:#4f46e58c}@media (max-width:640px){.reference-location-banner{border-radius:.85rem;padding:.9rem 1rem}.reference-actions{align-items:stretch;flex-direction:column}.reference-change-button{justify-content:center;width:100%}}.beer-modal{background:#fff;border-top-left-radius:16px;border-top-right-radius:16px;bottom:0;box-shadow:0 -8px 24px #00000026;display:flex;flex-direction:column;left:0;max-height:calc(100vh - 72px);overflow:hidden;position:fixed;right:0}.beer-modal-header{align-items:flex-start;background:#fff;border-bottom:1px solid #f3f4f6;display:flex;flex-shrink:0;gap:16px;justify-content:space-between;min-height:60px;padding:20px 20px 16px}.beer-modal-header h2{color:#111827;flex:1 1;font-size:1.35rem;font-weight:700;line-height:1.3;margin:0;padding-top:4px}.beer-header-actions{gap:8px}.beer-header-actions,.close-button{align-items:center;display:flex;flex-shrink:0}.close-button{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;color:#6b7280;cursor:pointer;height:40px;justify-content:center;padding:8px;transition:all .2s;width:40px}.close-button:hover{background:#f3f4f6;border-color:#d1d5db;color:#111827}.close-button:active{transform:scale(.95)}.beer-modal-content{-webkit-overflow-scrolling:touch;flex:1 1;overflow-y:auto;overscroll-behavior:contain;padding:16px}.beer-types-scroll{padding:0}.beer-types-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}.beer-type{align-items:center;background:#fafafa;border:1px solid #e5e7eb;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:10px;justify-content:flex-start;min-height:100px;padding:14px 10px;transition:all .2s}.beer-type.selected{background:#f5f3ff;border-color:#8b5cf6;box-shadow:0 6px 14px #8b5cf626}.beer-icon-circle{align-items:center;background:linear-gradient(135deg,#f59e0b,#d97706);border:1px solid #0000;border-radius:12px;box-sizing:border-box;color:#fff;display:flex;font-size:20px;height:44px;justify-content:center;padding:6px;width:44px}.beer-icon-circle svg{stroke-width:2;color:#fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.beer-logo{height:100%;max-height:100%;max-width:100%;object-fit:contain;width:100%}.beer-type-title{align-items:center;display:flex;font-size:.85rem;font-weight:600;justify-content:center;line-height:1.3;min-height:2.2em;text-align:center;width:100%}.custom-beer-input-container{display:flex;flex-direction:column;gap:8px;margin-top:20px;padding:0 4px}.custom-beer-label{color:#111827;font-size:.875rem;font-weight:600}.custom-beer-input{-webkit-appearance:none;appearance:none;background:#fafafa;border:1px solid #e5e7eb;border-radius:12px;font-family:inherit;font-size:16px;outline:none;padding:12px 16px;transition:all .2s;width:100%}.custom-beer-input:focus{background:#fff;border-color:#8b5cf6;box-shadow:0 2px 8px #8b5cf626}.beer-sizes-container{padding:0}.beer-sizes-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}.beer-size{align-items:center;background:#fafafa;border:1px solid #e5e7eb;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:8px;justify-content:center;padding:10px;transition:all .2s}.beer-size.selected{background:#f5f3ff;border-color:#8b5cf6;box-shadow:0 6px 14px #8b5cf626}.beer-size-icon-circle{align-items:center;background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:12px;color:#fff;display:flex;height:44px;justify-content:center;width:44px}.beer-size-title{font-size:.85rem;font-weight:600;text-align:center}.beer-price{display:flex;flex-direction:column;gap:14px}.beer-modal-content .crowd-options{padding:0}.price-input-row{display:flex;flex-direction:column;gap:6px}.price-input-row label,.row-label{align-items:center;color:#111827;display:inline-flex;font-size:.875rem;font-weight:600;gap:6px}.price-quick-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.price-chip{background:#f9fafb;border:1px solid #e5e7eb;border-radius:999px;cursor:pointer;font-size:.875rem;font-weight:600;padding:6px 10px;transition:all .2s}.price-chip.selected{background:#f5f3ff;border-color:#8b5cf6}.price-input-wrap{align-items:center;background:#fafafa;border:1px solid #e5e7eb;border-radius:12px;display:flex;gap:6px;padding:8px 10px;transition:all .2s}.price-input-wrap:focus-within{background:#fff;border-color:#8b5cf6}.price-input-wrap .currency{color:#6b7280;font-weight:600}.price-input-wrap input{background:#0000;border:none;color:#111827;font-size:1rem;outline:none;width:100%}.beer-actions{grid-gap:10px;align-items:stretch;background:#fff;border-top:1px solid #f3f4f6;display:grid;flex-shrink:0;gap:10px;grid-template-columns:1fr 1fr;padding:16px}.beer-actions .action-button.primary{background:linear-gradient(135deg,#9ca3af,#6b7280);border:1px solid #0000;border-radius:12px;color:#fff;overflow:hidden;position:relative}.beer-actions .action-button.primary,.beer-actions .action-button.secondary{align-items:center;display:inline-flex;gap:8px;justify-content:center;padding:10px 14px;width:100%}.beer-actions .action-button.secondary{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;color:#111827}.beer-actions .action-button.primary.active:not(.filling){background:linear-gradient(135deg,#7c3aed,#6d28d9)}.beer-actions .action-button.primary.filling{background:linear-gradient(135deg,#e9d5ff,#ddd6fe)!important}.beer-actions .action-button.primary:disabled{opacity:.7}.beer-actions .action-button.primary .button-content{pointer-events:none;position:relative;z-index:2}.beer-actions .action-button.primary .fill-progress{background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:12px;height:100%;left:0;position:absolute;top:0;transition:width .03s linear;width:0;z-index:1}.happy-hour-toggle{align-items:center;display:flex;margin-top:1.25rem}.toggle-label{align-items:center;color:#1f2937;cursor:pointer;display:inline-flex;font-size:.95rem;font-weight:600;gap:.6rem}.toggle-label input{cursor:pointer;height:18px;width:18px}.happy-hour-details{background:#f9fafb;border:1px solid #e5e7eb;border-radius:1rem;display:flex;flex-direction:column;gap:.9rem;margin-top:1rem;padding:1rem}.happy-hour-input{display:flex;flex-direction:column;gap:.4rem}.happy-hour-input input{border:1px solid #d1d5db;border-radius:.75rem;font-size:.95rem;outline:none;padding:.7rem .9rem;transition:border-color .2s ease,box-shadow .2s ease}.happy-hour-input input:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.happy-hour-chip-grid{display:flex;flex-wrap:wrap;gap:.6rem}.happy-hour-chip{background:#fff;border:1px solid #d1d5db;border-radius:.75rem;color:#4b5563;cursor:pointer;font-size:.85rem;font-weight:600;padding:.55rem 1rem;transition:all .2s ease}.happy-hour-chip:hover{background:#f5f3ff;border-color:#8b5cf6;color:#6d28d9}.happy-hour-chip.selected{background:linear-gradient(135deg,#7c3aed,#6d28d9);border-color:#8b5cf6;box-shadow:0 8px 18px #7c3aed38;color:#fff}.myvibe-modal-overlay{align-items:center;background:#11182773;display:flex;inset:0;justify-content:center;padding:24px 16px;position:fixed;z-index:1200}.myvibe-modal{background:#fff;border-radius:28px;box-shadow:0 24px 60px #0f172a59;display:flex;flex-direction:column;height:clamp(520px,calc(100dvh - 64px),92vh);overflow:hidden;width:min(960px,100%)}.myvibe-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;gap:16px;justify-content:space-between;padding:24px 28px 20px}.myvibe-title-block{display:flex;flex-direction:column;gap:4px}.myvibe-header h2{color:#111827;font-size:1.6rem;font-weight:700;margin:0}.myvibe-header-actions{align-items:center;display:flex;gap:12px}.location-settings-button{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;color:#4338ca;cursor:pointer;display:flex;height:44px;justify-content:center;transition:all .2s ease;width:44px}.location-settings-button:hover{background:#eef2ff;border-color:#c7d2fe}.location-settings-button.active{background:linear-gradient(135deg,#7c3aed,#6d28d9);border-color:#7c3aed;box-shadow:0 10px 18px #7c3aed38;color:#fff}.myvibe-modal .close-button{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;color:#6b7280;cursor:pointer;display:flex;height:44px;justify-content:center;transition:all .2s ease;width:44px}.myvibe-modal .close-button:hover{background:#f3f4f6;border-color:#d1d5db;color:#111827}.myvibe-content{display:flex;flex:1 1;flex-direction:column;gap:24px;overflow-y:auto;overscroll-behavior:contain;padding:0 28px 28px}.myvibe-search-block{display:flex;flex-direction:column;gap:12px;margin-top:4px}.search-input-wrapper{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:14px;display:flex;gap:10px;padding:12px 16px}.search-input-wrapper input{background:#0000;border:none;color:#111827;flex:1 1;font-size:1rem;font-weight:500;outline:none}.search-input-wrapper svg{color:#6b7280}.location-indicator{color:#2563eb}.filter-chip-row{display:flex;flex-wrap:wrap;gap:10px}.popular-categories-scroll{-webkit-overflow-scrolling:touch;display:flex;gap:10px;margin-right:-8px;margin-top:8px;overflow-x:auto;padding-bottom:6px;padding-right:8px}.popular-categories-scroll::-webkit-scrollbar{display:none}.popular-chip{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 1px 2px #0f172a0d;color:#4b5563;cursor:pointer;display:inline-flex;flex:0 0 auto;font-size:.85rem;font-weight:500;gap:8px;padding:10px 16px;transition:all .2s ease}.popular-chip span{white-space:nowrap}.popular-chip:hover{background:#f5f3ff;border-color:#c7d2fe;color:#4338ca}.popular-chip.active{background:linear-gradient(135deg,#7c3aed,#6d28d9);border-color:#7c3aed;box-shadow:0 10px 20px #7c3aed2e;color:#fff}.active-location-banner{background:#f9fafb;border:1px solid #e5e7eb;border-radius:14px;display:flex;flex-direction:column;gap:16px;margin-top:12px;padding:16px}.active-location-banner.warning{background:#fff1f2;border-color:#fda4af}.location-actions{display:flex;flex-wrap:wrap;gap:10px}.location-edit-button,.location-use-current-inline{align-items:center;background:#eef2ff;border:1px solid #c7d2fe;border-radius:10px;color:#4338ca;cursor:pointer;display:inline-flex;font-size:.85rem;font-weight:600;gap:6px;padding:8px 14px;transition:all .2s ease}.location-edit-button:hover,.location-use-current-inline:hover{background:#e0e7ff;border-color:#7c3aed;color:#312e81}.location-chip{align-items:center;display:flex;gap:12px}.location-chip-text{display:flex;flex-direction:column;gap:2px}.chip-label{color:#6b7280;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase}.chip-value{color:#1f2937;font-size:.95rem;font-weight:600}.location-settings-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;display:flex;flex-direction:column;gap:16px;padding:16px}.location-settings-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.location-settings-header h3{color:#1f2937;font-size:1.05rem;margin:0}.location-settings-header p{color:#6b7280;font-size:.85rem;margin:4px 0 0}.location-search-input{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;display:flex;gap:10px;padding:10px 14px}.location-search-input input{background:#0000;border:none;color:#111827;flex:1 1;font-size:.95rem;outline:none}.location-suggestions{display:flex;flex-direction:column;gap:10px;max-height:240px;overflow-y:auto;padding-right:6px}.location-suggestion{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:12px;cursor:pointer;display:flex;gap:12px;justify-content:space-between;padding:10px 12px;transition:all .2s ease}.location-suggestion:hover{background:#f8faff;border-color:#c7d2fe}.suggestion-main{align-items:flex-start;display:flex;flex-direction:column}.suggestion-title{color:#1f2937;font-size:.95rem;font-weight:600}.suggestion-subtitle{color:#6b7280;font-size:.8rem}.suggestion-action{color:#4338ca;font-size:.8rem;font-weight:600}.location-empty{background:#f9fafb;border:1px dashed #d1d5db;border-radius:12px;color:#6b7280;font-size:.85rem;padding:12px;text-align:center}.filter-chip{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:999px;color:#4b5563;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:500;gap:6px;padding:8px 14px;transition:all .2s ease}.filter-chip:hover{background:#eef2ff;border-color:#c7d2fe;color:#4338ca}.filter-chip.active{background:linear-gradient(135deg,#7c3aed,#6d28d9);border-color:#7c3aed;box-shadow:0 8px 20px #7c3aed40;color:#fff}.preferences-card{background:radial-gradient(circle at top left,#7c3aed14,#0000 55%),#fff;border:1px solid #e5e7eb;border-radius:18px;display:flex;flex-direction:column;gap:16px;padding:20px}.preferences-header{align-items:flex-start;color:#4b5563;display:flex;gap:12px}.preferences-header svg{color:#7c3aed}.preferences-header h3{color:#1f2937;font-size:1.05rem;margin:0}.preferences-header p{color:#6b7280;font-size:.85rem;margin:4px 0 0}.preferences-grid{display:flex;flex-wrap:wrap;gap:10px}.preference-toggle{align-items:center;background:#f5f3ff;border:1px solid #7c3aed59;border-radius:12px;color:#5b21b6;cursor:pointer;display:inline-flex;font-size:.9rem;gap:6px;padding:10px 16px;transition:all .2s ease}.preference-toggle.selected{background:linear-gradient(135deg,#7c3aed,#6d28d9);border-color:#0000;box-shadow:0 12px 24px #7c3aed38;color:#fff}.preference-toggle:hover{transform:translateY(-1px)}.myvibe-section{display:flex;flex-direction:column;gap:16px}.section-header{align-items:flex-end;display:flex;gap:12px;justify-content:space-between}.section-header h3{color:#1f2937;font-size:1.2rem;margin:0}.section-subtitle{color:#6b7280;display:block;font-size:.8rem;margin-top:4px}.section-count{color:#6b7280;font-size:.85rem}.centre-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.centre-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;cursor:pointer;display:flex;flex-direction:column;gap:14px;padding:18px;position:relative;text-align:left;transition:all .2s ease}.centre-card:hover{border-color:#c7d2fe;box-shadow:0 12px 28px #4f46e51f;transform:translateY(-2px)}.centre-card-header{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.centre-card-header h4{color:#1f2937;font-size:1.05rem;margin:0}.distance-pill{background:#eef2ff;border-radius:999px;color:#4338ca;font-size:.75rem;font-weight:600;padding:4px 10px}.centre-card-body{display:flex;flex-direction:column;gap:10px}.centre-meta{align-items:center;color:#4b5563;display:inline-flex;font-size:.85rem;gap:6px}.centre-preview-shops{display:flex;flex-wrap:wrap;gap:6px}.centre-preview-shops span{background:#f9fafb;border-radius:10px;color:#4b5563;font-size:.8rem;padding:6px 10px}.shop-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.shop-card{align-items:stretch}.shop-card .centre-card-body{gap:12px}.shop-category-pill{align-items:center;background:#f5f3ff;border-radius:999px;color:#5b21b6;display:inline-flex;font-size:.8rem;font-weight:600;gap:6px;padding:6px 12px;width:-webkit-fit-content;width:fit-content}.shop-category-pill svg{color:#7c3aed}.shop-location-meta{color:#4b5563;font-size:.85rem}.shop-location-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{background:#f9fafb;border:1px dashed #d1d5db;border-radius:16px;color:#6b7280;padding:28px;text-align:center}.empty-state p{color:#1f2937;font-size:1rem;margin:0 0 6px}.empty-state span{font-size:.85rem}@media (max-width:768px){.myvibe-modal-overlay{padding:0}.myvibe-modal{border-radius:0;box-shadow:none;height:100dvh;width:100%}.myvibe-content{gap:20px;padding:0 20px 24px}.centre-grid{grid-template-columns:1fr}.search-input-wrapper{font-size:16px;padding:12px}.search-input-wrapper input{font-size:16px}.myvibe-header{padding:calc(16px + env(safe-area-inset-top)) 20px 16px}.active-location-banner{align-items:stretch}.location-actions{flex-direction:column}.location-edit-button,.location-use-current-inline{justify-content:center;width:100%}.location-settings-card{padding:16px}.location-settings-header{align-items:stretch;flex-direction:column;gap:12px}}
/*# sourceMappingURL=main.05d4d375.css.map*/