:root{font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;color:#18302b;background:#f3f7f5;line-height:1.45}
*{box-sizing:border-box}
body{margin:0}
.hidden{display:none!important}
.boot{min-height:100vh;display:grid;place-items:center;color:#56716a}
.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}
aside{background:#082f29;color:#e9fff8;padding:26px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{display:flex;gap:12px;align-items:center;margin-bottom:30px}
.brand>span{width:44px;height:44px;border-radius:14px;background:#79e0b9;color:#07372c;display:grid;place-items:center;font-weight:800;font-size:20px}
.brand b,.brand small{display:block}
.brand small{font-size:9px;letter-spacing:2px;color:#91b7ac;margin-top:3px}
nav{display:grid;gap:5px}
nav button{border:0;background:transparent;color:#b8d5cd;text-align:left;padding:12px 14px;border-radius:12px;font-size:14px;cursor:pointer}
nav button:hover,nav button.active{background:#10483f;color:#fff}
.account{margin-top:auto;border-top:1px solid #245047;padding:18px 8px 0;display:flex;justify-content:space-between;align-items:center}
.link{background:none!important;border:0!important;color:#91cabb!important;padding:0!important}
main{padding:42px;min-width:0}
header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}
.header-actions{display:flex;align-items:center;gap:12px}
h1{font-size:34px;margin:0}
.eyebrow{font-size:11px;letter-spacing:2px;color:#1d916e;font-weight:700;margin:0 0 4px}
button,.button{border:1px solid #d5e2dd;border-radius:10px;background:#fff;color:#173b32;padding:10px 16px;cursor:pointer}
button.primary,.button.primary{background:#138664;color:#fff;border-color:#138664}
button.danger{color:#a33838;border-color:#efc7c7}
.provider-status{border:0;background:transparent;padding:4px 2px;color:#58736b;font-size:12px}
.provider-status.bound{cursor:default;color:#71847e}
.notice{padding:12px 16px;border-radius:10px;margin-bottom:18px;background:#e3f7ef;color:#17654e}
.notice.error{background:#fff0ef;color:#a43e35}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.card{background:#fff;border:1px solid #e5ece9;border-radius:16px;padding:20px;box-shadow:0 8px 30px rgba(22,64,53,.05);margin-bottom:16px}
.card h2{font-size:18px;margin:0 0 14px}
.metric strong{display:block;font-size:26px}
.metric small,.muted{color:#71847e}
form{display:grid;gap:12px}
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
label{font-size:13px;color:#526c65;display:grid;gap:6px}
input,select,textarea{width:100%;border:1px solid #d8e2de;border-radius:10px;padding:10px 12px;background:#fff;color:#18302b}
textarea{min-height:88px;resize:vertical}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.login-card{width:min(620px,calc(100vw - 32px));padding:32px;color:#18302b}
.login-card h1{margin-bottom:12px}
.login-steps{margin:20px 0;padding-left:22px;color:#526c65;line-height:1.9}
.login-hint{margin:16px 0 0}
.error-text{color:#a43e35}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{padding:11px 10px;border-bottom:1px solid #edf1ef;text-align:left;white-space:nowrap}
th{color:#657a74;background:#f7faf9}
.pill{display:inline-block;padding:3px 8px;border-radius:99px;background:#eaf5f1;color:#1a755a;font-size:12px}
.code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.empty{padding:30px;text-align:center;color:#71847e}
.package-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.package{border:1px solid #dce7e3;border-radius:14px;padding:18px}
.package strong{font-size:25px;display:block}
.department-list{display:grid;gap:10px}.department-row{display:grid;grid-template-columns:minmax(180px,1fr) auto auto auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid #e3ece8;border-radius:12px;background:#fbfdfc}.department-row input{max-width:420px}.department-row small{color:#8a9b95}.policy-editor{background:linear-gradient(135deg,#f8fffc,#fff);border-color:#cfe9de}.policy-editor form{margin-top:16px}.policy-editor label{background:#fff;padding:12px;border:1px solid #e4eeea;border-radius:12px}.policy-editor input,.policy-editor select{margin-top:2px}
.quota-rules{padding:24px}.quota-rule-list{display:grid;gap:14px;margin-top:18px}.quota-rule{border:1px solid #dceae5;border-radius:14px;background:#fff;padding:18px}.quota-rule-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid #edf3f0;padding-bottom:12px}.quota-rule-head strong{font-size:17px}.quota-rule-head p{margin:3px 0 0}.rule-index{display:inline-grid;place-items:center;width:26px;height:26px;margin-right:9px;border-radius:50%;background:#dff6eb;color:#138664;font-weight:700}.quota-rule-form{margin-top:14px}.quota-rule-form .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.quota-rule-form small{font-size:11px}@media(max-width:1100px){.quota-rule-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.stack{display:grid;gap:16px}
dialog{width:min(460px,calc(100vw - 32px));border:1px solid #dce7e3;border-radius:16px;padding:22px;color:#18302b;box-shadow:0 24px 70px rgba(8,47,41,.25)}
dialog::backdrop{background:rgba(8,47,41,.35)}
.dialog-title{display:flex;justify-content:space-between;align-items:center}
.dialog-title h2{margin:0}
.dialog-title button{border:0;padding:4px 8px;font-size:22px}
@media(max-width:900px){.shell{grid-template-columns:1fr}aside{position:relative;height:auto}.account{margin-top:20px}main{padding:22px}.grid,.package-grid,.form-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.grid,.package-grid,.form-grid{grid-template-columns:1fr}.header-actions{align-items:flex-end;flex-direction:column}header{align-items:flex-start}h1{font-size:28px}}
.add-rule-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px;background:#f7fcfa;border:1px dashed #b8ddd0;border-radius:12px;margin:18px 0}.member-quota-list{display:grid;gap:14px}.member-quota{border:1px solid #dceae5;border-radius:14px;padding:18px;background:#fff}.member-quota-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.member-quota-head strong,.member-quota-head small{display:block}.member-quota-head small{color:#71847e;margin-top:3px}.member-quota-form .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:1100px){.add-rule-form,.member-quota-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.member-quota-form{display:grid;gap:12px;margin-top:14px}.member-quota-form label{background:#fff;padding:10px;border:1px solid #e4eeea;border-radius:10px}.member-quota-form input,.member-quota-form select{margin-top:3px}
