:root{--breakpoint-mobile-max: 767px;--breakpoint-tablet-min: 768px;--breakpoint-tablet-max: 1023px;--breakpoint-desktop-min: 1024px;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.375rem;--font-size-2xl: 1.75rem;--font-size-3xl: 2rem;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.7;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 999px;--color-bg: #f4f6fa;--color-surface: #ffffff;--color-surface-muted: #f9fafb;--color-surface-strong: #eef2f7;--color-text: #111827;--color-text-muted: #4b5563;--color-text-subtle: #6b7280;--color-border: #d1d5db;--color-border-strong: #9ca3af;--color-primary: #1d4ed8;--color-primary-hover: #1e40af;--color-primary-soft: #dbeafe;--color-on-primary: #ffffff;--color-link: #0b57d0;--color-link-hover: #084298;--color-focus-ring: #0b57d0;--color-danger: #b42318;--color-danger-hover: #912018;--color-danger-soft: #fef3f2;--color-danger-border: #fecdca;--color-success: #067647;--color-success-soft: #ecfdf3;--color-success-border: #abefc6;--color-warning: #93370d;--color-warning-soft: #fffaeb;--color-warning-border: #fedf89;--color-info-soft: #eff6ff;--color-info-border: #bfdbfe;--color-overlay: rgba(15, 23, 42, .48);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 12px 32px rgba(15, 23, 42, .1);--shadow-lg: 0 24px 64px rgba(15, 23, 42, .14);--transition-fast: .12s ease;--transition-normal: .18s ease;--content-auth: 440px;--content-account: 1120px;--content-admin: 1280px;--header-height: 4rem}*,*:before,*:after{box-sizing:border-box}html{overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body{margin:0;padding:0}body{min-height:100vh;overflow-x:hidden;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-normal);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}#root{min-height:100vh}h1,h2,h3,h4{margin:0 0 var(--space-4);line-height:var(--line-height-tight);letter-spacing:-.015em}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}p{margin:0 0 var(--space-3)}p:last-child{margin-bottom:0}a{color:var(--color-link);text-decoration:underline;text-underline-offset:.15em}a:hover{color:var(--color-link-hover)}img,svg{max-width:100%}code,kbd,samp{font-family:var(--font-mono);font-size:.925em}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}::selection{background:var(--color-primary-soft);color:var(--color-text)}.page--responsive{width:100%;max-width:100%;min-width:0}.page--no-overflow{overflow-x:hidden}.skip-link{position:absolute;top:0;left:-9999px;z-index:100;padding:var(--space-2) var(--space-3);border-radius:0 0 var(--radius-md) 0;background:var(--color-surface);color:var(--color-link)}.skip-link:focus,.skip-link:focus-visible{left:0}button,input,select,textarea{font:inherit}button{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-weight:600;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}button:hover:not(:disabled){background:var(--color-surface-muted);border-color:var(--color-border-strong)}button:disabled{opacity:.55;cursor:not-allowed}input,select,textarea{display:block;width:100%;min-height:2.75rem;padding:.625rem var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input::placeholder,textarea::placeholder{color:var(--color-text-subtle)}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--color-border-strong)}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px var(--color-primary-soft)}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--color-danger)}input[type=checkbox],input[type=radio]{width:1.125rem;min-height:1.125rem;padding:0;accent-color:var(--color-primary)}textarea{min-height:6rem;resize:vertical}label{display:block;margin-bottom:var(--space-2);color:var(--color-text);font-size:var(--font-size-sm);font-weight:600}fieldset{margin:0;padding:0;border:0}:is(.login-form__submit,.register-form__submit,.forgot-password-form__submit,.reset-complete-form__submit,.email-verify-resend-form__submit,.admin-login-form__submit,.admin-forgot-form__submit,.admin-totp-form__submit,.admin-totp-setup-form__submit,.admin-force-password-form__submit,.admin-password-reset-form__submit,.account-form button[type=submit],.account-totp__begin,.account-totp__verify-submit,.account-data__export,.account-link-confirm__confirm,.admin-session-warning__extend,.admin-users__search button,.admin-admins__invite-submit,.admin-api-clients__create-submit,.admin-settings__submit){border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary)}:is(.login-form__submit,.register-form__submit,.forgot-password-form__submit,.reset-complete-form__submit,.email-verify-resend-form__submit,.admin-login-form__submit,.admin-forgot-form__submit,.admin-totp-form__submit,.admin-totp-setup-form__submit,.admin-force-password-form__submit,.admin-password-reset-form__submit,.account-form button[type=submit],.account-totp__begin,.account-totp__verify-submit,.account-data__export,.account-link-confirm__confirm,.admin-session-warning__extend,.admin-users__search button,.admin-admins__invite-submit,.admin-api-clients__create-submit,.admin-settings__submit):hover:not(:disabled){border-color:var(--color-primary-hover);background:var(--color-primary-hover);color:var(--color-on-primary)}:is(.login-oauth__button,.admin-oauth__button,.admin-forgot-form__back,.admin-login-form__forgot,.admin-totp-form__toggle-recovery,.admin-totp__continue,.admin-totp__regenerate,.admin-totp__disable,.admin-view__back,.account-sessions__revoke-others,.account-totp__regenerate,.account-totp__disable,.account-gdpr__restrict,.account-link-confirm__reject,.admin-users__detail,.admin-user-detail__history){color:var(--color-text);text-decoration:none}:is(.admin-users__toggle,.admin-users__reset,.admin-user-detail__toggle,.admin-user-detail__reset,.admin-admins__remove,.admin-admins__revoke-sessions,.admin-api-clients__revoke,.admin-settings__disable-totp,.account-totp__disable,.account-totp__regenerate,.account-link-confirm__reject){border-color:var(--color-danger-border);background:var(--color-danger-soft);color:var(--color-danger)}:is(.admin-users__toggle,.admin-users__reset,.admin-user-detail__toggle,.admin-user-detail__reset,.admin-admins__remove,.admin-admins__revoke-sessions,.admin-api-clients__revoke,.admin-settings__disable-totp,.account-totp__disable,.account-link-confirm__reject):hover:not(:disabled){border-color:var(--color-danger);background:var(--color-danger);color:var(--color-on-primary)}:is(.login-form,.register-form,.forgot-password-form,.reset-complete-form,.email-verify-resend-form,.admin-login-form,.admin-forgot-form,.admin-totp-form,.admin-totp-setup-form,.admin-force-password-form,.admin-password-reset-form,.account-form){display:flex;flex-direction:column;gap:var(--space-4)}:is(.account-form,.admin-forgot-form,.admin-login-form,.admin-totp-form,.admin-totp-setup-form,.admin-force-password-form,.admin-password-reset-form){max-width:34rem}:is(.login-form__field,.register-form__field,.forgot-password-form__field,.reset-complete-form__field,.email-verify-resend-form__field,.admin-form__field,.account-form__field){display:flex;flex-direction:column;gap:var(--space-1);min-width:0}:is(.login-form__field,.register-form__field,.forgot-password-form__field,.reset-complete-form__field,.email-verify-resend-form__field,.admin-form__field,.account-form__field) label{margin-bottom:0}:is(.login-form__field-error,.register-form__field-error,.forgot-password-form__field-error,.reset-complete-form__field-error,.email-verify-resend-form__field-error){margin:0;color:var(--color-danger);font-size:var(--font-size-sm)}.register-form__strength,.reset-complete-form__strength{margin:0;font-size:var(--font-size-sm)}.register-form__strength--weak,.reset-complete-form__strength--weak{color:var(--color-danger)}.register-form__strength--ok,.reset-complete-form__strength--ok{color:var(--color-success)}.register-form__policy{display:flex;align-items:flex-start;gap:var(--space-2);margin:0;font-weight:400;line-height:var(--line-height-normal)}.register-form__checkbox{flex:0 0 auto;margin-top:.15rem}.register-form__policy-text{min-width:0}.register-form__policy-link{font-weight:600}.error-banner{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-danger-border);border-radius:var(--radius-md);background:var(--color-danger-soft);color:var(--color-danger)}.error-banner__message{margin:0;font-size:var(--font-size-sm)}.error-banner__retry{flex:0 0 auto;min-height:2rem;padding:0 var(--space-3);border-color:var(--color-danger-border);background:var(--color-surface);color:var(--color-danger);font-size:var(--font-size-sm)}:is(.register-success,.forgot-password-sent,.reset-complete-success,.email-verify-success,.email-verify-resent){padding:var(--space-6);border:1px solid var(--color-success-border);border-radius:var(--radius-lg);background:var(--color-success-soft)}:is(.register-success__title,.forgot-password-sent__title,.reset-complete-success__title,.email-verify-success__title,.email-verify-resent__title){margin-bottom:var(--space-2);color:var(--color-success);font-size:var(--font-size-xl)}:is(.register-success__message,.forgot-password-sent__message,.reset-complete-success__message,.email-verify-success__message,.email-verify-resent__message){color:var(--color-text)}:is(.register-success__server-message,.forgot-password-sent__server-message,.reset-complete-success__server-message,.email-verify-resent__server-message){color:var(--color-text-muted);font-size:var(--font-size-sm)}:is(.register-success__login,.forgot-password-sent__login,.reset-complete-success__login,.email-verify-success__login,.email-verify-resent__login){display:inline-flex;align-items:center;min-height:2.5rem;margin-top:var(--space-2);font-weight:600}:is(.reset-complete-expired,.email-verify-expired){padding:var(--space-5);border:1px solid var(--color-warning-border);border-radius:var(--radius-lg);background:var(--color-warning-soft);color:var(--color-warning)}:is(.reset-complete-expired__message,.email-verify-expired__message){margin-bottom:var(--space-4)}.reset-complete-expired__link{font-weight:600}.admin-session-warning{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--color-warning-border);border-radius:var(--radius-md);background:var(--color-warning-soft);color:var(--color-warning)}.admin-session-warning__message{font-size:var(--font-size-sm);font-weight:600}.admin-session-warning__extend{flex:0 0 auto;min-height:2.25rem;padding:0 var(--space-3);font-size:var(--font-size-sm)}.account-sessions__empty,.account-identities__empty,.admin-users__empty,.admin-admins__empty,.admin-audit-logs__empty,.admin-api-clients__empty{margin:0;padding:var(--space-6);border:1px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-muted);color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center}.cf-turnstile{display:flex;align-items:center;justify-content:center;min-height:4rem;margin:var(--space-1) 0}@media (max-width: 767px){.page--responsive{padding-inline:.75rem}h1{font-size:var(--font-size-xl)}.error-banner,.admin-session-warning{flex-direction:column;align-items:stretch}}@media (min-width: 768px) and (max-width: 1023px){.page--responsive{padding-inline:1.25rem}}@media (min-width: 1024px){.page--responsive{max-width:100%;margin-inline:auto}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.public-layout{min-height:100vh;padding:var(--space-8) var(--space-4) var(--space-16);background:linear-gradient(var(--color-info-soft),var(--color-bg) 18rem),var(--color-bg)}.public-brand{display:flex;justify-content:center;margin-bottom:var(--space-4);color:var(--color-primary)}.public-layout__content{width:100%}:is(.login-page,.register-page,.forgot-password-page,.reset-complete-page,.email-verify-page){width:100%;max-width:var(--content-auth);margin:0 auto;padding:var(--space-8);border:1px solid var(--color-border);border-top:4px solid var(--color-primary);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md)}:is(.login-page__title,.register-page__title,.forgot-password-page__title,.reset-complete-page__title,.email-verify-page__title){margin-bottom:var(--space-5);color:var(--color-text);font-size:var(--font-size-2xl);font-weight:700;letter-spacing:-.025em}.login-page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.login-page__header .login-page__title{margin-bottom:0}.language-switcher{display:flex;flex:0 0 auto;flex-direction:column;gap:var(--space-1)}.language-switcher label{margin:0;color:var(--color-text-subtle);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.language-switcher select{min-height:2.25rem;padding:0 var(--space-2);font-size:var(--font-size-sm)}.login-page__notice{margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--color-info-border);border-radius:var(--radius-md);background:var(--color-info-soft);color:var(--color-text);font-size:var(--font-size-sm)}.login-page__notice--oauth_error{border-color:var(--color-danger-border);background:var(--color-danger-soft);color:var(--color-danger)}.login-page__notice--deletion_cancelled{border-color:var(--color-success-border);background:var(--color-success-soft);color:var(--color-success)}.login-page__notice-message{margin:0}.login-form__forgot{margin:0;text-align:right;font-size:var(--font-size-sm)}.login-oauth{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--color-border)}.login-oauth__label{margin-bottom:var(--space-3);color:var(--color-text-subtle);font-size:var(--font-size-sm);text-align:center}.login-oauth__buttons{display:grid;gap:var(--space-2)}.login-oauth__button{display:flex;align-items:center;justify-content:center;width:100%;min-height:2.75rem;padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-weight:600;text-decoration:none;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.login-oauth__button:hover{border-color:var(--color-border-strong);background:var(--color-surface-muted);color:var(--color-text)}.login-oauth__notice{margin:var(--space-3) 0 0;color:var(--color-text-subtle);font-size:var(--font-size-sm);text-align:center}.login-page__privacy{margin:var(--space-6) 0 0;color:var(--color-text-subtle);font-size:var(--font-size-sm);text-align:center}.login-page__privacy a{color:var(--color-link)}.forgot-password-page__description{margin-bottom:var(--space-5);color:var(--color-text-muted);font-size:var(--font-size-sm)}.forgot-password-page__login{margin:var(--space-5) 0 0;font-size:var(--font-size-sm);text-align:center}.register-form__policy-field{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted)}.email-verify-expired{margin-top:var(--space-2)}.email-verify-resend-form{margin-top:var(--space-4)}.privacy-page{width:100%;max-width:56rem;margin:0 auto;padding:var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.privacy-page__title{margin-bottom:var(--space-3);font-size:var(--font-size-3xl)}.privacy-page__intro{margin-bottom:var(--space-8);color:var(--color-text-muted);font-size:var(--font-size-lg);line-height:var(--line-height-relaxed)}.privacy-page__section{padding:var(--space-5) 0;border-top:1px solid var(--color-border)}.privacy-page__section-title{margin-bottom:var(--space-2);font-size:var(--font-size-lg)}.privacy-page__section-body{margin:0;color:var(--color-text-muted);line-height:var(--line-height-relaxed)}@media (max-width: 767px){.public-layout{padding:var(--space-4) var(--space-3) var(--space-10)}:is(.login-page,.register-page,.forgot-password-page,.reset-complete-page,.email-verify-page,.privacy-page){padding:var(--space-5);border-radius:var(--radius-md)}.login-page__header{flex-direction:column;gap:var(--space-2)}.language-switcher{align-self:flex-end}.login-page__title,.register-page__title,.forgot-password-page__title,.reset-complete-page__title,.email-verify-page__title{font-size:var(--font-size-xl)}.privacy-page__title{font-size:var(--font-size-2xl)}}.account-layout{min-height:100vh;padding:var(--space-6) var(--space-4) var(--space-16)}.account-page{width:100%;max-width:var(--content-account);margin:0 auto}.account-page__title{margin-bottom:var(--space-6);font-size:var(--font-size-3xl);letter-spacing:-.025em}.account-page__body{display:grid;grid-template-columns:15rem minmax(0,1fr);gap:var(--space-6);align-items:start}.account-nav{position:sticky;top:var(--space-4);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.account-nav__list{display:flex;flex-direction:column;gap:var(--space-1);margin:0;padding:0;list-style:none}.account-nav__link,.account-nav__logout{display:flex;align-items:center;min-height:2.5rem;padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:600;text-decoration:none;transition:background-color var(--transition-fast),color var(--transition-fast)}.account-nav__link:hover{background:var(--color-surface-muted);color:var(--color-text)}.account-nav__link[aria-current=page]{background:var(--color-primary-soft);color:var(--color-primary)}.account-nav__item--logout{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.account-nav__logout{color:var(--color-danger)}.account-nav__logout:hover{background:var(--color-danger-soft);color:var(--color-danger-hover)}.account-page__content{min-width:0}.account-page__overview{margin:0;padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text-muted);line-height:var(--line-height-relaxed);box-shadow:var(--shadow-sm)}.account-view{padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.account-view__title{margin-bottom:var(--space-5);font-size:var(--font-size-xl)}.account-view__warning{margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--color-danger-border);border-radius:var(--radius-md);background:var(--color-danger-soft);color:var(--color-danger);font-size:var(--font-size-sm)}.account-view__prompt{color:var(--color-text-muted)}.account-view__invalid{padding:var(--space-3);border:1px solid var(--color-danger-border);border-radius:var(--radius-md);background:var(--color-danger-soft);color:var(--color-danger);font-size:var(--font-size-sm)}.account-view__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-5)}.account-view>p[role=status]{margin:0 0 var(--space-4);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-success-soft);color:var(--color-success);font-size:var(--font-size-sm)}.account-form{max-width:34rem}.account-form__checkbox{display:flex;align-items:center;gap:var(--space-2);font-weight:400}.account-form__checkbox input{flex:0 0 auto}.account-consent__version{margin-bottom:var(--space-4);color:var(--color-text-muted);font-size:var(--font-size-sm)}.account-identities{display:flex;flex-direction:column;gap:var(--space-2);margin:0 0 var(--space-5);padding:0;list-style:none}.account-identities__item{display:grid;grid-template-columns:7rem minmax(0,1fr) auto;gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted)}.account-identities__provider{color:var(--color-text);font-size:var(--font-size-sm);font-weight:700;text-transform:capitalize}.account-identities__email{min-width:0;overflow-wrap:anywhere;color:var(--color-text-muted);font-size:var(--font-size-sm)}.account-identities__bind{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4)}.account-sessions{display:flex;flex-direction:column;gap:var(--space-2);margin:0 0 var(--space-4);padding:0;list-style:none}.account-sessions__item{display:grid;grid-template-columns:minmax(7rem,.9fr) minmax(10rem,1.8fr) minmax(6rem,.8fr) minmax(10rem,1fr) auto;gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);font-size:var(--font-size-sm)}.account-sessions__device{color:var(--color-text);font-weight:700}.account-sessions__agent,.account-sessions__ip,.account-sessions__last-active{min-width:0;overflow-wrap:anywhere;color:var(--color-text-muted)}.account-sessions__revoke-others{margin-top:var(--space-2)}.account-totp__reauth-ready{margin-bottom:var(--space-4);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-info-soft);color:var(--color-text-muted);font-size:var(--font-size-sm)}.account-totp__intro{color:var(--color-text-muted)}.account-totp__scan{display:flex;flex-direction:column;gap:var(--space-4)}.account-totp__scan-hint{margin:0;color:var(--color-text-muted);font-size:var(--font-size-sm)}.account-totp__qr{width:12rem;height:12rem;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.account-totp__manual{margin:0;color:var(--color-text-muted);font-size:var(--font-size-sm)}.account-totp__secret{display:inline-block;margin-left:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--color-surface-strong);color:var(--color-text);overflow-wrap:anywhere}.account-totp__save-warning{padding:var(--space-3) var(--space-4);border:1px solid var(--color-warning-border);border-radius:var(--radius-md);background:var(--color-warning-soft);color:var(--color-warning);font-size:var(--font-size-sm)}.account-totp__recovery-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);margin:var(--space-4) 0;padding:0;list-style:none}.account-totp__recovery-code{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted);font-family:var(--font-mono);font-size:var(--font-size-sm);text-align:center}.account-totp__actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.account-view--link-confirm{max-width:34rem;margin:0 auto}@media (max-width: 1023px){.account-page__body{grid-template-columns:12rem minmax(0,1fr);gap:var(--space-4)}.account-sessions__item{grid-template-columns:repeat(2,minmax(0,1fr))}.account-sessions__item button{grid-column:1 / -1}}@media (max-width: 767px){.account-layout{padding:var(--space-4) var(--space-3) var(--space-10)}.account-page__title{margin-bottom:var(--space-4);font-size:var(--font-size-2xl)}.account-page__body{grid-template-columns:minmax(0,1fr)}.account-nav{position:static}.account-nav__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.account-nav__item--logout{grid-column:1 / -1}.account-view{padding:var(--space-4)}.account-identities__item,.account-sessions__item{grid-template-columns:minmax(0,1fr)}.account-identities__item button,.account-sessions__item button{width:100%}.account-totp__recovery-codes{grid-template-columns:minmax(0,1fr)}.account-totp__qr{width:10rem;height:10rem}}.admin-layout{min-height:100vh;padding:var(--space-5) var(--space-4) var(--space-16)}.admin-shell{width:100%;max-width:var(--content-admin);margin:0 auto}.admin-nav{position:sticky;top:var(--space-2);z-index:20;display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-5);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.admin-nav nav{flex:1 1 auto;min-width:0}.admin-nav__role{flex:0 0 auto;padding:var(--space-1) var(--space-3);border:1px solid var(--color-info-border);border-radius:var(--radius-full);background:var(--color-info-soft);color:var(--color-primary);font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.admin-nav__list{display:flex;flex-wrap:wrap;gap:var(--space-1);margin:0;padding:0;list-style:none}.admin-nav__link{display:flex;align-items:center;min-height:2.5rem;padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:600;text-decoration:none;transition:background-color var(--transition-fast),color var(--transition-fast)}.admin-nav__link:hover{background:var(--color-surface-muted);color:var(--color-text)}.admin-nav__link[aria-current=page]{background:var(--color-primary-soft);color:var(--color-primary)}.admin-nav__logout{flex:0 0 auto;min-height:2.5rem;padding:0 var(--space-3);border-color:var(--color-danger-border);background:var(--color-danger-soft);color:var(--color-danger);font-size:var(--font-size-sm)}.admin-nav__logout:hover:not(:disabled){border-color:var(--color-danger);background:var(--color-danger);color:var(--color-on-primary)}.admin-view-host{min-width:0}.admin-view{padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.admin-view__title{margin-bottom:var(--space-5);font-size:var(--font-size-xl)}.admin-view__welcome,.admin-view__intro{color:var(--color-text-muted)}.admin-view__expired{padding:var(--space-3) var(--space-4);border:1px solid var(--color-warning-border);border-radius:var(--radius-md);background:var(--color-warning-soft);color:var(--color-warning);font-size:var(--font-size-sm)}.admin-view__back{display:inline-flex;align-items:center;min-height:2.5rem;margin-top:var(--space-4);font-weight:600}.admin-view>p[role=status]{margin:0 0 var(--space-4);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-success-soft);color:var(--color-success);font-size:var(--font-size-sm)}.admin-view--session-expired,.admin-view--totp-verify,.admin-view--totp-setup,.admin-view--force-password,.admin-view--password-reset,.admin-view--password-reset-done,.admin-view--password-reset-expired{max-width:34rem;margin:0 auto}.admin-login{width:100%;max-width:var(--content-auth);margin:var(--space-8) auto 0;padding:var(--space-8);border:1px solid var(--color-border);border-top:4px solid var(--color-primary);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md)}.admin-login__title{margin-bottom:var(--space-5);font-size:var(--font-size-2xl);letter-spacing:-.025em}.admin-login-form__submit,.admin-forgot-form__submit{width:100%}.admin-login-form__forgot,.admin-forgot-form__back{align-self:center;border-color:transparent;background:transparent;color:var(--color-link);font-weight:600}.admin-login-form__forgot:hover:not(:disabled),.admin-forgot-form__back:hover:not(:disabled){background:transparent;color:var(--color-link-hover);text-decoration:underline}.admin-forgot-form__hint{margin:0;color:var(--color-text-muted);font-size:var(--font-size-sm)}.admin-forgot__sent{padding:var(--space-5);border:1px solid var(--color-success-border);border-radius:var(--radius-lg);background:var(--color-success-soft)}.admin-forgot__sent-title{color:var(--color-success);font-size:var(--font-size-lg)}.admin-forgot__back{display:inline-flex;align-items:center;min-height:2.5rem;margin-top:var(--space-3);font-weight:600}.admin-oauth{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--color-border)}.admin-oauth__label{margin-bottom:var(--space-3);color:var(--color-text-subtle);font-size:var(--font-size-sm);text-align:center}.admin-oauth__buttons{display:grid;gap:var(--space-2)}.admin-oauth__button{display:flex;align-items:center;justify-content:center;min-height:2.75rem;padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-weight:600;text-decoration:none}.admin-oauth__button:hover{border-color:var(--color-border-strong);background:var(--color-surface-muted);color:var(--color-text)}.admin-totp__intro{color:var(--color-text-muted)}.admin-totp__scan-hint{color:var(--color-text-muted);font-size:var(--font-size-sm)}.admin-totp__qr{width:12rem;height:12rem;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.admin-totp__manual{color:var(--color-text-muted);font-size:var(--font-size-sm)}.admin-totp__secret{display:inline-block;margin-left:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--color-surface-strong);color:var(--color-text);overflow-wrap:anywhere}.admin-totp__save-warning{padding:var(--space-3) var(--space-4);border:1px solid var(--color-warning-border);border-radius:var(--radius-md);background:var(--color-warning-soft);color:var(--color-warning);font-size:var(--font-size-sm)}.admin-totp__recovery-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);margin:var(--space-4) 0;padding:0;list-style:none}.admin-totp__recovery-code{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted);font-family:var(--font-mono);font-size:var(--font-size-sm);text-align:center}.admin-totp__continue{margin-top:var(--space-4)}.admin-totp-form__toggle-recovery{align-self:flex-start;border-color:transparent;background:transparent;color:var(--color-link);padding-inline:0}.admin-totp-form__toggle-recovery:hover:not(:disabled){background:transparent;color:var(--color-link-hover);text-decoration:underline}.admin-users__search{display:flex;align-items:flex-end;gap:var(--space-2);margin-bottom:var(--space-4)}.admin-users__search label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.admin-users__search input{flex:1 1 auto}.admin-users__search button{flex:0 0 auto}.admin-users,.admin-admins,.admin-audit-logs,.admin-api-clients,.admin-user-history{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none}.admin-users__item{display:grid;grid-template-columns:minmax(12rem,1.6fr) minmax(8rem,1fr) minmax(6rem,.6fr) auto auto auto;gap:var(--space-2);align-items:center;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);font-size:var(--font-size-sm)}.admin-users__email{min-width:0;overflow-wrap:anywhere;font-weight:700}.admin-users__name{min-width:0;overflow-wrap:anywhere;color:var(--color-text-muted)}.admin-users__status{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.admin-users__detail{display:inline-flex;align-items:center;min-height:2.25rem;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--font-size-sm);font-weight:600;text-decoration:none}.admin-users__detail:hover{border-color:var(--color-border-strong);background:var(--color-surface-muted);color:var(--color-text)}.admin-users__toggle,.admin-users__reset{min-height:2.25rem;padding:0 var(--space-2);font-size:var(--font-size-xs)}.admin-user-detail{display:grid;grid-template-columns:10rem minmax(0,1fr);gap:var(--space-2) var(--space-4);margin:0 0 var(--space-5);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted)}.admin-user-detail dt{color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:600}.admin-user-detail dd{margin:0;min-width:0;overflow-wrap:anywhere}.admin-user-detail__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-5)}.admin-user-history__item{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted);color:var(--color-text-muted);font-size:var(--font-size-sm)}.admin-admins__invite{display:flex;align-items:flex-end;gap:var(--space-2);margin:var(--space-5) 0;padding-top:var(--space-4);border-top:1px solid var(--color-border)}.admin-admins__invite-title{margin-bottom:var(--space-2);font-size:var(--font-size-lg)}.admin-admins__item{display:grid;grid-template-columns:minmax(12rem,1.5fr) minmax(8rem,1fr) minmax(5rem,.5fr) auto;gap:var(--space-2);align-items:center;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);font-size:var(--font-size-sm)}.admin-admins__email{min-width:0;overflow-wrap:anywhere;font-weight:700}.admin-admins__name,.admin-admins__role{min-width:0;color:var(--color-text-muted)}.admin-admins__session-panel{margin-top:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.admin-admins__session-list{margin:var(--space-2) 0;padding:0;list-style:none}.admin-admins__session-item{padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--font-size-sm)}.admin-admins__session-item:last-child{border-bottom:0}.admin-audit-logs__item{display:grid;grid-template-columns:minmax(8rem,.8fr) minmax(8rem,1fr) minmax(10rem,1.4fr) minmax(5rem,.6fr) minmax(10rem,1fr);gap:var(--space-2);align-items:center;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);font-size:var(--font-size-sm)}.admin-audit-logs__action,.admin-audit-logs__admin,.admin-audit-logs__target,.admin-audit-logs__result,.admin-audit-logs__time{min-width:0;overflow-wrap:anywhere;color:var(--color-text-muted)}.admin-api-clients__create{display:flex;align-items:flex-end;gap:var(--space-2);margin-bottom:var(--space-4)}.admin-api-clients__created{padding:var(--space-4);border:1px solid var(--color-success-border);border-radius:var(--radius-md);background:var(--color-success-soft);color:var(--color-success);font-size:var(--font-size-sm)}.admin-api-clients__client-id,.admin-api-clients__client-secret{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-family:var(--font-mono);overflow-wrap:anywhere}.admin-api-clients__item{display:grid;grid-template-columns:minmax(10rem,1.4fr) minmax(8rem,1fr) minmax(6rem,.6fr) auto;gap:var(--space-2);align-items:center;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);font-size:var(--font-size-sm)}.admin-api-clients__name,.admin-api-clients__prefix,.admin-api-clients__state{min-width:0;overflow-wrap:anywhere;color:var(--color-text-muted)}.admin-settings__password,.admin-settings__totp{margin-bottom:var(--space-6);padding-bottom:var(--space-6);border-bottom:1px solid var(--color-border)}.admin-settings__submit{margin-top:var(--space-3)}@media (max-width: 1023px){.admin-users__item{grid-template-columns:minmax(10rem,1.4fr) minmax(8rem,1fr) auto auto}.admin-users__status,.admin-users__detail{grid-column:auto}.admin-audit-logs__item{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-api-clients__item{grid-template-columns:minmax(9rem,1.2fr) minmax(7rem,1fr) auto}}@media (max-width: 767px){.admin-layout{padding:var(--space-4) var(--space-3) var(--space-10)}.admin-nav{position:static;flex-wrap:wrap;align-items:flex-start}.admin-nav nav{order:3;flex-basis:100%}.admin-nav__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-nav__logout{margin-left:auto}.admin-view,.admin-login{padding:var(--space-4);border-radius:var(--radius-md)}.admin-users__search,.admin-admins__invite,.admin-api-clients__create{flex-direction:column;align-items:stretch}.admin-users__item,.admin-admins__item,.admin-api-clients__item,.admin-audit-logs__item,.admin-user-history__item,.admin-user-detail,.admin-totp__recovery-codes{grid-template-columns:minmax(0,1fr)}.admin-totp__qr{width:10rem;height:10rem}}
