@font-face{font-family:Poppins;src:url('./poppins.ttf') format('truetype');font-display:swap;font-weight:500 800}@font-face{font-family:Quicksand;src:url('./quicksand.ttf') format('truetype');font-display:swap;font-weight:400 700}
:root{--blue:#0057ff;--cyan:#00e5ff;--ink:#1a1c23;--gray:#78818f;--line:#eef1f5;--pastel:#e6f0ff;--green:#168762;--coral:#e35968;--head:Poppins,Arial,sans-serif;--body:Quicksand,Arial,sans-serif;--nav-height:81px;font-family:var(--body);color:var(--ink);background:#f3f6fb;font-synthesis:weight}
*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;width:100%}body{overscroll-behavior:none;-webkit-font-smoothing:antialiased}body{background:radial-gradient(ellipse at 70% 20%,#eaf3ff 0,transparent 50%),radial-gradient(ellipse at 23% 80%,#e7edfa 0,transparent 44%),#f6f8fc}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{border:0;cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.48}button,input,textarea,select,a{touch-action:manipulation}button{transition:background .2s,transform .18s,box-shadow .2s}button:active:not(:disabled){transform:scale(.975)}button:focus-visible,a:focus-visible{outline:3px solid #75a1ff;outline-offset:3px}input:focus,textarea:focus,select:focus{outline:2px solid #92b4ff;outline-offset:1px}input,textarea,select{font-size:16px}button svg,a svg{flex-shrink:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--head);font-weight:700;letter-spacing:-.6px}h1{font-size:27px;line-height:1.3}h2{font-size:19px;line-height:1.4}h3{font-size:16px;line-height:1.4}a{color:inherit;text-decoration:none}small{font-size:11px}svg{vertical-align:middle}label{display:block;font-size:13px;font-weight:700;margin:16px 0 9px}.muted{color:var(--gray);font-size:13px;line-height:1.65}.cyan{color:var(--cyan)}.green-text{color:var(--green)!important}.spin{animation:spin 1s linear infinite}.glass{background:rgba(255,255,255,.93);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.96);box-shadow:0 10px 40px #142b6112}
.desktop-brand{position:fixed;left:5vw;top:45px;display:flex;flex-direction:column;gap:5px}.wordmark{font-family:var(--head);font-size:48px;letter-spacing:-4px;line-height:1;font-weight:800}.wordmark span{color:var(--blue)}.desktop-brand>span{font-size:9px;letter-spacing:2.2px;font-weight:700;margin-left:3px;color:#737e90}.desktop-meta{position:fixed;left:5vw;bottom:40px;display:flex;flex-direction:column;gap:8px;font-size:10px;color:#99a3b2;letter-spacing:1px}.desktop-meta span:first-child{font-weight:700;color:#6d7b93}
.app-shell{position:relative;width:100%;max-width:460px;height:calc(100dvh - 40px);max-height:1000px;min-height:560px;margin:20px auto;background:#fff;border-radius:34px;box-shadow:0 22px 80px #182d5712,0 0 0 1px #edf0f5;overflow:hidden;display:flex;flex-direction:column;isolation:isolate}.app-header{height:79px;padding:20px 22px 15px;display:flex;align-items:center;justify-content:space-between;gap:8px;background:#fff;z-index:10;flex-shrink:0}.location-button{padding:0;background:transparent;display:flex;align-items:center;gap:9px;text-align:left;min-width:0}.location-icon{display:flex;align-items:center;justify-content:center;width:35px;height:35px;background:#eff4ff;border-radius:12px;color:var(--blue)}.location-button small{display:block;color:#8a91a0;font-size:10px;margin-bottom:3px;font-weight:600}.location-button strong{display:flex;align-items:center;gap:6px;font-size:13px;white-space:nowrap}.header-actions{display:flex;align-items:center;gap:10px}.demo-badge{display:inline-block;background:#f1f4f9;color:#7b879a;border:1px solid #e8edf5;padding:4px 6px;border-radius:6px;font-size:8px;font-weight:700;letter-spacing:1px;white-space:nowrap}.icon-btn{width:39px;height:39px;border-radius:50%;background:#f6f7fa;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.notification{position:relative;background:#f8f9fb}.notification i{position:absolute;right:11px;top:9px;border:2px solid white;width:7px;height:7px;border-radius:50%;background:var(--blue)}
.app-content{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;overscroll-behavior:contain;scroll-behavior:smooth;padding-bottom:0}.app-content::-webkit-scrollbar{display:none}.screen{padding:8px 22px 25px;animation:screen-in .35s ease both;min-height:100%}.home-screen{padding-top:8px}.welcome-line{font-size:13px;color:#818b9b;font-weight:600;margin-bottom:7px}.welcome-line span{color:#0057ff;margin-left:4px}.home-title{font-size:28px;letter-spacing:-1.15px;line-height:1.25}.home-subtitle{font-size:12px;color:#89909e;line-height:1.6;margin-top:7px;margin-bottom:21px}.search-wrap{height:51px;background:#f4f6f8;border:1px solid #f0f2f5;border-radius:16px;display:flex;align-items:center;gap:10px;padding:0 7px 0 14px;color:#778293;min-width:0}.search-wrap input{background:transparent;border:0;min-width:0;flex:1;font-size:12px;color:var(--ink);font-weight:600;outline:0;padding:8px 0}.search-wrap input::placeholder{color:#9ba2ae}.filter-btn{width:35px;height:35px;border-radius:11px;background:white;color:#4b5665;box-shadow:0 2px 8px #182d5706;display:flex;align-items:center;justify-content:center}.search-clear{display:flex;align-items:center;background:none;padding:4px}.filter-scroll{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:14px 0 17px;white-space:nowrap;min-width:0}.filter-scroll::-webkit-scrollbar{display:none}.chip{border-radius:50px;background:white;border:1px solid #e9edf2;padding:9px 13px;display:flex;align-items:center;gap:6px;font-size:11px;line-height:1.1;font-weight:700;flex-shrink:0}.chip.active{background:var(--blue);color:white;border-color:var(--blue);box-shadow:0 4px 14px #0057ff20}.green-dot,.blue-dot,.red-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#1ca574;flex-shrink:0}.blue-dot{background:#0057ff}.red-dot{background:#e85969}.chip.active .green-dot{background:#65e2af}
.hero-banner{position:relative;overflow:hidden;border-radius:23px;height:184px;background:#eaf1ff;margin-top:0;isolation:isolate}.hero-copy{position:absolute;left:20px;top:22px;width:49%;z-index:2}.hero-eyebrow{display:flex;gap:5px;align-items:center;font-size:8px;letter-spacing:1.3px;color:#4b74ab;font-weight:800}.hero-eyebrow span{width:5px;height:5px;background:var(--blue);border-radius:50%}.hero-copy h2{font-size:23px;letter-spacing:-.9px;line-height:1.35;margin-top:11px;max-width:170px}.hero-copy button{font-size:11px;font-weight:700;background:white;box-shadow:0 4px 20px #0057ff0c;display:flex;gap:8px;align-items:center;border-radius:50px;padding:9px 11px;margin-top:15px;color:var(--blue)}.charge-art{display:block;width:100%;height:100%;object-fit:cover}.hero-art{position:absolute;width:69%;height:auto;right:-35px;bottom:0;filter:drop-shadow(0 10px 10px #31548012)}.hero-banner>.hero-art{bottom:-5px;right:-70px;width:87%;clip-path:inset(0 round 0 0 23px 0)}.hero-banner:before{content:'';position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,#eaf1ff 37%,transparent 65%);pointer-events:none}
.quick-actions{display:flex;gap:10px;margin:17px 0 24px}.quick-scan{display:flex;align-items:center;gap:10px;flex:1;min-width:0;min-height:73px;text-align:left;background:var(--blue);color:white;border-radius:19px;padding:12px;box-shadow:0 7px 18px #0057ff19}.scan-icon{background:#ffffff24;border:1px solid #ffffff24;width:42px;height:43px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.quick-scan>span:nth-child(2){flex:1;min-width:0}.quick-scan strong{display:block;font-size:13px}.quick-scan small{display:block;max-width:158px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#c6d9ff;font-size:8px;margin-top:5px}.quick-wallet{border-radius:19px;background:#f4f7fd;display:flex;align-items:center;justify-content:center;gap:9px;padding:12px;color:var(--blue);min-width:94px}.quick-wallet strong{font-size:16px;letter-spacing:-.5px;color:#344970}.quick-wallet small{display:block;font-size:9px;font-weight:600;letter-spacing:.5px;margin-top:2px}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:22px 0 12px}.section-heading h2{font-size:17px;letter-spacing:-.5px}.section-heading button{display:inline-flex;align-items:center;gap:2px;color:var(--blue);background:transparent;font-size:10px;font-weight:700;padding:4px 0 4px 8px}.station-list{display:flex;flex-direction:column;gap:15px}.station-card{position:relative;border:1px solid #edf0f5;border-radius:21px;overflow:hidden;background:#fff;box-shadow:0 4px 14px #15285504}.station-main{padding:0;display:block;width:100%;background:none;text-align:left}.station-image{height:151px;position:relative;overflow:hidden;background:#eef3ff}.station-image .charge-art{width:100%;height:auto;transform:translateY(-24px)}.power-tag{position:absolute;left:12px;bottom:11px;background:#ffffffef;backdrop-filter:blur(10px);border:1px solid white;font-size:9px;font-weight:800;border-radius:20px;padding:6px 8px;display:flex;align-items:center;gap:4px;color:#263948}.favorite-btn{position:absolute;right:12px;top:12px;width:32px;height:32px;background:#ffffffeb;border:1px solid white;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#7891a9;box-shadow:0 3px 10px #182d5707}.favorite-btn.is-favorite{color:var(--blue)}.station-content{padding:13px 15px 15px}.station-name{display:flex;align-items:start;justify-content:space-between;gap:8px}.station-name h3{font-size:16px;letter-spacing:-.45px}.station-price{font-family:var(--head);font-size:16px;font-weight:700;line-height:1.1;text-align:right;white-space:nowrap}.station-price small{display:block;font-family:var(--body);font-size:8px;font-weight:500;color:#959da8;margin-top:5px}.station-content>p{font-size:10px;color:#929aa6;margin-top:4px}.station-meta{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:10px;color:#8892a0}.station-meta>span:not(:first-child){position:relative}.station-meta>span:last-child:before{content:'·';position:absolute;left:-7px}.status{font-size:9px;font-weight:700;display:inline-flex;align-items:center;gap:4px;border-radius:30px;background:#eaf8f0;padding:5px 7px;color:#178c60;white-space:nowrap}.status i{width:5px;height:5px;border-radius:50%;background:currentColor}.status.charging{background:#eaf1ff;color:var(--blue)}.status.offline{background:#fff0f1;color:#da5a66}.plus-banner{display:flex;align-items:center;position:relative;overflow:hidden;gap:7px;width:100%;text-align:left;background:#f1f4ff;padding:22px 20px;border-radius:23px;margin:24px 0 0}.plus-banner>div:first-child{max-width:75%}.iron-plus{font-family:var(--head);font-weight:800;font-size:22px;letter-spacing:-1.6px;color:#123b7e}.iron-plus span{color:var(--blue);padding-left:1px}.plus-banner h3{font-size:16px;margin-top:9px}.plus-banner p{font-size:10px;color:#7c8b9f;margin-top:6px}.link-label{font-size:10px;font-weight:800;color:var(--blue);display:flex;align-items:center;gap:7px;margin-top:13px}.plus-orb{display:flex;align-items:center;justify-content:center;width:64px;height:76px;border-radius:18px;transform:rotate(13deg);color:#fff;background:linear-gradient(135deg,#5892ff,#0057ff);box-shadow:0 12px 22px #0057ff26;position:absolute;right:20px}.mini-map-button{display:block;position:relative;width:100%;padding:0;background:#edf2f5;border-radius:23px;overflow:hidden}.mini-map-pill{position:absolute;left:14px;bottom:24px;z-index:500;display:flex;align-items:center;gap:6px;font-size:10px;font-weight:700;background:#fffffff0;border:1px solid white;border-radius:50px;padding:10px 13px;box-shadow:0 5px 20px #182d5715}.footnote{display:flex;align-items:center;justify-content:center;gap:5px;color:#a5adba;font-size:9px;text-align:center;line-height:1.6;margin:23px 0 4px}
.bottom-nav{position:relative;height:var(--nav-height);flex-shrink:0;display:grid;grid-template-columns:repeat(5,1fr);align-items:center;padding:10px 12px 15px;background:rgba(255,255,255,.96);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid #f0f2f6;z-index:600;box-shadow:0 -8px 25px #233d5804}.bottom-nav button{padding:0 4px 2px;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:9px;font-weight:700;color:#909aab;background:transparent;position:relative}.bottom-nav button.selected{color:var(--blue)}.nav-icon{display:flex;align-items:center;justify-content:center;width:29px;height:29px;position:relative}.charge-nav .nav-icon{background:#eaf2ff;color:var(--blue);height:38px;width:38px;border-radius:13px;margin-top:-7px}.charge-nav.selected .nav-icon{background:var(--blue);color:white;box-shadow:0 5px 12px #0057ff29}.live-dot{position:absolute;right:-2px;top:-2px;background:#19c488;border:2px solid white;width:9px;height:9px;border-radius:50%}.active-pill{position:absolute;bottom:calc(var(--nav-height) + 10px);left:20px;right:20px;z-index:590;display:flex;gap:8px;align-items:center;padding:13px 14px;border-radius:16px;background:#143f9ef2;color:white;box-shadow:0 6px 28px #0057ff20;backdrop-filter:blur(15px);font-size:11px}.active-pill strong{flex:1;text-align:left}.pulse-dot{height:7px;width:7px;border-radius:50%;background:#85ffb1;animation:pulse 2s ease infinite}.toast{position:absolute;bottom:calc(var(--nav-height) + 20px);left:20px;right:20px;background:#1a273deb;color:white;padding:15px 16px;border-radius:16px;z-index:1200;display:flex;align-items:center;gap:10px;font-size:12px;font-weight:600;box-shadow:0 8px 35px #0002;animation:toast-in .25s ease;backdrop-filter:blur(18px)}
.map-page{overflow:hidden}.map-screen{height:100%;position:relative;isolation:isolate}.map-container{position:relative;width:100%;height:100%;background:#edf3f1;overflow:hidden}.map-container.mini{height:213px}.leaflet-map{position:absolute;inset:0;background:transparent!important}.map-art{position:absolute;inset:0;width:100%;height:100%}.map-top{position:absolute;z-index:500;top:8px;left:19px;right:19px;pointer-events:none}.map-top>*{pointer-events:auto}.map-top .search-wrap{background:#fffffff3;box-shadow:0 5px 22px #182d5710;border:1px solid white;backdrop-filter:blur(16px)}.map-top .filter-scroll{padding-top:10px}.map-top .chip{box-shadow:0 4px 12px #1a395309}.map-tools{position:absolute;right:17px;top:135px;z-index:450;display:flex;flex-direction:column;gap:9px}.map-tools .icon-btn{border-radius:13px;width:36px;height:36px}.leaflet-control-attribution{font-size:8px!important;background:#ffffffe6!important}.leaflet-container .leaflet-control-attribution a{color:#6d7f8a!important}.map-legend{position:absolute;left:20px;top:127px;z-index:420;font-size:8px;display:flex;align-items:center;gap:9px;background:#ffffffe0;padding:7px 9px;border-radius:50px;box-shadow:0 3px 15px #15285508;backdrop-filter:blur(10px)}.map-legend span{display:flex;align-items:center;gap:4px}.map-bottom{position:absolute;bottom:21px;left:16px;right:16px;z-index:510;border-radius:25px;padding:8px 18px 12px;box-shadow:0 8px 40px #16356118}.map-bottom>.section-heading{margin:7px 0 9px}.map-bottom h2{font-size:22px}.map-bottom>.muted{font-size:10px;margin-top:3px}.sheet-handle{display:block;width:32px;height:4px;border-radius:5px;background:#dbe2eb;margin:0 auto}.map-bottom .station-specs{padding:15px 0;margin:4px 0 2px}.station-specs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;align-items:center;padding:20px 0;margin:4px 0 15px}.station-specs>div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;font-size:12px;color:#697c94;text-align:center}.station-specs>div+div{border-left:1px solid #e9edf4}.station-specs strong{color:#263952;font-family:var(--head);font-size:13px;font-weight:600;white-space:nowrap}.station-specs small{font-size:9px;font-family:var(--body);font-weight:500;color:#8795a6}.map-bottom .station-specs>div{flex-direction:row;gap:5px}.map-bottom .station-specs small{font-size:7px}.map-bottom .micro-note{margin:8px 0 0;font-size:8px}.spatial-marker{background:none!important;border:0!important}.pin{position:relative;width:40px;height:40px;background:white;border:3px solid white;color:var(--pin);border-radius:14px;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 15px #1a355426,0 0 0 1px #ffffffa6;filter:drop-shadow(0 2px 8px color-mix(in srgb,var(--pin) 18%,transparent))}.pin:after{content:'';position:absolute;bottom:-6px;left:14px;background:white;width:9px;height:9px;transform:rotate(45deg);border-radius:1px}.pin.selected{width:51px;height:51px;flex-direction:column;gap:2px;background:var(--pin);color:white;box-shadow:0 5px 20px #0057ff33;border-radius:17px}.pin.selected:after{background:white;left:20px;bottom:-7px}.pin.selected span{font-size:8px;font-weight:800;line-height:1}.map-fallback{position:absolute;top:52%;left:12px;z-index:450;background:#ffffffdf;color:#728698;border-radius:7px;padding:5px 7px;font-size:8px;max-width:70%}.empty-map{background:white;text-align:center}.empty-map p{font-size:13px;padding:10px}
.primary,.secondary,.danger{min-height:49px;width:100%;border-radius:15px;display:flex;align-items:center;justify-content:center;gap:9px;font-weight:700;font-size:13px;padding:12px 16px}.primary{background:var(--blue);color:white;box-shadow:0 6px 18px #0057ff20}.primary svg:last-child:not(:first-child){margin-left:auto}.primary svg:first-child:not(:last-child){margin-right:0}.primary:hover{background:#004ce1}.secondary{background:#f2f5fa;color:#5d6f88;border:1px solid #edf1f6;box-shadow:none;margin-top:10px}.danger{background:#fff0f2;border:1px solid #ffdee2;color:#d95667}.two-buttons{display:flex;gap:9px}.two-buttons>*{flex:1;min-width:0;font-size:11px;padding:11px 9px}.empty{text-align:center;padding:45px 10px 30px;display:flex;align-items:center;flex-direction:column}.empty-icon{width:100px;height:100px;border-radius:32px;background:#eff5ff;color:var(--blue);display:flex;align-items:center;justify-content:center;margin-bottom:22px}.empty h2{font-size:22px;max-width:290px}.empty p{font-size:13px;color:#8b96a8;line-height:1.7;margin:13px auto 24px;max-width:260px}.empty button{margin-top:10px}.page-heading{margin:12px 0 23px}.page-heading .icon-btn{margin-bottom:17px}.page-heading h1{font-size:26px;letter-spacing:-1px;max-width:360px}.page-heading p{font-size:12px;color:#9099a8;line-height:1.8;margin-top:10px}.modal-overlay{position:absolute;inset:0;z-index:1000;background:#14273a58;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:flex;flex-direction:column;justify-content:flex-end;animation:fade-in .2s}.modal-sheet{position:relative;max-height:94%;background:#fff;border:1px solid #ffffffbb;border-radius:28px 28px 0 0;box-shadow:0 -15px 70px #19314a18;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;animation:sheet-in .3s cubic-bezier(.22,1,.36,1);overscroll-behavior:contain}.modal-top{position:sticky;top:0;z-index:10;height:47px;background:#fffffff0;backdrop-filter:blur(20px);padding-top:11px;border-radius:28px 28px 0 0}.modal-top .icon-btn{position:absolute;right:14px;top:9px;width:29px;height:29px;background:#f2f4f8}.modal-body{padding:0 25px 30px;min-width:0}.modal-body .page-heading{margin-top:5px}.modal-text{font-size:13px;color:#8190a5;line-height:1.8;margin:16px 0 23px}.modal-symbol{width:69px;height:69px;background:#edf4ff;color:var(--blue);border-radius:23px;display:flex;align-items:center;justify-content:center;margin:12px 0 24px}.coral{background:#fff1f2!important;color:#e56470!important}.micro-note{color:#99a5b5;line-height:1.7;font-size:10px;text-align:center;margin:14px 0 4px}.demo-note{background:#f1f6ff;border-radius:12px;padding:12px;color:#6c81a0;font-size:11px;line-height:1.8;margin:15px 0}.detail-art{margin:0 -25px 24px;height:191px;position:relative;overflow:hidden}.detail-art .charge-art{height:auto;transform:translateY(-30px)}.detail-art .status{position:absolute;bottom:13px;left:23px;background:#fffffff0}.connector-picker label{font-size:11px;color:#8290a3}.selected-connector{display:flex;align-items:center;gap:10px;border:1px solid #ccdcff;background:#f3f7ff;border-radius:15px;padding:15px;color:#0057ff;font-size:12px;font-weight:700}.selected-connector svg:last-child{margin-left:auto}.benefit{display:flex;align-items:center;gap:7px;font-size:11px;color:#7793b0;margin:12px 0}.benefit svg{color:var(--blue)}.text-input{border:1px solid #e7edf6;background:#f8faff;border-radius:13px;padding:14px;width:100%;color:#526781;resize:vertical;line-height:1.5}.form-error{color:#d74f65;font-size:11px;line-height:1.6;margin:9px 0 16px}.text-action{background:none;color:var(--blue);font-size:11px;font-weight:700;padding:8px 0}
.scanner-sheet .page-heading h1{font-size:24px}.camera-view{position:relative;width:100%;height:260px;overflow:hidden;border-radius:24px;background:radial-gradient(circle at 50% 30%,#2c3d54,#172437 75%)}.camera-view video{width:100%;height:100%;object-fit:cover}.camera-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#a8b9d329;gap:16px}.camera-placeholder span{font-size:8px;letter-spacing:2px}.scan-frame{position:absolute;width:174px;height:174px;top:30px;left:50%;transform:translateX(-50%);border:1px solid #74abff24;border-radius:23px;box-shadow:0 0 0 120px #0b162546,inset 0 0 24px #0057ff09;overflow:hidden}.scan-frame>i{position:absolute;width:31px;height:31px;border-color:#41a0ff;border-style:solid;border-width:0;filter:drop-shadow(0 0 5px #0057ff88)}.scan-frame>i:nth-child(1){left:0;top:0;border-top-width:3px;border-left-width:3px;border-radius:20px 0 0 0}.scan-frame>i:nth-child(2){right:0;top:0;border-top-width:3px;border-right-width:3px;border-radius:0 20px 0 0}.scan-frame>i:nth-child(3){left:0;bottom:0;border-bottom-width:3px;border-left-width:3px;border-radius:0 0 0 20px}.scan-frame>i:nth-child(4){right:0;bottom:0;border-bottom-width:3px;border-right-width:3px;border-radius:0 0 20px 0}.scan-line{position:absolute;left:10px;right:10px;top:16px;height:2px;background:#49b1ff;box-shadow:0 0 18px #00e5ff,0 -13px 35px #0057ff88;animation:scan 2.8s ease-in-out infinite}.camera-enable{position:absolute;bottom:19px;left:50%;transform:translateX(-50%);white-space:nowrap;display:flex;gap:8px;align-items:center;justify-content:center;padding:9px 14px;background:#ffffff18;color:#d9e9ff;border:1px solid #ffffff15;border-radius:50px;font-size:11px}.scanner-manual label{font-size:12px;margin-top:22px}.code-input{display:flex;align-items:center;gap:10px;background:#f4f7fc;border:1px solid #e9eff8;border-radius:14px;padding:14px;color:#889db5;margin-bottom:15px}.code-input input{border:0;background:none;min-width:0;flex:1;font-size:14px;font-weight:600;color:#365173;outline:0}.connecting{padding:55px 0 50px;text-align:center;display:flex;align-items:center;flex-direction:column;gap:16px}.connecting-orbit{position:relative;color:var(--blue);border-radius:50%;background:#f0f6ff;width:130px;height:130px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 15px #f7faff,0 0 0 30px #fbfcff;margin-bottom:25px;animation:pulse 2s ease infinite}.connecting h2{font-size:23px}.connecting p{font-size:13px;color:#879ab4}.auth-logo{width:65px;height:65px;background:var(--blue);color:white;border-radius:20px;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 26px #0057ff26;margin:12px 0 26px}.phone-input{display:flex;align-items:center;background:#f5f7fb;border:1px solid #e6edf8;border-radius:15px;margin-bottom:19px}.phone-input span{padding:17px;font-size:14px;color:#537195;font-weight:700;border-right:1px solid #e1e7f0}.phone-input input{flex:1;min-width:0;background:none;border:0;padding:17px 12px;color:#2e4b71;outline:0}.otp-input{width:100%;text-align:center;letter-spacing:8px;border:1px solid #e3eaf8;border-radius:15px;background:#f7f9fd;padding:16px;font-size:24px;color:var(--blue)}
.session-screen{padding-top:14px}.session-topline{display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#97a5ba;font-weight:700;letter-spacing:.4px}.live-badge{background:#edf9f3;color:#19a272;padding:7px 9px;border-radius:30px;display:flex;align-items:center;gap:5px;font-size:9px}.live-badge i{width:5px;height:5px;background:currentColor;border-radius:50%;animation:pulse 2s infinite}.session-screen .page-heading{margin:19px 0 12px}.session-screen .page-heading h1{font-size:27px;max-width:310px}.session-screen .page-heading p{font-size:12px;margin-top:6px}.session-station{display:flex;align-items:center;gap:5px;color:#7f91ac;font-size:11px}.session-station>span{margin-left:auto;background:#f4f7fc;border-radius:6px;padding:4px 6px;font-size:9px}.energy-ring{width:285px;height:285px;margin:21px auto 18px;position:relative}.energy-ring>svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 6px 7px #0057ff14)}.ring-glow{position:absolute;inset:24px;border-radius:50%;box-shadow:0 15px 45px #0057ff0b,inset 0 0 35px #eef4ff68;background:radial-gradient(circle,#fff 50%,#f8fbff)}.progress-stroke{transition:stroke-dashoffset 1s linear}.ring-inner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column}.ring-zap{color:var(--blue);display:flex;align-items:center;justify-content:center;margin-bottom:12px}.ring-inner>strong{font-family:var(--head);font-size:49px;letter-spacing:-2.5px;line-height:1.1;font-weight:700;min-width:140px;text-align:center;font-variant-numeric:tabular-nums}.ring-inner>span:not(.ring-zap){font-size:14px;color:#97a8bf;font-weight:600;margin-top:4px}.battery-indicator{width:65px;height:4px;border-radius:5px;background:#e8edf6;overflow:hidden;margin:15px 0 7px}.battery-indicator i{display:block;height:100%;background:var(--blue);border-radius:5px;transition:width 1s}.ring-inner small{font-size:10px;color:#91a1b8}.ring-dot{position:absolute;inset:0;transition:transform 1s linear;pointer-events:none}.ring-dot i{position:absolute;left:calc(50% - 8px);top:18px;width:16px;height:16px;border:4px solid white;background:#00bcff;border-radius:50%;box-shadow:0 0 14px #0057ff57}
.live-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px}.metric-card{background:linear-gradient(135deg,#f6f9ff,#ffffff);border:1px solid #eaf0f9;border-radius:18px;padding:17px 15px;box-shadow:0 5px 20px #1b3d6a05;min-width:0}.metric-card>span{display:flex;align-items:center;gap:5px;font-size:10px;color:#879bb7}.metric-card strong{font-family:var(--head);display:block;font-size:21px;letter-spacing:-.8px;margin-top:10px;font-weight:600;font-variant-numeric:tabular-nums}.metric-card strong small{color:#91a5c0;font-size:11px;letter-spacing:0;font-family:var(--body)}.session-info{display:flex;align-items:center;justify-content:space-between;margin-top:16px;font-size:11px}.session-info>span{display:flex;align-items:center;gap:6px;color:#92a0b6}.session-info strong{font-size:11px;color:#58718e}.charging-waves{height:26px;display:flex;gap:4px;align-items:center;justify-content:center;margin:14px 0 3px}.charging-waves i{width:3px;height:9px;border-radius:3px;background:#b9d6ff;animation:wave 1.4s ease-in-out infinite}.charging-waves i:nth-child(2n){animation-delay:-.2s}.charging-waves i:nth-child(3n){animation-delay:-.4s}.charging-waves i:nth-child(4n){animation-delay:-.6s}.idle-note{display:flex;align-items:center;justify-content:center;gap:5px;font-size:10px;color:#98a7ba;margin:10px 0 24px}.hold-stop{position:relative;overflow:hidden;width:100%;height:53px;background:#fff0f2;border:1px solid #ffdce3;color:#dc5d72;border-radius:17px;box-shadow:0 7px 19px #e56a7512;display:flex;align-items:center;gap:9px;padding:15px 18px;font-size:13px;font-weight:800;user-select:none;-webkit-user-select:none;touch-action:none}.hold-stop>svg,.hold-stop>span:not(.hold-progress){z-index:1;position:relative}.hold-progress{position:absolute;inset:0 auto 0 0;background:#ffd4df;pointer-events:none}.hold-seconds{margin-left:auto;font-size:10px;background:#ffdfe7;border-radius:50px;padding:5px 7px}.session-screen>.text-action{display:block;margin:0 auto}.demo-session-note{margin-top:16px;font-size:8px}.session-screen>.hero-art{position:relative;width:100%;right:auto;bottom:auto;margin-top:25px;border-radius:25px}.receipt-view{text-align:center;padding:18px 0 0}.success-orb{height:84px;width:84px;background:#e8f9f0;color:#19a273;border-radius:50%;margin:0 auto 24px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 9px #f5fcf8}.receipt-view h1{font-size:25px}.receipt-view>.muted{font-size:11px;margin-top:9px}.receipt-paper{background:#f8faff;border:1px solid #e9eff8;border-radius:20px;padding:23px;margin:25px 0 22px;position:relative}.receipt-paper:after{content:'';position:absolute;bottom:-6px;left:15px;right:15px;height:10px;background:radial-gradient(circle at 5px 8px,#fff 4px,transparent 4.5px) repeat-x;background-size:12px 10px}.receipt-label{font-size:10px;color:#8b9cb7;letter-spacing:.5px}.receipt-amount{font-family:var(--head);font-size:39px;letter-spacing:-2px;font-weight:700;margin:18px 0 5px}.receipt-amount small{font-family:var(--body);font-size:13px;color:#8fa3c0;margin-left:7px;letter-spacing:0}.receipt-divider{border-top:1px dashed #d6e1f2;margin:18px 0}.receipt-row{display:flex;justify-content:space-between;gap:6px;font-size:12px;margin:13px 0}.receipt-row span{color:#7c91af}.receipt-id{display:block;font-size:9px;color:#a6b4c8;letter-spacing:1px;margin-top:22px}.receipt-view .primary{margin-top:10px}
.wallet-screen .page-heading h1{max-width:280px}.wallet-card{background:linear-gradient(123deg,#0a54f3 0,#0057ff 62%,#267fff 100%);border-radius:24px;padding:23px;color:white;position:relative;overflow:hidden;box-shadow:0 12px 30px #0057ff24;isolation:isolate}.wallet-card-top{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}.wallet-card-top>span{font-family:var(--head);font-size:28px;font-weight:800;letter-spacing:-2px}.wallet-card-top>svg{color:#b8d6ff}.wallet-label{display:block;font-size:11px;color:#c9dcff;margin-top:27px;position:relative;z-index:1}.wallet-number{font-family:var(--head);font-size:40px;font-weight:600;letter-spacing:-1.3px;position:relative;z-index:1;line-height:1.4;margin-top:4px}.wallet-number>span{font-family:var(--body);font-size:13px;letter-spacing:0;color:#d2e4ff;margin-left:8px}.wallet-topup{position:relative;z-index:1;background:white;color:var(--blue);display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800;padding:11px 15px;border-radius:50px;margin-top:21px}.wallet-decoration{position:absolute;width:235px;height:235px;border-radius:50%;border:27px solid #ffffff0a;right:-105px;top:14px;z-index:-1}.wallet-decoration.second{width:295px;height:295px;border:1px solid #ffffff13;right:-134px;top:-17px}.bonus-card{display:flex;align-items:center;gap:12px;padding:17px 14px;background:#f4f8ff;border-radius:18px;margin:16px 0 25px}.soft-icon{width:42px;height:42px;background:#eaf2ff;color:var(--blue);border-radius:13px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.soft-icon.green{color:#229571;background:#e8f7f0}.bonus-card>div{flex:1;min-width:0}.bonus-card strong{display:block;font-size:12px}.bonus-card small{display:block;font-size:8px;color:#8da0b9;margin-top:5px}.bonus-card b{font-family:var(--head);font-size:17px;text-align:right}.bonus-card b small{font-family:var(--body);font-size:8px}.bank-card-row{display:flex;align-items:center;gap:13px;width:100%;padding:17px;background:white;border:1px solid #ecf0f7;border-radius:17px;text-align:left}.visa{font-family:Arial,sans-serif;font-weight:900;color:#174492;font-style:italic;font-size:19px;background:#eff4fc;border-radius:8px;padding:8px 6px}.bank-card-row>span:nth-child(2){flex:1}.bank-card-row strong{font-family:var(--head);font-weight:500;font-size:12px;letter-spacing:2px}.bank-card-row small{display:block;font-size:9px;color:#9caabc;margin-top:4px}.card-check{background:#eaf8f1;color:#24a579;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center}.count{font-size:9px;background:#f1f5fb;border-radius:8px;padding:5px 9px;color:#7c92b2}.inline-empty{text-align:center;background:#f9fbfe;border-radius:19px;padding:24px 15px;color:#a9b8cc;display:flex;align-items:center;justify-content:center;gap:8px;font-size:10px}.history-row{display:flex;align-items:center;gap:11px;min-height:78px;background:white;border-bottom:1px solid #f0f3f7;width:100%;text-align:left;padding:13px 0}.history-row>span:nth-child(2){flex:1;min-width:0}.history-row strong{display:block;font-size:12px}.history-row small{display:block;font-size:9px;color:#9aa8bc;margin-top:6px}.history-row b{font-family:var(--head);font-size:13px;text-align:right;letter-spacing:-.4px}.history-row b small{font-family:var(--body);font-size:8px}.history-row>svg{color:#99aabe}.amount-options{display:flex;gap:8px;margin:20px 0 25px}.amount-options button{flex:1;min-width:0;font-family:var(--head);font-size:14px;font-weight:600;background:#f2f6fc;border-radius:12px;padding:15px 5px;border:1px solid #e7edf7;color:#6f87a8}.amount-options button.selected{background:#eaf2ff;border:1px solid var(--blue);color:var(--blue)}.amount-input{display:flex;align-items:center;border-radius:15px;background:#f4f7fd;border:1px solid #e4edf9;padding:17px;margin-bottom:20px}.amount-input input{border:0;background:none;min-width:0;width:100%;font-family:var(--head);font-size:30px;color:#24486f;outline:0}.amount-input span{font-size:13px;color:#829bbd}.demo-payment-card{display:flex;align-items:center;gap:9px;font-size:12px;color:#738cad;padding:16px 12px;border:1px solid #edf1f8;border-radius:12px;margin-bottom:22px}.demo-payment-card span{flex:1}.demo-payment-card>svg:last-child{color:#22a479}
.profile-card{text-align:center;background:linear-gradient(#f7faff,#fff);padding:22px 18px 25px;border-radius:23px;border:1px solid #f0f4fa}.avatar{background:#edf4ff;border:3px solid white;box-shadow:0 3px 15px #0057ff12;color:var(--blue);font-family:var(--head);width:74px;height:74px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:27px;margin:0 auto 13px}.profile-card h2{font-size:22px}.profile-card p{font-size:11px;color:#9aaabd;margin:6px 0 13px}.profile-edit{display:inline-flex;align-items:center;gap:5px;background:none;color:var(--blue);font-size:11px;font-weight:700}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:23px 0 29px;text-align:center}.profile-stats>div+div{border-left:1px solid #edf1f7}.profile-stats strong{font-family:var(--head);display:block;font-weight:600;font-size:21px;letter-spacing:-.7px}.profile-stats strong span{font-family:var(--body);font-size:10px;color:#a1afc4;letter-spacing:0}.profile-stats small{display:block;font-size:9px;color:#98a8bf;margin-top:5px}.membership-card{display:flex;align-items:center;text-align:left;gap:15px;background:#ecf3ff;padding:20px 15px;width:100%;border-radius:19px;margin-bottom:23px}.membership-card>span:nth-child(2){flex:1}.membership-card strong{font-size:12px;display:block}.membership-card small{display:block;font-size:9px;color:#8499b7;margin-top:4px}.membership-card>svg{color:#6e8aad}.menu-group{border:1px solid #eef2f7;border-radius:20px;overflow:hidden;margin:16px 0}.menu-row{display:flex;align-items:center;gap:11px;width:100%;background:white;text-align:left;min-height:57px;padding:12px 16px;font-weight:600;font-size:12px}.menu-row+.menu-row{border-top:1px solid #f1f4f8}.menu-row>span:not(.menu-icon):not(.toggle):not(.tiny-demo){flex:1}.menu-row>svg:last-child{color:#9faec2}.menu-row small{font-size:10px;color:#879bb8}.menu-icon{display:flex;align-items:center;justify-content:center;color:#7e92af;width:27px}.tiny-demo{font-size:7px;border-radius:4px;background:#f2f5fa;padding:4px;letter-spacing:.5px;color:#9ba7b8}.logout{border-radius:16px;background:#fff8f8;color:#d2767f;font-size:11px}.reset-btn{background:none;display:flex;gap:6px;align-items:center;justify-content:center;width:100%;font-size:9px;color:#9dabc0;margin:19px 0 27px}.app-version{text-align:center;max-width:285px;margin:25px auto}.app-version>.wordmark{font-size:30px;letter-spacing:-2px;color:#9cabbd}.app-version p{font-size:8px;color:#a0aec1;letter-spacing:1px;margin:10px 0}.app-version>small{font-size:8px;color:#b0bacb;line-height:1.6}.plans{display:flex;flex-direction:column;gap:16px}.plan-card{border-radius:22px;background:#fbfcff;border:1px solid #eaf0f9;padding:21px}.plan-card.featured{background:#edf4ff;border-color:#b8d2ff}.plan-card.current{box-shadow:inset 0 0 0 1px #cfdeff}.plan-name{display:flex;align-items:center;justify-content:space-between;color:var(--blue)}.plan-name h2{font-size:22px;color:#21436e}.plan-price{font-family:var(--head);font-size:32px;letter-spacing:-1px;margin-top:14px;font-weight:700}.plan-price small{font-family:var(--body);font-size:10px;color:#8199ba;letter-spacing:0;margin-left:7px}.plan-card>p{font-size:12px;line-height:1.6;color:#7a91ad;margin-top:8px}.plan-card .benefit{margin:17px 0 22px;font-size:10px}.language-option{display:flex;align-items:center;width:100%;gap:13px;text-align:left;background:#f7f9fd;border:1px solid #edf1f8;padding:16px;border-radius:16px;margin:11px 0}.language-option>span{font-size:11px;color:#7e94b0;background:#eaf0f8;border-radius:8px;padding:8px;font-weight:800}.language-option strong{font-size:13px;flex:1}.language-option.selected{border-color:#b9d2ff;background:#f0f6ff;color:var(--blue)}.language-option.selected>span{color:var(--blue);background:#e0ebff}.language-option+.secondary{font-size:10px}.notification-toggle{background:#f5f8ff;border:1px solid #e9effa;border-radius:15px;margin-bottom:22px}.toggle{position:relative;display:block;width:39px;height:22px;border-radius:50px;background:#d9e1ed}.toggle:after{content:'';position:absolute;width:16px;height:16px;border-radius:50%;background:white;left:3px;top:3px;box-shadow:0 2px 5px #0001;transition:left .2s}.toggle.on{background:var(--blue)}.toggle.on:after{left:20px}.notice-item{display:flex;align-items:start;gap:12px;padding:19px 0;border-bottom:1px solid #edf2f8}.notice-item h3{font-size:13px}.notice-item p{font-size:11px;color:#8b9db7;line-height:1.8;margin-top:7px}.loyalty-card{background:linear-gradient(135deg,#172842,#354e73);border-radius:24px;padding:26px;color:white;overflow:hidden;position:relative;box-shadow:0 12px 25px #1728421c}.loyalty-card>.wordmark{font-size:31px;letter-spacing:-2px;color:white;line-height:1.1}.loyalty-card>.wordmark span{color:#00e5ff}.loyalty-card>span{font-size:8px;letter-spacing:2px;color:#9eafc6;display:block;margin-top:9px}.loyalty-number{font-family:var(--head);font-size:37px;letter-spacing:-1px;margin:23px 0 5px}.loyalty-number small{font-size:11px;color:#9fb1cc;letter-spacing:0;margin-left:7px}.loyalty-card p{font-size:12px}.loyalty-barcode{height:35px;width:174px;background:repeating-linear-gradient(90deg,#fff 0 2px,transparent 2px 5px,#fff 5px 6px,transparent 6px 8px);margin:23px 0 7px;opacity:.55}.loyalty-card>small{font-size:8px;letter-spacing:1px;color:#98adc9}.referral-art{position:relative;margin:10px 0 26px;height:142px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,#ecf3ff 10%,transparent 65%);color:var(--blue)}.referral-art>svg{filter:drop-shadow(0 10px 15px #0057ff30);transform:rotate(-12deg)}.referral-art>i{position:absolute;font-style:normal;font-family:var(--head);font-weight:700;font-size:14px;color:#0068cf;background:#e7faff;border:1px solid #a6e2ef;border-radius:14px;padding:12px;left:55px;top:70px;transform:rotate(-18deg);box-shadow:0 5px 13px #0057ff12}.referral-art>i:last-child{left:auto;right:58px;top:13px;transform:rotate(14deg)}.referral-code{position:relative;padding:18px;border:1px dashed #bad2f6;border-radius:16px;background:#f8fbff;margin:23px 0}.referral-code small{display:block;color:#8b9db6;font-size:10px}.referral-code strong{font-family:var(--head);font-size:20px;color:#2b4f7d;letter-spacing:1px;display:block;margin-top:7px}.referral-code button{position:absolute;right:17px;top:30px;color:var(--blue);background:none;padding:5px}.agent-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:23px}.ticket-card{border:1px solid #eaf0f7;background:#f9fbff;border-radius:17px;padding:17px;margin:11px 0}.ticket-card>div{display:flex;align-items:center;justify-content:space-between;gap:5px}.ticket-card strong{font-size:12px}.ticket-status{font-size:8px;padding:5px 7px;border-radius:30px;background:#fff3e9;color:#b9894e}.ticket-status.resolved{background:#e9f7ef;color:#469579}.ticket-card p{font-size:12px;line-height:1.7;color:#7c90ad;margin:12px 0;overflow-wrap:anywhere}.ticket-card>small{font-size:8px;color:#a5b1c2}.ticket-card button{display:block;font-size:9px;margin-top:8px}.fleet-brand{padding:19px;background:#eef5ff;border-radius:18px;display:flex;gap:14px;align-items:center;color:#3266a6}.fleet-brand>div{flex:1}.fleet-brand strong{display:block;font-size:14px}.fleet-brand small{display:block;font-size:8px;letter-spacing:1px;margin-top:5px}.fleet-brand>span{display:flex;align-items:center;gap:5px}.fleet-person{padding:17px;border:1px solid #edf1f8;border-radius:19px;margin:13px 0}.avatar.small{width:34px;height:34px;font-size:13px;margin:0}.fleet-person-top{display:flex;align-items:center;gap:8px;font-size:10px}.fleet-person-top strong{flex:1}.fleet-person-top>span{color:#8498b6;font-size:9px}.limit-progress{height:5px;background:#ecf2fc;border-radius:5px;overflow:hidden;margin:16px 0}.limit-progress i{height:100%;display:block;background:#3878ff;border-radius:5px;transition:width .2s}.fleet-person label{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#91a4bd;margin-bottom:0}.fleet-person input{width:77px;border:1px solid #dfe9f9;border-radius:8px;background:#f8faff;padding:8px;color:#58779f;font-size:13px}.operator-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px}.operator-metrics .metric-card>svg{color:#4985d5}.operator-metrics .metric-card>span{font-size:9px;margin-top:4px}.operator-metrics .metric-card strong{font-size:24px;margin-top:8px}.escalation-control{display:flex;gap:7px;margin:15px 0}.escalation-control button{display:flex;align-items:center;justify-content:center;flex:1;background:#f4f7fd;color:#8ca0bf;border:1px solid #e9eff9;border-radius:12px;padding:12px;font-size:12px;font-weight:700}.escalation-control button.selected{color:var(--blue);background:#ecf3ff;border-color:#b9d4ff}.escalation-result{display:flex;align-items:center;gap:10px;background:#f8faff;border-radius:17px;padding:15px}.escalation-result strong{font-size:11px;display:block}.escalation-result small{font-size:9px;display:block;color:#a0afc4;margin-top:6px}.operator-stations{margin-top:23px;border:1px solid #eaf0f8;border-radius:19px;overflow:hidden}.operator-stations>div{display:flex;align-items:center;justify-content:space-between;gap:5px;padding:15px}.operator-stations>div+div{border-top:1px solid #f0f3f9}.operator-stations strong{font-size:12px;display:block}.operator-stations small{font-size:8px;display:block;margin-top:4px;color:#9babc3}.operator-stations .status{font-size:8px}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.55;box-shadow:0 0 0 5px #0cc68415}}@keyframes screen-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes sheet-in{from{transform:translateY(100%);opacity:.5}to{transform:translateY(0);opacity:1}}@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes toast-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes scan{50%{transform:translateY(137px)}}@keyframes wave{50%{height:24px;background:#367fff}}
@media(max-width:700px){body{background:#fff}.desktop-brand,.desktop-meta{display:none}.app-shell{margin:0 auto;border-radius:0;min-height:0;height:100dvh;max-height:none;box-shadow:none}.app-header{padding-top:max(18px,env(safe-area-inset-top));height:calc(79px + env(safe-area-inset-top));padding-bottom:15px}.bottom-nav{height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding-bottom:calc(15px + env(safe-area-inset-bottom))}.active-pill{bottom:calc(var(--nav-height) + env(safe-area-inset-bottom) + 10px)}.toast{bottom:calc(var(--nav-height) + env(safe-area-inset-bottom) + 15px)}.modal-body{padding-bottom:calc(30px + env(safe-area-inset-bottom))}}
@media(max-width:370px){.app-header{padding-left:16px;padding-right:16px}.screen{padding-left:16px;padding-right:16px}.location-button strong{font-size:11px}.header-actions{gap:6px}.demo-badge{font-size:7px;padding:4px}.home-title{font-size:25px}.home-subtitle{font-size:11px}.chip{font-size:10px;padding:9px 11px}.hero-banner{height:169px}.hero-copy h2{font-size:20px}.hero-copy{left:17px;top:19px}.quick-scan{gap:8px;padding:10px}.quick-scan strong{font-size:11px}.quick-scan small{max-width:121px;font-size:7px}.quick-scan>svg{width:16px}.quick-wallet{min-width:76px;gap:5px;padding:9px}.quick-wallet>svg{width:18px}.quick-wallet strong{font-size:14px}.section-heading h2{font-size:15px}.station-image{height:125px}.station-image .charge-art{transform:translateY(-15px)}.station-content{padding:13px 12px}.station-name h3{font-size:14px}.station-price{font-size:14px}.station-meta{gap:8px;font-size:9px}.plus-banner h3{font-size:14px}.plus-orb{right:13px;width:47px;height:65px}.plus-orb svg{width:33px}.energy-ring{width:255px;height:255px;margin-top:15px}.metric-card{padding:14px 10px}.metric-card>span{font-size:9px}.metric-card strong{font-size:19px}.session-screen .page-heading h1{font-size:24px}.modal-body{padding-left:20px;padding-right:20px}.detail-art{margin-left:-20px;margin-right:-20px}.map-bottom{left:12px;right:12px;padding-left:14px;padding-right:14px}.map-bottom .station-specs strong{font-size:11px}.map-bottom .station-specs small{font-size:6px}.map-bottom .station-specs>div{gap:3px}.map-bottom h2{font-size:20px}.primary,.secondary,.danger{font-size:12px}.home-subtitle{margin-bottom:18px}.bonus-card{gap:8px}.bonus-card strong{font-size:11px}.bonus-card small{font-size:7px}.bonus-card b{font-size:15px}.profile-stats strong{font-size:18px}.menu-row{font-size:11px;padding:12px}.map-legend{font-size:7px;gap:6px}.page-heading h1{font-size:24px}}
@media(max-height:730px){.app-shell{margin-top:10px;margin-bottom:10px;height:calc(100dvh - 20px);min-height:0}.map-bottom{bottom:17px}.map-bottom .station-specs{padding:11px 0}.map-bottom .micro-note{display:none}.map-bottom h2{font-size:20px}.map-tools{gap:6px}.map-top .search-wrap{height:45px}.map-top .filter-scroll{padding-bottom:10px}.map-bottom .primary{min-height:45px}.map-bottom>.section-heading{margin:5px 0}.map-legend{display:none}}
@media(max-width:700px) and (max-height:730px){.app-shell{margin:0;height:100dvh}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media(min-width:701px) and (max-width:1000px){.desktop-brand{left:3vw}.desktop-brand>.wordmark{font-size:33px;letter-spacing:-2px}.desktop-brand>span{font-size:7px;letter-spacing:1px}.desktop-meta{display:none}}

@media(max-height:520px){.map-page{overflow-y:auto}.map-screen{min-height:600px}}
/* Readable secondary text and practical touch labels. */
.home-subtitle,.station-content>p,.station-meta,.muted,.page-heading p,.modal-text,.micro-note,.footnote,.history-row small,.bank-card-row small,.profile-card p,.menu-row small,.session-info>span,.idle-note,.metric-card>span,.bonus-card small,.plan-card>p,.plus-banner p{color:#65748a}
.home-subtitle{font-size:13px}.station-content>p{font-size:11px}.station-meta{font-size:11px}.station-price small{font-size:9px;color:#65748a}.bottom-nav button{font-size:10px;color:#718096}.bottom-nav button.selected{color:#0057ff}.section-heading button{font-size:11px}.footnote,.micro-note{font-size:10px}.metric-card>span{font-size:11px}.bank-card-row small,.history-row small,.profile-card p{font-size:10px}.bonus-card small{font-size:9px}
@media(max-width:370px){.home-subtitle{font-size:12px}.station-meta{font-size:10px}.metric-card>span{font-size:10px}.section-heading button{font-size:10px}.bonus-card small{font-size:8px}}
/* App launch and account entry. */
.launch-shell{background:white}.auth-screen{overflow-y:auto;scrollbar-width:none;flex:1;padding:26px 26px 32px}.auth-top{display:flex;align-items:center;justify-content:space-between}.auth-top .wordmark{font-size:37px;letter-spacing:-2.5px}.auth-top .icon-btn{background:#f2f6ff;color:#497ebd}.auth-visual{position:relative;height:164px;display:flex;align-items:center;justify-content:center;margin:12px 0 18px;isolation:isolate}.auth-visual:before{content:'';position:absolute;height:150px;width:220px;background:radial-gradient(ellipse,#e3edff 0%,#f4f8ff 55%,transparent 72%);z-index:-1}.auth-bolt{display:flex;align-items:center;justify-content:center;width:91px;height:100px;background:#0057ff;color:white;border-radius:28px;box-shadow:0 17px 32px #0057ff26;transform:rotate(-12deg)}.auth-mini-pin{position:absolute;left:calc(50% - 112px);top:38px;background:#fff;color:#16a171;border:1px solid #edf1f8;width:42px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;box-shadow:0 9px 24px #19396210;transform:rotate(-7deg)}.auth-mini-card{position:absolute;right:calc(50% - 138px);bottom:22px;background:#ffffffef;border:1px solid white;border-radius:13px;padding:12px 15px;display:flex;align-items:center;gap:8px;font-size:11px;color:#4a70a2;font-weight:700;box-shadow:0 10px 20px #15396212;transform:rotate(8deg)}.auth-heading>span{font-size:11px;color:#0057ff;font-weight:800}.auth-heading h1{font-size:29px;max-width:300px;letter-spacing:-1.2px;margin:9px 0}.auth-heading>p{font-size:13px;color:#65748a;line-height:1.7}.account-form{margin-top:22px}.account-form label{font-size:13px;color:#344c6b}.account-form .text-input,.account-form .phone-input,.password-input{background:#f7f9fc;border-color:#e5edf9}.account-form>.primary{margin-top:23px}.password-input{display:flex;align-items:center;border:1px solid #e5edf9;border-radius:13px}.password-input input{flex:1;min-width:0;background:none;border:0;padding:15px;color:#365173;outline:0}.password-input button{background:none;display:flex;align-items:center;justify-content:center;color:#8195b1;padding:15px}.auth-switch{display:block;width:100%;text-align:center;background:none;color:#0057ff;font-size:12px;font-weight:700;margin:22px 0 15px;padding:8px}.auth-footer{font-size:11px;color:#6c7e97;line-height:1.7;text-align:center;display:flex;gap:7px;justify-content:center;align-items:start;margin-top:24px}.auth-footer svg{flex-shrink:0;margin-top:3px}.demo-entry-buttons{display:flex;gap:8px;margin-top:11px}.demo-entry-buttons button{font-size:11px;padding:11px 8px}.auth-screen .text-action{display:block}.micro-note.left{text-align:left}.splash-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;padding-bottom:38px}.splash-logo{width:93px;height:93px;border-radius:27px;background:#0057ff;color:white;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 34px #0057ff25;animation:logo-appear .7s cubic-bezier(.22,1,.36,1) both}.splash-wordmark{font-family:var(--head);font-weight:800;font-size:54px;letter-spacing:-3.7px;margin-top:22px;animation:logo-appear .75s .12s cubic-bezier(.22,1,.36,1) both}.splash-wordmark span{color:#0057ff}.splash-center>p{font-size:9px;letter-spacing:2.3px;color:#7f96b4;margin-top:9px}.splash-progress{width:91px;height:3px;overflow:hidden;background:#eaf1fe;border-radius:5px;margin-top:38px}.splash-progress i{display:block;width:45%;height:100%;background:#0057ff;border-radius:5px;animation:logo-progress 1.05s ease-in-out infinite}.splash-caption{position:absolute;bottom:48px;left:0;right:0;text-align:center;color:#7488a5;font-size:11px}.offline-banner{position:fixed;top:0;left:50%;transform:translateX(-50%);max-width:460px;width:100%;padding:7px 12px;text-align:center;background:#e9eff9;color:#456488;font-size:10px;z-index:1600}.admin-entry{background:#eaf2ff}.admin-entry>svg{color:#0057ff}
/* Admin tools share the mobile app's spacing and type hierarchy. */
.admin-title{display:flex;gap:12px;align-items:center;margin:7px 0 23px}.admin-title>div{flex:1}.admin-title>div>span{font-size:10px;font-weight:700;color:#6681a6}.admin-title h1{font-size:25px;margin-top:3px}.admin-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -25px 24px;padding:0 25px 9px}.admin-tabs button{white-space:nowrap;border:1px solid #e7edf7;border-radius:40px;background:#fff;color:#7188a9;font-size:11px;font-weight:700;min-height:40px;padding:10px 14px}.admin-tabs button.selected{background:#0057ff;color:white;border-color:#0057ff}.admin-shortcuts{margin:23px 0;border:1px solid #edf2f8;border-radius:18px;overflow:hidden}.admin-shortcuts button{display:flex;align-items:center;gap:10px;text-align:left;width:100%;padding:18px 16px;background:white;font-size:13px;font-weight:600;color:#47678f}.admin-shortcuts button+button{border-top:1px solid #edf2f8}.admin-shortcuts button svg:last-child{margin-left:auto}.admin-list-top{display:flex;align-items:center;justify-content:space-between;margin:10px 0 17px}.admin-list-top h2 span{font-size:11px;color:#8aa0be;margin-left:5px}.admin-form .text-input{font-size:15px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}.form-grid label{font-size:11px;line-height:1.5;min-width:0}.form-grid .text-input{margin-top:7px;min-width:0;padding:12px;font-size:15px}.form-grid input[type=date]{font-size:12px;padding:13px 9px}.admin-form .primary{margin-top:20px}.admin-station-row{border:1px solid #e9eff8;border-radius:19px;padding:16px;margin:13px 0}.admin-station-info{display:flex;align-items:center;gap:11px}.admin-station-info>div{flex:1;min-width:0}.admin-station-info strong{font-size:13px;display:block}.admin-station-info small{font-size:10px;color:#7185a4;display:block;margin-top:5px}.admin-station-info .icon-btn{width:37px;height:37px;background:#f3f7fc}.admin-row-actions{display:flex;gap:8px;align-items:center;margin-top:16px}.admin-row-actions select{background:#f3f7fd;border:1px solid #e1eaf7;color:#557297;border-radius:9px;padding:10px 7px;font-size:11px;flex:1;min-width:0}.admin-row-actions button{display:flex;gap:4px;align-items:center;justify-content:center;padding:10px 7px;border:1px solid #edf1f8;border-radius:9px;background:#fff;color:#507caf;font-size:10px;min-height:39px}.admin-row-actions .delete-action{color:#cb667b}.admin-accounts{margin-top:15px}.admin-account{display:flex;align-items:center;gap:10px;padding:16px 0;border-bottom:1px solid #edf2f8}.admin-account>div:nth-child(2){flex:1;min-width:0}.admin-account strong{font-size:12px;display:block}.admin-account small{display:block;font-size:9px;color:#7185a4;overflow-wrap:anywhere;margin-top:4px}.admin-account>.secondary,.admin-account>.danger{width:auto;min-height:35px;font-size:10px;padding:8px;margin:0}.campaign-row{display:flex;gap:10px;align-items:center;border:1px solid #e7eef8;border-radius:15px;padding:14px;margin:13px 0}.campaign-row>div{flex:1}.campaign-row strong{display:block;font-family:var(--head);font-size:14px;color:#245b9c}.campaign-row small{display:block;font-size:10px;color:#7e94b1;margin-top:5px}.campaign-list{margin:22px 0 29px}.campaign-row .icon-btn{width:32px;height:32px;border-radius:9px;color:#a06d7c}.audit-row{display:flex;align-items:start;gap:11px;padding:16px 0;border-bottom:1px solid #eaf0f8}.audit-dot{display:block;flex-shrink:0;width:8px;height:8px;border-radius:50%;background:#477fcb;margin-top:5px}.audit-row strong{font-size:12px;display:block}.audit-row p{font-size:11px;color:#6f85a5;line-height:1.7;margin-top:5px;overflow-wrap:anywhere}.audit-row small{font-size:9px;display:block;color:#7e96b7;margin-top:6px}.incident-card{border:1px solid #e9eff8;border-radius:17px;background:#f8fbff;padding:16px;margin:14px 0}.incident-card>div{display:flex;justify-content:space-between;align-items:center;gap:5px}.incident-card strong{font-size:13px}.incident-card p{font-size:11px;line-height:1.8;color:#687e9f;margin:11px 0}.incident-card small{font-size:9px;color:#7890b3}.incident-card>.text-action{display:block;font-size:11px;margin-top:5px}.qr-admin>h2{margin:17px 0 9px}.qr-admin>p{font-size:13px;color:#6984a9}.qr-admin>img{display:block;width:100%;max-width:285px;margin:22px auto 15px;aspect-ratio:1}.qr-admin>strong{font-family:var(--head);display:block;text-align:center;font-size:24px;color:#315e9b;letter-spacing:1px;margin:15px 0 27px}.qr-upload{position:relative;display:block;width:100%;background:#eff5ff;color:#417cbd;padding:13px;border:1px dashed #cadcf6;border-radius:13px;text-align:center;font-size:12px;overflow:hidden;margin:16px 0}.qr-upload input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.scanner-limits{padding:17px;background:#f9fbff;border:1px solid #edf2fa;border-radius:17px;margin:18px 0}.scanner-limits h3{font-size:14px}.scanner-limits .form-grid label{font-size:10px}.scanner-limits .micro-note{font-size:10px}.planner-fields label{font-size:13px;color:#52729b}.planner-fields .text-input{margin-top:7px}.planner-result{padding:25px 22px;border-radius:21px;background:#edf4ff;border:1px solid #dce9ff;margin:24px 0;text-align:center;color:#0057ff}.planner-result>span{font-size:11px;color:#6083b2;display:block}.planner-result strong{display:block;font-family:var(--head);font-size:41px;letter-spacing:-1px;margin:13px 0}.planner-result strong small{font-family:var(--body);font-size:14px;color:#5f8abd;letter-spacing:0}.planner-result>div{display:flex;justify-content:center;gap:25px;font-size:13px}.bonus-button{width:100%;border:1px solid transparent;text-align:left}.bonus-button:hover{border-color:#cadeff}.promo-shortcut{display:flex;align-items:center;gap:8px;width:100%;background:#f8faff;color:#5f7eac;border:1px solid #edf2fa;border-radius:13px;padding:14px;font-size:12px;font-weight:600}.promo-shortcut svg:last-child{margin-left:auto}.notice-item.read{opacity:.65}.notice-item.unread{border-left:3px solid #0057ff;padding-left:11px}.fleet-used{display:flex;justify-content:space-between;align-items:center;color:#7188a9;font-size:12px}.fleet-used button{display:flex;gap:5px;align-items:center;font-size:11px;color:#c86978}.primary,.secondary,.danger{font-size:14px;min-height:50px}.admin-panel .primary,.admin-panel .secondary{font-size:13px}.account-form .primary{min-height:53px}.modal-top{height:55px}.modal-top .icon-btn{width:40px;height:40px;top:5px}.favorite-btn{width:40px;height:40px;right:9px;top:9px}.icon-btn{min-width:39px;min-height:39px}.text-input::placeholder,.search-wrap input::placeholder{color:#718096}.hold-stop{min-height:54px}.admin-panel .operator-metrics .metric-card>span{font-size:10px}.wallet-screen .search-wrap{margin:5px 0 12px}.account-form label input{margin-top:6px}
@keyframes logo-appear{from{opacity:0;transform:translateY(9px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes logo-progress{from{transform:translateX(-110%)}to{transform:translateX(320%)}}
@media(max-width:370px){.auth-screen{padding:22px 20px 26px}.auth-visual{height:140px;margin:12px 0}.auth-heading h1{font-size:26px}.demo-entry-buttons{flex-direction:column}.demo-entry-buttons button{font-size:12px}.admin-tabs{margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px}.admin-title h1{font-size:23px}.form-grid{gap:9px}.admin-row-actions{gap:5px}.admin-row-actions button{font-size:9px}.admin-account>.secondary,.admin-account>.danger{font-size:9px}.primary,.secondary,.danger{font-size:13px}}
@media(max-height:650px){.auth-visual{height:112px}.auth-bolt{width:68px;height:78px;border-radius:22px}.auth-bolt svg{width:42px}.auth-heading h1{font-size:25px}.auth-screen{padding-top:20px}}
@media(prefers-reduced-motion:reduce){.splash-logo,.splash-wordmark,.splash-progress i{animation:none}}

.backoffice-content{padding-bottom:35px}.partner-manager{margin:18px 0 30px;padding-bottom:25px;border-bottom:1px solid #e7eef8}.partner-manager h3{font-size:14px;margin:20px 0 12px}.partner-manager>p{font-size:13px;line-height:1.7}.partner-station-options{max-height:250px;overflow:auto;background:#f7faff;border:1px solid #e6edf8;border-radius:15px;padding:8px 14px}.partner-station-options label{display:flex;align-items:center;gap:12px;margin:0;padding:9px 0;font-size:13px}.partner-station-options input{width:19px;height:19px;accent-color:#0057ff;flex-shrink:0}.partner-station-options small{display:block;font-size:10px;margin-top:4px;color:#657b99}.partner-account-row{display:flex;align-items:center;gap:12px;margin-top:14px;padding:15px;border:1px solid #e7edf7;border-radius:15px}.partner-account-row>div{flex:1;min-width:0}.partner-account-row strong,.partner-account-row small{display:block;overflow-wrap:anywhere}.partner-account-row small{color:#65809f;margin-top:5px}.partner-account-row .secondary,.partner-panel .admin-station-info>.secondary{width:auto;font-size:11px;padding:9px}.partner-panel h2{margin:24px 0 14px}.partner-panel .metric-card strong{font-size:22px;overflow-wrap:anywhere}.partner-panel .admin-title h1{font-size:23px;overflow-wrap:anywhere}button:disabled{cursor:not-allowed;opacity:.55}

.backoffice-content{min-height:0}.backoffice-content.screen{animation:none}
