.navbar{position:fixed;top:0;left:0;right:0;height:var(--nav-height);z-index:1300;background:#ffffffb8;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid rgba(0,0,0,.06)}.navbar-inner{max-width:var(--max-width);margin:0 auto;height:100%;display:flex;align-items:center;gap:var(--space-md);padding:0 var(--space-lg)}.navbar-brand{display:flex;align-items:center;gap:var(--space-sm);text-decoration:none;flex-shrink:0}.brand-logo{height:36px;width:auto;object-fit:contain;border-radius:8px}.brand-text{font-size:var(--font-size-xl);font-weight:600;color:var(--color-text-primary);letter-spacing:-.02em}.navbar-search{position:relative;flex:1;max-width:320px}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--color-text-secondary);pointer-events:none}.search-input{width:100%;padding:9px 14px 9px 38px;background:#0000000a;border:1px solid transparent;border-radius:12px;font-size:var(--font-size-sm);color:var(--color-text-primary);outline:none;transition:all var(--transition-base)}.search-input:focus{background:#fff;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.search-input::placeholder{color:var(--color-text-secondary)}.navbar-filter{position:relative;flex-shrink:0}.vehicle-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:9px 32px 9px 14px;background:#0000000a;border:1px solid transparent;border-radius:12px;font-size:var(--font-size-sm);color:var(--color-text-primary);cursor:pointer;outline:none;transition:all var(--transition-base)}.vehicle-select:focus{border-color:var(--color-accent)}.select-chevron{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--color-text-secondary);pointer-events:none}.navbar-links{display:flex;align-items:center;gap:var(--space-xs)}.nav-link{display:flex;align-items:center;gap:5px;padding:7px 14px;border-radius:10px;font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);text-decoration:none;transition:all var(--transition-base);white-space:nowrap}.nav-link:hover{color:var(--color-text-primary);background:#0000000a}.nav-link.active{color:var(--color-accent);background:var(--color-accent-light)}.navbar-actions{flex-shrink:0}.user-menu{position:relative}.user-btn{display:flex;align-items:center;gap:6px}.user-name{font-weight:500}.user-dropdown{position:absolute;top:100%;right:0;padding-top:8px;opacity:0;pointer-events:none;transform:translateY(-4px);transition:all var(--transition-fast)}.user-dropdown-inner{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:var(--glass-radius-sm);box-shadow:0 12px 40px #0000001f;min-width:180px;overflow:hidden}.user-menu:hover .user-dropdown{opacity:1;pointer-events:auto;transform:translateY(0)}.dropdown-item{display:block;width:100%;padding:10px 16px;font-size:var(--font-size-sm);color:var(--color-text-primary);text-decoration:none;text-align:left;background:none;border:none;cursor:pointer;transition:background var(--transition-fast)}.dropdown-item:hover{background:#0000000a}.logout-btn{color:var(--color-danger);border-top:1px solid rgba(0,0,0,.06)}.menu-toggle{display:none;background:none;color:var(--color-text-primary);padding:4px}@media (max-width: 1024px){.navbar-search{max-width:200px}.navbar-filter{display:none}}@media (max-width: 768px){.navbar-search{display:none}.navbar-brand{margin-right:auto}.navbar-links{position:fixed;top:var(--nav-height);left:0;right:0;background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);flex-direction:column;padding:var(--space-md);gap:var(--space-xs);border-bottom:1px solid rgba(0,0,0,.06);transform:translateY(-100%);opacity:0;pointer-events:none;transition:all var(--transition-base)}.navbar-links.open{transform:translateY(0);opacity:1;pointer-events:auto}.nav-link{width:100%;padding:12px 16px}.menu-toggle{display:block}}.hero{position:relative;padding:var(--space-2xl) 0 var(--space-4xl);overflow:hidden}.hero-blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5;pointer-events:none}.hero-blob-1{width:500px;height:500px;background:radial-gradient(circle,rgba(0,113,227,.15),transparent 70%);top:-100px;right:-100px}.hero-blob-2{width:400px;height:400px;background:radial-gradient(circle,rgba(48,209,88,.12),transparent 70%);bottom:0;left:-100px}.hero-blob-3{width:300px;height:300px;background:radial-gradient(circle,rgba(0,113,227,.1),transparent 70%);top:50%;left:40%}.hero-container{display:grid;grid-template-columns:1fr 1.1fr;gap:var(--space-3xl);align-items:center;position:relative;z-index:1}.hero-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 16px;background:var(--color-accent-light);color:var(--color-accent);border-radius:980px;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-lg)}.hero-title{font-size:var(--font-size-hero);line-height:1.05;margin-bottom:var(--space-lg)}.hero-highlight{background:linear-gradient(135deg,var(--color-accent),#30D158);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:var(--font-size-lg);color:var(--color-text-secondary);max-width:480px;margin-bottom:var(--space-xl)}.hero-actions{display:flex;gap:var(--space-md);margin-bottom:var(--space-2xl);flex-wrap:wrap}.hero-stats{display:flex;align-items:center;gap:var(--space-lg)}.hero-stat{display:flex;flex-direction:column}.stat-number{font-size:var(--font-size-2xl);font-weight:600;color:var(--color-text-primary)}.stat-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.hero-stat-divider{width:1px;height:36px;background:#0000001a}.hero-map-wrapper{position:relative}.hero-map-card{height:480px;overflow:hidden;position:relative}.map-overlay-badge{position:absolute;top:16px;left:16px;z-index:500;display:flex;align-items:center;gap:8px;padding:8px 16px;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:980px;font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-primary);box-shadow:0 2px 12px #00000014}.live-dot{width:8px;height:8px;background:var(--color-success);border-radius:50%;animation:blink 1.5s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}@media (max-width: 1024px){.hero-container{grid-template-columns:1fr;gap:var(--space-2xl)}.hero-title{font-size:var(--font-size-4xl)}.hero-map-card{height:360px}.hero{padding:var(--space-4xl) 0 var(--space-3xl)}}@media (max-width: 768px){.hero-title{font-size:var(--font-size-3xl)}.hero-map-card{height:280px}.hero-actions{flex-direction:column}.hero-actions .btn{width:100%}.hero{padding:var(--space-3xl) 0 var(--space-2xl)}}.quick-cards-section .section-header{text-align:center;margin-bottom:var(--space-2xl)}.section-header h2{margin-bottom:var(--space-sm)}.quick-card{padding:var(--space-xl);cursor:pointer;position:relative;overflow:hidden}.quick-card-icon{width:52px;height:52px;border-radius:16px;display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-md)}.quick-card-title{margin-bottom:var(--space-sm);font-size:var(--font-size-lg)}.quick-card-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.quick-card-arrow{position:absolute;bottom:20px;right:20px;font-size:20px;opacity:0;transform:translate(-8px);transition:all var(--transition-base)}.quick-card:hover .quick-card-arrow{opacity:1;transform:translate(0)}.carbon-section{background:linear-gradient(180deg,transparent,rgba(0,113,227,.03))}.carbon-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3xl);align-items:center}.carbon-desc{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin:var(--space-lg) 0 var(--space-xl);max-width:440px}.carbon-stats-row{display:flex;gap:var(--space-md)}.carbon-stat-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-radius:var(--glass-radius-sm)}.carbon-stat-value{display:block;font-size:var(--font-size-xl);font-weight:600;color:var(--color-text-primary)}.carbon-stat-label{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.carbon-feature-cards{display:flex;flex-direction:column;gap:var(--space-md)}.feature-card{display:flex;align-items:flex-start;gap:var(--space-md);padding:var(--space-lg)}.feature-icon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.feature-card h4{margin-bottom:4px}.feature-card p{font-size:var(--font-size-sm);line-height:1.5}@media (max-width: 768px){.carbon-grid{grid-template-columns:1fr;gap:var(--space-xl)}.carbon-stats-row{flex-direction:column}}.home-page{overflow:hidden}.station-detail{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:flex;justify-content:flex-end}.detail-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000026;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.detail-panel{position:relative;width:440px;max-width:100%;height:100%;overflow-y:auto;border-radius:0;border-left:1px solid rgba(0,0,0,.06);animation:slideInRight .3s ease;z-index:1}.detail-close{position:absolute;top:16px;right:16px;z-index:10;background:#0000004d;color:#fff;border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--transition-base)}.detail-close:hover{background:#00000080}.detail-hero{position:relative;height:200px;overflow:hidden}.detail-hero-img{width:100%;height:100%;object-fit:cover}.detail-hero-overlay{position:absolute;bottom:12px;left:12px}.detail-rating{display:flex;align-items:center;gap:4px;padding:4px 10px;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:8px;color:#fff;font-size:var(--font-size-sm);font-weight:600}.detail-body{padding:var(--space-lg)}.detail-name{font-size:var(--font-size-xl);margin-bottom:var(--space-sm)}.detail-meta{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--space-lg)}.detail-meta span{display:flex;align-items:center;gap:6px;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.charger-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--space-lg)}.charger-chip{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:10px;font-size:var(--font-size-xs);font-weight:500;background:#0000000a;border:1.5px solid transparent;cursor:pointer;transition:all var(--transition-base);color:var(--color-text-primary)}.charger-chip.selected{background:var(--color-accent-light);border-color:var(--color-accent);color:var(--color-accent)}.charger-chip.faulty{opacity:.4;cursor:not-allowed}.chip-status.available{color:var(--color-success)}.chip-status.occupied{color:var(--color-warning)}.chip-status.faulty{color:var(--color-danger)}.detail-tabs{margin-bottom:var(--space-md)}.tab-content{min-height:200px}.slots-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;max-height:300px;overflow-y:auto;padding-right:4px}.time-slot{padding:8px 10px;border-radius:8px;text-align:center;font-size:11px;font-weight:500;display:flex;flex-direction:column;align-items:center;gap:2px;transition:all var(--transition-base);cursor:pointer}.time-slot.available{background:var(--color-success-light);color:#1b9e3e}.time-slot.booked{background:#0000000a;color:var(--color-text-secondary);cursor:not-allowed}.slot-time{font-weight:600}.slot-status{font-size:10px}.estimator{display:flex;flex-direction:column;gap:var(--space-md)}.estimate-input label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-primary);margin-bottom:4px;display:block}.range-row{display:flex;align-items:center;gap:var(--space-md)}.range-input{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:#0000001a;border-radius:2px;outline:none}.range-input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;background:var(--color-accent);border-radius:50%;cursor:pointer;box-shadow:0 2px 6px #0071e34d}.range-value{font-size:var(--font-size-sm);font-weight:600;color:var(--color-accent);min-width:40px;text-align:right}.estimate-results{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.estimate-card{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);border-radius:var(--glass-radius-sm)}.estimate-value{display:block;font-size:var(--font-size-lg);font-weight:600;color:var(--color-text-primary)}.estimate-label{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.reviews-list{display:flex;flex-direction:column;gap:var(--space-md)}.review-card{padding:var(--space-md);background:#00000005;border-radius:var(--glass-radius-sm)}.review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.review-user{font-weight:600;font-size:var(--font-size-sm);color:var(--color-text-primary)}.review-stars{display:flex;gap:2px}.review-text{font-size:var(--font-size-sm);line-height:1.5;margin-bottom:4px}.review-date{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.amenities-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.amenity-card{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);border-radius:var(--glass-radius-sm);font-size:var(--font-size-sm);font-weight:500}.directions-link{text-decoration:none;color:var(--color-accent);grid-column:span 2;justify-content:center}.detail-actions{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid rgba(0,0,0,.06)}.detail-book-btn{width:100%}.detail-navigate-btn{padding:0 16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;min-width:50px}.btn-navigate{background:linear-gradient(135deg,#30d158,#0b8a3e);color:#fff;border:none;border-radius:14px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 14px #30d1584d}.btn-navigate:hover{transform:scale(1.05);box-shadow:0 6px 20px #30d15873}.btn-navigate:active{transform:scale(.97)}.btn-navigate.loading{opacity:.7;cursor:wait}.route-preview{margin-bottom:var(--space-lg);padding:var(--space-md);background:#30d1580a;border:1px solid rgba(48,209,88,.15);border-radius:16px;animation:routePreviewIn .35s ease}@keyframes routePreviewIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.route-preview-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.route-preview-icon{color:#30d158}.route-preview-title{font-size:13px;font-weight:700;color:var(--color-text-primary);flex:1}.route-preview-close{background:#0000000f;border:none;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-secondary);transition:all .2s}.route-preview-close:hover{background:#0000001f}.route-preview-stats{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:10px}.route-stat{flex:1;text-align:center}.route-stat-value{display:block;font-size:18px;font-weight:700;color:var(--color-text-primary);letter-spacing:-.02em;line-height:1.2}.route-stat-value.route-stat-warning{color:#ff9f0a}.route-stat-label{font-size:10px;font-weight:500;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.route-stat-divider{width:1px;height:28px;background:#00000014;flex-shrink:0}.route-traffic-penalty{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#ff9f0a14;border-radius:10px;font-size:11px;font-weight:500;color:#b87400;margin-bottom:8px}.route-traffic-penalty svg{flex-shrink:0;color:#ff9f0a}.route-battery-warning{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#ff9f0a14;border-radius:10px;font-size:11px;font-weight:600;color:#ff9f0a;margin-bottom:10px}.route-battery-warning.critical{background:#ff453a14;color:#ff453a}.route-start-btn{width:100%;padding:12px 20px;font-size:var(--font-size-sm);font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:12px}.route-error{display:flex;align-items:center;gap:8px;padding:10px 14px;margin-bottom:var(--space-md);background:#ff453a0f;border:1px solid rgba(255,69,58,.12);border-radius:12px;font-size:12px;color:#ff453a;animation:routePreviewIn .3s ease}.route-error svg{flex-shrink:0}.route-error span{flex:1}.route-error-retry{background:#ff453a1a;border:none;border-radius:8px;padding:4px 12px;font-size:11px;font-weight:600;color:#ff453a;cursor:pointer;transition:background .2s}.route-error-retry:hover{background:#ff453a2e}@media (max-width: 768px){.detail-panel{width:100%;border-radius:var(--glass-radius) var(--glass-radius) 0 0;border-left:none;max-height:90vh;margin-top:auto}.station-detail{align-items:flex-end}.route-preview-stats{gap:2px}.route-stat-value{font-size:15px}}.directions-hint{display:flex;align-items:center;gap:5px;margin-top:8px;font-size:11px;color:var(--color-text-secondary);opacity:.7;justify-content:center}.booking-countdown{position:absolute;top:16px;right:16px;z-index:1001;width:280px;background:#ffffffe0;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(0,0,0,.06);border-radius:20px;box-shadow:0 8px 40px #0000001a;padding:16px;animation:slideInCountdown .4s ease forwards}@keyframes slideInCountdown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.countdown-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.countdown-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background:#0071e314;color:#0071e3;border-radius:980px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.countdown-close{width:24px;height:24px;border-radius:50%;background:#0000000f;display:flex;align-items:center;justify-content:center;color:#6e6e73;cursor:pointer;transition:all .2s}.countdown-close:hover{background:#0000001f}.countdown-station{margin-bottom:12px}.countdown-station-name{display:block;font-size:13px;font-weight:600;color:#1d1d1f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.countdown-slot{font-size:11px;color:#6e6e73;font-weight:500}.countdown-phase-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#0071e3;text-align:center;margin-bottom:4px}.countdown-badge.active-badge{background:#30d1581a;color:#1b9e3e}.countdown-badge.expired-badge{background:#ff453a14;color:#ff453a}.countdown-timer{display:flex;align-items:center;justify-content:center;gap:4px;padding:12px 0;margin-bottom:8px;background:#00000008;border-radius:14px}.countdown-timer.timer-active{background:#30d1580f}.countdown-timer.timer-expired{background:#ff453a0d}.timer-block{display:flex;flex-direction:column;align-items:center;min-width:44px}.timer-value{font-size:24px;font-weight:700;color:#1d1d1f;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1}.timer-label{font-size:9px;color:#6e6e73;text-transform:uppercase;letter-spacing:.06em;margin-top:2px}.timer-colon{font-size:22px;font-weight:700;color:#1d1d1f;line-height:1;margin-bottom:12px;animation:blink-colon 1s infinite}@keyframes blink-colon{0%,to{opacity:1}50%{opacity:.3}}.countdown-expired{font-size:16px;font-weight:700;color:#ff453a;letter-spacing:-.01em}.countdown-cost{display:flex;align-items:center;justify-content:space-between;padding:8px 0;margin-bottom:10px;border-top:1px solid rgba(0,0,0,.06);font-size:12px;color:#6e6e73}.countdown-cost strong{color:#1d1d1f;font-size:14px}.countdown-directions-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 12px;margin-bottom:10px;border-radius:12px;font-size:12px;font-weight:600;cursor:pointer;text-decoration:none;background:linear-gradient(135deg,#0071e314,#0071e324);color:#0071e3;border:1px solid rgba(0,113,227,.18);transition:all .2s}.countdown-directions-btn:hover{background:linear-gradient(135deg,#0071e324,#0071e338);transform:translateY(-1px);box-shadow:0 2px 8px #0071e326}.countdown-directions-btn.loading{opacity:.7;cursor:wait}.btn-spinner{animation:spinLoader 1s linear infinite}@keyframes spinLoader{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.countdown-actions{display:flex;flex-direction:column;gap:6px}.countdown-btn{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:12px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;border:1px solid transparent;background:#00000008;color:#1d1d1f;width:100%;text-align:left}.countdown-btn:hover:not(.disabled-btn){transform:translate(2px)}.countdown-btn .btn-deduction{margin-left:auto;font-size:10px;font-weight:500;opacity:.7}.cancel-btn{background:#ff453a0f;color:#ff453a;border-color:#ff453a26}.cancel-btn:hover:not(.disabled-btn){background:#ff453a1f}.cancel-btn .btn-deduction{color:#ff453a}.change-btn{background:#0071e30f;color:#0071e3;border-color:#0071e326}.change-btn:hover:not(.disabled-btn){background:#0071e31f}.noreport-btn{background:#ff9f0a0f;color:#c67a00;border-color:#ff9f0a26}.noreport-btn:hover:not(.disabled-btn){background:#ff9f0a1f}.noreport-btn .btn-deduction{color:#ff453a}.enquiry-btn{background:#a78bfa14;color:#7c3aed;border-color:#a78bfa2e}.enquiry-btn:hover{background:#a78bfa26}.report-charger-btn{background:#06b6d40f;color:#0891b2;border-color:#06b6d42e}.report-charger-btn:hover:not(.disabled-btn){background:#06b6d41f}.report-charger-btn .btn-deduction{color:#059669}.report-refund-badge{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#30d15814;border:1px solid rgba(48,209,88,.2);border-radius:14px;margin-bottom:16px}.report-refund-badge strong{display:block;font-size:13px;color:#059669;margin-bottom:2px}.report-refund-badge span{font-size:11px;color:#6e6e73}.report-refund-badge>svg{color:#30d158;flex-shrink:0}.report-submit-btn{background:#0891b2!important;border-color:#0891b2!important}.disabled-btn{opacity:.4;cursor:not-allowed}.disabled-btn:hover{transform:none!important}.countdown-modal{max-width:520px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.countdown-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 12px}.countdown-modal-header h3{font-size:18px;font-weight:600}.change-slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 24px 24px;overflow-y:auto;max-height:50vh}.change-slot-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;border-radius:12px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s;border:1px solid rgba(0,0,0,.06);background:#fff;color:#1d1d1f}.change-slot-item.available:hover{background:#0071e30f;border-color:#0071e333;transform:scale(1.02)}.change-slot-item.booked{opacity:.4;cursor:not-allowed}.slot-badge{font-size:10px;color:#6e6e73}.enquiry-body{padding:0 24px 24px;overflow-y:auto}.enquiry-booking-info{display:flex;flex-direction:column;gap:4px;padding:10px 14px;background:#00000008;border-radius:12px;font-size:12px;color:#6e6e73;margin-bottom:14px}.enquiry-booking-info strong{color:#1d1d1f}.enquiry-textarea{width:100%;min-height:100px;resize:vertical;margin-bottom:14px;font-size:13px;line-height:1.5}.enquiry-submit{width:100%}.cancel-confirm-info{padding:16px;background:#00000008;border-radius:14px}.cancel-deduction-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:14px}.cancel-deduction-row+.cancel-deduction-row{border-top:1px solid rgba(0,0,0,.06)}.cancel-amount-red{color:#ff453a;font-size:15px}.cancel-amount-green{color:#30d158;font-size:15px}.cancel-info-text{font-size:12px;color:#6e6e73;margin-top:12px;line-height:1.5}.reopen-countdown-btn{position:absolute;top:16px;right:16px;z-index:1000;display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:980px;box-shadow:var(--glass-shadow);background:var(--glass-bg-solid);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);color:var(--color-accent);font-weight:600;font-size:13px;border:1px solid var(--glass-border-subtle);animation:fadeIn .3s ease;cursor:pointer;transition:all var(--transition-base)}.reopen-countdown-btn:hover{transform:translateY(-2px);box-shadow:var(--glass-shadow-hover)}@media (max-width: 768px){.booking-countdown{width:calc(100% - 32px);right:16px;top:16px;box-shadow:0 12px 48px #00000026}.change-slot-grid{grid-template-columns:repeat(2,1fr)}.countdown-btn,.countdown-directions-btn,.enquiry-submit,.report-submit-btn{padding:12px 16px;min-height:44px;font-size:13px}.countdown-close,.detail-close{width:44px;height:44px}.countdown-modal{max-height:85vh;width:calc(100% - 32px);margin:16px}.change-slot-item{min-height:44px;padding:12px 10px}}@media (max-width: 414px){.booking-countdown{width:calc(100% - 24px);right:12px;top:12px;padding:16px}.countdown-timer{padding:14px 0}.timer-value{font-size:26px}.countdown-modal-header{padding:16px 20px 10px}.change-slot-grid,.enquiry-body{padding:0 20px 20px}.cancel-deduction-row{font-size:13px}}@media (max-width: 375px){.booking-countdown{width:calc(100% - 20px);right:10px;top:10px;padding:14px}.countdown-station-name{font-size:13px}.timer-value{font-size:24px}.change-slot-grid{grid-template-columns:1fr;gap:10px}.countdown-actions{gap:8px}}@media (max-width: 320px){.booking-countdown{width:calc(100% - 16px);right:8px;top:8px;padding:12px}.countdown-station-name{font-size:12px}.timer-block{min-width:40px}.timer-value{font-size:20px}.countdown-btn .btn-deduction{font-size:9px}.countdown-btn,.countdown-directions-btn{font-size:12px}}.dm-root{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;animation:dmEnter .35s cubic-bezier(.4,0,.2,1) forwards}@keyframes dmEnter{0%{opacity:0}to{opacity:1}}.dm-top-panel{padding:16px;display:flex;flex-direction:column;gap:4px;pointer-events:auto;max-width:600px;width:100%;margin:0 auto}.dm-instruction-card{background:#0b5c35;color:#fff;border-radius:16px;padding:20px 24px;display:flex;align-items:center;gap:20px;box-shadow:0 4px 16px #00000026}.dm-maneuver-wrap{display:flex;flex-direction:column;align-items:center;min-width:80px}.dm-maneuver-arrow{font-size:54px;line-height:1;font-weight:700;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.dm-turn-distance{margin-top:4px;font-size:16px;font-weight:700}.dm-instruction-content{flex:1}.dm-instruction-text{font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.2}.dm-street-name{font-size:16px;opacity:.8;margin-top:4px}.dm-next-row{background:#094729;color:#fff;border-radius:12px;padding:12px 20px;display:inline-flex;align-items:center;gap:12px;align-self:flex-start;box-shadow:0 4px 12px #0000001a;margin-top:4px}.dm-then-label{font-size:14px;font-weight:600;opacity:.9}.dm-next-arrow{font-size:20px;font-weight:700}.dm-next-text{font-size:16px;font-weight:600}.dm-bottom-panel{pointer-events:auto;background:#fff;border-radius:24px 24px 0 0;box-shadow:0 -4px 24px #0000001a;padding:16px 24px 24px;display:flex;flex-direction:column;gap:16px;max-width:600px;width:100%;margin:0 auto;position:relative}.dm-speed-bubble{position:absolute;top:-70px;left:16px;background:#fff;width:56px;height:56px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 4px 12px #00000026;border:2px solid #E5E5EA}.dm-speed-val{font-size:20px;font-weight:800;line-height:1;color:#1d1d1f}.dm-speed-lbl{font-size:10px;font-weight:700;color:#86868b;text-transform:uppercase}.dm-banners-container{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.dm-banners-container::-webkit-scrollbar{display:none}.dm-banner{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:980px;font-size:13px;font-weight:600;white-space:nowrap;flex-shrink:0}.dm-banner-traffic{background:#fff3cd;color:#856404}.dm-banner-toll{background:#e2e3e5;color:#383d41}.dm-banner-warn{background:#fff3cd;color:#856404}.dm-banner-critical{background:#f8d7da;color:#721c24}.dm-banner-gps{background:#e2e3e5;color:#6c757d}.dm-bottom-content{display:flex;align-items:center;justify-content:space-between;gap:16px}.dm-icon-btn{width:48px;height:48px;border-radius:50%;border:1px solid #E5E5EA;background:#fff;color:#1d1d1f;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #0000000d;transition:all .2s;flex-shrink:0}.dm-icon-btn:hover{background:#f5f5f7}.dm-icon-btn:active{transform:scale(.95)}.dm-route-btn{color:#0071e3}.dm-route-btn.active{background:#0071e3;color:#fff;border-color:#0071e3}.dm-main-stats{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center}.dm-time-val{font-size:28px;font-weight:800;color:#188038;line-height:1.1;letter-spacing:-.02em}.dm-sub-stats{display:flex;align-items:center;justify-content:center;gap:6px;font-size:15px;font-weight:500;color:#6e6e73;margin-top:4px}.dm-dot-sep{opacity:.5;font-size:10px}.dm-batt-warn{color:#ff9f0a;font-weight:600}.dm-batt-ok{color:#1d1d1f}@media (max-width: 768px){.dm-top-panel{padding:12px}.dm-instruction-card{padding:16px;gap:16px}.dm-maneuver-arrow{font-size:44px}.dm-instruction-text{font-size:22px}.dm-street-name{font-size:14px}.dm-next-row{padding:8px 16px}.dm-bottom-panel{padding:16px 20px 20px}.dm-time-val{font-size:24px}.dm-sub-stats{font-size:14px}}.map-finder{display:flex;height:calc(100vh - var(--nav-height));position:relative}.filter-sidebar{width:300px;background:#ffffffd9;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border-right:1px solid rgba(0,0,0,.06);padding:var(--space-lg);overflow-y:auto;flex-shrink:0;transition:all var(--transition-base);z-index:10}.filter-sidebar:not(.open){width:0;padding:0;overflow:hidden;border:none}.filter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.filter-close{background:#0000000a;color:var(--color-text-secondary)}.filter-group{margin-bottom:var(--space-lg)}.filter-label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-primary);margin-bottom:var(--space-sm)}.amenity-tags{display:flex;flex-wrap:wrap;gap:6px}.amenity-tag{padding:6px 14px;border-radius:980px;font-size:var(--font-size-xs);font-weight:500;background:#0000000a;color:var(--color-text-secondary);border:1px solid transparent;cursor:pointer;transition:all var(--transition-base)}.amenity-tag.active{background:var(--color-accent-light);color:var(--color-accent);border-color:#0071e333}.filter-count{margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid rgba(0,0,0,.06);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.map-area{flex:1;position:relative;overflow:hidden}.map-controls{position:absolute;top:16px;left:16px;display:flex;gap:8px;z-index:1000}.map-controls .btn.active{background:var(--color-accent-light);color:var(--color-accent)}.locate-btn{position:absolute;bottom:30px;right:16px;z-index:1000;width:44px;height:44px;border-radius:50%;padding:0;display:flex;align-items:center;justify-content:center;background:#fff!important;box-shadow:0 2px 12px #0000001f}.traffic-info-badge{position:absolute;top:16px;right:16px;z-index:1001;display:flex;align-items:center;gap:10px;padding:10px 16px;background:#ffffffeb;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border-radius:14px;box-shadow:0 4px 20px #0000001a;border:1px solid rgba(0,0,0,.06);animation:trafficBadgeIn .4s ease}@keyframes trafficBadgeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.traffic-badge-icon{font-size:18px}.traffic-badge-content{display:flex;flex-direction:column}.traffic-badge-delay{font-size:12px;font-weight:700;color:#ff453a}.traffic-badge-eta{font-size:10px;font-weight:500;color:var(--color-text-secondary)}.popup-content{font-family:Inter,sans-serif}.popup-content strong{font-size:13px;display:block;margin-bottom:6px}.popup-meta{display:flex;align-items:center;gap:8px;font-size:12px}.popup-directions{display:inline-block;margin-top:8px;padding:5px 12px;font-size:11px;font-weight:600;color:#0071e3;background:#0071e314;border-radius:8px;text-decoration:none;transition:background .2s}.popup-directions:hover{background:#0071e329}.station-tooltip{padding:0!important;border:none!important;box-shadow:0 4px 20px #0000001f!important;border-radius:14px!important;background:#fffffff2!important;backdrop-filter:blur(16px)!important;-webkit-backdrop-filter:blur(16px)!important;pointer-events:auto!important}.station-tooltip:before{border-top-color:#fffffff2!important}.tooltip-content{padding:10px 14px;font-family:Inter,sans-serif;min-width:180px}.tooltip-name{display:block;font-size:12px;font-weight:600;color:#1d1d1f;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.tooltip-info{display:flex;align-items:center;gap:8px;margin-bottom:6px}.tooltip-slots{padding:2px 8px;border-radius:6px;font-size:10px;font-weight:600}.tooltip-slots.available{background:#30d1581f;color:#1b9e3e}.tooltip-slots.limited{background:#ffb3001f;color:#b87400}.tooltip-slots.full{background:#ff453a1f;color:#d63031}.tooltip-dist{font-size:11px;color:#6e6e73;font-weight:500}.tooltip-directions{display:block;text-align:center;padding:5px 10px;font-size:11px;font-weight:600;color:#0071e3;background:#0071e30f;border-radius:8px;text-decoration:none;transition:all .2s;cursor:pointer}.tooltip-directions:hover{background:#0071e324}.list-view{padding:var(--space-lg);overflow-y:auto;height:100%;display:flex;flex-direction:column;gap:var(--space-md);padding-top:60px}.list-card{display:flex;gap:var(--space-md);padding:var(--space-md);cursor:pointer;align-items:center}.list-card-img{width:100px;height:80px;object-fit:cover;border-radius:var(--glass-radius-sm);flex-shrink:0}.list-card-info{flex:1;min-width:0}.list-card-info h4{font-size:var(--font-size-sm);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-card-info>p{font-size:var(--font-size-xs);margin-bottom:6px}.list-card-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:4px}.list-distance{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.list-card-types{display:flex;gap:4px}.charger-type-tag{padding:2px 8px;background:#0000000a;border-radius:6px;font-size:10px;font-weight:500;color:var(--color-text-secondary)}.list-card-price{text-align:right;flex-shrink:0}.price-value{font-size:var(--font-size-xl);font-weight:600;color:var(--color-text-primary)}.price-unit{font-size:var(--font-size-xs);color:var(--color-text-secondary)}@media (max-width: 768px){.filter-sidebar{position:absolute;top:0;left:0;height:100%;z-index:20;width:100%;max-width:300px}.filter-sidebar:not(.open){transform:translate(-100%)}.list-card-img{width:80px;height:60px}}.instant-booking-panel{position:absolute;bottom:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);padding:14px var(--space-lg);background:#ffffffd1;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border-top:1px solid rgba(0,0,0,.06);box-shadow:0 -4px 30px #0000000f;animation:slideUpPanel .5s ease forwards}@keyframes slideUpPanel{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.instant-booking-features{display:flex;align-items:center;gap:var(--space-md);flex:1}.instant-feature{display:flex;align-items:center;gap:8px;white-space:nowrap}.instant-feature span{font-size:var(--font-size-xs);font-weight:500;color:var(--color-text-secondary)}.instant-feature-icon{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--color-accent-light);color:var(--color-accent);flex-shrink:0;transition:transform var(--transition-base)}.instant-feature:hover .instant-feature-icon{transform:scale(1.1)}.instant-feature-icon.live{background:var(--color-success-light);color:var(--color-success);animation:pulseGlow 2s ease-in-out infinite}@keyframes pulseGlow{0%,to{box-shadow:0 0 #30d1584d}50%{box-shadow:0 0 0 6px #30d15800}}.instant-feature-divider{width:1px;height:24px;background:#00000014;flex-shrink:0}.instant-book-btn{padding:12px 28px;font-size:var(--font-size-sm);font-weight:600;white-space:nowrap;flex-shrink:0;box-shadow:0 4px 18px #0071e359;transition:all var(--transition-base)}.instant-book-btn:hover{transform:scale(1.04);box-shadow:0 6px 24px #0071e373}@media (max-width: 1024px){.instant-booking-features{gap:var(--space-sm)}.instant-feature span{display:none}.instant-booking-panel{gap:var(--space-md)}.instant-feature-divider{display:none}}@media (max-width: 768px){.instant-booking-panel{flex-direction:column;padding:var(--space-md);gap:var(--space-sm)}.instant-booking-features{justify-content:center;gap:var(--space-md)}.instant-feature span,.instant-feature-divider{display:none}.instant-book-btn{width:100%}}.route-selector-bar{position:absolute;bottom:0;left:0;right:0;z-index:1002;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#ffffffe0;backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);border-top:1px solid rgba(0,0,0,.06);box-shadow:0 -6px 30px #00000014;animation:slideUpPanel .4s cubic-bezier(.4,0,.2,1) forwards}.route-selector-tabs{display:flex;gap:6px;flex:1;background:#0000000d;padding:6px;border-radius:16px}.route-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:10px 12px;border-radius:12px;border:none;background:transparent;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-family:Inter,sans-serif;color:var(--color-text-secondary)}.route-tab:hover{color:var(--color-text-primary)}.route-tab.active{background:#fff;color:#1d1d1f;box-shadow:0 4px 12px #00000014,0 1px 2px #0000000a}.route-tab-icon{font-size:20px;transition:transform .3s ease}.route-tab.active .route-tab-icon{transform:scale(1.1)}.route-tab-label{font-size:13px;font-weight:700}.route-tab-meta{font-size:11px;font-weight:500;opacity:.6}.route-selector-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.route-traffic-chip{padding:5px 10px;background:#ff453a1a;color:#ff453a;border-radius:980px;font-size:11px;font-weight:700;white-space:nowrap}.route-toll-chip{padding:5px 10px;background:#ffd70a1f;color:#b89000;border-radius:980px;font-size:11px;font-weight:700;white-space:nowrap}.route-drive-btn{white-space:nowrap;display:flex;align-items:center;gap:6px;font-weight:700;box-shadow:0 3px 12px #0071e34d}.traffic-legend{position:absolute;bottom:84px;left:50%;transform:translate(-50%);z-index:1001;display:flex;align-items:center;gap:12px;padding:7px 16px;background:#ffffffe6;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:980px;box-shadow:0 2px 12px #0000001a;white-space:nowrap}.legend-item{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--color-text-primary);font-family:Inter,sans-serif}.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.legend-toll{width:18px;height:18px;background:#ff9f0a;color:#fff;border-radius:5px;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center}@media (max-width: 768px){.route-selector-bar{flex-direction:column;gap:10px}.route-selector-tabs{width:100%}.route-selector-actions{width:100%;justify-content:flex-end}.traffic-legend{bottom:180px}}.marker-pin{width:32px;height:32px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:flex;align-items:center;justify-content:center;border:3px solid white;box-shadow:0 3px 10px #0003}.marker-slots{transform:rotate(45deg);color:#fff;font-size:12px;font-weight:700;font-family:Inter,sans-serif}.user-location-marker,.user-location-marker *{background:none!important;border:none!important}.user-marker-container{position:relative;width:48px;height:48px;display:flex;align-items:center;justify-content:center}.user-marker-pulse{position:absolute;width:48px;height:48px;border-radius:50%;background:#0071e326;animation:userPulse 2s ease-in-out infinite}@keyframes userPulse{0%{transform:scale(1);opacity:.6}50%{transform:scale(1.6);opacity:0}to{transform:scale(1);opacity:0}}.user-battery-ring{position:absolute;top:0;left:0;filter:drop-shadow(0 2px 6px rgba(0,0,0,.15))}.user-marker-dot{position:absolute;width:30px;height:30px;border-radius:50%;background:#fff;box-shadow:0 2px 10px #0000002e;display:flex;align-items:center;justify-content:center}.user-battery-text{font-size:9px;font-weight:700;font-family:Inter,sans-serif;color:#1d1d1f;letter-spacing:-.02em}.toll-marker{background:#ff9f0a;color:#fff;font-size:10px;font-weight:700;padding:3px 8px;border-radius:8px;border:2px solid white;box-shadow:0 2px 8px #0003;font-family:Inter,sans-serif;white-space:nowrap}@keyframes routeDashFlow{0%{stroke-dashoffset:24}to{stroke-dashoffset:0}}.route-dash-anim{animation:routeDashFlow 1s linear infinite}.dashboard-page{padding:var(--space-2xl) 0 var(--space-4xl)}.dash-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-xl)}.sos-btn{background:var(--color-danger);box-shadow:0 4px 14px #ff453a4d}.sos-btn:hover{box-shadow:0 6px 20px #ff453a66}.dash-stats{margin-bottom:var(--space-xl)}.dash-stat-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg);border-radius:var(--glass-radius)}.stat-icon{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-info{display:flex;flex-direction:column}.stat-number{font-size:var(--font-size-xl);font-weight:600;color:var(--color-text-primary)}.stat-label-text{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.dash-main-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--space-lg)}.dash-section{padding:var(--space-lg);margin-bottom:var(--space-lg);border-radius:var(--glass-radius)}.section-title-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.section-title-row h4{margin:0}.booking-card{padding:var(--space-md) 0;border-bottom:1px solid rgba(0,0,0,.04)}.booking-card:last-child{border-bottom:none}.charging-progress{display:flex;align-items:center;gap:var(--space-lg)}.charging-info h4{font-size:var(--font-size-sm);margin-bottom:4px}.charging-stats{display:flex;gap:var(--space-md);margin-top:8px}.charging-stats span{display:flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:var(--color-accent);font-weight:500}.upcoming-card{display:flex;justify-content:space-between;align-items:center}.upcoming-info h4{font-size:var(--font-size-sm);margin-bottom:2px}.upcoming-meta{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:var(--font-size-sm);font-weight:500}.history-list{display:flex;flex-direction:column;gap:8px;margin-top:var(--space-md)}.history-card{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md);background:#00000005;border-radius:var(--glass-radius-sm)}.history-info{display:flex;flex-direction:column;gap:2px}.history-info strong{font-size:var(--font-size-sm)}.history-info .text-secondary{font-size:var(--font-size-xs)}.history-meta{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:var(--font-size-sm);font-weight:500}.vehicle-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:#00000005;border-radius:var(--glass-radius-sm);margin-bottom:8px}.vehicle-icon{width:40px;height:40px;border-radius:12px;background:var(--color-accent-light);display:flex;align-items:center;justify-content:center;flex-shrink:0}.vehicle-info{flex:1}.vehicle-info strong{display:block;font-size:var(--font-size-sm)}.vehicle-info span{font-size:var(--font-size-xs)}.add-vehicle-form{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(0,0,0,.06)}@media (max-width: 768px){.dash-main-grid{grid-template-columns:1fr}.charging-progress{flex-direction:column;text-align:center}}.owner-portal{display:flex;min-height:calc(100vh - var(--nav-height))}.owner-sidebar{width:240px;background:#fffc;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border-right:1px solid rgba(0,0,0,.06);padding:var(--space-lg);flex-shrink:0;position:sticky;top:var(--nav-height);height:calc(100vh - var(--nav-height))}.sidebar-brand{display:flex;align-items:center;gap:8px;padding:var(--space-md) var(--space-sm);margin-bottom:var(--space-lg);font-weight:600;font-size:var(--font-size-lg);color:var(--color-text-primary)}.sidebar-nav{display:flex;flex-direction:column;gap:4px}.sidebar-link{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);background:transparent;border:none;cursor:pointer;transition:all var(--transition-base);width:100%;text-align:left}.sidebar-link:hover{background:#0000000a;color:var(--color-text-primary)}.sidebar-link.active{background:var(--color-accent-light);color:var(--color-accent)}.owner-main{flex:1;padding:var(--space-xl) var(--space-2xl);max-width:1000px}.owner-view{animation:fadeIn .3s ease}.owner-view h2{margin-bottom:var(--space-sm)}.owner-stats{margin-bottom:var(--space-xl)}.owner-stat-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg);border-radius:var(--glass-radius)}.owner-stat-value{display:block;font-size:var(--font-size-xl);font-weight:600;color:var(--color-text-primary)}.owner-stat-label{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.charts-row{margin-bottom:var(--space-xl)}.chart-card{padding:var(--space-lg);border-radius:var(--glass-radius)}.chart-card h4{margin-bottom:var(--space-md)}.occupancy-grid{display:flex;gap:var(--space-md);align-items:flex-end;height:160px;margin-top:var(--space-md);padding:0 var(--space-sm)}.occupancy-cell{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;position:relative;justify-content:flex-end}.occupancy-bar{width:100%;max-width:50px;border-radius:8px 8px 0 0;transition:height .5s ease;min-height:4px}.occupancy-label{font-size:10px;color:var(--color-text-secondary);margin-top:6px;font-weight:500}.occupancy-value{font-size:11px;color:var(--color-text-primary);font-weight:600;margin-bottom:4px}.station-mgmt-card{padding:var(--space-lg);border-radius:var(--glass-radius);margin-bottom:var(--space-lg)}.station-mgmt-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-md)}.charger-mgmt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.charger-mgmt-card{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md);background:#00000005;border-radius:var(--glass-radius-sm);border-left:3px solid transparent}.charger-mgmt-card.available{border-left-color:var(--color-success)}.charger-mgmt-card.occupied{border-left-color:var(--color-warning)}.charger-mgmt-card.faulty{border-left-color:var(--color-danger)}.charger-mgmt-info strong{display:block;font-size:var(--font-size-sm)}.charger-mgmt-info span{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.status-dot{display:inline-block;text-transform:capitalize}.status-dot.available{color:var(--color-success)}.status-dot.occupied{color:var(--color-warning)}.status-dot.faulty{color:var(--color-danger)}.charger-mgmt-actions{display:flex;gap:4px}.analytics-header{display:flex;justify-content:space-between;align-items:flex-start}.bookings-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.bookings-table th{text-align:left;padding:12px 14px;font-weight:600;color:var(--color-text-secondary);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid rgba(0,0,0,.06)}.bookings-table td{padding:12px 14px;border-bottom:1px solid rgba(0,0,0,.03);color:var(--color-text-primary)}.bookings-table tr:hover td{background:#00000005}.fault-card{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-sm);border-radius:var(--glass-radius);border-left:3px solid var(--color-danger)}.fault-info{display:flex;align-items:center;gap:var(--space-md)}.fault-info strong{display:block;font-size:var(--font-size-sm)}.fault-info p{font-size:var(--font-size-xs)}@media (max-width: 768px){.owner-sidebar{display:none}.owner-main{padding:var(--space-lg)}}.auth-modal{padding:var(--space-2xl);max-width:440px}.modal-close{position:absolute;top:16px;right:16px;background:#0000000a;border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-base)}.modal-close:hover{background:#00000014;color:var(--color-text-primary)}.auth-header{text-align:center;margin-bottom:var(--space-xl)}.auth-header h3{margin-bottom:var(--space-sm)}.auth-form{display:flex;flex-direction:column;gap:var(--space-md)}.input-group{position:relative}.input-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--color-text-secondary);pointer-events:none;z-index:1}.input-with-icon{padding-left:40px!important}.pass-toggle{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:2px}.auth-error{padding:10px 14px;background:var(--color-danger-light);color:var(--color-danger);border-radius:var(--glass-radius-xs);font-size:var(--font-size-sm);text-align:center}.auth-submit{width:100%;margin-top:var(--space-sm)}.auth-footer{text-align:center;margin-top:var(--space-lg);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.link-btn{background:none;border:none;color:var(--color-accent);font-weight:500;cursor:pointer;font-size:var(--font-size-sm)}.link-btn:hover{text-decoration:underline}.booking-modal{max-width:520px;padding:var(--space-xl);max-height:90vh;overflow-y:auto}.booking-progress{display:flex;justify-content:space-between;margin-bottom:var(--space-xl);position:relative}.booking-progress:before{content:"";position:absolute;top:14px;left:30px;right:30px;height:2px;background:#00000014}.progress-step{display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;z-index:1}.step-dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;background:#0000000f;color:var(--color-text-secondary);transition:all var(--transition-base)}.progress-step.active .step-dot{background:var(--color-accent);color:#fff}.progress-step.current .step-dot{box-shadow:0 0 0 4px var(--color-accent-light)}.step-label{font-size:10px;color:var(--color-text-secondary);font-weight:500}.progress-step.active .step-label{color:var(--color-accent)}.booking-step{animation:fadeIn .3s ease}.booking-step h3{margin-bottom:var(--space-sm)}.booking-step>.text-secondary{margin-bottom:var(--space-lg)}.calendar{background:#00000005;border-radius:var(--glass-radius-sm);padding:var(--space-md);margin-bottom:var(--space-md)}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.cal-nav{background:none;border:none;font-size:20px;color:var(--color-accent);cursor:pointer;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast)}.cal-nav:hover{background:var(--color-accent-light)}.cal-title{font-weight:600;font-size:var(--font-size-sm);color:var(--color-text-primary)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}.cal-weekday{text-align:center;font-size:11px;font-weight:600;color:var(--color-text-secondary);padding:4px}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-day{text-align:center;padding:8px;border-radius:8px;font-size:13px;font-weight:500;background:none;border:none;cursor:pointer;color:var(--color-text-primary);transition:all var(--transition-fast)}.cal-day:hover:not(.past):not(.empty){background:var(--color-accent-light)}.cal-day.today{background:#0000000f;font-weight:700}.cal-day.selected{background:var(--color-accent);color:#fff}.cal-day.past{opacity:.3;cursor:not-allowed}.cal-day.empty{cursor:default}.booking-slots{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;max-height:200px;overflow-y:auto;padding-right:4px}.booking-slot{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:8px;font-size:12px;font-weight:500;background:var(--color-success-light);color:#1b9e3e;border:1px solid transparent;cursor:pointer;transition:all var(--transition-base)}.booking-slot.selected{border-color:var(--color-success);box-shadow:0 0 0 2px #30d15833}.booking-slot.unavailable{background:#0000000a;color:var(--color-text-secondary);cursor:not-allowed}.booking-next{width:100%;margin-top:var(--space-lg)}.review-summary{padding:var(--space-lg);border-radius:var(--glass-radius-sm);margin-bottom:var(--space-lg)}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:var(--font-size-sm);border-bottom:1px solid rgba(0,0,0,.04)}.summary-row:last-child{border-bottom:none}.summary-row span{color:var(--color-text-secondary)}.summary-row strong{color:var(--color-text-primary);font-weight:600}.compatibility-warning{margin-top:var(--space-md);padding:10px 14px;background:var(--color-warning-light);border-radius:var(--glass-radius-xs);font-size:var(--font-size-sm);color:#c67a00}.step-actions{display:flex;gap:var(--space-md);margin-top:var(--space-lg)}.step-actions .btn{flex:1}.payment-methods{margin-bottom:var(--space-lg)}.method-options{display:flex;flex-direction:column;gap:8px}.method-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);border-radius:var(--glass-radius-sm);background:#00000005;border:1.5px solid transparent;cursor:pointer;transition:all var(--transition-base);text-align:left;color:var(--color-text-primary)}.method-card.selected{border-color:var(--color-accent);background:var(--color-accent-light)}.method-name{display:block;font-weight:600;font-size:var(--font-size-sm)}.method-desc{display:block;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.cost-breakdown{padding:var(--space-lg);border-radius:var(--glass-radius-sm);margin-bottom:var(--space-lg)}.cost-breakdown h4{margin-bottom:var(--space-md)}.cost-row{display:flex;justify-content:space-between;padding:6px 0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.cost-row.discount{color:var(--color-success)}.cost-row.total{border-top:1px solid rgba(0,0,0,.08);margin-top:8px;padding-top:12px;color:var(--color-text-primary)}.cost-row.total strong{font-size:var(--font-size-lg);color:var(--color-accent)}.confirmation{text-align:center}.confirm-icon{margin-bottom:var(--space-md)}.qr-section{padding:var(--space-xl);border-radius:var(--glass-radius-sm);margin:var(--space-lg) 0}.qr-placeholder{display:flex;align-items:center;justify-content:center;padding:var(--space-lg)}.qr-hint{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.qr-image{width:200px;height:200px;border-radius:12px}.qr-loading{font-size:var(--font-size-sm);color:var(--color-text-secondary);padding:40px}.confirm-details{padding:var(--space-md) var(--space-lg);border-radius:var(--glass-radius-sm);margin-bottom:var(--space-lg);text-align:left}.confirm-actions{display:flex;flex-direction:column;gap:var(--space-sm)}.app{min-height:100vh;display:flex;flex-direction:column}.app-main{flex:1;padding-top:var(--nav-height)}:root{--color-bg: #FAFAFA;--color-bg-gradient-start: #FFFFFF;--color-bg-gradient-end: #F0F4FF;--color-white: #FFFFFF;--color-text-primary: #1D1D1F;--color-text-secondary: #6E6E73;--color-text-body: #374151;--color-accent: #0071E3;--color-accent-hover: #0062C4;--color-accent-light: rgba(0, 113, 227, .08);--color-success: #30D158;--color-success-light: rgba(48, 209, 88, .1);--color-warning: #FF9F0A;--color-warning-light: rgba(255, 159, 10, .1);--color-danger: #FF453A;--color-danger-light: rgba(255, 69, 58, .1);--glass-bg: rgba(255, 255, 255, .12);--glass-bg-solid: rgba(255, 255, 255, .72);--glass-border: rgba(255, 255, 255, .5);--glass-border-subtle: rgba(0, 0, 0, .06);--glass-blur: blur(20px) saturate(180%);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .06);--glass-shadow-hover: 0 12px 40px rgba(0, 0, 0, .1);--glass-radius: 20px;--glass-radius-sm: 12px;--glass-radius-xs: 8px;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-size-4xl: 2.5rem;--font-size-5xl: 3.5rem;--font-size-hero: 4.5rem;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--space-4xl: 80px;--space-5xl: 120px;--max-width: 1200px;--nav-height: 64px;--transition-base: .3s ease;--transition-fast: .15s ease;--transition-slow: .5s ease}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-body);line-height:1.7;background:linear-gradient(135deg,var(--color-bg-gradient-start) 0%,var(--color-bg-gradient-end) 100%);min-height:100vh;overflow-x:hidden}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-base)}a:hover{color:var(--color-accent-hover)}img{max-width:100%;height:auto}button{font-family:var(--font-family);cursor:pointer;border:none;outline:none}input,select,textarea{font-family:var(--font-family);font-size:var(--font-size-base)}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{color:var(--color-text-primary);font-weight:400;letter-spacing:-.02em;line-height:1.2}h1{font-size:var(--font-size-hero);font-weight:300;letter-spacing:-.03em}h2{font-size:var(--font-size-4xl);font-weight:300}h3{font-size:var(--font-size-2xl);font-weight:500}h4{font-size:var(--font-size-xl);font-weight:500}p{color:var(--color-text-body);line-height:1.7}.text-secondary{color:var(--color-text-secondary)}.text-accent{color:var(--color-accent)}.glass-card{background:var(--glass-bg-solid);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--glass-radius);box-shadow:var(--glass-shadow);transition:transform var(--transition-base),box-shadow var(--transition-base)}.glass-card:hover{transform:translateY(-4px);box-shadow:var(--glass-shadow-hover)}.glass-card-static{background:var(--glass-bg-solid);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--glass-radius);box-shadow:var(--glass-shadow)}.glass-card-dark{background:#00000008;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border-subtle);border-radius:var(--glass-radius);box-shadow:var(--glass-shadow)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:12px 28px;border-radius:980px;font-size:var(--font-size-sm);font-weight:500;letter-spacing:.01em;transition:all var(--transition-base);position:relative;overflow:hidden}.btn-primary{background:var(--color-accent);color:var(--color-white);box-shadow:0 4px 14px #0071e34d}.btn-primary:hover{background:var(--color-accent-hover);transform:scale(1.02);box-shadow:0 6px 20px #0071e366}.btn-secondary{background:var(--glass-bg-solid);color:var(--color-text-primary);border:1px solid var(--glass-border-subtle);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.btn-secondary:hover{transform:scale(1.02);box-shadow:var(--glass-shadow-hover)}.btn-success{background:var(--color-success);color:var(--color-white);box-shadow:0 4px 14px #30d1584d}.btn-success:hover{transform:scale(1.02);box-shadow:0 6px 20px #30d15866}.btn-glass{background:var(--glass-bg);color:var(--color-text-primary);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border)}.btn-glass:hover{transform:scale(1.02);background:#ffffff40}.btn-sm{padding:8px 18px;font-size:var(--font-size-xs)}.btn-lg{padding:16px 36px;font-size:var(--font-size-base)}.btn-icon{width:40px;height:40px;padding:0;border-radius:50%}.input-glass{width:100%;padding:12px 18px;background:var(--glass-bg-solid);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border-subtle);border-radius:var(--glass-radius-sm);color:var(--color-text-primary);font-size:var(--font-size-sm);transition:all var(--transition-base);outline:none}.input-glass:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.input-glass::placeholder{color:var(--color-text-secondary)}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:980px;font-size:var(--font-size-xs);font-weight:600;letter-spacing:.02em}.badge-success{background:var(--color-success-light);color:#1b9e3e}.badge-warning{background:var(--color-warning-light);color:#c67a00}.badge-danger{background:var(--color-danger-light);color:#d43030}.badge-accent{background:var(--color-accent-light);color:var(--color-accent)}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 var(--space-lg)}.section{padding:var(--space-4xl) 0}.section-lg{padding:var(--space-5xl) 0}@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.5}to{transform:scale(2);opacity:0}}.pulse-dot{position:relative}.pulse-dot:after{content:"";position:absolute;top:50%;left:50%;width:8px;height:8px;background:var(--color-success);border-radius:50%;transform:translate(-50%,-50%);animation:pulse 2s ease-in-out infinite}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#00000040}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1200;animation:fadeIn .2s ease}.modal-content{background:var(--color-white);border-radius:var(--glass-radius);box-shadow:0 24px 80px #0000001f;max-width:560px;width:90%;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}@keyframes spin{to{transform:rotate(360deg)}}.spinner{animation:spin 1s linear infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}.tabs{display:flex;gap:4px;padding:4px;background:#0000000a;border-radius:var(--glass-radius-sm)}.tab{padding:8px 20px;border-radius:var(--glass-radius-xs);font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);background:transparent;transition:all var(--transition-base);cursor:pointer}.tab.active{background:var(--color-white);color:var(--color-text-primary);box-shadow:0 2px 8px #0000000f}.tab:hover:not(.active){color:var(--color-text-primary)}.progress-ring{transform:rotate(-90deg)}.progress-ring-circle{transition:stroke-dashoffset .5s ease}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg)}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-lg)}@media (max-width: 1024px){h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}.grid-4{grid-template-columns:repeat(2,1fr)}.section{padding:var(--space-3xl) 0}}@media (max-width: 768px){h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.container{padding:0 var(--space-md)}.section{padding:var(--space-2xl) 0}.btn-lg{padding:14px 28px}}@media (max-width: 480px){h1{font-size:var(--font-size-2xl)}:root{--nav-height: 56px}}.toast-container{position:fixed;top:80px;right:20px;z-index:99999;display:flex;flex-direction:column;gap:10px;pointer-events:none;max-width:400px}.toast-item{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;border-radius:14px;background:#fffffff2;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);box-shadow:0 8px 32px #0000001f,0 2px 8px #0000000f;border:1px solid rgba(0,0,0,.06);pointer-events:auto;animation:toastSlideIn .35s cubic-bezier(.34,1.56,.64,1) forwards;min-width:280px}@keyframes toastSlideIn{0%{opacity:0;transform:translate(40px) scale(.96)}to{opacity:1;transform:translate(0) scale(1)}}.toast-icon{font-size:16px;flex-shrink:0;margin-top:1px}.toast-message{flex:1;font-size:13px;font-weight:500;color:#1d1d1f;line-height:1.45;margin:0;white-space:pre-line}.toast-close{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:#0000000f;border:none;font-size:14px;line-height:1;color:#6e6e73;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.toast-close:hover{background:#0000001f}.toast-success{border-left:4px solid #30D158}.toast-error{border-left:4px solid #FF453A}.toast-warning{border-left:4px solid #FFB800}.toast-info{border-left:4px solid #0071E3}
