:root{--bg: #0f1419;--bg-elev: #1a222c;--bg-soft: #232d3a;--line: #334155;--text: #e8eef4;--muted: #94a3b8;--accent: #d4a017;--accent-dim: #8b6914;--ok: #3d9a6a;--danger: #c45c5c;--font: "IBM Plex Sans", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font);background:radial-gradient(ellipse 80% 50% at 10% -10%,#1e3a2f55,transparent),radial-gradient(ellipse 60% 40% at 100% 0%,#3a2e1455,transparent),var(--bg);color:var(--text)}a{color:var(--accent);text-decoration:none}button,input,textarea{font:inherit}.app-shell{max-width:1100px;margin:0 auto;padding:1.5rem 1.25rem 3rem}.brand-bar{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.75rem;border-bottom:1px solid var(--line);padding-bottom:1rem}.brand-bar h1{margin:0;font-size:1.55rem;letter-spacing:.02em;font-weight:700}.brand-bar h1 span{color:var(--accent)}.brand-bar p{margin:.25rem 0 0;color:var(--muted);font-size:.9rem}.nav{display:flex;gap:.5rem;flex-wrap:wrap}.nav a,.nav button.linkish{background:transparent;border:1px solid var(--line);color:var(--text);padding:.4rem .85rem;border-radius:4px;cursor:pointer}.nav a.active,.nav a:hover,.nav button.linkish:hover{border-color:var(--accent);color:var(--accent)}.card{background:var(--bg-elev);border:1px solid var(--line);border-radius:6px;padding:1.1rem 1.2rem;margin-bottom:1rem}.card h2{margin:0 0 .85rem;font-size:1.05rem}.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}input[type=text],input[type=password],input[type=number],textarea{background:var(--bg-soft);border:1px solid var(--line);color:var(--text);padding:.5rem .65rem;border-radius:4px;min-width:0}input:focus,textarea:focus{outline:1px solid var(--accent);border-color:var(--accent)}button.primary{background:var(--accent);color:#1a1408;border:none;font-weight:600;padding:.5rem .95rem;border-radius:4px;cursor:pointer}button.primary:hover{filter:brightness(1.05)}button.ghost{background:transparent;border:1px solid var(--line);color:var(--text);padding:.45rem .75rem;border-radius:4px;cursor:pointer}button.danger{background:transparent;border:1px solid var(--danger);color:var(--danger);padding:.35rem .65rem;border-radius:4px;cursor:pointer}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{text-align:left;padding:.55rem .4rem;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:500}td.mono,.mono{font-family:var(--mono);font-size:.82rem}.muted{color:var(--muted)}.badge{display:inline-block;padding:.1rem .45rem;border-radius:3px;font-size:.75rem;border:1px solid var(--line)}.badge.on{border-color:var(--ok);color:var(--ok)}.badge.off{color:var(--muted)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.login-card{width:min(400px,100%);background:var(--bg-elev);border:1px solid var(--line);border-radius:8px;padding:1.75rem 1.5rem}.login-card h1{margin:0 0 .35rem;font-size:1.4rem}.login-card h1 span{color:var(--accent)}.login-card form{display:flex;flex-direction:column;gap:.75rem;margin-top:1.25rem}.err{color:var(--danger);font-size:.9rem}.empty{color:var(--muted);padding:1rem 0}
