:root {
  --bg:     #060e17;
  --bg2:    #0b1724;
  --bg3:    #0f1f30;
  --card:   #0d1e2e;
  --border: #1a3a55;
  --border2:#254a6a;
  --text1:  #e8f6ff;
  --text2:  #6a9bbf;
  --text3:  #3a6a8a;
  --blue:   #1a9fe3;
  --cyan:   #00d4f5;
  --teal:   #0bc8b0;
  --green:  #3dd68c;
  --amber:  #f0a020;
  --red:    #f04a4a;
  --use:    #38b8f8;
  --raw:    #3dd68c;
  --clean:  #5cc8f0;
  --radius: 10px;
  --radius-lg: 16px;
  --shadow: 0 4px 24px rgba(0,0,0,0.4);
}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{background:var(--bg);color:var(--text1);font-family:'Segoe UI',system-ui,sans-serif;font-size:14px;min-height:100vh;}

/* background grid pattern */
body::before{content:'';position:fixed;inset:0;background-image:linear-gradient(rgba(26,159,227,0.03) 1px,transparent 1px),linear-gradient(90deg,rgba(26,159,227,0.03) 1px,transparent 1px);background-size:40px 40px;pointer-events:none;z-index:0;}

.app{max-width:1400px;margin:0 auto;padding:0 24px 60px;position:relative;z-index:1;}

/* ── Topbar ── */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 0 14px;border-bottom:1px solid var(--border);margin-bottom:20px;flex-wrap:wrap;gap:12px;}
.brand{display:flex;align-items:center;gap:12px;}
.live-dot{width:10px;height:10px;border-radius:50%;background:var(--text3);display:inline-block;transition:background .3s;box-shadow:0 0 0 0 transparent;}
.live-dot.connected{background:var(--cyan);animation:pulse-ring 2s infinite;}
@keyframes pulse-ring{0%{box-shadow:0 0 0 0 rgba(0,212,245,0.5)}70%{box-shadow:0 0 0 8px rgba(0,212,245,0)}100%{box-shadow:0 0 0 0 rgba(0,212,245,0)}}
.brand-name{font-size:17px;font-weight:700;color:var(--text1);letter-spacing:.3px;}
.brand-sub{font-size:11px;color:var(--text2);margin-top:2px;}

/* ── Tabs ── */
.tab-nav{display:flex;gap:5px;flex-wrap:wrap;}
.tn{font-size:12px;padding:7px 16px;border-radius:24px;border:1px solid var(--border);background:transparent;color:var(--text2);cursor:pointer;transition:all .2s;font-weight:500;}
.tn:hover{border-color:var(--blue);color:var(--text1);background:rgba(26,159,227,.08);}
.tn.active{background:linear-gradient(135deg,rgba(26,159,227,.25),rgba(0,212,245,.15));color:var(--cyan);border-color:var(--cyan);box-shadow:0 0 12px rgba(0,212,245,.15);}
.tab-page{display:none;}
.tab-page.active{display:block;}

/* ── Alert strip ── */
.alert-strip{display:flex;align-items:center;gap:10px;background:rgba(240,160,32,.1);border:1px solid rgba(240,160,32,.35);border-radius:var(--radius);padding:10px 16px;margin-bottom:16px;font-size:12px;color:var(--amber);backdrop-filter:blur(4px);}

/* ── Section card ── */
.section{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 24px;margin-bottom:16px;box-shadow:var(--shadow);position:relative;overflow:hidden;}
.section::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(26,159,227,.3),transparent);}
.sec-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;}
.sec-title{font-size:14px;font-weight:600;color:var(--text1);letter-spacing:.2px;}
.badge{font-size:10px;padding:3px 10px;border-radius:20px;font-weight:500;}
.badge-live{background:rgba(26,159,227,.2);color:var(--cyan);border:1px solid rgba(0,212,245,.3);animation:badge-blink 2s infinite;}
@keyframes badge-blink{0%,100%{opacity:1}50%{opacity:.6}}

/* ── Summary metric cards ── */
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px;}
.mc{background:var(--bg3);border-radius:var(--radius-lg);padding:16px 18px;position:relative;overflow:hidden;border:1px solid var(--border);transition:transform .2s,box-shadow .2s;}
.mc:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(0,0,0,.4);}
.mc::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;border-radius:0 0 var(--radius-lg) var(--radius-lg);}
.mc::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;border-radius:var(--radius-lg);opacity:0;transition:opacity .2s;}
.mc.c1::after{background:linear-gradient(90deg,var(--blue),var(--cyan));}
.mc.c2::after{background:linear-gradient(90deg,var(--cyan),var(--teal));}
.mc.c3::after{background:linear-gradient(90deg,var(--teal),var(--green));}
.mc.c4::after{background:linear-gradient(90deg,var(--amber),#f07020);}
.mc.c5::after{background:linear-gradient(90deg,var(--green),var(--teal));}
.mc-lbl{font-size:10px;color:var(--text2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-weight:600;}
.mc-val{font-size:26px;font-weight:700;line-height:1;color:var(--text1);}
.mc-unit{font-size:12px;color:var(--text2);margin-left:3px;font-weight:400;}
.mc-note{font-size:11px;color:var(--text2);margin-top:6px;}

/* ── Roof tank ── */
.roof-wrap{display:flex;justify-content:center;margin-bottom:10px;}
.pipe-down-row{display:flex;flex-direction:column;align-items:center;gap:2px;margin:6px 0 10px;}
.pipe-line{width:2px;height:20px;background:linear-gradient(180deg,rgba(58,184,248,.5),rgba(58,184,248,.1));}
.pipe-arrow{color:var(--use);font-size:14px;line-height:1;}
.pipe-label{font-size:10px;color:var(--text2);margin-top:2px;}

/* ── Tank columns ── */
.tanks-3col{display:grid;grid-template-columns:1fr 36px 1fr 36px 1fr;align-items:start;gap:4px;}
.flow-arrow-col{display:flex;flex-direction:column;align-items:center;padding-top:70px;gap:4px;}
.arr-icon{font-size:22px;color:var(--blue);filter:drop-shadow(0 0 6px rgba(26,159,227,.5));}
.arr-label{font-size:9px;color:var(--text2);}
.tank-col{display:flex;flex-direction:column;align-items:center;gap:7px;}
.tank-name{font-size:13px;font-weight:600;color:var(--text1);text-align:center;}
.tank-name-sub{font-size:10px;color:var(--text2);text-align:center;}
.use-name{color:var(--use);}
.roof-name{color:var(--use);}

/* ── Tank visuals ── */
.tank-visual{width:100%;display:flex;justify-content:center;}
.tank-outer{border:2px solid;border-radius:8px;overflow:hidden;position:relative;}
.roof-outer{width:110px;height:130px;border-color:rgba(58,184,248,.5);box-shadow:0 0 20px rgba(58,184,248,.1),inset 0 0 20px rgba(0,0,0,.3);}
.raw-outer{width:100px;height:120px;border-color:rgba(61,214,140,.4);box-shadow:0 0 16px rgba(61,214,140,.08),inset 0 0 16px rgba(0,0,0,.3);}
.clean-outer{width:100px;height:120px;border-color:rgba(92,200,240,.4);box-shadow:0 0 16px rgba(92,200,240,.08),inset 0 0 16px rgba(0,0,0,.3);}
.use-outer{width:100px;height:120px;border-color:rgba(58,184,248,.6);border-width:2.5px;box-shadow:0 0 20px rgba(58,184,248,.15),inset 0 0 16px rgba(0,0,0,.3);}
.tank-body-inner{position:relative;width:100%;height:100%;}
.tank-fill{position:absolute;bottom:0;left:0;right:0;transition:height 1.4s cubic-bezier(.4,0,.2,1);}
.roof-fill{background:linear-gradient(180deg,rgba(58,184,248,.15) 0%,rgba(26,120,200,.45) 100%);}
.raw-fill{background:linear-gradient(180deg,rgba(61,214,140,.1) 0%,rgba(30,160,80,.4) 100%);}
.clean-fill{background:linear-gradient(180deg,rgba(92,200,240,.1) 0%,rgba(26,143,227,.4) 100%);}
.use-fill{background:linear-gradient(180deg,rgba(100,200,255,.15) 0%,rgba(26,120,200,.5) 100%);}

/* wave shimmer on top of fill */
.tank-fill::after{content:'';position:absolute;top:0;left:-100%;width:300%;height:6px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);animation:wave-shimmer 3s linear infinite;}
@keyframes wave-shimmer{0%{left:-100%}100%{left:100%}}

.tank-label-inside{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;z-index:2;}
.pct-text{display:block;font-size:17px;font-weight:700;color:var(--text1);line-height:1.2;text-shadow:0 2px 8px rgba(0,0,0,.8);}
.vol-text{display:block;font-size:9px;color:rgba(255,255,255,.5);margin-top:3px;}
.use-pct{color:var(--use);}
.use-vol{color:rgba(58,184,248,.7);}
.threshold-line{position:absolute;left:0;right:0;height:1px;border-top:1px dashed rgba(240,160,32,.6);z-index:3;}

/* scale ticks */
.tank-scale{position:absolute;right:3px;top:0;bottom:0;display:flex;flex-direction:column;justify-content:space-between;padding:4px 0;z-index:2;}
.tick{font-size:7px;color:rgba(255,255,255,.2);line-height:1;}

/* ── Gauge canvas ── */
.gauge-wrap{width:100%;display:flex;justify-content:center;}
.gauge-canvas{display:block;}

/* ── Digital display ── */
.ddisp{width:100%;background:linear-gradient(135deg,#050e18,#071525);border-radius:8px;border:1.5px solid;padding:9px 11px;text-align:center;font-family:'Courier New',monospace;box-shadow:inset 0 0 20px rgba(0,0,0,.5);}
.roof-disp{border-color:rgba(58,184,248,.4);width:150px;box-shadow:inset 0 0 20px rgba(0,0,0,.5),0 0 12px rgba(58,184,248,.08);}
.raw-disp{border-color:rgba(61,214,140,.3);box-shadow:inset 0 0 20px rgba(0,0,0,.5),0 0 10px rgba(61,214,140,.05);}
.clean-disp{border-color:rgba(92,200,240,.3);box-shadow:inset 0 0 20px rgba(0,0,0,.5),0 0 10px rgba(92,200,240,.05);}
.use-disp{border-color:rgba(58,184,248,.5);box-shadow:inset 0 0 20px rgba(0,0,0,.5),0 0 12px rgba(58,184,248,.1);}
.dval{font-size:17px;font-weight:700;letter-spacing:.5px;color:var(--clean);}
.use-dval{color:var(--use);}
.dunit{font-size:9px;opacity:.55;}
.dlabel{font-size:8px;opacity:.35;text-transform:uppercase;letter-spacing:.1em;margin-top:3px;}
.dflow{display:flex;justify-content:space-between;margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.06);}
.dfv{font-size:11px;font-weight:600;}
.dfl{font-size:8px;opacity:.35;margin-top:1px;}
.fin{color:var(--green);}
.fout{color:#f08060;}
.fuse{color:var(--use);}

/* ── Motor chips ── */
.mrow{display:flex;gap:5px;justify-content:center;flex-wrap:wrap;}
.mchip{font-size:9px;padding:3px 9px;border-radius:20px;border:1px solid;display:inline-block;font-weight:500;transition:all .2s;}
.mchip.run{background:rgba(11,200,176,.12);color:var(--teal);border-color:rgba(11,200,176,.35);box-shadow:0 0 8px rgba(11,200,176,.1);}
.mchip.idle{background:rgba(128,128,128,.08);color:var(--text2);border-color:var(--border);}

/* ── Alert list ── */
.al-row{display:flex;align-items:flex-start;gap:11px;background:var(--bg3);border-radius:var(--radius);padding:10px 14px;margin-bottom:6px;border:1px solid var(--border);transition:border-color .2s;}
.al-row:hover{border-color:var(--border2);}
.al-row:last-child{margin-bottom:0;}
.al-icon{font-size:15px;flex-shrink:0;margin-top:1px;}
.al-msg{font-size:12px;color:var(--text1);line-height:1.5;}
.al-time{font-size:10px;color:var(--text2);margin-top:2px;}

/* ── Flow meter ── */
.flow-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;}
.flow-card{background:var(--bg3);border-radius:var(--radius-lg);padding:14px 16px;position:relative;border:1px solid var(--border);transition:transform .2s,box-shadow .2s;}
.flow-card:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(0,0,0,.4);}
.flow-name{font-size:11px;color:var(--text2);margin-bottom:8px;font-weight:500;}
.flow-rate{font-size:26px;font-weight:700;color:var(--text1);}
.flow-unit{font-size:10px;color:var(--text2);}
.flow-bar-wrap{margin-top:9px;background:var(--bg2);border-radius:4px;height:5px;overflow:hidden;}
.flow-bar{height:100%;border-radius:4px;transition:width 1s ease;}
.flow-total{font-size:10px;color:var(--text2);margin-top:6px;}
.flow-status{position:absolute;top:12px;right:12px;width:8px;height:8px;border-radius:50%;}
.flow-status.on{background:var(--teal);box-shadow:0 0 6px var(--teal);animation:pulse-ring 1.5s infinite;}
.flow-status.off{background:var(--border);}

/* ── Motor table ── */
.mtable{width:100%;border-collapse:collapse;font-size:12px;}
.mtable th{text-align:left;color:var(--text2);font-weight:600;font-size:11px;padding:0 0 10px;border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.05em;}
.mtable td{padding:10px 0;border-bottom:1px solid rgba(26,58,85,.4);color:var(--text1);}
.mtable tr:last-child td{border-bottom:none;}
.st-run{color:var(--teal);font-weight:500;}
.st-idle{color:var(--text2);}
.st-warn{color:var(--red);font-weight:600;}

/* ── Threshold form ── */
.th-group-title{font-size:11px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.08em;margin:18px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--border);}
.th-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid rgba(26,58,85,.3);}
.th-row:last-child{border-bottom:none;}
.th-label{font-size:12px;color:var(--text1);font-weight:500;}
.th-sub{font-size:10px;color:var(--text2);margin-top:2px;}
.th-input{width:70px;font-size:12px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg3);color:var(--text1);text-align:center;transition:border-color .2s;}
.th-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(26,159,227,.15);}
.th-unit{font-size:11px;color:var(--text2);min-width:28px;}
.save-btn{margin-top:16px;font-size:12px;padding:9px 22px;border:1px solid var(--blue);border-radius:var(--radius);background:linear-gradient(135deg,rgba(26,159,227,.2),rgba(0,212,245,.1));color:var(--cyan);cursor:pointer;font-weight:600;transition:all .2s;}
.save-btn:hover{background:linear-gradient(135deg,rgba(26,159,227,.35),rgba(0,212,245,.2));box-shadow:0 0 16px rgba(0,212,245,.2);}
.saved-msg{font-size:11px;color:var(--teal);margin-left:12px;opacity:0;transition:opacity .3s;}

/* ── Trend ── */
.leg{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:12px;}
.leg-item{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text2);}
.leg-sq{width:12px;height:12px;border-radius:3px;}
.cost-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border);}
.cost-item{text-align:center;background:var(--bg3);border-radius:var(--radius);padding:10px;}
.cost-lbl{font-size:10px;color:var(--text2);text-transform:uppercase;letter-spacing:.05em;}
.cost-val{font-size:18px;font-weight:700;color:var(--text1);margin-top:4px;}

/* ── Export ── */
.export-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:18px;}
.exp-card{background:var(--bg3);border-radius:var(--radius-lg);padding:18px;cursor:pointer;border:1px solid var(--border);transition:all .2s;text-align:center;}
.exp-card:hover{border-color:var(--blue);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.4);}
.exp-icon{font-size:28px;margin-bottom:10px;}
.exp-title{font-size:13px;font-weight:600;margin-bottom:4px;}
.exp-desc{font-size:10px;color:var(--text2);}
.exp-btn{margin-top:12px;font-size:11px;padding:7px 0;border:1px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--text2);cursor:pointer;width:100%;transition:all .2s;font-weight:500;}
.exp-btn:hover{border-color:var(--blue);color:var(--cyan);}
.date-filter{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--text2);padding:14px;background:var(--bg3);border-radius:var(--radius);border:1px solid var(--border);}
.date-filter input{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text1);padding:6px 10px;font-size:12px;}
.date-filter input:focus{outline:none;border-color:var(--blue);}

/* ── Utilities ── */
.sm-btn{font-size:11px;padding:5px 12px;border:1px solid var(--border);border-radius:20px;background:transparent;color:var(--text2);cursor:pointer;transition:all .2s;font-weight:500;}
.sm-btn:hover{border-color:var(--red);color:var(--red);}

/* ── Scrollbar ── */
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:var(--bg2);}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:var(--blue);}

/* ── Responsive ── */
@media(max-width:768px){
  .tanks-3col{grid-template-columns:1fr;}
  .flow-arrow-col{display:none;}
  .topbar{flex-direction:column;align-items:flex-start;}
  .metrics{grid-template-columns:1fr 1fr;}
  .app{padding:0 12px 40px;}
  .section{padding:14px 16px;}
}
@media(max-width:480px){
  .metrics{grid-template-columns:1fr;}
  .mc-val{font-size:22px;}
}
