:root{--bg: #f8fafc;--panel: #ffffff;--line: #dbe3f0;--text: #1e3a8a;--text-main: #0f172a;--muted: #64748b;--primary: #1e40af;--secondary: #3b82f6;--accent: #f59e0b;--danger: #dc2626;--ok: #16a34a}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:Fira Sans,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:var(--text-main);background:radial-gradient(circle at 5% 0%,#e8eefc,#f8fafc 45%),radial-gradient(circle at 90% 100%,#eaf2ff,#f8fafc 40%)}body.main-view-active{overflow:hidden}#app{height:100%}h1,h2,h3,.card-title,.brand-title,.top-title{font-family:Fira Code,monospace}.hidden{display:none!important}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login-panel{width:min(460px,100%);background:#ffffffe6;border:1px solid #d8e2f3;border-radius:14px;box-shadow:0 14px 30px #1e40af17;padding:18px}.login-panel h1{margin:0;font-size:22px;color:var(--text)}.login-panel p{margin:8px 0 12px;color:var(--muted);font-size:13px}.login-form{display:grid;gap:7px}#mainView{display:grid;grid-template-columns:230px 1fr;height:100vh;overflow:hidden}.sidebar{border-right:1px solid #d8e2f3;background:linear-gradient(180deg,#f4f8ff,#fafdff);padding:12px;height:100vh;overflow:hidden;display:flex;flex-direction:column;position:sticky;top:0}.brand{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px;margin-bottom:10px}.brand-title{color:var(--text);font-size:16px;font-weight:700}.brand-sub{color:var(--muted);margin-top:4px;font-size:12px}.side-search{margin-bottom:10px;flex:0 0 auto}.nav-list{display:grid;gap:6px;flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:2px}.nav-group-title{font-size:11px;color:#64748b;padding:2px 8px;letter-spacing:.08em;text-transform:uppercase;grid-column:1 / -1;-webkit-user-select:none;user-select:none}.nav-divider{height:1px;background:#dbe3f0;margin:2px 4px;grid-column:1 / -1}.nav-item{height:34px;border-radius:10px;border:1px solid #d5deef;background:#fff;text-align:left;padding:0 12px;font-size:13px;color:#1e293b;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}.nav-item:hover,.nav-item:focus-visible{background:#eef4ff;border-color:#bfd0f8;outline:none}.nav-item.active{background:linear-gradient(90deg,#e8f0ff,#f1f6ff);border-color:#9cb9f7;color:#1543aa;font-weight:600}.workspace{display:grid;grid-template-rows:auto 1fr;min-width:0;height:100vh;overflow:hidden}.topbar{border-bottom:1px solid var(--line);padding:10px 12px;display:flex;justify-content:space-between;align-items:center;background:#ffffffc7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:4}.top-title{font-size:17px;color:var(--text)}.top-sub{margin-top:2px;color:var(--muted);font-size:12px}.top-actions{display:flex;gap:8px;align-items:center}.global-search{width:260px}.pill{border:1px solid var(--line);background:#fff;padding:4px 9px;border-radius:999px;font-size:12px}.pill.active{border-color:#86efac;background:#f0fdf4;color:#166534}.content{padding:10px;display:grid;gap:10px;min-height:0;overflow-y:auto}.tab-pane{display:none;gap:10px}.tab-pane.active{display:grid}.card{border:1px solid #dce5f5;background:#fff;border-radius:12px;padding:10px;box-shadow:0 6px 18px #0f172a0d}.card-title{font-size:13px;margin:0 0 8px;color:#1f3d97}details.card>summary{cursor:pointer;list-style:none}details.card>summary::-webkit-details-marker{display:none}details.card[open]>summary{margin-bottom:8px}.grid{display:grid;gap:10px}.grid.two{grid-template-columns:1fr 1fr}.software-grid{align-items:start}.software-col{display:grid;gap:10px;align-content:start}.cred-grid{display:grid;gap:6px;margin-top:8px}.cred-row{display:grid;grid-template-columns:88px 1fr auto;gap:6px;align-items:center}.cred-row input[readonly]{background:#f8fbff}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.metric{border:1px solid #e4ebf7;border-radius:10px;padding:8px;background:#fbfdff}.metric .k{color:var(--muted);font-size:11px}.metric .v{color:#1e3a8a;font-size:18px;margin-top:4px;font-weight:700}.toolbar,.form-grid.compact{display:flex;flex-wrap:wrap;gap:6px}.dashboard-tabs .btn.active{border-color:#9cb9f7;background:linear-gradient(90deg,#e8f0ff,#f1f6ff);color:#1543aa;font-weight:600}.form-grid{display:grid;gap:8px}.config-form.form-grid.compact,.cardtype-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.duration-triplet{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto;gap:4px;align-items:center}.duration-triplet span{color:var(--muted);font-size:12px}.config-form .form-item{display:grid;gap:4px;min-width:0}.config-form .form-item.full{grid-column:1 / -1}.config-form .config-section{border-top:1px solid #e4ebf7;margin-top:2px;padding-top:6px}.config-form .config-section:first-child{border-top:0;margin-top:0;padding-top:0}.config-section-title{font-size:12px;font-weight:700;color:#1e3a8a;letter-spacing:.02em}input,select,textarea,.btn{min-height:34px;border-radius:9px;border:1px solid #d5dfef;background:#fff;font-size:12px;padding:6px 10px;color:#0f172a}textarea{min-height:108px;resize:vertical;font-family:Fira Code,monospace;line-height:1.4}#cfgRemoteJs{min-height:140px;flex:1 1 100%;width:100%}.cfg-actions{display:flex;align-items:center;gap:6px;width:100%;grid-column:1 / -1}.cfg-actions .btn{min-height:30px;padding:4px 10px;width:auto;flex:0 0 auto}input::placeholder,textarea::placeholder{color:#94a3b8}.btn{cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}.btn:hover,.btn:focus-visible{background:#eff5ff;border-color:#abc2f4;outline:none}.btn-primary{border-color:var(--primary);background:linear-gradient(90deg,var(--primary),var(--secondary));color:#fff}.btn-primary:hover,.btn-primary:focus-visible{filter:brightness(.97);background:linear-gradient(90deg,var(--primary),var(--secondary))}.btn:disabled,input:disabled,select:disabled,textarea:disabled{opacity:.5;cursor:not-allowed}.btn-danger{border-color:#fecaca;color:#b91c1c;background:#fff5f5}table{width:100%;border-collapse:collapse;font-size:12px}.table-wrap{max-height:320px;overflow:auto;border:1px solid #e8eef9;border-radius:10px}.table-wrap.superadmin-list{max-height:none;overflow:visible}.table-wrap.tall{max-height:500px}.chart-wrap{height:280px}th,td{border-bottom:1px solid #edf1f8;padding:8px 6px;text-align:left;vertical-align:top}#tab-cards th.col-card-key,#tab-cards td.col-card-key{width:220px;min-width:190px;max-width:280px;padding-right:4px}#tab-cards th.col-card-type,#tab-cards td.col-card-type{width:132px;min-width:116px;max-width:160px;padding-left:4px}#tab-cards th.col-card-remark,#tab-cards td.col-card-remark{min-width:160px;max-width:260px}#tab-cards td.col-card-key,#tab-cards td.col-card-type{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#tab-cards td.col-card-remark{word-break:break-all}th{background:#f8fbff;color:#3f4f7a;font-weight:600;position:sticky;top:0;z-index:1}tr:hover td{background:#f9fbff}tbody tr:nth-child(2n) td{background:#fcfdff}.action-wrap{display:flex;flex-wrap:wrap;gap:4px}.inline-select{min-height:28px;min-width:110px;padding:2px 8px;font-size:12px}.mu-membership{display:grid;gap:4px;min-width:220px}.mu-membership-current{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mu-membership-expire{color:#475569}.mu-membership-pending{padding-left:10px;border-left:2px solid #dbeafe;color:#475569}.mu-membership-empty{color:#94a3b8}#memberUserRows td{vertical-align:middle}.tier-setting-toolbar{align-items:flex-end}.kv-field{display:grid;gap:4px;min-width:150px}.kv-field>span{font-size:12px;color:var(--muted)}.kv-field.kv-field-wide{min-width:320px;flex:1 1 360px}.rule-editor{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(180px,1fr) auto;gap:6px;align-items:center}.rule-list{display:grid;gap:6px}.rule-item{display:flex;align-items:center;gap:6px;border:1px solid #dfe8f8;border-radius:9px;background:#f8fbff;padding:6px 8px}.rule-key{color:#1e40af;font-weight:600}.rule-sep{color:#64748b}.rule-val{flex:1;color:#334155;word-break:break-all}.rule-item .btn{min-height:28px;padding:3px 10px}#btnInviteTreeModeTable.active,#btnInviteTreeModeTree.active{border-color:#9cb9f7;background:linear-gradient(90deg,#e8f0ff,#f1f6ff);color:#1543aa;font-weight:600}.invite-tree{border:1px solid #e8eef9;border-radius:10px;background:#fcfdff;padding:10px;max-height:420px;overflow:auto}.invite-tree-section+.invite-tree-section{margin-top:12px;padding-top:12px;border-top:1px dashed #dbe6f8}.invite-tree-section-title{margin-bottom:8px;color:#1e3a8a;font-size:12px;font-weight:600}.invite-tree-root{display:inline-flex;align-items:center;gap:8px;border:1px solid #dbe6f8;border-radius:999px;background:#f1f6ff;padding:4px 10px;margin-bottom:8px}.invite-tree-root span{color:#64748b;font-size:12px}.invite-tree-root strong{color:#1e40af;font-size:13px}.invite-tree ul{list-style:none;margin:0;padding-left:18px;border-left:1px dashed #c9d8f3}.invite-tree li{margin:8px 0}.invite-tree-node{display:inline-flex;align-items:center;gap:8px;border:1px solid #dbe6f8;border-radius:10px;background:#fff;padding:6px 10px}.invite-tree-node .id{color:#0f172a;font-weight:600}.invite-tree-node .meta{color:#64748b;font-size:12px}.kv-actions{display:flex;gap:6px;align-items:center}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;line-height:1.4;border:1px solid #dbe6f8;background:#f8fbff}.badge.active{color:#065f46;border-color:#a7f3d0;background:#ecfdf5}.badge.new{color:#1d4ed8;border-color:#bfdbfe;background:#eff6ff}.badge.frozen,.badge.revoked{color:#9a3412;border-color:#fdba74;background:#fff7ed}.badge.disabled{color:#475569;border-color:#cbd5e1;background:#f8fafc}.badge.expired{color:#991b1b;border-color:#fecaca;background:#fef2f2}.ops-grid{display:grid;gap:8px}.ops-grid.two-col{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.op-card{border:1px solid #e0e8f6;border-radius:10px;padding:8px;background:#fcfdff;transition:border-color .18s,box-shadow .18s,transform .18s}.op-card:hover{border-color:#b6caf3;box-shadow:0 8px 16px #1e40af14;transform:translateY(-1px)}.op-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;gap:8px}.op-name{font-size:12px;color:#1e3a8a;font-family:Fira Code,monospace}.op-meta{font-size:11px;color:#5f6f95}.op-row{display:flex;gap:6px;margin-bottom:6px}.op-row input{flex:1}.json{margin:0;background:#f8fbff;border:1px solid #e2eaf8;border-radius:10px;padding:10px;font-size:12px;font-family:Fira Code,monospace;line-height:1.4;white-space:pre-wrap;word-break:break-all}.subtext{margin:0 0 8px;color:var(--muted);font-size:12px}.helper{color:var(--muted);font-size:12px;margin-top:8px}.error{color:var(--danger);font-size:12px;min-height:18px}.fixed-alert{position:fixed;right:12px;bottom:12px;background:#fff8ea;border:1px solid #fcd9a7;color:#7c4a03;border-radius:10px;padding:8px 10px;max-width:420px;font-size:12px;z-index:8}.loading-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a33;display:grid;place-items:center;z-index:20}.loading-card{background:#fff;border:1px solid #dbe5f6;border-radius:12px;box-shadow:0 14px 28px #0f172a26;padding:14px 18px;display:flex;align-items:center;gap:10px;font-size:13px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a47;display:grid;place-items:center;z-index:24;padding:12px}.modal-card{width:min(380px,100%);border:1px solid #dbe5f6;border-radius:12px;background:#fff;box-shadow:0 14px 28px #0f172a2e;padding:10px;display:grid;gap:8px}.modal-card.modal-card-wide{width:min(520px,100%)}.modal-title{font-size:13px;color:#1f3d97;font-family:Fira Code,monospace}.create-user-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.create-user-tip{margin:0;grid-column:1 / -1}.create-user-form .modal-actions{grid-column:1 / -1}.modal-triplet input{min-height:30px;padding:4px 8px}.form-item-duration,.form-item-duration .duration-triplet{min-width:250px}.modal-actions{display:flex;justify-content:flex-end;gap:6px}.agent-ct-modal-card{width:min(1380px,99vw)}.agent-ct-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.agent-ct-inline-label{display:flex;align-items:center;gap:8px;white-space:nowrap}.agent-ct-inline-label input[type=number]{width:86px}.agent-ct-legend{margin-top:-2px;color:#475569}.agent-ct-table{min-width:1180px}.agent-ct-table th,.agent-ct-table td{white-space:nowrap;vertical-align:middle}.agent-ct-col-id,.agent-ct-col-name{max-width:none;overflow:visible;text-overflow:clip}.agent-ct-actions{display:flex;gap:4px;flex-wrap:nowrap}.agent-ct-actions .btn{min-height:28px;padding:2px 10px;white-space:nowrap}.agent-ct-quota{font-weight:600}.agent-ct-quota.unlimited{color:#0369a1}.agent-ct-quota.zero{color:#b45309}.credential-modal-card{width:min(1240px,98vw);max-height:88vh;overflow-y:auto;overflow-x:hidden;align-content:start;overscroll-behavior:contain}.credential-modal-card .modal-actions{position:sticky;bottom:0;background:#fff;padding-top:6px}.credential-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.credential-item{border:1px solid #dbe5f6;border-radius:10px;background:#f8fbff;padding:8px;display:grid;gap:4px}.credential-item.required{background:#fff7ed;border-color:#fdba74}.credential-item.full{grid-column:1 / -1}.credential-key{color:#475569;font-size:12px;display:flex;align-items:center;gap:6px}.credential-required-tag{display:inline-flex;align-items:center;border:1px solid #fdba74;background:#ffedd5;color:#9a3412;border-radius:999px;padding:0 6px;font-size:10px;line-height:1.6}.credential-val{font-family:Fira Code,monospace;color:#0f172a;word-break:break-all}.credential-note{color:#64748b;font-size:11px;line-height:1.45}.credential-actions{display:flex;justify-content:flex-end}.credential-actions .btn{min-height:26px;padding:2px 8px}.card-type-status{min-height:28px;padding:2px 8px;font-size:12px}#cardTypeRows input,#cardTypeRows select{min-height:28px;padding:3px 8px;font-size:12px}.table-triplet{grid-template-columns:56px auto 52px auto 52px auto;gap:3px}.table-triplet span{font-size:11px}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid #bfd5ff;border-top-color:#1e40af;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 1280px){#mainView{grid-template-columns:190px 1fr}}@media (max-width: 980px){body.main-view-active{overflow:auto}#mainView{grid-template-columns:1fr;height:auto;overflow:visible}.sidebar{border-right:0;border-bottom:1px solid #d8e2f3;height:auto;overflow:visible}.nav-list{grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}.workspace{height:auto;overflow:visible}.content{overflow:visible}.nav-item{text-align:center;padding:0 4px;font-size:12px}.grid.two{grid-template-columns:1fr}.topbar{flex-wrap:wrap;align-items:flex-start}.global-search{width:100%}.create-user-form,.credential-grid{grid-template-columns:1fr}}@media (max-width: 640px){.nav-list,.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar input,.toolbar select,.toolbar button,.form-grid.compact input,.form-grid.compact button,.tier-setting-toolbar .kv-field,.tier-setting-toolbar .kv-actions{width:100%}.rule-editor{grid-template-columns:1fr}.tier-setting-toolbar .kv-actions .btn{width:100%}.form-grid.compact .cfg-actions button{width:auto;flex:0 0 auto}.config-form.form-grid.compact{grid-template-columns:1fr}.duration-triplet{grid-template-columns:repeat(6,auto);justify-content:start}.duration-triplet input{width:68px}.config-form .form-item.full,.config-form .cfg-actions{grid-column:auto}.cred-row{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}:root{--shadow-soft: 0 10px 30px rgba(15, 23, 42, .08);--ring: rgba(59, 130, 246, .24)}body{font-family:IBM Plex Sans,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:radial-gradient(circle at 8% -4%,#dde9ff,#f8fafc 45%),radial-gradient(circle at 100% 100%,#e8f4ff,#f8fafc 42%),linear-gradient(135deg,#1e40af05,#f59e0b0a)}h1,h2,h3,.card-title,.brand-title,.top-title,.modal-title{font-family:Space Grotesk,IBM Plex Sans,sans-serif;letter-spacing:.01em}.card{box-shadow:var(--shadow-soft)}textarea,.op-name,.json{font-family:JetBrains Mono,Cascadia Mono,monospace}input:focus-visible,select:focus-visible,textarea:focus-visible,.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}@keyframes fadeUp{0%{transform:translateY(4px);opacity:0}to{transform:translateY(0);opacity:1}}.tab-pane.active>.card{animation:fadeUp .22s ease}#tab-agent td.agent-card-key{width:280px;max-width:280px}#tab-agent .agent-card-key-wrap{display:flex;align-items:center;gap:6px;min-width:0}#tab-agent .agent-card-key-text{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#tab-agent td.agent-card-type{width:110px;max-width:110px}#tab-agent td.agent-card-status{width:96px;max-width:96px}#tab-agent td.agent-card-app{width:120px;max-width:120px}#tab-agent td.agent-card-created{width:130px;max-width:130px}#tab-agent td.agent-card-remark{width:120px;max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mu-agent-filter{border:0;background:transparent;color:#1d4ed8;padding:0;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.mu-agent-filter:hover,.mu-agent-filter:focus-visible{color:#1e3a8a;outline:none}.mu-agent-filter.is-active{color:#0f172a;font-weight:700;text-decoration-thickness:2px}.table-sort-btn{border:0;background:transparent;color:inherit;font:inherit;font-weight:700;padding:0;cursor:pointer}.table-sort-btn:hover,.table-sort-btn:focus-visible{color:#1d4ed8;outline:none}#btnClearOwnerAgentFilter.is-active,#btnFilterNoOwnerAgent.is-active{border-color:#93c5fd;color:#1d4ed8;background:#eff6ff}#tab-agent .agent-member-table th,#tab-agent .agent-member-table td{padding:5px 6px;vertical-align:top}#tab-agent .agent-member-table .subtext{margin-bottom:2px;line-height:1.35}#tab-agent .agent-member-table .badge{margin-top:1px}
