:root{--teal-bright: #00d1d6;--teal-deep: #14bba6;--ink: #0b0d0d;--off-white: #f5f7fa;--charcoal: #333333;--sidebar-w: min(320px, 86vw)}*{box-sizing:border-box}html,body{height:100%;margin:0;background:var(--ink);color:var(--off-white);font-family:Poppins,system-ui,sans-serif;overscroll-behavior:none}#map{position:absolute;top:0;right:0;bottom:0;left:var(--sidebar-w);transition:left .2s ease}body.sidebar-closed #map{left:0}.hidden{display:none!important}.menu-toggle{position:fixed;top:16px;left:16px;z-index:20;width:44px;height:44px;border-radius:12px;border:1px solid rgba(0,209,214,.3);background:#141616eb;color:var(--off-white);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 20px #0006}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:30;width:var(--sidebar-w);background:#14161a;border-right:1px solid rgba(0,209,214,.2);box-shadow:12px 0 32px #00000080;display:flex;flex-direction:column;overflow-y:auto}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:18px 16px 8px}.sidebar-header .panel-close{position:static}.sidebar-tabs{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-bottom:1px solid #24272a}.sidebar-tab{width:100%;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;background:none;border:none;border-radius:10px;padding:12px;color:#8a9199;font-size:13px;font-family:JetBrains Mono,monospace}.sidebar-tab.active{background:#00d1d61f;color:var(--teal-bright)}.sidebar-content{padding:18px 18px 24px}.network-stats{display:flex;gap:10px;margin-bottom:16px}.network-stats .stat{flex:1;background:#1c1f1f;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}.network-stats .stat span{font-size:22px;font-weight:700;color:var(--teal-bright)}.network-stats .stat label{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.04em;color:#8a9199}.sidebar-pane p{font-size:14px;line-height:1.5;color:#c9ced4;margin:0 0 16px}.sidebar-pane h3{font-size:17px;margin-bottom:6px}.sidebar-pane ul{margin:14px 0;padding-left:18px;color:#c9ced4;font-size:13px;line-height:1.8}.btn-secondary{width:100%;background:transparent;color:#8a9199;border:1px solid #2a2e2e;border-radius:12px;padding:12px;font-size:14px;font-weight:600}.banner{position:fixed;left:calc(var(--sidebar-w) + (100% - var(--sidebar-w)) / 2);top:16px;transform:translate(-50%);z-index:10;display:flex;align-items:center;gap:12px;background:var(--charcoal);border:1px solid rgba(0,209,214,.35);border-radius:999px;padding:10px 16px;font-size:13px;box-shadow:0 8px 24px #0006;transition:left .2s ease}body.sidebar-closed .banner{left:50%}.banner button{background:var(--teal-bright);color:var(--ink);border:none;border-radius:999px;padding:6px 14px;font-weight:600;font-size:13px;cursor:pointer}.panel{position:fixed;left:var(--sidebar-w);right:0;bottom:0;z-index:10;background:#14161600;background:#141616fa;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top-left-radius:20px;border-top-right-radius:20px;border-top:1px solid rgba(0,209,214,.25);padding:20px 20px calc(20px + env(safe-area-inset-bottom));max-height:55vh;overflow-y:auto;box-shadow:0 -12px 32px #00000080;transition:left .2s ease}body.sidebar-closed .panel{left:0}.panel-close{position:absolute;top:12px;right:16px;background:none;border:none;color:var(--off-white);font-size:22px;line-height:1;cursor:pointer;opacity:.6}.panel-eyebrow,.pane-eyebrow{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--teal-bright);margin-bottom:6px}#panel-name{margin:0 0 4px;font-size:19px;font-weight:600}#panel-address{margin:0 0 16px;font-size:14px;color:#a9b0b8}.charger-list{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:8px}.charger-row{display:flex;align-items:center;justify-content:space-between;background:#1c1f1f;border-radius:12px;padding:10px 14px;font-size:13px}.charger-connector{font-family:JetBrains Mono,monospace}.charger-status{font-weight:600;font-size:12px;padding:3px 10px;border-radius:999px}.status-available .charger-status{background:#00d1d626;color:var(--teal-bright)}.status-booked .charger-status{background:#ffb80026;color:#ffb800}.status-in_use .charger-status{background:#f5f7fa1a;color:#c9ced4}.status-offline .charger-status{background:#ffffff0d;color:#6b7280}.charger-placeholder{background:#1c1f1f;border-radius:12px;padding:10px 14px;font-size:13px;color:#6b7280;font-style:italic}.route-info{font-family:JetBrains Mono,monospace;font-size:13px;color:var(--teal-bright);margin-bottom:12px}.route-steps{list-style:decimal;margin:0 0 16px;padding-left:20px;display:flex;flex-direction:column;gap:10px;max-height:180px;overflow-y:auto}.route-steps li{font-size:13px;line-height:1.4;color:#c9ced4;display:flex;justify-content:space-between;gap:12px}.route-steps .step-distance{flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:12px;color:#6b7280}.panel-actions{display:flex;flex-direction:column;gap:10px}.booking-status{margin-top:10px;background:#ffb8001a;border:1px solid rgba(255,184,0,.3);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:10px;text-align:center}.booking-status span{font-family:JetBrains Mono,monospace;font-size:13px;color:#ffb800;font-weight:600}.btn-primary{width:100%;background:linear-gradient(135deg,var(--teal-bright),var(--teal-deep));color:var(--ink);border:none;border-radius:12px;padding:14px;font-size:15px;font-weight:600;cursor:pointer}.btn-primary:disabled{opacity:.6;cursor:default}a.btn-secondary{display:block;text-align:center;text-decoration:none}.update-banner{z-index:11}#geo-banner:not(.hidden)~.update-banner{top:68px}.update-dismiss{background:transparent!important;color:var(--off-white)!important;padding:0!important;font-size:18px;line-height:1;opacity:.6}.sidebar-account{margin-top:auto;padding:16px 18px calc(16px + env(safe-area-inset-bottom));border-top:1px solid #24272a}#account-signed-in{display:flex;flex-direction:column;gap:8px}.account-email{font-family:JetBrains Mono,monospace;font-size:11px;color:#8a9199;word-break:break-all}.auth-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px;background:#040606b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.auth-card{position:relative;width:100%;max-width:360px;background:#141616fc;border:1px solid rgba(0,209,214,.25);border-radius:20px;padding:24px 22px calc(22px + env(safe-area-inset-bottom));max-height:calc(100vh - 40px);overflow-y:auto;box-shadow:0 24px 64px #0009}.auth-card h2{margin:0 0 6px;font-size:19px;font-weight:600}.auth-subtitle{margin:0 0 18px;font-size:13px;line-height:1.5;color:#a9b0b8}.auth-google{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--off-white);background:#1c1f1f;cursor:pointer}.auth-google:disabled{opacity:.6;cursor:default}.auth-divider{display:flex;align-items:center;gap:10px;margin:16px 0;font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#6b7280}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#2a2e2e}#auth-form{display:flex;flex-direction:column;gap:10px}#auth-form input{width:100%;background:#14161a;border:1px solid #2a2e2e;border-radius:12px;padding:13px 14px;font-size:14px;font-family:Poppins,system-ui,sans-serif;color:var(--off-white)}#auth-form input:focus{outline:none;border-color:#00d1d68c}.auth-error{margin:2px 0 0;font-size:13px;color:#ff6b6b}.auth-toggle{margin:16px 0 0;text-align:center;font-size:13px;color:#a9b0b8}.auth-toggle button{background:none;border:none;padding:0 0 0 6px;font-size:13px;font-weight:600;color:var(--teal-bright);cursor:pointer}.install-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:20px;background:#040606b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.install-card{position:relative;width:100%;max-width:360px;background:#141616fc;border:1px solid rgba(0,209,214,.25);border-radius:20px;padding:24px 22px calc(22px + env(safe-area-inset-bottom));box-shadow:0 24px 64px #0009}.install-card h2{margin:0 0 8px;font-size:19px;font-weight:600}.install-card p{margin:0 0 18px;font-size:14px;line-height:1.55;color:#c9ced4}.install-card strong{color:var(--off-white);font-weight:600}@media(min-width:640px){.panel{left:calc(var(--sidebar-w) + 24px);right:auto;bottom:24px;width:360px;border-radius:20px;max-height:calc(100vh - 48px)}body.sidebar-closed .panel{left:24px}}
