:root{--color-bg:#f7f7f8;--color-surface:#fff;--color-border:#e2e2e6;--color-text:#1a1a1f;--color-muted:#6b6b76;--color-subtle:#f2f2f4;--color-accent:#111114;--color-accent-text:#fff;--color-danger:#b3261e;--color-danger-soft:#fdecea;--color-ok-soft:#e8f3ec;--radius:8px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;color:var(--color-text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{background:var(--color-bg);margin:0;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}h1{margin:0;font-size:18px;font-weight:600}h2{margin:0;font-size:15px;font-weight:600}.shell{grid-template-columns:232px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-5) var(--space-4);gap:var(--space-5);flex-direction:column;display:flex}.brand{letter-spacing:-.01em;font-weight:600}.brand small{color:var(--color-muted);font-size:12px;font-weight:400;display:block}.nav{flex-direction:column;gap:2px;display:flex}.nav a{padding:var(--space-2) var(--space-3);border-radius:var(--radius);color:var(--color-muted)}.nav a:hover{background:var(--color-subtle);color:var(--color-text)}.nav a[aria-current=page]{background:var(--color-accent);color:var(--color-accent-text)}.content{padding:var(--space-5);gap:var(--space-4);flex-direction:column;width:100%;max-width:1080px;display:flex}.topbar{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.account{align-items:center;gap:var(--space-2);color:var(--color-muted);display:flex}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.row{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.grid-form{gap:var(--space-3);grid-template-columns:repeat(2,minmax(180px,1fr));display:grid}label{gap:var(--space-1);color:var(--color-muted);flex-direction:column;font-size:12px;font-weight:500;display:flex}input,select{font:inherit;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:6px;padding:8px 10px}input:focus,select:focus{outline-offset:0;outline:2px solid #1111141f}button{font:inherit;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:6px;padding:8px 14px;font-weight:500}button:hover{background:var(--color-subtle)}button.primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-text)}button.primary:hover{background:#2c2c33}button.danger{color:var(--color-danger);border-color:var(--color-danger-soft)}button:disabled{opacity:.55;cursor:default}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);padding:var(--space-2);border-bottom:1px solid var(--color-border);white-space:nowrap;font-size:11px;font-weight:600}td{padding:var(--space-2);border-bottom:1px solid var(--color-border);vertical-align:top}.badge{background:var(--color-subtle);color:var(--color-muted);border-radius:999px;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge.admin{background:var(--color-accent);color:var(--color-accent-text)}.badge.viewer{background:var(--color-subtle);color:var(--color-muted)}.badge.on{background:var(--color-ok-soft);color:#1f6f43}.badge.off{background:var(--color-danger-soft);color:var(--color-danger)}.alert{padding:var(--space-2) var(--space-3);border-radius:6px;font-size:13px}.alert.error{background:var(--color-danger-soft);color:var(--color-danger)}.muted{color:var(--color-muted)}.mono{word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.login-wrap{min-height:100vh;padding:var(--space-5);place-items:center;display:grid}.login-card{width:100%;max-width:360px}pre.viewer{background:var(--color-subtle);padding:var(--space-3);border-radius:6px;max-height:520px;margin:0;overflow:auto}
