*{box-sizing:border-box}
body{margin:0;min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:#0b0b0d;color:#f2f2f2;font-family:system-ui,-apple-system,sans-serif;
  padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
.card{width:min(92vw,380px);padding:28px;border:1px solid #2a2a2e;border-radius:16px;background:#141417;text-align:center}
h1{margin:0 0 20px;font-size:22px;letter-spacing:.5px}
input.pin{width:100%;padding:14px;font-size:24px;text-align:center;letter-spacing:8px;
  background:#0b0b0d;color:#fff;border:1px solid #333;border-radius:10px;margin-bottom:12px}
button{width:100%;padding:14px;font-size:16px;font-weight:600;border:0;border-radius:10px;cursor:pointer;background:#fff;color:#000}
button:disabled{opacity:.5}
.err{color:#ff5c5c;margin:12px 0 0}
.state{padding:12px;border-radius:10px;margin-bottom:16px;font-weight:600;background:#222}
.state.laedt{background:#1e3a8a}
.state.voll{background:#14532d}
.state.aus{background:#3f1d1d}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}
.grid.two{grid-template-columns:1fr 1fr}
.grid div{background:#0b0b0d;border:1px solid #2a2a2e;border-radius:10px;padding:10px 4px}
.grid span{display:block;font-size:20px;font-weight:700}
.grid span.small{font-size:15px;padding-top:4px}
.grid small{color:#888}
.sched{background:#0b0b0d;border:1px solid #2a2a2e;border-radius:10px;padding:12px;margin-bottom:16px;font-size:15px}
.sched .hint{margin:6px 0 0;color:#f59e0b}
.sched button{margin-top:10px;background:#2a2a2e;color:#fff}
.btns{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.on{background:#22c55e;color:#000}
.off{background:#ef4444;color:#fff}
.push{margin-top:12px;background:#2a2a2e;color:#fff}
.hint{min-height:1.2em;color:#aaa;font-size:14px}
.logout{display:inline-block;margin-top:14px;color:#777;font-size:14px}
