:root{font-family:Inter,"Microsoft YaHei",system-ui,sans-serif;color:#292335;background:#f7f5fa;font-size:14px;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:10px;padding:12px 18px;background:#eee8f6;color:#6d45ad}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid #b7a2ef;outline-offset:3px}input,textarea,select{border:1px solid #e4deed;border-radius:10px;padding:12px;background:#fff;color:#302b39;width:100%;outline-color:#9569d4}label{display:block;font-weight:600;line-height:1.8;margin:18px 0}label input,label select,label textarea{display:block;margin-top:7px}label small{font-size:12px;font-weight:400;color:#8a7f99}.primary{background:#7548c9;color:white;box-shadow:0 6px 14px #7345c51c}.secondary{background:#fff;border:1px solid #e4deed;color:#675678}.eyebrow{font-size:11px;letter-spacing:1.7px;font-weight:700;color:#9670c1}.muted{color:#8b8297;line-height:1.8}h1,h2,p{margin-top:0}h2{font-size:24px}.brand-symbol{display:inline-grid;place-items:center;width:43px;height:43px;border-radius:14px;background:linear-gradient(140deg,#b99adc,#8550c2);color:white;font-weight:700;box-shadow:inset 0 1px 2px #e4d1f7;font-size:22px}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-story{background:radial-gradient(ellipse at 10% 0,#78549d,transparent 70%),#332140;color:white;padding:12vh 8vw;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.login-story .eyebrow{margin:40px 0 24px;color:#c6a8e4}.login-story h1{font-size:clamp(28px,3vw,44px);line-height:1.6;letter-spacing:1px}.login-story>p:not(.eyebrow){color:#ccbad9;line-height:1.8}.version{color:#b4a0c3;font-size:12px;margin-top:70px}.login-card{max-width:520px;margin:auto;width:100%;padding:64px}.login-card h2{margin:18px 0}.code-row{display:flex;gap:10px;align-items:stretch}.code-row input{min-width:0;margin-top:0}.code-row button{flex-shrink:0}.login-card .primary{width:100%;margin-top:20px}.login-help{font-size:12px;line-height:1.8;color:#a296b0;margin-top:32px}.workspace{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.workspace[hidden],.login-shell[hidden],[hidden]{display:none!important}aside{background:#34273f;color:white;padding:32px 20px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px}.brand strong{font-size:17px}.brand small{display:block;color:#b5a4c2;font-size:11px;margin-top:5px}.nav-caption{font-size:11px;color:#9d8ca8;margin:48px 16px 16px}nav button{display:flex;align-items:center;gap:14px;color:#c0b1ca;background:none;width:100%;text-align:left;margin:7px 0;font-size:18px;padding:14px 17px}nav button span{font-size:14px}nav button.active{background:#765194;color:white;box-shadow:0 5px 14px #26183033}.sidebar-bottom{margin-top:auto;font-size:12px;overflow-wrap:anywhere}.sidebar-bottom span{display:block;padding:12px;color:#cbbbd5}.sidebar-bottom button{background:#493650;color:#cbbbd5;width:100%}.content{padding:44px clamp(24px,4vw,65px);min-width:0}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:36px}header h1{margin:10px 0 0;font-size:28px}.hero{background:linear-gradient(115deg,#f0e7f8,#eee8f3);padding:28px 32px;border-radius:18px;margin-bottom:26px;border:1px solid #e8deef}.hero h2{margin:8px 0 12px;font-size:22px}.hero p{margin-bottom:0;color:#82708f;line-height:1.8}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.stat,.card{background:#fff;border:1px solid #e9e2ee;border-radius:16px;padding:24px}.stat span{display:block;color:#92849e;margin-bottom:18px}.stat strong{font-size:30px;font-weight:600}.stat small{display:block;color:#a998b5;margin-top:12px}.card h2{font-size:18px}.cards{display:grid;grid-template-columns:1fr 1fr;gap:24px}.status-row{display:flex;justify-content:space-between;padding:16px 0;border-bottom:1px solid #f2edf5;gap:20px}.badge{display:inline-block;white-space:nowrap;padding:5px 9px;border-radius:7px;font-size:12px;background:#f1ecf8;color:#9574b2}.badge.good{background:#e8f5ef;color:#3e8864}.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:20px}.toolbar input{max-width:380px}.table-wrap{overflow:auto;background:white;border:1px solid #ebe3f1;border-radius:14px}table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:13px}th,td{padding:18px 16px;border-bottom:1px solid #eee8f4;text-align:left}th{color:#9985ac;font-weight:500;background:#fcfaff}td small{display:block;color:#a496ae;margin-top:6px;max-width:280px;white-space:normal;overflow-wrap:anywhere}td button{padding:8px 12px;margin-right:6px}td.details{white-space:normal;min-width:280px;max-width:420px;overflow-wrap:anywhere}.empty{padding:70px 20px;text-align:center;color:#a496ae}.pagination{display:flex;justify-content:flex-end;gap:15px;align-items:center;margin-top:18px;color:#92819f}.pagination button{padding:8px 15px}.hint{background:#eee8f4;border-radius:10px;padding:16px 20px;line-height:1.8;color:#816891;margin:20px 0}.package-row{display:grid;grid-template-columns:1.5fr 1fr 1fr auto;gap:12px;align-items:center;margin:12px 0}.package-row input{min-width:0}.package-row button{background:#f8ecee;color:#a36972}dialog{width:min(620px,90vw);border:1px solid #e7dcf0;border-radius:20px;padding:30px;color:#392746;box-shadow:0 20px 100px #2c173833}dialog::backdrop{background:#281c3966}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start}.dialog-head h2{margin:9px 0 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}textarea{min-height:80px;resize:vertical}#notice{position:fixed;z-index:100;top:20px;left:50%;transform:translateX(-50%);max-width:min(650px,90vw);padding:15px 24px;border-radius:12px;background:#392448;color:#fff;box-shadow:0 8px 28px #27153130;line-height:1.7}@media(max-width:1000px){.stats{grid-template-columns:1fr 1fr}.cards{grid-template-columns:1fr}.workspace{grid-template-columns:195px 1fr}.content{padding:30px 22px}.login-card{padding:35px}.login-story{padding:7vw}}@media(max-width:680px){.login-shell{display:block}.login-story{padding:30px}.login-story h1{font-size:25px}.login-story .eyebrow{margin:20px 0}.version{margin-top:15px}.workspace{display:block}aside{position:relative;height:auto;padding:20px}nav{display:flex;overflow:auto}nav button{width:auto;white-space:nowrap}.nav-caption,.sidebar-bottom{display:none}.stats{gap:10px}.stat{padding:16px}.stat strong{font-size:23px}.package-row{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}}
