:root{font-family:Inter,Microsoft YaHei,system-ui;color:#dbe8f8;background:#071019;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:1080px;background:radial-gradient(circle at 20% 0,#112c3e 0,transparent 32%),#071019}button,input{font:inherit}.boot{height:100vh;display:flex;align-items:center;justify-content:center;gap:12px;color:#7f9ab5}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-page{height:100vh;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;padding:8vw;background:linear-gradient(120deg,#0710192e,#071019f0)}.login-brand{padding:7vw}.brand-orb{display:grid;place-items:center;width:84px;height:84px;border:1px solid #32d4bd55;border-radius:28px;color:#43e4c9;background:#19bca315;box-shadow:0 0 60px #21c9ae28}.login-brand small,.login-card>small,header small,.welcome small{letter-spacing:.18em;color:#53d9c0}.login-brand h1{font-size:64px;margin:20px 0 8px}.login-brand h1 span{color:#4de0c4}.login-brand p{font-size:18px;color:#819ab3}.login-card{width:430px;padding:42px;border:1px solid #31475b;background:#0c1824e8;border-radius:22px;box-shadow:0 30px 90px #0008}.login-card h2{font-size:28px;margin:12px 0 6px}.login-card p{margin:0 0 28px;color:#71879b}.login-card label{display:grid;gap:8px;margin:16px 0;color:#9eb1c4;font-size:13px}.login-card input{padding:14px;border:1px solid #30475c;border-radius:10px;background:#07121c;color:#eef7ff;outline:none}.login-card input:focus{border-color:#34d9bd}.login-card button{width:100%;padding:14px;margin-top:12px;border:0;border-radius:10px;background:linear-gradient(135deg,#25c9ae,#158eae);color:#031416;font-weight:800;cursor:pointer}.error{color:#ff8e9a;font-size:13px}.console{height:100vh;display:grid;grid-template-columns:244px 1fr}.console>aside{display:flex;flex-direction:column;border-right:1px solid #1d3041;background:#09131de8;padding:24px 16px}.logo{display:flex;align-items:center;gap:12px;padding:0 8px 28px}.logo>span{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#2bd3b5;color:#052019;font-weight:900}.logo div{display:grid}.logo b{font-size:18px}.logo small{font-size:9px;letter-spacing:.16em;color:#668097}nav{display:grid;gap:6px}nav button{display:flex;align-items:center;gap:12px;padding:12px;border:0;border-radius:9px;background:transparent;color:#8298ac;cursor:pointer;text-align:left}nav button:hover,nav button.active{background:#183044;color:#51dec4}.admin{display:grid;grid-template-columns:36px 1fr 30px;align-items:center;gap:9px;margin-top:auto;padding:16px 8px 0;border-top:1px solid #1b2b3a}.admin>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#1c5c62}.admin div{display:grid}.admin small{font-size:10px;color:#668097}.admin button{border:0;background:transparent;color:#7891a7;cursor:pointer}.workspace{overflow:auto;padding:30px 34px}.workspace>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.workspace h1{margin:5px 0;font-size:29px}.header-actions{display:flex;gap:10px}.header-actions label{display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid #263b4e;border-radius:9px;background:#0c1925}.header-actions input{width:210px;padding:10px 0;border:0;outline:0;background:transparent;color:#dce8f5}.header-actions button,.row-action{display:flex;align-items:center;gap:7px;padding:10px 13px;border:1px solid #284458;border-radius:9px;background:#102331;color:#9fb8ca;cursor:pointer}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat-grid article{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;padding:22px;border:1px solid #203548;border-radius:15px;background:linear-gradient(145deg,#0d1c29,#0a1621)}.stat-grid svg{grid-row:1/3;color:#42d5bc}.stat-grid span{color:#8297aa}.stat-grid strong{font-size:30px}.welcome{display:flex;align-items:center;gap:18px;margin-top:18px;padding:28px;border:1px solid #1d3d48;border-radius:15px;background:#0c232a}.welcome>span{display:grid;place-items:center;width:58px;height:58px;border-radius:17px;background:#23c5a71c;color:#45d9c0}.welcome h2{margin:5px 0}.welcome p{margin:0;color:#7f96aa}.table-card{border:1px solid #203548;border-radius:15px;overflow:hidden;background:#0a1722}table{width:100%;border-collapse:collapse}th{text-align:left;padding:14px 16px;background:#0e202d;color:#6f879b;font-size:11px;letter-spacing:.08em}td{padding:15px 16px;border-top:1px solid #182b3b;color:#a7bacb;font-size:13px}td b,td small{display:block}td small{color:#637b90;margin-top:4px}.status,.plan{display:inline-block;padding:4px 8px;border-radius:20px;background:#173249;color:#8db7d2;font-size:11px}.status.active{background:#123e38;color:#59dbc2}.status.suspended,.status.revoked{background:#43252d;color:#ff9bab}.row-action{padding:6px 10px;color:#61d8c3}.empty{padding:60px;text-align:center;color:#667e92}code{color:#67d8c3}.row-actions{display:flex;gap:7px}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;background:#02070dbd;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal{width:500px;max-height:88vh;overflow:auto;padding:28px;border:1px solid #2b455a;border-radius:18px;background:#0b1824;box-shadow:0 30px 100px #000c}.modal header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}.modal header h2{margin:5px 0 0}.modal header button{padding:7px;border:0;background:transparent;color:#8198ab;cursor:pointer}.modal label{display:grid;gap:7px;margin:14px 0;color:#9eb1c4;font-size:13px}.modal input,.modal select{width:100%;padding:12px;border:1px solid #30475c;border-radius:9px;background:#07121c;color:#eef7ff;outline:none;font:inherit}.modal input:focus,.modal select:focus{border-color:#34d9bd}.modal footer{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.modal footer button{padding:10px 16px;border:1px solid #2b4356;border-radius:8px;background:#102331;color:#9fb8ca;cursor:pointer}.modal footer .primary{border:0;background:#2bc9af;color:#052019;font-weight:800}.modal footer button:disabled{opacity:.55;cursor:wait}.status.completed,.status.success{background:#123e38;color:#59dbc2}.status.running,.status.pending,.status.paused{background:#3b3517;color:#f2ce68}.status.failed,.status.error,.status.interrupted{background:#43252d;color:#ff9bab}.status.never{background:#263341;color:#93a5b5}.job-message{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.health-page{display:grid;gap:18px}.health-banner{display:flex;align-items:center;gap:18px;padding:24px;border:1px solid #245146;border-radius:15px;background:#0c2927;color:#54dec5}.health-banner.warning{border-color:#665321;background:#282412;color:#f0ca61}.health-banner h2{margin:5px 0;color:#e3eef7}.health-banner p{margin:0;color:#91a7b8}.health-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.health-grid article{display:grid;grid-template-columns:auto 1fr;gap:8px 13px;padding:20px;border:1px solid #203548;border-radius:14px;background:#0a1722;color:#43d6bc}.health-grid article div{display:grid;gap:4px;color:#8297aa}.health-grid strong{color:#e3eef7;font-size:25px}.health-grid progress{grid-column:1 / 3;width:100%;height:6px;accent-color:#35d1b6}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.service-grid article{padding:21px;border:1px solid #203548;border-radius:14px;background:#0a1722}.service-grid article>div{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.service-grid dl{display:grid;grid-template-columns:1fr auto;gap:10px;margin:0;font-size:13px}.service-grid dt{color:#70869a}.service-grid dd{margin:0;color:#bdcbd7}.expiry{margin-top:7px!important}.expiry.expiring{color:#f0ca61}.expiry.expired{color:#ff8e9a}.quota-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.security-note{padding:12px 14px;border:1px solid #2b4658;border-radius:9px;background:#0d2230;color:#91a8ba;font-size:13px;line-height:1.6}.totp-secret{display:block;padding:13px;border:1px dashed #3a6a6c;border-radius:8px;background:#07121c;color:#63dec7;font-size:16px;letter-spacing:.12em;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}
