.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;top:0;left:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:0 0}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{-webkit-transform-origin:0 0;width:1600px;height:1600px}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{width:auto;padding:0;max-width:none!important;max-height:none!important}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:#33b5e566}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;z-index:800;width:0;height:0}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{z-index:800;pointer-events:visiblePainted;pointer-events:auto;position:relative}.leaflet-top,.leaflet-bottom{z-index:1000;pointer-events:none;position:absolute}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;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{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{outline-offset:1px;background:#ddd}.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:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px #000000a6}.leaflet-bar a{text-align:center;color:#000;background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;text-decoration:none;display:block}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom:none;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.leaflet-bar a.leaflet-disabled{cursor:default;color:#bbb;background-color:#f4f4f4}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{text-indent:1px;font:700 18px Lucida Console,Monaco,monospace}.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);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{color:#333;background:#fff;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{padding-right:5px;overflow:hidden scroll}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{font-size:1.08333em;display:block}.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:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;padding:0 5px;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{width:1em;height:.6669em;vertical-align:baseline!important;display:inline!important}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{white-space:nowrap;box-sizing:border-box;text-shadow:1px 1px #fff;background:#fffc;border:2px solid #777;border-top:none;padding:2px 5px 1px;line-height:1.1}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{background-clip:padding-box;border:2px solid #0003}.leaflet-popup{text-align:center;margin-bottom:20px;position:absolute}.leaflet-popup-content-wrapper{text-align:left;border-radius:12px;padding:1px}.leaflet-popup-content{min-height:1px;margin:13px 24px 13px 20px;font-size:1.08333em;line-height:1.3}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{pointer-events:none;width:40px;height:20px;margin-top:-1px;margin-left:-20px;position:absolute;left:50%;overflow:hidden}.leaflet-popup-tip{pointer-events:auto;width:17px;height:17px;margin:-10px auto 0;padding:1px;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{color:#333;background:#fff;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{text-align:center;color:#757575;background:0 0;border:none;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;text-decoration:none;position:absolute;top:0;right:0}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";width:24px;filter:progid:DXImageTransform.Microsoft.Matrix(M11=.707107, M12=.707107, M21=-.707107, M22=.707107);margin:0 auto}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{color:#222;white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none;background-color:#fff;border:1px solid #fff;border-radius:3px;padding:6px;position:absolute;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{pointer-events:none;content:"";background:0 0;border:6px solid #0000;position:absolute}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{margin-left:-6px;left:50%}.leaflet-tooltip-top:before{border-top-color:#fff;margin-bottom:-12px;bottom:0}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-top:-12px;margin-left:-6px;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;margin-left:-12px;left:0}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}:root{--bg-dark:#f4f7fb;--bg-card:#fff;--bg-card-hover:#f8fafc;--bg-surface:#fff;--bg-glass:#ffffffeb;--bg-glass-strong:#fff;--primary:#10b981;--primary-hover:#059669;--primary-light:#10b9811f;--primary-glow:#10b98133;--secondary:#06b6d4;--secondary-glow:#06b6d459;--accent:#8b5cf6;--accent-glow:#8b5cf64d;--warning:#f59e0b;--danger:#ef4444;--text-main:#172033;--text-muted:#5b677a;--text-dim:#7b8798;--border-glass:#e5eaf1;--border-glass-hover:#cbd5e1;--border-active:#10b98180;--font-family:"Segoe UI", Arial, sans-serif;--shadow-sm:0 2px 8px #0f172a0f;--shadow-md:0 8px 24px #0f172a17;--shadow-lg:0 16px 40px #0f172a29;--shadow-glow:0 0 25px var(--primary-glow);--transition-fast:.18s cubic-bezier(.4, 0, .2, 1);--transition-normal:.28s cubic-bezier(.4, 0, .2, 1);--transition-bounce:.4s cubic-bezier(.34, 1.56, .64, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-dark);color:var(--text-main);background-image:radial-gradient(at 0 0,#10b9810f 0,#0000 50%),radial-gradient(at 100% 0,#06b6d40d 0,#0000 50%);background-attachment:fixed;min-height:100vh;line-height:1.55;overflow-x:hidden}button,input,select,textarea{font:inherit}html{font-family:var(--font-family);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#e8edf3}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--primary)}.app-container{max-width:1440px;margin:0 auto;padding:0 1.5rem}.glass-panel{background:var(--bg-glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-glass);border-radius:16px}.glass-card{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-glass);transition:transform var(--transition-normal), border-color var(--transition-normal), box-shadow var(--transition-normal);border-radius:16px;overflow:hidden}.glass-card:hover{border-color:var(--border-glass-hover);box-shadow:var(--shadow-md), 0 0 20px #10b98114;transform:translateY(-4px)}.btn{cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;border:none;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-family:inherit;font-size:.9rem;font-weight:600;display:inline-flex}.btn-primary{color:#fff;box-shadow:0 4px 14px var(--primary-glow);background:linear-gradient(135deg,#10b981 0%,#059669 100%)}.btn-primary:hover{box-shadow:0 6px 20px var(--primary-glow);filter:brightness(1.1);transform:translateY(-2px)}.btn-secondary{color:var(--text-main);border:1px solid var(--border-glass);background:#fff}.btn-secondary:hover{border-color:var(--border-glass-hover);background:#f8fafc}.btn-outline{color:var(--primary);border:1px solid var(--primary);background:0 0}.btn-outline:hover{background:var(--primary-light)}.btn-icon{border:1px solid var(--border-glass);width:38px;height:38px;color:var(--text-main);background:#ffffff0d;border-radius:10px;padding:0}.btn-icon:hover{color:var(--primary);border-color:var(--primary);background:#ffffff1f}.input-control,.select-control{border:1px solid var(--border-glass);width:100%;color:var(--text-main);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);background:#fff;border-radius:10px;outline:none;padding:.7rem 1rem;font-family:inherit;font-size:.9rem}.input-control:focus,.select-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.select-control option{color:var(--text-main);background:#fff}.badge{text-transform:uppercase;letter-spacing:.04em;border-radius:20px;align-items:center;gap:.35rem;padding:.25rem .65rem;font-size:.75rem;font-weight:700;display:inline-flex}.badge-image{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0}.badge-video{color:#be123c;background:#fff1f2;border:1px solid #fecdd3}.badge-audio{color:#6d28d9;background:#f5f3ff;border:1px solid #ddd6fe}.badge-province{color:#0e7490;background:#ecfeff;border:1px solid #a5f3fc}.badge-topic{color:#b45309;background:#fffbeb;border:1px solid #fde68a}.modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:1000;background:#0f172a66;justify-content:center;align-items:center;padding:1.5rem;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-content{border:1px solid var(--border-glass);width:100%;max-width:900px;max-height:90vh;box-shadow:var(--shadow-lg);background:#fff;border-radius:20px;animation:.25s cubic-bezier(.16,1,.3,1) scaleIn;position:relative;overflow-y:auto}.leaflet-container{z-index:10;border-radius:16px;width:100%;height:100%;font-family:var(--font-family)!important;background:#eaf0f5!important}.leaflet-popup-content-wrapper{-webkit-backdrop-filter:blur(12px)!important;backdrop-filter:blur(12px)!important;color:var(--text-main)!important;border:1px solid var(--border-glass)!important;box-shadow:var(--shadow-md)!important;background:#fffffffa!important;border-radius:12px!important;padding:4px!important}.leaflet-popup-tip{background:#fff!important}.mapview-root{border:1px solid var(--border-glass);background:#f1f5f9;border-radius:20px;width:100%;height:calc(100vh - 120px);min-height:640px;display:flex;position:relative;overflow:hidden;box-shadow:0 16px 40px -10px #0f172a1f}.mapview-canvas{z-index:1;width:100%;height:100%}.mapview-canvas .leaflet-container{border-radius:20px;width:100%;height:100%;font-family:var(--font-family)!important;background:#eaf0f5!important}.mapview-topbar{z-index:400;flex-wrap:wrap;align-items:center;gap:.6rem;max-width:calc(100% - 2rem);display:flex;position:absolute;top:1rem;left:1rem}.mapview-pill{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--text-main);align-items:center;gap:.5rem;padding:.45rem .85rem;font-size:.82rem;transition:all .2s;display:flex;box-shadow:0 4px 14px #0f172a14;background:#fffffff5!important;border:1px solid #e2e8f0e6!important;border-radius:999px!important}.mapview-pill:hover{box-shadow:0 6px 18px #0f172a1f;background:#fff!important}.mapview-filter select{color:var(--text-main);cursor:pointer;background:0 0;border:none;outline:none;padding-right:.25rem;font-size:.82rem;font-weight:600}.mapview-legend-dot{background:#10b981;border-radius:50%;width:9px;height:9px;animation:2s ease-in-out infinite pulseDot;display:inline-block;box-shadow:0 0 8px #10b981}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.3)}}.mapview-reset-btn{cursor:pointer;color:#065f46;font-weight:600;border:1px solid #10b9814d!important}.mapview-reset-btn:hover{color:#047857;background:#ecfdf5!important}.mapview-groups-ribbon{z-index:400;scrollbar-width:thin;align-items:center;gap:.5rem;max-width:calc(100% - 2rem);padding:.25rem .25rem .5rem;display:flex;position:absolute;top:4.2rem;left:1rem;overflow-x:auto}.mapview-groups-ribbon::-webkit-scrollbar{height:4px}.mapview-groups-ribbon::-webkit-scrollbar-thumb{background:#94a3b866;border-radius:4px}.mapview-chip{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text-main);cursor:pointer;background:#fffffff0;border:1px solid #e2e8f0e6;border-radius:999px;flex-shrink:0;align-items:center;gap:.4rem;padding:.35rem .75rem;font-size:.78rem;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:0 2px 8px #0f172a0f}.mapview-chip:hover{background:#fff;border-color:#10b981;transform:translateY(-1px);box-shadow:0 4px 12px #0f172a1f}.mapview-chip.active{color:#fff;background:linear-gradient(135deg,#10b981,#059669);border-color:#059669;box-shadow:0 4px 14px #10b98166}.mapview-chip-count{background:#0f172a14;border-radius:999px;padding:1px 6px;font-size:.72rem;font-weight:700}.mapview-chip.active .mapview-chip-count{color:#fff;background:#ffffff40}.map-group-pin-wrapper{background:0 0!important;border:none!important}.map-group-pin{cursor:pointer;will-change:transform;flex-direction:column;align-items:center;transition:transform .25s cubic-bezier(.16,1,.3,1);display:flex}.map-group-pin:hover{transform:scale(1.18);z-index:9999!important}.map-group-pin.active{transform:scale(1.22);z-index:10000!important}.map-group-bubble{background:#1e293b;border:3px solid #10b981;border-radius:50%;width:50px;height:50px;transition:border-color .2s,box-shadow .2s;position:relative;overflow:hidden;box-shadow:0 6px 16px #10b98159,0 3px 8px #0f172a4d}.map-group-pin:hover .map-group-bubble,.map-group-pin.active .map-group-bubble{border-color:#38bdf8;box-shadow:0 0 20px #38bdf899,0 6px 18px #0f172a59}.map-group-bubble img{object-fit:cover;width:100%;height:100%;display:block}.map-group-badge{color:#fff;background:linear-gradient(135deg,#059669,#10b981);border:2px solid #fff;border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 6px;font-size:11px;font-weight:800;display:flex;position:absolute;top:-5px;right:-5px;box-shadow:0 2px 6px #0f172a4d}.map-group-label{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;white-space:nowrap;background:#0f172ae0;border:1px solid #ffffff40;border-radius:999px;align-items:center;gap:.3rem;max-width:140px;margin-top:4px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex;box-shadow:0 2px 8px #0000004d}.map-group-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.map-group-dot{background:#34d399;border-radius:50%;flex-shrink:0;width:6px;height:6px}.custom-pin-marker-wrapper{background:0 0!important;border:none!important}.pin-active-target{justify-content:center;align-items:center;width:44px;height:44px;display:flex;position:relative}.pin-target-pulse{background:#10b9814d;border-radius:50%;animation:1.8s ease-out infinite targetPulse;position:absolute;inset:0}@keyframes targetPulse{0%{opacity:1;transform:scale(.6)}to{opacity:0;transform:scale(1.6)}}.pin-target-core{color:#fff;background:#10b981;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;display:flex;box-shadow:0 0 14px #10b981cc,0 4px 8px #0000004d}.mapview-pin-banner{z-index:500;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-glass);background:#fffffffa;border-radius:16px;align-items:center;gap:1rem;width:min(640px,100% - 2rem);padding:.85rem 1.1rem;animation:.25s ease-out slideUpFade;display:flex;position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #0f172a29}.mapview-pin-thumb{border:2px solid #10b981;border-radius:12px;flex-shrink:0;width:54px;height:54px;overflow:hidden}.mapview-pin-thumb img{object-fit:cover;width:100%;height:100%}.mapview-pin-info{flex:1;min-width:0}.mapview-pin-title{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;font-size:.86rem;overflow:hidden}.mapview-pin-coords{color:var(--text-muted);margin-top:.25rem;font-size:.78rem}.mapview-pin-coords.active{color:#059669;font-weight:700}.mapview-pin-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.map-group-drawer{z-index:450;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffffa;border-left:1px solid #e2e8f0e6;flex-direction:column;width:min(460px,100%);animation:.3s cubic-bezier(.16,1,.3,1) slideInRight;display:flex;position:absolute;top:0;bottom:0;right:0;box-shadow:-8px 0 32px #0f172a26}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideUpFade{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}.map-drawer-header{border-bottom:1px solid var(--border-glass);background:#fff;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:1.1rem 1.25rem;display:flex}.map-drawer-header-info{flex:1;min-width:0}.map-drawer-title-row{align-items:center;gap:.5rem;display:flex}.map-drawer-icon{color:#10b981;background:#10b9811f;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.map-drawer-header-info h2{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1.15rem;font-weight:800;overflow:hidden}.map-drawer-province{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.4rem;display:flex}.map-drawer-address{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:.78rem;overflow:hidden}.map-drawer-coords-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.coords-text{color:var(--text-muted);background:#f1f5f9;border-radius:6px;padding:.2rem .5rem;font-family:monospace;font-size:.75rem}.btn-coords-action{border:1px solid var(--border-glass);color:var(--text-main);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:.3rem;padding:.2rem .5rem;font-size:.72rem;text-decoration:none;transition:all .15s;display:inline-flex}.btn-coords-action:hover{color:#059669;background:#f8fafc;border-color:#10b981}.map-drawer-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:.3rem;transition:all .2s;display:flex}.map-drawer-close:hover{color:var(--text-main);background:#f1f5f9}.map-drawer-toolbar{border-bottom:1px solid var(--border-glass);background:#f8fafc;align-items:center;gap:.6rem;padding:.75rem 1.25rem;display:flex}.map-drawer-search{border:1px solid var(--border-glass);background:#fff;border-radius:10px;flex:1;align-items:center;gap:.4rem;padding:.4rem .65rem;display:flex}.map-drawer-search input{width:100%;color:var(--text-main);background:0 0;border:none;outline:none;font-size:.8rem}.btn-clear-search{cursor:pointer;color:var(--text-muted);background:0 0;border:none;display:flex}.map-drawer-sort select{border:1px solid var(--border-glass);color:var(--text-main);cursor:pointer;background:#fff;border-radius:10px;outline:none;padding:.4rem .6rem;font-size:.78rem}.map-drawer-count-bar{color:var(--text-muted);background:#fff;border-bottom:1px solid #e2e8f099;padding:.5rem 1.25rem;font-size:.78rem}.map-drawer-count-bar strong{color:#10b981}.map-drawer-photo-list{flex-direction:column;flex:1;gap:1rem;padding:1rem 1.25rem;display:flex;overflow-y:auto}.map-drawer-empty{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:.75rem;padding:3rem 1rem;font-size:.85rem;display:flex}.map-photo-card{cursor:pointer;background:#fff;border:1px solid #e2e8f0e6;border-radius:14px;flex-direction:column;transition:all .22s cubic-bezier(.16,1,.3,1);display:flex;overflow:hidden;box-shadow:0 4px 14px #0f172a0d}.map-photo-card:hover{border-color:#10b981;transform:translateY(-2px);box-shadow:0 8px 24px #10b98126}.map-photo-card-media{background:#e2e8f0;width:100%;height:180px;position:relative;overflow:hidden}.map-photo-card-media img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.map-photo-card:hover .map-photo-card-media img{transform:scale(1.05)}.map-photo-quick-preview{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;cursor:pointer;opacity:.85;background:#0f172ab3;border:1px solid #ffffff4d;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex;position:absolute;top:.6rem;right:.6rem}.map-photo-quick-preview:hover{opacity:1;background:#10b981;border-color:#10b981;transform:scale(1.1)}.map-photo-topic-badge{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;background:#0f172abf;border:1px solid #fff3;border-radius:999px;padding:.2rem .55rem;font-size:.7rem;font-weight:700;position:absolute;bottom:.6rem;left:.6rem}.map-photo-card-body{flex-direction:column;gap:.5rem;padding:.9rem 1rem;display:flex}.map-photo-card-title{color:var(--text-main);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.95rem;font-weight:700;line-height:1.35;display:-webkit-box;overflow:hidden}.map-photo-card-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.75rem;display:flex}.meta-item{align-items:center;gap:.3rem;display:inline-flex}.meta-item.rating{color:#b45309;font-weight:700}.map-photo-card-footer{border-top:1px solid #e2e8f0b3;justify-content:flex-end;align-items:center;margin-top:.3rem;padding-top:.6rem;display:flex}.btn-view-photo-detail{color:#fff;cursor:pointer;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;align-items:center;gap:.4rem;padding:.4rem .85rem;font-size:.78rem;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 2px 6px #10b98140}.btn-view-photo-detail:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px);box-shadow:0 4px 12px #10b98159}.map-lightbox-overlay{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:2000;background:#0f172ad9;justify-content:center;align-items:center;padding:1.5rem;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.map-lightbox-content{background:#0f172a;border:1px solid #ffffff26;border-radius:18px;flex-direction:column;width:min(920px,95vw);max-height:92vh;animation:.25s cubic-bezier(.16,1,.3,1) scaleIn;display:flex;overflow:hidden;box-shadow:0 24px 60px #0009}.map-lightbox-header{background:#1e293b;border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.map-lightbox-title-box h4{color:#fff;margin:0;font-size:1rem;font-weight:700}.map-lightbox-title-box p{color:#94a3b8;margin:.2rem 0 0;font-size:.78rem}.map-lightbox-actions{align-items:center;gap:.6rem;display:flex}.map-lightbox-close{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:.3rem;transition:all .2s;display:flex}.map-lightbox-close:hover{color:#fff;background:#ffffff1a}.map-lightbox-stage{background:#020617;flex:1;justify-content:center;align-items:center;min-height:380px;max-height:65vh;display:flex;position:relative;overflow:hidden}.map-lightbox-stage img{object-fit:contain;max-width:100%;max-height:65vh}.lightbox-nav-btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;cursor:pointer;background:#0f172ab3;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:all .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-nav-btn:hover:not(:disabled){background:#10b981;border-color:#10b981;transform:translateY(-50%)scale(1.1)}.lightbox-nav-btn:disabled{opacity:.3;cursor:not-allowed}.lightbox-nav-btn.prev{left:1rem}.lightbox-nav-btn.next{right:1rem}.map-lightbox-footer{background:#1e293b;border-top:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;display:flex}.lightbox-meta{color:#94a3b8;align-items:center;gap:1.25rem;font-size:.8rem;display:flex}.lightbox-meta strong{color:#fff}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulseGlow{0%,to{box-shadow:0 0 15px #10b98166}50%{box-shadow:0 0 30px #10b981b3}}.pulse-animation{animation:2s ease-in-out infinite pulseGlow}.upload-modal-header{border-bottom:1px solid var(--border-glass);justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding-bottom:1rem;display:flex}.upload-modal-title-wrap{align-items:center;gap:.85rem;display:flex}.upload-title-icon-badge{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex;box-shadow:0 4px 12px #10b98140}.upload-modal-title{font-size:1.2rem;font-weight:800;line-height:1.3}.upload-modal-desc{margin-top:.2rem;font-size:.8rem}.upload-modal-actions-top{align-items:center;gap:.6rem;display:flex}.upload-theme-toggle{cursor:pointer;border-radius:20px;align-items:center;gap:.45rem;padding:.4rem .75rem;font-size:.78rem;font-weight:600;transition:all .2s;display:inline-flex}.upload-modal-close-btn{cursor:pointer;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex}.upload-modal-form{flex-direction:column;gap:1.2rem;display:flex}.upload-dropzone{text-align:center;cursor:pointer;border-radius:14px;padding:1.5rem;transition:all .2s;position:relative}.upload-dropzone-input{opacity:0;cursor:pointer;z-index:5;width:100%;height:100%;position:absolute;inset:0}.upload-dropzone-empty{flex-direction:column;align-items:center;gap:.6rem;display:flex}.upload-dropzone-icon-ring{border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;transition:transform .2s;display:flex}.upload-dropzone:hover .upload-dropzone-icon-ring{transform:scale(1.08)}.upload-dropzone-heading{font-size:.95rem;font-weight:700}.upload-dropzone-sub{font-size:.78rem}.upload-preview-box{flex-direction:column;align-items:center;gap:.75rem;display:flex}.upload-preview-media{object-fit:contain;border-radius:10px;max-height:170px;box-shadow:0 4px 12px #00000026}.upload-preview-details{flex-direction:column;align-items:center;gap:.25rem;display:flex}.upload-file-status{align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;display:inline-flex}.upload-file-subtext{font-size:.75rem}.upload-audio-box{flex-direction:column;align-items:center;gap:.5rem;display:flex}.upload-audio-name{font-size:.9rem;font-weight:700}.upload-form-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (width<=640px){.upload-form-grid{grid-template-columns:1fr}}.upload-form-field{flex-direction:column;display:flex}.upload-field-label{align-items:center;gap:.4rem;margin-bottom:.4rem;font-size:.82rem;display:flex}.upload-field-label .field-icon{opacity:.75}.upload-field-input,.upload-field-select{border-radius:10px;outline:none;width:100%;padding:.65rem .85rem;font-family:inherit;font-size:.875rem;transition:all .2s}.upload-status-alert{border:1px solid;border-radius:10px;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.82rem;display:flex}.upload-form-actions{border-top:1px solid var(--border-glass);justify-content:flex-end;align-items:center;gap:.75rem;margin-top:.5rem;padding-top:.75rem;display:flex}.upload-btn-cancel{cursor:pointer;border-radius:10px;padding:.65rem 1.25rem;font-family:inherit;font-size:.875rem;font-weight:600;transition:all .2s}.upload-btn-submit{cursor:pointer;border:none;border-radius:10px;align-items:center;gap:.5rem;padding:.65rem 1.4rem;font-family:inherit;font-size:.875rem;font-weight:700;transition:all .2s;display:inline-flex}.upload-btn-submit:disabled,.upload-btn-cancel:disabled{opacity:.6;cursor:not-allowed}.upload-modal-light{color:#0f172a!important;background:#fff!important;border:1px solid #e2e8f0!important;box-shadow:0 25px 60px -15px #0f172a33,0 0 0 1px #e2e8f0cc!important}.upload-modal-light .upload-modal-header{border-bottom:1px solid #f1f5f9}.upload-modal-light .upload-modal-title{color:#0f172a}.upload-modal-light .upload-modal-desc{color:#64748b}.upload-modal-light .upload-title-icon-badge{color:#fff;background:linear-gradient(135deg,#10b981 0%,#059669 100%)}.upload-modal-light .upload-theme-toggle{color:#334155;background:#f8fafc;border:1px solid #cbd5e1}.upload-modal-light .upload-theme-toggle:hover{background:#f1f5f9;border-color:#94a3b8}.upload-modal-light .upload-modal-close-btn{color:#64748b;background:#f8fafc;border:1px solid #e2e8f0}.upload-modal-light .upload-modal-close-btn:hover{color:#0f172a;background:#f1f5f9}.upload-modal-light .upload-dropzone{background:#f8fafc;border:2px dashed #cbd5e1}.upload-modal-light .upload-dropzone:hover{background:#f0fdf4;border-color:#10b981}.upload-modal-light .upload-dropzone-heading{color:#0f172a}.upload-modal-light .upload-dropzone-sub{color:#64748b}.upload-modal-light .upload-dropzone-icon-ring{color:#059669;background:#ecfdf5}.upload-modal-light .upload-file-status{color:#059669}.upload-modal-light .upload-file-subtext{color:#64748b}.upload-modal-light .upload-preview-box{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:.5rem}.upload-modal-light .upload-field-label{color:#334155;font-weight:600}.upload-modal-light .upload-field-input,.upload-modal-light .upload-field-select{color:#0f172a;background:#fff;border:1.5px solid #cbd5e1}.upload-modal-light .upload-field-input:focus,.upload-modal-light .upload-field-select:focus{border-color:#10b981;box-shadow:0 0 0 3px #10b98126}.upload-modal-light .upload-field-input::placeholder{color:#94a3b8}.upload-modal-light .upload-status-alert.success{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.upload-modal-light .upload-status-alert.error{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.upload-modal-light .upload-form-actions{border-top:1px solid #f1f5f9}.upload-modal-light .upload-btn-cancel{color:#475569;background:#f8fafc;border:1px solid #cbd5e1}.upload-modal-light .upload-btn-cancel:hover{color:#0f172a;background:#f1f5f9}.upload-modal-light .upload-btn-submit{color:#fff;background:linear-gradient(135deg,#10b981 0%,#059669 100%);box-shadow:0 4px 14px #10b98159}.upload-modal-light .upload-btn-submit:hover:not(:disabled){background:linear-gradient(135deg,#059669 0%,#047857 100%);box-shadow:0 6px 18px #10b98173}.upload-modal-dark{color:#f8fafc!important;border:1px solid var(--border-glass-hover)!important;background:#0f172a!important}.upload-modal-dark .upload-modal-title{color:#fff}.upload-modal-dark .upload-modal-desc{color:var(--text-muted)}.upload-modal-dark .upload-title-icon-badge{color:#10b981;background:#10b98126}.upload-modal-dark .upload-theme-toggle{border:1px solid var(--border-glass-hover);color:var(--text-main);background:#0f172acc}.upload-modal-dark .upload-modal-close-btn{border:1px solid var(--border-glass);color:var(--text-muted);background:0 0}.upload-modal-dark .upload-modal-close-btn:hover{color:#fff;border-color:var(--border-glass-hover)}.upload-modal-dark .upload-dropzone{border:2px dashed var(--border-glass-hover);background:#0f172a80}.upload-modal-dark .upload-dropzone:hover{border-color:#10b981}.upload-modal-dark .upload-dropzone-heading{color:#fff}.upload-modal-dark .upload-dropzone-sub{color:var(--text-muted)}.upload-modal-dark .upload-dropzone-icon-ring{color:#10b981;background:#10b98126}.upload-modal-dark .upload-file-status{color:#34d399}.upload-modal-dark .upload-file-subtext,.upload-modal-dark .upload-field-label{color:var(--text-muted)}.upload-modal-dark .upload-field-input,.upload-modal-dark .upload-field-select{border:1px solid var(--border-glass-hover);color:#fff;background:#0f172ab3}.upload-modal-dark .upload-field-input:focus,.upload-modal-dark .upload-field-select:focus{border-color:#10b981}.upload-modal-dark .upload-status-alert.success{color:#34d399;background:#10b98133}.upload-modal-dark .upload-status-alert.error{color:#f87171;background:#ef444433}.upload-modal-dark .upload-btn-cancel{border:1px solid var(--border-glass);color:var(--text-main);background:#ffffff0d}.upload-modal-dark .upload-btn-submit{color:#fff;background:linear-gradient(135deg,#10b981 0%,#059669 100%)}.gps-map-card{border-radius:16px;flex-direction:column;gap:.9rem;padding:1.15rem;transition:all .25s;display:flex}.gps-map-card.theme-light{background:#fff;border:1.5px solid #e2e8f0;box-shadow:0 10px 25px -5px #0f172a0f,0 4px 6px -2px #0f172a08}.gps-map-card.theme-dark{border:1px solid var(--border-glass-hover);background:#0f172ad9;box-shadow:0 10px 30px #0006}.gps-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.gps-header-title{align-items:center;gap:.65rem;display:flex}.gps-icon-badge{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.theme-light .gps-icon-badge{color:#0284c7;background:#eff6ff}.theme-dark .gps-icon-badge{color:#38bdf8;background:#38bdf826}.gps-title-text{font-size:.92rem;font-weight:700;line-height:1.25}.theme-light .gps-title-text{color:#0f172a}.theme-dark .gps-title-text{color:#38bdf8}.gps-subtitle-text{margin-top:.15rem;font-size:.76rem}.theme-light .gps-subtitle-text{color:#64748b}.theme-dark .gps-subtitle-text{color:var(--text-muted)}.gps-header-actions{align-items:center;gap:.5rem;display:flex}.gps-btn-clear{cursor:pointer;border-radius:8px;align-items:center;gap:.35rem;padding:.35rem .7rem;font-family:inherit;font-size:.75rem;font-weight:600;transition:all .2s;display:inline-flex}.theme-light .gps-btn-clear{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.theme-light .gps-btn-clear:hover{background:#fee2e2;border-color:#f87171}.theme-dark .gps-btn-clear{color:#f87171;background:#ef444426;border:1px solid #ef44444d}.gps-status-pill{border-radius:8px;align-items:center;gap:.4rem;padding:.35rem .7rem;font-size:.75rem;font-weight:600;display:inline-flex}.theme-light .gps-status-pill.empty{color:#b45309;background:#fffbeb;border:1px solid #fef3c7}.theme-dark .gps-status-pill.empty{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b4d}.gps-dot{border-radius:50%;width:7px;height:7px;display:inline-block}.gps-dot.orange{background:#f59e0b;box-shadow:0 0 6px #f59e0b99}.gps-dot.green{background:#10b981;box-shadow:0 0 6px #10b98199}.gps-btn-tool{cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex}.theme-light .gps-btn-tool{color:#475569;background:#f8fafc;border:1px solid #e2e8f0}.theme-light .gps-btn-tool:hover{color:#0f172a;background:#f1f5f9}.theme-dark .gps-btn-tool{border:1px solid var(--border-glass);color:var(--text-muted);background:#ffffff0d}.gps-search-container{position:relative}.gps-search-box{border-radius:10px;align-items:center;padding:.5rem .85rem;transition:all .2s;display:flex}.theme-light .gps-search-box{background:#f8fafc;border:1.5px solid #cbd5e1}.theme-light .gps-search-box:focus-within{background:#fff;border-color:#0284c7;box-shadow:0 0 0 3px #0284c71f}.theme-dark .gps-search-box{border:1px solid var(--border-glass-hover);background:#0f172ab3}.theme-dark .gps-search-box:focus-within{border-color:#38bdf8}.gps-search-icon{flex-shrink:0;margin-right:.5rem}.theme-light .gps-search-icon{color:#64748b}.theme-dark .gps-search-icon{color:var(--text-muted)}.gps-search-input{background:0 0;border:none;outline:none;width:100%;font-family:inherit;font-size:.85rem}.theme-light .gps-search-input{color:#0f172a}.theme-light .gps-search-input::placeholder{color:#94a3b8}.theme-dark .gps-search-input{color:#fff}.gps-search-clear{cursor:pointer;color:#94a3b8;background:0 0;border:none;justify-content:center;align-items:center;padding:2px;display:flex}.gps-search-dropdown{z-index:100;border-radius:10px;max-height:220px;animation:.15s ease-out fadeIn;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.theme-light .gps-search-dropdown{background:#fff;border:1px solid #cbd5e1;box-shadow:0 12px 28px -4px #0f172a26}.theme-dark .gps-search-dropdown{border:1px solid var(--border-glass-hover);background:#0f172a;box-shadow:0 12px 30px #0009}.gps-search-item{cursor:pointer;border-bottom:1px solid #e2e8f080;align-items:center;gap:.6rem;padding:.6rem .85rem;transition:background .15s;display:flex}.gps-search-item:last-child{border-bottom:none}.theme-light .gps-search-item:hover{background:#f1f5f9}.theme-dark .gps-search-item:hover{background:#ffffff14}.gps-item-icon{flex-shrink:0}.gps-item-info{flex:1;min-width:0}.gps-item-title{font-size:.84rem;font-weight:600}.theme-light .gps-item-title{color:#0f172a}.theme-dark .gps-item-title{color:#fff}.gps-item-sub{white-space:nowrap;text-overflow:ellipsis;font-size:.73rem;overflow:hidden}.theme-light .gps-item-sub{color:#64748b}.theme-dark .gps-item-sub{color:var(--text-muted)}.gps-item-coords{color:#059669;flex-shrink:0;font-size:.74rem;font-weight:600}.gps-presets-bar{align-items:center;gap:.5rem;padding-bottom:2px;display:flex;overflow-x:auto}.gps-presets-bar::-webkit-scrollbar{height:4px}.gps-presets-label{white-space:nowrap;flex-shrink:0;font-size:.74rem;font-weight:700}.theme-light .gps-presets-label{color:#64748b}.theme-dark .gps-presets-label{color:var(--text-dim)}.gps-presets-list{flex-wrap:nowrap;align-items:center;gap:.4rem;display:flex}.gps-preset-chip{white-space:nowrap;cursor:pointer;border-radius:20px;flex-shrink:0;align-items:center;gap:.3rem;padding:.28rem .65rem;font-size:.75rem;font-weight:600;transition:all .2s;display:inline-flex}.theme-light .gps-preset-chip{color:#334155;background:#f8fafc;border:1px solid #e2e8f0}.theme-light .gps-preset-chip:hover{color:#0284c7;background:#eff6ff;border-color:#93c5fd;transform:translateY(-1px)}.theme-dark .gps-preset-chip{border:1px solid var(--border-glass);color:var(--text-muted);background:#ffffff0d}.theme-dark .gps-preset-chip:hover{color:#34d399;background:#10b98126;border-color:#10b981}.gps-notice-banner{color:#0284c7;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;align-items:center;gap:.45rem;padding:.45rem .85rem;font-size:.78rem;display:flex}.gps-map-wrapper{border-radius:12px;width:100%;transition:height .3s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #00000014}.gps-map-canvas{width:100%;height:100%}.light-map .leaflet-container{background:#f8fafc!important}.light-map .leaflet-popup-content-wrapper{color:#0f172a!important;background:#fff!important;border:1px solid #e2e8f0!important;border-radius:10px!important;box-shadow:0 10px 25px #0f172a1f!important}.light-map .leaflet-popup-tip{background:#fff!important}.gps-map-overlay-tools{z-index:400;flex-wrap:wrap;align-items:center;gap:.5rem;display:flex;position:absolute;top:10px;left:10px}.gps-float-btn{cursor:pointer;color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:20px;align-items:center;gap:.35rem;padding:.4rem .75rem;font-family:inherit;font-size:.75rem;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 4px 12px #0000001f}.gps-float-btn:hover{background:#f8fafc;border-color:#94a3b8;transform:translateY(-1px)}.gps-float-btn.highlight{color:#fff;background:linear-gradient(135deg,#059669 0%,#10b981 100%);border:none;box-shadow:0 4px 12px #10b98159}.gps-float-btn.highlight:hover{background:linear-gradient(135deg,#047857 0%,#059669 100%)}.gps-map-hint{z-index:400;pointer-events:none;text-align:center;position:absolute;bottom:8px;left:10px;right:10px}.gps-map-hint span{-webkit-backdrop-filter:blur(8px);border-radius:20px;padding:.28rem .75rem;font-size:.72rem;font-weight:600;display:inline-block}.light-map .gps-map-hint span{color:#334155;background:#ffffffeb;border:1px solid #e2e8f0e6;box-shadow:0 4px 10px #00000014}.dark-map .gps-map-hint span{color:#cbd5e1;border:1px solid var(--border-glass);background:#0f172ae0}.gps-custom-marker-wrapper{background:0 0!important;border:none!important}.gps-pin-marker{cursor:grab;flex-direction:column;justify-content:flex-start;align-items:center;width:36px;height:44px;display:flex;position:relative}.gps-pin-marker:active{cursor:grabbing}.gps-pin-head{color:#fff;background:linear-gradient(135deg,#10b981 0%,#06b6d4 100%);border:2px solid #fff;border-radius:50% 50% 50% 0;justify-content:center;align-items:center;width:34px;height:34px;transition:transform .2s;display:flex;transform:rotate(-45deg);box-shadow:0 4px 14px #10b98180,0 2px 4px #0003}.gps-pin-head svg{transform:rotate(45deg)}.gps-pin-pulse{pointer-events:none;background:#10b98159;border-radius:50%;width:38px;height:38px;animation:1.8s ease-out infinite pinPulseRing;position:absolute;top:14px;left:50%;transform:translate(-50%,-50%)}@keyframes pinPulseRing{0%{opacity:.9;transform:translate(-50%,-50%)scale(.4)}to{opacity:0;transform:translate(-50%,-50%)scale(1.6)}}.gps-pin-shadow{filter:blur(1px);background:#00000040;border-radius:50%;width:14px;height:5px;position:absolute;bottom:0}.gps-footer-grid{grid-template-columns:1fr 1fr;gap:.85rem;display:grid}.gps-input-group{flex-direction:column;display:flex}.gps-input-label{margin-bottom:.3rem;font-size:.78rem;font-weight:600}.theme-light .gps-input-label{color:#475569}.theme-dark .gps-input-label{color:var(--text-muted)}.gps-input-wrapper{border-radius:8px;align-items:center;transition:all .2s;display:flex;overflow:hidden}.theme-light .gps-input-wrapper{background:#fff;border:1.5px solid #cbd5e1}.theme-light .gps-input-wrapper:focus-within{border-color:#0284c7;box-shadow:0 0 0 3px #0284c71f}.theme-dark .gps-input-wrapper{border:1px solid var(--border-glass-hover);background:#0f172ab3}.theme-dark .gps-input-wrapper:focus-within{border-color:#38bdf8}.gps-input-field{background:0 0;border:none;outline:none;width:100%;padding:.5rem .75rem;font-family:inherit;font-size:.85rem;font-weight:600}.theme-light .gps-input-field{color:#0f172a}.theme-dark .gps-input-field{color:#fff}.gps-input-tag{-webkit-user-select:none;user-select:none;padding:.5rem .65rem;font-size:.7rem;font-weight:700}.theme-light .gps-input-tag{color:#64748b;background:#f1f5f9;border-left:1px solid #cbd5e1}.theme-dark .gps-input-tag{border-left:1px solid var(--border-glass);color:var(--text-dim);background:#ffffff0d}.gps-status-summary{font-size:.78rem;line-height:1.4}.gps-summary-pinned{border-radius:8px;align-items:center;gap:.45rem;padding:.55rem .85rem;display:flex}.theme-light .gps-summary-pinned{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0}.theme-dark .gps-summary-pinned{color:#34d399;background:#10b98126;border:1px solid #10b9814d}.gps-summary-empty{border-radius:8px;align-items:center;gap:.45rem;padding:.55rem .85rem;display:flex}.theme-light .gps-summary-empty{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.theme-dark .gps-summary-empty{color:#fbbf24;background:#f59e0b1f;border:1px solid #f59e0b40}.spin-anim{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.login-page-root{z-index:2000;flex-direction:column;min-height:100vh;display:flex;position:fixed;inset:0;overflow-y:auto}.login-page-root.theme-light{color:#0f172a;background:#f4f7fb}.login-page-root.theme-dark{color:#f8fafc;background:#090d16}.login-top-bar{z-index:1000;pointer-events:none;justify-content:space-between;align-items:center;height:64px;padding:0 1.5rem;display:flex;position:absolute;top:0;left:0;right:0}.login-top-bar>*{pointer-events:auto}.login-back-btn{cursor:pointer;-webkit-backdrop-filter:blur(12px);border-radius:12px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-family:inherit;font-size:.85rem;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 4px 15px #00000026}.theme-light .login-back-btn{color:#0f172a;background:#ffffffe6;border:1px solid #cbd5e1}.theme-light .login-back-btn:hover{color:#059669;background:#fff;border-color:#059669;transform:translate(-2px)}.theme-dark .login-back-btn{border:1px solid var(--border-glass-hover);color:#f8fafc;background:#0f172ad9}.theme-dark .login-back-btn:hover{color:#34d399;border-color:#10b981;transform:translate(-2px)}.login-top-actions{align-items:center;gap:.75rem;display:flex}.trackasia-api-badge{-webkit-backdrop-filter:blur(12px);border-radius:20px;align-items:center;gap:.5rem;padding:.45rem .85rem;font-size:.76rem;font-weight:600;display:inline-flex;box-shadow:0 4px 12px #0000001a}.theme-light .trackasia-api-badge{color:#065f46;background:#ffffffe6;border:1px solid #a7f3d0}.theme-dark .trackasia-api-badge{color:#34d399;background:#0f172ad9;border:1px solid #10b98166}.live-dot{background:#10b981;border-radius:50%;width:8px;height:8px;animation:1.8s infinite pulseGlow;box-shadow:0 0 10px #10b981}.login-theme-btn{cursor:pointer;-webkit-backdrop-filter:blur(12px);border-radius:20px;align-items:center;gap:.4rem;padding:.45rem .85rem;font-family:inherit;font-size:.78rem;font-weight:600;transition:all .2s;display:inline-flex}.theme-light .login-theme-btn{color:#334155;background:#ffffffe6;border:1px solid #cbd5e1}.theme-light .login-theme-btn:hover{background:#fff;border-color:#94a3b8}.theme-dark .login-theme-btn{border:1px solid var(--border-glass-hover);color:var(--text-main);background:#0f172ad9}.login-container{grid-template-columns:1.15fr 1fr;width:100%;min-height:100vh;display:grid}@media (width<=960px){.login-container{grid-template-columns:1fr}.login-map-showcase{display:none}}.login-map-showcase{width:100%;height:100%;min-height:100vh;position:relative;overflow:hidden}.login-map-canvas{width:100%;height:100%}.login-map-brand-overlay{z-index:500;position:absolute;top:76px;left:24px}.brand-badge-pill{-webkit-backdrop-filter:blur(16px);color:#172033;background:#fffffff0;border:1px solid #e2e8f0;border-radius:30px;align-items:center;gap:.5rem;padding:.55rem 1.1rem;font-size:.88rem;display:inline-flex;box-shadow:0 10px 25px #0f172a1f}.brand-badge-pill strong{color:#10b981}.login-map-footer-card{z-index:500;-webkit-backdrop-filter:blur(16px);color:#172033;background:#fffffff0;border:1px solid #e2e8f0;border-radius:20px;max-width:580px;padding:1.5rem;position:absolute;bottom:24px;left:24px;right:24px;box-shadow:0 20px 40px #0f172a26}.map-footer-title{color:#172033;margin-bottom:.4rem;font-size:1.05rem;font-weight:800;line-height:1.3}.map-footer-sub{color:#5b677a;margin-bottom:1rem;font-size:.8rem;line-height:1.5}.map-footer-sub strong{color:#0e7490}.map-footer-stats-grid{border-top:1px solid #e2e8f0;grid-template-columns:repeat(3,1fr);gap:1rem;padding-top:.85rem;display:grid}.map-stat-col{flex-direction:column;display:flex}.stat-num{color:#10b981;font-size:1.35rem;font-weight:800;line-height:1}.stat-label{color:#64748b;text-transform:uppercase;margin-top:.25rem;font-size:.72rem;font-weight:600}.trackasia-showcase-pin-wrap{background:0 0!important;border:none!important}.trackasia-showcase-pin{cursor:pointer;white-space:nowrap;background:#fffffff5;border:1.5px solid #10b981;border-radius:20px;align-items:center;gap:.45rem;padding:.3rem .7rem;transition:transform .2s,border-color .2s;display:flex;position:relative;box-shadow:0 4px 15px #0f172a24}.trackasia-showcase-pin:hover{border-color:#38bdf8;transform:scale(1.1)}.pin-dot{background:#10b981;border-radius:50%;flex-shrink:0;width:9px;height:9px;box-shadow:0 0 8px #10b981}.pulse-ring{pointer-events:none;background:#10b98166;border-radius:50%;width:22px;height:22px;animation:1.8s ease-out infinite pinPulseRing;position:absolute;top:50%;left:11px;transform:translate(-50%,-50%)}.pin-label{color:#172033;font-size:.75rem;font-weight:700}.login-form-panel{background:#fff;justify-content:center;align-items:center;min-height:100vh;padding:5.5rem 2rem 2.5rem;display:flex}.login-form-inner{flex-direction:column;gap:1.25rem;width:100%;max-width:480px;display:flex}.session-loading{min-height:100vh;color:var(--text-muted);background:var(--bg-dark);place-items:center;padding:2rem;font-weight:600;display:grid}main [style*=\#0f172a],main [style*="rgb(15, 23, 42)"],main [style*="rgb(9, 13, 22)"],main [style*="rgba(15, 23, 42"],.modal-content [style*=\#0f172a],.modal-content [style*=\#090d16],.modal-content [style*=\#05070d],.modal-content [style*="rgb(15, 23, 42)"],.modal-content [style*="rgb(9, 13, 22)"],.modal-content [style*="rgb(5, 7, 13)"],.modal-content [style*="rgba(15, 23, 42"]{color:var(--text-main)!important;background-color:#fff!important}main [style*=\#fff],main [style*=\#ffffff],main [style*="rgb(255, 255, 255)"],.modal-content [style*=\#fff],.modal-content [style*=\#ffffff],.modal-content [style*="rgb(255, 255, 255)"]{color:var(--text-main)!important}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #05966959}@media (width<=640px){.app-container{padding-left:1rem;padding-right:1rem}main.app-container{padding:1.25rem 1rem!important}.login-form-panel{padding:5rem 1.25rem 2rem}.login-top-bar{padding:0 1rem}}.login-header-section{text-align:left}.login-logo-box{color:#fff;background:linear-gradient(135deg,#10b981 0%,#06b6d4 100%);border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:1.25rem;display:flex;box-shadow:0 6px 20px #10b98166}.login-main-heading{font-size:1.75rem;font-weight:800;line-height:1.2}.theme-light .login-main-heading{color:#0f172a}.theme-dark .login-main-heading{color:#fff}.login-sub-heading{margin-top:.4rem;font-size:.85rem;line-height:1.5}.theme-light .login-sub-heading{color:#64748b}.theme-dark .login-sub-heading{color:var(--text-muted)}.login-tabs-pill{border-radius:12px;grid-template-columns:1fr 1fr;padding:.3rem;display:grid}.theme-light .login-tabs-pill{background:#f1f5f9;border:1px solid #e2e8f0}.theme-dark .login-tabs-pill{border:1px solid var(--border-glass-hover);background:#0f172acc}.login-tab-btn{cursor:pointer;color:inherit;background:0 0;border:none;border-radius:9px;padding:.6rem;font-family:inherit;font-size:.85rem;font-weight:600;transition:all .2s}.login-tab-btn.active{color:#0f172a;background:#fff;font-weight:700;box-shadow:0 4px 12px #00000014}.theme-dark .login-tab-btn.active{color:#10b981;background:#1e293b;box-shadow:0 4px 12px #0000004d}.login-actual-form{flex-direction:column;gap:1rem;display:flex}.login-input-group{flex-direction:column;display:flex}.login-label-row{justify-content:space-between;align-items:center;display:flex}.login-input-label{margin-bottom:.35rem;font-size:.82rem;font-weight:600}.theme-light .login-input-label{color:#334155}.theme-dark .login-input-label{color:var(--text-muted)}.login-forgot-link{color:#0284c7;font-size:.78rem;font-weight:600;text-decoration:none}.login-forgot-link:hover{text-decoration:underline}.login-input-wrap{border-radius:12px;align-items:center;padding:.65rem .85rem;transition:all .2s;display:flex}.theme-light .login-input-wrap{background:#fff;border:1.5px solid #cbd5e1}.theme-light .login-input-wrap:focus-within{border-color:#10b981;box-shadow:0 0 0 3px #10b98126}.theme-dark .login-input-wrap{border:1px solid var(--border-glass-hover);background:#0f172abf}.theme-dark .login-input-wrap:focus-within{border-color:#10b981}.login-input-icon{color:#94a3b8;flex-shrink:0;margin-right:.6rem}.login-text-input{background:0 0;border:none;outline:none;width:100%;font-family:inherit;font-size:.88rem;font-weight:500}.theme-light .login-text-input{color:#0f172a}.theme-light .login-text-input::placeholder{color:#94a3b8}.theme-dark .login-text-input{color:#fff}.login-eye-toggle{cursor:pointer;color:#94a3b8;background:0 0;border:none;align-items:center;padding:2px;display:flex}.login-role-selector{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.login-role-btn{cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:.35rem;padding:.5rem .4rem;font-family:inherit;font-size:.75rem;font-weight:600;transition:all .2s;display:inline-flex}.theme-light .login-role-btn{color:#475569;background:#f8fafc;border:1px solid #cbd5e1}.theme-light .login-role-btn.active{color:#065f46;background:#ecfdf5;border-color:#10b981}.theme-dark .login-role-btn{border:1px solid var(--border-glass);color:var(--text-muted);background:#ffffff0d}.theme-dark .login-role-btn.active{color:#34d399;background:#10b98133;border-color:#10b981}.login-remember-row{align-items:center;display:flex}.login-checkbox-label{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.45rem;font-size:.8rem;display:flex}.theme-light .login-checkbox-label{color:#475569}.theme-dark .login-checkbox-label{color:var(--text-muted)}.login-checkbox{accent-color:#10b981;cursor:pointer;width:16px;height:16px}.login-alert-box{border:1px solid;border-radius:10px;align-items:center;gap:.5rem;padding:.65rem .95rem;font-size:.82rem;display:flex}.login-alert-box.error{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.login-alert-box.success{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.login-submit-btn{cursor:pointer;color:#fff;background:linear-gradient(135deg,#10b981 0%,#059669 100%);border:none;border-radius:12px;justify-content:center;align-items:center;gap:.55rem;width:100%;padding:.75rem 1.5rem;font-family:inherit;font-size:.92rem;font-weight:700;transition:all .2s;display:inline-flex;box-shadow:0 4px 15px #10b98166}.login-submit-btn:hover:not(:disabled){background:linear-gradient(135deg,#059669 0%,#047857 100%);transform:translateY(-1px);box-shadow:0 6px 22px #10b9818c}.login-submit-btn:disabled{opacity:.6;cursor:not-allowed}.login-demo-accounts-card{border-radius:14px;padding:.9rem 1rem}.theme-light .login-demo-accounts-card{background:#f8fafc;border:1px solid #e2e8f0}.theme-dark .login-demo-accounts-card{border:1px solid var(--border-glass);background:#0f172aa6}.demo-header{align-items:center;gap:.45rem;margin-bottom:.65rem;font-size:.78rem;font-weight:700;display:flex}.theme-light .demo-header{color:#334155}.theme-dark .demo-header{color:var(--text-main)}.demo-buttons-grid{flex-direction:column;gap:.45rem;display:flex}.demo-chip{cursor:pointer;border-radius:9px;justify-content:space-between;align-items:center;padding:.45rem .75rem;font-family:inherit;font-size:.78rem;transition:all .2s;display:flex}.theme-light .demo-chip{color:#334155;background:#fff;border:1px solid #cbd5e1}.theme-light .demo-chip:hover{color:#065f46;background:#ecfdf5;border-color:#10b981}.theme-dark .demo-chip{border:1px solid var(--border-glass-hover);color:var(--text-main);background:#ffffff0d}.theme-dark .demo-chip:hover{background:#10b98126;border-color:#10b981}.demo-role{text-transform:uppercase;border-radius:5px;padding:.15rem .5rem;font-size:.7rem;font-weight:700}.demo-role.admin{color:#ef4444;background:#ef444426}.demo-role.creator{color:#10b981;background:#10b98126}.demo-role.visitor{color:#06b6d4;background:#06b6d426}.demo-name{font-family:monospace;font-size:.76rem}.login-security-notice{text-align:center;color:#64748b;justify-content:center;align-items:center;gap:.45rem;margin-top:.25rem;font-size:.74rem;display:flex}
