:root{--s-bg: #f6f7f4;--s-surface: #ffffff;--s-text: #1b2a22;--s-muted: #5b6b62;--s-border: #d9ded8;--s-accent: #1f7a4d;--s-accent-text: #ffffff;--s-danger: #b3261e;--s-warn: #8a5a00;--s-ok: #1f7a4d;--s-radius: 12px;--s-gutter: 16px}@media (prefers-color-scheme: dark){:root{--s-bg: #101713;--s-surface: #19231d;--s-text: #e8efe9;--s-muted: #9fb0a5;--s-border: #2c3a31;--s-accent: #55c78c;--s-accent-text: #07120c;--s-danger: #ff8a80;--s-warn: #f0b84a;--s-ok: #55c78c}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;background:var(--s-bg);color:var(--s-text)}body{font:16px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-text-size-adjust:100%}h1{font-size:1.4rem;margin:0 0 4px}h2{font-size:1.1rem;margin:20px 0 8px}p{margin:0 0 12px}a{color:var(--s-accent)}.muted{color:var(--s-muted);font-size:.9rem}.s-shell{min-height:100vh;display:flex;flex-direction:column}.s-header{display:flex;align-items:center;gap:12px;padding:12px var(--s-gutter);background:var(--s-surface);border-bottom:1px solid var(--s-border)}.s-brand{font-weight:700;letter-spacing:.02em;text-decoration:none;color:var(--s-text)}.s-main{flex:1;width:100%;max-width:640px;margin:0 auto;padding:var(--s-gutter) var(--s-gutter) 88px}.s-nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--s-surface);border-top:1px solid var(--s-border);padding-bottom:env(safe-area-inset-bottom)}.s-nav a{flex:1;text-align:center;padding:14px 8px;min-height:48px;color:var(--s-muted);text-decoration:none;font-size:.95rem}.s-nav a.router-link-active,.s-nav a.router-link-exact-active{color:var(--s-accent);font-weight:600}.card{background:var(--s-surface);border:1px solid var(--s-border);border-radius:var(--s-radius);padding:14px;margin-bottom:12px}a.card{display:block;text-decoration:none;color:inherit}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.stack>*+*{margin-top:12px}.field{display:block;margin-bottom:14px}.field>span{display:block;font-size:.9rem;margin-bottom:4px;color:var(--s-muted)}.field input[type=text],.field input[type=email],.field input[type=password],.field input:not([type]){width:100%;min-height:44px;padding:10px 12px;font:inherit;color:inherit;background:var(--s-bg);border:1px solid var(--s-border);border-radius:8px}.field input:focus-visible,.btn:focus-visible,a:focus-visible{outline:3px solid var(--s-accent);outline-offset:2px}.code-input{font-family:ui-monospace,monospace;letter-spacing:.25em;text-transform:uppercase;font-size:1.3rem;text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;font:inherit;font-weight:600;border-radius:8px;border:1px solid var(--s-accent);background:var(--s-accent);color:var(--s-accent-text);cursor:pointer;text-decoration:none}.btn.secondary{background:transparent;color:var(--s-accent)}.btn.danger{background:transparent;color:var(--s-danger);border-color:var(--s-danger)}.btn.danger.solid{background:var(--s-danger);color:#fff}.btn.block{width:100%}.btn:disabled{opacity:.55;cursor:not-allowed}.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.8rem;font-weight:600;border:1px solid var(--s-border)}.pill.ok{color:var(--s-ok);border-color:var(--s-ok)}.pill.off{color:var(--s-muted)}.pill.warn{color:var(--s-warn);border-color:var(--s-warn)}.alert{padding:10px 12px;border-radius:8px;margin-bottom:12px;border:1px solid var(--s-danger);color:var(--s-danger)}.alert.info{border-color:var(--s-border);color:var(--s-text);background:var(--s-surface)}.alert.success{border-color:var(--s-ok);color:var(--s-ok)}.battery{height:8px;border-radius:4px;background:var(--s-border);overflow:hidden}.battery>i{display:block;height:100%;background:var(--s-ok)}.battery.low>i{background:var(--s-danger)}.switch-row{display:flex;align-items:center;gap:12px;min-height:44px}.switch-row input{width:24px;height:24px;accent-color:var(--s-accent)}.metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.metrics .card{margin:0}.metrics strong{display:block;font-size:1.3rem}.chart-box{position:relative;height:200px}.list-plain{list-style:none;margin:0;padding:0}.list-plain li{padding:10px 0;border-bottom:1px solid var(--s-border);word-break:break-word}
