
:root{
  --bg:#f4f7fb;
  --card:#ffffff;
  --text:#0f172a;
  --muted:#64748b;
  --accent:#2563eb;
  --accent-strong:#1d4ed8;
  --border:#e5e7eb;
  --radius:16px;
}
.dark{
  --bg:#0b1220;
  --card:#111827;
  --text:#e5e7eb;
  --muted:#9ca3af;
  --accent:#3b82f6;
  --accent-strong:#2563eb;
  --border:#1f2937;
}


.grid{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:20px;
}
@media(max-width:900px){
  .grid{grid-template-columns:1fr;}
}
.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:18px;
  box-shadow:0 10px 25px rgba(0,0,0,0.05);
  transition:0.25s;
}
.card:hover{
  transform:translateY(-2px);
  box-shadow:0 15px 35px rgba(0,0,0,0.08);
}
label{font-size:13px;color:var(--muted);display:block;margin-bottom:4px;}
input{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text);font-size:14px;transition:0.2s;}
input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(37,99,235,0.15);}
input[type="range"]{padding:0;}
button{padding:10px 14px;border-radius:10px;border:none;font-weight:600;cursor:pointer;transition:0.2s;}
#updateBtn{background:linear-gradient(135deg,var(--accent),var(--accent-strong));color:#fff;}
#updateBtn:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(37,99,235,0.3);}
button.ghost{background:transparent;border:1px solid var(--border);color:var(--text);}
button.ghost:hover{background:var(--bg);}
.kpi{display:flex;gap:12px;}
.kpi .item{flex:1;background:var(--bg);border-radius:12px;padding:10px;text-align:center;}
.chart-wrap{height:340px;width:100%;position:relative;}
.lead{font-size:15px;color:var(--muted);max-width:700px;}
.small{font-size:12px;color:var(--muted);}
details{background:var(--bg);padding:10px;border-radius:10px;border:1px solid var(--border);}
summary{cursor:pointer;font-weight:600;}
footer.card{background:linear-gradient(180deg,var(--card),var(--bg));}
.battery{position:relative;width:100%;height:26px;border:2px solid var(--border);border-radius:6px;overflow:hidden;margin-top:10px;}
.battery-fill{height:100%;width:0%;background:linear-gradient(90deg,#22c55e,#16a34a);transition:width 0.6s ease, background 0.4s;}
.battery-cap{position:absolute;right:-6px;top:6px;width:4px;height:12px;background:var(--border);border-radius:2px;}
.insight{margin-top:12px;padding:12px;border-radius:12px;background:var(--bg);font-size:13px;line-height:1.5;border:1px solid var(--border);}
