:root{
  --bg:#1B2220; --bg2:#232C29; --green:#2FBF87; --green-deep:#1F7A57; --green-ink:#08331F;
  --white:#fff; --mist:#9BA6A2; --dim:#7C8884; --line:rgba(255,255,255,.09);
  --card:#F3F6F4; --card-ink:#15211F; --card-sub:#6B7A77; --field-line:#D9E0DD;
  --amber:#E9A13B; --blue:#35A7C4;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:'Inter',system-ui,sans-serif;color:var(--white);background:var(--bg);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
h1,h2,h3,.lex{font-family:'Lexend',sans-serif;font-weight:700;letter-spacing:-.3px}

/* ---------- shared logo lockup ---------- */
.pt{font-family:'Lexend',sans-serif;line-height:1}
.pt .t{display:block;font-size:10px;letter-spacing:4px;color:var(--green);font-weight:600}
.pt .n{display:block;font-size:18px;letter-spacing:1px;color:#fff;font-weight:700;margin-top:2px}

/* ---------- login ---------- */
.login-body{min-height:100vh;display:flex;flex-direction:column;
  background:radial-gradient(55% 45% at 18% 25%,rgba(47,191,135,.10),transparent 70%),
             radial-gradient(45% 45% at 92% 8%,rgba(47,191,135,.08),transparent 70%),
             linear-gradient(180deg,#1E2623,#171D1B)}
.login-top{display:flex;align-items:center;gap:20px;padding:20px clamp(20px,4vw,56px);border-bottom:1px solid var(--line)}
.login-top .sifr{font-family:'Lexend',sans-serif;font-size:22px;color:#fff}
.login-top .sifr b{font-weight:700}.login-top .sifr span{font-weight:300;color:#B7C0BC;letter-spacing:1px}
.login-top .sifr-tag{font-family:'Lexend',sans-serif;font-weight:600;font-size:13px;color:var(--green)}
.login-top .topmark{margin-left:auto;display:flex;align-items:center;gap:10px}
.login2{flex:1;max-width:1180px;width:100%;margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,64px);align-items:center;padding:40px clamp(20px,4vw,56px)}
.login-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:18px clamp(20px,4vw,56px);border-top:1px solid var(--line)}
.login-bottom .fback{color:var(--mist);font-size:13px}
.login-bottom .fback:hover{color:var(--green)}
.login-bottom .fstats{display:flex;gap:clamp(20px,4vw,48px)}
.login-bottom .fstat b{display:block;font-family:'Lexend',sans-serif;font-size:14px;color:#fff;letter-spacing:.3px}
.login-bottom .fstat span{color:var(--dim);font-size:12px}
@media(max-width:640px){.login-top .sifr-tag{display:none}.login-top .topmark .pt{display:none}.login-bottom{flex-direction:column;align-items:flex-start;gap:14px}}
.login-hero .brandmark{display:flex;align-items:center;gap:11px;margin-bottom:26px}
.login-hero .eyebrow{font-family:'Lexend',sans-serif;font-weight:600;font-size:13px;letter-spacing:4px;text-transform:uppercase;color:var(--green)}
.login-hero h1{font-family:'Lexend',sans-serif;font-weight:800;font-size:clamp(34px,4.6vw,60px);line-height:1.03;letter-spacing:-1px;color:#fff;margin-top:16px}
.login-hero h1 .g{color:var(--green)}
.login-hero .lead{color:var(--mist);font-size:17px;line-height:1.6;margin-top:18px;max-width:520px}
.login-hero .journey{margin-top:28px;max-width:520px}
.login-hero .journey svg{width:100%;height:auto;display:block}
.login-col{width:100%;max-width:440px;margin-left:auto}
@media(max-width:900px){
  .login2{grid-template-columns:1fr;gap:30px}
  .login-hero{text-align:center}
  .login-hero .brandmark{justify-content:center}
  .login-hero .lead{margin-left:auto;margin-right:auto}
  .login-hero .journey{margin-left:auto;margin-right:auto}
  .login-col{margin:0 auto}
}
.signin-card{background:var(--card);color:var(--card-ink);border-radius:24px;padding:clamp(26px,4vw,40px);box-shadow:0 30px 70px rgba(0,0,0,.45)}
.clogo{display:flex;align-items:center;gap:11px;margin-bottom:22px}
.clogo .t{color:var(--green-deep)}
.clogo .n{color:var(--card-ink)}
.signin-card h2{font-size:28px;color:var(--card-ink)}
.csub{color:var(--card-sub);font-size:15px;margin-top:6px}
.field{margin-top:18px}
.field label{display:block;font-family:'Lexend',sans-serif;font-weight:600;font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:var(--card-sub);margin-bottom:7px}
.field input{width:100%;border:1.5px solid var(--field-line);border-radius:12px;padding:14px 15px;font-family:'Inter',sans-serif;font-size:15px;color:var(--card-ink);background:#fff}
.field input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(47,191,135,.18)}
.enter{width:100%;margin-top:22px;border:0;cursor:pointer;background:var(--green);color:var(--green-ink);font-family:'Lexend',sans-serif;font-weight:600;font-size:15px;letter-spacing:.4px;padding:15px;border-radius:12px}
.enter:hover{background:var(--green-deep);color:#fff}
.cnote{text-align:center;color:#8C9793;font-size:12.5px;margin-top:16px}
.forgot{text-align:center;color:#8C9793;font-size:12.5px;margin-top:14px}
.forgot a{color:var(--green);text-decoration:none}
.forgot a:hover{text-decoration:underline}
.errmsg{display:none;margin-top:14px;background:#FBEAEA;border:1px solid #F0C9C9;color:#B23838;border-radius:10px;padding:10px 13px;font-size:13.5px;text-align:center}
.login-foot{text-align:center;color:var(--mist);font-size:13px;margin-top:20px}
.login-foot b{color:#fff;font-weight:600}

/* ---------- app shell ---------- */
.app-body{display:flex;flex-direction:column;min-height:100vh;
  background:radial-gradient(50% 40% at 15% 0%,rgba(47,191,135,.06),transparent 70%),linear-gradient(180deg,#1E2623,#171D1B)}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 22px;border-bottom:1px solid var(--line);background:rgba(27,34,32,.7);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20}
.topbar .brand{display:flex;align-items:center;gap:11px}
.topright{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.units{display:flex;align-items:center;gap:6px;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:4px}
.ulabel{font-size:11px;color:var(--dim);padding:0 6px;letter-spacing:1px;text-transform:uppercase}
.ubtn,.rbtn{background:transparent;border:0;color:var(--mist);font-family:'Lexend',sans-serif;font-size:13px;padding:6px 12px;border-radius:8px;cursor:pointer}
.ubtn.active,.rbtn.active{background:var(--green);color:var(--green-ink);font-weight:600}
.who{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}
.uname{font-family:'Lexend',sans-serif;font-size:14px;color:#fff}
.role{font-size:11px;letter-spacing:.5px;color:var(--green);text-transform:uppercase}
.role.admin{color:var(--amber)}
.logout{background:transparent;border:1px solid var(--line);color:var(--mist);border-radius:9px;padding:8px 14px;font-family:'Lexend',sans-serif;font-size:13px;cursor:pointer}
.logout:hover{border-color:var(--green);color:#fff}
.admin-btn{background:rgba(233,161,59,.12);border:1px solid rgba(233,161,59,.4);color:#F0C98A;border-radius:9px;padding:8px 14px;font-family:'Lexend',sans-serif;font-size:13px;cursor:pointer}
.admin-btn:hover{border-color:var(--amber);color:#fff}

/* tariff editor */
.tariff-wrap{margin-top:6px}
.trow{display:grid;grid-template-columns:1.2fr 1.2fr .8fr .6fr .8fr 1.1fr auto auto;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.trow.head{color:var(--dim);font-size:11px;letter-spacing:1px;text-transform:uppercase;border-bottom:1px solid var(--line)}
.trow .tc{font-family:'Lexend',sans-serif;color:#fff;font-size:14px}
.trow .tl{color:var(--mist);font-size:13px}
.trow input{background:#fff;color:var(--card-ink);border:1px solid var(--field-line);border-radius:8px;padding:8px 10px;font-family:'Inter',sans-serif;font-size:14px;width:100%}
.trow .tsave{background:var(--green);color:var(--green-ink);border:0;border-radius:8px;padding:8px 14px;font-family:'Lexend',sans-serif;font-weight:600;font-size:13px;cursor:pointer}
.trow .tsave:hover{background:var(--green-deep);color:#fff}
.trow .tstat{font-size:12px;color:var(--green);min-width:20px}

/* users / password resets */
.trow.uhead,.trow.urow{grid-template-columns:1.6fr 1.4fr .9fr auto 2.2fr}
.urow .usub{color:var(--dim);font-size:12px}
.ubadge{display:inline-block;padding:2px 10px;border-radius:20px;font-size:11.5px;font-family:'Lexend',sans-serif}
.ubadge.ok{background:rgba(47,191,135,.14);color:#9BE6C6;border:1px solid rgba(47,191,135,.35)}
.ubadge.warn{background:rgba(233,161,59,.14);color:#F0C98A;border:1px solid rgba(233,161,59,.4)}
.ureset{font-size:12px;line-height:1.5}
.temppw{font-family:'Lexend',monospace;font-weight:700;color:#fff;background:rgba(47,191,135,.16);border:1px solid rgba(47,191,135,.4);border-radius:6px;padding:2px 8px;letter-spacing:.5px;user-select:all}
.copyhint{color:var(--dim)}
@media(max-width:640px){.trow.uhead,.trow.urow{grid-template-columns:1fr 1fr}}

/* exclusions */
.excl-list{margin-top:18px;border-top:1px solid var(--line);padding-top:12px}
.excl-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}
.excl-row .er-when{color:#E7EEEB;font-family:'Lexend',sans-serif}
.excl-row .er-meta{color:var(--dim);font-size:12px}
.excl-row .er-rm{margin-left:auto;background:transparent;border:1px solid var(--line);color:var(--mist);border-radius:8px;padding:6px 11px;font-size:12px;cursor:pointer}
.excl-row .er-rm:hover{border-color:var(--green);color:#fff}
.excl-empty{color:var(--dim);font-size:13px;padding:10px 0}
.avail{display:inline-flex;align-items:center;gap:5px;margin-left:6px;padding:1px 9px;border-radius:20px;font-size:11.5px;font-family:'Lexend',sans-serif}
.avail.good{background:rgba(47,191,135,.14);color:#9BE6C6;border:1px solid rgba(47,191,135,.35)}
.avail.warn{background:rgba(233,161,59,.14);color:#F0C98A;border:1px solid rgba(233,161,59,.4)}
@media(max-width:640px){.trow{grid-template-columns:1fr 1fr;gap:8px}.trow.head{display:none}}

.layout{display:flex;flex:1;min-height:0}
.sidebar{width:290px;flex:none;border-right:1px solid var(--line);padding:18px 14px;overflow-y:auto}
.side-h{font-family:'Lexend',sans-serif;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--dim);padding:4px 8px 12px}
.tree .cust{font-family:'Lexend',sans-serif;font-weight:600;color:#fff;font-size:14px;padding:8px}
.tree .loc{color:var(--mist);font-size:12px;letter-spacing:.5px;text-transform:uppercase;padding:10px 8px 4px}
.tree .sys{color:var(--dim);font-size:12px;padding:6px 8px 2px 14px;display:flex;align-items:center;gap:6px}
.tree .asset{display:flex;align-items:center;gap:9px;padding:9px 10px 9px 22px;margin:2px 0;border-radius:9px;cursor:pointer;color:#D4DEDA;font-size:14px}
.tree .asset:hover{background:var(--bg2)}
.tree .asset.active{background:rgba(47,191,135,.14);color:#fff;box-shadow:inset 2px 0 0 var(--green)}
.tree .asset .dot{width:8px;height:8px;border-radius:50%;background:var(--green);flex:none;box-shadow:0 0 0 3px rgba(47,191,135,.18)}

.main{flex:1;min-width:0;padding:26px clamp(18px,3vw,34px);overflow-y:auto}
.empty{color:var(--dim);font-size:15px;padding:60px 0;text-align:center}
.crumb{color:var(--dim);font-size:12.5px;letter-spacing:.4px;margin-bottom:6px}
.assethead{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.assethead h1{font-size:clamp(24px,3vw,32px);color:#fff}
.assetmeta{color:var(--mist);font-size:13px}
.assetactions{margin-left:auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.modectl{display:flex;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:4px}
.mbtn{background:transparent;border:0;color:var(--mist);font-family:'Lexend',sans-serif;font-size:13px;padding:6px 12px;border-radius:8px;cursor:pointer}
.mbtn.active{background:var(--green);color:var(--green-ink);font-weight:600}
.ranges{display:flex;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:4px}
.export{background:var(--bg2);border:1px solid var(--line);color:#D4DEDA;border-radius:10px;padding:9px 14px;font-family:'Lexend',sans-serif;font-size:13px;cursor:pointer}
.export:hover{border-color:var(--green);color:#fff}

.energybox{margin-bottom:22px}
.eb-live{color:var(--mist);font-size:13px;background:var(--bg2);border:1px dashed var(--line);border-radius:14px;padding:15px 18px;line-height:1.5}
.eb-grid{display:grid;grid-template-columns:repeat(2,minmax(200px,1fr));gap:14px}
@media(max-width:640px){.eb-grid{grid-template-columns:1fr}}
.eb-tile{background:var(--bg2);border:1px solid var(--line);border-radius:16px;padding:18px 22px}
.eb-tile .k{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--dim)}
.eb-tile .v{font-family:'Lexend',sans-serif;font-weight:800;font-size:clamp(28px,4vw,38px);color:#fff;margin-top:8px;line-height:1}
.eb-tile .v .u{font-size:15px;font-weight:500;color:var(--mist)}
.eb-tile.cost{background:linear-gradient(120deg,rgba(233,161,59,.15),rgba(233,161,59,.03));border-color:rgba(233,161,59,.32)}
.eb-tile.cost .v{color:#F0C98A}
.eb-sub{color:var(--dim);font-size:12px;margin-top:9px}

.tiles-status{font-size:12.5px;color:var(--mist);margin-bottom:10px;display:flex;align-items:center;gap:8px}
.tiles-status.live{color:#CDEBDD}
.livedot{width:9px;height:9px;border-radius:50%;background:var(--green);display:inline-block;box-shadow:0 0 0 0 rgba(47,191,135,.6);animation:pulse 1.6s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(47,191,135,.5)}70%{box-shadow:0 0 0 8px rgba(47,191,135,0)}100%{box-shadow:0 0 0 0 rgba(47,191,135,0)}}
.trendhint{color:#7C8884;font-size:11px;font-weight:400;letter-spacing:.5px;margin-left:6px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:22px}
.tile{background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.tile .k{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--dim)}
.tile .v{font-family:'Lexend',sans-serif;font-weight:700;font-size:26px;color:#fff;margin-top:6px}
.tile .u{font-size:13px;color:var(--mist);font-weight:400}
.tile .var{color:var(--dim);font-size:11.5px;margin-top:7px;letter-spacing:.2px}
.tile .kt{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--green);margin-top:3px}
.tile.eff .v{color:var(--green)}

.charts{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
@media(max-width:1000px){.charts{grid-template-columns:1fr}.sidebar{width:230px}}
.chart{background:var(--bg2);border:1px solid var(--line);border-radius:16px;padding:14px 14px 6px}
.chart .ch-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.chart .ch-t{font-family:'Lexend',sans-serif;font-size:14px;color:#E7EEEB}
.chart .expand{background:transparent;border:0;color:var(--dim);cursor:pointer;font-size:13px}
.chart .expand:hover{color:var(--green)}

.adminbox{margin-top:24px;background:rgba(233,161,59,.06);border:1px solid rgba(233,161,59,.28);border-radius:16px;padding:18px 20px}
.adminbox-h{font-family:'Lexend',sans-serif;font-size:14px;color:#F0C98A;display:flex;align-items:center;gap:10px}
.adminonly{font-size:11px;color:var(--amber);border:1px solid rgba(233,161,59,.4);border-radius:20px;padding:2px 9px;text-transform:uppercase;letter-spacing:.5px}
.adminstats{display:flex;gap:26px;flex-wrap:wrap;margin-top:12px}
.adminstats .as .n{font-family:'Lexend',sans-serif;font-weight:700;font-size:22px;color:#fff}
.adminstats .as .d{font-size:12px;color:var(--mist)}

/* modal */
.modal{position:fixed;inset:0;background:rgba(10,14,13,.72);display:flex;align-items:center;justify-content:center;z-index:60;padding:24px}
.modal-card{background:var(--bg2);border:1px solid var(--line);border-radius:18px;width:min(920px,94vw);box-shadow:0 40px 90px rgba(0,0,0,.55)}
.modal-card.small{width:min(420px,94vw)}
.modal-h{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line);font-family:'Lexend',sans-serif;color:#fff}
.modal-x{background:transparent;border:0;color:var(--mist);font-size:16px;cursor:pointer}
.modal-body{padding:18px 20px}
.pwnote{color:var(--mist);font-size:14px;margin-bottom:8px}
.modal-body .field label{color:var(--mist)}
.modal-body .field input{background:#fff;color:var(--card-ink)}

.uplot{width:100%!important}
.u-title{color:#E7EEEB}

/* tabs */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:22px}
.tab{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--mist);font-family:'Lexend',sans-serif;font-size:14px;padding:10px 4px;margin-right:18px;cursor:pointer}
.tab:hover{color:#fff}
.tab.active{color:#fff;border-bottom-color:var(--green)}

/* raw channels */
.rawtop{display:flex;align-items:center;gap:16px;margin-bottom:16px;flex-wrap:wrap}
.rawsearch{background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:10px 14px;color:#fff;font-family:'Inter',sans-serif;font-size:14px;min-width:260px;flex:1;max-width:420px}
.rawsearch:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(47,191,135,.15)}
.rawsearch::placeholder{color:var(--dim)}
.rawsec{margin-bottom:24px}
.rawsec .rs-h{font-family:'Lexend',sans-serif;font-size:13px;color:#E7EEEB;margin-bottom:10px;display:flex;align-items:baseline;gap:9px}
.rawsec .rs-h .rs-note{color:var(--dim);font-size:11.5px;font-weight:400;text-transform:none;letter-spacing:0}
.raw-empty{color:var(--dim);font-size:14px;padding:20px 0}

/* system schematic */
.schematic{background:var(--bg2);border:1px solid var(--line);border-radius:16px;padding:8px}
.schematic svg{width:100%;height:auto;display:block}
.schematic .pin{cursor:pointer}
.schematic .pin rect.pinbox{transition:stroke .15s,fill .15s}
.schematic .pin:hover rect.pinbox{stroke:var(--green);fill:#2b3a35}
.schematic .pin:hover circle.pindot{fill:var(--green)}

/* electrical deep-dive */
.elec-status{color:var(--mist);font-size:12.5px;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.elec-group{margin-bottom:26px}
.elec-group h3{font-family:'Lexend',sans-serif;font-size:12px;letter-spacing:1.5px;color:#9BE6C6;margin-bottom:12px;text-transform:uppercase;font-weight:600}
.elec-group .tiles{margin-bottom:14px}
.harmonics{display:flex;flex-direction:column;gap:11px;padding:6px 2px}
.harmonics .hbar{display:grid;grid-template-columns:70px 1fr 64px;gap:12px;align-items:center}
.harmonics .hbar .hl{color:var(--mist);font-size:12.5px;font-family:'Lexend',sans-serif}
.harmonics .hbar .htrack{background:rgba(255,255,255,.06);border-radius:6px;height:14px;overflow:hidden}
.harmonics .hbar .hfill{height:100%;background:linear-gradient(90deg,var(--amber),#F0C98A);border-radius:6px}
.harmonics .hbar .hv{color:#E7EEEB;font-size:12.5px;text-align:right;font-family:'Lexend',sans-serif}

/* insights: recommendation cards */
.recs{display:flex;flex-direction:column;gap:12px}
.rec{display:flex;gap:14px;background:var(--bg2);border:1px solid var(--line);border-left-width:4px;border-radius:14px;padding:16px 18px}
.rec.opportunity{border-left-color:var(--green)}
.rec.warn{border-left-color:var(--amber)}
.rec.info{border-left-color:var(--dim)}
.rec.ok{border-left-color:#3A5A4E;opacity:.82}
.rec.ok .rec-badge{background:rgba(47,191,135,.10);color:#7FB79E}
.rec.ok .rec-t{color:#C9D2CF;font-weight:500}
.rec .rec-rule{color:var(--dim);font-size:11.5px;margin-top:6px;font-style:italic}
.ov-block{margin-top:24px}
.ov-h{font-family:'Lexend',sans-serif;font-size:12px;letter-spacing:1.5px;color:#9BE6C6;margin-bottom:12px;text-transform:uppercase;font-weight:600;display:flex;align-items:center;gap:10px}
.rec .rec-main{flex:1;min-width:0}
.rec .rec-t{font-family:'Lexend',sans-serif;font-weight:600;font-size:15px;color:#fff;display:flex;align-items:center;gap:9px}
.rec .rec-badge{font-size:10px;letter-spacing:.5px;text-transform:uppercase;padding:2px 8px;border-radius:20px}
.rec.opportunity .rec-badge{background:rgba(47,191,135,.16);color:#9BE6C6}
.rec.warn .rec-badge{background:rgba(233,161,59,.16);color:#F0C98A}
.rec.info .rec-badge{background:rgba(124,136,132,.2);color:var(--mist)}
.rec .rec-d{color:var(--mist);font-size:13.5px;margin-top:7px;line-height:1.55}
.rec .rec-a{color:#CDEBDD;font-size:13px;margin-top:8px}
.rec .rec-a b{color:#fff;font-weight:600}
.rec .rec-save{flex:none;text-align:right;min-width:120px}
.rec .rec-save .rs-v{font-family:'Lexend',sans-serif;font-weight:800;font-size:22px;color:#F0C98A;line-height:1}
.rec .rec-save .rs-k{color:var(--mist);font-size:12px;margin-top:4px}
.rec .rec-save .rs-l{color:var(--dim);font-size:10px;letter-spacing:.5px;text-transform:uppercase;margin-top:6px}
@media(max-width:640px){.rec{flex-direction:column}.rec .rec-save{text-align:left}}

/* insights: hour-of-day profile */
.hourprofile{display:flex;align-items:flex-end;gap:3px;height:130px;background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:14px 12px}
.hourprofile .hb{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:5px}
.hourprofile .hb .hbf{width:100%;background:linear-gradient(180deg,var(--green),var(--green-deep));border-radius:3px;min-height:2px}
.hourprofile .hb .hbl{color:var(--dim);font-size:9px}

/* ISO 8573-1 class chips */
.isochips{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.isochip{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:12px 16px;min-width:150px}
.isochip .ic-k{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--dim)}
.isochip .ic-v{font-family:'Lexend',sans-serif;font-weight:700;font-size:20px;color:#fff;margin-top:5px}
.isochip .ic-d{font-size:11.5px;color:var(--mist);margin-top:3px}

/* time control */
.timectl{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tlabel{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--dim)}
#rangeSel,.uselect{background:var(--bg2);color:#E7EEEB;border:1px solid var(--line);border-radius:9px;padding:8px 10px;font-family:'Lexend',sans-serif;font-size:13px;cursor:pointer}
.uselect{padding:5px 8px;font-size:12px}
.custom{display:flex;align-items:center;gap:8px;margin-left:4px}
.custom input{background:var(--bg2);color:#E7EEEB;border:1px solid var(--line);border-radius:9px;padding:7px 9px;font-family:'Inter',sans-serif;font-size:12.5px;color-scheme:dark}
.custom span{color:var(--dim)}
#applyCustom{background:var(--green);color:var(--green-ink);border:0;border-radius:9px;padding:8px 12px;font-family:'Lexend',sans-serif;font-weight:600;font-size:13px;cursor:pointer}
#applyCustom:hover{background:var(--green-deep);color:#fff}
.ch-tools{display:flex;align-items:center;gap:8px}

/* specific power hero */
.effhero{display:grid;grid-template-columns:minmax(220px,1fr) 1.7fr;gap:22px;align-items:center;
  background:linear-gradient(120deg,rgba(47,191,135,.16),rgba(31,122,87,.06));
  border:1px solid rgba(47,191,135,.35);border-radius:18px;padding:20px 24px;margin-bottom:22px}
@media(max-width:900px){.effhero{grid-template-columns:1fr}}
.eff-k{font-family:'Lexend',sans-serif;font-size:13px;letter-spacing:.4px;color:#BFE6D2}
.eff-v{font-family:'Lexend',sans-serif;font-weight:800;font-size:clamp(36px,5.5vw,56px);color:#fff;line-height:1;margin-top:8px}
.eff-v .eff-u{font-size:16px;font-weight:500;color:var(--green)}
.eff-sub{color:var(--mist);font-size:12.5px;margin-top:8px}
.eff-chart{min-width:0}
