:root{--wattev-deep: #1a0b2e;--wattev-violet: #7521b3;--wattev-gold: #e0ad2e;--wattev-lavender: #f3eefa;--bg: #f7f4fb;--surface: #ffffff;--text: #1a0b2e;--muted: #6b5e7b;--line: #e7e0f0;--brand: #7521b3;--brand-ink: #ffffff;--brand-soft: #f3eefa;--accent: #e0ad2e;--warn: #9a6a00;--warn-soft: #fcf3dc;--danger: #c0392b;--danger-soft: #fbe9e7;--off: #8a8296;--off-soft: #efecf3;--radius: 16px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #1a0b2e;--surface: #24123d;--text: #f3eefa;--muted: #b3a6c6;--line: #362152;--brand: #b57beb;--brand-ink: #1a0b2e;--brand-soft: #3a1f5e;--accent: #e9be52;--warn: #e9be52;--warn-soft: #3b2d14;--danger: #ef6b5e;--danger-soft: #3d1d1a;--off: #8f84a0;--off-soft: #2e1c47;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}p,h1,h2{margin:0}.screen{max-width:480px;margin:0 auto;padding:20px 16px 96px;display:flex;flex-direction:column;gap:14px}h1{font-size:26px;letter-spacing:-.02em}h2{font-size:17px;margin-top:8px}.muted{color:var(--muted);font-size:14px}.note{color:var(--muted);font-size:13px;line-height:1.4}.error{color:var(--danger);background:var(--danger-soft);padding:10px 12px;border-radius:10px;font-size:14px}.warn-text{color:var(--warn);font-size:14px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:10px}.card.center{align-items:center;text-align:center;padding:28px 16px}.row{display:flex;justify-content:space-between;align-items:center;gap:12px}.title{font-weight:600;font-size:16px}.big{font-size:34px;font-weight:700;letter-spacing:-.02em}.big.small-big{font-size:22px}.huge{font-size:44px;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums}button{font:inherit;border:0;border-radius:12px;padding:14px 16px;font-weight:600;cursor:pointer;width:100%}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--brand);color:var(--brand-ink)}button.secondary{background:var(--brand-soft);color:var(--text)}button.danger{background:var(--danger);color:#fff}button.link{background:none;color:var(--muted);padding:0;width:auto;align-self:flex-start;font-weight:500}input{font:inherit;font-size:18px;padding:14px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--text);width:100%}label{font-size:14px;color:var(--muted)}form{display:flex;flex-direction:column;gap:10px}.pill{font-size:12px;font-weight:600;padding:5px 10px;border-radius:999px;white-space:nowrap}.pill.ok{background:var(--brand-soft);color:var(--brand)}.pill.busy,.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.off{background:var(--off-soft);color:var(--off)}.chargers,.ledger{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.charger.highlight{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}.top{display:flex;justify-content:space-between;align-items:center}.brand-logo{display:block;align-self:flex-start;height:64px;width:auto;max-width:100%;object-fit:contain;margin:40px 0 8px}.mark{width:40px;height:40px;border-radius:12px;background:var(--wattev-deep);padding:6px;object-fit:contain}.screen.login{--bg: #1a0b2e;--surface: #24123d;--text: #f3eefa;--muted: #b3a6c6;--line: #3e2760;--brand: #7521b3;--brand-ink: #ffffff;--brand-soft: #3a1f5e;max-width:none;min-height:100dvh;background:radial-gradient(120% 60% at 100% 0%,#3a1466 0%,transparent 60%),var(--bg);color:var(--text);padding-left:max(16px,calc((100vw - 448px)/2));padding-right:max(16px,calc((100vw - 448px)/2))}.screen.login .lead{color:var(--muted)}.screen.login .lead strong{color:var(--accent);font-weight:600}.screen.login input{background:var(--surface);color:var(--text)}.lead{font-size:17px;color:var(--muted);margin-bottom:12px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;margin:6px 0 8px}.stats>div{background:var(--bg);border-radius:12px;padding:12px}.pulse{font-size:40px;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{transform:scale(1.12);opacity:.7}}@media(prefers-reduced-motion:reduce){.pulse{animation:none}}.credit{color:var(--brand);font-weight:600;white-space:nowrap}.debit{font-weight:600;white-space:nowrap}.tabs{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(3,1fr);background:var(--surface);border-top:1px solid var(--line);padding:6px max(8px,env(safe-area-inset-left)) max(8px,env(safe-area-inset-bottom))}.tabs button{background:none;color:var(--muted);font-weight:500;padding:10px}.tabs button.active{color:var(--brand);font-weight:700}.card.row{flex-direction:row;align-items:center}.actions{display:grid;grid-template-columns:2fr 1fr;gap:8px}.danger-text{color:var(--danger)!important}.notices{display:flex;flex-direction:column;gap:8px}.notice{border-radius:14px;padding:12px 14px;font-size:14px;display:flex;flex-direction:column;gap:2px}.notice.ok{background:var(--brand-soft)}.notice.warn{background:var(--warn-soft)}.notice.off{background:var(--off-soft)}.seg{display:flex;gap:8px}.seg button,.slots button{background:var(--surface);border:1px solid var(--line);color:var(--text);font-weight:500}.seg button.on,.slots button.on{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.slots button{padding:10px 0;font-variant-numeric:tabular-nums}.slots button:disabled{text-decoration:line-through}.stats>.wide{grid-column:1 / -1}.peak{background:var(--warn-soft);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px;color:var(--text);font-size:14px}.toggle-row{display:flex;align-items:center;gap:10px;font-weight:600}.toggle-row input{width:22px;height:22px;accent-color:var(--brand)}.choices{display:flex;gap:8px;margin:8px 0 16px}.chip{background:var(--surface);border:1px solid var(--line);color:var(--text);padding:12px 8px}.chip.active{border-color:var(--brand);background:var(--brand-soft)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.field input{width:100%;box-sizing:border-box}.qr{width:220px;max-width:100%;aspect-ratio:1;margin:8px auto 16px;display:block;background:#fff;padding:8px;border-radius:12px;image-rendering:pixelated}a.button{display:block;text-align:center;text-decoration:none;border-radius:12px;padding:14px 16px;font-weight:600;background:var(--brand);color:var(--brand-ink)}.waiting{margin-top:12px;animation:blink 1.6s ease-in-out infinite}@keyframes blink{50%{opacity:.4}}.screen.wide{max-width:760px}.tabs.four{grid-template-columns:repeat(4,1fr)}.subtabs{display:flex;gap:4px;overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:4px}.subtabs button{background:none;color:var(--muted);font-size:14px;padding:10px 4px;white-space:nowrap;flex:1;font-weight:500}.subtabs button.active{background:var(--brand-soft);color:var(--text);font-weight:700}.month-nav{display:flex;align-items:center;justify-content:center;gap:16px;text-transform:capitalize}.month-nav .link{width:auto;font-size:24px;padding:4px 14px}.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media(min-width:640px){.kpis{grid-template-columns:repeat(4,1fr)}}.kpi .big{font-size:22px;margin:2px 0}.bars{display:grid;grid-template-columns:repeat(24,1fr);gap:2px;height:120px;align-items:end;margin:12px 0 4px}.bar{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}.bar span{width:100%;min-height:1px;background:var(--brand);border-radius:3px 3px 0 0}.bar small{height:14px;font-size:10px;color:var(--muted)}.table{gap:0;padding:4px 16px}.tr{display:grid;grid-template-columns:2fr 1fr 1fr 1.3fr;gap:8px;padding:10px 0;border-bottom:1px solid var(--line);background:none;color:var(--text);text-align:left;border-radius:0;font-weight:400;font-variant-numeric:tabular-nums}.tr span:not(:first-child){text-align:right}.tr.th{color:var(--muted);font-size:13px}.tr.total{font-weight:700;border-bottom:0}.detail{list-style:none;margin:0;padding:4px 0 8px 12px;border-bottom:1px solid var(--line)}.detail li{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:var(--muted);padding:4px 0}.member-actions{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.member-actions .link{width:auto;padding:4px 0}.field select,.site-select{font:inherit;font-size:16px;padding:12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--text)}.site-select{font-size:20px;font-weight:700}.field.rule{flex-direction:row;align-items:center;justify-content:space-between;margin-bottom:10px}.field.rule input{width:90px;text-align:right}.inline-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:16px}.inline-form button{width:auto}.ok-text{color:var(--brand);font-weight:600}.card .secondary+.secondary{margin-top:8px}.code-input{font-size:28px;letter-spacing:.4em;text-align:center;font-variant-numeric:tabular-nums}.login-links{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px}.screen.login .link{color:var(--accent)}.screen.login .link:disabled{color:var(--muted)}.screen.login form{display:flex;flex-direction:column;gap:10px}.site-row{width:100%;text-align:left;color:var(--text);font-weight:400}.choices.wrap{flex-wrap:wrap}.choices.wrap .chip{flex:1 1 40%}.inline-form.two{grid-template-columns:1fr 1fr;margin:0 0 16px}.creds{border-color:var(--accent)}.creds dl{margin:8px 0 12px}.creds dt{color:var(--muted);font-size:13px;margin-top:8px}.creds dd{margin:2px 0 0}.creds code{font-size:15px;word-break:break-all;background:var(--brand-soft);padding:4px 6px;border-radius:6px;display:inline-block}
