:root{font-family:Inter,"Microsoft YaHei",sans-serif;color:#17211f;background:#f2f7f5;line-height:1.5}*{box-sizing:border-box}body{margin:0;min-width:320px}.page{max-width:1280px;margin:0 auto;padding:42px 28px}.narrow{max-width:720px}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 15% 10%,#d8f3ed,transparent 35%),#f2f7f5}.auth-panel{width:min(100%,420px);background:#fff;padding:38px;border:1px solid #d8e5e1;box-shadow:0 20px 60px #17443a16}.eyebrow{color:#0f766e;font-size:11px;font-weight:800;letter-spacing:.14em}h1{margin:6px 0 8px;font-size:32px;letter-spacing:-.03em}h2{font-size:18px;margin:0 0 14px}.muted{color:#657572;font-size:14px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:28px}.stack{display:grid;gap:16px;margin-top:28px}label{display:grid;gap:7px;font-size:13px;font-weight:700}input,.code-output{width:100%;border:1px solid #cddbd7;background:#fbfdfc;padding:10px 12px;font:inherit;color:inherit}input:focus{outline:2px solid #80cfc1;outline-offset:1px}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #c8d8d3;background:#fff;color:#23413b;padding:9px 14px;text-decoration:none;font-weight:700;font-size:13px;cursor:pointer}.button.primary{background:#0f766e;color:#fff;border-color:#0f766e}.alert{padding:11px 13px;margin-top:20px;font-size:13px}.danger{background:#fff1f0;color:#b42318;border:1px solid #ffc6c2}.metrics{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid #d7e4e0;margin-bottom:22px}.metrics div{padding:16px 18px;border-right:1px solid #d7e4e0}.metrics div:last-child{border:0}.metrics span{display:block;color:#657572;font-size:12px}.metrics strong{display:block;font-size:26px;margin-top:4px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.toolbar form{display:flex;gap:8px}.toolbar form:first-child{flex:1;min-width:240px}.toolbar form:first-child input{flex:1}.generate input{width:90px}.generate input[name=note]{width:150px}.panel{background:#fff;border:1px solid #d7e4e0;padding:18px;margin-bottom:18px}.table-wrap{overflow:auto;padding:0}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:13px 14px;border-bottom:1px solid #edf2f0;white-space:nowrap}th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#71817c;background:#fbfdfc}.status{font-size:11px;font-weight:800;padding:3px 7px;border:1px solid #b9d9d1}.status.active{color:#087f5b;background:#e9f8f2}.status.disabled,.status.revoked{color:#a33b32;background:#fff0ee}.row-actions{display:flex;gap:8px}.link{border:0;background:none;color:#0f766e;cursor:pointer;padding:0;font:inherit;font-size:12px}.danger-text{color:#b42318}.empty{text-align:center;color:#71817c;padding:30px}.audit-list{display:grid;gap:9px}.audit-list>div{display:grid;grid-template-columns:140px 1fr auto;gap:14px;font-size:13px;padding-bottom:9px;border-bottom:1px solid #edf2f0}.audit-list time{color:#7b8985}.code-output{min-height:220px;line-height:1.8;font-family:ui-monospace,monospace}.actions{display:flex;gap:10px;margin-top:14px}@media(max-width:720px){.page{padding:24px 14px}.topbar{display:block}.topbar form{margin-top:16px}.metrics div{padding:12px}.toolbar form{width:100%}.generate input,.generate input[name=note]{width:100%}.audit-list>div{grid-template-columns:1fr}.auth-panel{padding:26px}}
