:root{--bg:#f4f6f8;--panel:#fff;--text:#18202a;--muted:#687481;--line:#e3e8ed;--dark:#171c22;--green:#138a5b;--green-bg:#e9f7f0;--red:#c43c45;--red-bg:#fcecef;--amber:#a96c12;--amber-bg:#fff5dc;--shadow:0 16px 45px rgba(25,37,48,.12)}*{box-sizing:border-box}body{margin:0;font-family:"Microsoft YaHei UI","Microsoft YaHei",system-ui,sans-serif;color:var(--text);background:var(--bg);font-size:14px;letter-spacing:0}.hidden{display:none!important}button,input,select{font:inherit;letter-spacing:0}button{cursor:pointer}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(300px,1fr) minmax(440px,640px);background:#eef2f4}.login-brand{padding:50px;display:flex;gap:13px;align-items:flex-start;background:linear-gradient(145deg,#171c22,#26313b);color:#fff}.login-brand>div:last-child,.brand>div:last-child{display:flex;flex-direction:column}.login-brand strong{font-size:20px}.login-brand span,.brand span{color:#9da9b3;margin-top:3px}.brand-mark{width:42px;height:42px;border-radius:8px;background:#f4c64e;color:#1b2026;display:grid;place-items:center;font-size:21px;font-weight:800;flex:none}.login-panel{align-self:center;margin:40px auto;width:min(390px,calc(100% - 56px));background:#fff;padding:38px;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px}.eyebrow{color:var(--green);font-weight:700}.login-panel h1{font-size:28px;margin:8px 0}.login-panel p{color:var(--muted);margin:0 0 28px}.login-panel label,.modal-card label{display:flex;flex-direction:column;gap:8px;font-weight:600;margin:16px 0}.login-panel input,.modal-card input,.search input,select{height:42px;border:1px solid #cfd6dc;border-radius:6px;padding:0 12px;outline:none;background:#fff}.login-panel input:focus,.modal-card input:focus,.search:focus-within,select:focus{border-color:#2e8c69;box-shadow:0 0 0 3px rgba(46,140,105,.12)}.primary,.secondary,.quiet,.icon-btn{border:0;border-radius:6px;height:38px;padding:0 15px}.primary{background:var(--dark);color:#fff;font-weight:600}.primary:hover{background:#2a333c}.full{width:100%;margin-top:8px}.secondary{background:#fff;border:1px solid #cfd6dc;color:#29333c}.quiet{background:transparent;color:#aeb8c0;padding:0}.form-error{color:var(--red);min-height:22px;margin-top:10px}.login-panel small{display:block;text-align:center;color:#89939c;margin-top:18px}.app{min-height:100vh;display:grid;grid-template-columns:228px 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:228px;background:var(--dark);color:#fff;padding:22px 16px;display:flex;flex-direction:column}.brand{display:flex;gap:11px;align-items:center;padding:0 8px 25px}.brand .brand-mark{width:36px;height:36px;font-size:18px}.brand strong{font-size:16px}.brand span{font-size:12px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.nav-item{height:42px;text-align:left;border:0;border-radius:6px;color:#aeb8c0;background:transparent;padding:0 13px}.nav-item span{display:inline-block;width:26px;font-size:17px}.nav-item:hover,.nav-item.active{color:#fff;background:#2b333b}.sidebar-foot{margin-top:auto;border-top:1px solid #303840;padding:16px 9px 0}.service{display:flex;align-items:center;gap:8px;color:#c4ccd2;font-size:12px}.service i{width:8px;height:8px;background:#43c482;border-radius:50%}.sidebar-foot .quiet{margin-top:8px}main{grid-column:2;padding:0 34px 40px;max-width:1600px;width:100%}header{height:92px;display:flex;align-items:center;justify-content:space-between}header h1{font-size:23px;margin:0 0 5px}header p{margin:0;color:var(--muted)}.admin-chip{display:flex;align-items:center;gap:9px}.admin-chip>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#dfe8e3;color:#276d51;font-weight:700}.admin-chip div{display:flex;flex-direction:column}.admin-chip small{color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stats article{background:#fff;border:1px solid var(--line);border-radius:7px;padding:17px 19px;display:flex;flex-direction:column;gap:9px}.stats span{color:var(--muted)}.stats strong{font-size:25px}.toolbar{display:flex;gap:10px;margin-bottom:12px}.search{height:42px;border:1px solid #cfd6dc;border-radius:6px;background:#fff;display:flex;align-items:center;padding-left:12px;flex:1;max-width:360px}.search span{font-size:20px;color:#7e8992}.search input{border:0;box-shadow:none!important;width:100%}.toolbar select{min-width:130px}.toolbar .primary{height:42px;margin-left:auto}.table-panel{background:#fff;border:1px solid var(--line);border-radius:7px;overflow:hidden}table{width:100%;border-collapse:collapse}th{height:43px;text-align:left;font-size:12px;color:#6d7882;background:#f8f9fa;border-bottom:1px solid var(--line);padding:0 16px;font-weight:600}td{height:64px;border-bottom:1px solid #edf0f2;padding:9px 16px;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfcfc}.right{text-align:right}.key-cell{display:flex;flex-direction:column;gap:5px}.key-cell b{font-size:14px}.key-value{display:flex;align-items:center;gap:7px;color:#66727c;font-family:Consolas,monospace;font-size:12px}.copy-mini{border:0;background:transparent;color:#53616c;padding:0}.badge{display:inline-flex;height:25px;align-items:center;border-radius:20px;padding:0 9px;font-size:12px;font-weight:600}.badge.active,.badge.success{color:var(--green);background:var(--green-bg)}.badge.disabled,.badge.failure{color:var(--red);background:var(--red-bg)}.badge.expired{color:var(--amber);background:var(--amber-bg)}.muted{color:var(--muted);font-size:12px}.actions{display:flex;justify-content:flex-end;gap:5px}.actions button{height:30px;border:1px solid #d6dce1;background:#fff;border-radius:5px;padding:0 9px;color:#4d5963}.actions button:hover{background:#f1f4f5}.actions .danger{color:var(--red)}.empty{min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#84909a;gap:7px}.empty div{font-size:30px}.empty b{color:#44505a}.panel-head{height:67px;padding:0 17px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.panel-head div{display:flex;flex-direction:column;gap:5px}.panel-head span{color:var(--muted);font-size:12px}.modal{position:fixed;inset:0;background:rgba(16,22,27,.45);display:grid;place-items:center;padding:20px;z-index:10}.modal-card{width:min(460px,100%);background:#fff;border-radius:8px;box-shadow:var(--shadow);padding:23px}.modal-head{display:flex;justify-content:space-between}.modal-head h2{margin:0;font-size:20px}.modal-head p{margin:6px 0 0;color:var(--muted)}.icon-btn{width:34px;padding:0;background:#f0f2f3;font-size:22px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}.toast{position:fixed;right:24px;bottom:24px;z-index:20;background:#182028;color:#fff;padding:12px 16px;border-radius:6px;box-shadow:var(--shadow);max-width:360px}.toast.error{background:#9f313a}@media(max-width:900px){.app{grid-template-columns:72px 1fr}.sidebar{width:72px;padding:20px 10px}.brand>div:last-child,.nav-item:not(.active){font-size:0}.brand{padding:0 8px 25px}.nav-item{padding:0;text-align:center}.nav-item span{width:auto}.sidebar-foot{padding:14px 0}.service span,.sidebar-foot .quiet{display:none}main{grid-column:2;padding:0 18px 30px}.stats{grid-template-columns:repeat(2,1fr)}.toolbar{flex-wrap:wrap}.search{max-width:none}.toolbar .primary{margin-left:0}table{min-width:850px}.table-panel{overflow:auto}}@media(max-width:640px){.login-shell{display:block;padding-top:1px}.login-brand{padding:22px}.login-panel{margin:28px auto;padding:25px}.stats{grid-template-columns:1fr 1fr}header{height:82px}.admin-chip{display:none}}
