:root{--blue:#2b6fef;--ink:#17263e;--muted:#718096;--line:#e6ecf5;--bg:#f4f7fc;--green:#16a979;--orange:#f19b36;--red:#dc5366;--sidebar:234px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Tahoma,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;font-size:14px}button,input,select,textarea{font:inherit}button,a,input,select{outline-offset:4px}button{cursor:pointer}a{color:var(--blue);text-decoration:none}button{border:0;border-radius:10px;padding:11px 16px;background:var(--blue);color:white;font-weight:600;transition:.15s}button:hover{filter:brightness(.96)}button:disabled{opacity:.45;cursor:not-allowed}.secondary{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.small{padding:7px 11px;font-size:12px}.danger{background:var(--accent-soft);color:var(--red)}.subtle{background:var(--accent-soft);color:var(--blue)}h1,h2,h3,p{margin-top:0}h1{font-size:28px;letter-spacing:-.7px}h2{font-size:19px}h3{font-size:15px}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:800;color:var(--muted);text-transform:uppercase}.logo{display:flex;align-items:center;gap:10px;font-size:24px;font-weight:800;letter-spacing:2px}.logo img{width:36px;height:36px}.logo span small{display:block;font-size:9px;letter-spacing:2px;color:var(--muted);font-weight:600;margin-top:3px}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:var(--surface);border-right:1px solid var(--line);padding:28px 20px;display:flex;flex-direction:column;z-index:20}.sidebar .logo{margin:0 10px 32px}.business{background:var(--bg);padding:12px;border-radius:12px;margin-bottom:24px}.business select{border:0;background:transparent;width:100%;font-weight:600;padding:0;margin:8px 0 0}.nav{display:grid;gap:7px}.nav button{display:flex;align-items:center;gap:12px;text-align:left;background:transparent;color:var(--muted);font-weight:500;padding:13px}.nav button.active{background:var(--accent-soft);color:var(--blue);font-weight:700}.nav svg{width:20px;height:20px}.sidebar-foot{margin-top:auto;padding-top:28px}.trial{padding:15px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(135deg,var(--accent-soft),var(--surface))}.trial strong{display:block;margin-bottom:6px}.trial p{font-size:12px;line-height:1.6}.main{margin-left:var(--sidebar);min-height:100vh}.topbar{height:76px;background:rgba(255,255,255,.8);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;gap:15px}.breadcrumb{font-size:12px;color:var(--muted)}.user{display:flex;align-items:center;gap:10px}.avatar{width:33px;height:33px;background:var(--accent-soft);border-radius:50%;display:grid;place-items:center;color:var(--blue);font-weight:700}.content{max-width:1480px;margin:auto;padding:30px 34px}.pagehead{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.pagehead h1{margin-bottom:7px}.pagehead p{margin:0;line-height:1.6}.row{display:flex;gap:10px;align-items:center}.wrap{flex-wrap:wrap}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:7px;background:var(--accent-soft);color:var(--muted);font-size:11px;padding:5px 8px;font-weight:600}.badge.green{background:var(--success-soft);color:#11875f}.badge.blue{background:var(--accent-soft);color:var(--blue)}.badge.orange{background:var(--warning-soft);color:#b37814}.badge.red{background:var(--accent-soft);color:#c23d52}.dot{width:6px;height:6px;border-radius:50%;background:currentColor}.notice{border:1px solid var(--line);padding:12px 16px;border-radius:10px;background:var(--accent-soft);color:#456591;line-height:1.7;margin-bottom:20px}.notice.warn{background:var(--warning-soft);border-color:#fae3b2;color:#977023}.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:24px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:20px;position:relative}.stat .stat-icon{width:33px;height:33px;border-radius:9px;background:var(--accent-soft);color:var(--blue);display:grid;place-items:center;margin-bottom:14px}.stat svg{width:18px;height:18px}.stat strong{display:block;font-size:29px;font-weight:700;letter-spacing:-1px;margin:4px 0}.stat small{font-size:11px;color:var(--muted)}.grid{display:grid;gap:20px}.two{grid-template-columns:1.7fr 1fr}.half{grid-template-columns:1fr 1fr}.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:22px}.panelhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:10px}.panelhead h2,.panelhead h3{margin:0}.chart{width:100%;height:180px;overflow:visible}.chart-label{fill:var(--muted);font-size:10px}.section{margin-top:26px}.charger-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.charger{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px}.charger-top{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:20px}.charger-symbol{height:46px;width:40px;border-radius:9px;background:var(--accent-soft);display:grid;place-items:center;color:var(--blue)}.charger-symbol svg{height:27px;width:27px}.charger-heading{flex:1;margin-left:10px}.charger-heading strong{font-size:14px;display:block}.charger-heading small{display:block;color:var(--muted);margin-top:5px;font-size:11px}.meterline{display:flex;justify-content:space-between;align-items:center;padding:10px 0 18px}.gauge{width:113px;height:75px}.gauge text{fill:var(--ink);text-anchor:middle}.connector{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);padding:11px 0}.connector span:nth-child(2){flex:1}.connector .port{background:var(--accent-soft);border-radius:6px;padding:5px;color:var(--muted);font-size:11px}.charger-foot{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding-top:10px}.charger-foot small{color:var(--muted);font-size:10px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap}th{font-size:11px;color:var(--muted);font-weight:600;padding:12px;text-align:left;border-bottom:1px solid var(--line);background:var(--accent-soft)}td{padding:13px 12px;border-bottom:1px solid var(--line);font-size:12px}tbody tr:last-child td{border:0}.rankbar{width:90px;height:5px;border-radius:5px;background:var(--accent-soft);margin-top:5px}.rankbar span{display:block;height:100%;background:var(--blue);border-radius:5px}.empty{text-align:center;padding:35px 20px;color:var(--muted);line-height:1.8}.empty svg{height:40px;width:40px;color:#a8bddc;margin-bottom:12px}.alert-item{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.alert-item:last-child{border:0}.alert-item .alert-icon{background:var(--warning-soft);color:var(--orange);width:32px;height:32px;flex-shrink:0;display:grid;place-items:center;border-radius:9px}.alert-item svg{width:18px;height:18px}.alert-item strong{display:block;margin-bottom:6px;font-size:12px}.alert-item p{font-size:11px;color:var(--muted);line-height:1.6;margin-bottom:0}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field label{font-size:12px;font-weight:600}.field input,.field select,.field textarea,input.filter,select.filter{border:1px solid var(--line);border-radius:9px;padding:11px;background:var(--surface);color:var(--ink);width:100%}.field input:focus,.field select:focus{outline:2px solid #bfd4ff;border-color:var(--blue)}.field small{font-size:10px;color:var(--muted);line-height:1.6}.full{grid-column:1/-1}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:var(--surface)}.login-hero{background:#111f3d;color:white;display:flex;flex-direction:column;justify-content:center;padding:70px;position:relative;overflow:hidden}.login-hero:before{content:'';position:absolute;width:600px;height:600px;background:radial-gradient(circle,#284b9166,transparent 65%);right:-200px;bottom:-150px}.login-hero .logo{margin-bottom:55px}.login-hero .logo small{color:#93b1de}.login-hero h1{font-size:46px;line-height:1.2;max-width:500px;position:relative}.login-hero p{color:#a1b4d2;line-height:1.9;max-width:460px;position:relative}.hero-chargers{display:flex;gap:14px;margin-top:30px}.hero-card{border:1px solid #496490;border-radius:15px;padding:20px;background:#1b2e50;width:145px}.hero-card svg{height:45px;width:45px;color:#74caff;margin-bottom:15px}.hero-card strong{display:block;font-size:12px;margin-bottom:8px}.login-form{display:flex;align-items:center;justify-content:center;padding:45px}.login-form>div{width:100%;max-width:390px}.login-form h1{font-size:29px}.login-form .field{margin:16px 0}.login-form button.primary{width:100%;margin-top:10px}.textbutton{padding:5px;background:transparent;color:var(--blue);font-size:12px}.tabs{display:flex;gap:6px;margin-bottom:22px;background:var(--bg);padding:5px;border-radius:10px}.tabs button{flex:1;background:transparent;color:var(--muted)}.tabs .active{background:var(--surface);color:var(--blue);box-shadow:0 2px 5px #12233c0a}.error{color:var(--red);font-size:12px;line-height:1.6}.loading{padding:80px;text-align:center;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:18px;padding:28px;width:min(650px,calc(100% - 30px));max-height:90vh;box-shadow:0 30px 100px #18294430}dialog::backdrop{background:#17263e66;backdrop-filter:blur(3px)}dialog h2{margin-bottom:20px}dialog pre{background:var(--bg);padding:15px;border-radius:10px;white-space:pre-wrap;word-break:break-all;font-size:12px}#toast{position:fixed;bottom:24px;right:24px;background:var(--ink);color:white;border-radius:12px;padding:13px 20px;box-shadow:0 5px 30px #17263e20;display:none;z-index:100}.themes{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.theme{border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);padding:12px;text-align:left}.theme.selected{border:2px solid var(--blue);padding:11px}.theme-preview{height:76px;background:var(--accent-soft);border-radius:7px;padding:10px;margin-bottom:8px}.theme-preview i{display:block;height:7px;border-radius:4px;background:var(--blue);width:60%;margin:5px 0}.theme-preview i:nth-child(2){background:var(--accent-soft);width:85%}.theme-preview i:nth-child(3){height:25px;background:var(--accent-soft);width:100%}.theme small{color:var(--muted)}.portal-preview{max-width:340px;margin:auto;border:7px solid #1d2c43;border-radius:30px;padding:25px 18px;min-height:370px;background:var(--bg)}.brand-logo{height:46px;max-width:150px;object-fit:contain;margin-bottom:15px}.split-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.summarybox{background:var(--bg);border-radius:10px;padding:15px}.summarybox strong{display:block;font-size:22px;margin:8px 0}.portal-page{max-width:510px;margin:auto;padding:25px 20px 90px}.portal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.portal-banner{border-radius:22px;background:var(--blue);color:white;padding:28px;margin-bottom:25px}.portal-banner h1{font-size:28px;line-height:1.4}.portal-banner p{color:#ffffffcf;line-height:1.7}.portal-page .charger{margin-bottom:15px}.portal-page.template-minimal .portal-banner{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.portal-page.template-minimal .portal-banner p{color:var(--muted)}.portal-page.template-hotel .portal-banner{border-radius:4px}.portal-page.template-fleet .portal-banner{background:#193143}.portal-page.template-workplace .portal-banner{background:#187e72}.portal-page.template-membership .portal-banner{background:linear-gradient(120deg,var(--blue),#643dc7)}.portalnav{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--line);padding:12px;display:flex;justify-content:center;gap:16px}.portalnav button{background:transparent;color:var(--muted);font-size:12px}.mobile-menu{display:none}.inline-check{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}.inline-check input{accent-color:var(--blue)}.footer-note{font-size:10px;text-align:center;color:var(--muted);margin-top:26px;line-height:1.8}
@media(min-width:1700px){.content{padding:40px}}@media(max-width:1180px){.stats{grid-template-columns:repeat(3,1fr)}.charger-grid{grid-template-columns:repeat(2,1fr)}.two{grid-template-columns:1.4fr 1fr}.topbar,.content{padding-left:24px;padding-right:24px}}@media(max-width:880px){:root{--sidebar:190px}.sidebar{padding:25px 12px}.stats{grid-template-columns:repeat(2,1fr)}.two,.half{grid-template-columns:1fr}.charger-grid{grid-template-columns:1fr 1fr}.login-page{grid-template-columns:1fr}.login-hero{display:none}.login-form{min-height:100vh}.pagehead{align-items:flex-start;flex-wrap:wrap}}@media(max-width:640px){:root{--sidebar:0px}.sidebar{display:none;width:234px;box-shadow:15px 0 40px #17263e20}.sidebar.open{display:flex}.mobile-menu{display:block;padding:7px 10px}.topbar{padding:0 16px;height:64px}.content{padding:24px 16px}.breadcrumb{display:none}.pagehead h1{font-size:24px}.charger-grid{grid-template-columns:1fr}.stats{gap:10px}.stat{padding:15px}.stat strong{font-size:26px}.formgrid{grid-template-columns:1fr}.themes{grid-template-columns:1fr 1fr}.row{gap:7px}.split-summary{grid-template-columns:1fr}.panel{padding:17px}.user .name{display:none}}

.grid>*{min-width:0}.charger-heading{min-width:0}.charger-heading strong{overflow-wrap:anywhere}.panel{min-width:0}

/* Compact business workspace. Icons keep their own size instead of stretching charts. */
.ui-icon{width:20px;height:20px;flex-shrink:0}
.panelhead>.ui-icon{color:var(--muted)}
.sidebar{padding:20px 16px}
.sidebar .logo{margin-bottom:22px}
.business{margin-bottom:16px}
.nav{gap:4px}
.nav button{padding:10px 12px}
.sidebar-foot{padding-top:18px}
.trial{padding:12px}
.trial p{margin-bottom:8px}
.main .topbar{height:60px;padding:0 24px}
.main .content{padding:18px 24px}
.main .pagehead{margin-bottom:16px}
.main .pagehead h1{font-size:26px;margin-bottom:4px}
.main .notice{padding:8px 12px;margin-bottom:12px;line-height:1.6}
.dashboard-toolbar{margin-bottom:12px}
.main .stats{gap:12px;margin-bottom:16px}
.main .stat{min-width:0;padding:14px 16px}
.main .stat .stat-icon{position:absolute;right:14px;top:12px;width:28px;height:28px;margin:0}
.main .stat svg{width:16px;height:16px}
.main .stat>.muted{display:block;padding-right:32px;font-size:12px;line-height:1.4}
.main .stat strong{font-size:26px;line-height:1.2;margin:5px 0}
.main .stat small{display:block;line-height:1.4}
.main .grid{gap:16px}
.main .panel{padding:16px 18px}
.main .panelhead{margin-bottom:10px;min-height:24px}
.main .panelhead h2{font-size:17px}
.dashboard-charts .chart{display:block;height:160px;margin-bottom:6px}
.dashboard-charts>.panel>small{display:block;font-size:11px;line-height:1.5}
.main .section{margin-top:18px}
.main .charger-grid{gap:14px}
.main .charger{padding:16px}
.main .charger-top{margin-bottom:12px}
.main .charger-symbol{height:40px;width:36px;flex-shrink:0}
.main .meterline{padding:4px 0 10px;gap:8px}
.main .gauge{width:104px;height:69px;flex-shrink:0}
.main .connector{padding:8px 0}
.main .charger-foot{margin-top:6px;padding-top:6px;gap:8px}
.main .footer-note{margin-top:18px}
@media(max-width:880px){
  .sidebar{padding:18px 12px}
  .main .topbar{padding:0 18px}
  .main .content{padding:16px 18px}
}
@media(max-width:640px){
  .main .topbar{height:56px;padding:0 14px}
  .main .content{padding:16px 14px}
  .main .pagehead h1{font-size:23px}
  .main .stats{gap:10px}
  .main .stat{padding:12px}
  .main .stat .stat-icon{right:10px;top:10px;width:24px;height:24px}
  .main .stat strong{font-size:24px}
  .main .panel{padding:14px}
  .main .charger{padding:14px}
}
/* Charger setup, animated samples and customer entry points. */
.connection-guide code{white-space:normal;overflow-wrap:anywhere;word-break:break-word;font-size:12px}
.connection-guide table{min-width:0;width:100%;table-layout:fixed}
.connection-guide th{width:38%;white-space:normal;vertical-align:top}
.connection-guide td{white-space:normal}
.demo-progress{height:5px;background:var(--accent-soft);border-radius:8px;overflow:hidden;margin:8px 0}
.demo-progress i{display:block;height:100%;background:#2b6fef;transition:width 1s linear}
.demo-charging .charger-symbol{background:var(--accent-soft);color:#2b6fef}
.driver-home{max-width:960px;padding:24px;margin:auto}
.button-link{display:inline-flex;align-items:center;gap:8px;color:var(--blue);font-weight:600;text-decoration:none;padding:10px 0}
.directory-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.directory-card{display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--border,var(--line));padding:20px;border-radius:16px;color:var(--ink,var(--ink));text-decoration:none}
.directory-card span{color:var(--blue);font-size:13px}.directory-card small{color:#718096}
.portal-brand{color:inherit;text-decoration:none;min-width:0;overflow-wrap:anywhere}
.portal-header{gap:12px;flex-wrap:wrap}.portal-banner h1{margin-top:12px}
.portal-page #portal-content{margin-top:22px}.portalnav{gap:4px}.portalnav button{font-size:12px;padding:10px 4px}
#shop-search{max-width:260px} [data-demo-meter]{flex-shrink:0}.demo-charger .meterline h2{margin:8px 0;font-size:22px}
@media(max-width:640px){.driver-home{padding:16px}.connection-guide th{width:40%}.portal-header strong{font-size:17px}.portal-header button{padding:8px 10px}.panelhead{flex-wrap:wrap}.directory-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.demo-progress i{transition:none}}
.field[hidden],#hourly-example[hidden]{display:none!important}
.tariff-help .notice{margin-bottom:6px;line-height:1.65}
.tariff-customer-note{font-size:12px;line-height:1.65}
/* Display the supplied wordmark; crop its white margins only in the layout. */
.logo{position:relative;display:block;overflow:hidden;width:194px;max-width:100%;height:70px;flex-shrink:0}
.logo img{position:absolute;display:block;left:-22%;top:50%;width:145%;height:auto;max-width:none;transform:translateY(-50%)}
.sidebar .logo{margin:0 0 16px}
.login-hero{background:#070f2b}
.login-hero .logo{width:270px;height:98px;max-width:100%;background:transparent;border-radius:0;margin-bottom:42px}
/* Keep stacked modal fields clear of the preceding input's focus outline. */
dialog form>.field+.field{margin-top:16px}
dialog .field label{line-height:1.5}

#business-form .actions{flex-wrap:wrap}

.brand-preview-title{display:flex;align-items:center;min-height:40px;font-size:16px;margin-bottom:8px}.brand-preview-hero{position:relative;height:145px;overflow:hidden;border-radius:15px;margin:14px 0}.brand-preview-hero img{width:100%;height:100%;object-fit:cover}.brand-preview-hero>span{position:absolute;top:10px;left:10px;color:white;border-radius:8px;padding:6px 9px;font-size:10px}.brand-preview-hero>strong{position:absolute;right:10px;bottom:10px;padding:17px 10px;background:var(--surface);border-radius:50%;font-size:12px}.brand-preview-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px}.brand-preview-metrics>div{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.brand-preview-metrics strong{display:block;margin-bottom:5px}.brand-preview-metrics small{font-size:9px;color:var(--muted)}.brand-preview-nav{display:flex;justify-content:space-between;gap:6px;margin-top:18px;padding-top:12px;border-top:1px solid var(--line);color:var(--muted)}.brand-preview-nav small{font-size:9px}

/* Shared tenant/NOVA wordmarks, including the driver app and brand preview. */
.brand-mark{position:relative;display:block;flex-shrink:0;width:194px;height:70px;max-width:100%;overflow:hidden}
.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
.brand-mark.nova-mark img{position:absolute;left:-22%;top:50%;width:145%;height:auto;max-width:none;transform:translateY(-50%)}
.brand-mark.normalized-mark img{position:absolute;max-width:none;object-fit:fill;transform:none}
.sidebar>.brand-mark{margin-bottom:16px}
.login-hero>.brand-mark{width:300px;height:108px;margin-bottom:42px}
.brand-preview-title>.brand-mark{width:190px;height:64px;margin:0}
.auth-mobile-brand{display:none}
@media(max-width:880px){.auth-mobile-brand{display:block;margin-bottom:22px}.auth-mobile-brand>.brand-mark{width:220px;height:78px}.sidebar>.brand-mark{width:100%}}

/* QR opens the tenant's app; preview uses the same charging UI components. */
.brand-media-settings{padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--accent-soft)}.brand-media-settings h3{margin:0;font-size:15px}.brand-media-settings .muted{font-size:12px;line-height:1.7}.brand-media-settings .field small{font-size:10px;line-height:1.7}.brand-media-list{display:grid;gap:7px;margin:12px 0}.brand-media-item{display:flex;align-items:center;gap:10px;padding:9px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.brand-media-item>div{flex:1;min-width:0}.brand-media-item strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-media-item small{display:block;font-size:10px;color:#70839b;margin-top:3px}.media-order{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--accent-soft);color:#306be9;font-size:11px;font-weight:700}.portal-preview.driver-app .charging-console{flex:none;min-height:0}
.brand-mark.nova-mark:not(.dark-mark),.brand-mark.white-background-mark{mix-blend-mode:multiply}
.app-qr-card{display:grid;grid-template-columns:124px minmax(0,1fr);gap:16px;align-items:center;padding:12px;background:var(--accent-soft);border:1px solid var(--line);border-radius:16px;margin-bottom:20px}.app-qr-card>img{display:block;width:124px;height:124px;background:var(--surface);border-radius:8px}.app-qr-card .eyebrow{font-size:8px;letter-spacing:1.4px}.app-qr-card h2{font-size:16px;line-height:1.5;margin:5px 0}.app-qr-card p{font-size:11px;color:var(--muted);line-height:1.7;margin-bottom:8px}.app-qr-card a{font-size:11px;font-weight:700}
.portal-preview.driver-app{max-width:340px;min-height:0;height:auto;padding:16px 12px;background:var(--accent-soft);display:block;border-radius:30px;box-shadow:0 8px 22px #14283b10}.portal-preview.driver-app .portal-header{height:62px;min-height:62px;margin:0 0 6px}.portal-preview.driver-app .portal-brand{max-width:100%;gap:3px}.portal-preview.driver-app .portal-brand .brand-mark{width:178px;height:47px}.brand-preview-note{font-size:9px;line-height:1.6;color:#7d8fa6;margin:4px 0 10px}.portal-preview.driver-app .charge-screen{height:auto;gap:9px}.portal-preview.driver-app .driver-hero{margin:0;min-height:0;flex:none}.portal-preview.driver-app .driver-illustration{height:130px;min-height:130px;flex:none}.portal-preview.driver-app .driver-hero-meta{min-height:42px;padding:6px 9px}.portal-preview.driver-app .driver-scan{top:10px;left:10px;padding:6px 8px;gap:4px}.portal-preview.driver-app .driver-scan svg{width:14px;height:14px}.portal-preview.driver-app .driver-scan span{font-size:9px}.portal-preview.driver-app .driver-soc{width:65px;height:65px;right:8px;bottom:8px}.portal-preview.driver-app .driver-soc>svg{width:55px;height:55px}.portal-preview.driver-app .driver-soc small{font-size:6px}.portal-preview.driver-app .driver-soc strong{font-size:19px}.portal-preview.driver-app .driver-instrument{height:59px;padding:7px 8px}.portal-preview.driver-app .digital-number{height:23px}.portal-preview.driver-app .instrument-time .digital-number{height:21px}.portal-preview.driver-app .driver-control-buttons button{height:52px;padding:6px 8px;gap:7px}.portal-preview.driver-app .driver-button-copy strong{font-size:11px}.portal-preview.driver-app .driver-button-glyph{width:28px;height:28px}.portal-preview.driver-app .driver-button-glyph svg{width:19px;height:19px}.portal-preview.driver-app .driver-rate-strip{font-size:10px}.brand-app-panel .footer-note{margin-top:14px}
@media(max-width:420px){.app-qr-card{grid-template-columns:112px minmax(0,1fr);gap:10px;padding:8px}.app-qr-card>img{width:112px;height:112px}.app-qr-card h2{font-size:13px}.app-qr-card p{font-size:10px}}
.app-download-tabs{display:flex;gap:5px;background:var(--accent-soft);padding:5px;border-radius:11px;margin-bottom:12px}.app-download-tabs button{flex:1;background:transparent;color:#5b7290;padding:9px;font-size:12px}.app-download-tabs button.active{background:var(--surface);color:#2468e5;box-shadow:0 2px 6px #15355312}.report-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.report-filters .field{margin:0}.report-apply{justify-content:end}.report-document{color:var(--ink)}.report-title>span{font-size:10px;letter-spacing:1.5px;color:#546e8f}.report-title h1{font-size:23px;margin:8px 0}.report-title p,.report-filter-note{font-size:12px;color:#60748c;line-height:1.7}.report-document .split-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.report-document .summarybox{padding:13px;background:var(--accent-soft);border-radius:10px}.report-document .summarybox small{font-size:10px;display:block}.report-document .summarybox strong{font-size:20px;display:block;margin-top:7px}.report-document h2{font-size:17px;margin:24px 0 12px}.report-document table{font-size:11px}.report-test-banner{border:1px solid #debe74;background:var(--warning-soft);color:#825d13;padding:12px;border-radius:9px;font-size:12px;font-weight:700;margin:12px 0}.test-data{color:#906215;font-weight:700}.report-dialog{width:1100px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto}.report-dialog .report-document{margin-top:18px;padding:20px;border:1px solid var(--line);background:var(--surface)}
@media(max-width:900px){.report-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.report-document .split-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{
 @page{size:A4 landscape;margin:12mm}
 body:has(#fleet-print-document){background:var(--surface)!important;color:var(--ink)!important}
 body:has(#fleet-print-document)>*:not(#dialog){display:none!important}
 body:has(#fleet-print-document) #dialog{position:static;display:block!important;border:0;box-shadow:none;margin:0;padding:0;width:auto;max-width:none;max-height:none;overflow:visible}
 body:has(#fleet-print-document) #dialog::backdrop{display:none}
 body:has(#fleet-print-document) #dialog-body>*:not(#fleet-print-document){display:none!important}
 #fleet-print-document{border:0;margin:0;padding:0;overflow:visible;font-size:9pt}
 #fleet-print-document .table-wrap{overflow:visible}
 #fleet-print-document table{width:100%;font-size:8pt;border-collapse:collapse}
 #fleet-print-document thead{display:table-header-group}
 #fleet-print-document tr{break-inside:avoid}
 #fleet-print-document td,#fleet-print-document th{padding:6px;border-bottom:1px solid #bbb;color:var(--ink);background:var(--surface);overflow-wrap:anywhere}
 #fleet-print-document h2{break-after:avoid}
 #fleet-print-document .split-summary{break-inside:avoid}
 #fleet-print-document .report-test-banner{border:2px solid #555;color:var(--ink);background:var(--surface)}
}

/* Station setup: paired coordinates and an embedded location picker. */
dialog.station-dialog{width:min(1080px,calc(100vw - 30px));max-height:calc(100dvh - 30px);padding:24px}.station-dialog .panelhead{margin-bottom:18px}.station-dialog .panelhead h2{margin-bottom:0}.station-editor-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:24px;align-items:start}.station-editor-layout>.formgrid{gap:16px;align-content:start}.station-editor-layout>.formgrid>.field:last-child{grid-column:1/-1}.coordinate-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.station-location{grid-column:auto;background:var(--accent-soft);border:1px solid var(--line);border-radius:14px;padding:15px;min-width:0}.station-map-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.station-map-heading strong{font-size:13px}.station-map-search{display:flex;align-items:end;gap:8px}.station-map-search .field{flex:1}.station-map-search .field>span{font-size:11px;color:#627590;margin-bottom:1px}.station-map-search input{font-size:12px}.station-map-search button{padding:11px 13px;white-space:nowrap}.station-map-note{font-size:11px;color:#536b88;line-height:1.6;margin:10px 0}.station-map-note.map-error{color:#9e5423}.station-location-map{height:320px;border-radius:10px;overflow:hidden;background:var(--accent-soft);min-width:0}.station-location-map.map-unavailable{display:grid;place-items:center;color:#627590;font-size:12px}.station-location>small{display:block;font-size:10px;color:#718096;line-height:1.7;margin-top:9px}.station-map-results{display:grid;gap:5px;margin-top:8px}.station-map-results:empty{display:none}.station-map-results button{text-align:left;font-size:11px;padding:8px;line-height:1.6;font-weight:500}.station-map-search[hidden],.sim-fields[hidden]{display:none!important}.network-note{margin:0;font-size:11px;color:#536b88;line-height:1.6;background:var(--accent-soft);border-radius:8px;padding:10px 12px}.sim-fields{padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--accent-soft)}.station-actions{white-space:nowrap}
@media(max-width:800px){.station-editor-layout{grid-template-columns:1fr;gap:18px}.station-location-map{height:270px}}
@media(max-width:480px){dialog.station-dialog{padding:18px;width:calc(100vw - 18px)}.station-editor-layout>.formgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.station-editor-layout>.formgrid>.field:first-child,.station-editor-layout>.formgrid>.field:nth-child(2){grid-column:1/-1}.coordinate-pair{gap:10px}.coordinate-pair label{font-size:10px}.coordinate-pair input{font-size:12px;padding:10px 7px}.station-location{padding:12px}.station-location-map{height:250px}.station-map-search{gap:6px}.station-map-heading .textbutton{padding:5px}.station-actions{flex-wrap:wrap}}
/* Platform console is independent of merchant ownership. */
.admin-console-label{display:grid;gap:7px;padding:18px 14px;margin-bottom:18px;border-radius:16px;background:linear-gradient(135deg,var(--accent-soft),var(--accent-soft));border:1px solid var(--line)}.admin-console-label strong{font-size:21px}.admin-console-label small{color:var(--muted)}
.admin-banner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 28px;border-radius:20px;margin-bottom:20px;background:radial-gradient(ellipse at 100% 0,#127e8a 0,transparent 55%),linear-gradient(115deg,#0b223b,#13385a);color:#f0f8ff;box-shadow:0 12px 30px #132c4612}.admin-banner .eyebrow{color:#71dccd}.admin-banner h2{font-size:26px;margin:7px 0}.admin-banner p{color:#bed3e8;line-height:1.8;margin-bottom:0}.admin-live{white-space:nowrap;font-size:11px;color:#88e8c8}
.admin-row-actions{display:flex;gap:7px;flex-wrap:wrap}.admin-preview-dialog{width:min(1060px,94vw);max-width:1060px}.admin-preview-tabs{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0}.admin-preview-tabs button.selected{background:var(--accent-soft);border-color:#2b6fef;color:#2b6fef}.admin-preview-charger{display:grid;grid-template-columns:1fr auto;gap:5px;padding:12px 0;border-bottom:1px solid var(--line)}.admin-preview-charger span{font-size:12px;color:var(--muted);grid-column:1}.admin-preview-charger .badge{grid-column:2;grid-row:1/3}
.admin-pool-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.admin-pool-form .field{flex:1;min-width:230px}.admin-pool-total{display:flex;gap:12px;align-items:baseline;padding:10px 0 20px}.admin-pool-total strong{font-size:38px;color:var(--blue)}.admin-pool-total span{color:var(--muted)}.admin-pool-shop{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:14px 0;border-top:1px solid var(--line)}
.admin-demo-layout{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:24px;align-items:start}.admin-demo-phone{background:var(--accent-soft);padding:18px;border-radius:30px;border:7px solid #1c3045;box-shadow:0 16px 42px #0e26351c}.admin-demo-phone header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.admin-demo-phone header .admin-demo-mode{font-size:9px;font-weight:700;color:#7487a0}.admin-demo-phone h3{font-size:15px;margin-bottom:14px}.admin-demo-phone .charging-console{border-radius:20px}.admin-demo-hero img{width:100%;height:178px;display:block;object-fit:cover}.admin-demo-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;color:#deefff;background:#092638}.admin-demo-meta span{font-size:10px;color:#60dec5}.admin-demo-phone .driver-instruments{margin:0;padding:12px;border:0;border-radius:0;box-shadow:none}.admin-demo-phone .driver-instrument{min-height:62px}.admin-demo-phone .digital-readout{font-size:25px}.admin-demo-phone .instrument-label small{font-size:10px}.admin-demo-phone>p{font-size:12px;margin:14px 0;color:var(--muted)}.admin-demo-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px}.admin-demo-controls button{font-size:12px;padding:12px 8px}.admin-demo-controls .secondary{grid-column:1/-1}.social-draft{padding:16px 0;border-top:1px solid var(--line)}.social-draft .badge{margin-left:10px}.social-draft p{white-space:pre-wrap;margin:10px 0}.social-draft code{display:block;overflow-wrap:anywhere;font-size:11px;margin-bottom:12px}
@media(max-width:1000px){.admin-demo-layout{grid-template-columns:1fr 330px}.admin-banner{align-items:flex-start;flex-direction:column;gap:12px}}@media(max-width:740px){.admin-demo-layout{grid-template-columns:1fr}.admin-demo-phone{max-width:370px;width:100%;margin:auto}.admin-pool-shop{flex-wrap:wrap}.admin-banner{padding:20px}}

#admin-shop-search{width:100%;max-width:340px;padding:11px 14px;border:1px solid var(--line,var(--line));border-radius:12px;font:inherit;background:var(--surface);color:var(--ink,var(--ink))}

.admin-shop-groups{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 10px}.admin-shop-groups .selected{background:var(--accent-soft);border-color:#2b6fef;color:#2b6fef}.admin-shop-groups span{display:inline-block;margin-left:6px;padding:2px 7px;background:var(--accent-soft);border-radius:8px}.admin-origin-note{font-size:12px;margin-bottom:18px}.admin-shops-table td{vertical-align:top}.admin-shops-table td:first-child{min-width:190px;max-width:290px;white-space:normal;overflow-wrap:anywhere}.admin-station-names{min-width:130px;white-space:normal;display:grid;gap:8px}.admin-shop-groups+.admin-origin-note{line-height:1.6}.admin-shops-table tr[hidden]{display:none}
.admin-shops-table td{padding:13px 8px}.admin-shops-table td:nth-child(3){white-space:normal;min-width:100px}.admin-shops-table td:nth-child(6){white-space:normal;min-width:140px;max-width:190px;width:160px}.admin-shops-table td:nth-child(6) small{display:block;margin-top:6px;line-height:1.65}

.admin-demo-phone.driver-app{display:block;min-height:0;height:auto;min-width:0;max-width:370px;width:100%;padding:16px 12px;background:var(--accent-soft)}
.admin-demo-phone .charge-screen{height:auto;min-height:0;gap:9px}
.admin-demo-phone .charging-console{flex:none;min-height:0;margin:0}
.admin-demo-phone .driver-hero{flex:none;min-height:0;margin:0}
.admin-demo-phone.driver-app .driver-illustration{height:168px;min-height:168px;flex:none}
.admin-demo-phone.driver-app .admin-demo-hero img{height:100%;object-fit:cover}
.admin-demo-phone .driver-hero-meta{min-height:49px}
.admin-demo-phone .driver-instruments{padding:6px 7px 7px}
.admin-demo-phone .driver-instrument{height:65px;min-height:0;padding:7px 8px 8px}
.admin-demo-phone.driver-app .digital-number{width:auto;height:27px;max-width:calc(100% - 28px)}
.admin-demo-phone.driver-app .instrument-time .digital-number{height:25px;max-width:100%}
.admin-demo-phone .digital-readout{height:27px}
.admin-demo-phone .instrument-label small{font-size:9px}
.admin-demo-phone .driver-control-buttons button{min-width:0;height:57px;padding:6px 8px;gap:6px}
.admin-demo-phone .driver-button-copy strong{font-size:12px}
.admin-demo-phone .driver-button-glyph{width:30px;height:30px}
.admin-demo-phone .driver-status{max-width:45%;white-space:normal}
.admin-demo-phone .driver-control-note{text-align:center}
.admin-archive-actions{margin:16px 0;display:flex;align-items:center;gap:12px;flex-wrap:wrap}


.admin-demo-phone .admin-demo-scan{pointer-events:none}

.admin-demo-phone.driver-app header .brand-mark{width:154px;height:44px}
.admin-demo-phone.driver-app header .brand-mark img{mix-blend-mode:multiply}
.admin-demo-phone.driver-app .charge-screen>h3{margin:2px 0 5px}
.admin-demo-phone.driver-app .charge-screen>p{margin:8px 0;font-size:11px;color:#7487a0}

/* Station-scoped OCPP diagnostics; keep terminal independent of page scroll. */
dialog.ocpp-monitor-dialog{width:min(1180px,96vw);max-width:1180px}
.ocpp-monitor-note{color:#6c7d94;font-size:13px;line-height:1.7}
.ocpp-toolbar{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:12px;margin:16px 0}
.ocpp-toolbar label{font-size:12px;font-weight:600;color:#64748b}
.ocpp-toolbar select,.ocpp-toolbar input{display:block;margin-top:5px;width:100%;height:43px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px}
.ocpp-monitor-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ocpp-monitor-actions small{margin-left:auto;color:#7487a0}
#ocpp-monitor-status{font-size:12px;color:#137f6b;margin:14px 0 8px}
.ocpp-terminal{background:#081724;color:#d8e5f1;border:1px solid #233c50;border-radius:14px;height:min(50vh,520px);min-height:220px;overflow:auto;padding:10px;font:12px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;scrollbar-color:var(--ink) var(--ink)}
.ocpp-line{border-bottom:1px solid #1c3345;padding:9px 6px}
.ocpp-line summary{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;cursor:pointer;list-style:revert}
.ocpp-line time,.ocpp-line small{color:#93a8bf}.ocpp-line small{margin-left:auto}
.ocpp-in .ocpp-direction{color:#65e2c4}.ocpp-out .ocpp-direction{color:#89bfff}
.ocpp-line b{color:#f2d894}.ocpp-line pre{margin:9px 0 0;padding:12px;background:#102333;border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere;color:#e4eef6}
.ocpp-empty{color:#93a8bf;text-align:center;margin:60px 12px;line-height:1.9}
@media(max-width:700px){.ocpp-toolbar{grid-template-columns:1fr 1fr}.ocpp-toolbar label:last-child{grid-column:1/-1}.ocpp-line summary{gap:5px 10px}.ocpp-line small{width:100%;margin:0}.ocpp-terminal{height:45vh}.ocpp-monitor-actions small{margin-left:0}}
/* Commercial workspace and private partner reports. */
.commercial-tabs{flex-wrap:wrap;margin-bottom:22px;gap:8px}.commercial-tabs button{white-space:normal}.commercial-partner{padding:20px 0;border-bottom:1px solid var(--line)}.commercial-secret{font-family:monospace;overflow-wrap:anywhere;background:var(--accent-soft);padding:12px;border-radius:8px}.commercial-quote{max-width:700px;margin:auto;padding:20px}.commercial-quote h2{margin:20px 0}.commercial-quote hr{border:0;border-top:1px solid var(--line)}.commercial-partner h3{margin:0 0 8px}
@media print{body:has(.commercial-quote) #app,body:has(.commercial-quote) #toast{display:none!important}body:has(.commercial-quote) dialog{position:static;display:block;border:0;max-width:none;max-height:none;width:100%;box-shadow:none}body:has(.commercial-quote) dialog .actions{display:none}body:has(.commercial-quote) dialog::backdrop{background:none}}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.commercial-tabs{display:flex}.commercial-tabs button.active{background:var(--accent-soft);color:#2469eb;box-shadow:inset 0 0 0 1px #d8e5ff}.commercial-partner .panelhead h2{white-space:nowrap}@media(max-width:1050px){.grid2{grid-template-columns:1fr}.commercial-tabs{overflow-x:auto;flex-wrap:nowrap;justify-content:flex-start}.commercial-tabs button{flex:0 0 auto}}

.commercial-partner .stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.commercial-partner .stat strong{font-size:clamp(20px,2vw,28px)}
@media(max-width:900px){.commercial-partner .stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.commercial-partner .stat strong{font-size:20px}}

/* Merchant overview: separate instruments for every registered connector. */
.charger-total{background:var(--bg);border-radius:10px;padding:10px 12px;margin-bottom:12px;display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 12px}.charger-total>span{font-size:11px;color:var(--muted);flex-basis:100%}.charger-total>strong{font-size:21px}.charger-total>small{font-size:10px;color:var(--muted)}.connector-meters{display:grid;grid-template-columns:1fr;gap:10px}.connector-meters.multiple{grid-template-columns:repeat(2,minmax(0,1fr))}.connector-meter{min-width:0;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.connector-meter-title{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;margin-bottom:5px}.connector-meter-title>strong{font-size:13px}.connector-meter-title .badge{font-size:10px}.connector-meter>small{font-size:10px}.main .connector-meter .meterline{display:flex;flex-wrap:wrap;justify-content:center;text-align:center;padding:8px 0;gap:4px}.connector-meter .meterline>div{min-width:0;flex:1 1 78px}.connector-meter .meterline strong{display:block;font-size:19px}.connector-meter .meterline small{font-size:10px;color:var(--muted)}.connector-meter-note{display:block;line-height:1.6;color:var(--muted)}.connector-scale-note{display:block;font-size:9px;color:var(--muted);line-height:1.6;margin:9px 0}
.topbar{position:sticky;top:0;z-index:15;backdrop-filter:blur(12px)}.member-search{display:grid;grid-template-columns:minmax(240px,2fr) 1fr 1fr;gap:14px;margin-bottom:18px}.member-search label{display:grid;gap:7px;font-size:12px}.member-search input,.member-search select,.member-toolbar input{padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);min-width:0}.member-name{font-size:14px;font-weight:700;text-align:left;padding:3px 0}.member-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.member-toolbar label{margin-left:auto}.member-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.member-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.member-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.member-stats h2{margin:8px 0 0}.member-facts{display:grid;grid-template-columns:1fr 1fr;gap:16px}.member-fact{padding-bottom:12px;border-bottom:1px solid var(--line);min-width:0}.member-fact small{display:block;color:var(--muted);margin-bottom:7px}.member-fact strong{display:block;overflow-wrap:anywhere;font-size:13px;white-space:pre-wrap}.member-consent{border:1px solid var(--line);padding:16px;border-radius:12px}.member-consent p{line-height:1.8;font-size:12px}.member-vehicle{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px;align-items:end;margin:12px 0}#member-profile-form fieldset{border:0;padding:0;margin:0;min-width:0}@media(max-width:900px){.member-grid{grid-template-columns:1fr}.member-stats{grid-template-columns:1fr 1fr}.member-vehicle{grid-template-columns:1fr 1fr}.member-search{grid-template-columns:1fr 1fr}.member-search label:first-child{grid-column:1/-1}}@media(max-width:500px){.member-facts{grid-template-columns:1fr}.member-toolbar label{margin-left:0}.member-tabs button{flex:1;font-size:11px;padding:9px}.member-stats{gap:8px}}

/* Thai combining marks and wrapped policy help need a separate line box. */
.station-policy-selectors .field{line-height:1.7;gap:9px}
.station-policy-selectors select{line-height:1.6;min-height:48px;padding:12px}
.station-policy-selectors .station-policy-help{margin:20px 0 0;line-height:1.85;font-weight:400;overflow-wrap:anywhere}
.station-policy-selectors .row{margin-top:18px}

.station-tree-list{display:grid;gap:12px}
.station-tree{min-width:0;padding:0;overflow:hidden}
.station-tree-heading{position:relative;display:flex;align-items:center;gap:16px;padding:12px 14px;min-height:52px}
.station-tree-title{display:flex;align-items:center;gap:9px;flex-shrink:0;min-width:0}
.station-tree-title h2{margin:0;font-size:16px;line-height:1.7;overflow-wrap:anywhere}
.station-tree-icon{display:grid;place-items:center;width:28px;height:28px;flex-shrink:0;color:var(--blue);background:var(--accent-soft);border-radius:7px}
.station-tree-icon svg{width:18px;height:18px}
.station-tree-info{display:flex;align-items:center;flex-wrap:wrap;gap:12px;min-width:0;font-size:12px;line-height:1.7;color:var(--muted);overflow-wrap:anywhere}
.station-tree-heading .station-actions{margin-left:auto;flex-shrink:0;gap:6px}
.has-children .station-tree-heading:before{content:"";position:absolute;left:28px;top:40px;bottom:0;border-left:1.5px solid var(--muted)}
.station-tree-children{margin:0 14px 8px;padding:0;background:transparent;border:0}
.station-charger-table{margin:0}
.station-charger-table table{min-width:880px;border-collapse:collapse}
.station-charger-table th,.station-charger-table td{padding:8px;line-height:1.65;vertical-align:middle}
.station-charger-table th{font-size:10px;background:transparent;color:var(--muted);font-weight:500;border-bottom:1px solid var(--line)}
.station-charger-table .tree-rail{position:relative;width:30px;min-width:30px;padding:0;border-bottom:0;background:transparent}
.station-charger-table .tree-rail:before{content:"";position:absolute;left:14px;top:0;bottom:0;border-left:1.5px solid var(--muted)}
.station-charger-table tbody tr:last-child .tree-rail:before{bottom:50%}
.tree-branch{position:absolute;left:14px;right:0;top:50%;border-top:1.5px solid var(--muted)}
.tree-branch:after{content:"";position:absolute;right:0;top:-4px;border-left:5px solid var(--muted);border-top:3.5px solid transparent;border-bottom:3.5px solid transparent}
.station-charger-table tbody tr:last-child td{border-bottom:0}
.station-tree-empty{margin:0 0 0 38px;padding:6px 0 8px;line-height:1.8;font-size:12px}
@media(max-width:1100px){.station-tree-heading{flex-wrap:wrap;gap:8px 12px}.station-tree-info{flex:1}.station-tree-heading .station-actions{margin-left:38px}}
@media(max-width:700px){.station-tree-info{flex-basis:100%;margin-left:38px}.station-tree-heading .station-actions{margin-left:38px}.station-tree-list{gap:10px}.station-tree-title{flex-wrap:wrap}}

/* Merchant dashboard: an online connector reporting Charging has a slow activity light. */
.connector-meter-title .badge.charging-active{font-size:14px;font-weight:800;padding:8px 12px;gap:9px;line-height:1.4}
.connector-meter-title .charging-active .dot{width:12px;height:12px;flex-shrink:0;background:#27d6a0;box-shadow:0 0 0 4px #27d6a022;animation:connector-charging-light 3s ease-in-out infinite}
@keyframes connector-charging-light{0%,100%{opacity:1;box-shadow:0 0 0 4px #27d6a022,0 0 10px #27d6a077}50%{opacity:.3;box-shadow:0 0 0 4px #27d6a00a,0 0 2px #27d6a011}}
@media(prefers-reduced-motion:reduce){.connector-meter-title .charging-active .dot{animation:none;opacity:1}}

.ocpp-log-row{display:flex;gap:12px;padding:5px 6px;border-bottom:1px solid #1c3345;align-items:baseline}.ocpp-log-row time{color:#93a8bf;flex-shrink:0}.ocpp-log-row code{color:#d8e5f1;font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.ocpp-log-row.ocpp-in code{color:#64dbc4}.ocpp-log-row.ocpp-out code{color:#9dc9ff}.ocpp-monitor-actions select{width:auto;max-width:220px}.ocpp-monitor-actions>label:first-child{display:flex;align-items:center;gap:8px;font-size:12px}

/* Compact platform overview, sharing Company Policy line art. */
.admin-network-strip{display:flex;align-items:center;gap:18px;padding:14px 18px;margin-bottom:18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink)}
.admin-network-art{display:flex;align-items:center;gap:7px;flex:none;color:var(--blue)}.admin-network-art .policy-art{display:block;width:46px;height:34px;color:inherit}.admin-network-art .policy-art-station{width:38px}.admin-network-art>span{width:15px;height:1px;background:var(--line)}
.admin-network-copy{min-width:0;flex:1}.admin-network-copy h2{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 4px;font-size:14px;line-height:1.6;letter-spacing:0}.admin-network-copy h2 [aria-hidden]{color:var(--muted);font-weight:400}
.admin-network-context{font-size:11px;color:var(--muted)}.admin-network-context summary{cursor:pointer;width:fit-content}.admin-network-context p{margin:10px 0 0;line-height:1.8;color:var(--muted)}
.admin-network-live{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted);white-space:nowrap;margin-left:auto;align-self:flex-start;padding-top:7px}.admin-network-live i{width:6px;height:6px;background:var(--green);border-radius:50%;flex:none}
@media(max-width:900px){.admin-network-strip{flex-wrap:wrap;gap:10px 14px}.admin-network-live{flex-basis:100%;margin:0;padding:0}.admin-network-art .policy-art{width:40px;height:30px}.admin-network-art .policy-art-station{width:32px}}
@media(max-width:480px){.admin-network-strip{padding:12px;gap:10px}.admin-network-art{gap:3px}.admin-network-art .policy-art{width:29px;height:26px}.admin-network-art .policy-art-station{width:25px}.admin-network-art>span{width:7px}.admin-network-copy h2{font-size:12px;gap:4px}.admin-network-context{font-size:10px}.admin-network-live{font-size:10px;white-space:normal}}

.policy-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.policy-summary-item{display:grid;gap:7px;text-align:left;white-space:normal}.policy-summary-item span{font-size:12px;opacity:.8;overflow-wrap:anywhere}
