:root{--ink: #14110d;--paper: #f4efe4;--card: #1c1812;--copper: #c47a3a;--ok: #3d7a5a;--down: #a33b32;--warn: #b0892c;--muted: #9a9083}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;background:var(--ink);color:var(--paper);font-family:IBM Plex Mono,ui-monospace,monospace}h1,h2{font-family:"Source Serif 4",Georgia,serif;font-weight:600;margin:0 0 .4rem}.shell{max-width:960px;margin:0 auto;padding:2.5rem 1.5rem 4rem}.shell.auth{min-height:100vh;display:grid;place-items:center}.card{background:var(--card);border:1px solid #2c261d;padding:2rem;width:min(420px,100%)}.kicker{color:var(--copper);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;margin:0 0 .4rem}.lede,.muted{color:var(--muted)}.top{display:flex;justify-content:space-between;gap:1rem;align-items:end;margin-bottom:2rem}nav{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}a,.linkish{color:var(--paper);background:none;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:none;border-bottom:1px solid var(--copper)}form{display:grid;gap:.9rem;margin-top:1.5rem}label{display:grid;gap:.35rem;font-size:.8rem;color:var(--muted)}input{background:#0f0d0a;color:var(--paper);border:1px solid #3a3228;padding:.65rem .7rem;font:inherit}button{background:var(--copper);color:var(--ink);border:0;padding:.7rem 1rem;font:inherit;cursor:pointer}button:disabled{opacity:.6}.error{color:#e07a72}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem}.tile{border:1px solid #2c261d;padding:1rem;background:var(--card)}.tile .status{text-transform:uppercase;font-size:.75rem}.status-ok .status{color:#8fcead}.status-down .status{color:#e07a72}.status-unconfigured .status,.status-degraded .status{color:#e0c07a}.counts{display:flex;gap:1.5rem;margin-top:2rem;color:var(--muted)}.list{list-style:none;padding:0;display:grid;gap:.75rem}.list li{display:flex;justify-content:space-between;gap:1rem;border:1px solid #2c261d;padding:1rem;background:var(--card);align-items:center}.list.connectors li{display:block}form.inline{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}form.inline input{flex:1 1 12rem}button.secondary{background:transparent;color:var(--paper);border:1px solid #3a3228}.ok{color:#8fcead}.card-form{max-width:28rem}
