*{box-sizing:border-box}:root{--bg:#0f172a;--surface:#1e293b;--text:#f1f5f9;--muted:#94a3b8;--plus:#16a34a;--minus:#b45309;--danger:#dc2626;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);touch-action:manipulation;-webkit-text-size-adjust:100%;font-family:system-ui,Segoe UI,Roboto,sans-serif}main{height:100%;padding:max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom));flex-direction:column;max-width:34rem;margin:0 auto;display:flex}.signin h1{text-align:center;margin:2rem 0 1.5rem;font-size:1.5rem}.signin form{flex-direction:column;gap:1rem;display:flex}.signin label{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}.signin input{background:var(--surface);color:var(--text);border:1px solid #334155;border-radius:10px;padding:.9rem;font-size:1rem}.signin button{background:var(--plus);color:#fff;border:none;border-radius:10px;padding:1rem;font-size:1.05rem;font-weight:600}.counter header{align-items:center;gap:.75rem;display:flex}.counter select{background:var(--surface);min-width:0;color:var(--text);border:1px solid #334155;border-radius:10px;flex:1;padding:.85rem;font-size:1.05rem;font-weight:600}.link{color:var(--muted);background:0 0;border:none;padding:.5rem;font-size:.85rem}.readout{flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:0;display:flex}.count{font-variant-numeric:tabular-nums;font-size:clamp(5rem,34vw,12rem);font-weight:700;line-height:1}.of{color:var(--muted);margin-top:.4rem;font-size:1.1rem}.readout.full .count{color:var(--danger)}.full-note{color:#fca5a5;text-transform:uppercase;letter-spacing:.05em;background:#dc262633;border-radius:999px;margin-top:.6rem;padding:.3rem .8rem;font-size:.85rem;font-weight:600}.state{text-align:center;min-height:1.2rem;color:var(--muted);font-size:.8rem}.state-offline{color:#fbbf24;font-weight:600}.error{text-align:center;color:#fca5a5;margin:.4rem 0 0;font-size:.85rem}.buttons{grid-template-columns:1fr 1fr;gap:.9rem;margin-top:1rem;display:grid}.buttons button{color:#fff;border:none;border-radius:16px;height:clamp(6rem,22vh,10rem);font-size:3.5rem;font-weight:700;transition:transform 60ms}.buttons button:active{transform:scale(.97)}.buttons .plus{background:var(--plus)}.buttons .minus{background:var(--minus)}.buttons button:disabled{opacity:.35}.hint{color:var(--muted);text-align:center;margin:.9rem 0 0;font-size:.75rem;line-height:1.5}
