:root{--bg:#faf6f1;--surface:#fff;--surface-2:#f3ece4;--text:#2b2420;--muted:#73665d;--border:#e6dbd0;--accent:#b4532a;--accent-strong:#933f1d;--accent-soft:#f6e3d8;--on-accent:#fff;--ok:#2f7a4f;--ok-soft:#e1f1e7;--warn:#9a6a00;--warn-soft:#fbf0d4;--danger:#b3261e;--danger-soft:#fbe4e2;--radius:14px;--shadow:0 1px 2px #2b24200f, 0 4px 16px #2b24200f;--tabbar:64px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#1b1714;--surface:#26201c;--surface-2:#302823;--text:#f3ebe4;--muted:#b5a79c;--border:#3d332d;--accent:#e07a4b;--accent-strong:#f09a70;--accent-soft:#43291c;--on-accent:#1b1714;--ok:#6cc597;--ok-soft:#1f3a2a;--warn:#e6b94e;--warn-soft:#3a2f14;--danger:#f08a82;--danger-soft:#45201d;--shadow:0 1px 2px #0000004d, 0 4px 16px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font:16px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}h1,h2,h3{margin:0 0 8px;line-height:1.25}h1{font-size:1.6rem}h2{font-size:1.15rem}p{margin:0 0 12px}a{color:var(--accent)}code{background:var(--surface-2);word-break:break-all;border-radius:6px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.muted{color:var(--muted)}.small{font-size:.875rem}.page{max-width:640px;padding:calc(16px + env(safe-area-inset-top)) 16px calc(var(--tabbar) + 24px + env(safe-area-inset-bottom));margin:0 auto}.page.centered{flex-direction:column;justify-content:center;min-height:100dvh;padding-bottom:32px;display:flex}.brand{align-items:center;gap:10px;margin-bottom:20px;display:flex}.brand-mark{flex:none;width:40px;height:40px}.brand-name{font-size:1.25rem;font-weight:700}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:18px 16px}.card>:last-child{margin-bottom:0}.row{justify-content:space-between;align-items:center;gap:12px;display:flex}.stack>*+*{margin-top:12px}.list{margin:0 0 12px;padding:0;list-style:none}.list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.list li:last-child{border-bottom:0}.stats{grid-template-columns:1fr 1fr;gap:12px;display:grid}.stat{background:var(--surface-2);border-radius:10px;padding:12px}.stat-value{font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:700}label{margin-bottom:6px;font-size:.9rem;font-weight:600;display:block}.field{margin-bottom:14px}.hint{color:var(--muted);margin-top:4px;font-size:.8rem}input,select{width:100%;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px;min-height:48px;padding:12px;font-size:16px}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:#0000}button{font:inherit;cursor:pointer;background:var(--accent);min-height:48px;color:var(--on-accent);-webkit-tap-highlight-color:transparent;border:1px solid #0000;border-radius:10px;padding:10px 16px;font-weight:600}button:hover:not(:disabled){background:var(--accent-strong)}button:disabled{opacity:.55;cursor:default}button.secondary{background:var(--surface-2);color:var(--text);border-color:var(--border)}button.secondary:hover:not(:disabled){background:var(--border)}button.ghost{color:var(--accent);background:0 0;min-height:40px;padding:8px 10px}button.ghost:hover:not(:disabled){background:var(--accent-soft)}button.danger{color:var(--danger);border-color:var(--border);background:0 0}button.danger:hover:not(:disabled){background:var(--danger-soft)}button.block{width:100%}.buttons{flex-wrap:wrap;gap:10px;display:flex}.buttons>button{flex:auto}.notice{border-radius:10px;margin-bottom:14px;padding:10px 12px;font-size:.95rem}.notice.error{background:var(--danger-soft);color:var(--danger)}.notice.ok{background:var(--ok-soft);color:var(--ok)}.notice.warn{background:var(--warn-soft);color:var(--warn)}.notice.info{background:var(--accent-soft);color:var(--text)}.badge{background:var(--surface-2);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:8px;height:8px}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.off{color:var(--danger);background:var(--danger-soft)}.toast{left:50%;bottom:calc(var(--tabbar) + 16px + env(safe-area-inset-bottom));background:var(--text);color:var(--bg);max-width:calc(100% - 32px);box-shadow:var(--shadow);z-index:30;border-radius:999px;padding:10px 16px;font-size:.95rem;position:fixed;transform:translate(-50%)}.tabbar{height:calc(var(--tabbar) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);z-index:20;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar button{color:var(--muted);min-height:var(--tabbar);background:0 0;border-radius:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.75rem;display:flex}.tabbar button:hover:not(:disabled){color:var(--text);background:0 0}.tabbar button.active,.tabbar button.active:hover:not(:disabled){color:var(--accent)}.tabbar svg{width:24px;height:24px}@media (width>=760px){.page{padding-top:calc(var(--tabbar) + 32px);padding-bottom:48px}.tabbar{height:var(--tabbar);border-top:0;border-bottom:1px solid var(--border);padding:0 calc(50% - 320px);top:0;bottom:auto}.tabbar button{flex-direction:row;gap:8px;font-size:.95rem}.tabbar svg{width:20px;height:20px}.toast{bottom:24px}}.overlay{z-index:40;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:480px;padding:20px 16px calc(20px + env(safe-area-inset-bottom));box-shadow:var(--shadow);border-radius:20px 20px 0 0}@media (width>=760px){.overlay{align-items:center}.sheet{border-radius:20px}}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;margin:40px auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.5s}}.brand-bg{fill:var(--accent)}.brand-house{fill:var(--bg)}ol.stack{margin:0;padding-left:20px}.login-or{text-align:center;margin:14px 0}
