:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--card:#ffffffe0;--solid:#fff;--well:#0f172a09;--hover:#0f172a09;--line:#0f172a14;--line-2:#0f172a24;--ink:#0f172a;--ink-2:#334155;--muted:#64748b;--faint:#94a3b8;--ok:#10b981;--ok-soft:#d1fae5;--ok-ink:#047857;--warn:#f59e0b;--warn-soft:#fef3c7;--warn-ink:#b45309;--danger:#ef4444;--danger-soft:#fee2e2;--danger-ink:#b91c1c;--danger-tint:#fef2f2;--off:#cbd5e1;--st-charging:#2563eb;--st-charging-soft:#dbeafe;--st-charging-line:#2563eb40;--st-charging-ink:#1d4ed8;--st-waiting:#93c5fd;--st-waiting-soft:#eff6ff;--st-available:#10b981;--st-finished:#94a3b8;--st-fault:#ef4444;--st-offline:#64748b;--peak:#f59e0b;--offpeak:#10b981;--c1:var(--accent);--c2:#10b981;--c3:#f59e0b;--c4:#8b5cf6;--c5:#0ea5e9;--c6:#94a3b8;--radius:14px;--radius-sm:10px;--radius-xs:8px;--shadow:0 1px 2px #0f172a0a, 0 8px 28px #0f172a14;--shadow-sm:0 2px 8px #0f172a1a;--font:"Inter", "IBM Plex Sans Thai", system-ui, -apple-system, "Segoe UI", sans-serif;--accent:#2563eb;--accent-soft:#dbeafe;--accent-line:#2563eb59;--on-accent:#fff}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html,body{background:var(--bg);margin:0}body{color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,p{margin:0}h1,h2{text-wrap:balance}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ic{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.tnum{font-variant-numeric:tabular-nums}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.glass{background:var(--card);-webkit-backdrop-filter:blur(14px)saturate(1.4);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--radius)}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);align-items:center;gap:8px;font-size:11px;font-weight:600;display:flex}.eyebrow:before{content:"";background:var(--accent);border-radius:2px;width:18px;height:2px}.title{letter-spacing:-.02em;font-size:21px;font-weight:700;line-height:1.25}.section-label{letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-size:11px;font-weight:600}.note{color:var(--muted);font-size:12px;line-height:1.55}.note.danger{color:var(--danger-ink)}.muted{color:var(--muted);font-size:13px}.badge{color:var(--muted);background:var(--well);border:1px solid var(--line);white-space:nowrap;border-radius:99px;align-items:center;gap:6px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.badge.accent{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-line)}.badge.danger{color:var(--danger-ink);background:var(--danger-soft);border-color:#ef44444d}.live-dot{background:var(--ok);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #10b9812e}.btn{border:1px solid var(--line-2);background:var(--solid);border-radius:var(--radius-sm);cursor:pointer;min-height:44px;color:var(--ink-2);justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:border-color .15s,color .15s;display:inline-flex}.btn:hover{border-color:var(--accent-line);color:var(--ink)}.btn-primary{background:var(--accent);color:var(--on-accent);border:0;font-weight:600}.btn-primary:hover{color:var(--on-accent);filter:brightness(1.06)}.btn-danger{color:var(--danger-ink);border-color:#ef444459}.btn-danger.fill{background:var(--danger);border-color:var(--danger);color:#fff}.btn:disabled{opacity:.55;cursor:not-allowed}.link{min-height:44px;color:var(--accent);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0 2px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.link:disabled{color:var(--muted);cursor:default}.field{width:100%;font:inherit;color:var(--ink);background:var(--solid);border:1px solid var(--line-2);border-radius:var(--radius-sm);min-height:48px;padding:12px 14px;font-size:16px}.field:focus{border-color:var(--accent)}.field[aria-invalid=true]{border-color:var(--danger)}.field:disabled{background:var(--well)}.kpis{grid-template-columns:1fr 1fr;gap:8px;display:grid}.kpis.three{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi{background:var(--well);border-radius:var(--radius-sm);min-width:0;padding:9px 11px}.kpi b{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:20px;font-weight:600;line-height:1.2;display:block}.kpi b small{color:var(--muted);margin-left:2px;font-size:12px;font-weight:500}.kpi span{color:var(--muted);font-size:11.5px;display:block}.kpi.danger b{color:var(--danger-ink)}.bigval{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:40px;font-weight:600;line-height:1}.bigval small{color:var(--muted);letter-spacing:0;margin-left:3px;font-size:17px;font-weight:500}.st-pill{white-space:nowrap;border-radius:99px;align-items:center;padding:0 9px;font-size:11.5px;font-weight:600;line-height:22px;display:inline-flex}.st-pill.charging{background:var(--st-charging-soft);color:var(--st-charging-ink)}.st-pill.waiting{background:var(--st-waiting-soft);color:var(--st-charging-ink)}.st-pill.available{background:var(--ok-soft);color:var(--ok-ink)}.st-pill.finished,.st-pill.disabled{background:var(--well);color:var(--muted)}.st-pill.fault,.st-pill.offline{background:var(--danger-soft);color:var(--danger-ink)}.dot{background:var(--off);border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.dot.charging{background:var(--st-charging)}.dot.waiting{background:var(--st-waiting)}.dot.available{background:var(--st-available)}.dot.finished{background:var(--st-finished)}.dot.fault{background:var(--st-fault);animation:1.4s ease-out infinite pulse-red}.dot.offline{background:var(--st-offline)}.pulse-dot{background:var(--danger);border-radius:50%;flex:none;width:8px;height:8px;animation:1.4s ease-out infinite pulse-red}@keyframes pulse-red{0%{box-shadow:0 0 #ef44448c}80%,to{box-shadow:0 0 0 7px #ef444400}}.tou-bar{background:#0f172a12;border-radius:99px;gap:2px;height:10px;display:flex;overflow:hidden}.tou-bar i{height:100%;display:block}.tou-bar .pk{background:var(--peak)}.tou-bar .op{background:var(--offpeak)}.tou-legend{color:var(--ink-2);flex-direction:column;gap:3px;font-size:12px;display:flex}.tou-legend span{align-items:center;gap:6px;display:flex}.sw{border-radius:2px;flex:none;width:9px;height:9px;display:inline-block}.sw.pk{background:var(--peak)}.sw.op{background:var(--offpeak)}.toast{background:var(--ink);color:#fff;box-shadow:var(--shadow);border-radius:12px;padding:10px 14px;font-size:13px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.app{--gutter-l:max(16px, env(safe-area-inset-left,0px));--gutter-r:max(16px, env(safe-area-inset-right,0px));flex-direction:column;width:100%;max-width:480px;min-height:100dvh;margin:0 auto;display:flex}.ph-head{z-index:10;min-height:60px;padding:calc(env(safe-area-inset-top,0px) + 8px) var(--gutter-r) 8px var(--gutter-l);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#ffffffeb;align-items:center;gap:10px;display:flex;position:sticky;top:0}.ph-head.sub{justify-content:space-between}.ph-title{text-align:center;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:15px;font-weight:600;overflow:hidden}.ph-spacer{flex:none;width:44px}.logo{object-fit:contain;background:var(--solid);border:1px solid var(--line);border-radius:10px;flex:none;width:36px;height:36px}.mark{background:var(--accent);width:36px;height:36px;color:var(--on-accent);border-radius:10px;flex:none;place-items:center;display:grid}.ph-brand{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.ph-brand b{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;overflow:hidden}.ph-brand small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.ph-icon{background:var(--well);cursor:pointer;width:44px;height:44px;color:var(--ink-2);border:0;border-radius:50%;flex:none;place-items:center;text-decoration:none;display:grid}.ph-icon:disabled{opacity:.55;cursor:default}.ph-body{padding:16px var(--gutter-r) calc(24px + env(safe-area-inset-bottom,0px)) var(--gutter-l);flex-direction:column;flex:1;gap:12px;display:flex}.hello{letter-spacing:-.01em;font-size:20px;font-weight:700}.lede{color:var(--ink-2)}.splash{place-items:center;min-height:100dvh;padding:24px;display:grid}.p-card{border:1px solid var(--line);background:var(--solid);border-radius:16px;flex-direction:column;gap:6px;padding:14px;display:flex;box-shadow:0 1px 2px #0f172a0a}.live-card{background:var(--st-charging-soft);border-color:var(--st-charging-line)}.live{color:var(--st-charging-ink);align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.live i{background:var(--st-charging);border-radius:50%;width:8px;height:8px;animation:1.6s ease-out infinite pulse-blue}@keyframes pulse-blue{0%{box-shadow:0 0 #2563eb80}80%,to{box-shadow:0 0 0 7px #2563eb00}}.session{flex-direction:column;gap:4px;display:flex}.session+.session{border-top:1px solid var(--st-charging-line);margin-top:4px;padding-top:10px}.session-head{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.pc-big{align-items:baseline;gap:6px;display:flex}.pc-big b{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:38px;font-weight:600;line-height:1}.pc-big small{color:var(--muted);font-size:15px}.pc-row{color:var(--ink-2);flex-wrap:wrap;gap:4px 14px;font-size:12.5px;display:flex}.pc-row b{font-variant-numeric:tabular-nums}.vehicle+.vehicle{border-top:1px solid var(--line);margin-top:4px;padding-top:10px}.plate-big{flex-direction:column;font-size:20px;font-weight:700;line-height:1.25;display:flex}.plate-big small{color:var(--muted);font-size:12px;font-weight:500}.car-meta{color:var(--ink-2);flex-direction:column;margin-top:4px;font-size:12.5px;display:flex}.conn{justify-content:space-between;align-items:center;gap:8px;display:flex}.conn h2{overflow-wrap:anywhere;min-width:0;font-size:18px;font-weight:700;line-height:1.3}.tou-now{align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.actions{flex-direction:column;gap:8px;display:flex}.btn-big{border:1px solid var(--line-2);background:var(--solid);cursor:pointer;width:100%;min-height:56px;color:var(--ink);text-align:center;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:10px 12px;font-size:15.5px;font-weight:600;text-decoration:none;display:flex}.btn-big small{color:var(--muted);font-size:12px;font-weight:500}.btn-big.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-big.primary small{color:var(--on-accent);opacity:.85}.btn-big.offpeak{border-color:#10b98173}.btn-big.offpeak small{color:var(--ok-ink)}.btn-big:disabled{opacity:.55;cursor:not-allowed}.auth{flex-direction:column;gap:14px;display:flex}.auth-head,.field-group{flex-direction:column;gap:6px;display:flex}.field-label{color:var(--muted);margin:0 2px;font-size:12px}.field.code{letter-spacing:.5em;text-align:center;font-variant-numeric:tabular-nums;min-height:60px;padding-left:calc(14px + .5em);font-size:28px;font-weight:600}.row-links{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:0 12px;display:flex}.consent-list{color:var(--ink-2);flex-direction:column;gap:8px;margin:0;padding-left:20px;display:flex}
