.login-page[data-v-6d5d0630]{min-height:100vh;display:flex}.brand-side[data-v-6d5d0630]{background:linear-gradient(135deg,#0a0a0b 0%,#0e1126 45%,#131838 100%);flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}[data-theme=light] .brand-side[data-v-6d5d0630]{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%)}.brand-glow[data-v-6d5d0630]{filter:blur(36px);pointer-events:none;background:radial-gradient(circle,#7c5cfc38 0%,#5b8def1f 40%,#0000 72%);border-radius:50%;width:620px;height:620px;position:absolute;top:-180px;right:-160px}.brand-stage[data-v-6d5d0630]{z-index:1;text-align:center;flex-direction:column;align-items:center;max-width:520px;padding:0 8%;display:flex;position:relative}.arch[data-v-6d5d0630]{filter:drop-shadow(0 0 20px #5b8def73);width:300px;max-width:78%;height:auto;margin-bottom:36px;animation:6s ease-in-out infinite arch-breath-6d5d0630}@keyframes arch-breath-6d5d0630{0%,to{filter:drop-shadow(0 0 18px #5b8def66)}50%{filter:drop-shadow(0 0 26px #7c5cfc8c)}}.brand-nameblock[data-v-6d5d0630]{flex-direction:column;align-items:center;display:flex}.brand-logo[data-v-6d5d0630]{align-items:center;gap:10px;margin-bottom:22px;display:flex}.brand-logo .logo-mark[data-v-6d5d0630]{background:linear-gradient(135deg, var(--accent), var(--accent2));border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex;box-shadow:0 0 12px #5b8def59}.brand-logo .logo-mark svg[data-v-6d5d0630]{width:17px;height:17px}.brand-logo .logo-text[data-v-6d5d0630]{color:#fff;letter-spacing:.4px;font-size:16px;font-weight:700}.brand-title[data-v-6d5d0630]{color:#fff;letter-spacing:-.8px;margin-bottom:16px;font-size:44px;font-weight:700;line-height:1.18}.brand-sub[data-v-6d5d0630]{color:#ffffff80;font-family:SF Mono,JetBrains Mono,Monaco,Cascadia Code,monospace;font-size:14px;line-height:1.8}.brand-grid[data-v-6d5d0630]{pointer-events:none;background-image:linear-gradient(#5b8def17 1px,#0000 1px),linear-gradient(90deg,#5b8def17 1px,#0000 1px);background-size:42px 42px;height:220px;position:absolute;bottom:0;left:0;right:0;-webkit-mask-image:linear-gradient(#0000,#000000b3);mask-image:linear-gradient(#0000,#000000b3)}.form-side[data-v-6d5d0630]{background:var(--bg-base);flex-direction:column;width:480px;display:flex;position:relative}.top-bar[data-v-6d5d0630]{justify-content:flex-end;align-items:center;gap:8px;padding:16px 20px 0;display:flex}.theme-btn[data-v-6d5d0630]{border-radius:var(--radius-lg);border:1px solid var(--border-strong);background:var(--bg-elevated);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-base);flex-shrink:0;justify-content:center;align-items:center;font-size:16px;display:flex}.theme-btn[data-v-6d5d0630]:hover{border-color:var(--accent);color:var(--accent);box-shadow:var(--shadow-glow)}.back-home[data-v-6d5d0630]{color:var(--text-secondary);background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-pill);transition:all var(--transition-base);align-items:center;gap:6px;padding:7px 14px;font-size:13px;text-decoration:none;display:inline-flex}.back-home[data-v-6d5d0630]:hover{color:var(--accent);border-color:var(--accent);box-shadow:var(--shadow-glow)}.back-home-arrow[data-v-6d5d0630]{font-size:14px;line-height:1}.login-box[data-v-6d5d0630]{flex-direction:column;flex:1;justify-content:center;width:100%;max-width:360px;margin:0 auto;padding:16px 28px;display:flex}.icp-footer[data-v-6d5d0630]{text-align:center;color:var(--text-tertiary);flex-shrink:0;padding:14px 24px 22px;font-size:12px}.icp-footer a[data-v-6d5d0630]{color:var(--text-tertiary);text-decoration:none}.icp-footer a[data-v-6d5d0630]:hover{color:var(--accent);text-decoration:underline}.login-box[data-v-6d5d0630] h2{color:var(--text-primary);letter-spacing:-.3px;margin-bottom:6px;font-size:24px;font-weight:700}.login-box[data-v-6d5d0630] .form-hint{color:var(--text-tertiary);margin-bottom:22px;font-size:13px}.login-box[data-v-6d5d0630] .form-group{margin-bottom:14px}.login-box[data-v-6d5d0630] .form-group label{color:var(--text-tertiary);letter-spacing:.2px;margin-bottom:6px;font-size:12px;display:block}.login-box[data-v-6d5d0630] .form-group input{width:100%;color:var(--text-primary);background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-control);box-sizing:border-box;transition:border-color var(--transition-base), box-shadow var(--transition-base);outline:none;padding:10px 12px;font-size:13.5px}.login-box[data-v-6d5d0630] .form-group input::placeholder{color:var(--text-tertiary)}.login-box[data-v-6d5d0630] .form-group input:focus{border-color:var(--accent);box-shadow:var(--input-focus-shadow)}.login-box[data-v-6d5d0630] .error,.login-box[data-v-6d5d0630] .error-banner{background:var(--danger-dim);color:var(--danger);border-radius:7px;margin-bottom:16px;padding:9px 13px;font-size:13px}.login-box[data-v-6d5d0630] .login-btn{border-radius:var(--radius-control);border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;width:100%;transition:background var(--transition-base), box-shadow var(--transition-base), transform var(--transition-fast);margin-top:6px;padding:11px;font-size:14px;font-weight:600}.login-box[data-v-6d5d0630] .login-btn:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-glow)}.login-box[data-v-6d5d0630] .login-btn:active:not(:disabled){transform:translateY(1px)}.login-box[data-v-6d5d0630] .login-btn:disabled{opacity:.55;cursor:not-allowed}.login-box[data-v-6d5d0630] .btn-link{width:100%;color:var(--text-tertiary);cursor:pointer;text-align:center;background:0 0;border:none;margin-top:10px;padding:0;font-size:12.5px;display:block}.login-box[data-v-6d5d0630] .btn-link:hover{color:var(--accent);text-decoration:underline}.login-box[data-v-6d5d0630] .register-link{text-align:center;color:var(--accent);margin-top:16px;font-size:13px;text-decoration:none;display:block}.login-box[data-v-6d5d0630] .register-link:hover{text-decoration:underline}.login-box[data-v-6d5d0630] .req{color:var(--danger)}.login-box[data-v-6d5d0630] .state{text-align:center}.login-box[data-v-6d5d0630] .state h2{margin:14px 0 8px}.login-box[data-v-6d5d0630] .state p{color:var(--text-secondary);margin:4px 0;font-size:13.5px;line-height:1.6}.login-box[data-v-6d5d0630] .state .hint{color:var(--text-tertiary);margin-top:12px;font-size:12px}.login-box[data-v-6d5d0630] .state-icon{border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto;font-size:28px;font-weight:700;display:flex}.login-box[data-v-6d5d0630] .success .state-icon{background:var(--success-dim);color:var(--success)}.login-box[data-v-6d5d0630] .state-icon.err{background:var(--danger-dim);color:var(--danger)}.login-box[data-v-6d5d0630] .spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;margin:0 auto;animation:.8s linear infinite auth-spin-6d5d0630}@keyframes auth-spin-6d5d0630{to{transform:rotate(360deg)}}@media (width<=768px){.brand-side[data-v-6d5d0630]{display:none}.form-side[data-v-6d5d0630]{width:100%}}.alt-section[data-v-13b97900]{margin-top:18px}.alt-row[data-v-13b97900]{justify-content:space-between;align-items:center;gap:10px;display:flex}.btn-anon[data-v-13b97900]{border:1px dashed var(--border-strong);color:var(--text-tertiary);border-radius:var(--radius-control);cursor:pointer;transition:all var(--transition-base);background:0 0;padding:7px 13px;font-size:12.5px}.btn-anon[data-v-13b97900]:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-anon[data-v-13b97900]:disabled{opacity:.5;cursor:not-allowed}.alt-links[data-v-13b97900]{color:var(--text-tertiary);white-space:nowrap;font-size:12.5px}.alt-links a[data-v-13b97900]{color:var(--accent);cursor:pointer;text-decoration:none}.alt-links a[data-v-13b97900]:hover{text-decoration:underline}.alt-links .dot[data-v-13b97900]{color:var(--text-tertiary);margin:0 5px}.email-form[data-v-13b97900]{margin-top:12px}.email-done[data-v-13b97900]{background:var(--success-dim);color:var(--success);text-align:center;border-radius:7px;margin-top:12px;padding:11px 13px;font-size:12.5px;line-height:1.6}.sso-section[data-v-13b97900]{border-top:1px dashed var(--border);margin-top:18px;padding-top:16px}.sso-title[data-v-13b97900]{color:var(--text-tertiary);letter-spacing:.3px;margin-bottom:8px;font-size:12px}.sso-error[data-v-13b97900]{background:var(--danger-dim);color:var(--danger);border-radius:6px;margin-bottom:8px;padding:7px 10px;font-size:12px}.sso-row[data-v-13b97900]{gap:6px;display:flex}.sso-row input[data-v-13b97900]{color:var(--text-primary);background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-control);transition:border-color var(--transition-base), box-shadow var(--transition-base);outline:none;flex:1;padding:9px 11px;font-size:13px}.sso-row input[data-v-13b97900]:focus{border-color:var(--accent);box-shadow:var(--input-focus-shadow)}.btn-sso-next[data-v-13b97900]{border-radius:var(--radius-control);border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text-primary);cursor:pointer;transition:all var(--transition-base);flex-shrink:0;padding:0 14px;font-size:13px}.btn-sso-next[data-v-13b97900]:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-sso-next[data-v-13b97900]:disabled{opacity:.5;cursor:not-allowed}.sso-providers[data-v-13b97900]{flex-direction:column;gap:6px;margin-top:10px;display:flex}.sso-provider-btn[data-v-13b97900]{border-radius:var(--radius-control);border:1px solid var(--accent);width:100%;color:var(--accent);cursor:pointer;transition:all var(--transition-base);background:0 0;align-items:center;gap:8px;padding:9px 12px;font-size:13px;font-weight:500;display:flex}.sso-provider-btn[data-v-13b97900]:hover{background:var(--accent);color:#fff}.sso-icon[data-v-13b97900]{justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.sso-label[data-v-13b97900]{text-align:left;flex:1}.sso-type-hint[data-v-13b97900]{opacity:.7;font-size:11px}.gitee-logo[data-v-13b97900]{color:#fff;background:#c71d23;border-radius:3px;justify-content:center;align-items:center;width:16px;height:16px;font-size:11px;font-style:normal;font-weight:700;display:inline-flex}.captcha-wrap[data-v-768d67c1]{-webkit-user-select:none;user-select:none;background:#eef0f3;border-radius:8px;width:320px;max-width:100%;position:relative;overflow:hidden}.captcha-bg[data-v-768d67c1]{height:180px;display:block}.captcha-piece[data-v-768d67c1]{cursor:grab;filter:drop-shadow(0 2px 4px #0000004d);height:auto;position:absolute;left:0}.captcha-piece[data-v-768d67c1]:active{cursor:grabbing}.captcha-refresh[data-v-768d67c1]{color:#fff;cursor:pointer;background:#0006;border:none;border-radius:6px;width:26px;height:26px;font-size:15px;line-height:1;position:absolute;top:6px;right:6px}.captcha-refresh[data-v-768d67c1]:hover{background:#0009}.captcha-loading[data-v-768d67c1]{width:320px;max-width:100%;height:180px;color:var(--text-tertiary,#86909c);background:#eef0f3;border-radius:8px;justify-content:center;align-items:center;font-size:13px;display:flex}.code-row[data-v-49c8c0fa]{gap:8px;display:flex}.code-row input[data-v-49c8c0fa]{flex:1}.btn-code[data-v-49c8c0fa]{border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--bg-elevated);color:var(--accent);cursor:pointer;white-space:nowrap;flex-shrink:0;padding:0 14px;font-size:13px}.btn-code[data-v-49c8c0fa]:disabled{color:var(--text-tertiary);cursor:not-allowed}.opt[data-v-49c8c0fa]{color:var(--text-tertiary);font-size:11px;font-weight:400}.error-banner[data-v-b2e47124]{background:var(--danger-dim);color:var(--danger);border-radius:7px;margin-bottom:12px;padding:9px 13px;font-size:13px}.empty[data-v-b2e47124]{text-align:center;color:var(--text-tertiary);padding:28px}.req[data-v-b2e47124]{color:var(--danger)}.actions[data-v-b2e47124]{white-space:nowrap}.modal-hint[data-v-b2e47124]{color:var(--text-tertiary);margin-bottom:14px;font-size:12px}.modal-actions[data-v-b2e47124]{gap:8px;margin-top:16px;display:flex}.modal-actions .btn-primary[data-v-b2e47124]{flex:1}.role-group[data-v-b2e47124]{margin-bottom:16px}.role-group-title[data-v-b2e47124]{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12px;font-weight:600}.role-cards[data-v-b2e47124]{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.role-card[data-v-b2e47124]{border:1.5px solid var(--border-strong,#e0e0e0);cursor:pointer;background:var(--bg-elevated,#fff);border-radius:10px;flex-direction:column;gap:4px;padding:12px 14px;transition:all .12s;display:flex}.role-card[data-v-b2e47124]:hover{border-color:var(--accent,#4f6bed)}.role-card-on[data-v-b2e47124]{background:var(--accent-dim,#eef2ff);border-color:var(--accent,#4f6bed)}.role-card-top[data-v-b2e47124]{align-items:center;gap:8px;display:flex}.role-card-top input[data-v-b2e47124]{margin:0}.role-card-name[data-v-b2e47124]{flex:1;font-size:14px;font-weight:600}.role-card-type[data-v-b2e47124]{color:var(--text-tertiary);background:var(--bg-surface,#f5f5f5);border-radius:8px;padding:2px 6px;font-size:10px}.role-card-desc[data-v-b2e47124]{color:var(--text-secondary,#666);font-size:12px;line-height:1.4}.role-card-perms[data-v-b2e47124]{color:var(--text-tertiary,#999);font-size:11px}.hint-banner[data-v-b2e47124]{color:#5d4037;background:#fff8e1;border:1px solid #ffe082;border-radius:8px;margin-top:14px;padding:10px 14px;font-size:13px;line-height:1.5}.hint-banner a[data-v-b2e47124]{color:#1565c0;text-decoration:underline}.service-row[data-v-b2e47124]{border-bottom:1px solid var(--border,#eee);justify-content:space-between;align-items:center;padding:14px 0;display:flex}.service-row[data-v-b2e47124]:last-child{border-bottom:none}.service-name[data-v-b2e47124]{margin-bottom:4px;font-size:14px;font-weight:600}.service-roles[data-v-b2e47124]{flex-wrap:wrap;gap:4px;display:flex}.service-none[data-v-b2e47124]{color:var(--text-tertiary,#999);font-size:12px}.error-banner[data-v-01c3bdda]{background:var(--danger-dim);color:var(--danger);border-radius:7px;margin-bottom:12px;padding:9px 13px;font-size:13px}.empty[data-v-01c3bdda]{text-align:center;color:var(--text-tertiary);padding:28px}.req[data-v-01c3bdda]{color:var(--danger)}.role-modal[data-v-01c3bdda]{width:680px;max-height:90vh;overflow-y:auto}.tree-header[data-v-01c3bdda]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.tree-root-label[data-v-01c3bdda]{cursor:pointer;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.tree-hint[data-v-01c3bdda]{color:var(--text-tertiary);font-size:11px}.menu-tree[data-v-01c3bdda]{border:1px solid var(--border);background:var(--bg-base);border-radius:8px;max-height:420px;padding:10px;overflow-y:auto}.tree-group[data-v-01c3bdda]{margin-bottom:6px}.tree-children[data-v-01c3bdda]{margin-left:30px}.tree-sub[data-v-01c3bdda]{padding:2px 0}.tree-row[data-v-01c3bdda]{border-radius:6px;align-items:center;padding:5px 8px;transition:background .12s;display:flex}.tree-row[data-v-01c3bdda]:hover{background:var(--bg-hover)}.row-dir[data-v-01c3bdda]{font-weight:600}.caret[data-v-01c3bdda]{cursor:pointer;width:16px;color:var(--text-tertiary);-webkit-user-select:none;user-select:none;font-size:10px;display:inline-block}.caret-spacer[data-v-01c3bdda]{width:16px;display:inline-block}.check-label[data-v-01c3bdda]{cursor:pointer;flex-wrap:wrap;align-items:center;gap:6px;display:flex}.menu-name[data-v-01c3bdda]{font-size:13px}.type-tag[data-v-01c3bdda]{border-radius:8px;padding:1px 7px;font-size:10px;font-weight:500}.type-dir[data-v-01c3bdda]{background:var(--accent-dim);color:var(--accent)}.type-page[data-v-01c3bdda]{background:var(--success-dim);color:var(--success)}.type-btn[data-v-01c3bdda]{color:var(--warning);background:#fbbf241f}.menu-path[data-v-01c3bdda]{color:var(--text-tertiary);font-family:SF Mono,Monaco,monospace;font-size:11px}.btn-group[data-v-01c3bdda]{border-left:2px solid var(--border);flex-wrap:wrap;align-items:flex-start;gap:6px;margin-bottom:8px;margin-left:30px;padding:6px 10px;display:flex}.btn-group-label[data-v-01c3bdda]{color:var(--text-tertiary);padding-top:6px;font-size:11px}.btn-chip[data-v-01c3bdda]{border:1px solid var(--border-strong);cursor:pointer;background:var(--bg-elevated);color:var(--text-primary);-webkit-user-select:none;user-select:none;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:5px 10px;transition:all .12s;display:inline-flex}.btn-chip[data-v-01c3bdda]:hover{border-color:var(--accent)}.btn-chip .chip-row[data-v-01c3bdda]{align-items:center;gap:5px;display:flex}.btn-chip .chip-name[data-v-01c3bdda]{font-size:12px}.btn-chip .btn-perm[data-v-01c3bdda]{color:var(--text-tertiary);font-family:SF Mono,Monaco,monospace;font-size:10px}.btn-chip input[data-v-01c3bdda]{margin:0}.btn-chip-on[data-v-01c3bdda]{background:var(--accent);border-color:var(--accent);color:#fff}.btn-chip-on .btn-perm[data-v-01c3bdda]{color:#fffc}.modal-actions[data-v-01c3bdda]{gap:8px;margin-top:16px;display:flex}.modal-actions .btn-primary[data-v-01c3bdda]{flex:1;padding:10px}.tag-selected[data-v-5feccd5f]{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}.tag-user[data-v-5feccd5f]{background:var(--accent-dim);color:var(--accent)}.tag-service[data-v-5feccd5f]{background:var(--border);color:var(--text-secondary)}.checkbox-row[data-v-5feccd5f]{cursor:pointer;color:var(--text-primary);align-items:center;gap:8px;font-size:13px;display:flex}.checkbox-row input[data-v-5feccd5f]{margin:0}.error-banner[data-v-5feccd5f]{background:var(--danger-dim);color:var(--danger);border-radius:7px;margin-bottom:12px;padding:9px 13px;font-size:13px}.req[data-v-5feccd5f]{color:var(--danger)}.empty[data-v-5feccd5f]{text-align:center;color:var(--text-tertiary);padding:28px}.key-banner[data-v-5feccd5f]{background:var(--success-dim);word-break:break-all;border:1px solid var(--success-dim);border-radius:8px;margin-bottom:12px;padding:12px}.perm-cell[data-v-5feccd5f]{flex-wrap:wrap;gap:3px;max-width:280px;display:flex}.actions[data-v-5feccd5f]{white-space:nowrap}.perm-picker[data-v-5feccd5f]{flex-wrap:wrap;gap:5px;margin-top:6px;display:flex}.perm-picker .tag[data-v-5feccd5f]{cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .12s}.perm-picker .tag[data-v-5feccd5f]:hover{border-color:var(--accent)}.form-row[data-v-5feccd5f]{gap:14px;display:flex}.form-row .form-group[data-v-5feccd5f]{flex:1}.form-hint[data-v-5feccd5f]{color:var(--text-tertiary);margin-top:4px;font-size:11px;line-height:1.5}.modal-actions[data-v-5feccd5f]{gap:8px;margin-top:8px;display:flex}.modal-actions .btn-primary[data-v-5feccd5f]{flex:1}.error-banner[data-v-db752272]{background:var(--danger-dim);color:var(--danger);border-radius:7px;margin-bottom:12px;padding:9px 13px;font-size:13px}.empty[data-v-db752272]{text-align:center;color:var(--text-tertiary);padding:28px}.cell-ellipsis[data-v-db752272]{text-overflow:ellipsis;white-space:nowrap;max-width:240px;overflow:hidden}.cell-nowrap[data-v-db752272]{white-space:nowrap}.stat-bar[data-v-db752272]{background:var(--bg-hover);border-radius:4px;flex:1;height:20px;overflow:hidden}.stat-bar-fill[data-v-db752272]{background:var(--accent);border-radius:3px;height:100%}.stat-count[data-v-db752272]{color:var(--text-secondary);text-align:right;width:40px;font-size:12px}.error-banner[data-v-e9b76980]{background:var(--danger-dim);color:var(--danger);border-radius:7px;margin-bottom:12px;padding:9px 13px;font-size:13px}.empty[data-v-e9b76980]{text-align:center;color:var(--text-tertiary);padding:28px}.menu-tree[data-v-e9b76980]{border:1px solid var(--border);background:var(--bg-base);border-radius:8px;padding:10px}.tree-row[data-v-e9b76980]{border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 6px;transition:background .12s;display:flex}.tree-row[data-v-e9b76980]:hover{background:var(--bg-hover)}.tree-row.disabled[data-v-e9b76980]{opacity:.5}.tree-row.disabled .m-name[data-v-e9b76980]{text-decoration:line-through}.caret[data-v-e9b76980]{cursor:pointer;color:var(--text-tertiary);width:14px;font-size:10px}.caret-spacer[data-v-e9b76980]{width:14px;display:inline-block}.m-name[data-v-e9b76980]{font-size:13px;font-weight:500}.m-path[data-v-e9b76980]{color:var(--text-tertiary);font-size:11px}.m-perm[data-v-e9b76980]{color:var(--accent);background:var(--accent-dim);border-radius:4px;padding:1px 6px;font-size:11px}.m-status[data-v-e9b76980]{color:var(--danger);background:var(--danger-dim);border-radius:4px;padding:1px 6px;font-size:10px}.m-hidden[data-v-e9b76980]{color:var(--text-tertiary);background:var(--bg-hover);border-radius:4px;padding:1px 6px;font-size:10px}.row-actions[data-v-e9b76980]{gap:4px;margin-left:auto;display:flex}.header-actions[data-v-e9b76980]{gap:8px;display:flex}.icon-picker[data-v-e9b76980]{align-items:center;gap:6px;display:flex}.icon-current[data-v-e9b76980]{background:var(--bg-base);border:1px solid var(--border);cursor:pointer;border-radius:6px;min-width:56px;padding:6px 10px;font-size:16px;line-height:1.2}.icon-placeholder[data-v-e9b76980]{color:var(--text-tertiary);font-size:12px}.icon-clear[data-v-e9b76980]{border:1px solid var(--border);cursor:pointer;color:var(--text-tertiary);background:0 0;border-radius:6px;padding:4px 8px;font-size:11px}.icon-grid[data-v-e9b76980]{border:1px solid var(--border);background:var(--bg-base);border-radius:6px;grid-template-columns:repeat(6,1fr);gap:3px;max-height:132px;margin-top:6px;padding:6px;display:grid;overflow-y:auto}.icon-cell[data-v-e9b76980]{cursor:pointer;background:0 0;border:none;border-radius:4px;padding:5px 0;font-size:16px;line-height:1}.icon-cell[data-v-e9b76980]:hover{background:var(--bg-hover)}.icon-cell.active[data-v-e9b76980]{background:var(--accent-dim);box-shadow:inset 0 0 0 1px var(--accent-glow)}.form-row[data-v-e9b76980]{gap:14px;display:flex}.form-row .form-group[data-v-e9b76980]{flex:1}.badge-gray[data-v-e9b76980]{background:var(--bg-hover);color:var(--text-tertiary)}.locked-field[data-v-e9b76980]{background:var(--bg-hover);color:var(--text-secondary);border-radius:6px;padding:8px 10px;font-size:13px}.switch-line[data-v-e9b76980]{color:var(--text-secondary);align-items:center;gap:8px;font-size:13px;font-weight:400;display:flex}.hint[data-v-e9b76980]{color:var(--text-tertiary);margin-top:6px;font-size:11px;display:block}select[data-v-e9b76980]:disabled,input[data-v-e9b76980]:disabled{opacity:.6;cursor:not-allowed}.error-banner[data-v-211b49b7]{background:var(--danger-dim);color:var(--danger);border-radius:7px;margin-bottom:12px;padding:9px 13px;font-size:13px}.empty[data-v-211b49b7]{text-align:center;color:var(--text-tertiary);padding:28px}.req[data-v-211b49b7]{color:var(--danger)}.dept-name[data-v-211b49b7]{font-size:13px}.tree-branch[data-v-211b49b7]{color:var(--text-tertiary);margin-right:4px}.error-banner[data-v-12d6212a]{background:var(--danger-dim);color:var(--danger);border-radius:7px;margin-bottom:12px;padding:9px 13px;font-size:13px}.empty[data-v-12d6212a]{text-align:center;color:var(--text-tertiary);padding:28px}.dict-tabs[data-v-12d6212a]{flex-wrap:wrap;flex:1;align-items:center;gap:4px;display:flex}.tab[data-v-12d6212a]{border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:4px;padding:5px 12px;font-size:12px;transition:all .12s;display:inline-flex}.tab.active[data-v-12d6212a]{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}.tab-add[data-v-12d6212a]{color:var(--text-tertiary);border-style:dashed}.tab-del[data-v-12d6212a]{opacity:.5;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:14px;display:inline-flex}.tab-del[data-v-12d6212a]:hover{opacity:1;background:var(--danger-dim);color:var(--danger)}.sort-hint[data-v-12d6212a]{color:var(--text-tertiary);margin-bottom:8px;font-size:11px}.th-hint[data-v-12d6212a]{color:var(--text-tertiary);font-size:10px;font-weight:400}.guide[data-v-95c10c61]{max-width:860px}.guide .card[data-v-95c10c61]{margin-bottom:20px}.intro-desc[data-v-95c10c61],.section-desc[data-v-95c10c61]{color:var(--text-secondary);margin-bottom:16px;font-size:13px}.capability-grid[data-v-95c10c61]{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px;display:grid}.cap-card[data-v-95c10c61]{background:var(--bg-base);border:1px solid var(--border);text-align:center;border-radius:10px;padding:18px}.cap-icon[data-v-95c10c61]{margin-bottom:8px;font-size:28px}.cap-card h3[data-v-95c10c61]{margin-bottom:6px;font-size:14px}.cap-card p[data-v-95c10c61]{color:var(--text-tertiary);font-size:12px;line-height:1.6}.subsection-title[data-v-95c10c61]{color:var(--text-secondary);margin:18px 0 10px;font-size:14px}.endpoint-list[data-v-95c10c61]{flex-direction:column;gap:6px;display:flex}.endpoint-row[data-v-95c10c61]{background:var(--bg-base);border:1px solid var(--border);border-radius:7px;align-items:center;gap:10px;padding:7px 10px;display:flex}.ep-label[data-v-95c10c61]{color:var(--text-tertiary);min-width:110px;font-size:12px}.ep-value[data-v-95c10c61]{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.ep-copy[data-v-95c10c61]{flex-shrink:0}.loading-hint[data-v-95c10c61]{color:var(--text-tertiary);padding:10px 0;font-size:12px}.docs-link[data-v-95c10c61]{color:var(--accent);margin-top:12px;font-size:13px;text-decoration:none;display:inline-block}.docs-link[data-v-95c10c61]:hover{text-decoration:underline}.oidc-demo-row[data-v-95c10c61]{flex-wrap:wrap;align-items:center;gap:16px;margin-top:14px;display:flex}.oidc-demo-btn[data-v-95c10c61]{font-size:13px;font-weight:600}.self-service-hint[data-v-95c10c61]{background:var(--accent-dim);border:1px solid var(--accent-glow);color:var(--text-secondary);border-radius:8px;margin-top:16px;padding:12px 16px;font-size:13px;line-height:1.7}.self-service-hint strong[data-v-95c10c61]{color:var(--accent)}.step[data-v-95c10c61]{border-bottom:1px solid var(--border);gap:14px;margin-bottom:18px;padding-bottom:18px;display:flex}.step[data-v-95c10c61]:last-child{border-bottom:none}.step-num[data-v-95c10c61]{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:15px;font-weight:700;display:flex}.step-body h3[data-v-95c10c61]{margin-bottom:4px;font-size:14px}.step-body p[data-v-95c10c61]{color:var(--text-secondary);margin-bottom:8px;font-size:13px;line-height:1.6}.code-block[data-v-95c10c61]{background:var(--bg-base);border:1px solid var(--border);color:var(--text-secondary);white-space:pre-wrap;border-radius:6px;margin-bottom:10px;padding:10px 12px;font-family:SF Mono,Monaco,monospace;font-size:11.5px;line-height:1.5;overflow-x:auto}.pg-grid[data-v-95c10c61]{grid-template-columns:1fr 1fr;gap:14px;display:grid}.pg-card[data-v-95c10c61]{background:var(--bg-base);border:1px solid var(--border);border-radius:10px;padding:14px}.pg-card[data-v-95c10c61]:nth-child(3){grid-column:1/-1}.pg-card h3[data-v-95c10c61]{margin-bottom:4px;font-size:13px}.pg-hint[data-v-95c10c61]{color:var(--text-tertiary);margin-bottom:8px;font-size:11px}.pg-input[data-v-95c10c61]{margin-bottom:8px;font-family:SF Mono,Monaco,monospace;font-size:11.5px}.pg-row[data-v-95c10c61]{gap:8px;display:flex}.pg-row .pg-input[data-v-95c10c61]{flex:1}.pg-err[data-v-95c10c61]{background:var(--danger-dim);color:var(--danger);border-radius:6px;margin-top:8px;padding:6px 10px;font-size:12px}.pg-result[data-v-95c10c61]{background:var(--bg-elevated);border:1px solid var(--border);color:var(--success);white-space:pre-wrap;border-radius:6px;max-height:200px;margin-top:8px;padding:10px;font-family:SF Mono,Monaco,monospace;font-size:11px;overflow-y:auto}.model-table[data-v-95c10c61]{width:100%;margin-bottom:16px}.model-table th[data-v-95c10c61],.model-table td[data-v-95c10c61]{border-bottom:1px solid var(--border);padding:9px 12px;font-size:13px}.model-table th[data-v-95c10c61]{color:var(--text-tertiary);font-size:12px;font-weight:500}.row-label[data-v-95c10c61]{color:var(--text-tertiary);font-weight:500}.warning-box[data-v-95c10c61]{background:var(--warning,#fbbf24);background:#fbbf241a;border:1px solid #fbbf244d;border-radius:8px;margin:14px 0;padding:12px 16px}.warning-box strong[data-v-95c10c61]{color:var(--warning);margin-bottom:4px;font-size:13px;display:block}.warning-box p[data-v-95c10c61]{color:var(--text-secondary);font-size:12.5px;line-height:1.6}.perm-examples[data-v-95c10c61]{padding:0;list-style:none}.perm-examples li[data-v-95c10c61]{color:var(--text-secondary);padding:4px 0;font-size:13px}.next-grid[data-v-95c10c61]{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.next-card[data-v-95c10c61]{background:var(--bg-base);border:1px solid var(--border);text-align:center;border-radius:12px;padding:24px}.next-icon[data-v-95c10c61]{margin-bottom:12px;font-size:32px}.next-card h3[data-v-95c10c61]{margin-bottom:8px;font-size:15px}.next-card p[data-v-95c10c61]{color:var(--text-tertiary);margin-bottom:12px;font-size:12.5px;line-height:1.7}.contact-qr[data-v-95c10c61]{border:1px solid var(--border);border-radius:10px;width:120px;height:120px;margin:8px auto;display:block}.contact-hint[data-v-95c10c61]{color:var(--text-tertiary);margin:0;font-size:11px}@media (width<=768px){.capability-grid[data-v-95c10c61],.pg-grid[data-v-95c10c61],.next-grid[data-v-95c10c61]{grid-template-columns:1fr}}.profile[data-v-6d964e51]{max-width:680px}.profile .card[data-v-6d964e51]{margin-bottom:16px}.info-grid[data-v-6d964e51]{flex-direction:column;gap:0;display:flex}.info-row[data-v-6d964e51]{border-bottom:1px solid var(--border);align-items:center;padding:12px 0;display:flex}.info-row[data-v-6d964e51]:last-child{border-bottom:none}.info-label[data-v-6d964e51]{width:120px;color:var(--text-tertiary);flex-shrink:0;font-size:13px}.info-value[data-v-6d964e51]{color:var(--text-primary);font-size:14px}.perm-list[data-v-6d964e51]{flex-wrap:wrap;gap:6px;display:flex}.perm-tag[data-v-6d964e51]{background:var(--accent-dim);color:var(--accent);border-radius:6px;padding:3px 10px;font-size:11.5px}.empty-hint[data-v-6d964e51]{color:var(--text-tertiary);font-size:13px}.perm-toggle[data-v-6d964e51]{margin-top:12px}.error-banner[data-v-6d964e51]{background:var(--danger-dim);color:var(--danger);border-radius:7px;margin-bottom:14px;padding:9px 13px;font-size:13px}.success-banner[data-v-6d964e51]{background:var(--success-dim);color:var(--success);border-radius:7px;margin-bottom:14px;padding:9px 13px;font-size:13px}.btn-primary[data-v-6d964e51]{padding:10px 24px}.verify-action[data-v-6d964e51]{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px;padding-top:14px;display:flex}.verify-hint[data-v-6d964e51]{color:var(--success);font-size:12px}.bind-hint[data-v-6d964e51]{color:var(--text-tertiary);background:var(--bg-secondary,#f6f7f9);border-radius:7px;margin:8px 0 14px;padding:10px 12px;font-size:12px;line-height:1.6}.provider-list[data-v-6d964e51]{flex-direction:column;gap:8px;display:flex}.provider-row[data-v-6d964e51]{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 0;display:flex}.provider-row[data-v-6d964e51]:last-child{border-bottom:none}.provider-name[data-v-6d964e51]{color:var(--text-primary);flex:1;font-size:14px}.provider-type[data-v-6d964e51]{color:var(--text-tertiary);background:var(--border);text-transform:uppercase;letter-spacing:.3px;border-radius:5px;padding:2px 8px;font-size:11px}.unbind-row[data-v-6d964e51]{border-top:1px solid var(--border);align-items:center;gap:12px;margin-top:14px;padding-top:14px;display:flex}.unbind-hint[data-v-6d964e51]{color:var(--text-tertiary);font-size:12px}.secret-code[data-v-6d964e51]{background:var(--bg-secondary,#f6f7f9);letter-spacing:1.5px;word-break:break-all;border-radius:5px;margin-top:6px;padding:4px 10px;font-size:13px;font-weight:600;display:inline-block}.otpauth-url[data-v-6d964e51]{color:var(--text-tertiary);margin:10px 0;font-size:11px}.otpauth-url details[data-v-6d964e51]{background:var(--bg-secondary,#f6f7f9);border-radius:6px;padding:8px 10px}.otpauth-url summary[data-v-6d964e51]{cursor:pointer;color:var(--text-tertiary)}.otpauth-url code[data-v-6d964e51]{word-break:break-all;margin-top:6px;font-size:10.5px;display:block}.action-row[data-v-6d964e51]{gap:8px;margin-top:8px;display:flex}.action-row .btn-primary[data-v-6d964e51]{padding:8px 18px}.badge[data-v-6d964e51]{background:var(--border);color:var(--text-tertiary);border-radius:6px;padding:3px 10px;font-size:11.5px}.badge-blue[data-v-6d964e51]{background:var(--accent-dim);color:var(--accent)}.badge-green[data-v-6d964e51]{background:var(--success-dim);color:var(--success)}.code-row[data-v-6d964e51]{gap:8px;display:flex}.code-row input[data-v-6d964e51]{flex:1}.btn-code[data-v-6d964e51]{border:1px solid var(--border,#e5e6eb);background:var(--bg-elevated,#fff);color:var(--accent);cursor:pointer;white-space:nowrap;border-radius:7px;flex-shrink:0;padding:0 14px;font-size:13px}.btn-code[data-v-6d964e51]:disabled{color:var(--text-tertiary);cursor:not-allowed}.my-apps h2[data-v-7a0aa934]{margin:0 0 4px}.hint[data-v-7a0aa934]{color:var(--text-tertiary,#888);margin:0 0 20px;font-size:13px}.empty[data-v-7a0aa934]{color:var(--text-tertiary,#888);text-align:center;padding:32px 0}.empty.err[data-v-7a0aa934]{color:var(--danger,#e54848)}.app-grid[data-v-7a0aa934]{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.app-card[data-v-7a0aa934]{background:var(--bg-elevated,#fff);border:1px solid var(--border,#e5e6eb);color:inherit;border-radius:12px;align-items:center;gap:14px;padding:18px 20px;text-decoration:none;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}.app-card[data-v-7a0aa934]:hover{border-color:var(--accent,#4f6bed);transform:translateY(-2px);box-shadow:0 6px 20px #00000014}.app-icon[data-v-7a0aa934]{flex-shrink:0;font-size:30px;line-height:1}.app-meta[data-v-7a0aa934]{flex:1;min-width:0}.app-name[data-v-7a0aa934]{font-size:15px;font-weight:600}.app-url[data-v-7a0aa934]{color:var(--text-tertiary,#999);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12px;overflow:hidden}.app-open[data-v-7a0aa934]{color:var(--accent,#4f6bed);flex-shrink:0;font-size:13px;font-weight:500}h2[data-v-c005365f]{margin:0 0 16px}h3[data-v-c005365f]{color:var(--text-secondary,#555);margin:24px 0 10px;font-size:15px}.empty[data-v-c005365f]{color:var(--text-tertiary,#888);padding:20px 0}.empty.err[data-v-c005365f]{color:var(--danger,#e54848)}.card-table[data-v-c005365f]{border-collapse:collapse;background:var(--bg-elevated,#fff);width:100%}.card-table th[data-v-c005365f],.card-table td[data-v-c005365f]{text-align:left;border-bottom:1px solid var(--border,#eee);padding:10px 12px;font-size:13px}.card-table th[data-v-c005365f]{color:var(--text-tertiary,#888);font-weight:500}.tag[data-v-c005365f]{border-radius:10px;padding:2px 8px;font-size:12px}.tag-warn[data-v-c005365f]{color:#b76e00;background:#fff4e6}.tag-ok[data-v-c005365f]{color:#1a7d3a;background:#e6f7ed}.tag-err[data-v-c005365f]{color:#c01c28;background:#fdeaea}.error-banner[data-v-0cd4f476]{background:var(--danger-dim);color:var(--danger);border-radius:7px;margin-bottom:12px;padding:9px 13px;font-size:13px}.empty[data-v-0cd4f476]{text-align:center;color:var(--text-tertiary);padding:28px}.req[data-v-0cd4f476]{color:var(--danger)}.key-banner[data-v-0cd4f476]{background:var(--warning-dim,#fbbf241a);border:1px solid #fbbf244d;border-radius:8px;margin-bottom:12px;padding:14px}.secret-display[data-v-0cd4f476]{word-break:break-all;background:var(--bg-base);border-radius:5px;margin:10px 0;padding:8px;font-family:SF Mono,Monaco,monospace;font-size:12px}.banner-actions[data-v-0cd4f476]{gap:8px;display:flex}.mono[data-v-0cd4f476]{font-family:SF Mono,Monaco,monospace;font-size:12px}.uri-cell[data-v-0cd4f476]{flex-direction:column;gap:2px;max-width:320px;display:flex}.uri[data-v-0cd4f476]{color:var(--text-secondary);word-break:break-all;font-family:SF Mono,Monaco,monospace;font-size:11px}.actions[data-v-0cd4f476]{white-space:nowrap}.tag-selected[data-v-0cd4f476]{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}.perm-picker[data-v-0cd4f476]{flex-wrap:wrap;gap:5px;margin-top:6px;display:flex}.perm-picker .tag[data-v-0cd4f476]{cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .12s}.perm-picker .tag[data-v-0cd4f476]:hover{border-color:var(--accent)}.check-row[data-v-0cd4f476]{margin:8px 0}.check[data-v-0cd4f476]{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.form-hint[data-v-0cd4f476]{color:var(--text-tertiary);margin-top:4px;font-size:11px;line-height:1.5}.modal-actions[data-v-0cd4f476]{gap:8px;margin-top:14px;display:flex}.modal-actions .btn-primary[data-v-0cd4f476]{flex:1}.tag-public[data-v-0cd4f476]{color:var(--accent);background:#5b8def26}.tag-conf[data-v-0cd4f476]{color:var(--accent2);background:#7c5cfc26}.tag-active[data-v-0cd4f476]{background:var(--success-dim);color:var(--success)}.tag-inactive[data-v-0cd4f476]{background:var(--danger-dim);color:var(--danger)}.vis-cell[data-v-0cd4f476]{flex-direction:column;align-items:flex-start;gap:3px;display:flex}.tag-system[data-v-0cd4f476]{color:var(--accent2);background:#7c5cfc26}.tag-org[data-v-0cd4f476]{color:var(--accent);background:#5b8def26}.tag-user[data-v-0cd4f476]{background:var(--bg-base);color:var(--text-tertiary)}.portal-text[data-v-0cd4f476]{color:var(--text-tertiary);font-size:10px}.switch[data-v-0cd4f476]{flex-shrink:0;width:30px;height:17px;display:inline-block;position:relative}.switch input[data-v-0cd4f476]{opacity:0;width:0;height:0}.switch .slider[data-v-0cd4f476]{cursor:pointer;background:var(--border);border-radius:17px;transition:background .18s;position:absolute;inset:0}.switch .slider[data-v-0cd4f476]:before{content:"";background:#fff;border-radius:50%;width:13px;height:13px;transition:transform .18s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.switch input:checked+.slider[data-v-0cd4f476]{background:var(--success)}.switch input:checked+.slider[data-v-0cd4f476]:before{transform:translate(13px)}textarea[data-v-0cd4f476]{resize:vertical;box-sizing:border-box;width:100%;font-family:SF Mono,Monaco,monospace;font-size:12px}.tag-sys[data-v-0cd4f476]{color:var(--accent2);background:#7c5cfc26}.tag-biz[data-v-0cd4f476]{background:var(--success-dim);color:var(--success)}.scope-list[data-v-0cd4f476]{flex-direction:column;gap:6px;max-height:420px;display:flex;overflow-y:auto}.scope-item[data-v-0cd4f476]{border:1px solid var(--border);cursor:pointer;border-radius:6px;gap:8px;padding:8px 10px;transition:border-color .12s;display:flex}.scope-item[data-v-0cd4f476]:hover{border-color:var(--accent)}.scope-item.checked[data-v-0cd4f476]{border-color:var(--accent);background:#5b8def14}.scope-item input[type=checkbox][data-v-0cd4f476]{margin-top:2px}.scope-info[data-v-0cd4f476]{flex:1}.scope-head[data-v-0cd4f476]{align-items:center;gap:6px;display:flex}.scope-desc[data-v-0cd4f476]{color:var(--text-tertiary);margin:2px 0;font-size:11px}.scope-claims[data-v-0cd4f476]{flex-wrap:wrap;gap:3px;margin-top:3px;display:flex}.claim-chip[data-v-0cd4f476]{background:var(--bg-base);border:1px solid var(--border);border-radius:3px;padding:0 4px;font-family:SF Mono,Monaco,monospace;font-size:10px}.error-banner[data-v-b68a8448]{background:var(--danger-dim);color:var(--danger);border-radius:7px;margin-bottom:12px;padding:9px 13px;font-size:13px}.empty[data-v-b68a8448]{text-align:center;color:var(--text-tertiary);padding:28px}.mono[data-v-b68a8448]{font-family:SF Mono,Monaco,monospace;font-size:12px}.actions[data-v-b68a8448]{white-space:nowrap}.header-actions[data-v-b68a8448]{align-items:center;gap:12px;display:flex}.tab-switch[data-v-b68a8448]{gap:4px;display:flex}.tab-btn[data-v-b68a8448]{border:1px solid var(--border);background:var(--bg-elevated);cursor:pointer;border-radius:5px;padding:5px 12px;font-size:12px}.tab-btn.active[data-v-b68a8448]{background:var(--accent);color:#fff;border-color:var(--accent)}.claim-tag[data-v-b68a8448]{background:var(--bg-base);border:1px solid var(--border);border-radius:4px;margin:1px 2px;padding:1px 6px;font-family:SF Mono,Monaco,monospace;font-size:11px;display:inline-block}.tag-sys[data-v-b68a8448]{color:var(--accent2);background:#7c5cfc26}.tag-biz[data-v-b68a8448]{background:var(--success-dim);color:var(--success)}.downstream-cell[data-v-b68a8448]{max-width:360px}.downstream[data-v-b68a8448]{color:var(--text-secondary);word-break:break-all;font-size:11px}.form-hint[data-v-b68a8448]{color:var(--text-tertiary);margin-top:4px;font-size:11px;line-height:1.5}.form-group[data-v-b68a8448]{margin-bottom:12px}.form-group label[data-v-b68a8448]{margin-bottom:4px;font-size:13px;display:block}.form-group input[data-v-b68a8448]{border:1px solid var(--border);background:var(--bg-base);box-sizing:border-box;border-radius:5px;width:100%;padding:7px 10px}.form-group input[data-v-b68a8448]:disabled{opacity:.6}.modal-actions[data-v-b68a8448]{gap:8px;margin-top:14px;display:flex}.modal-actions .btn-primary[data-v-b68a8448]{flex:1}.error-banner[data-v-75346183]{background:var(--danger-dim);color:var(--danger);border-radius:7px;margin-bottom:12px;padding:9px 13px;font-size:13px}.empty[data-v-75346183]{text-align:center;color:var(--text-tertiary);padding:28px}.mono[data-v-75346183]{font-family:SF Mono,Monaco,monospace;font-size:12px}.actions[data-v-75346183]{white-space:nowrap}.stats-hint[data-v-75346183]{color:var(--text-tertiary);margin-top:2px;font-size:11px}.form-hint[data-v-75346183]{color:var(--text-tertiary);margin-top:4px;font-size:11px;line-height:1.5}.error-banner[data-v-7b29ccf4]{background:var(--danger-dim);color:var(--danger);border-radius:7px;margin-bottom:12px;padding:9px 13px;font-size:13px}.empty[data-v-7b29ccf4]{text-align:center;color:var(--text-tertiary);padding:28px}.req[data-v-7b29ccf4]{color:var(--danger)}.mono[data-v-7b29ccf4]{font-family:SF Mono,Monaco,monospace;font-size:12px}.scope-cell[data-v-7b29ccf4]{color:var(--text-secondary)}.actions[data-v-7b29ccf4]{white-space:nowrap}.org-picker[data-v-7b29ccf4]{background:var(--bg-elevated);border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:8px;padding:10px 16px;display:flex}.org-picker label[data-v-7b29ccf4]{color:var(--text-secondary);white-space:nowrap;font-size:13px;font-weight:600}.org-picker select[data-v-7b29ccf4]{flex:0 0 260px}.picker-hint[data-v-7b29ccf4]{color:var(--text-tertiary);font-size:11px}.tag-active[data-v-7b29ccf4]{background:var(--success-dim);color:var(--success)}.tag-inactive[data-v-7b29ccf4]{background:var(--danger-dim);color:var(--danger)}.tag-oidc[data-v-7b29ccf4]{background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border)}.tag-oauth2[data-v-7b29ccf4]{background:var(--primary-dim,#e6f0ff);color:var(--primary,#2563eb)}.preset-row[data-v-7b29ccf4]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.form-hint.inline[data-v-7b29ccf4]{margin-top:0;display:inline}.field-grid[data-v-7b29ccf4]{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;display:grid}.field-grid>div[data-v-7b29ccf4]{flex-direction:column;gap:3px;display:flex}.field-grid>div>span[data-v-7b29ccf4]{color:var(--text-tertiary);font-size:11px}.field-grid input[data-v-7b29ccf4]{font-size:12px}.form-row-2[data-v-7b29ccf4]{grid-template-columns:1fr 1fr;gap:12px;display:grid}.check-row[data-v-7b29ccf4]{margin:10px 0}.check[data-v-7b29ccf4]{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.form-hint[data-v-7b29ccf4]{color:var(--text-tertiary);margin-top:4px;font-size:11px;line-height:1.5}.form-hint code[data-v-7b29ccf4]{background:var(--bg-base);word-break:break-all;border-radius:3px;padding:1px 4px;font-family:SF Mono,Monaco,monospace;font-size:11px}.form-warn[data-v-7b29ccf4]{color:var(--warning,#f59e0b);margin-top:4px;font-size:11px}.modal-actions[data-v-7b29ccf4]{gap:8px;margin-top:14px;display:flex}.modal-actions .btn-primary[data-v-7b29ccf4]{flex:1}p[data-v-3d43c469]{color:var(--text-primary);margin-bottom:10px;font-size:14px;line-height:1.6}.muted[data-v-3d43c469]{color:var(--text-secondary)}.small[data-v-3d43c469]{color:var(--text-tertiary);margin-top:16px;font-size:12px}.consent-actions[data-v-3d43c469]{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.consent-actions .btn[data-v-3d43c469]{min-width:96px}:root{--font-xs:11px;--font-sm:12px;--font-base:13.5px;--font-md:14px;--font-lg:15px;--font-xl:16px;--font-2xl:18px;--font-stat:30px;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--radius-sm:4px;--radius-md:6px;--radius-control:7px;--radius-lg:8px;--radius-card:10px;--radius-xl:12px;--radius-pill:20px;--radius-full:50%;--transition-fast:.12s ease;--transition-base:.15s ease;--transition-theme:.2s ease;--z-sticky:50;--z-modal:100;--sidebar-width:220px;--content-pad-y:28px;--content-pad-x:32px}:root,[data-theme=dark]{--bg-base:#0a0a0b;--bg-surface:#111113;--bg-elevated:#18181b;--bg-hover:#1f1f23;--text-primary:#fafafa;--text-secondary:#a1a1aa;--text-tertiary:#71717a;--border:#27272a;--border-strong:#3f3f46;--accent:#5b8def;--accent-hover:#7ba4f7;--accent-dim:#5b8def1f;--accent-glow:#5b8def59;--accent2:#7c5cfc;--success:#3ecf8e;--success-dim:#3ecf8e1f;--danger:#f87171;--danger-dim:#f871711f;--warning:#fbbf24;--info:#5b8def;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 12px #00000080;--shadow-glow:0 0 24px var(--accent-glow);--input-focus-shadow:0 0 0 3px var(--accent-glow)}[data-theme=light]{--bg-base:#fff;--bg-surface:#fafafa;--bg-elevated:#fff;--bg-hover:#f4f4f5;--text-primary:#18181b;--text-secondary:#52525b;--text-tertiary:#a1a1aa;--border:#e4e4e7;--border-strong:#d4d4d8;--accent:#4a7bd8;--accent-hover:#3a6bc8;--accent-dim:#4a7bd814;--accent-glow:#4a7bd833;--accent2:#7c5cfc;--success:#16a34a;--success-dim:#16a34a1a;--danger:#dc2626;--danger-dim:#dc26261a;--warning:#d97706;--info:#4a7bd8;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 12px #00000014;--shadow-glow:0 0 24px var(--accent-glow);--input-focus-shadow:0 0 0 3px var(--accent-glow)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg-base);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,sans-serif;font-size:var(--font-md);-webkit-font-smoothing:antialiased;transition:background var(--transition-theme), color var(--transition-theme);line-height:1.5}.mono{font-family:SF Mono,JetBrains Mono,Monaco,Cascadia Code,monospace}.layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border);flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.sidebar-title{padding:var(--space-5) 22px var(--space-7);font-size:var(--font-lg);font-weight:var(--fw-bold);letter-spacing:.3px;color:var(--text-primary);border-bottom:1px solid var(--border);align-items:center;gap:var(--space-2);display:flex}.sidebar-title:before{content:"";border-radius:var(--radius-full);background:var(--accent);width:8px;height:8px;box-shadow:0 0 8px var(--accent-glow)}.sidebar nav{padding:var(--space-2);flex:1;overflow-y:auto}.sidebar nav a{padding:9px var(--space-3);border-radius:var(--radius-control);cursor:pointer;color:var(--text-secondary);font-size:var(--font-base);font-weight:var(--fw-medium);transition:all var(--transition-base);align-items:center;margin:2px 0;text-decoration:none;display:flex}.sidebar nav a:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar nav a.active{background:var(--accent-dim);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-glow)}.nav-empty{padding:var(--space-3);font-size:var(--font-sm);color:var(--text-tertiary)!important}.sidebar nav .nav-group{margin:var(--space-1) 0}.sidebar nav .nav-group-title{padding:var(--space-2) var(--space-3) var(--space-1);font-size:var(--font-xs);font-weight:var(--fw-semibold);color:var(--text-tertiary);letter-spacing:.4px}.sidebar nav .nav-group a{padding-left:var(--space-6);font-size:var(--font-base)}.sidebar nav .nav-icon{font-size:var(--font-md);margin-right:7px}.sidebar nav .nav-group-title span{margin-right:5px}.sidebar nav .nav-group-title{cursor:pointer;-webkit-user-select:none;user-select:none}.sidebar nav .nav-caret{width:10px;color:var(--text-tertiary);font-size:9px;display:inline-block}.menu-tree .tree-row.collapsible{cursor:pointer}.sidebar-footer{padding:var(--space-3) var(--space-4);border-top:1px solid var(--border);gap:var(--space-2);flex-direction:column;display:flex}.home-link{align-items:center;gap:var(--space-1);padding:6px var(--space-2);border-radius:var(--radius-md);font-size:var(--font-sm);font-weight:var(--fw-medium);color:var(--text-secondary);transition:all var(--transition-base);text-decoration:none;display:flex}.home-link:hover{color:var(--accent);background:var(--accent-dim)}.home-link-icon{font-size:var(--font-base);line-height:1}.sidebar-user{font-size:var(--font-sm);color:var(--text-secondary);justify-content:space-between;align-items:center;display:flex}.sidebar-footer button{border:1px solid var(--border-strong);color:var(--text-secondary);padding:5px var(--space-3);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-sm);transition:all var(--transition-base);background:0 0}.sidebar-footer button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.sidebar-footer button:disabled{opacity:.5;cursor:not-allowed}.main{padding:var(--content-pad-y) var(--content-pad-x);flex:1;max-width:100%;overflow-y:auto}.no-perm{text-align:center;color:var(--text-tertiary);font-size:var(--font-md);padding:80px 0}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-5) 22px;margin-bottom:var(--space-4)}.card-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.card-header h2{font-size:var(--font-lg);font-weight:var(--fw-semibold);letter-spacing:.2px}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:11px var(--space-3);border-bottom:1px solid var(--border)}th{font-weight:var(--fw-medium);color:var(--text-tertiary);font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.5px}tbody tr{transition:background var(--transition-fast)}tbody tr:hover{background:var(--bg-hover)}.btn{border-radius:var(--radius-control);border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text-primary);cursor:pointer;font-size:var(--font-base);font-weight:var(--fw-medium);transition:all var(--transition-base);padding:7px 14px}.btn:hover{background:var(--bg-hover);border-color:var(--accent)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);box-shadow:var(--shadow-glow)}.btn-danger{color:var(--danger);border-color:var(--danger-dim);background:0 0}.btn-danger:hover{background:var(--danger);color:#fff;box-shadow:0 0 16px var(--danger-dim)}.btn-sm{padding:var(--space-1) 10px;font-size:var(--font-sm)}input,select,textarea{padding:9px var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-control);font-size:var(--font-base);background:var(--bg-base);width:100%;color:var(--text-primary);transition:all var(--transition-base)}input::placeholder{color:var(--text-tertiary)}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:var(--input-focus-shadow);outline:none}.form-group{margin-bottom:14px}.form-group label{font-size:var(--font-sm);font-weight:var(--fw-medium);color:var(--text-secondary);margin-bottom:6px;display:block}.pagination{font-size:var(--font-sm);color:var(--text-secondary);align-items:center;gap:10px;margin-top:14px;display:flex}.badge{border-radius:var(--radius-pill);font-size:var(--font-xs);font-weight:var(--fw-medium);letter-spacing:.2px;padding:2px 9px;display:inline-block}.badge-green{background:var(--success-dim);color:var(--success)}.badge-red{background:var(--danger-dim);color:var(--danger)}.badge-blue{background:var(--accent-dim);color:var(--accent)}.tag{border-radius:var(--radius-sm);font-size:var(--font-xs);background:var(--bg-hover);color:var(--text-secondary);border:1px solid var(--border);margin:1px;padding:2px 7px;display:inline-block}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:var(--z-modal);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-xl);width:420px;max-width:92vw;max-height:88vh;box-shadow:var(--shadow-md);padding:26px;overflow-y:auto}.modal h3{font-size:var(--font-xl);font-weight:var(--fw-semibold);margin-bottom:18px}.modal .form-group{margin-bottom:14px}.modal .btn-primary{width:100%;margin-top:var(--space-2);padding:10px}.stats{gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.stat-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-card);text-align:center;flex:1;padding:18px}.stat-card .stat-value{font-size:var(--font-stat);font-weight:var(--fw-bold);color:var(--accent)}.stat-card .stat-label{font-size:var(--font-sm);color:var(--text-tertiary);margin-top:var(--space-1)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.theme-toggle{top:var(--space-4);right:var(--space-5);z-index:var(--z-sticky);border-radius:var(--radius-lg);border:1px solid var(--border-strong);background:var(--bg-surface);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;font-size:var(--font-xl);transition:all var(--transition-base);justify-content:center;align-items:center;display:flex;position:fixed}.theme-toggle:hover{border-color:var(--accent);color:var(--accent);box-shadow:var(--shadow-glow)}.error-banner{background:var(--danger-dim);color:var(--danger);border-radius:var(--radius-control);margin-bottom:var(--space-3);font-size:var(--font-base);border:1px solid var(--danger-dim);padding:9px 13px}.empty{text-align:center;color:var(--text-tertiary);padding:28px}@media (width<=768px){.layout{flex-direction:column}.sidebar{width:100%;height:auto;max-height:42vh;position:relative}.sidebar nav{flex:none}.main{padding:var(--space-4);overflow-x:auto}.card{padding:var(--space-3)}.modal{width:96vw;padding:18px}table{min-width:640px}}
