:root{color-scheme:light dark;--bg: #0c0f14;--surface: #161b22;--border: #262c36;--text: #f7f6f3;--text-muted: #9aa1ab;--accent: #2e6bff;--danger: #dc2626;--success: #1d9a6c;font-family:Space Grotesk,system-ui,-apple-system,sans-serif}.mono{font-family:IBM Plex Mono,monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}main{max-width:1100px;margin:0 auto;padding:24px}a{color:var(--accent)}button{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:8px 14px;cursor:pointer;font-size:.9rem}button:disabled{opacity:.6;cursor:not-allowed}input,select{background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:8px 10px;font-size:.9rem}.nav{display:flex;align-items:center;gap:24px;padding:14px 24px;background:var(--surface);border-bottom:1px solid var(--border)}.nav-brand{display:flex;align-items:center;gap:8px;font-weight:600;letter-spacing:-.01em;color:var(--text)}.nav-links{display:flex;gap:16px;flex:1}.nav-links a{color:var(--text-muted);text-decoration:none;font-family:IBM Plex Mono,monospace;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}.nav-links a.active{color:var(--text);font-weight:600}.nav-user{display:flex;align-items:center;gap:12px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.ws-indicator{font-family:IBM Plex Mono,monospace;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:999px}.ws-indicator.connected{background:#1d9a6c26;color:var(--success)}.ws-indicator.disconnected{background:#dc262626;color:var(--danger)}.device-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.device-card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px;text-decoration:none;color:var(--text)}.device-card-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.status-dot{width:10px;height:10px;border-radius:50%;background:var(--text-muted)}.status-dot.online{background:var(--success)}.status-dot.offline{background:var(--danger)}.device-card-body{font-size:.85rem;color:var(--text-muted);display:flex;flex-direction:column;gap:4px}.badge-disabled{color:var(--danger);font-weight:600}@keyframes auth-float{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-3%,2%) scale(1.05)}}@keyframes auth-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.auth-page{display:flex;min-height:100vh}.auth-brand{position:relative;flex:1.1;background:var(--bg);overflow:hidden;display:flex;align-items:center;padding:64px}.auth-circuit{position:absolute;right:-160px;top:-40px;opacity:.14;animation:auth-float 16s ease-in-out infinite;pointer-events:none}.auth-brand-inner{position:relative;max-width:460px;animation:auth-rise .7s ease both}.auth-brand-inner .logo{margin-bottom:40px}.auth-eyebrow{font-family:IBM Plex Mono,monospace;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:#5b8cff;margin:0 0 18px}.auth-brand-inner h1{font-size:2.3rem;font-weight:600;letter-spacing:-.03em;line-height:1.1;margin:0 0 18px}.auth-lead{color:var(--text-muted);font-size:1.02rem;line-height:1.55;margin:0 0 32px}.auth-feature-list{list-style:none;margin:0;padding:24px 0 0;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:14px;font-family:IBM Plex Mono,monospace;font-size:.78rem;letter-spacing:.02em;color:var(--text-muted)}.auth-feature-list li{padding-left:20px;position:relative}.auth-feature-list li:before{content:"";position:absolute;left:0;top:6px;width:8px;height:8px;border-radius:50%;background:var(--accent)}.auth-form-side{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}@media (max-width: 900px){.auth-brand{display:none}}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:36px;width:340px;display:flex;flex-direction:column;gap:14px;animation:auth-rise .6s ease both}.auth-card-logo{margin-bottom:8px;font-size:1.1rem}.auth-card h2{margin:0 0 8px;font-size:1.3rem;font-weight:600;letter-spacing:-.02em}.auth-card label{display:flex;flex-direction:column;gap:6px;font-family:IBM Plex Mono,monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.form-error{color:var(--danger);font-size:.85rem}.form-success{color:var(--success);font-size:.85rem}.empty-state{color:var(--text-muted)}.inline-form{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.admin-table,.telemetry-table{width:100%;border-collapse:collapse;margin-bottom:24px}.admin-table th,.admin-table td,.telemetry-table th,.telemetry-table td{border-bottom:1px solid var(--border);padding:8px 10px;text-align:left;font-size:.85rem}.admin-table td button{margin-right:6px}.credentials-box{background:#2e6bff1a;border:1px solid var(--accent);border-radius:8px;padding:16px;margin-bottom:20px;display:flex;flex-direction:column;gap:6px}.device-meta{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;margin-bottom:20px;color:var(--text-muted)}.device-meta dt{font-weight:600;color:var(--text)}.totp-enroll{display:flex;flex-direction:column;gap:10px;max-width:400px}
