:root{--bg:#0e1521;--surface:#182335;--surface2:#222e42;--border:#344359;--text:#f3f6fb;--muted:#95a8c2;--primary:#69a9f6;--green:#61d3a5;--red:#ff7c82;--orange:#ffbf69;--radius:17px;--shadow:0 12px 32px #07111b66;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.48 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",sans-serif}.shell{max-width:850px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg),transparent 7%);backdrop-filter:blur(18px);padding:12px 19px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding-top:max(12px,env(safe-area-inset-top))}.brand{display:flex;align-items:center;gap:10px}.brand strong{display:block;font-size:16px;letter-spacing:-.2px}.brand small{display:block;color:var(--muted);font-size:11px}.logo{border-radius:12px;display:grid;place-items:center;width:37px;height:37px;background:#244a72;color:#b7e1ff;font-size:25px}.top-right{display:flex;align-items:center;gap:9px}.connection{font-size:11px;color:var(--orange)}.icon-btn{background:var(--surface);border:1px solid var(--border);border-radius:11px;color:var(--text);height:36px;width:36px;font-size:23px;cursor:pointer}.icon-btn:active{transform:scale(.96)}main{padding:0 17px 105px;flex:1}.hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:26px 0 20px}.eyebrow{margin:0 0 6px;color:var(--primary);font-size:11px;font-weight:750;letter-spacing:1.1px;text-transform:uppercase}h1{font-size:26px;letter-spacing:-.8px;line-height:1.15;margin:0 0 9px}h2{font-size:16px;letter-spacing:-.25px;margin:0}p{margin:0}.muted{color:var(--muted)}#last-updated{font-size:12px}.live-dot{white-space:nowrap;background:#153d37;border:1px solid #266e5f;color:var(--green);font-size:9px;padding:7px 8px;border-radius:30px;font-weight:750;letter-spacing:.35px}.live-dot span{display:inline-block;background:var(--green);height:6px;width:6px;border-radius:50%;margin-right:4px}.content{display:grid;gap:15px}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.metric{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:15px 11px}.metric small{font-size:11px;color:var(--muted);display:block}.metric strong{font-size:31px;display:block;line-height:1.5;letter-spacing:-1.2px}.metric.alert strong{color:var(--orange)}.metric.bad strong{color:var(--red)}.metric.ok strong{color:var(--green)}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.card-head{padding:15px 17px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.card-head small{color:var(--muted);font-size:11px}.card-body{padding:15px 17px}.stack{display:grid;gap:11px}.rowline{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--border)}.rowline:last-child{border-bottom:0}.rowline strong{display:block;font-size:14px;overflow-wrap:anywhere}.rowline small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.row-end{text-align:right;flex-shrink:0}.row-end strong{font-variant-numeric:tabular-nums}.tag{display:inline-block;padding:4px 7px;border-radius:8px;font-size:11px;font-weight:750;white-space:nowrap}.tag.red{background:#492630;color:#ff9ba0}.tag.green{background:#1b4439;color:#85eac0}.tag.orange{background:#4c3925;color:#ffd292}.tag.blue{background:#22445b;color:#a2d5fa}.section-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.8px;margin:9px 2px 3px;font-weight:700}.ghost-btn,.primary-btn,.danger-btn{padding:12px 14px;min-height:42px;background:var(--surface2);color:var(--text);border:1px solid var(--border);border-radius:11px;font-weight:650;cursor:pointer;font-size:13px}.primary-btn{background:#326ca4;border-color:#397fbd;color:#fff}.danger-btn{background:#a33d50;border-color:#c85b6a;color:#fff}.ghost-btn:disabled,.primary-btn:disabled,.danger-btn:disabled{opacity:.45;cursor:not-allowed}.button-row{display:flex;gap:9px;flex-wrap:wrap}.button-row>*{flex:1}.search{width:100%;border:1px solid var(--border);border-radius:10px;padding:13px;background:var(--surface2);color:var(--text);font:inherit;outline:none}.search:focus{border-color:var(--primary)}.hint{color:var(--muted);font-size:12px;margin:0}.empty{color:var(--muted);text-align:center;padding:28px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.empty.good{color:var(--green)}.simple-list{display:grid;gap:8px}.item{padding:13px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.item .name{font-weight:700;overflow-wrap:anywhere}.item .secondary{font-size:12px;color:var(--muted);margin-top:4px}.item .value{font-size:13px;margin-top:4px}.highlight{color:var(--orange)}.danger{color:var(--red)}.success{color:var(--green)}.actions-top{display:flex;gap:9px;justify-content:space-between;align-items:center}.actions-top .search{flex:1}.mini-select{border-radius:9px;background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:12px;max-width:130px}.pagination{display:flex;align-items:center;gap:10px;justify-content:space-between}.pagination span{font-size:12px;color:var(--muted)}.form-row{display:flex;gap:8px;align-items:center}.form-row input{width:106px;background:var(--surface2);border:1px solid var(--border);border-radius:9px;color:var(--text);font:inherit;padding:10px}.form-row button{flex-shrink:0}.form-row label{flex:1;min-width:0;font-size:13px}.form-row small{display:block;color:var(--muted)}.form-row .unit{color:var(--muted);font-size:12px}.data-pair{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}.data-pair:last-child{border-bottom:0}.data-pair span:first-child{color:var(--muted)}.data-pair strong{font-variant-numeric:tabular-nums}.phase-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.phase{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:12px;text-align:center}.phase small{display:block;color:var(--muted)}.phase strong{font-size:17px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;max-width:850px;margin:auto;padding:9px 8px max(9px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);gap:2px;background:color-mix(in srgb,var(--bg),transparent 1%);border-top:1px solid var(--border);z-index:15}.bottom-nav button{background:none;border:0;color:var(--muted);font-size:10px;font-weight:600;line-height:1.2;font-family:inherit;padding:6px 0;border-radius:10px;display:flex;flex-direction:column;gap:3px;align-items:center;cursor:pointer}.bottom-nav .active{color:var(--primary);background:#253954}.navicon{font-size:22px;line-height:1.25}.modal-backdrop{position:fixed;inset:0;z-index:50;background:#040b13c9;display:grid;place-items:center;padding:20px}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:22px;max-width:410px;width:100%;box-shadow:var(--shadow)}.modal-card p{color:var(--muted);margin:11px 0 23px}.modal-actions{display:flex;gap:9px}.modal-actions button{flex:1}.hidden{display:none!important}.toast{position:fixed;bottom:99px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 28px);width:max-content;background:#294964;color:#fff;border:1px solid #437baa;border-radius:12px;padding:12px 17px;z-index:70;box-shadow:var(--shadow)}.error{background:#4b2630;border:1px solid #b0475b;color:#ffbfc4;padding:13px 15px;border-radius:12px;margin:0 0 15px}.spinner{width:25px;height:25px;margin:0 auto 12px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.preformatted{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;font-family:inherit}.report-pages{display:grid;gap:13px}.report-page{border:1px solid var(--border);padding:16px;background:var(--surface);border-radius:var(--radius)}.report-page pre{white-space:pre-wrap;font:13px/1.55 inherit;margin:0}.notice{padding:13px 15px;border:1px solid #7a5734;border-radius:12px;background:#382d26;color:#ffe0b9;font-size:12px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}.small{font-size:12px}.controls{display:grid;gap:9px}.clickable{cursor:pointer}.clickable:active{background:var(--surface2)}@media(min-width:640px){main{padding-left:25px;padding-right:25px}.hero{padding-top:33px}.metric-grid{gap:14px}.metric{padding:22px}.metric strong{font-size:35px}.bottom-nav{position:sticky;margin-top:auto}.content{gap:17px}}@media(max-width:360px){.brand small{display:none}.hero{display:block}.live-dot{display:inline-block;margin-top:13px}.metric{padding:10px 8px}.metric strong{font-size:26px}.metric small{font-size:10px}}

/* LAD v5.4 Home screen: two KPI cards and a colored DessMonitor / Victron counter. */
.metric-grid.overview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
.overview-metrics .metric{min-width:0}
.metric strong.metric-split{display:flex;align-items:baseline;gap:.23em;font-variant-numeric:tabular-nums;white-space:nowrap}
.metric-split .metric-dess{color:var(--orange)}
.metric-split .metric-divider{color:var(--muted);font-size:.75em;font-weight:500}
.metric-split .metric-victron{color:var(--primary)}

/* Deye status text: allow RUNNING to fit three cards on narrow phones. */
.metric.deye-status strong{font-size:clamp(16px,4vw,27px);letter-spacing:-.045em;white-space:nowrap}
