:root{font-family:Inter,"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:#202b40;background:#f5f7fb;font-synthesis:none;font-size:14px;line-height:1.6;--accent:#2459db;--muted:#6c7890;--line:#e5eaf2}
*{box-sizing:border-box}body{margin:0}[hidden]{display:none!important}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:white;border-radius:8px;padding:9px 15px;color:#35445e;white-space:nowrap}button:hover{border-color:#adc0ec;background:#f5f8ff}button:disabled{opacity:.55;cursor:wait}button.primary{background:var(--accent);border-color:var(--accent);color:white}button.primary:hover{background:#1949bd}button.quiet{background:transparent}button:focus-visible,a:focus-visible{outline:3px solid #8aaefa;outline-offset:3px}input,select,textarea{width:100%;border:1px solid #d7dfea;background:white;border-radius:8px;padding:10px 12px;color:#202b40}input:focus,select:focus,textarea:focus{outline:2px solid #b9cdfd;border-color:#668ce7}label{display:block;font-weight:500;margin:15px 0}label input,label select,label textarea{display:block;margin-top:7px}textarea{resize:vertical;min-height:86px}.muted,.fine{color:var(--muted)}.fine{font-size:12px}.eyebrow{font-size:11px;letter-spacing:.14em;font-weight:700;color:#7d8aa2;margin:0 0 7px}.brand{display:flex;align-items:center;gap:12px;font-weight:700;color:var(--accent);font-size:25px}.brand>span{font-size:19px;color:#202b40;line-height:1.25}.brand small{display:block;font-size:11px;color:var(--muted);font-weight:400;margin-top:5px}
.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:white}.login-intro{padding:65px 12%;background:linear-gradient(145deg,#eef3ff,#f3f8ff 60%,#e6f4f1);display:flex;flex-direction:column;justify-content:center;position:relative}.login-intro .brand{position:absolute;top:45px}.login-intro h1{font-size:clamp(36px,4vw,58px);line-height:1.3;letter-spacing:-.04em;margin:14px 0 24px}.login-intro>p:not(.eyebrow){color:#62718c;max-width:330px;font-size:16px}.intro-note{margin-top:70px;color:#6f819f;font-size:12px;letter-spacing:.12em}.login-card{width:min(380px,85%);margin:auto;padding:60px 0}.login-card h2{font-size:27px;margin:7px 0}.login-card .primary{width:100%;margin:12px 0}.login-card .fine{text-align:center;margin-top:24px}.error{color:#b93142;font-size:13px;min-height:20px}.notice{position:fixed;z-index:100;top:20px;left:50%;transform:translateX(-50%);padding:12px 22px;background:#23334e;color:white;border-radius:10px;box-shadow:0 6px 28px #1a2b4822;max-width:90vw}
.workspace{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:white;border-right:1px solid var(--line);padding:32px 22px;display:flex;flex-direction:column}.sidebar .brand{margin:0 10px 46px}.nav-label{color:#98a2b4;font-size:11px;padding:0 15px;letter-spacing:.1em}nav{display:grid;gap:6px}nav a{display:block;padding:11px 15px;border-radius:8px;font-weight:500;color:#65738c}nav a:hover{background:#f6f8fc}nav a.active{background:#edf2ff;color:var(--accent)}.sidebar-foot{margin-top:auto;font-size:12px;color:#7c8aa0;padding:12px}.dot{display:inline-block;background:#32ab8a;width:6px;height:6px;border-radius:50%;margin-right:8px}.main{padding:35px 44px;min-width:0}header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}header h1{font-size:26px;margin:0;font-weight:650;letter-spacing:-.04em}.user-controls{display:flex;gap:8px;align-items:center;color:#6c7890;font-size:12px}.user-controls>span{margin-right:10px}.error-banner{border:1px solid #f4cfcd;background:#fff4f2;color:#ad3b36;padding:14px 18px;border-radius:10px;margin-bottom:20px}
.hero{background:#233d78;color:white;border-radius:14px;padding:28px 32px;margin-bottom:24px;display:flex;align-items:center;justify-content:space-between;gap:25px}.hero h2{margin:3px 0 9px;font-size:23px;font-weight:600}.hero p{margin:0;color:#bfcff2;max-width:620px}.hero .eyebrow{color:#90afea}.hero .primary{background:#f5f8ff;color:#244a99;border-color:transparent}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:24px}.metric{background:white;border:1px solid var(--line);border-radius:12px;padding:21px 24px}.metric span{color:var(--muted);font-size:12px}.metric strong{display:block;font-size:34px;font-weight:600;line-height:1.4;margin-top:7px;letter-spacing:-.05em}.metric small{display:block;color:#8b97ac;margin-top:4px}.panel{background:white;border:1px solid var(--line);border-radius:12px;padding:24px;margin-bottom:22px}.panel h2{font-size:16px;margin:0 0 15px}.panel p{color:var(--muted)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.panel-head h2{margin:0}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.toolbar input{width:240px}.toolbar select{width:130px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{font-size:12px;font-weight:500;color:#8894a8;background:#f8faff;padding:13px 12px;border-bottom:1px solid var(--line)}td{padding:15px 12px;border-bottom:1px solid #eff2f7;font-size:13px}tr:last-child td{border-bottom:0}td .sub{display:block;color:#8a96aa;font-size:11px}td button{font-size:12px;padding:5px 12px}.badge{display:inline-block;border-radius:5px;padding:3px 8px;font-size:11px;background:#eaf7f0;color:#288963}.badge.muted{background:#f0f2f6;color:#7d889a}.empty{padding:60px 20px;text-align:center;color:var(--muted);white-space:normal}.empty strong{display:block;color:#41526d;font-size:16px;margin-bottom:8px}.pager{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:20px;font-size:12px;color:var(--muted)}.split{display:grid;grid-template-columns:1fr 1fr;gap:20px}.step{display:flex;gap:15px;padding:14px 0;border-bottom:1px solid #f0f3f8}.step:last-child{border-bottom:0}.step b{display:flex;align-items:center;justify-content:center;background:#edf3ff;color:#4771ce;width:30px;height:30px;border-radius:8px;flex-shrink:0}.step strong{font-weight:500}.step p{margin:3px 0 0;font-size:12px}footer{margin-top:38px;display:flex;justify-content:space-between;gap:12px;color:#97a1b2;font-size:11px}
dialog{border:1px solid var(--line);border-radius:14px;width:min(520px,94vw);padding:26px;box-shadow:0 20px 90px #1a2b4840;max-height:90vh}dialog::backdrop{background:#18233866}.dialog-heading{display:flex;justify-content:space-between;align-items:center}.dialog-heading h2{font-size:19px;margin:0}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.loading{padding:80px;text-align:center;color:#8490a5}
.license-editor{width:min(760px,94vw)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.form-grid label{min-width:0}.license-facts{margin:20px 0}.license-facts>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;border-bottom:1px solid var(--line);padding:10px 0}.license-facts dt{color:var(--muted)}.license-facts dd{margin:0;overflow-wrap:anywhere}.row-actions{white-space:normal;min-width:180px;max-width:280px}.row-actions button{margin:3px}.customer-picker{display:flex;gap:8px;margin:18px 0}.lifecycle-metrics{margin-bottom:0}.lifecycle-metrics .metric{background:#f8faff}.license-editor input[readonly]{background:#f6f8fc}
@media(max-width:520px){.form-grid{grid-template-columns:1fr}.license-facts>div{grid-template-columns:80px minmax(0,1fr)}.customer-picker{flex-wrap:wrap}.customer-picker button{width:100%}}
@media(max-width:1100px){.main{padding:30px 25px}.workspace{grid-template-columns:200px minmax(0,1fr)}.sidebar{padding:28px 14px}.metrics{gap:12px}.metric{padding:18px}.user-controls>span{display:none}}
@media(max-width:760px){.workspace{display:block}.sidebar{position:relative;height:auto;padding:15px 18px;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand{margin:0 0 16px;font-size:22px}.brand>span{font-size:16px}.sidebar nav{display:flex;overflow:auto;gap:5px}.sidebar nav a{padding:8px 11px;white-space:nowrap;font-size:12px}.sidebar .nav-label,.sidebar-foot{display:none}.main{padding:22px 16px}header{align-items:flex-start;gap:10px}header h1{font-size:22px}.user-controls{gap:4px}.user-controls button{padding:7px 9px;font-size:11px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.metric strong{font-size:29px}.hero{padding:23px;display:block}.hero button{margin-top:18px}.hero h2{font-size:21px}.split{display:block}.panel{padding:17px}.panel-head{align-items:flex-start;flex-direction:column}.toolbar{width:100%}.toolbar input{width:100%}.login-wrap{display:block;min-height:100vh}.login-intro{padding:75px 30px 30px}.login-intro .brand{top:23px}.login-intro h1{font-size:32px;margin:6px 0 10px}.login-intro h1 br{display:none}.login-intro .eyebrow,.intro-note{display:none}.login-intro>p:not(.eyebrow){font-size:13px;margin:0}.login-card{padding:30px 0}footer{display:block}footer span{display:block;margin-top:6px}}
