/* Client-only presentation. Administrative screens retain their layout. */
/* Map tools share the native zoom-control rail; toolbar remains a fallback on load failure. */
.pv-profile-tabs{display:flex;gap:8px;margin:20px 0;padding:5px;background:#091c2b;border-radius:14px}.pv-profile-tabs button{flex:1;padding:13px 10px;border:0;border-radius:10px;background:transparent;color:#aec4d3;font-size:14px;min-height:48px}.pv-profile-tabs button[aria-selected=true]{background:#203f57;color:#fff}.pv-profile-tabs button:focus-visible{outline:3px solid #19dbcc;outline-offset:2px}
#pvProfileDetailsPanel[hidden],#pvProfileCreditsPanel[hidden]{display:none!important}
#cv9AccountTopupCard{margin:0}#cv9AccountTopupCard .field{display:grid;gap:8px;margin:20px 0}#cv9AccountTopupCard input{width:100%;min-width:0;box-sizing:border-box;padding:13px}#cv9AccountTopupCard p{font-size:14px;line-height:1.6}#cv9TopupResult{margin-top:18px;font-size:14px;line-height:1.6;overflow-wrap:anywhere}.pv-checkout-link{display:block;background:#19dbcc;color:#062329;padding:15px;text-align:center;border-radius:12px;margin-top:12px;text-decoration:none;font-weight:750}#cv9TopupSubmit:disabled{opacity:.5;cursor:wait}
#page-map.cv9-has-map-controls>.section-head>.toolbar{display:none!important}
#cv9Map .maplibregl-ctrl-top-right .maplibregl-ctrl-group{border-radius:12px;overflow:hidden;box-shadow:0 3px 14px #09263830}
#cv9Map .maplibregl-ctrl-group button{width:44px;height:44px;min-height:44px;color:#163040;background-color:#fff}
#cv9Map .maplibregl-ctrl-group button:hover{background-color:#e9f5f6}
#cv9Map .maplibregl-ctrl-group button:focus-visible{outline:3px solid #1976d2;outline-offset:-3px}
#cv9Map .cv9-map-actions svg{display:block;width:23px;height:23px;margin:auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#cv9Map .cv9-map-actions button:disabled{opacity:.5;cursor:wait}
body.pv-client{--ink:#eef5fa;--navy:#eef5fa;--muted:#a4b8c9;--line:#2b4356;background:#09131f;color:#eef5fa}
.pv-client .main{background:#09131f}.pv-client .topbar{background:#0e1c2b;border-bottom:1px solid #263c4d}.pv-client .sidebar{background:#0e1c2b}
.pv-client :is(.card,.cv9-point,.cv9-kpi,.user-charger,.cv9-connector,.pay-option,.tiny-btn){background:#152a3b;color:#eef5fa;border-color:#2b4356;border-radius:20px}
.pv-client :is(h3,h4,h5,.cv9-kpi b,.policy-note b){color:#eef5fa}.pv-client :is(p,small,.field label,.cv9-point p,.cv9-connector small,.pay-option span){color:#a4b8c9}
.pv-client :is(.policy-note,.cv9-tariff-rule,.estimate-box,.locked-note){background:#102332;color:#b4c8d7;border-color:#2b4356}
.pv-client :is(input,select,textarea){background:#0d2030;color:#f3f8fc;border:1px solid #345066;border-radius:13px;min-height:48px;font-size:16px}
.pv-client :is(button,a){-webkit-tap-highlight-color:transparent}.pv-client button{transition:transform .18s ease,background .18s ease,border-color .18s ease;cursor:pointer}.pv-client button:active{transform:scale(.97)}
.pv-client :is(button,a,input,select,textarea):focus-visible,.pv-route-dialog :focus-visible{outline:3px solid #64b4ff;outline-offset:3px}
.pv-client .primary,.pv-client .pay-confirm{background:#19dbcc;color:#062329;border:0;min-height:48px;font-size:15px;font-weight:750;box-shadow:0 8px 25px #19dbcc16}
.pv-client :is(.secondary,.cv9-route-actions button){background:#203b50;color:#deedf8;border:1px solid #3b5a70;min-height:44px;font-size:14px}
.pv-client .pay-option.active{background:#174852;border-color:#19dbcc}.pv-client .pay-option b{color:#eef5fa}.pv-client .pay-option{min-height:80px}
.pv-client .cv9-state.available{background:#153c60;color:#8cccff}.pv-client .cv9-state.busy{background:#534622;color:#ffe48c}.pv-client .cv9-state.offline{background:#502b35;color:#ffb1b7;animation:none}
.pv-client .cv9-map-pin.offline,.pv-client .cv9-plug.offline{animation:none}.pv-client .cv9-map-pin{transition:background .2s ease;animation:pv-pin-enter .25s ease-out}
.pv-client .cv9-connector{margin-top:10px;padding:16px;gap:12px}.pv-client .cv9-connector b{font-size:15px}.pv-client .cv9-connector small{font-size:13px;line-height:1.5}.pv-client .cv9-point p,.pv-client .cv9-tariff-rule{font-size:13px;line-height:1.55}
.pv-client .cv9-map-layout{grid-template-columns:minmax(0,1fr) 370px;align-items:start}.pv-client .cv9-map.maplibregl-map{height:calc(100dvh - 255px);min-height:470px;border-radius:24px}.pv-client .cv9-point-list{max-height:calc(100dvh - 255px)}
.pv-client #page-map>.user-only{display:none!important}.pv-client .section-head h3{font-size:30px;letter-spacing:-.04em}.pv-client .section-head p{font-size:14px;max-width:640px}.pv-client .page.active{animation:pv-page-enter .22s ease-out}
.pv-map-summary{display:flex;align-items:center;gap:12px;margin:0 0 18px;color:#acbfd0;font-size:14px}.pv-map-summary b{color:#75baff}
.pv-client .cv9-point{padding:18px}.pv-client .cv9-point h4{font-size:20px}.pv-client .cv9-state{font-size:12px;padding:7px 10px;white-space:nowrap}
.pv-client .cv9-password-note{font-size:13px}.pv-client .cv9-kpi span{font-size:13px}.pv-client .cv9-kpi b{font-size:30px}.pv-client .cv9-kpi{padding:23px}.pv-client .cv9-verify{background:#403922;color:#ffe5a2;line-height:1.6}.pv-client .cv9-verify b{color:#ffe5a2}
.pv-client table{color:#dceaf3}.pv-client th{color:#b3c6d5;background:#102332}.pv-client td{border-color:#2b4356}.pv-client .user-flow-grid{gap:24px}.pv-client .user-panel{align-content:start;gap:20px}.pv-client .user-welcome{background:linear-gradient(135deg,#163347,#174852)}
.pv-client .user-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.pv-client .user-summary span{font-size:11px;color:#a4c3cb}.pv-client .user-summary b{font-size:18px}.pv-client .estimate-grid span,.pv-client .charge-stats span{font-size:12px;color:#a4b8c9}.pv-client .estimate-grid b,.pv-client .charge-stats b{font-size:20px}
.pv-client .user-charger h5{font-size:17px}.pv-client .user-charger p{font-size:13px}.pv-client .user-charger button{background:#19dbcc;color:#062329;min-height:44px;font-size:14px}.pv-client .user-charger .plug{background:#163f65;color:#8cccff}
.pv-client .profile-dialog{background:#102332;color:#eef5fa}.pv-client .profile-card{background:#152a3b}.pv-client .payment-receipt{overflow-wrap:anywhere}.pv-client .payment-receipt img{max-width:100%;border-radius:14px}
.pv-bottom-nav{display:none}.pv-sheet-close{display:none}.pv-client .pv-sheet-close{display:block;float:right;background:#203b50;color:#eef5fa;border:1px solid #3b5a70;border-radius:12px;padding:9px 14px;margin:0 0 12px}
.pv-client .cv9-point .pv-sheet-close{display:none}.pv-client .pv-map-controls{display:grid;gap:12px;margin:16px 0;padding-top:16px;border-top:1px solid #345066}.pv-client .pv-map-controls label{display:grid;gap:7px;font-size:13px;color:#b4c8d7}.pv-client .pv-map-controls input{width:100%;box-sizing:border-box;padding:12px}.pv-client .cv9-state{align-self:flex-start}.pv-client .cv9-point.active{background:#152a3b}.pv-client .pv-session .field{display:grid;gap:8px;margin-top:20px}.pv-client .pv-session .field input{padding:12px;min-width:0}.pv-client .pv-session-estimate{color:#8ce7dc;font-size:14px;margin:18px 0}
.pv-session{background:linear-gradient(135deg,#102332,#143d47);border:1px solid #2c5a61;border-radius:24px;padding:26px;margin-bottom:24px}.pv-session h4{font-size:23px;margin:0}.pv-session>p{font-size:14px}.pv-session-main{display:flex;align-items:center;gap:36px;flex-wrap:wrap}.pv-ring{width:210px;height:210px;flex-shrink:0;position:relative}.pv-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.pv-ring circle{fill:none;stroke:#284759;stroke-width:9}.pv-ring circle:last-child{stroke:#19dbcc;stroke-linecap:round;transition:stroke-dashoffset .6s ease}.pv-ring-value{position:absolute;inset:0;display:grid;place-content:center;text-align:center}.pv-ring-value b{font-size:39px}.pv-ring-value small{font-size:14px;color:#b2c8d5}.pv-session-stats{display:grid;grid-template-columns:1fr 1fr;gap:20px}.pv-session-stats span{display:block;font-size:13px;color:#a4b8c9}.pv-session-stats b{font-size:25px}.pv-session .danger{background:#502b35;color:#ffbdc4;border:1px solid #914b57;border-radius:12px;min-height:48px;padding:12px 24px;margin-top:20px}
.pv-route-dialog{width:min(420px,calc(100vw - 32px));box-sizing:border-box;border:1px solid #3a5568;border-radius:24px;padding:25px;background:#152a3b;color:#eef5fa;box-shadow:0 24px 90px #0009}.pv-route-dialog::backdrop{background:#030b14ba;backdrop-filter:blur(5px)}.pv-route-dialog h3{margin:0 0 10px;font-size:23px}.pv-route-dialog p{color:#b2c7d5;line-height:1.5}.pv-route-dialog a{display:block;text-align:center;padding:16px;border-radius:13px;background:#203f57;color:#fff;text-decoration:none;font-weight:700;margin-top:12px}.pv-route-dialog a:first-of-type{background:#19dbcc;color:#062329}.pv-route-dialog button{display:block;margin:18px auto 0;background:transparent;color:#becedb;border:0;padding:12px;font-size:15px}
@keyframes pv-page-enter{from{opacity:.5;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes pv-pin-enter{from{opacity:.5}to{opacity:1}}
@media(max-width:1100px){.pv-client .cv9-map-layout{grid-template-columns:1fr}.pv-client .cv9-point-list{max-height:none}.pv-client .user-flow-grid{grid-template-columns:1fr}}
@media(max-width:768px){.pv-client .sidebar,.pv-client #menuBtn{display:none!important}.pv-client .main{margin-left:0;padding:0 16px 106px;width:100%;min-width:0;box-sizing:border-box}.pv-client .topbar{margin:0 -16px 22px;padding:15px 16px;gap:8px;position:sticky;top:0;z-index:30}.pv-client .topbar h2{font-size:20px}.pv-client .topbar p{font-size:12px}.pv-client .topbar :is(.time,.mode,.user-theme-chip>div:last-child){display:none}.pv-client .topbar .avatar{width:42px;height:42px}.pv-client .section-head h3{font-size:27px}.pv-client .section-head{gap:14px;flex-wrap:wrap}.pv-client .toolbar{display:flex;gap:8px}.pv-client .toolbar button{font-size:13px;padding:10px}.pv-client .eyebrow{font-size:11px}.pv-client .card{padding:20px}.pv-client .grid2,.pv-client .cv9-wallet-grid,.pv-client .charge-config{grid-template-columns:minmax(0,1fr)}.pv-client .cv9-map.maplibregl-map{height:56dvh;min-height:360px}.pv-client .cv9-map-layout{gap:16px}.pv-client .cv9-point-list{overflow:visible;max-height:none}.pv-client .cv9-point .cv9-connector,.pv-client .cv9-point .cv9-tariff-rule{display:none}.pv-client .cv9-point{cursor:pointer}.pv-client .cv9-point.active .cv9-connector,.pv-client .cv9-point.active .cv9-tariff-rule{display:block}.pv-client .cv9-point.active .cv9-connector{display:grid;grid-template-columns:auto 1fr}.pv-client .cv9-point.active .cv9-connector button{grid-column:1/-1;width:100%}.pv-client .cv9-point.active{position:fixed;left:12px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom));max-height:65dvh;overflow:auto;z-index:40;box-shadow:0 -20px 70px #0008;border-color:#426377;animation:pv-page-enter .22s ease}.pv-client .cv9-point.active .pv-sheet-close{display:block}.pv-client .cv9-map-time{font-size:11px;max-width:240px;white-space:normal;text-align:center}.pv-client .pv-bottom-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;bottom:0;left:0;right:0;padding:9px 12px calc(9px + env(safe-area-inset-bottom));background:#102232f5;backdrop-filter:blur(16px);border-top:1px solid #304b5e;z-index:60;gap:4px}.pv-bottom-nav button{background:transparent;border:0;color:#a4b8c9;border-radius:14px;min-height:57px;font-size:12px;display:grid;place-content:center;gap:4px}.pv-bottom-nav svg{width:22px;height:22px;margin:auto;fill:none;stroke:currentColor;stroke-width:1.8}.pv-bottom-nav button[aria-current=page]{color:#19dbcc;background:#19dbcc12}.pv-session{padding:20px}.pv-session-main{justify-content:center;gap:20px}.pv-session-stats{width:100%}.pv-session .danger{width:100%}.pv-client .user-charger{grid-template-columns:auto minmax(0,1fr);padding:16px}.pv-client .user-charger button{grid-column:1/-1}.pv-client .profile-dialog{max-width:calc(100vw - 20px)}.pv-client .policy-note{font-size:13px}.pv-client .charge-stats{grid-template-columns:1fr 1fr}.pv-client .notify-banner{font-size:13px}.pv-client .cv9-form{width:100%;grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.pv-client *,.pv-client *::before,.pv-client *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
