:root{font-family:"Microsoft YaHei",system-ui,sans-serif;color:#252831;background:#f6f7f8;font-size:14px;letter-spacing:0;color-scheme:light}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}header{height:68px;padding:0 32px;background:#fff;border-bottom:1px solid #dfe3e6;display:flex;justify-content:space-between;align-items:center}.brand{font-weight:750;font-size:21px;color:#292436}.brand span{font-size:14px;font-weight:500;border-left:1px solid #d2d6da;margin-left:16px;padding-left:16px;color:#656b74}#identity{display:flex;gap:16px;align-items:center}main{max-width:1360px;padding:28px 32px 64px;margin:auto}h1{font-size:23px;margin:0;font-weight:650}h2{font-size:19px;margin:0}.heading,.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.heading{margin-bottom:22px}button,input,select,textarea{font:inherit;letter-spacing:0}button{border:1px solid #cdd3d8;border-radius:5px;padding:9px 15px;min-height:38px;background:#fff;color:#333a43;cursor:pointer}button:hover{background:#eef2f3}button:disabled{opacity:.55;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b6dccf;outline-offset:2px}.primary{background:#17694f;border-color:#17694f;color:#fff}.primary:hover{background:#11553f}input,select,textarea{padding:10px 12px;border:1px solid #cbd1d7;border-radius:5px;background:white;color:#252831;max-width:100%}label{display:grid;gap:8px;margin:18px 0;font-size:13px;color:#515963}textarea{resize:vertical;min-height:180px;font-family:ui-monospace,monospace;font-size:12px;line-height:1.9}#login-view{padding:70px 0}#login-form{max-width:360px;margin:auto}#login-form button{width:100%;margin-top:10px}#stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;border-top:1px solid #dfe3e6;border-bottom:1px solid #dfe3e6;padding:22px 0;margin:0 0 26px}dt{color:#727981;font-size:12px}dd{margin:6px 0 0;font-size:29px;font-weight:600;font-variant-numeric:tabular-nums}nav{display:flex;gap:24px;border-bottom:1px solid #dce1e4;margin-bottom:20px}nav button{padding:12px 4px;border:0;border-bottom:3px solid transparent;border-radius:0;background:none}nav button[aria-pressed=true]{border-bottom-color:#17694f;color:#17694f;font-weight:650}.toolbar{display:flex;justify-content:space-between;gap:16px;margin:18px 0}.toolbar form{display:flex;gap:10px;flex-wrap:wrap}.table-wrap{overflow-x:auto;background:#fff;border-top:1px solid #dfe3e6;border-bottom:1px solid #dfe3e6}table{border-collapse:collapse;width:100%;text-align:left;font-size:12px}th{padding:13px 14px;background:#f0f2f4;white-space:nowrap;font-weight:600;color:#666f78}td{padding:14px;border-top:1px solid #e8ebed;vertical-align:middle;max-width:220px;overflow-wrap:anywhere}td button{font-size:12px;padding:5px 10px;min-height:30px}.muted{color:#89909a;font-size:10px;display:block;margin-top:5px}.mono{font-family:ui-monospace,monospace;font-size:11px}.badge{display:inline-block;padding:3px 7px;border-radius:3px;background:#e8ecef;color:#59616d;white-space:nowrap}.badge.active{background:#e4f2e9;color:#17694f}.badge.revoked,.badge.blocked{background:#f8e8e7;color:#9e3b37}.badge.expired{background:#fbefd8;color:#846117}.empty{text-align:center;color:#858d96;padding:55px}.more{margin-top:18px}.danger{color:#a73a35;border-color:#e3c6c3}dialog{border:1px solid #d4dade;border-radius:8px;box-shadow:0 16px 70px #0003;padding:24px;width:480px;max-width:calc(100% - 28px);max-height:90dvh;overflow:auto}dialog::backdrop{background:#151b2680}.actions{display:flex;gap:12px;justify-content:flex-end}.warning{color:#93631b;line-height:1.7;background:#fff4de;border-left:3px solid #d2a44d;padding:12px}#notice{position:fixed;right:24px;top:80px;max-width:calc(100% - 48px);z-index:10;background:#252d34;color:white;box-shadow:0 4px 20px #0002;border-radius:5px;padding:13px 18px;line-height:1.6}@media(max-width:700px){header{padding:0 16px}.brand span{margin-left:10px;padding-left:10px}main{padding:24px 16px 48px}#stats{gap:12px;grid-template-columns:repeat(2,1fr)}.toolbar{flex-direction:column}.toolbar form{display:grid;grid-template-columns:1fr auto}#search{grid-column:1/-1;width:100%}.toolbar>button{align-self:flex-start}.table-wrap{margin:0 -16px;width:calc(100% + 32px)}th,td{padding:12px;min-width:90px}dialog{padding:20px}#username{display:none}}
:root .brand{display:flex;align-items:center;gap:10px}:root td:last-child button+button{margin-left:6px;margin-top:4px}
