:root{--bg:#fafafa;--fg:#1a1a1a;--muted:#6b6b6b;--line:#e3e3e3;--accent:#1f5eff;--danger:#c62828;--ok:#1b7f3b}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);margin:0;font:14px/1.5 ui-sans-serif,system-ui,-apple-system,PingFang SC,Noto Sans CJK SC,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,pre,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}pre{border:1px solid var(--line);background:#fff;border-radius:6px;padding:12px;overflow-x:auto}header.top{border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:20px;padding:10px 24px;display:flex}header.top .brand{font-weight:600}header.top nav a{color:var(--fg);margin-right:14px}header.top .spacer{flex:1}header.top .who{color:var(--muted)}main.page{max-width:1040px;margin:0 auto;padding:24px}h1{margin:0 0 16px;font-size:20px}h2{margin:24px 0 8px;font-size:16px}table{border-collapse:collapse;border:1px solid var(--line);background:#fff;border-radius:6px;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:8px 10px}th{color:var(--muted);font-size:12px;font-weight:500}tr:last-child td{border-bottom:0}form.stack{border:1px solid var(--line);background:#fff;border-radius:6px;gap:10px;max-width:520px;padding:16px;display:grid}form.inline{display:inline}label{color:var(--muted);gap:4px;font-size:12px;display:grid}input,select{font:inherit;border:1px solid var(--line);color:var(--fg);background:#fff;border-radius:4px;padding:6px 8px}button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:4px;padding:6px 12px}button.ghost{color:var(--fg);border-color:var(--line);background:#fff}button.danger{color:var(--danger);border-color:var(--danger);background:#fff}button:disabled{opacity:.5;cursor:default}.muted{color:var(--muted)}.badge{border:1px solid var(--line);background:#fff;border-radius:10px;padding:1px 8px;font-size:12px;display:inline-block}.badge.active{color:var(--ok);border-color:var(--ok)}.badge.disabled{color:var(--muted)}.badge.revoked{color:var(--danger);border-color:var(--danger)}.secret{background:#fff8e1;border:1px solid #f0c36d;border-radius:6px;margin:12px 0;padding:12px}.error{color:var(--danger)}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}
