@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--bg:#f5f6f2;--card:#fff;--ink:#121713;--muted:#747c76;--line:#dfe4df;--green:#0b9f62;--lime:#baf458;--dark:#10251b;--nav:82px}*{box-sizing:border-box}html{background:#e7e9e5}body{margin:0;font-family:'DM Sans',system-ui,sans-serif;color:var(--ink);background:#e7e9e5}button,input{font:inherit}.phone{width:min(100%,500px);min-height:100vh;margin:auto;background:var(--bg);box-shadow:0 0 60px #17201a25;position:relative}.hidden{display:none!important}.brand{display:flex;align-items:center;gap:9px;font-size:19px;font-weight:700;letter-spacing:-.7px}.brand strong{font-weight:700}.brand i{font-style:normal;background:linear-gradient(135deg,#c9ef00 5%,#23bd48 48%,#008eff 100%);color:#fff;min-width:52px;height:35px;border-radius:50% 45% 48% 42%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;letter-spacing:-1px;text-shadow:0 1px 2px #075b47}.brand i span{font-size:17px;margin-left:1px}.onboard-head,.app-head{height:78px;padding:18px 23px;display:flex;align-items:center;justify-content:space-between}.onboard-head>span{font-size:11px;color:var(--muted)}.step-track{height:3px;background:#e2e5e1}.step-track i{display:block;width:25%;height:100%;background:var(--green);transition:.4s}.form-step{display:none;padding:25px 23px 40px;animation:in .35s ease}.form-step.active,.page.active{display:block}@keyframes in{from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:none}}.intro{padding:20px 0 24px}.intro.compact{padding:18px 0}.tag{font-size:10px;letter-spacing:1.7px;color:var(--green);font-weight:700}.intro h1,.hero h1,.page-top h1,.success h1{font-size:34px;line-height:1.1;letter-spacing:-1.5px;margin:10px 0}.intro p,.success>p{color:var(--muted);font-size:14px;line-height:1.5;max-width:390px}.fields{display:grid;gap:12px}.fields label{font-size:10px;font-weight:700;color:#4c554f}.fields input{display:block;width:100%;height:52px;border:1px solid var(--line);background:var(--card);border-radius:13px;padding:0 14px;margin-top:6px;outline:none;color:var(--ink)}.fields input:focus,.search:focus-within{border-color:var(--green);box-shadow:0 0 0 3px #0b9f6217}.primary{width:100%;height:55px;border:0;border-radius:15px;background:var(--ink);color:#fff;font-weight:700;margin-top:22px;padding:0 20px;display:flex;align-items:center;justify-content:center;gap:10px}.primary b{margin-left:auto}.primary:disabled{background:#d7dcd8;color:#9ca39e}.back{border:0;background:transparent;padding:0;color:var(--muted);font-size:12px}.brand-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.brand-grid button{height:79px;border:1px solid var(--line);background:var(--card);border-radius:17px;display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;font-weight:700;font-size:11px}.brand-grid button span{height:26px;min-width:34px;border-radius:8px;background:#eef1ed;display:grid;place-items:center;padding:0 7px;font-size:10px;letter-spacing:-.5px}.brand-grid button.active,.model-card.active,.version-list button.active{border:2px solid var(--green);box-shadow:0 5px 20px #0b9f6217}.brand-grid button.active span{background:var(--green);color:white}.model-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.model-card{border:1px solid var(--line);background:var(--card);border-radius:17px;overflow:hidden;text-align:left;padding:0}.model-card .car-photo{height:105px}.model-card div:last-child{padding:11px}.model-card small,.chosen-car small,.my-car small{color:var(--green);font-size:9px;font-weight:700;letter-spacing:1px}.model-card strong{font-size:12px;display:block;margin-top:3px}.car-photo{background-image:url('assets/ev-sprite.png');background-size:200% 200%;background-repeat:no-repeat;background-color:#efefeb}.crop-0{background-position:0 0}.crop-1{background-position:100% 0}.crop-2{background-position:0 100%}.crop-3{background-position:100% 100%}.chosen-car{background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;display:flex;align-items:center;gap:15px}.chosen-car .car-photo{width:45%;height:110px}.chosen-car h3{margin:4px 0}.version-list{display:grid;gap:9px;margin-top:16px}.version-list button{border:1px solid var(--line);background:var(--card);border-radius:14px;padding:15px;text-align:left;display:flex;justify-content:space-between}.version-list span{display:block;font-size:11px;color:var(--muted);margin-top:3px}.terms{display:flex;gap:10px;align-items:center;margin:18px 2px 0;font-size:11px;color:var(--muted)}.app-head{position:sticky;top:0;background:#f5f6f2e8;backdrop-filter:blur(15px);z-index:20}.avatar{width:38px;height:38px;border:0;border-radius:50%;background:#dceae2;color:#126a43;font-size:11px;font-weight:700}.app main{padding:0 22px calc(var(--nav) + 25px)}.page{display:none;animation:in .3s ease}.hero{padding:18px 0 20px}.hero p{font-size:12px;color:var(--muted);margin:0}.hero h1{font-size:30px}.balance-card{background:var(--dark);color:#fff;border-radius:24px;padding:22px;position:relative}.balance-card small{font-size:9px;letter-spacing:1.4px;color:#9bb2a6}.balance-card strong{display:block;font-size:35px;margin:5px 0}.balance-card em,.receipt em,.wallet em{font-size:11px;color:var(--lime);font-style:normal}.balance-card>div>p{color:#9aaca2;font-size:11px;margin:0}.coin{position:absolute;right:22px;top:23px;width:51px;height:51px;border-radius:50%;background:var(--lime);color:#10251b;display:grid;place-items:center;font-weight:800;border:5px double var(--dark)}.goal{margin-top:25px}.goal p{display:flex;justify-content:space-between;font-size:11px}.goal p b{color:var(--lime)}.goal>i{display:block;height:5px;background:#354a40;border-radius:4px;overflow:hidden}.goal>i>b{display:block;width:0;height:100%;background:var(--lime);transition:.5s}.goal>small{display:block;margin-top:8px!important;color:#8da096!important}.charge-cta{width:100%;border:0;border-radius:18px;background:var(--green);color:#fff;padding:15px;margin:14px 0 29px;display:grid;grid-template-columns:42px 1fr auto;align-items:center;text-align:left;gap:10px}.charge-cta>span{height:42px;border-radius:13px;background:#ffffff25;display:grid;place-items:center;font-size:20px}.charge-cta strong,.charge-cta small{display:block}.charge-cta small{font-size:10px;color:#d2f4e2;margin-top:3px}.section-title{display:flex;justify-content:space-between;align-items:center;margin:23px 0 12px}.section-title h2{font-size:18px;margin:0;letter-spacing:-.4px}.section-title button{border:0;background:transparent;color:var(--green);font-size:11px}.my-car{height:116px;border:1px solid var(--line);background:var(--card);border-radius:18px;display:flex;align-items:center;overflow:hidden}.my-car .car-photo{width:45%;height:100%}.my-car strong{display:block;font-size:14px;margin:4px 0}.my-car p{font-size:10px;color:var(--muted)}.ok{display:inline-block;width:6px;height:6px;background:var(--green);border-radius:50%}.empty{border:1px dashed #ccd3ce;border-radius:18px;text-align:center;padding:24px;color:var(--muted)}.empty>span{width:38px;height:38px;border-radius:12px;background:#edf1ed;color:var(--green);display:grid;place-items:center;margin:auto}.empty strong{display:block;color:var(--ink);font-size:12px;margin:10px}.empty p{font-size:10px;margin:0}.history article{border:1px solid var(--line);background:white;border-radius:15px;padding:14px;display:flex;justify-content:space-between;margin-bottom:8px}.history strong,.history small{display:block;font-size:11px}.history small{color:var(--muted);margin-top:3px}.history b{color:var(--green);font-size:11px}.page-top{display:flex;gap:14px;align-items:flex-start;padding:17px 0}.page-top button{width:34px;height:34px;border:1px solid var(--line);background:white;border-radius:11px}.page-top small{font-size:9px;color:var(--green);letter-spacing:1px}.page-top h1{font-size:24px;margin:4px 0}.search{height:49px;border:1px solid var(--line);border-radius:14px;background:white;display:flex;align-items:center;padding:0 14px;font-size:22px}.search input{border:0;outline:0;flex:1;padding-left:10px;font-size:12px}.chips{display:flex;gap:7px;padding:12px 0}.chips button{border:1px solid var(--line);background:white;border-radius:20px;padding:7px 11px;font-size:9px}.chips button.active{background:var(--ink);color:white}.map{height:270px;border-radius:20px;background:#e4e8df;position:relative;overflow:hidden}.road{position:absolute;width:600px;height:18px;border:2px solid #cdd3ca;background:#faf9f3;transform:rotate(23deg);top:100px;left:-80px}.r2{transform:rotate(-48deg);top:150px;left:-190px}.r3{transform:rotate(82deg);left:-40px}.mapname{position:absolute;font-size:10px;color:#858b85}.m1{top:120px;left:190px}.m2{bottom:45px;left:70px}.pin{position:absolute;width:39px;height:39px;border-radius:50% 50% 50% 10px;transform:rotate(-45deg);border:3px solid white;background:var(--ink);color:white}.pin.active{background:var(--green)}.pin.a{left:190px;top:85px}.pin.b{left:80px;top:175px}.pin.c{right:55px;bottom:38px}.user-dot{position:absolute;width:14px;height:14px;border:4px solid white;background:#2176ff;border-radius:50%;left:48%;bottom:35px;box-shadow:0 0 0 8px #2176ff25}.station-cards{margin-top:-23px;position:relative}.station-card{background:white;border:1px solid var(--line);border-radius:18px;padding:16px;display:none}.station-card.active{display:block}.station-card header{display:flex;justify-content:space-between}.station-card h3{margin:3px 0;font-size:15px}.station-card small{font-size:9px;color:var(--green)}.station-card p{font-size:10px;color:var(--muted)}.station-card button{width:100%;height:42px;border:0;border-radius:12px;background:var(--ink);color:white;font-weight:700}.place-summary{border:1px solid var(--line);background:white;border-radius:18px;padding:15px;display:flex;align-items:center;gap:11px}.place-summary>span{width:40px;height:40px;border-radius:12px;background:#e5f5ec;display:grid;place-items:center}.place-summary strong,.place-summary small{display:block}.place-summary small{font-size:9px;color:var(--muted);margin-top:3px}.place-summary>b{margin-left:auto;font-size:10px}.helper{font-size:11px;color:var(--muted);margin:22px 0 10px}.connectors{display:grid;gap:9px}.connectors button{height:72px;border:1px solid var(--line);background:white;border-radius:16px;display:flex;align-items:center;text-align:left;gap:12px;padding:12px}.connectors button.active{border:2px solid var(--green)}.connectors button:disabled{opacity:.5}.plug{width:43px;height:43px;border-radius:50%;border:3px solid #87918a;display:grid;place-items:center;font-size:8px}.plug i{font-style:normal}.connectors strong,.connectors small{display:block}.connectors small{font-size:9px;color:var(--muted);margin-top:4px}.connectors b{margin-left:auto;font-size:8px;color:var(--green)}.summary{background:#e9eee9;border-radius:16px;padding:10px 15px;margin-top:18px}.summary p,.receipt p{display:flex;justify-content:space-between;font-size:10px}.summary span,.receipt span{color:var(--muted)}.green{color:var(--green)}.charging-head{display:flex;justify-content:space-between;padding:25px 0}.charging-head small{font-size:9px;letter-spacing:1px}.live{font-size:8px;color:var(--green);background:#e2f3e9;border-radius:12px;padding:6px 9px}.charge-ring{width:250px;height:250px;margin:18px auto;position:relative}.charge-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.charge-ring circle{fill:none;stroke:#e0e5e1;stroke-width:5}.charge-ring circle:last-child{stroke:var(--green);stroke-linecap:round;stroke-dasharray:327;stroke-dashoffset:327;transition:.25s}.charge-ring>div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.charge-ring>div>span{font-size:28px}.charge-ring strong{font-size:24px;margin:8px}.charge-ring small{color:var(--muted);font-size:10px}.charging h2,.page[data-page-name=charging] h2{text-align:center;margin:0;font-size:20px}.center{text-align:center;color:var(--muted);font-size:11px}.charge-metrics{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:17px;background:white;overflow:hidden;margin-top:25px}.charge-metrics div{padding:16px 8px;text-align:center;border-right:1px solid var(--line)}.charge-metrics div:last-child{border:0}.charge-metrics small,.charge-metrics strong{display:block}.charge-metrics small{font-size:8px;color:var(--muted);margin-bottom:5px}.charge-metrics strong{font-size:13px}.energy-flow{display:flex;align-items:center;justify-content:center;gap:8px;margin:24px}.energy-flow span{font-size:8px;color:var(--muted)}.energy-flow i{width:45px;height:1px;background:linear-gradient(90deg,transparent,var(--green));animation:flow 1s infinite}.energy-flow i:nth-of-type(2){transform:rotate(180deg)}@keyframes flow{50%{opacity:.2}}.stop{width:100%;height:52px;border:1px solid #e0bbb8;background:#fff;color:#a63b34;border-radius:15px}.fineprint{text-align:center;color:var(--muted);font-size:9px}.page[data-page-name=success]{text-align:center;padding-top:42px}.success-mark{width:75px;height:75px;border-radius:50%;background:var(--green);color:white;font-size:37px;display:grid;place-items:center;margin:0 auto 20px}.page[data-page-name=success] h1{font-size:30px;margin:9px}.page[data-page-name=success]>p{font-size:12px;color:var(--muted);line-height:1.5}.receipt{text-align:left;background:var(--dark);color:white;border-radius:22px;padding:21px;margin:25px 0}.receipt>div{text-align:center}.receipt>div small{font-size:9px;color:#91a398}.receipt>div strong{display:block;font-size:29px;margin-top:6px}.receipt hr{border:0;border-top:1px solid #33473d;margin:18px 0}.receipt p span{color:#9eb0a6}.text-btn{border:0;background:transparent;color:var(--green);margin:18px}.wallet{background:linear-gradient(145deg,#0c9f62,#087646);border-radius:23px;color:white;padding:23px}.wallet small{font-size:9px;letter-spacing:1px}.wallet strong{font-size:34px;display:block;margin:7px 0}.wallet p{font-size:11px;color:#c6ebd8}.explain{display:flex;gap:15px;background:white;border:1px solid var(--line);border-radius:18px;padding:16px;margin-top:15px}.explain>span{width:48px;height:48px;border-radius:14px;background:#e7f6ed;color:var(--green);font-weight:700;display:grid;place-items:center}.explain strong{font-size:12px}.explain p{font-size:10px;color:var(--muted);margin:4px 0}.profile-card{display:flex;align-items:center;gap:13px;background:white;border:1px solid var(--line);border-radius:18px;padding:16px}.avatar.big{width:54px;height:54px}.profile-card strong,.profile-card small{display:block}.profile-card small{font-size:10px;color:var(--muted);margin-top:3px}.my-car.detail{height:135px}.settings{display:grid;margin-top:22px;border:1px solid var(--line);border-radius:18px;overflow:hidden}.settings button{height:52px;border:0;border-bottom:1px solid var(--line);background:white;text-align:left;padding:0 16px}.settings button:last-child{border:0;color:#b1443d}.settings b{float:right}.app nav{height:calc(var(--nav) + env(safe-area-inset-bottom));position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,500px);background:#fffef8ed;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);z-index:30;padding:10px 8px env(safe-area-inset-bottom);backdrop-filter:blur(15px)}.app nav button{border:0;background:transparent;color:#89918c;font-size:8px;display:flex;flex-direction:column;align-items:center;gap:4px}.app nav button>span{font-size:20px}.app nav button.active{color:var(--green)}.app nav .nav-charge span{width:46px;height:46px;border-radius:16px;background:var(--ink);color:white;display:grid;place-items:center;margin-top:-26px;box-shadow:0 7px 20px #10251b3b}.toast{position:fixed;z-index:80;bottom:100px;left:50%;transform:translate(-50%,20px);background:var(--dark);color:white;border-radius:14px;padding:13px 18px;opacity:0;transition:.3s;pointer-events:none;font-size:11px;box-shadow:0 12px 30px #0003}.toast.show{opacity:1;transform:translate(-50%,0)}@media(min-width:650px){body{padding:18px 0}.phone{min-height:calc(100vh - 36px);border-radius:28px;overflow:hidden}.app nav{bottom:18px;border-radius:0 0 28px 28px}}@media(max-width:370px){.brand-grid{grid-template-columns:repeat(2,1fr)}.model-grid{grid-template-columns:1fr}.model-card .car-photo{height:150px}}

.auth{min-height:100vh;background:var(--bg)}.auth-hero{min-height:43vh;padding:25px 24px 32px;background:linear-gradient(150deg,#071b11 0,#0d3e27 68%,#087a47 100%);color:white;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-hero:after{content:"";position:absolute;width:270px;height:270px;border:1px solid #65e6a33b;border-radius:50%;right:-145px;bottom:-115px;box-shadow:0 0 0 35px #37c9820a,0 0 0 70px #37c9820a}.auth-hero .brand,.auth-hero>div{position:relative;z-index:2}.auth-hero .tag{color:var(--lime)}.auth-hero h1{font-size:36px;line-height:1.06;letter-spacing:-1.8px;margin:11px 0}.auth-hero p{color:#b7c9bf;font-size:13px;line-height:1.5;margin:0}.auth-panel{background:var(--bg);padding:27px 24px 38px;border-radius:27px 27px 0 0;margin-top:-22px;position:relative;z-index:3}.auth-panel h2{font-size:22px;letter-spacing:-.7px;margin:0 0 7px}.auth-panel>div>p,.auth-panel form>p{font-size:12px;color:var(--muted);margin:0 0 20px}.auth-panel .primary{margin-top:15px;background:var(--green)}.secondary{width:100%;height:53px;border:1px solid var(--line);background:white;border-radius:15px;font-weight:700;margin-top:10px}.auth-panel>div>small{display:block;text-align:center;color:var(--muted);font-size:9px;margin-top:17px}.auth-panel form .back{margin-bottom:20px}.password-wrap{display:flex;width:100%;height:52px;border:1px solid var(--line);background:var(--card);border-radius:13px;margin-top:6px;overflow:hidden}.password-wrap input{height:100%!important;border:0!important;margin:0!important;box-shadow:none!important}.password-wrap button{border:0;background:transparent;color:var(--green);font-size:10px;font-weight:700;padding:0 13px}.login-error{color:#b23d35!important;min-height:16px;margin:8px 0 0!important}.auth-panel .text-btn{display:block;margin:16px auto 0}.settings #logoutApp{color:var(--ink)}
