.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:99999;padding:20px;animation:fadeIn .2s ease}.modal-content{background:#fff;border-radius:24px;width:100%;max-width:450px;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}body.dark-mode .modal-content{background:#1a1a1a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 16px;border-bottom:1px solid rgba(0,0,0,.08)}body.dark-mode .modal-header{border-bottom:1px solid rgba(255,255,255,.1)}.modal-header h2{font-size:24px;font-weight:700;color:#111827;letter-spacing:-.5px;margin:0}body.dark-mode .modal-header h2{color:#f9fafb}.close-button{width:36px;height:36px;border:none;background:#f3f4f6;border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}body.dark-mode .close-button{background:#374151}.close-button:active{transform:scale(.95);background:#e5e7eb}body.dark-mode .close-button:active{background:#4b5563}.close-button svg{width:20px;height:20px;color:#6b7280}body.dark-mode .close-button svg{color:#9ca3af}.mode-options{padding:16px;display:flex;flex-direction:column;gap:12px}.mode-option{display:flex;align-items:center;gap:16px;padding:20px;background:#f9fafb;border:2px solid rgba(0,157,224,.15);border-radius:20px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);text-align:left}body.dark-mode .mode-option{background:#0f0f0f;border:2px solid rgba(0,195,255,.2)}.mode-option:active{transform:scale(.98)}.mode-option:hover{border-color:#009de0;background:linear-gradient(135deg,#009de00d,#00b8f50d)}body.dark-mode .mode-option:hover{border-color:#00c3ff;background:linear-gradient(135deg,#00c3ff1a,#0099cc1a)}.mode-icon{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mode-icon.tracking{background:linear-gradient(135deg,#009de0,#00b8f5)}body.dark-mode .mode-icon.tracking{background:linear-gradient(135deg,#00c3ff,#09c)}.mode-icon.calculator{background:linear-gradient(135deg,#10b981,#34d399)}body.dark-mode .mode-icon.calculator{background:linear-gradient(135deg,#34d399,#10b981)}.mode-icon svg{width:28px;height:28px;color:#fff}.mode-info{flex:1}.mode-info h3{font-size:18px;font-weight:700;color:#111827;margin:0 0 6px;letter-spacing:-.3px}body.dark-mode .mode-info h3{color:#f9fafb}.mode-info p{font-size:14px;color:#6b7280;margin:0;line-height:1.5;font-weight:500}body.dark-mode .mode-info p{color:#9ca3af}.mode-arrow{width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mode-arrow svg{width:20px;height:20px;color:#9ca3af;transition:transform .3s ease}body.dark-mode .mode-arrow svg{color:#6b7280}.mode-option:hover .mode-arrow svg{transform:translate(4px);color:#009de0}body.dark-mode .mode-option:hover .mode-arrow svg{color:#00c3ff}@media (max-width: 480px){.modal-content{max-width:100%;margin:0;border-radius:24px 24px 0 0;position:absolute;bottom:0;left:0;right:0}.modal-header h2{font-size:20px}.mode-icon{width:48px;height:48px}.mode-icon svg{width:24px;height:24px}.mode-info h3{font-size:16px}.mode-info p{font-size:13px}.mode-option{padding:16px}}.home-page{position:relative;height:calc(100vh - 70px);width:100%}@media (max-width: 768px){.home-page{height:calc(100vh - 110px)}}@media (max-width: 480px){.home-page{height:calc(100vh - 100px)}}@media (max-width: 360px){.home-page{height:calc(100vh - 95px)}}.map-container{width:100%;height:100%}body.dark-mode .leaflet-container{background-color:#1e1e1e!important}body.dark-mode .leaflet-tile-pane{filter:invert(100%) hue-rotate(190deg) brightness(.7) contrast(1.25) saturate(.75) sepia(.15)}body.dark-mode .leaflet-tile{opacity:1;mix-blend-mode:normal}body.dark-mode .leaflet-popup-content-wrapper,body.dark-mode .leaflet-popup-tip{background:#2a2a2a;color:#e5e5e5;box-shadow:0 3px 14px #0009}body.dark-mode .leaflet-control{background:#2a2a2a;border-color:#ffffff1a}body.dark-mode .leaflet-control a{background:#2a2a2a;color:#e5e5e5;border-color:#ffffff1a}body.dark-mode .leaflet-control a:hover{background:#3a3a3a}.leaflet-marker-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));transition:transform .5s cubic-bezier(.25,.46,.45,.94)!important}.navigation-arrow-marker{background:transparent!important;border:none!important}.navigation-arrow-marker>div{transition:transform .3s cubic-bezier(.25,.46,.45,.94)!important;will-change:transform}@keyframes arrow-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.custom-marker{background:transparent!important;border:none!important}.marker-pulse{position:relative;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.marker-pulse:before{content:"";position:absolute;width:32px;height:32px;background:#009de04d;border-radius:50%;animation:pulse-ring 2s cubic-bezier(.4,0,.6,1) infinite}.marker-dot{width:16px;height:16px;background:linear-gradient(135deg,#009de0,#00b8f5);border:3px solid white;border-radius:50%;box-shadow:0 2px 12px #009de080,0 0 0 2px #009de01a;position:relative;z-index:10}@keyframes pulse-ring{0%{transform:scale(1);opacity:1}to{transform:scale(2);opacity:0}}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:calc(100vh - 70px);background:#fff}body.dark-mode .loading-screen{background:#0f0f0f}.spinner{width:56px;height:56px;border:5px solid rgba(0,157,224,.15);border-top-color:#009de0;border-radius:50%;animation:spin .8s cubic-bezier(.4,0,.2,1) infinite;margin-bottom:20px}body.dark-mode .spinner{border:5px solid rgba(0,195,255,.2);border-top-color:#00c3ff}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen p{font-size:16px;color:#111827;font-weight:600;letter-spacing:-.2px}body.dark-mode .loading-screen p{color:#e5e7eb}.skip-location-button{padding:12px 24px;background:#009de0;color:#fff;border:none;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease}.skip-location-button:active{transform:scale(.95);background:#08c}body.dark-mode .skip-location-button{background:#00c3ff}.tracking-overlay{position:absolute;top:0;left:0;right:0;padding:16px;padding-top:max(16px,env(safe-area-inset-top,0px) + 16px);z-index:1000;pointer-events:none}.tracking-stats{display:flex;gap:8px;background:#ffffffeb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:20px;padding:14px 12px;box-shadow:0 4px 20px #00000014;border:1px solid rgba(0,0,0,.04)}body.dark-mode .tracking-stats{background:#1a1a1ae6;border:1px solid rgba(255,255,255,.08);box-shadow:0 4px 20px #0006}.stat-box{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px}.stat-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#009de0,#00b8f5);border-radius:10px}.stat-icon svg{width:18px;height:18px;color:#fff}.stat-box.highlight .stat-icon{background:linear-gradient(135deg,#009de0,#00b8f5)}.stat-box.highlight .stat-icon svg{color:#fff}.stat-content{text-align:center}.stat-value{font-size:18px;font-weight:700;color:#111827;line-height:1;margin-bottom:3px}body.dark-mode .stat-value{color:#f9fafb}.stat-label{font-size:10px;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;font-weight:600}body.dark-mode .stat-label{color:#9ca3af}.recenter-button{position:absolute;bottom:16px;right:16px;width:52px;height:52px;background:#ffffffeb;border:none;border-radius:50%;box-shadow:0 4px 16px #0000001a;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1000;transition:all .3s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(0,0,0,.04)}body.dark-mode .recenter-button{background:#1a1a1ae6;border:1px solid rgba(255,255,255,.08);box-shadow:0 4px 16px #0006}.recenter-button:active{transform:scale(.92);box-shadow:0 2px 8px #0000001a}body.dark-mode .recenter-button:active{box-shadow:0 2px 8px #0006}.recenter-button svg{width:24px;height:24px;color:#009de0}body.dark-mode .recenter-button svg{color:#00c3ff}.recenter-button.user-moved{background:linear-gradient(135deg,#009de0,#00b8f5);animation:pulse-button 2s ease-in-out infinite}body.dark-mode .recenter-button.user-moved{background:linear-gradient(135deg,#00c3ff,#09c)}.recenter-button.user-moved svg{color:#fff}@keyframes pulse-button{0%,to{box-shadow:0 4px 16px #009de066}50%{box-shadow:0 4px 20px #009de099,0 0 0 4px #009de033}}.leaflet-control-attribution{font-size:9px!important;background:#ffffffb3!important;padding:2px 6px!important;border-radius:4px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}body.dark-mode .leaflet-control-attribution{background:#00000080!important;color:#e5e7eb!important}.leaflet-control-attribution a{color:inherit!important}@media (max-width: 380px){.tracking-overlay{padding:12px}.tracking-stats{padding:10px 8px;gap:6px}.stat-icon{width:32px;height:32px}.stat-icon svg{width:16px;height:16px}.stat-value{font-size:16px}.stat-label{font-size:9px}.recenter-button{width:48px;height:48px;bottom:12px;right:12px}.recenter-button svg{width:22px;height:22px}}.history-page{height:calc(100vh - 70px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;background:#f9fafb}@media (max-width: 768px){.history-page{height:calc(100vh - 110px)}}@media (max-width: 480px){.history-page{height:calc(100vh - 100px)}}@media (max-width: 360px){.history-page{height:calc(100vh - 95px)}}body.dark-mode .history-page{background:#0f0f0f}.history-header{background:#fff;padding:30px 20px 20px;padding-top:max(30px,env(safe-area-inset-top,0px) + 20px);margin-bottom:20px;border-bottom:1px solid rgba(0,0,0,.05)}body.dark-mode .history-header{background:#1a1a1a;border-bottom:1px solid rgba(255,255,255,.1)}.history-header h1{font-size:32px;font-weight:700;color:#111827;margin-bottom:20px;letter-spacing:-.5px;text-align:center}body.dark-mode .history-header h1{color:#f9fafb}.stats-summary{display:flex;gap:12px;margin-top:20px}.stat-item{flex:1;background:linear-gradient(135deg,#009de0,#00b8f5);padding:16px 12px;border-radius:16px;text-align:center;box-shadow:0 2px 8px #009de033}body.dark-mode .stat-item{background:linear-gradient(135deg,#00c3ff,#09c);box-shadow:0 2px 8px #00c3ff4d}.stat-item .stat-value{display:block;font-size:20px;font-weight:700;color:#fff;margin-bottom:6px;letter-spacing:-.3px}.stat-item .stat-label{display:block;font-size:11px;color:#fff;font-weight:600;text-transform:uppercase;letter-spacing:.5px;text-shadow:0 1px 2px rgba(0,0,0,.2)}body.dark-mode .stat-item .stat-label{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.3)}.rides-list{padding:0 20px 20px}.empty-state{background:#fff;border-radius:20px;padding:60px 20px;text-align:center;box-shadow:0 2px 8px #0000000a;border:1px solid rgba(0,0,0,.05)}body.dark-mode .empty-state{background:#1a1a1a;border:1px solid rgba(255,255,255,.1);box-shadow:0 2px 8px #0000004d}.empty-state svg{width:64px;height:64px;color:#d1d5db;margin-bottom:20px}body.dark-mode .empty-state svg{color:#4b5563}.empty-state h3{font-size:20px;font-weight:700;color:#111827;margin-bottom:10px;letter-spacing:-.3px}body.dark-mode .empty-state h3{color:#f9fafb}.empty-state p{font-size:14px;color:#6b7280;line-height:1.6;font-weight:500}body.dark-mode .empty-state p{color:#9ca3af}.ride-card{background:#fff;border-radius:20px;padding:20px;margin-bottom:16px;box-shadow:0 2px 8px #0000000a;border:1px solid rgba(0,0,0,.05);transition:all .2s ease;position:relative}body.dark-mode .ride-card{background:#1a1a1a;border:1px solid rgba(255,255,255,.1);box-shadow:0 2px 8px #0000004d}.ride-card[style*="cursor: pointer"]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #009de026;border-color:#009de04d}body.dark-mode .ride-card[style*="cursor: pointer"]:hover{border-color:#00c3ff4d;box-shadow:0 4px 12px #00c3ff33}.ride-card:active{transform:scale(.99)}.ride-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid rgba(0,0,0,.06)}body.dark-mode .ride-header{border-bottom:1px solid rgba(255,255,255,.1)}.ride-header-actions{display:flex;align-items:center;gap:8px}.map-indicator{color:#009de0;display:flex;align-items:center;padding:8px;border-radius:8px;background:#009de01a;transition:all .2s ease}body.dark-mode .map-indicator{color:#00c3ff;background:#00c3ff26}.map-indicator svg{width:18px;height:18px}.ride-date{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#111827}body.dark-mode .ride-date{color:#f9fafb}.ride-date svg{width:18px;height:18px;color:#009de0}body.dark-mode .ride-date svg{color:#00c3ff}.delete-button{background:#fee2e2;border:none;padding:10px;cursor:pointer;color:#ef4444;border-radius:12px;transition:all .2s ease}body.dark-mode .delete-button{background:#ef444426;color:#f87171}.delete-button:active{background:#ef4444;color:#fff;transform:scale(.95)}.delete-button svg{width:18px;height:18px;display:block}.ride-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}.stat{flex:1;display:flex;align-items:flex-start;gap:10px;padding:14px;background:#f9fafb;border-radius:14px;border:1px solid rgba(0,0,0,.05)}body.dark-mode .stat{background:#0f0f0f;border:1px solid rgba(255,255,255,.08)}.stat svg{width:20px;height:20px;color:#6b7280;flex-shrink:0;margin-top:2px}body.dark-mode .stat svg{color:#9ca3af}.stat.highlight{background:linear-gradient(135deg,#009de0,#00b8f5);border:none;grid-column:1 / -1}body.dark-mode .stat.highlight{background:linear-gradient(135deg,#00c3ff,#09c)}.stat.highlight svg{color:#fff}.stat.highlight .stat-value{color:#fff}.stat.highlight .stat-label{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.2)}body.dark-mode .stat.highlight .stat-label{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.3)}.stat .stat-value{font-size:16px;font-weight:700;color:#111827;line-height:1.2;letter-spacing:-.2px}body.dark-mode .stat .stat-value{color:#f9fafb}.stat .stat-label{font-size:11px;color:#6b7280;margin-top:4px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}body.dark-mode .stat .stat-label{color:#9ca3af}.ride-details{border-top:1px solid rgba(0,0,0,.06);padding-top:16px;display:flex;flex-direction:column;gap:10px}body.dark-mode .ride-details{border-top:1px solid rgba(255,255,255,.1)}.detail-item{display:flex;justify-content:space-between;font-size:13px;padding:8px 12px;background:#f9fafb;border-radius:10px}body.dark-mode .detail-item{background:#0f0f0f}.detail-item span:first-child{color:#6b7280;font-weight:600}body.dark-mode .detail-item span:first-child{color:#9ca3af}.detail-item span:last-child{color:#111827;font-weight:700}body.dark-mode .detail-item span:last-child{color:#f9fafb}.map-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease}.map-modal-content{background:#fff;border-radius:20px;width:100%;max-width:800px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}body.dark-mode .map-modal-content{background:#1a1a1a}.map-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid rgba(0,0,0,.1)}body.dark-mode .map-modal-header{border-bottom:1px solid rgba(255,255,255,.1)}.map-modal-header h2{font-size:20px;font-weight:700;color:#111827;margin:0}body.dark-mode .map-modal-header h2{color:#f9fafb}.map-modal-close{background:#f3f4f6;border:none;width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:#6b7280}body.dark-mode .map-modal-close{background:#0f0f0f;color:#9ca3af}.map-modal-close:hover{background:#e5e7eb;color:#111827}body.dark-mode .map-modal-close:hover{background:#374151;color:#f9fafb}.map-modal-close svg{width:20px;height:20px}.map-modal-info{display:flex;gap:16px;padding:16px 24px;border-bottom:1px solid rgba(0,0,0,.1);background:#f9fafb}body.dark-mode .map-modal-info{background:#0f0f0f;border-bottom:1px solid rgba(255,255,255,.1)}.map-info-item{flex:1;display:flex;flex-direction:column;gap:4px}.map-info-item span:first-child{font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}body.dark-mode .map-info-item span:first-child{color:#9ca3af}.map-info-item span:last-child{font-size:16px;font-weight:700;color:#111827}body.dark-mode .map-info-item span:last-child{color:#f9fafb}.map-modal-map{height:400px;width:100%;position:relative}.end-marker{background:transparent!important;border:none!important}body.dark-mode .map-modal-map .leaflet-container{background-color:#3a3a3a!important}body.dark-mode .map-modal-map .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.95) contrast(.98) saturate(.55) hue-rotate(110deg)}@media (max-width: 768px){.map-modal-map{height:300px}.map-modal-content{max-height:95vh}.map-modal-info{flex-direction:column;gap:12px}}.settings-page{height:calc(100vh - 70px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;background:#f9fafb}@media (max-width: 768px){.settings-page{height:calc(100vh - 110px)}}@media (max-width: 480px){.settings-page{height:calc(100vh - 100px)}}@media (max-width: 360px){.settings-page{height:calc(100vh - 95px)}}body.dark-mode .settings-page{background:#0f0f0f}.settings-header{background:#fff;padding:30px 20px 20px;padding-top:max(30px,env(safe-area-inset-top,0px) + 20px);margin-bottom:20px;border-bottom:1px solid rgba(0,0,0,.05)}body.dark-mode .settings-header{background:#1a1a1a;border-bottom:1px solid rgba(255,255,255,.1)}.settings-header h1{font-size:32px;font-weight:700;color:#111827;letter-spacing:-.5px;text-align:center}body.dark-mode .settings-header h1{color:#f9fafb}.settings-form{max-width:600px;margin:0 auto;padding:0 20px}.form-section{background:#fff;border-radius:20px;padding:24px;margin-bottom:16px;box-shadow:0 2px 8px #0000000a;border:1px solid rgba(0,0,0,.05)}body.dark-mode .form-section{background:#1a1a1a;border:1px solid rgba(255,255,255,.1);box-shadow:0 2px 8px #0000004d}.form-section h2{font-size:18px;font-weight:700;color:#111827;margin-bottom:20px;letter-spacing:-.3px}body.dark-mode .form-section h2{color:#f9fafb}.theme-toggle{display:flex;justify-content:space-between;align-items:center;padding:12px 0}.theme-info{display:flex;flex-direction:column;gap:4px}.theme-label{font-size:16px;font-weight:600;color:#111827}body.dark-mode .theme-label{color:#f9fafb}.theme-description{font-size:13px;color:#6b7280}body.dark-mode .theme-description{color:#9ca3af}.toggle-button{position:relative;width:56px;height:32px;background:#e5e7eb;border:none;border-radius:16px;cursor:pointer;transition:all .3s ease}body.dark-mode .toggle-button{background:#374151}.toggle-button.active{background:linear-gradient(135deg,#009de0,#00b8f5)}body.dark-mode .toggle-button.active{background:linear-gradient(135deg,#00c3ff,#09c)}.toggle-slider{position:absolute;top:3px;left:3px;width:26px;height:26px;background:#fff;border-radius:50%;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 4px #0003}.toggle-button.active .toggle-slider{transform:translate(24px)}.cost-mode-toggle{display:flex;gap:12px;flex-direction:column}.mode-button{display:flex;align-items:center;gap:14px;padding:18px;background:#f9fafb;border:2px solid rgba(0,157,224,.2);border-radius:16px;cursor:pointer;transition:all .3s ease;text-align:left}body.dark-mode .mode-button{background:#0f0f0f;border:2px solid rgba(0,195,255,.2)}.mode-button.active{background:linear-gradient(135deg,#009de01a,#00b8f51a);border:2px solid #009DE0}body.dark-mode .mode-button.active{background:linear-gradient(135deg,#00c3ff26,#0099cc26);border:2px solid #00C3FF}.mode-button svg{width:24px;height:24px;color:#6b7280;flex-shrink:0}body.dark-mode .mode-button svg{color:#9ca3af}.mode-button.active svg{color:#009de0}body.dark-mode .mode-button.active svg{color:#00c3ff}.mode-button div{flex:1}.mode-button span{display:block;font-size:16px;font-weight:600;color:#111827;margin-bottom:4px}body.dark-mode .mode-button span{color:#f9fafb}.mode-button.active span{color:#009de0}body.dark-mode .mode-button.active span{color:#00c3ff}.mode-button small{font-size:13px;color:#6b7280;font-weight:500}body.dark-mode .mode-button small{color:#9ca3af}.form-group{margin-bottom:20px}.form-group:last-child{margin-bottom:0}.form-group label{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:14px;font-weight:600;color:#111827}body.dark-mode .form-group label{color:#f9fafb}.label-text{color:#111827}body.dark-mode .label-text{color:#f9fafb}.label-unit{color:#6b7280;font-size:13px;font-weight:500}body.dark-mode .label-unit{color:#9ca3af}.form-group input{width:100%;padding:16px 20px;font-size:16px;border:2px solid rgba(0,157,224,.2);border-radius:16px;background:#f9fafb;transition:all .3s cubic-bezier(.4,0,.2,1);font-weight:500;color:#111827}body.dark-mode .form-group input{background:#0f0f0f;border:2px solid rgba(0,195,255,.2);color:#f9fafb}.form-group input:focus{outline:none;border-color:#009de0;background:#fff;box-shadow:0 0 0 4px #009de01a}body.dark-mode .form-group input:focus{border-color:#00c3ff;background:#1a1a1a;box-shadow:0 0 0 4px #00c3ff26}.info-box{display:flex;gap:14px;background:#eff6ff;border:1px solid rgba(0,157,224,.2);border-radius:16px;padding:18px;margin-bottom:24px}body.dark-mode .info-box{background:#00c3ff1a;border:1px solid rgba(0,195,255,.2)}.info-box svg{width:22px;height:22px;color:#009de0;flex-shrink:0;margin-top:2px}body.dark-mode .info-box svg{color:#00c3ff}.info-box p{font-size:14px;line-height:1.6;color:#1e40af;margin:0;font-weight:500}body.dark-mode .info-box p{color:#93c5fd}.save-button{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:18px;font-size:16px;font-weight:700;color:#fff;background:linear-gradient(135deg,#009de0,#00b8f5);border:none;border-radius:16px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #009de04d;letter-spacing:.3px;margin-bottom:100px}body.dark-mode .save-button{background:linear-gradient(135deg,#00c3ff,#09c);box-shadow:0 4px 12px #00c3ff66}.save-button:active{transform:scale(.98);box-shadow:0 2px 6px #009de04d}body.dark-mode .save-button:active{box-shadow:0 2px 6px #00c3ff66}.save-button svg{width:20px;height:20px}.update-section{display:flex;flex-direction:column;gap:16px}.update-info{display:flex;flex-direction:column;gap:12px}.version-info{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f9fafb;border-radius:12px;border:1px solid rgba(0,0,0,.05)}body.dark-mode .version-info{background:#0f0f0f;border:1px solid rgba(255,255,255,.08)}.version-label{font-size:14px;font-weight:600;color:#6b7280}body.dark-mode .version-label{color:#9ca3af}.version-value{font-size:14px;font-weight:700;color:#111827;font-family:Courier New,monospace}body.dark-mode .version-value{color:#f9fafb}.update-available-badge{display:flex;align-items:center;gap:8px;padding:10px 14px;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:10px;border:1px solid rgba(245,158,11,.2)}body.dark-mode .update-available-badge{background:linear-gradient(135deg,#f59e0b33,#d9770633);border:1px solid rgba(245,158,11,.3)}.update-available-badge svg{width:18px;height:18px;color:#d97706;animation:spin 1s linear infinite}body.dark-mode .update-available-badge svg{color:#fbbf24}.update-available-badge span{font-size:13px;font-weight:600;color:#92400e}body.dark-mode .update-available-badge span{color:#fbbf24}.update-button{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;background:linear-gradient(135deg,#009de0,#00b8f5);color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #009de04d}body.dark-mode .update-button{background:linear-gradient(135deg,#00c3ff,#09c);box-shadow:0 2px 8px #00c3ff66}.update-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #009de066}body.dark-mode .update-button:hover:not(:disabled){box-shadow:0 4px 12px #00c3ff80}.update-button:active:not(:disabled){transform:translateY(0)}.update-button:disabled{opacity:.7;cursor:not-allowed}.update-button svg{width:18px;height:18px}.update-button .spinner-icon{animation:spin 1s linear infinite}.update-status{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:#f0fdf4;border-radius:10px;border:1px solid rgba(34,197,94,.2)}body.dark-mode .update-status{background:#22c55e1a;border:1px solid rgba(34,197,94,.3)}.update-status svg{width:18px;height:18px;color:#22c55e}.update-status span{font-size:13px;font-weight:600;color:#16a34a}body.dark-mode .update-status span{color:#4ade80}.update-section-actions{display:flex;flex-direction:column;gap:12px}.check-update-button{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;background:#f9fafb;color:#111827;border:2px solid rgba(0,157,224,.2);border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease}body.dark-mode .check-update-button{background:#0f0f0f;color:#f9fafb;border:2px solid rgba(0,195,255,.2)}.check-update-button:hover:not(:disabled){background:#009de01a;border-color:#009de0;transform:translateY(-1px);box-shadow:0 2px 8px #009de033}body.dark-mode .check-update-button:hover:not(:disabled){background:#00c3ff26;border-color:#00c3ff;box-shadow:0 2px 8px #00c3ff4d}.check-update-button:active:not(:disabled){transform:translateY(0)}.check-update-button:disabled{opacity:.6;cursor:not-allowed}.check-update-button svg{width:18px;height:18px;color:#009de0}body.dark-mode .check-update-button svg{color:#00c3ff}.check-update-button .spinner-icon{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.install-section{max-width:600px;margin:0 auto 100px;padding:0 20px}.install-header{display:flex;align-items:center;gap:16px;padding:24px;background:#fff;border-radius:20px;margin-bottom:16px;border:1px solid rgba(0,0,0,.05);box-shadow:0 2px 8px #0000000a}body.dark-mode .install-header{background:#1a1a1a;border:1px solid rgba(255,255,255,.1);box-shadow:0 2px 8px #0000004d}.install-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#009de0,#00b8f5);border-radius:16px;flex-shrink:0}body.dark-mode .install-icon{background:linear-gradient(135deg,#00c3ff,#09c)}.install-icon svg{width:28px;height:28px;color:#fff}.install-title{flex:1}.install-title h2{font-size:20px;font-weight:700;color:#111827;margin:0 0 4px}body.dark-mode .install-title h2{color:#f9fafb}.install-title p{font-size:14px;color:#6b7280;margin:0}body.dark-mode .install-title p{color:#9ca3af}.install-status{display:flex;align-items:center;gap:12px;padding:16px 20px;background:#fff;border-radius:16px;border:1px solid rgba(0,0,0,.05);box-shadow:0 2px 8px #0000000a}body.dark-mode .install-status{background:#1a1a1a;border:1px solid rgba(255,255,255,.1);box-shadow:0 2px 8px #0000004d}.install-status.installed{background:linear-gradient(135deg,#22c55e1a,#16a34a1a);border:1px solid rgba(34,197,94,.2)}body.dark-mode .install-status.installed{background:#22c55e26;border:1px solid rgba(34,197,94,.3)}.install-status svg{width:24px;height:24px;color:#22c55e;flex-shrink:0}.install-status span{font-size:15px;font-weight:600;color:#16a34a}body.dark-mode .install-status span{color:#4ade80}.install-button{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:16px 24px;background:linear-gradient(135deg,#009de0,#00b8f5);color:#fff;border:none;border-radius:16px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #009de04d;margin-bottom:12px}body.dark-mode .install-button{background:linear-gradient(135deg,#00c3ff,#09c);box-shadow:0 4px 12px #00c3ff66}.install-button:active{transform:scale(.98);box-shadow:0 2px 6px #009de04d}body.dark-mode .install-button:active{box-shadow:0 2px 6px #00c3ff66}.install-button svg{width:20px;height:20px}.instructions-toggle{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 20px;background:#fff;color:#009de0;border:2px solid rgba(0,157,224,.2);border-radius:16px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease}body.dark-mode .instructions-toggle{background:#0f0f0f;color:#00c3ff;border:2px solid rgba(0,195,255,.2)}.instructions-toggle:active{transform:scale(.98)}.instructions-toggle svg{width:18px;height:18px}.install-instructions{margin-top:16px;padding:24px;background:#fff;border-radius:20px;border:1px solid rgba(0,0,0,.05);box-shadow:0 2px 8px #0000000a}body.dark-mode .install-instructions{background:#1a1a1a;border:1px solid rgba(255,255,255,.1);box-shadow:0 2px 8px #0000004d}.instruction-group{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid rgba(0,0,0,.05)}body.dark-mode .instruction-group{border-bottom:1px solid rgba(255,255,255,.08)}.instruction-group:last-of-type{margin-bottom:0;padding-bottom:0;border-bottom:none}.instruction-group h3{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:700;color:#111827;margin:0 0 12px}body.dark-mode .instruction-group h3{color:#f9fafb}.instruction-group h3 svg{width:20px;height:20px;color:#009de0}body.dark-mode .instruction-group h3 svg{color:#00c3ff}.instruction-group ol{margin:0;padding-left:24px;list-style:decimal}.instruction-group li{font-size:14px;color:#374151;line-height:1.7;margin-bottom:8px}body.dark-mode .instruction-group li{color:#d1d5db}.instruction-group li:last-child{margin-bottom:0}.instruction-group strong{color:#111827;font-weight:600}body.dark-mode .instruction-group strong{color:#f9fafb}.install-benefits{padding:20px;background:linear-gradient(135deg,#009de00d,#00b8f50d);border-radius:16px;margin-top:20px}body.dark-mode .install-benefits{background:linear-gradient(135deg,#00c3ff1a,#0099cc1a)}.install-benefits h4{font-size:15px;font-weight:700;color:#111827;margin:0 0 12px}body.dark-mode .install-benefits h4{color:#f9fafb}.install-benefits ul{margin:0;padding:0;list-style:none}.install-benefits li{font-size:14px;color:#374151;line-height:1.7;margin-bottom:6px}body.dark-mode .install-benefits li{color:#d1d5db}.install-benefits li:last-child{margin-bottom:0}@media (max-width: 480px){.install-header{padding:20px;gap:14px}.install-icon{width:48px;height:48px;border-radius:14px}.install-icon svg{width:24px;height:24px}.install-title h2{font-size:18px}.install-title p{font-size:13px}.install-button{padding:14px 20px;font-size:15px}.instructions-toggle{padding:12px 18px;font-size:13px}.install-instructions{padding:20px}.instruction-group h3{font-size:15px}.instruction-group li{font-size:13px}.install-benefits{padding:16px}.install-benefits h4{font-size:14px}.install-benefits li{font-size:13px}}.route-calculator-page{height:calc(100vh - 70px);display:flex;flex-direction:column;background:#f9fafb}body.dark-mode .route-calculator-page{background:#0f0f0f}@media (max-width: 768px){.route-calculator-page{height:calc(100vh - 110px)}}@media (max-width: 480px){.route-calculator-page{height:calc(100vh - 100px)}}@media (max-width: 360px){.route-calculator-page{height:calc(100vh - 95px)}}.calculator-header{background:#fff;padding:24px 20px 20px;border-bottom:1px solid rgba(0,0,0,.05)}body.dark-mode .calculator-header{background:#1a1a1a;border-bottom:1px solid rgba(255,255,255,.1)}.calculator-header h1{font-size:28px;font-weight:700;color:#111827;margin:0 0 6px;letter-spacing:-.5px}body.dark-mode .calculator-header h1{color:#f9fafb}.calculator-header p{font-size:14px;color:#6b7280;margin:0;font-weight:500}body.dark-mode .calculator-header p{color:#9ca3af}.calculator-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px}.search-section{position:relative;margin-bottom:16px}.search-box{position:relative;display:flex;align-items:center;background:#fff;border:2px solid rgba(0,157,224,.2);border-radius:16px;padding:14px 16px;transition:all .3s ease}body.dark-mode .search-box{background:#1a1a1a;border:2px solid rgba(0,195,255,.2)}.search-box:focus-within{border-color:#009de0;box-shadow:0 0 0 4px #009de01a}body.dark-mode .search-box:focus-within{border-color:#00c3ff;box-shadow:0 0 0 4px #00c3ff26}.search-box svg{width:20px;height:20px;color:#9ca3af;margin-right:12px;flex-shrink:0}.search-box input{flex:1;border:none;background:transparent;font-size:16px;color:#111827;outline:none}body.dark-mode .search-box input{color:#f9fafb}.search-box input::placeholder{color:#9ca3af}.search-spinner{width:20px;height:20px;border:2px solid rgba(0,157,224,.2);border-top-color:#009de0;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}.search-results{position:absolute;top:calc(100% + 8px);left:0;right:0;background:#fff;border-radius:16px;box-shadow:0 8px 24px #0000001f;z-index:1000;max-height:300px;overflow-y:auto}body.dark-mode .search-results{background:#1a1a1a;box-shadow:0 8px 24px #0006}.search-result-item{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:none;background:transparent;width:100%;text-align:left;cursor:pointer;transition:background .2s ease;border-bottom:1px solid rgba(0,0,0,.05)}body.dark-mode .search-result-item{border-bottom:1px solid rgba(255,255,255,.08)}.search-result-item:last-child{border-bottom:none}.search-result-item:active{background:#009de01a}body.dark-mode .search-result-item:active{background:#00c3ff26}.search-result-item svg{width:18px;height:18px;color:#009de0;flex-shrink:0;margin-top:2px}body.dark-mode .search-result-item svg{color:#00c3ff}.search-result-item span{font-size:14px;color:#111827;line-height:1.5}body.dark-mode .search-result-item span{color:#f9fafb}.my-location-result{background:#009de014!important;border-bottom:2px solid rgba(0,157,224,.2)!important}body.dark-mode .my-location-result{background:#00c3ff1f!important;border-bottom:2px solid rgba(0,195,255,.3)!important}.my-location-result:active{background:#009de026!important}body.dark-mode .my-location-result:active{background:#00c3ff33!important}.my-location-result:disabled{opacity:.6;cursor:not-allowed}.my-location-result svg{color:#009de0}body.dark-mode .my-location-result svg{color:#00c3ff}.waypoints-list{background:#fff;border-radius:16px;padding:16px;margin-bottom:16px;border:1px solid rgba(0,0,0,.05)}body.dark-mode .waypoints-list{background:#1a1a1a;border:1px solid rgba(255,255,255,.1)}.empty-waypoints{text-align:center;padding:40px 20px}.empty-waypoints svg{width:48px;height:48px;color:#d1d5db;margin-bottom:16px}body.dark-mode .empty-waypoints svg{color:#4b5563}.empty-waypoints p{font-size:14px;color:#6b7280;margin:0}body.dark-mode .empty-waypoints p{color:#9ca3af}.waypoint-item{display:flex;align-items:center;gap:12px;padding:12px;background:#f9fafb;border-radius:12px;margin-bottom:8px}body.dark-mode .waypoint-item{background:#0f0f0f}.waypoint-item:last-child{margin-bottom:0}.waypoint-marker{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#009de0,#00b8f5);display:flex;align-items:center;justify-content:center;flex-shrink:0}body.dark-mode .waypoint-marker{background:linear-gradient(135deg,#00c3ff,#09c)}.waypoint-marker span{font-size:16px;font-weight:700;color:#fff}.waypoint-info{flex:1;min-width:0}.waypoint-info strong{display:block;font-size:15px;font-weight:600;color:#111827;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.dark-mode .waypoint-info strong{color:#f9fafb}.waypoint-info small{display:block;font-size:12px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.dark-mode .waypoint-info small{color:#9ca3af}.remove-waypoint{width:32px;height:32px;border:none;background:#fee2e2;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .2s ease}body.dark-mode .remove-waypoint{background:#ef444426}.remove-waypoint:active{background:#ef4444;transform:scale(.95)}.remove-waypoint svg{width:16px;height:16px;color:#ef4444}.remove-waypoint:active svg{color:#fff}.action-buttons{display:flex;gap:12px;margin-bottom:16px}.calculate-button{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;background:linear-gradient(135deg,#009de0,#00b8f5);border:none;border-radius:14px;color:#fff;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #009de04d}body.dark-mode .calculate-button{background:linear-gradient(135deg,#00c3ff,#09c);box-shadow:0 4px 12px #00c3ff66}.calculate-button:active:not(:disabled){transform:scale(.98)}.calculate-button:disabled{opacity:.6;cursor:not-allowed}.calculate-button svg{width:20px;height:20px}.button-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.clear-button{width:52px;height:52px;background:#fee2e2;border:none;border-radius:14px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}body.dark-mode .clear-button{background:#ef444426}.clear-button:active{background:#ef4444;transform:scale(.95)}.clear-button svg{width:20px;height:20px;color:#ef4444}body.dark-mode .clear-button svg{color:#f87171}.clear-button:active svg{color:#fff}.route-summary{display:flex;gap:12px;margin-bottom:16px}.summary-item{flex:1;background:#fff;border-radius:16px;padding:16px;display:flex;align-items:center;gap:12px;border:1px solid rgba(0,0,0,.05)}body.dark-mode .summary-item{background:#1a1a1a;border:1px solid rgba(255,255,255,.1)}.summary-item.highlight{background:linear-gradient(135deg,#009de0,#00b8f5);border:none}body.dark-mode .summary-item.highlight{background:linear-gradient(135deg,#00c3ff,#09c)}.summary-icon{width:40px;height:40px;background:#f3f4f6;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}body.dark-mode .summary-icon{background:#374151}.summary-item.highlight .summary-icon{background:#fff3}.summary-icon svg{width:20px;height:20px;color:#009de0}body.dark-mode .summary-icon svg{color:#00c3ff}.summary-item.highlight .summary-icon svg{color:#fff}.summary-content{flex:1}.summary-value{font-size:20px;font-weight:700;color:#111827;line-height:1;margin-bottom:6px}body.dark-mode .summary-value{color:#f9fafb}.summary-item.highlight .summary-value{color:#fff}.summary-label{font-size:12px;color:#6b7280;font-weight:600;text-transform:uppercase;letter-spacing:.5px}body.dark-mode .summary-label{color:#9ca3af}.summary-item.highlight .summary-label{color:#ffffffe6}.calculator-map{height:300px;border-top:1px solid rgba(0,0,0,.08)}body.dark-mode .calculator-map{border-top:1px solid rgba(255,255,255,.1)}.calculator-map .map-container{width:100%;height:100%}body.dark-mode .calculator-map .leaflet-container{background-color:#3a3a3a!important}body.dark-mode .calculator-map .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.95) contrast(.98) saturate(.55) hue-rotate(110deg)}.custom-waypoint-marker{background:transparent!important;border:none!important}.waypoint-marker-icon{width:32px;height:32px;background:linear-gradient(135deg,#009de0,#00b8f5);border:3px solid white;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff;box-shadow:0 2px 8px #009de066}@media (max-width: 480px){.calculator-header h1{font-size:24px}.route-summary,.action-buttons{flex-direction:column}.clear-button{width:100%;height:52px}}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:70px;background:#fff;display:flex;justify-content:space-between;align-items:center;box-shadow:0 -2px 20px #00000014;z-index:1000;padding:0 8px;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid rgba(0,0,0,.05);gap:4px}@media (max-width: 768px){.bottom-nav{height:110px;padding:0 12px;padding-bottom:calc(env(safe-area-inset-bottom) + 8px);gap:8px}}body.dark-mode .bottom-nav{background:#1a1a1a;border-top:1px solid rgba(255,255,255,.1);box-shadow:0 -2px 20px #0006}.nav-button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:none;color:#9ca3af;cursor:pointer;padding:8px 4px;min-width:0;transition:all .3s cubic-bezier(.4,0,.2,1);-webkit-tap-highlight-color:transparent;border-radius:12px}body.dark-mode .nav-button{color:#6b7280}.nav-button svg{width:26px;height:26px;transition:all .3s ease}.nav-button span{font-size:10px;font-weight:600;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.nav-button.active{color:#009de0}body.dark-mode .nav-button.active{color:#00c3ff}.nav-button.active svg{transform:scale(1.05)}.nav-button:active{transform:scale(.95)}.center-button{position:absolute;left:50%;transform:translate(-50%) translateY(-50%);top:0;flex:0 0 auto;margin:0;padding:0;background:transparent;width:70px;height:70px;display:flex;align-items:center;justify-content:center;z-index:1001}.center-button:active{transform:translate(-50%) translateY(-50%) scale(.95)}.center-icon{width:70px;height:70px;border-radius:50%;background:linear-gradient(135deg,#009de0,#00b8f5);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 8px 24px #009de059,0 4px 8px #009de033;transition:all .3s cubic-bezier(.4,0,.2,1);border:5px solid #ffffff;flex-shrink:0}body.dark-mode .center-icon{background:linear-gradient(135deg,#00c3ff,#09c);border:5px solid #1a1a1a;box-shadow:0 8px 24px #00c3ff66,0 4px 8px #00c3ff40}.center-button:active .center-icon{box-shadow:0 4px 16px #009de059,0 2px 4px #009de033}body.dark-mode .center-button:active .center-icon{box-shadow:0 4px 16px #00c3ff66,0 2px 4px #00c3ff40}.center-button.tracking .center-icon{background:linear-gradient(135deg,#ef4444,#f87171);box-shadow:0 8px 24px #ef444466,0 4px 8px #ef444440;animation:tracking-pulse 2s ease-in-out infinite}body.dark-mode .center-button.tracking .center-icon{border:5px solid #1a1a1a}@keyframes tracking-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.center-icon svg{width:32px;height:32px}@media (max-width: 768px){.nav-button{padding:12px 8px;gap:6px}.nav-button svg{width:32px;height:32px}.nav-button span{font-size:13px;font-weight:700}.center-button{width:80px;height:80px}.center-button:active{transform:translate(-50%) translateY(-50%) scale(.95)}.center-icon{width:80px;height:80px;border:6px solid #ffffff}body.dark-mode .center-icon{border:6px solid #1a1a1a}.center-icon svg{width:40px;height:40px}}@media (max-width: 480px){.bottom-nav{height:100px;padding:0 8px;padding-bottom:calc(env(safe-area-inset-bottom) + 6px)}.nav-button{padding:10px 6px;gap:5px}.nav-button svg{width:28px;height:28px}.nav-button span{font-size:12px}.center-button{width:72px;height:72px}.center-icon{width:72px;height:72px;border:5px solid #ffffff}body.dark-mode .center-icon{border:5px solid #1a1a1a}.center-icon svg{width:36px;height:36px}}@media (max-width: 360px){.bottom-nav{height:95px}.nav-button span{font-size:11px}.nav-button svg{width:26px;height:26px}.center-button{width:68px;height:68px}.center-icon{width:68px;height:68px;border:5px solid #ffffff}body.dark-mode .center-icon{border:5px solid #1a1a1a}.center-icon svg{width:34px;height:34px}}.install-prompt-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.install-prompt{background:#fff;border-radius:24px;padding:32px 24px 24px;max-width:420px;width:100%;box-shadow:0 20px 60px #0000004d;position:relative;animation:slideUp .3s ease-out}body.dark-mode .install-prompt{background:#1a1a1a;box-shadow:0 20px 60px #0009}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.prompt-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border:none;background:#0000000d;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}body.dark-mode .prompt-close{background:#ffffff1a}.prompt-close:active{transform:scale(.9)}.prompt-close svg{width:18px;height:18px;color:#6b7280}body.dark-mode .prompt-close svg{color:#9ca3af}.prompt-icon{width:80px;height:80px;margin:0 auto 20px;border-radius:20px;overflow:hidden;box-shadow:0 8px 24px #009de033}.prompt-icon img{width:100%;height:100%;object-fit:cover}.install-prompt h3{font-size:24px;font-weight:700;color:#111827;margin:0 0 12px;text-align:center}body.dark-mode .install-prompt h3{color:#f9fafb}.install-prompt p{font-size:15px;color:#6b7280;margin:0 0 24px;text-align:center;line-height:1.5}body.dark-mode .install-prompt p{color:#9ca3af}.prompt-features{display:flex;flex-direction:column;gap:12px;margin-bottom:24px;padding:20px;background:#009de00d;border-radius:16px}body.dark-mode .prompt-features{background:#00c3ff1a}.feature{display:flex;align-items:center;gap:12px}.feature svg{width:20px;height:20px;color:#009de0;flex-shrink:0}body.dark-mode .feature svg{color:#00c3ff}.feature span{font-size:14px;color:#374151;font-weight:500}body.dark-mode .feature span{color:#d1d5db}.prompt-actions{display:flex;gap:12px}.prompt-button{flex:1;padding:14px 20px;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease}.prompt-button.secondary{background:#0000000d;color:#6b7280}body.dark-mode .prompt-button.secondary{background:#ffffff1a;color:#9ca3af}.prompt-button.secondary:active{transform:scale(.96);background:#00000014}body.dark-mode .prompt-button.secondary:active{background:#ffffff26}.prompt-button.primary{background:linear-gradient(135deg,#009de0,#00b8f5);color:#fff;box-shadow:0 4px 12px #009de04d}.prompt-button.primary:active{transform:scale(.96);box-shadow:0 2px 8px #009de04d}@media (max-width: 480px){.install-prompt{padding:28px 20px 20px}.prompt-icon{width:64px;height:64px;margin-bottom:16px}.install-prompt h3{font-size:20px}.install-prompt p{font-size:14px}.prompt-features{padding:16px}.feature{gap:10px}.feature svg{width:18px;height:18px}.feature span{font-size:13px}.prompt-button{padding:12px 16px;font-size:14px}}.app{width:100vw;height:100vh;overflow:hidden;display:flex;flex-direction:column}.app-content{flex:1;overflow:hidden;position:relative;background:#fff}body.dark-mode .app-content{background:#0f0f0f}html,body{overscroll-behavior-y:contain;touch-action:pan-y}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;background-color:#fff;transition:background-color .3s ease}body.dark-mode{background-color:#0f0f0f}#root{width:100vw;height:100vh;overflow:hidden}.leaflet-container{width:100%;height:100%;z-index:0}.leaflet-control-container{z-index:500}.no-select{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
