*{box-sizing:border-box}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;margin:0;padding:14px;background:#f4f6fa;color:#1d2330}
.wrap{max-width:780px;margin:0 auto}
header{display:flex;align-items:center;gap:14px;margin-bottom:12px;flex-wrap:wrap}
header .logo{height:38px;width:auto}
h1{font-size:18px;margin:0;line-height:1.25}
.date{font-size:13px;color:#5b6475;margin-top:2px}
.bar{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#5b6475;margin:-4px 0 10px;gap:8px;flex-wrap:wrap}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#38a64a;margin-right:5px;vertical-align:middle}
.dot.off{background:#d97706}
.total{background:#1d4ed8;color:#fff;border-radius:12px;padding:14px;margin-bottom:12px}
.total small{color:#dbe4ff;font-size:12px}
.total .v{font-size:30px;font-weight:700}
.groups{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.group{background:#fff;border-radius:12px;padding:10px;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.group h2{font-size:15px;margin:0 0 2px;color:#1d4ed8}
.group .sub{font-size:12px;color:#5b6475;margin-bottom:8px}
.gsum{font-size:12px;color:#3c4556;background:#f0f3f9;border-radius:8px;padding:6px 8px;margin-bottom:8px}
.gsum b{display:block;font-size:17px;color:#1d2330}
.pump{border:1px solid #e2e7f0;border-radius:10px;padding:9px;margin-bottom:8px}
.pump:last-child{margin-bottom:0}
.pump .n{font-size:13px;font-weight:700}
.pump .v{font-size:22px;font-weight:700;margin:2px 0}
.pump .l{font-size:12px;color:#5b6475}
.card{background:#fff;border-radius:12px;padding:14px;margin-top:12px;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.card h3{margin:0 0 10px;font-size:15px}
.pumps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.pumps button{padding:13px 0;border:2px solid #cbd5e1;background:#fff;border-radius:10px;font-size:17px;font-weight:700;cursor:pointer;color:#1d2330}
.pumps button.on{border-color:#1d4ed8;background:#e0e8ff;color:#1d4ed8}
label{display:block;font-size:13px;margin:12px 0 4px;color:#3c4556}
input{width:100%;padding:12px;font-size:20px;border:1px solid #cbd5e1;border-radius:10px}
.btn{width:100%;margin-top:14px;padding:14px;font-size:16px;font-weight:700;background:#1d4ed8;color:#fff;border:0;border-radius:10px;cursor:pointer}
.btn:disabled{opacity:.5}
.link{background:none;border:0;color:#1d4ed8;cursor:pointer;font-size:13px;padding:0;text-decoration:underline}
.st{font-size:14px;margin-top:8px;min-height:20px}
.st.ok{color:#15803d}.st.err{color:#b91c1c}
h2.list{font-size:15px;margin:18px 0 8px}
table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;font-size:14px;box-shadow:0 1px 3px rgba(0,0,0,.08)}
th,td{padding:9px 8px;border-bottom:1px solid #eef1f6;text-align:left}
th{background:#f0f3f9;font-size:12px;color:#5b6475}
td.num,th.num{text-align:right;white-space:nowrap}
.del{background:none;border:0;color:#b91c1c;cursor:pointer;font-size:13px;padding:0}
.empty{color:#7a8394;text-align:center;padding:14px}
.login{max-width:360px;margin:8vh auto 0;text-align:center}
.login .logo{height:44px;margin-bottom:14px}
.login input{text-align:center;letter-spacing:6px}
.hidden{display:none!important}
footer{font-size:11px;color:#9aa3b2;text-align:center;margin:22px 0 6px}
@media (max-width:420px){.pump .v{font-size:19px}.total .v{font-size:26px}}
