:root{--ink:#242a38;--muted:#727988;--line:#e3e6ec;--brand:#5c58a6;--brand2:#766ec5;--soft:#f1f0fa;--danger:#b23c4c;--ok:#21765b;--paper:#fff}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(145deg,#f7f5fa,#f0f3f6);color:var(--ink);font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif}.shell{width:min(1240px,calc(100% - 28px));margin:auto;padding:34px 0 60px}.login-card{width:min(440px,100%);margin:8vh auto;padding:38px;background:var(--paper);border:1px solid var(--line);border-radius:24px;box-shadow:0 24px 70px #32384a1a}.eyebrow{margin:0;color:var(--brand);font-size:12px;font-weight:900;letter-spacing:.16em}h1{margin:8px 0 4px;font-size:30px}h2{margin:0;font-size:20px}.muted,.panel-heading p{color:var(--muted);font-size:14px;margin:6px 0}.topbar,.panel-heading,.user-actions,.pager{display:flex;align-items:center;justify-content:space-between;gap:14px}.topbar{margin-bottom:22px}.user-actions{justify-content:flex-end}label{display:flex;flex-direction:column;gap:7px;margin-top:16px;font-size:14px;font-weight:750}input,select,textarea{width:100%;min-height:44px;border:1px solid #d6dae4;border-radius:11px;background:#fff;padding:10px 12px;color:var(--ink);font:inherit;outline:none}select[multiple]{min-height:106px}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #5c58a619}button{min-height:44px;border:0;border-radius:11px;background:var(--brand);color:#fff;padding:10px 17px;font:inherit;font-weight:850;cursor:pointer}button:hover{background:var(--brand2)}button:disabled{opacity:.5;cursor:not-allowed}.secondary{background:var(--soft);color:var(--brand)}.secondary:hover{background:#e5e3f5}.login-card button[type=submit],form>button[type=submit]{margin-top:20px}.status{min-height:20px;color:var(--danger);font-size:14px}.success{color:var(--ok)}.tabs{display:flex;gap:8px;overflow:auto;padding:6px;background:#fff;border:1px solid var(--line);border-radius:15px;position:sticky;top:8px;z-index:4;box-shadow:0 8px 24px #373f5612}.tabs button{white-space:nowrap;background:transparent;color:#687080}.tabs button.active{background:var(--brand);color:#fff}.stats{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-top:18px}.stat,.panel{background:#fffffffa;border:1px solid var(--line);border-radius:18px;box-shadow:0 10px 28px #3e455a0d}.stat{padding:19px}.stat span{display:block;color:var(--muted);font-size:13px}.stat strong{display:block;font-size:28px;margin-top:7px}.panel{padding:23px;margin-top:18px}.trend{height:220px;display:flex;align-items:flex-end;gap:6px;border-bottom:1px solid var(--line);padding-top:20px}.bar{flex:1;min-width:5px;background:linear-gradient(var(--brand2),var(--brand));border-radius:5px 5px 0 0;position:relative}.bar:hover:after{content:attr(data-label);position:absolute;bottom:calc(100% + 5px);left:50%;transform:translateX(-50%);white-space:nowrap;background:var(--ink);color:#fff;padding:4px 6px;border-radius:6px;font-size:11px}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.card-list{display:grid;gap:10px;margin-top:22px}.item-card,.secret-box,.generated,.summary{border-radius:13px;background:var(--soft);padding:14px}.item-card{display:flex;align-items:center;justify-content:space-between;gap:12px}.item-card p{margin:3px 0;color:var(--muted);font-size:12px}.secret-box{margin-top:16px;border:1px solid #d7d0f1}.secret-box div{display:flex;align-items:center;gap:8px;margin-top:9px}.secret-box code{flex:1;overflow-wrap:anywhere}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.wide{grid-column:1/-1}.summary{margin-top:14px;color:#4e477c}.generated{margin-top:22px}.generated textarea{margin-top:12px;font-family:Consolas,monospace;line-height:1.6}.filters{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;align-items:end}.filters button{margin-top:16px}.table-scroll{max-height:650px;overflow:auto;margin-top:16px;border:1px solid var(--line);border-radius:13px}table{width:100%;border-collapse:collapse;min-width:900px}th,td{padding:12px 10px;text-align:left;border-bottom:1px solid var(--line);font-size:13px;vertical-align:top}th{position:sticky;top:0;background:#f7f8fb;color:var(--muted);z-index:1}.badge{display:inline-flex;border-radius:999px;padding:4px 8px;background:#eceef3;font-size:12px;font-weight:800}.badge.available{background:#e4f4ed;color:#1e7357}.badge.exhausted,.badge.revoked,.badge.expired{background:#f7e6e9;color:#a13747}.badge.reserved{background:#fff0cf;color:#8a6516}.row-actions{display:flex;flex-wrap:wrap;gap:5px}.row-actions button{min-height:34px;padding:5px 8px;font-size:12px}.danger{background:#fae9eb;color:var(--danger)}.pager{justify-content:center;margin-top:14px}.event-list{max-height:620px;overflow:auto;margin-top:14px}.event{padding:11px 0;border-bottom:1px solid var(--line);font-size:13px}.event strong{display:block}.event span{color:var(--muted)}@media(max-width:980px){.stats{grid-template-columns:repeat(3,1fr)}.form-grid,.filters{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.shell{width:calc(100% - 18px);padding-top:15px}.two-columns{grid-template-columns:1fr}.topbar{align-items:flex-start}.stats{grid-template-columns:repeat(2,1fr)}.panel{padding:17px}.form-grid,.filters{grid-template-columns:1fr}.wide{grid-column:auto}.panel-heading{align-items:flex-start;flex-direction:column}.tabs{top:3px}}
