:root{--bg:#10151c;--bg-soft:#161d26;--card:#1b2430;--card-nested:#202b39;--line:#2b3746;--text:#dce6f1;--text-dim:#8fa0b3;--accent:#4ea1ff;--ok:#3ecf8e;--warn:#f0b429;--bad:#ff6b6b;--mono:ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.6}h1,h2,h3,h4{margin:0;font-weight:600}.app{max-width:1280px;margin:0 auto;padding:20px 24px 48px}.app-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:12px;display:flex}.app-head h1{font-size:20px}.sub{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 0;display:flex}.tabs{flex-wrap:wrap;gap:6px;margin:14px 0 18px;display:flex}.tab{background:var(--bg-soft);border:1px solid var(--line);color:var(--text-dim);cursor:pointer;border-radius:6px;padding:7px 14px;font-size:13px}.tab:hover:not(:disabled){color:var(--text)}.tab-on{background:var(--accent);border-color:var(--accent);color:#08111c;font-weight:600}.tab:disabled{opacity:.4;cursor:not-allowed}.app-foot{border-top:1px solid var(--line);color:var(--text-dim);margin-top:28px;padding-top:12px;font-size:12px}.stack{flex-direction:column;gap:16px;display:flex}.grid{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:8px}.card-nested{background:var(--card-nested)}.card-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.card-head h3,.card-head h4{align-items:center;gap:8px;font-size:15px;display:flex}.card-body{flex-direction:column;gap:12px;padding:14px;display:flex}.sub-title{color:var(--text-dim);margin:4px 0 0;font-size:13px}.target-bar{background:var(--card);border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.muted{color:var(--text-dim);margin:0}.dim{color:var(--text-dim)}.hint{color:var(--text-dim);margin:0;font-size:12.5px}.mono{font-family:var(--mono);font-size:12.5px}.mono-sm{color:var(--text-dim);font-size:11.5px}.nowrap{white-space:nowrap}.badge{color:#bcd3ea;font-size:12px;font-family:var(--mono);background:#2a3a4d;border-radius:10px;padding:1px 8px;display:inline-block}.badge-ok{color:var(--ok);background:#3ecf8e29}.badge-bad{color:var(--bad);background:#ff6b6b29}.kv{color:var(--text-dim);flex-wrap:wrap;gap:18px;margin:0;display:flex}.kv strong{color:var(--text)}.kv-tight{gap:12px;font-size:12.5px}.banner{border:1px solid var(--line);background:var(--bg-soft);border-radius:6px;flex-wrap:wrap;align-items:center;gap:10px;padding:9px 12px;font-size:13px;display:flex}.banner-error{background:#ff6b6b14;border-color:#ff6b6b73}.banner-warn{background:#f0b42914;border-color:#f0b42966}.banner-code{font-family:var(--mono);color:var(--bad);white-space:nowrap;font-size:12px}.banner-text{flex:1}.banner-req{font-family:var(--mono);color:var(--text-dim);align-items:center;gap:6px;font-size:11.5px;display:flex}.notice{border-radius:6px;padding:8px 12px;font-size:13px}.notice-ok{color:var(--ok);background:#3ecf8e1a}.notice-bad{color:var(--bad);background:#ff6b6b1a}.btn{background:var(--bg-soft);border:1px solid var(--line);color:var(--text);cursor:pointer;border-radius:6px;padding:5px 12px;font-size:12.5px}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#08111c;font-weight:600}.btn-danger{color:var(--bad);border-color:#ff6b6b73}.btn-tiny{padding:1px 7px;font-size:11.5px}.form-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.form-wide{grid-column:1/-1}label{color:var(--text-dim);flex-direction:column;gap:4px;font-size:12.5px;display:flex}input,select{border:1px solid var(--line);color:var(--text);background:#0e141b;border-radius:6px;padding:7px 9px;font-family:inherit;font-size:13px}input:focus,select:focus{border-color:var(--accent);outline:none}.checkbox{color:var(--text);flex-direction:row;align-items:center;gap:6px}.form-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.filters{border-bottom:1px dashed var(--line);flex-wrap:wrap;align-items:flex-end;gap:10px;padding-bottom:4px;display:flex}.inline-select{flex-direction:row;align-items:center;gap:6px}.table{border-collapse:collapse;width:100%;font-size:12.5px}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:6px 8px}.table th{color:var(--text-dim);white-space:nowrap;font-weight:500}.table tbody tr:hover{background:#4ea1ff0f}.table tbody tr{cursor:pointer}.row-active{background:#4ea1ff1f}.row-actions{flex-wrap:wrap;gap:6px;display:flex}.pager{flex-wrap:wrap;align-items:center;gap:8px;padding-top:6px;display:flex}.pager-size{flex-direction:row;align-items:center;gap:6px}.meta-row{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;display:flex}.meta-req{font-family:var(--mono);align-items:center;gap:6px;display:flex}.quota-list{flex-direction:column;gap:7px;display:flex}.quota-row{grid-template-columns:62px 1fr auto auto;align-items:center;gap:10px;font-size:12.5px;display:grid}.quota-name{color:var(--text-dim)}.quota-num{font-family:var(--mono);white-space:nowrap}.quota-reset{color:var(--text-dim);font-family:var(--mono);white-space:nowrap}.bar{border:1px solid var(--line);background:#0e141b;border-radius:5px;height:8px;overflow:hidden}.bar-fill{background:var(--accent);height:100%}.bar-high .bar-fill{background:var(--warn)}.bar-full .bar-fill{background:var(--bad)}.detail-list{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:8px 18px;margin:0;display:grid}.detail-list div{border-bottom:1px dashed var(--line);align-items:baseline;gap:8px;padding-bottom:4px;display:flex}.detail-list dt{color:var(--text-dim);white-space:nowrap;font-size:12px}.detail-list dd{flex-wrap:wrap;align-items:center;gap:6px;margin:0;display:flex}
