:root{--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-base: 14px;--font-size-md: 16px;--font-size-lg: 18px;--font-size-xl: 22px;--font-size-2xl: 28px;--font-size-3xl: 36px;--font-family-sans: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;--font-family-mono: "JetBrains Mono", "Fira Code", "SF Mono", Menlo, Consolas, monospace;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .12);--color-bg: #0b0d12;--color-bg-elev: #12151c;--color-bg-card: #1a1e27;--color-bg-hover: #232732;--color-border: #2a2f3c;--color-border-strong: #3a4051;--color-text: #e8eaf0;--color-text-muted: #9ba3b4;--color-text-dim: #6b7385;--color-primary: #5b8def;--color-primary-hover: #7aa3f7;--color-primary-text: #ffffff;--color-success: #2ec27e;--color-warn: #f5a524;--color-danger: #e5484d;--color-danger-hover: #f0626a;--color-primary-bg-subtle: rgba(91, 141, 239, .08);--color-success-bg-subtle: rgba(46, 194, 126, .15);--color-success-border-subtle: rgba(46, 194, 126, .3);--color-warn-bg-subtle: rgba(245, 165, 36, .14);--color-code-bg: #0a0c10;--color-code-text: #e8eaf0;--color-sso-dark-bg: #18181b;--color-sso-dark-hover: #232328;--color-sso-dark-border: #2a2a30;--outline-focus: 2px solid var(--color-primary);--outline-focus-offset: 2px;--vauth-color-primary: var(--color-primary);--vauth-color-primary-hover: var(--color-primary-hover);--vauth-color-success: var(--color-success);--vauth-color-warn: var(--color-warn);--vauth-color-danger: var(--color-danger);--vauth-color-text: var(--color-text);--vauth-color-text-muted: var(--color-text-muted);--vauth-color-bg-card: var(--color-bg-card);--vauth-color-border: var(--color-border);--vauth-radius: var(--radius-md);--vauth-radius-sm: var(--radius-sm);--vauth-space: var(--space-3)}[data-theme=light]{--color-bg: #f7f8fb;--color-bg-elev: #ffffff;--color-bg-card: #ffffff;--color-bg-hover: #eef1f6;--color-border: #e1e5ee;--color-border-strong: #c8cfdd;--color-text: #1a1f2e;--color-text-muted: #4d5567;--color-text-dim: #7a8195;--shadow-sm: 0 1px 2px rgba(15, 25, 50, .08);--shadow-md: 0 4px 14px rgba(15, 25, 50, .1);--shadow-lg: 0 14px 36px rgba(15, 25, 50, .14)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-family-sans);font-size:var(--font-size-base);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover);text-decoration:underline}code,pre{font-family:var(--font-family-mono)}.vauth-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border:1px solid transparent;border-radius:var(--vauth-radius);padding:10px 16px;font-size:var(--font-size-base);font-weight:500;font-family:inherit;cursor:pointer;transition:background .12s ease,border-color .12s ease,transform 80ms ease;line-height:1}.vauth-btn:active{transform:translateY(1px)}.vauth-btn:disabled,.vauth-btn[aria-busy=true]{opacity:.6;cursor:not-allowed}.vauth-btn-primary{background:var(--vauth-color-primary);color:var(--color-primary-text);border-color:var(--vauth-color-primary)}.vauth-btn-primary:hover:not(:disabled){background:var(--vauth-color-primary-hover);border-color:var(--vauth-color-primary-hover)}.vauth-btn-ghost{background:transparent;color:var(--vauth-color-text);border-color:var(--color-border-strong)}.vauth-btn-ghost:hover:not(:disabled){background:var(--color-bg-hover)}.vauth-btn-danger{background:var(--vauth-color-danger);color:#fff;border-color:var(--vauth-color-danger)}.vauth-btn-danger:hover:not(:disabled){background:var(--color-danger-hover);border-color:var(--color-danger-hover)}.vauth-btn-sm{padding:6px 10px;font-size:var(--font-size-sm)}.vauth-form{display:flex;flex-direction:column;gap:var(--space-4)}.vauth-field{display:flex;flex-direction:column;gap:var(--space-2)}.vauth-field-row{display:flex;gap:var(--space-3)}.vauth-field-row .vauth-field{flex:1}.vauth-field-label{font-size:var(--font-size-sm);color:var(--vauth-color-text-muted);font-weight:500;display:flex;align-items:baseline;justify-content:space-between}.vauth-field-link{font-size:var(--font-size-xs)}.vauth-field-hint{font-size:var(--font-size-xs);color:var(--vauth-color-text-muted)}.vauth-field input,.vauth-field select,.vauth-field textarea,.vauth-input{width:100%;padding:10px 12px;background:var(--color-bg-elev);border:1px solid var(--vauth-color-border);border-radius:var(--vauth-radius);color:var(--vauth-color-text);font-size:var(--font-size-base);font-family:inherit;transition:border-color .12s ease,box-shadow .12s ease}.vauth-field input:focus,.vauth-field select:focus,.vauth-field textarea:focus,.vauth-input:focus{outline:none;border-color:var(--vauth-color-primary);box-shadow:0 0 0 3px #5b8def26}.vauth-field-inline{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--vauth-color-text-muted)}.vauth-2fa-code-input{font-size:var(--font-size-xl);letter-spacing:4px;text-align:center;max-width:200px}.vauth-error{background:#e5484d1f;color:var(--vauth-color-danger);border:1px solid rgba(229,72,77,.4);padding:10px 12px;border-radius:var(--vauth-radius);font-size:var(--font-size-sm)}.vauth-form-success{background:#2ec27e14;color:var(--vauth-color-success);border:1px solid rgba(46,194,126,.4);padding:var(--space-4);border-radius:var(--vauth-radius);font-size:var(--font-size-sm)}.vauth-form-loading{color:var(--vauth-color-text-muted);padding:var(--space-4)}.vauth-status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:500;background:var(--color-bg-hover);color:var(--vauth-color-text-muted)}.vauth-status-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.vauth-status-authenticated{background:#2ec27e26;color:var(--vauth-color-success)}.vauth-status-anonymous{background:#9ba3b426;color:var(--color-text-muted)}.vauth-status-pending,.vauth-status-loading{background:#f5a5241f;color:var(--vauth-color-warn)}.vauth-status-offline{background:#e5484d1f;color:var(--vauth-color-danger)}.vauth-avatar{display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:600;border-radius:50%;user-select:none;flex-shrink:0}.vauth-user-menu{position:relative;display:inline-block}.vauth-user-menu-trigger{background:none;border:none;padding:0;cursor:pointer;border-radius:50%}.vauth-user-menu-trigger:focus-visible{outline:2px solid var(--vauth-color-primary);outline-offset:2px}.vauth-user-menu-panel{position:absolute;right:0;top:calc(100% + 8px);width:240px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--vauth-radius);box-shadow:var(--shadow-lg);padding:var(--space-3);z-index:100}.vauth-user-menu-identity{padding:var(--space-2) var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-3)}.vauth-user-menu-name{font-weight:600;font-size:var(--font-size-base)}.vauth-user-menu-email{font-size:var(--font-size-xs);color:var(--vauth-color-text-muted)}.vauth-user-menu-org{font-size:var(--font-size-xs);color:var(--vauth-color-text-muted);margin-top:4px}.vauth-user-menu-extra{padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-2)}.vauth-user-menu-logout{width:100%}.vauth-sso-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;border-radius:var(--vauth-radius);padding:10px 16px;font-size:var(--font-size-base);font-weight:500;font-family:inherit;cursor:pointer;border:1px solid var(--color-border-strong);background:var(--color-bg-elev);color:var(--vauth-color-text);transition:background .12s ease}.vauth-sso-btn:hover:not(:disabled){background:var(--color-bg-hover)}.vauth-sso-btn:disabled{opacity:.6;cursor:not-allowed}.vauth-sso-icon{display:inline-flex}.vauth-sso-dark{background:var(--color-sso-dark-bg);color:#fff;border-color:var(--color-sso-dark-border)}.vauth-sso-dark:hover:not(:disabled){background:var(--color-sso-dark-hover)}.vauth-sso-group{display:flex;flex-direction:column;gap:var(--space-2)}.vauth-menu-link{width:100%;display:block;text-align:left}.vauth-divider{display:flex;align-items:center;text-align:center;color:var(--vauth-color-text-muted);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.08em;margin:var(--space-2) 0}.vauth-divider:before,.vauth-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.vauth-divider span{padding:0 var(--space-3)}.vauth-flow{display:flex;flex-direction:column;gap:var(--space-5);max-width:420px}.vauth-flow-header h1{font-size:var(--font-size-2xl);margin:0 0 var(--space-2)}.vauth-flow-sub{color:var(--vauth-color-text-muted);margin:0}.vauth-flow-footer{color:var(--vauth-color-text-muted);font-size:var(--font-size-sm);text-align:center;margin-top:var(--space-4)}.vauth-flow-text{color:var(--vauth-color-text-muted)}.vauth-section{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--vauth-radius);padding:var(--space-5);margin-bottom:var(--space-5)}.vauth-section h2{margin:0 0 var(--space-4);font-size:var(--font-size-lg)}.vauth-section details{margin-top:var(--space-3)}.vauth-section-footer{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.vauth-profile-card{display:flex;gap:var(--space-4);align-items:flex-start;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--vauth-radius);padding:var(--space-5)}.vauth-profile-card-body{flex:1}.vauth-profile-card-name{margin:0 0 var(--space-1);font-size:var(--font-size-lg)}.vauth-profile-card-email{color:var(--vauth-color-text-muted);font-size:var(--font-size-sm)}.vauth-profile-card-org{margin-top:var(--space-3);font-size:var(--font-size-sm);display:flex;gap:var(--space-2)}.vauth-profile-card-label{color:var(--vauth-color-text-muted)}.vauth-profile-card-roles{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--space-3)}.vauth-tag{display:inline-block;padding:2px 8px;background:var(--color-bg-hover);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-family:var(--font-family-mono)}.vauth-profile-card-imp{margin-top:var(--space-3);padding:var(--space-2) var(--space-3);background:#f5a5241a;border:1px solid rgba(245,165,36,.3);color:var(--vauth-color-warn);border-radius:var(--vauth-radius);font-size:var(--font-size-sm)}.vauth-sessions-table{width:100%;border-collapse:collapse}.vauth-sessions-table th,.vauth-sessions-table td{text-align:left;padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm)}.vauth-sessions-table th{color:var(--vauth-color-text-muted);font-weight:500}.vauth-session-current{background:#5b8def0f}.vauth-session-tag{margin-left:6px;padding:1px 6px;font-size:var(--font-size-xs);background:var(--color-primary);color:#fff;border-radius:var(--radius-pill)}.vauth-sessions-empty,.vauth-sessions-loading{color:var(--vauth-color-text-muted);padding:var(--space-4);text-align:center}.vauth-2fa-enroll ol{padding-left:var(--space-5);display:flex;flex-direction:column;gap:var(--space-5)}.vauth-2fa-steps li h4{margin:0 0 var(--space-2);font-size:var(--font-size-base)}.vauth-2fa-qr{background:#fff;padding:var(--space-3);border-radius:var(--vauth-radius);display:inline-block}.vauth-2fa-secret{background:var(--color-bg-elev);padding:var(--space-2) var(--space-3);border-radius:var(--vauth-radius-sm);font-size:var(--font-size-sm);user-select:all}.vauth-verify-notice{display:flex;gap:var(--space-4);align-items:flex-start;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--vauth-radius);padding:var(--space-5)}.vauth-verify-notice-icon{font-size:var(--font-size-2xl)}.vauth-verify-notice-title{margin:0 0 var(--space-2);font-size:var(--font-size-lg)}.vauth-verify-notice-text{color:var(--vauth-color-text-muted);margin:0 0 var(--space-3)}.vauth-verify-notice-confirm{color:var(--vauth-color-success);font-size:var(--font-size-sm)}.vauth-user-lookup-table{width:100%;border-collapse:collapse;margin-top:var(--space-4)}.vauth-user-lookup-table th,.vauth-user-lookup-table td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm)}.vauth-user-lookup-table th{color:var(--vauth-color-text-muted);font-weight:500}.vauth-user-lookup-empty{color:var(--vauth-color-text-muted);margin-top:var(--space-3);font-size:var(--font-size-sm)}.vauth-token-countdown{font-family:var(--font-family-mono);font-size:var(--font-size-sm);color:var(--vauth-color-text-muted)}.vauth-token-countdown.vauth-warn{color:var(--vauth-color-warn)}.vauth-org-switcher{display:flex;flex-direction:column;gap:var(--space-2)}.vauth-loading-spinner{display:inline-flex;color:var(--vauth-color-primary)}.vauth-loading{color:var(--vauth-color-text-muted);padding:var(--space-3);font-size:var(--font-size-sm)}.vauth-members-table{width:100%;border-collapse:collapse}.vauth-members-table th,.vauth-members-table td{text-align:left;padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm)}.vauth-members-table th{color:var(--vauth-color-text-muted);font-weight:500}.vauth-members-email{color:var(--vauth-color-text-muted);font-size:var(--font-size-xs)}.vauth-members-empty,.vauth-members-loading{color:var(--vauth-color-text-muted);padding:var(--space-4);text-align:center}.vauth-invitations-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.vauth-invitation-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--vauth-radius)}.vauth-invitation-title{font-weight:600}.vauth-invitation-meta{color:var(--vauth-color-text-muted);font-size:var(--font-size-xs);margin-top:2px}.vauth-invitation-actions{display:flex;gap:var(--space-2)}.vauth-invitations-empty{color:var(--vauth-color-text-muted);padding:var(--space-4);text-align:center}.vauth-invitations-admin-table{width:100%;border-collapse:collapse}.vauth-invitations-admin-table th,.vauth-invitations-admin-table td{text-align:left;padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm)}.vauth-invitations-admin-table th{color:var(--vauth-color-text-muted);font-weight:500}.vauth-invitation-accept-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--vauth-radius);padding:var(--space-6);max-width:420px}.vauth-invitation-accept-title{margin:0 0 var(--space-2);font-size:var(--font-size-lg)}.vauth-invitation-accept-text{color:var(--vauth-color-text-muted);margin:0 0 var(--space-4)}.vauth-role-editor{display:grid;grid-template-columns:260px 1fr;gap:var(--space-5)}@media (max-width: 720px){.vauth-role-editor{grid-template-columns:1fr}}.vauth-role-list header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border)}.vauth-role-list header h4{margin:0}.vauth-role-list ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;margin-top:var(--space-2)}.vauth-role-list li{padding:var(--space-2) var(--space-3);border-radius:var(--vauth-radius-sm);cursor:pointer;transition:background .1s ease}.vauth-role-list li:hover,.vauth-role-list-item-selected{background:var(--color-bg-hover)}.vauth-role-list-name{font-weight:500;font-size:var(--font-size-sm)}.vauth-role-list-code{color:var(--vauth-color-text-muted);font-family:var(--font-family-mono);font-size:var(--font-size-xs)}.vauth-role-edit form{display:flex;flex-direction:column;gap:var(--space-4)}.vauth-perm-picker{border:1px solid var(--color-border);border-radius:var(--vauth-radius);padding:var(--space-3);max-height:360px;overflow-y:auto}.vauth-perm-picker legend{padding:0 var(--space-2);color:var(--vauth-color-text-muted);font-size:var(--font-size-sm)}.vauth-perm-picker-item{display:flex;align-items:baseline;gap:var(--space-2);padding:4px 0;font-size:var(--font-size-sm)}.vauth-perm-code{font-family:var(--font-family-mono);font-size:var(--font-size-xs)}.vauth-perm-name{color:var(--vauth-color-text-muted);font-size:var(--font-size-xs)}.vauth-form-actions{display:flex;gap:var(--space-3)}.vauth-users-table{display:flex;flex-direction:column;gap:var(--space-3)}.vauth-users-table-header{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.vauth-users-table-search{flex:1 1 220px;min-width:180px;max-width:320px}.vauth-users-table-filters{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.vauth-users-table-count{margin-left:auto;color:var(--vauth-color-text-muted);font-size:var(--font-size-sm);white-space:nowrap}.vauth-users-table table{width:100%;border-collapse:collapse}.vauth-users-table th,.vauth-users-table td{text-align:left;padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm)}.vauth-users-table th{color:var(--vauth-color-text-muted);font-weight:500}.vauth-users-table-row{cursor:pointer;transition:background .1s ease}.vauth-users-table-row:hover{background:var(--color-bg-hover)}.vauth-users-table-row:focus-visible{outline:2px solid var(--vauth-color-primary);outline-offset:-2px}.vauth-users-table-empty{color:var(--vauth-color-text-muted);text-align:center;padding:var(--space-6)}.vauth-users-table-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding-top:var(--space-2);font-size:var(--font-size-sm);color:var(--vauth-color-text-muted)}.vauth-admin-user-edit{display:flex;flex-direction:column;gap:var(--space-5)}.vauth-admin-user-edit-header{display:flex;align-items:center;gap:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.vauth-admin-user-edit-name{margin:0;font-size:var(--font-size-xl)}.vauth-admin-user-edit-email{color:var(--vauth-color-text-muted);font-size:var(--font-size-sm)}.vauth-pw-meter{display:flex;align-items:center;gap:var(--space-2);margin-top:6px}.vauth-pw-meter-bar{flex:1;height:4px;background:var(--color-bg-hover);border-radius:999px;overflow:hidden}.vauth-pw-meter-fill{height:100%;transition:width .15s ease,background .15s ease}.vauth-pw-meter-label{font-size:var(--font-size-xs);color:var(--vauth-color-text-muted);min-width:48px}.vauth-pw-meter-1 .vauth-pw-meter-fill{background:var(--vauth-color-danger)}.vauth-pw-meter-2 .vauth-pw-meter-fill{background:var(--vauth-color-warn)}.vauth-pw-meter-3 .vauth-pw-meter-fill{background:#6fb98e}.vauth-pw-meter-4 .vauth-pw-meter-fill{background:var(--vauth-color-success)}.vauth-danger-banner{background:#e5484d1a;border:1px solid rgba(229,72,77,.35);color:var(--vauth-color-danger);border-radius:var(--vauth-radius);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);line-height:1.45}.vauth-audit-table{display:flex;flex-direction:column;gap:var(--space-3)}.vauth-audit-table-header{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.vauth-audit-table-header input{max-width:240px}.vauth-audit-table-count{margin-left:auto;color:var(--vauth-color-text-muted);font-size:var(--font-size-sm)}.vauth-audit-table table{width:100%;border-collapse:collapse}.vauth-audit-table th,.vauth-audit-table td{text-align:left;padding:var(--space-2) var(--space-2);border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);vertical-align:top}.vauth-audit-table th{color:var(--vauth-color-text-muted);font-weight:500}.vauth-audit-details{margin:0;font-family:var(--font-family-mono);font-size:var(--font-size-xs);color:var(--vauth-color-text-muted);white-space:pre-wrap;max-height:80px;overflow-y:auto}.vauth-audit-empty{text-align:center;padding:var(--space-6);color:var(--vauth-color-text-muted)}.vauth-audit-table-footer{display:flex;align-items:center;justify-content:space-between;padding-top:var(--space-2);font-size:var(--font-size-sm);color:var(--vauth-color-text-muted)}.vauth-section-danger{border-color:#e5484d4d}.demo-app{min-height:100vh;display:flex;flex-direction:column}.demo-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-6);background:#0b0d12d9;backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--color-border)}.demo-header-left{display:flex;align-items:center;gap:var(--space-4)}.demo-header-brand{font-weight:700;font-size:var(--font-size-md);color:var(--color-text);letter-spacing:-.01em}.demo-header-brand a{color:inherit;text-decoration:none}.demo-header-brand a:hover{color:var(--color-primary)}.demo-header-pill{padding:3px 8px;background:var(--color-bg-hover);border:1px solid var(--color-border);border-radius:var(--radius-pill);font-size:var(--font-size-xs);color:var(--color-text-muted);font-family:var(--font-family-mono)}.demo-header-right{display:flex;align-items:center;gap:var(--space-3)}.demo-main{flex:1;padding:var(--space-8) var(--space-6);max-width:1280px;width:100%;margin:0 auto;box-sizing:border-box}.demo-page-header{margin-bottom:var(--space-8)}.demo-page-header h1{margin:0 0 var(--space-2);font-size:var(--font-size-3xl);letter-spacing:-.02em}.demo-page-header p{margin:0;color:var(--color-text-muted);font-size:var(--font-size-md);max-width:720px}.demo-breadcrumb{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-3)}.demo-breadcrumb a{color:var(--color-text-muted)}.demo-breadcrumb a:hover{color:var(--color-primary)}.demo-breadcrumb-sep{margin:0 var(--space-2);color:var(--color-text-dim)}.demo-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6)}@media (max-width: 980px){.demo-columns{grid-template-columns:1fr}}.demo-column{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column}.demo-column-header{padding:var(--space-5) var(--space-5) var(--space-3);border-bottom:1px solid var(--color-border)}.demo-column-header h2{margin:0 0 var(--space-2);font-size:var(--font-size-lg)}.demo-column-header p{margin:0;font-size:var(--font-size-sm);color:var(--color-text-muted)}.demo-column-list{list-style:none;margin:0;padding:var(--space-3);display:flex;flex-direction:column;gap:2px}.demo-column-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);transition:background .1s ease;text-decoration:none}.demo-column-item:hover{background:var(--color-bg-hover);text-decoration:none}.demo-column-item:focus-visible{outline:var(--outline-focus);outline-offset:var(--outline-focus-offset)}.demo-column-item-name{font-weight:500;font-size:var(--font-size-base)}.demo-column-item-id{font-family:var(--font-family-mono);font-size:var(--font-size-xs);color:var(--color-text-dim)}.demo-column-item-arrow{color:var(--color-text-dim);font-size:var(--font-size-lg)}.demo-column-item:hover .demo-column-item-arrow{color:var(--color-primary);transform:translate(2px)}.demo-panel{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-6);overflow:hidden}.demo-panel-header{padding:var(--space-5);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4)}.demo-panel-title{margin:0 0 var(--space-2);font-size:var(--font-size-xl)}.demo-panel-id{font-family:var(--font-family-mono);font-size:var(--font-size-xs);color:var(--color-text-dim);padding:2px 8px;background:var(--color-bg-hover);border-radius:var(--radius-pill)}.demo-panel-desc{margin:0;color:var(--color-text-muted);font-size:var(--font-size-base);max-width:720px}.demo-panel-body{padding:var(--space-6)}.demo-panel-stage{background:var(--color-bg-elev);border:1px solid var(--color-border);border-radius:var(--vauth-radius);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}.demo-panel-stage[data-layout=center]{align-items:center;justify-content:center;min-height:240px}.demo-panel-stage[data-layout=flow]{padding:var(--space-8)}.demo-related{margin-top:var(--space-5)}.demo-related-title{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-2)}.demo-related-links{display:flex;flex-wrap:wrap;gap:var(--space-2)}.demo-related-links a{padding:4px 10px;background:var(--color-bg-hover);border:1px solid var(--color-border);border-radius:var(--radius-pill);font-size:var(--font-size-xs);color:var(--color-text);text-decoration:none}.demo-related-links a:hover{background:var(--color-bg-card);border-color:var(--color-primary);text-decoration:none;color:var(--color-primary)}.demo-snippet{margin-top:var(--space-4)}.demo-snippet-summary{cursor:pointer;padding:var(--space-3) var(--space-4);background:var(--color-bg-hover);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text);list-style:none;display:flex;align-items:center;gap:var(--space-2)}.demo-snippet-summary:focus-visible{outline:var(--outline-focus);outline-offset:var(--outline-focus-offset)}.demo-snippet-summary::-webkit-details-marker{display:none}.demo-snippet-summary:before{content:"▸";font-size:10px;color:var(--color-text-dim);transition:transform .12s ease}.demo-snippet[open] .demo-snippet-summary:before{transform:rotate(90deg)}.demo-snippet-code-wrap{position:relative;background:var(--color-code-bg);border:1px solid var(--color-border);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md);overflow:hidden}.demo-snippet[open] .demo-snippet-summary{border-bottom-left-radius:0;border-bottom-right-radius:0}.demo-snippet-code{padding:var(--space-4);font-family:var(--font-family-mono);font-size:var(--font-size-sm);line-height:1.55;color:var(--color-code-text);overflow-x:auto;margin:0}.demo-snippet-code .tok-keyword{color:#d97757}.demo-snippet-code .tok-string{color:#98c379}.demo-snippet-code .tok-comment{color:#5b6477;font-style:italic}.demo-snippet-code .tok-jsx-tag{color:#61afef}.demo-snippet-code .tok-attr{color:#e5c07b}.demo-snippet-code .tok-fn{color:#c678dd}.demo-copy-btn{position:absolute;top:var(--space-3);right:var(--space-3);padding:6px 10px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:#e8eaf0;font-family:inherit;font-size:var(--font-size-xs);cursor:pointer;transition:background .12s ease;display:inline-flex;align-items:center;gap:4px}.demo-copy-btn:hover{background:#ffffff1f}.demo-copy-btn:focus-visible{outline:var(--outline-focus);outline-offset:var(--outline-focus-offset)}.demo-copy-btn[data-copied=true]{background:var(--color-success-bg-subtle);border-color:var(--color-success-border-subtle);color:var(--color-success)}.demo-header-nav{display:flex;gap:var(--space-3);margin-left:var(--space-3);padding-left:var(--space-3);border-left:1px solid var(--color-border)}.demo-header-nav a{color:var(--color-text-muted);font-size:var(--font-size-sm);text-decoration:none;transition:color .1s ease;padding:2px 4px;border-radius:var(--radius-sm)}.demo-header-nav a:hover{color:var(--color-text)}.demo-header-nav a:focus-visible{outline:var(--outline-focus);outline-offset:var(--outline-focus-offset);color:var(--color-text)}.demo-auth-shell{max-width:420px;margin:var(--space-12) auto;padding:var(--space-8);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.demo-auth-header{margin-bottom:var(--space-6)}.demo-auth-header h1{margin:0 0 var(--space-2);font-size:var(--font-size-2xl)}.demo-auth-header p{color:var(--color-text-muted);margin:0 0 var(--space-2);font-size:var(--font-size-sm)}.demo-auth-hint{margin-top:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-primary-bg-subtle);border-left:3px solid var(--color-primary);border-radius:var(--radius-sm);color:var(--color-text)}.demo-auth-footer{color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center;margin-top:var(--space-3)}.demo-auth-tabs{display:flex;gap:2px;padding:4px;background:var(--color-bg-elev);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.demo-auth-tab{flex:1;padding:8px 12px;border:none;background:transparent;color:var(--color-text-muted);font-size:var(--font-size-sm);font-family:inherit;border-radius:var(--radius-sm);cursor:pointer;transition:background .1s ease,color .1s ease}.demo-auth-tab:hover{color:var(--color-text)}.demo-auth-tab-active{background:var(--color-bg-hover);color:var(--color-text)}.demo-profile,.demo-admin-users,.demo-admin-user-edit-page,.demo-admin-audit-log{display:flex;flex-direction:column;gap:var(--space-5);max-width:880px}.demo-admin-user-edit-page{max-width:1040px;margin-inline:auto}.demo-cols-2>.demo-card,.demo-cols-2>div>.demo-card:first-child{margin-top:0}.demo-footer{border-top:1px solid var(--color-border);padding:var(--space-6);color:var(--color-text-muted);font-size:var(--font-size-xs);text-align:center}.demo-footer a{color:var(--color-text-muted)}.demo-footer-config-note{margin-top:var(--space-2);font-family:var(--font-family-mono)}.demo-footer code{color:var(--color-text-muted);font-family:var(--font-family-mono)}.demo-footer-mode{display:inline-block;padding:1px 6px;border-radius:var(--radius-sm);font-family:var(--font-family-mono);font-size:var(--font-size-xs);background:var(--color-bg-hover);color:var(--color-text-muted);text-transform:lowercase}.demo-footer-mode-production{background:var(--color-success-bg-subtle);color:var(--color-success)}.demo-footer-mode-development{background:var(--color-warn-bg-subtle);color:var(--color-warn)}.demo-form-narrow,.demo-form-medium,.demo-form-wide{width:100%;margin-left:auto;margin-right:auto}.demo-form-narrow{max-width:380px}.demo-form-medium{max-width:420px}.demo-form-wide{max-width:480px}.demo-text-secondary{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0}.demo-page-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.demo-card{background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);margin-top:var(--space-5)}.demo-card h2{margin:0 0 var(--space-4);font-size:var(--font-size-lg);letter-spacing:-.01em}.demo-field{margin-bottom:var(--space-4)}.demo-field:last-child{margin-bottom:0}.demo-field-label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--color-text);margin-bottom:var(--space-2)}.demo-field-input{display:block}.demo-field-input .vauth-input{width:100%}.demo-field-row .demo-field{margin-bottom:var(--space-4)}@media (max-width: 540px){.demo-field-row{grid-template-columns:1fr}}.demo-hint{margin:var(--space-2) 0 0;font-size:var(--font-size-sm);color:var(--color-text-muted)}.demo-toggle{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer}.demo-status-current{margin-left:var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-muted)}.demo-form-actions{margin-top:var(--space-6);display:flex;gap:var(--space-3)}.demo-inline-filter{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-muted)}.demo-inline-filter>span{white-space:nowrap}.demo-inline-filter select{min-width:160px;max-width:220px}.demo-role-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}.demo-role-chip{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-2, var(--color-surface-1));border:1px solid var(--color-border);font-size:var(--font-size-sm);color:var(--color-text)}.demo-registry-tabs{max-width:420px}.demo-minted-secret{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.demo-minted-secret-row{display:flex;align-items:center;gap:var(--space-2)}.demo-minted-secret-value{flex:1;padding:8px 10px;background:var(--color-bg-elev);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);word-break:break-all;user-select:all}.demo-minted-secret .vauth-btn-ghost{align-self:flex-start}.pool-search{display:flex;flex-direction:column;gap:var(--space-2)}.pool-search-row{display:flex;gap:var(--space-2);align-items:flex-start}.pool-search-inputwrap{position:relative;flex:1}.pool-search-dropdown{position:absolute;top:calc(100% + 2px);left:0;right:0;z-index:30;margin:0;padding:var(--space-1);list-style:none;background:var(--color-bg-card, #fff);border:1px solid var(--color-border);border-radius:var(--radius-md, 6px);box-shadow:0 6px 20px #0000001f;max-height:240px;overflow-y:auto}.pool-search-option{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm, 4px);cursor:pointer;font-family:var(--font-mono, monospace);font-size:var(--font-size-sm)}.pool-search-option.is-highlighted{background:var(--color-bg-hover, rgb(0 0 0 / .06))}.pool-search-warning{margin:0;font-size:var(--font-size-xs);color:var(--color-warning, #b45309)}.pool-chips{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-2) 0 0;padding:0;list-style:none}.pool-chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2) 2px var(--space-3);background:var(--color-bg-subtle, rgb(0 0 0 / .05));border:1px solid var(--color-border);border-radius:999px;font-family:var(--font-mono, monospace);font-size:var(--font-size-xs);line-height:1.6}.pool-chip-note{color:var(--vauth-color-text-muted);font-family:var(--font-sans, sans-serif)}.pool-chip-x{border:none;background:none;cursor:pointer;font-size:var(--font-size-sm);line-height:1;padding:2px 4px;border-radius:999px;color:var(--vauth-color-text-muted)}.pool-chip-x:hover:not(:disabled){background:#0000001a;color:var(--color-danger, #b91c1c)}.pool-chips-empty{margin:var(--space-2) 0 0;font-size:var(--font-size-sm);color:var(--vauth-color-text-muted)}.demo-table{width:100%;border-collapse:collapse}.demo-table th,.demo-table td{text-align:left;padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm)}.demo-table th{color:var(--vauth-color-text-muted);font-weight:500}.pools-table .pools-num{text-align:right;font-variant-numeric:tabular-nums}.pools-table th.pools-num{text-align:right}.pool-name{font-size:var(--font-size-sm)}.pool-badge{display:inline-block;margin-left:var(--space-2);padding:1px var(--space-2);border-radius:999px;font-size:var(--font-size-xs);font-family:var(--font-sans, sans-serif);vertical-align:middle}.pool-badge-empty{background:var(--color-warning-bg, #fef3c7);color:var(--color-warning, #b45309);border:1px solid currentColor}.demo-badge-status{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-3);border-radius:999px;font-size:var(--font-size-xs);font-weight:600;text-transform:capitalize;border:1px solid transparent}.demo-badge-status:before{content:"";width:7px;height:7px;border-radius:999px;background:currentColor}.demo-badge-status[data-status=active]{background:#dcfce7;color:#15803d;border-color:#bbf7d0}.demo-badge-status[data-status=disabled],.demo-badge-status[data-status=suspended]{background:#fee2e2;color:#b91c1c;border-color:#fecaca}.demo-badge-status[data-status=pending]{background:#fef3c7;color:#b45309;border-color:#fde68a}.demo-cols-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);align-items:start}@media (max-width: 860px){.demo-cols-2{grid-template-columns:1fr}}.demo-field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}@media (max-width: 640px){.demo-field-row{grid-template-columns:1fr}}.demo-add-row{display:flex;gap:var(--space-2);margin-top:var(--space-4);align-items:center}.demo-add-row select{flex:1;max-width:420px}.demo-admin-user-edit-page .demo-card{margin-bottom:var(--space-6)}.webhook-row{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md, 6px);margin-bottom:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.webhook-row-controls{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.webhook-event-toggle{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-xs)}.webhook-url-input{font-family:var(--font-mono, monospace);font-size:var(--font-size-xs)}.webhook-help{margin-top:var(--space-4)}.webhook-help summary{cursor:pointer;font-size:var(--font-size-sm);color:var(--vauth-color-text-muted)}.webhook-help summary:hover{color:inherit}.webhook-sample{margin-top:var(--space-3);padding:var(--space-4);background:var(--color-bg-subtle, rgb(0 0 0 / .25));border:1px solid var(--color-border);border-radius:var(--radius-md, 6px);overflow-x:auto;font-size:var(--font-size-xs);line-height:1.5}
