:root{--ink:#17201d;--paper:#f2f0e8;--panel:#fffdf7;--line:#c9c7bc;--accent:#e3522d;--green:#167452;--red:#b63737;--muted:#73766f}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.55 'Noto Sans SC',sans-serif;background-image:linear-gradient(rgba(23,32,29,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(23,32,29,.035) 1px,transparent 1px);background-size:24px 24px}header{display:flex;align-items:center;justify-content:space-between;padding:20px 4vw;border-bottom:2px solid var(--ink);background:var(--panel)}.brand,.eyebrow{font:600 17px 'IBM Plex Mono',monospace;letter-spacing:.12em;color:var(--ink);text-decoration:none}nav{display:flex;gap:22px;align-items:center}nav a{color:var(--ink);text-decoration:none;font-weight:600}nav form{display:inline;margin:0}nav button{padding:0;background:none;color:var(--ink);border:0;font:600 15px 'Noto Sans SC';box-shadow:none}main{max-width:1380px;margin:auto;padding:44px 4vw 80px}.page-title p,.muted{color:var(--muted)}.page-title p{font:600 12px 'IBM Plex Mono';letter-spacing:.2em;margin:0}.page-title h1{font-size:38px;margin:4px 0 28px}.panel,.stats article,.login-card,.install-card{background:var(--panel);border:1px solid var(--line);box-shadow:6px 6px 0 var(--ink)}.panel{padding:24px;margin:24px 0}.panel h2{margin-top:0}.panel-head{display:flex;justify-content:space-between;align-items:center}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.stats article{padding:24px}.stats span{display:block;color:var(--muted)}.stats strong{font:600 42px 'IBM Plex Mono'}dl{display:flex;gap:50px}dl div{min-width:160px}dt{color:var(--muted)}dd{margin:3px 0;font-weight:700}form{margin:0}label{display:block;font-weight:600;margin-bottom:16px}input{display:block;width:100%;padding:11px 12px;margin-top:6px;border:1px solid var(--ink);background:#fff;font:14px 'IBM Plex Mono'}button{cursor:pointer;border:1px solid var(--ink);background:var(--accent);color:#fff;padding:11px 18px;font-weight:700;box-shadow:3px 3px 0 var(--ink)}button:hover{transform:translate(1px,1px);box-shadow:2px 2px 0 var(--ink)}button.secondary,.search button,.rowform button{background:var(--panel);color:var(--ink);padding:8px 12px}.inline{display:flex;gap:16px;align-items:end;flex-wrap:wrap}.inline label{min-width:190px;margin:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 10px;border-bottom:1px solid var(--line);white-space:nowrap}th{font:600 12px 'IBM Plex Mono';letter-spacing:.08em}td small{display:block;color:var(--muted)}td form{display:inline}.rowform{display:flex;gap:6px}.rowform input{width:190px;margin:0;padding:7px}.badge{display:inline-block;padding:3px 9px;border:1px solid var(--ink);font-size:12px}.badge.green,.badge.unused{background:#d8f1e2}.badge.red,.badge.disabled{background:#f7dada}.badge.used{background:#ddd}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#999;margin-right:7px}.dot.on{background:#19a66f;box-shadow:0 0 0 3px #ccebdd}.notice{padding:14px;margin:15px 0;border:1px solid var(--ink);white-space:pre-wrap}.notice.ok{background:#d8f1e2}.notice.error{background:#f7dada}.notice.codes{background:#fff2c7;font:13px 'IBM Plex Mono'}.filters,.search{display:flex;gap:8px}.filters a{color:var(--ink)}.search input{margin:0}.user-search{align-items:stretch;flex-wrap:wrap}.user-search select{padding:8px 34px 8px 10px;border:1px solid var(--ink);background:#fff;font:14px 'Noto Sans SC',sans-serif}.users-panel .panel-head h2{margin-bottom:0}.users-table td{vertical-align:top}.quick-actions,.account-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.account-actions{margin-top:0}.quick-actions button,.account-actions button{padding:7px 10px;box-shadow:2px 2px 0 var(--ink)}button.danger{background:var(--red);color:#fff;padding:8px 12px}.login,.install{min-height:100vh;display:grid;place-items:center;padding:30px}.login-card,.install-card{width:min(430px,100%);padding:34px}.install-card{width:min(780px,100%)}.login-card h1,.install-card h1{font-size:34px;margin:8px 0}.grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.wide{grid-column:1/-1}.narrow{max-width:550px}code{font-family:'IBM Plex Mono'}footer{text-align:center;padding:24px;color:var(--muted);border-top:1px solid var(--line)}@media(max-width:800px){header,.panel-head{align-items:flex-start;gap:16px;flex-direction:column}nav{gap:11px;flex-wrap:wrap}.stats{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr}.wide{grid-column:auto}dl{flex-direction:column;gap:10px}}@media(max-width:480px){.stats{grid-template-columns:1fr}.page-title h1{font-size:30px}}
