:root{--bg: #0f1115;--surface: #181b22;--surface-raised: #1f232c;--border: #2a2f3a;--text: #e6e9ef;--text-muted: #8b93a3;--primary: #5865f2;--primary-hover: #4752c4;--danger: #da3e44;--danger-hover: #b32f35;--warning: #f0b132;--radius: 10px}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}h1{font-size:1.25rem;margin:0}h2{font-size:1rem;margin:0 0 .75rem}.centered{min-height:100dvh;display:grid;place-items:center;padding:1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.login-card{max-width:22rem;text-align:center;display:grid;gap:1rem;justify-items:center}.muted{color:var(--text-muted);margin:0}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85em}.error{color:var(--danger);margin:0}.warning{color:var(--warning);margin:0}.button{display:inline-block;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);color:var(--text);padding:.5rem 1rem;font-size:.9rem;cursor:pointer;text-decoration:none;transition:background .15s ease}.button:hover{background:var(--border)}.button-primary{background:var(--primary);border-color:var(--primary);color:#fff}.button-primary:hover{background:var(--primary-hover)}.button-danger{background:transparent;border-color:var(--danger);color:var(--danger)}.button-danger:hover{background:var(--danger-hover);color:#fff}button:disabled{opacity:.6;cursor:not-allowed}.dashboard{max-width:44rem;margin:0 auto;padding:2rem 1rem 4rem;display:grid;gap:1.25rem}.dashboard-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.user{display:flex;align-items:center;gap:.75rem}.avatar{width:48px;height:48px;border-radius:50%;border:1px solid var(--border)}.create-form{display:flex;gap:.75rem;flex-wrap:wrap}.create-form input{flex:1;min-width:12rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:.5rem .75rem;font-size:.9rem}.create-form input:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.key-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.key{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem}.key.revoked{opacity:.55}.key-info{display:grid;gap:.15rem}.key-name{font-weight:600}.badge{font-size:.8rem;color:var(--text-muted);border:1px solid var(--border);border-radius:999px;padding:.15rem .6rem}.overlay{position:fixed;inset:0;background:#0009;display:grid;place-items:center;padding:1rem}.dialog{max-width:30rem;width:100%;display:grid;gap:1rem}.code-block{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;margin:.75rem 0;overflow-x:auto}.link{color:var(--primary)}.key-reveal{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;word-break:break-all;-webkit-user-select:all;user-select:all}.dialog-actions{display:flex;gap:.75rem;justify-content:flex-end}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
