:root{
  --bg:#07131d;--panel:#0b1d2a;--panel2:#0e2434;--line:#17364b;--text:#eef7ff;
  --muted:#8fb0c7;--blue:#1e8fff;--green:#20cf83;--red:#ff5c64;--orange:#f4a11a;--gray:#728494
}
*{box-sizing:border-box}
html,body{margin:0;background:linear-gradient(180deg,#06111a,#081722 45%,#07131d);color:var(--text);font-family:"Segoe UI",Tahoma,Arial,sans-serif;min-height:100%}
body{min-height:100vh;display:flex;flex-direction:column}
.topbar{height:76px;border-bottom:1px solid var(--line);background:rgba(5,16,25,.96);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:10;backdrop-filter:blur(8px)}
.brand{display:flex;align-items:center;gap:10px;direction:ltr}
.product-logo-panel{width:52px;height:52px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;overflow:hidden}
.product-logo{display:block;width:100%;height:100%;object-fit:contain}
.company-logo-panel{width:152px;height:56px;padding:0;border-radius:0;background:transparent;border:0;display:flex;align-items:center;justify-content:center;box-shadow:none;flex:0 0 auto}
.company-logo{display:block;max-width:100%;max-height:100%;object-fit:contain}
.brand-copy{min-width:0}.brand h1{font-size:17px;margin:0;white-space:nowrap}.sub{font-size:11px;color:var(--muted);margin-top:3px;direction:rtl;text-align:left;white-space:nowrap}
.top-actions{display:flex;gap:14px;align-items:center}.clock{color:var(--muted);font-size:13px;direction:ltr}
.pill{border:1px solid var(--line);border-radius:999px;padding:7px 11px;font-size:12px}
.pill.ok{color:#9ef2ca;border-color:#1f6f52;background:#0c2b21}.pill.bad{color:#ffadb1;border-color:#773139;background:#30151a}.pill.pending{color:#ffd895}
main{width:min(1500px,calc(100% - 36px));margin:22px auto 38px;flex:1}
.hero{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.hero h2{margin:0;font-size:30px}.hero p{color:var(--muted);margin:7px 0 0}
.refresh{border:1px solid #297bc0;background:#0f66ad;color:white;padding:11px 18px;border-radius:9px;cursor:pointer;font-weight:650}.refresh:hover{background:#1376c6}
.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin:0 0 22px}
.summary-card{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:0 12px 35px rgba(0,0,0,.12)}
.summary-card span{display:block;color:var(--muted);font-size:13px}.summary-card strong{display:block;font-size:27px;margin-top:6px;direction:ltr}
.group{margin:0 0 26px}.group-head{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 2px 10px;margin-bottom:13px}
.group-head h3{margin:0;font-size:19px}.group-head .meta{color:var(--muted);font-size:12px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:13px}
.scale-card{background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--line);border-radius:15px;padding:16px;min-height:205px;box-shadow:0 10px 30px rgba(0,0,0,.15);position:relative;overflow:hidden}
.scale-card::before{content:"";position:absolute;right:0;top:0;bottom:0;width:4px;background:var(--gray)}
.scale-card.connected::before{background:var(--green)}.scale-card.error::before,.scale-card.disconnected::before{background:var(--red)}.scale-card.disabled::before{background:var(--gray)}.scale-card.connecting::before{background:var(--orange)}
.card-top{display:flex;justify-content:space-between;align-items:start;gap:10px}.card-title{font-size:19px;font-weight:700}.location{color:var(--muted);font-size:12px;margin-top:4px}
.status{font-size:11px;border-radius:999px;padding:6px 9px;border:1px solid var(--line);white-space:nowrap}.status.connected{color:#9cf0c7;background:#0b2b20;border-color:#1b6a4c}.status.error,.status.disconnected{color:#ffb0b4;background:#311519;border-color:#7a3038}.status.disabled{color:#cad4dc;background:#1b252c}.status.connecting{color:#ffda9b;background:#302516;border-color:#765a2c}
.weight-row{display:flex;align-items:flex-end;justify-content:space-between;margin:22px 0 13px;direction:ltr}.weight{font-size:36px;font-weight:800;letter-spacing:-1px}.unit{font-size:13px;color:var(--muted);margin-left:5px;margin-bottom:6px}
.capacity{text-align:right;color:var(--muted);font-size:12px;direction:rtl}
.bar{height:8px;border-radius:99px;background:#051019;border:1px solid #173449;overflow:hidden}.bar>i{display:block;height:100%;background:linear-gradient(90deg,#1879dd,#21c885);border-radius:99px}
.details{display:grid;grid-template-columns:1fr 1fr;gap:7px 14px;margin-top:14px;font-size:12px}.details div{display:flex;justify-content:space-between;gap:10px;color:var(--muted)}.details b{color:#d8e9f5;font-weight:600;text-align:left}
.error-box{border:1px solid #7b3038;background:#31151b;color:#ffc4c7;border-radius:10px;padding:12px 14px;margin-bottom:16px}.hidden{display:none}
.loading,.empty{padding:50px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:14px}
footer{border-top:1px solid var(--line);color:#648399;padding:14px 24px;display:flex;justify-content:center;align-items:center;text-align:center;font-size:11px}
@media(max-width:800px){.topbar{padding:0 14px}.brand h1{font-size:15px}.sub{display:none}.hero h2{font-size:24px}.summary-grid{grid-template-columns:1fr 1fr}.cards{grid-template-columns:1fr}.clock{display:none}}

.fleet-state.fleet-noscales,.fleet-state.fleet-unknown{background:var(--surface-3);color:var(--text-muted);border-color:var(--border)}
.fleet-state.fleet-link-online{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}
.fleet-state.fleet-link-offline{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}
.fleet-connectivity{display:grid;gap:5px;justify-items:start;margin-block:5px}


/* Scale card focus / zoom mode */
.scale-card{cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.scale-card:hover{transform:translateY(-2px);border-color:#285777}
.scale-card:focus-visible{outline:2px solid var(--blue);outline-offset:3px}

.scale-focus-mode .hero,
.scale-focus-mode .summary-grid{display:none}

.scale-focus-mode main{
  width:min(1500px,calc(100% - 36px));
  margin-top:24px;
}

.scale-focus-mode .focus-hidden,
.scale-focus-mode .focus-hidden-group{
  display:none !important;
}

.scale-focus-mode .focus-active-group .group-head{
  display:none;
}

.scale-focus-mode .focus-active-group{
  margin:0;
}

.scale-focus-mode .focus-active-group .cards{
  display:block;
}

.scale-card.focused-scale{
  width:min(100%,1150px);
  min-height:620px;
  margin:18px auto 40px;
  padding:34px;
  cursor:zoom-out;
  border-color:#2b78ae;
  box-shadow:0 24px 80px rgba(0,0,0,.42),0 0 0 1px rgba(30,143,255,.14);
  transform:none;
}

.scale-card.focused-scale .card-title{
  font-size:32px;
}

.scale-card.focused-scale .location{
  font-size:16px;
  margin-top:8px;
}

.scale-card.focused-scale .status{
  font-size:14px;
  padding:8px 14px;
}

.scale-card.focused-scale .weight-row{
  margin:70px 0 28px;
}

.scale-card.focused-scale .weight{
  font-size:86px;
}

.scale-card.focused-scale .unit{
  font-size:21px;
  margin-bottom:15px;
}

.scale-card.focused-scale .capacity{
  font-size:17px;
}

.scale-card.focused-scale .bar{
  height:16px;
}

.scale-card.focused-scale .details{
  margin-top:38px;
  grid-template-columns:repeat(2,1fr);
  gap:22px 46px;
  font-size:17px;
}

.scale-card.focused-scale .details div{
  padding-bottom:12px;
  border-bottom:1px solid rgba(143,176,199,.13);
}

@media(max-width:800px){
  .scale-card.focused-scale{
    min-height:520px;
    padding:24px;
    margin-top:5px;
  }
  .scale-card.focused-scale .weight{font-size:64px}
  .scale-card.focused-scale .details{grid-template-columns:1fr;font-size:15px}
}


/* Main navigation */
.main-nav{display:flex;gap:6px;align-self:stretch;align-items:center;margin-inline:auto}
.nav-btn{border:0;background:transparent;color:var(--muted);padding:10px 14px;border-radius:9px;cursor:pointer;font-weight:650;font-family:inherit}
.nav-btn:hover{background:#0c2434;color:#dcefff}.nav-btn.active{background:#12334a;color:#fff;box-shadow:inset 0 -2px 0 var(--blue)}
.alerts-nav-btn{position:relative;display:inline-flex;align-items:center;gap:6px}.alerts-count-badge{position:absolute;inset-inline-start:2px;top:1px;display:grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#d92d20;color:#fff;font-size:11px;line-height:1;border:2px solid var(--surface,#fff)}
.app-view{display:none}.app-view.active-view{display:block}

/* Filters */
.filter-panel{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr)) auto;gap:12px;background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);padding:15px;border-radius:14px;margin-bottom:14px;align-items:end}
.field{display:flex;flex-direction:column;gap:6px}.field label{color:var(--muted);font-size:12px}
.field input,.field select{height:40px;border-radius:8px;border:1px solid #21455e;background:#071722;color:#eaf6ff;padding:0 10px;font-family:inherit;outline:none}
.field input:focus,.field select:focus{border-color:#2a86c7;box-shadow:0 0 0 2px rgba(30,143,255,.12)}
.secondary-btn{border:1px solid #31536a;background:#0b2230;color:#dcecf6;padding:11px 18px;border-radius:9px;cursor:pointer;font-weight:650;font-family:inherit}
.secondary-btn:hover{background:#103146}

/* History */
.history-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.history-summary>div{border:1px solid var(--line);background:#0a1c28;border-radius:12px;padding:13px 15px}
.history-summary span{display:block;color:var(--muted);font-size:12px}.history-summary strong{display:block;font-size:22px;margin-top:6px;direction:ltr;text-align:right}
.table-wrap{border:1px solid var(--line);border-radius:13px;overflow:auto;background:#081a26}
.data-table,.report-table{width:100%;border-collapse:collapse;min-width:960px}
.data-table th,.data-table td,.report-table th,.report-table td{border-bottom:1px solid #153349;padding:10px 11px;text-align:right;vertical-align:top;font-size:12px}
.data-table th,.report-table th{position:sticky;top:0;background:#0d2a3d;color:#bcd5e7;z-index:1}
.data-table tbody tr:hover{background:#0d2737}.data-table small{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.ltr-cell{direction:ltr;text-align:right!important}.details-cell{max-width:300px;white-space:normal;color:#b7cad8}.muted-cell{text-align:center!important;color:var(--muted);padding:35px!important}.error-cell{text-align:center!important;color:#ffadb1;padding:35px!important}
.event-badge{display:inline-block;padding:4px 8px;border-radius:999px;border:1px solid #31536a;background:#102634;font-size:11px}
.ev-consumption{color:#ffbf95;border-color:#78462e;background:#2e1c14}.ev-filling{color:#a9efcb;border-color:#28654b;background:#102c22}.ev-gap{color:#ffadb1;border-color:#7a3038;background:#301519}.ev-opening,.ev-closing{color:#b8d9ff;border-color:#315d85;background:#13263a}
.data-warning{color:#ffadb1;font-weight:700}.incomplete-row{background:rgba(116,31,37,.16)}

/* Reports */
.report-hero{gap:18px}.report-actions{display:flex;gap:9px}
.report-content{display:flex;flex-direction:column;gap:20px}
.print-report{background:#fff;color:#14212b;border-radius:14px;padding:30px;box-shadow:0 14px 45px rgba(0,0,0,.2)}
.print-report-head{display:flex;justify-content:space-between;gap:30px;border-bottom:2px solid #dce7ee;padding-bottom:17px;margin-bottom:18px}
.print-report-head h3{margin:5px 0;font-size:23px}.print-report-head p{margin:0;color:#61727e}.report-brand{font-size:12px;color:#2574a9;font-weight:800;letter-spacing:.4px;direction:ltr;text-align:right}
.report-period{text-align:left;min-width:260px}.report-period span{display:block;color:#70808b;font-size:11px}.report-period b{display:block;margin-top:5px;font-size:12px;direction:ltr}
.report-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.report-metrics>div{background:#f3f7fa;border:1px solid #dbe6ed;border-radius:9px;padding:12px}.report-metrics span{display:block;color:#667985;font-size:11px}.report-metrics strong{display:block;font-size:19px;margin-top:5px;direction:ltr;text-align:right}.metric-alert{border-color:#e5a5aa!important;background:#fff4f5!important}
.report-warning{border:1px solid #e6a5aa;background:#fff3f4;color:#862b35;border-radius:8px;padding:10px 12px;margin:0 0 14px;font-size:12px}
.report-table{min-width:0}.report-table th{position:static;background:#eaf1f5;color:#334955}.report-table th,.report-table td{border-bottom:1px solid #dce6ec;font-size:11px}
.report-footer{border-top:1px solid #e2eaef;margin-top:18px;padding-top:9px;color:#72828d;font-size:10px}

/* Print: each scale is a separate report/page */
@media print{
  @page{size:A4;margin:10mm}
  body{background:#fff!important;color:#111!important;display:block}
  .topbar,.hero,.filter-panel,footer,.error-box,.report-actions,.nav-btn,.main-nav{display:none!important}
  main{width:100%!important;margin:0!important}
  .app-view{display:none!important}
  #reportsView{display:block!important}
  .report-content{display:block}
  .print-report{box-shadow:none!important;border-radius:0!important;padding:0!important;margin:0!important;break-inside:avoid}
  .page-break{break-after:page;page-break-after:always}
  .report-table{font-size:9pt}
  .report-table tr{break-inside:avoid}
}
@media(max-width:950px){
  .topbar{height:auto;min-height:76px;flex-wrap:wrap;padding-block:10px}.main-nav{order:3;width:100%;justify-content:center}
  .filter-panel{grid-template-columns:1fr 1fr}.history-summary{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .filter-panel{grid-template-columns:1fr}.history-summary{grid-template-columns:1fr 1fr}
  .report-actions{width:100%;justify-content:flex-start}.report-hero{align-items:flex-start;flex-direction:column}
  .report-metrics{grid-template-columns:1fr 1fr}.print-report{padding:18px}.print-report-head{flex-direction:column}.report-period{text-align:right;min-width:0}
}

.no-report-events{border:1px dashed #cbd8e0;background:#f8fbfd;color:#657783;border-radius:8px;padding:28px;text-align:center;font-size:12px}


/* Live view filter controls */
.view-options{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:-4px 0 16px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#081a26;
}
.view-options-title{color:var(--muted);font-size:12px;font-weight:650}
.view-filter{display:flex;gap:6px;flex-wrap:wrap}
.view-filter-btn{
  border:1px solid #274c64;
  background:#0a2230;
  color:#9fbdcf;
  padding:8px 13px;
  border-radius:9px;
  cursor:pointer;
  font-family:inherit;
  font-weight:650;
  font-size:12px;
}
.view-filter-btn:hover{background:#103147;color:#e8f5ff}
.view-filter-btn.active{
  background:#126eb8;
  border-color:#2d8ddd;
  color:#fff;
  box-shadow:0 0 0 1px rgba(30,143,255,.12);
}

/* Silo card layout */
.scale-main{
  display:grid;
  grid-template-columns:180px 1fr;
  align-items:center;
  gap:24px;
  margin:22px 0 16px;
  min-height:210px;
}
.silo-visual{
  position:relative;
  width:150px;
  height:205px;
  margin:auto;
  direction:ltr;
}
.silo-top{
  position:absolute;
  top:0;
  left:18px;
  width:114px;
  height:30px;
  border:3px solid #5c7c91;
  border-bottom:0;
  border-radius:60px 60px 0 0;
  background:#0e2635;
  z-index:3;
}
.silo-body{
  position:absolute;
  top:26px;
  left:18px;
  width:114px;
  height:126px;
  border:3px solid #5c7c91;
  border-top:0;
  background:linear-gradient(90deg,#0c2230,#102d3f 50%,#0b202d);
  overflow:hidden;
  z-index:2;
}
.silo-cone{
  position:absolute;
  top:148px;
  left:18px;
  width:0;
  height:0;
  border-left:57px solid transparent;
  border-right:57px solid transparent;
  border-top:38px solid #5c7c91;
  z-index:1;
}
.silo-cone::after{
  content:"";
  position:absolute;
  left:-51px;
  top:-38px;
  width:0;
  height:0;
  border-left:51px solid transparent;
  border-right:51px solid transparent;
  border-top:33px solid #0d2635;
}
.silo-leg{
  position:absolute;
  top:178px;
  width:5px;
  height:25px;
  border-radius:3px;
  background:#5c7c91;
}
.silo-leg-left{left:43px}.silo-leg-right{right:43px}

.silo-fill{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  min-height:0;
  background:linear-gradient(180deg,rgba(41,160,255,.8),rgba(23,113,209,.95));
  transition:height .45s ease;
}
.silo-fill::before{
  content:"";
  position:absolute;
  top:-5px;
  left:0;
  right:0;
  height:10px;
  border-radius:50%;
  background:rgba(71,181,255,.95);
}
.silo-content{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  z-index:4;
  text-shadow:0 2px 5px rgba(0,0,0,.75);
}
.silo-percent{font-size:24px;font-weight:800;color:#f2f9ff;direction:ltr}
.silo-weight{font-size:14px;font-weight:700;color:#cbe9ff;margin-top:5px;direction:ltr}
.silo-weight span{font-size:10px;color:#91b7cf}
.silo-offline{opacity:.65}
.silo-offline .silo-fill{display:none}
.silo-offline .silo-percent,.silo-offline .silo-weight{color:#8ca4b4}

.scale-info{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.info-block{
  min-height:74px;
  border:1px solid #173a50;
  border-radius:11px;
  background:#081923;
  padding:11px 13px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.info-block span{color:var(--muted);font-size:11px}
.info-block strong{
  display:block;
  margin-top:5px;
  font-size:20px;
  direction:ltr;
  text-align:right;
}
.info-block strong small{font-size:10px;color:#86a6bb;font-weight:500}

/* Focused silo card */
.scale-card.focused-scale .scale-main{
  grid-template-columns:300px 1fr;
  gap:50px;
  margin:38px 0 32px;
  min-height:340px;
}
.scale-card.focused-scale .silo-visual{
  transform:scale(1.45);
}
.scale-card.focused-scale .scale-info{
  gap:16px;
}
.scale-card.focused-scale .info-block{
  min-height:110px;
  padding:18px;
}
.scale-card.focused-scale .info-block span{font-size:15px}
.scale-card.focused-scale .info-block strong{font-size:32px}
.scale-card.focused-scale .details{
  margin-top:25px;
}

@media(max-width:800px){
  .view-options{align-items:flex-start;flex-direction:column}
  .scale-main{grid-template-columns:1fr;gap:12px}
  .scale-info{grid-template-columns:1fr 1fr;width:100%}
  .scale-card.focused-scale .scale-main{grid-template-columns:1fr;gap:26px}
  .scale-card.focused-scale .silo-visual{transform:scale(1.2)}
}

/* Connection diagnostics: keep the primary status simple and expose details on hover. */
.diagnostic-icons{display:flex;gap:7px;align-items:center;justify-content:flex-end;margin:8px 2px 0}.diag-icon{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:28px;padding:0 6px;border:1px solid var(--line);border-radius:9px;background:var(--surface-3);font-size:16px;cursor:help;user-select:none}

.hidden{display:none!important}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin:18px 0}.admin-card{background:#fff;border-radius:16px;padding:18px;margin:18px 0;box-shadow:0 4px 18px rgba(0,0,0,.06)}.admin-card h3{margin-top:0}.admin-card input,.admin-card select{width:100%;box-sizing:border-box;padding:10px 12px;margin:6px 0;border:1px solid #d9dfe8;border-radius:9px;font:inherit}.admin-message{padding:12px 16px;border-radius:10px;background:#eaf7ee;color:#176b35;margin:12px 0}.admin-message.error{background:#fff0f0;color:#a22}.customer-admin-item{border-top:1px solid #eee;padding:12px 0}.customer-admin-item:first-child{border-top:0}.uid{font-family:monospace;font-size:12px;direction:ltr;display:inline-block}.station-assign{min-width:220px}.mini-muted{font-size:12px;opacity:.7}

/* Customer/account administration */
.admin-label{display:block;margin-top:8px;font-size:12px;font-weight:700;color:#45536a}
.fleet-hero{display:flex;justify-content:space-between;align-items:center;padding:22px;border-radius:18px;background:linear-gradient(135deg,#092f49,#116a8b);color:#fff;margin-bottom:16px}.fleet-hero h2{margin:0 0 6px}.fleet-hero p{margin:0;opacity:.82}.fleet-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.fleet-metric{background:var(--card,#fff);border:1px solid var(--line,#dbe6ed);border-radius:14px;padding:14px;box-shadow:0 3px 12px rgba(0,0,0,.04)}.fleet-metric span{display:block;color:var(--muted,#647381);font-size:11px}.fleet-metric strong{display:block;font-size:25px;margin-top:5px}.fleet-attention{display:grid;gap:8px}.fleet-attention-item{display:grid;grid-template-columns:auto 180px 1fr;align-items:center;gap:10px;width:100%;border:1px solid var(--line,#dbe6ed);background:var(--card,#fff);padding:10px 12px;border-radius:11px;text-align:start;cursor:pointer}.fleet-attention-item small{color:var(--muted,#647381)}.fleet-state{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:800}.fleet-healthy,.fleet-succeeded{background:#e4f7ec;color:#147443}.fleet-warning,.fleet-pending,.fleet-accepted,.fleet-running{background:#fff4d6;color:#896000}.fleet-critical,.fleet-failed{background:#ffe4e7;color:#ad2332}.fleet-offline,.fleet-expired,.fleet-cancelled{background:#edf0f3;color:#596571}.fleet-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) 180px auto;gap:10px;margin-bottom:12px}.fleet-toolbar input,.fleet-toolbar select{margin:0}.fleet-table small{display:block}.fleet-pager{display:flex;justify-content:center;align-items:center;gap:15px;margin-top:13px}.fleet-details-card{width:min(1180px,94vw);max-height:92vh;overflow:auto}.fleet-details-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.fleet-details-head h2{margin:0}.fleet-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:15px 0}.fleet-info-grid>div{border:1px solid var(--line,#dbe6ed);border-radius:11px;padding:11px}.fleet-info-grid span{display:block;color:var(--muted,#647381);font-size:11px}.fleet-info-grid strong{display:block;margin-top:4px}.remote-actions{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:18px}.remote-actions button{border:0;border-radius:9px;padding:10px 14px;background:#0d6ea8;color:#fff;font-weight:700;cursor:pointer}.remote-actions .warning-action{background:#a86c0d}.remote-actions .danger-action{background:#b52334}.remote-actions button:disabled{opacity:.5}.command-error{color:#b52334}.link-btn{border:0;background:none;color:#0877b9;text-decoration:underline;cursor:pointer}.fleet-empty{padding:20px;text-align:center;color:var(--muted,#647381)}
@media(max-width:700px){.fleet-toolbar{grid-template-columns:1fr}.fleet-attention-item{grid-template-columns:1fr}.fleet-details-card{width:96vw}.fleet-metrics{grid-template-columns:repeat(2,1fr)}}
.admin-edit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:10px 0}
.admin-edit-grid label{display:grid;gap:5px;font-size:12px;font-weight:700;color:#45536a}
.admin-edit-grid input,.admin-edit-grid select{width:100%;box-sizing:border-box;padding:9px 10px;border:1px solid #d9dfe8;border-radius:9px;font:inherit;background:#fff}
.admin-check{display:flex!important;grid-auto-flow:column;grid-template-columns:auto 1fr!important;align-items:center;justify-content:flex-start;gap:8px!important;padding-top:22px}
.admin-check input{width:auto!important;margin:0!important}
.admin-inline-actions{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 12px}
.admin-customer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.admin-customer-head strong{font-size:18px}
.admin-user-row{border:1px solid #e4e8ef;border-radius:12px;padding:12px;margin-top:10px;background:#fafbfd}
.admin-tree{padding:8px 0 12px;line-height:1.7}
.status-active,.status-disabled{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:800}
.status-active{background:#eaf7ee;color:#176b35}.status-disabled{background:#fff0f0;color:#a22}
.legacy-migration-meta{display:block;margin-top:4px;color:var(--muted,#637083)}
.legacy-fingerprint{display:inline-block;max-width:34rem;direction:ltr;font-family:Consolas,"Courier New",monospace;white-space:normal;overflow-wrap:anywhere;word-break:break-all;user-select:text}
.legacy-migrations-card .admin-inline-actions{min-width:220px}
#accountView .admin-card{margin-top:0}

/* ===== Desktop/WPF visual parity for Live View ===== */
.cards{grid-template-columns:repeat(2,minmax(520px,1fr));gap:14px}
.desktop-card{padding:0;min-height:560px;border-color:#1b78c2;border-radius:12px;background:#101c28;box-shadow:0 0 18px rgba(12,122,214,.2);overflow:hidden}
.desktop-card::before{display:none}
.desktop-card:hover{transform:none;border-color:#2b91f0;box-shadow:0 0 22px rgba(20,140,255,.28)}
.desktop-card-head{min-height:82px;padding:12px 16px;background:#0b1a28;border-bottom:1px solid #1d71b5;display:flex;align-items:center;justify-content:space-between;gap:14px}
.desktop-scale-ident{display:flex;align-items:center;gap:14px;min-width:0}.desktop-silo-thumb{width:58px;height:58px;border-radius:8px;background:var(--surface-3);border:1px solid #2a86cf;display:grid;place-items:center;flex:0 0 auto}.desktop-silo-thumb img{max-width:48px;max-height:54px;object-fit:contain}.desktop-card .card-title{font-size:24px;font-weight:650}.desktop-card .location{font-size:14px;color:var(--text-muted);margin-top:4px}.location-dot{color:#168cff;margin-inline-end:6px}.desktop-status-tools{display:flex;align-items:center;gap:7px}.desktop-card .status{background:var(--surface-3);border-color:#2479b6;padding:7px 10px;display:flex;align-items:center;gap:6px}.desktop-card .status i{width:8px;height:8px;border-radius:50%;background:currentColor}.desktop-card .diag-icon{background:var(--surface-3);border:0;min-width:32px;height:32px;border-radius:10px}
.desktop-card-body{display:grid;grid-template-columns:minmax(190px,.92fr) minmax(310px,1.45fr) minmax(170px,.88fr);align-items:center;gap:8px;padding:18px 16px 12px;min-height:430px;direction:ltr}.desktop-card-body>*{direction:rtl}
.desktop-metrics{display:flex;flex-direction:column;gap:10px}.desktop-metric{min-height:86px;padding:13px 14px;border:1px solid #2b91f0;border-radius:13px;background:#0a1a28;box-shadow:0 0 14px rgba(20,127,227,.26);display:grid;grid-template-columns:52px 1fr;align-items:center;gap:12px}.desktop-metric-icon{width:52px;height:52px;border-radius:11px;background:var(--surface-3);border:1px solid #2d86d6;box-shadow:0 0 12px rgba(22,141,255,.36);display:grid;place-items:center;font-size:27px;color:#87c5ff}.desktop-metric span{display:block;color:#b6c6d6;font-size:13px}.desktop-metric strong{display:block;margin-top:4px;color:#f1f5f9;font-size:25px;direction:ltr;text-align:right;white-space:nowrap}.desktop-metric strong small{font-size:13px;color:#9ab4c7}.desktop-metric .metric-weight{color:#35e77b;font-size:31px}.desktop-metric .metric-fill{color:#f4a11a;font-size:29px}
.real-silo-wrap{position:relative;width:min(100%,320px);aspect-ratio:447/670;margin:auto;direction:ltr;filter:drop-shadow(0 12px 22px rgba(0,0,0,.28))}.real-silo-glow{position:absolute;width:96%;height:84%;left:2%;top:8%;border-radius:50%;background:radial-gradient(circle,rgba(47,128,200,.2),rgba(27,90,146,.07) 50%,transparent 72%)}.grain-chamber{position:absolute;left:10.51%;top:22.84%;width:77.63%;height:50.75%;overflow:hidden;background:#0e1822}.grain-fill-layer{--fill:0;position:absolute;inset:0;clip-path:inset(calc((100 - var(--fill))*1%) 0 0 0);transition:clip-path .45s ease}.grain-fill-layer img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}.grain-glass{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.12) 3%,rgba(255,255,255,.02) 20%,rgba(255,255,255,.08) 48%,rgba(255,255,255,.01) 72%,rgba(255,255,255,.08) 95%);pointer-events:none}.real-silo-shell{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:3}.real-silo-wrap.silo-offline{opacity:.72}.real-silo-wrap.silo-offline .grain-fill-layer{clip-path:inset(100% 0 0 0)!important}
.desktop-side-info{display:flex;flex-direction:column;align-items:center;gap:24px}.fill-ring{--fill:0;width:165px;height:165px;border-radius:50%;padding:13px;background:conic-gradient(#f4a11a calc(var(--fill)*1%),#21394d 0);position:relative;transform:rotate(-36deg)}.fill-ring::after{content:"";position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(transparent 0 48deg,#101c28 48deg 57deg);pointer-events:none}.fill-ring-inner{position:relative;z-index:2;width:100%;height:100%;border-radius:50%;background:#101c28;display:grid;place-items:center;transform:rotate(36deg)}.fill-ring-inner strong{font-size:26px;color:#f8fafc;direction:ltr}.connection-box{width:100%;max-width:220px;border:1px solid #2479b6;border-radius:10px;background:#0a1825;padding:12px;color:#9db3c5;font-size:12px;line-height:1.9}.connection-box b{color:#d9e7f2;font-weight:600}.conn-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#728494;margin-inline-end:5px}.conn-dot.connected{background:#20cf83}.conn-dot.disconnected,.conn-dot.error{background:#ff5c64}.conn-dot.connecting{background:#f4a11a}
.desktop-card-foot{height:42px;border-top:1px solid #1d71b5;background:#091824;padding:0 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#8fa9bb;font-size:12px}.desktop-card-foot b{color:#dce9f2}
.scale-card.focused-scale{width:min(100%,1400px);min-height:720px;padding:0}.scale-card.focused-scale .desktop-card-body{min-height:590px;grid-template-columns:minmax(230px,.9fr) minmax(420px,1.55fr) minmax(220px,.9fr);gap:28px;padding:24px 28px}.scale-card.focused-scale .real-silo-wrap{width:min(100%,410px)}.scale-card.focused-scale .desktop-metric{min-height:112px}.scale-card.focused-scale .desktop-metric strong{font-size:34px}.scale-card.focused-scale .desktop-metric .metric-weight{font-size:42px}.scale-card.focused-scale .desktop-metric .metric-fill{font-size:38px}.scale-card.focused-scale .fill-ring{width:205px;height:205px}.scale-card.focused-scale .fill-ring-inner strong{font-size:34px}
@media(max-width:1180px){.cards{grid-template-columns:1fr}.desktop-card-body{grid-template-columns:minmax(180px,.85fr) minmax(300px,1.4fr) minmax(160px,.8fr)}}
@media(max-width:760px){.desktop-card{min-height:auto}.desktop-card-head{align-items:flex-start;flex-direction:column}.desktop-status-tools{align-self:stretch;flex-wrap:wrap}.desktop-card-body,.scale-card.focused-scale .desktop-card-body{grid-template-columns:1fr;direction:rtl}.desktop-metrics{order:2}.real-silo-wrap{order:1;width:min(100%,300px)}.desktop-side-info{order:3}.desktop-card-foot{height:auto;min-height:42px;align-items:flex-start;flex-direction:column;padding-block:10px}}

/* ===== Customer hierarchy / Site-Silo-Station management ===== */
.structure-summary{margin-bottom:18px}
.structure-create-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.admin-card textarea{width:100%;box-sizing:border-box;padding:10px 12px;margin:6px 0;border:1px solid #d9dfe8;border-radius:9px;font:inherit;resize:vertical}
.serial-input{direction:ltr;text-transform:uppercase;font-family:Consolas,"Courier New",monospace;font-weight:700;letter-spacing:.6px}
.structure-tree{display:grid;gap:18px}
.structure-region{border:1px solid var(--line);border-radius:14px;padding:16px;background:rgba(0,0,0,.025)}
.structure-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px}
.structure-head>div{display:flex;flex-direction:column;gap:3px}
.structure-edit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;align-items:end}
.structure-edit-grid label{display:grid;gap:5px;font-size:12px;font-weight:700}
.structure-edit-grid input,.structure-edit-grid select{width:100%;box-sizing:border-box;padding:9px 10px;border-radius:8px;font:inherit}
.structure-edit-grid button{min-height:39px}
.structure-sites{display:grid;gap:14px;margin-top:14px}
.structure-site{border:1px solid var(--line);border-radius:12px;padding:14px;background:rgba(255,255,255,.025)}
.site-head{padding-bottom:8px;border-bottom:1px solid var(--line)}
.asset-section{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.asset-section h4{margin:0 0 10px}
.silo-editor-grid,.scale-editors{display:grid;gap:10px}
.asset-editor{border:1px solid var(--line);border-radius:11px;padding:12px;background:rgba(0,0,0,.025)}
.asset-editor-title,.scale-editor-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.station-title>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.serial-badge{direction:ltr;font-family:Consolas,"Courier New",monospace;font-size:12px;font-weight:800;padding:4px 8px;border-radius:999px;border:1px solid var(--line)}
.scale-editor{border-top:1px dashed var(--line);padding-top:12px;margin-top:10px}
.scale-editor:first-child{border-top:0;padding-top:0;margin-top:0}
.compact-grid{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}
.danger-btn{border:1px solid transparent;border-radius:8px;padding:9px 13px;cursor:pointer;font:inherit;font-weight:700}
.structure-lifecycle-card{width:min(760px,96vw)}
.structure-impact-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:12px 0}
.structure-impact-summary>div{padding:11px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2)}
.structure-impact-summary span,.structure-impact-summary strong{display:block}.structure-impact-summary span{font-size:11px;color:var(--text-muted)}
.structure-lifecycle-warning{padding:13px;border:1px solid var(--warning-border);border-radius:11px;background:var(--warning-bg);color:var(--text-primary);line-height:1.55}
.structure-lifecycle-warning.danger{border-color:var(--danger-border);background:var(--danger-bg)}
.structure-lifecycle-form{display:grid;gap:10px;margin-top:14px}.structure-lifecycle-form label{display:grid;gap:6px;font-weight:700}
.structure-lifecycle-form input,.structure-lifecycle-form textarea,.structure-logger-row select{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:9px;padding:10px;background:var(--panel);color:var(--text);font:inherit}
.structure-logger-list{display:grid;gap:8px}.structure-logger-row{display:grid;grid-template-columns:minmax(0,1fr) 190px;align-items:center;gap:10px;padding:10px;border:1px solid var(--border);border-radius:10px}.structure-logger-row small{display:block;color:var(--text-muted)}
.structure-progress-state{padding:18px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);text-align:center}.structure-progress-state strong{display:block;font-size:19px;margin-bottom:8px}
.structure-archive-list{display:grid;gap:10px}.structure-archive-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.structure-archive-row p{margin:4px 0;color:var(--text-muted)}
@media(max-width:640px){.structure-impact-summary{grid-template-columns:1fr 1fr}.structure-logger-row,.structure-archive-row{grid-template-columns:1fr}}
.structure-empty-child{padding:10px 0}
@media(max-width:760px){.structure-edit-grid,.compact-grid{grid-template-columns:1fr}.structure-head,.asset-editor-title,.scale-editor-head{align-items:flex-start;flex-direction:column}}

/* ================= Live hierarchy sidebar ================= */
.live-workspace{display:grid;grid-template-columns:270px minmax(0,1fr);gap:18px;align-items:start;direction:ltr}
.live-sidebar,.live-results{direction:rtl}
.live-sidebar{position:sticky;top:94px;background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 12px 35px rgba(0,0,0,.10)}
.live-sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 16px;border-bottom:1px solid var(--line)}
.live-sidebar-head strong{display:block;font-size:16px}.live-sidebar-head span{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.sidebar-toggle{width:34px;height:34px;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:9px;cursor:pointer;font:inherit}
.live-sidebar-body{padding:14px;display:flex;flex-direction:column;gap:12px}
.sidebar-search span,.sidebar-section label,.sidebar-section-title{display:block;color:var(--muted);font-size:11px;font-weight:700;margin-bottom:6px}
.sidebar-search input,.sidebar-section select{width:100%;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:9px;padding:10px 11px;font:inherit;outline:none}
.sidebar-search input:focus,.sidebar-section select:focus{border-color:var(--blue);box-shadow:0 0 0 2px color-mix(in srgb,var(--blue) 18%,transparent)}
.live-region-list{display:flex;flex-direction:column;gap:7px;max-height:330px;overflow:auto;padding-inline-end:2px}
.region-filter-btn{width:100%;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px;padding:10px 11px;cursor:pointer;font:inherit;text-align:right;display:flex;align-items:center;justify-content:space-between;gap:8px}
.region-filter-btn:hover{border-color:var(--blue)}.region-filter-btn.active{background:color-mix(in srgb,var(--blue) 14%,var(--panel));border-color:var(--blue);font-weight:800}
.region-filter-btn small{color:var(--muted);font-size:10px;font-weight:500;white-space:nowrap}
.sidebar-section{border-top:1px solid var(--line);padding-top:12px}
.sidebar-status-filter{display:grid!important;grid-template-columns:1fr;gap:7px!important}.sidebar-status-filter .view-filter-btn{width:100%;text-align:center}
.sidebar-reset{border:1px solid var(--line);background:transparent;color:var(--text);border-radius:10px;padding:9px 12px;cursor:pointer;font:inherit}.sidebar-reset:hover{border-color:var(--blue)}
.live-results{min-width:0}.live-scope-title{display:flex;align-items:center;min-height:42px;margin-bottom:10px;padding:0 4px;color:var(--muted);font-size:13px}.live-scope-title strong{color:var(--text);font-size:16px}
.group-path{display:flex;flex-wrap:wrap;gap:6px 12px;color:var(--muted);font-size:12px;margin-top:5px}.group-path b{color:var(--text);font-weight:650}
.live-workspace.sidebar-collapsed{grid-template-columns:58px minmax(0,1fr)}.live-workspace.sidebar-collapsed .live-sidebar-body{display:none}.live-workspace.sidebar-collapsed .live-sidebar-head>div{display:none}.live-workspace.sidebar-collapsed .live-sidebar-head{justify-content:center;padding:10px}.live-workspace.sidebar-collapsed .live-sidebar{border-radius:12px}

@media(max-width:1050px){
  .live-workspace{grid-template-columns:1fr}.live-sidebar{position:static}.live-workspace.sidebar-collapsed{grid-template-columns:1fr}.live-workspace.sidebar-collapsed .live-sidebar{width:58px;justify-self:start}.live-region-list{max-height:210px}.sidebar-status-filter{grid-template-columns:repeat(3,1fr)!important}
}
@media(max-width:650px){.sidebar-status-filter{grid-template-columns:1fr!important}}


/* ===== Responsive live drawer + station analytics ===== */
html,body{max-width:100%;overflow-x:hidden}
.live-workspace{display:block!important;direction:rtl!important;position:relative}
.live-results{width:100%;min-width:0}
.live-filter-open{position:fixed;left:18px;top:92px;z-index:38;border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:11px;padding:10px 13px;display:flex;gap:7px;align-items:center;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.18);font:inherit;font-weight:700}
.live-sidebar{position:fixed!important;top:82px;bottom:18px;left:18px;width:min(310px,calc(100vw - 36px));z-index:50;transform:translateX(calc(-100% - 40px));transition:transform .22s ease;overflow:auto!important;background:linear-gradient(180deg,var(--panel2),var(--panel))!important;border:1px solid var(--line)!important;color:var(--text)!important;box-shadow:0 18px 55px rgba(0,0,0,.28)!important}
.live-workspace.sidebar-open .live-sidebar{transform:translateX(0)}
.live-sidebar-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.34);z-index:45;opacity:0;pointer-events:none;transition:opacity .2s ease}
.live-workspace.sidebar-open .live-sidebar-backdrop{opacity:1;pointer-events:auto}
.live-workspace.sidebar-open .live-filter-open{opacity:0;pointer-events:none}
body.live-drawer-open{overflow:hidden}
.live-sidebar-head,.live-sidebar-body,.region-filter-btn,.sidebar-search input,.sidebar-section select{background-color:transparent;color:var(--text)}
.cards{grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%;min-width:0}
.desktop-card{min-width:0;width:100%}.desktop-card-body{grid-template-columns:minmax(150px,.9fr) minmax(230px,1.35fr) minmax(145px,.82fr);min-width:0}.real-silo-wrap{max-width:100%}
.station-analytics{margin-top:14px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(180deg,var(--panel2),var(--panel));padding:16px;box-shadow:0 10px 30px rgba(0,0,0,.10)}
.analytics-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}.analytics-head h4{margin:0;font-size:18px}.analytics-range-label{display:block;color:var(--muted);font-size:11px;margin-top:4px}.analytics-controls{display:flex;align-items:end;gap:7px;flex-wrap:wrap}.analytics-controls button{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:8px;padding:8px 11px;cursor:pointer;font:inherit}.analytics-controls .analytics-preset.active,.analytics-controls .analytics-apply{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 18%,var(--panel))}.analytics-controls label{display:grid;gap:3px;color:var(--muted);font-size:10px}.analytics-controls input{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:8px;padding:7px;font:inherit;color-scheme:dark}
.analytics-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:14px 0}.analytics-kpis>div{border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--panel2) 75%,transparent);padding:10px 12px}.analytics-kpis span{display:block;color:var(--muted);font-size:11px}.analytics-kpis strong{display:block;margin-top:4px;font-size:19px;direction:ltr;text-align:right}.analytics-consumption{color:var(--orange)}.analytics-filling{color:var(--green)}
.analytics-chart-wrap{position:relative;width:100%;height:270px;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--panel) 86%,transparent)}.analytics-chart{display:block;width:100%;height:100%;overflow:visible}.analytics-loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);z-index:2;background:color-mix(in srgb,var(--panel) 88%,transparent)}.analytics-loading[hidden]{display:none}.chart-grid{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}.chart-axis,.chart-empty{fill:var(--muted);font-size:12px}.bar-consumption{fill:var(--orange)}.bar-filling{fill:var(--green)}.analytics-legend{display:flex;gap:16px;margin-top:9px;color:var(--muted);font-size:11px}.analytics-legend span{display:flex;align-items:center;gap:5px}.analytics-legend i{width:9px;height:9px;border-radius:50%;display:inline-block}.consumption-dot{background:var(--orange)}.filling-dot{background:var(--green)}
.analytics-events{margin-top:14px}.analytics-events-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.analytics-events-head span{color:var(--muted);font-size:11px}.analytics-table-wrap{max-height:460px;overflow:auto;border:1px solid var(--line);border-radius:11px}.analytics-events-table{min-width:1050px;margin:0}.analytics-events-table thead th{position:sticky;top:0;z-index:1}.analytics-events-table td{vertical-align:middle}.analytics-events-table td small{display:block;margin-top:3px;color:var(--muted)}.analytics-events-pager{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 8px 2px;color:var(--muted);font-size:12px}.analytics-events-pager button{min-width:76px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text);padding:7px 12px;cursor:pointer}.analytics-events-pager button:disabled{opacity:.45;cursor:default}
.update-assignment-details>td{padding:8px 14px 14px;background:var(--bg)}.update-assignment-details details>summary{cursor:pointer;color:var(--navy);font-weight:700;margin:4px 0 10px}.update-assignment-details table{min-width:1050px;margin:0}.update-assignment-details td small{display:block;margin-top:3px;color:var(--muted)}.update-assignment-details .command-error{max-width:420px;white-space:normal;direction:ltr;text-align:left}
@media(max-width:1250px){.cards{grid-template-columns:1fr!important}.desktop-card-body{grid-template-columns:minmax(170px,.9fr) minmax(280px,1.35fr) minmax(160px,.82fr)}}
@media(max-width:800px){main{width:min(100% - 20px,1500px);margin-top:12px}.topbar{height:auto;min-height:68px;flex-wrap:wrap;gap:8px;padding-block:8px}.hero{align-items:flex-start;gap:10px}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.group-head{align-items:flex-start;flex-direction:column;gap:7px}.desktop-card-body,.scale-card.focused-scale .desktop-card-body{grid-template-columns:1fr!important;padding:14px}.desktop-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));order:2}.desktop-metric{grid-template-columns:38px 1fr;min-height:72px;padding:9px}.desktop-metric-icon{width:38px;height:38px;font-size:20px}.desktop-metric strong,.desktop-metric .metric-weight,.desktop-metric .metric-fill{font-size:20px}.real-silo-wrap{order:1;width:min(72vw,300px)}.desktop-side-info{order:3;display:grid;grid-template-columns:auto minmax(0,1fr);width:100%;gap:12px}.fill-ring{width:120px;height:120px}.connection-box{max-width:none}.analytics-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-chart-wrap{height:230px}.live-filter-open{top:auto;bottom:18px;left:12px}.live-sidebar{top:10px;bottom:10px;left:10px;width:min(330px,calc(100vw - 20px))}}
@media(max-width:560px){.hero h2{font-size:22px}.hero p{font-size:12px}.summary-card{padding:12px}.summary-card strong{font-size:22px}.desktop-card-head{padding:10px}.desktop-card .card-title{font-size:20px}.desktop-metrics{grid-template-columns:1fr}.desktop-metric{grid-template-columns:44px 1fr}.desktop-side-info{grid-template-columns:1fr;justify-items:center}.connection-box{width:100%}.analytics-controls{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.analytics-controls label{grid-column:span 1}.analytics-controls .analytics-apply{grid-column:1/-1}.analytics-kpis{grid-template-columns:1fr 1fr}.analytics-chart-wrap{height:210px}.desktop-card-foot{font-size:11px}.live-scope-title{padding-inline:50px 4px}.group-path{font-size:11px}}

/* ===== Theme-aware Live Drawer & Analytics (2026-08 responsive polish) ===== */
.live-filter-open{
  border-color:var(--border)!important;
  background:var(--surface)!important;
  color:var(--text-primary)!important;
  box-shadow:0 8px 24px var(--card-shadow)!important;
}
.live-filter-open:hover{background:var(--surface-hover)!important;border-color:var(--accent)!important}
.live-sidebar{
  background:linear-gradient(180deg,var(--surface-2),var(--surface))!important;
  border-color:var(--border)!important;
  color:var(--text-primary)!important;
  box-shadow:0 18px 55px var(--card-shadow)!important;
}
.live-sidebar-head{background:color-mix(in srgb,var(--surface-2) 88%,var(--accent) 12%)!important;border-color:var(--border)!important}
.live-sidebar-head strong{color:var(--text-primary)!important}
.live-sidebar-head span,.sidebar-search span,.sidebar-section label,.sidebar-section-title{color:var(--text-muted)!important}
.sidebar-toggle,.sidebar-reset,.region-filter-btn{
  background:var(--surface-2)!important;color:var(--text-secondary)!important;border-color:var(--border)!important
}
.sidebar-toggle:hover,.sidebar-reset:hover,.region-filter-btn:hover{background:var(--surface-hover)!important;color:var(--text-primary)!important;border-color:var(--accent)!important}
.region-filter-btn.active{background:var(--accent)!important;color:var(--accent-text)!important;border-color:var(--accent)!important;box-shadow:0 0 0 2px var(--focus-ring)!important}
.region-filter-btn small{color:inherit!important;opacity:.78}
.sidebar-search input,.sidebar-section select{
  background:var(--input-bg)!important;color:var(--input-text)!important;border-color:var(--input-border)!important;color-scheme:normal!important
}
.sidebar-search input::placeholder{color:var(--input-placeholder)!important}
.sidebar-search input:focus,.sidebar-section select:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--focus-ring)!important}
.sidebar-section{border-color:var(--border)!important}

.station-analytics{
  background:linear-gradient(180deg,var(--surface-2),var(--surface))!important;
  color:var(--text-primary)!important;border-color:var(--border)!important;
  box-shadow:0 10px 30px var(--card-shadow)!important
}
.analytics-range-label,.analytics-controls label,.analytics-kpis span,.analytics-legend{color:var(--text-muted)!important}
.analytics-controls button{
  background:var(--surface-2)!important;color:var(--text-secondary)!important;border-color:var(--border)!important
}
.analytics-controls button:hover{background:var(--surface-hover)!important;color:var(--text-primary)!important;border-color:var(--accent)!important}
.analytics-controls .analytics-preset.active,.analytics-controls .analytics-apply{
  background:var(--accent)!important;color:var(--accent-text)!important;border-color:var(--accent)!important
}
.analytics-controls input{
  background:var(--input-bg)!important;color:var(--input-text)!important;border-color:var(--input-border)!important;color-scheme:normal!important
}
.analytics-kpis>div{background:var(--surface-2)!important;border-color:var(--border)!important}
.analytics-chart-wrap{background:var(--surface)!important;border-color:var(--border)!important}
.analytics-loading{background:color-mix(in srgb,var(--surface) 92%,transparent)!important;color:var(--text-muted)!important}
.chart-grid{stroke:var(--border)!important}.chart-axis,.chart-empty{fill:var(--text-muted)!important}
.bar-consumption{fill:var(--warning)!important}.bar-filling{fill:var(--success)!important}
.analytics-consumption{color:var(--warning)!important}.analytics-filling{color:var(--success)!important}
.consumption-dot{background:var(--warning)!important}.filling-dot{background:var(--success)!important}

/* Live data is updated in-place; transitions make value changes smooth without a visual refresh. */
.metric-weight,.metric-fill,.fill-ring,.grain-fill-layer,.status,.connection-box{transition:color .18s ease,background-color .18s ease,border-color .18s ease,opacity .18s ease}

/* ===== Arabic / English UI ===== */
.language-control{display:flex;align-items:center;gap:7px}.language-control label{font-size:12px;color:var(--muted);white-space:nowrap}
html[dir="ltr"] body{direction:ltr}html[dir="ltr"] .sub{direction:ltr;text-align:left}
html[dir="ltr"] .live-sidebar,html[dir="ltr"] .live-results,html[dir="ltr"] .desktop-card-body>*{direction:ltr}
html[dir="ltr"] .region-filter-btn,html[dir="ltr"] .capacity,html[dir="ltr"] .desktop-metric strong,html[dir="ltr"] .history-summary strong,html[dir="ltr"] .analytics-kpis strong{text-align:left}
html[dir="ltr"] .data-table th,html[dir="ltr"] .data-table td,html[dir="ltr"] .report-table th,html[dir="ltr"] .report-table td{text-align:left}
html[dir="ltr"] .live-filter-open{left:auto;right:18px}html[dir="ltr"] .live-sidebar{left:auto;right:18px;transform:translateX(calc(100% + 28px))}html[dir="ltr"] .live-sidebar.is-open{transform:translateX(0)}
@media(max-width:800px){.language-control{flex:1 1 auto}html[dir="ltr"] .live-filter-open{left:auto;right:12px}html[dir="ltr"] .live-sidebar{left:auto;right:10px}}


/* ================= Auth bootstrap: no login/app flash ================= */
body.auth-pending > .topbar,
body.auth-pending > main,
body.auth-pending > footer,
body.auth-pending > #authScreen{
  visibility:hidden !important;
}
.boot-screen{
  position:fixed;
  inset:0;
  z-index:100000;
  display:grid;
  place-items:center;
  background:var(--app-bg);
  color:var(--text-primary);
}
.boot-card{
  display:flex;
  align-items:center;
  gap:14px;
  padding:16px 20px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface);
  box-shadow:0 18px 55px var(--card-shadow);
}
.boot-logo{
  width:44px;
  height:44px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:var(--accent);
  color:var(--accent-text);
  font-weight:900;
}
.boot-spinner{
  width:22px;
  height:22px;
  border-radius:50%;
  border:3px solid var(--border);
  border-top-color:var(--accent);
  animation:ihBootSpin .8s linear infinite;
}
@keyframes ihBootSpin{to{transform:rotate(360deg)}}

/* ================= Clean login settings layout ================= */
.auth-theme-row{
  display:grid !important;
  grid-template-columns:1fr !important;
  align-items:stretch !important;
  gap:10px !important;
}
.auth-theme-row > span{
  display:block;
  margin:0 !important;
  color:var(--text-muted);
  font-size:13px;
}
.auth-theme-row > .theme-select,
.auth-theme-row .language-control,
.auth-theme-row .language-select{
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  box-sizing:border-box;
}
.auth-theme-row .language-control{
  display:grid;
  grid-template-columns:1fr;
  gap:7px;
}
.auth-theme-row .language-control label{
  color:var(--text-muted);
  font-size:13px;
}
.auth-card{overflow:hidden}

/* Keep toolbar language compact but safe on narrow screens. */
.top-actions .language-control{min-width:0}
.top-actions .language-select{min-width:110px;max-width:150px}
@media(max-width:800px){
  .top-actions .language-control{
    width:100%;
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
  }
  .top-actions .language-select{
    width:100%;
    min-width:0;
    max-width:none;
  }
}

/* Simplified station onboarding */
.station-onboarding-card{grid-column:span 2}
.station-serial-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.station-preview{margin:14px 0;padding:14px;border:1px solid var(--line,#d9dfe8);border-radius:12px;background:var(--panel-soft,#f7f9fc)}
.station-preview-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}
.station-preview-head strong{display:block}.station-preview-head span{font-size:12px;opacity:.72;margin-inline-start:8px}
.station-discovered-scales{display:grid;gap:8px}
.discovered-scale{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line,#d9dfe8);border-radius:10px;background:var(--panel,#fff);cursor:pointer}
.discovered-scale-main{min-width:0}.discovered-scale-main b,.discovered-scale-main small{display:block}.discovered-scale-main small{opacity:.7;margin-top:3px}
.scale-state{font-size:12px;opacity:.75}.preview-warning{padding:10px;border-radius:9px;background:#fff2d8;color:#7a5311;margin:8px 0}
.auto-silo-note p{line-height:1.8;margin-bottom:0}
#claimStationBtn:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:760px){.station-onboarding-card{grid-column:auto}.station-serial-row{grid-template-columns:1fr}.station-preview-head{align-items:flex-start;flex-direction:column}.discovered-scale{grid-template-columns:auto 1fr}.scale-state{grid-column:2}}

/* Public account registration / password recovery */
.auth-links{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:4px}
.auth-link{border:0;background:transparent;color:var(--accent);padding:6px 0;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.auth-link:hover{opacity:.82}
.auth-help{margin:0 0 12px;color:var(--text-muted);line-height:1.7}
.auth-success{margin-top:12px;padding:11px 13px;border-radius:9px;background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.35);color:var(--text)}
.auth-panel.hidden{display:none!important}
.password-input-wrap{position:relative;display:block}
.password-input-wrap>input{padding-inline-end:52px!important}
.password-visibility-toggle{position:absolute;inset-inline-end:5px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:9px;background:transparent;color:var(--text-secondary);cursor:pointer}
.password-visibility-toggle:hover{background:var(--surface-hover);color:var(--text-primary)}
.password-visibility-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px;background:var(--surface-hover)}
.password-eye{width:21px;height:21px;fill:currentColor}.password-eye-hide{display:none}
.password-visibility-toggle[aria-pressed="true"] .password-eye-show{display:none}
.password-visibility-toggle[aria-pressed="true"] .password-eye-hide{display:block}

/* Remote Station Update - Phase 4/5 */
.update-toolbar{align-items:center}.update-toolbar .admin-inline-actions{align-items:center;justify-content:flex-end}.station-select-cell{width:42px;text-align:center!important}.station-select-cell input{width:17px;height:17px;cursor:pointer}.update-stations-card .refresh:disabled{opacity:.5;cursor:not-allowed}
.update-package-actions select{min-width:270px;max-width:420px}.update-history-actions{align-items:flex-end}.update-history-actions label{display:grid;gap:4px;color:var(--text-muted);font-size:13px}.update-history-actions input{min-width:160px}
.update-modal{position:fixed;inset:0;z-index:90000;display:grid;place-items:center;padding:22px}.update-modal.hidden{display:none!important}.update-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.62);backdrop-filter:blur(3px)}.update-modal-card{position:relative;width:min(980px,96vw);max-height:90vh;overflow:auto;border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:0 28px 90px rgba(0,0,0,.42);padding:22px}.update-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;border-bottom:1px solid var(--border);padding-bottom:14px;margin-bottom:16px}.update-modal-head h3{margin:0 0 6px}.update-modal-head p{margin:0;color:var(--text-muted)}.update-modal-close{border:0;background:transparent;color:var(--text-primary);font-size:30px;line-height:1;cursor:pointer}.update-package-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px}.update-package-summary>div{padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft,var(--surface))}.update-package-summary span,.update-package-summary strong{display:block}.update-package-summary span{font-size:12px;color:var(--text-muted);margin-bottom:5px}.update-package-summary strong{overflow-wrap:anywhere}.update-target-table{max-height:310px;overflow:auto}.update-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.update-modal .admin-message{margin-top:14px}
@media(max-width:780px){.update-package-summary{grid-template-columns:1fr}.update-toolbar{align-items:flex-start;flex-direction:column}.update-toolbar .admin-inline-actions{width:100%;justify-content:flex-start}}


/* Dual branding: product identity + company identity */
.auth-brand{align-items:flex-start}
.auth-brand-logos{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.auth-product-logo-panel{width:64px;height:64px;border-radius:14px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.auth-product-logo{display:block;width:100%;height:100%;object-fit:contain}
.auth-company-logo-panel{width:150px;height:96px;padding:0;border-radius:0;background:transparent;border:0;display:flex;align-items:center;justify-content:center;box-shadow:none;flex:0 0 auto}
.auth-company-logo{display:block;max-width:100%;max-height:100%;object-fit:contain}
.boot-logo{object-fit:contain;background:transparent!important;color:transparent!important}
@media(max-width:1180px){.company-logo-panel{width:132px;height:52px}.brand h1{font-size:15px}.sub{display:none}}
@media(max-width:900px){.company-logo-panel{display:none}.brand-copy{display:none}}
@media(max-width:800px){.product-logo-panel{width:46px;height:46px}.auth-brand{flex-direction:column}.auth-brand-logos{width:100%;justify-content:flex-start}.auth-company-logo-panel{width:132px;height:88px}.auth-product-logo-panel{width:58px;height:58px}}

/* Phase 10 - simple Plant > Unit > Logger wizard */
.setup-wizard-card{margin-bottom:18px}.wizard-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.wizard-progress{display:flex;align-items:center;min-width:260px;direction:ltr}.wizard-dot{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--border,#6b7280);font-weight:700;opacity:.55}.wizard-dot.active{opacity:1;border-color:var(--accent,#3b82f6)}.wizard-line{height:2px;flex:1;background:var(--border,#6b7280);opacity:.55}.wizard-step{max-width:760px}.wizard-step h4{margin:0 0 8px}.wizard-actions{display:flex;gap:10px;margin-top:20px}.wizard-review{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.wizard-review>div{border:1px solid var(--border,#555);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:4px}.wizard-review span,.wizard-review small{opacity:.72}.customer-onboarding-card{max-width:760px}.structure-site .asset-section{margin-top:14px}@media(max-width:760px){.wizard-head{flex-direction:column}.wizard-progress{width:100%;min-width:0}.wizard-review{grid-template-columns:1fr}}

.admin-add-user-box{margin-top:14px;padding:10px 12px;border:1px solid var(--border);border-radius:12px}
.admin-add-user-box summary{cursor:pointer;font-weight:700}
.admin-add-user-box[open] summary{margin-bottom:12px}

/* Phase 11 - Unit-first live layout */
.unit-group-head{align-items:flex-start}.unit-heading h3{font-size:28px;font-weight:800;color:var(--text-primary);margin:0}.unit-subtitle{display:flex;gap:7px;flex-wrap:wrap;margin-top:4px;color:var(--text-secondary);font-size:13px}.unit-subtitle b{color:var(--text-primary)}.logger-line{direction:ltr;text-align:right;margin-top:5px;color:var(--text-muted);font-size:11px;font-family:Consolas,"Courier New",monospace}.unit-group .cards{grid-template-columns:repeat(auto-fit,minmax(460px,1fr))}.unit-group .desktop-card{background:var(--silo-card-bg);color:var(--text-primary)}.unit-group .desktop-card-head{background:var(--silo-card-head)}.unit-group .desktop-card-foot{background:var(--silo-card-foot);color:var(--text-secondary)}.unit-group .desktop-metric{background:var(--silo-metric-bg);color:var(--text-primary)}.unit-group .connection-box{background:var(--surface-2);color:var(--text-secondary)}.unit-group .desktop-silo-thumb,.unit-group .diag-icon,.unit-group .status{color:var(--text-primary)}.unit-group .desktop-card .card-title{color:var(--text-primary)}.discovered-scale{background:var(--surface)!important;color:var(--text-primary)!important;border-color:var(--border)!important}.discovered-scale-main b{color:var(--text-primary)!important}.discovered-scale-main small,.scale-state{color:var(--text-muted)!important}.station-preview{background:var(--surface-2)!important;color:var(--text-primary)!important;border-color:var(--border)!important}.station-preview-head strong{color:var(--text-primary)!important}.station-preview-head span,.station-preview-head small{color:var(--text-muted)!important}@media(max-width:980px){.unit-group .cards{grid-template-columns:1fr}.unit-heading h3{font-size:24px}}

/* ===== Shared Plant/Unit photos + focused access workflow ===== */
.structure-photo-head{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;align-items:stretch;margin-bottom:14px}
.structure-photo-main{min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:10px}
.entity-photo-preview{width:150px;height:105px;object-fit:cover;border-radius:14px;border:1px solid var(--line);background:var(--panel)}
.unit-photo-preview{width:120px;height:88px}.unit-photo-head{grid-template-columns:120px minmax(0,1fr)}
.entity-photo-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.file-label{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;margin:0}
.plant-access-inline-btn{margin-inline-start:auto;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px;padding:7px 10px;cursor:pointer;font:inherit;font-size:12px;font-weight:800}
.plant-access-modal-card{max-width:560px}.plant-access-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.plant-access-search input,.plant-access-modal-card select{width:100%;box-sizing:border-box;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px;padding:11px 12px;font:inherit}.plant-access-results{display:grid;gap:7px;max-height:220px;overflow:auto;margin:10px 0}.access-user-result{display:flex;flex-direction:column;gap:2px;text-align:right;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px;padding:10px 12px;cursor:pointer;font:inherit}.access-user-result span{font-size:11px;color:var(--muted);direction:ltr;text-align:left}.access-user-result.selected{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 12%,var(--panel))}
@media(max-width:760px){.structure-photo-head,.unit-photo-head{grid-template-columns:1fr}.entity-photo-preview,.unit-photo-preview{width:100%;height:180px}.plant-access-search{grid-template-columns:1fr}.plant-access-inline-btn{margin-inline-start:0}}

/* Shared Plant / Unit photos in Live View */
.live-entity-photos{display:flex;gap:10px;align-items:center;flex:0 0 auto}.live-photo-tile{position:relative;width:82px;height:62px;border-radius:12px;overflow:hidden;border:1px solid var(--border,#dfe6ee);background:#eef3f8}.live-photo-tile>span{position:absolute;z-index:2;right:5px;bottom:4px;padding:2px 6px;border-radius:999px;background:rgba(8,25,45,.72);color:#fff;font-size:10px}.live-entity-photo{width:100%;height:100%;object-fit:cover;display:block}.live-photo-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.live-photo-btn{cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border-radius:9px;border:1px solid #cdd8e5;background:#fff;color:#1b4f80;font-size:12px;font-weight:700}.live-photo-btn:hover{background:#f3f7fb}@media(max-width:720px){.unit-group-head{align-items:flex-start}.live-entity-photos{width:100%}.live-photo-tile{width:92px;height:66px}.unit-group-head{flex-wrap:wrap}}

/* ===== Customer-first Installer experience ===== */
.customer-home-hero{align-items:center;gap:18px}.customer-home-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.customer-search-strip{display:flex;align-items:center;gap:14px;margin:0 0 18px}.customer-search-strip input{flex:1;max-width:620px;min-height:46px;border:1px solid var(--border);border-radius:14px;padding:0 16px;background:var(--panel);color:var(--text)}.customer-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.customer-home-card{position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--border);border-radius:20px;padding:14px;box-shadow:0 10px 25px rgba(32,81,113,.08);cursor:pointer;transition:.18s ease}.customer-home-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(32,81,113,.14)}.customer-home-card-top{display:grid;grid-template-columns:94px 1fr auto;gap:14px;align-items:center}.customer-home-photo{width:94px;height:94px;border-radius:17px;object-fit:cover;border:1px solid var(--border);background:#fff}.customer-home-meta h3{margin:0 0 7px;font-size:20px}.customer-home-meta p{margin:3px 0;color:var(--muted);font-size:13px}.customer-home-stats{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.customer-home-stat{background:var(--soft,#edf5fa);border:1px solid var(--border);border-radius:999px;padding:5px 9px;font-size:12px}.customer-card-menu{width:40px;height:40px;border-radius:12px;border:1px solid var(--border);background:var(--soft,#edf5fa);color:var(--text);font-size:20px;cursor:pointer}.customer-detail-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:2px 0 14px}.customer-detail-actions{display:flex;gap:8px;flex-wrap:wrap}.customer-profile-card{display:grid;grid-template-columns:170px 1fr;gap:20px;background:var(--panel);border:1px solid var(--border);border-radius:22px;padding:14px;box-shadow:0 10px 28px rgba(32,81,113,.08)}.customer-profile-photo{width:170px;height:140px;border-radius:18px;object-fit:cover;border:1px solid var(--border);background:#fff}.customer-profile-info h2{margin:4px 0 10px}.customer-profile-info p{margin:5px 0;color:var(--muted)}.section-title-row{display:flex;justify-content:space-between;align-items:end;margin:22px 0 10px}.section-title-row h3{margin:0}.customer-plant-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.customer-plant-card{display:grid;grid-template-columns:88px 1fr auto;gap:12px;align-items:center;background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:11px;cursor:pointer}.customer-plant-card:hover{box-shadow:0 10px 25px rgba(32,81,113,.1)}.customer-plant-photo{width:88px;height:78px;border-radius:14px;object-fit:cover;background:#fff}.customer-plant-card h4{margin:0 0 5px;font-size:17px}.customer-plant-card p{margin:2px 0;color:var(--muted);font-size:12px}.customer-plant-arrow{font-size:28px;color:var(--accent)}.customer-wizard-modal-card{max-width:650px}.wizard-progress{display:flex;align-items:center;justify-content:center;margin:4px 0 18px}.wizard-progress span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:2px solid var(--border);background:var(--panel);font-weight:700}.wizard-progress span.active,.wizard-progress span.done{background:var(--accent);color:#fff;border-color:var(--accent)}.wizard-progress i{width:75px;height:2px;background:var(--border)}.customer-wizard-step h4{margin:0 0 12px;font-size:19px}.customer-wizard-step input,.customer-wizard-modal-card>input{width:100%;min-height:44px;border:1px solid var(--border);border-radius:11px;padding:0 12px;background:var(--panel);color:var(--text);margin-bottom:10px}.customer-wizard-photo{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.customer-wizard-photo img{width:145px;height:110px;object-fit:cover;border:1px solid var(--border);border-radius:16px;background:#fff}.customer-owner-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 9px;background:#e8f7ef;color:#167349;font-size:12px;font-weight:700}.customer-no-owner{display:inline-flex;border-radius:999px;padding:5px 9px;background:#fff5e7;color:#a96700;font-size:12px;font-weight:700}
@media(max-width:760px){.customer-home-actions{justify-content:stretch}.customer-home-actions button{flex:1}.customer-home-card-top{grid-template-columns:76px 1fr auto}.customer-home-photo{width:76px;height:76px}.customer-profile-card{grid-template-columns:1fr}.customer-profile-photo{width:100%;height:180px}.customer-detail-toolbar{align-items:stretch;flex-direction:column}.customer-detail-actions{width:100%}.customer-detail-actions button{flex:1}.customer-plant-grid{grid-template-columns:1fr}.wizard-progress i{width:44px}}
.hierarchy-detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.hierarchy-status{font-size:12px;font-weight:700;border-radius:999px;padding:4px 8px}.hierarchy-status.online{background:#e8f7ef;color:#167349}.hierarchy-status.offline{background:#fdecec;color:#b52323}.hierarchy-mini-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:12px}.hierarchy-mini-card h4{margin:0 0 5px}.hierarchy-mini-card p{margin:2px 0;color:var(--muted);font-size:12px}@media(max-width:900px){.hierarchy-detail-columns{grid-template-columns:1fr}}
.customer-account-current{margin:0 0 14px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:var(--soft,#edf5fa)}
.customer-account-current strong{display:block;margin-bottom:4px}.customer-account-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.customer-account-panel{border:1px solid var(--border);border-radius:16px;padding:14px;background:var(--panel)}.customer-account-panel h4{margin:0 0 6px}.customer-account-panel input{width:100%;min-height:43px;border:1px solid var(--border);border-radius:10px;padding:0 11px;background:var(--panel);color:var(--text);margin-bottom:9px}.customer-account-panel .refresh{width:100%;margin-top:6px}@media(max-width:760px){.customer-account-grid{grid-template-columns:1fr}.customer-profile-card{grid-template-columns:1fr}.customer-profile-photo{width:100%;height:180px}}

/* Installer live hierarchy 19 */
.installer-home-switch{display:inline-flex;gap:6px;margin-top:12px;padding:4px;border:1px solid var(--line,#bfd1df);border-radius:14px;background:rgba(255,255,255,.65)}
.installer-home-switch button{border:0;background:transparent;color:var(--text,#17324a);padding:8px 18px;border-radius:10px;font-weight:700;cursor:pointer}
.installer-home-switch button.active{background:var(--accent,#1976b8);color:#fff;box-shadow:0 4px 12px rgba(20,83,130,.16)}
#installerPlantSearchStrip{grid-template-columns:minmax(240px,1fr) auto auto auto;gap:10px;align-items:center}
#installerPlantSearchStrip select{min-height:42px;border:1px solid var(--line,#bfd1df);border-radius:12px;background:var(--card,#fff);color:var(--text,#17324a);padding:0 12px}
.installer-live-home-card{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;cursor:pointer}
.installer-live-home-card:hover,.live-hierarchy-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(39,91,127,.11);border-color:#8eb9d8}
.installer-live-badges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:9px;align-items:stretch;min-width:0}
.installer-live-badges>span{display:grid;gap:1px;min-width:0;padding:5px 7px;border:1px solid #c6dbe9;border-radius:9px;background:#f8fcff;color:#37566d;font-size:11px;font-weight:700;text-align:center}
.installer-live-badges>span b{font-size:13px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.installer-live-badges>span small{font-size:9px;color:#718696;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.installer-live-badges .hierarchy-status.online{background:#edf9f1;border-color:#b8dfc5;color:#1d7540}
.installer-live-badges .hierarchy-status.offline{background:#fff2f1;border-color:#efc1bd;color:#a43c34}
.live-hierarchy-card{cursor:pointer;align-items:center}
.live-hierarchy-meta{min-width:0;flex:1}
.hierarchy-fill-mini{height:6px;background:#e3edf4;border-radius:999px;overflow:hidden;margin-top:9px;max-width:360px}
.hierarchy-fill-mini i{display:block;height:100%;background:var(--accent,#1976b8);border-radius:999px}
.installer-unit-live>.cards{margin-top:0}
.compact-logger-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
@media(max-width:850px){#installerPlantSearchStrip{grid-template-columns:1fr}.installer-home-switch{width:100%}.installer-home-switch button{flex:1}.installer-live-badges>span{font-size:11px}}
#installerPlantSearchStrip{display:grid}
#installerPlantSearchStrip.hidden{display:none}

/* Installer hierarchy 20 - customer home + separate plants workspace */
.installer-plants-filters{display:grid;grid-template-columns:minmax(260px,1fr) 210px 230px auto;gap:10px;align-items:center}
.installer-plants-filters input,.installer-plants-filters select{min-height:46px;border:1px solid var(--border);border-radius:12px;padding:0 12px;background:var(--panel);color:var(--text)}
.hierarchy-large-grid{grid-template-columns:repeat(auto-fit,minmax(480px,1fr))}
.hierarchy-large-card{grid-template-columns:120px minmax(0,1fr) auto;min-height:152px;padding:12px;gap:12px;align-items:center}
.hierarchy-large-photo{width:120px;height:122px;border-radius:18px}
.hierarchy-large-card h4{font-size:22px;margin-bottom:7px}
.hierarchy-large-card p{font-size:13px}
.hierarchy-big-stats{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 3px}
.hierarchy-big-stats span{display:inline-flex;align-items:baseline;gap:4px;padding:6px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2,#f4f8fb);font-size:12px;color:var(--text-secondary,#526b7d)}
.hierarchy-big-stats b{font-size:15px;color:var(--text-primary,#17324a)}
.hierarchy-silo-preview{width:112px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:0 0 auto}
.hierarchy-silo-visual{position:relative;width:74px;aspect-ratio:447/670;direction:ltr;filter:drop-shadow(0 5px 8px rgba(0,0,0,.18))}
.hierarchy-silo-visual .grain-chamber{left:10.51%;top:22.84%;width:77.63%;height:50.75%}
.hierarchy-silo-preview strong{font-size:18px;color:var(--text-primary,#17324a);margin-top:2px}
.hierarchy-silo-preview span{font-size:10px;color:var(--text-muted,#6f8798);white-space:nowrap}
.customer-profile-card>.hierarchy-silo-preview{align-self:center;margin-inline-start:auto}
.silo-settings-btn{cursor:pointer;border:1px solid var(--border)!important;color:var(--text-primary)!important}
.silo-settings-btn:hover{background:var(--surface-hover)!important}
#plantEntityModal .customer-wizard-modal-card>input,#unitEntityModal .customer-wizard-modal-card>input,#siloEntityModal .customer-wizard-modal-card>input{width:100%;min-height:44px;border:1px solid var(--border);border-radius:11px;padding:0 12px;background:var(--panel);color:var(--text);margin-bottom:10px}
@media(max-width:1050px){.installer-plants-filters{grid-template-columns:1fr 1fr}.hierarchy-large-grid{grid-template-columns:1fr}.hierarchy-large-card{grid-template-columns:100px minmax(0,1fr) auto}.hierarchy-large-photo{width:100px;height:108px}}
@media(max-width:680px){.installer-plants-filters{grid-template-columns:1fr}.hierarchy-large-card{grid-template-columns:82px minmax(0,1fr) auto;min-height:138px;padding:12px}.hierarchy-large-photo{width:82px;height:92px}.hierarchy-silo-preview{grid-column:1/-1;width:100%;flex-direction:row;gap:10px;justify-content:flex-start;padding-inline:8px}.hierarchy-silo-visual{width:48px}.hierarchy-silo-preview span{white-space:normal}.customer-profile-card>.hierarchy-silo-preview{margin:0}.hierarchy-big-stats span{padding:4px 8px}}

/* System Administrator control center */
.alerts-panel{margin:0 0 18px;padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:0 8px 25px var(--card-shadow)}.alerts-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:13px}.alerts-head h3{margin:0 0 4px}.alerts-head p{margin:0;color:var(--text-muted);font-size:12px}.alerts-tabs{display:flex;padding:3px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.alerts-tabs button{border:0;border-radius:8px;padding:8px 12px;background:transparent;color:var(--text-muted);cursor:pointer}.alerts-tabs button.active{background:var(--accent);color:var(--accent-text)}.alerts-list{display:grid;gap:8px}.alert-row{display:grid;grid-template-columns:auto minmax(180px,.75fr) minmax(230px,1fr) auto auto;align-items:center;gap:14px;padding:12px;border:1px solid var(--border);border-inline-start:4px solid var(--warning);border-radius:11px;background:var(--surface-2)}.alert-row.alert-critical{border-inline-start-color:var(--danger)}.alert-row.alert-history{grid-template-columns:auto minmax(180px,.75fr) minmax(230px,1fr) auto}.alert-row strong,.alert-row small{display:block}.alert-row small,.alert-row p{color:var(--text-muted);margin:3px 0 0}.alert-row time{font-size:11px;color:var(--text-muted);white-space:nowrap}.alert-row time small{display:block;margin-top:4px}.alert-state{font-weight:700}.alert-dismissed{color:var(--text-muted)}.alert-dismiss-btn{border:1px solid var(--border);border-radius:9px;padding:7px 12px;background:transparent;color:var(--accent);font-weight:700;cursor:pointer}.alert-dismiss-btn:hover{background:var(--surface)}.alert-dismiss-btn:disabled{opacity:.55;cursor:wait}.alert-resolved{opacity:.88;border-inline-start-color:var(--success)}@media(max-width:700px){.alerts-head{align-items:stretch;flex-direction:column}.alerts-tabs{display:grid;grid-template-columns:1fr 1fr}.alert-row{grid-template-columns:1fr}.alert-row time{white-space:normal}}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
#adminView{--fleet-radius:14px;--fleet-shadow:0 12px 32px var(--card-shadow);color:var(--text-primary)}
#adminView .admin-card{background:var(--surface);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--fleet-radius);box-shadow:var(--fleet-shadow);padding:20px}
#adminView .admin-card input,#adminView .admin-card select{background:var(--input-bg);color:var(--input-text);border-color:var(--input-border)}
#adminView .admin-label,#adminView .admin-edit-grid label{color:var(--text-secondary)}
#adminView .admin-user-row{background:var(--surface-2);border-color:var(--border)}
.fleet-hero{position:relative;isolation:isolate;min-height:148px;padding:28px 30px;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border));background:linear-gradient(120deg,color-mix(in srgb,var(--surface) 82%,#063d5d),color-mix(in srgb,var(--accent-soft) 72%,#082b40));box-shadow:var(--fleet-shadow)}
.fleet-hero::after{content:"";position:absolute;inset-inline-end:-70px;top:-130px;width:330px;height:330px;border-radius:50%;border:70px solid color-mix(in srgb,var(--accent) 10%,transparent);z-index:-1}
.fleet-hero h2{font-size:clamp(25px,3vw,36px);letter-spacing:-.02em}.fleet-hero p{max-width:760px;color:var(--text-secondary);font-size:14px;line-height:1.75}
.fleet-eyebrow,.section-kicker{display:block;color:var(--info);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:7px}
.fleet-hero-mark{display:grid;place-items:center;width:74px;height:74px;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);border-radius:20px;background:color-mix(in srgb,var(--accent) 13%,transparent);color:var(--text-primary);font-size:25px;font-weight:900;box-shadow:inset 0 0 0 7px color-mix(in srgb,var(--surface) 45%,transparent)}
.fleet-metrics{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr);gap:14px;margin:14px 0 18px}
.fleet-metric-group{padding:16px;border:1px solid var(--border);border-radius:var(--fleet-radius);background:var(--surface);box-shadow:var(--fleet-shadow)}
.fleet-metric-title{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding-bottom:11px;margin-bottom:11px;border-bottom:1px solid var(--border)}.fleet-metric-title>span{font-weight:800}.fleet-metric-title small{color:var(--text-muted)}
.fleet-inventory-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.fleet-metric{min-width:0;position:relative;padding:11px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;box-shadow:none}.fleet-metric i{position:absolute;inset-inline-end:10px;top:9px;color:var(--text-muted);font-style:normal}.fleet-metric span{font-size:11px;color:var(--text-muted)}.fleet-metric strong{font-size:24px;color:var(--text-primary);font-variant-numeric:tabular-nums}
.fleet-health-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.fleet-health-metric{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.fleet-health-dot{width:9px;height:9px;border-radius:50%;background:var(--disabled);box-shadow:0 0 0 4px color-mix(in srgb,var(--disabled) 15%,transparent)}.fleet-health-metric span{color:var(--text-muted);font-size:11px}.fleet-health-metric strong{display:block;color:var(--text-primary);font-size:21px}.fleet-health-healthy .fleet-health-dot{background:var(--success);box-shadow:0 0 0 4px color-mix(in srgb,var(--success) 14%,transparent)}.fleet-health-warning .fleet-health-dot{background:var(--warning);box-shadow:0 0 0 4px color-mix(in srgb,var(--warning) 14%,transparent)}.fleet-health-critical .fleet-health-dot{background:var(--danger);box-shadow:0 0 0 4px color-mix(in srgb,var(--danger) 14%,transparent)}
.fleet-skeleton{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.fleet-skeleton i{height:106px;border-radius:14px;background:linear-gradient(90deg,var(--surface-2),var(--surface-hover),var(--surface-2));background-size:200% 100%;animation:fleet-shimmer 1.4s infinite}@keyframes fleet-shimmer{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.fleet-skeleton i{animation:none}}
.fleet-section-head{align-items:flex-end;margin-bottom:15px}.fleet-section-head h3{font-size:20px;margin:0 0 4px}.fleet-section-head p{margin:0;color:var(--text-muted)}
.fleet-attention{gap:9px}.fleet-attention-item{display:grid;grid-template-columns:130px minmax(190px,.75fr) minmax(260px,1.3fr) auto;gap:16px;align-items:center;padding:13px 14px;border-inline-start:4px solid var(--warning);background:var(--surface-2);color:var(--text-primary);cursor:default}.fleet-attention-critical{border-inline-start-color:var(--danger)}.fleet-attention-offline{border-inline-start-color:var(--disabled)}.fleet-attention-severity{display:grid;justify-items:start;gap:6px}.fleet-attention-severity time{font-size:10px;color:var(--text-muted)}.fleet-attention-main{display:grid;gap:2px;min-width:0}.fleet-attention-main strong{font-size:15px}.fleet-attention-main small,.fleet-attention-item p{color:var(--text-muted);margin:0;line-height:1.5}.fleet-attention-item .secondary-btn{white-space:nowrap}
.fleet-state{align-items:center;gap:5px;border:1px solid transparent}.fleet-state::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.fleet-healthy,.fleet-succeeded,.fleet-connected{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}.fleet-warning,.fleet-pending,.fleet-accepted,.fleet-running{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-border)}.fleet-critical,.fleet-failed,.fleet-disconnected{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}.fleet-offline,.fleet-expired,.fleet-cancelled{background:var(--surface-3);color:var(--text-muted);border-color:var(--border)}
.fleet-toolbar{grid-template-columns:minmax(280px,1fr) 190px auto auto auto;align-items:end;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.fleet-search-field{position:relative;display:flex;align-items:center}.fleet-search-field>span:not(.sr-only){position:absolute;inset-inline-start:13px;color:var(--text-muted);font-size:22px}.fleet-search-field input{width:100%;min-height:44px;margin:0!important;padding-inline-start:40px!important}.fleet-filter-field{display:grid;gap:4px;color:var(--text-muted);font-size:10px}.fleet-filter-field select{min-height:44px;margin:0!important}.fleet-toolbar button{min-height:44px}.fleet-clear-btn{display:none}.fleet-search-field:focus-within~.fleet-clear-btn{display:block}
.fleet-table-wrap{border:1px solid var(--border);border-radius:12px}.fleet-table{min-width:970px}.fleet-table thead th{position:sticky;top:0;z-index:1;background:var(--table-head);color:var(--text-secondary);font-size:11px;white-space:nowrap}.fleet-table tbody tr:hover{background:var(--table-row-hover)}.fleet-table td{vertical-align:middle}.fleet-table td>strong{display:block}.fleet-table small{margin-top:4px;color:var(--text-muted);line-height:1.35}.fleet-table .fleet-state+small{max-width:240px}.fleet-count{display:inline-grid;place-items:center;min-width:30px;height:30px;border-radius:9px;background:var(--accent-soft);color:var(--info);font-weight:800}.fleet-row-action{text-align:end}.fleet-row-action button{white-space:nowrap}.fleet-pager{padding-top:3px}.fleet-pager span{color:var(--text-muted);font-size:12px;font-variant-numeric:tabular-nums}
.fleet-empty{display:grid;place-items:center;gap:5px;padding:28px;color:var(--text-muted)}.fleet-empty>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--surface-3);font-size:20px}.fleet-empty strong{color:var(--text-primary)}.fleet-empty small{color:var(--text-muted)}.fleet-empty-positive>span{background:var(--success-bg);color:var(--success)}
.fleet-details-card{width:min(1240px,96vw);padding:0!important;background:var(--app-bg-2)!important}.fleet-details-card>.modal-close{position:sticky;float:inline-end;top:10px;inset-inline-end:12px;z-index:4;width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text-primary)}#fleetDetailsContent{padding:24px}.fleet-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--text-muted);font-size:11px;margin:4px 45px 20px 0}.fleet-breadcrumb b{color:var(--border-strong)}.fleet-breadcrumb span[aria-current="page"]{color:var(--text-primary);font-weight:700}.fleet-details-head{align-items:center;padding:0 0 20px;border-bottom:1px solid var(--border)}.fleet-details-head h2{font-size:28px}.fleet-details-head p{margin:6px 0 0;color:var(--text-muted)}.fleet-health-callout{display:grid;justify-items:end;gap:7px;max-width:360px}.fleet-health-callout small{color:var(--text-muted);text-align:end;line-height:1.45}
.fleet-detail-section{margin-top:14px;padding:17px;border:1px solid var(--border);border-radius:var(--fleet-radius);background:var(--surface);box-shadow:0 5px 18px var(--card-shadow)}.fleet-detail-title{display:flex;align-items:center;gap:11px;margin-bottom:14px}.fleet-detail-title>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--accent-soft);color:var(--info);font-size:17px}.fleet-detail-title h3{margin:0 0 3px;font-size:17px}.fleet-detail-title p{margin:0;color:var(--text-muted);font-size:11px}.fleet-detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.fleet-info-grid{margin:0;grid-template-columns:repeat(4,1fr)}.fleet-info-grid>div{background:var(--surface-2);border-color:var(--border)}.fleet-info-grid span{color:var(--text-muted)}.fleet-info-grid strong{color:var(--text-primary)}.fleet-detail-list{display:grid;gap:0;margin:0}.fleet-detail-list>div{display:flex;justify-content:space-between;gap:18px;padding:9px 0;border-bottom:1px solid var(--border)}.fleet-detail-list>div:last-child{border:0}.fleet-detail-list dt{color:var(--text-muted)}.fleet-detail-list dd{margin:0;font-weight:700;text-align:end}.detail-table-wrap{border:1px solid var(--border);border-radius:11px}.fleet-detail-table,.command-history-table{min-width:780px}.fleet-weight{font-weight:800;font-variant-numeric:tabular-nums}
.legacy-ownership-review{border-color:var(--warning)!important}.legacy-review-warning{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px;border-radius:11px;background:color-mix(in srgb,var(--warning) 14%,var(--surface))}.legacy-review-warning p{flex:1;margin:0;color:var(--text-secondary);line-height:1.6}.legacy-review-warning button{white-space:nowrap}
.legacy-review-warning.danger{border:1px solid var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--surface))}.ownership-evidence{margin:14px 0}.ownership-evidence .uid{overflow-wrap:anywhere}.ownership-review-form{display:grid;gap:12px}.ownership-review-form label{display:grid;gap:6px;font-weight:700}.ownership-review-form textarea{min-height:84px}.ownership-review-form .checkbox-row{display:flex;align-items:flex-start;gap:8px}.ownership-review-actions{display:flex;gap:10px;flex-wrap:wrap}
.remote-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0}.remote-actions button{display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;column-gap:10px;text-align:start;padding:13px;background:var(--accent-soft);color:var(--text-primary);border:1px solid color-mix(in srgb,var(--accent) 40%,var(--border));min-height:82px}.remote-actions button>span{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:color-mix(in srgb,var(--accent) 15%,var(--surface));color:var(--info);font-size:18px}.remote-actions button strong{font-size:13px}.remote-actions button small{color:var(--text-muted);font-weight:400;line-height:1.35}.remote-actions .warning-action{background:var(--warning-bg);color:var(--text-primary);border-color:var(--warning-border)}.remote-actions .warning-action>span{background:color-mix(in srgb,var(--warning) 13%,var(--surface));color:var(--warning)}.remote-actions .danger-action{background:var(--danger-bg);color:var(--text-primary);border-color:var(--danger-border)}.remote-actions .danger-action>span{background:color-mix(in srgb,var(--danger) 13%,var(--surface));color:var(--danger)}.remote-actions button:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}.remote-actions button:focus-visible,.fleet-toolbar button:focus-visible,.fleet-row-action button:focus-visible,.fleet-attention-item button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.remote-actions button:disabled{cursor:not-allowed;filter:grayscale(.25)}.command-error{display:block;max-width:310px;color:var(--danger);white-space:normal;overflow-wrap:anywhere}.result-btn{display:inline-flex;margin-top:5px;color:var(--info);font-weight:800}.admin-message.error small{display:block;margin-top:5px}
html[dir="rtl"] .fleet-breadcrumb{margin:4px 0 20px 45px}html[dir="rtl"] .fleet-breadcrumb b,html[dir="rtl"] .fleet-row-action button span{transform:scaleX(-1)}html[dir="ltr"] .fleet-attention-item{text-align:left}
@media(max-width:1050px){.fleet-metrics{grid-template-columns:1fr}.fleet-toolbar{grid-template-columns:minmax(240px,1fr) 180px auto auto}.fleet-toolbar #fleetResetFilters{grid-column:auto}.fleet-inventory-grid{grid-template-columns:repeat(5,1fr)}.fleet-attention-item{grid-template-columns:115px minmax(180px,.8fr) 1.3fr auto}.remote-actions{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){#adminView .admin-card{padding:14px}.fleet-hero{padding:22px;min-height:auto}.fleet-hero-mark{display:none}.fleet-inventory-grid{grid-template-columns:repeat(2,1fr)}.fleet-inventory-grid .fleet-metric:last-child{grid-column:1/-1}.fleet-toolbar{grid-template-columns:1fr 1fr}.fleet-search-field{grid-column:1/-1}.fleet-toolbar #fleetResetFilters{grid-column:1/-1}.fleet-attention-item{grid-template-columns:1fr auto}.fleet-attention-main,.fleet-attention-item p{grid-column:1/-1}.fleet-attention-item p{order:3}.fleet-attention-item button{grid-column:2;grid-row:1}.fleet-details-card{width:100vw;max-height:100vh;height:100vh;border-radius:0}.fleet-detail-columns,.fleet-info-grid{grid-template-columns:1fr 1fr}.fleet-details-head{align-items:flex-start}.fleet-health-callout{max-width:45%}.remote-actions{grid-template-columns:1fr 1fr}.fleet-table{min-width:0}.fleet-table thead{display:none}.fleet-table tbody,.fleet-table tr,.fleet-table td{display:block;width:100%}.fleet-table tr{position:relative;padding:12px 14px;border-bottom:1px solid var(--border)}.fleet-table td{display:grid;grid-template-columns:105px 1fr;gap:10px;padding:6px 0!important;border:0!important}.fleet-table td::before{content:attr(data-label);color:var(--text-muted);font-size:11px;font-weight:700}.fleet-table .fleet-row-action{display:block;text-align:end}.fleet-table .fleet-row-action::before{display:none}.fleet-table .fleet-row-action button{width:100%;margin-top:5px}.detail-table-wrap{overflow:visible}.fleet-detail-table,.command-history-table{min-width:0}.fleet-detail-table thead,.command-history-table thead{display:none}.fleet-detail-table tbody,.fleet-detail-table tr,.fleet-detail-table td,.command-history-table tbody,.command-history-table tr,.command-history-table td{display:block;width:100%}.fleet-detail-table tr,.command-history-table tr{padding:10px;border-bottom:1px solid var(--border)}.fleet-detail-table td,.command-history-table td{display:grid;grid-template-columns:110px 1fr;gap:10px;padding:6px!important;border:0!important}.fleet-detail-table td::before,.command-history-table td::before{content:attr(data-label);color:var(--text-muted);font-size:11px;font-weight:700}}
@media(max-width:500px){main{width:min(100% - 18px,1500px)}.fleet-health-grid,.fleet-detail-columns,.fleet-info-grid,.remote-actions{grid-template-columns:1fr}.fleet-toolbar{grid-template-columns:1fr}.fleet-toolbar>*{grid-column:1!important}.fleet-attention-item{grid-template-columns:1fr}.fleet-attention-item button{grid-column:1;grid-row:auto;width:100%}.fleet-details-head{display:grid}.fleet-health-callout{max-width:none;justify-items:start}.fleet-health-callout small{text-align:start}#fleetDetailsContent{padding:16px}.fleet-breadcrumb{margin-inline:0 38px}.fleet-skeleton{grid-template-columns:1fr 1fr}.fleet-pager{gap:8px}.fleet-pager button{padding-inline:10px}.fleet-pager span{font-size:10px}.legacy-review-warning{align-items:stretch;flex-direction:column}.legacy-review-warning button{width:100%;white-space:normal}}
.quantity-alert-settings{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
.quantity-alert-settings h4{margin:0 0 10px}
.quantity-toggle{display:flex;align-items:center;gap:8px;margin:10px 0;color:var(--text)}
.quantity-toggle input{width:18px;height:18px}
.entity-context-menu{position:fixed;z-index:2100;min-width:220px;max-width:min(310px,calc(100vw - 24px));padding:7px;background:var(--surface,#fff);border:1px solid var(--line,#b9d1e2);border-radius:13px;box-shadow:0 14px 38px rgba(7,40,66,.22)}
.entity-context-menu button{display:block;width:100%;border:0;background:transparent;color:var(--text,#123047);text-align:start;padding:10px 12px;border-radius:9px;cursor:pointer;font:inherit}
.entity-context-menu button:hover,.entity-context-menu button:focus{background:var(--surface-2,#eaf3f9);outline:none}
.entity-context-menu button.context-danger{color:#b42318}
.hierarchy-card-menu{position:absolute;inset-inline-end:12px;top:12px;z-index:3;width:42px;height:42px;border-radius:12px;border:1px solid var(--line,#b9d1e2);background:var(--surface,#fff);color:var(--text,#123047);font-size:23px;cursor:pointer}
.live-hierarchy-card{position:relative}
.silo-card-menu{width:38px;height:38px;padding:0;border-radius:10px;border:1px solid var(--line,#b9d1e2);background:var(--surface,#fff);color:var(--text,#123047);font-size:22px;cursor:pointer}
.silo-detail-hero{margin-bottom:14px}
.maintenance-modal-card{width:min(820px,calc(100vw - 28px));max-height:92vh;overflow:auto}
.maintenance-summary,.maintenance-review{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:10px 0}
.maintenance-summary>div,.maintenance-review>div,.maintenance-period,.maintenance-binding{padding:12px;border:1px solid var(--border,#d6e2ea);border-radius:12px;background:var(--panel-soft,#f5f8fa)}
.maintenance-summary span,.maintenance-review span,.maintenance-period small,.maintenance-binding small{display:block;color:var(--muted,#667784);font-size:.82rem}
.maintenance-form{display:grid;gap:12px}
.maintenance-form fieldset{border:1px solid var(--border,#d6e2ea);border-radius:14px;padding:12px}
.maintenance-choice{display:flex;gap:10px;align-items:flex-start;padding:10px;border-radius:10px;cursor:pointer}
.maintenance-choice:has(input:checked){background:rgba(20,129,189,.1);outline:2px solid rgba(20,129,189,.35)}
.maintenance-choice small{display:block;color:var(--muted,#667784);margin-top:3px}
.maintenance-warning{padding:13px;border:1px solid #dc8a00;border-radius:12px;background:#fff7e6;color:#7a4b00}
.maintenance-progress{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:7px;margin:12px 0}
.maintenance-progress span{padding:9px;border-radius:999px;text-align:center;background:var(--panel-soft,#edf2f5);color:var(--muted,#667784)}
.maintenance-progress span.active{background:#1481bd;color:#fff;font-weight:700}
.maintenance-progress span.done{background:#168a54;color:#fff}
.maintenance-bindings,.maintenance-periods{display:grid;gap:8px;margin-top:12px}
.logger-maintenance-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0;padding:10px;border:1px solid var(--border,#d6e2ea);border-radius:14px;background:var(--panel-soft,#f5f8fa)}
.logger-maintenance-actions button{min-height:42px}
.maintenance-binding,.maintenance-period{display:flex;justify-content:space-between;gap:12px;align-items:center}
.maintenance-badge{border-radius:999px;padding:4px 9px;background:#eaf3fb;color:#0d456f;font-weight:700;font-size:.8rem}
.maintenance-badge.current,.maintenance-badge.ready{background:#daf3e6;color:#12643e}
.maintenance-badge.warning{background:#fff0d4;color:#855200}
html[dir="ltr"] .maintenance-choice,html[dir="ltr"] .maintenance-binding,html[dir="ltr"] .maintenance-period{text-align:left}
@media(max-width:640px){.maintenance-modal-card{width:calc(100vw - 16px);padding:14px}.maintenance-summary,.maintenance-review{grid-template-columns:1fr}.maintenance-progress{grid-template-columns:1fr 1fr}}
/* Contextual entity actions stay compact and touch-friendly on narrow screens. */
.entity-context-trigger{width:42px;height:42px;border:1px solid var(--border);border-radius:12px;background:var(--soft,#edf5fa);color:var(--text);font-size:22px;line-height:1;cursor:pointer}
.analytics-events-mobile{display:none}.analytics-mobile-record{border:1px solid var(--border);border-inline-start:4px solid var(--accent);border-radius:12px;background:var(--surface-2);padding:10px 12px;margin-top:8px}.analytics-mobile-record.consumption{border-inline-start-color:var(--orange)}.analytics-mobile-record.filling{border-inline-start-color:var(--green)}.analytics-mobile-record-head,.analytics-mobile-meta{display:flex;align-items:center;justify-content:space-between;gap:10px}.analytics-mobile-record-head strong{direction:ltr}.analytics-mobile-silo{display:block;margin-top:7px;font-size:15px}.analytics-mobile-weights{display:flex;align-items:center;gap:8px;margin-top:7px;font-size:16px;direction:ltr}.analytics-mobile-weights span{color:var(--text-muted)}.analytics-mobile-meta{margin-top:7px;color:var(--text-muted);font-size:11px}.analytics-mobile-record small{display:block;margin-top:6px;color:var(--text-muted)}.analytics-mobile-empty{padding:18px;text-align:center;color:var(--text-muted)}
.chart-value-label{font-size:11px;font-weight:700;paint-order:stroke;stroke:var(--surface-2);stroke-width:3px;stroke-linejoin:round}.chart-value-consumption{fill:var(--orange)}.chart-value-filling{fill:#2f80ed}
.movement-ledger{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface-2)}.movement-ledger-head,.movement-ledger-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(110px,auto);align-items:center;gap:14px;padding:8px 12px}.movement-ledger-head{font-size:11px;color:var(--text-muted);background:var(--surface-3);border-bottom:1px solid var(--border)}.movement-ledger-row{min-height:38px;border-bottom:1px solid color-mix(in srgb,var(--border) 65%,transparent)}.movement-ledger-row:last-child{border-bottom:0}.movement-ledger-source{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.movement-ledger-change{direction:ltr;unicode-bidi:isolate;white-space:nowrap;font-variant-numeric:tabular-nums}.movement-ledger-change.ev-consumption{color:var(--orange)}.movement-ledger-change.ev-filling{color:#2f80ed}.movement-ledger-time{direction:ltr;unicode-bidi:isolate;color:var(--text-muted);font-size:12px;white-space:nowrap}.movement-ledger-empty{padding:16px;text-align:center;color:var(--text-muted)}.silo-movement-history{margin-top:14px}.silo-history-loading{padding:14px;color:var(--text-muted)}
.movement-ledger-silo .movement-ledger-head,.movement-ledger-silo .movement-ledger-row{grid-template-columns:minmax(0,1fr) minmax(110px,auto)}
@media(max-width:560px){.analytics-controls .analytics-apply{display:none}.analytics-events-table,.analytics-table-wrap{display:none}.analytics-events-mobile{display:block}.analytics-events{margin-top:12px}.analytics-mobile-record{padding:9px 10px}}
@media(max-width:560px){.movement-ledger-head,.movement-ledger-row{grid-template-columns:minmax(0,1fr) auto minmax(86px,auto);gap:8px;padding:7px 9px}.movement-ledger-head{font-size:10px}.movement-ledger-source{font-size:13px}.movement-ledger-change{font-size:13px}.movement-ledger-time{font-size:11px}}
@media(max-width:560px){.movement-ledger-silo .movement-ledger-head,.movement-ledger-silo .movement-ledger-row{grid-template-columns:minmax(0,1fr) minmax(86px,auto)}}
.entity-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.entity-title-row h2,.entity-title-row h3,.entity-title-row h4{min-width:0;overflow-wrap:anywhere}.entity-title-row .hierarchy-card-menu,.entity-title-row .customer-card-menu,.entity-title-row .silo-card-menu{position:static;flex:0 0 auto}.app-menu-btn,.app-menu{display:none}
@media(max-width:760px){.main-nav{order:3!important}}

/* System Administration console */
#adminView.admin-console-view{width:min(100% - 24px,1580px);max-width:none;margin:18px auto 34px;padding:0}
.admin-console-shell{display:grid;grid-template-columns:270px minmax(0,1fr);gap:18px;align-items:start;min-height:calc(100vh - 150px)}
.admin-sidebar{position:sticky;top:82px;display:flex;flex-direction:column;min-height:calc(100vh - 110px);max-height:calc(100vh - 96px);overflow:auto;padding:16px 12px;border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:0 10px 30px var(--card-shadow);z-index:20}
.admin-brand{display:flex;align-items:center;gap:11px;padding:4px 8px 17px;margin-bottom:7px;border-bottom:1px solid var(--border)}
.admin-brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--accent),#0b7893);color:#fff;font-size:13px;font-weight:900;direction:ltr}
.admin-brand strong,.admin-brand small{display:block}.admin-brand strong{font-size:14px}.admin-brand small{margin-top:2px;color:var(--text-muted);direction:ltr;text-align:start}
.admin-nav-group{padding:17px 10px 6px;color:var(--text-muted);font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.admin-nav-item{position:relative;display:grid;grid-template-columns:25px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;min-height:43px;padding:8px 10px;border:0;border-radius:11px;background:transparent;color:var(--text-secondary);font:inherit;text-align:start;cursor:pointer}
.admin-nav-item>span{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:var(--surface-3);color:var(--info)}
.admin-nav-item>b{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.admin-nav-item>em{display:grid;place-items:center;min-width:21px;height:21px;padding:0 5px;border-radius:10px;background:var(--danger-bg);color:var(--danger);font-size:10px;font-style:normal;font-weight:900}
.admin-nav-item:hover{background:var(--surface-2);color:var(--text-primary)}.admin-nav-item.active{background:var(--accent-soft);color:var(--text-primary);box-shadow:inset 3px 0 var(--accent)}
html[dir="rtl"] .admin-nav-item.active{box-shadow:inset -3px 0 var(--accent)}
.admin-sidebar-foot{display:grid;gap:9px;margin-top:auto;padding:18px 5px 3px}.admin-sidebar-foot button{width:100%}.admin-sidebar-foot small{overflow:hidden;color:var(--text-muted);text-align:center;text-overflow:ellipsis;white-space:nowrap}
.admin-console-main{min-width:0}.admin-console-topbar{position:sticky;top:72px;z-index:10;display:flex;align-items:center;gap:13px;min-height:72px;padding:10px 16px;margin-bottom:15px;border:1px solid color-mix(in srgb,var(--border) 75%,transparent);border-radius:16px;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:0 7px 24px var(--card-shadow);backdrop-filter:blur(14px)}
.admin-console-topbar>div:nth-child(2){min-width:0}.admin-console-topbar span{display:block;color:var(--text-muted);font-size:10px}.admin-console-topbar h2{margin:2px 0 0;font-size:20px}.admin-console-top-actions{display:flex;align-items:center;gap:10px;margin-inline-start:auto}.admin-console-top-actions small{color:var(--text-muted);font-size:10px}.admin-console-top-actions small.stale{color:var(--warning)}
.admin-menu-btn{display:none;width:42px;height:42px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2);color:var(--text-primary);font-size:20px}.admin-drawer-backdrop{display:none}
.admin-section-panel{animation:admin-panel-in .18s ease both}.admin-section-panel.hidden{display:none!important}@keyframes admin-panel-in{from{opacity:.35;transform:translateY(5px)}to{opacity:1;transform:none}}
.admin-section-panel>.admin-card{margin-top:14px}.admin-page-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:23px 25px;border:1px solid var(--border);border-radius:18px;background:linear-gradient(135deg,var(--surface),var(--surface-2));box-shadow:0 6px 22px var(--card-shadow)}
.admin-page-intro h2{margin:4px 0 5px;font-size:27px}.admin-page-intro p{max-width:760px;margin:0;color:var(--text-muted)}
.admin-dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.admin-dashboard-grid>.admin-card{margin:14px 0 0}
.admin-status-list,.admin-activity-list{display:grid;gap:7px}.admin-status-list button,.admin-activity-list button{display:grid;grid-template-columns:minmax(0,1fr) auto 18px;align-items:center;gap:12px;width:100%;min-height:58px;padding:9px 11px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2);color:var(--text-primary);text-align:start;cursor:pointer}
.admin-status-list button:hover,.admin-activity-list button:hover{border-color:var(--accent);background:var(--accent-soft)}.admin-status-list span,.admin-activity-list span{min-width:0}.admin-status-list strong,.admin-status-list small,.admin-activity-list strong,.admin-activity-list small{display:block}.admin-status-list small,.admin-activity-list small{margin-top:3px;color:var(--text-muted);font-size:10px}.admin-status-list b{font-size:14px;direction:ltr;unicode-bidi:isolate}.admin-status-list i,.admin-activity-list i{color:var(--text-muted);font-style:normal}.admin-activity-list time{color:var(--text-muted);font-size:10px;direction:ltr;unicode-bidi:isolate}
.admin-quick-actions>.admin-inline-actions{gap:10px}.admin-quick-actions button{min-height:42px}
.admin-compact-summary{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 12px}.admin-compact-summary>span{display:flex;align-items:center;gap:7px;min-height:38px;padding:7px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text-muted);font-size:11px}.admin-compact-summary b{color:var(--text-primary);font-size:18px;direction:ltr}
.admin-list-toolbar{display:grid;grid-template-columns:minmax(230px,1fr) minmax(150px,auto) auto;gap:10px;align-items:center}.admin-list-toolbar input,.admin-list-toolbar select{min-height:42px;margin:0!important}
.admin-activity-filters{grid-template-columns:minmax(210px,1fr) repeat(3,minmax(130px,auto)) auto}
.admin-installer-card{padding:14px;border:1px solid var(--border);border-radius:13px;background:var(--surface-2);margin-top:9px}.admin-installer-card>.admin-customer-head small{display:block;margin-top:4px;color:var(--text-muted);font-weight:400}.admin-installer-card>details>summary{margin-top:10px;padding:9px;border-top:1px solid var(--border);color:var(--info);cursor:pointer}
.admin-tabs{display:flex;gap:5px;padding:5px;margin:14px 0;border:1px solid var(--border);border-radius:13px;background:var(--surface)}.admin-tabs button{min-height:39px;padding:7px 14px;border:0;border-radius:9px;background:transparent;color:var(--text-secondary);font:inherit;font-size:12px;font-weight:800;cursor:pointer}.admin-tabs button.active{background:var(--accent-soft);color:var(--info);box-shadow:0 2px 8px var(--card-shadow)}
.admin-organization-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:12px}.admin-organization-card{padding:15px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}.admin-organization-card header{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-organization-card header strong,.admin-organization-card header small{display:block}.admin-organization-card header small{margin-top:4px;color:var(--text-muted)}.admin-org-stats{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.admin-org-stats span{padding:5px 8px;border-radius:8px;background:var(--surface-3);color:var(--text-secondary);font-size:10px}.admin-end-customers{display:grid;gap:5px}.admin-end-customers button{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text-primary);text-align:start}.admin-end-customers button small{color:var(--text-muted)}
.admin-security-list{display:grid;gap:8px}.admin-security-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:11px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2)}.admin-security-list strong,.admin-security-list small{display:block}.admin-security-list small{margin-top:4px}
.admin-package-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.admin-package-grid article{padding:14px;border:1px solid var(--border);border-radius:13px;background:var(--surface-2)}.admin-package-grid header{display:flex;align-items:center;justify-content:space-between}.admin-package-grid header strong{font-size:20px;direction:ltr}.admin-package-grid dl{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:12px 0}.admin-package-grid dl>div{padding:7px;border-radius:8px;background:var(--surface)}.admin-package-grid dt{color:var(--text-muted);font-size:10px}.admin-package-grid dd{margin:3px 0 0;font-weight:800;direction:ltr}
.admin-release-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.admin-release-status article{padding:15px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:0 5px 18px var(--card-shadow)}.admin-release-status span,.admin-release-status strong,.admin-release-status small{display:block}.admin-release-status span,.admin-release-status small{color:var(--text-muted);font-size:10px}.admin-release-status strong{margin:7px 0;font-size:18px;direction:ltr;unicode-bidi:isolate}.monitor-channel{display:inline-flex;padding:4px 8px;border:1px solid var(--border);border-radius:999px;font-size:10px;font-weight:900}.monitor-stable{background:var(--success-bg);color:var(--success)}.monitor-preview{background:var(--warning-bg);color:var(--warning)}
.monitor-release-drawer{width:min(900px,94vw);max-height:94vh;overflow:auto}.monitor-notes-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.monitor-notes-grid section{min-height:150px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.monitor-notes-grid h3{margin-top:0}.monitor-notes-grid p{white-space:pre-wrap}.admin-hash{max-width:300px;overflow-wrap:anywhere;word-break:break-all;direction:ltr;unicode-bidi:isolate}.monitor-detail-actions{position:sticky;bottom:0;padding:12px;background:color-mix(in srgb,var(--surface) 94%,transparent);border-top:1px solid var(--border);backdrop-filter:blur(12px)}
.upload-progress{margin:12px 0;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2);box-shadow:0 8px 24px rgba(15,23,42,.06)}.upload-progress-head,.upload-progress-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.upload-progress-head>div:first-child{min-width:0}.upload-progress-head strong,.upload-progress-head small{display:block}.upload-progress-head small{margin-top:3px;color:var(--text-muted);overflow-wrap:anywhere}.upload-progress-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}.upload-progress-actions .danger-btn{min-height:34px;padding:6px 10px}.upload-progress-track{height:12px;margin:10px 0;border-radius:999px;background:color-mix(in srgb,var(--text-muted) 18%,transparent);overflow:hidden}.upload-progress-track span{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .16s ease}.upload-progress-verifying .upload-progress-track span{animation:upload-progress-pulse 1.1s ease-in-out infinite}.upload-progress-success{border-color:color-mix(in srgb,var(--success,#22a06b) 48%,var(--border))}.upload-progress-success .upload-progress-track span{background:var(--success,#22a06b)}.upload-progress-failed,.upload-progress-cancelled{border-color:color-mix(in srgb,var(--danger,#d14343) 48%,var(--border))}.upload-progress-failed .upload-progress-track span,.upload-progress-cancelled .upload-progress-track span{background:var(--danger,#d14343)}.upload-progress-meta{color:var(--text-muted);font-size:13px}.upload-progress-meta span:first-child{direction:ltr;unicode-bidi:isolate}.upload-progress-meta span:last-child{text-align:end}@keyframes upload-progress-pulse{0%,100%{opacity:.5}50%{opacity:1}}@media(max-width:620px){.upload-progress-head,.upload-progress-meta{align-items:flex-start;flex-direction:column}.upload-progress-actions{width:100%;justify-content:space-between}.upload-progress-meta span:last-child{text-align:start}.monitor-notes-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.upload-progress-track span{transition:none}.upload-progress-verifying .upload-progress-track span{animation:none}}
.admin-console-empty{display:grid;place-items:center;gap:5px;min-height:100px;padding:18px;color:var(--text-muted);text-align:center}.admin-console-empty>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--surface-3)}.admin-console-empty strong{color:var(--text-primary)}.admin-console-empty small{color:var(--text-muted)}.admin-console-loading{padding:25px;color:var(--text-muted);text-align:center}.admin-console-loading::before{content:"";display:inline-block;width:15px;height:15px;margin-inline-end:8px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;vertical-align:middle;animation:spin .7s linear infinite}
.installer-wizard-card{width:min(610px,94vw)}.installer-wizard-progress{display:flex;align-items:center;justify-content:center;margin:5px 40px 20px}.installer-wizard-progress span{display:grid;place-items:center;width:31px;height:31px;border:1px solid var(--border);border-radius:50%;background:var(--surface-2);font-weight:800}.installer-wizard-progress span.active{border-color:var(--accent);background:var(--accent);color:#fff}.installer-wizard-progress i{width:70px;height:2px;background:var(--border)}.installer-wizard-step{display:grid;gap:7px}.installer-wizard-step h3{margin:0}.installer-wizard-step p{margin:0 0 8px;color:var(--text-muted)}.installer-wizard-step dl>div{display:flex;justify-content:space-between;gap:15px;padding:10px;border-bottom:1px solid var(--border)}.installer-wizard-step dd{font-weight:800}.installer-wizard-form{padding:0!important;margin:0!important;background:transparent!important;box-shadow:none!important}.installer-wizard-form>h3,.installer-wizard-form>p{display:none}.admin-assignment-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px}.admin-assignment-row select{min-height:42px}.fleet-health-metric[role="button"]{cursor:pointer}.fleet-health-metric[role="button"]:hover{transform:translateY(-1px);box-shadow:0 5px 18px var(--card-shadow)}
.fleet-health-grid button.fleet-health-metric{width:100%;color:inherit;font:inherit;text-align:start;cursor:pointer}.fleet-health-grid button.fleet-health-metric:hover{transform:translateY(-1px);box-shadow:0 5px 18px var(--card-shadow)}

@media(max-width:1080px){.admin-console-shell{grid-template-columns:230px minmax(0,1fr)}.admin-sidebar{padding-inline:8px}.admin-nav-item{padding-inline:7px}.admin-dashboard-grid{grid-template-columns:1fr}.admin-organization-grid{grid-template-columns:1fr}.admin-console-top-actions small{display:none}}
@media(max-width:800px){#adminView.admin-console-view{width:min(100% - 14px,1580px);margin-top:9px}.admin-console-shell{display:block}.admin-sidebar{position:fixed;top:0;bottom:0;inset-inline-start:0;width:min(310px,86vw);max-height:none;min-height:100vh;border-radius:0;transform:translateX(-110%);transition:transform .2s ease;z-index:80}.admin-sidebar.open{transform:none}html[dir="rtl"] .admin-sidebar{transform:translateX(110%)}html[dir="rtl"] .admin-sidebar.open{transform:none}.admin-drawer-backdrop{display:block;position:fixed;inset:0;border:0;background:rgba(2,12,20,.56);z-index:70}.admin-drawer-backdrop.hidden{display:none}.admin-menu-btn{display:grid;place-items:center}.admin-console-topbar{top:7px}.admin-page-intro{align-items:flex-start;flex-direction:column;padding:18px}.admin-page-intro button{width:100%}.admin-release-status{grid-template-columns:1fr}.admin-list-toolbar{grid-template-columns:1fr 1fr}.admin-list-toolbar input{grid-column:1/-1}.admin-security-list article{grid-template-columns:1fr auto}.admin-security-list article button{grid-column:1/-1}.monitor-notes-grid{grid-template-columns:1fr}.admin-activity-table{min-width:760px}}
@media(max-width:560px){.admin-console-topbar{padding:8px 10px}.admin-console-topbar h2{font-size:17px}.admin-console-top-actions button{width:42px;overflow:hidden;font-size:0}.admin-console-top-actions button::first-letter{font-size:18px}.admin-dashboard-grid{display:block}.admin-tabs{overflow:auto}.admin-tabs button{flex:0 0 auto}.admin-list-toolbar{grid-template-columns:1fr}.admin-list-toolbar>*{grid-column:1!important}.admin-organization-card header{align-items:flex-start;flex-direction:column}.admin-organization-card header button{width:100%}.admin-end-customers button{align-items:flex-start;flex-direction:column}.admin-package-grid{grid-template-columns:1fr}.admin-release-status{grid-template-columns:1fr}.monitor-release-drawer{width:100vw;max-height:100vh;height:100vh;border-radius:0}.admin-assignment-row{grid-template-columns:1fr}.admin-assignment-row button{width:100%}.installer-wizard-progress i{width:34px}.installer-wizard-card{width:100vw;max-height:100vh;height:100vh;border-radius:0}.admin-status-list button{grid-template-columns:minmax(0,1fr) auto 12px}.admin-activity-list button{grid-template-columns:70px minmax(0,1fr) 12px}}
@media(max-width:760px){
  .topbar{height:auto;min-height:54px;display:flex;flex-wrap:wrap;gap:0 8px;padding:6px 10px;position:sticky}
  .brand{min-width:0;flex:1;gap:8px}.brand .product-logo-panel{width:34px;height:34px}.brand .company-logo-panel,.brand .brand-copy .sub{display:none}.brand-copy h1{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .top-actions{display:none}.app-menu-btn{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--text);font-size:20px;cursor:pointer}.app-menu{display:block;position:fixed;inset-inline-end:10px;top:62px;width:min(280px,calc(100vw - 20px));padding:14px;background:var(--surface,#fff);color:var(--text);border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 38px rgba(0,0,0,.24);z-index:30}.app-menu.hidden{display:none}.app-menu-user{display:flex;justify-content:space-between;gap:10px;padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--line)}.app-menu-user span{font-size:12px;color:var(--muted)}.app-menu>label,.app-menu-language{display:block;margin:9px 0 5px;font-size:12px;color:var(--muted)}.app-menu .theme-select{width:100%;min-height:38px}.app-menu-language{display:flex;align-items:center;justify-content:space-between;gap:8px}.app-menu-language button{border:1px solid var(--line);background:transparent;color:inherit;border-radius:8px;padding:7px 9px}.app-menu .logout-btn{width:100%;margin-top:12px}.main-nav{order:initial;width:100%;overflow-x:auto;justify-content:flex-start;gap:2px;padding:4px 0;min-height:44px;scrollbar-width:none}.main-nav::-webkit-scrollbar{display:none}.nav-btn{flex:0 0 auto;padding:8px 11px;font-size:12px}.customer-detail-toolbar{flex-direction:row;align-items:center}.customer-detail-actions{width:auto}.customer-detail-actions button{flex:0 0 auto}.customer-profile-card{padding:12px}.entity-title-row .hierarchy-card-menu{width:34px;height:34px;font-size:19px}.customer-home-card-top{grid-template-columns:62px minmax(0,1fr);align-items:start}.customer-home-photo{width:62px;height:62px}.hierarchy-large-card{grid-template-columns:68px minmax(0,1fr) auto}.hierarchy-large-photo{width:68px;height:78px}.hierarchy-mini-card .entity-title-row h4{font-size:16px}
}
/* Analytics semantic movement colors: consumption negative/orange, filling positive/blue. */
.bar-filling{fill:#2f80ed!important}.filling-dot{background:#2f80ed!important}.analytics-filling{color:#2f80ed!important}
.analytics-chart-wrap{height:290px}.analytics-detail-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.analytics-chart-panel{min-width:0;color:var(--text-muted);font-size:11px}.analytics-chart-panel>strong{display:block;margin:0 0 5px}.analytics-chart-panel .analytics-chart-wrap{height:250px}.analytics-chart-panel .analytics-chart{height:100%}
@media(max-width:700px){.analytics-detail-charts{grid-template-columns:1fr}.analytics-chart-wrap,.analytics-chart-panel .analytics-chart-wrap{height:240px}}

/* ===== Professional analytics chart language ===== */
.analytics-chart-wrap{height:300px;overflow:hidden;padding:0;background:var(--surface)!important}
.analytics-chart{overflow:hidden;direction:ltr}
.chart-grid{stroke:color-mix(in srgb,var(--border) 48%,transparent)!important;stroke-dasharray:3 5}
.chart-axis{font-size:11px;font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate}
.chart-empty{font-size:12px;direction:ltr;unicode-bidi:isolate}
.bar-consumption,.chart-value-consumption{fill:#f97316!important}
.bar-filling,.chart-value-filling{fill:#2f80ed!important}
.consumption-dot{background:#f97316!important}.filling-dot{background:#2f80ed!important}
.analytics-consumption,.movement-ledger-change.ev-consumption{color:#f97316!important}
.analytics-filling,.movement-ledger-change.ev-filling{color:#2f80ed!important}
.analytics-detail-charts{gap:14px;margin-top:14px}
.analytics-chart-panel{padding:12px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--surface-2) 72%,transparent);box-shadow:0 5px 16px var(--card-shadow)}
.analytics-chart-panel>strong{font-size:12px;color:var(--text-primary);margin-bottom:8px}
.analytics-chart-panel .analytics-chart-wrap{height:270px;border:0;background:transparent!important}
.chart-value-label{font-size:11px;paint-order:stroke;stroke:var(--surface);stroke-width:3px}
@media(max-width:800px){.analytics-chart-wrap{height:270px}.analytics-chart-panel .analytics-chart-wrap{height:250px}}
@media(max-width:560px){.analytics-chart-wrap{height:250px}.analytics-chart-panel .analytics-chart-wrap{height:235px}.analytics-chart-panel{padding:9px}}

/* ===== Business reports V2 + today activity ===== */
.report-selector-panel{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));align-items:end;gap:10px}
.report-selector-panel .field:nth-of-type(5),.report-selector-panel .field:nth-of-type(6){grid-column:span 1}
.report-auto-status{min-height:18px;color:var(--text-muted);font-size:11px;align-self:center}
.report-business-context{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px;margin-top:14px}
.report-business-context>div{padding:9px 11px;border:1px solid #dce7ee;border-radius:9px;background:#f7fafc}
.report-business-context span{display:block;color:#70808b;font-size:10px}.report-business-context strong{display:block;margin-top:4px;color:#1d3443;font-size:13px}
.report-mode-label{margin:12px 0 0;color:#61727e;font-size:11px}
.report-table .report-amount,.report-table .report-net{direction:ltr;unicode-bidi:isolate;font-variant-numeric:tabular-nums;white-space:nowrap}
.report-consumption,.report-metric-consumption strong{color:#f97316!important}.report-filling,.report-metric-filling strong{color:#2f80ed!important}.report-empty-cell{text-align:center!important;color:#71808a;padding:28px!important}
.today-activity{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px;direction:ltr}
.today-activity>span{display:grid;gap:2px;min-width:0;padding:6px 8px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);text-align:left}
.today-activity b{font-size:10px;color:var(--text-muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.today-activity strong{font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}.today-consumption strong{color:#f97316}.today-filling strong{color:#2f80ed}
.customer-home-card .today-activity{margin-top:9px}.customer-home-card .today-activity>span{background:var(--surface-2)}
@media(max-width:800px){.report-selector-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.report-auto-status{grid-column:1/-1}}
@media(max-width:560px){.report-selector-panel{grid-template-columns:1fr}.report-business-context{grid-template-columns:1fr 1fr}.today-activity b{font-size:9px}.today-activity strong{font-size:13px}}
@media print{.report-selector-panel,.report-auto-status{display:none!important}.report-business-context{grid-template-columns:repeat(4,1fr)}.report-business-context>div{break-inside:avoid}.today-activity{display:none!important}}

/* Compact secondary activity metrics: keep them beside the card summary without widening the card. */
.today-activity{grid-template-columns:1fr;width:132px;max-width:100%;gap:4px;margin-top:6px;justify-items:stretch}
.today-activity>span{min-height:0;padding:4px 7px;border-radius:7px;gap:1px}
.today-activity b{font-size:9px;line-height:1.2}
.today-activity strong{font-size:12px;line-height:1.2}
.desktop-side-info .today-activity{align-self:center;margin-top:0}
.live-hierarchy-meta .today-activity,.customer-home-meta .today-activity,.customer-profile-info .today-activity{margin-inline-start:0}
@media(max-width:800px){.today-activity{width:128px}.desktop-side-info .today-activity{justify-self:center}}
@media(max-width:560px){.today-activity{width:122px}.today-activity b{font-size:8px}.today-activity strong{font-size:11px}}

/* Hierarchy cards use one compact operational KPI component. */
.hierarchy-kpi-group{display:grid;grid-template-columns:repeat(5,minmax(100px,140px));justify-content:start;gap:6px;margin-top:9px;min-width:0}
.hierarchy-kpi{display:grid;align-content:center;gap:2px;min-width:0;min-height:54px;padding:7px 8px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);color:var(--text);text-align:center;cursor:default}
.hierarchy-kpi-value{font-size:14px;line-height:1.15;font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hierarchy-kpi small{font-size:9px;line-height:1.2;color:var(--text-muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hierarchy-kpi-consumption .hierarchy-kpi-value{color:#f97316}.hierarchy-kpi-filling .hierarchy-kpi-value{color:#2f80ed}
.hierarchy-kpi-connectivity.online{border-color:#b8dfc5;background:#edf9f1;color:#1d7540}.hierarchy-kpi-connectivity.offline{border-color:#efc1bd;background:#fff2f1;color:#a43c34}
.hierarchy-kpi-connectivity.online small,.hierarchy-kpi-connectivity.offline small{color:inherit;opacity:.75}
.customer-home-meta,.live-hierarchy-meta{min-width:0}
.hierarchy-large-card{min-height:152px;padding:12px;gap:12px}
.hierarchy-large-photo{width:108px;height:106px}
.hierarchy-big-stats{gap:6px;margin:7px 0 2px}
.hierarchy-big-stats span{padding:4px 8px}
@media(max-width:1050px){.hierarchy-large-card{grid-template-columns:100px minmax(0,1fr) auto}.hierarchy-large-photo{width:96px;height:96px}}
@media(max-width:680px){.hierarchy-kpi-group{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch}.hierarchy-kpi{max-width:none}.hierarchy-large-card{min-height:138px;padding:10px;gap:10px}.hierarchy-large-photo{width:82px;height:92px}}

/* Shared localized explanatory tooltip for compact controls and metrics. */
.web-tooltip{position:fixed;z-index:2200;max-width:min(300px,calc(100vw - 24px));padding:6px 9px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#102334;color:#fff;box-shadow:0 8px 20px rgba(0,0,0,.2);font-size:11px;line-height:1.35;text-align:start;pointer-events:none;opacity:0;transition:opacity .12s ease;white-space:normal}
.web-tooltip.visible{opacity:1}
.service-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0 18px}.service-summary-item{padding:14px;border:1px solid var(--line,#d8e0e6);border-radius:12px;background:var(--surface,#fff);display:flex;flex-direction:column;gap:7px;min-width:0}.service-summary-item span{font-size:.78rem;color:var(--muted,#607080)}.service-summary-item strong{font-size:1rem;unicode-bidi:plaintext}.service-status-active{color:#137a45}.service-status-suspended{color:#a45d00}.service-status-expired{color:#a53232}.service-history-list{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow:auto;padding-inline-end:4px}.service-history-card{border:1px solid var(--line,#d8e0e6);border-radius:10px;padding:11px 13px;background:var(--surface,#fff)}.service-history-card>div:first-child{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.service-history-card time,.service-history-values{font-size:.78rem;color:var(--muted,#607080)}.service-history-values{display:flex;flex-wrap:wrap;gap:8px;margin-top:7px}@media(max-width:760px){.service-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-history-card>div:first-child{flex-direction:column;gap:3px}}
