:root{font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:#e9e5dd;background:#171b1b;color-scheme:dark;font-size:15px;line-height:1.65;--line:#394140;--muted:#a6b1aa;--accent:#d8bc81}*{box-sizing:border-box}body{margin:0}header{padding:22px max(24px,calc((100vw - 1240px)/2));border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:24px}header>div{display:flex;gap:24px;align-items:center}.mark{font-family:serif;font-size:25px;letter-spacing:3px;color:var(--accent)}main{max-width:1240px;margin:auto;padding:24px}h1{font-size:30px;line-height:1.3;margin:6px 0 24px;font-weight:600}h2{font-size:19px;margin:0 0 16px}.muted{color:var(--muted)}.eyebrow{font-size:13px;color:var(--accent);letter-spacing:2px;margin-bottom:10px}section{background:#202625;border:1px solid var(--line);border-radius:12px;padding:24px;margin:20px 0}.login{max-width:480px;margin:70px auto}.login button{width:100%;margin-top:24px}label{display:block;color:#d1d8d2}input,textarea{display:block;width:100%;background:#181e1d;border:1px solid #53605a;border-radius:6px;color:#f0f3ed;padding:11px 12px;font:inherit;margin:8px 0}textarea{font-family:monospace;resize:vertical}input:focus,textarea:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button{font:inherit;cursor:pointer;padding:9px 17px;border-radius:6px;border:1px solid #5b675f;background:#29332f;color:#e9eee9;white-space:nowrap}button:hover{background:#37453d}button.primary{background:var(--accent);color:#252419;border-color:var(--accent)}button:disabled{opacity:.45;cursor:default}.heading,.inline{display:flex;gap:12px;align-items:center;justify-content:space-between}.inline{justify-content:flex-start;align-items:flex-end;flex-wrap:wrap}.inline input{margin-bottom:0}.columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.columns section{margin-bottom:0}.stats{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.stat{background:#242c28;padding:18px;border-radius:8px;border:1px solid var(--line)}.stat strong{display:block;font-size:28px;color:#f0e4c7}.stat span{font-size:13px;color:var(--muted)}.notice{padding:12px 16px;background:#302c21;border-left:3px solid var(--accent);color:#e6cfa1}.batch{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}.batch span{overflow-wrap:anywhere}.batch small{display:block;color:var(--muted)}.batch-list{max-height:280px;overflow:auto}.search input{min-width:275px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;min-width:850px}th,td{padding:16px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:normal;font-size:13px}td{font-size:14px}td small{display:block;color:var(--muted);max-width:245px;overflow-wrap:anywhere}td button{font-size:13px;margin:0 5px 8px 0;padding:6px 9px}.tag{display:inline-block;padding:1px 7px;border-radius:4px;background:#354539;color:#cce2c9;margin-top:7px}.tag.revoked,.tag.expired{background:#4c3230;color:#f2c3b7}.pager{display:flex;align-items:center;justify-content:flex-end;gap:18px;margin-top:18px}#message:empty{display:none}#message{padding:12px 16px;border:1px solid var(--accent);border-radius:6px;color:#f2dba8;overflow-wrap:anywhere}footer{text-align:center;font-size:13px;color:var(--muted);padding:40px}dialog{background:#252e29;color:#ecebe4;border:1px solid #6b786b;border-radius:12px;max-width:520px;width:90%;padding:28px}dialog::backdrop{background:#0009}dialog .inline{margin-top:24px;justify-content:flex-end}[hidden]{display:none!important}@media(max-width:760px){header{padding:16px}header>div{gap:12px}.mark{font-size:21px}main{padding:16px}.stats{grid-template-columns:repeat(3,1fr)}.columns{grid-template-columns:1fr;gap:0}.heading{align-items:flex-start;flex-direction:column}section{padding:18px}.batch{align-items:flex-start}.search input{min-width:0}.login{margin:30px auto}}
.checkbox{display:flex;align-items:center;gap:8px;margin-bottom:10px}.checkbox input{width:auto;margin:0}.update-notes{white-space:pre-wrap;max-width:380px;overflow-wrap:anywhere}#updates input{max-width:100px}
