:root{--bg: #eef1f4;--surface: #ffffff;--ink: #12161c;--muted: #5b6570;--line: #d5dce3;--accent: #0c4a6e;--accent-hover: #0a3d5c;--accent-soft: #e8f2f8;--danger: #9f1d32;--danger-bg: #fdecee;--warn: #8a5800;--warn-bg: #fff6e5;--ok: #0f6b4c;--ok-bg: #e6f5ef;--shadow: 0 12px 40px rgba(18, 22, 28, .08);--radius: 14px;font-family:Segoe UI,Helvetica Neue,sans-serif;color:var(--ink);background:var(--bg);line-height:1.45}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.brand{display:inline-flex;align-items:center;gap:.6rem;color:inherit;font-weight:700;letter-spacing:-.03em;text-decoration:none}.brand:hover{text-decoration:none}.brand-mark{width:1.55rem;height:1.55rem;border-radius:6px;background:linear-gradient(135deg,#0c4a6e,#1478a8 70%,#2aa3a0);box-shadow:inset 0 0 0 2px #ffffff26}.brand-name{font-size:1.15rem}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:2rem 1rem;background:radial-gradient(1200px 500px at 10% -10%,#d7e7f2,transparent 50%),radial-gradient(900px 400px at 110% 10%,#dceee9,transparent 45%),var(--bg)}.auth-panel{width:min(26rem,100%);background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:2rem 1.6rem 1.6rem;box-shadow:var(--shadow)}.auth-panel h1{margin:1.4rem 0 .35rem;font-size:1.55rem;letter-spacing:-.03em}.lede{margin:0 0 1.25rem;color:var(--muted);font-size:.98rem}.app-shell{min-height:100vh}.topbar{display:flex;justify-content:space-between;align-items:center;padding:.9rem 1.4rem;background:var(--surface);border-bottom:1px solid var(--line)}.topbar-nav{display:flex;align-items:center;gap:1rem}.page{width:min(56rem,calc(100% - 2rem));margin:1.5rem auto 3rem}.page-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;margin-bottom:1.25rem}.page-head h1{margin:.15rem 0 .25rem;font-size:1.7rem;letter-spacing:-.03em}.page-actions{display:flex;gap:.5rem;flex-wrap:wrap}.back{display:inline-block;margin-bottom:.7rem;color:var(--muted);font-size:.92rem}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.15rem 1.2rem;margin-bottom:1rem}.panel h2{margin:0 0 .75rem;font-size:1rem}label{display:block;margin:.85rem 0;color:#2b333c;font-size:.92rem;font-weight:600}input,select,textarea{width:100%;margin-top:.35rem;padding:.7rem .75rem;border-radius:10px;border:1px solid var(--line);background:#fff;color:inherit;font:inherit}input:focus,select:focus,button:focus-visible{outline:2px solid #8cb4d4;outline-offset:1px}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:0;border-radius:10px;padding:.7rem 1rem;background:var(--accent);color:#fff;font:inherit;font-weight:600;cursor:pointer}button:hover,.btn:hover{background:var(--accent-hover);text-decoration:none}button:disabled{opacity:.65;cursor:not-allowed}.btn-secondary,button.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn-secondary:hover,button.secondary:hover{background:#f6f8fa}.text-btn{background:transparent;color:var(--muted);border:0;padding:.2rem;font-weight:600}.text-btn:hover{background:transparent;color:var(--ink)}.auth-actions{display:flex;flex-direction:column;gap:.65rem;margin-top:1.1rem}.auth-links{display:flex;justify-content:space-between;gap:.75rem;margin-top:1rem;font-size:.92rem}.list{list-style:none;margin:0;padding:0}.list li{margin:0}.list-link,.row-card{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.9rem .2rem;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}.list li:last-child .list-link,.list li:last-child .row-card{border-bottom:0}.list-link:hover{background:#f7fafc;text-decoration:none}.list-title{font-weight:650}.list-meta{color:var(--muted);font-size:.88rem}.badge{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.75rem;font-weight:700;letter-spacing:.02em}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.danger{background:var(--danger-bg);color:var(--danger)}.empty{color:var(--muted);padding:1.5rem .2rem;text-align:center}.error,.warn,.ok{border-radius:10px;padding:.7rem .8rem;margin:.7rem 0}.error{background:var(--danger-bg);color:var(--danger)}.warn{background:var(--warn-bg);color:var(--warn)}.ok{background:var(--ok-bg);color:var(--ok)}.row{display:flex;gap:.5rem;flex-wrap:wrap}.row button{width:auto}.muted{color:var(--muted)}.stack{display:grid;gap:.75rem}.demo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(16.5rem,1fr));gap:1rem}.metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:.85rem 0 1rem}.metric{background:#f6f8fa;border-radius:12px;padding:.85rem .9rem}.metric-value{display:block;font-size:1.35rem;font-weight:700;letter-spacing:-.03em}.metric-label{color:var(--muted);font-size:.78rem}.led-status{display:flex;align-items:center;gap:.65rem;margin:.75rem 0 1rem;font-weight:650}.led-dot{width:1.15rem;height:1.15rem;border-radius:50%;background:#d5dce3;box-shadow:inset 0 0 0 1px #12161c14}.led-dot.on{background:#f5c542;box-shadow:0 0 14px #f5c542d9}.link-pill{display:inline-flex;align-items:center;gap:.4rem}@media(max-width:720px){.page-head{flex-direction:column;align-items:stretch}.topbar{padding:.8rem 1rem}}
