:root{--blue: #2f6fed;--bg: #f5f7fb;--card: #fff;--line: #e3e8f0;--text: #1c2434;--sub: #66748c;--ok: #18864f;--warn: #b7791f;--bad: #c43d3d;--radius: 10px}*{box-sizing:border-box}body{margin:0;font:14px/1.55 Segoe UI,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text)}.mono,.big-key{font-family:Consolas,Cascadia Mono,monospace}.hint{color:var(--sub)}.err{color:var(--bad)}.num{text-align:right;font-variant-numeric:tabular-nums}button{font:inherit;padding:6px 14px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text);cursor:pointer}button:hover{border-color:var(--blue)}button:disabled{opacity:.55;cursor:default}button.primary{background:var(--blue);border-color:var(--blue);color:#fff}button.danger{color:var(--bad);border-color:var(--bad)}input,select,textarea{font:inherit;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text)}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid #2f6fed33;border-color:var(--blue)}label{display:flex;flex-direction:column;gap:4px;color:var(--sub);font-size:13px}table{width:100%;border-collapse:collapse}th,td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line);font-size:13px}th{color:var(--sub);font-weight:600;background:#f8fafd}tr.sel td{background:#eef4ff}.empty{color:var(--sub);text-align:center;padding:24px 0}.boot{display:grid;place-items:center;min-height:100vh;color:var(--sub)}.login{display:grid;place-items:center;min-height:100vh}.login-card{display:flex;flex-direction:column;gap:14px;width:340px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:0 8px 24px #1c24340f}.login-card h1{margin:0;font-size:20px}.console{display:flex;flex-direction:column;height:100vh}.top{display:flex;align-items:center;gap:14px;padding:10px 18px;background:var(--card);border-bottom:1px solid var(--line)}.brand{font-weight:700;color:var(--blue)}.view-tabs{display:flex;gap:6px}.view-tabs button[aria-pressed=true]{background:#eaf1fe;border-color:var(--blue);color:var(--blue);font-weight:600}.who{color:var(--sub);margin-left:auto}.body{display:grid;grid-template-columns:minmax(520px,1fr) minmax(420px,1fr);gap:0;flex:1;min-height:0}.list{overflow:auto;padding:14px 16px;border-right:1px solid var(--line)}.list-head{display:flex;gap:10px;margin-bottom:12px}.list-head input{flex:1}.pager{display:flex;align-items:center;gap:10px;padding-top:10px;color:var(--sub)}.pager span{margin-right:auto}.side{overflow:auto;padding:14px 16px}.detail .d-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.big-key{font-size:16px;letter-spacing:.4px}.fields{display:grid;grid-template-columns:90px 1fr;gap:4px 12px;margin:0 0 14px}.fields dt{color:var(--sub)}.fields dd{margin:0}.ops{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.op-row{display:flex;gap:8px;align-items:center}.op-row input{flex:1}.op-row input[style]{flex:0 0 auto}h3{font-size:14px;margin:16px 0 6px}.events{list-style:none;margin:0;padding:0}.events li{display:flex;gap:10px;padding:5px 0;border-bottom:1px dashed var(--line);font-size:13px}.ev-kind{flex:0 0 76px}.ev-detail{flex:1;color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ev-time{color:var(--sub)}.badge{padding:2px 9px;border-radius:999px;font-size:12px}.badge.active{background:#e6f6ed;color:var(--ok)}.badge.suspended{background:#fdf1dc;color:var(--warn)}.badge.refunded{background:#fbe6e6;color:var(--bad)}.badge.stable{background:#e6f6ed;color:var(--ok)}.badge.beta{background:#eaf1fe;color:var(--blue)}.body .list:only-child{grid-column:1 / -1;border-right:none}.row-ops{white-space:nowrap}.row-ops button{padding:4px 10px;margin-left:6px}.row-ops button:first-child{margin-left:0}.dialog label{margin-bottom:10px}.mask{position:fixed;inset:0;background:#1c243066;display:grid;place-items:center}.dialog{width:560px;max-width:94vw;background:var(--card);border-radius:var(--radius);padding:22px 24px;box-shadow:0 16px 48px #1c243033}.dialog h2{margin:0 0 14px;font-size:17px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}.check{flex-direction:row;align-items:center;gap:8px;margin:10px 0}.issued .big-key{display:block;margin:12px 0;font-size:18px}
