{"packageName":"@cedros/login-react","packageRoot":"workspace/react","entryPath":"workspace/react/dist/web/register.js","surfaceEntryPaths":{"web":"workspace/react/dist/web/register.js"},"surfaceFilePaths":{"web":["workspace/react/dist/auth-blocks.css","workspace/react/dist/login-react.css","workspace/react/dist/web/register.js"]},"files":[{"path":"workspace/react/dist/auth-blocks.css","kind":"style","text":":where(.cedros-auth-page-copy, .cedros-auth-form) {\n  --cebbwf5-auth-radius: 0.5rem;\n  box-sizing: border-box;\n  width: min(100%, 24rem);\n  margin-inline: auto;\n  justify-self: center;\n  color: var(--cebbwf5-runtime-text, #020817);\n  font-family: var(--cebbwf5-runtime-font-family, inherit);\n}\n\n:where(\n  .cedros-auth-page-copy *,\n  .cedros-auth-page-copy *::before,\n  .cedros-auth-form *,\n  .cedros-auth-form *::before\n) {\n  box-sizing: border-box;\n}\n\n:where(.cedros-auth-page-copy) {\n  display: grid;\n  gap: 0.35rem;\n  padding: 0.1rem 0.25rem 0.5rem;\n}\n\n:where(.cedros-auth-page-copy__brand) {\n  display: flex;\n  align-items: center;\n  gap: 0.85rem;\n  min-width: 0;\n}\n\n:where(.cedros-auth-page-copy__logo) {\n  display: block;\n  flex: 0 0 auto;\n  width: 2.5rem;\n  height: 2.5rem;\n  border: 1px solid var(--cebbwf5-runtime-border, #e2e8f0);\n  border-radius: 999px;\n  object-fit: cover;\n}\n\n:where(.cedros-auth-page-copy__brand-text) {\n  display: grid;\n  gap: 0.2rem;\n  min-width: 0;\n}\n\n:where(.cedros-auth-page-copy__eyebrow) {\n  margin: 0;\n  color: var(--cebbwf5-runtime-muted, #64748b);\n  font-size: 0.75rem;\n  font-weight: 500;\n  letter-spacing: 0.16em;\n  line-height: 1.3;\n  text-transform: uppercase;\n}\n\n:where(.cedros-auth-page-copy__title) {\n  max-width: none;\n  margin: 0;\n  color: var(--cebbwf5-runtime-text, #020817);\n  font-size: clamp(1.35rem, 3vw, 1.65rem);\n  font-weight: 800;\n  letter-spacing: 0;\n  line-height: 1.05;\n}\n\n:where(.cedros-auth-page-copy__body) {\n  order: 3;\n  max-width: 40ch;\n  margin: 0.35rem 0 0;\n  color: var(--cebbwf5-runtime-muted, #64748b);\n  font-size: 0.9rem;\n  line-height: 1.5;\n}\n\n:where(.cedros-auth-page-copy--auth .cedros-auth-page-copy__secondary),\n:where(.cedros-auth-page-copy--auth .cedros-auth-page-copy__body),\n:where(.cedros-auth-page-copy--auth .cedros-auth-page-copy__link) {\n  display: none;\n}\n\n:where(.cedros-auth-page-copy--profile) {\n  max-width: 44rem;\n}\n\n:where(.cedros-auth-page-copy__link:empty) {\n  display: none;\n}\n\n:where(.cedros-auth-form) {\n  display: grid;\n  gap: 1rem;\n  padding: 1.5rem;\n  border: 1px solid var(--cebbwf5-runtime-border, #e2e8f0);\n  border-radius: 0.75rem;\n  background: var(--cebbwf5-runtime-panel, #ffffff);\n  /* Prefer the host's elevation recipe so the card matches nearby blocks. */\n  box-shadow: var(\n    --cebbwf5-shadow-sm,\n    0 1px 2px 0 rgb(0 0 0 / 0.05),\n    0 4px 12px -4px rgb(0 0 0 / 0.08)\n  );\n}\n\n:where(.cedros-auth-form--inline) {\n  padding: 0;\n  border: 0;\n  background: transparent;\n  box-shadow: none;\n}\n\n:where(.cedros-auth-form--compact) {\n  gap: 0.75rem;\n  max-width: 20rem;\n  padding: 1.125rem;\n}\n\n:where(.cedros-auth-form--card) {\n  max-width: 24rem;\n}\n\n/*\n * Canvas page shells hand the whole page height to the authored document and\n * zero the host's page padding, which suits self-contained raw-code pages but\n * leaves an auth card pressed against the header and footer. Restore a page\n * rhythm for the first and last auth block only under those shells; default\n * shells keep the host's own padding.\n */\n:where(.cedros-auth-page-copy, .cedros-auth-form--card):first-child:is(\n    .cebbwf5-theme-shell-page--canvas-content *,\n    .cebbwf5-theme-shell-page--canvas-wide *,\n    .cebbwf5-theme-shell-page--canvas-full *\n  ) {\n  margin-block-start: clamp(2.5rem, 6vw, 4.5rem);\n}\n\n:where(.cedros-auth-page-copy, .cedros-auth-form--card):last-child:is(\n    .cebbwf5-theme-shell-page--canvas-content *,\n    .cebbwf5-theme-shell-page--canvas-wide *,\n    .cebbwf5-theme-shell-page--canvas-full *\n  ) {\n  margin-block-end: clamp(2.5rem, 6vw, 4.5rem);\n}\n\n:where(.cedros-auth-form__title) {\n  margin: 0;\n  color: var(--cebbwf5-runtime-text, #020817);\n  font-size: clamp(1.35rem, 2.6vw, 1.85rem);\n  font-weight: 700;\n  letter-spacing: 0;\n  line-height: 1.08;\n}\n\n:where(.cedros-auth-form[data-auth-mode='sign-in'] .cedros-auth-form__title),\n:where(.cedros-auth-form[data-auth-mode='create-account'] .cedros-auth-form__title) {\n  display: none;\n}\n\n:where(.cedros-auth-form__panel) {\n  display: grid;\n  gap: 1.25rem;\n}\n\n:where(.cedros-auth-form .cedros-auth-form__provider-svg) {\n  display: block;\n  flex: 0 0 auto;\n  width: 1.25rem;\n  height: 1.25rem;\n}\n\n:where(.cedros-auth-form__tabs) {\n  display: flex;\n  border-bottom: 1px solid var(--cebbwf5-runtime-border, #e2e8f0);\n  margin-bottom: 1.5rem;\n}\n\n:where(.cedros-auth-form__password-toggle-icon) {\n  display: block;\n  width: 1.2rem;\n  height: 1.2rem;\n}\n\n:where(.cedros-auth-form__success) {\n  margin: 0.1rem 0 0;\n  color: var(--cebbwf5-runtime-muted, #64748b);\n  font-size: 0.875rem;\n  line-height: 1.5;\n  text-align: center;\n}\n\n/* ============================================================\n   Static-render parity for the login.css interior classes\n   ============================================================\n   The host web render links this file WITHOUT login.css: login.css arrives\n   only when a runtime entry executes on the client. Until then (or if the\n   entry never runs) these rules are the only styling the form interior has,\n   so they mirror the login.css box model and type scale on the host runtime\n   theme tokens. The `:where(.cedros-auth-form)` prefix keeps standalone\n   consumers (which never load this file) untouched while the trailing class\n   holds (0,1,0) specificity so host element-level resets cannot restyle the\n   controls. Runtime entries inject this file BEFORE login.css, so login.css\n   stays authoritative for every property both files declare once hydrated. */\n:where(.cedros-auth-form) .cedros-login-form {\n  width: 100%;\n}\n\n:where(.cedros-auth-form) .cedros-login-form > .cedros-signup-availability {\n  margin-bottom: 1.5rem;\n}\n\n:where(.cedros-auth-form) .cedros-form {\n  display: flex;\n  flex-direction: column;\n  gap: 1.5rem;\n}\n\n:where(.cedros-auth-form) .cedros-form-field {\n  display: flex;\n  flex-direction: column;\n  gap: 0.5rem;\n}\n\n:where(.cedros-auth-form) .cedros-signup-availability {\n  display: flex;\n  align-items: flex-start;\n  gap: 0.625rem;\n  padding: 0.75rem 0.875rem;\n  border: 1px solid\n    color-mix(\n      in srgb,\n      var(--cebbwf5-runtime-accent, #3b82f6) 24%,\n      var(--cebbwf5-runtime-border, #e2e8f0)\n    );\n  border-radius: var(--cebbwf5-radius-md, 0.75rem);\n  background: color-mix(in srgb, var(--cebbwf5-runtime-accent, #3b82f6) 7%, transparent);\n  color: var(--cebbwf5-runtime-muted, #64748b);\n  font-size: 0.8125rem;\n  line-height: 1.45;\n}\n\n:where(.cedros-auth-form) .cedros-signup-availability strong {\n  color: var(--cebbwf5-runtime-text, #020817);\n  font-weight: 600;\n}\n\n:where(.cedros-auth-form) .cedros-signup-availability-dot {\n  flex: 0 0 auto;\n  width: 0.5rem;\n  height: 0.5rem;\n  margin-top: 0.3125rem;\n  border-radius: 9999px;\n  background: var(--cebbwf5-runtime-accent, #3b82f6);\n  box-shadow: 0 0 0 3px color-mix(in srgb, var(--cebbwf5-runtime-accent, #3b82f6) 14%, transparent);\n}\n\n:where(.cedros-auth-form) .cedros-signup-availability[data-full='true'] {\n  border-color: color-mix(\n    in srgb,\n    var(--cebbwf5-runtime-warning, #f59e0b) 28%,\n    var(--cebbwf5-runtime-border, #e2e8f0)\n  );\n  background: color-mix(in srgb, var(--cebbwf5-runtime-warning, #f59e0b) 14%, transparent);\n}\n\n:where(.cedros-auth-form)\n  .cedros-signup-availability[data-full='true']\n  .cedros-signup-availability-dot {\n  background: var(--cebbwf5-runtime-warning, #f59e0b);\n  box-shadow: 0 0 0 3px color-mix(in srgb, var(--cebbwf5-runtime-warning, #f59e0b) 14%, transparent);\n}\n\n:where(.cedros-auth-form) .cedros-label {\n  color: var(--cebbwf5-runtime-text, #020817);\n  font-size: 0.875rem;\n  font-weight: 500;\n  line-height: 1;\n}\n\n:where(.cedros-auth-form) .cedros-label-row {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  margin-bottom: 0.5rem;\n}\n\n:where(.cedros-auth-form) .cedros-input {\n  display: flex;\n  height: 2.5rem;\n  width: 100%;\n  padding: 0.5rem 0.75rem;\n  border: 1px solid var(--cebbwf5-runtime-border, #e2e8f0);\n  border-radius: var(--cebbwf5-radius-field, var(--cebbwf5-auth-radius));\n  background-color: var(--cebbwf5-runtime-bg, #ffffff);\n  color: var(--cebbwf5-runtime-text, #020817);\n  font-size: 0.875rem;\n  line-height: 1.25rem;\n}\n\n:where(.cedros-auth-form) .cedros-input::placeholder {\n  color: var(--cebbwf5-runtime-muted, #64748b);\n}\n\n:where(.cedros-auth-form) .cedros-input:focus {\n  outline: 2px solid color-mix(in srgb, var(--cebbwf5-runtime-accent, #3b82f6) 34%, transparent);\n  outline-offset: 2px;\n}\n\n:where(.cedros-auth-form) .cedros-password-wrapper {\n  position: relative;\n  display: flex;\n  align-items: center;\n}\n\n:where(.cedros-auth-form) .cedros-password-wrapper .cedros-input {\n  padding-right: 2.5rem;\n}\n\n:where(.cedros-auth-form) .cedros-password-toggle {\n  position: absolute;\n  right: 0.5rem;\n  padding: 0.25rem;\n  background: none;\n  border: none;\n  color: var(--cebbwf5-runtime-muted, #64748b);\n  cursor: pointer;\n}\n\n:where(.cedros-auth-form) .cedros-link {\n  padding: 0;\n  border: none;\n  background: none;\n  color: var(--cebbwf5-runtime-text, #020817);\n  font: inherit;\n  font-weight: 500;\n  cursor: pointer;\n  text-decoration: underline;\n  text-underline-offset: 4px;\n}\n\n:where(.cedros-auth-form) .cedros-link:focus-visible {\n  outline: 2px solid var(--cebbwf5-runtime-accent, #3b82f6);\n  outline-offset: 2px;\n  border-radius: 2px;\n}\n\n:where(.cedros-auth-form) .cedros-link-muted {\n  color: var(--cebbwf5-runtime-muted, #64748b);\n}\n\n:where(.cedros-auth-form) .cedros-link-sm {\n  font-size: 0.875rem;\n}\n\n:where(.cedros-auth-form) .cedros-button {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: 0.5rem;\n  white-space: nowrap;\n  height: 2.5rem;\n  padding: 0 1rem;\n  border: 1px solid transparent;\n  border-radius: var(--cebbwf5-radius-control, var(--cebbwf5-auth-radius));\n  font-size: 0.875rem;\n  font-weight: 500;\n  line-height: 1.25rem;\n  cursor: pointer;\n}\n\n:where(.cedros-auth-form) .cedros-button:disabled {\n  pointer-events: none;\n  opacity: 0.5;\n}\n\n:where(.cedros-auth-form) .cedros-button:focus-visible {\n  outline: 2px solid var(--cebbwf5-runtime-accent, #3b82f6);\n  outline-offset: 2px;\n}\n\n:where(.cedros-auth-form) .cedros-button-full {\n  width: 100%;\n}\n\n:where(.cedros-auth-form) .cedros-button-primary {\n  background-color: var(--cebbwf5-runtime-action-bg, #0f172a);\n  color: var(--cebbwf5-runtime-action-fg, #ffffff);\n  /* Machined edge + soft drop shadow, matching the standalone primary button */\n  box-shadow:\n    inset 0 1px 0 0 rgb(255 255 255 / 0.1),\n    var(--cebbwf5-shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));\n}\n\n:where(.cedros-auth-form) .cedros-button-social {\n  background-color: var(--cebbwf5-runtime-panel, #ffffff);\n  color: var(--cebbwf5-runtime-text, #020817);\n  border-color: var(--cebbwf5-runtime-border, #e2e8f0);\n  box-shadow: var(--cebbwf5-shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));\n}\n\n:where(.cedros-auth-form) .cedros-button-social:hover:not(:disabled) {\n  background-color: var(--cebbwf5-runtime-accent-soft, #f1f5f9);\n}\n\n:where(.cedros-auth-form) .cedros-social-buttons {\n  display: flex;\n  flex-direction: column;\n  gap: 0.75rem;\n}\n\n:where(.cedros-auth-form) .cedros-social-buttons .cedros-button {\n  width: 100%;\n}\n\n:where(.cedros-auth-form) .cedros-social-icon {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  flex-shrink: 0;\n  width: 1.25rem;\n  height: 1.25rem;\n  color: currentColor;\n  line-height: 1;\n}\n\n:where(.cedros-auth-form) .cedros-divider {\n  display: flex;\n  align-items: center;\n  gap: 1rem;\n  margin: 1rem 0;\n}\n\n/* Hairlines fade toward the outer edges, matching the standalone divider */\n:where(.cedros-auth-form) .cedros-divider::before,\n:where(.cedros-auth-form) .cedros-divider::after {\n  content: '';\n  flex: 1;\n  height: 1px;\n}\n\n:where(.cedros-auth-form) .cedros-divider::before {\n  background: linear-gradient(to right, transparent, var(--cebbwf5-runtime-border, #e2e8f0));\n}\n\n:where(.cedros-auth-form) .cedros-divider::after {\n  background: linear-gradient(to left, transparent, var(--cebbwf5-runtime-border, #e2e8f0));\n}\n\n:where(.cedros-auth-form) .cedros-divider span {\n  color: var(--cebbwf5-runtime-muted, #64748b);\n  font-size: 0.75rem;\n  text-transform: uppercase;\n  letter-spacing: 0.05em;\n}\n\n:where(.cedros-auth-form) .cedros-tabs {\n  display: flex;\n  border-bottom: 1px solid var(--cebbwf5-runtime-border, #e2e8f0);\n  margin-bottom: 1.5rem;\n}\n\n:where(.cedros-auth-form) .cedros-tab {\n  position: relative;\n  flex: 1;\n  padding: 0.75rem 1rem;\n  background: none;\n  border: none;\n  border-bottom: 2px solid transparent;\n  color: var(--cebbwf5-runtime-muted, #64748b);\n  font-size: 0.875rem;\n  font-weight: 500;\n  cursor: pointer;\n}\n\n:where(.cedros-auth-form) .cedros-tab::after {\n  content: '';\n  position: absolute;\n  left: 0.75rem;\n  right: 0.75rem;\n  bottom: -2px;\n  height: 2px;\n  border-radius: 999px;\n  background-color: var(--cebbwf5-runtime-accent, #3b82f6);\n  transform: scaleX(0);\n}\n\n:where(.cedros-auth-form) .cedros-tab-active {\n  color: var(--cebbwf5-runtime-text, #020817);\n}\n\n:where(.cedros-auth-form) .cedros-tab-active::after {\n  transform: scaleX(1);\n}\n\n:where(.cedros-auth-form) .cedros-form-footer {\n  margin: 1rem 0 0;\n  text-align: center;\n  color: var(--cebbwf5-runtime-muted, #64748b);\n  font-size: 0.875rem;\n}\n\n:where(.cedros-account-workspace-block) {\n  display: grid;\n  gap: 1.25rem;\n  width: min(100%, 44rem);\n  margin: 0 auto;\n  color: var(--cebbwf5-runtime-text, #020817);\n}\n\n:where(.cedros-account-workspace-block--loading),\n:where(.cedros-account-workspace-block--signed-out) {\n  justify-items: center;\n  text-align: center;\n}\n\n:where(.cedros-account-workspace-block--interactive) {\n  justify-items: stretch;\n  text-align: initial;\n}\n\n:where(.cedros-account-workspace-block__header) {\n  display: flex;\n  align-items: flex-start;\n  justify-content: space-between;\n  gap: 1rem;\n}\n\n:where(.cedros-account-workspace-block__heading) {\n  min-width: 0;\n}\n\n:where(.cedros-account-workspace-block__title) {\n  margin: 0;\n  color: var(--cebbwf5-runtime-text, #020817);\n  font-size: 1.5rem;\n  font-weight: 700;\n  letter-spacing: -0.025em;\n  line-height: 1.15;\n}\n\n:where(.cedros-account-workspace-block__body) {\n  margin: 0.35rem 0 0;\n  color: var(--cebbwf5-runtime-muted, #64748b);\n  font-size: 0.9375rem;\n  line-height: 1.5;\n  overflow-wrap: anywhere;\n}\n\n:where(.cedros-account-workspace-block__status) {\n  display: inline-flex;\n  align-items: center;\n  gap: 0.5rem;\n  color: var(--cebbwf5-runtime-muted, #64748b);\n  font-size: 0.875rem;\n}\n\n:where(.cedros-account-workspace-block__link) {\n  justify-self: start;\n  color: var(--cebbwf5-runtime-accent, #3b82f6);\n  font-size: 0.875rem;\n  font-weight: 600;\n  text-decoration: underline;\n  text-underline-offset: 0.15em;\n}\n\n:where(.cedros-account-workspace-block__settings.cedros-account),\n:where(.cedros-account-workspace-block .cedros-account) {\n  width: 100%;\n  max-width: none;\n}\n\n/* ============================================================\n   Dark mode is NOT declared here, by contract.\n\n   The host defines the `--cebbwf5-runtime-*` block tokens on its\n   `.cebbwf5-runtime` wrapper and flips them under `.cebbwf5-dark` /\n   `.cebbwf5-admin--dark`, rebinding them to the live site theme (`--cebbwf5r-*`) on\n   public pages. Every color above reads those tokens, so both modes — and any\n   site theme — arrive for free. Extension block CSS must not hardcode a dark\n   palette or key off `prefers-color-scheme`; the previous `--cebbwf5-*: initial`\n   re-pin did the former by discarding host tokens and repainting the card from\n   this package's own shadcn dark values, which is why the card disagreed with\n   the page around it. login.css bridges its `--cebbwf5-login-*` aliases to the\n   same runtime tokens so the live form interior follows too.\n   ============================================================ */\n\n/* auth-blocks.css loads without login.css on public web renders, so it\n   carries its own reduced-motion guard for the motion declared above. */\n@media (prefers-reduced-motion: reduce) {\n  :where(.cedros-auth-page-copy),\n  :where(.cedros-auth-form),\n  :where(.cedros-auth-form *),\n  :where(.cedros-auth-form *)::before,\n  :where(.cedros-auth-form *)::after {\n    animation-delay: 0ms !important;\n    animation-duration: 0.001ms !important;\n    animation-iteration-count: 1 !important;\n    transition-delay: 0ms !important;\n    transition-duration: 0.001ms !important;\n  }\n}\n\n@media (max-width: 520px) {\n  :where(.cedros-auth-page-copy) {\n    padding: 0.1rem 0.25rem 0.4rem;\n  }\n\n  :where(.cedros-auth-form) {\n    padding: 1.25rem;\n  }\n\n  :where(.cedros-account-workspace-block__header) {\n    flex-direction: column;\n  }\n\n  :where(.cedros-account-workspace-block__header .cedros-button) {\n    width: 100%;\n  }\n}\n"},{"path":"workspace/react/dist/login-react.css","kind":"style","text":"@import \"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&display=swap\";.wallet-adapter-button{color:#fff;cursor:pointer;background-color:#0000;border:none;border-radius:4px;align-items:center;height:48px;padding:0 24px;font-family:DM Sans,Roboto,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:16px;font-weight:600;line-height:48px;display:flex}.wallet-adapter-button-trigger{background-color:#512da8}.wallet-adapter-button:not([disabled]):focus-visible{outline-color:#fff}.wallet-adapter-button:not([disabled]):hover{background-color:#1a1f2e}.wallet-adapter-button[disabled]{color:#999;cursor:not-allowed;background:#404144}.wallet-adapter-button-end-icon,.wallet-adapter-button-start-icon,.wallet-adapter-button-end-icon img,.wallet-adapter-button-start-icon img{justify-content:center;align-items:center;width:24px;height:24px;display:flex}.wallet-adapter-button-end-icon{margin-left:12px}.wallet-adapter-button-start-icon{margin-right:12px}.wallet-adapter-collapse{width:100%}.wallet-adapter-dropdown{display:inline-block;position:relative}.wallet-adapter-dropdown-list{z-index:99;grid-row-gap:10px;opacity:0;visibility:hidden;background:#2c2d30;border-radius:10px;grid-template-rows:1fr;margin:0;padding:10px;font-family:DM Sans,Roboto,Helvetica Neue,Helvetica,Arial,sans-serif;list-style:none;transition:opacity .2s,transform .2s,visibility .2s;display:grid;position:absolute;top:100%;right:0;box-shadow:0 8px 20px #0009}.wallet-adapter-dropdown-list-active{opacity:1;visibility:visible;transform:translateY(10px)}.wallet-adapter-dropdown-list-item{cursor:pointer;white-space:nowrap;box-sizing:border-box;color:#fff;border:none;border-radius:6px;outline:none;flex-direction:row;justify-content:center;align-items:center;width:100%;height:37px;padding:0 20px;font-size:14px;font-weight:600;display:flex}.wallet-adapter-dropdown-list-item:not([disabled]):hover{background-color:#1a1f2e}.wallet-adapter-modal-collapse-button svg{fill:#999;align-self:center}.wallet-adapter-modal-collapse-button.wallet-adapter-modal-collapse-button-active svg{transition:transform .15s ease-in;transform:rotate(180deg)}.wallet-adapter-modal{opacity:0;z-index:1040;background:#00000080;transition:opacity .15s linear;position:fixed;inset:0;overflow-y:auto}.wallet-adapter-modal.wallet-adapter-modal-fade-in{opacity:1}.wallet-adapter-modal-button-close{cursor:pointer;background:#1a1f2e;border:none;border-radius:50%;justify-content:center;align-items:center;padding:12px;display:flex;position:absolute;top:18px;right:18px}.wallet-adapter-modal-button-close:focus-visible{outline-color:#fff}.wallet-adapter-modal-button-close svg{fill:#777;transition:fill .2s}.wallet-adapter-modal-button-close:hover svg{fill:#fff}.wallet-adapter-modal-overlay{background:#00000080;position:fixed;inset:0}.wallet-adapter-modal-container{justify-content:center;align-items:center;min-height:calc(100vh - 6rem);margin:3rem;display:flex}@media (width<=480px){.wallet-adapter-modal-container{min-height:calc(100vh - 2rem);margin:1rem}}.wallet-adapter-modal-wrapper{box-sizing:border-box;z-index:1050;background:#10141f;border-radius:10px;flex-direction:column;flex:1;align-items:center;max-width:400px;font-family:DM Sans,Roboto,Helvetica Neue,Helvetica,Arial,sans-serif;display:flex;position:relative;box-shadow:0 8px 20px #0009}.wallet-adapter-modal-wrapper .wallet-adapter-button{width:100%}.wallet-adapter-modal-title{text-align:center;color:#fff;margin:0;padding:64px 48px 48px;font-size:24px;font-weight:500;line-height:36px}@media (width<=374px){.wallet-adapter-modal-title{font-size:18px}}.wallet-adapter-modal-list{width:100%;margin:0 0 12px;padding:0;list-style:none}.wallet-adapter-modal-list .wallet-adapter-button{border-radius:0;font-size:18px;font-weight:400}.wallet-adapter-modal-list .wallet-adapter-button-end-icon,.wallet-adapter-modal-list .wallet-adapter-button-start-icon,.wallet-adapter-modal-list .wallet-adapter-button-end-icon img,.wallet-adapter-modal-list .wallet-adapter-button-start-icon img{width:28px;height:28px}.wallet-adapter-modal-list .wallet-adapter-button span{opacity:.6;margin-left:auto;font-size:14px}.wallet-adapter-modal-list-more{cursor:pointer;color:#fff;background-color:#0000;border:none;align-self:flex-end;align-items:center;padding:12px 24px 24px 12px;display:flex}.wallet-adapter-modal-list-more svg{fill:#fff;margin-left:.5rem;transition:all .1s}.wallet-adapter-modal-list-more-icon-rotate{transform:rotate(180deg)}.wallet-adapter-modal-middle{box-sizing:border-box;flex-direction:column;align-items:center;width:100%;padding:0 24px 24px;display:flex}.wallet-adapter-modal-middle-button{cursor:pointer;color:#fff;background-color:#512da8;border:none;border-radius:8px;width:100%;margin-top:48px;padding:12px;font-size:18px;display:block}.cedros-login-admin-root .cedros-data-pill,.cedros-login-dashboard-card .cedros-data-pill{border:1px solid var(--cebbwf5-login-admin-border);background:var(--cebbwf5-login-admin-muted-bg);color:var(--cebbwf5-login-admin-muted);border-radius:9999px;align-items:center;gap:.3125rem;padding:.125rem .5rem;font-size:.6875rem;font-weight:600;line-height:1.2;display:inline-flex}.cedros-login-admin-root .cedros-data-pill--success,.cedros-login-dashboard-card .cedros-data-pill--success{background:color-mix(in srgb, var(--cebbwf5-login-admin-success) 14%, var(--cebbwf5-login-admin-bg));color:var(--cebbwf5-login-admin-success)}.cedros-login-admin-root .cedros-data-pill--warning,.cedros-login-dashboard-card .cedros-data-pill--warning{background:color-mix(in srgb, var(--cebbwf5-login-admin-warning) 18%, var(--cebbwf5-login-admin-bg));color:var(--cebbwf5-login-admin-warning-fg)}.cedros-login-admin-root .cedros-data-pill--error,.cedros-login-dashboard-card .cedros-data-pill--error{background:color-mix(in srgb, var(--cebbwf5-login-admin-error) 12%, var(--cebbwf5-login-admin-bg));color:var(--cebbwf5-login-admin-error)}.cedros-login-admin-root .cedros-data-pill--info,.cedros-login-dashboard-card .cedros-data-pill--info{background:color-mix(in srgb, var(--cebbwf5-login-admin-info) 12%, var(--cebbwf5-login-admin-bg));color:var(--cebbwf5-login-admin-info)}.cedros-login-admin-root .cedros-data-status,.cedros-login-dashboard-card .cedros-data-status{border:1px solid var(--cebbwf5-login-admin-border);border-radius:var(--cebbwf5-login-admin-radius);justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.75rem;display:flex}.cedros-login-admin-root .cedros-data-status p,.cedros-login-dashboard-card .cedros-data-status p{margin:0}.cedros-login-admin-root .cedros-data-status--info,.cedros-login-dashboard-card .cedros-data-status--info{border-color:color-mix(in srgb, var(--cebbwf5-login-admin-info) 32%, transparent);background:color-mix(in srgb, var(--cebbwf5-login-admin-info) 12%, var(--cebbwf5-login-admin-bg))}.cedros-login-admin-root .cedros-data-status--error,.cedros-login-dashboard-card .cedros-data-status--error{border-color:color-mix(in srgb, var(--cebbwf5-login-admin-error) 32%, transparent);background:color-mix(in srgb, var(--cebbwf5-login-admin-error) 12%, var(--cebbwf5-login-admin-bg));color:var(--cebbwf5-login-admin-fg)}.cedros-login-admin-root .cedros-data-status--success,.cedros-login-dashboard-card .cedros-data-status--success{border-color:color-mix(in srgb, var(--cebbwf5-login-admin-success) 32%, transparent);background:color-mix(in srgb, var(--cebbwf5-login-admin-success) 12%, var(--cebbwf5-login-admin-bg))}.cedros-login-admin-root .cedros-data-status--warning,.cedros-login-dashboard-card .cedros-data-status--warning{border-color:color-mix(in srgb, var(--cebbwf5-login-admin-warning) 32%, transparent);background:color-mix(in srgb, var(--cebbwf5-login-admin-warning) 12%, var(--cebbwf5-login-admin-bg))}.cedros-login-admin-root .cedros-data-status__actions,.cedros-login-dashboard-card .cedros-data-status__actions{flex-shrink:0;justify-content:flex-end;gap:.5rem;display:flex}.cedros-login-admin-root .cedros-data-empty-state,.cedros-login-admin-root .cedros-data-empty,.cedros-login-dashboard-card .cedros-data-empty{color:var(--cebbwf5-login-admin-muted);font-size:.875rem}.cedros-login-admin-root .cedros-data-empty-state{border:1px dashed var(--cebbwf5-login-admin-border);border-radius:var(--cebbwf5-login-admin-radius);text-align:center;justify-items:center;gap:.75rem;min-height:9rem;padding:1rem;display:grid}.cedros-login-admin-root .cedros-data-empty-state__illustration{border:1px solid var(--cebbwf5-login-admin-border);border-radius:var(--cebbwf5-login-admin-radius);background:var(--cebbwf5-login-admin-muted-bg);width:2.5rem;height:2.5rem;color:var(--cebbwf5-login-admin-muted);justify-content:center;align-items:center;display:inline-flex}.cedros-login-admin-root .cedros-data-empty-state__illustration svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:1.125rem;height:1.125rem}.cedros-login-admin-root .cedros-data-empty-state__copy{max-width:42ch;margin:0}.cedros-login-admin-root .cedros-data-empty-state__action{margin-top:.75rem}.cedros-login-admin-root .cedros-data-empty-state--in-table{border:0;border-radius:0}.cedros-login-admin-root .cedros-data-table-wrap{overscroll-behavior-inline:contain;scrollbar-width:thin;border:1px solid var(--cebbwf5-login-admin-border);border-radius:calc(var(--cebbwf5-login-admin-radius) - 1px);background:var(--cebbwf5-login-admin-card-bg);overflow-x:auto}.cedros-login-admin-root .cedros-data-table{border-collapse:collapse;width:100%}.cedros-login-admin-root .cedros-data-table th,.cedros-login-admin-root .cedros-data-table td{border-bottom:1px solid var(--cebbwf5-login-admin-border);color:var(--cebbwf5-login-admin-fg);text-align:left;padding:.55rem .75rem;font-size:.8125rem}.cedros-login-admin-root .cedros-data-table th{background:color-mix(in srgb, var(--cebbwf5-login-admin-bg) 90%, var(--cebbwf5-login-admin-accent));color:var(--cebbwf5-login-admin-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.6875rem;font-weight:600}.cedros-login-admin-root .cedros-data-table td:nth-child(3),.cedros-login-admin-root .cedros-data-table td:nth-child(4){font-variant-numeric:tabular-nums;text-align:right}.cedros-login-admin-root .cedros-data-row-actions{justify-content:flex-end;align-items:center;gap:.375rem;display:flex}.cedros-login-admin-root .cedros-dropdown-menu{display:inline-flex}.cedros-login-admin-root .cedros-data-row-actions__icon{border-radius:calc(var(--cebbwf5-login-admin-radius) - 1px);width:2rem;height:2rem;color:var(--cebbwf5-login-admin-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.cedros-login-admin-root .cedros-data-row-actions__icon:hover{background:var(--cebbwf5-login-admin-accent);color:var(--cebbwf5-login-admin-fg)}.cedros-login-admin-root .cedros-data-row-actions__icon svg,.cedros-login-admin-root .cedros-data-dialog__close svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:1rem;height:1rem}.cedros-login-admin-root .cedros-dropdown-menu__content{z-index:var(--z-dropdown,50);overscroll-behavior:contain;border:1px solid var(--cebbwf5-login-admin-border);border-radius:var(--cebbwf5-login-admin-radius);background:var(--cebbwf5-login-admin-card-bg);min-width:11rem;max-width:20rem;max-height:20rem;box-shadow:var(--cebbwf5-login-admin-shadow);margin-top:.25rem;padding:.25rem;position:fixed;overflow-y:auto}.cedros-login-admin-root .cedros-dropdown-menu__content[data-side=top]{margin-top:0;margin-bottom:.25rem}.cedros-login-admin-root .cedros-dropdown-menu__item{border-radius:calc(var(--cebbwf5-login-admin-radius) - 4px);width:100%;min-height:2rem;color:var(--cebbwf5-login-admin-fg);font:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:0;align-items:center;padding:0 .5rem;font-size:.8125rem;display:flex;overflow:hidden}.cedros-login-admin-root .cedros-dropdown-menu__item:hover,.cedros-login-admin-root .cedros-dropdown-menu__item:focus-visible{background:var(--cebbwf5-login-admin-accent);outline:none}.cedros-login-admin-root .cedros-dropdown-menu__item--danger{color:var(--cebbwf5-login-admin-error)}.cedros-login-admin-root .cedros-data-dialog__overlay{z-index:var(--z-modal,1000);background:color-mix(in srgb, var(--cebbwf5-login-admin-fg) 45%, transparent);-webkit-backdrop-filter:none;backdrop-filter:none;animation:cedros-fade-in var(--motion-duration-normal,.2s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));justify-content:center;align-items:center}.cedros-login-admin-root .cedros-data-dialog{border:1px solid var(--cebbwf5-login-admin-border);border-radius:var(--admin-radius,.75rem);background:var(--cebbwf5-login-admin-card-bg);width:min(100%,35rem);box-shadow:var(--cebbwf5-login-admin-shadow);animation:cedros-modal-in var(--motion-duration-normal,.2s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));flex-direction:column;display:flex;position:relative}.cedros-login-admin-root .cedros-confirm-dialog.cedros-data-dialog{gap:0;max-width:26rem;padding:0}.cedros-login-admin-root .cedros-confirm-dialog .cedros-data-dialog__heading,.cedros-login-admin-root .cedros-confirm-dialog .cedros-data-dialog__body{padding:1rem 1.25rem}.cedros-login-admin-root .cedros-confirm-dialog .cedros-confirm-dialog__actions{margin-top:0}.cedros-login-admin-root .cedros-data-dialog__close{width:2rem;height:2rem;padding:0;position:absolute;top:.75rem;right:.75rem}.cedros-login-admin-root .cedros-data-dialog__heading{border-bottom:1px solid var(--cebbwf5-login-admin-border);position:relative}.cedros-login-admin-root .cedros-data-dialog__title{color:var(--cebbwf5-login-admin-fg);margin:0;padding-right:2.5rem;font-size:1.15rem;font-weight:600;line-height:1.25}.cedros-login-admin-root .cedros-data-dialog__description{max-width:var(--cd-container-prose,60ch);color:var(--cebbwf5-login-admin-muted);margin:.25rem 2.5rem 0 0;font-size:.8125rem}.cedros-login-admin-root .cedros-data-dialog__body{flex-direction:column;gap:.75rem;display:flex}.cedros-login-admin-root .cedros-data-checkbox-row{color:var(--cebbwf5-login-admin-fg);align-items:center;gap:.5rem;font-size:.8125rem;display:inline-flex}.cedros-login-admin-root .cedros-login-admin-skeleton,.cedros-login-dashboard-card .cedros-login-dashboard-card__skeleton{flex-direction:column;gap:.5rem;display:flex}.cedros-login-admin-root .cedros-login-admin-skeleton__line,.cedros-login-dashboard-card .cedros-login-dashboard-card__skeleton-line{background:linear-gradient(90deg, var(--cebbwf5-login-admin-muted-bg), color-mix(in srgb, var(--cebbwf5-login-admin-border) 55%, var(--cebbwf5-login-admin-muted-bg)), var(--cebbwf5-login-admin-muted-bg));width:100%;height:.875rem;animation:cedros-shimmer var(--motion-duration-slow,1.4s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)) infinite;background-size:200% 100%;border-radius:9999px;display:block}.cedros-login-admin-root .cedros-login-admin-skeleton__line--short,.cedros-login-dashboard-card .cedros-login-dashboard-card__skeleton-line--short{width:62%}@media (width<=767px){.cedros-login-admin-root .cedros-data__header,.cedros-login-admin-root .cedros-data-status,.cedros-login-dashboard-card .cedros-data-status{flex-direction:column;align-items:stretch}.cedros-login-admin-root .cedros-data-tabs__list{max-width:100%;overflow-x:auto}.cedros-login-admin-root .cedros-invite-code-manager__header{flex-direction:column;align-items:stretch}}@media (prefers-reduced-motion:reduce){.cedros-login-admin-root .cedros-data-dialog__overlay,.cedros-login-admin-root .cedros-data-dialog,.cedros-login-admin-root .cedros-login-admin-skeleton__line,.cedros-login-dashboard-card .cedros-login-dashboard-card__skeleton-line{animation:none}}.cedros-login-admin-root .cedros-sortable-settings{gap:.5rem;min-width:0;display:grid}.cedros-login-admin-root .cedros-sortable-list{gap:.75rem;min-width:0;margin:0;padding:0;list-style:none;display:grid}.cedros-login-admin-root .cedros-sortable-item{touch-action:pan-x;min-width:0;transition:border-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), box-shadow var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));grid-template-columns:2rem minmax(0,1fr) auto;align-items:start;gap:.5rem;display:grid;position:relative}.cedros-login-admin-root .cedros-sortable-item[data-dragging=true]{z-index:2;border-color:var(--cebbwf5-login-admin-primary);box-shadow:var(--cebbwf5-login-shadow-overlay,var(--cebbwf5-login-admin-shadow))}.cedros-login-admin-root .cedros-sortable-item[data-drop-target=true]:before{background:var(--cebbwf5-login-admin-primary);content:\"\";border-radius:9999px;height:2px;position:absolute;top:-.375rem;left:0;right:0}.cedros-login-admin-root .cedros-sortable-handle{width:2rem;height:2rem;color:var(--cebbwf5-login-admin-muted);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;justify-content:center;align-items:center;margin-top:.75rem;display:inline-flex}.cedros-login-admin-root .cedros-sortable-handle:active{cursor:grabbing}.cedros-login-admin-root .cedros-sortable-handle svg,.cedros-login-admin-root .cedros-sortable-actions svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:1rem;height:1rem}.cedros-login-admin-root .cedros-sortable-handle svg circle{fill:currentColor;stroke:none}.cedros-login-admin-root .cedros-sortable-item__content{min-width:0}.cedros-login-admin-root .cedros-sortable-actions{transition:opacity var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), transform var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));margin-top:.75rem}@media (hover:hover) and (pointer:fine){.cedros-login-admin-root .cedros-sortable-actions{opacity:0;pointer-events:none;transform:translate(.25rem)}.cedros-login-admin-root .cedros-sortable-item:is(:hover,:focus-within) .cedros-sortable-actions{opacity:1;pointer-events:auto;transform:translate(0)}}.cedros-login-admin-root .cedros-sortable-actions button:disabled{cursor:not-allowed;opacity:.5}.cedros-login-admin-root .cedros-sortable-settings__hint{color:var(--cebbwf5-login-admin-muted);margin:0;font-size:.75rem}.cedros-login-admin-root .cedros-social-order-list{gap:.5rem;max-width:none}.cedros-login-admin-root .cedros-social-order-item{grid-template-columns:2rem 1.5rem minmax(0,1fr) auto auto;align-items:center;padding:.625rem .75rem}.cedros-login-admin-root .cedros-social-order-item .cedros-sortable-handle,.cedros-login-admin-root .cedros-social-order-item .cedros-sortable-actions{margin-top:0}.cedros-login-admin-root .cedros-social-order-item__icon{color:var(--cebbwf5-login-admin-muted);align-items:center;display:inline-flex}.cedros-login-admin-root .cedros-social-order-item__label{min-width:0;color:var(--cebbwf5-login-admin-fg);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:500;overflow:hidden}@media (width<=560px){.cedros-login-admin-root .cedros-sortable-item{grid-template-columns:2rem minmax(0,1fr)}.cedros-login-admin-root .cedros-sortable-actions{opacity:1;pointer-events:auto;grid-column:2;justify-content:flex-start;margin-top:0;transform:none}.cedros-login-admin-root .cedros-social-order-item{grid-template-columns:2rem 1.5rem minmax(0,1fr) auto}.cedros-login-admin-root .cedros-social-order-item .cedros-sortable-actions{grid-column:3/-1}}.cedros-login-dashboard-card{color:var(--cebbwf5-login-admin-fg);overflow:hidden}.cedros-login-dashboard-card .cedros-data-card__header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.cedros-login-dashboard-card .cedros-data-card__body{gap:.75rem;display:grid}.cedros-login-dashboard-card .cedros-data-card__body>p,.cedros-login-dashboard-card .cedros-data-status p,.cedros-login-dashboard-card .cedros-data-setup-notice p{margin:0}.cedros-login-dashboard-card .cedros-data-summary-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,11.25rem),1fr));gap:.75rem;margin:0;display:grid}.cedros-login-dashboard-card .cedros-data-metric{border:1px solid var(--cebbwf5-login-admin-border);border-radius:var(--cebbwf5-login-admin-radius);background:var(--cebbwf5-login-admin-card-bg);min-width:0;padding:.75rem}.cedros-login-dashboard-card .cedros-data-metric__label{color:var(--cebbwf5-login-admin-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.6875rem;font-weight:600}.cedros-login-dashboard-card .cedros-data-metric__value{color:var(--cebbwf5-login-admin-fg);font-variant-numeric:tabular-nums;margin:.25rem 0 0;font-size:1.5rem;font-weight:700}.cedros-login-dashboard-card .cedros-data-metric__hint{color:var(--cebbwf5-login-admin-muted);font-size:.75rem}.cedros-login-dashboard-card .cedros-data-setup-notice{border:1px solid var(--cebbwf5-login-admin-border);border-radius:var(--cebbwf5-login-admin-radius);flex-direction:column;gap:.75rem;padding:.75rem;display:flex}.cedros-login-dashboard-card .cedros-data-setup-notice__body{gap:.375rem;display:grid}.cedros-login-admin-root.cedros-data .cedros-auth-method-card{transition:border-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), box-shadow var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1))}.cedros-login-admin-root.cedros-data .cedros-auth-method-card-header{border-bottom:0}.cedros-login-admin-root.cedros-data .cedros-auth-method-card-body{border-top:1px solid var(--cebbwf5-login-admin-border);margin-top:0;padding:.9rem 1rem}.cedros-login-admin-root.cedros-data .cedros-setting-row{border-color:var(--cebbwf5-login-admin-border);border-radius:var(--cebbwf5-login-admin-radius);background:var(--cebbwf5-login-admin-card-bg);transition:background-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), border-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));grid-template-columns:minmax(0,1fr) minmax(12rem,2fr);gap:1.5rem;padding:1rem}.cedros-login-admin-root.cedros-data .cedros-auth-method-card-body .cedros-setting-row{background:0 0;border:0;border-radius:0;padding:0}.cedros-login-admin-root.cedros-data .cedros-setting-row-changed{border-color:var(--cebbwf5-login-admin-primary);background:color-mix(in srgb, var(--cebbwf5-login-admin-primary) 5%, var(--cebbwf5-login-admin-card-bg))}.cedros-login-admin-root.cedros-data .cedros-setting-row-warning{border-color:var(--cebbwf5-login-admin-warning)}.cedros-login-admin-root.cedros-data .cedros-setting-row-toggle{grid-template-columns:minmax(0,1fr) auto;align-items:center}.cedros-login-admin-root.cedros-data .cedros-setting-label{gap:.25rem}.cedros-login-admin-root.cedros-data .cedros-setting-name{color:var(--cebbwf5-login-admin-fg);font-size:.8125rem;font-weight:500}.cedros-login-admin-root.cedros-data .cedros-setting-description{color:var(--cebbwf5-login-admin-muted)}.cedros-login-admin-root.cedros-data .cedros-setting-description a,.cedros-login-admin-root.cedros-data .cedros-auth-method-card-description a{color:var(--cebbwf5-login-admin-link)}.cedros-login-admin-root.cedros-data .cedros-setting-control-toggle{align-items:flex-end}.cedros-login-admin-root.cedros-data .cedros-setting-warning{border-radius:calc(var(--cebbwf5-login-admin-radius) - 2px);background:color-mix(in srgb, var(--cebbwf5-login-admin-warning) 12%, var(--cebbwf5-login-admin-bg));color:var(--cebbwf5-login-admin-warning-fg)}.cedros-login-admin-root.cedros-data .cedros-data-input,.cedros-login-admin-root.cedros-data .cedros-setting-input{font:inherit;font-size:.8125rem}.cedros-login-admin-root.cedros-data .cedros-data-input::placeholder{color:var(--cebbwf5-login-admin-muted)}.cedros-login-admin-root.cedros-data .cedros-data-input:focus:not(:focus-visible){border-color:var(--cebbwf5-login-admin-border);box-shadow:none}.cedros-login-admin-root.cedros-data .cedros-setting-input[type=number]{appearance:auto;text-align:left}.cedros-login-admin-root.cedros-data .cedros-setting-input::-webkit-outer-spin-button{-webkit-appearance:auto;margin:0}.cedros-login-admin-root.cedros-data .cedros-setting-input::-webkit-inner-spin-button{-webkit-appearance:auto;margin:0}.cedros-login-admin-root.cedros-data .cedros-rp-card{padding:1rem}.cedros-login-admin-root.cedros-data .cedros-rp-settings{margin-top:.5rem}.cedros-login-admin-root.cedros-data .cedros-rp-overall-status{padding:.4rem .625rem}.cedros-login-admin-root.cedros-data .cedros-rp-summary{gap:1.5rem;margin:0;display:flex}.cedros-login-admin-root.cedros-data .cedros-rp-summary div{gap:.2rem;display:grid}.cedros-login-admin-root.cedros-data .cedros-rp-summary dt{color:var(--cebbwf5-login-admin-muted);font-size:.75rem}.cedros-login-admin-root.cedros-data .cedros-rp-summary dd{color:var(--cebbwf5-login-admin-fg);margin:0;font-size:.8125rem;font-weight:500}.cedros-login-admin-root.cedros-data .cedros-rp-card .cedros-data-input{box-sizing:border-box;width:100%;padding:.5rem .75rem}.cedros-login-admin-root.cedros-data .cedros-rp-policy-input{resize:vertical;min-height:4rem}.cedros-login-admin-root.cedros-data .cedros-toggle{color:var(--cebbwf5-login-admin-fg);font:inherit;cursor:pointer;background:0 0;border:0;flex:none;gap:.5rem;padding:0}.cedros-login-admin-root.cedros-data .cedros-toggle-track{border:1px solid var(--cebbwf5-login-admin-border);background:var(--cebbwf5-login-admin-muted-bg);width:2.35rem;height:1.3rem;box-shadow:none;transition:background-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), border-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), box-shadow var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));border-radius:9999px;position:relative}.cedros-login-admin-root.cedros-data .cedros-toggle-thumb{background:var(--cebbwf5-login-admin-card-bg);width:1rem;height:1rem;box-shadow:var(--cebbwf5-login-admin-shadow);transition:transform var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), width var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));border-radius:9999px;position:absolute;top:.0875rem;left:.0875rem}.cedros-login-admin-root.cedros-data .cedros-toggle-on .cedros-toggle-track{border-color:var(--cebbwf5-login-admin-primary);background:var(--cebbwf5-login-admin-primary);box-shadow:none}.cedros-login-admin-root.cedros-data .cedros-toggle-on .cedros-toggle-thumb,.cedros-login-admin-root.cedros-data .cedros-toggle-on:active:not(:disabled) .cedros-toggle-thumb{width:1rem;transform:translate(1.02rem)}.cedros-login-admin-root.cedros-data .cedros-toggle:active:not(:disabled) .cedros-toggle-thumb{width:1rem}.cedros-login-admin-root.cedros-data .cedros-toggle:focus-visible{outline:none}.cedros-login-admin-root.cedros-data .cedros-toggle:focus-visible .cedros-toggle-track{border-color:var(--cebbwf5-login-admin-ring);box-shadow:0 0 0 3px color-mix(in srgb, var(--cebbwf5-login-admin-ring) 14%, transparent);outline:none}.cedros-login-admin-root.cedros-data .cedros-toggle:disabled{cursor:not-allowed;opacity:.5}.cedros-login-admin-root.cedros-data .cedros-toggle-label{color:var(--cebbwf5-login-admin-fg);font-size:.8125rem;font-weight:500}.cedros-login-admin-root.cedros-data .cedros-data-checkbox-row input{accent-color:var(--cebbwf5-login-admin-primary)}.cedros-login-admin-root.cedros-data .cedros-data-checkbox-row input:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--cebbwf5-login-admin-ring) 14%, transparent);outline:none}.cedros-login-admin-root.cedros-data .cedros-autosave-status{border-radius:var(--cebbwf5-login-admin-radius);color:var(--cebbwf5-login-admin-muted);transition:opacity var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));padding:.25rem .5rem;font-size:.75rem}.cedros-login-admin-root.cedros-data .cedros-autosave-dot{background:var(--cebbwf5-login-admin-warning)}.cedros-login-admin-root.cedros-data .cedros-autosave-spinner{border-color:var(--cebbwf5-login-admin-muted);animation:cedros-spin var(--motion-duration-slow,.8s) var(--motion-ease-linear,linear) infinite;border-top-color:#0000}.cedros-login-admin-root.cedros-data .cedros-autosave-error-icon{background:var(--cebbwf5-login-admin-error);color:var(--cebbwf5-login-admin-error-fg)}.cedros-login-admin-root.cedros-data .cedros-autosave-status--saved{color:var(--cebbwf5-login-admin-success)}.cedros-login-admin-root.cedros-data .cedros-autosave-status--error,.cedros-login-admin-root.cedros-data .cedros-autosave-status--failed,.cedros-login-admin-root.cedros-data .cedros-autosave-status--conflict{color:var(--cebbwf5-login-admin-error)}.cedros-login-admin-root.cedros-data .cedros-sso-provider-list{border:1px solid var(--cebbwf5-login-admin-border);border-radius:var(--cebbwf5-login-admin-radius);background:var(--cebbwf5-login-admin-card-bg);gap:0;overflow:hidden}.cedros-login-admin-root.cedros-data .cedros-sso-provider-card{border:0;border-bottom:1px solid var(--cebbwf5-login-admin-border);background:0 0;border-radius:0;padding:1rem}.cedros-login-admin-root.cedros-data .cedros-sso-provider-card:last-child{border-bottom:0}.cedros-login-admin-root.cedros-data .cedros-sso-provider-card--disabled{opacity:.6}.cedros-login-admin-root.cedros-data .cedros-sso-provider-card-name,.cedros-login-admin-root.cedros-data .cedros-sso-provider-card-detail-value{color:var(--cebbwf5-login-admin-fg)}.cedros-login-admin-root.cedros-data .cedros-sso-provider-card-issuer,.cedros-login-admin-root.cedros-data .cedros-sso-provider-card-detail-label{color:var(--cebbwf5-login-admin-muted)}.cedros-login-admin-root.cedros-data code.cedros-sso-provider-card-detail-value{font-family:var(--cd-font-mono,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);font-size:.8125rem}.cedros-login-admin-root.cedros-data .cedros-sso-provider-card-details{border-color:var(--cebbwf5-login-admin-border)}.cedros-login-admin-root.cedros-data .cedros-data-table__empty-cell{border-bottom:0;padding:0}@media (width<=767px){.cedros-login-admin-root.cedros-data .cedros-setting-row{grid-template-columns:minmax(0,1fr);gap:.75rem}.cedros-login-admin-root.cedros-data .cedros-setting-row-toggle{grid-template-columns:minmax(0,1fr) auto}.cedros-login-admin-root.cedros-data .cedros-sso-provider-card-header{align-items:center}}@media (prefers-reduced-motion:reduce){.cedros-login-admin-root.cedros-data .cedros-autosave-spinner{animation:none}}.cedros-login-admin-root.cedros-data,.cedros-login-dashboard-card.cedros-data{--cebbwf5-login-admin-bg:var(--cd-bg,var(--admin-bg,oklch(100% 0 0)));--cebbwf5-login-admin-card-bg:var(--cd-card-bg,var(--admin-bg,oklch(100% 0 0)));--cebbwf5-login-admin-fg:var(--cd-fg,var(--admin-fg,oklch(14.5% 0 0)));--cebbwf5-login-admin-muted:var(--cd-muted,var(--admin-muted,oklch(55.6% 0 0)));--cebbwf5-login-admin-muted-bg:var(--cd-muted-bg,var(--admin-muted-bg,var(--cebbwf5-login-muted)));--cebbwf5-login-admin-accent:var(--cd-accent,var(--admin-accent,var(--cebbwf5-login-accent)));--cebbwf5-login-admin-border:var(--cd-border,var(--admin-border,var(--cebbwf5-login-border)));--cebbwf5-login-admin-input-bg:var(--cd-input-bg,var(--admin-bg,var(--cebbwf5-login-card)));--cebbwf5-login-admin-primary:var(--cd-primary,var(--admin-primary,var(--cebbwf5-login-primary)));--cebbwf5-login-admin-primary-fg:var(--cd-primary-fg,var(--admin-primary-fg,var(--cebbwf5-login-primary-foreground)));--cebbwf5-login-admin-link:var(--cd-link,var(--admin-link,var(--cebbwf5-login-link)));--cebbwf5-login-admin-ring:var(--cd-ring,var(--admin-ring,var(--cebbwf5-login-ring)));--cebbwf5-login-admin-error:var(--cd-error,var(--admin-error,var(--cebbwf5-login-error)));--cebbwf5-login-admin-error-fg:var(--cd-error-fg,oklch(98.5% 0 0));--cebbwf5-login-admin-success:var(--cd-success,var(--admin-success,var(--cebbwf5-login-success)));--cebbwf5-login-admin-warning:var(--cd-warning,var(--admin-warning,var(--cebbwf5-login-warning)));--cebbwf5-login-admin-warning-fg:var(--cd-warning-fg,var(--admin-warning,var(--cebbwf5-login-warning)));--cebbwf5-login-admin-info:var(--cd-info,var(--admin-info,var(--cebbwf5-login-info)));--cebbwf5-login-admin-radius:var(--cd-radius,var(--admin-radius,var(--cebbwf5-login-radius)));--cebbwf5-login-admin-shadow:var(--cd-shadow,var(--admin-shadow-sm,var(--cebbwf5-login-shadow-sm)));color:var(--cebbwf5-login-admin-fg);font-size:.875rem;line-height:1.5}.cedros-login-admin-root.cedros-dashboard__login,.cedros-login-admin-root .cedros-dashboard__team{gap:1rem;min-width:0;display:grid}.cedros-login-admin-root .cedros-dashboard__empty,.cedros-login-admin-root .cedros-dashboard__loading{min-height:10rem;color:var(--cebbwf5-login-admin-muted);text-align:center;justify-content:center;align-items:center;gap:.625rem;font-size:.875rem;display:flex}.cedros-login-admin-root .cedros-data-stack{flex-direction:column;gap:1rem;min-width:0;display:flex}.cedros-login-admin-root .cedros-system-settings{width:min(100%, var(--cd-container-settings,45rem))}.cedros-login-admin-root .cedros-auth-settings{width:min(100%, var(--cd-container-settings,56rem))}.cedros-login-admin-root .cedros-data-tabs,.cedros-login-admin-root .cedros-auth-subsection{gap:.75rem;min-width:0;display:grid}.cedros-login-admin-root .cedros-auth-tabs{margin-top:.25rem}.cedros-login-admin-root .cedros-auth-subsection-title{margin:0}.cedros-login-admin-root .cedros-data-tabs__panel{min-width:0}.cedros-login-admin-root .cedros-data__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.cedros-login-admin-root .cedros-data__header-text{flex:1;min-width:0}.cedros-login-admin-root .cedros-data__title{color:var(--cebbwf5-login-admin-fg);margin:0;font-size:1.125rem;font-weight:600;line-height:1.25}.cedros-login-admin-root .cedros-data__subtitle{max-width:60ch;color:var(--cebbwf5-login-admin-muted);margin:.25rem 0 0;font-size:.8125rem;line-height:1.5}.cedros-login-admin-root .cedros-data-actions,.cedros-login-dashboard-card .cedros-data-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.cedros-login-admin-root .cedros-data-tabs__list{border:1px solid var(--cebbwf5-login-admin-border);border-radius:var(--cebbwf5-login-admin-radius);background:color-mix(in srgb, var(--cebbwf5-login-admin-bg) 96%, var(--cebbwf5-login-admin-accent));flex-wrap:wrap;place-self:flex-start start;gap:.1875rem;max-width:100%;margin-bottom:0;padding:.1875rem;display:inline-flex}.cedros-login-admin-root.cedros-data .cedros-data-tabs__tab{border-radius:calc(var(--cebbwf5-login-admin-radius) - 3px);min-height:2rem;color:var(--cebbwf5-login-admin-muted);font:inherit;cursor:pointer;transition:background-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), border-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), box-shadow var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0 .75rem;font-size:.875rem;font-weight:500;display:inline-flex}.cedros-login-admin-root.cedros-data .cedros-data-tabs__tab:hover,.cedros-login-admin-root.cedros-data .cedros-data-tabs__tab[aria-selected=true]{border-radius:calc(var(--cebbwf5-login-admin-radius) - 3px);color:var(--cebbwf5-login-admin-fg)}.cedros-login-admin-root.cedros-data .cedros-data-tabs__tab[aria-selected=true]{border-color:var(--cebbwf5-login-admin-border);background:var(--cebbwf5-login-admin-bg);box-shadow:var(--cebbwf5-login-admin-shadow)}.cedros-login-admin-root.cedros-data .cedros-data-tabs__tab:focus-visible,.cedros-login-admin-root .cedros-data-btn:focus-visible,.cedros-login-dashboard-card .cedros-data-btn:focus-visible,.cedros-login-admin-root .cedros-data-input:focus-visible,.cedros-login-admin-root .cedros-data-dialog__close:focus-visible,.cedros-login-admin-root .cedros-data-row-actions__icon:focus-visible,.cedros-login-admin-root .cedros-data-dialog .cedros-button:focus-visible{border-color:var(--cebbwf5-login-admin-ring);box-shadow:0 0 0 3px color-mix(in srgb, var(--cebbwf5-login-admin-ring) 14%, transparent);outline:none}.cedros-login-admin-root .cedros-data-card,.cedros-login-dashboard-card .cedros-data-card{border:1px solid var(--cebbwf5-login-admin-border);border-radius:var(--cebbwf5-login-admin-radius);background:var(--cebbwf5-login-admin-card-bg);color:var(--cebbwf5-login-admin-fg)}.cedros-login-admin-root .cedros-data-card__header{border-bottom:1px solid var(--cebbwf5-login-admin-border);padding:.9rem 1rem}.cedros-login-admin-root .cedros-data-card__body{padding:.9rem 1rem}.cedros-login-admin-root .cedros-data-card__title{color:var(--cebbwf5-login-admin-fg);font-size:.875rem;font-weight:600}.cedros-login-admin-root .cedros-auth-method-card{padding:0}.cedros-login-admin-root .cedros-auth-method-card-body .cedros-setting-row{background:0 0;border:none;padding:0}.cedros-login-admin-root .cedros-data-field{min-width:0}.cedros-login-admin-root .cedros-data-field__description{color:var(--cebbwf5-login-admin-muted);margin:.375rem 0 0;font-size:.75rem}.cedros-login-admin-root .cedros-data-label{color:var(--cebbwf5-login-admin-fg);font-size:.8125rem;font-weight:500}.cedros-login-admin-root .cedros-data-input{border:1px solid var(--cebbwf5-login-admin-border);border-radius:calc(var(--cebbwf5-login-admin-radius) - 1px);background:var(--cebbwf5-login-admin-input-bg);min-height:2.25rem;color:var(--cebbwf5-login-admin-fg);transition:background-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), border-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), box-shadow var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));font-size:.8125rem}.cedros-login-admin-root .cedros-data-input:hover:not(:disabled),.cedros-login-admin-root select.cedros-data-select.cedros-setting-select:hover:not(:disabled){border-color:var(--cebbwf5-login-admin-ring)}.cedros-login-admin-root .cedros-data-input:disabled,.cedros-login-admin-root select.cedros-data-select.cedros-setting-select:disabled,.cedros-login-admin-root.cedros-data .cedros-data-tabs__tab:disabled{cursor:not-allowed;opacity:.5}.cedros-login-admin-root select.cedros-data-select.cedros-setting-select{border:1px solid var(--cebbwf5-login-admin-border);border-radius:calc(var(--cebbwf5-login-admin-radius) - 1px);background-color:var(--cebbwf5-login-admin-input-bg);width:100%;height:2.25rem;color:var(--cebbwf5-login-admin-fg);font:inherit;transition:background-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), border-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), box-shadow var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));background-image:none;padding:0 .75rem;font-size:.8125rem}.cedros-login-admin-root select.cedros-data-select.cedros-setting-select:focus{box-shadow:none}.cedros-login-admin-root select.cedros-data-select.cedros-setting-select:focus-visible{border-color:var(--cebbwf5-login-admin-ring);box-shadow:0 0 0 3px color-mix(in srgb, var(--cebbwf5-login-admin-ring) 14%, transparent);outline:none}.cedros-login-admin-root .cedros-data-btn,.cedros-login-dashboard-card .cedros-data-btn{border:1px solid var(--cebbwf5-login-admin-border);border-radius:calc(var(--cebbwf5-login-admin-radius) - 1px);background:var(--cebbwf5-login-admin-bg);min-height:2.25rem;color:var(--cebbwf5-login-admin-fg);font:inherit;cursor:pointer;transition:background-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), border-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), box-shadow var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), transform var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));justify-content:center;align-items:center;gap:.375rem;padding:0 .75rem;font-size:.8125rem;font-weight:500;display:inline-flex}.cedros-login-admin-root .cedros-data-btn--sm,.cedros-login-dashboard-card .cedros-data-btn--sm{min-height:2rem;padding:0 .5rem;font-size:.8125rem}.cedros-login-admin-root .cedros-data-btn--primary,.cedros-login-dashboard-card .cedros-data-btn--primary{border-color:var(--cebbwf5-login-admin-primary);background:var(--cebbwf5-login-admin-primary);color:var(--cebbwf5-login-admin-primary-fg)}.cedros-login-admin-root .cedros-data-btn--secondary,.cedros-login-dashboard-card .cedros-data-btn--secondary{color:var(--cebbwf5-login-admin-fg);background:0 0}.cedros-login-admin-root .cedros-data-btn--danger,.cedros-login-dashboard-card .cedros-data-btn--danger{border-color:var(--cebbwf5-login-admin-error);background:var(--cebbwf5-login-admin-error);color:var(--cebbwf5-login-admin-error-fg)}.cedros-login-admin-root .cedros-data-btn--ghost{background:0 0;border-color:#0000}.cedros-login-admin-root .cedros-data-btn:hover:not(:disabled),.cedros-login-dashboard-card .cedros-data-btn:hover:not(:disabled){box-shadow:var(--cebbwf5-login-admin-shadow);transform:translateY(-1px)}.cedros-login-admin-root .cedros-data-btn--secondary:hover:not(:disabled),.cedros-login-admin-root .cedros-data-btn--ghost:hover:not(:disabled),.cedros-login-dashboard-card .cedros-data-btn--secondary:hover:not(:disabled){background:var(--cebbwf5-login-admin-accent)}.cedros-login-admin-root .cedros-data-btn--primary:hover:not(:disabled),.cedros-login-dashboard-card .cedros-data-btn--primary:hover:not(:disabled){background:color-mix(in srgb, var(--cebbwf5-login-admin-primary) 88%, var(--cebbwf5-login-admin-bg))}.cedros-login-admin-root .cedros-data-btn--danger:hover:not(:disabled),.cedros-login-dashboard-card .cedros-data-btn--danger:hover:not(:disabled){background:color-mix(in srgb, var(--cebbwf5-login-admin-error) 88%, var(--cebbwf5-login-admin-bg))}.cedros-login-admin-root .cedros-data-btn:active:not(:disabled),.cedros-login-dashboard-card .cedros-data-btn:active:not(:disabled){transform:scale(.98)}.cedros-login-admin-root .cedros-data-btn:disabled,.cedros-login-dashboard-card .cedros-data-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}:where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop){--cebbwf5-login-primary:var(--cebbwf5-runtime-action-bg,var(--cebbwf5-primary,#0f172a));--cebbwf5-login-primary-foreground:var(--cebbwf5-runtime-action-fg,var(--cebbwf5-primary-foreground,#f8fafc));--cebbwf5-login-background:var(--cebbwf5-runtime-bg,var(--cebbwf5-background,#fff));--cebbwf5-login-foreground:var(--cebbwf5-runtime-text,var(--cebbwf5-foreground,#020817));--cebbwf5-login-card:var(--cebbwf5-runtime-panel,var(--cebbwf5-card,#fff));--cebbwf5-login-muted:var(--cebbwf5-runtime-accent-soft,var(--cebbwf5-muted,#f1f5f9));--cebbwf5-login-muted-foreground:var(--cebbwf5-runtime-muted,var(--cebbwf5-muted-foreground,#64748b));--cebbwf5-login-accent:var(--cebbwf5-runtime-accent-soft,var(--cebbwf5-accent,#f1f5f9));--cebbwf5-accent-foreground:var(--cebbwf5-login-foreground);--cebbwf5-login-border:var(--cebbwf5-runtime-border,var(--cebbwf5-border,#e2e8f0));--cebbwf5-input:var(--cebbwf5-runtime-border,var(--cebbwf5-border,#e2e8f0));--cebbwf5-input-fill:var(--cebbwf5-login-background);--cebbwf5-login-ring:var(--cebbwf5-runtime-accent,var(--cebbwf5-ring,#020817));--cebbwf5-login-radius:var(--cebbwf5-radius,.5rem);--cebbwf5-radius-compact:var(--cebbwf5-radius-xs,.375rem);--cebbwf5-radius-control:var(--cebbwf5-radius-sm,var(--cebbwf5-login-radius));--cebbwf5-radius-field:var(--cebbwf5-radius-md,.75rem);--cebbwf5-radius-card:var(--cebbwf5-radius-lg,1rem);--cebbwf5-radius-overlay:var(--cebbwf5-radius-xl,1.5rem);--cebbwf5-destructive:var(--cebbwf5-login-error);--cebbwf5-destructive-foreground:var(--cebbwf5-login-foreground);--cebbwf5-login-warning:var(--cebbwf5-runtime-warning,var(--cebbwf5-warning,#f59f0a));--cebbwf5-warning-light:color-mix(in srgb, var(--cebbwf5-login-warning) 14%, transparent);--cebbwf5-login-success:var(--cebbwf5-success-light,var(--cebbwf5-success,#21c45d));--cebbwf5-login-success-soft:color-mix(in srgb, var(--cebbwf5-login-success) 14%, transparent);--cebbwf5-destructive-light:color-mix(in srgb, var(--cebbwf5-destructive) 12%, transparent);--cebbwf5-login-error:var(--cebbwf5-runtime-error,var(--cebbwf5-error,#ef4444));--cebbwf5-login-info:var(--cebbwf5-info,#2563eb);--cebbwf5-login-link:var(--cebbwf5-runtime-accent,var(--cebbwf5-link,#2563eb));--cebbwf5-login-text:var(--cebbwf5-login-foreground);--cebbwf5-ease-out:cubic-bezier(.16, 1, .3, 1);--cebbwf5-ease-in-out:cubic-bezier(.65, 0, .35, 1);--cebbwf5-ease-spring:cubic-bezier(.34, 1.56, .64, 1);--cebbwf5-duration-fast:.15s;--cebbwf5-duration-normal:.2s;--cebbwf5-duration-slow:.3s;--cebbwf5-login-shadow-xs:var(--cebbwf5-shadow-sm,0 1px 2px 0 #0000000d);--cebbwf5-login-shadow-sm:var(--cebbwf5-shadow-sm,0 1px 2px 0 #0000000d, 0 1px 1px -1px #00000012);--cebbwf5-login-shadow-md:var(--cebbwf5-shadow-md,0 2px 4px -1px #0000000f, 0 4px 10px -2px #00000014);--cebbwf5-login-shadow-lg:var(--cebbwf5-shadow-lg,0 4px 8px -2px #00000014, 0 12px 24px -6px #0000001f);--cebbwf5-login-shadow-overlay:var(--cebbwf5-shadow-lg,0 8px 16px -6px #0000001f, 0 25px 50px -12px #00000040);--cebbwf5-edge-highlight:inset 0 1px 0 0 #ffffff1a;--cebbwf5-focus-halo:0 0 0 3px color-mix(in srgb, var(--cebbwf5-login-ring) 15%, transparent);--cebbwf5-surface-sheen:linear-gradient(180deg, color-mix(in srgb, var(--cebbwf5-login-foreground) 2%, transparent), transparent 42%)}:where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop).cebbwf5-dark,:where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop).dark,:where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop)[data-theme=dark],:where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop)[data-color-mode=dark],:where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop)[data-color-scheme=dark],.cebbwf5-dark :where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop),.dark :where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop),[data-theme=dark] :where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop),[data-color-mode=dark] :where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop),[data-color-scheme=dark] :where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop){--cebbwf5-login-primary:var(--cebbwf5-runtime-action-bg,var(--cebbwf5-primary,#f8fafc));--cebbwf5-login-primary-foreground:var(--cebbwf5-runtime-action-fg,var(--cebbwf5-primary-foreground,#0f172a));--cebbwf5-login-background:var(--cebbwf5-runtime-bg,var(--cebbwf5-background,#020817));--cebbwf5-login-foreground:var(--cebbwf5-runtime-text,var(--cebbwf5-foreground,#f8fafc));--cebbwf5-login-card:var(--cebbwf5-runtime-panel,var(--cebbwf5-card,#020817));--cebbwf5-login-muted:var(--cebbwf5-runtime-accent-soft,var(--cebbwf5-muted,#1e293b));--cebbwf5-login-muted-foreground:var(--cebbwf5-runtime-muted,var(--cebbwf5-muted-foreground,#94a3b8));--cebbwf5-login-accent:var(--cebbwf5-runtime-accent-soft,var(--cebbwf5-accent,#1e293b));--cebbwf5-accent-foreground:var(--cebbwf5-login-foreground);--cebbwf5-login-border:var(--cebbwf5-runtime-border,var(--cebbwf5-border,#1e293b));--cebbwf5-input:var(--cebbwf5-runtime-border,var(--cebbwf5-border,#1e293b));--cebbwf5-input-fill:var(--cebbwf5-login-background);--cebbwf5-login-ring:var(--cebbwf5-runtime-accent,var(--cebbwf5-ring,#cbd5e1));--cebbwf5-destructive:var(--cebbwf5-login-error);--cebbwf5-destructive-foreground:var(--cebbwf5-login-foreground);--cebbwf5-destructive-light:color-mix(in srgb, var(--cebbwf5-destructive) 12%, transparent);--cebbwf5-login-warning:var(--cebbwf5-runtime-warning,var(--cebbwf5-warning,#f59f0a));--cebbwf5-warning-light:color-mix(in srgb, var(--cebbwf5-login-warning) 14%, transparent);--cebbwf5-login-success:var(--cebbwf5-success-dark,var(--cebbwf5-success,#21c45d));--cebbwf5-login-success-soft:color-mix(in srgb, var(--cebbwf5-login-success) 14%, transparent);--cebbwf5-login-error:var(--cebbwf5-runtime-error,var(--cebbwf5-error,#7f1d1d));--cebbwf5-login-info:var(--cebbwf5-info,#3b82f6);--cebbwf5-login-link:var(--cebbwf5-runtime-accent,var(--cebbwf5-link,#3b82f6));--cebbwf5-login-text:var(--cebbwf5-login-foreground);--cebbwf5-login-shadow-xs:var(--cebbwf5-shadow-sm,0 1px 2px 0 #0000004d);--cebbwf5-login-shadow-sm:var(--cebbwf5-shadow-sm,0 1px 2px 0 #0000004d, 0 1px 1px -1px #0006);--cebbwf5-login-shadow-md:var(--cebbwf5-shadow-md,0 2px 4px -1px #00000059, 0 4px 10px -2px #00000073);--cebbwf5-login-shadow-lg:var(--cebbwf5-shadow-lg,0 4px 8px -2px #00000073, 0 12px 24px -6px #0000008c);--cebbwf5-login-shadow-overlay:var(--cebbwf5-shadow-lg,0 8px 16px -6px #00000080, 0 25px 50px -12px #000000b3);--cebbwf5-edge-highlight:inset 0 1px 0 0 #ffffff0f;--cebbwf5-surface-sheen:linear-gradient(180deg, color-mix(in srgb, var(--cebbwf5-login-foreground) 3%, transparent), transparent 42%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:where(.cedros-login-admin-root,.cedros-login-admin-root *,.cedros-login-form,.cedros-login-form *,.cedros-login-form-shell,.cedros-login-form-shell *,.cedros-auth-form,.cedros-auth-form *,.cedros-account-workspace-block,.cedros-account-workspace-block *,.cedros-dashboard,.cedros-dashboard *,.cedros-login-dashboard-card,.cedros-login-dashboard-card *,.cedros-modal-backdrop,.cedros-modal-backdrop *){box-sizing:border-box;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.cedros-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes cedros-spin{to{transform:rotate(360deg)}}@keyframes cedros-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes cedros-fade-in{0%{opacity:0}to{opacity:1}}@keyframes cedros-fade-in-scale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes cedros-slide-up-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes cedros-slide-down-fade{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes cedros-shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}@keyframes cedros-check-draw{to{stroke-dashoffset:0}}@keyframes cedros-pop{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes cedros-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes cedros-modal-in{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes cedros-success-pop{0%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){[class*=cedros-],[class*=cedros-]:before,[class*=cedros-]:after,[class*=cedros-] svg *{scroll-behavior:auto!important;transition-duration:.001ms!important;transition-delay:0s!important;animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}.cedros-button{white-space:nowrap;border-radius:var(--cebbwf5-radius-control);height:2.5rem;transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), box-shadow var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), opacity var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);cursor:pointer;border:1px solid #0000;outline:none;justify-content:center;align-items:center;gap:.5rem;padding:0 1rem;font-size:.875rem;font-weight:500;line-height:1.25rem;display:inline-flex}.cedros-button:hover,.cedros-button:focus-visible,.cedros-button:active{will-change:transform}.cedros-directional-panel{outline:none;width:100%;min-width:0}.cedros-collapsible{display:grid}.cedros-collapsible__inner{min-height:0;overflow:hidden}.cedros-button:focus-visible{outline:2px solid var(--cebbwf5-login-ring);outline-offset:2px}.cedros-button:active:not(:disabled){transform:translateY(0)scale(.98)}.cedros-button:disabled{pointer-events:none;opacity:.5}.cedros-button-sm{border-radius:calc(var(--cebbwf5-login-radius) - 2px);height:2.25rem;padding:0 .75rem;font-size:.75rem}.cedros-button-md{height:2.5rem;padding:0 1rem}.cedros-button-lg{height:2.75rem;padding:0 2rem}.cedros-button-primary{background-color:var(--cebbwf5-login-primary);color:var(--cebbwf5-login-primary-foreground);box-shadow:var(--cebbwf5-edge-highlight), var(--cebbwf5-login-shadow-xs)}.cedros-button-primary:hover:not(:disabled){background-color:color-mix(in srgb, var(--cebbwf5-login-primary) 85%, var(--cebbwf5-login-primary-foreground));box-shadow:var(--cebbwf5-edge-highlight), var(--cebbwf5-login-shadow-md);transform:translateY(-1px)}.cedros-button-primary:active:not(:disabled){box-shadow:var(--cebbwf5-edge-highlight), var(--cebbwf5-login-shadow-xs)}.cedros-button-secondary{background-color:var(--cebbwf5-login-muted);color:var(--cebbwf5-accent-foreground)}.cedros-button-secondary:hover:not(:disabled){background-color:var(--cebbwf5-login-accent,#dbe6f0)}.cedros-button-outline{border-color:var(--cebbwf5-input);background-color:var(--cebbwf5-login-background);color:var(--cebbwf5-login-foreground);box-shadow:var(--cebbwf5-login-shadow-xs)}.cedros-button-outline:hover:not(:disabled){background-color:var(--cebbwf5-login-accent);border-color:color-mix(in srgb, var(--cebbwf5-login-ring) 18%, var(--cebbwf5-input));color:var(--cebbwf5-accent-foreground);box-shadow:var(--cebbwf5-login-shadow-sm)}.cedros-button-ghost{color:var(--cebbwf5-login-foreground);background-color:#0000}.cedros-button-ghost:hover:not(:disabled){background-color:var(--cebbwf5-login-accent);color:var(--cebbwf5-accent-foreground)}.cedros-button-dark-navbar{color:var(--cebbwf5-login-primary-foreground);border:1px solid color-mix(in srgb, var(--cebbwf5-login-primary-foreground) 30%, transparent);background-color:#0000}.cedros-button-dark-navbar:hover:not(:disabled){background-color:color-mix(in srgb, var(--cebbwf5-login-primary-foreground) 10%, transparent);border-color:color-mix(in srgb, var(--cebbwf5-login-primary-foreground) 50%, transparent)}.cedros-button-social{background-color:var(--cebbwf5-login-card);color:var(--cebbwf5-login-foreground);border-color:var(--cebbwf5-login-border);box-shadow:var(--cebbwf5-login-shadow-xs)}.cedros-button-social:hover:not(:disabled){background-color:var(--cebbwf5-login-muted);border-color:color-mix(in srgb, var(--cebbwf5-login-ring) 15%, var(--cebbwf5-login-border));box-shadow:var(--cebbwf5-login-shadow-sm)}.cedros-button-social-outline{color:var(--cebbwf5-login-foreground);border-color:var(--cebbwf5-login-border);background-color:#0000}.cedros-button-social-outline:hover:not(:disabled){background-color:color-mix(in srgb, var(--cebbwf5-login-foreground) 5%, transparent)}.cedros-button-icon{flex-shrink:0}.cedros-form{flex-direction:column;gap:1.5rem;display:flex}.cedros-form-field{flex-direction:column;gap:.5rem;display:flex}.cedros-signup-plans{line-height:1.5}.cedros-signup-availability{border:1px solid color-mix(in srgb, var(--cebbwf5-login-info) 24%, var(--cebbwf5-login-border));border-radius:var(--cebbwf5-radius-field);background:color-mix(in srgb, var(--cebbwf5-login-info) 7%, transparent);color:var(--cebbwf5-login-muted-foreground);align-items:flex-start;gap:.625rem;padding:.75rem .875rem;font-size:.8125rem;line-height:1.45;display:flex}.cedros-signup-availability strong{color:var(--cebbwf5-login-foreground);font-weight:600}.cedros-signup-availability-dot{background:var(--cebbwf5-login-info);width:.5rem;height:.5rem;box-shadow:0 0 0 3px color-mix(in srgb, var(--cebbwf5-login-info) 14%, transparent);border-radius:9999px;flex:none;margin-top:.3125rem}.cedros-signup-availability[data-full=true]{border-color:color-mix(in srgb, var(--cebbwf5-login-warning) 28%, var(--cebbwf5-login-border));background:var(--cebbwf5-warning-light)}.cedros-signup-availability[data-full=true] .cedros-signup-availability-dot{background:var(--cebbwf5-login-warning);box-shadow:0 0 0 3px var(--cebbwf5-warning-light)}.cedros-label{color:var(--cebbwf5-login-foreground);font-size:.875rem;font-weight:500;line-height:1}.cedros-label-row{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.cedros-label-row .cedros-label{margin-bottom:0}.cedros-optional{color:var(--cebbwf5-login-muted-foreground);font-weight:400}.cedros-input{border:1px solid var(--cebbwf5-input);border-radius:var(--cebbwf5-radius-field);width:100%;height:2.5rem;color:var(--cebbwf5-login-foreground);transition:border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), box-shadow var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);box-shadow:var(--cebbwf5-login-shadow-xs);background-color:#0000;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;display:flex}.cedros-input::placeholder{color:var(--cebbwf5-login-muted-foreground)}.cedros-input:hover:not(:disabled):not(:focus){border-color:color-mix(in srgb, var(--cebbwf5-login-ring) 25%, var(--cebbwf5-input))}.cedros-input:focus,.cedros-input:focus-visible{border-color:var(--cebbwf5-login-ring);box-shadow:var(--cebbwf5-focus-halo);outline:none}.cedros-input[aria-invalid=true]{border-color:var(--cebbwf5-destructive)}.cedros-input[aria-invalid=true]:focus,.cedros-input[aria-invalid=true]:focus-visible{border-color:var(--cebbwf5-destructive);box-shadow:0 0 0 3px color-mix(in srgb, var(--cebbwf5-destructive) 15%, transparent)}.cedros-input:disabled{cursor:not-allowed;opacity:.5}.cebbwf5-dark .cedros-input,.dark .cedros-input,[data-theme=dark] .cedros-input,[data-color-mode=dark] .cedros-input,[data-color-scheme=dark] .cedros-input{background-color:color-mix(in srgb, var(--cebbwf5-login-muted) 35%, transparent)}.cedros-input:-webkit-autofill{-webkit-text-fill-color:var(--cebbwf5-login-foreground);caret-color:var(--cebbwf5-login-foreground);box-shadow:inset 0 0 0 1000px var(--cebbwf5-login-background), var(--cebbwf5-login-shadow-xs)}.cedros-input:-webkit-autofill:hover{-webkit-text-fill-color:var(--cebbwf5-login-foreground);caret-color:var(--cebbwf5-login-foreground);box-shadow:inset 0 0 0 1000px var(--cebbwf5-login-background), var(--cebbwf5-login-shadow-xs)}.cedros-input:-webkit-autofill:focus{-webkit-text-fill-color:var(--cebbwf5-login-foreground);caret-color:var(--cebbwf5-login-foreground);box-shadow:inset 0 0 0 1000px var(--cebbwf5-login-background), var(--cebbwf5-focus-halo)}.cedros-input[type=file]{background:0 0;border:none;padding:0;font-size:.875rem}.cedros-input-error{color:var(--cebbwf5-destructive);font-size:.875rem;font-weight:500}p.cedros-input-error{margin:.5rem 0 0}.cedros-input-description{color:var(--cebbwf5-login-muted-foreground);font-size:.875rem}.cedros-password-wrapper{align-items:center;display:flex;position:relative}.cedros-password-wrapper .cedros-input{padding-right:2.5rem}.cedros-password-toggle{border-radius:calc(var(--cebbwf5-login-radius) - 2px);color:var(--cebbwf5-login-muted-foreground);cursor:pointer;transition:color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);background:0 0;border:none;padding:.25rem;position:absolute;right:.5rem}.cedros-password-toggle:hover{color:var(--cebbwf5-login-foreground);background-color:var(--cebbwf5-login-muted)}.cedros-password-toggle:active{transform:scale(.95)}.cedros-password-meter{margin-top:.5rem}.cedros-password-strength{align-items:center;gap:.5rem;display:flex}.cedros-strength-bar{background-color:var(--cebbwf5-login-muted);border-radius:2px;flex:1;height:4px;overflow:hidden}.cedros-strength-fill{background-color:var(--cebbwf5-login-warning);height:100%;transition:width var(--cebbwf5-duration-slow) var(--cebbwf5-ease-out), background-color var(--cebbwf5-duration-normal) var(--cebbwf5-ease-out)}.cedros-strength-fill[data-valid=true]{background-color:var(--cebbwf5-login-success)}.cedros-strength-label{text-align:right;text-transform:capitalize;min-width:3.5ch;color:var(--cebbwf5-login-muted-foreground);flex-shrink:0;font-size:.75rem}.cedros-strength-label[data-valid=true]{color:var(--cebbwf5-login-success);font-weight:600}.cedros-password-requirements-title{color:var(--cebbwf5-login-foreground);margin:.625rem 0 .375rem;font-size:.75rem;font-weight:500}.cedros-password-requirements{gap:.3125rem;margin:0;padding:0;font-size:.75rem;line-height:1.4;list-style:none;display:grid}.cedros-password-requirement{color:var(--cebbwf5-login-foreground);transition:color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);align-items:center;gap:.5rem;display:flex}.cedros-password-requirement[data-met=true]{color:var(--cebbwf5-login-muted-foreground)}.cedros-requirement-icon{color:var(--cebbwf5-login-muted-foreground);transition:color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);flex-shrink:0;display:inline-flex}.cedros-password-requirement[data-met=true] .cedros-requirement-icon{color:var(--cebbwf5-login-success)}.cedros-requirement-text{min-width:0}.cedros-error{border-radius:var(--cebbwf5-login-radius);background-color:color-mix(in srgb, var(--cebbwf5-destructive) 10%, transparent);color:var(--cebbwf5-destructive);animation:cedros-shake .4s var(--cebbwf5-ease-out);align-items:flex-start;gap:.5rem;padding:.75rem;font-size:.875rem;display:flex}.cedros-error-icon{flex-shrink:0;margin-top:.125rem}.cedros-error-message{flex:1}.cedros-error-boundary{min-height:18rem;color:var(--cebbwf5-login-foreground);justify-content:center;align-items:center;padding:2rem;display:flex}.cedros-error-boundary-content{text-align:center;justify-items:center;gap:.75rem;max-width:28rem;display:grid}.cedros-error-boundary-icon{color:var(--cebbwf5-destructive)}.cedros-error-boundary-title{color:var(--cebbwf5-login-foreground);margin:0;font-size:1.125rem;font-weight:600}.cedros-error-boundary-message{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem;line-height:1.5}.cedros-error-boundary-details{width:100%;color:var(--cebbwf5-login-muted-foreground);text-align:left;font-size:.8125rem}.cedros-error-boundary-details pre{border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);background:var(--cebbwf5-login-muted);max-height:12rem;color:var(--cebbwf5-login-foreground);white-space:pre-wrap;padding:.75rem;overflow:auto}.cedros-error-dismiss{border-radius:calc(var(--cebbwf5-login-radius) - 2px);color:currentColor;cursor:pointer;opacity:.7;transition:opacity var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);background:0 0;border:none;flex-shrink:0;padding:.125rem}.cedros-error-dismiss:hover{opacity:1}.cedros-error-dismiss:active{transform:scale(.9)}.cedros-link{color:var(--cebbwf5-login-foreground);font:inherit;cursor:pointer;text-underline-offset:4px;transition:opacity var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);background:0 0;border:none;padding:0;font-weight:500;text-decoration:underline}.cedros-link:hover{opacity:.7}.cedros-link:focus-visible{outline:2px solid var(--cebbwf5-login-ring);outline-offset:2px;border-radius:2px}.cedros-link-sm{font-size:.875rem}.cedros-link-muted{color:var(--cebbwf5-login-muted-foreground)}.cedros-link-accent{color:var(--cebbwf5-login-link)}.cedros-link-accent:hover{opacity:.8}.cedros-form-footer{text-align:center;color:var(--cebbwf5-login-muted-foreground);margin:1rem 0 0;font-size:.875rem}.cedros-forgot-password-link{text-align:right;margin-top:.25rem;font-size:.8125rem;display:block}.cedros-forgot-password-link:disabled{opacity:.6;cursor:not-allowed}.cedros-instant-link-success{text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:2rem 1rem;display:flex}.cedros-checkbox-field{margin-top:.5rem;margin-bottom:.5rem}.cedros-checkbox-label{cursor:pointer;color:var(--cebbwf5-login-foreground);align-items:flex-start;gap:.5rem;font-size:.875rem;display:flex}.cedros-checkbox{width:1rem;height:1rem;accent-color:var(--cebbwf5-login-primary);cursor:pointer;transition:transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-spring);flex-shrink:0;margin-top:.125rem}.cedros-checkbox:checked{animation:cedros-pop .2s var(--cebbwf5-ease-out)}.cedros-checkbox:disabled{cursor:not-allowed;opacity:.5}.cedros-checkbox-text{line-height:1.4}.cedros-checkbox-text .cedros-link{font-size:inherit}.cedros-required{color:var(--cebbwf5-destructive);margin-left:.125rem}.cedros-divider{align-items:center;gap:1rem;margin:1rem 0;display:flex}.cedros-divider:before,.cedros-divider:after{content:\"\";flex:1;height:1px}.cedros-divider:before{background:linear-gradient(to right, transparent, var(--cebbwf5-login-border))}.cedros-divider:after{background:linear-gradient(to left, transparent, var(--cebbwf5-login-border))}.cedros-divider span{color:var(--cebbwf5-login-muted-foreground);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.cedros-social-buttons{flex-direction:column;gap:.75rem;display:flex}.cedros-social-buttons .cedros-button{width:100%}.cedros-social-icon{color:currentColor;flex-shrink:0;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;line-height:1;display:inline-flex}.cedros-social-icon svg{width:1.25rem;height:1.25rem;display:block}.cedros-login-button-block{width:min(100%,24rem);margin-inline:auto;display:flex}.cedros-login-button-block--start{justify-content:flex-start}.cedros-login-button-block--center{justify-content:center}.cedros-login-button-block--end{justify-content:flex-end}.cedros-login-button{border-radius:var(--cebbwf5-auth-radius,var(--cebbwf5-login-radius,.5rem));min-height:2.5rem;transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), box-shadow var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);border:1px solid #0000;justify-content:center;align-items:center;padding:0 1rem;font-size:.875rem;font-weight:600;line-height:1.25rem;text-decoration:none;display:inline-flex}.cedros-login-button--primary{background:var(--cebbwf5-runtime-action-bg,var(--cebbwf5-login-primary));color:var(--cebbwf5-runtime-action-fg,var(--cebbwf5-login-primary-foreground));box-shadow:var(--cebbwf5-login-shadow-xs)}.cedros-login-button--secondary{border-color:var(--cebbwf5-runtime-border,var(--cebbwf5-login-border));background:var(--cebbwf5-runtime-panel,var(--cebbwf5-login-card));color:var(--cebbwf5-runtime-text,var(--cebbwf5-login-foreground))}.cedros-login-button--link{min-height:auto;color:var(--cebbwf5-runtime-accent,var(--cebbwf5-login-link));text-underline-offset:.15em;background:0 0;padding:0;text-decoration:underline}.cedros-login-button:hover{border-color:color-mix(in srgb, var(--cebbwf5-runtime-text,var(--cebbwf5-login-foreground)) 12%, var(--cebbwf5-runtime-border,var(--cebbwf5-login-border)))}.cedros-login-button--link:hover{border-color:#0000}.cedros-login-button:focus-visible{outline:2px solid var(--cebbwf5-runtime-accent,var(--cebbwf5-login-ring));outline-offset:2px}.cedros-tabs{border-bottom:1px solid var(--cebbwf5-login-border);margin-bottom:1.5rem;display:flex}.cedros-tab{border-radius:calc(var(--cebbwf5-login-radius) - 2px) calc(var(--cebbwf5-login-radius) - 2px) 0 0;color:var(--cebbwf5-login-muted-foreground);cursor:pointer;transition:color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:.75rem 1rem;font-size:.875rem;font-weight:500;position:relative}.cedros-tab:hover{color:var(--cebbwf5-login-foreground);background-color:color-mix(in srgb, var(--cebbwf5-login-muted) 60%, transparent)}.cedros-tab:after{content:\"\";background-color:var(--cebbwf5-login-link);height:2px;transition:transform var(--cebbwf5-duration-normal) var(--cebbwf5-ease-out);border-radius:999px;position:absolute;bottom:-2px;left:.75rem;right:.75rem;transform:scaleX(0)}.cedros-tab-active{color:var(--cebbwf5-login-foreground)}.cedros-tab-active:after{transform:scaleX(1)}.cedros-modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:cedros-fade-in var(--cebbwf5-duration-normal) var(--cebbwf5-ease-out);background-color:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.cedros-modal{background-color:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-radius-overlay);width:100%;max-width:24rem;max-height:calc(100vh - 2rem);box-shadow:var(--cebbwf5-login-shadow-overlay);animation:cedros-modal-in var(--cebbwf5-duration-slow) var(--cebbwf5-ease-out);overflow-y:auto}.cedros-modal:focus{outline:none}.cedros-modal-header{border-bottom:1px solid var(--cebbwf5-login-border);justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.cedros-modal-title{color:var(--cebbwf5-login-foreground);margin:0;font-size:1.125rem;font-weight:600}.cedros-modal-close{color:var(--cebbwf5-login-muted-foreground);cursor:pointer;border-radius:var(--cebbwf5-login-radius);transition:color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);background:0 0;border:none;padding:.25rem}.cedros-modal-close:hover{color:var(--cebbwf5-login-foreground);background-color:var(--cebbwf5-login-muted)}.cedros-modal-close:active{transform:scale(.9)}.cedros-modal-content,.cedros-modal-body{padding:1.5rem}.cedros-confirm-dialog{background:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-radius-overlay);width:100%;max-width:26rem;box-shadow:var(--cebbwf5-login-shadow-overlay);animation:cedros-modal-in var(--cebbwf5-duration-slow) var(--cebbwf5-ease-out);flex-direction:column;gap:.5rem;padding:1.5rem;display:flex}.cedros-confirm-dialog:focus{outline:none}.cedros-confirm-dialog__title{letter-spacing:-.01em;color:var(--cebbwf5-login-foreground);margin:0;font-size:1.0625rem;font-weight:600}.cedros-confirm-dialog__description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem;line-height:1.5}.cedros-confirm-dialog__actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.cedros-device-link-dialog{background:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:calc(var(--cebbwf5-login-radius) + 2px);width:100%;max-width:28rem;box-shadow:var(--cebbwf5-login-shadow-overlay);animation:cedros-modal-in var(--cebbwf5-duration-slow) var(--cebbwf5-ease-out);flex-direction:column;gap:.875rem;padding:1.5rem;display:flex}.cedros-device-link-dialog__title{color:var(--cebbwf5-login-foreground);margin:0;font-size:1.0625rem;font-weight:600}.cedros-device-link-dialog__description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem;line-height:1.5}.cedros-device-link-dialog__actions,.cedros-device-link-dialog__signin,.cedros-device-link-dialog__email-form{flex-direction:column;gap:1rem;display:flex}.cedros-device-link-dialog__status{color:var(--cebbwf5-login-muted-foreground);align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.cedros-device-link-dialog__secondary-actions{justify-content:flex-end;display:flex}.wallet-adapter-modal{background:#00000080!important}.wallet-adapter-modal-wrapper{background:var(--cebbwf5-login-card)!important;border:1px solid var(--cebbwf5-login-border)!important;box-shadow:var(--cebbwf5-login-shadow-overlay)!important;border-radius:16px!important;max-width:380px!important;font-family:inherit!important}.wallet-adapter-modal-title{color:#0000!important;padding:32px 24px 20px!important;font-family:inherit!important;font-size:0!important;line-height:0!important}.wallet-adapter-modal-title:after{content:\"Sign in with Solana\";color:var(--cebbwf5-login-foreground);font-size:20px;font-weight:600;line-height:1.4}.wallet-adapter-modal-button-close{background:var(--cebbwf5-login-muted)!important;border-radius:8px!important;width:32px!important;height:32px!important;padding:6px!important;transition:background .15s!important;top:16px!important;right:16px!important}.wallet-adapter-modal-button-close:hover{background:var(--cebbwf5-login-accent)!important}.wallet-adapter-modal-button-close svg{fill:var(--cebbwf5-login-muted-foreground)!important;width:14px!important;height:14px!important}.wallet-adapter-modal-list{flex-direction:column!important;gap:4px!important;padding:0 16px 8px!important;display:flex!important}.wallet-adapter-modal-list .wallet-adapter-button{color:var(--cebbwf5-login-foreground)!important;background:var(--cebbwf5-login-muted)!important;border:1px solid var(--cebbwf5-login-border)!important;border-radius:10px!important;height:auto!important;padding:10px 14px!important;font-family:inherit!important;font-size:15px!important;font-weight:500!important;transition:background .15s,border-color .15s!important}.wallet-adapter-modal-list .wallet-adapter-button:not([disabled]):hover{background:var(--cebbwf5-login-accent)!important;border-color:var(--cebbwf5-login-ring)!important}.wallet-adapter-modal-list .wallet-adapter-button-start-icon,.wallet-adapter-modal-list .wallet-adapter-button-end-icon{width:28px!important;height:28px!important}.wallet-adapter-modal-list .wallet-adapter-button span{text-transform:uppercase!important;letter-spacing:.04em!important;color:var(--cebbwf5-login-muted-foreground)!important;opacity:1!important;font-size:12px!important;font-weight:500!important}.wallet-adapter-modal-list-more{color:var(--cebbwf5-login-muted-foreground)!important;padding:8px 24px 16px!important;font-family:inherit!important;font-size:14px!important}.wallet-adapter-modal-list-more svg{fill:var(--cebbwf5-login-muted-foreground)!important}.wallet-adapter-modal-middle{padding:0 16px 20px!important}.wallet-adapter-modal-middle-button{background:var(--cebbwf5-login-muted)!important;color:var(--cebbwf5-login-foreground)!important;border-radius:10px!important;padding:12px!important;font-family:inherit!important;font-size:15px!important;font-weight:500!important}.cedros-user-menu{position:relative}.cedros-user-button{border:1px solid var(--cebbwf5-login-border);background:0 0;align-items:center;gap:.5rem;display:flex}.cedros-user-avatar{-o-object-fit:cover;object-fit:cover;border-radius:50%;width:1.5rem;height:1.5rem}.cedros-user-avatar-placeholder{background-color:var(--cebbwf5-login-primary);width:1.5rem;height:1.5rem;color:var(--cebbwf5-login-primary-foreground);border-radius:50%;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:flex}.cedros-user-name{text-overflow:ellipsis;white-space:nowrap;max-width:8rem;overflow:hidden}.cedros-dropdown{background-color:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);min-width:10rem;box-shadow:var(--cebbwf5-login-shadow-md);opacity:0;visibility:hidden;transform-origin:100% 0;transition:opacity var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), visibility var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-normal) var(--cebbwf5-ease-spring);margin-top:.25rem;position:absolute;top:100%;right:0;transform:translateY(-4px)scale(.98)}.cedros-user-menu:focus-within .cedros-dropdown,.cedros-user-menu:hover .cedros-dropdown,.cedros-dropdown-open{opacity:1;visibility:visible;transform:translateY(0)scale(1)}.cedros-dropdown-item{text-align:left;width:100%;color:var(--cebbwf5-login-foreground);cursor:pointer;transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);background:0 0;border:none;padding:.5rem .75rem;font-size:.875rem;display:block}.cedros-dropdown-item:hover,.cedros-dropdown-item-focused{background-color:var(--cebbwf5-login-muted)}.cedros-dropdown-item:active{background-color:var(--cebbwf5-login-accent)}.cedros-dropdown-item-danger{color:var(--cebbwf5-destructive)}.cedros-dropdown-item-danger:hover{background-color:color-mix(in srgb, var(--cebbwf5-destructive) 10%, transparent)}.cedros-dropdown-icon{align-items:center;margin-right:.5rem;display:inline-flex}.cedros-dropdown-divider{background-color:var(--cebbwf5-login-border);height:1px;margin:.25rem 0}.cedros-spinner{animation:.8s linear infinite cedros-spin}.cedros-spinner-track,.cedros-spinner-head{transform-origin:50%}.cedros-spinner-head{color:var(--cebbwf5-login-link)}.cedros-login-form{width:100%}.cedros-login-form>.cedros-form-field,.cedros-login-form>.cedros-signup-availability{margin-bottom:1.5rem}.cedros-login-form>*{animation:cedros-slide-up-fade .35s var(--cebbwf5-ease-out) backwards}.cedros-login-form>:nth-child(2){animation-delay:45ms}.cedros-login-form>:nth-child(3){animation-delay:90ms}.cedros-login-form>:nth-child(4){animation-delay:.135s}.cedros-login-form>:nth-child(n+5){animation-delay:.18s}.cedros-login-form-shell{flex-direction:column;gap:.75rem;width:100%;display:flex}.cedros-login-session-status{text-align:center;flex-direction:column;align-items:center;gap:.75rem;width:100%;padding:1.5rem 1rem;display:flex}.cedros-login-session-title{color:var(--cebbwf5-login-foreground);margin:0;font-size:1.125rem;font-weight:600;line-height:1.4}.cedros-login-session-message{color:var(--cebbwf5-login-muted-foreground);overflow-wrap:anywhere;margin:0;font-size:.875rem;line-height:1.5}.cedros-login-session-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;width:100%;display:flex}.cedros-forgot-password-form,.cedros-reset-password-form{flex-direction:column;gap:1.5rem;width:100%;max-width:24rem;margin:0 auto;display:flex}.cedros-forgot-password-form .cedros-form-actions,.cedros-reset-password-form .cedros-form-actions{margin-top:0}.cedros-forgot-password-success,.cedros-reset-password-success{text-align:center;animation:cedros-slide-up-fade .3s var(--cebbwf5-ease-out) backwards;flex-direction:column;align-items:center;gap:1rem;padding:2rem 1rem;display:flex}.cedros-success-icon{color:var(--cebbwf5-login-success);box-shadow:0 0 0 8px var(--cebbwf5-login-success-soft,transparent);background-color:var(--cebbwf5-login-success-soft,transparent);animation:cedros-success-pop .45s var(--cebbwf5-ease-out) backwards;border-radius:50%;animation-delay:.1s}.cedros-success-icon path{stroke-dasharray:30;stroke-dashoffset:30px;animation:cedros-check-draw .35s var(--cebbwf5-ease-out) .35s forwards}.cedros-success-title{color:var(--cebbwf5-login-foreground);margin:0;font-size:1.25rem;font-weight:600}.cedros-success-message{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem}.cedros-form-header{text-align:center}.cedros-form-title{color:var(--cebbwf5-login-foreground);margin:0 0 .5rem;font-size:1.25rem;font-weight:600}.cedros-form-subtitle{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem}.cedros-form-actions{flex-direction:column;gap:.75rem;margin-top:1.5rem;display:flex}.cedros-button-full{width:100%}.cedros-member-list{width:100%;overflow-x:auto}.cedros-member-list-loading,.cedros-member-list-empty{color:var(--cebbwf5-login-muted-foreground);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:2rem;display:flex}.cedros-member-table{border-collapse:collapse;width:100%;font-size:.875rem}.cedros-member-table th{text-align:left;color:var(--cebbwf5-login-muted-foreground);border-bottom:1px solid var(--cebbwf5-login-border);background:var(--cebbwf5-login-muted);padding:.75rem 1rem;font-weight:500}.cedros-member-row{border-bottom:1px solid var(--cebbwf5-login-border);transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out)}.cedros-member-row:hover{background:var(--cebbwf5-login-muted)}.cedros-member-row-current{background:color-mix(in srgb, var(--cebbwf5-login-link) 8%, transparent)}.cedros-member-row td{vertical-align:middle;padding:.75rem 1rem}.cedros-member-info{align-items:center;gap:.75rem;display:flex}.cedros-member-avatar{-o-object-fit:cover;object-fit:cover;border-radius:50%;flex-shrink:0;width:40px;height:40px}.cedros-member-avatar-placeholder{background:var(--cebbwf5-login-primary);width:40px;height:40px;color:var(--cebbwf5-login-primary-foreground);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:600;display:flex}.cedros-member-details{flex-direction:column;gap:.125rem;min-width:0;display:flex}.cedros-member-name{color:var(--cebbwf5-login-foreground);align-items:center;gap:.5rem;font-weight:500;display:flex}.cedros-member-you{color:var(--cebbwf5-login-muted-foreground);font-size:.75rem;font-weight:400}.cedros-member-email{color:var(--cebbwf5-login-muted-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;overflow:hidden}.cedros-member-role{min-width:100px}.cedros-role-select{border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);background:var(--cebbwf5-login-background);color:var(--cebbwf5-login-foreground);cursor:pointer;appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");background-position:right .5rem center;background-repeat:no-repeat;padding:.375rem 2rem .375rem .75rem;font-size:.8125rem;transition:border-color .15s,box-shadow .15s}.cedros-role-select:hover{border-color:var(--cebbwf5-login-ring)}.cedros-role-select:focus{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 2px color-mix(in srgb, var(--cebbwf5-login-ring) 20%, transparent);outline:none}.cedros-role-select:disabled{opacity:.5;cursor:not-allowed}.cebbwf5-dark .cedros-role-select,.dark .cedros-role-select,[data-theme=dark] .cedros-role-select,[data-color-mode=dark] .cedros-role-select,[data-color-scheme=dark] .cedros-role-select{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\")}.cedros-role-badge{text-transform:capitalize;border-radius:9999px;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:500;display:inline-flex}.cedros-role-badge-owner{background:color-mix(in srgb, var(--cebbwf5-login-warning) 15%, transparent);color:var(--cebbwf5-login-warning)}.cedros-role-badge-admin{background:color-mix(in srgb, var(--cebbwf5-login-link) 15%, transparent);color:var(--cebbwf5-login-link)}.cedros-role-badge-member,.cedros-role-badge-viewer{background:var(--cebbwf5-login-muted);color:var(--cebbwf5-login-muted-foreground)}.cedros-member-joined{color:var(--cebbwf5-login-muted-foreground);white-space:nowrap;font-size:.8125rem}.cedros-login-admin-root .cedros-member-table{border-collapse:separate;border-spacing:0;border:1px solid var(--admin-border);border-radius:calc(var(--admin-radius) - 2px);background:var(--admin-table-row);overflow:hidden}.cedros-login-admin-root .cedros-member-table th{text-transform:uppercase;letter-spacing:.05em;color:var(--admin-muted);background:var(--admin-table-head);border-bottom:1px solid var(--admin-border);padding:.6875rem .75rem;font-size:.6875rem}.cedros-login-admin-root .cedros-member-row{border-bottom:1px solid var(--admin-border);background:var(--admin-table-row)}.cedros-login-admin-root .cedros-member-row:hover{background:var(--admin-table-row-hover)}.cedros-login-admin-root .cedros-member-row td{padding:.75rem;font-size:.8125rem}.cedros-login-admin-root .cedros-member-avatar{width:32px;height:32px}.cedros-login-admin-root .cedros-member-avatar-placeholder{background:var(--admin-muted-bg);width:32px;height:32px;color:var(--admin-muted);font-size:.875rem}.cedros-login-admin-root .cedros-member-name{color:var(--admin-fg)}.cedros-login-admin-root .cedros-member-you,.cedros-login-admin-root .cedros-member-email,.cedros-login-admin-root .cedros-member-joined{color:var(--admin-muted)}.cedros-login-admin-root .cedros-role-select{border-color:var(--admin-border);border-radius:calc(var(--admin-radius) - 2px);background:var(--admin-muted-bg);height:2.25rem;color:var(--admin-fg);background-position:right .75rem center;background-size:1rem;padding:0 2.25rem 0 .75rem}.cedros-login-admin-root .cedros-role-select:hover{border-color:var(--admin-ring);background:var(--admin-bg)}.cedros-login-admin-root .cedros-role-select:focus{border-color:var(--admin-ring);box-shadow:0 0 0 3px color-mix(in srgb, var(--admin-ring) 15%, transparent)}.cedros-login-admin-root .cedros-role-badge{text-transform:uppercase;letter-spacing:.025em;padding:.125rem .5rem;font-size:.6875rem}.cedros-login-admin-root .cedros-role-badge-owner{background:var(--admin-warning-light);color:var(--admin-warning)}.cedros-login-admin-root .cedros-role-badge-admin{background:var(--admin-info-light);color:var(--admin-info)}.cedros-login-admin-root .cedros-role-badge-member,.cedros-login-admin-root .cedros-role-badge-viewer{background:var(--admin-muted-bg);color:var(--admin-muted)}.cedros-member-actions{text-align:right}.cedros-invite-form{width:100%}.cedros-invite-success{background:color-mix(in srgb, var(--cebbwf5-login-success) 10%, transparent);color:var(--cebbwf5-login-success);border-radius:var(--cebbwf5-login-radius);align-items:center;gap:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.cedros-invite-form-row{align-items:flex-end;gap:.75rem;display:flex}.cedros-invite-email-group{flex:1}.cedros-invite-role-group{width:120px}.cedros-invite-submit{white-space:nowrap}.cedros-invite-check{width:16px;height:16px;color:var(--cebbwf5-login-success)}.cedros-invite-list{width:100%}.cedros-invite-list-loading,.cedros-invite-list-empty{color:var(--cebbwf5-login-muted-foreground);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:2rem;display:flex}.cedros-invite-items{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.cedros-invite-item,.cedros-session-item,.cedros-member-row{animation:cedros-slide-up-fade var(--cebbwf5-duration-slow) var(--cebbwf5-ease-out) backwards}:is(.cedros-invite-item,.cedros-session-item,.cedros-member-row):nth-child(2){animation-delay:30ms}:is(.cedros-invite-item,.cedros-session-item,.cedros-member-row):nth-child(3){animation-delay:60ms}:is(.cedros-invite-item,.cedros-session-item,.cedros-member-row):nth-child(4){animation-delay:90ms}:is(.cedros-invite-item,.cedros-session-item,.cedros-member-row):nth-child(n+5){animation-delay:.12s}.cedros-invite-item{border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-radius-card);background:var(--cebbwf5-login-background);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem;display:flex}.cedros-invite-item-expired{border-style:dashed}.cedros-invite-item-info{flex-direction:column;flex:1;gap:.375rem;min-width:0;display:flex}.cedros-invite-item-main{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.cedros-invite-item-email{color:var(--cebbwf5-login-foreground);overflow-wrap:anywhere;font-weight:500}.cedros-invite-expired-badge{background:color-mix(in srgb, var(--cebbwf5-destructive) 10%, transparent);color:var(--cebbwf5-destructive);border-radius:9999px;padding:.125rem .5rem;font-size:.75rem}.cedros-invite-item-meta{color:var(--cebbwf5-login-muted-foreground);align-items:center;gap:.75rem;font-size:.8125rem;display:flex}.cedros-invite-item-date,.cedros-invite-item-expires{white-space:nowrap}.cedros-invite-item-actions,.cedros-invitation-receipt-actions{transition:opacity var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-spring);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.5rem;display:flex}@media (width<=640px){.cedros-invite-form-row{flex-direction:column;align-items:stretch}.cedros-invite-role-group{width:auto}.cedros-invite-item>.cedros-invite-item-actions{width:100%}}@media (hover:hover) and (pointer:fine){.cedros-invite-item-actions,.cedros-member-actions{opacity:0;pointer-events:none;transform:translate(.25rem)}:is(.cedros-invite-item,.cedros-member-row):is(:hover,:focus-within) :is(.cedros-invite-item-actions,.cedros-member-actions){opacity:1;pointer-events:auto;transform:translate(0)}}.cedros-invite-resend-success{color:var(--cebbwf5-login-success);font-size:.8125rem}.cedros-session-list{width:100%}.cedros-session-list-loading{color:var(--cebbwf5-login-muted-foreground);align-items:center;gap:.625rem;padding:.5rem 0;font-size:.875rem;display:flex}.cedros-session-list-empty{color:var(--cebbwf5-login-muted-foreground);padding:.5rem 0;font-size:.875rem}.cedros-session-list-empty p{margin:0}.cedros-session-success{background:color-mix(in srgb, var(--cebbwf5-login-success) 10%, transparent);color:var(--cebbwf5-login-success);border-radius:var(--cebbwf5-login-radius);align-items:center;gap:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.cedros-session-items{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.cedros-session-item{border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-radius-card);background:var(--cebbwf5-login-background);align-items:center;gap:1rem;padding:1rem;display:flex}.cedros-session-item-current{border-color:var(--cebbwf5-login-ring);background:color-mix(in srgb, var(--cebbwf5-login-link) 8%, transparent)}.cedros-session-item-icon{flex-shrink:0}.cedros-session-device-icon{width:24px;height:24px;color:var(--cebbwf5-login-muted-foreground)}.cedros-session-item-info{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.cedros-session-item-main{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.cedros-session-item-device{color:var(--cebbwf5-login-foreground);font-weight:500}.cedros-session-current-badge{background:color-mix(in srgb, var(--cebbwf5-login-link) 15%, transparent);color:var(--cebbwf5-login-link);border-radius:9999px;padding:.125rem .5rem;font-size:.75rem}.cedros-session-item-meta{color:var(--cebbwf5-login-muted-foreground);flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.8125rem;display:flex}.cedros-session-item-ip{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}.cedros-session-item-created{white-space:nowrap}.cedros-session-expiring{color:var(--cebbwf5-login-warning)}.cedros-session-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.cedros-session-actions .cedros-button{white-space:normal;height:auto;min-height:2.25rem}.cedros-session-toggle{margin-top:.5rem}.cedros-session-check{width:16px;height:16px;color:var(--cebbwf5-login-success)}.cedros-button-sm{padding:.375rem .75rem;font-size:.8125rem}.cedros-button-outline{border:1px solid var(--cebbwf5-login-border);color:var(--cebbwf5-login-foreground);background:0 0}.cedros-button-outline:hover:not(:disabled){background:var(--cebbwf5-login-muted)}.cedros-button-danger{background:var(--cebbwf5-destructive);color:var(--cebbwf5-destructive-foreground);box-shadow:var(--cebbwf5-edge-highlight), var(--cebbwf5-login-shadow-xs);border:none}.cedros-button-danger:hover:not(:disabled){background:color-mix(in srgb, var(--cebbwf5-destructive) 88%, var(--cebbwf5-login-foreground));box-shadow:var(--cebbwf5-edge-highlight), var(--cebbwf5-login-shadow-sm)}.cedros-button-danger:focus-visible{outline-color:var(--cebbwf5-destructive)}.cedros-form-label{color:var(--cebbwf5-login-foreground);font-size:.875rem;font-weight:500}.cedros-form-input{border:1px solid var(--cebbwf5-input-border,var(--cebbwf5-login-border));border-radius:var(--cebbwf5-login-radius);background:var(--cebbwf5-input-fill);width:100%;color:var(--cebbwf5-login-foreground);padding:.5rem .75rem;font-family:inherit;font-size:.875rem;transition:border-color .15s}.cedros-form-input:focus{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 2px color-mix(in srgb, var(--cebbwf5-login-ring) 20%, transparent);outline:none}.cedros-form-input:disabled{opacity:.5;cursor:not-allowed}.cedros-form-input::placeholder{color:var(--cebbwf5-login-muted-foreground)}.cedros-form-select{background:var(--cebbwf5-login-background);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-radius-field);width:100%;color:var(--cebbwf5-login-foreground);cursor:pointer;appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");background-position:right .5rem center;background-repeat:no-repeat;padding:.5rem 2rem .5rem .75rem;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.cedros-form-select:hover{border-color:var(--cebbwf5-login-ring)}.cedros-form-select:focus{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 2px color-mix(in srgb, var(--cebbwf5-login-ring) 20%, transparent);outline:none}.cedros-form-select:disabled{opacity:.5;cursor:not-allowed}.cebbwf5-dark .cedros-form-select,.dark .cedros-form-select,[data-theme=dark] .cedros-form-select,[data-color-mode=dark] .cedros-form-select,[data-color-scheme=dark] .cedros-form-select{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\")}.cedros-form-hint{color:var(--cebbwf5-login-muted-foreground);margin-top:.25rem;font-size:.75rem}.cedros-form-error{color:var(--cebbwf5-destructive);margin-top:.25rem;font-size:.75rem}.cedros-form-actions{gap:.75rem;margin-top:1rem;display:flex}.cedros-wallet-enrollment,.cedros-wallet-unlock,.cedros-wallet-recovery{width:100%;max-width:500px}.cedros-enrollment-progress,.cedros-wallet-unlock-combining{text-align:center;animation:cedros-fade-in-scale var(--cebbwf5-duration-slow) var(--cebbwf5-ease-out);flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:3rem 2rem;display:flex}.cedros-enrollment-header,.cedros-wallet-recovery-header{margin-bottom:1.5rem}.cedros-enrollment-header h2,.cedros-wallet-recovery-title{color:var(--cebbwf5-login-foreground);margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.cedros-enrollment-header p,.cedros-wallet-recovery-description{color:var(--cebbwf5-login-muted-foreground);margin:0}.cedros-enrollment-form{flex-direction:column;gap:1rem;display:flex}.cedros-password-info{background:var(--cebbwf5-login-muted);border-radius:var(--cebbwf5-login-radius);color:var(--cebbwf5-login-muted-foreground);padding:1rem;font-size:.875rem}.cedros-password-info p{margin:0 0 .5rem}.cedros-password-info p:last-child{margin-bottom:0}.cedros-enrollment-actions,.cedros-wallet-recovery-actions,.cedros-wallet-unlock-actions{gap:.75rem;margin-top:1rem;display:flex}.cedros-enrollment-complete,.cedros-enrollment-error,.cedros-wallet-recovery-success,.cedros-wallet-recovery-error,.cedros-wallet-recovery-progress,.cedros-wallet-unlock-success,.cedros-wallet-unlock-error{text-align:center;animation:cedros-fade-in-scale var(--cebbwf5-duration-slow) var(--cebbwf5-ease-out);flex-direction:column;align-items:center;padding:2rem;display:flex}.cedros-wallet-recovery-icon{color:var(--cebbwf5-login-link);margin-bottom:1rem}.cedros-wallet-recovery-phrase,.cedros-wallet-recovery-credential{width:100%}.cedros-auth-method-selector{background:var(--cebbwf5-login-muted);border-radius:var(--cebbwf5-login-radius);gap:1rem;margin-bottom:1.25rem;padding:.75rem;display:flex}.cedros-radio-label{cursor:pointer;color:var(--cebbwf5-login-foreground);align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;display:flex}.cedros-radio-label input[type=radio]{width:1rem;height:1rem;accent-color:var(--cebbwf5-login-primary)}.cedros-password-input{min-width:0}.cedros-passkey-info{background:var(--cebbwf5-login-muted);border-radius:var(--cebbwf5-login-radius);align-items:center;gap:1rem;margin-bottom:1rem;padding:1rem;display:flex}.cedros-passkey-info svg{color:var(--cebbwf5-login-link);flex-shrink:0}.cedros-passkey-info p{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem}.cedros-instant-link-success .cedros-success-icon,.cedros-wallet-status .cedros-success-icon,.cedros-wallet-enrollment .cedros-success-icon{color:var(--cebbwf5-login-success);animation:cedros-pop .3s var(--cebbwf5-ease-spring);margin-bottom:1rem}.cedros-wallet-status .cedros-error-icon{color:var(--cebbwf5-destructive);animation:cedros-shake .4s var(--cebbwf5-ease-out);margin-bottom:1rem}.cedros-pubkey{word-break:break-all;background:var(--cebbwf5-login-muted);border-radius:var(--cebbwf5-login-radius);margin:1rem 0;padding:.75rem 1rem;font-size:.875rem}.cedros-wallet-status .cedros-error-message{color:var(--cebbwf5-destructive);margin:1rem 0}.cedros-error-actions{gap:.75rem;margin-top:1rem;display:flex}.cedros-passkey-prompt{text-align:center;flex-direction:column;align-items:center;max-width:320px;margin:0 auto;padding:1.5rem;display:flex}.cedros-passkey-icon{background:var(--cebbwf5-login-muted);width:3.5rem;height:3.5rem;color:var(--cebbwf5-login-link);border-radius:50%;justify-content:center;align-items:center;margin-bottom:1.25rem;animation:2s ease-in-out infinite cedros-pulse;display:flex}.cedros-passkey-icon svg{width:1.75rem;height:1.75rem}.cedros-passkey-title{color:var(--cebbwf5-login-foreground);margin:0 0 .5rem;font-size:1.125rem;font-weight:600;line-height:1.3}.cedros-passkey-description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.8125rem;line-height:1.5}.cedros-passkey-error{background-color:var(--cebbwf5-destructive-light);color:var(--cebbwf5-destructive);border-radius:var(--cebbwf5-login-radius);width:100%;margin-top:1rem;padding:.625rem .875rem;font-size:.8125rem}.cedros-passkey-error p{margin:0}.cedros-passkey-actions{flex-direction:column;gap:.5rem;width:100%;margin-top:1.25rem;display:flex}.cedros-passkey-actions .cedros-button{justify-content:center;width:100%}.cedros-passkey-hint{color:var(--cebbwf5-login-muted-foreground);margin-top:1rem;font-size:.75rem}.cedros-button-spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:.875rem;height:.875rem;animation:.75s linear infinite cedros-spin;display:inline-block}.cedros-recovery-phrase-display,.cedros-recovery-phrase-input{width:100%}.cedros-recovery-header{margin-bottom:1.5rem}.cedros-recovery-title{margin:0 0 .5rem;font-size:1.25rem;font-weight:600}.cedros-recovery-warning{color:var(--cebbwf5-destructive);margin:0;font-size:.875rem;font-weight:500}.cedros-recovery-grid{grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1rem;display:grid}@media (width>=480px){.cedros-recovery-grid{grid-template-columns:repeat(3,1fr)}}.cedros-word-group{flex-direction:column;gap:.5rem;display:flex}.cedros-word-item{background:var(--cebbwf5-login-muted);border-radius:var(--cebbwf5-login-radius);animation:cedros-fade-in-scale var(--cebbwf5-duration-normal) var(--cebbwf5-ease-out) backwards;align-items:center;gap:.5rem;padding:.5rem .75rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.875rem;display:flex}.cedros-word-group:first-child .cedros-word-item{animation-delay:0s}.cedros-word-group:nth-child(2) .cedros-word-item{animation-delay:50ms}.cedros-word-group:nth-child(3) .cedros-word-item{animation-delay:.1s}.cedros-word-number{color:var(--cebbwf5-login-muted-foreground);min-width:1.5rem}.cedros-word-text{color:var(--cebbwf5-login-foreground);font-weight:500}.cedros-copy-btn{margin:1rem 0}.cedros-recovery-security{margin:1.5rem 0}.cedros-warning-box{background:color-mix(in srgb, var(--cebbwf5-login-warning) 10%, transparent);border:1px solid color-mix(in srgb, var(--cebbwf5-login-warning) 30%, transparent);border-radius:var(--cebbwf5-login-radius);gap:.75rem;padding:1rem;display:flex}.cedros-warning-icon{color:var(--cebbwf5-login-warning);flex-shrink:0}.cedros-warning-content{font-size:.875rem}.cedros-warning-content strong{color:var(--cebbwf5-login-foreground);margin-bottom:.25rem;display:block}.cedros-warning-content ul{color:var(--cebbwf5-login-muted-foreground);margin:.5rem 0 0;padding-left:1.25rem}.cedros-warning-content li{margin-bottom:.25rem}.cedros-recovery-confirm{border-top:1px solid var(--cebbwf5-login-border);flex-direction:column;gap:1rem;margin-top:1.5rem;padding-top:1.5rem;display:flex}.cedros-checkbox-label{cursor:pointer;align-items:flex-start;gap:.75rem;font-size:.875rem;display:flex}.cedros-checkbox{width:1.125rem;height:1.125rem;accent-color:var(--cebbwf5-login-primary);margin-top:.125rem}.cedros-recovery-input-header{margin-bottom:1.25rem}.cedros-recovery-input-title{color:var(--cebbwf5-login-foreground);margin:0 0 .375rem;font-size:1.125rem;font-weight:600}.cedros-recovery-input-description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.8125rem;line-height:1.5}.cedros-word-inputs{grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem;display:grid}@media (width<=480px){.cedros-word-inputs{grid-template-columns:repeat(2,1fr)}}.cedros-word-input-wrapper{align-items:center;gap:.375rem;display:flex;position:relative}.cedros-word-label{color:var(--cebbwf5-login-muted-foreground);text-align:right;min-width:1.5rem;font-size:.6875rem;font-weight:500}.cedros-word-input{background:var(--cebbwf5-login-background);border:1px solid var(--cebbwf5-input);border-radius:calc(var(--cebbwf5-login-radius) - 2px);height:2rem;color:var(--cebbwf5-login-foreground);transition:border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), box-shadow var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);outline:none;flex:1;padding:0 .5rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.8125rem}.cedros-word-input:focus{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 2px color-mix(in srgb, var(--cebbwf5-login-ring) 15%, transparent)}.cedros-word-input.cedros-word-valid{border-color:var(--cebbwf5-login-success)}.cedros-word-input.cedros-word-invalid{border-color:var(--cebbwf5-destructive)}.cedros-word-input:disabled{opacity:.5;cursor:not-allowed}.cedros-suggestions{z-index:50;background:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);box-shadow:var(--cebbwf5-login-shadow-md);animation:cedros-slide-down-fade var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);flex-wrap:wrap;gap:.375rem;margin-top:.5rem;padding:.625rem;display:flex;position:fixed}.cedros-suggestion{background:var(--cebbwf5-login-muted);border-radius:calc(var(--cebbwf5-login-radius) - 2px);color:var(--cebbwf5-login-foreground);cursor:pointer;transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);border:1px solid #0000;padding:.375rem .625rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.8125rem}.cedros-suggestion:hover{background:var(--cebbwf5-login-accent);border-color:var(--cebbwf5-login-border)}.cedros-suggestion:active{transform:scale(.97)}.cedros-recovery-input-actions{border-top:1px solid var(--cebbwf5-login-border);justify-content:flex-end;gap:.5rem;margin-top:1.25rem;padding-top:1rem;display:flex}.cedros-pin-input{width:100%}.cedros-pin-input .cedros-password-wrapper{position:relative}.cedros-pin-input .cedros-input{letter-spacing:.25em;padding-right:4.5rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:1.25rem}.cedros-input-valid-indicator{color:var(--cebbwf5-login-success);justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:2.5rem;transform:translateY(-50%)}.cedros-input-hint{color:var(--cebbwf5-login-muted-foreground);align-items:center;gap:.25rem;margin-top:.375rem;font-size:.75rem;display:flex}.cedros-capability-warning{background:color-mix(in srgb, var(--cebbwf5-login-warning) 5%, transparent);border:1px solid color-mix(in srgb, var(--cebbwf5-login-warning) 20%, transparent);border-radius:var(--cebbwf5-login-radius);padding:1.5rem}.cedros-warning-header{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.cedros-warning-title{color:var(--cebbwf5-login-foreground);margin:0;font-size:1.125rem;font-weight:600}.cedros-warning-message{color:var(--cebbwf5-login-muted-foreground);margin:0 0 1rem}.cedros-capability-details summary{cursor:pointer;color:var(--cebbwf5-login-link);margin-bottom:.75rem;font-size:.875rem}.cedros-capability-list{margin:0;padding:0;font-size:.875rem;list-style:none}.cedros-capability-list li{align-items:center;gap:.5rem;padding:.375rem 0;display:flex}.cedros-capability-list li:before{content:\"\";border-radius:50%;width:8px;height:8px}.cedros-cap-ok:before{background:var(--cebbwf5-login-success)}.cedros-cap-missing:before{background:var(--cebbwf5-destructive)}.cedros-capability-help{border-top:1px solid var(--cebbwf5-login-border);margin-top:1rem;padding-top:1rem}.cedros-capability-help p{color:var(--cebbwf5-login-muted-foreground);margin:0 0 .5rem;font-size:.875rem}.cedros-capability-note{font-style:italic}.cedros-wallet-status{border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-radius-card);background:var(--cebbwf5-login-card);box-shadow:var(--cebbwf5-login-shadow-sm);padding:1.25rem}.cedros-wallet-status-compact{border-radius:var(--cebbwf5-login-radius);align-items:center;gap:.5rem;padding:.375rem .75rem;font-size:.8125rem;display:inline-flex}.cedros-wallet-status-dot{width:6px;height:6px;transition:background-color var(--cebbwf5-duration-normal) var(--cebbwf5-ease-out);border-radius:50%;flex-shrink:0}.cedros-wallet-status-loading{background:var(--cebbwf5-login-muted-foreground);animation:1.5s ease-in-out infinite cedros-pulse}.cedros-wallet-status-warning{background:var(--cebbwf5-login-warning)}.cedros-wallet-status-success{background:var(--cebbwf5-login-success)}.cedros-wallet-status-error{background:var(--cebbwf5-destructive)}.cedros-wallet-status-muted{background:var(--cebbwf5-login-muted-foreground)}.cedros-wallet-status-label{color:var(--cebbwf5-login-foreground);font-weight:500}.cedros-wallet-status-header{align-items:flex-start;gap:.875rem;display:flex}.cedros-wallet-status-icon{border-radius:calc(var(--cebbwf5-login-radius) - 2px);flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;display:flex}.cedros-wallet-status-icon svg{width:1.25rem;height:1.25rem}.cedros-wallet-status-icon-muted{background:var(--cebbwf5-login-muted);color:var(--cebbwf5-login-muted-foreground)}.cedros-wallet-status-icon-warning{background:var(--cebbwf5-warning-light);color:var(--cebbwf5-login-warning)}.cedros-wallet-status-icon-success{background:var(--cebbwf5-login-success-soft);color:var(--cebbwf5-login-success)}.cedros-wallet-status-icon-error{background:var(--cebbwf5-destructive-light);color:var(--cebbwf5-destructive)}.cedros-wallet-status-icon-loading{background:var(--cebbwf5-login-muted);color:var(--cebbwf5-login-link)}.cedros-wallet-status-info{flex:1;min-width:0;padding-top:.125rem}.cedros-wallet-status-title{color:var(--cebbwf5-login-foreground);margin:0;font-size:.9375rem;font-weight:600;line-height:1.25}.cedros-wallet-status-description{color:var(--cebbwf5-login-muted-foreground);margin:.125rem 0 0;font-size:.8125rem;line-height:1.4}.cedros-wallet-status-pubkey{color:var(--cebbwf5-login-muted-foreground);text-overflow:ellipsis;max-width:120px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.6875rem;overflow:hidden}.cedros-wallet-status-pubkey-full{background:var(--cebbwf5-login-muted);border-radius:calc(var(--cebbwf5-login-radius) - 2px);margin:.875rem 0 0;padding:.625rem .75rem}.cedros-wallet-address-row-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.25rem;display:flex}.cedros-wallet-address-row-actions{flex-shrink:0;align-items:center;gap:.375rem;display:flex}.cedros-wallet-status-pubkey-label{text-transform:uppercase;letter-spacing:.025em;color:var(--cebbwf5-login-muted-foreground);margin-bottom:.25rem;font-size:.6875rem;font-weight:500;display:block}.cedros-wallet-status-pubkey-value{word-break:break-all;color:var(--cebbwf5-login-foreground);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.75rem;line-height:1.5}.cedros-wallet-status-error-box{background:var(--cebbwf5-destructive-light);border-radius:calc(var(--cebbwf5-login-radius) - 2px);color:var(--cebbwf5-destructive);justify-content:space-between;align-items:center;gap:.75rem;margin:.875rem 0 0;padding:.625rem .75rem;font-size:.8125rem;display:flex}.cedros-wallet-status-error-box p{flex:1;margin:0}.cedros-wallet-status-actions{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.cedros-wallet-manager{flex-direction:column;gap:.75rem;display:flex}.cedros-wallet-manager-header{justify-content:space-between;align-items:flex-start;gap:1rem;padding:.75rem .75rem 0;display:flex}.cedros-wallet-manager-title{color:var(--cebbwf5-login-foreground);margin:0;font-size:.9375rem;font-weight:600}.cedros-wallet-manager-subtitle{color:var(--cebbwf5-login-muted-foreground);margin:.25rem 0 0;font-size:.8125rem;line-height:1.4}.cedros-wallet-manager-intro{padding:0 .75rem}.cedros-wallet-manager-intro-card{border:1px solid var(--cebbwf5-login-border);background:var(--cebbwf5-login-background);border-radius:var(--cebbwf5-login-radius);padding:1rem}.cedros-wallet-manager-intro-title{color:var(--cebbwf5-login-foreground);margin:0;font-size:.875rem;font-weight:600}.cedros-wallet-manager-intro-list{color:var(--cebbwf5-login-muted-foreground);margin:.75rem 0 0;padding-left:1.25rem;font-size:.8125rem;line-height:1.6}.cedros-wallet-manager-intro-actions{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.cedros-wallet-unlock-idle{text-align:center;flex-direction:column;align-items:center;padding:2rem;display:flex}.cedros-wallet-unlock-icon{margin-bottom:1rem}.cedros-wallet-unlock-icon svg{width:48px;height:48px;color:var(--cebbwf5-login-muted-foreground)}.cedros-wallet-unlock-title{margin:0 0 .5rem;font-size:1.25rem;font-weight:600}.cedros-wallet-unlock-description{color:var(--cebbwf5-login-muted-foreground);margin:0 0 1.5rem}.cedros-wallet-unlock-password,.cedros-wallet-unlock-passkey{padding:1rem 0}.cedros-wallet-unlock-progress{border-top:1px solid var(--cebbwf5-login-border);justify-content:center;align-items:center;gap:.5rem;margin-top:1.5rem;padding-top:1.5rem;display:flex}.cedros-wallet-unlock-step{opacity:.5;flex-direction:column;align-items:center;gap:.25rem;display:flex}.cedros-wallet-unlock-step.active{opacity:1}.cedros-wallet-unlock-step.completed{opacity:.7}.cedros-step-number{background:var(--cebbwf5-login-muted);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:.875rem;font-weight:500;display:flex}.cedros-wallet-unlock-step.active .cedros-step-number{background:var(--cebbwf5-login-primary);color:var(--cebbwf5-login-primary-foreground)}.cedros-wallet-unlock-step.completed .cedros-step-number{background:var(--cebbwf5-login-success-soft);color:var(--cebbwf5-login-success)}.cedros-step-label{color:var(--cebbwf5-login-muted-foreground);font-size:.75rem}.cedros-wallet-unlock-step-divider{background:var(--cebbwf5-login-border);width:40px;height:2px;margin:0 .5rem 1.25rem}.cedros-org-selector{position:relative}.cedros-org-selector-loading{color:var(--cebbwf5-login-muted-foreground);align-items:center;gap:.5rem;padding:.5rem 1rem;display:flex}.cedros-org-selector-trigger{border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);background:var(--cebbwf5-login-background);cursor:pointer;align-items:center;gap:.75rem;min-width:200px;padding:.5rem .75rem;display:flex}.cedros-org-selector-trigger:hover{background:var(--cebbwf5-login-muted)}.cedros-org-avatar{border-radius:var(--cebbwf5-login-radius);-o-object-fit:cover;object-fit:cover;width:28px;height:28px}.cedros-org-avatar-lg{width:40px;height:40px}.cedros-org-avatar-placeholder{border-radius:var(--cebbwf5-login-radius);background:var(--cebbwf5-login-primary);width:28px;height:28px;color:var(--cebbwf5-login-primary-foreground);justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:flex}.cedros-org-avatar-placeholder.cedros-org-avatar-lg{width:40px;height:40px;font-size:1rem}.cedros-org-selector-name{text-align:left;flex:1;font-weight:500}.cedros-org-selector-placeholder{color:var(--cebbwf5-login-muted-foreground);text-align:left;flex:1}.cedros-org-chevron{width:16px;height:16px;color:var(--cebbwf5-login-muted-foreground);transition:transform .2s}.cedros-org-chevron-open{transform:rotate(180deg)}.cedros-org-selector-dropdown{background:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);box-shadow:var(--cebbwf5-login-shadow-md);z-index:50;margin-top:.25rem;padding:.5rem;position:absolute;top:100%;left:0;right:0}.cedros-org-selector-empty{text-align:center;color:var(--cebbwf5-login-muted-foreground);padding:1rem;font-size:.875rem}.cedros-org-selector-list{margin:0;padding:0;list-style:none}.cedros-org-selector-item{border-radius:calc(var(--cebbwf5-login-radius) - 2px);cursor:pointer;justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex}.cedros-org-selector-item:hover{background:var(--cebbwf5-login-muted)}.cedros-org-selector-item-active{background:color-mix(in srgb, var(--cebbwf5-login-link) 10%, transparent)}.cedros-org-selector-item-name{font-weight:500}.cedros-org-selector-divider{background:var(--cebbwf5-login-border);height:1px;margin:.5rem 0}.cedros-org-selector-create{border-radius:calc(var(--cebbwf5-login-radius) - 2px);cursor:pointer;width:100%;color:var(--cebbwf5-login-link);background:0 0;border:none;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;display:flex}.cedros-org-selector-create:hover{background:var(--cebbwf5-login-muted)}.cedros-org-role{text-transform:capitalize;border-radius:9999px;padding:.125rem .5rem;font-size:.75rem}.cedros-org-role-owner{background:color-mix(in srgb, var(--cebbwf5-login-warning) 15%, transparent);color:var(--cebbwf5-login-warning)}.cedros-org-role-admin{background:color-mix(in srgb, var(--cebbwf5-login-link) 15%, transparent);color:var(--cebbwf5-login-link)}.cedros-org-role-member,.cedros-org-role-viewer{background:var(--cebbwf5-login-muted);color:var(--cebbwf5-login-muted-foreground)}.cedros-org-check{width:16px;height:16px;color:var(--cebbwf5-login-link)}.cedros-org-plus{width:16px;height:16px}.cedros-org-switcher{max-width:400px}.cedros-org-switcher-loading{color:var(--cebbwf5-login-muted-foreground);flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:3rem;display:flex}.cedros-org-switcher-empty{text-align:center;color:var(--cebbwf5-login-muted-foreground);padding:2rem}.cedros-org-switcher-list{margin:0;padding:0;list-style:none}.cedros-org-switcher-item{border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);background:var(--cebbwf5-login-background);cursor:pointer;text-align:left;width:100%;font-family:inherit;font-size:inherit;align-items:center;gap:.75rem;margin-bottom:.5rem;padding:.75rem 1rem;transition:border-color .15s,background-color .15s;display:flex}.cedros-org-switcher-item:hover{background:var(--cebbwf5-login-muted);border-color:var(--cebbwf5-login-border)}.cedros-org-switcher-item-active{border-color:var(--cebbwf5-login-ring);background:color-mix(in srgb, var(--cebbwf5-login-link) 8%, transparent)}.cedros-org-switcher-item-active:hover{background:color-mix(in srgb, var(--cebbwf5-login-link) 12%, transparent)}.cedros-org-switcher-item-content{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.cedros-org-switcher-item-name{color:var(--cebbwf5-login-foreground);font-weight:500}.cedros-org-switcher-item-slug{color:var(--cebbwf5-login-muted-foreground);font-size:.8125rem}.cedros-org-switcher-item-meta{flex-shrink:0;align-items:center;gap:.375rem;display:flex}.cedros-org-switcher-item .cedros-org-check{color:var(--cebbwf5-login-link);flex-shrink:0}.cedros-org-personal-badge{background:var(--cebbwf5-login-muted);color:var(--cebbwf5-login-muted-foreground);border-radius:9999px;padding:.125rem .5rem;font-size:.75rem}.cedros-org-switcher-create{border:1px dashed var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);cursor:pointer;width:100%;color:var(--cebbwf5-login-muted-foreground);transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);background:0 0;justify-content:center;align-items:center;gap:.5rem;margin-top:1rem;padding:.75rem;font-family:inherit;font-size:.875rem;display:flex}.cedros-org-switcher-create:hover{background:var(--cebbwf5-login-muted);border-color:var(--cebbwf5-login-ring);color:var(--cebbwf5-login-link);border-style:solid}.cedros-org-create-form{padding:1rem 0}.cedros-form-input-prefix{align-items:stretch;display:flex}.cedros-form-prefix{background:var(--cebbwf5-login-muted);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius) 0 0 var(--cebbwf5-login-radius);color:var(--cebbwf5-login-muted-foreground);border-right:none;align-items:center;padding:0 .75rem;display:flex}.cedros-form-input-prefix .cedros-form-input{border-radius:0 var(--cebbwf5-login-radius) var(--cebbwf5-login-radius) 0}.cedros-full-page-layout{background:linear-gradient(135deg, var(--cebbwf5-login-background) 0%, var(--cebbwf5-login-muted) 100%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.cebbwf5-dark .cedros-full-page-layout,.dark .cedros-full-page-layout,[data-theme=dark] .cedros-full-page-layout,[data-color-mode=dark] .cedros-full-page-layout,[data-color-scheme=dark] .cedros-full-page-layout{background:linear-gradient(135deg, var(--cebbwf5-login-background) 0%, var(--cebbwf5-login-muted) 100%)}.cedros-full-page-card{background:var(--cebbwf5-login-card);width:100%;max-width:420px;box-shadow:var(--cebbwf5-login-shadow-lg);border-radius:.75rem;padding:2rem}.cedros-full-page-header{text-align:center;margin-bottom:2rem}.cedros-full-page-title{color:var(--cebbwf5-login-foreground);margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.cedros-full-page-subtitle{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem}.cedros-brand-header{align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.cedros-brand-header svg,.cedros-brand-header img{width:2rem;height:2rem}.cedros-brand-name{color:var(--cebbwf5-login-foreground);font-size:1.125rem;font-weight:600}.cedros-terms-footer{text-align:center;max-width:280px;color:var(--cebbwf5-login-muted-foreground);margin-top:1.5rem;font-size:.75rem;line-height:1.5}.cedros-terms-footer a{color:var(--cebbwf5-login-foreground);text-underline-offset:2px;text-decoration:underline}.cedros-terms-footer a:hover{opacity:.8}.cedros-split-page-layout{grid-template-columns:1fr 1fr;min-height:100vh;display:grid}@media (width<=768px){.cedros-split-page-layout{grid-template-columns:1fr}.cedros-split-page-brand{min-height:200px}}.cedros-split-page-brand{background:linear-gradient(135deg, var(--cebbwf5-login-primary) 0%, color-mix(in srgb, var(--cebbwf5-login-primary) 82%, var(--cebbwf5-login-background)) 100%);color:var(--cebbwf5-login-primary-foreground);flex-direction:column;justify-content:center;align-items:center;padding:3rem;display:flex}.cedros-split-page-brand-content{text-align:center;max-width:400px}.cedros-split-page-logo{background:var(--cebbwf5-login-card);width:64px;height:64px;color:var(--cebbwf5-login-primary);border-radius:16px;justify-content:center;align-items:center;margin:0 auto 2rem;font-size:2rem;font-weight:700;display:flex}.cedros-split-page-brand-name{margin:0 0 1rem;font-size:2rem;font-weight:700}.cedros-split-page-tagline{opacity:.8;margin:0;line-height:1.6}.cedros-split-page-form{background:var(--cebbwf5-login-background);flex-direction:column;justify-content:center;align-items:center;padding:3rem;display:flex}.cedros-split-page-form-content{width:100%;max-width:380px}.cedros-split-page-title{color:var(--cebbwf5-login-foreground);margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.cedros-split-page-subtitle{color:var(--cebbwf5-login-muted-foreground);margin:0 0 2rem;font-size:.875rem}.cedros-otp-input{flex-direction:column;gap:.75rem;min-width:0;max-width:100%;display:flex}.cedros-otp-slots{justify-content:center;gap:.5rem;display:flex}.cedros-otp-slot{border:1px solid var(--cebbwf5-input);border-radius:var(--cebbwf5-login-radius);width:2.75rem;min-width:0;height:3rem;color:var(--cebbwf5-login-foreground);text-align:center;background-color:#0000;padding:0;font-size:1.25rem;font-weight:500;transition:border-color .15s,box-shadow .15s}.cedros-otp-slot:focus{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 1px var(--cebbwf5-login-ring);outline:none}.cedros-otp-slot:focus-visible{outline:2px solid var(--cebbwf5-login-ring);outline-offset:2px}.cedros-otp-slot-error{border-color:var(--cebbwf5-destructive)}.cedros-otp-slot-error:focus{border-color:var(--cebbwf5-destructive);box-shadow:0 0 0 1px var(--cebbwf5-destructive)}.cedros-otp-slot:disabled{opacity:.5;cursor:not-allowed}.cedros-otp-error{color:var(--cebbwf5-destructive);text-align:center;margin:0;font-size:.875rem}.cedros-mfa-setup-prompt{gap:1.25rem;width:100%;max-width:34rem;margin:0 auto;display:grid}.cedros-mfa-setup-prompt__header{text-align:center;gap:.5rem;display:grid}.cedros-mfa-setup-prompt__title{color:var(--cebbwf5-login-foreground);margin:0;font-size:1.25rem;font-weight:600;line-height:1.2}.cedros-mfa-setup-prompt__description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem;line-height:1.5}.cedros-mfa-setup-prompt__body{min-width:0}.cedros-totp-setup,.cedros-totp-verify{flex-direction:column;gap:1.5rem;display:flex}.cedros-totp-loading{color:var(--cebbwf5-login-muted-foreground);align-items:center;gap:.625rem;padding:.5rem 0;font-size:.875rem;display:flex}.cedros-totp-step{flex-direction:column;gap:1.25rem;display:flex}.cedros-totp-title{color:var(--cebbwf5-login-foreground);text-align:center;margin:0;font-size:1.125rem;font-weight:600}.cedros-totp-description{color:var(--cebbwf5-login-muted-foreground);text-align:center;margin:0;font-size:.875rem;line-height:1.5}.cedros-totp-qr{justify-content:center;padding:1rem;display:flex}.cedros-totp-qr-image{background:#fff;border-radius:.5rem;padding:.5rem}.cedros-qr-error{border:1px solid var(--cebbwf5-destructive);background:color-mix(in srgb, var(--cebbwf5-destructive) 8%, transparent);color:var(--cebbwf5-destructive);text-align:center;border-radius:.5rem;justify-content:center;align-items:center;padding:.75rem;display:flex}.cedros-qr-error p{margin:0;font-size:.8125rem;line-height:1.4}.cedros-totp-manual{text-align:center}.cedros-totp-manual-label{color:var(--cebbwf5-login-muted-foreground);margin:0 0 .5rem;font-size:.75rem}.cedros-totp-secret{background:var(--cebbwf5-login-muted);border-radius:var(--cebbwf5-login-radius);justify-content:center;align-items:center;gap:.5rem;padding:.75rem;display:flex}.cedros-totp-secret-code{letter-spacing:.05em;color:var(--cebbwf5-login-foreground);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.875rem}.cedros-totp-backup-codes{background:var(--cebbwf5-login-muted);border-radius:var(--cebbwf5-login-radius);grid-template-columns:repeat(2,1fr);gap:.5rem;padding:1rem;display:grid}.cedros-totp-backup-code{background:var(--cebbwf5-login-background);text-align:center;color:var(--cebbwf5-login-foreground);border-radius:.25rem;padding:.5rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.875rem}.cedros-totp-confirm{margin-top:.5rem}.cedros-totp-actions{justify-content:flex-end;gap:.75rem;display:flex}.cedros-totp-actions .cedros-button{flex:1}.cedros-totp-success{text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:2rem 1rem;display:flex}.cedros-totp-success-icon{color:var(--cebbwf5-login-success)}.cedros-totp-verify-header{text-align:center;flex-direction:column;align-items:center;gap:.75rem;display:flex}.cedros-totp-verify-icon{color:var(--cebbwf5-login-muted-foreground);margin-bottom:.5rem}.cedros-totp-email{color:var(--cebbwf5-login-foreground);margin:0;font-size:.875rem;font-weight:500}.cedros-totp-backup-input{flex-direction:column;gap:.5rem;display:flex}.cedros-totp-verify-footer{justify-content:center;align-items:center;gap:.75rem;font-size:.875rem;display:flex}.cedros-totp-verify-divider{color:var(--cebbwf5-login-muted-foreground)}.cedros-totp-settings{flex-direction:column;gap:1rem;display:flex}.cedros-totp-panel{background:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-radius-card);box-shadow:var(--cebbwf5-login-shadow-sm);flex-direction:column;gap:1.25rem;padding:1.25rem;display:flex}.cedros-totp-status-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.cedros-totp-status-info{flex:1}.cedros-totp-status-info .cedros-totp-title{text-align:left;margin-bottom:.5rem;font-size:.9375rem}.cedros-totp-status-info .cedros-totp-description{text-align:left}.cedros-totp-enabled-actions{flex-wrap:wrap;gap:.75rem;display:flex}.cedros-totp-verify-input{justify-content:center;padding:1rem 0;display:flex}.cedros-totp-error{margin-bottom:.5rem}.cedros-totp-warning{color:var(--cebbwf5-destructive)}:where(.cedros-login-admin-root) .cebbwf5-admin-panel{background:var(--admin-bg);border:1px solid var(--admin-border);border-radius:var(--admin-radius);box-shadow:var(--admin-shadow-card);flex-direction:column;gap:1rem;padding:1.5rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-panel-loading{color:var(--admin-muted);justify-content:center;align-items:center;gap:.5rem;padding:2rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-header{border-bottom:1px solid var(--admin-border);align-items:center;gap:.75rem;padding-bottom:1rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-title{margin:0;font-size:1.25rem;font-weight:600}:where(.cedros-login-admin-root) .cebbwf5-admin-role{font-size:.75rem}:where(.cedros-login-admin-root) .cebbwf5-admin-tabs{background:var(--admin-muted-bg);border:1px solid var(--admin-border);border-radius:calc(var(--admin-radius) - 2px);gap:.25rem;padding:.25rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-tab{color:var(--admin-muted);cursor:pointer;transition:color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color .15s ease;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;justify-content:center;align-items:center;margin-bottom:-1px;padding:.75rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}:where(.cedros-login-admin-root) .cebbwf5-admin-tab:focus-visible{outline:2px solid var(--admin-ring);outline-offset:2px}:where(.cedros-login-admin-root) .cebbwf5-admin-tab-active{color:var(--admin-fg);border-bottom-color:var(--admin-fg);box-shadow:none;background:0 0}:where(.cedros-login-admin-root) .cebbwf5-admin-content{padding-top:.5rem}:where(.cedros-login-admin-root) .cebbwf5-admin-tabs--line{background:var(--admin-bg);border:none;border-bottom:1px solid var(--admin-border);gap:0;margin-bottom:1rem;padding:0;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-tabs--line .cebbwf5-admin-tab{color:var(--admin-muted);cursor:pointer;box-shadow:none;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:.625rem 1rem;font-size:.875rem;font-weight:500;transition:color .15s,border-color .15s}:where(.cedros-login-admin-root) .cebbwf5-admin-tabs--line .cebbwf5-admin-tab:hover{color:var(--admin-fg)}:where(.cedros-login-admin-root) .cebbwf5-admin-tabs--line .cebbwf5-admin-tab-active{color:var(--admin-fg);border-bottom-color:var(--admin-fg);box-shadow:none;background:0 0}:where(.cedros-login-admin-root) .cebbwf5-admin-tabs--pill{background:var(--admin-bg,var(--cebbwf5-login-card));border-radius:calc(var(--admin-radius) + 4px);flex-wrap:wrap;margin-bottom:1rem}:where(.cedros-login-admin-root) .cebbwf5-admin-tabs--pill .cebbwf5-admin-tab{border-radius:var(--admin-radius);color:var(--admin-muted);box-shadow:none;background:0 0;border:1px solid #0000;margin-bottom:0;padding:.5rem .875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-tabs--pill .cebbwf5-admin-tab:hover{color:var(--admin-fg);background:var(--admin-muted-bg)}:where(.cedros-login-admin-root) .cebbwf5-admin-tabs--pill .cebbwf5-admin-tab-active,:where(.cedros-login-admin-root) .cebbwf5-admin-tabs--pill .cebbwf5-admin-tab-active:hover{color:var(--admin-fg);background:var(--admin-bg,var(--cebbwf5-login-card));border-color:var(--admin-border,var(--cebbwf5-login-border));border-radius:var(--admin-radius);box-shadow:var(--admin-shadow-sm,var(--cebbwf5-login-shadow-xs))}:where(.cedros-login-admin-root) .cebbwf5-admin-tab-content{flex-direction:column;gap:1.5rem;display:flex}.cedros-login-admin-root .cebbwf5-admin-tab-content{width:100%}:where(.cedros-login-admin-root) .cebbwf5-admin-section-title{color:var(--admin-fg);margin:0 0 .5rem;font-size:.9375rem;font-weight:600}:where(.cedros-login-admin-root) .cebbwf5-admin-section-description{color:var(--admin-muted);margin:0 0 1rem;font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-settings-list{flex-direction:column;gap:.75rem;margin:0;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-setting{gap:1rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-setting-label{min-width:80px;font-weight:500}:where(.cedros-login-admin-root) .cebbwf5-admin-setting-value{color:var(--admin-muted)}:where(.cedros-login-admin-root) .cebbwf5-admin-settings-hint{color:var(--admin-muted);margin-top:1rem;font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-danger-zone{border:1px solid var(--admin-error);border-radius:var(--admin-radius);margin-top:2rem;padding:1rem}:where(.cedros-login-admin-root) .cebbwf5-admin-danger-title{color:var(--admin-error);margin:0 0 .5rem;font-size:1rem;font-weight:600}:where(.cedros-login-admin-root) .cebbwf5-admin-danger-description{color:var(--admin-muted);margin:0;font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-retry{color:var(--cebbwf5-login-admin-link,var(--admin-link,var(--cebbwf5-login-link)));border:1px solid var(--cebbwf5-login-admin-ring,var(--admin-ring));border-radius:var(--admin-radius);cursor:pointer;background:0 0;padding:.5rem 1rem;font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-retry:hover{background:color-mix(in srgb, var(--cebbwf5-login-admin-link,var(--admin-link,var(--cebbwf5-login-link))) 10%, transparent)}:where(.cedros-login-admin-root) .cebbwf5-admin-refresh{border:1px solid var(--admin-border);border-radius:var(--admin-radius);cursor:pointer;color:var(--admin-muted);background:0 0;padding:.25rem .5rem;font-size:1rem}:where(.cedros-login-admin-root) .cebbwf5-admin-refresh:hover:not(:disabled){background:var(--admin-accent);color:var(--admin-fg)}:where(.cedros-login-admin-root) .cebbwf5-admin-refresh:disabled{opacity:.5;cursor:not-allowed}:where(.cedros-login-admin-root) .cebbwf5-admin-icon-button{width:2.25rem;padding:0;font-size:1rem;line-height:1}:where(.cedros-login-admin-root) .cebbwf5-admin-loading-indicator{border:2px solid var(--admin-muted-bg);border-top-color:var(--cebbwf5-login-admin-link,var(--admin-link,var(--cebbwf5-login-link)));border-radius:50%;width:1.5rem;height:1.5rem;animation:1s linear infinite cedros-spin;display:inline-block}:where(.cedros-login-admin-root) .cebbwf5-admin-empty{text-align:center;border:1px dashed var(--admin-border);border-radius:var(--admin-radius);background:radial-gradient(ellipse at 50% 0%, color-mix(in srgb, var(--admin-muted-bg) 55%, transparent), transparent 70%);animation:cedros-fade-in .3s var(--cebbwf5-ease-out);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:2.5rem 2rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-empty-message{color:var(--admin-muted);margin:0;font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-pagination{border-top:1px solid var(--admin-border);flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;margin-top:1rem;padding-top:1rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-page-btn{background:var(--admin-bg);border:1px solid var(--admin-border);border-radius:var(--admin-radius);cursor:pointer;color:var(--admin-fg);padding:.5rem 1rem;font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-page-btn:hover:not(:disabled){background:var(--admin-accent)}:where(.cedros-login-admin-root) .cebbwf5-admin-page-btn:disabled{opacity:.5;cursor:not-allowed}:where(.cedros-login-admin-root) .cebbwf5-admin-page-info{color:var(--admin-muted);font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-stats{background:var(--admin-bg);border:1px solid var(--admin-border);border-radius:var(--admin-radius);padding:1rem}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar{background:var(--admin-bg);border:1px solid var(--admin-border);border-radius:var(--admin-radius);box-shadow:var(--admin-shadow-card);align-items:center;gap:1rem;margin-bottom:1.5rem;padding:.875rem 1rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-grid{flex:1;gap:1.5rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-item{border-right:1px solid var(--admin-border);flex-direction:column;gap:.125rem;padding-right:1.5rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-item:last-child{border-right:none;padding-right:0}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-label{text-transform:uppercase;letter-spacing:.06em;color:var(--admin-muted);font-size:.6875rem;font-weight:500}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--admin-fg);font-size:1.125rem;font-weight:700;line-height:1.2}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-value--success{color:var(--admin-success)}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-value--warning{color:var(--admin-warning)}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-value--muted{color:var(--admin-muted)}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-desc{color:var(--admin-muted);font-size:.6875rem}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-refresh{background:var(--admin-bg);border:1px solid var(--admin-input);border-radius:var(--admin-radius);width:2.125rem;height:2.125rem;color:var(--admin-muted);cursor:pointer;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-refresh:hover:not(:disabled){background:var(--admin-accent);color:var(--admin-fg)}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-refresh:disabled{opacity:.5;cursor:not-allowed}:where(.cedros-login-admin-root) .cebbwf5-admin__spinner{animation:1s linear infinite cedros-spin}:where(.cedros-login-admin-root) .cebbwf5-admin__skeleton{background:linear-gradient(90deg, var(--admin-muted-bg) 25%, color-mix(in srgb, var(--admin-border) 55%, var(--admin-muted-bg)) 50%, var(--admin-muted-bg) 75%);animation:cedros-shimmer 1.8s var(--cebbwf5-ease-in-out) infinite;background-size:200% 100%;border-radius:.25rem;display:inline-block}:where(.cedros-login-admin-root) .cebbwf5-admin__skeleton--text{width:4rem;height:1em}:where(.cedros-login-admin-root) .cebbwf5-admin__skeleton--value{width:5rem;height:1.5rem}:where(.cedros-login-admin-root) .cebbwf5-admin__skeleton--lg{width:6rem;height:2rem}:where(.cedros-login-admin-root) .cebbwf5-admin-stats-error,:where(.cedros-login-admin-root) .cebbwf5-admin-stats-loading{flex-direction:column;align-items:center;gap:.75rem;padding:2rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-stats-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-stats-title{color:var(--admin-fg);margin:0;font-size:.9375rem;font-weight:600}:where(.cedros-login-admin-root) .cebbwf5-admin-stats-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}:where(.cedros-login-admin-root) .cebbwf5-admin-stats-grid>*{animation:cedros-slide-up-fade .3s var(--cebbwf5-ease-out) backwards}:where(.cedros-login-admin-root) .cebbwf5-admin-stats-grid>:nth-child(2){animation-delay:50ms}:where(.cedros-login-admin-root) .cebbwf5-admin-stats-grid>:nth-child(3){animation-delay:.1s}:where(.cedros-login-admin-root) .cebbwf5-admin-stats-grid>:nth-child(n+4){animation-delay:.15s}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-card{background:var(--admin-bg);background-image:var(--cebbwf5-surface-sheen);border:1px solid var(--admin-border);border-radius:var(--admin-radius);box-shadow:var(--admin-shadow-card);flex-direction:column;gap:.25rem;padding:1.125rem 1.25rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--admin-fg);font-size:1.5rem;font-weight:700}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-sub{color:var(--admin-muted);font-size:.875rem;font-family:var(--cebbwf5-font-mono)}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-pending{border-left:3px solid var(--admin-warning)}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-pending .cebbwf5-admin-stat-value{color:var(--admin-warning)}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-success{border-left:3px solid var(--admin-success)}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-success .cebbwf5-admin-stat-value{color:var(--admin-success)}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-error{border-left:3px solid var(--admin-error)}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-error .cebbwf5-admin-stat-value{color:var(--admin-error)}.cedros-setting-select{border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);background-color:var(--cebbwf5-login-background);color:var(--cebbwf5-login-foreground);cursor:pointer;appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");background-position:right .5rem center;background-repeat:no-repeat;padding:.375rem 2rem .375rem .75rem;font-size:.8125rem;transition:border-color .15s,box-shadow .15s}.cedros-setting-select:hover{border-color:var(--cebbwf5-login-ring)}.cedros-setting-select:focus{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 2px color-mix(in srgb, var(--cebbwf5-login-ring) 20%, transparent);outline:none}.cedros-setting-select:disabled{opacity:.5;cursor:not-allowed}.cedros-login-admin-root .cedros-setting-select{border-color:var(--admin-border);border-radius:calc(var(--admin-radius) - 2px);background-color:var(--admin-muted-bg);height:2.25rem;color:var(--admin-fg);background-position:right .75rem center;background-size:1rem;padding:0 2.25rem 0 .75rem}.cedros-login-admin-root .cedros-setting-select:hover{border-color:var(--admin-ring);background-color:var(--admin-bg)}.cedros-login-admin-root .cedros-setting-select:focus{border-color:var(--admin-ring);box-shadow:0 0 0 3px color-mix(in srgb, var(--admin-ring) 15%, transparent)}.cebbwf5-dark .cedros-setting-select,.dark .cedros-setting-select,[data-theme=dark] .cedros-setting-select,[data-color-mode=dark] .cedros-setting-select,[data-color-scheme=dark] .cedros-setting-select{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\")}.cedros-setting-unit{color:var(--cebbwf5-login-muted-foreground);white-space:nowrap;font-size:.75rem}.cedros-duration-input{flex-direction:column;gap:.5rem;display:flex}.cedros-duration-custom{align-items:center;gap:.5rem;display:flex}.cedros-duration-display{color:var(--cebbwf5-login-link);font-size:.75rem;font-weight:500}.cedros-percentage-input{flex-direction:column;gap:.5rem;display:flex}.cedros-percentage-slider-row{align-items:center;gap:.75rem;display:flex}.cedros-percentage-slider{background:var(--cebbwf5-login-accent);appearance:none;cursor:pointer;border-radius:3px;flex:1;height:6px}.cedros-percentage-slider::-webkit-slider-thumb{appearance:none;background:var(--cebbwf5-login-primary);cursor:pointer;border:2px solid var(--cebbwf5-login-card);width:18px;height:18px;box-shadow:var(--cebbwf5-login-shadow-xs);border-radius:50%}.cedros-percentage-slider::-moz-range-thumb{background:var(--cebbwf5-login-primary);cursor:pointer;border:2px solid var(--cebbwf5-login-card);width:18px;height:18px;box-shadow:var(--cebbwf5-login-shadow-xs);border-radius:50%}.cedros-percentage-slider:focus{outline:none}.cedros-percentage-slider:focus::-webkit-slider-thumb{box-shadow:0 0 0 3px color-mix(in srgb, var(--cebbwf5-login-ring) 30%, transparent)}.cedros-percentage-value{font-size:.875rem;font-weight:600;font-family:var(--cebbwf5-font-mono);color:var(--cebbwf5-login-foreground);text-align:right;min-width:48px}.cedros-preset-buttons{flex-wrap:wrap;gap:.375rem;display:flex}.cedros-preset-button{background:var(--cebbwf5-login-accent);border:1px solid var(--cebbwf5-login-border);border-radius:calc(var(--cebbwf5-login-radius) - 4px);color:var(--cebbwf5-login-muted-foreground);cursor:pointer;transition:background var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);padding:.25rem .5rem;font-size:.75rem}.cedros-preset-button:hover{background:var(--cebbwf5-login-card);border-color:var(--cebbwf5-login-ring);color:var(--cebbwf5-login-foreground)}.cedros-preset-button-active,.cedros-preset-button-active:hover{background:var(--cebbwf5-login-primary);border-color:var(--cebbwf5-login-primary);color:var(--cebbwf5-login-primary-foreground)}.cedros-select-input{flex-direction:column;gap:.5rem;display:flex}.cedros-select-custom,.cedros-number-input{align-items:center;gap:.5rem;display:flex}.cedros-path-input{border:1px solid var(--cebbwf5-login-border);border-radius:calc(var(--cebbwf5-login-radius) - 2px);background:var(--cebbwf5-login-card);min-width:0;transition:border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), box-shadow var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);flex:1;align-items:stretch;display:flex;overflow:hidden}.cedros-path-input:focus-within{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 2px color-mix(in srgb, var(--cebbwf5-login-ring) 20%, transparent)}.cedros-path-input__prefix{font-family:var(--cebbwf5-font-mono);color:var(--cebbwf5-login-muted-foreground);background:var(--cebbwf5-login-accent);border-right:1px solid var(--cebbwf5-login-border);-webkit-user-select:none;user-select:none;align-items:center;padding:0 .625rem;font-size:.875rem;display:flex}.cedros-path-input .cedros-path-input__field{background:0 0;border:none;border-radius:0}.cedros-path-input .cedros-path-input__field:focus{box-shadow:none}.cedros-system-settings-actions{border-top:1px solid var(--cebbwf5-login-border);justify-content:flex-end;align-items:center;gap:.75rem;padding-top:1rem;display:flex}.cedros-settings-change-count{color:var(--cebbwf5-login-link);margin-right:auto;font-size:.875rem}.cedros-token-list-input{flex-direction:column;gap:.75rem;width:100%;display:flex}.cedros-token-presets{background:var(--cebbwf5-login-card);border-radius:var(--cebbwf5-login-radius);border:1px solid var(--cebbwf5-login-border);flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cedros-token-presets-label{color:var(--cebbwf5-login-muted-foreground);text-transform:uppercase;letter-spacing:.025em;font-size:.75rem;font-weight:600}.cedros-token-presets-list{flex-wrap:wrap;gap:.375rem;display:flex}.cedros-token-preset-chip{background:var(--cebbwf5-login-muted);color:var(--cebbwf5-login-foreground);border:1px solid var(--cebbwf5-login-border);cursor:pointer;transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), opacity var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);border-radius:9999px;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;display:inline-flex}button.cedros-token-preset-chip:hover{background:var(--cebbwf5-login-accent);border-color:var(--cebbwf5-login-ring)}.cedros-token-preset-chip-selected{background:var(--cebbwf5-login-primary);color:var(--cebbwf5-login-primary-foreground);border-color:var(--cebbwf5-login-primary)}.cedros-token-preset-chip-selected:hover{background:var(--cebbwf5-login-primary);opacity:.9}.cedros-token-chip-check{margin-left:.125rem;font-size:.625rem}.cedros-token-symbol-list-input{flex-direction:column;gap:.75rem;display:flex}.cedros-token-list-empty{text-align:center;color:var(--cebbwf5-login-muted-foreground);background:var(--cebbwf5-login-muted);border-radius:var(--cebbwf5-login-radius);border:1px dashed var(--cebbwf5-login-border);margin:0;padding:1rem;font-size:.875rem}.cedros-token-row{background:var(--cebbwf5-login-muted);border-radius:var(--cebbwf5-login-radius);border:1px solid var(--cebbwf5-login-border);align-items:flex-start;gap:.5rem;padding:.75rem;display:flex}.cedros-token-row:hover{border-color:var(--cebbwf5-login-ring)}.cedros-token-row-fields{flex:1;grid-template-columns:80px 1fr 70px;gap:.5rem;min-width:0;display:grid}@media (width>=640px){.cedros-token-row-fields{grid-template-columns:80px 1fr 70px 1fr}}.cedros-token-input-symbol{text-transform:uppercase;font-weight:600}.cedros-token-input-mint{font-family:ui-monospace,monospace;font-size:.75rem}.cedros-token-input-decimals{text-align:center}.cedros-token-input-logo{font-size:.75rem}.cedros-token-remove-btn{width:28px;height:28px;color:var(--cebbwf5-login-muted-foreground);cursor:pointer;border-radius:var(--cebbwf5-login-radius);transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), opacity var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-spring);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1.25rem;line-height:1;display:flex}.cedros-token-remove-btn:hover{background:var(--cebbwf5-destructive);color:var(--cebbwf5-destructive-foreground)}.cedros-token-add-btn{border:1px dashed var(--cebbwf5-login-border);color:var(--cebbwf5-login-muted-foreground);cursor:pointer;border-radius:var(--cebbwf5-login-radius);transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);background:0 0;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1rem;font-size:.875rem;font-weight:500;display:flex}.cedros-token-add-btn:hover{border-color:var(--cebbwf5-login-ring);color:var(--cebbwf5-login-link);background:color-mix(in srgb, var(--cebbwf5-login-link) 10%, transparent)}.cedros-toggle{cursor:pointer;background:0 0;border:none;align-items:center;gap:.75rem;padding:0;font-family:inherit;display:inline-flex}.cedros-toggle-track{background:var(--cebbwf5-login-muted);width:44px;height:24px;transition:background var(--cebbwf5-duration-normal) var(--cebbwf5-ease-out);border-radius:12px;position:relative;box-shadow:inset 0 1px 2px #0000000f}.cedros-toggle-on .cedros-toggle-track{background:var(--cebbwf5-login-primary);box-shadow:inset 0 1px 2px #00000026, var(--cebbwf5-edge-highlight)}.cedros-toggle-off .cedros-toggle-track{background:var(--cebbwf5-login-muted)}.cedros-toggle-thumb{background:var(--cebbwf5-login-primary-foreground);width:20px;height:20px;box-shadow:var(--cebbwf5-login-shadow-xs);transition:transform var(--cebbwf5-duration-normal) var(--cebbwf5-ease-spring), width var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);border-radius:10px;position:absolute;top:2px;left:2px}.cedros-toggle-on .cedros-toggle-thumb{background:var(--cebbwf5-login-primary-foreground);transform:translate(20px)}.cedros-toggle:active:not(:disabled) .cedros-toggle-thumb{width:24px}.cedros-toggle-on:active:not(:disabled) .cedros-toggle-thumb{transform:translate(16px)}.cedros-toggle-label{color:var(--cebbwf5-login-muted-foreground);font-size:.875rem;font-weight:500}.cedros-toggle-on .cedros-toggle-label{color:var(--cebbwf5-login-foreground)}.cedros-login-admin-root .cedros-toggle-label{color:var(--admin-muted)}.cedros-login-admin-root .cedros-toggle-on .cedros-toggle-label{color:var(--admin-fg)}.cedros-toggle:focus-visible .cedros-toggle-track{outline:2px solid var(--cebbwf5-login-ring);outline-offset:2px}.cedros-secret-input{flex-direction:column;gap:.5rem;width:100%;display:flex}.cedros-secret-input-masked{flex-direction:row;align-items:center;gap:.75rem}.cedros-secret-masked{font-family:var(--cebbwf5-font-mono);color:var(--cebbwf5-login-muted-foreground);letter-spacing:.1em;font-size:.875rem}.cedros-secret-edit-btn,.cedros-secret-toggle-btn,.cedros-secret-done-btn{background:var(--cebbwf5-login-accent);border:1px solid var(--cebbwf5-login-border);border-radius:calc(var(--cebbwf5-login-radius) - 4px);color:var(--cebbwf5-login-muted-foreground);cursor:pointer;transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);padding:.375rem .75rem;font-size:.75rem;font-weight:500}.cedros-secret-edit-btn:hover,.cedros-secret-toggle-btn:hover,.cedros-secret-done-btn:hover{background:var(--cebbwf5-login-card);border-color:var(--cebbwf5-login-ring);color:var(--cebbwf5-login-foreground)}.cedros-secret-actions{gap:.5rem;display:flex}.cedros-setting-textarea{resize:vertical;min-height:100px;font-family:var(--cebbwf5-font-mono);font-size:.8125rem;line-height:1.5}.cedros-readonly-secret{flex-direction:column;gap:.5rem;display:flex}.cedros-readonly-secret-value{background:var(--cebbwf5-login-accent);border:1px solid var(--cebbwf5-login-border);border-radius:calc(var(--cebbwf5-login-radius) - 4px);align-items:center;min-height:2.25rem;padding:.5rem .75rem;display:flex;overflow-x:auto}.cedros-readonly-secret-code{font-family:var(--cebbwf5-font-mono);word-break:break-all;color:var(--cebbwf5-login-foreground);font-size:.8125rem}.cedros-readonly-secret-empty{color:var(--cebbwf5-login-muted-foreground);font-size:.8125rem;font-style:italic}.cedros-readonly-secret-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.cedros-secret-action-btn{background:var(--cebbwf5-login-accent);border:1px solid var(--cebbwf5-login-border);border-radius:calc(var(--cebbwf5-login-radius) - 4px);color:var(--cebbwf5-login-muted-foreground);cursor:pointer;transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);padding:.375rem .75rem;font-size:.75rem;font-weight:500}.cedros-secret-action-btn:hover{background:var(--cebbwf5-login-card);border-color:var(--cebbwf5-login-ring);color:var(--cebbwf5-login-foreground)}.cedros-secret-action-btn:disabled{opacity:.5;cursor:not-allowed}.cedros-secret-action-btn--danger{color:var(--cebbwf5-destructive);border-color:var(--cebbwf5-destructive)}.cedros-secret-action-btn--danger:hover{background:var(--cebbwf5-destructive);color:var(--cebbwf5-destructive-foreground)}.cedros-readonly-secret-confirm{align-items:center;gap:.5rem;display:flex}.cedros-readonly-secret-confirm-text{color:var(--cebbwf5-destructive);font-size:.75rem;font-weight:500}.cedros-readonly-secret-error{color:var(--cebbwf5-destructive);margin:0;font-size:.75rem}:where(.cedros-login-admin-root) .cebbwf5-admin-status{background:var(--admin-bg);border:1px solid var(--admin-border);border-radius:var(--admin-radius);padding:1.25rem}:where(.cedros-login-admin-root) .cebbwf5-admin-status-error{text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:2rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-error{color:var(--admin-error);margin:0;font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-status-loading{justify-content:center;align-items:center;gap:.75rem;padding:2rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-loading-indicator{border:2px solid var(--admin-muted-bg);border-top-color:var(--cebbwf5-login-admin-link,var(--admin-link,var(--cebbwf5-login-link)));border-radius:50%;width:1.5rem;height:1.5rem;animation:.8s linear infinite cedros-spin}:where(.cedros-login-admin-root) .cebbwf5-admin-loading-text{color:var(--admin-muted);font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-status-header{border-bottom:1px solid var(--admin-border);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-status-title{color:var(--admin-fg);margin:0;font-size:.9375rem;font-weight:600}:where(.cedros-login-admin-root) .cebbwf5-admin-status-actions{align-items:center;gap:.5rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-status-badge{text-transform:uppercase;letter-spacing:.025em;background:var(--admin-muted-bg);color:var(--admin-muted);border-radius:9999px;align-items:center;padding:.125rem .5rem;font-size:.6875rem;font-weight:500;display:inline-flex}:where(.cedros-login-admin-root) .cebbwf5-admin-status-badge-enabled{background:var(--admin-success-light);color:var(--admin-success)}:where(.cedros-login-admin-root) .cebbwf5-admin-status-badge-disabled{background:var(--admin-muted-bg);color:var(--admin-muted)}:where(.cedros-login-admin-root) .cebbwf5-admin-status-badge-sm{margin-left:.5rem;padding:.125rem .5rem;font-size:.6875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-icon-button{justify-content:center;align-items:center;width:2.25rem;min-width:2.25rem;height:2.25rem;padding:0;font-size:1rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-status-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}:where(.cedros-login-admin-root) .cebbwf5-admin-status-section{background:var(--admin-muted-bg);border:1px solid var(--admin-border);border-radius:calc(var(--admin-radius) - 2px);padding:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-status-section-title{color:var(--admin-muted);text-transform:uppercase;letter-spacing:.06em;align-items:center;margin:0 0 .75rem;font-size:.6875rem;font-weight:600;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-status-item{justify-content:space-between;align-items:center;padding:.375rem 0;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-status-item:not(:last-child){border-bottom:1px solid var(--admin-border)}:where(.cedros-login-admin-root) .cebbwf5-admin-status-label{color:var(--admin-muted);font-size:.8125rem}:where(.cedros-login-admin-root) .cebbwf5-admin-status-value{color:var(--admin-fg);font-size:.8125rem;font-weight:500;font-family:var(--cebbwf5-font-mono)}:where(.cedros-login-admin-root) .cebbwf5-admin-status-connected{color:var(--admin-success)}:where(.cedros-login-admin-root) .cebbwf5-admin-status-disconnected{color:var(--admin-error)}:where(.cedros-login-admin-root) .cebbwf5-admin-status-footer{border-top:1px solid var(--admin-border);justify-content:space-between;align-items:center;margin-top:1rem;padding-top:.75rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-status-wallet{font-size:.75rem;font-family:var(--cebbwf5-font-mono);background:var(--admin-muted-bg);color:var(--admin-muted);border-radius:.25rem;padding:.125rem .375rem}:where(.cedros-dashboard){--admin-bg:var(--cebbwf5-login-card);--admin-fg:var(--cebbwf5-login-foreground);--admin-muted:var(--cebbwf5-login-muted-foreground);--admin-muted-bg:var(--cebbwf5-login-muted);--admin-accent:var(--cebbwf5-login-accent);--admin-accent-fg:var(--cebbwf5-accent-foreground);--admin-border:var(--cebbwf5-login-border);--admin-input:var(--cebbwf5-input);--admin-ring:var(--cebbwf5-login-ring);--admin-primary:var(--cebbwf5-login-primary);--admin-primary-fg:var(--cebbwf5-login-primary-foreground);--admin-link:var(--cebbwf5-login-link);--admin-success:var(--cebbwf5-login-success);--admin-success-light:var(--cebbwf5-login-success-soft);--admin-warning:var(--cebbwf5-login-warning);--admin-warning-light:var(--cebbwf5-warning-light);--admin-error:var(--cebbwf5-login-error);--admin-error-light:var(--cebbwf5-destructive-light);--admin-info:var(--cebbwf5-login-info);--admin-info-light:color-mix(in srgb, var(--cebbwf5-login-info) 12%, transparent);--admin-sidebar-bg:var(--cebbwf5-login-card);--admin-card-bg:var(--cebbwf5-login-card);--admin-table-head:var(--cebbwf5-login-muted);--admin-table-row:var(--cebbwf5-login-card);--admin-table-row-hover:var(--cebbwf5-login-accent);--admin-font:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;--admin-font-mono:ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Consolas, monospace;--admin-text:var(--admin-fg);--admin-radius:.5rem;--admin-shadow-sm:var(--cebbwf5-login-shadow-xs);--admin-shadow:var(--cebbwf5-login-shadow-md);--admin-shadow-card:var(--cebbwf5-login-shadow-sm);color:var(--admin-fg);background:var(--admin-bg);font-size:.875rem;line-height:1.5;font-family:var(--admin-font)}.cedros-login-admin-root .cedros-button{border-radius:var(--admin-radius);height:2.25rem;padding:0 .875rem}.cedros-login-admin-root .cedros-button:focus-visible{outline:2px solid var(--admin-ring);outline-offset:2px}.cedros-login-admin-root .cedros-button-sm{border-radius:calc(var(--admin-radius) - 2px);height:2rem;font-size:.75rem}.cedros-login-admin-root .cedros-button-primary{background-color:var(--admin-primary);color:var(--admin-primary-fg);box-shadow:var(--admin-shadow-sm)}.cedros-login-admin-root .cedros-button-primary:hover:not(:disabled){background-color:color-mix(in srgb, var(--admin-primary) 85%, var(--admin-primary-fg))}.cedros-login-admin-root .cedros-button-outline{border-color:var(--admin-input)}.cedros-login-admin-root .cedros-button-outline:hover:not(:disabled),.cedros-login-admin-root .cedros-button-ghost:hover:not(:disabled){background-color:var(--admin-accent)}.cedros-login-admin-root .cedros-input{border:1px solid var(--admin-input);border-radius:var(--admin-radius);background-color:var(--admin-bg);height:2.25rem;box-shadow:none}.cedros-login-admin-root .cedros-input:focus,.cedros-login-admin-root .cedros-input:focus-visible{border-color:var(--admin-ring);box-shadow:0 0 0 3px color-mix(in srgb, var(--admin-ring) 15%, transparent)}.cedros-login-admin-root .cedros-toggle{gap:.5rem}.cedros-login-admin-root .cedros-toggle-track{background:var(--admin-muted-bg);border:1px solid var(--admin-border);width:38px;height:22px}.cedros-login-admin-root .cedros-toggle-thumb{background:var(--admin-bg);width:16px;height:16px;box-shadow:var(--admin-shadow-sm)}.cedros-login-admin-root .cedros-toggle-on .cedros-toggle-track{background:var(--admin-primary);border-color:var(--admin-primary)}.cedros-login-admin-root .cedros-toggle-off .cedros-toggle-track{background:var(--admin-muted-bg);border-color:var(--admin-border)}.cedros-login-admin-root .cedros-toggle-on .cedros-toggle-thumb{transform:translate(16px)}.cedros-login-admin-root .cedros-toggle:active:not(:disabled) .cedros-toggle-thumb{width:20px}.cedros-login-admin-root .cedros-toggle-on:active:not(:disabled) .cedros-toggle-thumb{transform:translate(12px)}.cedros-login-admin-root .cedros-toggle-label{color:var(--admin-fg);font-weight:500}.cedros-login-admin-root .cedros-toggle:focus-visible .cedros-toggle-track{outline:2px solid var(--admin-ring);outline-offset:2px}.cedros-dashboard{background:var(--admin-bg);height:100%;min-height:400px;color:var(--admin-fg);border:1px solid var(--admin-border);border-radius:var(--admin-radius);grid-template-rows:1fr;grid-template-columns:220px 1fr;display:grid;overflow:hidden}.cedros-dashboard--loading{flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:400px;display:flex}.cedros-dashboard__loading-text{color:var(--admin-muted);font-size:.875rem}.cedros-dashboard__sidebar{background:var(--admin-sidebar-bg);border-right:1px solid var(--admin-border);flex-direction:column;min-height:0;display:flex}.cedros-dashboard__sidebar-header{border-bottom:1px solid var(--admin-border);padding:1rem .75rem}.cedros-dashboard__logo{color:var(--admin-fg);align-items:center;gap:.5rem;display:flex}.cedros-dashboard__logo svg{flex-shrink:0}.cedros-dashboard__logo-text{letter-spacing:-.01em;font-size:.875rem;font-weight:600}.cedros-dashboard__nav{flex:1;padding:.5rem;overflow-y:auto}.cedros-dashboard__nav-group{flex-direction:column;gap:.125rem;display:flex}.cedros-dashboard__nav-group+.cedros-dashboard__nav-group{border-top:1px solid var(--admin-border);margin-top:1rem;padding-top:.5rem}.cedros-dashboard__nav-label{text-transform:uppercase;letter-spacing:.05em;color:var(--admin-muted);padding:.5rem .75rem .375rem;font-size:.6875rem;font-weight:500}.cedros-dashboard__nav-label--collapsible{cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;transition:color .15s;display:flex}.cedros-dashboard__nav-label--collapsible:hover{color:var(--admin-text)}.cedros-dashboard__nav-chevron{justify-content:center;align-items:center;width:1rem;height:1rem;transition:transform .2s;display:flex}.cedros-dashboard__nav-chevron svg{opacity:.6;width:.625rem;height:.625rem}.cedros-dashboard__nav-chevron--expanded{transform:rotate(90deg)}.cedros-dashboard__nav-item{width:100%;color:var(--admin-muted);border-radius:calc(var(--admin-radius) - 2px);cursor:pointer;text-align:left;transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-spring);background:0 0;border:none;align-items:center;gap:.625rem;padding:.5rem .75rem;font-family:inherit;font-size:.8125rem;font-weight:500;line-height:1.5;display:flex;position:relative}.cedros-dashboard__nav-item:hover{background:color-mix(in srgb, var(--admin-accent) 60%, transparent);color:var(--admin-fg)}.cedros-dashboard__nav-item:before{content:\"\";background:var(--admin-primary);width:2.5px;height:0;transition:height var(--cebbwf5-duration-normal) var(--cebbwf5-ease-out);border-radius:999px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.cedros-dashboard__nav-item--active{background:var(--admin-accent);color:var(--admin-fg)}.cedros-dashboard__nav-item--active:before{height:1rem}.cedros-dashboard__nav-icon{opacity:.7;flex-shrink:0;justify-content:center;align-items:center;width:1rem;height:1rem;display:flex}.cedros-dashboard__nav-item--active .cedros-dashboard__nav-icon{opacity:1}.cedros-dashboard__nav-text{white-space:nowrap}.cedros-dashboard__sidebar-footer{border-top:1px solid var(--admin-border);flex-direction:column;gap:.75rem;margin-top:auto;padding:.75rem;display:flex}.cedros-dashboard__org{border-radius:calc(var(--admin-radius) - 2px);background:var(--admin-accent);align-items:center;gap:.625rem;padding:.5rem;display:flex}.cedros-dashboard__org-avatar{border-radius:calc(var(--admin-radius) - 2px);background:var(--admin-primary);width:2rem;height:2rem;color:var(--admin-primary-fg);flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:flex}.cedros-dashboard__org-info{flex-direction:column;min-width:0;display:flex}.cedros-dashboard__org-name{color:var(--admin-fg);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:500;overflow:hidden}.cedros-dashboard__org-role{color:var(--admin-muted);text-transform:capitalize;font-size:.6875rem}.cedros-dashboard__user-card{border-radius:calc(var(--admin-radius) - 2px);background:var(--admin-accent);align-items:center;gap:.625rem;padding:.5rem;display:flex}.cedros-dashboard__user-avatar{border-radius:50%;flex-shrink:0;width:2rem;height:2rem;overflow:hidden}.cedros-dashboard__user-avatar-img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.cedros-dashboard__user-avatar-placeholder{background:var(--admin-muted-bg);width:100%;height:100%;color:var(--admin-muted);justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:flex}.cedros-dashboard__user-info{flex-direction:column;min-width:0;display:flex}.cedros-dashboard__user-name{color:var(--admin-fg);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:500;overflow:hidden}.cedros-dashboard__user-email{color:var(--admin-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.6875rem;overflow:hidden}.cedros-profile-dropdown{width:100%;position:relative}.cedros-profile-dropdown__trigger{border-radius:calc(var(--admin-radius) - 2px);background:var(--admin-accent);width:100%;color:var(--admin-fg);cursor:pointer;text-align:left;border:none;align-items:center;gap:.625rem;padding:.5rem;font-family:inherit;transition:background .15s;display:flex}.cedros-profile-dropdown__trigger:hover{background:var(--admin-accent-hover,color-mix(in srgb, var(--admin-accent) 80%, var(--admin-fg) 20%))}.cedros-profile-dropdown__avatar{border-radius:50%;flex-shrink:0;width:2rem;height:2rem;overflow:hidden}.cedros-profile-dropdown__avatar-img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.cedros-profile-dropdown__avatar-placeholder{background:var(--admin-muted-bg);width:100%;height:100%;color:var(--admin-muted);justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:flex}.cedros-profile-dropdown__info{flex-direction:column;flex:1;min-width:0;display:flex}.cedros-profile-dropdown__name{white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:500;overflow:hidden}.cedros-profile-dropdown__email{color:var(--admin-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.6875rem;overflow:hidden}.cedros-profile-dropdown__chevron{opacity:.5;flex-shrink:0;transition:transform .2s}.cedros-profile-dropdown__chevron--open{transform:rotate(180deg)}.cedros-profile-dropdown__menu{background:var(--admin-card-bg);border:1px solid var(--admin-border);border-radius:calc(var(--admin-radius) - 2px);box-shadow:var(--admin-shadow,var(--cebbwf5-login-shadow-md));z-index:100;margin-bottom:.25rem;padding:.25rem;position:absolute;bottom:100%;left:0;right:0}.cedros-profile-dropdown__item{border-radius:calc(var(--admin-radius) - 4px);width:100%;color:var(--admin-fg);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.5rem;padding:.5rem .625rem;font-family:inherit;font-size:.8125rem;transition:background .15s;display:flex}.cedros-profile-dropdown__item:hover{background:var(--admin-accent)}.cedros-profile-dropdown__item svg{opacity:.7;flex-shrink:0}.cedros-profile-dropdown__item--danger{color:var(--cebbwf5-login-error)}.cedros-profile-dropdown__item--danger:hover{background:color-mix(in srgb, var(--cebbwf5-login-error) 10%, transparent)}.cedros-dashboard__main{background:var(--admin-bg);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.cedros-dashboard__header{border-bottom:1px solid var(--admin-border);background:var(--admin-card-bg);padding:1rem 1.5rem}.cedros-dashboard__breadcrumb{align-items:center;gap:.25rem;font-size:.875rem;display:flex}.cedros-dashboard__breadcrumb-root{color:var(--admin-muted)}.cedros-dashboard__breadcrumb-sep{color:var(--admin-muted);opacity:.5;align-items:center;display:flex}.cedros-dashboard__breadcrumb-current{color:var(--admin-fg);font-weight:500}.cedros-dashboard__content{scrollbar-gutter:stable;flex:1;min-width:0;min-height:0;padding:1.5rem;overflow:hidden auto}.cedros-dashboard__overview{flex-direction:column;gap:1.5rem;display:flex}.cedros-dashboard__cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}.cedros-dashboard__card{background:var(--admin-bg);background-image:var(--cebbwf5-surface-sheen);border:1px solid var(--admin-border);border-radius:var(--admin-radius);box-shadow:var(--admin-shadow-card);animation:cedros-slide-up-fade .3s var(--cebbwf5-ease-out) backwards;padding:1.125rem 1.25rem}.cedros-dashboard__cards>.cedros-dashboard__card:nth-child(2){animation-delay:50ms}.cedros-dashboard__cards>.cedros-dashboard__card:nth-child(3){animation-delay:.1s}.cedros-dashboard__cards>.cedros-dashboard__card:nth-child(n+4){animation-delay:.15s}.cedros-dashboard__card-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.cedros-dashboard__card-title{color:var(--admin-muted);font-size:.8125rem;font-weight:500}.cedros-dashboard__card-icon{color:var(--admin-muted);opacity:.7;align-items:center;display:flex}.cedros-dashboard__card-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--admin-fg);margin-bottom:.25rem;font-size:1.5rem;font-weight:700;line-height:1}.cedros-dashboard__card-desc{color:var(--admin-muted);margin:0;font-size:.875rem}.cedros-dashboard__section{flex-direction:column;gap:1rem;width:100%;max-width:100%;display:flex;overflow:hidden}.cedros-dashboard__section-header{justify-content:space-between;align-items:center;display:flex}.cedros-dashboard__section-title{color:var(--admin-fg);margin:0;font-size:.9375rem;font-weight:600}.cedros-dashboard__invites{flex-direction:column;gap:2rem;display:flex}.cedros-dashboard__toolbar{border-bottom:1px solid var(--admin-border);align-items:flex-end;gap:1rem;padding-bottom:1rem;display:flex}.cedros-dashboard__filter{flex-direction:column;gap:.375rem;display:flex}.cedros-dashboard__filter-label{color:var(--admin-muted);font-size:.75rem;font-weight:500}.cedros-dashboard__select{background:var(--admin-muted-bg);border:1px solid var(--admin-border);border-radius:calc(var(--admin-radius) - 2px);min-width:160px;height:2.25rem;color:var(--admin-fg);cursor:pointer;appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");background-position:right .75rem center;background-repeat:no-repeat;background-size:1rem;padding:0 2.25rem 0 .75rem;font-size:.875rem;transition:border-color .15s,background-color .15s}.cedros-dashboard__select:hover{border-color:var(--admin-ring);background-color:var(--admin-bg)}.cebbwf5-dark .cedros-dashboard__select,.dark .cedros-dashboard__select,[data-theme=dark] .cedros-dashboard__select,[data-color-mode=dark] .cedros-dashboard__select,[data-color-scheme=dark] .cedros-dashboard__select{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\")}.cedros-dashboard__pipeline{flex-direction:column;gap:1.5rem;display:flex}.cedros-dashboard__select:focus{border-color:var(--admin-ring);background-color:var(--admin-bg);box-shadow:0 0 0 3px color-mix(in srgb, var(--admin-ring) 15%, transparent);outline:none}.cedros-dashboard__text-muted{color:var(--admin-muted);margin:0 0 1rem;font-size:.875rem}@media (width<=768px){.cedros-dashboard{grid-template-rows:auto 1fr;grid-template-columns:1fr}.cedros-dashboard__sidebar{border-right:none;border-bottom:1px solid var(--admin-border)}.cedros-dashboard__sidebar-header{display:none}.cedros-dashboard__nav{padding:.5rem}.cedros-dashboard__nav-group{flex-direction:row;gap:.25rem;overflow-x:auto}.cedros-dashboard__nav-label{display:none}.cedros-dashboard__nav-item{flex-shrink:0;padding:.5rem .625rem}.cedros-dashboard__nav-text{display:none}.cedros-dashboard__nav-icon{width:1.25rem;height:1.25rem}.cedros-dashboard__sidebar-footer{display:none}.cedros-dashboard__content{padding:1rem}.cedros-dashboard__cards{grid-template-columns:1fr}}.cedros-login-dashboard-card{color:var(--cebbwf5-login-foreground);flex-direction:column;gap:.75rem;font-size:.875rem;display:flex}.cedros-login-dashboard-card>p{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.8125rem;line-height:1.5}.cedros-login-dashboard-card>header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.cedros-login-dashboard-card>header p{text-transform:uppercase;letter-spacing:.06em;color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.6875rem;font-weight:600}.cedros-login-dashboard-card>header strong{background:var(--cebbwf5-login-muted);color:var(--cebbwf5-login-muted-foreground);border-radius:999px;align-items:center;gap:.375rem;padding:.125rem .5rem;font-size:.6875rem;font-weight:600;display:inline-flex}.cedros-login-dashboard-card>header strong:before{content:\"\";background:currentColor;border-radius:50%;width:6px;height:6px}.cedros-login-dashboard-card[data-state=happy]>header strong{background:var(--cebbwf5-login-success-soft);color:color-mix(in srgb, var(--cebbwf5-login-success) 70%, var(--cebbwf5-login-foreground))}.cedros-login-dashboard-card[data-state=error]>header strong{background:var(--cebbwf5-destructive-light);color:var(--cebbwf5-destructive)}.cedros-login-dashboard-card[data-state=loading]>header strong:before{animation:cedros-pulse 1.5s var(--cebbwf5-ease-in-out) infinite}.cedros-login-dashboard-card__metrics{grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));gap:.625rem;margin:0;display:grid}.cedros-login-dashboard-card__metric{background:color-mix(in srgb, var(--cebbwf5-login-muted) 65%, transparent);border-radius:calc(var(--cebbwf5-login-radius) - 2px);animation:cedros-slide-up-fade .3s var(--cebbwf5-ease-out) backwards;flex-direction:column;gap:.125rem;padding:.625rem .75rem;display:flex}.cedros-login-dashboard-card__metric:nth-child(2){animation-delay:40ms}.cedros-login-dashboard-card__metric:nth-child(3){animation-delay:80ms}.cedros-login-dashboard-card__metric:nth-child(n+4){animation-delay:.12s}.cedros-login-dashboard-card__metric dt{color:var(--cebbwf5-login-muted-foreground);font-size:.6875rem;font-weight:500}.cedros-login-dashboard-card__metric dd{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--cebbwf5-login-foreground);margin:0;font-size:1.125rem;font-weight:700;line-height:1.3}.cedros-login-dashboard-card__metric span{color:var(--cebbwf5-login-muted-foreground);font-size:.6875rem}.cedros-login-dashboard-card>button{height:2rem;font:inherit;color:var(--cebbwf5-login-foreground);background:var(--cebbwf5-login-background);border:1px solid var(--cebbwf5-input);border-radius:var(--cebbwf5-login-radius);box-shadow:var(--cebbwf5-login-shadow-xs);cursor:pointer;transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), box-shadow var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);align-self:flex-start;align-items:center;gap:.375rem;padding:0 .75rem;font-size:.8125rem;font-weight:500;display:inline-flex}.cedros-login-dashboard-card>button:hover:not(:disabled){background:var(--cebbwf5-login-accent);border-color:color-mix(in srgb, var(--cebbwf5-login-ring) 18%, var(--cebbwf5-input));box-shadow:var(--cebbwf5-login-shadow-sm)}.cedros-login-dashboard-card>button:active:not(:disabled){transform:scale(.98)}.cedros-login-dashboard-card>button:focus-visible{outline:2px solid var(--cebbwf5-login-ring);outline-offset:2px}.cedros-login-dashboard-card>button:disabled{opacity:.5;cursor:not-allowed}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail{background:var(--admin-bg);border:1px solid var(--admin-border);border-radius:var(--admin-radius);padding:1.5rem}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-error,:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-loading{flex-direction:column;align-items:center;gap:.75rem;padding:2rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-header{border-bottom:1px solid var(--admin-border);justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-back-btn{align-items:center;gap:.25rem;display:inline-flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-actions{flex-wrap:wrap;gap:.5rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-btn-danger{color:var(--admin-error);border-color:var(--admin-error)}:where(.cedros-login-admin-root) .cebbwf5-admin-btn-danger:hover{background:color-mix(in srgb, var(--admin-error) 10%, transparent)}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-info{border-bottom:1px solid var(--admin-border);gap:1.5rem;margin-bottom:1.5rem;padding-bottom:1.5rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-avatar{flex-shrink:0}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-avatar-img{-o-object-fit:cover;object-fit:cover;border-radius:50%;width:64px;height:64px}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-avatar-placeholder{background:var(--admin-muted-bg);width:64px;height:64px;color:var(--admin-muted);border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;font-weight:600;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-meta{flex:1;min-width:0}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-name{margin:0 0 .25rem;font-size:1.25rem;font-weight:600}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-email{color:var(--admin-muted);margin:0 0 .5rem;font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-verified-badge{text-transform:uppercase;letter-spacing:.025em;background:var(--admin-success-light);color:var(--admin-success);border-radius:9999px;margin-left:.5rem;padding:.125rem .5rem;font-size:.6875rem;font-weight:500;display:inline-block}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-badges{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-admin-badge{text-transform:uppercase;letter-spacing:.025em;border-radius:9999px;padding:.125rem .5rem;font-size:.6875rem;font-weight:500;display:inline-block}:where(.cedros-login-admin-root) .cebbwf5-admin-admin-badge-yes{background:color-mix(in srgb, var(--cebbwf5-login-admin-link,var(--admin-link,var(--cebbwf5-login-link))) 15%, transparent);color:var(--cebbwf5-login-admin-link,var(--admin-link,var(--cebbwf5-login-link)))}:where(.cedros-login-admin-root) .cebbwf5-admin-admin-badge-no{background:var(--admin-muted-bg);color:var(--admin-muted)}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-methods{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-methods-label{color:var(--admin-muted);font-size:.75rem}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-dates{color:var(--admin-muted);margin:0;font-size:.75rem}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-referral{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.75rem;font-size:.75rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-referral-label,:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-referred-by{color:var(--admin-muted)}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-referral-label{text-transform:uppercase;letter-spacing:.04em;font-weight:500}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-referral-code,:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-referral-count{background:var(--admin-muted-bg);min-height:1.5rem;color:var(--admin-fg);border-radius:9999px;align-items:center;padding:.125rem .5rem;display:inline-flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-referral-code,:where(.cedros-login-admin-root) .cebbwf5-admin-user-uuid-link{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}:where(.cedros-login-admin-root) .cebbwf5-admin-user-uuid-link{color:var(--cebbwf5-login-admin-link,var(--admin-link,var(--cebbwf5-login-link)));cursor:pointer;font-size:inherit;text-underline-offset:.15em;background:0 0;border:0;padding:0;text-decoration:underline}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-stats{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-card{background:var(--admin-bg);border-radius:var(--admin-radius);border:1px solid var(--admin-border);box-shadow:var(--admin-shadow-card);flex-direction:column;gap:.25rem;padding:1.125rem 1.25rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-label{color:var(--admin-muted);font-size:.8125rem;font-weight:500}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-value{color:var(--admin-fg);font-size:1.5rem;font-weight:700}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-tabs{border:none;border-bottom:1px solid var(--admin-border);gap:0;margin-bottom:1rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-tab{color:var(--admin-muted);cursor:pointer;transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), box-shadow var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.75rem 1rem;font-size:.875rem;font-weight:500}:where(.cedros-login-admin-root) .cebbwf5-admin-tab:hover{color:var(--admin-fg)}:where(.cedros-login-admin-root) .cebbwf5-admin-tab-active{color:var(--admin-fg);border-bottom-color:var(--admin-fg)}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-content{min-height:200px}:where(.cedros-login-admin-root) .cebbwf5-admin-tab-loading{color:var(--admin-muted);justify-content:center;align-items:center;gap:.5rem;padding:2rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-empty-message{text-align:center;color:var(--admin-muted);padding:2rem;font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-error-inline{color:var(--admin-error);margin:0 0 .75rem;font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-stats-error,:where(.cedros-login-admin-root) .cebbwf5-admin-tab-error{background:var(--cebbwf5-destructive-light);border-radius:calc(var(--cebbwf5-login-radius) - 2px);flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-stats-loading{color:var(--cebbwf5-login-muted-foreground);justify-content:center;align-items:center;gap:.5rem;padding:1.5rem;display:flex}.cedros-button-xs{padding:.125rem .375rem;font-size:.625rem}@media (width<=768px){:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-header{flex-direction:column;align-items:flex-start;gap:1rem}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-info{text-align:center;flex-direction:column;align-items:center}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-methods{justify-content:center}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-stats{grid-template-columns:repeat(2,1fr)}}:where(.cedros-login-admin-root) .cebbwf5-admin-feature-disabled{text-align:center;background:var(--cebbwf5-login-muted);border-radius:var(--cebbwf5-login-radius);border:1px solid var(--cebbwf5-login-border);flex-direction:column;justify-content:center;align-items:center;padding:3rem 2rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-feature-disabled-icon{color:var(--cebbwf5-login-muted-foreground);opacity:.6;margin-bottom:1rem}:where(.cedros-login-admin-root) .cebbwf5-admin-feature-disabled-title{color:var(--cebbwf5-login-foreground);margin:0 0 .75rem;font-size:1.25rem;font-weight:600}:where(.cedros-login-admin-root) .cebbwf5-admin-feature-disabled-description{color:var(--cebbwf5-login-muted-foreground);max-width:400px;margin:0 0 1rem;line-height:1.5}:where(.cedros-login-admin-root) .cebbwf5-admin-feature-disabled-code{background:var(--cebbwf5-login-background);border:1px solid var(--cebbwf5-login-border);border-radius:calc(var(--cebbwf5-login-radius) * .5);margin-bottom:1rem;padding:.75rem 1.25rem}:where(.cedros-login-admin-root) .cebbwf5-admin-feature-disabled-code code{color:var(--cebbwf5-login-foreground);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.9rem}:where(.cedros-login-admin-root) .cebbwf5-admin-feature-disabled-note{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem;font-style:italic}.cedros-setup{background:radial-gradient(ellipse 80% 50% at 50% -10%, color-mix(in srgb, var(--cebbwf5-login-link) 7%, transparent), transparent), var(--cebbwf5-login-background);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.cedros-setup__loading{color:var(--cebbwf5-login-muted-foreground);flex-direction:column;align-items:center;gap:1rem;display:flex}.cedros-setup__loading-text{font-size:.875rem}.cedros-setup__container{background:var(--cebbwf5-login-card);background-image:var(--cebbwf5-surface-sheen);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-radius-card);width:100%;max-width:400px;box-shadow:var(--cebbwf5-login-shadow-lg);animation:cedros-slide-up-fade .4s var(--cebbwf5-ease-out) backwards;padding:2rem}.cedros-setup__header{text-align:center;margin-bottom:2rem}.cedros-setup__logo{background:var(--cebbwf5-login-primary);width:56px;height:56px;color:var(--cebbwf5-login-primary-foreground);border-radius:calc(var(--cebbwf5-login-radius) * 1.5);box-shadow:var(--cebbwf5-edge-highlight), var(--cebbwf5-login-shadow-md);animation:cedros-success-pop .5s var(--cebbwf5-ease-out) .15s backwards;justify-content:center;align-items:center;margin-bottom:1.5rem;display:inline-flex}.cedros-setup__title{color:var(--cebbwf5-login-foreground);margin:0;font-size:1.5rem;font-weight:600}.cedros-setup__subtitle{color:var(--cebbwf5-login-muted-foreground);margin:.5rem 0 0;font-size:.875rem}.cedros-setup__form{flex-direction:column;gap:1.25rem;display:flex}.cedros-setup__field{flex-direction:column;gap:.5rem;display:flex}.cedros-setup__label{color:var(--cebbwf5-login-foreground);font-size:.875rem;font-weight:500}.cedros-setup__required{color:var(--cebbwf5-destructive)}.cedros-setup__input{background:var(--cebbwf5-login-background);border:1px solid var(--cebbwf5-input);border-radius:var(--cebbwf5-login-radius);width:100%;color:var(--cebbwf5-login-foreground);transition:border-color var(--cebbwf5-duration-fast) ease, box-shadow var(--cebbwf5-duration-fast) ease;padding:.625rem .875rem;font-size:.875rem}.cedros-setup__input::placeholder{color:var(--cebbwf5-login-muted-foreground)}.cedros-setup__input:focus{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 2px color-mix(in srgb, var(--cebbwf5-login-ring) 20%, transparent);outline:none}.cedros-setup__input--error{border-color:var(--cebbwf5-destructive)}.cedros-setup__input--error:focus{border-color:var(--cebbwf5-destructive);box-shadow:0 0 0 2px color-mix(in srgb, var(--cebbwf5-destructive) 20%, transparent)}.cedros-setup__error{color:var(--cebbwf5-destructive);font-size:.75rem}.cedros-setup__button{background:var(--cebbwf5-login-primary);width:100%;color:var(--cebbwf5-login-primary-foreground);border-radius:var(--cebbwf5-login-radius);cursor:pointer;box-shadow:var(--cebbwf5-edge-highlight), var(--cebbwf5-login-shadow-xs);transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), box-shadow var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), opacity var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);border:none;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}.cedros-setup__button:hover:not(:disabled){background:color-mix(in srgb, var(--cebbwf5-login-primary) 85%, var(--cebbwf5-login-primary-foreground));box-shadow:var(--cebbwf5-edge-highlight), var(--cebbwf5-login-shadow-md);transform:translateY(-1px)}.cedros-setup__button:active:not(:disabled){transform:translateY(0)scale(.98)}.cedros-setup__button:disabled{opacity:.6;cursor:not-allowed}.cedros-setup__footer{border-top:1px solid var(--cebbwf5-login-border);text-align:center;margin-top:1.5rem;padding-top:1.5rem}.cedros-setup__note{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.75rem}.cedros-setup__version{color:var(--cebbwf5-login-muted-foreground);opacity:.7;margin:.5rem 0 0;font-size:.75rem}.cedros-setup__complete{text-align:center;flex-direction:column;align-items:center;padding:2rem;display:flex}.cedros-setup__icon{margin-bottom:1.5rem}.cedros-setup__icon--success{color:var(--cebbwf5-login-success);background-color:var(--cebbwf5-login-success-soft,transparent);box-shadow:0 0 0 8px var(--cebbwf5-login-success-soft,transparent);animation:cedros-success-pop .45s var(--cebbwf5-ease-out) backwards;border-radius:50%}.cedros-setup__text{color:var(--cebbwf5-login-muted-foreground);margin:.5rem 0 0;font-size:.875rem}.cedros-sso-provider-list{flex-direction:column;gap:1rem;display:flex}.cedros-sso-provider-card{background:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);padding:1rem}.cedros-sso-provider-card--disabled{opacity:.6}.cedros-sso-provider-card-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem;display:flex}.cedros-sso-provider-card-info{flex:1;min-width:0}.cedros-sso-provider-card-name{color:var(--cebbwf5-login-foreground);margin:0;font-size:1rem;font-weight:600}.cedros-sso-provider-card-issuer{color:var(--cebbwf5-login-muted-foreground);word-break:break-all;margin:.25rem 0 0;font-size:.8125rem}.cedros-sso-provider-card-details{border-top:1px solid var(--cebbwf5-login-border);border-bottom:1px solid var(--cebbwf5-login-border);flex-wrap:wrap;gap:1rem;padding:.75rem 0;display:flex}.cedros-sso-provider-card-detail{flex-direction:column;gap:.125rem;display:flex}.cedros-sso-provider-card-detail-label{color:var(--cebbwf5-login-muted-foreground);text-transform:uppercase;letter-spacing:.025em;font-size:.75rem}.cedros-sso-provider-card-detail-value{color:var(--cebbwf5-login-foreground);font-size:.875rem}.cedros-sso-provider-card-detail-value code{font-family:var(--cebbwf5-font-mono);font-size:.8125rem}.cedros-sso-provider-card-actions{gap:.5rem;margin-top:.75rem;display:flex}.cedros-invite-code-manager{flex-direction:column;gap:1rem;margin-top:1.5rem;display:flex}.cedros-invite-code-manager__header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.cedros-invite-code-manager__title{color:var(--admin-fg,var(--cebbwf5-login-foreground));margin:0;font-size:.9375rem;font-weight:600}.cedros-invite-code-manager__empty{border:1px dashed var(--admin-border,var(--cebbwf5-login-border));border-radius:calc(var(--admin-radius,var(--cebbwf5-login-radius)) - 2px)}.cedros-invite-code-table-wrap{border:1px solid var(--admin-border,var(--cebbwf5-login-border));border-radius:calc(var(--admin-radius,var(--cebbwf5-login-radius)) - 2px);background:var(--admin-table-row,var(--cebbwf5-login-card));overflow-x:auto}.cedros-invite-code-table{border-collapse:collapse;width:100%;min-width:720px}.cedros-invite-code-table th,.cedros-invite-code-table td{border-bottom:1px solid var(--admin-border,var(--cebbwf5-login-border));text-align:left;white-space:nowrap;padding:.75rem;font-size:.8125rem}.cedros-invite-code-table th{background:var(--admin-table-head,var(--cebbwf5-login-muted));color:var(--admin-muted,var(--cebbwf5-login-muted-foreground));letter-spacing:.05em;text-transform:uppercase;font-size:.6875rem;font-weight:500}.cedros-invite-code-table tr:last-child td{border-bottom:none}.cedros-invite-code-table tr.is-disabled{opacity:.62}.cedros-invite-code-table__code{font-family:var(--cebbwf5-font-mono);color:var(--admin-fg,var(--cebbwf5-login-foreground))}.cedros-invite-code-table__actions{text-align:right}.cedros-invite-code-table__action-row{justify-content:flex-end;gap:.375rem;display:flex}.cedros-invite-code-status{border-radius:9999px;align-items:center;gap:.3125rem;padding:.125rem .5rem;font-size:.75rem;font-weight:500;display:inline-flex}.cedros-invite-code-status:before{content:\"\";background:currentColor;border-radius:50%;width:6px;height:6px}.cedros-invite-code-status.is-active{color:var(--admin-success);background:var(--admin-success-light)}.cedros-invite-code-status.is-inactive{color:var(--admin-muted,var(--cebbwf5-login-muted-foreground));background:var(--admin-muted-bg,var(--cebbwf5-login-muted))}.cedros-invite-code-icon-button{border:1px solid var(--admin-border,var(--cebbwf5-login-border));border-radius:calc(var(--admin-radius,var(--cebbwf5-login-radius)) - 2px);background:var(--admin-bg,var(--cebbwf5-login-background));width:2rem;height:2rem;color:var(--admin-muted,var(--cebbwf5-login-muted-foreground));cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.cedros-invite-code-icon-button:hover{background:var(--admin-accent,var(--cebbwf5-login-accent));color:var(--admin-fg,var(--cebbwf5-login-foreground))}.cedros-invite-code-icon-button.is-destructive:hover{color:var(--cebbwf5-destructive);border-color:color-mix(in srgb, var(--cebbwf5-destructive) 40%, transparent)}.cedros-invite-code-icon-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:1rem;height:1rem}.cedros-invite-code-modal{max-width:32rem}.cedros-invite-code-modal__actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.cedros-checkbox-row{color:var(--cebbwf5-login-foreground);align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.cedros-sso-provider-form{max-width:600px}.cedros-form-section{flex-direction:column;gap:1rem;margin-top:1.5rem;display:flex}.cedros-form-group{flex-direction:column;gap:.375rem;display:flex}.cedros-login-admin-root .cedros-form-input{background:var(--admin-bg,var(--cebbwf5-login-card));border-color:var(--admin-border,var(--cebbwf5-login-border));border-radius:calc(var(--admin-radius,var(--cebbwf5-login-radius)) - 2px);color:var(--admin-fg,var(--cebbwf5-login-foreground))}.cedros-login-admin-root .cedros-form-input::placeholder{color:var(--admin-muted,var(--cebbwf5-login-muted-foreground))}.cedros-login-admin-root .cedros-form-input:focus{border-color:var(--admin-ring,var(--cebbwf5-login-ring));box-shadow:0 0 0 3px color-mix(in srgb, var(--admin-ring,var(--cebbwf5-login-ring)) 15%, transparent);outline:none}.cedros-form-hint{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.75rem}.cedros-form-hint-inline{color:var(--cebbwf5-login-muted-foreground);font-weight:400}.cedros-form-checkbox{color:var(--cebbwf5-login-foreground);cursor:pointer;align-items:center;gap:.5rem;font-size:.875rem;display:flex}.cedros-form-checkbox input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--cebbwf5-login-primary)}.cedros-form-actions{border-top:1px solid var(--cebbwf5-login-border);justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1.5rem;display:flex}.cedros-btn-ghost{color:var(--cebbwf5-login-muted-foreground);background:0 0;border-color:#0000}.cedros-btn-ghost:hover{background:var(--cebbwf5-login-muted);color:var(--cebbwf5-login-foreground)}.cedros-btn-danger{color:var(--cebbwf5-destructive)}.cedros-btn-danger:hover{background:color-mix(in srgb, var(--cebbwf5-destructive) 10%, transparent)}.cedros-text-muted{color:var(--cebbwf5-login-muted-foreground)}.cedros-permissions-section{padding:0}.cedros-permissions-header{border-bottom:1px solid var(--admin-border);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.cedros-permissions-description{color:var(--admin-muted);margin:0;font-size:.875rem}.cedros-permissions-actions{align-items:center;gap:.5rem;margin-left:auto;display:flex}.cedros-permissions-error{color:var(--cebbwf5-destructive);background:var(--cebbwf5-destructive-light);border-radius:var(--admin-radius);padding:.375rem .75rem;font-size:.75rem}.cedros-permissions-saving{color:var(--admin-muted);font-size:.75rem;font-style:italic}.cedros-permissions-matrix{overflow-x:auto}.cedros-permissions-table{border-collapse:collapse;width:100%;font-size:.875rem}.cedros-permissions-table th,.cedros-permissions-table td{text-align:left;border-bottom:1px solid var(--admin-border);padding:.875rem 1.25rem}.cedros-permissions-table th{color:var(--admin-muted);text-transform:uppercase;letter-spacing:.05em;background:var(--admin-muted-bg);font-size:.75rem;font-weight:600}.cedros-permissions-section-header{width:50%}.cedros-permissions-role-header{text-align:center;width:25%}.cedros-permissions-row:hover{background:var(--cebbwf5-login-admin-accent,var(--admin-table-row-hover,var(--cebbwf5-login-accent)))}.cedros-permissions-section-label{color:var(--admin-fg);font-weight:500}.cedros-permissions-toggle-cell{text-align:center}.cedros-toggle-sm .cedros-toggle-track{border-radius:9px;width:32px;height:18px}.cedros-toggle-sm .cedros-toggle-thumb{width:14px;height:14px;top:2px;left:2px}.cedros-toggle-sm.cedros-toggle-on .cedros-toggle-thumb{transform:translate(14px)}.cedros-toggle-disabled{opacity:.5;cursor:not-allowed}.cedros-permissions-group-header td{text-transform:uppercase;letter-spacing:.08em;color:var(--admin-muted);background:var(--admin-muted-bg);border-bottom:1px solid var(--admin-border);padding:.625rem 1.25rem;font-size:.6875rem;font-weight:600}.cedros-profile-settings{flex-direction:column;gap:1rem;max-width:480px;display:flex}.cedros-profile-panel{background:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);flex-direction:column;gap:1.5rem;padding:1.5rem;display:flex}.cedros-profile-header{align-items:center;gap:1rem;display:flex}.cedros-profile-avatar-container{flex-shrink:0;position:relative}.cedros-profile-avatar-container--clickable{cursor:pointer}.cedros-profile-avatar-overlay{color:#fff;opacity:0;background:#00000073;border-radius:50%;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;inset:0}.cedros-profile-avatar-container--clickable:hover .cedros-profile-avatar-overlay,.cedros-profile-avatar-container--clickable:focus-visible .cedros-profile-avatar-overlay{opacity:1}.cedros-profile-avatar-input{display:none}.cedros-profile-avatar{-o-object-fit:cover;object-fit:cover;border-radius:50%;width:64px;height:64px}.cedros-profile-avatar-fallback{background:var(--cebbwf5-login-primary);color:var(--cebbwf5-login-primary-foreground);justify-content:center;align-items:center;font-size:1.25rem;font-weight:600;display:flex}.cedros-profile-info{flex:1;min-width:0}.cedros-profile-name{color:var(--cebbwf5-login-text);margin:0;font-size:1.125rem;font-weight:600}.cedros-profile-email{color:var(--cebbwf5-login-muted-foreground);text-overflow:ellipsis;white-space:nowrap;margin:.25rem 0 0;font-size:.875rem;overflow:hidden}.cedros-profile-title{color:var(--cebbwf5-login-text);margin:0;font-size:1rem;font-weight:600}.cedros-profile-description{color:var(--cebbwf5-login-muted-foreground);margin:.5rem 0 0;font-size:.875rem;line-height:1.5}.cedros-profile-section{flex-direction:column;gap:.75rem;display:flex}.cedros-profile-section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.75rem;font-weight:600}.cedros-profile-row{border-bottom:1px solid var(--cebbwf5-login-border);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 0;display:flex}.cedros-profile-row:last-child{border-bottom:none}.cedros-profile-row-content{flex-direction:column;gap:.125rem;min-width:0;display:flex}.cedros-profile-row-label{color:var(--cebbwf5-login-text);font-size:.875rem;font-weight:500}.cedros-profile-row-value{color:var(--cebbwf5-login-muted-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;overflow:hidden}.cedros-profile-form{flex-direction:column;gap:1rem;display:flex}.cedros-profile-field{flex-direction:column;gap:.5rem;display:flex}.cedros-profile-actions{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}.cedros-profile-footer{border-top:1px solid var(--cebbwf5-login-border);justify-content:flex-end;padding-top:1rem;display:flex}.cedros-profile-error{margin-bottom:.5rem}.cedros-profile-success{background:var(--cebbwf5-login-success-soft);color:var(--cebbwf5-login-success);border-radius:var(--cebbwf5-login-radius);align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.cedros-profile-success-icon{font-weight:700}.cedros-settings-subsection{border-bottom:1px solid var(--cebbwf5-login-border);padding:1rem 0}.cedros-settings-subsection-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.cedros-settings-subsection-title{color:var(--cebbwf5-login-foreground);margin:0;font-size:.9375rem;font-weight:600}.cedros-settings-subsection-description{color:var(--cebbwf5-login-muted-foreground);margin:.25rem 0 0;font-size:.8125rem}.cedros-complete-account{width:100%;max-width:24rem;margin:0 auto;padding:2rem 1.5rem}.cedros-complete-account__header{text-align:center;margin-bottom:1.5rem}.cedros-complete-account__title{color:var(--cebbwf5-login-foreground);margin:0 0 .5rem;font-size:1.25rem;font-weight:600}.cedros-complete-account__description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem}.cedros-complete-account__form{flex-direction:column;gap:1rem;display:flex}.cedros-complete-account__field{flex-direction:column;gap:.375rem;display:flex}.cedros-complete-account__label{color:var(--cebbwf5-login-foreground);font-size:.875rem;font-weight:500}.cedros-complete-account__input{border:1px solid var(--cebbwf5-input);border-radius:var(--cebbwf5-login-radius);width:100%;height:2.5rem;color:var(--cebbwf5-login-foreground);box-shadow:var(--cebbwf5-login-shadow-xs);transition:border-color var(--cebbwf5-duration-fast,.15s) var(--cebbwf5-ease-out,ease-out), box-shadow var(--cebbwf5-duration-fast,.15s) var(--cebbwf5-ease-out,ease-out);background-color:#0000;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;display:flex}.cedros-complete-account__input::placeholder{color:var(--cebbwf5-login-muted-foreground)}.cedros-complete-account__input:focus{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 3px color-mix(in srgb, var(--cebbwf5-login-ring) 15%, transparent);outline:none}.cedros-complete-account__error{color:var(--cebbwf5-destructive);border-radius:var(--cebbwf5-login-radius);background-color:color-mix(in srgb, var(--cebbwf5-destructive) 8%, transparent);padding:.5rem .75rem;font-size:.8125rem}.cedros-complete-account__actions{flex-direction:column;gap:.75rem;margin-top:.5rem;display:flex}.cedros-complete-account__button{border-radius:var(--cebbwf5-login-radius);cursor:pointer;width:100%;height:2.5rem;transition:background-color var(--cebbwf5-duration-fast,.15s) var(--cebbwf5-ease-out,ease-out), opacity var(--cebbwf5-duration-fast,.15s) var(--cebbwf5-ease-out,ease-out);justify-content:center;align-items:center;padding:.5rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}.cedros-complete-account__button:disabled{cursor:not-allowed;opacity:.5}.cedros-complete-account__button--primary{background-color:var(--cebbwf5-login-primary);color:var(--cebbwf5-login-primary-foreground);border:none}.cedros-complete-account__button--primary:hover:not(:disabled){opacity:.9}.cedros-complete-account__button--secondary{color:var(--cebbwf5-login-muted-foreground);border:1px solid var(--cebbwf5-login-border);background-color:#0000}.cedros-complete-account__button--secondary:hover:not(:disabled){background-color:var(--cebbwf5-login-accent);color:var(--cebbwf5-accent-foreground)}.cedros-choose-username{width:100%;max-width:24rem;margin:0 auto;padding:2rem 1.5rem}.cedros-choose-username__header{text-align:center;margin-bottom:1.5rem}.cedros-choose-username__title{color:var(--cebbwf5-login-foreground);margin:0 0 .5rem;font-size:1.25rem;font-weight:600}.cedros-choose-username__description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem}.cedros-choose-username__form{flex-direction:column;gap:1rem;display:flex}.cedros-choose-username__field{flex-direction:column;gap:.375rem;display:flex}.cedros-choose-username__label{color:var(--cebbwf5-login-foreground);font-size:.875rem;font-weight:500}.cedros-choose-username__input-wrapper{border:1px solid var(--cebbwf5-input);border-radius:var(--cebbwf5-login-radius);box-shadow:var(--cebbwf5-login-shadow-xs);transition:border-color var(--cebbwf5-duration-fast,.15s) var(--cebbwf5-ease-out,ease-out), box-shadow var(--cebbwf5-duration-fast,.15s) var(--cebbwf5-ease-out,ease-out);background-color:#0000;align-items:center;display:flex}.cedros-choose-username__input-wrapper:focus-within{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 3px color-mix(in srgb, var(--cebbwf5-login-ring) 15%, transparent)}.cedros-choose-username__prefix{color:var(--cebbwf5-login-muted-foreground);-webkit-user-select:none;user-select:none;padding-left:.75rem;font-size:.875rem}.cedros-choose-username__input{width:100%;height:2.5rem;color:var(--cebbwf5-login-foreground);background-color:#0000;border:none;outline:none;padding:.5rem .75rem .5rem .25rem;font-size:.875rem;line-height:1.25rem;display:flex}.cedros-choose-username__input::placeholder{color:var(--cebbwf5-login-muted-foreground)}.cedros-choose-username__status{font-size:.8125rem}.cedros-choose-username__status--available{color:var(--cebbwf5-login-success)}.cedros-choose-username__status--taken,.cedros-choose-username__status--error{color:var(--cebbwf5-destructive)}.cedros-choose-username__status--checking{color:var(--cebbwf5-login-muted-foreground)}.cedros-choose-username__error{color:var(--cebbwf5-destructive);border-radius:var(--cebbwf5-login-radius);background-color:color-mix(in srgb, var(--cebbwf5-destructive) 8%, transparent);padding:.5rem .75rem;font-size:.8125rem}.cedros-choose-username__actions{flex-direction:column;gap:.75rem;margin-top:.5rem;display:flex}.cedros-choose-username__button{border-radius:var(--cebbwf5-login-radius);cursor:pointer;width:100%;height:2.5rem;transition:background-color var(--cebbwf5-duration-fast,.15s) var(--cebbwf5-ease-out,ease-out), opacity var(--cebbwf5-duration-fast,.15s) var(--cebbwf5-ease-out,ease-out);justify-content:center;align-items:center;padding:.5rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}.cedros-choose-username__button:disabled{cursor:not-allowed;opacity:.5}.cedros-choose-username__button--primary{background-color:var(--cebbwf5-login-primary);color:var(--cebbwf5-login-primary-foreground);border:none}.cedros-choose-username__button--primary:hover:not(:disabled){opacity:.9}.cedros-choose-username__button--secondary{color:var(--cebbwf5-login-muted-foreground);border:1px solid var(--cebbwf5-login-border);background-color:#0000}.cedros-choose-username__button--secondary:hover:not(:disabled){background-color:var(--cebbwf5-login-accent);color:var(--cebbwf5-accent-foreground)}.cedros-account{grid-template-columns:13rem minmax(0,1fr);align-items:start;gap:2.5rem;width:100%;display:grid}.cedros-account__nav{flex-direction:column;gap:.125rem;display:flex;position:sticky;top:.5rem}.cedros-account__nav-item{border-radius:calc(var(--cebbwf5-login-radius) - 2px);color:var(--cebbwf5-login-muted-foreground);font:inherit;text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:.5rem;padding:.4375rem .625rem;font-size:.8125rem;font-weight:500;line-height:1.25rem;transition:background-color .15s,color .15s,transform .1s;display:flex;position:relative}.cedros-account__nav-item:before{content:\"\";background:var(--cebbwf5-login-link);width:2.5px;height:0;transition:height var(--cebbwf5-duration-normal) var(--cebbwf5-ease-out);border-radius:999px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.cedros-account__nav-item--active:before{height:1rem}.cedros-account__nav-item:hover{background:color-mix(in srgb, var(--cebbwf5-login-accent) 55%, transparent);color:var(--cebbwf5-login-foreground)}.cedros-account__nav-item:active{transform:scale(.985)}.cedros-account__nav-item--active,.cedros-account__nav-item--active:hover{background:var(--cebbwf5-login-accent);color:var(--cebbwf5-login-foreground);font-weight:600}.cedros-account__nav-item:focus-visible{outline:2px solid var(--cebbwf5-login-ring);outline-offset:2px}.cedros-account__nav-icon{opacity:.9;flex-shrink:0;display:inline-flex}.cedros-account__nav-icon svg{width:15px;height:15px}.cedros-account__nav-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.cedros-account__content{flex-direction:column;gap:1.5rem;min-width:0;display:flex}.cedros-account__content:focus{outline:none}.cedros-account__panel{min-width:0;animation:cedros-account-panel-in .26s var(--cebbwf5-ease-out) both;flex-direction:column;gap:1.5rem;display:flex}@keyframes cedros-account-panel-in{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}.cedros-account__header{flex-direction:column;gap:.25rem;display:flex}.cedros-account__title{letter-spacing:-.01em;color:var(--cebbwf5-login-foreground);margin:0;font-size:1.125rem;font-weight:600}.cedros-account__description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem;line-height:1.5}.cedros-account__footer{border-top:1px solid var(--cebbwf5-login-border);justify-content:flex-end;padding-top:1rem;display:flex}@media (width<=640px){.cedros-account{grid-template-columns:1fr;gap:1.25rem}.cedros-account__nav{overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:thin;border-bottom:1px solid var(--cebbwf5-login-border);flex-direction:row;gap:.25rem;padding-bottom:.5rem;position:static;overflow-x:auto}.cedros-account__nav-item{scroll-snap-align:start}}.cedros-account-stack{flex-direction:column;gap:1.5rem;display:flex}.cedros-account-card{border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-radius-card);background:var(--cebbwf5-login-card);box-shadow:var(--cebbwf5-login-shadow-sm);flex-direction:column;display:flex}.cedros-account-card>.cedros-field,.cedros-account-card>.cedros-avatar-field{padding:1.25rem}.cedros-account-card__divider{background:var(--cebbwf5-login-border);height:1px}.cedros-account-card--pad{gap:1rem;padding:1.25rem}.cedros-account-card__header{flex-direction:column;gap:.25rem;display:flex}.cedros-account-card__title{color:var(--cebbwf5-login-foreground);margin:0;font-size:.9375rem;font-weight:600}.cedros-account-card__desc{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.8125rem;line-height:1.5}.cedros-invite-code-list{gap:.75rem;display:grid}.cedros-invite-code-row{border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);background:var(--cebbwf5-login-background);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem;display:flex}.cedros-invite-code-value{color:var(--cebbwf5-login-foreground);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.875rem;display:inline-block}.cedros-field{flex-direction:column;gap:.5rem;display:flex}.cedros-field__head{justify-content:space-between;align-items:center;gap:1rem;min-height:1.75rem;display:flex}.cedros-field__label{color:var(--cebbwf5-login-foreground);font-size:.875rem;font-weight:600}.cedros-field__value{color:var(--cebbwf5-login-foreground);word-break:break-word;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.cedros-field__value--empty{color:var(--cebbwf5-login-muted-foreground)}.cedros-field__control{align-items:center;gap:.5rem;display:flex}.cedros-field__prefix{color:var(--cebbwf5-login-muted-foreground);font-size:.875rem}.cedros-field__actions{gap:.5rem;margin-top:.25rem;display:flex}.cedros-field__hint{color:var(--cebbwf5-login-muted-foreground);font-size:.8125rem;line-height:1.4}.cedros-field__hint--ok{color:var(--cebbwf5-login-success)}.cedros-field__hint--error{color:var(--cebbwf5-destructive)}.cedros-field__help{color:var(--cebbwf5-login-muted-foreground);font-size:.8125rem;line-height:1.4}.cedros-avatar-field{align-items:center;gap:1rem;display:flex}.cedros-avatar-field__preview{flex-shrink:0}.cedros-avatar-field__body{flex-direction:column;gap:.25rem;min-width:0;display:flex}.cedros-avatar-field__label{color:var(--cebbwf5-login-foreground);margin:0;font-size:.875rem;font-weight:600}.cedros-avatar-field__hint{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.8125rem}.cedros-avatar-field__actions{gap:.5rem;margin-top:.25rem;display:flex}.cedros-avatar-field__error{color:var(--cebbwf5-destructive);margin:.25rem 0 0;font-size:.8125rem}.cedros-badge{border-radius:999px;align-items:center;padding:.0625rem .5rem;font-size:.6875rem;font-weight:600;line-height:1.5;display:inline-flex}.cedros-badge--ok{background:var(--cebbwf5-login-success-soft);color:var(--cebbwf5-login-success)}.cedros-badge--muted{background:var(--cebbwf5-login-muted);color:var(--cebbwf5-login-muted-foreground)}.cedros-account-security{flex-direction:column;gap:1.5rem;display:flex}.cedros-account-delete{border:1px solid color-mix(in srgb, var(--cebbwf5-destructive) 28%, var(--cebbwf5-login-border));border-radius:calc(var(--cebbwf5-login-radius) + 2px);background:var(--cebbwf5-login-card);box-shadow:var(--cebbwf5-login-shadow-sm);flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.cedros-account-delete-header{flex-direction:column;gap:.25rem;display:flex}.cedros-account-delete-title{color:var(--cebbwf5-destructive);margin:0;font-size:.9375rem;font-weight:600}.cedros-account-delete-description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.8125rem;line-height:1.5}.cedros-account-delete-note{color:var(--cebbwf5-login-muted-foreground);border-radius:var(--cebbwf5-login-radius);background:color-mix(in srgb, var(--cebbwf5-destructive) 7%, transparent);border:1px solid color-mix(in srgb, var(--cebbwf5-destructive) 16%, transparent);padding:.75rem .875rem;font-size:.8125rem;line-height:1.5}.cedros-account-delete-note strong{color:var(--cebbwf5-login-foreground)}.cedros-account-delete code{background:color-mix(in srgb, var(--cebbwf5-destructive) 12%, transparent);color:var(--cebbwf5-destructive);border-radius:.25rem;padding:.05rem .3rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.8125em;font-weight:600}.cedros-account-delete-success{border-radius:var(--cebbwf5-login-radius);background:color-mix(in srgb, var(--cebbwf5-login-success) 12%, transparent);color:var(--cebbwf5-login-success);padding:.75rem .875rem;font-size:.875rem;font-weight:600}.cedros-account-delete-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:1rem;display:flex}.cedros-account-delete-link{color:var(--cebbwf5-login-muted-foreground);text-underline-offset:.15em;font-size:.8125rem;font-weight:500;text-decoration:underline;transition:color .15s}.cedros-account-delete-link:hover{color:var(--cebbwf5-login-foreground)}.cedros-account-footer{border-top:1px solid var(--cebbwf5-login-border);justify-content:flex-end;padding-top:1rem;display:flex}.cedros-account .cedros-profile-settings{max-width:none}.cedros-account .cedros-profile-panel{border-radius:calc(var(--cebbwf5-login-radius) + 2px);box-shadow:var(--cebbwf5-login-shadow-sm);padding:1.25rem}.cedros-account .cedros-profile-title{font-size:.9375rem}.cedros-account .cedros-profile-description{margin-top:.25rem;font-size:.8125rem}.cedros-profile-name-row{align-items:center;gap:.5rem;display:flex}.cedros-profile-edit-btn{border-radius:var(--cebbwf5-login-radius);color:var(--cebbwf5-login-muted-foreground);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:.25rem;transition:color .15s;display:inline-flex}.cedros-profile-edit-btn:hover{color:var(--cebbwf5-login-text)}.cedros-profile-name-edit{flex-direction:column;gap:.5rem;width:100%;display:flex}.cedros-profile-name-edit .cedros-input{padding:.375rem .625rem;font-size:1rem}.cedros-profile-name-edit-actions{gap:.5rem;display:flex}.cedros-profile-row-sent{color:var(--cebbwf5-login-success);align-items:center;gap:.375rem;font-size:.8125rem;display:inline-flex}.cedros-profile-row-sent-dismiss{color:inherit;cursor:pointer;opacity:.6;background:0 0;border:none;padding:0 .125rem;font-size:1rem;line-height:1}.cedros-profile-row-sent-dismiss:hover{opacity:1}.cebbwf5-email-management{flex-direction:column;gap:1rem;display:flex}.cebbwf5-email-management-loading{color:var(--cebbwf5-login-muted-foreground);flex-direction:row;align-items:center;gap:.625rem;padding:1rem 0;font-size:.875rem}.cebbwf5-email-management__header{flex-direction:column;gap:.25rem;display:flex}.cebbwf5-email-management__title{color:var(--cebbwf5-login-foreground);margin:0;font-size:.9375rem;font-weight:600}.cebbwf5-email-management__description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.8125rem;line-height:1.5}.cebbwf5-email-management__success{border:1px solid color-mix(in srgb, var(--cebbwf5-login-success) 22%, transparent);border-radius:var(--cebbwf5-login-radius);background:var(--cebbwf5-login-success-soft);color:var(--cebbwf5-login-success);margin:0;padding:.625rem .75rem;font-size:.8125rem;line-height:1.4}.cebbwf5-email-management__form{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem;display:grid}.cebbwf5-email-management__field,.cebbwf5-email-management__input{min-width:0}.cebbwf5-email-management__empty{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem}.cebbwf5-email-management__list{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.cebbwf5-email-row{border-bottom:1px solid var(--cebbwf5-login-border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.75rem 0;display:grid}.cebbwf5-email-row:last-child{border-bottom:none}.cebbwf5-email-row__main{flex-direction:column;gap:.25rem;min-width:0;display:flex}.cebbwf5-email-row__address{overflow-wrap:anywhere;color:var(--cebbwf5-login-foreground);font-size:.875rem;font-weight:500}.cebbwf5-email-row__badges{flex-wrap:wrap;gap:.375rem;display:flex}.cebbwf5-email-row__meta{color:var(--cebbwf5-login-muted-foreground);font-size:.75rem}.cebbwf5-email-row__actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}@media (width<=640px){.cebbwf5-email-management__form,.cebbwf5-email-row{grid-template-columns:1fr}.cebbwf5-email-row__actions{justify-content:flex-start}}.cedros-linked-accounts{flex-direction:column;gap:1rem;display:flex}.cedros-linked-accounts-loading{color:var(--cebbwf5-login-muted-foreground);flex-direction:row;align-items:center;gap:.625rem;padding:1rem 0;font-size:.875rem}.cedros-linked-accounts-empty{color:var(--cebbwf5-login-muted-foreground);font-size:.875rem}.cedros-linked-credential-list{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.cedros-linked-credential{border-bottom:1px solid var(--cebbwf5-login-border);align-items:center;gap:.75rem;padding:.75rem 0;display:flex}.cedros-linked-credential:last-child{border-bottom:none}.cedros-linked-credential__icon{background:var(--cebbwf5-login-accent);width:36px;height:36px;color:var(--cebbwf5-login-text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.cedros-linked-credential__info{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.cedros-linked-credential__name{color:var(--cebbwf5-login-text);font-size:.875rem;font-weight:500}.cedros-linked-credential__meta{color:var(--cebbwf5-login-muted-foreground);font-size:.75rem}.cedros-linked-credential__action{flex-shrink:0}.cedros-button-danger-outline{color:var(--cebbwf5-destructive);border-color:var(--cebbwf5-destructive)}.cedros-button-danger-outline:hover:not(:disabled){background:var(--cebbwf5-destructive);color:var(--cebbwf5-destructive-foreground)}.cedros-linked-add{border-top:1px solid var(--cebbwf5-login-border);padding-top:1rem}.cedros-linked-add-label{color:var(--cebbwf5-login-muted-foreground);margin:0 0 .75rem;font-size:.875rem;font-weight:500}.cedros-linked-add-buttons{flex-wrap:wrap;gap:.5rem;display:flex}.cedros-linked-add-buttons .cedros-button{align-items:center;gap:.375rem;display:inline-flex}:where(.cedros-login-admin-root) .cebbwf5-admin-sort-button,:where(.cedros-login-admin-root) .cebbwf5-admin__table-sort{font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:.375rem;padding:0;display:inline-flex}:where(.cedros-login-admin-root) .cebbwf5-admin-sort-button:hover,:where(.cedros-login-admin-root) .cebbwf5-admin-sort-button.cebbwf5-admin-sort-active{color:var(--admin-fg)}:where(.cedros-login-admin-root) .cebbwf5-admin-sort-button.cebbwf5-admin-sort-active .cebbwf5-admin-sort-icon{opacity:1}:where(.cedros-login-admin-root) .cebbwf5-admin-sort-icon,:where(.cedros-login-admin-root) .cebbwf5-admin__sort-icon{opacity:.35;width:.875rem;height:.875rem;font-size:.875rem;line-height:1}:where(.cedros-login-admin-root) .cebbwf5-admin-queue-count{color:var(--admin-muted);font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-user-list{background:var(--admin-bg);border:1px solid var(--admin-border);border-radius:var(--admin-radius);padding:1rem}:where(.cedros-login-admin-root) .cebbwf5-admin-user-list-error,:where(.cedros-login-admin-root) .cebbwf5-admin-user-list-loading{flex-direction:column;align-items:center;gap:.75rem;padding:2rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-list-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-list-title{color:var(--admin-fg);margin:0;font-size:.9375rem;font-weight:600}:where(.cedros-login-admin-root) .cebbwf5-admin-user-list-actions{align-items:center;gap:.75rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-table{border:1px solid var(--admin-border);border-radius:calc(var(--admin-radius) - 2px);background:var(--admin-table-row);width:100%;overflow:hidden}:where(.cedros-login-admin-root) .cebbwf5-admin-user-thead{background:var(--admin-table-head);border-bottom:1px solid var(--admin-border);grid-template-columns:1fr 120px 120px 90px;display:grid}:where(.cedros-login-admin-root) .cebbwf5-admin-user-th{text-transform:uppercase;letter-spacing:.05em;color:var(--admin-muted);white-space:nowrap;padding:.6875rem .75rem;font-size:.6875rem;font-weight:500}:where(.cedros-login-admin-root) .cebbwf5-admin-user-row{border-bottom:1px solid var(--admin-border);background:var(--admin-table-row);cursor:default;grid-template-columns:1fr 120px 120px 90px;display:grid}:where(.cedros-login-admin-root) .cebbwf5-admin-user-row:last-child{border-bottom:none}:where(.cedros-login-admin-root) .cebbwf5-admin-user-row[role=button]{cursor:pointer}:where(.cedros-login-admin-root) .cebbwf5-admin-user-row[role=button]:hover{background:var(--admin-table-row-hover)}:where(.cedros-login-admin-root) .cebbwf5-admin-user-row-current{background:color-mix(in srgb, var(--admin-primary) 5%, transparent)}:where(.cedros-login-admin-root) .cebbwf5-admin-user-td{white-space:nowrap;align-items:center;padding:.75rem;font-size:.8125rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-info{align-items:center;gap:.75rem;display:flex;overflow:hidden}:where(.cedros-login-admin-root) .cebbwf5-admin-user-avatar{flex-shrink:0}:where(.cedros-login-admin-root) .cebbwf5-admin-user-avatar-img{-o-object-fit:cover;object-fit:cover;border-radius:50%;width:32px;height:32px}:where(.cedros-login-admin-root) .cebbwf5-admin-user-avatar-placeholder{background:var(--admin-muted-bg);width:32px;height:32px;color:var(--admin-muted);border-radius:50%;justify-content:center;align-items:center;font-size:.875rem;font-weight:600;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-details{flex-direction:column;min-width:0;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}:where(.cedros-login-admin-root) .cebbwf5-admin-user-you{color:var(--admin-muted);margin-left:.25rem;font-size:.75rem;font-weight:400}:where(.cedros-login-admin-root) .cebbwf5-admin-user-email{color:var(--admin-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}:where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge{text-transform:uppercase;letter-spacing:.025em;background:var(--admin-muted-bg);color:var(--admin-muted);border-radius:9999px;padding:.125rem .5rem;font-size:.6875rem;font-weight:500;display:inline-block}:where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-none{background:var(--admin-muted-bg);color:var(--admin-muted);font-style:italic}.cedros-system-settings{flex-direction:column;gap:1.5rem;display:flex}.cedros-system-settings-loading,.cedros-system-settings-empty{color:var(--cebbwf5-login-muted-foreground);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:2rem;display:flex}.cedros-settings-page-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.cedros-settings-page-header-content{flex:1}.cedros-settings-page-title{color:var(--cebbwf5-login-foreground);margin:0 0 .25rem;font-size:1.25rem;font-weight:600}.cedros-settings-page-description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem;line-height:1.5}.cedros-settings-success{background:color-mix(in srgb, var(--cebbwf5-login-success) 10%, transparent);border:1px solid var(--cebbwf5-login-success);border-radius:var(--cebbwf5-login-radius);color:var(--cebbwf5-login-success);padding:.75rem 1rem;font-size:.875rem}.cedros-settings-warning-banner{background:color-mix(in srgb, var(--cebbwf5-login-warning) 10%, transparent);border:1px solid var(--cebbwf5-login-warning);border-radius:var(--cebbwf5-login-radius);color:var(--cebbwf5-login-warning);padding:.75rem 1rem;font-size:.875rem}.cedros-autosave-status{border-radius:var(--cebbwf5-login-radius);transition:opacity var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);align-items:center;gap:.5rem;padding:.375rem .75rem;font-size:.8125rem;display:inline-flex}.cedros-autosave-dot{background:var(--cebbwf5-login-warning);border-radius:50%;width:6px;height:6px}.cedros-autosave-spinner{border:2px solid var(--cebbwf5-login-muted-foreground);border-top-color:#0000;border-radius:50%;width:12px;height:12px;animation:.8s linear infinite cedros-spin}.cedros-autosave-check{font-weight:600}.cedros-autosave-error-icon{background:var(--cebbwf5-destructive);width:16px;height:16px;color:var(--cebbwf5-destructive-foreground);border-radius:50%;justify-content:center;align-items:center;font-size:.6875rem;font-weight:700;display:inline-flex}.cedros-settings-section{background:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);padding:1.25rem}.cedros-settings-section-header{gap:.75rem;margin-bottom:1rem;display:flex}.cedros-settings-section-icon{font-size:1.5rem;line-height:1}.cedros-settings-section-title{color:var(--cebbwf5-login-foreground);margin:0 0 .25rem;font-size:1rem;font-weight:600}.cedros-settings-section-description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.8125rem;line-height:1.5}.cedros-auth-method-list{flex-direction:column;gap:.75rem;display:flex}.cedros-auth-method-card{border:1px solid var(--admin-border,var(--cebbwf5-login-border));border-radius:var(--cebbwf5-radius-card);background:var(--admin-bg,var(--cebbwf5-login-card));padding:1rem 1.25rem;transition:border-color .15s,box-shadow .15s}.cedros-auth-method-card--enabled{border-color:color-mix(in srgb, var(--admin-fg,var(--cebbwf5-login-foreground)) 45%, transparent);box-shadow:var(--admin-shadow-sm,var(--cebbwf5-login-shadow-xs))}.cedros-auth-method-card-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.cedros-auth-method-card-info{flex:1;min-width:0}.cedros-auth-method-card-title-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.cedros-auth-method-card-name{color:var(--admin-fg,var(--cebbwf5-login-foreground));font-size:.9375rem;font-weight:600}.cedros-auth-method-badge{color:var(--admin-muted,var(--cebbwf5-login-muted-foreground));background:var(--admin-muted-bg,var(--cebbwf5-login-muted));border-radius:9999px;align-items:center;gap:.3125rem;padding:.125rem .5rem;font-size:.6875rem;font-weight:500;display:inline-flex}.cedros-auth-method-badge:before{content:\"\";opacity:.55;background:currentColor;border-radius:50%;width:6px;height:6px}.cedros-auth-method-badge--on{color:var(--admin-success);background:var(--admin-success-light)}.cedros-auth-method-badge--on:before{opacity:1}.cedros-auth-method-card-description{color:var(--admin-muted,var(--cebbwf5-login-muted-foreground));margin:.25rem 0 0;font-size:.8125rem;line-height:1.5}.cedros-auth-method-card-description a{color:var(--admin-link,var(--cebbwf5-login-link));text-decoration:underline}.cedros-auth-method-card-body{border-top:1px solid var(--admin-border,var(--cebbwf5-login-border));margin-top:1rem;padding-top:1rem}.cedros-auth-method-card-body .cedros-setting-row{background:0 0;border:none;border-radius:0;padding:0}.cedros-sso-embedded-actions{justify-content:flex-end;margin-bottom:.75rem;display:flex}.cedros-auth-section-stack{flex-direction:column;gap:2rem;display:flex}.cedros-auth-subsection-title{color:var(--admin-fg,var(--cebbwf5-login-foreground));margin:0 0 .75rem;font-size:.9375rem;font-weight:600}.cedros-settings-grid{flex-direction:column;gap:1rem;display:flex}.cedros-setting-row{background:var(--cebbwf5-login-background);border:1px solid var(--cebbwf5-login-border);border-radius:calc(var(--cebbwf5-login-radius) - 2px);transition:border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);grid-template-columns:1fr 2fr;align-items:start;gap:1.5rem;padding:1rem;display:grid}.cedros-setting-row-changed{border-color:var(--cebbwf5-login-ring);background:color-mix(in srgb, var(--cebbwf5-login-link) 8%, var(--cebbwf5-login-background))}.cedros-setting-row-warning{border-color:var(--cebbwf5-login-warning)}.cedros-setting-label{cursor:default;flex-direction:column;gap:.375rem;display:flex}.cedros-setting-name{color:var(--cebbwf5-login-foreground);font-size:.875rem;font-weight:600}.cedros-setting-description{color:var(--cebbwf5-login-muted-foreground);font-size:.8125rem;line-height:1.5}.cedros-setting-description a{color:var(--admin-link,var(--cebbwf5-login-link));text-decoration:none}.cedros-setting-description a:hover{text-decoration:underline}.cedros-setting-control{flex-direction:column;gap:.5rem;display:flex}.cedros-setting-control-fieldset{border:0;min-width:0;margin:0;padding:0}.cedros-setting-capability{color:var(--cebbwf5-login-muted-foreground);flex-direction:column;gap:.25rem;font-size:.75rem;display:flex}.cedros-setting-application-mode{font-weight:500}.cedros-setting-validation-error{color:var(--cebbwf5-destructive)}.cedros-setting-row-toggle{grid-template-columns:auto 1fr;align-items:center}.cedros-setting-control-toggle{justify-content:flex-start;align-items:center}.cedros-setting-warning{color:var(--cebbwf5-login-warning);background:color-mix(in srgb, var(--cebbwf5-login-warning) 10%, transparent);border-radius:calc(var(--cebbwf5-login-radius) - 4px);padding:.375rem .5rem;font-size:.75rem}.cedros-setting-input{min-width:0;font-size:.875rem;font-family:var(--cebbwf5-font-mono);background:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:calc(var(--cebbwf5-login-radius) - 2px);color:var(--cebbwf5-login-foreground);transition:border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), box-shadow var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);flex:1;padding:.5rem .75rem}.cedros-setting-input:focus{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 2px color-mix(in srgb, var(--cebbwf5-login-ring) 20%, transparent);outline:none}.cedros-setting-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.cedros-setting-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.cedros-setting-input[type=number]{-moz-appearance:textfield;text-align:right}.cedros-setting-input-sm{flex:none;width:100px}.cedros-setting-input-wrapper{align-items:center;gap:.5rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-email{color:#2563eb;background:#3b82f626}:where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-google{color:#dc2626;background:#ea433526}:where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-apple{color:#1f2937;background:#0000001a}:where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-solana{color:#7c3aed;background:#9945ff26}:where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-webauthn{color:#059669;background:#10b98126}:where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-sso{color:#d97706;background:#f59e0b26}.cebbwf5-dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-email,.dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-email,[data-theme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-email,[data-color-mode=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-email,[data-color-scheme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-email{color:#93c5fd;background:#60a5fa33}.cebbwf5-dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-google,.dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-google,[data-theme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-google,[data-color-mode=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-google,[data-color-scheme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-google{color:#fca5a5;background:#f8717133}.cebbwf5-dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-apple,.dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-apple,[data-theme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-apple,[data-color-mode=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-apple,[data-color-scheme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-apple{color:#e5e7eb;background:#ffffff1a}.cebbwf5-dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-solana,.dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-solana,[data-theme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-solana,[data-color-mode=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-solana,[data-color-scheme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-solana{color:#c4b5fd;background:#a78bfa33}.cebbwf5-dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-webauthn,.dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-webauthn,[data-theme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-webauthn,[data-color-mode=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-webauthn,[data-color-scheme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-webauthn{color:#6ee7b7;background:#34d39933}.cebbwf5-dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-sso,.dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-sso,[data-theme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-sso,[data-color-mode=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-sso,[data-color-scheme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-sso{color:#fcd34d;background:#fbbf2433}.cedros-autosave-status--pending,.cedros-autosave-status--dirty,.cedros-autosave-status--debouncing,.cedros-autosave-status--queued,.cedros-autosave-status--saving,.cedros-autosave-status--retrying,.cedros-autosave-status--offline{color:var(--cebbwf5-login-muted-foreground)}.cedros-autosave-status--saved{color:var(--cebbwf5-login-success)}.cedros-autosave-status--error,.cedros-autosave-status--failed,.cedros-autosave-status--conflict{color:var(--cebbwf5-destructive)}.cedros-invite-unlock{text-align:center;animation:cedros-invite-unlock-in .36s var(--cebbwf5-ease-out) both;flex-direction:column;align-items:center;gap:.375rem;padding:1.25rem 1rem .75rem;display:flex}@keyframes cedros-invite-unlock-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.cedros-invite-unlock__stage{pointer-events:none;justify-content:center;align-items:center;width:9rem;height:9rem;margin-bottom:.25rem;display:flex;position:relative}.cedros-invite-unlock__halo{background:radial-gradient(circle, color-mix(in srgb, var(--cebbwf5-login-primary) 24%, transparent) 0%, transparent 65%);animation:cedros-invite-unlock-halo 1.6s var(--cebbwf5-ease-out) .12s both;border-radius:50%;position:absolute;inset:0}@keyframes cedros-invite-unlock-halo{0%{opacity:0;transform:scale(.5)}35%{opacity:1}to{opacity:.55;transform:scale(1)}}.cedros-invite-unlock__ring{border:2px solid var(--cebbwf5-login-primary);width:4.5rem;height:4.5rem;animation:cedros-invite-unlock-ring .9s var(--cebbwf5-ease-out) .2s both;border-radius:50%;position:absolute}@keyframes cedros-invite-unlock-ring{0%{opacity:.9;transform:scale(.55)}to{opacity:0;transform:scale(1.9)}}.cedros-invite-unlock__seal{background:linear-gradient(135deg, var(--cebbwf5-login-primary), color-mix(in srgb, var(--cebbwf5-login-primary) 72%, var(--cebbwf5-login-foreground)));width:4.5rem;height:4.5rem;color:var(--cebbwf5-login-primary-foreground);box-shadow:0 10px 30px -12px color-mix(in srgb, var(--cebbwf5-login-primary) 60%, transparent);border-radius:50%;justify-content:center;align-items:center;animation:.52s cubic-bezier(.34,1.56,.64,1) 60ms both cedros-invite-unlock-seal;display:flex;position:relative}@keyframes cedros-invite-unlock-seal{0%{opacity:0;transform:scale(.3)rotate(-12deg)}70%{opacity:1;transform:scale(1.08)rotate(2deg)}to{opacity:1;transform:scale(1)rotate(0)}}.cedros-invite-unlock__check{fill:none;stroke:currentColor;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:48;stroke-dashoffset:48px;width:2.25rem;height:2.25rem;animation:cedros-check-draw .42s var(--cebbwf5-ease-out) .42s forwards}.cedros-invite-unlock__confetti{background:var(--unlock-color,var(--cebbwf5-login-primary));width:.5rem;height:.75rem;animation:cedros-invite-unlock-confetti 1.15s var(--cebbwf5-ease-out) var(--unlock-delay,.15s) both;will-change:transform, opacity, filter;border-radius:2px;margin:-.375rem 0 0 -.25rem;position:absolute;top:50%;left:50%}.cedros-invite-unlock__confetti--round{border-radius:50%;width:.4rem;height:.4rem}@keyframes cedros-invite-unlock-confetti{0%{opacity:0;transform:translate(0)rotate(0)scale(.6)}12%{opacity:1}55%{opacity:1;filter:blur(var(--unlock-blur,.75px));transform:translate(var(--unlock-mid-x,0), var(--unlock-mid-y,-40px)) rotate(var(--unlock-mid-rotation,90deg)) scaleX(var(--unlock-stretch,1.25)) scaleY(.82)}to{opacity:0;filter:blur();transform:translate(var(--unlock-x,0), var(--unlock-y,-80px)) rotate(var(--unlock-rotation,180deg)) scale(1)}}.cedros-invite-unlock__title{animation:cedros-invite-unlock-rise .46s var(--cebbwf5-ease-out) .48s both}.cedros-invite-unlock__title:focus{outline:none}.cedros-invite-unlock__subtitle{max-width:34ch;animation:cedros-invite-unlock-rise .46s var(--cebbwf5-ease-out) .64s both}@keyframes cedros-invite-unlock-rise{0%{opacity:0;filter:blur(4px);transform:translateY(10px)}to{opacity:1;filter:blur();transform:translateY(0)}}.cedros-invite-unlock__reward{flex-direction:column;align-items:center;gap:.375rem;margin-top:.75rem;animation:.52s cubic-bezier(.34,1.56,.64,1) .88s both cedros-invite-unlock-reward;display:flex}@keyframes cedros-invite-unlock-reward{0%{opacity:0;transform:scale(.8)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}.cedros-invite-unlock__reward-badge{border:1px dashed color-mix(in srgb, var(--cebbwf5-login-link) 55%, transparent);background-color:color-mix(in srgb, var(--cebbwf5-login-link) 12%, var(--cebbwf5-login-card));background-image:linear-gradient(110deg, transparent 40%, color-mix(in srgb, var(--cebbwf5-login-foreground) 24%, transparent) 50%, transparent 60%);color:var(--cebbwf5-login-link);animation:cedros-shimmer 1.6s var(--cebbwf5-ease-out) 1.25s 2 both;background-repeat:no-repeat;background-size:250% 100%;border-radius:999px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.9375rem;font-weight:600;display:inline-flex}.cedros-invite-unlock__reward-badge svg{flex-shrink:0;width:1.125rem;height:1.125rem}.cedros-invite-unlock__reward-note{color:var(--cebbwf5-login-muted-foreground);font-size:.8125rem}.cedros-invite-unlock__continue{animation:cedros-invite-unlock-rise .42s var(--cebbwf5-ease-out) 1.3s both;margin-top:1rem}\n/*$vite$:1*/"},{"path":"workspace/react/dist/web/register.js","kind":"module","text":"import * as ss from \"react\";\nimport { Component as ds, Fragment as cs, Suspense as at, createContext as Ar, createElement as F, lazy as st, memo as yn, useCallback as S, useContext as Ue, useId as he, useLayoutEffect as ur, useMemo as B, useRef as M, useState as _, useSyncExternalStore as wn } from \"react\";\nimport { Fragment as Z, jsx as n, jsxs as v } from \"react/jsx-runtime\";\nvar Wt = Object.defineProperty, R = (e, r, o) => () => {\n  if (o) throw o[0];\n  try {\n    return e && (r = e(e = 0)), r;\n  } catch (t) {\n    throw o = [t], t;\n  }\n}, dt = (e, r) => {\n  let o = {};\n  for (var t in e)\n    Wt(o, t, {\n      get: e[t],\n      enumerable: !0\n    });\n  return r || Wt(o, Symbol.toStringTag, { value: \"Module\" }), o;\n}, ct, kn = R((() => {\n  ct = `.cedros-login-admin-root .cedros-data-pill,.cedros-login-dashboard-card .cedros-data-pill{border:1px solid var(--cebbwf5-login-admin-border);background:var(--cebbwf5-login-admin-muted-bg);color:var(--cebbwf5-login-admin-muted);border-radius:9999px;align-items:center;gap:.3125rem;padding:.125rem .5rem;font-size:.6875rem;font-weight:600;line-height:1.2;display:inline-flex}.cedros-login-admin-root .cedros-data-pill--success,.cedros-login-dashboard-card .cedros-data-pill--success{background:color-mix(in srgb, var(--cebbwf5-login-admin-success) 14%, var(--cebbwf5-login-admin-bg));color:var(--cebbwf5-login-admin-success)}.cedros-login-admin-root .cedros-data-pill--warning,.cedros-login-dashboard-card .cedros-data-pill--warning{background:color-mix(in srgb, var(--cebbwf5-login-admin-warning) 18%, var(--cebbwf5-login-admin-bg));color:var(--cebbwf5-login-admin-warning-fg)}.cedros-login-admin-root .cedros-data-pill--error,.cedros-login-dashboard-card .cedros-data-pill--error{background:color-mix(in srgb, var(--cebbwf5-login-admin-error) 12%, var(--cebbwf5-login-admin-bg));color:var(--cebbwf5-login-admin-error)}.cedros-login-admin-root .cedros-data-pill--info,.cedros-login-dashboard-card .cedros-data-pill--info{background:color-mix(in srgb, var(--cebbwf5-login-admin-info) 12%, var(--cebbwf5-login-admin-bg));color:var(--cebbwf5-login-admin-info)}.cedros-login-admin-root .cedros-data-status,.cedros-login-dashboard-card .cedros-data-status{border:1px solid var(--cebbwf5-login-admin-border);border-radius:var(--cebbwf5-login-admin-radius);justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.75rem;display:flex}.cedros-login-admin-root .cedros-data-status p,.cedros-login-dashboard-card .cedros-data-status p{margin:0}.cedros-login-admin-root .cedros-data-status--info,.cedros-login-dashboard-card .cedros-data-status--info{border-color:color-mix(in srgb, var(--cebbwf5-login-admin-info) 32%, transparent);background:color-mix(in srgb, var(--cebbwf5-login-admin-info) 12%, var(--cebbwf5-login-admin-bg))}.cedros-login-admin-root .cedros-data-status--error,.cedros-login-dashboard-card .cedros-data-status--error{border-color:color-mix(in srgb, var(--cebbwf5-login-admin-error) 32%, transparent);background:color-mix(in srgb, var(--cebbwf5-login-admin-error) 12%, var(--cebbwf5-login-admin-bg));color:var(--cebbwf5-login-admin-fg)}.cedros-login-admin-root .cedros-data-status--success,.cedros-login-dashboard-card .cedros-data-status--success{border-color:color-mix(in srgb, var(--cebbwf5-login-admin-success) 32%, transparent);background:color-mix(in srgb, var(--cebbwf5-login-admin-success) 12%, var(--cebbwf5-login-admin-bg))}.cedros-login-admin-root .cedros-data-status--warning,.cedros-login-dashboard-card .cedros-data-status--warning{border-color:color-mix(in srgb, var(--cebbwf5-login-admin-warning) 32%, transparent);background:color-mix(in srgb, var(--cebbwf5-login-admin-warning) 12%, var(--cebbwf5-login-admin-bg))}.cedros-login-admin-root .cedros-data-status__actions,.cedros-login-dashboard-card .cedros-data-status__actions{flex-shrink:0;justify-content:flex-end;gap:.5rem;display:flex}.cedros-login-admin-root .cedros-data-empty-state,.cedros-login-admin-root .cedros-data-empty,.cedros-login-dashboard-card .cedros-data-empty{color:var(--cebbwf5-login-admin-muted);font-size:.875rem}.cedros-login-admin-root .cedros-data-empty-state{border:1px dashed var(--cebbwf5-login-admin-border);border-radius:var(--cebbwf5-login-admin-radius);text-align:center;justify-items:center;gap:.75rem;min-height:9rem;padding:1rem;display:grid}.cedros-login-admin-root .cedros-data-empty-state__illustration{border:1px solid var(--cebbwf5-login-admin-border);border-radius:var(--cebbwf5-login-admin-radius);background:var(--cebbwf5-login-admin-muted-bg);width:2.5rem;height:2.5rem;color:var(--cebbwf5-login-admin-muted);justify-content:center;align-items:center;display:inline-flex}.cedros-login-admin-root .cedros-data-empty-state__illustration svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:1.125rem;height:1.125rem}.cedros-login-admin-root .cedros-data-empty-state__copy{max-width:42ch;margin:0}.cedros-login-admin-root .cedros-data-empty-state__action{margin-top:.75rem}.cedros-login-admin-root .cedros-data-empty-state--in-table{border:0;border-radius:0}.cedros-login-admin-root .cedros-data-table-wrap{overscroll-behavior-inline:contain;scrollbar-width:thin;border:1px solid var(--cebbwf5-login-admin-border);border-radius:calc(var(--cebbwf5-login-admin-radius) - 1px);background:var(--cebbwf5-login-admin-card-bg);overflow-x:auto}.cedros-login-admin-root .cedros-data-table{border-collapse:collapse;width:100%}.cedros-login-admin-root .cedros-data-table th,.cedros-login-admin-root .cedros-data-table td{border-bottom:1px solid var(--cebbwf5-login-admin-border);color:var(--cebbwf5-login-admin-fg);text-align:left;padding:.55rem .75rem;font-size:.8125rem}.cedros-login-admin-root .cedros-data-table th{background:color-mix(in srgb, var(--cebbwf5-login-admin-bg) 90%, var(--cebbwf5-login-admin-accent));color:var(--cebbwf5-login-admin-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.6875rem;font-weight:600}.cedros-login-admin-root .cedros-data-table td:nth-child(3),.cedros-login-admin-root .cedros-data-table td:nth-child(4){font-variant-numeric:tabular-nums;text-align:right}.cedros-login-admin-root .cedros-data-row-actions{justify-content:flex-end;align-items:center;gap:.375rem;display:flex}.cedros-login-admin-root .cedros-dropdown-menu{display:inline-flex}.cedros-login-admin-root .cedros-data-row-actions__icon{border-radius:calc(var(--cebbwf5-login-admin-radius) - 1px);width:2rem;height:2rem;color:var(--cebbwf5-login-admin-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.cedros-login-admin-root .cedros-data-row-actions__icon:hover{background:var(--cebbwf5-login-admin-accent);color:var(--cebbwf5-login-admin-fg)}.cedros-login-admin-root .cedros-data-row-actions__icon svg,.cedros-login-admin-root .cedros-data-dialog__close svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:1rem;height:1rem}.cedros-login-admin-root .cedros-dropdown-menu__content{z-index:var(--z-dropdown,50);overscroll-behavior:contain;border:1px solid var(--cebbwf5-login-admin-border);border-radius:var(--cebbwf5-login-admin-radius);background:var(--cebbwf5-login-admin-card-bg);min-width:11rem;max-width:20rem;max-height:20rem;box-shadow:var(--cebbwf5-login-admin-shadow);margin-top:.25rem;padding:.25rem;position:fixed;overflow-y:auto}.cedros-login-admin-root .cedros-dropdown-menu__content[data-side=top]{margin-top:0;margin-bottom:.25rem}.cedros-login-admin-root .cedros-dropdown-menu__item{border-radius:calc(var(--cebbwf5-login-admin-radius) - 4px);width:100%;min-height:2rem;color:var(--cebbwf5-login-admin-fg);font:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:0;align-items:center;padding:0 .5rem;font-size:.8125rem;display:flex;overflow:hidden}.cedros-login-admin-root .cedros-dropdown-menu__item:hover,.cedros-login-admin-root .cedros-dropdown-menu__item:focus-visible{background:var(--cebbwf5-login-admin-accent);outline:none}.cedros-login-admin-root .cedros-dropdown-menu__item--danger{color:var(--cebbwf5-login-admin-error)}.cedros-login-admin-root .cedros-data-dialog__overlay{z-index:var(--z-modal,1000);background:color-mix(in srgb, var(--cebbwf5-login-admin-fg) 45%, transparent);-webkit-backdrop-filter:none;backdrop-filter:none;animation:cedros-fade-in var(--motion-duration-normal,.2s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));justify-content:center;align-items:center}.cedros-login-admin-root .cedros-data-dialog{border:1px solid var(--cebbwf5-login-admin-border);border-radius:var(--admin-radius,.75rem);background:var(--cebbwf5-login-admin-card-bg);width:min(100%,35rem);box-shadow:var(--cebbwf5-login-admin-shadow);animation:cedros-modal-in var(--motion-duration-normal,.2s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));flex-direction:column;display:flex;position:relative}.cedros-login-admin-root .cedros-confirm-dialog.cedros-data-dialog{gap:0;max-width:26rem;padding:0}.cedros-login-admin-root .cedros-confirm-dialog .cedros-data-dialog__heading,.cedros-login-admin-root .cedros-confirm-dialog .cedros-data-dialog__body{padding:1rem 1.25rem}.cedros-login-admin-root .cedros-confirm-dialog .cedros-confirm-dialog__actions{margin-top:0}.cedros-login-admin-root .cedros-data-dialog__close{width:2rem;height:2rem;padding:0;position:absolute;top:.75rem;right:.75rem}.cedros-login-admin-root .cedros-data-dialog__heading{border-bottom:1px solid var(--cebbwf5-login-admin-border);position:relative}.cedros-login-admin-root .cedros-data-dialog__title{color:var(--cebbwf5-login-admin-fg);margin:0;padding-right:2.5rem;font-size:1.15rem;font-weight:600;line-height:1.25}.cedros-login-admin-root .cedros-data-dialog__description{max-width:var(--cd-container-prose,60ch);color:var(--cebbwf5-login-admin-muted);margin:.25rem 2.5rem 0 0;font-size:.8125rem}.cedros-login-admin-root .cedros-data-dialog__body{flex-direction:column;gap:.75rem;display:flex}.cedros-login-admin-root .cedros-data-checkbox-row{color:var(--cebbwf5-login-admin-fg);align-items:center;gap:.5rem;font-size:.8125rem;display:inline-flex}.cedros-login-admin-root .cedros-login-admin-skeleton,.cedros-login-dashboard-card .cedros-login-dashboard-card__skeleton{flex-direction:column;gap:.5rem;display:flex}.cedros-login-admin-root .cedros-login-admin-skeleton__line,.cedros-login-dashboard-card .cedros-login-dashboard-card__skeleton-line{background:linear-gradient(90deg, var(--cebbwf5-login-admin-muted-bg), color-mix(in srgb, var(--cebbwf5-login-admin-border) 55%, var(--cebbwf5-login-admin-muted-bg)), var(--cebbwf5-login-admin-muted-bg));width:100%;height:.875rem;animation:cedros-shimmer var(--motion-duration-slow,1.4s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)) infinite;background-size:200% 100%;border-radius:9999px;display:block}.cedros-login-admin-root .cedros-login-admin-skeleton__line--short,.cedros-login-dashboard-card .cedros-login-dashboard-card__skeleton-line--short{width:62%}@media (width<=767px){.cedros-login-admin-root .cedros-data__header,.cedros-login-admin-root .cedros-data-status,.cedros-login-dashboard-card .cedros-data-status{flex-direction:column;align-items:stretch}.cedros-login-admin-root .cedros-data-tabs__list{max-width:100%;overflow-x:auto}.cedros-login-admin-root .cedros-invite-code-manager__header{flex-direction:column;align-items:stretch}}@media (prefers-reduced-motion:reduce){.cedros-login-admin-root .cedros-data-dialog__overlay,.cedros-login-admin-root .cedros-data-dialog,.cedros-login-admin-root .cedros-login-admin-skeleton__line,.cedros-login-dashboard-card .cedros-login-dashboard-card__skeleton-line{animation:none}}.cedros-login-admin-root .cedros-sortable-settings{gap:.5rem;min-width:0;display:grid}.cedros-login-admin-root .cedros-sortable-list{gap:.75rem;min-width:0;margin:0;padding:0;list-style:none;display:grid}.cedros-login-admin-root .cedros-sortable-item{touch-action:pan-x;min-width:0;transition:border-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), box-shadow var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));grid-template-columns:2rem minmax(0,1fr) auto;align-items:start;gap:.5rem;display:grid;position:relative}.cedros-login-admin-root .cedros-sortable-item[data-dragging=true]{z-index:2;border-color:var(--cebbwf5-login-admin-primary);box-shadow:var(--cebbwf5-login-shadow-overlay,var(--cebbwf5-login-admin-shadow))}.cedros-login-admin-root .cedros-sortable-item[data-drop-target=true]:before{background:var(--cebbwf5-login-admin-primary);content:\"\";border-radius:9999px;height:2px;position:absolute;top:-.375rem;left:0;right:0}.cedros-login-admin-root .cedros-sortable-handle{width:2rem;height:2rem;color:var(--cebbwf5-login-admin-muted);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;justify-content:center;align-items:center;margin-top:.75rem;display:inline-flex}.cedros-login-admin-root .cedros-sortable-handle:active{cursor:grabbing}.cedros-login-admin-root .cedros-sortable-handle svg,.cedros-login-admin-root .cedros-sortable-actions svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:1rem;height:1rem}.cedros-login-admin-root .cedros-sortable-handle svg circle{fill:currentColor;stroke:none}.cedros-login-admin-root .cedros-sortable-item__content{min-width:0}.cedros-login-admin-root .cedros-sortable-actions{transition:opacity var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), transform var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));margin-top:.75rem}@media (hover:hover) and (pointer:fine){.cedros-login-admin-root .cedros-sortable-actions{opacity:0;pointer-events:none;transform:translate(.25rem)}.cedros-login-admin-root .cedros-sortable-item:is(:hover,:focus-within) .cedros-sortable-actions{opacity:1;pointer-events:auto;transform:translate(0)}}.cedros-login-admin-root .cedros-sortable-actions button:disabled{cursor:not-allowed;opacity:.5}.cedros-login-admin-root .cedros-sortable-settings__hint{color:var(--cebbwf5-login-admin-muted);margin:0;font-size:.75rem}.cedros-login-admin-root .cedros-social-order-list{gap:.5rem;max-width:none}.cedros-login-admin-root .cedros-social-order-item{grid-template-columns:2rem 1.5rem minmax(0,1fr) auto auto;align-items:center;padding:.625rem .75rem}.cedros-login-admin-root .cedros-social-order-item .cedros-sortable-handle,.cedros-login-admin-root .cedros-social-order-item .cedros-sortable-actions{margin-top:0}.cedros-login-admin-root .cedros-social-order-item__icon{color:var(--cebbwf5-login-admin-muted);align-items:center;display:inline-flex}.cedros-login-admin-root .cedros-social-order-item__label{min-width:0;color:var(--cebbwf5-login-admin-fg);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:500;overflow:hidden}@media (width<=560px){.cedros-login-admin-root .cedros-sortable-item{grid-template-columns:2rem minmax(0,1fr)}.cedros-login-admin-root .cedros-sortable-actions{opacity:1;pointer-events:auto;grid-column:2;justify-content:flex-start;margin-top:0;transform:none}.cedros-login-admin-root .cedros-social-order-item{grid-template-columns:2rem 1.5rem minmax(0,1fr) auto}.cedros-login-admin-root .cedros-social-order-item .cedros-sortable-actions{grid-column:3/-1}}.cedros-login-dashboard-card{color:var(--cebbwf5-login-admin-fg);overflow:hidden}.cedros-login-dashboard-card .cedros-data-card__header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.cedros-login-dashboard-card .cedros-data-card__body{gap:.75rem;display:grid}.cedros-login-dashboard-card .cedros-data-card__body>p,.cedros-login-dashboard-card .cedros-data-status p,.cedros-login-dashboard-card .cedros-data-setup-notice p{margin:0}.cedros-login-dashboard-card .cedros-data-summary-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,11.25rem),1fr));gap:.75rem;margin:0;display:grid}.cedros-login-dashboard-card .cedros-data-metric{border:1px solid var(--cebbwf5-login-admin-border);border-radius:var(--cebbwf5-login-admin-radius);background:var(--cebbwf5-login-admin-card-bg);min-width:0;padding:.75rem}.cedros-login-dashboard-card .cedros-data-metric__label{color:var(--cebbwf5-login-admin-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.6875rem;font-weight:600}.cedros-login-dashboard-card .cedros-data-metric__value{color:var(--cebbwf5-login-admin-fg);font-variant-numeric:tabular-nums;margin:.25rem 0 0;font-size:1.5rem;font-weight:700}.cedros-login-dashboard-card .cedros-data-metric__hint{color:var(--cebbwf5-login-admin-muted);font-size:.75rem}.cedros-login-dashboard-card .cedros-data-setup-notice{border:1px solid var(--cebbwf5-login-admin-border);border-radius:var(--cebbwf5-login-admin-radius);flex-direction:column;gap:.75rem;padding:.75rem;display:flex}.cedros-login-dashboard-card .cedros-data-setup-notice__body{gap:.375rem;display:grid}.cedros-login-admin-root.cedros-data .cedros-auth-method-card{transition:border-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), box-shadow var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1))}.cedros-login-admin-root.cedros-data .cedros-auth-method-card-header{border-bottom:0}.cedros-login-admin-root.cedros-data .cedros-auth-method-card-body{border-top:1px solid var(--cebbwf5-login-admin-border);margin-top:0;padding:.9rem 1rem}.cedros-login-admin-root.cedros-data .cedros-setting-row{border-color:var(--cebbwf5-login-admin-border);border-radius:var(--cebbwf5-login-admin-radius);background:var(--cebbwf5-login-admin-card-bg);transition:background-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), border-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));grid-template-columns:minmax(0,1fr) minmax(12rem,2fr);gap:1.5rem;padding:1rem}.cedros-login-admin-root.cedros-data .cedros-auth-method-card-body .cedros-setting-row{background:0 0;border:0;border-radius:0;padding:0}.cedros-login-admin-root.cedros-data .cedros-setting-row-changed{border-color:var(--cebbwf5-login-admin-primary);background:color-mix(in srgb, var(--cebbwf5-login-admin-primary) 5%, var(--cebbwf5-login-admin-card-bg))}.cedros-login-admin-root.cedros-data .cedros-setting-row-warning{border-color:var(--cebbwf5-login-admin-warning)}.cedros-login-admin-root.cedros-data .cedros-setting-row-toggle{grid-template-columns:minmax(0,1fr) auto;align-items:center}.cedros-login-admin-root.cedros-data .cedros-setting-label{gap:.25rem}.cedros-login-admin-root.cedros-data .cedros-setting-name{color:var(--cebbwf5-login-admin-fg);font-size:.8125rem;font-weight:500}.cedros-login-admin-root.cedros-data .cedros-setting-description{color:var(--cebbwf5-login-admin-muted)}.cedros-login-admin-root.cedros-data .cedros-setting-description a,.cedros-login-admin-root.cedros-data .cedros-auth-method-card-description a{color:var(--cebbwf5-login-admin-link)}.cedros-login-admin-root.cedros-data .cedros-setting-control-toggle{align-items:flex-end}.cedros-login-admin-root.cedros-data .cedros-setting-warning{border-radius:calc(var(--cebbwf5-login-admin-radius) - 2px);background:color-mix(in srgb, var(--cebbwf5-login-admin-warning) 12%, var(--cebbwf5-login-admin-bg));color:var(--cebbwf5-login-admin-warning-fg)}.cedros-login-admin-root.cedros-data .cedros-data-input,.cedros-login-admin-root.cedros-data .cedros-setting-input{font:inherit;font-size:.8125rem}.cedros-login-admin-root.cedros-data .cedros-data-input::placeholder{color:var(--cebbwf5-login-admin-muted)}.cedros-login-admin-root.cedros-data .cedros-data-input:focus:not(:focus-visible){border-color:var(--cebbwf5-login-admin-border);box-shadow:none}.cedros-login-admin-root.cedros-data .cedros-setting-input[type=number]{appearance:auto;text-align:left}.cedros-login-admin-root.cedros-data .cedros-setting-input::-webkit-outer-spin-button{-webkit-appearance:auto;margin:0}.cedros-login-admin-root.cedros-data .cedros-setting-input::-webkit-inner-spin-button{-webkit-appearance:auto;margin:0}.cedros-login-admin-root.cedros-data .cedros-rp-card{padding:1rem}.cedros-login-admin-root.cedros-data .cedros-rp-settings{margin-top:.5rem}.cedros-login-admin-root.cedros-data .cedros-rp-overall-status{padding:.4rem .625rem}.cedros-login-admin-root.cedros-data .cedros-rp-summary{gap:1.5rem;margin:0;display:flex}.cedros-login-admin-root.cedros-data .cedros-rp-summary div{gap:.2rem;display:grid}.cedros-login-admin-root.cedros-data .cedros-rp-summary dt{color:var(--cebbwf5-login-admin-muted);font-size:.75rem}.cedros-login-admin-root.cedros-data .cedros-rp-summary dd{color:var(--cebbwf5-login-admin-fg);margin:0;font-size:.8125rem;font-weight:500}.cedros-login-admin-root.cedros-data .cedros-rp-card .cedros-data-input{box-sizing:border-box;width:100%;padding:.5rem .75rem}.cedros-login-admin-root.cedros-data .cedros-rp-policy-input{resize:vertical;min-height:4rem}.cedros-login-admin-root.cedros-data .cedros-toggle{color:var(--cebbwf5-login-admin-fg);font:inherit;cursor:pointer;background:0 0;border:0;flex:none;gap:.5rem;padding:0}.cedros-login-admin-root.cedros-data .cedros-toggle-track{border:1px solid var(--cebbwf5-login-admin-border);background:var(--cebbwf5-login-admin-muted-bg);width:2.35rem;height:1.3rem;box-shadow:none;transition:background-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), border-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), box-shadow var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));border-radius:9999px;position:relative}.cedros-login-admin-root.cedros-data .cedros-toggle-thumb{background:var(--cebbwf5-login-admin-card-bg);width:1rem;height:1rem;box-shadow:var(--cebbwf5-login-admin-shadow);transition:transform var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), width var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));border-radius:9999px;position:absolute;top:.0875rem;left:.0875rem}.cedros-login-admin-root.cedros-data .cedros-toggle-on .cedros-toggle-track{border-color:var(--cebbwf5-login-admin-primary);background:var(--cebbwf5-login-admin-primary);box-shadow:none}.cedros-login-admin-root.cedros-data .cedros-toggle-on .cedros-toggle-thumb,.cedros-login-admin-root.cedros-data .cedros-toggle-on:active:not(:disabled) .cedros-toggle-thumb{width:1rem;transform:translate(1.02rem)}.cedros-login-admin-root.cedros-data .cedros-toggle:active:not(:disabled) .cedros-toggle-thumb{width:1rem}.cedros-login-admin-root.cedros-data .cedros-toggle:focus-visible{outline:none}.cedros-login-admin-root.cedros-data .cedros-toggle:focus-visible .cedros-toggle-track{border-color:var(--cebbwf5-login-admin-ring);box-shadow:0 0 0 3px color-mix(in srgb, var(--cebbwf5-login-admin-ring) 14%, transparent);outline:none}.cedros-login-admin-root.cedros-data .cedros-toggle:disabled{cursor:not-allowed;opacity:.5}.cedros-login-admin-root.cedros-data .cedros-toggle-label{color:var(--cebbwf5-login-admin-fg);font-size:.8125rem;font-weight:500}.cedros-login-admin-root.cedros-data .cedros-data-checkbox-row input{accent-color:var(--cebbwf5-login-admin-primary)}.cedros-login-admin-root.cedros-data .cedros-data-checkbox-row input:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--cebbwf5-login-admin-ring) 14%, transparent);outline:none}.cedros-login-admin-root.cedros-data .cedros-autosave-status{border-radius:var(--cebbwf5-login-admin-radius);color:var(--cebbwf5-login-admin-muted);transition:opacity var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));padding:.25rem .5rem;font-size:.75rem}.cedros-login-admin-root.cedros-data .cedros-autosave-dot{background:var(--cebbwf5-login-admin-warning)}.cedros-login-admin-root.cedros-data .cedros-autosave-spinner{border-color:var(--cebbwf5-login-admin-muted);animation:cedros-spin var(--motion-duration-slow,.8s) var(--motion-ease-linear,linear) infinite;border-top-color:#0000}.cedros-login-admin-root.cedros-data .cedros-autosave-error-icon{background:var(--cebbwf5-login-admin-error);color:var(--cebbwf5-login-admin-error-fg)}.cedros-login-admin-root.cedros-data .cedros-autosave-status--saved{color:var(--cebbwf5-login-admin-success)}.cedros-login-admin-root.cedros-data .cedros-autosave-status--error,.cedros-login-admin-root.cedros-data .cedros-autosave-status--failed,.cedros-login-admin-root.cedros-data .cedros-autosave-status--conflict{color:var(--cebbwf5-login-admin-error)}.cedros-login-admin-root.cedros-data .cedros-sso-provider-list{border:1px solid var(--cebbwf5-login-admin-border);border-radius:var(--cebbwf5-login-admin-radius);background:var(--cebbwf5-login-admin-card-bg);gap:0;overflow:hidden}.cedros-login-admin-root.cedros-data .cedros-sso-provider-card{border:0;border-bottom:1px solid var(--cebbwf5-login-admin-border);background:0 0;border-radius:0;padding:1rem}.cedros-login-admin-root.cedros-data .cedros-sso-provider-card:last-child{border-bottom:0}.cedros-login-admin-root.cedros-data .cedros-sso-provider-card--disabled{opacity:.6}.cedros-login-admin-root.cedros-data .cedros-sso-provider-card-name,.cedros-login-admin-root.cedros-data .cedros-sso-provider-card-detail-value{color:var(--cebbwf5-login-admin-fg)}.cedros-login-admin-root.cedros-data .cedros-sso-provider-card-issuer,.cedros-login-admin-root.cedros-data .cedros-sso-provider-card-detail-label{color:var(--cebbwf5-login-admin-muted)}.cedros-login-admin-root.cedros-data code.cedros-sso-provider-card-detail-value{font-family:var(--cd-font-mono,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);font-size:.8125rem}.cedros-login-admin-root.cedros-data .cedros-sso-provider-card-details{border-color:var(--cebbwf5-login-admin-border)}.cedros-login-admin-root.cedros-data .cedros-data-table__empty-cell{border-bottom:0;padding:0}@media (width<=767px){.cedros-login-admin-root.cedros-data .cedros-setting-row{grid-template-columns:minmax(0,1fr);gap:.75rem}.cedros-login-admin-root.cedros-data .cedros-setting-row-toggle{grid-template-columns:minmax(0,1fr) auto}.cedros-login-admin-root.cedros-data .cedros-sso-provider-card-header{align-items:center}}@media (prefers-reduced-motion:reduce){.cedros-login-admin-root.cedros-data .cedros-autosave-spinner{animation:none}}.cedros-login-admin-root.cedros-data,.cedros-login-dashboard-card.cedros-data{--cebbwf5-login-admin-bg:var(--cd-bg,var(--admin-bg,oklch(100% 0 0)));--cebbwf5-login-admin-card-bg:var(--cd-card-bg,var(--admin-bg,oklch(100% 0 0)));--cebbwf5-login-admin-fg:var(--cd-fg,var(--admin-fg,oklch(14.5% 0 0)));--cebbwf5-login-admin-muted:var(--cd-muted,var(--admin-muted,oklch(55.6% 0 0)));--cebbwf5-login-admin-muted-bg:var(--cd-muted-bg,var(--admin-muted-bg,var(--cebbwf5-login-muted)));--cebbwf5-login-admin-accent:var(--cd-accent,var(--admin-accent,var(--cebbwf5-login-accent)));--cebbwf5-login-admin-border:var(--cd-border,var(--admin-border,var(--cebbwf5-login-border)));--cebbwf5-login-admin-input-bg:var(--cd-input-bg,var(--admin-bg,var(--cebbwf5-login-card)));--cebbwf5-login-admin-primary:var(--cd-primary,var(--admin-primary,var(--cebbwf5-login-primary)));--cebbwf5-login-admin-primary-fg:var(--cd-primary-fg,var(--admin-primary-fg,var(--cebbwf5-login-primary-foreground)));--cebbwf5-login-admin-link:var(--cd-link,var(--admin-link,var(--cebbwf5-login-link)));--cebbwf5-login-admin-ring:var(--cd-ring,var(--admin-ring,var(--cebbwf5-login-ring)));--cebbwf5-login-admin-error:var(--cd-error,var(--admin-error,var(--cebbwf5-login-error)));--cebbwf5-login-admin-error-fg:var(--cd-error-fg,oklch(98.5% 0 0));--cebbwf5-login-admin-success:var(--cd-success,var(--admin-success,var(--cebbwf5-login-success)));--cebbwf5-login-admin-warning:var(--cd-warning,var(--admin-warning,var(--cebbwf5-login-warning)));--cebbwf5-login-admin-warning-fg:var(--cd-warning-fg,var(--admin-warning,var(--cebbwf5-login-warning)));--cebbwf5-login-admin-info:var(--cd-info,var(--admin-info,var(--cebbwf5-login-info)));--cebbwf5-login-admin-radius:var(--cd-radius,var(--admin-radius,var(--cebbwf5-login-radius)));--cebbwf5-login-admin-shadow:var(--cd-shadow,var(--admin-shadow-sm,var(--cebbwf5-login-shadow-sm)));color:var(--cebbwf5-login-admin-fg);font-size:.875rem;line-height:1.5}.cedros-login-admin-root.cedros-dashboard__login,.cedros-login-admin-root .cedros-dashboard__team{gap:1rem;min-width:0;display:grid}.cedros-login-admin-root .cedros-dashboard__empty,.cedros-login-admin-root .cedros-dashboard__loading{min-height:10rem;color:var(--cebbwf5-login-admin-muted);text-align:center;justify-content:center;align-items:center;gap:.625rem;font-size:.875rem;display:flex}.cedros-login-admin-root .cedros-data-stack{flex-direction:column;gap:1rem;min-width:0;display:flex}.cedros-login-admin-root .cedros-system-settings{width:min(100%, var(--cd-container-settings,45rem))}.cedros-login-admin-root .cedros-auth-settings{width:min(100%, var(--cd-container-settings,56rem))}.cedros-login-admin-root .cedros-data-tabs,.cedros-login-admin-root .cedros-auth-subsection{gap:.75rem;min-width:0;display:grid}.cedros-login-admin-root .cedros-auth-tabs{margin-top:.25rem}.cedros-login-admin-root .cedros-auth-subsection-title{margin:0}.cedros-login-admin-root .cedros-data-tabs__panel{min-width:0}.cedros-login-admin-root .cedros-data__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.cedros-login-admin-root .cedros-data__header-text{flex:1;min-width:0}.cedros-login-admin-root .cedros-data__title{color:var(--cebbwf5-login-admin-fg);margin:0;font-size:1.125rem;font-weight:600;line-height:1.25}.cedros-login-admin-root .cedros-data__subtitle{max-width:60ch;color:var(--cebbwf5-login-admin-muted);margin:.25rem 0 0;font-size:.8125rem;line-height:1.5}.cedros-login-admin-root .cedros-data-actions,.cedros-login-dashboard-card .cedros-data-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.cedros-login-admin-root .cedros-data-tabs__list{border:1px solid var(--cebbwf5-login-admin-border);border-radius:var(--cebbwf5-login-admin-radius);background:color-mix(in srgb, var(--cebbwf5-login-admin-bg) 96%, var(--cebbwf5-login-admin-accent));flex-wrap:wrap;place-self:flex-start start;gap:.1875rem;max-width:100%;margin-bottom:0;padding:.1875rem;display:inline-flex}.cedros-login-admin-root.cedros-data .cedros-data-tabs__tab{border-radius:calc(var(--cebbwf5-login-admin-radius) - 3px);min-height:2rem;color:var(--cebbwf5-login-admin-muted);font:inherit;cursor:pointer;transition:background-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), border-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), box-shadow var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0 .75rem;font-size:.875rem;font-weight:500;display:inline-flex}.cedros-login-admin-root.cedros-data .cedros-data-tabs__tab:hover,.cedros-login-admin-root.cedros-data .cedros-data-tabs__tab[aria-selected=true]{border-radius:calc(var(--cebbwf5-login-admin-radius) - 3px);color:var(--cebbwf5-login-admin-fg)}.cedros-login-admin-root.cedros-data .cedros-data-tabs__tab[aria-selected=true]{border-color:var(--cebbwf5-login-admin-border);background:var(--cebbwf5-login-admin-bg);box-shadow:var(--cebbwf5-login-admin-shadow)}.cedros-login-admin-root.cedros-data .cedros-data-tabs__tab:focus-visible,.cedros-login-admin-root .cedros-data-btn:focus-visible,.cedros-login-dashboard-card .cedros-data-btn:focus-visible,.cedros-login-admin-root .cedros-data-input:focus-visible,.cedros-login-admin-root .cedros-data-dialog__close:focus-visible,.cedros-login-admin-root .cedros-data-row-actions__icon:focus-visible,.cedros-login-admin-root .cedros-data-dialog .cedros-button:focus-visible{border-color:var(--cebbwf5-login-admin-ring);box-shadow:0 0 0 3px color-mix(in srgb, var(--cebbwf5-login-admin-ring) 14%, transparent);outline:none}.cedros-login-admin-root .cedros-data-card,.cedros-login-dashboard-card .cedros-data-card{border:1px solid var(--cebbwf5-login-admin-border);border-radius:var(--cebbwf5-login-admin-radius);background:var(--cebbwf5-login-admin-card-bg);color:var(--cebbwf5-login-admin-fg)}.cedros-login-admin-root .cedros-data-card__header{border-bottom:1px solid var(--cebbwf5-login-admin-border);padding:.9rem 1rem}.cedros-login-admin-root .cedros-data-card__body{padding:.9rem 1rem}.cedros-login-admin-root .cedros-data-card__title{color:var(--cebbwf5-login-admin-fg);font-size:.875rem;font-weight:600}.cedros-login-admin-root .cedros-auth-method-card{padding:0}.cedros-login-admin-root .cedros-auth-method-card-body .cedros-setting-row{background:0 0;border:none;padding:0}.cedros-login-admin-root .cedros-data-field{min-width:0}.cedros-login-admin-root .cedros-data-field__description{color:var(--cebbwf5-login-admin-muted);margin:.375rem 0 0;font-size:.75rem}.cedros-login-admin-root .cedros-data-label{color:var(--cebbwf5-login-admin-fg);font-size:.8125rem;font-weight:500}.cedros-login-admin-root .cedros-data-input{border:1px solid var(--cebbwf5-login-admin-border);border-radius:calc(var(--cebbwf5-login-admin-radius) - 1px);background:var(--cebbwf5-login-admin-input-bg);min-height:2.25rem;color:var(--cebbwf5-login-admin-fg);transition:background-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), border-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), box-shadow var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));font-size:.8125rem}.cedros-login-admin-root .cedros-data-input:hover:not(:disabled),.cedros-login-admin-root select.cedros-data-select.cedros-setting-select:hover:not(:disabled){border-color:var(--cebbwf5-login-admin-ring)}.cedros-login-admin-root .cedros-data-input:disabled,.cedros-login-admin-root select.cedros-data-select.cedros-setting-select:disabled,.cedros-login-admin-root.cedros-data .cedros-data-tabs__tab:disabled{cursor:not-allowed;opacity:.5}.cedros-login-admin-root select.cedros-data-select.cedros-setting-select{border:1px solid var(--cebbwf5-login-admin-border);border-radius:calc(var(--cebbwf5-login-admin-radius) - 1px);background-color:var(--cebbwf5-login-admin-input-bg);width:100%;height:2.25rem;color:var(--cebbwf5-login-admin-fg);font:inherit;transition:background-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), border-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), box-shadow var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));background-image:none;padding:0 .75rem;font-size:.8125rem}.cedros-login-admin-root select.cedros-data-select.cedros-setting-select:focus{box-shadow:none}.cedros-login-admin-root select.cedros-data-select.cedros-setting-select:focus-visible{border-color:var(--cebbwf5-login-admin-ring);box-shadow:0 0 0 3px color-mix(in srgb, var(--cebbwf5-login-admin-ring) 14%, transparent);outline:none}.cedros-login-admin-root .cedros-data-btn,.cedros-login-dashboard-card .cedros-data-btn{border:1px solid var(--cebbwf5-login-admin-border);border-radius:calc(var(--cebbwf5-login-admin-radius) - 1px);background:var(--cebbwf5-login-admin-bg);min-height:2.25rem;color:var(--cebbwf5-login-admin-fg);font:inherit;cursor:pointer;transition:background-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), border-color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), box-shadow var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), color var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1)), transform var(--motion-duration-fast,.16s) var(--motion-ease-standard,cubic-bezier(.16, 1, .3, 1));justify-content:center;align-items:center;gap:.375rem;padding:0 .75rem;font-size:.8125rem;font-weight:500;display:inline-flex}.cedros-login-admin-root .cedros-data-btn--sm,.cedros-login-dashboard-card .cedros-data-btn--sm{min-height:2rem;padding:0 .5rem;font-size:.8125rem}.cedros-login-admin-root .cedros-data-btn--primary,.cedros-login-dashboard-card .cedros-data-btn--primary{border-color:var(--cebbwf5-login-admin-primary);background:var(--cebbwf5-login-admin-primary);color:var(--cebbwf5-login-admin-primary-fg)}.cedros-login-admin-root .cedros-data-btn--secondary,.cedros-login-dashboard-card .cedros-data-btn--secondary{color:var(--cebbwf5-login-admin-fg);background:0 0}.cedros-login-admin-root .cedros-data-btn--danger,.cedros-login-dashboard-card .cedros-data-btn--danger{border-color:var(--cebbwf5-login-admin-error);background:var(--cebbwf5-login-admin-error);color:var(--cebbwf5-login-admin-error-fg)}.cedros-login-admin-root .cedros-data-btn--ghost{background:0 0;border-color:#0000}.cedros-login-admin-root .cedros-data-btn:hover:not(:disabled),.cedros-login-dashboard-card .cedros-data-btn:hover:not(:disabled){box-shadow:var(--cebbwf5-login-admin-shadow);transform:translateY(-1px)}.cedros-login-admin-root .cedros-data-btn--secondary:hover:not(:disabled),.cedros-login-admin-root .cedros-data-btn--ghost:hover:not(:disabled),.cedros-login-dashboard-card .cedros-data-btn--secondary:hover:not(:disabled){background:var(--cebbwf5-login-admin-accent)}.cedros-login-admin-root .cedros-data-btn--primary:hover:not(:disabled),.cedros-login-dashboard-card .cedros-data-btn--primary:hover:not(:disabled){background:color-mix(in srgb, var(--cebbwf5-login-admin-primary) 88%, var(--cebbwf5-login-admin-bg))}.cedros-login-admin-root .cedros-data-btn--danger:hover:not(:disabled),.cedros-login-dashboard-card .cedros-data-btn--danger:hover:not(:disabled){background:color-mix(in srgb, var(--cebbwf5-login-admin-error) 88%, var(--cebbwf5-login-admin-bg))}.cedros-login-admin-root .cedros-data-btn:active:not(:disabled),.cedros-login-dashboard-card .cedros-data-btn:active:not(:disabled){transform:scale(.98)}.cedros-login-admin-root .cedros-data-btn:disabled,.cedros-login-dashboard-card .cedros-data-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}:where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop){--cebbwf5-login-primary:var(--cebbwf5-runtime-action-bg,var(--cebbwf5-primary,#0f172a));--cebbwf5-login-primary-foreground:var(--cebbwf5-runtime-action-fg,var(--cebbwf5-primary-foreground,#f8fafc));--cebbwf5-login-background:var(--cebbwf5-runtime-bg,var(--cebbwf5-background,#fff));--cebbwf5-login-foreground:var(--cebbwf5-runtime-text,var(--cebbwf5-foreground,#020817));--cebbwf5-login-card:var(--cebbwf5-runtime-panel,var(--cebbwf5-card,#fff));--cebbwf5-login-muted:var(--cebbwf5-runtime-accent-soft,var(--cebbwf5-muted,#f1f5f9));--cebbwf5-login-muted-foreground:var(--cebbwf5-runtime-muted,var(--cebbwf5-muted-foreground,#64748b));--cebbwf5-login-accent:var(--cebbwf5-runtime-accent-soft,var(--cebbwf5-accent,#f1f5f9));--cebbwf5-accent-foreground:var(--cebbwf5-login-foreground);--cebbwf5-login-border:var(--cebbwf5-runtime-border,var(--cebbwf5-border,#e2e8f0));--cebbwf5-input:var(--cebbwf5-runtime-border,var(--cebbwf5-border,#e2e8f0));--cebbwf5-input-fill:var(--cebbwf5-login-background);--cebbwf5-login-ring:var(--cebbwf5-runtime-accent,var(--cebbwf5-ring,#020817));--cebbwf5-login-radius:var(--cebbwf5-radius,.5rem);--cebbwf5-radius-compact:var(--cebbwf5-radius-xs,.375rem);--cebbwf5-radius-control:var(--cebbwf5-radius-sm,var(--cebbwf5-login-radius));--cebbwf5-radius-field:var(--cebbwf5-radius-md,.75rem);--cebbwf5-radius-card:var(--cebbwf5-radius-lg,1rem);--cebbwf5-radius-overlay:var(--cebbwf5-radius-xl,1.5rem);--cebbwf5-destructive:var(--cebbwf5-login-error);--cebbwf5-destructive-foreground:var(--cebbwf5-login-foreground);--cebbwf5-login-warning:var(--cebbwf5-runtime-warning,var(--cebbwf5-warning,#f59f0a));--cebbwf5-warning-light:color-mix(in srgb, var(--cebbwf5-login-warning) 14%, transparent);--cebbwf5-login-success:var(--cebbwf5-success-light,var(--cebbwf5-success,#21c45d));--cebbwf5-login-success-soft:color-mix(in srgb, var(--cebbwf5-login-success) 14%, transparent);--cebbwf5-destructive-light:color-mix(in srgb, var(--cebbwf5-destructive) 12%, transparent);--cebbwf5-login-error:var(--cebbwf5-runtime-error,var(--cebbwf5-error,#ef4444));--cebbwf5-login-info:var(--cebbwf5-info,#2563eb);--cebbwf5-login-link:var(--cebbwf5-runtime-accent,var(--cebbwf5-link,#2563eb));--cebbwf5-login-text:var(--cebbwf5-login-foreground);--cebbwf5-ease-out:cubic-bezier(.16, 1, .3, 1);--cebbwf5-ease-in-out:cubic-bezier(.65, 0, .35, 1);--cebbwf5-ease-spring:cubic-bezier(.34, 1.56, .64, 1);--cebbwf5-duration-fast:.15s;--cebbwf5-duration-normal:.2s;--cebbwf5-duration-slow:.3s;--cebbwf5-login-shadow-xs:var(--cebbwf5-shadow-sm,0 1px 2px 0 #0000000d);--cebbwf5-login-shadow-sm:var(--cebbwf5-shadow-sm,0 1px 2px 0 #0000000d, 0 1px 1px -1px #00000012);--cebbwf5-login-shadow-md:var(--cebbwf5-shadow-md,0 2px 4px -1px #0000000f, 0 4px 10px -2px #00000014);--cebbwf5-login-shadow-lg:var(--cebbwf5-shadow-lg,0 4px 8px -2px #00000014, 0 12px 24px -6px #0000001f);--cebbwf5-login-shadow-overlay:var(--cebbwf5-shadow-lg,0 8px 16px -6px #0000001f, 0 25px 50px -12px #00000040);--cebbwf5-edge-highlight:inset 0 1px 0 0 #ffffff1a;--cebbwf5-focus-halo:0 0 0 3px color-mix(in srgb, var(--cebbwf5-login-ring) 15%, transparent);--cebbwf5-surface-sheen:linear-gradient(180deg, color-mix(in srgb, var(--cebbwf5-login-foreground) 2%, transparent), transparent 42%)}:where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop).cebbwf5-dark,:where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop).dark,:where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop)[data-theme=dark],:where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop)[data-color-mode=dark],:where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop)[data-color-scheme=dark],.cebbwf5-dark :where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop),.dark :where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop),[data-theme=dark] :where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop),[data-color-mode=dark] :where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop),[data-color-scheme=dark] :where(.cedros-login-theme,.cedros-login-admin-root,.cedros-login-form,.cedros-login-form-shell,.cedros-auth-form,.cedros-account-workspace-block,.cedros-dashboard,.cedros-login-dashboard-card,.cedros-modal-backdrop){--cebbwf5-login-primary:var(--cebbwf5-runtime-action-bg,var(--cebbwf5-primary,#f8fafc));--cebbwf5-login-primary-foreground:var(--cebbwf5-runtime-action-fg,var(--cebbwf5-primary-foreground,#0f172a));--cebbwf5-login-background:var(--cebbwf5-runtime-bg,var(--cebbwf5-background,#020817));--cebbwf5-login-foreground:var(--cebbwf5-runtime-text,var(--cebbwf5-foreground,#f8fafc));--cebbwf5-login-card:var(--cebbwf5-runtime-panel,var(--cebbwf5-card,#020817));--cebbwf5-login-muted:var(--cebbwf5-runtime-accent-soft,var(--cebbwf5-muted,#1e293b));--cebbwf5-login-muted-foreground:var(--cebbwf5-runtime-muted,var(--cebbwf5-muted-foreground,#94a3b8));--cebbwf5-login-accent:var(--cebbwf5-runtime-accent-soft,var(--cebbwf5-accent,#1e293b));--cebbwf5-accent-foreground:var(--cebbwf5-login-foreground);--cebbwf5-login-border:var(--cebbwf5-runtime-border,var(--cebbwf5-border,#1e293b));--cebbwf5-input:var(--cebbwf5-runtime-border,var(--cebbwf5-border,#1e293b));--cebbwf5-input-fill:var(--cebbwf5-login-background);--cebbwf5-login-ring:var(--cebbwf5-runtime-accent,var(--cebbwf5-ring,#cbd5e1));--cebbwf5-destructive:var(--cebbwf5-login-error);--cebbwf5-destructive-foreground:var(--cebbwf5-login-foreground);--cebbwf5-destructive-light:color-mix(in srgb, var(--cebbwf5-destructive) 12%, transparent);--cebbwf5-login-warning:var(--cebbwf5-runtime-warning,var(--cebbwf5-warning,#f59f0a));--cebbwf5-warning-light:color-mix(in srgb, var(--cebbwf5-login-warning) 14%, transparent);--cebbwf5-login-success:var(--cebbwf5-success-dark,var(--cebbwf5-success,#21c45d));--cebbwf5-login-success-soft:color-mix(in srgb, var(--cebbwf5-login-success) 14%, transparent);--cebbwf5-login-error:var(--cebbwf5-runtime-error,var(--cebbwf5-error,#7f1d1d));--cebbwf5-login-info:var(--cebbwf5-info,#3b82f6);--cebbwf5-login-link:var(--cebbwf5-runtime-accent,var(--cebbwf5-link,#3b82f6));--cebbwf5-login-text:var(--cebbwf5-login-foreground);--cebbwf5-login-shadow-xs:var(--cebbwf5-shadow-sm,0 1px 2px 0 #0000004d);--cebbwf5-login-shadow-sm:var(--cebbwf5-shadow-sm,0 1px 2px 0 #0000004d, 0 1px 1px -1px #0006);--cebbwf5-login-shadow-md:var(--cebbwf5-shadow-md,0 2px 4px -1px #00000059, 0 4px 10px -2px #00000073);--cebbwf5-login-shadow-lg:var(--cebbwf5-shadow-lg,0 4px 8px -2px #00000073, 0 12px 24px -6px #0000008c);--cebbwf5-login-shadow-overlay:var(--cebbwf5-shadow-lg,0 8px 16px -6px #00000080, 0 25px 50px -12px #000000b3);--cebbwf5-edge-highlight:inset 0 1px 0 0 #ffffff0f;--cebbwf5-surface-sheen:linear-gradient(180deg, color-mix(in srgb, var(--cebbwf5-login-foreground) 3%, transparent), transparent 42%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:where(.cedros-login-admin-root,.cedros-login-admin-root *,.cedros-login-form,.cedros-login-form *,.cedros-login-form-shell,.cedros-login-form-shell *,.cedros-auth-form,.cedros-auth-form *,.cedros-account-workspace-block,.cedros-account-workspace-block *,.cedros-dashboard,.cedros-dashboard *,.cedros-login-dashboard-card,.cedros-login-dashboard-card *,.cedros-modal-backdrop,.cedros-modal-backdrop *){box-sizing:border-box;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.cedros-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes cedros-spin{to{transform:rotate(360deg)}}@keyframes cedros-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes cedros-fade-in{0%{opacity:0}to{opacity:1}}@keyframes cedros-fade-in-scale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes cedros-slide-up-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes cedros-slide-down-fade{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes cedros-shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}@keyframes cedros-check-draw{to{stroke-dashoffset:0}}@keyframes cedros-pop{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes cedros-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes cedros-modal-in{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes cedros-success-pop{0%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){[class*=cedros-],[class*=cedros-]:before,[class*=cedros-]:after,[class*=cedros-] svg *{scroll-behavior:auto!important;transition-duration:.001ms!important;transition-delay:0s!important;animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}.cedros-button{white-space:nowrap;border-radius:var(--cebbwf5-radius-control);height:2.5rem;transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), box-shadow var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), opacity var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);cursor:pointer;border:1px solid #0000;outline:none;justify-content:center;align-items:center;gap:.5rem;padding:0 1rem;font-size:.875rem;font-weight:500;line-height:1.25rem;display:inline-flex}.cedros-button:hover,.cedros-button:focus-visible,.cedros-button:active{will-change:transform}.cedros-directional-panel{outline:none;width:100%;min-width:0}.cedros-collapsible{display:grid}.cedros-collapsible__inner{min-height:0;overflow:hidden}.cedros-button:focus-visible{outline:2px solid var(--cebbwf5-login-ring);outline-offset:2px}.cedros-button:active:not(:disabled){transform:translateY(0)scale(.98)}.cedros-button:disabled{pointer-events:none;opacity:.5}.cedros-button-sm{border-radius:calc(var(--cebbwf5-login-radius) - 2px);height:2.25rem;padding:0 .75rem;font-size:.75rem}.cedros-button-md{height:2.5rem;padding:0 1rem}.cedros-button-lg{height:2.75rem;padding:0 2rem}.cedros-button-primary{background-color:var(--cebbwf5-login-primary);color:var(--cebbwf5-login-primary-foreground);box-shadow:var(--cebbwf5-edge-highlight), var(--cebbwf5-login-shadow-xs)}.cedros-button-primary:hover:not(:disabled){background-color:color-mix(in srgb, var(--cebbwf5-login-primary) 85%, var(--cebbwf5-login-primary-foreground));box-shadow:var(--cebbwf5-edge-highlight), var(--cebbwf5-login-shadow-md);transform:translateY(-1px)}.cedros-button-primary:active:not(:disabled){box-shadow:var(--cebbwf5-edge-highlight), var(--cebbwf5-login-shadow-xs)}.cedros-button-secondary{background-color:var(--cebbwf5-login-muted);color:var(--cebbwf5-accent-foreground)}.cedros-button-secondary:hover:not(:disabled){background-color:var(--cebbwf5-login-accent,#dbe6f0)}.cedros-button-outline{border-color:var(--cebbwf5-input);background-color:var(--cebbwf5-login-background);color:var(--cebbwf5-login-foreground);box-shadow:var(--cebbwf5-login-shadow-xs)}.cedros-button-outline:hover:not(:disabled){background-color:var(--cebbwf5-login-accent);border-color:color-mix(in srgb, var(--cebbwf5-login-ring) 18%, var(--cebbwf5-input));color:var(--cebbwf5-accent-foreground);box-shadow:var(--cebbwf5-login-shadow-sm)}.cedros-button-ghost{color:var(--cebbwf5-login-foreground);background-color:#0000}.cedros-button-ghost:hover:not(:disabled){background-color:var(--cebbwf5-login-accent);color:var(--cebbwf5-accent-foreground)}.cedros-button-dark-navbar{color:var(--cebbwf5-login-primary-foreground);border:1px solid color-mix(in srgb, var(--cebbwf5-login-primary-foreground) 30%, transparent);background-color:#0000}.cedros-button-dark-navbar:hover:not(:disabled){background-color:color-mix(in srgb, var(--cebbwf5-login-primary-foreground) 10%, transparent);border-color:color-mix(in srgb, var(--cebbwf5-login-primary-foreground) 50%, transparent)}.cedros-button-social{background-color:var(--cebbwf5-login-card);color:var(--cebbwf5-login-foreground);border-color:var(--cebbwf5-login-border);box-shadow:var(--cebbwf5-login-shadow-xs)}.cedros-button-social:hover:not(:disabled){background-color:var(--cebbwf5-login-muted);border-color:color-mix(in srgb, var(--cebbwf5-login-ring) 15%, var(--cebbwf5-login-border));box-shadow:var(--cebbwf5-login-shadow-sm)}.cedros-button-social-outline{color:var(--cebbwf5-login-foreground);border-color:var(--cebbwf5-login-border);background-color:#0000}.cedros-button-social-outline:hover:not(:disabled){background-color:color-mix(in srgb, var(--cebbwf5-login-foreground) 5%, transparent)}.cedros-button-icon{flex-shrink:0}.cedros-form{flex-direction:column;gap:1.5rem;display:flex}.cedros-form-field{flex-direction:column;gap:.5rem;display:flex}.cedros-signup-plans{line-height:1.5}.cedros-signup-availability{border:1px solid color-mix(in srgb, var(--cebbwf5-login-info) 24%, var(--cebbwf5-login-border));border-radius:var(--cebbwf5-radius-field);background:color-mix(in srgb, var(--cebbwf5-login-info) 7%, transparent);color:var(--cebbwf5-login-muted-foreground);align-items:flex-start;gap:.625rem;padding:.75rem .875rem;font-size:.8125rem;line-height:1.45;display:flex}.cedros-signup-availability strong{color:var(--cebbwf5-login-foreground);font-weight:600}.cedros-signup-availability-dot{background:var(--cebbwf5-login-info);width:.5rem;height:.5rem;box-shadow:0 0 0 3px color-mix(in srgb, var(--cebbwf5-login-info) 14%, transparent);border-radius:9999px;flex:none;margin-top:.3125rem}.cedros-signup-availability[data-full=true]{border-color:color-mix(in srgb, var(--cebbwf5-login-warning) 28%, var(--cebbwf5-login-border));background:var(--cebbwf5-warning-light)}.cedros-signup-availability[data-full=true] .cedros-signup-availability-dot{background:var(--cebbwf5-login-warning);box-shadow:0 0 0 3px var(--cebbwf5-warning-light)}.cedros-label{color:var(--cebbwf5-login-foreground);font-size:.875rem;font-weight:500;line-height:1}.cedros-label-row{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.cedros-label-row .cedros-label{margin-bottom:0}.cedros-optional{color:var(--cebbwf5-login-muted-foreground);font-weight:400}.cedros-input{border:1px solid var(--cebbwf5-input);border-radius:var(--cebbwf5-radius-field);width:100%;height:2.5rem;color:var(--cebbwf5-login-foreground);transition:border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), box-shadow var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);box-shadow:var(--cebbwf5-login-shadow-xs);background-color:#0000;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;display:flex}.cedros-input::placeholder{color:var(--cebbwf5-login-muted-foreground)}.cedros-input:hover:not(:disabled):not(:focus){border-color:color-mix(in srgb, var(--cebbwf5-login-ring) 25%, var(--cebbwf5-input))}.cedros-input:focus,.cedros-input:focus-visible{border-color:var(--cebbwf5-login-ring);box-shadow:var(--cebbwf5-focus-halo);outline:none}.cedros-input[aria-invalid=true]{border-color:var(--cebbwf5-destructive)}.cedros-input[aria-invalid=true]:focus,.cedros-input[aria-invalid=true]:focus-visible{border-color:var(--cebbwf5-destructive);box-shadow:0 0 0 3px color-mix(in srgb, var(--cebbwf5-destructive) 15%, transparent)}.cedros-input:disabled{cursor:not-allowed;opacity:.5}.cebbwf5-dark .cedros-input,.dark .cedros-input,[data-theme=dark] .cedros-input,[data-color-mode=dark] .cedros-input,[data-color-scheme=dark] .cedros-input{background-color:color-mix(in srgb, var(--cebbwf5-login-muted) 35%, transparent)}.cedros-input:-webkit-autofill{-webkit-text-fill-color:var(--cebbwf5-login-foreground);caret-color:var(--cebbwf5-login-foreground);box-shadow:inset 0 0 0 1000px var(--cebbwf5-login-background), var(--cebbwf5-login-shadow-xs)}.cedros-input:-webkit-autofill:hover{-webkit-text-fill-color:var(--cebbwf5-login-foreground);caret-color:var(--cebbwf5-login-foreground);box-shadow:inset 0 0 0 1000px var(--cebbwf5-login-background), var(--cebbwf5-login-shadow-xs)}.cedros-input:-webkit-autofill:focus{-webkit-text-fill-color:var(--cebbwf5-login-foreground);caret-color:var(--cebbwf5-login-foreground);box-shadow:inset 0 0 0 1000px var(--cebbwf5-login-background), var(--cebbwf5-focus-halo)}.cedros-input[type=file]{background:0 0;border:none;padding:0;font-size:.875rem}.cedros-input-error{color:var(--cebbwf5-destructive);font-size:.875rem;font-weight:500}p.cedros-input-error{margin:.5rem 0 0}.cedros-input-description{color:var(--cebbwf5-login-muted-foreground);font-size:.875rem}.cedros-password-wrapper{align-items:center;display:flex;position:relative}.cedros-password-wrapper .cedros-input{padding-right:2.5rem}.cedros-password-toggle{border-radius:calc(var(--cebbwf5-login-radius) - 2px);color:var(--cebbwf5-login-muted-foreground);cursor:pointer;transition:color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);background:0 0;border:none;padding:.25rem;position:absolute;right:.5rem}.cedros-password-toggle:hover{color:var(--cebbwf5-login-foreground);background-color:var(--cebbwf5-login-muted)}.cedros-password-toggle:active{transform:scale(.95)}.cedros-password-meter{margin-top:.5rem}.cedros-password-strength{align-items:center;gap:.5rem;display:flex}.cedros-strength-bar{background-color:var(--cebbwf5-login-muted);border-radius:2px;flex:1;height:4px;overflow:hidden}.cedros-strength-fill{background-color:var(--cebbwf5-login-warning);height:100%;transition:width var(--cebbwf5-duration-slow) var(--cebbwf5-ease-out), background-color var(--cebbwf5-duration-normal) var(--cebbwf5-ease-out)}.cedros-strength-fill[data-valid=true]{background-color:var(--cebbwf5-login-success)}.cedros-strength-label{text-align:right;text-transform:capitalize;min-width:3.5ch;color:var(--cebbwf5-login-muted-foreground);flex-shrink:0;font-size:.75rem}.cedros-strength-label[data-valid=true]{color:var(--cebbwf5-login-success);font-weight:600}.cedros-password-requirements-title{color:var(--cebbwf5-login-foreground);margin:.625rem 0 .375rem;font-size:.75rem;font-weight:500}.cedros-password-requirements{gap:.3125rem;margin:0;padding:0;font-size:.75rem;line-height:1.4;list-style:none;display:grid}.cedros-password-requirement{color:var(--cebbwf5-login-foreground);transition:color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);align-items:center;gap:.5rem;display:flex}.cedros-password-requirement[data-met=true]{color:var(--cebbwf5-login-muted-foreground)}.cedros-requirement-icon{color:var(--cebbwf5-login-muted-foreground);transition:color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);flex-shrink:0;display:inline-flex}.cedros-password-requirement[data-met=true] .cedros-requirement-icon{color:var(--cebbwf5-login-success)}.cedros-requirement-text{min-width:0}.cedros-error{border-radius:var(--cebbwf5-login-radius);background-color:color-mix(in srgb, var(--cebbwf5-destructive) 10%, transparent);color:var(--cebbwf5-destructive);animation:cedros-shake .4s var(--cebbwf5-ease-out);align-items:flex-start;gap:.5rem;padding:.75rem;font-size:.875rem;display:flex}.cedros-error-icon{flex-shrink:0;margin-top:.125rem}.cedros-error-message{flex:1}.cedros-error-boundary{min-height:18rem;color:var(--cebbwf5-login-foreground);justify-content:center;align-items:center;padding:2rem;display:flex}.cedros-error-boundary-content{text-align:center;justify-items:center;gap:.75rem;max-width:28rem;display:grid}.cedros-error-boundary-icon{color:var(--cebbwf5-destructive)}.cedros-error-boundary-title{color:var(--cebbwf5-login-foreground);margin:0;font-size:1.125rem;font-weight:600}.cedros-error-boundary-message{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem;line-height:1.5}.cedros-error-boundary-details{width:100%;color:var(--cebbwf5-login-muted-foreground);text-align:left;font-size:.8125rem}.cedros-error-boundary-details pre{border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);background:var(--cebbwf5-login-muted);max-height:12rem;color:var(--cebbwf5-login-foreground);white-space:pre-wrap;padding:.75rem;overflow:auto}.cedros-error-dismiss{border-radius:calc(var(--cebbwf5-login-radius) - 2px);color:currentColor;cursor:pointer;opacity:.7;transition:opacity var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);background:0 0;border:none;flex-shrink:0;padding:.125rem}.cedros-error-dismiss:hover{opacity:1}.cedros-error-dismiss:active{transform:scale(.9)}.cedros-link{color:var(--cebbwf5-login-foreground);font:inherit;cursor:pointer;text-underline-offset:4px;transition:opacity var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);background:0 0;border:none;padding:0;font-weight:500;text-decoration:underline}.cedros-link:hover{opacity:.7}.cedros-link:focus-visible{outline:2px solid var(--cebbwf5-login-ring);outline-offset:2px;border-radius:2px}.cedros-link-sm{font-size:.875rem}.cedros-link-muted{color:var(--cebbwf5-login-muted-foreground)}.cedros-link-accent{color:var(--cebbwf5-login-link)}.cedros-link-accent:hover{opacity:.8}.cedros-form-footer{text-align:center;color:var(--cebbwf5-login-muted-foreground);margin:1rem 0 0;font-size:.875rem}.cedros-forgot-password-link{text-align:right;margin-top:.25rem;font-size:.8125rem;display:block}.cedros-forgot-password-link:disabled{opacity:.6;cursor:not-allowed}.cedros-instant-link-success{text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:2rem 1rem;display:flex}.cedros-checkbox-field{margin-top:.5rem;margin-bottom:.5rem}.cedros-checkbox-label{cursor:pointer;color:var(--cebbwf5-login-foreground);align-items:flex-start;gap:.5rem;font-size:.875rem;display:flex}.cedros-checkbox{width:1rem;height:1rem;accent-color:var(--cebbwf5-login-primary);cursor:pointer;transition:transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-spring);flex-shrink:0;margin-top:.125rem}.cedros-checkbox:checked{animation:cedros-pop .2s var(--cebbwf5-ease-out)}.cedros-checkbox:disabled{cursor:not-allowed;opacity:.5}.cedros-checkbox-text{line-height:1.4}.cedros-checkbox-text .cedros-link{font-size:inherit}.cedros-required{color:var(--cebbwf5-destructive);margin-left:.125rem}.cedros-divider{align-items:center;gap:1rem;margin:1rem 0;display:flex}.cedros-divider:before,.cedros-divider:after{content:\"\";flex:1;height:1px}.cedros-divider:before{background:linear-gradient(to right, transparent, var(--cebbwf5-login-border))}.cedros-divider:after{background:linear-gradient(to left, transparent, var(--cebbwf5-login-border))}.cedros-divider span{color:var(--cebbwf5-login-muted-foreground);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.cedros-social-buttons{flex-direction:column;gap:.75rem;display:flex}.cedros-social-buttons .cedros-button{width:100%}.cedros-social-icon{color:currentColor;flex-shrink:0;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;line-height:1;display:inline-flex}.cedros-social-icon svg{width:1.25rem;height:1.25rem;display:block}.cedros-login-button-block{width:min(100%,24rem);margin-inline:auto;display:flex}.cedros-login-button-block--start{justify-content:flex-start}.cedros-login-button-block--center{justify-content:center}.cedros-login-button-block--end{justify-content:flex-end}.cedros-login-button{border-radius:var(--cebbwf5-auth-radius,var(--cebbwf5-login-radius,.5rem));min-height:2.5rem;transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), box-shadow var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);border:1px solid #0000;justify-content:center;align-items:center;padding:0 1rem;font-size:.875rem;font-weight:600;line-height:1.25rem;text-decoration:none;display:inline-flex}.cedros-login-button--primary{background:var(--cebbwf5-runtime-action-bg,var(--cebbwf5-login-primary));color:var(--cebbwf5-runtime-action-fg,var(--cebbwf5-login-primary-foreground));box-shadow:var(--cebbwf5-login-shadow-xs)}.cedros-login-button--secondary{border-color:var(--cebbwf5-runtime-border,var(--cebbwf5-login-border));background:var(--cebbwf5-runtime-panel,var(--cebbwf5-login-card));color:var(--cebbwf5-runtime-text,var(--cebbwf5-login-foreground))}.cedros-login-button--link{min-height:auto;color:var(--cebbwf5-runtime-accent,var(--cebbwf5-login-link));text-underline-offset:.15em;background:0 0;padding:0;text-decoration:underline}.cedros-login-button:hover{border-color:color-mix(in srgb, var(--cebbwf5-runtime-text,var(--cebbwf5-login-foreground)) 12%, var(--cebbwf5-runtime-border,var(--cebbwf5-login-border)))}.cedros-login-button--link:hover{border-color:#0000}.cedros-login-button:focus-visible{outline:2px solid var(--cebbwf5-runtime-accent,var(--cebbwf5-login-ring));outline-offset:2px}.cedros-tabs{border-bottom:1px solid var(--cebbwf5-login-border);margin-bottom:1.5rem;display:flex}.cedros-tab{border-radius:calc(var(--cebbwf5-login-radius) - 2px) calc(var(--cebbwf5-login-radius) - 2px) 0 0;color:var(--cebbwf5-login-muted-foreground);cursor:pointer;transition:color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:.75rem 1rem;font-size:.875rem;font-weight:500;position:relative}.cedros-tab:hover{color:var(--cebbwf5-login-foreground);background-color:color-mix(in srgb, var(--cebbwf5-login-muted) 60%, transparent)}.cedros-tab:after{content:\"\";background-color:var(--cebbwf5-login-link);height:2px;transition:transform var(--cebbwf5-duration-normal) var(--cebbwf5-ease-out);border-radius:999px;position:absolute;bottom:-2px;left:.75rem;right:.75rem;transform:scaleX(0)}.cedros-tab-active{color:var(--cebbwf5-login-foreground)}.cedros-tab-active:after{transform:scaleX(1)}.cedros-modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:cedros-fade-in var(--cebbwf5-duration-normal) var(--cebbwf5-ease-out);background-color:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.cedros-modal{background-color:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-radius-overlay);width:100%;max-width:24rem;max-height:calc(100vh - 2rem);box-shadow:var(--cebbwf5-login-shadow-overlay);animation:cedros-modal-in var(--cebbwf5-duration-slow) var(--cebbwf5-ease-out);overflow-y:auto}.cedros-modal:focus{outline:none}.cedros-modal-header{border-bottom:1px solid var(--cebbwf5-login-border);justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.cedros-modal-title{color:var(--cebbwf5-login-foreground);margin:0;font-size:1.125rem;font-weight:600}.cedros-modal-close{color:var(--cebbwf5-login-muted-foreground);cursor:pointer;border-radius:var(--cebbwf5-login-radius);transition:color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);background:0 0;border:none;padding:.25rem}.cedros-modal-close:hover{color:var(--cebbwf5-login-foreground);background-color:var(--cebbwf5-login-muted)}.cedros-modal-close:active{transform:scale(.9)}.cedros-modal-content,.cedros-modal-body{padding:1.5rem}.cedros-confirm-dialog{background:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-radius-overlay);width:100%;max-width:26rem;box-shadow:var(--cebbwf5-login-shadow-overlay);animation:cedros-modal-in var(--cebbwf5-duration-slow) var(--cebbwf5-ease-out);flex-direction:column;gap:.5rem;padding:1.5rem;display:flex}.cedros-confirm-dialog:focus{outline:none}.cedros-confirm-dialog__title{letter-spacing:-.01em;color:var(--cebbwf5-login-foreground);margin:0;font-size:1.0625rem;font-weight:600}.cedros-confirm-dialog__description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem;line-height:1.5}.cedros-confirm-dialog__actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.cedros-device-link-dialog{background:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:calc(var(--cebbwf5-login-radius) + 2px);width:100%;max-width:28rem;box-shadow:var(--cebbwf5-login-shadow-overlay);animation:cedros-modal-in var(--cebbwf5-duration-slow) var(--cebbwf5-ease-out);flex-direction:column;gap:.875rem;padding:1.5rem;display:flex}.cedros-device-link-dialog__title{color:var(--cebbwf5-login-foreground);margin:0;font-size:1.0625rem;font-weight:600}.cedros-device-link-dialog__description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem;line-height:1.5}.cedros-device-link-dialog__actions,.cedros-device-link-dialog__signin,.cedros-device-link-dialog__email-form{flex-direction:column;gap:1rem;display:flex}.cedros-device-link-dialog__status{color:var(--cebbwf5-login-muted-foreground);align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.cedros-device-link-dialog__secondary-actions{justify-content:flex-end;display:flex}.wallet-adapter-modal{background:#00000080!important}.wallet-adapter-modal-wrapper{background:var(--cebbwf5-login-card)!important;border:1px solid var(--cebbwf5-login-border)!important;box-shadow:var(--cebbwf5-login-shadow-overlay)!important;border-radius:16px!important;max-width:380px!important;font-family:inherit!important}.wallet-adapter-modal-title{color:#0000!important;padding:32px 24px 20px!important;font-family:inherit!important;font-size:0!important;line-height:0!important}.wallet-adapter-modal-title:after{content:\"Sign in with Solana\";color:var(--cebbwf5-login-foreground);font-size:20px;font-weight:600;line-height:1.4}.wallet-adapter-modal-button-close{background:var(--cebbwf5-login-muted)!important;border-radius:8px!important;width:32px!important;height:32px!important;padding:6px!important;transition:background .15s!important;top:16px!important;right:16px!important}.wallet-adapter-modal-button-close:hover{background:var(--cebbwf5-login-accent)!important}.wallet-adapter-modal-button-close svg{fill:var(--cebbwf5-login-muted-foreground)!important;width:14px!important;height:14px!important}.wallet-adapter-modal-list{flex-direction:column!important;gap:4px!important;padding:0 16px 8px!important;display:flex!important}.wallet-adapter-modal-list .wallet-adapter-button{color:var(--cebbwf5-login-foreground)!important;background:var(--cebbwf5-login-muted)!important;border:1px solid var(--cebbwf5-login-border)!important;border-radius:10px!important;height:auto!important;padding:10px 14px!important;font-family:inherit!important;font-size:15px!important;font-weight:500!important;transition:background .15s,border-color .15s!important}.wallet-adapter-modal-list .wallet-adapter-button:not([disabled]):hover{background:var(--cebbwf5-login-accent)!important;border-color:var(--cebbwf5-login-ring)!important}.wallet-adapter-modal-list .wallet-adapter-button-start-icon,.wallet-adapter-modal-list .wallet-adapter-button-end-icon{width:28px!important;height:28px!important}.wallet-adapter-modal-list .wallet-adapter-button span{text-transform:uppercase!important;letter-spacing:.04em!important;color:var(--cebbwf5-login-muted-foreground)!important;opacity:1!important;font-size:12px!important;font-weight:500!important}.wallet-adapter-modal-list-more{color:var(--cebbwf5-login-muted-foreground)!important;padding:8px 24px 16px!important;font-family:inherit!important;font-size:14px!important}.wallet-adapter-modal-list-more svg{fill:var(--cebbwf5-login-muted-foreground)!important}.wallet-adapter-modal-middle{padding:0 16px 20px!important}.wallet-adapter-modal-middle-button{background:var(--cebbwf5-login-muted)!important;color:var(--cebbwf5-login-foreground)!important;border-radius:10px!important;padding:12px!important;font-family:inherit!important;font-size:15px!important;font-weight:500!important}.cedros-user-menu{position:relative}.cedros-user-button{border:1px solid var(--cebbwf5-login-border);background:0 0;align-items:center;gap:.5rem;display:flex}.cedros-user-avatar{-o-object-fit:cover;object-fit:cover;border-radius:50%;width:1.5rem;height:1.5rem}.cedros-user-avatar-placeholder{background-color:var(--cebbwf5-login-primary);width:1.5rem;height:1.5rem;color:var(--cebbwf5-login-primary-foreground);border-radius:50%;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:flex}.cedros-user-name{text-overflow:ellipsis;white-space:nowrap;max-width:8rem;overflow:hidden}.cedros-dropdown{background-color:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);min-width:10rem;box-shadow:var(--cebbwf5-login-shadow-md);opacity:0;visibility:hidden;transform-origin:100% 0;transition:opacity var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), visibility var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-normal) var(--cebbwf5-ease-spring);margin-top:.25rem;position:absolute;top:100%;right:0;transform:translateY(-4px)scale(.98)}.cedros-user-menu:focus-within .cedros-dropdown,.cedros-user-menu:hover .cedros-dropdown,.cedros-dropdown-open{opacity:1;visibility:visible;transform:translateY(0)scale(1)}.cedros-dropdown-item{text-align:left;width:100%;color:var(--cebbwf5-login-foreground);cursor:pointer;transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);background:0 0;border:none;padding:.5rem .75rem;font-size:.875rem;display:block}.cedros-dropdown-item:hover,.cedros-dropdown-item-focused{background-color:var(--cebbwf5-login-muted)}.cedros-dropdown-item:active{background-color:var(--cebbwf5-login-accent)}.cedros-dropdown-item-danger{color:var(--cebbwf5-destructive)}.cedros-dropdown-item-danger:hover{background-color:color-mix(in srgb, var(--cebbwf5-destructive) 10%, transparent)}.cedros-dropdown-icon{align-items:center;margin-right:.5rem;display:inline-flex}.cedros-dropdown-divider{background-color:var(--cebbwf5-login-border);height:1px;margin:.25rem 0}.cedros-spinner{animation:.8s linear infinite cedros-spin}.cedros-spinner-track,.cedros-spinner-head{transform-origin:50%}.cedros-spinner-head{color:var(--cebbwf5-login-link)}.cedros-login-form{width:100%}.cedros-login-form>.cedros-form-field,.cedros-login-form>.cedros-signup-availability{margin-bottom:1.5rem}.cedros-login-form>*{animation:cedros-slide-up-fade .35s var(--cebbwf5-ease-out) backwards}.cedros-login-form>:nth-child(2){animation-delay:45ms}.cedros-login-form>:nth-child(3){animation-delay:90ms}.cedros-login-form>:nth-child(4){animation-delay:.135s}.cedros-login-form>:nth-child(n+5){animation-delay:.18s}.cedros-login-form-shell{flex-direction:column;gap:.75rem;width:100%;display:flex}.cedros-login-session-status{text-align:center;flex-direction:column;align-items:center;gap:.75rem;width:100%;padding:1.5rem 1rem;display:flex}.cedros-login-session-title{color:var(--cebbwf5-login-foreground);margin:0;font-size:1.125rem;font-weight:600;line-height:1.4}.cedros-login-session-message{color:var(--cebbwf5-login-muted-foreground);overflow-wrap:anywhere;margin:0;font-size:.875rem;line-height:1.5}.cedros-login-session-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;width:100%;display:flex}.cedros-forgot-password-form,.cedros-reset-password-form{flex-direction:column;gap:1.5rem;width:100%;max-width:24rem;margin:0 auto;display:flex}.cedros-forgot-password-form .cedros-form-actions,.cedros-reset-password-form .cedros-form-actions{margin-top:0}.cedros-forgot-password-success,.cedros-reset-password-success{text-align:center;animation:cedros-slide-up-fade .3s var(--cebbwf5-ease-out) backwards;flex-direction:column;align-items:center;gap:1rem;padding:2rem 1rem;display:flex}.cedros-success-icon{color:var(--cebbwf5-login-success);box-shadow:0 0 0 8px var(--cebbwf5-login-success-soft,transparent);background-color:var(--cebbwf5-login-success-soft,transparent);animation:cedros-success-pop .45s var(--cebbwf5-ease-out) backwards;border-radius:50%;animation-delay:.1s}.cedros-success-icon path{stroke-dasharray:30;stroke-dashoffset:30px;animation:cedros-check-draw .35s var(--cebbwf5-ease-out) .35s forwards}.cedros-success-title{color:var(--cebbwf5-login-foreground);margin:0;font-size:1.25rem;font-weight:600}.cedros-success-message{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem}.cedros-form-header{text-align:center}.cedros-form-title{color:var(--cebbwf5-login-foreground);margin:0 0 .5rem;font-size:1.25rem;font-weight:600}.cedros-form-subtitle{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem}.cedros-form-actions{flex-direction:column;gap:.75rem;margin-top:1.5rem;display:flex}.cedros-button-full{width:100%}.cedros-member-list{width:100%;overflow-x:auto}.cedros-member-list-loading,.cedros-member-list-empty{color:var(--cebbwf5-login-muted-foreground);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:2rem;display:flex}.cedros-member-table{border-collapse:collapse;width:100%;font-size:.875rem}.cedros-member-table th{text-align:left;color:var(--cebbwf5-login-muted-foreground);border-bottom:1px solid var(--cebbwf5-login-border);background:var(--cebbwf5-login-muted);padding:.75rem 1rem;font-weight:500}.cedros-member-row{border-bottom:1px solid var(--cebbwf5-login-border);transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out)}.cedros-member-row:hover{background:var(--cebbwf5-login-muted)}.cedros-member-row-current{background:color-mix(in srgb, var(--cebbwf5-login-link) 8%, transparent)}.cedros-member-row td{vertical-align:middle;padding:.75rem 1rem}.cedros-member-info{align-items:center;gap:.75rem;display:flex}.cedros-member-avatar{-o-object-fit:cover;object-fit:cover;border-radius:50%;flex-shrink:0;width:40px;height:40px}.cedros-member-avatar-placeholder{background:var(--cebbwf5-login-primary);width:40px;height:40px;color:var(--cebbwf5-login-primary-foreground);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:600;display:flex}.cedros-member-details{flex-direction:column;gap:.125rem;min-width:0;display:flex}.cedros-member-name{color:var(--cebbwf5-login-foreground);align-items:center;gap:.5rem;font-weight:500;display:flex}.cedros-member-you{color:var(--cebbwf5-login-muted-foreground);font-size:.75rem;font-weight:400}.cedros-member-email{color:var(--cebbwf5-login-muted-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;overflow:hidden}.cedros-member-role{min-width:100px}.cedros-role-select{border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);background:var(--cebbwf5-login-background);color:var(--cebbwf5-login-foreground);cursor:pointer;appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");background-position:right .5rem center;background-repeat:no-repeat;padding:.375rem 2rem .375rem .75rem;font-size:.8125rem;transition:border-color .15s,box-shadow .15s}.cedros-role-select:hover{border-color:var(--cebbwf5-login-ring)}.cedros-role-select:focus{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 2px color-mix(in srgb, var(--cebbwf5-login-ring) 20%, transparent);outline:none}.cedros-role-select:disabled{opacity:.5;cursor:not-allowed}.cebbwf5-dark .cedros-role-select,.dark .cedros-role-select,[data-theme=dark] .cedros-role-select,[data-color-mode=dark] .cedros-role-select,[data-color-scheme=dark] .cedros-role-select{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\")}.cedros-role-badge{text-transform:capitalize;border-radius:9999px;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:500;display:inline-flex}.cedros-role-badge-owner{background:color-mix(in srgb, var(--cebbwf5-login-warning) 15%, transparent);color:var(--cebbwf5-login-warning)}.cedros-role-badge-admin{background:color-mix(in srgb, var(--cebbwf5-login-link) 15%, transparent);color:var(--cebbwf5-login-link)}.cedros-role-badge-member,.cedros-role-badge-viewer{background:var(--cebbwf5-login-muted);color:var(--cebbwf5-login-muted-foreground)}.cedros-member-joined{color:var(--cebbwf5-login-muted-foreground);white-space:nowrap;font-size:.8125rem}.cedros-login-admin-root .cedros-member-table{border-collapse:separate;border-spacing:0;border:1px solid var(--admin-border);border-radius:calc(var(--admin-radius) - 2px);background:var(--admin-table-row);overflow:hidden}.cedros-login-admin-root .cedros-member-table th{text-transform:uppercase;letter-spacing:.05em;color:var(--admin-muted);background:var(--admin-table-head);border-bottom:1px solid var(--admin-border);padding:.6875rem .75rem;font-size:.6875rem}.cedros-login-admin-root .cedros-member-row{border-bottom:1px solid var(--admin-border);background:var(--admin-table-row)}.cedros-login-admin-root .cedros-member-row:hover{background:var(--admin-table-row-hover)}.cedros-login-admin-root .cedros-member-row td{padding:.75rem;font-size:.8125rem}.cedros-login-admin-root .cedros-member-avatar{width:32px;height:32px}.cedros-login-admin-root .cedros-member-avatar-placeholder{background:var(--admin-muted-bg);width:32px;height:32px;color:var(--admin-muted);font-size:.875rem}.cedros-login-admin-root .cedros-member-name{color:var(--admin-fg)}.cedros-login-admin-root .cedros-member-you,.cedros-login-admin-root .cedros-member-email,.cedros-login-admin-root .cedros-member-joined{color:var(--admin-muted)}.cedros-login-admin-root .cedros-role-select{border-color:var(--admin-border);border-radius:calc(var(--admin-radius) - 2px);background:var(--admin-muted-bg);height:2.25rem;color:var(--admin-fg);background-position:right .75rem center;background-size:1rem;padding:0 2.25rem 0 .75rem}.cedros-login-admin-root .cedros-role-select:hover{border-color:var(--admin-ring);background:var(--admin-bg)}.cedros-login-admin-root .cedros-role-select:focus{border-color:var(--admin-ring);box-shadow:0 0 0 3px color-mix(in srgb, var(--admin-ring) 15%, transparent)}.cedros-login-admin-root .cedros-role-badge{text-transform:uppercase;letter-spacing:.025em;padding:.125rem .5rem;font-size:.6875rem}.cedros-login-admin-root .cedros-role-badge-owner{background:var(--admin-warning-light);color:var(--admin-warning)}.cedros-login-admin-root .cedros-role-badge-admin{background:var(--admin-info-light);color:var(--admin-info)}.cedros-login-admin-root .cedros-role-badge-member,.cedros-login-admin-root .cedros-role-badge-viewer{background:var(--admin-muted-bg);color:var(--admin-muted)}.cedros-member-actions{text-align:right}.cedros-invite-form{width:100%}.cedros-invite-success{background:color-mix(in srgb, var(--cebbwf5-login-success) 10%, transparent);color:var(--cebbwf5-login-success);border-radius:var(--cebbwf5-login-radius);align-items:center;gap:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.cedros-invite-form-row{align-items:flex-end;gap:.75rem;display:flex}.cedros-invite-email-group{flex:1}.cedros-invite-role-group{width:120px}.cedros-invite-submit{white-space:nowrap}.cedros-invite-check{width:16px;height:16px;color:var(--cebbwf5-login-success)}.cedros-invite-list{width:100%}.cedros-invite-list-loading,.cedros-invite-list-empty{color:var(--cebbwf5-login-muted-foreground);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:2rem;display:flex}.cedros-invite-items{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.cedros-invite-item,.cedros-session-item,.cedros-member-row{animation:cedros-slide-up-fade var(--cebbwf5-duration-slow) var(--cebbwf5-ease-out) backwards}:is(.cedros-invite-item,.cedros-session-item,.cedros-member-row):nth-child(2){animation-delay:30ms}:is(.cedros-invite-item,.cedros-session-item,.cedros-member-row):nth-child(3){animation-delay:60ms}:is(.cedros-invite-item,.cedros-session-item,.cedros-member-row):nth-child(4){animation-delay:90ms}:is(.cedros-invite-item,.cedros-session-item,.cedros-member-row):nth-child(n+5){animation-delay:.12s}.cedros-invite-item{border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-radius-card);background:var(--cebbwf5-login-background);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem;display:flex}.cedros-invite-item-expired{border-style:dashed}.cedros-invite-item-info{flex-direction:column;flex:1;gap:.375rem;min-width:0;display:flex}.cedros-invite-item-main{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.cedros-invite-item-email{color:var(--cebbwf5-login-foreground);overflow-wrap:anywhere;font-weight:500}.cedros-invite-expired-badge{background:color-mix(in srgb, var(--cebbwf5-destructive) 10%, transparent);color:var(--cebbwf5-destructive);border-radius:9999px;padding:.125rem .5rem;font-size:.75rem}.cedros-invite-item-meta{color:var(--cebbwf5-login-muted-foreground);align-items:center;gap:.75rem;font-size:.8125rem;display:flex}.cedros-invite-item-date,.cedros-invite-item-expires{white-space:nowrap}.cedros-invite-item-actions,.cedros-invitation-receipt-actions{transition:opacity var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-spring);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.5rem;display:flex}@media (width<=640px){.cedros-invite-form-row{flex-direction:column;align-items:stretch}.cedros-invite-role-group{width:auto}.cedros-invite-item>.cedros-invite-item-actions{width:100%}}@media (hover:hover) and (pointer:fine){.cedros-invite-item-actions,.cedros-member-actions{opacity:0;pointer-events:none;transform:translate(.25rem)}:is(.cedros-invite-item,.cedros-member-row):is(:hover,:focus-within) :is(.cedros-invite-item-actions,.cedros-member-actions){opacity:1;pointer-events:auto;transform:translate(0)}}.cedros-invite-resend-success{color:var(--cebbwf5-login-success);font-size:.8125rem}.cedros-session-list{width:100%}.cedros-session-list-loading{color:var(--cebbwf5-login-muted-foreground);align-items:center;gap:.625rem;padding:.5rem 0;font-size:.875rem;display:flex}.cedros-session-list-empty{color:var(--cebbwf5-login-muted-foreground);padding:.5rem 0;font-size:.875rem}.cedros-session-list-empty p{margin:0}.cedros-session-success{background:color-mix(in srgb, var(--cebbwf5-login-success) 10%, transparent);color:var(--cebbwf5-login-success);border-radius:var(--cebbwf5-login-radius);align-items:center;gap:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.cedros-session-items{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.cedros-session-item{border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-radius-card);background:var(--cebbwf5-login-background);align-items:center;gap:1rem;padding:1rem;display:flex}.cedros-session-item-current{border-color:var(--cebbwf5-login-ring);background:color-mix(in srgb, var(--cebbwf5-login-link) 8%, transparent)}.cedros-session-item-icon{flex-shrink:0}.cedros-session-device-icon{width:24px;height:24px;color:var(--cebbwf5-login-muted-foreground)}.cedros-session-item-info{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.cedros-session-item-main{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.cedros-session-item-device{color:var(--cebbwf5-login-foreground);font-weight:500}.cedros-session-current-badge{background:color-mix(in srgb, var(--cebbwf5-login-link) 15%, transparent);color:var(--cebbwf5-login-link);border-radius:9999px;padding:.125rem .5rem;font-size:.75rem}.cedros-session-item-meta{color:var(--cebbwf5-login-muted-foreground);flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.8125rem;display:flex}.cedros-session-item-ip{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}.cedros-session-item-created{white-space:nowrap}.cedros-session-expiring{color:var(--cebbwf5-login-warning)}.cedros-session-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.cedros-session-actions .cedros-button{white-space:normal;height:auto;min-height:2.25rem}.cedros-session-toggle{margin-top:.5rem}.cedros-session-check{width:16px;height:16px;color:var(--cebbwf5-login-success)}.cedros-button-sm{padding:.375rem .75rem;font-size:.8125rem}.cedros-button-outline{border:1px solid var(--cebbwf5-login-border);color:var(--cebbwf5-login-foreground);background:0 0}.cedros-button-outline:hover:not(:disabled){background:var(--cebbwf5-login-muted)}.cedros-button-danger{background:var(--cebbwf5-destructive);color:var(--cebbwf5-destructive-foreground);box-shadow:var(--cebbwf5-edge-highlight), var(--cebbwf5-login-shadow-xs);border:none}.cedros-button-danger:hover:not(:disabled){background:color-mix(in srgb, var(--cebbwf5-destructive) 88%, var(--cebbwf5-login-foreground));box-shadow:var(--cebbwf5-edge-highlight), var(--cebbwf5-login-shadow-sm)}.cedros-button-danger:focus-visible{outline-color:var(--cebbwf5-destructive)}.cedros-form-label{color:var(--cebbwf5-login-foreground);font-size:.875rem;font-weight:500}.cedros-form-input{border:1px solid var(--cebbwf5-input-border,var(--cebbwf5-login-border));border-radius:var(--cebbwf5-login-radius);background:var(--cebbwf5-input-fill);width:100%;color:var(--cebbwf5-login-foreground);padding:.5rem .75rem;font-family:inherit;font-size:.875rem;transition:border-color .15s}.cedros-form-input:focus{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 2px color-mix(in srgb, var(--cebbwf5-login-ring) 20%, transparent);outline:none}.cedros-form-input:disabled{opacity:.5;cursor:not-allowed}.cedros-form-input::placeholder{color:var(--cebbwf5-login-muted-foreground)}.cedros-form-select{background:var(--cebbwf5-login-background);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-radius-field);width:100%;color:var(--cebbwf5-login-foreground);cursor:pointer;appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");background-position:right .5rem center;background-repeat:no-repeat;padding:.5rem 2rem .5rem .75rem;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.cedros-form-select:hover{border-color:var(--cebbwf5-login-ring)}.cedros-form-select:focus{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 2px color-mix(in srgb, var(--cebbwf5-login-ring) 20%, transparent);outline:none}.cedros-form-select:disabled{opacity:.5;cursor:not-allowed}.cebbwf5-dark .cedros-form-select,.dark .cedros-form-select,[data-theme=dark] .cedros-form-select,[data-color-mode=dark] .cedros-form-select,[data-color-scheme=dark] .cedros-form-select{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\")}.cedros-form-hint{color:var(--cebbwf5-login-muted-foreground);margin-top:.25rem;font-size:.75rem}.cedros-form-error{color:var(--cebbwf5-destructive);margin-top:.25rem;font-size:.75rem}.cedros-form-actions{gap:.75rem;margin-top:1rem;display:flex}.cedros-wallet-enrollment,.cedros-wallet-unlock,.cedros-wallet-recovery{width:100%;max-width:500px}.cedros-enrollment-progress,.cedros-wallet-unlock-combining{text-align:center;animation:cedros-fade-in-scale var(--cebbwf5-duration-slow) var(--cebbwf5-ease-out);flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:3rem 2rem;display:flex}.cedros-enrollment-header,.cedros-wallet-recovery-header{margin-bottom:1.5rem}.cedros-enrollment-header h2,.cedros-wallet-recovery-title{color:var(--cebbwf5-login-foreground);margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.cedros-enrollment-header p,.cedros-wallet-recovery-description{color:var(--cebbwf5-login-muted-foreground);margin:0}.cedros-enrollment-form{flex-direction:column;gap:1rem;display:flex}.cedros-password-info{background:var(--cebbwf5-login-muted);border-radius:var(--cebbwf5-login-radius);color:var(--cebbwf5-login-muted-foreground);padding:1rem;font-size:.875rem}.cedros-password-info p{margin:0 0 .5rem}.cedros-password-info p:last-child{margin-bottom:0}.cedros-enrollment-actions,.cedros-wallet-recovery-actions,.cedros-wallet-unlock-actions{gap:.75rem;margin-top:1rem;display:flex}.cedros-enrollment-complete,.cedros-enrollment-error,.cedros-wallet-recovery-success,.cedros-wallet-recovery-error,.cedros-wallet-recovery-progress,.cedros-wallet-unlock-success,.cedros-wallet-unlock-error{text-align:center;animation:cedros-fade-in-scale var(--cebbwf5-duration-slow) var(--cebbwf5-ease-out);flex-direction:column;align-items:center;padding:2rem;display:flex}.cedros-wallet-recovery-icon{color:var(--cebbwf5-login-link);margin-bottom:1rem}.cedros-wallet-recovery-phrase,.cedros-wallet-recovery-credential{width:100%}.cedros-auth-method-selector{background:var(--cebbwf5-login-muted);border-radius:var(--cebbwf5-login-radius);gap:1rem;margin-bottom:1.25rem;padding:.75rem;display:flex}.cedros-radio-label{cursor:pointer;color:var(--cebbwf5-login-foreground);align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;display:flex}.cedros-radio-label input[type=radio]{width:1rem;height:1rem;accent-color:var(--cebbwf5-login-primary)}.cedros-password-input{min-width:0}.cedros-passkey-info{background:var(--cebbwf5-login-muted);border-radius:var(--cebbwf5-login-radius);align-items:center;gap:1rem;margin-bottom:1rem;padding:1rem;display:flex}.cedros-passkey-info svg{color:var(--cebbwf5-login-link);flex-shrink:0}.cedros-passkey-info p{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem}.cedros-instant-link-success .cedros-success-icon,.cedros-wallet-status .cedros-success-icon,.cedros-wallet-enrollment .cedros-success-icon{color:var(--cebbwf5-login-success);animation:cedros-pop .3s var(--cebbwf5-ease-spring);margin-bottom:1rem}.cedros-wallet-status .cedros-error-icon{color:var(--cebbwf5-destructive);animation:cedros-shake .4s var(--cebbwf5-ease-out);margin-bottom:1rem}.cedros-pubkey{word-break:break-all;background:var(--cebbwf5-login-muted);border-radius:var(--cebbwf5-login-radius);margin:1rem 0;padding:.75rem 1rem;font-size:.875rem}.cedros-wallet-status .cedros-error-message{color:var(--cebbwf5-destructive);margin:1rem 0}.cedros-error-actions{gap:.75rem;margin-top:1rem;display:flex}.cedros-passkey-prompt{text-align:center;flex-direction:column;align-items:center;max-width:320px;margin:0 auto;padding:1.5rem;display:flex}.cedros-passkey-icon{background:var(--cebbwf5-login-muted);width:3.5rem;height:3.5rem;color:var(--cebbwf5-login-link);border-radius:50%;justify-content:center;align-items:center;margin-bottom:1.25rem;animation:2s ease-in-out infinite cedros-pulse;display:flex}.cedros-passkey-icon svg{width:1.75rem;height:1.75rem}.cedros-passkey-title{color:var(--cebbwf5-login-foreground);margin:0 0 .5rem;font-size:1.125rem;font-weight:600;line-height:1.3}.cedros-passkey-description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.8125rem;line-height:1.5}.cedros-passkey-error{background-color:var(--cebbwf5-destructive-light);color:var(--cebbwf5-destructive);border-radius:var(--cebbwf5-login-radius);width:100%;margin-top:1rem;padding:.625rem .875rem;font-size:.8125rem}.cedros-passkey-error p{margin:0}.cedros-passkey-actions{flex-direction:column;gap:.5rem;width:100%;margin-top:1.25rem;display:flex}.cedros-passkey-actions .cedros-button{justify-content:center;width:100%}.cedros-passkey-hint{color:var(--cebbwf5-login-muted-foreground);margin-top:1rem;font-size:.75rem}.cedros-button-spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:.875rem;height:.875rem;animation:.75s linear infinite cedros-spin;display:inline-block}.cedros-recovery-phrase-display,.cedros-recovery-phrase-input{width:100%}.cedros-recovery-header{margin-bottom:1.5rem}.cedros-recovery-title{margin:0 0 .5rem;font-size:1.25rem;font-weight:600}.cedros-recovery-warning{color:var(--cebbwf5-destructive);margin:0;font-size:.875rem;font-weight:500}.cedros-recovery-grid{grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1rem;display:grid}@media (width>=480px){.cedros-recovery-grid{grid-template-columns:repeat(3,1fr)}}.cedros-word-group{flex-direction:column;gap:.5rem;display:flex}.cedros-word-item{background:var(--cebbwf5-login-muted);border-radius:var(--cebbwf5-login-radius);animation:cedros-fade-in-scale var(--cebbwf5-duration-normal) var(--cebbwf5-ease-out) backwards;align-items:center;gap:.5rem;padding:.5rem .75rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.875rem;display:flex}.cedros-word-group:first-child .cedros-word-item{animation-delay:0s}.cedros-word-group:nth-child(2) .cedros-word-item{animation-delay:50ms}.cedros-word-group:nth-child(3) .cedros-word-item{animation-delay:.1s}.cedros-word-number{color:var(--cebbwf5-login-muted-foreground);min-width:1.5rem}.cedros-word-text{color:var(--cebbwf5-login-foreground);font-weight:500}.cedros-copy-btn{margin:1rem 0}.cedros-recovery-security{margin:1.5rem 0}.cedros-warning-box{background:color-mix(in srgb, var(--cebbwf5-login-warning) 10%, transparent);border:1px solid color-mix(in srgb, var(--cebbwf5-login-warning) 30%, transparent);border-radius:var(--cebbwf5-login-radius);gap:.75rem;padding:1rem;display:flex}.cedros-warning-icon{color:var(--cebbwf5-login-warning);flex-shrink:0}.cedros-warning-content{font-size:.875rem}.cedros-warning-content strong{color:var(--cebbwf5-login-foreground);margin-bottom:.25rem;display:block}.cedros-warning-content ul{color:var(--cebbwf5-login-muted-foreground);margin:.5rem 0 0;padding-left:1.25rem}.cedros-warning-content li{margin-bottom:.25rem}.cedros-recovery-confirm{border-top:1px solid var(--cebbwf5-login-border);flex-direction:column;gap:1rem;margin-top:1.5rem;padding-top:1.5rem;display:flex}.cedros-checkbox-label{cursor:pointer;align-items:flex-start;gap:.75rem;font-size:.875rem;display:flex}.cedros-checkbox{width:1.125rem;height:1.125rem;accent-color:var(--cebbwf5-login-primary);margin-top:.125rem}.cedros-recovery-input-header{margin-bottom:1.25rem}.cedros-recovery-input-title{color:var(--cebbwf5-login-foreground);margin:0 0 .375rem;font-size:1.125rem;font-weight:600}.cedros-recovery-input-description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.8125rem;line-height:1.5}.cedros-word-inputs{grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem;display:grid}@media (width<=480px){.cedros-word-inputs{grid-template-columns:repeat(2,1fr)}}.cedros-word-input-wrapper{align-items:center;gap:.375rem;display:flex;position:relative}.cedros-word-label{color:var(--cebbwf5-login-muted-foreground);text-align:right;min-width:1.5rem;font-size:.6875rem;font-weight:500}.cedros-word-input{background:var(--cebbwf5-login-background);border:1px solid var(--cebbwf5-input);border-radius:calc(var(--cebbwf5-login-radius) - 2px);height:2rem;color:var(--cebbwf5-login-foreground);transition:border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), box-shadow var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);outline:none;flex:1;padding:0 .5rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.8125rem}.cedros-word-input:focus{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 2px color-mix(in srgb, var(--cebbwf5-login-ring) 15%, transparent)}.cedros-word-input.cedros-word-valid{border-color:var(--cebbwf5-login-success)}.cedros-word-input.cedros-word-invalid{border-color:var(--cebbwf5-destructive)}.cedros-word-input:disabled{opacity:.5;cursor:not-allowed}.cedros-suggestions{z-index:50;background:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);box-shadow:var(--cebbwf5-login-shadow-md);animation:cedros-slide-down-fade var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);flex-wrap:wrap;gap:.375rem;margin-top:.5rem;padding:.625rem;display:flex;position:fixed}.cedros-suggestion{background:var(--cebbwf5-login-muted);border-radius:calc(var(--cebbwf5-login-radius) - 2px);color:var(--cebbwf5-login-foreground);cursor:pointer;transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);border:1px solid #0000;padding:.375rem .625rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.8125rem}.cedros-suggestion:hover{background:var(--cebbwf5-login-accent);border-color:var(--cebbwf5-login-border)}.cedros-suggestion:active{transform:scale(.97)}.cedros-recovery-input-actions{border-top:1px solid var(--cebbwf5-login-border);justify-content:flex-end;gap:.5rem;margin-top:1.25rem;padding-top:1rem;display:flex}.cedros-pin-input{width:100%}.cedros-pin-input .cedros-password-wrapper{position:relative}.cedros-pin-input .cedros-input{letter-spacing:.25em;padding-right:4.5rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:1.25rem}.cedros-input-valid-indicator{color:var(--cebbwf5-login-success);justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:2.5rem;transform:translateY(-50%)}.cedros-input-hint{color:var(--cebbwf5-login-muted-foreground);align-items:center;gap:.25rem;margin-top:.375rem;font-size:.75rem;display:flex}.cedros-capability-warning{background:color-mix(in srgb, var(--cebbwf5-login-warning) 5%, transparent);border:1px solid color-mix(in srgb, var(--cebbwf5-login-warning) 20%, transparent);border-radius:var(--cebbwf5-login-radius);padding:1.5rem}.cedros-warning-header{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.cedros-warning-title{color:var(--cebbwf5-login-foreground);margin:0;font-size:1.125rem;font-weight:600}.cedros-warning-message{color:var(--cebbwf5-login-muted-foreground);margin:0 0 1rem}.cedros-capability-details summary{cursor:pointer;color:var(--cebbwf5-login-link);margin-bottom:.75rem;font-size:.875rem}.cedros-capability-list{margin:0;padding:0;font-size:.875rem;list-style:none}.cedros-capability-list li{align-items:center;gap:.5rem;padding:.375rem 0;display:flex}.cedros-capability-list li:before{content:\"\";border-radius:50%;width:8px;height:8px}.cedros-cap-ok:before{background:var(--cebbwf5-login-success)}.cedros-cap-missing:before{background:var(--cebbwf5-destructive)}.cedros-capability-help{border-top:1px solid var(--cebbwf5-login-border);margin-top:1rem;padding-top:1rem}.cedros-capability-help p{color:var(--cebbwf5-login-muted-foreground);margin:0 0 .5rem;font-size:.875rem}.cedros-capability-note{font-style:italic}.cedros-wallet-status{border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-radius-card);background:var(--cebbwf5-login-card);box-shadow:var(--cebbwf5-login-shadow-sm);padding:1.25rem}.cedros-wallet-status-compact{border-radius:var(--cebbwf5-login-radius);align-items:center;gap:.5rem;padding:.375rem .75rem;font-size:.8125rem;display:inline-flex}.cedros-wallet-status-dot{width:6px;height:6px;transition:background-color var(--cebbwf5-duration-normal) var(--cebbwf5-ease-out);border-radius:50%;flex-shrink:0}.cedros-wallet-status-loading{background:var(--cebbwf5-login-muted-foreground);animation:1.5s ease-in-out infinite cedros-pulse}.cedros-wallet-status-warning{background:var(--cebbwf5-login-warning)}.cedros-wallet-status-success{background:var(--cebbwf5-login-success)}.cedros-wallet-status-error{background:var(--cebbwf5-destructive)}.cedros-wallet-status-muted{background:var(--cebbwf5-login-muted-foreground)}.cedros-wallet-status-label{color:var(--cebbwf5-login-foreground);font-weight:500}.cedros-wallet-status-header{align-items:flex-start;gap:.875rem;display:flex}.cedros-wallet-status-icon{border-radius:calc(var(--cebbwf5-login-radius) - 2px);flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;display:flex}.cedros-wallet-status-icon svg{width:1.25rem;height:1.25rem}.cedros-wallet-status-icon-muted{background:var(--cebbwf5-login-muted);color:var(--cebbwf5-login-muted-foreground)}.cedros-wallet-status-icon-warning{background:var(--cebbwf5-warning-light);color:var(--cebbwf5-login-warning)}.cedros-wallet-status-icon-success{background:var(--cebbwf5-login-success-soft);color:var(--cebbwf5-login-success)}.cedros-wallet-status-icon-error{background:var(--cebbwf5-destructive-light);color:var(--cebbwf5-destructive)}.cedros-wallet-status-icon-loading{background:var(--cebbwf5-login-muted);color:var(--cebbwf5-login-link)}.cedros-wallet-status-info{flex:1;min-width:0;padding-top:.125rem}.cedros-wallet-status-title{color:var(--cebbwf5-login-foreground);margin:0;font-size:.9375rem;font-weight:600;line-height:1.25}.cedros-wallet-status-description{color:var(--cebbwf5-login-muted-foreground);margin:.125rem 0 0;font-size:.8125rem;line-height:1.4}.cedros-wallet-status-pubkey{color:var(--cebbwf5-login-muted-foreground);text-overflow:ellipsis;max-width:120px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.6875rem;overflow:hidden}.cedros-wallet-status-pubkey-full{background:var(--cebbwf5-login-muted);border-radius:calc(var(--cebbwf5-login-radius) - 2px);margin:.875rem 0 0;padding:.625rem .75rem}.cedros-wallet-address-row-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.25rem;display:flex}.cedros-wallet-address-row-actions{flex-shrink:0;align-items:center;gap:.375rem;display:flex}.cedros-wallet-status-pubkey-label{text-transform:uppercase;letter-spacing:.025em;color:var(--cebbwf5-login-muted-foreground);margin-bottom:.25rem;font-size:.6875rem;font-weight:500;display:block}.cedros-wallet-status-pubkey-value{word-break:break-all;color:var(--cebbwf5-login-foreground);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.75rem;line-height:1.5}.cedros-wallet-status-error-box{background:var(--cebbwf5-destructive-light);border-radius:calc(var(--cebbwf5-login-radius) - 2px);color:var(--cebbwf5-destructive);justify-content:space-between;align-items:center;gap:.75rem;margin:.875rem 0 0;padding:.625rem .75rem;font-size:.8125rem;display:flex}.cedros-wallet-status-error-box p{flex:1;margin:0}.cedros-wallet-status-actions{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.cedros-wallet-manager{flex-direction:column;gap:.75rem;display:flex}.cedros-wallet-manager-header{justify-content:space-between;align-items:flex-start;gap:1rem;padding:.75rem .75rem 0;display:flex}.cedros-wallet-manager-title{color:var(--cebbwf5-login-foreground);margin:0;font-size:.9375rem;font-weight:600}.cedros-wallet-manager-subtitle{color:var(--cebbwf5-login-muted-foreground);margin:.25rem 0 0;font-size:.8125rem;line-height:1.4}.cedros-wallet-manager-intro{padding:0 .75rem}.cedros-wallet-manager-intro-card{border:1px solid var(--cebbwf5-login-border);background:var(--cebbwf5-login-background);border-radius:var(--cebbwf5-login-radius);padding:1rem}.cedros-wallet-manager-intro-title{color:var(--cebbwf5-login-foreground);margin:0;font-size:.875rem;font-weight:600}.cedros-wallet-manager-intro-list{color:var(--cebbwf5-login-muted-foreground);margin:.75rem 0 0;padding-left:1.25rem;font-size:.8125rem;line-height:1.6}.cedros-wallet-manager-intro-actions{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.cedros-wallet-unlock-idle{text-align:center;flex-direction:column;align-items:center;padding:2rem;display:flex}.cedros-wallet-unlock-icon{margin-bottom:1rem}.cedros-wallet-unlock-icon svg{width:48px;height:48px;color:var(--cebbwf5-login-muted-foreground)}.cedros-wallet-unlock-title{margin:0 0 .5rem;font-size:1.25rem;font-weight:600}.cedros-wallet-unlock-description{color:var(--cebbwf5-login-muted-foreground);margin:0 0 1.5rem}.cedros-wallet-unlock-password,.cedros-wallet-unlock-passkey{padding:1rem 0}.cedros-wallet-unlock-progress{border-top:1px solid var(--cebbwf5-login-border);justify-content:center;align-items:center;gap:.5rem;margin-top:1.5rem;padding-top:1.5rem;display:flex}.cedros-wallet-unlock-step{opacity:.5;flex-direction:column;align-items:center;gap:.25rem;display:flex}.cedros-wallet-unlock-step.active{opacity:1}.cedros-wallet-unlock-step.completed{opacity:.7}.cedros-step-number{background:var(--cebbwf5-login-muted);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:.875rem;font-weight:500;display:flex}.cedros-wallet-unlock-step.active .cedros-step-number{background:var(--cebbwf5-login-primary);color:var(--cebbwf5-login-primary-foreground)}.cedros-wallet-unlock-step.completed .cedros-step-number{background:var(--cebbwf5-login-success-soft);color:var(--cebbwf5-login-success)}.cedros-step-label{color:var(--cebbwf5-login-muted-foreground);font-size:.75rem}.cedros-wallet-unlock-step-divider{background:var(--cebbwf5-login-border);width:40px;height:2px;margin:0 .5rem 1.25rem}.cedros-org-selector{position:relative}.cedros-org-selector-loading{color:var(--cebbwf5-login-muted-foreground);align-items:center;gap:.5rem;padding:.5rem 1rem;display:flex}.cedros-org-selector-trigger{border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);background:var(--cebbwf5-login-background);cursor:pointer;align-items:center;gap:.75rem;min-width:200px;padding:.5rem .75rem;display:flex}.cedros-org-selector-trigger:hover{background:var(--cebbwf5-login-muted)}.cedros-org-avatar{border-radius:var(--cebbwf5-login-radius);-o-object-fit:cover;object-fit:cover;width:28px;height:28px}.cedros-org-avatar-lg{width:40px;height:40px}.cedros-org-avatar-placeholder{border-radius:var(--cebbwf5-login-radius);background:var(--cebbwf5-login-primary);width:28px;height:28px;color:var(--cebbwf5-login-primary-foreground);justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:flex}.cedros-org-avatar-placeholder.cedros-org-avatar-lg{width:40px;height:40px;font-size:1rem}.cedros-org-selector-name{text-align:left;flex:1;font-weight:500}.cedros-org-selector-placeholder{color:var(--cebbwf5-login-muted-foreground);text-align:left;flex:1}.cedros-org-chevron{width:16px;height:16px;color:var(--cebbwf5-login-muted-foreground);transition:transform .2s}.cedros-org-chevron-open{transform:rotate(180deg)}.cedros-org-selector-dropdown{background:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);box-shadow:var(--cebbwf5-login-shadow-md);z-index:50;margin-top:.25rem;padding:.5rem;position:absolute;top:100%;left:0;right:0}.cedros-org-selector-empty{text-align:center;color:var(--cebbwf5-login-muted-foreground);padding:1rem;font-size:.875rem}.cedros-org-selector-list{margin:0;padding:0;list-style:none}.cedros-org-selector-item{border-radius:calc(var(--cebbwf5-login-radius) - 2px);cursor:pointer;justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex}.cedros-org-selector-item:hover{background:var(--cebbwf5-login-muted)}.cedros-org-selector-item-active{background:color-mix(in srgb, var(--cebbwf5-login-link) 10%, transparent)}.cedros-org-selector-item-name{font-weight:500}.cedros-org-selector-divider{background:var(--cebbwf5-login-border);height:1px;margin:.5rem 0}.cedros-org-selector-create{border-radius:calc(var(--cebbwf5-login-radius) - 2px);cursor:pointer;width:100%;color:var(--cebbwf5-login-link);background:0 0;border:none;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;display:flex}.cedros-org-selector-create:hover{background:var(--cebbwf5-login-muted)}.cedros-org-role{text-transform:capitalize;border-radius:9999px;padding:.125rem .5rem;font-size:.75rem}.cedros-org-role-owner{background:color-mix(in srgb, var(--cebbwf5-login-warning) 15%, transparent);color:var(--cebbwf5-login-warning)}.cedros-org-role-admin{background:color-mix(in srgb, var(--cebbwf5-login-link) 15%, transparent);color:var(--cebbwf5-login-link)}.cedros-org-role-member,.cedros-org-role-viewer{background:var(--cebbwf5-login-muted);color:var(--cebbwf5-login-muted-foreground)}.cedros-org-check{width:16px;height:16px;color:var(--cebbwf5-login-link)}.cedros-org-plus{width:16px;height:16px}.cedros-org-switcher{max-width:400px}.cedros-org-switcher-loading{color:var(--cebbwf5-login-muted-foreground);flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:3rem;display:flex}.cedros-org-switcher-empty{text-align:center;color:var(--cebbwf5-login-muted-foreground);padding:2rem}.cedros-org-switcher-list{margin:0;padding:0;list-style:none}.cedros-org-switcher-item{border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);background:var(--cebbwf5-login-background);cursor:pointer;text-align:left;width:100%;font-family:inherit;font-size:inherit;align-items:center;gap:.75rem;margin-bottom:.5rem;padding:.75rem 1rem;transition:border-color .15s,background-color .15s;display:flex}.cedros-org-switcher-item:hover{background:var(--cebbwf5-login-muted);border-color:var(--cebbwf5-login-border)}.cedros-org-switcher-item-active{border-color:var(--cebbwf5-login-ring);background:color-mix(in srgb, var(--cebbwf5-login-link) 8%, transparent)}.cedros-org-switcher-item-active:hover{background:color-mix(in srgb, var(--cebbwf5-login-link) 12%, transparent)}.cedros-org-switcher-item-content{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.cedros-org-switcher-item-name{color:var(--cebbwf5-login-foreground);font-weight:500}.cedros-org-switcher-item-slug{color:var(--cebbwf5-login-muted-foreground);font-size:.8125rem}.cedros-org-switcher-item-meta{flex-shrink:0;align-items:center;gap:.375rem;display:flex}.cedros-org-switcher-item .cedros-org-check{color:var(--cebbwf5-login-link);flex-shrink:0}.cedros-org-personal-badge{background:var(--cebbwf5-login-muted);color:var(--cebbwf5-login-muted-foreground);border-radius:9999px;padding:.125rem .5rem;font-size:.75rem}.cedros-org-switcher-create{border:1px dashed var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);cursor:pointer;width:100%;color:var(--cebbwf5-login-muted-foreground);transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);background:0 0;justify-content:center;align-items:center;gap:.5rem;margin-top:1rem;padding:.75rem;font-family:inherit;font-size:.875rem;display:flex}.cedros-org-switcher-create:hover{background:var(--cebbwf5-login-muted);border-color:var(--cebbwf5-login-ring);color:var(--cebbwf5-login-link);border-style:solid}.cedros-org-create-form{padding:1rem 0}.cedros-form-input-prefix{align-items:stretch;display:flex}.cedros-form-prefix{background:var(--cebbwf5-login-muted);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius) 0 0 var(--cebbwf5-login-radius);color:var(--cebbwf5-login-muted-foreground);border-right:none;align-items:center;padding:0 .75rem;display:flex}.cedros-form-input-prefix .cedros-form-input{border-radius:0 var(--cebbwf5-login-radius) var(--cebbwf5-login-radius) 0}.cedros-full-page-layout{background:linear-gradient(135deg, var(--cebbwf5-login-background) 0%, var(--cebbwf5-login-muted) 100%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.cebbwf5-dark .cedros-full-page-layout,.dark .cedros-full-page-layout,[data-theme=dark] .cedros-full-page-layout,[data-color-mode=dark] .cedros-full-page-layout,[data-color-scheme=dark] .cedros-full-page-layout{background:linear-gradient(135deg, var(--cebbwf5-login-background) 0%, var(--cebbwf5-login-muted) 100%)}.cedros-full-page-card{background:var(--cebbwf5-login-card);width:100%;max-width:420px;box-shadow:var(--cebbwf5-login-shadow-lg);border-radius:.75rem;padding:2rem}.cedros-full-page-header{text-align:center;margin-bottom:2rem}.cedros-full-page-title{color:var(--cebbwf5-login-foreground);margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.cedros-full-page-subtitle{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem}.cedros-brand-header{align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.cedros-brand-header svg,.cedros-brand-header img{width:2rem;height:2rem}.cedros-brand-name{color:var(--cebbwf5-login-foreground);font-size:1.125rem;font-weight:600}.cedros-terms-footer{text-align:center;max-width:280px;color:var(--cebbwf5-login-muted-foreground);margin-top:1.5rem;font-size:.75rem;line-height:1.5}.cedros-terms-footer a{color:var(--cebbwf5-login-foreground);text-underline-offset:2px;text-decoration:underline}.cedros-terms-footer a:hover{opacity:.8}.cedros-split-page-layout{grid-template-columns:1fr 1fr;min-height:100vh;display:grid}@media (width<=768px){.cedros-split-page-layout{grid-template-columns:1fr}.cedros-split-page-brand{min-height:200px}}.cedros-split-page-brand{background:linear-gradient(135deg, var(--cebbwf5-login-primary) 0%, color-mix(in srgb, var(--cebbwf5-login-primary) 82%, var(--cebbwf5-login-background)) 100%);color:var(--cebbwf5-login-primary-foreground);flex-direction:column;justify-content:center;align-items:center;padding:3rem;display:flex}.cedros-split-page-brand-content{text-align:center;max-width:400px}.cedros-split-page-logo{background:var(--cebbwf5-login-card);width:64px;height:64px;color:var(--cebbwf5-login-primary);border-radius:16px;justify-content:center;align-items:center;margin:0 auto 2rem;font-size:2rem;font-weight:700;display:flex}.cedros-split-page-brand-name{margin:0 0 1rem;font-size:2rem;font-weight:700}.cedros-split-page-tagline{opacity:.8;margin:0;line-height:1.6}.cedros-split-page-form{background:var(--cebbwf5-login-background);flex-direction:column;justify-content:center;align-items:center;padding:3rem;display:flex}.cedros-split-page-form-content{width:100%;max-width:380px}.cedros-split-page-title{color:var(--cebbwf5-login-foreground);margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.cedros-split-page-subtitle{color:var(--cebbwf5-login-muted-foreground);margin:0 0 2rem;font-size:.875rem}.cedros-otp-input{flex-direction:column;gap:.75rem;min-width:0;max-width:100%;display:flex}.cedros-otp-slots{justify-content:center;gap:.5rem;display:flex}.cedros-otp-slot{border:1px solid var(--cebbwf5-input);border-radius:var(--cebbwf5-login-radius);width:2.75rem;min-width:0;height:3rem;color:var(--cebbwf5-login-foreground);text-align:center;background-color:#0000;padding:0;font-size:1.25rem;font-weight:500;transition:border-color .15s,box-shadow .15s}.cedros-otp-slot:focus{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 1px var(--cebbwf5-login-ring);outline:none}.cedros-otp-slot:focus-visible{outline:2px solid var(--cebbwf5-login-ring);outline-offset:2px}.cedros-otp-slot-error{border-color:var(--cebbwf5-destructive)}.cedros-otp-slot-error:focus{border-color:var(--cebbwf5-destructive);box-shadow:0 0 0 1px var(--cebbwf5-destructive)}.cedros-otp-slot:disabled{opacity:.5;cursor:not-allowed}.cedros-otp-error{color:var(--cebbwf5-destructive);text-align:center;margin:0;font-size:.875rem}.cedros-mfa-setup-prompt{gap:1.25rem;width:100%;max-width:34rem;margin:0 auto;display:grid}.cedros-mfa-setup-prompt__header{text-align:center;gap:.5rem;display:grid}.cedros-mfa-setup-prompt__title{color:var(--cebbwf5-login-foreground);margin:0;font-size:1.25rem;font-weight:600;line-height:1.2}.cedros-mfa-setup-prompt__description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem;line-height:1.5}.cedros-mfa-setup-prompt__body{min-width:0}.cedros-totp-setup,.cedros-totp-verify{flex-direction:column;gap:1.5rem;display:flex}.cedros-totp-loading{color:var(--cebbwf5-login-muted-foreground);align-items:center;gap:.625rem;padding:.5rem 0;font-size:.875rem;display:flex}.cedros-totp-step{flex-direction:column;gap:1.25rem;display:flex}.cedros-totp-title{color:var(--cebbwf5-login-foreground);text-align:center;margin:0;font-size:1.125rem;font-weight:600}.cedros-totp-description{color:var(--cebbwf5-login-muted-foreground);text-align:center;margin:0;font-size:.875rem;line-height:1.5}.cedros-totp-qr{justify-content:center;padding:1rem;display:flex}.cedros-totp-qr-image{background:#fff;border-radius:.5rem;padding:.5rem}.cedros-qr-error{border:1px solid var(--cebbwf5-destructive);background:color-mix(in srgb, var(--cebbwf5-destructive) 8%, transparent);color:var(--cebbwf5-destructive);text-align:center;border-radius:.5rem;justify-content:center;align-items:center;padding:.75rem;display:flex}.cedros-qr-error p{margin:0;font-size:.8125rem;line-height:1.4}.cedros-totp-manual{text-align:center}.cedros-totp-manual-label{color:var(--cebbwf5-login-muted-foreground);margin:0 0 .5rem;font-size:.75rem}.cedros-totp-secret{background:var(--cebbwf5-login-muted);border-radius:var(--cebbwf5-login-radius);justify-content:center;align-items:center;gap:.5rem;padding:.75rem;display:flex}.cedros-totp-secret-code{letter-spacing:.05em;color:var(--cebbwf5-login-foreground);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.875rem}.cedros-totp-backup-codes{background:var(--cebbwf5-login-muted);border-radius:var(--cebbwf5-login-radius);grid-template-columns:repeat(2,1fr);gap:.5rem;padding:1rem;display:grid}.cedros-totp-backup-code{background:var(--cebbwf5-login-background);text-align:center;color:var(--cebbwf5-login-foreground);border-radius:.25rem;padding:.5rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.875rem}.cedros-totp-confirm{margin-top:.5rem}.cedros-totp-actions{justify-content:flex-end;gap:.75rem;display:flex}.cedros-totp-actions .cedros-button{flex:1}.cedros-totp-success{text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:2rem 1rem;display:flex}.cedros-totp-success-icon{color:var(--cebbwf5-login-success)}.cedros-totp-verify-header{text-align:center;flex-direction:column;align-items:center;gap:.75rem;display:flex}.cedros-totp-verify-icon{color:var(--cebbwf5-login-muted-foreground);margin-bottom:.5rem}.cedros-totp-email{color:var(--cebbwf5-login-foreground);margin:0;font-size:.875rem;font-weight:500}.cedros-totp-backup-input{flex-direction:column;gap:.5rem;display:flex}.cedros-totp-verify-footer{justify-content:center;align-items:center;gap:.75rem;font-size:.875rem;display:flex}.cedros-totp-verify-divider{color:var(--cebbwf5-login-muted-foreground)}.cedros-totp-settings{flex-direction:column;gap:1rem;display:flex}.cedros-totp-panel{background:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-radius-card);box-shadow:var(--cebbwf5-login-shadow-sm);flex-direction:column;gap:1.25rem;padding:1.25rem;display:flex}.cedros-totp-status-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.cedros-totp-status-info{flex:1}.cedros-totp-status-info .cedros-totp-title{text-align:left;margin-bottom:.5rem;font-size:.9375rem}.cedros-totp-status-info .cedros-totp-description{text-align:left}.cedros-totp-enabled-actions{flex-wrap:wrap;gap:.75rem;display:flex}.cedros-totp-verify-input{justify-content:center;padding:1rem 0;display:flex}.cedros-totp-error{margin-bottom:.5rem}.cedros-totp-warning{color:var(--cebbwf5-destructive)}:where(.cedros-login-admin-root) .cebbwf5-admin-panel{background:var(--admin-bg);border:1px solid var(--admin-border);border-radius:var(--admin-radius);box-shadow:var(--admin-shadow-card);flex-direction:column;gap:1rem;padding:1.5rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-panel-loading{color:var(--admin-muted);justify-content:center;align-items:center;gap:.5rem;padding:2rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-header{border-bottom:1px solid var(--admin-border);align-items:center;gap:.75rem;padding-bottom:1rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-title{margin:0;font-size:1.25rem;font-weight:600}:where(.cedros-login-admin-root) .cebbwf5-admin-role{font-size:.75rem}:where(.cedros-login-admin-root) .cebbwf5-admin-tabs{background:var(--admin-muted-bg);border:1px solid var(--admin-border);border-radius:calc(var(--admin-radius) - 2px);gap:.25rem;padding:.25rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-tab{color:var(--admin-muted);cursor:pointer;transition:color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color .15s ease;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;justify-content:center;align-items:center;margin-bottom:-1px;padding:.75rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}:where(.cedros-login-admin-root) .cebbwf5-admin-tab:focus-visible{outline:2px solid var(--admin-ring);outline-offset:2px}:where(.cedros-login-admin-root) .cebbwf5-admin-tab-active{color:var(--admin-fg);border-bottom-color:var(--admin-fg);box-shadow:none;background:0 0}:where(.cedros-login-admin-root) .cebbwf5-admin-content{padding-top:.5rem}:where(.cedros-login-admin-root) .cebbwf5-admin-tabs--line{background:var(--admin-bg);border:none;border-bottom:1px solid var(--admin-border);gap:0;margin-bottom:1rem;padding:0;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-tabs--line .cebbwf5-admin-tab{color:var(--admin-muted);cursor:pointer;box-shadow:none;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:.625rem 1rem;font-size:.875rem;font-weight:500;transition:color .15s,border-color .15s}:where(.cedros-login-admin-root) .cebbwf5-admin-tabs--line .cebbwf5-admin-tab:hover{color:var(--admin-fg)}:where(.cedros-login-admin-root) .cebbwf5-admin-tabs--line .cebbwf5-admin-tab-active{color:var(--admin-fg);border-bottom-color:var(--admin-fg);box-shadow:none;background:0 0}:where(.cedros-login-admin-root) .cebbwf5-admin-tabs--pill{background:var(--admin-bg,var(--cebbwf5-login-card));border-radius:calc(var(--admin-radius) + 4px);flex-wrap:wrap;margin-bottom:1rem}:where(.cedros-login-admin-root) .cebbwf5-admin-tabs--pill .cebbwf5-admin-tab{border-radius:var(--admin-radius);color:var(--admin-muted);box-shadow:none;background:0 0;border:1px solid #0000;margin-bottom:0;padding:.5rem .875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-tabs--pill .cebbwf5-admin-tab:hover{color:var(--admin-fg);background:var(--admin-muted-bg)}:where(.cedros-login-admin-root) .cebbwf5-admin-tabs--pill .cebbwf5-admin-tab-active,:where(.cedros-login-admin-root) .cebbwf5-admin-tabs--pill .cebbwf5-admin-tab-active:hover{color:var(--admin-fg);background:var(--admin-bg,var(--cebbwf5-login-card));border-color:var(--admin-border,var(--cebbwf5-login-border));border-radius:var(--admin-radius);box-shadow:var(--admin-shadow-sm,var(--cebbwf5-login-shadow-xs))}:where(.cedros-login-admin-root) .cebbwf5-admin-tab-content{flex-direction:column;gap:1.5rem;display:flex}.cedros-login-admin-root .cebbwf5-admin-tab-content{width:100%}:where(.cedros-login-admin-root) .cebbwf5-admin-section-title{color:var(--admin-fg);margin:0 0 .5rem;font-size:.9375rem;font-weight:600}:where(.cedros-login-admin-root) .cebbwf5-admin-section-description{color:var(--admin-muted);margin:0 0 1rem;font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-settings-list{flex-direction:column;gap:.75rem;margin:0;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-setting{gap:1rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-setting-label{min-width:80px;font-weight:500}:where(.cedros-login-admin-root) .cebbwf5-admin-setting-value{color:var(--admin-muted)}:where(.cedros-login-admin-root) .cebbwf5-admin-settings-hint{color:var(--admin-muted);margin-top:1rem;font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-danger-zone{border:1px solid var(--admin-error);border-radius:var(--admin-radius);margin-top:2rem;padding:1rem}:where(.cedros-login-admin-root) .cebbwf5-admin-danger-title{color:var(--admin-error);margin:0 0 .5rem;font-size:1rem;font-weight:600}:where(.cedros-login-admin-root) .cebbwf5-admin-danger-description{color:var(--admin-muted);margin:0;font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-retry{color:var(--cebbwf5-login-admin-link,var(--admin-link,var(--cebbwf5-login-link)));border:1px solid var(--cebbwf5-login-admin-ring,var(--admin-ring));border-radius:var(--admin-radius);cursor:pointer;background:0 0;padding:.5rem 1rem;font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-retry:hover{background:color-mix(in srgb, var(--cebbwf5-login-admin-link,var(--admin-link,var(--cebbwf5-login-link))) 10%, transparent)}:where(.cedros-login-admin-root) .cebbwf5-admin-refresh{border:1px solid var(--admin-border);border-radius:var(--admin-radius);cursor:pointer;color:var(--admin-muted);background:0 0;padding:.25rem .5rem;font-size:1rem}:where(.cedros-login-admin-root) .cebbwf5-admin-refresh:hover:not(:disabled){background:var(--admin-accent);color:var(--admin-fg)}:where(.cedros-login-admin-root) .cebbwf5-admin-refresh:disabled{opacity:.5;cursor:not-allowed}:where(.cedros-login-admin-root) .cebbwf5-admin-icon-button{width:2.25rem;padding:0;font-size:1rem;line-height:1}:where(.cedros-login-admin-root) .cebbwf5-admin-loading-indicator{border:2px solid var(--admin-muted-bg);border-top-color:var(--cebbwf5-login-admin-link,var(--admin-link,var(--cebbwf5-login-link)));border-radius:50%;width:1.5rem;height:1.5rem;animation:1s linear infinite cedros-spin;display:inline-block}:where(.cedros-login-admin-root) .cebbwf5-admin-empty{text-align:center;border:1px dashed var(--admin-border);border-radius:var(--admin-radius);background:radial-gradient(ellipse at 50% 0%, color-mix(in srgb, var(--admin-muted-bg) 55%, transparent), transparent 70%);animation:cedros-fade-in .3s var(--cebbwf5-ease-out);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:2.5rem 2rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-empty-message{color:var(--admin-muted);margin:0;font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-pagination{border-top:1px solid var(--admin-border);flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;margin-top:1rem;padding-top:1rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-page-btn{background:var(--admin-bg);border:1px solid var(--admin-border);border-radius:var(--admin-radius);cursor:pointer;color:var(--admin-fg);padding:.5rem 1rem;font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-page-btn:hover:not(:disabled){background:var(--admin-accent)}:where(.cedros-login-admin-root) .cebbwf5-admin-page-btn:disabled{opacity:.5;cursor:not-allowed}:where(.cedros-login-admin-root) .cebbwf5-admin-page-info{color:var(--admin-muted);font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-stats{background:var(--admin-bg);border:1px solid var(--admin-border);border-radius:var(--admin-radius);padding:1rem}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar{background:var(--admin-bg);border:1px solid var(--admin-border);border-radius:var(--admin-radius);box-shadow:var(--admin-shadow-card);align-items:center;gap:1rem;margin-bottom:1.5rem;padding:.875rem 1rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-grid{flex:1;gap:1.5rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-item{border-right:1px solid var(--admin-border);flex-direction:column;gap:.125rem;padding-right:1.5rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-item:last-child{border-right:none;padding-right:0}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-label{text-transform:uppercase;letter-spacing:.06em;color:var(--admin-muted);font-size:.6875rem;font-weight:500}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--admin-fg);font-size:1.125rem;font-weight:700;line-height:1.2}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-value--success{color:var(--admin-success)}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-value--warning{color:var(--admin-warning)}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-value--muted{color:var(--admin-muted)}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-desc{color:var(--admin-muted);font-size:.6875rem}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-refresh{background:var(--admin-bg);border:1px solid var(--admin-input);border-radius:var(--admin-radius);width:2.125rem;height:2.125rem;color:var(--admin-muted);cursor:pointer;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-refresh:hover:not(:disabled){background:var(--admin-accent);color:var(--admin-fg)}:where(.cedros-login-admin-root) .cebbwf5-admin__stats-bar-refresh:disabled{opacity:.5;cursor:not-allowed}:where(.cedros-login-admin-root) .cebbwf5-admin__spinner{animation:1s linear infinite cedros-spin}:where(.cedros-login-admin-root) .cebbwf5-admin__skeleton{background:linear-gradient(90deg, var(--admin-muted-bg) 25%, color-mix(in srgb, var(--admin-border) 55%, var(--admin-muted-bg)) 50%, var(--admin-muted-bg) 75%);animation:cedros-shimmer 1.8s var(--cebbwf5-ease-in-out) infinite;background-size:200% 100%;border-radius:.25rem;display:inline-block}:where(.cedros-login-admin-root) .cebbwf5-admin__skeleton--text{width:4rem;height:1em}:where(.cedros-login-admin-root) .cebbwf5-admin__skeleton--value{width:5rem;height:1.5rem}:where(.cedros-login-admin-root) .cebbwf5-admin__skeleton--lg{width:6rem;height:2rem}:where(.cedros-login-admin-root) .cebbwf5-admin-stats-error,:where(.cedros-login-admin-root) .cebbwf5-admin-stats-loading{flex-direction:column;align-items:center;gap:.75rem;padding:2rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-stats-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-stats-title{color:var(--admin-fg);margin:0;font-size:.9375rem;font-weight:600}:where(.cedros-login-admin-root) .cebbwf5-admin-stats-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}:where(.cedros-login-admin-root) .cebbwf5-admin-stats-grid>*{animation:cedros-slide-up-fade .3s var(--cebbwf5-ease-out) backwards}:where(.cedros-login-admin-root) .cebbwf5-admin-stats-grid>:nth-child(2){animation-delay:50ms}:where(.cedros-login-admin-root) .cebbwf5-admin-stats-grid>:nth-child(3){animation-delay:.1s}:where(.cedros-login-admin-root) .cebbwf5-admin-stats-grid>:nth-child(n+4){animation-delay:.15s}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-card{background:var(--admin-bg);background-image:var(--cebbwf5-surface-sheen);border:1px solid var(--admin-border);border-radius:var(--admin-radius);box-shadow:var(--admin-shadow-card);flex-direction:column;gap:.25rem;padding:1.125rem 1.25rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--admin-fg);font-size:1.5rem;font-weight:700}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-sub{color:var(--admin-muted);font-size:.875rem;font-family:var(--cebbwf5-font-mono)}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-pending{border-left:3px solid var(--admin-warning)}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-pending .cebbwf5-admin-stat-value{color:var(--admin-warning)}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-success{border-left:3px solid var(--admin-success)}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-success .cebbwf5-admin-stat-value{color:var(--admin-success)}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-error{border-left:3px solid var(--admin-error)}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-error .cebbwf5-admin-stat-value{color:var(--admin-error)}.cedros-setting-select{border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);background-color:var(--cebbwf5-login-background);color:var(--cebbwf5-login-foreground);cursor:pointer;appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");background-position:right .5rem center;background-repeat:no-repeat;padding:.375rem 2rem .375rem .75rem;font-size:.8125rem;transition:border-color .15s,box-shadow .15s}.cedros-setting-select:hover{border-color:var(--cebbwf5-login-ring)}.cedros-setting-select:focus{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 2px color-mix(in srgb, var(--cebbwf5-login-ring) 20%, transparent);outline:none}.cedros-setting-select:disabled{opacity:.5;cursor:not-allowed}.cedros-login-admin-root .cedros-setting-select{border-color:var(--admin-border);border-radius:calc(var(--admin-radius) - 2px);background-color:var(--admin-muted-bg);height:2.25rem;color:var(--admin-fg);background-position:right .75rem center;background-size:1rem;padding:0 2.25rem 0 .75rem}.cedros-login-admin-root .cedros-setting-select:hover{border-color:var(--admin-ring);background-color:var(--admin-bg)}.cedros-login-admin-root .cedros-setting-select:focus{border-color:var(--admin-ring);box-shadow:0 0 0 3px color-mix(in srgb, var(--admin-ring) 15%, transparent)}.cebbwf5-dark .cedros-setting-select,.dark .cedros-setting-select,[data-theme=dark] .cedros-setting-select,[data-color-mode=dark] .cedros-setting-select,[data-color-scheme=dark] .cedros-setting-select{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\")}.cedros-setting-unit{color:var(--cebbwf5-login-muted-foreground);white-space:nowrap;font-size:.75rem}.cedros-duration-input{flex-direction:column;gap:.5rem;display:flex}.cedros-duration-custom{align-items:center;gap:.5rem;display:flex}.cedros-duration-display{color:var(--cebbwf5-login-link);font-size:.75rem;font-weight:500}.cedros-percentage-input{flex-direction:column;gap:.5rem;display:flex}.cedros-percentage-slider-row{align-items:center;gap:.75rem;display:flex}.cedros-percentage-slider{background:var(--cebbwf5-login-accent);appearance:none;cursor:pointer;border-radius:3px;flex:1;height:6px}.cedros-percentage-slider::-webkit-slider-thumb{appearance:none;background:var(--cebbwf5-login-primary);cursor:pointer;border:2px solid var(--cebbwf5-login-card);width:18px;height:18px;box-shadow:var(--cebbwf5-login-shadow-xs);border-radius:50%}.cedros-percentage-slider::-moz-range-thumb{background:var(--cebbwf5-login-primary);cursor:pointer;border:2px solid var(--cebbwf5-login-card);width:18px;height:18px;box-shadow:var(--cebbwf5-login-shadow-xs);border-radius:50%}.cedros-percentage-slider:focus{outline:none}.cedros-percentage-slider:focus::-webkit-slider-thumb{box-shadow:0 0 0 3px color-mix(in srgb, var(--cebbwf5-login-ring) 30%, transparent)}.cedros-percentage-value{font-size:.875rem;font-weight:600;font-family:var(--cebbwf5-font-mono);color:var(--cebbwf5-login-foreground);text-align:right;min-width:48px}.cedros-preset-buttons{flex-wrap:wrap;gap:.375rem;display:flex}.cedros-preset-button{background:var(--cebbwf5-login-accent);border:1px solid var(--cebbwf5-login-border);border-radius:calc(var(--cebbwf5-login-radius) - 4px);color:var(--cebbwf5-login-muted-foreground);cursor:pointer;transition:background var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);padding:.25rem .5rem;font-size:.75rem}.cedros-preset-button:hover{background:var(--cebbwf5-login-card);border-color:var(--cebbwf5-login-ring);color:var(--cebbwf5-login-foreground)}.cedros-preset-button-active,.cedros-preset-button-active:hover{background:var(--cebbwf5-login-primary);border-color:var(--cebbwf5-login-primary);color:var(--cebbwf5-login-primary-foreground)}.cedros-select-input{flex-direction:column;gap:.5rem;display:flex}.cedros-select-custom,.cedros-number-input{align-items:center;gap:.5rem;display:flex}.cedros-path-input{border:1px solid var(--cebbwf5-login-border);border-radius:calc(var(--cebbwf5-login-radius) - 2px);background:var(--cebbwf5-login-card);min-width:0;transition:border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), box-shadow var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);flex:1;align-items:stretch;display:flex;overflow:hidden}.cedros-path-input:focus-within{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 2px color-mix(in srgb, var(--cebbwf5-login-ring) 20%, transparent)}.cedros-path-input__prefix{font-family:var(--cebbwf5-font-mono);color:var(--cebbwf5-login-muted-foreground);background:var(--cebbwf5-login-accent);border-right:1px solid var(--cebbwf5-login-border);-webkit-user-select:none;user-select:none;align-items:center;padding:0 .625rem;font-size:.875rem;display:flex}.cedros-path-input .cedros-path-input__field{background:0 0;border:none;border-radius:0}.cedros-path-input .cedros-path-input__field:focus{box-shadow:none}.cedros-system-settings-actions{border-top:1px solid var(--cebbwf5-login-border);justify-content:flex-end;align-items:center;gap:.75rem;padding-top:1rem;display:flex}.cedros-settings-change-count{color:var(--cebbwf5-login-link);margin-right:auto;font-size:.875rem}.cedros-token-list-input{flex-direction:column;gap:.75rem;width:100%;display:flex}.cedros-token-presets{background:var(--cebbwf5-login-card);border-radius:var(--cebbwf5-login-radius);border:1px solid var(--cebbwf5-login-border);flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cedros-token-presets-label{color:var(--cebbwf5-login-muted-foreground);text-transform:uppercase;letter-spacing:.025em;font-size:.75rem;font-weight:600}.cedros-token-presets-list{flex-wrap:wrap;gap:.375rem;display:flex}.cedros-token-preset-chip{background:var(--cebbwf5-login-muted);color:var(--cebbwf5-login-foreground);border:1px solid var(--cebbwf5-login-border);cursor:pointer;transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), opacity var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);border-radius:9999px;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;display:inline-flex}button.cedros-token-preset-chip:hover{background:var(--cebbwf5-login-accent);border-color:var(--cebbwf5-login-ring)}.cedros-token-preset-chip-selected{background:var(--cebbwf5-login-primary);color:var(--cebbwf5-login-primary-foreground);border-color:var(--cebbwf5-login-primary)}.cedros-token-preset-chip-selected:hover{background:var(--cebbwf5-login-primary);opacity:.9}.cedros-token-chip-check{margin-left:.125rem;font-size:.625rem}.cedros-token-symbol-list-input{flex-direction:column;gap:.75rem;display:flex}.cedros-token-list-empty{text-align:center;color:var(--cebbwf5-login-muted-foreground);background:var(--cebbwf5-login-muted);border-radius:var(--cebbwf5-login-radius);border:1px dashed var(--cebbwf5-login-border);margin:0;padding:1rem;font-size:.875rem}.cedros-token-row{background:var(--cebbwf5-login-muted);border-radius:var(--cebbwf5-login-radius);border:1px solid var(--cebbwf5-login-border);align-items:flex-start;gap:.5rem;padding:.75rem;display:flex}.cedros-token-row:hover{border-color:var(--cebbwf5-login-ring)}.cedros-token-row-fields{flex:1;grid-template-columns:80px 1fr 70px;gap:.5rem;min-width:0;display:grid}@media (width>=640px){.cedros-token-row-fields{grid-template-columns:80px 1fr 70px 1fr}}.cedros-token-input-symbol{text-transform:uppercase;font-weight:600}.cedros-token-input-mint{font-family:ui-monospace,monospace;font-size:.75rem}.cedros-token-input-decimals{text-align:center}.cedros-token-input-logo{font-size:.75rem}.cedros-token-remove-btn{width:28px;height:28px;color:var(--cebbwf5-login-muted-foreground);cursor:pointer;border-radius:var(--cebbwf5-login-radius);transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), opacity var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-spring);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1.25rem;line-height:1;display:flex}.cedros-token-remove-btn:hover{background:var(--cebbwf5-destructive);color:var(--cebbwf5-destructive-foreground)}.cedros-token-add-btn{border:1px dashed var(--cebbwf5-login-border);color:var(--cebbwf5-login-muted-foreground);cursor:pointer;border-radius:var(--cebbwf5-login-radius);transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);background:0 0;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1rem;font-size:.875rem;font-weight:500;display:flex}.cedros-token-add-btn:hover{border-color:var(--cebbwf5-login-ring);color:var(--cebbwf5-login-link);background:color-mix(in srgb, var(--cebbwf5-login-link) 10%, transparent)}.cedros-toggle{cursor:pointer;background:0 0;border:none;align-items:center;gap:.75rem;padding:0;font-family:inherit;display:inline-flex}.cedros-toggle-track{background:var(--cebbwf5-login-muted);width:44px;height:24px;transition:background var(--cebbwf5-duration-normal) var(--cebbwf5-ease-out);border-radius:12px;position:relative;box-shadow:inset 0 1px 2px #0000000f}.cedros-toggle-on .cedros-toggle-track{background:var(--cebbwf5-login-primary);box-shadow:inset 0 1px 2px #00000026, var(--cebbwf5-edge-highlight)}.cedros-toggle-off .cedros-toggle-track{background:var(--cebbwf5-login-muted)}.cedros-toggle-thumb{background:var(--cebbwf5-login-primary-foreground);width:20px;height:20px;box-shadow:var(--cebbwf5-login-shadow-xs);transition:transform var(--cebbwf5-duration-normal) var(--cebbwf5-ease-spring), width var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);border-radius:10px;position:absolute;top:2px;left:2px}.cedros-toggle-on .cedros-toggle-thumb{background:var(--cebbwf5-login-primary-foreground);transform:translate(20px)}.cedros-toggle:active:not(:disabled) .cedros-toggle-thumb{width:24px}.cedros-toggle-on:active:not(:disabled) .cedros-toggle-thumb{transform:translate(16px)}.cedros-toggle-label{color:var(--cebbwf5-login-muted-foreground);font-size:.875rem;font-weight:500}.cedros-toggle-on .cedros-toggle-label{color:var(--cebbwf5-login-foreground)}.cedros-login-admin-root .cedros-toggle-label{color:var(--admin-muted)}.cedros-login-admin-root .cedros-toggle-on .cedros-toggle-label{color:var(--admin-fg)}.cedros-toggle:focus-visible .cedros-toggle-track{outline:2px solid var(--cebbwf5-login-ring);outline-offset:2px}.cedros-secret-input{flex-direction:column;gap:.5rem;width:100%;display:flex}.cedros-secret-input-masked{flex-direction:row;align-items:center;gap:.75rem}.cedros-secret-masked{font-family:var(--cebbwf5-font-mono);color:var(--cebbwf5-login-muted-foreground);letter-spacing:.1em;font-size:.875rem}.cedros-secret-edit-btn,.cedros-secret-toggle-btn,.cedros-secret-done-btn{background:var(--cebbwf5-login-accent);border:1px solid var(--cebbwf5-login-border);border-radius:calc(var(--cebbwf5-login-radius) - 4px);color:var(--cebbwf5-login-muted-foreground);cursor:pointer;transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);padding:.375rem .75rem;font-size:.75rem;font-weight:500}.cedros-secret-edit-btn:hover,.cedros-secret-toggle-btn:hover,.cedros-secret-done-btn:hover{background:var(--cebbwf5-login-card);border-color:var(--cebbwf5-login-ring);color:var(--cebbwf5-login-foreground)}.cedros-secret-actions{gap:.5rem;display:flex}.cedros-setting-textarea{resize:vertical;min-height:100px;font-family:var(--cebbwf5-font-mono);font-size:.8125rem;line-height:1.5}.cedros-readonly-secret{flex-direction:column;gap:.5rem;display:flex}.cedros-readonly-secret-value{background:var(--cebbwf5-login-accent);border:1px solid var(--cebbwf5-login-border);border-radius:calc(var(--cebbwf5-login-radius) - 4px);align-items:center;min-height:2.25rem;padding:.5rem .75rem;display:flex;overflow-x:auto}.cedros-readonly-secret-code{font-family:var(--cebbwf5-font-mono);word-break:break-all;color:var(--cebbwf5-login-foreground);font-size:.8125rem}.cedros-readonly-secret-empty{color:var(--cebbwf5-login-muted-foreground);font-size:.8125rem;font-style:italic}.cedros-readonly-secret-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.cedros-secret-action-btn{background:var(--cebbwf5-login-accent);border:1px solid var(--cebbwf5-login-border);border-radius:calc(var(--cebbwf5-login-radius) - 4px);color:var(--cebbwf5-login-muted-foreground);cursor:pointer;transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);padding:.375rem .75rem;font-size:.75rem;font-weight:500}.cedros-secret-action-btn:hover{background:var(--cebbwf5-login-card);border-color:var(--cebbwf5-login-ring);color:var(--cebbwf5-login-foreground)}.cedros-secret-action-btn:disabled{opacity:.5;cursor:not-allowed}.cedros-secret-action-btn--danger{color:var(--cebbwf5-destructive);border-color:var(--cebbwf5-destructive)}.cedros-secret-action-btn--danger:hover{background:var(--cebbwf5-destructive);color:var(--cebbwf5-destructive-foreground)}.cedros-readonly-secret-confirm{align-items:center;gap:.5rem;display:flex}.cedros-readonly-secret-confirm-text{color:var(--cebbwf5-destructive);font-size:.75rem;font-weight:500}.cedros-readonly-secret-error{color:var(--cebbwf5-destructive);margin:0;font-size:.75rem}:where(.cedros-login-admin-root) .cebbwf5-admin-status{background:var(--admin-bg);border:1px solid var(--admin-border);border-radius:var(--admin-radius);padding:1.25rem}:where(.cedros-login-admin-root) .cebbwf5-admin-status-error{text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:2rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-error{color:var(--admin-error);margin:0;font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-status-loading{justify-content:center;align-items:center;gap:.75rem;padding:2rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-loading-indicator{border:2px solid var(--admin-muted-bg);border-top-color:var(--cebbwf5-login-admin-link,var(--admin-link,var(--cebbwf5-login-link)));border-radius:50%;width:1.5rem;height:1.5rem;animation:.8s linear infinite cedros-spin}:where(.cedros-login-admin-root) .cebbwf5-admin-loading-text{color:var(--admin-muted);font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-status-header{border-bottom:1px solid var(--admin-border);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-status-title{color:var(--admin-fg);margin:0;font-size:.9375rem;font-weight:600}:where(.cedros-login-admin-root) .cebbwf5-admin-status-actions{align-items:center;gap:.5rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-status-badge{text-transform:uppercase;letter-spacing:.025em;background:var(--admin-muted-bg);color:var(--admin-muted);border-radius:9999px;align-items:center;padding:.125rem .5rem;font-size:.6875rem;font-weight:500;display:inline-flex}:where(.cedros-login-admin-root) .cebbwf5-admin-status-badge-enabled{background:var(--admin-success-light);color:var(--admin-success)}:where(.cedros-login-admin-root) .cebbwf5-admin-status-badge-disabled{background:var(--admin-muted-bg);color:var(--admin-muted)}:where(.cedros-login-admin-root) .cebbwf5-admin-status-badge-sm{margin-left:.5rem;padding:.125rem .5rem;font-size:.6875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-icon-button{justify-content:center;align-items:center;width:2.25rem;min-width:2.25rem;height:2.25rem;padding:0;font-size:1rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-status-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}:where(.cedros-login-admin-root) .cebbwf5-admin-status-section{background:var(--admin-muted-bg);border:1px solid var(--admin-border);border-radius:calc(var(--admin-radius) - 2px);padding:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-status-section-title{color:var(--admin-muted);text-transform:uppercase;letter-spacing:.06em;align-items:center;margin:0 0 .75rem;font-size:.6875rem;font-weight:600;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-status-item{justify-content:space-between;align-items:center;padding:.375rem 0;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-status-item:not(:last-child){border-bottom:1px solid var(--admin-border)}:where(.cedros-login-admin-root) .cebbwf5-admin-status-label{color:var(--admin-muted);font-size:.8125rem}:where(.cedros-login-admin-root) .cebbwf5-admin-status-value{color:var(--admin-fg);font-size:.8125rem;font-weight:500;font-family:var(--cebbwf5-font-mono)}:where(.cedros-login-admin-root) .cebbwf5-admin-status-connected{color:var(--admin-success)}:where(.cedros-login-admin-root) .cebbwf5-admin-status-disconnected{color:var(--admin-error)}:where(.cedros-login-admin-root) .cebbwf5-admin-status-footer{border-top:1px solid var(--admin-border);justify-content:space-between;align-items:center;margin-top:1rem;padding-top:.75rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-status-wallet{font-size:.75rem;font-family:var(--cebbwf5-font-mono);background:var(--admin-muted-bg);color:var(--admin-muted);border-radius:.25rem;padding:.125rem .375rem}:where(.cedros-dashboard){--admin-bg:var(--cebbwf5-login-card);--admin-fg:var(--cebbwf5-login-foreground);--admin-muted:var(--cebbwf5-login-muted-foreground);--admin-muted-bg:var(--cebbwf5-login-muted);--admin-accent:var(--cebbwf5-login-accent);--admin-accent-fg:var(--cebbwf5-accent-foreground);--admin-border:var(--cebbwf5-login-border);--admin-input:var(--cebbwf5-input);--admin-ring:var(--cebbwf5-login-ring);--admin-primary:var(--cebbwf5-login-primary);--admin-primary-fg:var(--cebbwf5-login-primary-foreground);--admin-link:var(--cebbwf5-login-link);--admin-success:var(--cebbwf5-login-success);--admin-success-light:var(--cebbwf5-login-success-soft);--admin-warning:var(--cebbwf5-login-warning);--admin-warning-light:var(--cebbwf5-warning-light);--admin-error:var(--cebbwf5-login-error);--admin-error-light:var(--cebbwf5-destructive-light);--admin-info:var(--cebbwf5-login-info);--admin-info-light:color-mix(in srgb, var(--cebbwf5-login-info) 12%, transparent);--admin-sidebar-bg:var(--cebbwf5-login-card);--admin-card-bg:var(--cebbwf5-login-card);--admin-table-head:var(--cebbwf5-login-muted);--admin-table-row:var(--cebbwf5-login-card);--admin-table-row-hover:var(--cebbwf5-login-accent);--admin-font:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;--admin-font-mono:ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Consolas, monospace;--admin-text:var(--admin-fg);--admin-radius:.5rem;--admin-shadow-sm:var(--cebbwf5-login-shadow-xs);--admin-shadow:var(--cebbwf5-login-shadow-md);--admin-shadow-card:var(--cebbwf5-login-shadow-sm);color:var(--admin-fg);background:var(--admin-bg);font-size:.875rem;line-height:1.5;font-family:var(--admin-font)}.cedros-login-admin-root .cedros-button{border-radius:var(--admin-radius);height:2.25rem;padding:0 .875rem}.cedros-login-admin-root .cedros-button:focus-visible{outline:2px solid var(--admin-ring);outline-offset:2px}.cedros-login-admin-root .cedros-button-sm{border-radius:calc(var(--admin-radius) - 2px);height:2rem;font-size:.75rem}.cedros-login-admin-root .cedros-button-primary{background-color:var(--admin-primary);color:var(--admin-primary-fg);box-shadow:var(--admin-shadow-sm)}.cedros-login-admin-root .cedros-button-primary:hover:not(:disabled){background-color:color-mix(in srgb, var(--admin-primary) 85%, var(--admin-primary-fg))}.cedros-login-admin-root .cedros-button-outline{border-color:var(--admin-input)}.cedros-login-admin-root .cedros-button-outline:hover:not(:disabled),.cedros-login-admin-root .cedros-button-ghost:hover:not(:disabled){background-color:var(--admin-accent)}.cedros-login-admin-root .cedros-input{border:1px solid var(--admin-input);border-radius:var(--admin-radius);background-color:var(--admin-bg);height:2.25rem;box-shadow:none}.cedros-login-admin-root .cedros-input:focus,.cedros-login-admin-root .cedros-input:focus-visible{border-color:var(--admin-ring);box-shadow:0 0 0 3px color-mix(in srgb, var(--admin-ring) 15%, transparent)}.cedros-login-admin-root .cedros-toggle{gap:.5rem}.cedros-login-admin-root .cedros-toggle-track{background:var(--admin-muted-bg);border:1px solid var(--admin-border);width:38px;height:22px}.cedros-login-admin-root .cedros-toggle-thumb{background:var(--admin-bg);width:16px;height:16px;box-shadow:var(--admin-shadow-sm)}.cedros-login-admin-root .cedros-toggle-on .cedros-toggle-track{background:var(--admin-primary);border-color:var(--admin-primary)}.cedros-login-admin-root .cedros-toggle-off .cedros-toggle-track{background:var(--admin-muted-bg);border-color:var(--admin-border)}.cedros-login-admin-root .cedros-toggle-on .cedros-toggle-thumb{transform:translate(16px)}.cedros-login-admin-root .cedros-toggle:active:not(:disabled) .cedros-toggle-thumb{width:20px}.cedros-login-admin-root .cedros-toggle-on:active:not(:disabled) .cedros-toggle-thumb{transform:translate(12px)}.cedros-login-admin-root .cedros-toggle-label{color:var(--admin-fg);font-weight:500}.cedros-login-admin-root .cedros-toggle:focus-visible .cedros-toggle-track{outline:2px solid var(--admin-ring);outline-offset:2px}.cedros-dashboard{background:var(--admin-bg);height:100%;min-height:400px;color:var(--admin-fg);border:1px solid var(--admin-border);border-radius:var(--admin-radius);grid-template-rows:1fr;grid-template-columns:220px 1fr;display:grid;overflow:hidden}.cedros-dashboard--loading{flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:400px;display:flex}.cedros-dashboard__loading-text{color:var(--admin-muted);font-size:.875rem}.cedros-dashboard__sidebar{background:var(--admin-sidebar-bg);border-right:1px solid var(--admin-border);flex-direction:column;min-height:0;display:flex}.cedros-dashboard__sidebar-header{border-bottom:1px solid var(--admin-border);padding:1rem .75rem}.cedros-dashboard__logo{color:var(--admin-fg);align-items:center;gap:.5rem;display:flex}.cedros-dashboard__logo svg{flex-shrink:0}.cedros-dashboard__logo-text{letter-spacing:-.01em;font-size:.875rem;font-weight:600}.cedros-dashboard__nav{flex:1;padding:.5rem;overflow-y:auto}.cedros-dashboard__nav-group{flex-direction:column;gap:.125rem;display:flex}.cedros-dashboard__nav-group+.cedros-dashboard__nav-group{border-top:1px solid var(--admin-border);margin-top:1rem;padding-top:.5rem}.cedros-dashboard__nav-label{text-transform:uppercase;letter-spacing:.05em;color:var(--admin-muted);padding:.5rem .75rem .375rem;font-size:.6875rem;font-weight:500}.cedros-dashboard__nav-label--collapsible{cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;transition:color .15s;display:flex}.cedros-dashboard__nav-label--collapsible:hover{color:var(--admin-text)}.cedros-dashboard__nav-chevron{justify-content:center;align-items:center;width:1rem;height:1rem;transition:transform .2s;display:flex}.cedros-dashboard__nav-chevron svg{opacity:.6;width:.625rem;height:.625rem}.cedros-dashboard__nav-chevron--expanded{transform:rotate(90deg)}.cedros-dashboard__nav-item{width:100%;color:var(--admin-muted);border-radius:calc(var(--admin-radius) - 2px);cursor:pointer;text-align:left;transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-spring);background:0 0;border:none;align-items:center;gap:.625rem;padding:.5rem .75rem;font-family:inherit;font-size:.8125rem;font-weight:500;line-height:1.5;display:flex;position:relative}.cedros-dashboard__nav-item:hover{background:color-mix(in srgb, var(--admin-accent) 60%, transparent);color:var(--admin-fg)}.cedros-dashboard__nav-item:before{content:\"\";background:var(--admin-primary);width:2.5px;height:0;transition:height var(--cebbwf5-duration-normal) var(--cebbwf5-ease-out);border-radius:999px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.cedros-dashboard__nav-item--active{background:var(--admin-accent);color:var(--admin-fg)}.cedros-dashboard__nav-item--active:before{height:1rem}.cedros-dashboard__nav-icon{opacity:.7;flex-shrink:0;justify-content:center;align-items:center;width:1rem;height:1rem;display:flex}.cedros-dashboard__nav-item--active .cedros-dashboard__nav-icon{opacity:1}.cedros-dashboard__nav-text{white-space:nowrap}.cedros-dashboard__sidebar-footer{border-top:1px solid var(--admin-border);flex-direction:column;gap:.75rem;margin-top:auto;padding:.75rem;display:flex}.cedros-dashboard__org{border-radius:calc(var(--admin-radius) - 2px);background:var(--admin-accent);align-items:center;gap:.625rem;padding:.5rem;display:flex}.cedros-dashboard__org-avatar{border-radius:calc(var(--admin-radius) - 2px);background:var(--admin-primary);width:2rem;height:2rem;color:var(--admin-primary-fg);flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:flex}.cedros-dashboard__org-info{flex-direction:column;min-width:0;display:flex}.cedros-dashboard__org-name{color:var(--admin-fg);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:500;overflow:hidden}.cedros-dashboard__org-role{color:var(--admin-muted);text-transform:capitalize;font-size:.6875rem}.cedros-dashboard__user-card{border-radius:calc(var(--admin-radius) - 2px);background:var(--admin-accent);align-items:center;gap:.625rem;padding:.5rem;display:flex}.cedros-dashboard__user-avatar{border-radius:50%;flex-shrink:0;width:2rem;height:2rem;overflow:hidden}.cedros-dashboard__user-avatar-img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.cedros-dashboard__user-avatar-placeholder{background:var(--admin-muted-bg);width:100%;height:100%;color:var(--admin-muted);justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:flex}.cedros-dashboard__user-info{flex-direction:column;min-width:0;display:flex}.cedros-dashboard__user-name{color:var(--admin-fg);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:500;overflow:hidden}.cedros-dashboard__user-email{color:var(--admin-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.6875rem;overflow:hidden}.cedros-profile-dropdown{width:100%;position:relative}.cedros-profile-dropdown__trigger{border-radius:calc(var(--admin-radius) - 2px);background:var(--admin-accent);width:100%;color:var(--admin-fg);cursor:pointer;text-align:left;border:none;align-items:center;gap:.625rem;padding:.5rem;font-family:inherit;transition:background .15s;display:flex}.cedros-profile-dropdown__trigger:hover{background:var(--admin-accent-hover,color-mix(in srgb, var(--admin-accent) 80%, var(--admin-fg) 20%))}.cedros-profile-dropdown__avatar{border-radius:50%;flex-shrink:0;width:2rem;height:2rem;overflow:hidden}.cedros-profile-dropdown__avatar-img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.cedros-profile-dropdown__avatar-placeholder{background:var(--admin-muted-bg);width:100%;height:100%;color:var(--admin-muted);justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:flex}.cedros-profile-dropdown__info{flex-direction:column;flex:1;min-width:0;display:flex}.cedros-profile-dropdown__name{white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:500;overflow:hidden}.cedros-profile-dropdown__email{color:var(--admin-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.6875rem;overflow:hidden}.cedros-profile-dropdown__chevron{opacity:.5;flex-shrink:0;transition:transform .2s}.cedros-profile-dropdown__chevron--open{transform:rotate(180deg)}.cedros-profile-dropdown__menu{background:var(--admin-card-bg);border:1px solid var(--admin-border);border-radius:calc(var(--admin-radius) - 2px);box-shadow:var(--admin-shadow,var(--cebbwf5-login-shadow-md));z-index:100;margin-bottom:.25rem;padding:.25rem;position:absolute;bottom:100%;left:0;right:0}.cedros-profile-dropdown__item{border-radius:calc(var(--admin-radius) - 4px);width:100%;color:var(--admin-fg);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.5rem;padding:.5rem .625rem;font-family:inherit;font-size:.8125rem;transition:background .15s;display:flex}.cedros-profile-dropdown__item:hover{background:var(--admin-accent)}.cedros-profile-dropdown__item svg{opacity:.7;flex-shrink:0}.cedros-profile-dropdown__item--danger{color:var(--cebbwf5-login-error)}.cedros-profile-dropdown__item--danger:hover{background:color-mix(in srgb, var(--cebbwf5-login-error) 10%, transparent)}.cedros-dashboard__main{background:var(--admin-bg);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.cedros-dashboard__header{border-bottom:1px solid var(--admin-border);background:var(--admin-card-bg);padding:1rem 1.5rem}.cedros-dashboard__breadcrumb{align-items:center;gap:.25rem;font-size:.875rem;display:flex}.cedros-dashboard__breadcrumb-root{color:var(--admin-muted)}.cedros-dashboard__breadcrumb-sep{color:var(--admin-muted);opacity:.5;align-items:center;display:flex}.cedros-dashboard__breadcrumb-current{color:var(--admin-fg);font-weight:500}.cedros-dashboard__content{scrollbar-gutter:stable;flex:1;min-width:0;min-height:0;padding:1.5rem;overflow:hidden auto}.cedros-dashboard__overview{flex-direction:column;gap:1.5rem;display:flex}.cedros-dashboard__cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}.cedros-dashboard__card{background:var(--admin-bg);background-image:var(--cebbwf5-surface-sheen);border:1px solid var(--admin-border);border-radius:var(--admin-radius);box-shadow:var(--admin-shadow-card);animation:cedros-slide-up-fade .3s var(--cebbwf5-ease-out) backwards;padding:1.125rem 1.25rem}.cedros-dashboard__cards>.cedros-dashboard__card:nth-child(2){animation-delay:50ms}.cedros-dashboard__cards>.cedros-dashboard__card:nth-child(3){animation-delay:.1s}.cedros-dashboard__cards>.cedros-dashboard__card:nth-child(n+4){animation-delay:.15s}.cedros-dashboard__card-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.cedros-dashboard__card-title{color:var(--admin-muted);font-size:.8125rem;font-weight:500}.cedros-dashboard__card-icon{color:var(--admin-muted);opacity:.7;align-items:center;display:flex}.cedros-dashboard__card-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--admin-fg);margin-bottom:.25rem;font-size:1.5rem;font-weight:700;line-height:1}.cedros-dashboard__card-desc{color:var(--admin-muted);margin:0;font-size:.875rem}.cedros-dashboard__section{flex-direction:column;gap:1rem;width:100%;max-width:100%;display:flex;overflow:hidden}.cedros-dashboard__section-header{justify-content:space-between;align-items:center;display:flex}.cedros-dashboard__section-title{color:var(--admin-fg);margin:0;font-size:.9375rem;font-weight:600}.cedros-dashboard__invites{flex-direction:column;gap:2rem;display:flex}.cedros-dashboard__toolbar{border-bottom:1px solid var(--admin-border);align-items:flex-end;gap:1rem;padding-bottom:1rem;display:flex}.cedros-dashboard__filter{flex-direction:column;gap:.375rem;display:flex}.cedros-dashboard__filter-label{color:var(--admin-muted);font-size:.75rem;font-weight:500}.cedros-dashboard__select{background:var(--admin-muted-bg);border:1px solid var(--admin-border);border-radius:calc(var(--admin-radius) - 2px);min-width:160px;height:2.25rem;color:var(--admin-fg);cursor:pointer;appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");background-position:right .75rem center;background-repeat:no-repeat;background-size:1rem;padding:0 2.25rem 0 .75rem;font-size:.875rem;transition:border-color .15s,background-color .15s}.cedros-dashboard__select:hover{border-color:var(--admin-ring);background-color:var(--admin-bg)}.cebbwf5-dark .cedros-dashboard__select,.dark .cedros-dashboard__select,[data-theme=dark] .cedros-dashboard__select,[data-color-mode=dark] .cedros-dashboard__select,[data-color-scheme=dark] .cedros-dashboard__select{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\")}.cedros-dashboard__pipeline{flex-direction:column;gap:1.5rem;display:flex}.cedros-dashboard__select:focus{border-color:var(--admin-ring);background-color:var(--admin-bg);box-shadow:0 0 0 3px color-mix(in srgb, var(--admin-ring) 15%, transparent);outline:none}.cedros-dashboard__text-muted{color:var(--admin-muted);margin:0 0 1rem;font-size:.875rem}@media (width<=768px){.cedros-dashboard{grid-template-rows:auto 1fr;grid-template-columns:1fr}.cedros-dashboard__sidebar{border-right:none;border-bottom:1px solid var(--admin-border)}.cedros-dashboard__sidebar-header{display:none}.cedros-dashboard__nav{padding:.5rem}.cedros-dashboard__nav-group{flex-direction:row;gap:.25rem;overflow-x:auto}.cedros-dashboard__nav-label{display:none}.cedros-dashboard__nav-item{flex-shrink:0;padding:.5rem .625rem}.cedros-dashboard__nav-text{display:none}.cedros-dashboard__nav-icon{width:1.25rem;height:1.25rem}.cedros-dashboard__sidebar-footer{display:none}.cedros-dashboard__content{padding:1rem}.cedros-dashboard__cards{grid-template-columns:1fr}}.cedros-login-dashboard-card{color:var(--cebbwf5-login-foreground);flex-direction:column;gap:.75rem;font-size:.875rem;display:flex}.cedros-login-dashboard-card>p{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.8125rem;line-height:1.5}.cedros-login-dashboard-card>header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.cedros-login-dashboard-card>header p{text-transform:uppercase;letter-spacing:.06em;color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.6875rem;font-weight:600}.cedros-login-dashboard-card>header strong{background:var(--cebbwf5-login-muted);color:var(--cebbwf5-login-muted-foreground);border-radius:999px;align-items:center;gap:.375rem;padding:.125rem .5rem;font-size:.6875rem;font-weight:600;display:inline-flex}.cedros-login-dashboard-card>header strong:before{content:\"\";background:currentColor;border-radius:50%;width:6px;height:6px}.cedros-login-dashboard-card[data-state=happy]>header strong{background:var(--cebbwf5-login-success-soft);color:color-mix(in srgb, var(--cebbwf5-login-success) 70%, var(--cebbwf5-login-foreground))}.cedros-login-dashboard-card[data-state=error]>header strong{background:var(--cebbwf5-destructive-light);color:var(--cebbwf5-destructive)}.cedros-login-dashboard-card[data-state=loading]>header strong:before{animation:cedros-pulse 1.5s var(--cebbwf5-ease-in-out) infinite}.cedros-login-dashboard-card__metrics{grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));gap:.625rem;margin:0;display:grid}.cedros-login-dashboard-card__metric{background:color-mix(in srgb, var(--cebbwf5-login-muted) 65%, transparent);border-radius:calc(var(--cebbwf5-login-radius) - 2px);animation:cedros-slide-up-fade .3s var(--cebbwf5-ease-out) backwards;flex-direction:column;gap:.125rem;padding:.625rem .75rem;display:flex}.cedros-login-dashboard-card__metric:nth-child(2){animation-delay:40ms}.cedros-login-dashboard-card__metric:nth-child(3){animation-delay:80ms}.cedros-login-dashboard-card__metric:nth-child(n+4){animation-delay:.12s}.cedros-login-dashboard-card__metric dt{color:var(--cebbwf5-login-muted-foreground);font-size:.6875rem;font-weight:500}.cedros-login-dashboard-card__metric dd{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--cebbwf5-login-foreground);margin:0;font-size:1.125rem;font-weight:700;line-height:1.3}.cedros-login-dashboard-card__metric span{color:var(--cebbwf5-login-muted-foreground);font-size:.6875rem}.cedros-login-dashboard-card>button{height:2rem;font:inherit;color:var(--cebbwf5-login-foreground);background:var(--cebbwf5-login-background);border:1px solid var(--cebbwf5-input);border-radius:var(--cebbwf5-login-radius);box-shadow:var(--cebbwf5-login-shadow-xs);cursor:pointer;transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), box-shadow var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);align-self:flex-start;align-items:center;gap:.375rem;padding:0 .75rem;font-size:.8125rem;font-weight:500;display:inline-flex}.cedros-login-dashboard-card>button:hover:not(:disabled){background:var(--cebbwf5-login-accent);border-color:color-mix(in srgb, var(--cebbwf5-login-ring) 18%, var(--cebbwf5-input));box-shadow:var(--cebbwf5-login-shadow-sm)}.cedros-login-dashboard-card>button:active:not(:disabled){transform:scale(.98)}.cedros-login-dashboard-card>button:focus-visible{outline:2px solid var(--cebbwf5-login-ring);outline-offset:2px}.cedros-login-dashboard-card>button:disabled{opacity:.5;cursor:not-allowed}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail{background:var(--admin-bg);border:1px solid var(--admin-border);border-radius:var(--admin-radius);padding:1.5rem}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-error,:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-loading{flex-direction:column;align-items:center;gap:.75rem;padding:2rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-header{border-bottom:1px solid var(--admin-border);justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-back-btn{align-items:center;gap:.25rem;display:inline-flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-actions{flex-wrap:wrap;gap:.5rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-btn-danger{color:var(--admin-error);border-color:var(--admin-error)}:where(.cedros-login-admin-root) .cebbwf5-admin-btn-danger:hover{background:color-mix(in srgb, var(--admin-error) 10%, transparent)}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-info{border-bottom:1px solid var(--admin-border);gap:1.5rem;margin-bottom:1.5rem;padding-bottom:1.5rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-avatar{flex-shrink:0}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-avatar-img{-o-object-fit:cover;object-fit:cover;border-radius:50%;width:64px;height:64px}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-avatar-placeholder{background:var(--admin-muted-bg);width:64px;height:64px;color:var(--admin-muted);border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;font-weight:600;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-meta{flex:1;min-width:0}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-name{margin:0 0 .25rem;font-size:1.25rem;font-weight:600}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-email{color:var(--admin-muted);margin:0 0 .5rem;font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-verified-badge{text-transform:uppercase;letter-spacing:.025em;background:var(--admin-success-light);color:var(--admin-success);border-radius:9999px;margin-left:.5rem;padding:.125rem .5rem;font-size:.6875rem;font-weight:500;display:inline-block}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-badges{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-admin-badge{text-transform:uppercase;letter-spacing:.025em;border-radius:9999px;padding:.125rem .5rem;font-size:.6875rem;font-weight:500;display:inline-block}:where(.cedros-login-admin-root) .cebbwf5-admin-admin-badge-yes{background:color-mix(in srgb, var(--cebbwf5-login-admin-link,var(--admin-link,var(--cebbwf5-login-link))) 15%, transparent);color:var(--cebbwf5-login-admin-link,var(--admin-link,var(--cebbwf5-login-link)))}:where(.cedros-login-admin-root) .cebbwf5-admin-admin-badge-no{background:var(--admin-muted-bg);color:var(--admin-muted)}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-methods{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-methods-label{color:var(--admin-muted);font-size:.75rem}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-dates{color:var(--admin-muted);margin:0;font-size:.75rem}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-referral{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.75rem;font-size:.75rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-referral-label,:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-referred-by{color:var(--admin-muted)}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-referral-label{text-transform:uppercase;letter-spacing:.04em;font-weight:500}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-referral-code,:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-referral-count{background:var(--admin-muted-bg);min-height:1.5rem;color:var(--admin-fg);border-radius:9999px;align-items:center;padding:.125rem .5rem;display:inline-flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-referral-code,:where(.cedros-login-admin-root) .cebbwf5-admin-user-uuid-link{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}:where(.cedros-login-admin-root) .cebbwf5-admin-user-uuid-link{color:var(--cebbwf5-login-admin-link,var(--admin-link,var(--cebbwf5-login-link)));cursor:pointer;font-size:inherit;text-underline-offset:.15em;background:0 0;border:0;padding:0;text-decoration:underline}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-stats{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-card{background:var(--admin-bg);border-radius:var(--admin-radius);border:1px solid var(--admin-border);box-shadow:var(--admin-shadow-card);flex-direction:column;gap:.25rem;padding:1.125rem 1.25rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-label{color:var(--admin-muted);font-size:.8125rem;font-weight:500}:where(.cedros-login-admin-root) .cebbwf5-admin-stat-value{color:var(--admin-fg);font-size:1.5rem;font-weight:700}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-tabs{border:none;border-bottom:1px solid var(--admin-border);gap:0;margin-bottom:1rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-tab{color:var(--admin-muted);cursor:pointer;transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), box-shadow var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.75rem 1rem;font-size:.875rem;font-weight:500}:where(.cedros-login-admin-root) .cebbwf5-admin-tab:hover{color:var(--admin-fg)}:where(.cedros-login-admin-root) .cebbwf5-admin-tab-active{color:var(--admin-fg);border-bottom-color:var(--admin-fg)}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-content{min-height:200px}:where(.cedros-login-admin-root) .cebbwf5-admin-tab-loading{color:var(--admin-muted);justify-content:center;align-items:center;gap:.5rem;padding:2rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-empty-message{text-align:center;color:var(--admin-muted);padding:2rem;font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-error-inline{color:var(--admin-error);margin:0 0 .75rem;font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-stats-error,:where(.cedros-login-admin-root) .cebbwf5-admin-tab-error{background:var(--cebbwf5-destructive-light);border-radius:calc(var(--cebbwf5-login-radius) - 2px);flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-stats-loading{color:var(--cebbwf5-login-muted-foreground);justify-content:center;align-items:center;gap:.5rem;padding:1.5rem;display:flex}.cedros-button-xs{padding:.125rem .375rem;font-size:.625rem}@media (width<=768px){:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-header{flex-direction:column;align-items:flex-start;gap:1rem}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-info{text-align:center;flex-direction:column;align-items:center}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-methods{justify-content:center}:where(.cedros-login-admin-root) .cebbwf5-admin-user-detail-stats{grid-template-columns:repeat(2,1fr)}}:where(.cedros-login-admin-root) .cebbwf5-admin-feature-disabled{text-align:center;background:var(--cebbwf5-login-muted);border-radius:var(--cebbwf5-login-radius);border:1px solid var(--cebbwf5-login-border);flex-direction:column;justify-content:center;align-items:center;padding:3rem 2rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-feature-disabled-icon{color:var(--cebbwf5-login-muted-foreground);opacity:.6;margin-bottom:1rem}:where(.cedros-login-admin-root) .cebbwf5-admin-feature-disabled-title{color:var(--cebbwf5-login-foreground);margin:0 0 .75rem;font-size:1.25rem;font-weight:600}:where(.cedros-login-admin-root) .cebbwf5-admin-feature-disabled-description{color:var(--cebbwf5-login-muted-foreground);max-width:400px;margin:0 0 1rem;line-height:1.5}:where(.cedros-login-admin-root) .cebbwf5-admin-feature-disabled-code{background:var(--cebbwf5-login-background);border:1px solid var(--cebbwf5-login-border);border-radius:calc(var(--cebbwf5-login-radius) * .5);margin-bottom:1rem;padding:.75rem 1.25rem}:where(.cedros-login-admin-root) .cebbwf5-admin-feature-disabled-code code{color:var(--cebbwf5-login-foreground);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.9rem}:where(.cedros-login-admin-root) .cebbwf5-admin-feature-disabled-note{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem;font-style:italic}.cedros-setup{background:radial-gradient(ellipse 80% 50% at 50% -10%, color-mix(in srgb, var(--cebbwf5-login-link) 7%, transparent), transparent), var(--cebbwf5-login-background);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.cedros-setup__loading{color:var(--cebbwf5-login-muted-foreground);flex-direction:column;align-items:center;gap:1rem;display:flex}.cedros-setup__loading-text{font-size:.875rem}.cedros-setup__container{background:var(--cebbwf5-login-card);background-image:var(--cebbwf5-surface-sheen);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-radius-card);width:100%;max-width:400px;box-shadow:var(--cebbwf5-login-shadow-lg);animation:cedros-slide-up-fade .4s var(--cebbwf5-ease-out) backwards;padding:2rem}.cedros-setup__header{text-align:center;margin-bottom:2rem}.cedros-setup__logo{background:var(--cebbwf5-login-primary);width:56px;height:56px;color:var(--cebbwf5-login-primary-foreground);border-radius:calc(var(--cebbwf5-login-radius) * 1.5);box-shadow:var(--cebbwf5-edge-highlight), var(--cebbwf5-login-shadow-md);animation:cedros-success-pop .5s var(--cebbwf5-ease-out) .15s backwards;justify-content:center;align-items:center;margin-bottom:1.5rem;display:inline-flex}.cedros-setup__title{color:var(--cebbwf5-login-foreground);margin:0;font-size:1.5rem;font-weight:600}.cedros-setup__subtitle{color:var(--cebbwf5-login-muted-foreground);margin:.5rem 0 0;font-size:.875rem}.cedros-setup__form{flex-direction:column;gap:1.25rem;display:flex}.cedros-setup__field{flex-direction:column;gap:.5rem;display:flex}.cedros-setup__label{color:var(--cebbwf5-login-foreground);font-size:.875rem;font-weight:500}.cedros-setup__required{color:var(--cebbwf5-destructive)}.cedros-setup__input{background:var(--cebbwf5-login-background);border:1px solid var(--cebbwf5-input);border-radius:var(--cebbwf5-login-radius);width:100%;color:var(--cebbwf5-login-foreground);transition:border-color var(--cebbwf5-duration-fast) ease, box-shadow var(--cebbwf5-duration-fast) ease;padding:.625rem .875rem;font-size:.875rem}.cedros-setup__input::placeholder{color:var(--cebbwf5-login-muted-foreground)}.cedros-setup__input:focus{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 2px color-mix(in srgb, var(--cebbwf5-login-ring) 20%, transparent);outline:none}.cedros-setup__input--error{border-color:var(--cebbwf5-destructive)}.cedros-setup__input--error:focus{border-color:var(--cebbwf5-destructive);box-shadow:0 0 0 2px color-mix(in srgb, var(--cebbwf5-destructive) 20%, transparent)}.cedros-setup__error{color:var(--cebbwf5-destructive);font-size:.75rem}.cedros-setup__button{background:var(--cebbwf5-login-primary);width:100%;color:var(--cebbwf5-login-primary-foreground);border-radius:var(--cebbwf5-login-radius);cursor:pointer;box-shadow:var(--cebbwf5-edge-highlight), var(--cebbwf5-login-shadow-xs);transition:background-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), box-shadow var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), opacity var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);border:none;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}.cedros-setup__button:hover:not(:disabled){background:color-mix(in srgb, var(--cebbwf5-login-primary) 85%, var(--cebbwf5-login-primary-foreground));box-shadow:var(--cebbwf5-edge-highlight), var(--cebbwf5-login-shadow-md);transform:translateY(-1px)}.cedros-setup__button:active:not(:disabled){transform:translateY(0)scale(.98)}.cedros-setup__button:disabled{opacity:.6;cursor:not-allowed}.cedros-setup__footer{border-top:1px solid var(--cebbwf5-login-border);text-align:center;margin-top:1.5rem;padding-top:1.5rem}.cedros-setup__note{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.75rem}.cedros-setup__version{color:var(--cebbwf5-login-muted-foreground);opacity:.7;margin:.5rem 0 0;font-size:.75rem}.cedros-setup__complete{text-align:center;flex-direction:column;align-items:center;padding:2rem;display:flex}.cedros-setup__icon{margin-bottom:1.5rem}.cedros-setup__icon--success{color:var(--cebbwf5-login-success);background-color:var(--cebbwf5-login-success-soft,transparent);box-shadow:0 0 0 8px var(--cebbwf5-login-success-soft,transparent);animation:cedros-success-pop .45s var(--cebbwf5-ease-out) backwards;border-radius:50%}.cedros-setup__text{color:var(--cebbwf5-login-muted-foreground);margin:.5rem 0 0;font-size:.875rem}.cedros-sso-provider-list{flex-direction:column;gap:1rem;display:flex}.cedros-sso-provider-card{background:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);padding:1rem}.cedros-sso-provider-card--disabled{opacity:.6}.cedros-sso-provider-card-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem;display:flex}.cedros-sso-provider-card-info{flex:1;min-width:0}.cedros-sso-provider-card-name{color:var(--cebbwf5-login-foreground);margin:0;font-size:1rem;font-weight:600}.cedros-sso-provider-card-issuer{color:var(--cebbwf5-login-muted-foreground);word-break:break-all;margin:.25rem 0 0;font-size:.8125rem}.cedros-sso-provider-card-details{border-top:1px solid var(--cebbwf5-login-border);border-bottom:1px solid var(--cebbwf5-login-border);flex-wrap:wrap;gap:1rem;padding:.75rem 0;display:flex}.cedros-sso-provider-card-detail{flex-direction:column;gap:.125rem;display:flex}.cedros-sso-provider-card-detail-label{color:var(--cebbwf5-login-muted-foreground);text-transform:uppercase;letter-spacing:.025em;font-size:.75rem}.cedros-sso-provider-card-detail-value{color:var(--cebbwf5-login-foreground);font-size:.875rem}.cedros-sso-provider-card-detail-value code{font-family:var(--cebbwf5-font-mono);font-size:.8125rem}.cedros-sso-provider-card-actions{gap:.5rem;margin-top:.75rem;display:flex}.cedros-invite-code-manager{flex-direction:column;gap:1rem;margin-top:1.5rem;display:flex}.cedros-invite-code-manager__header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.cedros-invite-code-manager__title{color:var(--admin-fg,var(--cebbwf5-login-foreground));margin:0;font-size:.9375rem;font-weight:600}.cedros-invite-code-manager__empty{border:1px dashed var(--admin-border,var(--cebbwf5-login-border));border-radius:calc(var(--admin-radius,var(--cebbwf5-login-radius)) - 2px)}.cedros-invite-code-table-wrap{border:1px solid var(--admin-border,var(--cebbwf5-login-border));border-radius:calc(var(--admin-radius,var(--cebbwf5-login-radius)) - 2px);background:var(--admin-table-row,var(--cebbwf5-login-card));overflow-x:auto}.cedros-invite-code-table{border-collapse:collapse;width:100%;min-width:720px}.cedros-invite-code-table th,.cedros-invite-code-table td{border-bottom:1px solid var(--admin-border,var(--cebbwf5-login-border));text-align:left;white-space:nowrap;padding:.75rem;font-size:.8125rem}.cedros-invite-code-table th{background:var(--admin-table-head,var(--cebbwf5-login-muted));color:var(--admin-muted,var(--cebbwf5-login-muted-foreground));letter-spacing:.05em;text-transform:uppercase;font-size:.6875rem;font-weight:500}.cedros-invite-code-table tr:last-child td{border-bottom:none}.cedros-invite-code-table tr.is-disabled{opacity:.62}.cedros-invite-code-table__code{font-family:var(--cebbwf5-font-mono);color:var(--admin-fg,var(--cebbwf5-login-foreground))}.cedros-invite-code-table__actions{text-align:right}.cedros-invite-code-table__action-row{justify-content:flex-end;gap:.375rem;display:flex}.cedros-invite-code-status{border-radius:9999px;align-items:center;gap:.3125rem;padding:.125rem .5rem;font-size:.75rem;font-weight:500;display:inline-flex}.cedros-invite-code-status:before{content:\"\";background:currentColor;border-radius:50%;width:6px;height:6px}.cedros-invite-code-status.is-active{color:var(--admin-success);background:var(--admin-success-light)}.cedros-invite-code-status.is-inactive{color:var(--admin-muted,var(--cebbwf5-login-muted-foreground));background:var(--admin-muted-bg,var(--cebbwf5-login-muted))}.cedros-invite-code-icon-button{border:1px solid var(--admin-border,var(--cebbwf5-login-border));border-radius:calc(var(--admin-radius,var(--cebbwf5-login-radius)) - 2px);background:var(--admin-bg,var(--cebbwf5-login-background));width:2rem;height:2rem;color:var(--admin-muted,var(--cebbwf5-login-muted-foreground));cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.cedros-invite-code-icon-button:hover{background:var(--admin-accent,var(--cebbwf5-login-accent));color:var(--admin-fg,var(--cebbwf5-login-foreground))}.cedros-invite-code-icon-button.is-destructive:hover{color:var(--cebbwf5-destructive);border-color:color-mix(in srgb, var(--cebbwf5-destructive) 40%, transparent)}.cedros-invite-code-icon-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:1rem;height:1rem}.cedros-invite-code-modal{max-width:32rem}.cedros-invite-code-modal__actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.cedros-checkbox-row{color:var(--cebbwf5-login-foreground);align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.cedros-sso-provider-form{max-width:600px}.cedros-form-section{flex-direction:column;gap:1rem;margin-top:1.5rem;display:flex}.cedros-form-group{flex-direction:column;gap:.375rem;display:flex}.cedros-login-admin-root .cedros-form-input{background:var(--admin-bg,var(--cebbwf5-login-card));border-color:var(--admin-border,var(--cebbwf5-login-border));border-radius:calc(var(--admin-radius,var(--cebbwf5-login-radius)) - 2px);color:var(--admin-fg,var(--cebbwf5-login-foreground))}.cedros-login-admin-root .cedros-form-input::placeholder{color:var(--admin-muted,var(--cebbwf5-login-muted-foreground))}.cedros-login-admin-root .cedros-form-input:focus{border-color:var(--admin-ring,var(--cebbwf5-login-ring));box-shadow:0 0 0 3px color-mix(in srgb, var(--admin-ring,var(--cebbwf5-login-ring)) 15%, transparent);outline:none}.cedros-form-hint{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.75rem}.cedros-form-hint-inline{color:var(--cebbwf5-login-muted-foreground);font-weight:400}.cedros-form-checkbox{color:var(--cebbwf5-login-foreground);cursor:pointer;align-items:center;gap:.5rem;font-size:.875rem;display:flex}.cedros-form-checkbox input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--cebbwf5-login-primary)}.cedros-form-actions{border-top:1px solid var(--cebbwf5-login-border);justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1.5rem;display:flex}.cedros-btn-ghost{color:var(--cebbwf5-login-muted-foreground);background:0 0;border-color:#0000}.cedros-btn-ghost:hover{background:var(--cebbwf5-login-muted);color:var(--cebbwf5-login-foreground)}.cedros-btn-danger{color:var(--cebbwf5-destructive)}.cedros-btn-danger:hover{background:color-mix(in srgb, var(--cebbwf5-destructive) 10%, transparent)}.cedros-text-muted{color:var(--cebbwf5-login-muted-foreground)}.cedros-permissions-section{padding:0}.cedros-permissions-header{border-bottom:1px solid var(--admin-border);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.cedros-permissions-description{color:var(--admin-muted);margin:0;font-size:.875rem}.cedros-permissions-actions{align-items:center;gap:.5rem;margin-left:auto;display:flex}.cedros-permissions-error{color:var(--cebbwf5-destructive);background:var(--cebbwf5-destructive-light);border-radius:var(--admin-radius);padding:.375rem .75rem;font-size:.75rem}.cedros-permissions-saving{color:var(--admin-muted);font-size:.75rem;font-style:italic}.cedros-permissions-matrix{overflow-x:auto}.cedros-permissions-table{border-collapse:collapse;width:100%;font-size:.875rem}.cedros-permissions-table th,.cedros-permissions-table td{text-align:left;border-bottom:1px solid var(--admin-border);padding:.875rem 1.25rem}.cedros-permissions-table th{color:var(--admin-muted);text-transform:uppercase;letter-spacing:.05em;background:var(--admin-muted-bg);font-size:.75rem;font-weight:600}.cedros-permissions-section-header{width:50%}.cedros-permissions-role-header{text-align:center;width:25%}.cedros-permissions-row:hover{background:var(--cebbwf5-login-admin-accent,var(--admin-table-row-hover,var(--cebbwf5-login-accent)))}.cedros-permissions-section-label{color:var(--admin-fg);font-weight:500}.cedros-permissions-toggle-cell{text-align:center}.cedros-toggle-sm .cedros-toggle-track{border-radius:9px;width:32px;height:18px}.cedros-toggle-sm .cedros-toggle-thumb{width:14px;height:14px;top:2px;left:2px}.cedros-toggle-sm.cedros-toggle-on .cedros-toggle-thumb{transform:translate(14px)}.cedros-toggle-disabled{opacity:.5;cursor:not-allowed}.cedros-permissions-group-header td{text-transform:uppercase;letter-spacing:.08em;color:var(--admin-muted);background:var(--admin-muted-bg);border-bottom:1px solid var(--admin-border);padding:.625rem 1.25rem;font-size:.6875rem;font-weight:600}.cedros-profile-settings{flex-direction:column;gap:1rem;max-width:480px;display:flex}.cedros-profile-panel{background:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);flex-direction:column;gap:1.5rem;padding:1.5rem;display:flex}.cedros-profile-header{align-items:center;gap:1rem;display:flex}.cedros-profile-avatar-container{flex-shrink:0;position:relative}.cedros-profile-avatar-container--clickable{cursor:pointer}.cedros-profile-avatar-overlay{color:#fff;opacity:0;background:#00000073;border-radius:50%;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;inset:0}.cedros-profile-avatar-container--clickable:hover .cedros-profile-avatar-overlay,.cedros-profile-avatar-container--clickable:focus-visible .cedros-profile-avatar-overlay{opacity:1}.cedros-profile-avatar-input{display:none}.cedros-profile-avatar{-o-object-fit:cover;object-fit:cover;border-radius:50%;width:64px;height:64px}.cedros-profile-avatar-fallback{background:var(--cebbwf5-login-primary);color:var(--cebbwf5-login-primary-foreground);justify-content:center;align-items:center;font-size:1.25rem;font-weight:600;display:flex}.cedros-profile-info{flex:1;min-width:0}.cedros-profile-name{color:var(--cebbwf5-login-text);margin:0;font-size:1.125rem;font-weight:600}.cedros-profile-email{color:var(--cebbwf5-login-muted-foreground);text-overflow:ellipsis;white-space:nowrap;margin:.25rem 0 0;font-size:.875rem;overflow:hidden}.cedros-profile-title{color:var(--cebbwf5-login-text);margin:0;font-size:1rem;font-weight:600}.cedros-profile-description{color:var(--cebbwf5-login-muted-foreground);margin:.5rem 0 0;font-size:.875rem;line-height:1.5}.cedros-profile-section{flex-direction:column;gap:.75rem;display:flex}.cedros-profile-section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.75rem;font-weight:600}.cedros-profile-row{border-bottom:1px solid var(--cebbwf5-login-border);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 0;display:flex}.cedros-profile-row:last-child{border-bottom:none}.cedros-profile-row-content{flex-direction:column;gap:.125rem;min-width:0;display:flex}.cedros-profile-row-label{color:var(--cebbwf5-login-text);font-size:.875rem;font-weight:500}.cedros-profile-row-value{color:var(--cebbwf5-login-muted-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;overflow:hidden}.cedros-profile-form{flex-direction:column;gap:1rem;display:flex}.cedros-profile-field{flex-direction:column;gap:.5rem;display:flex}.cedros-profile-actions{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}.cedros-profile-footer{border-top:1px solid var(--cebbwf5-login-border);justify-content:flex-end;padding-top:1rem;display:flex}.cedros-profile-error{margin-bottom:.5rem}.cedros-profile-success{background:var(--cebbwf5-login-success-soft);color:var(--cebbwf5-login-success);border-radius:var(--cebbwf5-login-radius);align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.cedros-profile-success-icon{font-weight:700}.cedros-settings-subsection{border-bottom:1px solid var(--cebbwf5-login-border);padding:1rem 0}.cedros-settings-subsection-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.cedros-settings-subsection-title{color:var(--cebbwf5-login-foreground);margin:0;font-size:.9375rem;font-weight:600}.cedros-settings-subsection-description{color:var(--cebbwf5-login-muted-foreground);margin:.25rem 0 0;font-size:.8125rem}.cedros-complete-account{width:100%;max-width:24rem;margin:0 auto;padding:2rem 1.5rem}.cedros-complete-account__header{text-align:center;margin-bottom:1.5rem}.cedros-complete-account__title{color:var(--cebbwf5-login-foreground);margin:0 0 .5rem;font-size:1.25rem;font-weight:600}.cedros-complete-account__description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem}.cedros-complete-account__form{flex-direction:column;gap:1rem;display:flex}.cedros-complete-account__field{flex-direction:column;gap:.375rem;display:flex}.cedros-complete-account__label{color:var(--cebbwf5-login-foreground);font-size:.875rem;font-weight:500}.cedros-complete-account__input{border:1px solid var(--cebbwf5-input);border-radius:var(--cebbwf5-login-radius);width:100%;height:2.5rem;color:var(--cebbwf5-login-foreground);box-shadow:var(--cebbwf5-login-shadow-xs);transition:border-color var(--cebbwf5-duration-fast,.15s) var(--cebbwf5-ease-out,ease-out), box-shadow var(--cebbwf5-duration-fast,.15s) var(--cebbwf5-ease-out,ease-out);background-color:#0000;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;display:flex}.cedros-complete-account__input::placeholder{color:var(--cebbwf5-login-muted-foreground)}.cedros-complete-account__input:focus{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 3px color-mix(in srgb, var(--cebbwf5-login-ring) 15%, transparent);outline:none}.cedros-complete-account__error{color:var(--cebbwf5-destructive);border-radius:var(--cebbwf5-login-radius);background-color:color-mix(in srgb, var(--cebbwf5-destructive) 8%, transparent);padding:.5rem .75rem;font-size:.8125rem}.cedros-complete-account__actions{flex-direction:column;gap:.75rem;margin-top:.5rem;display:flex}.cedros-complete-account__button{border-radius:var(--cebbwf5-login-radius);cursor:pointer;width:100%;height:2.5rem;transition:background-color var(--cebbwf5-duration-fast,.15s) var(--cebbwf5-ease-out,ease-out), opacity var(--cebbwf5-duration-fast,.15s) var(--cebbwf5-ease-out,ease-out);justify-content:center;align-items:center;padding:.5rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}.cedros-complete-account__button:disabled{cursor:not-allowed;opacity:.5}.cedros-complete-account__button--primary{background-color:var(--cebbwf5-login-primary);color:var(--cebbwf5-login-primary-foreground);border:none}.cedros-complete-account__button--primary:hover:not(:disabled){opacity:.9}.cedros-complete-account__button--secondary{color:var(--cebbwf5-login-muted-foreground);border:1px solid var(--cebbwf5-login-border);background-color:#0000}.cedros-complete-account__button--secondary:hover:not(:disabled){background-color:var(--cebbwf5-login-accent);color:var(--cebbwf5-accent-foreground)}.cedros-choose-username{width:100%;max-width:24rem;margin:0 auto;padding:2rem 1.5rem}.cedros-choose-username__header{text-align:center;margin-bottom:1.5rem}.cedros-choose-username__title{color:var(--cebbwf5-login-foreground);margin:0 0 .5rem;font-size:1.25rem;font-weight:600}.cedros-choose-username__description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem}.cedros-choose-username__form{flex-direction:column;gap:1rem;display:flex}.cedros-choose-username__field{flex-direction:column;gap:.375rem;display:flex}.cedros-choose-username__label{color:var(--cebbwf5-login-foreground);font-size:.875rem;font-weight:500}.cedros-choose-username__input-wrapper{border:1px solid var(--cebbwf5-input);border-radius:var(--cebbwf5-login-radius);box-shadow:var(--cebbwf5-login-shadow-xs);transition:border-color var(--cebbwf5-duration-fast,.15s) var(--cebbwf5-ease-out,ease-out), box-shadow var(--cebbwf5-duration-fast,.15s) var(--cebbwf5-ease-out,ease-out);background-color:#0000;align-items:center;display:flex}.cedros-choose-username__input-wrapper:focus-within{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 3px color-mix(in srgb, var(--cebbwf5-login-ring) 15%, transparent)}.cedros-choose-username__prefix{color:var(--cebbwf5-login-muted-foreground);-webkit-user-select:none;user-select:none;padding-left:.75rem;font-size:.875rem}.cedros-choose-username__input{width:100%;height:2.5rem;color:var(--cebbwf5-login-foreground);background-color:#0000;border:none;outline:none;padding:.5rem .75rem .5rem .25rem;font-size:.875rem;line-height:1.25rem;display:flex}.cedros-choose-username__input::placeholder{color:var(--cebbwf5-login-muted-foreground)}.cedros-choose-username__status{font-size:.8125rem}.cedros-choose-username__status--available{color:var(--cebbwf5-login-success)}.cedros-choose-username__status--taken,.cedros-choose-username__status--error{color:var(--cebbwf5-destructive)}.cedros-choose-username__status--checking{color:var(--cebbwf5-login-muted-foreground)}.cedros-choose-username__error{color:var(--cebbwf5-destructive);border-radius:var(--cebbwf5-login-radius);background-color:color-mix(in srgb, var(--cebbwf5-destructive) 8%, transparent);padding:.5rem .75rem;font-size:.8125rem}.cedros-choose-username__actions{flex-direction:column;gap:.75rem;margin-top:.5rem;display:flex}.cedros-choose-username__button{border-radius:var(--cebbwf5-login-radius);cursor:pointer;width:100%;height:2.5rem;transition:background-color var(--cebbwf5-duration-fast,.15s) var(--cebbwf5-ease-out,ease-out), opacity var(--cebbwf5-duration-fast,.15s) var(--cebbwf5-ease-out,ease-out);justify-content:center;align-items:center;padding:.5rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}.cedros-choose-username__button:disabled{cursor:not-allowed;opacity:.5}.cedros-choose-username__button--primary{background-color:var(--cebbwf5-login-primary);color:var(--cebbwf5-login-primary-foreground);border:none}.cedros-choose-username__button--primary:hover:not(:disabled){opacity:.9}.cedros-choose-username__button--secondary{color:var(--cebbwf5-login-muted-foreground);border:1px solid var(--cebbwf5-login-border);background-color:#0000}.cedros-choose-username__button--secondary:hover:not(:disabled){background-color:var(--cebbwf5-login-accent);color:var(--cebbwf5-accent-foreground)}.cedros-account{grid-template-columns:13rem minmax(0,1fr);align-items:start;gap:2.5rem;width:100%;display:grid}.cedros-account__nav{flex-direction:column;gap:.125rem;display:flex;position:sticky;top:.5rem}.cedros-account__nav-item{border-radius:calc(var(--cebbwf5-login-radius) - 2px);color:var(--cebbwf5-login-muted-foreground);font:inherit;text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:.5rem;padding:.4375rem .625rem;font-size:.8125rem;font-weight:500;line-height:1.25rem;transition:background-color .15s,color .15s,transform .1s;display:flex;position:relative}.cedros-account__nav-item:before{content:\"\";background:var(--cebbwf5-login-link);width:2.5px;height:0;transition:height var(--cebbwf5-duration-normal) var(--cebbwf5-ease-out);border-radius:999px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.cedros-account__nav-item--active:before{height:1rem}.cedros-account__nav-item:hover{background:color-mix(in srgb, var(--cebbwf5-login-accent) 55%, transparent);color:var(--cebbwf5-login-foreground)}.cedros-account__nav-item:active{transform:scale(.985)}.cedros-account__nav-item--active,.cedros-account__nav-item--active:hover{background:var(--cebbwf5-login-accent);color:var(--cebbwf5-login-foreground);font-weight:600}.cedros-account__nav-item:focus-visible{outline:2px solid var(--cebbwf5-login-ring);outline-offset:2px}.cedros-account__nav-icon{opacity:.9;flex-shrink:0;display:inline-flex}.cedros-account__nav-icon svg{width:15px;height:15px}.cedros-account__nav-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.cedros-account__content{flex-direction:column;gap:1.5rem;min-width:0;display:flex}.cedros-account__content:focus{outline:none}.cedros-account__panel{min-width:0;animation:cedros-account-panel-in .26s var(--cebbwf5-ease-out) both;flex-direction:column;gap:1.5rem;display:flex}@keyframes cedros-account-panel-in{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}.cedros-account__header{flex-direction:column;gap:.25rem;display:flex}.cedros-account__title{letter-spacing:-.01em;color:var(--cebbwf5-login-foreground);margin:0;font-size:1.125rem;font-weight:600}.cedros-account__description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem;line-height:1.5}.cedros-account__footer{border-top:1px solid var(--cebbwf5-login-border);justify-content:flex-end;padding-top:1rem;display:flex}@media (width<=640px){.cedros-account{grid-template-columns:1fr;gap:1.25rem}.cedros-account__nav{overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:thin;border-bottom:1px solid var(--cebbwf5-login-border);flex-direction:row;gap:.25rem;padding-bottom:.5rem;position:static;overflow-x:auto}.cedros-account__nav-item{scroll-snap-align:start}}.cedros-account-stack{flex-direction:column;gap:1.5rem;display:flex}.cedros-account-card{border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-radius-card);background:var(--cebbwf5-login-card);box-shadow:var(--cebbwf5-login-shadow-sm);flex-direction:column;display:flex}.cedros-account-card>.cedros-field,.cedros-account-card>.cedros-avatar-field{padding:1.25rem}.cedros-account-card__divider{background:var(--cebbwf5-login-border);height:1px}.cedros-account-card--pad{gap:1rem;padding:1.25rem}.cedros-account-card__header{flex-direction:column;gap:.25rem;display:flex}.cedros-account-card__title{color:var(--cebbwf5-login-foreground);margin:0;font-size:.9375rem;font-weight:600}.cedros-account-card__desc{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.8125rem;line-height:1.5}.cedros-invite-code-list{gap:.75rem;display:grid}.cedros-invite-code-row{border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);background:var(--cebbwf5-login-background);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem;display:flex}.cedros-invite-code-value{color:var(--cebbwf5-login-foreground);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.875rem;display:inline-block}.cedros-field{flex-direction:column;gap:.5rem;display:flex}.cedros-field__head{justify-content:space-between;align-items:center;gap:1rem;min-height:1.75rem;display:flex}.cedros-field__label{color:var(--cebbwf5-login-foreground);font-size:.875rem;font-weight:600}.cedros-field__value{color:var(--cebbwf5-login-foreground);word-break:break-word;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.cedros-field__value--empty{color:var(--cebbwf5-login-muted-foreground)}.cedros-field__control{align-items:center;gap:.5rem;display:flex}.cedros-field__prefix{color:var(--cebbwf5-login-muted-foreground);font-size:.875rem}.cedros-field__actions{gap:.5rem;margin-top:.25rem;display:flex}.cedros-field__hint{color:var(--cebbwf5-login-muted-foreground);font-size:.8125rem;line-height:1.4}.cedros-field__hint--ok{color:var(--cebbwf5-login-success)}.cedros-field__hint--error{color:var(--cebbwf5-destructive)}.cedros-field__help{color:var(--cebbwf5-login-muted-foreground);font-size:.8125rem;line-height:1.4}.cedros-avatar-field{align-items:center;gap:1rem;display:flex}.cedros-avatar-field__preview{flex-shrink:0}.cedros-avatar-field__body{flex-direction:column;gap:.25rem;min-width:0;display:flex}.cedros-avatar-field__label{color:var(--cebbwf5-login-foreground);margin:0;font-size:.875rem;font-weight:600}.cedros-avatar-field__hint{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.8125rem}.cedros-avatar-field__actions{gap:.5rem;margin-top:.25rem;display:flex}.cedros-avatar-field__error{color:var(--cebbwf5-destructive);margin:.25rem 0 0;font-size:.8125rem}.cedros-badge{border-radius:999px;align-items:center;padding:.0625rem .5rem;font-size:.6875rem;font-weight:600;line-height:1.5;display:inline-flex}.cedros-badge--ok{background:var(--cebbwf5-login-success-soft);color:var(--cebbwf5-login-success)}.cedros-badge--muted{background:var(--cebbwf5-login-muted);color:var(--cebbwf5-login-muted-foreground)}.cedros-account-security{flex-direction:column;gap:1.5rem;display:flex}.cedros-account-delete{border:1px solid color-mix(in srgb, var(--cebbwf5-destructive) 28%, var(--cebbwf5-login-border));border-radius:calc(var(--cebbwf5-login-radius) + 2px);background:var(--cebbwf5-login-card);box-shadow:var(--cebbwf5-login-shadow-sm);flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.cedros-account-delete-header{flex-direction:column;gap:.25rem;display:flex}.cedros-account-delete-title{color:var(--cebbwf5-destructive);margin:0;font-size:.9375rem;font-weight:600}.cedros-account-delete-description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.8125rem;line-height:1.5}.cedros-account-delete-note{color:var(--cebbwf5-login-muted-foreground);border-radius:var(--cebbwf5-login-radius);background:color-mix(in srgb, var(--cebbwf5-destructive) 7%, transparent);border:1px solid color-mix(in srgb, var(--cebbwf5-destructive) 16%, transparent);padding:.75rem .875rem;font-size:.8125rem;line-height:1.5}.cedros-account-delete-note strong{color:var(--cebbwf5-login-foreground)}.cedros-account-delete code{background:color-mix(in srgb, var(--cebbwf5-destructive) 12%, transparent);color:var(--cebbwf5-destructive);border-radius:.25rem;padding:.05rem .3rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.8125em;font-weight:600}.cedros-account-delete-success{border-radius:var(--cebbwf5-login-radius);background:color-mix(in srgb, var(--cebbwf5-login-success) 12%, transparent);color:var(--cebbwf5-login-success);padding:.75rem .875rem;font-size:.875rem;font-weight:600}.cedros-account-delete-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:1rem;display:flex}.cedros-account-delete-link{color:var(--cebbwf5-login-muted-foreground);text-underline-offset:.15em;font-size:.8125rem;font-weight:500;text-decoration:underline;transition:color .15s}.cedros-account-delete-link:hover{color:var(--cebbwf5-login-foreground)}.cedros-account-footer{border-top:1px solid var(--cebbwf5-login-border);justify-content:flex-end;padding-top:1rem;display:flex}.cedros-account .cedros-profile-settings{max-width:none}.cedros-account .cedros-profile-panel{border-radius:calc(var(--cebbwf5-login-radius) + 2px);box-shadow:var(--cebbwf5-login-shadow-sm);padding:1.25rem}.cedros-account .cedros-profile-title{font-size:.9375rem}.cedros-account .cedros-profile-description{margin-top:.25rem;font-size:.8125rem}.cedros-profile-name-row{align-items:center;gap:.5rem;display:flex}.cedros-profile-edit-btn{border-radius:var(--cebbwf5-login-radius);color:var(--cebbwf5-login-muted-foreground);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:.25rem;transition:color .15s;display:inline-flex}.cedros-profile-edit-btn:hover{color:var(--cebbwf5-login-text)}.cedros-profile-name-edit{flex-direction:column;gap:.5rem;width:100%;display:flex}.cedros-profile-name-edit .cedros-input{padding:.375rem .625rem;font-size:1rem}.cedros-profile-name-edit-actions{gap:.5rem;display:flex}.cedros-profile-row-sent{color:var(--cebbwf5-login-success);align-items:center;gap:.375rem;font-size:.8125rem;display:inline-flex}.cedros-profile-row-sent-dismiss{color:inherit;cursor:pointer;opacity:.6;background:0 0;border:none;padding:0 .125rem;font-size:1rem;line-height:1}.cedros-profile-row-sent-dismiss:hover{opacity:1}.cebbwf5-email-management{flex-direction:column;gap:1rem;display:flex}.cebbwf5-email-management-loading{color:var(--cebbwf5-login-muted-foreground);flex-direction:row;align-items:center;gap:.625rem;padding:1rem 0;font-size:.875rem}.cebbwf5-email-management__header{flex-direction:column;gap:.25rem;display:flex}.cebbwf5-email-management__title{color:var(--cebbwf5-login-foreground);margin:0;font-size:.9375rem;font-weight:600}.cebbwf5-email-management__description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.8125rem;line-height:1.5}.cebbwf5-email-management__success{border:1px solid color-mix(in srgb, var(--cebbwf5-login-success) 22%, transparent);border-radius:var(--cebbwf5-login-radius);background:var(--cebbwf5-login-success-soft);color:var(--cebbwf5-login-success);margin:0;padding:.625rem .75rem;font-size:.8125rem;line-height:1.4}.cebbwf5-email-management__form{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem;display:grid}.cebbwf5-email-management__field,.cebbwf5-email-management__input{min-width:0}.cebbwf5-email-management__empty{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem}.cebbwf5-email-management__list{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.cebbwf5-email-row{border-bottom:1px solid var(--cebbwf5-login-border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.75rem 0;display:grid}.cebbwf5-email-row:last-child{border-bottom:none}.cebbwf5-email-row__main{flex-direction:column;gap:.25rem;min-width:0;display:flex}.cebbwf5-email-row__address{overflow-wrap:anywhere;color:var(--cebbwf5-login-foreground);font-size:.875rem;font-weight:500}.cebbwf5-email-row__badges{flex-wrap:wrap;gap:.375rem;display:flex}.cebbwf5-email-row__meta{color:var(--cebbwf5-login-muted-foreground);font-size:.75rem}.cebbwf5-email-row__actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}@media (width<=640px){.cebbwf5-email-management__form,.cebbwf5-email-row{grid-template-columns:1fr}.cebbwf5-email-row__actions{justify-content:flex-start}}.cedros-linked-accounts{flex-direction:column;gap:1rem;display:flex}.cedros-linked-accounts-loading{color:var(--cebbwf5-login-muted-foreground);flex-direction:row;align-items:center;gap:.625rem;padding:1rem 0;font-size:.875rem}.cedros-linked-accounts-empty{color:var(--cebbwf5-login-muted-foreground);font-size:.875rem}.cedros-linked-credential-list{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.cedros-linked-credential{border-bottom:1px solid var(--cebbwf5-login-border);align-items:center;gap:.75rem;padding:.75rem 0;display:flex}.cedros-linked-credential:last-child{border-bottom:none}.cedros-linked-credential__icon{background:var(--cebbwf5-login-accent);width:36px;height:36px;color:var(--cebbwf5-login-text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.cedros-linked-credential__info{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.cedros-linked-credential__name{color:var(--cebbwf5-login-text);font-size:.875rem;font-weight:500}.cedros-linked-credential__meta{color:var(--cebbwf5-login-muted-foreground);font-size:.75rem}.cedros-linked-credential__action{flex-shrink:0}.cedros-button-danger-outline{color:var(--cebbwf5-destructive);border-color:var(--cebbwf5-destructive)}.cedros-button-danger-outline:hover:not(:disabled){background:var(--cebbwf5-destructive);color:var(--cebbwf5-destructive-foreground)}.cedros-linked-add{border-top:1px solid var(--cebbwf5-login-border);padding-top:1rem}.cedros-linked-add-label{color:var(--cebbwf5-login-muted-foreground);margin:0 0 .75rem;font-size:.875rem;font-weight:500}.cedros-linked-add-buttons{flex-wrap:wrap;gap:.5rem;display:flex}.cedros-linked-add-buttons .cedros-button{align-items:center;gap:.375rem;display:inline-flex}:where(.cedros-login-admin-root) .cebbwf5-admin-sort-button,:where(.cedros-login-admin-root) .cebbwf5-admin__table-sort{font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:.375rem;padding:0;display:inline-flex}:where(.cedros-login-admin-root) .cebbwf5-admin-sort-button:hover,:where(.cedros-login-admin-root) .cebbwf5-admin-sort-button.cebbwf5-admin-sort-active{color:var(--admin-fg)}:where(.cedros-login-admin-root) .cebbwf5-admin-sort-button.cebbwf5-admin-sort-active .cebbwf5-admin-sort-icon{opacity:1}:where(.cedros-login-admin-root) .cebbwf5-admin-sort-icon,:where(.cedros-login-admin-root) .cebbwf5-admin__sort-icon{opacity:.35;width:.875rem;height:.875rem;font-size:.875rem;line-height:1}:where(.cedros-login-admin-root) .cebbwf5-admin-queue-count{color:var(--admin-muted);font-size:.875rem}:where(.cedros-login-admin-root) .cebbwf5-admin-user-list{background:var(--admin-bg);border:1px solid var(--admin-border);border-radius:var(--admin-radius);padding:1rem}:where(.cedros-login-admin-root) .cebbwf5-admin-user-list-error,:where(.cedros-login-admin-root) .cebbwf5-admin-user-list-loading{flex-direction:column;align-items:center;gap:.75rem;padding:2rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-list-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-list-title{color:var(--admin-fg);margin:0;font-size:.9375rem;font-weight:600}:where(.cedros-login-admin-root) .cebbwf5-admin-user-list-actions{align-items:center;gap:.75rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-table{border:1px solid var(--admin-border);border-radius:calc(var(--admin-radius) - 2px);background:var(--admin-table-row);width:100%;overflow:hidden}:where(.cedros-login-admin-root) .cebbwf5-admin-user-thead{background:var(--admin-table-head);border-bottom:1px solid var(--admin-border);grid-template-columns:1fr 120px 120px 90px;display:grid}:where(.cedros-login-admin-root) .cebbwf5-admin-user-th{text-transform:uppercase;letter-spacing:.05em;color:var(--admin-muted);white-space:nowrap;padding:.6875rem .75rem;font-size:.6875rem;font-weight:500}:where(.cedros-login-admin-root) .cebbwf5-admin-user-row{border-bottom:1px solid var(--admin-border);background:var(--admin-table-row);cursor:default;grid-template-columns:1fr 120px 120px 90px;display:grid}:where(.cedros-login-admin-root) .cebbwf5-admin-user-row:last-child{border-bottom:none}:where(.cedros-login-admin-root) .cebbwf5-admin-user-row[role=button]{cursor:pointer}:where(.cedros-login-admin-root) .cebbwf5-admin-user-row[role=button]:hover{background:var(--admin-table-row-hover)}:where(.cedros-login-admin-root) .cebbwf5-admin-user-row-current{background:color-mix(in srgb, var(--admin-primary) 5%, transparent)}:where(.cedros-login-admin-root) .cebbwf5-admin-user-td{white-space:nowrap;align-items:center;padding:.75rem;font-size:.8125rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-info{align-items:center;gap:.75rem;display:flex;overflow:hidden}:where(.cedros-login-admin-root) .cebbwf5-admin-user-avatar{flex-shrink:0}:where(.cedros-login-admin-root) .cebbwf5-admin-user-avatar-img{-o-object-fit:cover;object-fit:cover;border-radius:50%;width:32px;height:32px}:where(.cedros-login-admin-root) .cebbwf5-admin-user-avatar-placeholder{background:var(--admin-muted-bg);width:32px;height:32px;color:var(--admin-muted);border-radius:50%;justify-content:center;align-items:center;font-size:.875rem;font-weight:600;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-details{flex-direction:column;min-width:0;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-user-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}:where(.cedros-login-admin-root) .cebbwf5-admin-user-you{color:var(--admin-muted);margin-left:.25rem;font-size:.75rem;font-weight:400}:where(.cedros-login-admin-root) .cebbwf5-admin-user-email{color:var(--admin-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}:where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge{text-transform:uppercase;letter-spacing:.025em;background:var(--admin-muted-bg);color:var(--admin-muted);border-radius:9999px;padding:.125rem .5rem;font-size:.6875rem;font-weight:500;display:inline-block}:where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-none{background:var(--admin-muted-bg);color:var(--admin-muted);font-style:italic}.cedros-system-settings{flex-direction:column;gap:1.5rem;display:flex}.cedros-system-settings-loading,.cedros-system-settings-empty{color:var(--cebbwf5-login-muted-foreground);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:2rem;display:flex}.cedros-settings-page-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.cedros-settings-page-header-content{flex:1}.cedros-settings-page-title{color:var(--cebbwf5-login-foreground);margin:0 0 .25rem;font-size:1.25rem;font-weight:600}.cedros-settings-page-description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.875rem;line-height:1.5}.cedros-settings-success{background:color-mix(in srgb, var(--cebbwf5-login-success) 10%, transparent);border:1px solid var(--cebbwf5-login-success);border-radius:var(--cebbwf5-login-radius);color:var(--cebbwf5-login-success);padding:.75rem 1rem;font-size:.875rem}.cedros-settings-warning-banner{background:color-mix(in srgb, var(--cebbwf5-login-warning) 10%, transparent);border:1px solid var(--cebbwf5-login-warning);border-radius:var(--cebbwf5-login-radius);color:var(--cebbwf5-login-warning);padding:.75rem 1rem;font-size:.875rem}.cedros-autosave-status{border-radius:var(--cebbwf5-login-radius);transition:opacity var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);align-items:center;gap:.5rem;padding:.375rem .75rem;font-size:.8125rem;display:inline-flex}.cedros-autosave-dot{background:var(--cebbwf5-login-warning);border-radius:50%;width:6px;height:6px}.cedros-autosave-spinner{border:2px solid var(--cebbwf5-login-muted-foreground);border-top-color:#0000;border-radius:50%;width:12px;height:12px;animation:.8s linear infinite cedros-spin}.cedros-autosave-check{font-weight:600}.cedros-autosave-error-icon{background:var(--cebbwf5-destructive);width:16px;height:16px;color:var(--cebbwf5-destructive-foreground);border-radius:50%;justify-content:center;align-items:center;font-size:.6875rem;font-weight:700;display:inline-flex}.cedros-settings-section{background:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:var(--cebbwf5-login-radius);padding:1.25rem}.cedros-settings-section-header{gap:.75rem;margin-bottom:1rem;display:flex}.cedros-settings-section-icon{font-size:1.5rem;line-height:1}.cedros-settings-section-title{color:var(--cebbwf5-login-foreground);margin:0 0 .25rem;font-size:1rem;font-weight:600}.cedros-settings-section-description{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.8125rem;line-height:1.5}.cedros-auth-method-list{flex-direction:column;gap:.75rem;display:flex}.cedros-auth-method-card{border:1px solid var(--admin-border,var(--cebbwf5-login-border));border-radius:var(--cebbwf5-radius-card);background:var(--admin-bg,var(--cebbwf5-login-card));padding:1rem 1.25rem;transition:border-color .15s,box-shadow .15s}.cedros-auth-method-card--enabled{border-color:color-mix(in srgb, var(--admin-fg,var(--cebbwf5-login-foreground)) 45%, transparent);box-shadow:var(--admin-shadow-sm,var(--cebbwf5-login-shadow-xs))}.cedros-auth-method-card-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.cedros-auth-method-card-info{flex:1;min-width:0}.cedros-auth-method-card-title-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.cedros-auth-method-card-name{color:var(--admin-fg,var(--cebbwf5-login-foreground));font-size:.9375rem;font-weight:600}.cedros-auth-method-badge{color:var(--admin-muted,var(--cebbwf5-login-muted-foreground));background:var(--admin-muted-bg,var(--cebbwf5-login-muted));border-radius:9999px;align-items:center;gap:.3125rem;padding:.125rem .5rem;font-size:.6875rem;font-weight:500;display:inline-flex}.cedros-auth-method-badge:before{content:\"\";opacity:.55;background:currentColor;border-radius:50%;width:6px;height:6px}.cedros-auth-method-badge--on{color:var(--admin-success);background:var(--admin-success-light)}.cedros-auth-method-badge--on:before{opacity:1}.cedros-auth-method-card-description{color:var(--admin-muted,var(--cebbwf5-login-muted-foreground));margin:.25rem 0 0;font-size:.8125rem;line-height:1.5}.cedros-auth-method-card-description a{color:var(--admin-link,var(--cebbwf5-login-link));text-decoration:underline}.cedros-auth-method-card-body{border-top:1px solid var(--admin-border,var(--cebbwf5-login-border));margin-top:1rem;padding-top:1rem}.cedros-auth-method-card-body .cedros-setting-row{background:0 0;border:none;border-radius:0;padding:0}.cedros-sso-embedded-actions{justify-content:flex-end;margin-bottom:.75rem;display:flex}.cedros-auth-section-stack{flex-direction:column;gap:2rem;display:flex}.cedros-auth-subsection-title{color:var(--admin-fg,var(--cebbwf5-login-foreground));margin:0 0 .75rem;font-size:.9375rem;font-weight:600}.cedros-settings-grid{flex-direction:column;gap:1rem;display:flex}.cedros-setting-row{background:var(--cebbwf5-login-background);border:1px solid var(--cebbwf5-login-border);border-radius:calc(var(--cebbwf5-login-radius) - 2px);transition:border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);grid-template-columns:1fr 2fr;align-items:start;gap:1.5rem;padding:1rem;display:grid}.cedros-setting-row-changed{border-color:var(--cebbwf5-login-ring);background:color-mix(in srgb, var(--cebbwf5-login-link) 8%, var(--cebbwf5-login-background))}.cedros-setting-row-warning{border-color:var(--cebbwf5-login-warning)}.cedros-setting-label{cursor:default;flex-direction:column;gap:.375rem;display:flex}.cedros-setting-name{color:var(--cebbwf5-login-foreground);font-size:.875rem;font-weight:600}.cedros-setting-description{color:var(--cebbwf5-login-muted-foreground);font-size:.8125rem;line-height:1.5}.cedros-setting-description a{color:var(--admin-link,var(--cebbwf5-login-link));text-decoration:none}.cedros-setting-description a:hover{text-decoration:underline}.cedros-setting-control{flex-direction:column;gap:.5rem;display:flex}.cedros-setting-control-fieldset{border:0;min-width:0;margin:0;padding:0}.cedros-setting-capability{color:var(--cebbwf5-login-muted-foreground);flex-direction:column;gap:.25rem;font-size:.75rem;display:flex}.cedros-setting-application-mode{font-weight:500}.cedros-setting-validation-error{color:var(--cebbwf5-destructive)}.cedros-setting-row-toggle{grid-template-columns:auto 1fr;align-items:center}.cedros-setting-control-toggle{justify-content:flex-start;align-items:center}.cedros-setting-warning{color:var(--cebbwf5-login-warning);background:color-mix(in srgb, var(--cebbwf5-login-warning) 10%, transparent);border-radius:calc(var(--cebbwf5-login-radius) - 4px);padding:.375rem .5rem;font-size:.75rem}.cedros-setting-input{min-width:0;font-size:.875rem;font-family:var(--cebbwf5-font-mono);background:var(--cebbwf5-login-card);border:1px solid var(--cebbwf5-login-border);border-radius:calc(var(--cebbwf5-login-radius) - 2px);color:var(--cebbwf5-login-foreground);transition:border-color var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), box-shadow var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out);flex:1;padding:.5rem .75rem}.cedros-setting-input:focus{border-color:var(--cebbwf5-login-ring);box-shadow:0 0 0 2px color-mix(in srgb, var(--cebbwf5-login-ring) 20%, transparent);outline:none}.cedros-setting-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.cedros-setting-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.cedros-setting-input[type=number]{-moz-appearance:textfield;text-align:right}.cedros-setting-input-sm{flex:none;width:100px}.cedros-setting-input-wrapper{align-items:center;gap:.5rem;display:flex}:where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-email{color:#2563eb;background:#3b82f626}:where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-google{color:#dc2626;background:#ea433526}:where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-apple{color:#1f2937;background:#0000001a}:where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-solana{color:#7c3aed;background:#9945ff26}:where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-webauthn{color:#059669;background:#10b98126}:where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-sso{color:#d97706;background:#f59e0b26}.cebbwf5-dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-email,.dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-email,[data-theme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-email,[data-color-mode=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-email,[data-color-scheme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-email{color:#93c5fd;background:#60a5fa33}.cebbwf5-dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-google,.dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-google,[data-theme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-google,[data-color-mode=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-google,[data-color-scheme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-google{color:#fca5a5;background:#f8717133}.cebbwf5-dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-apple,.dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-apple,[data-theme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-apple,[data-color-mode=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-apple,[data-color-scheme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-apple{color:#e5e7eb;background:#ffffff1a}.cebbwf5-dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-solana,.dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-solana,[data-theme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-solana,[data-color-mode=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-solana,[data-color-scheme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-solana{color:#c4b5fd;background:#a78bfa33}.cebbwf5-dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-webauthn,.dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-webauthn,[data-theme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-webauthn,[data-color-mode=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-webauthn,[data-color-scheme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-webauthn{color:#6ee7b7;background:#34d39933}.cebbwf5-dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-sso,.dark :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-sso,[data-theme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-sso,[data-color-mode=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-sso,[data-color-scheme=dark] :where(.cedros-login-admin-root) .cebbwf5-admin-auth-badge-sso{color:#fcd34d;background:#fbbf2433}.cedros-autosave-status--pending,.cedros-autosave-status--dirty,.cedros-autosave-status--debouncing,.cedros-autosave-status--queued,.cedros-autosave-status--saving,.cedros-autosave-status--retrying,.cedros-autosave-status--offline{color:var(--cebbwf5-login-muted-foreground)}.cedros-autosave-status--saved{color:var(--cebbwf5-login-success)}.cedros-autosave-status--error,.cedros-autosave-status--failed,.cedros-autosave-status--conflict{color:var(--cebbwf5-destructive)}.cedros-invite-unlock{text-align:center;animation:cedros-invite-unlock-in .36s var(--cebbwf5-ease-out) both;flex-direction:column;align-items:center;gap:.375rem;padding:1.25rem 1rem .75rem;display:flex}@keyframes cedros-invite-unlock-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.cedros-invite-unlock__stage{pointer-events:none;justify-content:center;align-items:center;width:9rem;height:9rem;margin-bottom:.25rem;display:flex;position:relative}.cedros-invite-unlock__halo{background:radial-gradient(circle, color-mix(in srgb, var(--cebbwf5-login-primary) 24%, transparent) 0%, transparent 65%);animation:cedros-invite-unlock-halo 1.6s var(--cebbwf5-ease-out) .12s both;border-radius:50%;position:absolute;inset:0}@keyframes cedros-invite-unlock-halo{0%{opacity:0;transform:scale(.5)}35%{opacity:1}to{opacity:.55;transform:scale(1)}}.cedros-invite-unlock__ring{border:2px solid var(--cebbwf5-login-primary);width:4.5rem;height:4.5rem;animation:cedros-invite-unlock-ring .9s var(--cebbwf5-ease-out) .2s both;border-radius:50%;position:absolute}@keyframes cedros-invite-unlock-ring{0%{opacity:.9;transform:scale(.55)}to{opacity:0;transform:scale(1.9)}}.cedros-invite-unlock__seal{background:linear-gradient(135deg, var(--cebbwf5-login-primary), color-mix(in srgb, var(--cebbwf5-login-primary) 72%, var(--cebbwf5-login-foreground)));width:4.5rem;height:4.5rem;color:var(--cebbwf5-login-primary-foreground);box-shadow:0 10px 30px -12px color-mix(in srgb, var(--cebbwf5-login-primary) 60%, transparent);border-radius:50%;justify-content:center;align-items:center;animation:.52s cubic-bezier(.34,1.56,.64,1) 60ms both cedros-invite-unlock-seal;display:flex;position:relative}@keyframes cedros-invite-unlock-seal{0%{opacity:0;transform:scale(.3)rotate(-12deg)}70%{opacity:1;transform:scale(1.08)rotate(2deg)}to{opacity:1;transform:scale(1)rotate(0)}}.cedros-invite-unlock__check{fill:none;stroke:currentColor;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:48;stroke-dashoffset:48px;width:2.25rem;height:2.25rem;animation:cedros-check-draw .42s var(--cebbwf5-ease-out) .42s forwards}.cedros-invite-unlock__confetti{background:var(--unlock-color,var(--cebbwf5-login-primary));width:.5rem;height:.75rem;animation:cedros-invite-unlock-confetti 1.15s var(--cebbwf5-ease-out) var(--unlock-delay,.15s) both;will-change:transform, opacity, filter;border-radius:2px;margin:-.375rem 0 0 -.25rem;position:absolute;top:50%;left:50%}.cedros-invite-unlock__confetti--round{border-radius:50%;width:.4rem;height:.4rem}@keyframes cedros-invite-unlock-confetti{0%{opacity:0;transform:translate(0)rotate(0)scale(.6)}12%{opacity:1}55%{opacity:1;filter:blur(var(--unlock-blur,.75px));transform:translate(var(--unlock-mid-x,0), var(--unlock-mid-y,-40px)) rotate(var(--unlock-mid-rotation,90deg)) scaleX(var(--unlock-stretch,1.25)) scaleY(.82)}to{opacity:0;filter:blur();transform:translate(var(--unlock-x,0), var(--unlock-y,-80px)) rotate(var(--unlock-rotation,180deg)) scale(1)}}.cedros-invite-unlock__title{animation:cedros-invite-unlock-rise .46s var(--cebbwf5-ease-out) .48s both}.cedros-invite-unlock__title:focus{outline:none}.cedros-invite-unlock__subtitle{max-width:34ch;animation:cedros-invite-unlock-rise .46s var(--cebbwf5-ease-out) .64s both}@keyframes cedros-invite-unlock-rise{0%{opacity:0;filter:blur(4px);transform:translateY(10px)}to{opacity:1;filter:blur();transform:translateY(0)}}.cedros-invite-unlock__reward{flex-direction:column;align-items:center;gap:.375rem;margin-top:.75rem;animation:.52s cubic-bezier(.34,1.56,.64,1) .88s both cedros-invite-unlock-reward;display:flex}@keyframes cedros-invite-unlock-reward{0%{opacity:0;transform:scale(.8)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}.cedros-invite-unlock__reward-badge{border:1px dashed color-mix(in srgb, var(--cebbwf5-login-link) 55%, transparent);background-color:color-mix(in srgb, var(--cebbwf5-login-link) 12%, var(--cebbwf5-login-card));background-image:linear-gradient(110deg, transparent 40%, color-mix(in srgb, var(--cebbwf5-login-foreground) 24%, transparent) 50%, transparent 60%);color:var(--cebbwf5-login-link);animation:cedros-shimmer 1.6s var(--cebbwf5-ease-out) 1.25s 2 both;background-repeat:no-repeat;background-size:250% 100%;border-radius:999px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.9375rem;font-weight:600;display:inline-flex}.cedros-invite-unlock__reward-badge svg{flex-shrink:0;width:1.125rem;height:1.125rem}.cedros-invite-unlock__reward-note{color:var(--cebbwf5-login-muted-foreground);font-size:.8125rem}.cedros-invite-unlock__continue{animation:cedros-invite-unlock-rise .42s var(--cebbwf5-ease-out) 1.3s both;margin-top:1rem}`;\n})), lt, xn = R((() => {\n  lt = ':where(.cedros-auth-page-copy,.cedros-auth-form){--cebbwf5-auth-radius:.5rem;box-sizing:border-box;width:min(100%,24rem);color:var(--cebbwf5-runtime-text,#020817);font-family:var(--cebbwf5-runtime-font-family,inherit);justify-self:center;margin-inline:auto}:where(.cedros-auth-page-copy *,.cedros-auth-form *){box-sizing:border-box}:where(.cedros-auth-page-copy){gap:.35rem;padding:.1rem .25rem .5rem;display:grid}:where(.cedros-auth-page-copy__brand){align-items:center;gap:.85rem;min-width:0;display:flex}:where(.cedros-auth-page-copy__logo){border:1px solid var(--cebbwf5-runtime-border,#e2e8f0);-o-object-fit:cover;object-fit:cover;border-radius:999px;flex:none;width:2.5rem;height:2.5rem;display:block}:where(.cedros-auth-page-copy__brand-text){gap:.2rem;min-width:0;display:grid}:where(.cedros-auth-page-copy__eyebrow){color:var(--cebbwf5-runtime-muted,#64748b);letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:500;line-height:1.3}:where(.cedros-auth-page-copy__title){max-width:none;color:var(--cebbwf5-runtime-text,#020817);letter-spacing:0;margin:0;font-size:clamp(1.35rem,3vw,1.65rem);font-weight:800;line-height:1.05}:where(.cedros-auth-page-copy__body){max-width:40ch;color:var(--cebbwf5-runtime-muted,#64748b);order:3;margin:.35rem 0 0;font-size:.9rem;line-height:1.5}:where(.cedros-auth-page-copy--auth .cedros-auth-page-copy__secondary),:where(.cedros-auth-page-copy--auth .cedros-auth-page-copy__body),:where(.cedros-auth-page-copy--auth .cedros-auth-page-copy__link){display:none}:where(.cedros-auth-page-copy--profile){max-width:44rem}:where(.cedros-auth-page-copy__link:empty){display:none}:where(.cedros-auth-form){border:1px solid var(--cebbwf5-runtime-border,#e2e8f0);background:var(--cebbwf5-runtime-panel,#fff);box-shadow:var(--cebbwf5-shadow-sm,0 1px 2px 0 #0000000d, 0 4px 12px -4px #00000014);border-radius:.75rem;gap:1rem;padding:1.5rem;display:grid}:where(.cedros-auth-form--inline){box-shadow:none;background:0 0;border:0;padding:0}:where(.cedros-auth-form--compact){gap:.75rem;max-width:20rem;padding:1.125rem}:where(.cedros-auth-form--card){max-width:24rem}:where(.cedros-auth-page-copy,.cedros-auth-form--card):first-child:is(.cebbwf5-theme-shell-page--canvas-content *,.cebbwf5-theme-shell-page--canvas-wide *,.cebbwf5-theme-shell-page--canvas-full *){margin-block-start:clamp(2.5rem,6vw,4.5rem)}:where(.cedros-auth-page-copy,.cedros-auth-form--card):last-child:is(.cebbwf5-theme-shell-page--canvas-content *,.cebbwf5-theme-shell-page--canvas-wide *,.cebbwf5-theme-shell-page--canvas-full *){margin-block-end:clamp(2.5rem,6vw,4.5rem)}:where(.cedros-auth-form__title){color:var(--cebbwf5-runtime-text,#020817);letter-spacing:0;margin:0;font-size:clamp(1.35rem,2.6vw,1.85rem);font-weight:700;line-height:1.08}:where(.cedros-auth-form[data-auth-mode=sign-in] .cedros-auth-form__title),:where(.cedros-auth-form[data-auth-mode=create-account] .cedros-auth-form__title){display:none}:where(.cedros-auth-form__panel){gap:1.25rem;display:grid}:where(.cedros-auth-form .cedros-auth-form__provider-svg){flex:none;width:1.25rem;height:1.25rem;display:block}:where(.cedros-auth-form__tabs){border-bottom:1px solid var(--cebbwf5-runtime-border,#e2e8f0);margin-bottom:1.5rem;display:flex}:where(.cedros-auth-form__password-toggle-icon){width:1.2rem;height:1.2rem;display:block}:where(.cedros-auth-form__success){color:var(--cebbwf5-runtime-muted,#64748b);text-align:center;margin:.1rem 0 0;font-size:.875rem;line-height:1.5}:where(.cedros-auth-form) .cedros-login-form{width:100%}:where(.cedros-auth-form) .cedros-login-form>.cedros-signup-availability{margin-bottom:1.5rem}:where(.cedros-auth-form) .cedros-form{flex-direction:column;gap:1.5rem;display:flex}:where(.cedros-auth-form) .cedros-form-field{flex-direction:column;gap:.5rem;display:flex}:where(.cedros-auth-form) .cedros-signup-availability{border:1px solid color-mix(in srgb, var(--cebbwf5-runtime-accent,#3b82f6) 24%, var(--cebbwf5-runtime-border,#e2e8f0));border-radius:var(--cebbwf5-radius-md,.75rem);background:color-mix(in srgb, var(--cebbwf5-runtime-accent,#3b82f6) 7%, transparent);color:var(--cebbwf5-runtime-muted,#64748b);align-items:flex-start;gap:.625rem;padding:.75rem .875rem;font-size:.8125rem;line-height:1.45;display:flex}:where(.cedros-auth-form) .cedros-signup-availability strong{color:var(--cebbwf5-runtime-text,#020817);font-weight:600}:where(.cedros-auth-form) .cedros-signup-availability-dot{background:var(--cebbwf5-runtime-accent,#3b82f6);width:.5rem;height:.5rem;box-shadow:0 0 0 3px color-mix(in srgb, var(--cebbwf5-runtime-accent,#3b82f6) 14%, transparent);border-radius:9999px;flex:none;margin-top:.3125rem}:where(.cedros-auth-form) .cedros-signup-availability[data-full=true]{border-color:color-mix(in srgb, var(--cebbwf5-runtime-warning,#f59e0b) 28%, var(--cebbwf5-runtime-border,#e2e8f0));background:color-mix(in srgb, var(--cebbwf5-runtime-warning,#f59e0b) 14%, transparent)}:where(.cedros-auth-form) .cedros-signup-availability[data-full=true] .cedros-signup-availability-dot{background:var(--cebbwf5-runtime-warning,#f59e0b);box-shadow:0 0 0 3px color-mix(in srgb, var(--cebbwf5-runtime-warning,#f59e0b) 14%, transparent)}:where(.cedros-auth-form) .cedros-label{color:var(--cebbwf5-runtime-text,#020817);font-size:.875rem;font-weight:500;line-height:1}:where(.cedros-auth-form) .cedros-label-row{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}:where(.cedros-auth-form) .cedros-input{border:1px solid var(--cebbwf5-runtime-border,#e2e8f0);border-radius:var(--cebbwf5-radius-field,var(--cebbwf5-auth-radius));background-color:var(--cebbwf5-runtime-bg,#fff);width:100%;height:2.5rem;color:var(--cebbwf5-runtime-text,#020817);padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;display:flex}:where(.cedros-auth-form) .cedros-input::-moz-placeholder{color:var(--cebbwf5-runtime-muted,#64748b)}:where(.cedros-auth-form) .cedros-input::placeholder{color:var(--cebbwf5-runtime-muted,#64748b)}:where(.cedros-auth-form) .cedros-input:focus{outline:2px solid color-mix(in srgb, var(--cebbwf5-runtime-accent,#3b82f6) 34%, transparent);outline-offset:2px}:where(.cedros-auth-form) .cedros-password-wrapper{align-items:center;display:flex;position:relative}:where(.cedros-auth-form) .cedros-password-wrapper .cedros-input{padding-right:2.5rem}:where(.cedros-auth-form) .cedros-password-toggle{color:var(--cebbwf5-runtime-muted,#64748b);cursor:pointer;background:0 0;border:none;padding:.25rem;position:absolute;right:.5rem}:where(.cedros-auth-form) .cedros-link{color:var(--cebbwf5-runtime-text,#020817);font:inherit;cursor:pointer;text-underline-offset:4px;background:0 0;border:none;padding:0;font-weight:500;text-decoration:underline}:where(.cedros-auth-form) .cedros-link:focus-visible{outline:2px solid var(--cebbwf5-runtime-accent,#3b82f6);outline-offset:2px;border-radius:2px}:where(.cedros-auth-form) .cedros-link-muted{color:var(--cebbwf5-runtime-muted,#64748b)}:where(.cedros-auth-form) .cedros-link-sm{font-size:.875rem}:where(.cedros-auth-form) .cedros-button{white-space:nowrap;border-radius:var(--cebbwf5-radius-control,var(--cebbwf5-auth-radius));cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;height:2.5rem;padding:0 1rem;font-size:.875rem;font-weight:500;line-height:1.25rem;display:inline-flex}:where(.cedros-auth-form) .cedros-button:disabled{pointer-events:none;opacity:.5}:where(.cedros-auth-form) .cedros-button:focus-visible{outline:2px solid var(--cebbwf5-runtime-accent,#3b82f6);outline-offset:2px}:where(.cedros-auth-form) .cedros-button-full{width:100%}:where(.cedros-auth-form) .cedros-button-primary{background-color:var(--cebbwf5-runtime-action-bg,#0f172a);color:var(--cebbwf5-runtime-action-fg,#fff);box-shadow:inset 0 1px 0 0 #ffffff1a, var(--cebbwf5-shadow-sm,0 1px 2px 0 #0000000d)}:where(.cedros-auth-form) .cedros-button-social{background-color:var(--cebbwf5-runtime-panel,#fff);color:var(--cebbwf5-runtime-text,#020817);border-color:var(--cebbwf5-runtime-border,#e2e8f0);box-shadow:var(--cebbwf5-shadow-sm,0 1px 2px 0 #0000000d)}:where(.cedros-auth-form) .cedros-button-social:hover:not(:disabled){background-color:var(--cebbwf5-runtime-accent-soft,#f1f5f9)}:where(.cedros-auth-form) .cedros-social-buttons{flex-direction:column;gap:.75rem;display:flex}:where(.cedros-auth-form) .cedros-social-buttons .cedros-button{width:100%}:where(.cedros-auth-form) .cedros-social-icon{color:currentColor;flex-shrink:0;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;line-height:1;display:inline-flex}:where(.cedros-auth-form) .cedros-divider{align-items:center;gap:1rem;margin:1rem 0;display:flex}:where(.cedros-auth-form) .cedros-divider:before,:where(.cedros-auth-form) .cedros-divider:after{content:\"\";flex:1;height:1px}:where(.cedros-auth-form) .cedros-divider:before{background:linear-gradient(to right, transparent, var(--cebbwf5-runtime-border,#e2e8f0))}:where(.cedros-auth-form) .cedros-divider:after{background:linear-gradient(to left, transparent, var(--cebbwf5-runtime-border,#e2e8f0))}:where(.cedros-auth-form) .cedros-divider span{color:var(--cebbwf5-runtime-muted,#64748b);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}:where(.cedros-auth-form) .cedros-tabs{border-bottom:1px solid var(--cebbwf5-runtime-border,#e2e8f0);margin-bottom:1.5rem;display:flex}:where(.cedros-auth-form) .cedros-tab{color:var(--cebbwf5-runtime-muted,#64748b);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:.75rem 1rem;font-size:.875rem;font-weight:500;position:relative}:where(.cedros-auth-form) .cedros-tab:after{content:\"\";background-color:var(--cebbwf5-runtime-accent,#3b82f6);border-radius:999px;height:2px;position:absolute;bottom:-2px;left:.75rem;right:.75rem;transform:scaleX(0)}:where(.cedros-auth-form) .cedros-tab-active{color:var(--cebbwf5-runtime-text,#020817)}:where(.cedros-auth-form) .cedros-tab-active:after{transform:scaleX(1)}:where(.cedros-auth-form) .cedros-form-footer{text-align:center;color:var(--cebbwf5-runtime-muted,#64748b);margin:1rem 0 0;font-size:.875rem}:where(.cedros-account-workspace-block){width:min(100%,44rem);color:var(--cebbwf5-runtime-text,#020817);gap:1.25rem;margin:0 auto;display:grid}:where(.cedros-account-workspace-block--loading),:where(.cedros-account-workspace-block--signed-out){text-align:center;justify-items:center}:where(.cedros-account-workspace-block--interactive){text-align:initial;justify-items:stretch}:where(.cedros-account-workspace-block__header){justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}:where(.cedros-account-workspace-block__heading){min-width:0}:where(.cedros-account-workspace-block__title){color:var(--cebbwf5-runtime-text,#020817);letter-spacing:-.025em;margin:0;font-size:1.5rem;font-weight:700;line-height:1.15}:where(.cedros-account-workspace-block__body){color:var(--cebbwf5-runtime-muted,#64748b);overflow-wrap:anywhere;margin:.35rem 0 0;font-size:.9375rem;line-height:1.5}:where(.cedros-account-workspace-block__status){color:var(--cebbwf5-runtime-muted,#64748b);align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}:where(.cedros-account-workspace-block__link){color:var(--cebbwf5-runtime-accent,#3b82f6);text-underline-offset:.15em;justify-self:start;font-size:.875rem;font-weight:600;text-decoration:underline}:where(.cedros-account-workspace-block__settings.cedros-account),:where(.cedros-account-workspace-block .cedros-account){width:100%;max-width:none}@media (prefers-reduced-motion:reduce){:where(.cedros-auth-page-copy),:where(.cedros-auth-form),:where(.cedros-auth-form *),:where(.cedros-auth-form *):before,:where(.cedros-auth-form *):after{transition-duration:.001ms!important;transition-delay:0s!important;animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}@media (width<=520px){:where(.cedros-auth-page-copy){padding:.1rem .25rem .4rem}:where(.cedros-auth-form){padding:1.25rem}:where(.cedros-account-workspace-block__header){flex-direction:column}:where(.cedros-account-workspace-block__header .cedros-button){width:100%}}';\n}));\nkn();\nxn();\nvar ls = \"cedros-login\", us = \"Cedros Login\", ms = \"2.1.17\", gs = \"Authentication and identity extension for Cedros with auth flows, account lifecycle, and CRM integration metadata.\", ps = {\n  platformApiVersion: \"1\",\n  minCedrosDataVersion: \"0.1.91\",\n  witChecksum: \"2bb16879743cfd2748b7deefefcb82204c16b55a1c1a70385f4e9707a83d48f9\"\n};\nvar fs = {\n  server: {\n    packageName: \"cedros-login\",\n    version: \"2.1.17\",\n    required: !0\n  },\n  react: {\n    packageName: \"@cedros/login-react\",\n    version: \"2.1.17\",\n    required: !0\n  },\n  reactNative: {\n    packageName: \"@cedros/login-react-native\",\n    version: \"2.1.17\",\n    required: !0\n  }\n}, hs = {\n  services: [],\n  capabilities: [\n    {\n      capabilityId: \"cedros-data:database-concurrency-v2\",\n      required: !0,\n      reason: \"Preserves the published host-atomic conditional mutations used by Login identity, session, organization, outbox, and lifecycle flows.\"\n    },\n    {\n      capabilityId: \"cedros-data:token-email-evidence-v1\",\n      required: !0,\n      reason: \"Requires identity.outbox.enqueue-token-email to atomically bind a live purpose-bound token to outbox work with host-issued delivery evidence.\"\n    },\n    {\n      capabilityId: \"cedros-data:identity-atomic-v1\",\n      required: !0,\n      reason: \"Uses registration.account.complete to create password accounts with their verification token and outbox work in one host transaction.\"\n    },\n    {\n      capabilityId: \"cedros-data:session-atomic-v1\",\n      required: !0,\n      reason: \"Requires atomic session rotation and revocation so concurrent refresh cannot escape sign-out.\"\n    },\n    {\n      capabilityId: \"cedros-data:signup-limit-atomic-v1\",\n      required: !0,\n      reason: \"Requires signup-limit status plus registration account creation to report and enforce enabled limits against one durable, atomic ledger.\"\n    },\n    {\n      capabilityId: \"cedros-data:abuse-budget-consume-v1\",\n      required: !0,\n      reason: \"Atomically enforces multi-dimensional identity abuse budgets with bounded expiring host storage.\"\n    },\n    {\n      capabilityId: \"cedros-data:extension-storage-cas-v1\",\n      required: !0,\n      reason: \"Atomically binds MFA enrollment, factor consumption, and login completion to the exact verified row revisions.\"\n    },\n    {\n      capabilityId: \"cedros-data:mcp-connection-revoke-v1\",\n      required: !0,\n      reason: \"Durably cancels and retries deletion of existing OAuth-bound MCP keys without relying on revoked browser or OAuth credentials.\"\n    },\n    {\n      capabilityId: \"cedros-data:login-relying-party-config-v1\",\n      required: !0,\n      reason: \"Reads the atomically selected encrypted Login relying-party configuration for Core membership authority without falling back to a stale legacy token.\"\n    },\n    {\n      capabilityId: \"cedros-pay:subscription-read\",\n      required: !1,\n      reason: \"Reads same-site subscription selection through the host-authenticated Login service contract; unavailable Pay keeps the chooser gate closed.\"\n    }\n  ],\n  extensions: [{\n    extensionId: \"cedros-pay\",\n    minVersion: \"4.0.5\",\n    required: !1,\n    reason: \"Optional buyer-authenticated subscription selection; when configured, unavailable Pay status keeps the chooser gate closed and denies plan-limited invitations. Pay owns subscriptions and checkout.\"\n  }]\n}, bs = [\n  \"cedros-data:database-concurrency-v2\",\n  \"cedros-data:token-email-evidence-v1\",\n  \"cedros-data:identity-atomic-v1\",\n  \"cedros-data:session-atomic-v1\",\n  \"cedros-data:signup-limit-atomic-v1\",\n  \"cedros-data:abuse-budget-consume-v1\",\n  \"cedros-data:extension-storage-cas-v1\",\n  \"cedros-data:mcp-connection-revoke-v1\",\n  \"cedros-data:login-relying-party-config-v1\"\n], vs = /* @__PURE__ */ JSON.parse(`{\"server\":{\"packageRef\":\"server\",\"required\":true,\"migrations\":[\"cedros-login:identity-schema-v1\",\"cedros-login:organization-schema-v1\",\"cedros-login:settings-audit-schema-v1\"],\"settingsSchemas\":[\"cedros-login:dashboard-permissions\",\"cedros-login:system-settings\"],\"contentModels\":[\"cedros-login:identity-records\",\"cedros-login:sessions\",\"cedros-login:users\",\"cedros-login:user-emails\",\"cedros-login:nonces\",\"cedros-login:verifications\",\"cedros-login:login-attempts\",\"cedros-login:totp\",\"cedros-login:api-key-records\",\"cedros-login:outbox\",\"cedros-login:credentials\",\"cedros-login:sso-providers\",\"cedros-login:sso-identities\",\"cedros-login:organization-records\",\"cedros-login:orgs\",\"cedros-login:memberships\",\"cedros-login:invite-records\",\"cedros-login:invite-codes\",\"cedros-login:invite-code-accounts\",\"cedros-login:custom-roles\",\"cedros-login:policies\",\"cedros-login:settings-audit-records\",\"cedros-login:oauth-connections\"],\"routes\":[\"cedros-login:jwks\",\"cedros-login:v1-jwks\",\"cedros-login:admin-jwt-rotate\",\"cedros-login:discovery\",\"cedros-login:ai-discovery\",\"cedros-login:register\",\"cedros-login:login\",\"cedros-login:logout\",\"cedros-login:refresh\",\"cedros-login:google-login\",\"cedros-login:apple-login\",\"cedros-login:apple-nonce\",\"cedros-login:link-oauth\",\"cedros-login:solana-challenge\",\"cedros-login:solana-login\",\"cedros-login:solana-link\",\"cedros-login:public-auth-features\",\"cedros-login:public-auth-register\",\"cedros-login:public-auth-invites-accept\",\"cedros-login:public-auth-invite-codes-redeem\",\"cedros-login:public-auth-login\",\"cedros-login:public-auth-login-mfa\",\"cedros-login:public-auth-logout\",\"cedros-login:public-auth-refresh\",\"cedros-login:public-auth-current-user\",\"cedros-login:public-auth-google-login\",\"cedros-login:public-auth-apple-login\",\"cedros-login:public-auth-apple-nonce\",\"cedros-login:public-auth-solana-challenge\",\"cedros-login:public-auth-solana-login\",\"cedros-login:public-auth-webauthn-auth-options\",\"cedros-login:public-auth-webauthn-auth-verify\",\"cedros-login:public-auth-webauthn-signup-options\",\"cedros-login:public-auth-webauthn-signup-verify\",\"cedros-login:public-auth-instant-link-send\",\"cedros-login:public-auth-instant-link-verify\",\"cedros-login:public-auth-forgot-password\",\"cedros-login:public-auth-reset-password\",\"cedros-login:public-auth-send-verification\",\"cedros-login:public-auth-verify-email\",\"cedros-login:public-auth-update-profile\",\"cedros-login:public-auth-update-profile-scoped-v1\",\"cedros-login:public-auth-change-email\",\"cedros-login:public-auth-account-emails-list\",\"cedros-login:public-auth-account-emails-add\",\"cedros-login:public-auth-account-emails-verify\",\"cedros-login:public-auth-account-emails-resend\",\"cedros-login:public-auth-account-emails-delete\",\"cedros-login:public-auth-account-emails-primary\",\"cedros-login:public-auth-account-invite-codes-list\",\"cedros-login:public-auth-account-invite-discount\",\"cedros-login:public-auth-change-password\",\"cedros-login:public-auth-set-password\",\"cedros-login:public-auth-credentials-list\",\"cedros-login:public-auth-credentials-unlink\",\"cedros-login:public-auth-sessions-list\",\"cedros-login:public-auth-sessions-revoke-all\",\"cedros-login:public-auth-mfa-status\",\"cedros-login:public-auth-mfa-setup\",\"cedros-login:public-auth-mfa-enable\",\"cedros-login:public-auth-mfa-disable\",\"cedros-login:public-auth-mfa-recovery-codes-regenerate\",\"cedros-login:public-auth-webauthn-register-options\",\"cedros-login:public-auth-webauthn-register-verify\",\"cedros-login:public-auth-solana-link\",\"cedros-login:public-auth-link-oauth\",\"cedros-login:public-auth-account-deletion-request\",\"cedros-login:public-auth-account-deletion-me\",\"cedros-login:mfa-setup\",\"cedros-login:mfa-enable\",\"cedros-login:mfa-disable\",\"cedros-login:mfa-status\",\"cedros-login:login-mfa\",\"cedros-login:mfa-recovery\",\"cedros-login:mfa-recovery-codes-regenerate\",\"cedros-login:webauthn-register-options\",\"cedros-login:webauthn-register-verify\",\"cedros-login:webauthn-auth-options\",\"cedros-login:webauthn-auth-verify\",\"cedros-login:webauthn-signup-options\",\"cedros-login:webauthn-signup-verify\",\"cedros-login:sso-start\",\"cedros-login:sso-callback\",\"cedros-login:send-verification\",\"cedros-login:verify-email\",\"cedros-login:instant-link-send\",\"cedros-login:instant-link-verify\",\"cedros-login:forgot-password\",\"cedros-login:reset-password\",\"cedros-login:change-password\",\"cedros-login:set-password\",\"cedros-login:username-available\",\"cedros-login:logout-all\",\"cedros-login:list-sessions\",\"cedros-login:revoke-session\",\"cedros-login:revoke-all-sessions\",\"cedros-login:get-current-user\",\"cedros-login:identity-profile-current\",\"cedros-login:update-profile\",\"cedros-login:update-profile-scoped-v1\",\"cedros-login:change-email\",\"cedros-login:account-emails-list\",\"cedros-login:account-emails-add\",\"cedros-login:account-emails-verify\",\"cedros-login:account-emails-resend\",\"cedros-login:account-emails-delete\",\"cedros-login:account-emails-primary\",\"cedros-login:welcome-completed\",\"cedros-login:request-account-deletion\",\"cedros-login:confirm-account-deletion\",\"cedros-login:delete-account\",\"cedros-login:avatar-upload\",\"cedros-login:avatar-get\",\"cedros-login:avatar-delete\",\"cedros-login:orgs-create\",\"cedros-login:orgs-list\",\"cedros-login:orgs-get\",\"cedros-login:orgs-update\",\"cedros-login:orgs-delete\",\"cedros-login:orgs-switch\",\"cedros-login:members-list\",\"cedros-login:members-update\",\"cedros-login:members-remove\",\"cedros-login:invites-create\",\"cedros-login:invites-list\",\"cedros-login:invites-cancel\",\"cedros-login:invites-resend\",\"cedros-login:custom-roles-list\",\"cedros-login:custom-roles-create\",\"cedros-login:custom-roles-get\",\"cedros-login:custom-roles-update\",\"cedros-login:custom-roles-delete\",\"cedros-login:invites-accept\",\"cedros-login:setup-status\",\"cedros-login:setup-admin\",\"cedros-login:setup-admin-import\",\"cedros-login:api-keys-create\",\"cedros-login:portal-agent-keys-create\",\"cedros-login:portal-agent-keys-list\",\"cedros-login:portal-agent-keys-revoke\",\"cedros-login:portal-agent-keys-identity\",\"cedros-login:api-keys-list\",\"cedros-login:api-keys-revoke\",\"cedros-login:api-keys-validate\",\"cedros-login:authorize\",\"cedros-login:permissions\",\"cedros-login:policies-list\",\"cedros-login:policies-create\",\"cedros-login:policies-get\",\"cedros-login:policies-update\",\"cedros-login:policies-delete\",\"cedros-login:admin-settings-get\",\"cedros-login:admin-settings-update\",\"cedros-login:admin-email-test\",\"cedros-login:system-email-preview\",\"cedros-login:admin-invite-codes-list\",\"cedros-login:admin-invite-codes-create\",\"cedros-login:admin-invite-codes-update\",\"cedros-login:admin-invite-codes-delete\",\"cedros-login:admin-audit-list\",\"cedros-login:admin-users-list\",\"cedros-login:admin-users-get\",\"cedros-login:admin-users-update\",\"cedros-login:admin-users-set-system-admin\",\"cedros-login:admin-users-delete\",\"cedros-login:admin-sso-providers-list\",\"cedros-login:admin-sso-providers-create\",\"cedros-login:admin-sso-providers-get\",\"cedros-login:admin-sso-providers-update\",\"cedros-login:admin-sso-providers-delete\",\"cedros-login:admin-relying-parties-list\",\"cedros-login:admin-data-membership-relationship\",\"cedros-login:admin-relying-parties-configure\",\"cedros-login:admin-relying-parties-verify\",\"cedros-login:relying-party-session-introspect\",\"cedros-login:relying-party-user-get\",\"cedros-login:relying-party-users-count\",\"cedros-login:relying-party-membership-authority-get\",\"cedros-login:identity-profile-admin-get\",\"cedros-login:user-lookup-by-wallet\",\"cedros-login:org-audit-list\",\"cedros-login:custom-roles-set-default\",\"cedros-login:admin-orgs-list\",\"cedros-login:admin-orgs-get\",\"cedros-login:admin-dashboard-permissions-get\",\"cedros-login:admin-dashboard-permissions-update\",\"cedros-login:admin-disposable-domains-get\",\"cedros-login:admin-disposable-domains-update\",\"cedros-login:admin-users-stats\",\"cedros-login:admin-users-force-password-reset\",\"cedros-login:features\",\"cedros-login:mfa-verify\",\"cedros-login:credentials-list\",\"cedros-login:credentials-update\",\"cedros-login:credentials-unlink\",\"cedros-login:oauth-metadata\",\"cedros-login:oauth-authorize\",\"cedros-login:oauth-request-info\",\"cedros-login:oauth-decide\",\"cedros-login:oauth-token\",\"cedros-login:oauth-introspect\",\"cedros-login:oauth-consent-authority\",\"cedros-login:oauth-revoke\",\"cedros-login:oauth-disconnect\",\"cedros-login:admin-oauth-get\",\"cedros-login:admin-oauth-put\"],\"jobs\":[\"cedros-login:cleanup-expired-auth-data\",\"cedros-login:outbox-dispatch\",\"cedros-login:oauth-connection-cleanup\"],\"events\":[\"cedros-login:authenticated\",\"cedros-login:registered\",\"cedros-login:logout\",\"cedros-login:registration-created\",\"cedros-login:user-login\",\"cedros-login:identifier-linked\",\"cedros-login:identifier-unlinked\",\"cedros-login:login-failed\",\"cedros-login:account-locked\",\"cedros-login:token-reuse-detected\",\"cedros-login:mfa-enabled\",\"cedros-login:mfa-disabled\",\"cedros-login:password-reset-requested\",\"cedros-login:password-reset-completed\",\"cedros-login:email-verified\",\"cedros-login:account-deleted\",\"cedros-login:invite-sent\",\"cedros-login:invite-accepted\"]},\"admin\":{\"packageRef\":\"react\",\"required\":true,\"moduleIds\":[\"cedros-login:admin\"],\"slotIds\":[],\"editorSurfaceIds\":[]},\"web\":{\"packageRef\":\"react\",\"required\":true,\"routeIds\":[\"cedros-login:login-page\",\"cedros-login:register-page\",\"cedros-login:password-recovery-page\",\"cedros-login:reset-password-page\",\"cedros-login:email-verification-page\",\"cedros-login:instant-link-verification-page\",\"cedros-login:invite-acceptance-page\",\"cedros-login:public-profile-page\"],\"blockTypes\":[\"cedros-login:auth-page-copy\",\"cedros-login:auth-form\",\"cedros-login:login-button\",\"cedros-login:account-workspace\"],\"templateIds\":[\"cedros-login:login-page-template\",\"cedros-login:register-page-template\",\"cedros-login:password-recovery-page-template\",\"cedros-login:reset-password-page-template\",\"cedros-login:email-verification-page-template\",\"cedros-login:instant-link-verification-page-template\",\"cedros-login:invite-acceptance-page-template\",\"cedros-login:public-profile-page-template\"],\"authoredSurfaceIds\":[],\"templateUtilityIds\":[]},\"native\":{\"packageRef\":\"reactNative\",\"required\":true,\"screenIds\":[\"cedros-login:login-screen\"],\"stackIds\":[],\"providerIds\":[\"cedros-login:provider\"]},\"ai\":{\"capabilities\":[{\"auth\":{\"schemes\":[\"bearer-token\"]},\"description\":\"Read or idempotently provision Data's fixed membership reauthorization relationship. Generates credentials server-side and returns only readiness and a safe membership-route probe.\",\"endpoint\":{\"method\":\"POST\",\"path\":\"/extensions/cedros-login/admin/relying-parties/data-membership\"},\"id\":\"cedros-login:data-membership-relationship\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"action\":{\"enum\":[\"read\",\"ensure\"],\"type\":\"string\"}},\"required\":[\"action\"],\"type\":\"object\"},\"kind\":\"action\",\"name\":\"Data Membership Service Relationship\",\"outputSchema\":{\"additionalProperties\":false,\"properties\":{\"membershipProbe\":{\"type\":\"object\"},\"relationship\":{\"type\":\"object\"}},\"required\":[\"relationship\"],\"type\":\"object\"},\"tags\":[\"identity\",\"capacity\",\"setup\"],\"visibility\":\"admin\"},{\"description\":\"Request a verification email for an account email address.\",\"endpoint\":{\"method\":\"POST\",\"path\":\"/extensions/cedros-login/send-verification\"},\"id\":\"cedros-login:send-verification-email\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"email\":{\"type\":\"string\"}},\"required\":[\"email\"],\"type\":\"object\"},\"kind\":\"action\",\"name\":\"Send Verification Email\",\"outputSchema\":{\"additionalProperties\":false,\"properties\":{\"message\":{\"type\":\"string\"}},\"required\":[\"message\"],\"type\":\"object\"},\"tags\":[\"auth\",\"verification\"],\"visibility\":\"public\"},{\"description\":\"Verify an email token. Initial account verification also returns an authenticated session; additional-address and email-change verification return a message only.\",\"endpoint\":{\"method\":\"POST\",\"path\":\"/extensions/cedros-login/verify-email\"},\"id\":\"cedros-login:verify-email-token\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"token\":{\"type\":\"string\"}},\"required\":[\"token\"],\"type\":\"object\"},\"kind\":\"action\",\"name\":\"Verify Email Token\",\"outputSchema\":{\"additionalProperties\":false,\"properties\":{\"isNewUser\":{\"type\":\"boolean\"},\"message\":{\"type\":\"string\"},\"method\":{\"type\":\"string\"},\"postLogin\":{\"type\":\"object\"},\"tokens\":{\"type\":\"object\"},\"user\":{\"type\":\"object\"}},\"type\":\"object\"},\"tags\":[\"auth\",\"verification\"],\"visibility\":\"public\"},{\"auth\":{\"schemes\":[\"bearer-token\"]},\"description\":\"Revoke all active sessions for the authenticated user.\",\"endpoint\":{\"method\":\"POST\",\"path\":\"/extensions/cedros-login/logout-all\"},\"id\":\"cedros-login:logout-all-sessions\",\"inputSchema\":{\"additionalProperties\":false,\"type\":\"object\"},\"kind\":\"action\",\"name\":\"Logout All Sessions\",\"outputSchema\":{\"additionalProperties\":false,\"properties\":{\"message\":{\"type\":\"string\"}},\"required\":[\"message\"],\"type\":\"object\"},\"tags\":[\"security\",\"sessions\"],\"visibility\":\"authenticated\"},{\"auth\":{\"schemes\":[\"bearer-token\"]},\"description\":\"Disable MFA for the authenticated user after proving possession of a currently enrolled factor with a TOTP code or unused recovery code.\",\"endpoint\":{\"method\":\"POST\",\"path\":\"/extensions/cedros-login/mfa/disable\"},\"id\":\"cedros-login:disable-mfa\",\"inputSchema\":{\"additionalProperties\":false,\"description\":\"Provide exactly one of code or recoveryCode.\",\"maxProperties\":1,\"minProperties\":1,\"properties\":{\"code\":{\"description\":\"Current authenticator app code.\",\"minLength\":1,\"type\":\"string\"},\"recoveryCode\":{\"description\":\"Unused MFA recovery code.\",\"minLength\":1,\"type\":\"string\"}},\"type\":\"object\"},\"kind\":\"action\",\"name\":\"Disable MFA\",\"outputSchema\":{\"additionalProperties\":false,\"properties\":{\"message\":{\"type\":\"string\"}},\"required\":[\"message\"],\"type\":\"object\"},\"tags\":[\"security\",\"mfa\"],\"visibility\":\"authenticated\"}],\"packageRef\":\"server\",\"skills\":[{\"category\":\"identity\",\"description\":\"Discover Cedros Login authentication, account creation, verification, and password reset flows.\",\"docs\":{\"markdown\":\"# Cedros Login: Authentication And Onboarding\\\\n\\\\nUse Cedros Login for account creation, authentication, email verification, password reset, and federated login.\\\\n\\\\nKey endpoints:\\\\n- POST {{API_BASE}}/register\\\\n- POST {{API_BASE}}/login\\\\n- POST {{API_BASE}}/google\\\\n- POST {{API_BASE}}/apple\\\\n- POST {{API_BASE}}/solana\\\\n- POST {{API_BASE}}/forgot-password\\\\n- POST {{API_BASE}}/reset-password\\\\n- POST {{API_BASE}}/send-verification\\\\n- POST {{API_BASE}}/verify-email\\\\n\"},\"id\":\"cedros-login:auth-and-onboarding\",\"name\":\"Authentication And Onboarding\",\"tags\":[\"auth\",\"onboarding\",\"verification\"],\"visibility\":\"public\"},{\"category\":\"security\",\"description\":\"Manage sessions, MFA, passwords, and authenticated user security posture.\",\"docs\":{\"markdown\":\"# Cedros Login: Account Security\\\\n\\\\nAuthenticated users can manage security settings, change passwords, and revoke sessions.\\\\n\\\\nKey endpoints:\\\\n- POST {{API_BASE}}/logout-all\\\\n- POST {{API_BASE}}/change-password\\\\n- POST {{API_BASE}}/mfa/setup\\\\n- POST {{API_BASE}}/mfa/enable\\\\n- POST {{API_BASE}}/mfa/disable\\\\n- GET {{API_BASE}}/mfa/status\\\\n\"},\"id\":\"cedros-login:account-security\",\"name\":\"Account Security\",\"tags\":[\"security\",\"sessions\",\"mfa\"],\"visibility\":\"authenticated\"},{\"category\":\"identity\",\"description\":\"Operate user, invite, org, and admin identity workflows.\",\"docs\":{\"markdown\":\"# Cedros Login: Identity Admin Operations\\\\n\\\\nAdmin operators can inspect users, orgs, and operational identity settings.\\\\n\\\\nKey endpoints:\\\\n- GET {{API_BASE}}/admin/users\\\\n- GET {{API_BASE}}/admin/settings\\\\n- GET {{API_BASE}}/admin/audit\\\\n- POST {{API_BASE}}/v1/session/introspect\\\\n- GET {{API_BASE}}/v1/users/{userId}\\\\n\"},\"id\":\"cedros-login:identity-admin\",\"name\":\"Identity Admin Operations\",\"tags\":[\"admin\",\"users\",\"orgs\"],\"visibility\":\"admin\"}]}}`), ys = {\n  server: { entrypoint: \"cedros_login::register_extension_family\" },\n  admin: { entrypoint: \"@cedros/login-react/admin/register\" },\n  web: { entrypoint: \"@cedros/login-react/web/register\" },\n  native: { entrypoint: \"@cedros/login-react-native/register\" }\n}, ws = [\n  {\n    id: \"cedros-login:user-context\",\n    displayName: \"Login User Context\",\n    description: \"Publishes the authenticated user, current Login session, and active organization membership and role to authorized Cedros hosts.\",\n    category: \"runtime\",\n    requestedScopes: [{\n      verb: \"expose\",\n      resource: \"authenticated user context\",\n      summary: \"Expose the current user id, profile summary, and authoritative session state.\"\n    }, {\n      verb: \"expose\",\n      resource: \"organization context\",\n      summary: \"Expose current Login organization membership and role without site-level permissions.\"\n    }]\n  },\n  {\n    id: \"cedros-login:identity-profile\",\n    displayName: \"Login Identity Profile Projection\",\n    description: \"Publishes a versioned, minimal Login-owned profile/security projection for the authenticated subject and separately scoped, tenant-bound support lookups.\",\n    category: \"runtime\",\n    requestedScopes: [{\n      verb: \"read\",\n      resource: \"current-user identity profile\",\n      summary: \"Read only the authenticated Login subject's five profile-completion booleans.\"\n    }, {\n      verb: \"read\",\n      resource: \"tenant identity profile\",\n      summary: \"Allow an explicitly scoped relying party to read the same minimal projection for a Login subject in an allowed organization.\"\n    }]\n  },\n  {\n    id: \"cedros-login:session-manage\",\n    displayName: \"Login Session Management\",\n    description: \"Publishes session status and permission-gated account security actions such as invite, reset, revoke, logout-all, and MFA changes.\",\n    category: \"admin\",\n    requestedScopes: [{\n      verb: \"read\",\n      resource: \"session status\",\n      summary: \"Read authenticated session status and account security posture.\"\n    }, {\n      verb: \"call\",\n      resource: \"session security actions\",\n      summary: \"Call permission-gated session revocation, logout-all, MFA, invite, and reset workflows.\"\n    }]\n  },\n  {\n    id: \"cedros-login:admin-auth\",\n    displayName: \"Login Admin Authorization\",\n    description: \"Publishes admin authorization context for Cedros platform Settings, Team, and CRM identity handoff flows.\",\n    category: \"admin\",\n    requestedScopes: [{\n      verb: \"read\",\n      resource: \"admin authorization context\",\n      summary: \"Read operator role and permission context supplied by the Cedros host.\"\n    }, {\n      verb: \"call\",\n      resource: \"authorization checks\",\n      summary: \"Evaluate permission-gated account, team, invite, settings, and audit actions.\"\n    }]\n  },\n  {\n    id: \"cedros-login:site-brain-records\",\n    displayName: \"Login Site Brain Records\",\n    description: \"Writes redacted operational records for Login jobs, email delivery failures, first-run setup, and account security events.\",\n    category: \"runtime\",\n    requestedScopes: [\n      {\n        verb: \"write\",\n        resource: \"site-brain-record:job\",\n        summary: \"Write redacted job completion and failure records.\"\n      },\n      {\n        verb: \"write\",\n        resource: \"site-brain-record:provider\",\n        summary: \"Write redacted email provider delivery failure records.\"\n      },\n      {\n        verb: \"write\",\n        resource: \"site-brain-record:security\",\n        summary: \"Write redacted account security event records (e.g. MFA disabled).\"\n      },\n      {\n        verb: \"write\",\n        resource: \"site-brain-record:setup\",\n        summary: \"Write redacted first-run setup completion records.\"\n      }\n    ]\n  },\n  {\n    id: \"cedros-login:auth-response\",\n    displayName: \"Login Auth Response Contract\",\n    description: \"Publishes auth session cookies and the public user/auth response, including invite-gate handoff status on pending registrations.\",\n    category: \"runtime\",\n    requestedScopes: [{\n      verb: \"expose\",\n      resource: \"auth session cookies\",\n      summary: \"Set the cedros_access and cedros_refresh cookies on auth-completing responses; logout expires both.\"\n    }, {\n      verb: \"expose\",\n      resource: \"auth response user body\",\n      summary: \"Expose the authenticated user summary, isNewUser, auth method, and truthful invite-gate handoff status.\"\n    }]\n  },\n  {\n    id: \"cedros-login:invite-discount\",\n    displayName: \"Login Invite Discount\",\n    description: \"Publishes the subscription discount granted by a redeemed invite code (percent off, granting code, redeemed at) so billing extensions such as Cedros Pay can apply it at checkout.\",\n    category: \"runtime\",\n    requestedScopes: [{\n      verb: \"read\",\n      resource: \"invite discount grant\",\n      summary: \"Read the authenticated user's invite-code discount via GET /public-auth/account/invite-discount.\"\n    }]\n  }\n], ks = [{\n  moduleId: \"cedros-login:admin\",\n  extensionId: \"cedros-login\",\n  displayName: \"Cedros Login\",\n  version: \"2.1.17\",\n  packageName: \"@cedros/login-react\",\n  sectionIds: [\"cedros-login:login\"],\n  sectionIcons: { \"cedros-login:login\": \"account\" },\n  navigation: {\n    sections: [{\n      id: \"cedros-login:login\",\n      label: \"Login\",\n      group: \"Extension Settings\",\n      order: 0,\n      requiredPermission: \"manage_settings\",\n      replacesSectionIds: [\n        \"cedros-data:account-settings\",\n        \"account-settings\",\n        \"cedros-login:account-settings\",\n        \"cedros-login:settings-email\",\n        \"cedros-login:settings-webhooks\",\n        \"cedros-login:settings-server\",\n        \"cedros-login:settings-images\",\n        \"cedros-login:activity\"\n      ],\n      adminPageAccess: { routePath: \"/settings/login\" }\n    }],\n    groups: [{\n      id: \"Extension Settings\",\n      label: \"Extension Settings\",\n      order: 1\n    }]\n  },\n  slots: [],\n  contributions: { dashboardCards: [{\n    id: \"cedros-login:identity-health-card\",\n    displayName: \"User Growth\",\n    description: \"Shows login-backed account growth, verification, active login, invite, and provider-mix health.\",\n    order: 20\n  }] }\n}], xs = { events: [\n  {\n    id: \"cedros-login:authenticated\",\n    displayName: \"Authenticated\",\n    description: \"A user successfully authenticated through Cedros Login.\",\n    category: \"identity\",\n    visibility: \"authenticated\"\n  },\n  {\n    id: \"cedros-login:registered\",\n    displayName: \"Registered\",\n    description: \"A user account was created through Cedros Login.\",\n    category: \"identity\",\n    visibility: \"authenticated\"\n  },\n  {\n    id: \"cedros-login:logout\",\n    displayName: \"Logged out\",\n    description: \"A user session was ended through Cedros Login.\",\n    category: \"identity\",\n    visibility: \"authenticated\"\n  },\n  {\n    id: \"cedros-login:registration-created\",\n    displayName: \"Registration created\",\n    description: \"A registration notification seed was created through Cedros Login.\",\n    category: \"identity\",\n    visibility: \"authenticated\"\n  },\n  {\n    id: \"cedros-login:user-login\",\n    displayName: \"User login\",\n    description: \"A login notification seed was created through Cedros Login.\",\n    category: \"identity\",\n    visibility: \"authenticated\"\n  },\n  {\n    id: \"cedros-login:identifier-linked\",\n    displayName: \"Identifier linked\",\n    description: \"An additional sign-in method was linked to an existing account through Cedros Login.\",\n    category: \"identity\",\n    visibility: \"authenticated\"\n  },\n  {\n    id: \"cedros-login:identifier-unlinked\",\n    displayName: \"Identifier unlinked\",\n    description: \"An additional identifier was removed from an existing account through Cedros Login.\",\n    category: \"identity\",\n    visibility: \"authenticated\"\n  },\n  {\n    id: \"cedros-login:login-failed\",\n    displayName: \"Login failed\",\n    description: \"A sign-in attempt was rejected before a session was issued through Cedros Login.\",\n    category: \"identity\",\n    visibility: \"authenticated\"\n  },\n  {\n    id: \"cedros-login:account-locked\",\n    displayName: \"Account locked\",\n    description: \"An account was temporarily locked after repeated failed sign-in attempts through Cedros Login.\",\n    category: \"identity\",\n    visibility: \"authenticated\"\n  },\n  {\n    id: \"cedros-login:token-reuse-detected\",\n    displayName: \"Token reuse detected\",\n    description: \"A rotated refresh token was replayed, signalling possible session theft, through Cedros Login.\",\n    category: \"identity\",\n    visibility: \"authenticated\"\n  },\n  {\n    id: \"cedros-login:mfa-enabled\",\n    displayName: \"MFA enabled\",\n    description: \"A user turned on multi-factor authentication through Cedros Login.\",\n    category: \"identity\",\n    visibility: \"authenticated\"\n  },\n  {\n    id: \"cedros-login:mfa-disabled\",\n    displayName: \"MFA disabled\",\n    description: \"A user turned off multi-factor authentication through Cedros Login.\",\n    category: \"identity\",\n    visibility: \"authenticated\"\n  },\n  {\n    id: \"cedros-login:password-reset-requested\",\n    displayName: \"Password reset requested\",\n    description: \"A user requested a password-reset email through Cedros Login.\",\n    category: \"identity\",\n    visibility: \"authenticated\"\n  },\n  {\n    id: \"cedros-login:password-reset-completed\",\n    displayName: \"Password reset completed\",\n    description: \"A user completed a password reset through Cedros Login.\",\n    category: \"identity\",\n    visibility: \"authenticated\"\n  },\n  {\n    id: \"cedros-login:email-verified\",\n    displayName: \"Email verified\",\n    description: \"A user verified an email address through Cedros Login.\",\n    category: \"identity\",\n    visibility: \"authenticated\"\n  },\n  {\n    id: \"cedros-login:account-deleted\",\n    displayName: \"Account deleted\",\n    description: \"A user account was deleted through Cedros Login.\",\n    category: \"identity\",\n    visibility: \"authenticated\"\n  },\n  {\n    id: \"cedros-login:invite-sent\",\n    displayName: \"Team invite sent\",\n    description: \"A team invitation was sent through Cedros Login.\",\n    category: \"identity\",\n    visibility: \"authenticated\"\n  },\n  {\n    id: \"cedros-login:invite-accepted\",\n    displayName: \"Team invite accepted\",\n    description: \"A team invitation was accepted through Cedros Login.\",\n    category: \"identity\",\n    visibility: \"authenticated\"\n  }\n] }, _s = [{\n  id: \"cedros-login:email-provider\",\n  provider: \"email\",\n  displayName: \"Login transactional email\",\n  description: \"Send verification, reset, invitation, and instant-link emails through the site-owned email provider.\",\n  scopes: [\"email.send\", \"email.design.resolve\"],\n  tags: [\"identity\", \"email\"]\n}, {\n  id: \"cedros-login:image-storage\",\n  provider: \"storage\",\n  displayName: \"Login image storage\",\n  description: \"Store and read user profile images through the site-owned storage provider when image uploads are enabled.\",\n  scopes: [\n    \"put\",\n    \"get\",\n    \"delete\"\n  ],\n  tags: [\"identity\", \"profile-images\"]\n}], As = [{\n  id: \"cedros-login:invite-gate-handoff\",\n  sourceKind: \"cedros_login\",\n  displayName: \"Login invite-gate handoff\",\n  description: \"Submits an idempotent, non-PII pending-account handoff after a gated registration is durably created.\",\n  scopes: [\"write\"],\n  eventTypes: [\"invite_gate.pending\"],\n  tags: [\n    \"identity\",\n    \"early-access\",\n    \"waitlist\"\n  ]\n}], Cs = [\n  {\n    id: \"cedros-login:identity-db\",\n    displayName: \"Login Identity Database\",\n    description: \"Reads, writes, and migrates users, sessions, credentials, verification tokens, MFA, WebAuthn, SSO, API keys, nonces, and login attempts.\",\n    contentModels: [\n      \"cedros-login:identity-records\",\n      \"cedros-login:sessions\",\n      \"cedros-login:users\",\n      \"cedros-login:user-emails\",\n      \"cedros-login:nonces\",\n      \"cedros-login:verifications\",\n      \"cedros-login:login-attempts\",\n      \"cedros-login:totp\",\n      \"cedros-login:api-key-records\",\n      \"cedros-login:outbox\",\n      \"cedros-login:credentials\",\n      \"cedros-login:sso-providers\",\n      \"cedros-login:sso-identities\",\n      \"cedros-login:oauth-connections\"\n    ],\n    migrations: [\"cedros-login:identity-schema-v1\"],\n    scopes: [\n      {\n        verb: \"read\",\n        resource: \"identity records\",\n        summary: \"read identity records through host-mediated Cedros database operations.\"\n      },\n      {\n        verb: \"write\",\n        resource: \"identity records\",\n        summary: \"write identity records through host-mediated Cedros database operations.\"\n      },\n      {\n        verb: \"delete\",\n        resource: \"identity records\",\n        summary: \"delete identity records through host-mediated Cedros database operations.\"\n      },\n      {\n        verb: \"migrate\",\n        resource: \"identity schema\",\n        summary: \"migrate identity schema through host-mediated Cedros database operations.\"\n      }\n    ],\n    tags: [\n      \"identity\",\n      \"auth\",\n      \"security\"\n    ]\n  },\n  {\n    id: \"cedros-login:org-db\",\n    displayName: \"Login Organization Database\",\n    description: \"Reads, writes, and migrates organization, membership, invite, role, policy, and access-code records.\",\n    contentModels: [\n      \"cedros-login:organization-records\",\n      \"cedros-login:orgs\",\n      \"cedros-login:memberships\",\n      \"cedros-login:invite-records\",\n      \"cedros-login:invite-codes\",\n      \"cedros-login:invite-code-accounts\",\n      \"cedros-login:custom-roles\",\n      \"cedros-login:policies\"\n    ],\n    migrations: [\"cedros-login:organization-schema-v1\"],\n    scopes: [\n      {\n        verb: \"read\",\n        resource: \"organization records\",\n        summary: \"read organization records through host-mediated Cedros database operations.\"\n      },\n      {\n        verb: \"write\",\n        resource: \"organization records\",\n        summary: \"write organization records through host-mediated Cedros database operations.\"\n      },\n      {\n        verb: \"delete\",\n        resource: \"organization records\",\n        summary: \"delete organization records through host-mediated Cedros database operations.\"\n      },\n      {\n        verb: \"migrate\",\n        resource: \"organization schema\",\n        summary: \"migrate organization schema through host-mediated Cedros database operations.\"\n      }\n    ],\n    tags: [\n      \"identity\",\n      \"organizations\",\n      \"rbac\"\n    ]\n  },\n  {\n    id: \"cedros-login:settings-audit-db\",\n    displayName: \"Login Settings And Audit Database\",\n    description: \"Reads, writes, and migrates system settings, dashboard permissions, audit logs, outbox events, webhook state, and operational records.\",\n    contentModels: [\"cedros-login:settings-audit-records\"],\n    migrations: [\"cedros-login:settings-audit-schema-v1\"],\n    scopes: [\n      {\n        verb: \"read\",\n        resource: \"settings and audit records\",\n        summary: \"read settings and audit records through host-mediated Cedros database operations.\"\n      },\n      {\n        verb: \"write\",\n        resource: \"settings and audit records\",\n        summary: \"write settings and audit records through host-mediated Cedros database operations.\"\n      },\n      {\n        verb: \"delete\",\n        resource: \"settings and audit records\",\n        summary: \"delete settings and audit records through host-mediated Cedros database operations.\"\n      },\n      {\n        verb: \"migrate\",\n        resource: \"settings and audit schema\",\n        summary: \"migrate settings and audit schema through host-mediated Cedros database operations.\"\n      }\n    ],\n    tags: [\n      \"identity\",\n      \"settings\",\n      \"audit\",\n      \"outbox\"\n    ]\n  },\n  {\n    id: \"cedros-login:oauth-consent-db\",\n    displayName: \"Login OAuth Consent Transaction Database\",\n    description: \"Atomically binds OAuth approval and its dedicated session to the current user, browser session, and selected organization membership.\",\n    contentModels: [\n      \"cedros-login:oauth-connections\",\n      \"cedros-login:users\",\n      \"cedros-login:sessions\",\n      \"cedros-login:memberships\"\n    ],\n    migrations: [],\n    scopes: [\n      {\n        verb: \"read\",\n        resource: \"OAuth consent records\",\n        summary: \"read OAuth consent records through host-mediated Cedros database operations.\"\n      },\n      {\n        verb: \"write\",\n        resource: \"OAuth consent records\",\n        summary: \"write OAuth consent records through host-mediated Cedros database operations.\"\n      },\n      {\n        verb: \"delete\",\n        resource: \"OAuth consent records\",\n        summary: \"delete OAuth consent records through host-mediated Cedros database operations.\"\n      }\n    ],\n    tags: [\n      \"identity\",\n      \"oauth\",\n      \"security\"\n    ]\n  },\n  {\n    id: \"cedros-login:registration-db\",\n    displayName: \"Login Registration Transaction Database\",\n    description: \"Reads signup-limit availability and atomically consumes registration proofs, creates identity/session/default-organization membership records, applies invite-code activation, and couples required verification mail to account creation.\",\n    contentModels: [\n      \"cedros-login:verifications\",\n      \"cedros-login:nonces\",\n      \"cedros-login:users\",\n      \"cedros-login:user-emails\",\n      \"cedros-login:credentials\",\n      \"cedros-login:sso-identities\",\n      \"cedros-login:sessions\",\n      \"cedros-login:orgs\",\n      \"cedros-login:memberships\",\n      \"cedros-login:invite-codes\",\n      \"cedros-login:invite-code-accounts\",\n      \"cedros-login:outbox\"\n    ],\n    migrations: [],\n    scopes: [\n      {\n        verb: \"read\",\n        resource: \"registration records\",\n        summary: \"read registration records through host-mediated Cedros database operations.\"\n      },\n      {\n        verb: \"write\",\n        resource: \"registration records\",\n        summary: \"write registration records through host-mediated Cedros database operations.\"\n      },\n      {\n        verb: \"delete\",\n        resource: \"registration records\",\n        summary: \"delete registration records through host-mediated Cedros database operations.\"\n      }\n    ],\n    tags: [\n      \"identity\",\n      \"registration\",\n      \"security\"\n    ]\n  },\n  {\n    id: \"cedros-login:account-lifecycle-db\",\n    displayName: \"Login Account Lifecycle Transaction Database\",\n    description: \"Atomically enforces administrator and organization invariants while deleting an account and its owned records.\",\n    contentModels: [\n      \"cedros-login:users\",\n      \"cedros-login:sessions\",\n      \"cedros-login:user-emails\",\n      \"cedros-login:verifications\",\n      \"cedros-login:login-attempts\",\n      \"cedros-login:totp\",\n      \"cedros-login:api-key-records\",\n      \"cedros-login:outbox\",\n      \"cedros-login:credentials\",\n      \"cedros-login:sso-providers\",\n      \"cedros-login:sso-identities\",\n      \"cedros-login:orgs\",\n      \"cedros-login:memberships\",\n      \"cedros-login:invite-records\",\n      \"cedros-login:invite-codes\",\n      \"cedros-login:invite-code-accounts\",\n      \"cedros-login:custom-roles\",\n      \"cedros-login:policies\"\n    ],\n    migrations: [],\n    scopes: [\n      {\n        verb: \"read\",\n        resource: \"account lifecycle records\",\n        summary: \"read account lifecycle records through host-mediated Cedros database operations.\"\n      },\n      {\n        verb: \"write\",\n        resource: \"account lifecycle records\",\n        summary: \"write account lifecycle records through host-mediated Cedros database operations.\"\n      },\n      {\n        verb: \"delete\",\n        resource: \"account lifecycle records\",\n        summary: \"delete account lifecycle records through host-mediated Cedros database operations.\"\n      }\n    ],\n    tags: [\n      \"identity\",\n      \"organizations\",\n      \"account-lifecycle\",\n      \"security\"\n    ]\n  },\n  {\n    id: \"cedros-login:organization-lifecycle-db\",\n    displayName: \"Login Organization Lifecycle Transaction Database\",\n    description: \"Atomically verifies an organization owner and deletes the complete organization graph.\",\n    contentModels: [\n      \"cedros-login:orgs\",\n      \"cedros-login:memberships\",\n      \"cedros-login:invite-records\",\n      \"cedros-login:custom-roles\",\n      \"cedros-login:policies\",\n      \"cedros-login:sso-providers\"\n    ],\n    migrations: [],\n    scopes: [\n      {\n        verb: \"read\",\n        resource: \"organization lifecycle records\",\n        summary: \"read organization lifecycle records through host-mediated Cedros database operations.\"\n      },\n      {\n        verb: \"write\",\n        resource: \"organization lifecycle records\",\n        summary: \"write organization lifecycle records through host-mediated Cedros database operations.\"\n      },\n      {\n        verb: \"delete\",\n        resource: \"organization lifecycle records\",\n        summary: \"delete organization lifecycle records through host-mediated Cedros database operations.\"\n      }\n    ],\n    tags: [\n      \"identity\",\n      \"organizations\",\n      \"organization-lifecycle\",\n      \"security\"\n    ]\n  }\n], Es = { notifications: [{\n  id: \"cedros-login:registration-created-team-notification\",\n  displayName: \"New registration notification\",\n  title: \"New registration\",\n  description: \"Requests a team notification route when Cedros Login creates a new account.\",\n  eventId: \"cedros-login:registration-created\",\n  audience: \"team\",\n  severity: \"info\",\n  defaultChannels: [\"email\"],\n  subjectTemplate: \"New Cedros Login registration\",\n  bodyTemplate: \"A new account was created through Cedros Login. Review account activity in Cedros platform.\",\n  tags: [\n    \"identity\",\n    \"registrations\",\n    \"notifications\"\n  ]\n}, {\n  id: \"cedros-login:user-login-team-notification\",\n  displayName: \"User login notification\",\n  title: \"User login\",\n  description: \"Requests a team notification route when Cedros Login completes a user login.\",\n  eventId: \"cedros-login:user-login\",\n  audience: \"team\",\n  severity: \"info\",\n  defaultChannels: [\"email\"],\n  subjectTemplate: \"Cedros Login user login\",\n  bodyTemplate: \"A user successfully signed in through Cedros Login. Review login activity in Cedros platform.\",\n  tags: [\n    \"identity\",\n    \"logins\",\n    \"notifications\"\n  ]\n}] }, Ss = [\n  {\n    id: \"cedros-login:login-page\",\n    displayName: \"Login Page\",\n    title: \"Login\",\n    routePath: \"/login\",\n    description: \"Cedros platform page row for the login workflow; auto-created and published when the extension is enabled so the public URL is live immediately.\",\n    slug: \"login\",\n    templateId: \"cedros-login:login-page-template\",\n    autoCreateOnEnable: !0,\n    publishOnEnable: !0,\n    seo: { noindex: !0 }\n  },\n  {\n    id: \"cedros-login:register-page\",\n    displayName: \"Register Page\",\n    title: \"Register\",\n    routePath: \"/register\",\n    description: \"Cedros platform page row for the register workflow; auto-created and published when the extension is enabled so the public URL is live immediately.\",\n    slug: \"register\",\n    templateId: \"cedros-login:register-page-template\",\n    autoCreateOnEnable: !0,\n    publishOnEnable: !0,\n    seo: { noindex: !0 }\n  },\n  {\n    id: \"cedros-login:password-recovery-page\",\n    displayName: \"Password Recovery Page\",\n    title: \"Password recovery\",\n    routePath: \"/password-recovery\",\n    description: \"Cedros platform page row for the password recovery workflow; auto-created and published when the extension is enabled so the public URL is live immediately.\",\n    slug: \"password-recovery\",\n    templateId: \"cedros-login:password-recovery-page-template\",\n    autoCreateOnEnable: !0,\n    publishOnEnable: !0,\n    seo: { noindex: !0 }\n  },\n  {\n    id: \"cedros-login:reset-password-page\",\n    displayName: \"Reset Password Page\",\n    title: \"Reset password\",\n    routePath: \"/reset-password\",\n    description: \"Cedros platform page row for the reset password workflow; auto-created and published when the extension is enabled so the public URL is live immediately.\",\n    slug: \"reset-password\",\n    templateId: \"cedros-login:reset-password-page-template\",\n    autoCreateOnEnable: !0,\n    publishOnEnable: !0,\n    seo: { noindex: !0 }\n  },\n  {\n    id: \"cedros-login:email-verification-page\",\n    displayName: \"Email Verification Page\",\n    title: \"Email verification\",\n    routePath: \"/verify-email\",\n    description: \"Cedros platform page row for the email verification workflow; auto-created and published when the extension is enabled so the public URL is live immediately.\",\n    slug: \"verify-email\",\n    templateId: \"cedros-login:email-verification-page-template\",\n    autoCreateOnEnable: !0,\n    publishOnEnable: !0,\n    seo: { noindex: !0 }\n  },\n  {\n    id: \"cedros-login:instant-link-verification-page\",\n    displayName: \"Instant Link Verification Page\",\n    title: \"Instant link verification\",\n    routePath: \"/instant-link/verify\",\n    description: \"Cedros platform page row for the instant link verification workflow; auto-created and published when the extension is enabled so the public URL is live immediately.\",\n    slug: \"instant-link-verify\",\n    templateId: \"cedros-login:instant-link-verification-page-template\",\n    autoCreateOnEnable: !0,\n    publishOnEnable: !0,\n    seo: { noindex: !0 }\n  },\n  {\n    id: \"cedros-login:invite-acceptance-page\",\n    displayName: \"Invite Acceptance Page\",\n    title: \"Accept invite\",\n    routePath: \"/accept-invite\",\n    description: \"Cedros platform page row for the accept invite workflow; auto-created and published when the extension is enabled so the public URL is live immediately.\",\n    slug: \"accept-invite\",\n    templateId: \"cedros-login:invite-acceptance-page-template\",\n    autoCreateOnEnable: !0,\n    publishOnEnable: !0,\n    seo: { noindex: !0 }\n  },\n  {\n    id: \"cedros-login:public-profile-page\",\n    displayName: \"Profile Page\",\n    title: \"Profile\",\n    routePath: \"/profile\",\n    description: \"Cedros platform page row for the profile workflow; auto-created and published when the extension is enabled so the public URL is live immediately.\",\n    slug: \"profile\",\n    templateId: \"cedros-login:public-profile-page-template\",\n    autoCreateOnEnable: !0,\n    publishOnEnable: !0,\n    seo: { noindex: !0 }\n  }\n], Rs = [\n  {\n    type: \"cedros-login:auth-page-copy\",\n    displayName: \"Login Page Copy\",\n    description: \"Owner-editable heading, body, and safe link copy for Login public pages.\",\n    category: \"identity\",\n    order: 10\n  },\n  {\n    type: \"cedros-login:auth-form\",\n    displayName: \"Login Auth Form\",\n    description: \"Portable sign-in, registration, recovery, verification, instant-link, and invite workflow.\",\n    category: \"identity\",\n    order: 20\n  },\n  {\n    type: \"cedros-login:login-button\",\n    displayName: \"Login Button\",\n    description: \"Safe call-to-action link for sign-in and account handoff flows.\",\n    category: \"identity\",\n    order: 30\n  },\n  {\n    type: \"cedros-login:account-workspace\",\n    displayName: \"Account Workspace\",\n    description: \"Portable authenticated account workspace starter for profile, security, linked accounts, and sessions.\",\n    category: \"identity\",\n    order: 40\n  }\n], Ns = [\n  {\n    id: \"cedros-login:login-page-template\",\n    displayName: \"Login Page Template\",\n    description: \"Starter page for the Cedros Login login flow.\",\n    order: 1,\n    contentTypes: [\"page\"]\n  },\n  {\n    id: \"cedros-login:register-page-template\",\n    displayName: \"Register Page Template\",\n    description: \"Starter page for Cedros Login registration.\",\n    order: 2,\n    contentTypes: [\"page\"]\n  },\n  {\n    id: \"cedros-login:password-recovery-page-template\",\n    displayName: \"Password Recovery Page Template\",\n    description: \"Starter page for password recovery.\",\n    order: 3,\n    contentTypes: [\"page\"]\n  },\n  {\n    id: \"cedros-login:reset-password-page-template\",\n    displayName: \"Reset Password Page Template\",\n    description: \"Starter page for choosing a new password from a secure reset link.\",\n    order: 4,\n    contentTypes: [\"page\"]\n  },\n  {\n    id: \"cedros-login:email-verification-page-template\",\n    displayName: \"Email Verification Page Template\",\n    description: \"Starter page for confirming an account email address.\",\n    order: 5,\n    contentTypes: [\"page\"]\n  },\n  {\n    id: \"cedros-login:instant-link-verification-page-template\",\n    displayName: \"Instant Link Verification Page Template\",\n    description: \"Starter page for completing sign-in from a secure email link.\",\n    order: 6,\n    contentTypes: [\"page\"]\n  },\n  {\n    id: \"cedros-login:invite-acceptance-page-template\",\n    displayName: \"Invite Acceptance Page Template\",\n    description: \"Starter page for team invite acceptance.\",\n    order: 7,\n    contentTypes: [\"page\"]\n  },\n  {\n    id: \"cedros-login:public-profile-page-template\",\n    displayName: \"Profile Workspace Page Template\",\n    description: \"Starter page for authenticated profile, identity, and security management.\",\n    order: 8,\n    contentTypes: [\"page\"]\n  }\n], Ts = [{\n  id: \"cedros-login:account-support-form\",\n  displayName: \"Login Account Support Form\",\n  title: \"Account access support\",\n  description: \"Owner-editable contact form for visitors who need help with account access or sign-in.\",\n  defaultKey: \"account-access-support\",\n  status: \"active\",\n  scope: \"contact\",\n  submitLabel: \"Send request\",\n  successTitle: \"Request received\",\n  successMessage: \"We will review your request and follow up through the contact details provided.\",\n  fields: [\n    {\n      key: \"email\",\n      label: \"Email address\",\n      type: \"email\",\n      required: !0,\n      placeholder: \"you@example.com\",\n      helpText: \"Use the address associated with your account when possible.\"\n    },\n    {\n      key: \"issue_type\",\n      label: \"What do you need help with?\",\n      type: \"select\",\n      required: !0,\n      options: [\n        {\n          label: \"Signing in\",\n          value: \"sign-in\"\n        },\n        {\n          label: \"Creating an account\",\n          value: \"create-account\"\n        },\n        {\n          label: \"Password or MFA recovery\",\n          value: \"account-recovery\"\n        },\n        {\n          label: \"Profile or organization access\",\n          value: \"profile-organization\"\n        }\n      ]\n    },\n    {\n      key: \"details\",\n      label: \"Details\",\n      type: \"textarea\",\n      required: !0,\n      placeholder: \"Describe the issue without including passwords, tokens, or private keys.\",\n      helpText: \"Do not include passwords, recovery codes, tokens, private keys, or payment details.\"\n    },\n    {\n      key: \"consent_to_contact\",\n      label: \"I agree to be contacted about this account support request.\",\n      type: \"checkbox\",\n      required: !0,\n      helpText: \"This consent applies only to follow-up about the request submitted through this form.\"\n    }\n  ],\n  autoCreateOnEnable: !0\n}], Is = [{\n  id: \"cedros-login:getting-started\",\n  displayName: \"Sign in and create your account\",\n  title: \"Sign in and create your account\",\n  slug: \"cedros-login-sign-in-and-create-account\",\n  routePath: \"/docs/cedros-login/sign-in-and-create-account\",\n  excerpt: \"How to sign in, create or manage your account, accept a team invite, and recover access without sharing passwords or codes.\",\n  bodyMarkdown: `# Sign in and create your account\n\nUse this site's account pages to sign in, create an account, manage your profile, or recover access. We never ask you to share your password, one-time codes, or recovery codes with support staff.\n\n## Sign in\n\nOpen the sign in page, enter your email and password, then choose Sign in. If you have multi-factor authentication or a passkey set up, you will be prompted to complete it.\n\n## Create an account\n\nChoose Create account from the sign in page. Use an email address you can receive messages at, and choose a password you do not use anywhere else. You may be asked to verify your email before you can sign in.\n\n## Forgot your password\n\nChoose Forgot password from the sign in page. We will email a reset link to the address on your account. The link expires after a short time so your account stays safe even if your inbox is ever exposed.\n\n## Manage your profile and account\n\nAfter signing in, open /profile to change your display name, profile image, contact details, sign-in methods, and security settings. The profile workspace keeps account details private to the signed-in user.\n\nIf you signed up with email, you can also link a sign-in provider such as Google or Apple from your account workspace, so you can choose how to sign in next time. You can unlink a provider whenever you like, as long as you keep at least one other way to sign in.\n\n## Accept a team invite\n\nIf someone has invited you to an organization, you will get an email with a link to accept the invite. Open the link and either sign in to an existing account or create a new one. After you accept, you will be added to the organization with the role the inviter chose.\n\nIf the link no longer works, ask the person who invited you to send a new invite. Invite links expire for safety. Do not forward your invite link to anyone else, even people on the same team.\n\n## Get help with account access\n\nIf you cannot sign in or did not receive an expected email, use the account support form. Never share your password, recovery codes, or one-time sign-in codes with anyone, including site support.`,\n  category: \"identity\",\n  tags: [\n    \"login\",\n    \"identity\",\n    \"sign-in\",\n    \"profile\",\n    \"invite\"\n  ],\n  productSlug: \"cedros-login\",\n  productLabel: \"Cedros Login\",\n  sectionKey: \"account-access\",\n  sectionLabel: \"Account access\",\n  sectionOrder: 10,\n  navLabel: \"Sign in and create account\",\n  readingMinutes: 3,\n  order: 10,\n  internal: !1\n}, {\n  id: \"cedros-login:account-security-checklist\",\n  displayName: \"Keep your account secure\",\n  title: \"Keep your account secure\",\n  slug: \"cedros-login-account-security\",\n  routePath: \"/docs/cedros-login/account-security\",\n  excerpt: \"Verify your email, troubleshoot sign-in links, turn on multi-factor authentication or a passkey, and recover access safely.\",\n  bodyMarkdown: `# Keep your account secure\n\nA few simple steps make it much harder for someone else to access your account.\n\n## Email verification and sign-in links\n\nWe send verification, reset, and sign-in links to the email address on your account. Verifying your email proves you control it and lets us send you password resets and security notices. Open the verification email and follow the link.\n\nSign-in and verification links expire after a short time so your account stays safe even if your inbox is ever exposed.\n\n- If you did not get the email, check your spam or junk folder and confirm you used the right address. Then return to the sign in or create-account page and request a new email.\n- If the link no longer works, request a fresh one from the sign in page. Old links stop working once you request a new one or once you have already used them.\n- If you sign in with an instant link instead of a password, open the link on the same device when possible, and never forward sign-in links to anyone else.\n\n## Use a strong, unique password\n\nChoose a password you do not use on any other site. A password manager can generate and remember one for you. Change your password right away if you think anyone else has seen it.\n\n## Turn on multi-factor authentication or a passkey\n\nIn your /profile security settings, turn on multi-factor authentication or register a passkey. With either one on, signing in requires both your password and your device or authenticator app, so a stolen password is not enough.\n\n## Review your active sessions\n\nThe /profile workspace lists devices that are currently signed in. If you see one you do not recognize, sign it out and change your password.\n\n## Recover your account safely\n\nIf you lose access, use the forgot password or instant link options on the sign in page. We will never ask you to share your password, multi-factor codes, recovery codes, or session tokens with support staff. Treat any such request as a phishing attempt.`,\n  category: \"identity\",\n  tags: [\n    \"login\",\n    \"security\",\n    \"account-recovery\",\n    \"email-verification\"\n  ],\n  productSlug: \"cedros-login\",\n  productLabel: \"Cedros Login\",\n  sectionKey: \"security\",\n  sectionLabel: \"Security\",\n  sectionOrder: 20,\n  navLabel: \"Account security\",\n  readingMinutes: 3,\n  order: 20,\n  internal: !1\n}], Ls = [{\n  id: \"cedros-login:setup-login\",\n  displayName: \"Set up Login\",\n  moduleId: \"cedros-login:admin\",\n  sectionId: \"cedros-login:login\",\n  description: \"Choose and verify the sign-in methods visitors can use.\"\n}], Ps = [\n  {\n    id: \"cedros-login:outbox-dispatch-schedule\",\n    jobId: \"cedros-login:outbox-dispatch\",\n    label: \"Cedros Login transactional email dispatch\",\n    cron: \"*/2 * * * *\",\n    timezone: \"UTC\",\n    timeoutSeconds: 60,\n    maxRetries: 0,\n    autoCreateOnEnable: !0\n  },\n  {\n    id: \"cedros-login:cleanup-expired-auth-data-schedule\",\n    jobId: \"cedros-login:cleanup-expired-auth-data\",\n    label: \"Cedros Login expired auth-data cleanup\",\n    cron: \"0 3 * * *\",\n    timezone: \"UTC\",\n    timeoutSeconds: 120,\n    maxRetries: 0,\n    autoCreateOnEnable: !0\n  },\n  {\n    id: \"cedros-login:oauth-connection-cleanup-schedule\",\n    jobId: \"cedros-login:oauth-connection-cleanup\",\n    label: \"Cedros Login OAuth authority and backing-key cleanup\",\n    cron: \"*/2 * * * *\",\n    timezone: \"UTC\",\n    timeoutSeconds: 60,\n    maxRetries: 0,\n    autoCreateOnEnable: !0\n  }\n], zs = {\n  schemaVersion: 1,\n  extensionId: ls,\n  displayName: us,\n  version: ms,\n  description: gs,\n  compatibility: ps,\n  platformApiVersion: \"1\",\n  packageFamily: fs,\n  dependencies: hs,\n  requiredCapabilities: bs,\n  surfaces: vs,\n  registration: ys,\n  capabilities: ws,\n  adminModules: ks,\n  analytics: xs,\n  providerAccess: _s,\n  crmSourceAccess: As,\n  databaseAccess: Cs,\n  setupSeeds: Es,\n  pageSeeds: Ss,\n  contentBlocks: Rs,\n  contentTemplates: Ns,\n  formTemplates: Ts,\n  docsArticles: Is,\n  onboardingPages: Ls,\n  jobSchedules: Ps\n}, Sr = zs, Qg = Sr.extensionId, Zg = Sr.version, Ht = \"cedros-login:admin\", ep = Sr.packageFamily, Ms = (() => {\n  const e = Sr.adminModules?.find((r) => r.moduleId === Ht);\n  if (!e) throw new Error(`Canonical manifest is missing admin module ${Ht}`);\n  return e;\n})(), rp = Ms.navigation, ut, _n = R((() => {\n  ut = class extends ds {\n    constructor(e) {\n      super(e), this.state = {\n        hasError: !1,\n        error: null,\n        errorInfo: null\n      };\n    }\n    static getDerivedStateFromError(e) {\n      return {\n        hasError: !0,\n        error: e\n      };\n    }\n    componentDidCatch(e, r) {\n      this.setState({ errorInfo: r }), console.error(\"[Cedros Login] Error caught by ErrorBoundary:\", e), console.error(\"[Cedros Login] Component stack:\", r.componentStack), this.props.onError?.(e, r);\n    }\n    handleRetry = () => {\n      this.setState({\n        hasError: !1,\n        error: null,\n        errorInfo: null\n      });\n    };\n    render() {\n      const { hasError: e, error: r, errorInfo: o } = this.state, { children: t, fallback: i, showDetails: a = !1 } = this.props;\n      return e ? i || /* @__PURE__ */ n(\"div\", {\n        className: \"cedros-error-boundary\",\n        role: \"alert\",\n        \"aria-live\": \"assertive\",\n        children: /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-error-boundary-content\",\n          children: [\n            /* @__PURE__ */ v(\"svg\", {\n              className: \"cedros-error-boundary-icon\",\n              width: \"48\",\n              height: \"48\",\n              viewBox: \"0 0 24 24\",\n              fill: \"none\",\n              stroke: \"currentColor\",\n              strokeWidth: \"2\",\n              strokeLinecap: \"round\",\n              strokeLinejoin: \"round\",\n              \"aria-hidden\": \"true\",\n              children: [\n                /* @__PURE__ */ n(\"circle\", {\n                  cx: \"12\",\n                  cy: \"12\",\n                  r: \"10\"\n                }),\n                /* @__PURE__ */ n(\"line\", {\n                  x1: \"12\",\n                  y1: \"8\",\n                  x2: \"12\",\n                  y2: \"12\"\n                }),\n                /* @__PURE__ */ n(\"line\", {\n                  x1: \"12\",\n                  y1: \"16\",\n                  x2: \"12.01\",\n                  y2: \"16\"\n                })\n              ]\n            }),\n            /* @__PURE__ */ n(\"h2\", {\n              className: \"cedros-error-boundary-title\",\n              children: \"Something went wrong\"\n            }),\n            /* @__PURE__ */ n(\"p\", {\n              className: \"cedros-error-boundary-message\",\n              children: \"We encountered an unexpected error. Please try again.\"\n            }),\n            a && r && /* @__PURE__ */ v(\"details\", {\n              className: \"cedros-error-boundary-details\",\n              children: [/* @__PURE__ */ n(\"summary\", { children: \"Error details\" }), /* @__PURE__ */ v(\"pre\", { children: [r.toString(), o?.componentStack] })]\n            }),\n            /* @__PURE__ */ n(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-primary\",\n              onClick: this.handleRetry,\n              children: \"Try again\"\n            })\n          ]\n        })\n      }) : t;\n    }\n  };\n}));\nfunction D(e, r) {\n  ss.useEffect(e, r);\n}\nvar G = R((() => {\n})), no, An = R((() => {\n  no = Ar(null);\n})), Cn, Os = R((() => {\n  Cn = {\n    nav: {\n      users: \"Users\",\n      settings: \"Settings\",\n      extensionSettings: \"Extension Settings\",\n      team: \"Team\",\n      inviteTeamMembers: \"Invite Team Members\",\n      login: \"Login\",\n      cedrosLogin: \"Cedros Login\"\n    },\n    login: {\n      loading: \"Loading admin…\",\n      loadError: \"Unable to load Cedros Login admin.\",\n      authTab: \"Auth\",\n      emailTab: \"Email\",\n      socialTab: \"Social\",\n      ssoTab: \"SSO\",\n      webhooksTab: \"Webhooks\",\n      serverTab: \"Server\",\n      imagesTab: \"Images\",\n      teamAccessTab: \"Team Access\",\n      activityTab: \"Activity\",\n      healthTab: \"Health\",\n      sectionAriaLabel: \"Cedros Login settings sections\",\n      description: \"Authentication providers and sign-in methods for the Cedros Login extension.\",\n      emptyPermission: \"You don't have access to Login settings. Ask an owner for access.\"\n    },\n    dashboard: {\n      cardAriaLabel: \"Cedros Login health\",\n      title: \"Login health\",\n      loading: \"Loading login health…\",\n      refreshStats: \"Refresh stats\",\n      totalUsers: \"Total users\",\n      activeUsers: \"Active users\",\n      successfulLogins: \"Successful logins\",\n      failedLogins: \"Failed logins\",\n      conversionRate: \"Conversion rate\",\n      noData: \"No login health data yet.\",\n      checkingGrowth: \"Checking account growth…\",\n      permissionNeededBody: \"Account growth is available to admins with user or settings access.\",\n      analyticsUnavailable: \"Account analytics are unavailable. Retry from the dashboard or review settings.\",\n      analyticsConnected: \"User growth analytics are connected.\",\n      analyticsMissing: \"No account analytics snapshot is available yet.\",\n      refreshesWithDashboard: \"Refreshes when the dashboard updates.\",\n      refreshesEverySeconds: \"Refreshes about every {seconds}s.\",\n      reviewAccounts: \"Review accounts\",\n      userGrowth: \"User growth\",\n      permissionNeeded: \"Permission needed\",\n      unavailable: \"Unavailable\",\n      awaitingData: \"Awaiting data\",\n      ready: \"Ready\",\n      totalAccounts: \"Total accounts\",\n      new7d: \"New 7d\",\n      new30d: \"New 30d\",\n      accountsDetail: \"accounts\",\n      verified: \"Verified\",\n      active7d: \"Active 7d\",\n      loginsDetail: \"logins\",\n      inviteAcceptance: \"Invite acceptance\",\n      providerMix: \"Provider mix\"\n    },\n    settings: {\n      custom: \"Custom…\",\n      seconds: \"seconds\",\n      settingAppliesAfterRestart: \"Applies after restart\",\n      settingManagedByHost: \"Managed by the deployment host\",\n      settingUnsupported: \"Unsupported by this runtime; retained for compatibility\",\n      authTitle: \"Authentication\",\n      authDescription: \"Configure authentication providers and methods for user sign-in.\",\n      methodsTab: \"Methods\",\n      behaviorTab: \"Behavior\",\n      advancedTab: \"Advanced\",\n      signupLimitsTab: \"Signup limits\",\n      inviteCodesTab: \"Invite codes\",\n      signupLimitsTitle: \"Signup limits\",\n      serviceIntegrationsTitle: \"Service integrations\",\n      serviceIntegrationsDescription: \"Credential policies for trusted Cedros services. Most sites do not need to change these.\",\n      authLoadError: \"Cedros couldn't load authentication settings. Your saved settings haven't changed. Try again.\",\n      orderAutosaveHint: \"Changes save automatically.\",\n      moveItemUp: \"Move {label} up\",\n      moveItemDown: \"Move {label} down\",\n      movedToPosition: \"{label} moved to position {position} of {count}.\",\n      postLoginFlowOrder: \"After login flow order\",\n      postLoginFlowStep: \"{label} flow step\",\n      subscriptionSelection: \"Subscription selection\",\n      usernameSelection: \"Username selection\",\n      welcomePage: \"Welcome page\",\n      profileCompletion: \"Profile completion\",\n      twoFactorTitle: \"Two-factor authentication\",\n      emailTitle: \"Email messages\",\n      emailDescription: \"Customize email subject lines. Delivery providers and sender identity are configured by the deployment host.\",\n      emailSmtpWarning: \"Outbound email delivery is configured by the deployment host.\",\n      featuresTitle: \"Features\",\n      featuresDescription: \"Enable or disable major platform features.\",\n      securityTitle: \"Security\",\n      securityDescription: \"Configure CORS, cookies, sessions, JWT, and rate limiting settings.\",\n      webhooksTitle: \"Webhooks\",\n      webhooksDescription: \"Configure HTTP webhook notifications for authentication events.\",\n      serverTitle: \"Auth Server\",\n      serverDescription: \"Server infrastructure settings. Some may be overridden by environment variables.\",\n      serverLoggingTab: \"Logging\",\n      serverMetricsTab: \"Metrics\",\n      serverSecurityTab: \"Security\",\n      imageStorageTitle: \"Image Storage\",\n      imageStorageDescription: \"Configure S3-compatible object storage for user avatars and images. Supports AWS S3, DigitalOcean Spaces, and other S3-compatible providers.\",\n      imageStorageEmpty: \"No image storage settings found.\",\n      socialOrderTitle: \"Social button order\",\n      socialOrderDescription: \"Drag to reorder the social login buttons on your sign-in form.\",\n      socialOrderPreview: \"This is how your login form buttons will appear:\",\n      postLoginTitle: \"After login flow\",\n      ssoTitle: \"SSO providers\",\n      ssoDescription: \"Configure OIDC identity providers for enterprise single sign-on.\",\n      loadingSsoProviders: \"Loading SSO providers…\",\n      addProvider: \"Add provider\",\n      addSsoProvider: \"Add SSO provider\",\n      editSsoProvider: \"Edit SSO provider\",\n      noSsoProviders: \"No SSO providers configured.\",\n      noSsoProvidersHelp: \"Add an OIDC provider like Okta, Azure AD, or Auth0 to enable enterprise SSO.\",\n      providerName: \"Provider name\",\n      providerNamePlaceholder: \"e.g., Okta, Azure AD\",\n      issuerUrl: \"Issuer URL\",\n      issuerUrlPlaceholder: \"https://your-org.okta.com\",\n      issuerUrlHint: \"The OIDC issuer URL. Must support discovery at /.well-known/openid-configuration\",\n      clientId: \"Client ID\",\n      clientIdPlaceholder: \"OAuth client ID\",\n      clientSecret: \"Client secret\",\n      clientSecretPlaceholder: \"OAuth client secret\",\n      leaveBlankToKeepCurrent: \"(leave blank to keep current)\",\n      emailDomain: \"Email domain (optional)\",\n      emailDomainPlaceholder: \"company.com\",\n      emailDomainHint: \"Restrict to users with emails from this domain\",\n      allowSsoRegistration: \"Allow new user registration via SSO\",\n      enableProvider: \"Enable this provider\",\n      registration: \"Registration\",\n      registrationAllowed: \"Allowed\",\n      existingUsersOnly: \"Existing users only\",\n      deleteSsoProviderTitle: \"Delete SSO provider {name}?\",\n      deleteSsoProviderConfirm: \"This removes {name} from your sign-in options. This cannot be undone.\",\n      deleteSsoProviderAction: \"Delete SSO provider\",\n      providerActions: \"{name} actions\",\n      failedToSaveProvider: \"Failed to save provider\",\n      inviteCustomCodesTitle: \"Custom codes\",\n      inviteAddCustomCode: \"Add custom code\",\n      inviteLoadingCustomCodes: \"Loading custom invite codes…\",\n      inviteEmptyTitle: \"No custom invite codes\",\n      inviteEmptyDescription: \"No custom invite codes have been created.\",\n      inviteDeleteTitle: \"Delete invite code {code}?\",\n      inviteDeleteDescription: \"This removes the code from future use and cannot be undone.\",\n      inviteDeleteAction: \"Delete invite code\",\n      inviteDeleteFailed: \"Unable to delete invite code.\",\n      inviteCodeColumn: \"Code\",\n      inviteStatusColumn: \"Status\",\n      inviteCurrentUsesColumn: \"Current uses\",\n      inviteMaxUsesColumn: \"Max uses\",\n      inviteStartsColumn: \"Starts\",\n      inviteExpiresColumn: \"Expires\",\n      inviteActionsColumn: \"Actions\",\n      inviteUnlimited: \"Unlimited\",\n      inviteAnyTime: \"Any time\",\n      inviteNever: \"Never\",\n      inviteActive: \"Active\",\n      inviteInactive: \"Inactive\",\n      inviteEditAction: \"Edit invite code {code}\",\n      inviteRowActions: \"Invite code {code} actions\",\n      inviteCreateTitle: \"Create invite code\",\n      inviteEditTitle: \"Edit invite code\",\n      inviteDialogDescription: \"Set the code, usage limit, and availability window.\",\n      inviteCustomCodeLabel: \"Custom code\",\n      inviteCodeLabel: \"Invite code\",\n      inviteGeneratePlaceholder: \"Leave blank to generate\",\n      inviteMaxUsesLabel: \"Max uses\",\n      inviteStartsAtLabel: \"Starts at\",\n      inviteExpiresAtLabel: \"Expires at\",\n      inviteActiveLabel: \"Active\",\n      inviteDiscountLabel: \"Subscription discount (% off)\",\n      inviteDiscountMonthsLabel: \"Discount duration (months)\",\n      inviteDiscountMonthsHelp: \"Starts when the subscription begins. Enter a whole number of months for monthly billing, or leave blank for forever.\",\n      inviteDiscountForever: \"Forever\",\n      inviteDiscountMonth: \"First month\",\n      inviteDiscountMonths: \"First {months} months\",\n      inviteDiscountPlaceholder: \"No discount\",\n      inviteDiscountHelp: \"Redeeming this code also unlocks a subscription discount at checkout, lasting for the duration below and taking precedence over other coupons (requires Cedros Pay). Use 100 for a free period.\",\n      inviteDiscountColumn: \"Discount\",\n      inviteNoDiscount: \"None\",\n      inviteDiscountFree: \"Free\",\n      inviteDiscountPercentOff: \"{percent}% off\",\n      inviteSaveAction: \"Save invite code\",\n      inviteCreateAction: \"Create invite code\",\n      inviteSaveFailed: \"Unable to save invite code.\",\n      loading: \"Loading settings…\",\n      empty: \"No settings to display.\",\n      noSettingsFor: \"No settings found for {label}.\",\n      saved: \"Saved just now\",\n      offline: \"Offline — changes will save when reconnected\",\n      conflict: \"Save conflict — review changes\",\n      unsaved: \"Unsaved changes\",\n      saving: \"Saving…\",\n      saveFailed: \"Save failed — retry\",\n      saveChanges: \"Save changes\",\n      reset: \"Reset\",\n      unsavedChangesCount: \"{count} unsaved {count, plural, one {change} other {changes}}\",\n      secretPendingConfirmation: \"Secret changes require confirmation.\",\n      secretConfirmUpdate: \"Confirm secret update\",\n      secretUpdating: \"Updating...\",\n      enterSecretValue: \"Enter secret value...\",\n      notGeneratedYet: \"Not generated yet\",\n      copied: \"Copied!\",\n      regenerate: \"Regenerate\",\n      regenerating: \"Regenerating...\",\n      regenerateFailed: \"Failed to regenerate\",\n      regenerateTimedOut: \"Regenerate timed out. Check your connection and try again.\",\n      updateDeploySecretToo: \"Update deploy secret too?\",\n      builtInTokens: \"Built-in tokens:\",\n      noCustomTokens: \"No custom tokens added. Use the built-in tokens above or add your own.\",\n      tokenSymbol: \"Symbol\",\n      tokenMintAddress: \"Mint address\",\n      tokenDecimals: \"Decimals\",\n      tokenLogoUrlOptional: \"Logo URL (optional)\",\n      tokenSymbolsPlaceholder: \"USDC, SOL, BONK...\",\n      removeToken: \"Remove token\",\n      addToken: \"Add Token\",\n      clickToAdd: \"Click to add:\",\n      addTokenSymbol: \"Add {symbol}\",\n      removeTokenSymbol: \"Remove {symbol}\",\n      settingsMetadata: {\n        settings: {},\n        categories: {}\n      }\n    },\n    users: {\n      users: \"users\",\n      allUsers: \"All users\",\n      description: \"All registered users in the system. Requires system admin privileges.\",\n      userCount: \"{count} {count, plural, one {user} other {users}}\",\n      loading: \"Loading users...\",\n      loadFailed: \"Failed to load users\",\n      empty: \"No users found.\",\n      refreshList: \"Refresh list\",\n      openUser: \"Open user {name}\",\n      sortByUser: \"Sort by user\",\n      sortByRegisteredDate: \"Sort by registered date\",\n      sortByLastLogin: \"Sort by last login\",\n      userColumn: \"User\",\n      lastLogin: \"Last Login\",\n      registered: \"Registered\",\n      updated: \"Updated\",\n      referred: \"referred\",\n      currentUser: \"you\",\n      unknown: \"Unknown\",\n      pageInfo: \"Page {current} of {totalPages} ({total} total)\",\n      userImageAlt: \"User\",\n      noEmail: \"No email\",\n      emailVerified: \"Email verified\",\n      systemAdmin: \"System Admin\",\n      authMethods: \"Auth Methods:\",\n      none: \"none\",\n      datesSummary: \"Registered: {registered} | Updated: {updated}\",\n      referral: \"Referral:\",\n      referralCount: \"({count} referred)\",\n      referredBy: \"Referred by:\",\n      copyReferrerUuid: \"Click to copy referrer UUID\",\n      back: \"Back\",\n      backToUsers: \"Back to Users\",\n      resetPassword: \"Reset Password\",\n      deleteConfirm: \"Are you sure you want to delete {name}? This action cannot be undone.\",\n      cannotDeleteSelf: \"You cannot delete your own account\",\n      cannotDeleteSystemAdmin: \"Cannot delete a system admin. Remove admin status first.\",\n      noEmailAddress: \"User has no email address\",\n      sendResetConfirm: \"Send a password reset email to {email}?\",\n      resetSent: \"Password reset email sent\",\n      loadingUser: \"Loading user...\",\n      userNotFound: \"User not found.\",\n      failedToLoadUser: \"Failed to load user\",\n      loadStatsFailed: \"Failed to load user stats\",\n      emailUsers: \"Email Users\",\n      googleUsers: \"Google Users\",\n      appleUsers: \"Apple Users\",\n      solanaUsers: \"Solana Users\",\n      passkeyUsers: \"Passkey Users\",\n      ssoUsers: \"SSO Provider Users\"\n    },\n    team: {\n      ownerRole: \"Owner\",\n      adminRole: \"Admin\",\n      memberRole: \"Member\",\n      roleChangeTitle: \"Change role for {name}?\",\n      roleChangeDescription: \"{name} will change from {from} to {to}. {consequence}\",\n      ownerRoleConsequence: \"Owners can manage ownership and grant administrative access.\",\n      adminRoleConsequence: \"Admins can manage organization members and settings.\",\n      removeAdminConsequence: \"This removes their administrative access to the organization.\",\n      confirmRoleChange: \"Change role\",\n      roleChangeContextChanged: \"The membership or your access changed. Review the current role before trying again.\",\n      members: \"Members\",\n      owners: \"Owners\",\n      admins: \"Admins\",\n      invites: \"Invites\",\n      pendingInvites: \"Pending Invites ({count})\",\n      permissions: \"Permissions\",\n      loadingOrganization: \"Loading organization...\",\n      noOrganizations: \"No organizations found.\",\n      sendInvitation: \"Send Invitation\",\n      inviteTeamMembers: \"Invite Team Members\",\n      expired: \"expired\",\n      today: \"today\",\n      tomorrow: \"tomorrow\",\n      inDays: \"in {count} {count, plural, one {day} other {days}}\"\n    },\n    activity: {\n      loading: \"Loading login activity...\",\n      empty: \"No login activity records found.\",\n      description: \"Recent login, account, invite, and settings activity from Cedros Login audit records.\",\n      permissionNeeded: \"Login activity is available to operators with audit log access.\",\n      recentAriaLabel: \"Recent login activity\",\n      totalEvents: \"Total events\",\n      shown: \"Shown\",\n      authEvents: \"Auth events\",\n      teamEvents: \"Team events\",\n      event: \"Event\",\n      subject: \"Subject\",\n      scope: \"Scope\",\n      time: \"Time\",\n      system: \"System\",\n      global: \"Global\",\n      invalidResponse: \"Login activity response was not in the expected shape.\",\n      loadFailed: \"Failed to load login activity\",\n      unknownTime: \"Unknown time\"\n    },\n    setup: {\n      checkingStatus: \"Checking setup status...\",\n      setupCompleteTitle: \"Setup Complete\",\n      setupCompleteBody: \"An admin account already exists. You can now log in.\",\n      createdTitle: \"Admin Account Created\",\n      createdBody: \"Your admin account has been created successfully. You can now log in with your credentials.\",\n      welcomeTitle: \"Welcome to Cedros\",\n      welcomeSubtitle: \"Let's set up your admin account to get started.\",\n      emailPlaceholder: \"admin@example.com\",\n      emailRequired: \"Email is required\",\n      invalidEmail: \"Invalid email format\",\n      passwordRequired: \"Password is required\",\n      passwordMinLength: \"Password must be at least {count} characters\",\n      confirmPasswordRequired: \"Please confirm your password\",\n      displayName: \"Display Name\",\n      displayNamePlaceholder: \"Admin\",\n      organizationName: \"Organization Name\",\n      organizationNamePlaceholder: \"My Organization\",\n      passwordPlaceholder: \"At least 8 characters\",\n      creatingAccount: \"Creating Account...\",\n      createAdminAccount: \"Create Admin Account\",\n      footerNote: \"This will be the first administrator account for your installation.\",\n      serverVersion: \"Server version: {version}\"\n    },\n    permissions: {\n      loading: \"Loading permissions...\",\n      ownerOnly: \"Only organization owners can configure dashboard permissions.\",\n      description: \"Configure which dashboard sections each role can access. Owners always have full access.\",\n      cedrosLogin: \"Cedros Login\",\n      cedrosAffiliates: \"Cedros Affiliates\",\n      adminRole: \"Admin\",\n      memberRole: \"Member\",\n      adminAccessTo: \"Admin access to {section}\",\n      memberAccessTo: \"Member access to {section}\"\n    }\n  };\n})), Wr, mt = R((() => {\n  Os(), Wr = {\n    common: {\n      loading: \"Loading\",\n      saving: \"Saving\",\n      saved: \"Saved\",\n      error: \"Error\",\n      retry: \"Retry\",\n      cancel: \"Cancel\",\n      continue: \"Continue\",\n      enabled: \"Enabled\",\n      disabled: \"Disabled\",\n      refresh: \"Refresh\",\n      required: \"required\",\n      optional: \"(optional)\",\n      edit: \"Edit\",\n      delete: \"Delete\",\n      copy: \"Copy\",\n      show: \"Show\",\n      hide: \"Hide\",\n      done: \"Done\",\n      confirm: \"Confirm\",\n      dismissError: \"Dismiss error\",\n      back: \"Back\",\n      reviewChanges: \"Review changes\",\n      discardLocalChanges: \"Discard local changes\",\n      previous: \"Previous\",\n      next: \"Next\"\n    },\n    signupPlans: {\n      loading: \"Loading plans…\",\n      unavailable: \"Plans are temporarily unavailable. Please try again.\",\n      chooseTitle: \"Choose your plan\",\n      chooseBody: \"First choose a plan, then create your account and verify your email. Payment comes afterward.\",\n      accountBody: \"Create your account, then verify your email to continue to payment.\",\n      changePlan: \"Change plan\",\n      billingPeriod: \"Billing period\",\n      annual: \"Annual\",\n      monthly: \"Monthly\",\n      annualPrice: \"{amount} billed annually\",\n      monthlyPrice: \"{amount} / month\",\n      choosePlan: \"Choose {plan}\",\n      emptyPeriod: \"No plans are available for this billing period.\",\n      existingAccount: \"Already have an account?\"\n    },\n    organizations: {\n      switchTitle: \"Switch organization\",\n      createTitle: \"Create organization\",\n      select: \"Select organization\",\n      empty: \"No organizations\",\n      noMemberships: \"You don’t belong to any organizations yet.\",\n      loading: \"Loading organizations…\",\n      personal: \"Personal\",\n      createNew: \"Create new organization\",\n      switchFailed: \"Unable to switch organization. Try again.\",\n      createFailed: \"Unable to create organization. Try again.\",\n      name: \"Organization name\",\n      slug: \"URL slug\",\n      namePlaceholder: \"My organization\",\n      slugPlaceholder: \"my-organization\",\n      slugHint: \"Only lowercase letters, numbers, and hyphens\",\n      nameRequired: \"Organization name is required\",\n      slugRequired: \"Organization slug is required\"\n    },\n    auth: {\n      email: \"Email\",\n      emailAddress: \"Email address\",\n      password: \"Password\",\n      confirmPassword: \"Confirm Password\",\n      newPassword: \"New password\",\n      name: \"Name\",\n      accessCode: \"Access Code\",\n      verificationCode: \"Verification code\",\n      recoveryCode: \"Recovery code\",\n      signInCode: \"Sign-in code\",\n      inviteCode: \"Invite code\",\n      inviteCodeRequiredTitle: \"Invite code required\",\n      inviteCodeRequiredBody: \"Your account was created and is waiting for an invite code before you can sign in.\",\n      inviteUnlockTitle: \"You’re in!\",\n      inviteUnlockBody: \"Your invite code has been accepted. Welcome aboard.\",\n      inviteUnlockRewardPercent: \"{percent}% off your subscription\",\n      inviteUnlockRewardFree: \"Your subscription is free\",\n      inviteUnlockRewardMonth: \"Unlocked by your invite — applied at checkout for your first month. Standard pricing resumes afterward.\",\n      inviteUnlockRewardMonths: \"Unlocked by your invite — applied at checkout for your first {months} months. Standard pricing resumes afterward.\",\n      inviteUnlockRewardNote: \"Unlocked by your invite — applied at checkout, for the life of your subscription.\",\n      inviteUnlockContinue: \"Continue\",\n      createPassword: \"Create a password\",\n      confirmYourPassword: \"Confirm your password\",\n      enterPassword: \"Enter your password\",\n      enterAccessCode: \"Enter access code\",\n      enterInviteCode: \"Enter invite code\",\n      enterCode: \"Enter the code\",\n      emailPlaceholder: \"you@example.com\",\n      namePlaceholder: \"Your name\",\n      authMethodAriaLabel: \"Authentication method\",\n      authOptionsAriaLabel: \"Authentication options\",\n      showPassword: \"Show password\",\n      hidePassword: \"Hide password\",\n      forgotYourPassword: \"Forgot your password?\",\n      forgotPasswordTitle: \"Forgot password?\",\n      forgotPasswordResetSubtitle: \"Enter your email address and we'll send you a link to reset your password.\",\n      instantLinkSubtitle: \"Enter your email and we'll send you a sign-in link. You can change your password in your account settings once signed in.\",\n      checkYourEmail: \"Check your email\",\n      verificationResent: \"Verification email requested. Check your inbox and spam folder.\",\n      verificationRequiredBody: \"Check {email} for a verification link, or request one below. If you already verified your address, return to sign in.\",\n      passwordResetSent: \"If an account exists for {email}, you will receive a password reset link shortly.\",\n      instantLinkSent: \"If this account supports email sign-in, a link will arrive at {email} shortly.\",\n      backToLogin: \"Back to login\",\n      resetYourPassword: \"Reset your password\",\n      requestNewResetLink: \"Request a new reset link\",\n      resetPasswordSubtitle: \"Enter your new password below.\",\n      passwordResetSuccessful: \"Password reset successful\",\n      passwordResetSuccessfulBody: \"Your password has been reset. You can now log in with your new password.\",\n      goToLogin: \"Go to login\",\n      sending: \"Sending...\",\n      resetting: \"Resetting...\",\n      twoFactorTitle: \"Two-factor authentication\",\n      mfaRestartRequired: \"This sign-in verification is no longer available. Return to sign in and start again. Your recovery codes still require a current sign-in verification.\",\n      signInCancelled: \"Sign-in was cancelled. Choose a sign-in method to try again.\",\n      deviceAccountFound: \"Account found on this device\",\n      deviceLinkSignIn: \"Sign in to link\",\n      deviceLinkDescription: \"You've signed in here before as {account} (with {method}). Link this new sign-in method to that account, or create a separate one?\",\n      deviceLinkSignInDescription: \"Use {method} to continue as {account}.\",\n      linkExistingAccount: \"Link to my existing account\",\n      createSeparateAccount: \"Create a separate account\",\n      notMyAccount: \"That's not me\",\n      linkingMethod: \"Linking {method}…\",\n      recoveryCodeDescription: \"Enter one of your recovery codes to sign in.\",\n      authenticatorCodeDescription: \"Enter the 6-digit code from your authenticator app.\",\n      enterRecoveryCode: \"Enter recovery code\",\n      verify: \"Verify\",\n      verifying: \"Verifying...\",\n      useAuthenticatorApp: \"Use authenticator app\",\n      useRecoveryCode: \"Use a recovery code\",\n      oneTimePassword: \"One-time password\",\n      otpDigit: \"Digit {index}\",\n      signInToAccount: \"Sign in to your account\",\n      signedIn: \"You're signed in\",\n      continueAs: \"Continue as {account}\",\n      passkeysUnavailable: \"Passkeys are unavailable in this browser. Try another browser or sign-in method.\",\n      close: \"Close\",\n      userMenuFor: \"User menu for {name}\",\n      defaultBrandName: \"Your Brand\",\n      defaultTagline: \"Your tagline goes here. Make it compelling.\",\n      defaultSubtitle: \"Enter your credentials to access your account\",\n      welcomeBack: \"Welcome back\",\n      socialLoginSubtitle: \"Login with your Apple or Google account\",\n      invalidTotpCode: \"Please enter a valid 6-digit code or recovery code\",\n      enterSixDigitCode: \"Please enter a 6-digit code\",\n      incorrectVerificationCode: \"Incorrect verification code. Please check and try again.\",\n      loadTotpStatusFailed: \"Unable to load two-factor authentication status. Please try again.\",\n      startTotpSetupFailed: \"Unable to start two-factor setup. Please try again.\",\n      disableTotpFailed: \"Unable to disable two-factor authentication. Please try again.\",\n      regenerateCodesFailed: \"Unable to regenerate recovery codes. Please try again.\",\n      alreadyHaveAccount: \"Already have an account?\",\n      dontHaveAccount: \"Don't have an account?\",\n      termsAgreementPrefix: \"I agree to the\",\n      termsOfService: \"Terms of Service\",\n      termsAgreementFallback: \"I agree to the Terms of Service\",\n      termsRequiredError: \"You must agree to the Terms of Service to continue\",\n      emailOptInDefault: \"Send me updates and news\",\n      signInUnavailableTitle: \"Sign-in is not available\",\n      signInUnavailableBody: \"No sign-in method is available here. Try another device or contact the site owner for access.\",\n      signupAvailabilityRemaining: \"{remaining} of {limit} signup spots available {period}.\",\n      signupAvailabilityFull: \"Registration is currently full. New spots open {resetsAt}.\",\n      signupAvailabilityDisclaimer: \"Availability is confirmed when you create your account.\",\n      signupAvailabilityPeriods: {\n        daily: \"today\",\n        weekly: \"this week\",\n        monthly: \"this month\"\n      },\n      tabs: {\n        signIn: \"Sign in\",\n        signUp: \"Sign up\"\n      },\n      providers: {\n        email: \"Email\",\n        google: \"Google\",\n        apple: \"Apple\",\n        solana: \"Solana\",\n        passkey: \"Passkey\",\n        instantLink: \"Instant link\"\n      }\n    },\n    buttons: {\n      signIn: \"Sign in\",\n      signUp: \"Sign up\",\n      signOut: \"Sign out\",\n      createAccount: \"Create account\",\n      continueWithGoogle: \"Continue with Google\",\n      continueWithApple: \"Continue with Apple\",\n      continueWithSolana: \"Continue with Solana\",\n      continueWithPasskey: \"Continue with passkey\",\n      createPasskeyAccount: \"Create account with passkey\",\n      forgotPassword: \"Forgot password?\",\n      resetPassword: \"Reset password\",\n      sendVerification: \"Resend verification email\",\n      sendRecoveryEmail: \"Send recovery email\",\n      sendResetLink: \"Send reset link\",\n      sendSignInLink: \"Send sign-in link\",\n      updatePassword: \"Update password\",\n      acceptInvite: \"Accept invite\",\n      continueToProfile: \"Continue to profile\",\n      manageAccount: \"Manage account\",\n      useAnotherAccount: \"Use another account\"\n    },\n    messages: {\n      signingIn: \"Signing in...\",\n      signingUp: \"Signing up...\",\n      creatingAccount: \"Creating account...\",\n      connectingWallet: \"Connecting wallet...\",\n      verifyingSignature: \"Verifying signature...\",\n      passwordsDoNotMatch: \"Passwords do not match\",\n      orContinueWith: \"Or continue with\",\n      recoveryInstructionsSent: \"If an account exists, recovery instructions will be sent.\",\n      verificationEmailSent: \"Verification email sent. It may take a moment to arrive.\",\n      passwordUpdated: \"Your password has been updated.\",\n      emailVerified: \"Your email is verified.\",\n      instantLinkConfirmed: \"Your sign-in link is confirmed.\",\n      teamAccessReady: \"Your team access is ready.\",\n      continueAfterSignIn: \"You will continue after signing in.\",\n      checkEmailForNextStep: \"Check your email for the next account step.\",\n      inviteWrongAccount: \"This invite belongs to a different account. Sign in with the invited email or wallet to continue.\",\n      inviteAcceptFailed: \"We could not accept this invite.\",\n      inviteReviewTitle: \"Accept your invitation\",\n      inviteReviewBody: \"Check that you’re using the invited account before joining.\",\n      inviteSignedInAs: \"Signed in as {account}.\",\n      inviteCurrentAccount: \"your current account\",\n      inviteCheckingAccount: \"Checking your account…\",\n      inviteAccepting: \"Accepting your invite…\",\n      inviteSignIn: \"Sign in with the invited account to continue.\",\n      inviteJoined: \"You joined {organization} as {role}.\",\n      inviteOutcomeUnconfirmed: \"You may already have joined. Check your team access before retrying this invitation. Keep the original invitation link.\",\n      inviteLinkChanged: \"The invitation changed. Open the original invitation link to continue.\",\n      inviteContextChanged: \"The session or invitation changed. Check your team access, then retry with the current account and original invitation.\",\n      mfaSetupRequired: \"Set up two-factor authentication to continue.\",\n      mfaSetupConfirming: \"Confirming account setup…\",\n      mfaSetupLogoutFailed: \"Unable to sign out. Please try again.\",\n      mfaSetupResumeFailed: \"Unable to confirm account setup. Please try again.\",\n      mfaSetupContextChanged: \"Your account or site changed. Return to sign in to continue.\",\n      signingOut: \"Signing out…\"\n    },\n    errors: {\n      invalidCredentials: \"Incorrect email or password. Please check your details and try again.\",\n      emailExists: \"An account with this email already exists. Try signing in instead.\",\n      emailNotVerified: \"Verify your email before signing in.\",\n      invalidEmail: \"Please enter a valid email address\",\n      weakPassword: \"Password does not meet requirements\",\n      networkError: \"Network error. Please try again.\",\n      unknownError: \"An error occurred. Please try again.\",\n      walletNotFound: \"No wallet found. Please install a Solana wallet.\",\n      signatureRejected: \"Signature request was rejected\",\n      challengeExpired: \"This verification has expired. Please try again.\",\n      sessionExpired: \"Your session has expired. Please try again.\",\n      linkExpired: \"This link has expired. Please request a new one.\",\n      tooManyRequests: \"Too many requests. Please wait a moment and try again.\",\n      signupLimitReached: \"Registration is temporarily closed. Please try again next period.\",\n      stepUpRequired: \"Please verify your identity to continue.\",\n      setupRequired: \"Cedros Login setup is incomplete. Finish setup in site settings, then try again.\",\n      disposableEmailBlocked: \"Use a permanent email address to continue.\",\n      signInFallback: \"Unable to sign in. Please try again.\",\n      registerFallback: \"Unable to create your account. Please try again.\",\n      serverError: \"Something went wrong. Please try again later.\",\n      unableToReachServer: \"Unable to reach the server. Check your connection and try again.\",\n      rateLimitedWithSeconds: \"Too many attempts. Please wait {seconds} {seconds, plural, one {second} other {seconds}} before trying again.\"\n    },\n    passwordValidation: {\n      minLength: \"At least 8 characters\",\n      uppercase: \"At least 1 uppercase letter\",\n      lowercase: \"At least 1 lowercase letter\",\n      number: \"At least 1 number\",\n      special: \"At least 1 special character (@$!%*?&#^())\",\n      weak: \"weak\",\n      fair: \"fair\",\n      good: \"good\",\n      strong: \"strong\",\n      requirementsTitle: \"Your password needs:\",\n      met: \"met\",\n      notMet: \"not met yet\",\n      allRequirementsMet: \"Password meets all requirements.\",\n      requirementsProgress: \"{met} of {total} requirements met\"\n    },\n    admin: Cn,\n    extension: {\n      defaultLocale: \"en\",\n      pageSeedDescription: \"Cedros platform page row for the {title} workflow; auto-created and published when the extension is enabled so the public URL is live immediately.\",\n      nativeFallback: \"Display owner-authored content or omit this web-only builder template.\",\n      ownerCanEditCopy: \"Owners can edit this copy before publishing.\",\n      noPrivateCodes: \"Do not add private invite codes or credentials to this content.\",\n      serverBoundRecovery: \"Security-sensitive recovery behavior remains server-bound.\",\n      authForm: {\n        authOptionsAriaLabel: \"Authentication options\",\n        editBeforePublishing: \"Edit this copy before publishing.\",\n        logInToManageAccount: \"Log in to manage account\",\n        accountWorkspaceBody: \"Update your profile, security settings, and sign-in methods.\"\n      },\n      accountSections: {\n        profileTitle: \"Profile\",\n        profileBody: \"Name, avatar, email visibility, and profile completion handoff.\",\n        securityTitle: \"Security\",\n        securityBody: \"Password changes, MFA enrollment, recovery methods, and account removal.\",\n        linkedAccountsTitle: \"Linked accounts\",\n        linkedAccountsBody: \"Google, Apple, passkey, Solana, SSO, and credential connection status.\",\n        sessionsTitle: \"Sessions\",\n        sessionsBody: \"Active browser/device sessions and sign-out controls.\"\n      }\n    }\n  };\n}));\nfunction Ke(e) {\n  if (!e) return \"en\";\n  try {\n    return Intl.getCanonicalLocales(e)[0] ?? \"en\";\n  } catch {\n    return \"en\";\n  }\n}\nfunction Go(e, r = {}, o = \"en\") {\n  const t = Ke(o);\n  return e.replace(Sn, (i, a, s, d) => {\n    const c = Number(r[a]);\n    return Number.isFinite(c) && new Intl.PluralRules(t).select(c) === \"one\" ? s : d;\n  }).replace(Rn, (i, a) => {\n    const s = r[a];\n    return s == null ? \"\" : String(s);\n  });\n}\nfunction Ds(e, r, o) {\n  return new Intl.NumberFormat(Ke(r), o).format(e);\n}\nfunction En(e, r, o) {\n  const t = e instanceof Date ? e : new Date(e);\n  return Number.isNaN(t.getTime()) ? \"\" : new Intl.DateTimeFormat(Ke(r), o).format(t);\n}\nfunction Us(e, r, o) {\n  return En(e, r, {\n    dateStyle: \"medium\",\n    timeStyle: \"short\",\n    ...o\n  });\n}\nfunction Fs(e, r, o) {\n  return new Intl.RelativeTimeFormat(Ke(r), {\n    numeric: \"auto\",\n    ...o\n  }).format(e, \"day\");\n}\nfunction qs(e, r, o) {\n  return new Intl.Collator(Ke(e), {\n    sensitivity: \"base\",\n    numeric: !0\n  }).compare(r, o);\n}\nfunction js(e, r, o = \"en\") {\n  const t = Ke(r);\n  if (!e.startsWith(\"/\") || t === Ke(o)) return e;\n  const i = e.split(\"/\").filter(Boolean);\n  return i[0] === t ? e : `/${[t, ...i].join(\"/\")}`;\n}\nvar Sn, Rn, gt = R((() => {\n  Sn = /\\{(\\w+),\\s*plural,\\s*one\\s*\\{([^{}]*)\\}\\s*other\\s*\\{([^{}]*)\\}\\s*\\}/g, Rn = /\\{(\\w+)\\}/g;\n}));\nfunction Bs(e, r) {\n  return Nn(e, r);\n}\nfunction Nn(e, r) {\n  const o = { ...e };\n  for (const t in r) if (Object.prototype.hasOwnProperty.call(r, t)) {\n    const i = e[t], a = r[t];\n    typeof i == \"object\" && i !== null && typeof a == \"object\" && a !== null ? o[t] = Nn(i, a) : a !== void 0 && (o[t] = a);\n  }\n  return o;\n}\nvar Tn = R((() => {\n}));\nfunction $s({ children: e, locale: r = \"en\", translations: o }) {\n  const t = B(() => {\n    const i = Ke(r);\n    return {\n      t: o ? Bs(Wr, o) : Wr,\n      locale: i\n    };\n  }, [o, r]);\n  return /* @__PURE__ */ n(no.Provider, {\n    value: t,\n    children: e\n  });\n}\nvar Vs = R((() => {\n  An(), mt(), gt(), Tn();\n}));\nfunction J() {\n  return Ue(no)?.t ?? Wr;\n}\nfunction In() {\n  return Ue(no)?.locale ?? \"en\";\n}\nfunction Ne() {\n  const e = J(), r = In();\n  return {\n    t: e,\n    locale: r,\n    message: (o, t) => Go(o, t, r),\n    number: (o, t) => Ds(o, r, t),\n    date: (o, t) => En(o, r, t),\n    dateTime: (o, t) => Us(o, r, t),\n    relativeDays: (o, t) => Fs(o, r, t),\n    compare: (o, t) => qs(r, o, t),\n    path: (o, t) => js(o, r, t)\n  };\n}\nvar Ws = R((() => {\n  An(), mt(), gt();\n})), Y = R((() => {\n  Vs(), Ws(), gt(), mt();\n})), Kt, W, ee = R((() => {\n  Y(), Kt = {\n    sm: 16,\n    md: 24,\n    lg: 32,\n    xl: 48\n  }, W = yn(function({ size: r = \"md\", className: o = \"\", style: t, label: i, announce: a = !1 }) {\n    const s = J(), d = Kt[r], c = i ?? s.common.loading, m = /* @__PURE__ */ v(\"svg\", {\n      className: `cedros-spinner ${o}`,\n      width: d,\n      height: d,\n      viewBox: \"0 0 24 24\",\n      fill: \"none\",\n      style: t,\n      \"aria-label\": c,\n      role: \"status\",\n      \"aria-hidden\": a ? \"true\" : void 0,\n      children: [/* @__PURE__ */ n(\"circle\", {\n        className: \"cedros-spinner-track\",\n        cx: \"12\",\n        cy: \"12\",\n        r: \"10\",\n        stroke: \"currentColor\",\n        strokeWidth: \"3\",\n        strokeOpacity: \"0.25\"\n      }), /* @__PURE__ */ n(\"circle\", {\n        className: \"cedros-spinner-head\",\n        cx: \"12\",\n        cy: \"12\",\n        r: \"10\",\n        stroke: \"currentColor\",\n        strokeWidth: \"3\",\n        strokeLinecap: \"round\",\n        strokeDasharray: \"31.4 31.4\",\n        transform: \"rotate(-90 12 12)\"\n      })]\n    });\n    return a ? /* @__PURE__ */ v(\"span\", {\n      \"aria-live\": \"polite\",\n      \"aria-busy\": \"true\",\n      children: [m, /* @__PURE__ */ n(\"span\", {\n        className: \"cedros-sr-only\",\n        children: c\n      })]\n    }) : m;\n  });\n}));\nfunction Hs(e) {\n  if (!e || typeof e != \"string\") return;\n  const r = e.trim();\n  if (!r) return;\n  const o = r.toLowerCase();\n  for (const t of pt) if (o.startsWith(t)) return;\n  try {\n    const t = new URL(r);\n    return Pn.includes(t.protocol) ? r : void 0;\n  } catch {\n    return;\n  }\n}\nfunction Ln(e) {\n  if (!e || typeof e != \"string\") return;\n  const r = e.trim();\n  if (!r) return;\n  const o = r.toLowerCase();\n  for (const t of pt) if (o.startsWith(t)) return;\n  try {\n    const t = new URL(r);\n    return t.protocol !== \"https:\" && t.protocol !== \"http:\" ? void 0 : r;\n  } catch {\n    return;\n  }\n}\nvar Pn, pt, zn = R((() => {\n  Pn = [\"https:\"], pt = [\n    \"javascript:\",\n    \"data:\",\n    \"vbscript:\",\n    \"file:\"\n  ];\n})), Me, Ee, ft, er, Mn, mr = R((() => {\n  Me = \"cedros-login:auth-page-copy\", Ee = \"cedros-login:auth-form\", ft = \"cedros-login:login-button\", er = \"cedros-login:account-workspace\", Mn = [\n    \"cedros-login:login-page-template\",\n    \"cedros-login:register-page-template\",\n    \"cedros-login:password-recovery-page-template\",\n    \"cedros-login:reset-password-page-template\",\n    \"cedros-login:email-verification-page-template\",\n    \"cedros-login:instant-link-verification-page-template\",\n    \"cedros-login:invite-acceptance-page-template\",\n    \"cedros-login:public-profile-page-template\"\n  ];\n}));\nfunction Ks(e, r, o) {\n  if (!e) return o;\n  let t = !1;\n  const i = { ...o };\n  for (const a of r) {\n    const s = e.elements.namedItem(a.name), d = s && \"value\" in s ? String(s.value) : \"\";\n    i[a.name] !== d && (i[a.name] = d, t = !0);\n  }\n  return t ? i : o;\n}\nvar Gs = R((() => {\n}));\nfunction Ys(e, r) {\n  return e === \"forgot-password\" ? [Oe(\"email\", r.auth.emailAddress, \"email\", \"email\", r.auth.emailPlaceholder)] : e === \"verify-email\" || e === \"instant-link-verify\" || e === \"accept-invite\" ? [] : e === \"reset-password\" ? [Oe(\"new_password\", r.auth.newPassword, \"password\", \"new-password\", r.auth.createPassword), Oe(\"confirmPassword\", r.auth.confirmPassword, \"password\", \"new-password\", r.auth.confirmYourPassword)] : e === \"create-account\" ? [\n    Oe(\"name\", r.auth.name, \"text\", \"name\", r.auth.namePlaceholder),\n    Oe(\"email\", r.auth.email, \"email\", \"email\", r.auth.emailPlaceholder),\n    Oe(\"password\", r.auth.password, \"password\", \"new-password\", r.auth.createPassword),\n    Oe(\"confirmPassword\", r.auth.confirmPassword, \"password\", \"new-password\", r.auth.confirmYourPassword)\n  ] : [Oe(\"email\", r.auth.email, \"email\", \"email\", r.auth.emailPlaceholder), Oe(\"password\", r.auth.password, \"password\", \"current-password\", r.auth.enterPassword)];\n}\nfunction Oe(e, r, o, t, i) {\n  return {\n    name: e,\n    label: r,\n    type: o,\n    autoComplete: t,\n    placeholder: i\n  };\n}\nvar Xs = R((() => {\n}));\nfunction Js(e, r, o = !1) {\n  const t = e.filter((s) => s !== \"email\" && s !== \"instant-link\"), i = o ? t.filter((s) => !On.has(s)) : t, a = Qs(r);\n  return i.sort((s, d) => {\n    const c = Gt(s, a), m = Gt(d, a);\n    return c === m ? i.indexOf(s) - i.indexOf(d) : c - m;\n  });\n}\nfunction Qs(e) {\n  if (!Array.isArray(e)) return qr;\n  const r = e.map((o) => o === \"webauthn\" ? \"passkey\" : o).filter((o) => qr.includes(o));\n  return r.length ? r : qr;\n}\nfunction Gt(e, r) {\n  const o = r.indexOf(e);\n  return o === -1 ? r.length : o;\n}\nvar qr, On, Zs = R((() => {\n  qr = [\n    \"solana\",\n    \"passkey\",\n    \"google\",\n    \"apple\"\n  ], On = /* @__PURE__ */ new Set([\"apple\", \"solana\"]);\n}));\nfunction ed(e, r = {}) {\n  switch (od(e)) {\n    case \"google\":\n      return /* @__PURE__ */ n(io, { ...r });\n    case \"apple\":\n      return /* @__PURE__ */ n(ao, { ...r });\n    case \"passkey\":\n      return /* @__PURE__ */ n(Cr, { ...r });\n    case \"solana\":\n      return /* @__PURE__ */ n(so, { ...r });\n  }\n}\nfunction rd() {\n  return /* @__PURE__ */ v(\"svg\", {\n    className: \"cedros-auth-form__password-toggle-icon\",\n    width: \"20\",\n    height: \"20\",\n    viewBox: \"0 0 20 20\",\n    fill: \"none\",\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    children: [/* @__PURE__ */ n(\"path\", {\n      d: \"M10 4.5C5.5 4.5 2.6 8.1 1.7 10c.9 1.9 3.8 5.5 8.3 5.5s7.4-3.6 8.3-5.5c-.9-1.9-3.8-5.5-8.3-5.5Z\",\n      stroke: \"currentColor\",\n      strokeWidth: \"1.5\",\n      strokeLinecap: \"round\",\n      strokeLinejoin: \"round\"\n    }), /* @__PURE__ */ n(\"path\", {\n      d: \"M10 12.4a2.4 2.4 0 1 0 0-4.8 2.4 2.4 0 0 0 0 4.8Z\",\n      stroke: \"currentColor\",\n      strokeWidth: \"1.5\",\n      strokeLinecap: \"round\",\n      strokeLinejoin: \"round\"\n    })]\n  });\n}\nfunction io({ className: e, size: r = 18 }) {\n  return /* @__PURE__ */ v(\"svg\", {\n    className: e,\n    width: r,\n    height: r,\n    viewBox: \"0 0 18 18\",\n    fill: \"none\",\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    children: [\n      /* @__PURE__ */ n(\"path\", {\n        d: \"M17.64 9.2c0-.637-.057-1.251-.164-1.84H9v3.481h4.844c-.209 1.125-.843 2.078-1.796 2.717v2.258h2.908c1.702-1.567 2.684-3.874 2.684-6.615z\",\n        fill: \"#4285F4\"\n      }),\n      /* @__PURE__ */ n(\"path\", {\n        d: \"M9.003 18c2.43 0 4.467-.806 5.956-2.18l-2.909-2.26c-.806.54-1.836.86-3.047.86-2.344 0-4.328-1.584-5.036-3.711H.96v2.332A8.997 8.997 0 0 0 9.003 18z\",\n        fill: \"#34A853\"\n      }),\n      /* @__PURE__ */ n(\"path\", {\n        d: \"M3.964 10.712A5.41 5.41 0 0 1 3.682 9c0-.593.102-1.17.282-1.71V4.958H.96A8.996 8.996 0 0 0 0 9c0 1.452.348 2.827.96 4.042l3.004-2.33z\",\n        fill: \"#FBBC05\"\n      }),\n      /* @__PURE__ */ n(\"path\", {\n        d: \"M9.003 3.58c1.321 0 2.508.454 3.44 1.345l2.582-2.58C13.464.891 11.428 0 9.002 0A8.997 8.997 0 0 0 .96 4.958l3.005 2.332c.708-2.127 2.692-3.71 5.036-3.71z\",\n        fill: \"#EA4335\"\n      })\n    ]\n  });\n}\nfunction ao({ className: e, size: r = 18 }) {\n  return /* @__PURE__ */ n(\"svg\", {\n    className: e,\n    width: r,\n    height: r,\n    viewBox: \"0 0 24 24\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    children: /* @__PURE__ */ n(\"path\", { d: \"M18.71 19.5c-.83 1.24-1.71 2.45-3.05 2.47-1.34.03-1.77-.79-3.29-.79-1.53 0-2 .77-3.27.82-1.31.05-2.3-1.32-3.14-2.53C4.25 17 2.94 12.45 4.7 9.39c.87-1.52 2.43-2.48 4.12-2.51 1.28-.02 2.5.87 3.29.87.78 0 2.26-1.07 3.81-.91.65.03 2.47.26 3.64 1.98-.09.06-2.17 1.28-2.15 3.81.03 3.02 2.65 4.03 2.68 4.04-.03.07-.42 1.44-1.38 2.83M13 3.5c.73-.83 1.94-1.46 2.94-1.5.13 1.17-.34 2.35-1.04 3.19-.69.85-1.83 1.51-2.95 1.42-.15-1.15.41-2.35 1.05-3.11z\" })\n  });\n}\nfunction so({ className: e, size: r = 18 }) {\n  return /* @__PURE__ */ v(\"svg\", {\n    className: e,\n    width: r,\n    height: r,\n    viewBox: \"0 0 128 128\",\n    fill: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    children: [\n      /* @__PURE__ */ n(\"path\", { d: \"M25.38 96.04a4.35 4.35 0 0 1 3.07-1.27h91.68c1.93 0 2.9 2.34 1.54 3.7l-17.71 17.72a4.35 4.35 0 0 1-3.07 1.27H9.21c-1.93 0-2.9-2.34-1.54-3.7l17.71-17.72z\" }),\n      /* @__PURE__ */ n(\"path\", { d: \"M25.38 11.81a4.47 4.47 0 0 1 3.07-1.27h91.68c1.93 0 2.9 2.34 1.54 3.7L103.96 31.96a4.35 4.35 0 0 1-3.07 1.27H9.21c-1.93 0-2.9-2.34-1.54-3.7L25.38 11.81z\" }),\n      /* @__PURE__ */ n(\"path\", { d: \"M102.62 53.76a4.35 4.35 0 0 0-3.07-1.27H7.87c-1.93 0-2.9 2.34-1.54 3.7l17.71 17.72a4.35 4.35 0 0 0 3.07 1.27h91.68c1.93 0 2.9-2.34 1.54-3.7L102.62 53.76z\" })\n    ]\n  });\n}\nfunction Cr({ className: e, size: r = 20 }) {\n  return /* @__PURE__ */ v(\"svg\", {\n    className: e,\n    width: r,\n    height: r,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: \"currentColor\",\n    strokeWidth: \"1.5\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    children: [\n      /* @__PURE__ */ n(\"path\", { d: \"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4\" }),\n      /* @__PURE__ */ n(\"path\", { d: \"M14 13.12c0 2.38 0 6.38-1 8.88\" }),\n      /* @__PURE__ */ n(\"path\", { d: \"M17.29 21.02c.12-.6.43-2.3.5-3.02\" }),\n      /* @__PURE__ */ n(\"path\", { d: \"M2 12a10 10 0 0 1 18-6\" }),\n      /* @__PURE__ */ n(\"path\", { d: \"M2 16h.01\" }),\n      /* @__PURE__ */ n(\"path\", { d: \"M21.8 16c.2-2 .131-5.354 0-6\" }),\n      /* @__PURE__ */ n(\"path\", { d: \"M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2\" }),\n      /* @__PURE__ */ n(\"path\", { d: \"M8.65 22c.21-.66.45-1.32.57-2\" }),\n      /* @__PURE__ */ n(\"path\", { d: \"M9 6.8a6 6 0 0 1 9 5.2v2\" })\n    ]\n  });\n}\nfunction od(e) {\n  return e === \"webauthn\" ? \"passkey\" : e;\n}\nvar gr = R((() => {\n})), Rr, co, Dn = R((() => {\n  Rr = Ar(null), co = Ar(null);\n}));\nfunction ce() {\n  const e = Ue(Rr), r = Ue(co);\n  if (!e || !r) throw new Error(\"useCedrosLogin must be used within a CedrosLoginProvider\");\n  return {\n    ...e,\n    ...r\n  };\n}\nfunction Un() {\n  const e = Ue(Rr), r = Ue(co);\n  return e && r ? {\n    ...e,\n    ...r\n  } : null;\n}\nfunction lo() {\n  const e = Ue(Rr);\n  if (!e) throw new Error(\"useAuthState must be used within a CedrosLoginProvider\");\n  return e;\n}\nvar oe = R((() => {\n  Dn();\n}));\nfunction uo(e) {\n  if (!e || typeof e != \"object\") return;\n  const { remaining: r, limit: o, period: t, resetsAt: i } = e, a = typeof i == \"string\" ? Date.parse(i) : NaN;\n  if (!(!Number.isSafeInteger(r) || !Number.isSafeInteger(o) || r < 0 || o < 1 || r > o || typeof t != \"string\" || !Fn.includes(t) || typeof i != \"string\" || !qn.test(i) || !Number.isFinite(a) || a <= Date.now()))\n    return {\n      remaining: r,\n      limit: o,\n      period: t,\n      resetsAt: i\n    };\n}\nvar Fn, qn, mo = R((() => {\n  Fn = [\n    \"daily\",\n    \"weekly\",\n    \"monthly\"\n  ], qn = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$/i;\n}));\nfunction td(e, r) {\n  const o = Un(), t = o?.config.serverUrl ?? $n(), i = nd(r ? null : t), a = o ? id(o.isFeatureEnabled, o.config) : null, s = r ?? a ?? i;\n  return s ? e.filter((d) => ad(d, s)) : e.filter((d) => d === \"email\");\n}\nfunction nd(e) {\n  const [r, o] = _(null);\n  return D(() => {\n    if (!e || typeof fetch != \"function\") {\n      o(null);\n      return;\n    }\n    let t = !0;\n    const i = new AbortController(), a = window.setTimeout(() => i.abort(), Wn);\n    return fetch(`${e}/features`, {\n      credentials: \"omit\",\n      signal: i.signal\n    }).then((s) => s.ok ? s.json() : null).then((s) => {\n      t && o(jn(s));\n    }).catch(() => {\n      t && o(null);\n    }).finally(() => window.clearTimeout(a)), () => {\n      t = !1, window.clearTimeout(a), i.abort();\n    };\n  }, [e]), r;\n}\nfunction id(e, r) {\n  return {\n    email: e(\"email\"),\n    google: e(\"google\"),\n    apple: e(\"apple\"),\n    solana: e(\"solana\"),\n    webauthn: e(\"webauthn\"),\n    instantLink: e(\"instantLink\"),\n    googleClientId: r.googleClientId,\n    appleClientId: r.appleClientId,\n    signupAccessCodeRequired: r.signupAccessCodeRequired,\n    signupAvailability: r.signupAvailability\n  };\n}\nfunction jn(e) {\n  if (!e || typeof e != \"object\") return null;\n  const r = e, o = Yt(r.googleClientId), t = Yt(r.appleClientId);\n  return {\n    email: r.email === !0,\n    google: r.google === !0,\n    apple: r.apple === !0,\n    solana: r.solana === !0,\n    webauthn: r.webauthn === !0,\n    instantLink: r.instantLink === !0,\n    googleClientId: o,\n    appleClientId: t,\n    signupAccessCodeRequired: r.signupAccessCodeRequired === !0,\n    signupAvailability: uo(r.signupAvailability)\n  };\n}\nfunction Bn(e) {\n  return jn(e);\n}\nfunction ad(e, r) {\n  switch (e) {\n    case \"email\":\n      return r.email;\n    case \"google\":\n      return r.google && !!r.googleClientId;\n    case \"apple\":\n      return r.apple && !!r.appleClientId;\n    case \"solana\":\n      return r.solana;\n    case \"passkey\":\n      return r.webauthn;\n    case \"instant-link\":\n      return r.instantLink;\n  }\n}\nfunction $n() {\n  return typeof window > \"u\" ? null : `${window.location.origin}${Vn}`;\n}\nfunction Yt(e) {\n  return typeof e == \"string\" && e.trim() ? e.trim() : void 0;\n}\nvar Vn, Wn, Hn = R((() => {\n  oe(), G(), mo(), Vn = \"/extensions/cedros-login\", Wn = 5e3;\n}));\nfunction sd({ props: e, suppressClientConditionalProviderButtons: r = !1, colorMode: o }) {\n  const t = J(), i = dd(e, t), a = B(() => Ys(i.mode, t), [i.mode, t]), s = he(), [d, c] = _({}), m = td(i.providers, i.features), l = Js(m, i.socialButtonOrder, r), p = gd(i.mode, t), f = a.length > 0 && a.every((w) => (d[w.name] ?? \"\").trim()), u = (w, A) => {\n    c((C) => ({\n      ...C,\n      [w]: A\n    }));\n  }, g = S(() => {\n    c((w) => Ks(bd(s), a, w));\n  }, [a, s]);\n  D(() => {\n    g();\n    const w = window.setTimeout(g, 250);\n    return () => window.clearTimeout(w);\n  }, [g]);\n  const x = i.mode === \"sign-in\" || i.mode === \"create-account\", k = i.mode === \"create-account\" ? \"register\" : \"login\", h = F(\"form\", {\n    key: \"form\",\n    id: s,\n    className: \"cedros-form\",\n    onSubmit: (w) => w.preventDefault(),\n    onInput: g,\n    onChange: g,\n    onFocus: g\n  }, [\n    ...a.map((w) => md(w, d[w.name] ?? \"\", u, t, s)),\n    F(\"button\", {\n      key: \"submit\",\n      type: \"submit\",\n      disabled: !f,\n      className: \"cedros-button cedros-button-primary cedros-button-md cedros-button-full\"\n    }, i.submitLabel),\n    x ? p : null\n  ].filter(Boolean)), y = [\n    i.showProviderButtons && cd(l, t),\n    i.showProviderButtons && l.length > 0 && m.includes(\"email\") ? ld(t) : null,\n    ud(i.mode, t, s),\n    x ? F(\"div\", {\n      key: \"tabpanel\",\n      role: \"tabpanel\",\n      id: `${s}-tabpanel-${k}`,\n      \"aria-labelledby\": `${s}-tab-${k}`\n    }, h) : h,\n    !x && i.successMessage ? F(\"p\", {\n      key: \"success\",\n      className: \"cedros-auth-form__success\"\n    }, i.successMessage) : null\n  ].filter(Boolean), b = x ? [F(\"div\", {\n    key: \"login-form\",\n    className: \"cedros-login-form\"\n  }, y)] : y;\n  return F(\"section\", {\n    className: Kn(i.layout, o),\n    \"data-auth-mode\": i.mode,\n    \"data-cebbwf5-block\": Ee\n  }, [F(\"h2\", {\n    key: \"title\",\n    className: \"cedros-auth-form__title\"\n  }, i.title), F(\"div\", {\n    key: \"panel\",\n    className: \"cedros-auth-form__panel\"\n  }, b)].filter(Boolean));\n}\nfunction Kn(e, r) {\n  return `cedros-auth-form cedros-auth-form--${e}${r === \"dark\" ? \" cebbwf5-dark\" : \"\"}`;\n}\nfunction dd(e, r) {\n  const o = ht(e.mode), t = pd(o, r), i = vd(e.enabledProviders, o), a = o === \"sign-in\" || o === \"create-account\";\n  return {\n    mode: o,\n    title: zo(e.title) || t.title,\n    submitLabel: a ? t.submitLabel : zo(e.submitLabel) || t.submitLabel,\n    successMessage: zo(e.successMessage) || t.successMessage,\n    features: Bn(e.features),\n    socialButtonOrder: wd(e.socialButtonOrder),\n    showProviderButtons: e.showProviderButtons === !0 || e.showProviderButtons !== !1 && i.some((s) => s !== \"email\"),\n    providers: i,\n    layout: e.layout === \"inline\" || e.layout === \"compact\" ? e.layout : \"card\"\n  };\n}\nfunction cd(e, r) {\n  return e.length === 0 ? null : F(\"div\", {\n    key: \"providers\",\n    className: \"cedros-social-buttons\",\n    \"aria-label\": r.extension.authForm.authOptionsAriaLabel\n  }, e.map((o) => F(\"button\", {\n    key: o,\n    type: \"button\",\n    className: \"cedros-button cedros-button-social cedros-button-md\",\n    \"data-provider\": o\n  }, [F(\"span\", {\n    key: \"icon\",\n    className: \"cedros-social-icon\",\n    \"aria-hidden\": !0\n  }, ed(o, { className: \"cedros-auth-form__provider-svg\" })), F(\"span\", { key: \"label\" }, hd(o, r))])));\n}\nfunction ld(e) {\n  return F(\"div\", {\n    key: \"divider\",\n    className: \"cedros-divider\"\n  }, F(\"span\", null, e.messages.orContinueWith));\n}\nfunction ud(e, r, o) {\n  return e !== \"sign-in\" && e !== \"create-account\" ? null : F(\"div\", {\n    key: \"tabs\",\n    className: \"cedros-auth-form__tabs cedros-tabs\",\n    role: \"tablist\",\n    \"aria-label\": r.auth.authMethodAriaLabel\n  }, [Xt(\"login\", r.auth.tabs.signIn, e === \"sign-in\", o), Xt(\"register\", r.auth.tabs.signUp, e === \"create-account\", o)]);\n}\nfunction Xt(e, r, o, t) {\n  return F(\"button\", {\n    key: e,\n    type: \"button\",\n    id: `${t}-tab-${e}`,\n    className: `cedros-tab ${o ? \"cedros-tab-active\" : \"\"}`,\n    role: \"tab\",\n    \"aria-selected\": o,\n    \"aria-controls\": `${t}-tabpanel-${e}`,\n    tabIndex: o ? 0 : -1\n  }, r);\n}\nfunction md(e, r, o, t, i) {\n  const a = e.type === \"password\", s = e.name === \"password\" && e.autoComplete === \"current-password\", d = F(\"input\", {\n    key: \"input\",\n    id: `${i}-${e.name}`,\n    className: \"cedros-input\",\n    name: e.name,\n    type: e.type,\n    autoComplete: e.autoComplete,\n    placeholder: e.placeholder,\n    required: !0,\n    \"aria-required\": \"true\",\n    value: r,\n    onInput: (m) => o(e.name, m.target.value),\n    onChange: (m) => o(e.name, m.target.value)\n  }), c = F(\"label\", {\n    key: \"label\",\n    htmlFor: `${i}-${e.name}`,\n    className: \"cedros-label\"\n  }, e.label);\n  return a ? F(\"div\", {\n    key: e.name,\n    className: \"cedros-form-field\"\n  }, F(\"div\", { className: \"cedros-password-input\" }, [F(\"div\", {\n    key: \"label\",\n    className: \"cedros-label-row\"\n  }, [c, s ? F(\"button\", {\n    key: \"forgot\",\n    type: \"button\",\n    className: \"cedros-link cedros-link-muted cedros-link-sm\"\n  }, t.auth.forgotYourPassword) : null]), F(\"div\", {\n    key: \"control\",\n    className: \"cedros-password-wrapper\"\n  }, [d, F(\"button\", {\n    key: \"toggle\",\n    type: \"button\",\n    className: \"cedros-password-toggle\",\n    \"aria-label\": t.auth.showPassword,\n    tabIndex: -1\n  }, rd())])])) : F(\"div\", {\n    key: e.name,\n    className: \"cedros-form-field\"\n  }, [c, d]);\n}\nfunction gd(e, r) {\n  return e === \"sign-in\" ? Jt(r.auth.dontHaveAccount, \"/register\", r.auth.tabs.signUp) : e === \"create-account\" ? Jt(r.auth.alreadyHaveAccount, \"/login\", r.auth.tabs.signIn) : null;\n}\nfunction Jt(e, r, o) {\n  return F(\"p\", {\n    key: \"footer\",\n    className: \"cedros-form-footer\"\n  }, [`${e} `, F(\"button\", {\n    key: \"link\",\n    type: \"button\",\n    className: \"cedros-link cedros-link-muted\"\n  }, o)]);\n}\nfunction pd(e, r) {\n  return {\n    \"sign-in\": {\n      title: r.buttons.signIn,\n      submitLabel: r.buttons.signIn,\n      successMessage: r.messages.continueAfterSignIn\n    },\n    \"create-account\": {\n      title: r.buttons.createAccount,\n      submitLabel: r.buttons.createAccount,\n      successMessage: r.messages.checkEmailForNextStep\n    },\n    \"forgot-password\": {\n      title: r.buttons.forgotPassword,\n      submitLabel: r.buttons.sendRecoveryEmail,\n      successMessage: r.messages.recoveryInstructionsSent\n    },\n    \"reset-password\": {\n      title: r.buttons.resetPassword,\n      submitLabel: r.buttons.updatePassword,\n      successMessage: r.messages.passwordUpdated\n    },\n    \"verify-email\": {\n      title: r.auth.verifying,\n      submitLabel: r.auth.verifying,\n      successMessage: r.messages.emailVerified\n    },\n    \"instant-link-verify\": {\n      title: r.auth.providers.instantLink,\n      submitLabel: r.common.continue,\n      successMessage: r.messages.instantLinkConfirmed\n    },\n    \"accept-invite\": {\n      title: r.buttons.acceptInvite,\n      submitLabel: r.buttons.acceptInvite,\n      successMessage: r.messages.teamAccessReady\n    }\n  }[e];\n}\nfunction fd(e, r) {\n  return {\n    email: r.auth.providers.email,\n    google: r.auth.providers.google,\n    apple: r.auth.providers.apple,\n    solana: r.auth.providers.solana,\n    passkey: r.auth.providers.passkey,\n    \"instant-link\": r.auth.providers.instantLink\n  }[e];\n}\nfunction hd(e, r) {\n  return {\n    google: r.buttons.continueWithGoogle,\n    apple: r.buttons.continueWithApple,\n    solana: r.buttons.continueWithSolana,\n    passkey: r.buttons.continueWithPasskey\n  }[e] ?? fd(e, r);\n}\nfunction bd(e) {\n  if (typeof document > \"u\") return null;\n  const r = document.getElementById(e);\n  return r instanceof HTMLFormElement ? r : null;\n}\nfunction ht(e) {\n  return typeof e == \"string\" && Gn.includes(e) ? e : \"sign-in\";\n}\nfunction vd(e, r) {\n  const o = (Array.isArray(e) ? e.filter(yd) : Yo[r]).filter((t, i, a) => a.indexOf(t) === i);\n  return o.length ? o : Yo[r];\n}\nfunction yd(e) {\n  return typeof e == \"string\" && Yn.includes(e);\n}\nfunction wd(e) {\n  if (!Array.isArray(e)) return;\n  const r = e.filter((o) => typeof o == \"string\");\n  return r.length ? r : void 0;\n}\nfunction zo(e) {\n  return typeof e == \"string\" ? e : \"\";\n}\nvar Gn, Yo, Yn, Xn = R((() => {\n  G(), Y(), Gs(), Xs(), Zs(), gr(), Hn(), mr(), Gn = [\n    \"sign-in\",\n    \"create-account\",\n    \"forgot-password\",\n    \"reset-password\",\n    \"verify-email\",\n    \"instant-link-verify\",\n    \"accept-invite\"\n  ], Yo = {\n    \"sign-in\": [\n      \"email\",\n      \"google\",\n      \"apple\",\n      \"passkey\",\n      \"solana\",\n      \"instant-link\"\n    ],\n    \"create-account\": [\n      \"email\",\n      \"google\",\n      \"apple\",\n      \"passkey\",\n      \"solana\"\n    ],\n    \"forgot-password\": [\"email\"],\n    \"reset-password\": [\"email\"],\n    \"verify-email\": [\"email\"],\n    \"instant-link-verify\": [\"email\"],\n    \"accept-invite\": [\"email\"]\n  }, Yn = [\n    \"email\",\n    \"google\",\n    \"apple\",\n    \"solana\",\n    \"passkey\",\n    \"instant-link\"\n  ];\n}));\nfunction Mo() {\n  for (const [r, o] of jr) r.toggleAttribute(\"inert\", o);\n  jr.clear();\n  const e = Ce.at(-1);\n  if (e)\n    for (let r = e; r && r !== document.body; r = r.parentElement) for (const o of r.parentElement?.children ?? [])\n      o === r || !(o instanceof HTMLElement) || (jr.set(o, o.hasAttribute(\"inert\")), o.setAttribute(\"inert\", \"\"));\n}\nfunction Oo(e) {\n  return Array.from(e.querySelectorAll(\"button, a[href], input, select, textarea, [tabindex]\")).filter((r) => {\n    if (r.tabIndex < 0 || r.matches(':disabled, input[type=\"hidden\"]')) return !1;\n    for (let o = r; o; o = o.parentElement) {\n      const t = getComputedStyle(o);\n      if (o.hidden || o.inert || o.hasAttribute(\"inert\") || t.display === \"none\" || t.visibility === \"hidden\") return !1;\n    }\n    return !0;\n  });\n}\nfunction Jn(e, r, o, t) {\n  const i = M(o);\n  D(() => {\n    i.current = o;\n  }, [o]), D(() => {\n    const a = r.current;\n    if (!e || !a) return;\n    let s = document.activeElement;\n    Ce.length === 0 && (Xo = document.body.style.overflow, document.body.style.overflow = \"hidden\", kr = new MutationObserver(Mo), kr.observe(document.body, {\n      childList: !0,\n      subtree: !0\n    }));\n    const d = Ce.findIndex((u) => a.contains(u));\n    if (d >= 0) {\n      const u = Ce[d];\n      s = We.get(u) ?? s, We.set(u, a), Ce.splice(d, 0, a);\n    } else Ce.push(a);\n    We.set(a, s), Mo();\n    const c = () => Ce[Ce.length - 1] === a, m = () => (Oo(a)[0] ?? a).focus(), l = typeof t == \"string\" ? Oo(a).find((u) => u.matches(t)) : t?.current;\n    c() && (l ?? a).focus();\n    const p = (u) => {\n      if (!(!c() || u.defaultPrevented)) {\n        if (u.key === \"Escape\")\n          u.preventDefault(), i.current();\n        else if (u.key === \"Tab\") {\n          const g = Oo(a), x = g.indexOf(document.activeElement);\n          (g.length === 0 || x === -1 || (u.shiftKey ? x === 0 : x === g.length - 1)) && (u.preventDefault(), (u.shiftKey ? g.at(-1) ?? a : g[0] ?? a).focus());\n        }\n      }\n    }, f = (u) => {\n      c() && u.target instanceof Node && !a.contains(u.target) && m();\n    };\n    return document.addEventListener(\"keydown\", p), document.addEventListener(\"focusin\", f), () => {\n      const u = c(), g = We.get(a);\n      for (const [x, k] of We) x !== a && k && a.contains(k) && We.set(x, g ?? null);\n      We.delete(a), Ce.splice(Ce.indexOf(a), 1), Ce.length === 0 && (kr?.disconnect(), kr = null), Mo(), document.removeEventListener(\"keydown\", p), document.removeEventListener(\"focusin\", f), Ce.length === 0 && (document.body.style.overflow = Xo), u && g instanceof HTMLElement && g.isConnected && g.focus();\n    };\n  }, [\n    e,\n    r,\n    t\n  ]);\n}\nvar Ce, We, Xo, jr, kr, Qn = R((() => {\n  G(), Ce = [], We = /* @__PURE__ */ new Map(), Xo = \"\", jr = /* @__PURE__ */ new Map(), kr = null;\n}));\nfunction Zn({ id: e, src: r, label: o, isReady: t }) {\n  let i = null, a = null;\n  return {\n    load() {\n      if (typeof window > \"u\" || typeof document > \"u\") return Promise.reject(/* @__PURE__ */ new Error(`${o} script loader cannot run in SSR`));\n      if (i) return i;\n      if (t()) return Promise.resolve();\n      const s = document.getElementById(e);\n      if (s && !(s instanceof HTMLScriptElement)) return Promise.reject(/* @__PURE__ */ new Error(`${o} script element is unavailable`));\n      const d = s ?? document.createElement(\"script\");\n      if (!s) try {\n        d.id = e, d.src = r, d.async = !0, d.defer = !0;\n      } catch {\n        return Promise.reject(/* @__PURE__ */ new Error(`${o} script is unavailable`));\n      }\n      let c, m;\n      i = new Promise((k, h) => {\n        c = k, m = h;\n      });\n      const l = i;\n      let p = !1;\n      const f = (k) => {\n        p || (p = !0, clearTimeout(x), d.removeEventListener(\"load\", u), d.removeEventListener(\"error\", g), i = null, a = null, k ? (d.remove(), m(k)) : c());\n      }, u = () => f(t() ? void 0 : /* @__PURE__ */ new Error(`${o} SDK is unavailable`)), g = () => f(/* @__PURE__ */ new Error(`Failed to load ${o} script`)), x = setTimeout(() => f(t() ? void 0 : /* @__PURE__ */ new Error(`${o} script loading timed out`)), 15e3);\n      if (a = () => f(/* @__PURE__ */ new Error(`${o} script loading was cancelled`)), d.addEventListener(\"load\", u), d.addEventListener(\"error\", g), !s) try {\n        document.head.appendChild(d);\n      } catch {\n        f(/* @__PURE__ */ new Error(`${o} script is unavailable`));\n      }\n      return l;\n    },\n    _reset() {\n      a?.();\n    }\n  };\n}\nvar ei = R((() => {\n}));\nfunction ze() {\n  throw {\n    code: \"INVALID_TOKEN\",\n    message: \"Invalid authentication response. Please sign in again.\"\n  };\n}\nfunction lr(e) {\n  return typeof e == \"object\" && e !== null && !Array.isArray(e);\n}\nfunction go(e) {\n  (!lr(e) || !lr(e.user) || typeof e.user.id != \"string\" || !e.user.id.trim() || typeof e.isNewUser != \"boolean\" || \"mfaRequired\" in e || \"registrationPending\" in e) && ze(), e.user.email != null && typeof e.user.email != \"string\" && ze(), e.user.emailVerified !== void 0 && typeof e.user.emailVerified != \"boolean\" && ze();\n  for (const r of [\n    \"authenticated\",\n    \"inviteCodeRequired\",\n    \"emailQueued\"\n  ]) e[r] !== void 0 && typeof e[r] != \"boolean\" && ze();\n  if (e.tokens !== void 0) {\n    const r = e.tokens;\n    (!lr(r) || typeof r.accessToken != \"string\" || !r.accessToken.trim() || typeof r.refreshToken != \"string\" || !r.refreshToken.trim() || typeof r.expiresIn != \"number\" || !Number.isSafeInteger(r.expiresIn) || Number(r.expiresIn) < 1) && ze();\n  }\n  e.inviteCodeRequired === !0 && (typeof e.pendingInviteToken != \"string\" || !e.pendingInviteToken.trim()) && ze(), (e.authenticated === !1 || e.inviteCodeRequired === !0 || e.emailQueued === !0) && (e.tokens !== void 0 || e.apiKey !== void 0 || e.authenticated === !0) && ze();\n}\nfunction Fe(e) {\n  if (lr(e) && \"mfaRequired\" in e) {\n    (e.mfaRequired !== !0 || typeof e.mfaToken != \"string\" || !e.mfaToken.trim() || typeof e.userId != \"string\" || !e.userId.trim() || e.tokens !== void 0 || e.apiKey !== void 0 || e.authenticated === !0 || e.user !== void 0) && ze();\n    return;\n  }\n  go(e);\n}\nfunction kd(e) {\n  lr(e) && typeof e.message == \"string\" && e.message.trim() && ![\n    \"user\",\n    \"mfaRequired\",\n    \"tokens\",\n    \"apiKey\",\n    \"authenticated\",\n    \"isNewUser\"\n  ].some((r) => r in e) || Fe(e);\n}\nfunction xd(e) {\n  if (lr(e) && \"registrationPending\" in e) {\n    (e.registrationPending !== !0 || e.authenticated !== !1 || e.user !== void 0 || e.tokens !== void 0 || e.apiKey !== void 0) && ze();\n    return;\n  }\n  go(e);\n}\nfunction rr(e) {\n  return !!(e.authenticated !== !0 && e.user.email && (e.emailQueued === !0 || e.user.emailVerified === !1 && e.tokens === void 0));\n}\nfunction Se(e) {\n  return e.authenticated === !1 || e.inviteCodeRequired === !0 || rr(e);\n}\nfunction Le(e, r, o, t) {\n  go(e), (Se(e) || e.emailQueued || !o) && ze(), o.handleLoginSuccess(e.user, e.tokens), t?.onLoginSuccess?.(e.user, r);\n}\nvar je = R((() => {\n}));\nfunction or() {\n  return Ue(bt) ?? ri;\n}\nvar ri, bt, tr = R((() => {\n  ri = { requestDeviceAccountLink: async () => ({ action: \"create\" }) }, bt = Ar(null);\n}));\nfunction Hr() {\n  if (typeof document > \"u\") return null;\n  const e = document.querySelector('meta[name=\"csrf-token\"]');\n  if (e) {\n    const o = e.getAttribute(\"content\");\n    if (o && o.length >= Jo) return o;\n  }\n  const r = document.cookie.split(\";\");\n  for (const o of r) {\n    const [t, ...i] = o.trim().split(\"=\"), a = i.join(\"=\");\n    if (t.toLowerCase() === \"xsrf-token\") try {\n      const s = decodeURIComponent(a.trim());\n      if (s.length >= Jo) return s;\n    } catch {\n      continue;\n    }\n  }\n  return null;\n}\nvar Jo, vt = R((() => {\n  Jo = 32;\n}));\nfunction _d(e, r, o = ti) {\n  const t = Cd(e.code ?? e.error), i = Ed(e.details);\n  return {\n    code: t,\n    message: o[t] ?? e.message ?? e.detail ?? i ?? r,\n    ...Sd(e.details) ? { details: e.details } : {}\n  };\n}\nfunction Ad(e = \"Unable to reach the server. Check your connection and try again.\") {\n  return {\n    code: \"NETWORK_ERROR\",\n    message: e\n  };\n}\nfunction O(e, r, o = {}) {\n  if (typeof e == \"object\" && e !== null && \"name\" in e && e.name === \"AbortError\") return {\n    code: \"NETWORK_ERROR\",\n    message: o.timeoutMessage ?? \"The request timed out. Check your connection and try again.\"\n  };\n  if (Rd(e)) return e;\n  if (oi(e)) {\n    const t = _d(e.data, r, o.friendlyMessages);\n    return Object.assign(t, {\n      status: e.status,\n      data: {\n        ...e.data,\n        message: e.data.message ?? e.data.detail ?? t.message\n      }\n    });\n  }\n  return e instanceof Error && (e.message.startsWith(\"Server error:\") || e.message.startsWith(\"Invalid JSON response\")) ? {\n    code: \"SERVER_ERROR\",\n    message: r\n  } : Ad(o.networkMessage);\n}\nfunction oi(e) {\n  return typeof e == \"object\" && e !== null && \"isApiError\" in e;\n}\nfunction Cd(e) {\n  if (!e) return \"SERVER_ERROR\";\n  const r = Qo[e] ?? Qo[e.toLowerCase()];\n  if (r) return r;\n  const o = e.toUpperCase();\n  return ni.has(o) ? o : \"SERVER_ERROR\";\n}\nfunction Ed(e) {\n  if (!Array.isArray(e)) return;\n  const r = e.filter((o) => typeof o == \"string\");\n  return r.length > 0 ? r.join(\". \") : void 0;\n}\nfunction Sd(e) {\n  return typeof e == \"object\" && e !== null && !Array.isArray(e);\n}\nfunction Rd(e) {\n  return typeof e == \"object\" && e !== null && \"code\" in e && \"message\" in e;\n}\nvar ti, ni, Qo, Nd = R((() => {\n  ti = {\n    INVALID_CREDENTIALS: \"Incorrect email or password. Please check your details and try again.\",\n    EMAIL_EXISTS: \"An account with this email already exists. Try signing in instead.\",\n    ACCOUNT_LINK_REQUIRED: \"An account with this email already exists. Sign in using the method you used to create it before linking another sign-in method.\",\n    EMAIL_NOT_VERIFIED: \"Verify your email before signing in.\",\n    WALLET_EXISTS: \"This wallet is already linked to an account.\",\n    INVALID_TOKEN: \"Your session has expired. Please try again.\",\n    TOKEN_EXPIRED: \"This link has expired. Please request a new one.\",\n    INVALID_SIGNATURE: \"Wallet verification failed. Please try signing again.\",\n    CHALLENGE_EXPIRED: \"This verification has expired. Please try again.\",\n    RATE_LIMITED: \"Too many requests. Please wait a moment and try again.\",\n    SIGNUP_LIMIT_REACHED: \"Registration is temporarily closed. Please try again next period.\",\n    STEP_UP_REQUIRED: \"Please verify your identity to continue.\",\n    SETUP_REQUIRED: \"Cedros Login setup is incomplete. Finish setup in site settings, then try again.\",\n    DISPOSABLE_EMAIL_BLOCKED: \"Use a permanent email address to continue.\",\n    SERVER_ERROR: \"Something went wrong. Please try again later.\"\n  }, ni = /* @__PURE__ */ new Set([\n    \"INVALID_CREDENTIALS\",\n    \"ACCOUNT_LOCKED\",\n    \"EMAIL_EXISTS\",\n    \"EMAIL_NOT_VERIFIED\",\n    \"ACCOUNT_LINK_REQUIRED\",\n    \"WALLET_EXISTS\",\n    \"INVALID_TOKEN\",\n    \"TOKEN_EXPIRED\",\n    \"INVALID_SIGNATURE\",\n    \"INVALID_PUBLIC_KEY\",\n    \"CHALLENGE_EXPIRED\",\n    \"VALIDATION_ERROR\",\n    \"RATE_LIMITED\",\n    \"SIGNUP_LIMIT_REACHED\",\n    \"NOT_FOUND\",\n    \"FORBIDDEN\",\n    \"UNAUTHORIZED\",\n    \"STEP_UP_REQUIRED\",\n    \"SETUP_REQUIRED\",\n    \"DISPOSABLE_EMAIL_BLOCKED\",\n    \"TOTP_REQUIRED\",\n    \"INVALID_TOTP_CODE\",\n    \"LOGIN_FAILED\",\n    \"REGISTER_FAILED\",\n    \"LOGOUT_FAILED\",\n    \"REFRESH_FAILED\",\n    \"SERVICE_UNAVAILABLE\",\n    \"SERVER_ERROR\",\n    \"NETWORK_ERROR\",\n    \"WALLET_ERROR\",\n    \"UNKNOWN_ERROR\"\n  ]), Qo = {\n    account_locked: \"ACCOUNT_LOCKED\",\n    challenge_expired: \"CHALLENGE_EXPIRED\",\n    db_error: \"SERVER_ERROR\",\n    email_exists: \"EMAIL_EXISTS\",\n    email_not_verified: \"EMAIL_NOT_VERIFIED\",\n    encoding_error: \"SERVER_ERROR\",\n    forbidden: \"FORBIDDEN\",\n    internal_error: \"SERVER_ERROR\",\n    invalid_credentials: \"INVALID_CREDENTIALS\",\n    invalid_signature: \"INVALID_SIGNATURE\",\n    invalid_token: \"INVALID_TOKEN\",\n    invalid_mfa_token: \"INVALID_TOKEN\",\n    not_found: \"NOT_FOUND\",\n    secrets_error: \"SERVER_ERROR\",\n    signup_limit_reached: \"SIGNUP_LIMIT_REACHED\",\n    service_unavailable: \"SERVICE_UNAVAILABLE\",\n    settings_error: \"SERVER_ERROR\",\n    setup_required: \"SETUP_REQUIRED\",\n    token_expired: \"TOKEN_EXPIRED\",\n    unauthenticated: \"UNAUTHORIZED\",\n    unauthorized: \"UNAUTHORIZED\",\n    validation_failed: \"VALIDATION_ERROR\",\n    wallet_exists: \"WALLET_EXISTS\"\n  };\n}));\nfunction yt() {\n  clearTimeout(Do), Do = void 0;\n  const e = Date.now();\n  let r = 1 / 0;\n  for (const [o, t] of Te) t.expiresAt <= e ? Te.delete(o) : r = Math.min(r, t.expiresAt);\n  for (; Te.size > 256; ) {\n    const o = Te.keys().next();\n    o.done || Te.delete(o.value);\n  }\n  Te.size && (Do = setTimeout(yt, Math.min(2147483647, Math.max(1, r - e))));\n}\nfunction Td(e, r, o = {}) {\n  const t = He.get(e);\n  if (t) return t;\n  const i = Te.get(e);\n  if (!o.forceRefresh && i?.value !== void 0 && i.expiresAt > Date.now()) return Promise.resolve(i.value);\n  Te.delete(e);\n  const a = Promise.resolve().then(r).then((s) => {\n    if (He.get(e) === a) {\n      He.delete(e);\n      const d = o.cacheTtlMs ?? 0;\n      d > 0 && Number.isFinite(d) && Te.set(e, {\n        value: s,\n        expiresAt: Date.now() + d\n      }), yt();\n    }\n    return s;\n  }, (s) => {\n    throw He.get(e) === a && He.delete(e), s;\n  });\n  return He.set(e, a), a;\n}\nfunction Id(e) {\n  for (const r of [Te, He]) for (const o of r.keys()) o.startsWith(`${e}\\0`) && r.delete(o);\n  yt();\n}\nfunction Ld(e) {\n  return Object.entries(e ?? {}).sort(([r], [o]) => r.localeCompare(o)).map(([r, o]) => `${r.toLowerCase()}:${o}`).join(`\n`);\n}\nvar Pd, Te, He, Do, zd = R((() => {\n  Pd = 256, Te = /* @__PURE__ */ new Map(), He = /* @__PURE__ */ new Map();\n}));\nfunction Qt(e, r) {\n  if (!r) return e;\n  try {\n    return r(e);\n  } catch (o) {\n    throw new Error(`Response validation failed: ${o instanceof Error ? o.message : \"Invalid response shape\"}`);\n  }\n}\nfunction Md(e, r) {\n  const o = new AbortController();\n  let t = o.signal;\n  if (typeof Request == \"function\") try {\n    new Request(e, { signal: o.signal });\n  } catch (d) {\n    if (d instanceof TypeError && d.message.includes(\"Expected signal\")) t = void 0;\n    else throw d;\n  }\n  let i;\n  const a = new Promise((d, c) => {\n    i = c;\n  }), s = setTimeout(() => {\n    t && o.abort();\n    const d = /* @__PURE__ */ new Error(\"Request timed out\");\n    d.name = \"AbortError\", i(d);\n  }, r);\n  return {\n    signal: t,\n    timedOut: a,\n    cancel: () => clearTimeout(s)\n  };\n}\nasync function Od(e, r, o, t) {\n  const i = Md(e, o);\n  try {\n    return await Promise.race([fetch(e, {\n      ...r,\n      ...i.signal ? { signal: i.signal } : {}\n    }).then(t), i.timedOut]);\n  } finally {\n    i.cancel();\n  }\n}\nfunction Dd(e) {\n  if (typeof e == \"object\" && e !== null && e.retryable) return !0;\n  if (e instanceof Error) {\n    if (e.retryable) return !0;\n    if (e.name === \"AbortError\") return !1;\n    if (e.message.includes(\"fetch\")) return !0;\n  }\n  return !1;\n}\nfunction Ud(e) {\n  return new Promise((r) => setTimeout(r, e));\n}\nvar Zt, en, te, ie = R((() => {\n  vt(), Nd(), zd(), Zt = 1e4, en = 2, te = class {\n    baseUrl;\n    timeoutMs;\n    retryAttempts;\n    getAccessToken;\n    constructor(e) {\n      this.baseUrl = e.baseUrl, this.timeoutMs = e.timeoutMs ?? Zt, this.retryAttempts = e.retryAttempts ?? en, this.getAccessToken = e.getAccessToken;\n    }\n    async request(e) {\n      const { method: r, path: o, body: t, credentials: i = \"include\", skipRetry: a = !1, headers: s, validator: d } = e, c = `${this.baseUrl}${o}`, m = a || !(r === \"GET\" || r === \"HEAD\" || r === \"PUT\") ? 1 : this.retryAttempts + 1, l = { ...s ?? {} };\n      t !== void 0 && (l[\"Content-Type\"] = \"application/json\");\n      const p = this.getAccessToken?.() ?? null, f = () => {\n        if (this.getAccessToken && (this.getAccessToken() ?? null) !== p) throw new Error(\"Authentication changed during request\");\n      };\n      p && (l.Authorization = `Bearer ${p}`);\n      const u = Hr();\n      u && (l[\"X-CSRF-Token\"] = u);\n      let g;\n      for (let x = 1; x <= m; x++) try {\n        return f(), await Od(c, {\n          method: r,\n          headers: l,\n          credentials: i,\n          redirect: \"error\",\n          body: t !== void 0 ? JSON.stringify(t) : void 0\n        }, this.timeoutMs, async (k) => {\n          if (f(), k.redirected) throw new Error(\"Unexpected authentication redirect\");\n          const h = k.headers.get(\"content-type\") || \"\";\n          let y = {};\n          if (h.includes(\"application/json\")) {\n            if (k.status !== 204) try {\n              y = await k.json();\n            } catch (b) {\n              throw b instanceof Error && b.name === \"AbortError\" ? b : new Error(\"Invalid JSON response\");\n            }\n          } else {\n            const b = await k.text();\n            b && (y = { message: h.includes(\"text/html\") || b.trimStart().startsWith(\"<\") ? `Unexpected HTML response (${k.status}). The server may be unavailable.` : `Unexpected non-JSON response (${k.status}).` });\n          }\n          if (f(), !k.ok) throw {\n            isApiError: !0,\n            data: y,\n            status: k.status,\n            retryable: k.status >= 500\n          };\n          return r !== \"GET\" && r !== \"HEAD\" && Id(this.baseUrl), Qt(y, d);\n        });\n      } catch (k) {\n        if (g = k, x < m && Dd(k)) {\n          await Ud(100 * Math.pow(2, x - 1));\n          continue;\n        }\n        throw oi(k), k;\n      }\n      throw g;\n    }\n    async post(e, r, o) {\n      return this.request({\n        method: \"POST\",\n        path: e,\n        body: r,\n        ...o\n      });\n    }\n    async get(e, r) {\n      const { validator: o, ...t } = r ?? {}, i = r?.credentials ?? \"include\", a = this.getAccessToken?.() ?? \"\";\n      return !a && i !== \"omit\" ? this.request({\n        ...t,\n        method: \"GET\",\n        path: e,\n        validator: o\n      }) : Qt(await Td([\n        this.baseUrl,\n        i,\n        a,\n        e,\n        Ld(r?.headers)\n      ].join(\"\\0\"), () => {\n        if ((this.getAccessToken?.() ?? \"\") !== a) throw new Error(\"Authentication changed before request\");\n        return this.request({\n          ...t,\n          method: \"GET\",\n          path: e,\n          validator: void 0\n        });\n      }, {\n        cacheTtlMs: r?.cacheTtlMs ?? 250,\n        forceRefresh: r?.forceRefresh\n      }), o);\n    }\n    async patch(e, r, o) {\n      return this.request({\n        method: \"PATCH\",\n        path: e,\n        body: r,\n        ...o\n      });\n    }\n    async delete(e, r) {\n      return this.request({\n        method: \"DELETE\",\n        path: e,\n        ...r\n      });\n    }\n  };\n}));\nfunction Fd(e) {\n  try {\n    return typeof localStorage > \"u\" ? null : localStorage.getItem(e);\n  } catch {\n    return null;\n  }\n}\nfunction ii(e, r) {\n  try {\n    typeof localStorage < \"u\" && localStorage.setItem(e, r);\n  } catch {\n  }\n}\nfunction qd(e) {\n  try {\n    typeof localStorage < \"u\" && localStorage.removeItem(e);\n  } catch {\n  }\n}\nvar jd = R((() => {\n}));\nasync function Bd(e, r) {\n  const o = Kd(r);\n  if (!o) return;\n  const t = Hd(e, o);\n  if (!t) return;\n  const i = ai(t, o), a = await li(i);\n  if (!a) return;\n  const s = wt(), d = {\n    label: o === \"solana\" ? di(i) : si(i),\n    method: o,\n    idHash: a,\n    updatedAt: (/* @__PURE__ */ new Date()).toISOString(),\n    dismissedIdHashes: s?.idHash === a ? s.dismissedIdHashes : []\n  };\n  ii(Nr, JSON.stringify(d));\n}\nasync function $d(e, r) {\n  const o = wt();\n  if (!o) return null;\n  const t = ai(e, r), i = await li(t);\n  return !i || i === o.idHash || o.dismissedIdHashes.includes(i) ? null : {\n    hint: o,\n    idHash: i,\n    label: r === \"solana\" ? di(t) : si(t)\n  };\n}\nfunction wt() {\n  const e = Fd(Nr);\n  if (!e) return null;\n  try {\n    const r = JSON.parse(e);\n    return typeof r.label != \"string\" || typeof r.method != \"string\" || !ui(r.method) || typeof r.idHash != \"string\" || typeof r.updatedAt != \"string\" || !Array.isArray(r.dismissedIdHashes) || !r.dismissedIdHashes.every((o) => typeof o == \"string\") ? null : {\n      label: r.label,\n      method: r.method,\n      idHash: r.idHash,\n      updatedAt: r.updatedAt,\n      dismissedIdHashes: r.dismissedIdHashes\n    };\n  } catch {\n    return null;\n  }\n}\nfunction Vd(e) {\n  const r = wt();\n  !r || r.dismissedIdHashes.includes(e) || ii(Nr, JSON.stringify({\n    ...r,\n    dismissedIdHashes: [...r.dismissedIdHashes, e],\n    updatedAt: (/* @__PURE__ */ new Date()).toISOString()\n  }));\n}\nfunction Wd() {\n  qd(Nr);\n}\nfunction ai(e, r) {\n  const o = e.trim();\n  return mi.has(r) ? o.toLowerCase() : o;\n}\nfunction si(e) {\n  const [r, o] = e.split(\"@\");\n  return !r || !o ? \"email account\" : `${r[0]}${\"•\".repeat(Math.min(3, Math.max(1, r.length - 1)))}@${o}`;\n}\nfunction di(e) {\n  return e.length <= 10 ? e : `${e.slice(0, 3)}…${e.slice(-3)}`;\n}\nfunction ci(e) {\n  const [, r] = e.split(\".\");\n  if (!r) return null;\n  try {\n    const o = r.replace(/-/g, \"+\").replace(/_/g, \"/\"), t = o.padEnd(Math.ceil(o.length / 4) * 4, \"=\");\n    return JSON.parse(atob(t));\n  } catch {\n    return null;\n  }\n}\nasync function li(e) {\n  try {\n    const r = globalThis.crypto?.subtle;\n    if (!r) return null;\n    const o = await r.digest(\"SHA-256\", new TextEncoder().encode(e));\n    return Array.from(new Uint8Array(o), (t) => t.toString(16).padStart(2, \"0\")).join(\"\");\n  } catch {\n    return null;\n  }\n}\nfunction Hd(e, r) {\n  return r === \"solana\" ? e.walletAddress ?? null : e.email ?? null;\n}\nfunction Kd(e) {\n  return ui(e) ? e : null;\n}\nfunction ui(e) {\n  return e === \"email\" || e === \"password\" || e === \"google\" || e === \"apple\" || e === \"solana\" || e === \"webauthn\";\n}\nvar Nr, mi, po = R((() => {\n  jd(), Nr = \"cedros_last_account\", mi = /* @__PURE__ */ new Set([\n    \"email\",\n    \"password\",\n    \"google\",\n    \"apple\",\n    \"webauthn\"\n  ]);\n}));\nfunction Gd() {\n  const { config: e, _internal: r } = ce(), o = or(), [t, i] = _(!1), [a, s] = _(!1), [d, c] = _(null), [m, l] = _(null), p = M(null), f = M(e), u = M(null), g = M(null), x = M(void 0), k = B(() => new te({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    retryAttempts: e.retryAttempts,\n    getAccessToken: r?.getAccessToken\n  }), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    r?.getAccessToken\n  ]);\n  D(() => {\n    f.current = e;\n  }, [e]);\n  const h = S(async (b) => {\n    const w = p.current;\n    if (!w) return;\n    const A = u.current;\n    if (A) {\n      if (u.current = null, b.state !== A) {\n        const C = {\n          code: \"INVALID_CREDENTIALS\",\n          message: \"Google sign-in response did not match this request. Please try again.\"\n        };\n        c(C), i(!1), p.current = null, w.reject(C);\n        return;\n      }\n      if (b.error) {\n        const C = {\n          code: \"SERVER_ERROR\",\n          message: b.error === \"access_denied\" ? \"Google sign-in was cancelled.\" : \"Unable to sign in with Google. Please try again.\"\n        };\n        c(C), i(!1), p.current = null, w.reject(C);\n        return;\n      }\n      try {\n        const C = await Yd(b);\n        if (C) {\n          const E = await o.requestDeviceAccountLink({\n            identifier: C,\n            method: \"google\",\n            linkExisting: async (N, I) => {\n              try {\n                await k.post(\"/link-oauth\", {\n                  provider: \"google\",\n                  accessToken: b.access_token,\n                  idToken: b.id_token\n                });\n              } catch (L) {\n                throw O(L, \"Unable to link Google to this account. Please try again.\");\n              }\n              return I;\n            }\n          });\n          if (E.action === \"linked\") {\n            if (i(!1), E.response) w.resolve(E.response);\n            else {\n              const N = {\n                code: \"UNKNOWN_ERROR\",\n                message: \"Account linked. Please refresh your session.\"\n              };\n              c(N), w.reject(N);\n            }\n            return;\n          }\n        }\n        r?.assertLoginCurrent();\n        const T = await k.post(\"/google\", {\n          accessToken: b.access_token,\n          idToken: b.id_token,\n          accessCode: x.current || void 0\n        });\n        r?.assertLoginCurrent(), Fe(T), !(\"mfaRequired\" in T) && !Se(T) && Le(T, \"google\", r, f.current.callbacks), i(!1), w.resolve(T);\n      } catch (C) {\n        const T = O(C, \"Unable to sign in with Google. Please try again.\");\n        T.code === \"ACCOUNT_LINK_REQUIRED\" && l(b.access_token ?? null), c(T), i(!1), w.reject(T);\n      } finally {\n        p.current = null, x.current = void 0;\n      }\n    }\n  }, [\n    k,\n    o,\n    r\n  ]), y = S((b) => {\n    const w = p.current;\n    if (!w) return;\n    const A = {\n      code: \"SERVER_ERROR\",\n      message: b.type === \"popup_failed_to_open\" ? \"Google sign-in popup was blocked. Please allow popups for this site.\" : \"Google sign-in was cancelled.\"\n    };\n    c(A), i(!1), u.current = null, p.current = null, w.reject(A);\n  }, []);\n  return D(() => {\n    if (!e.googleClientId) return;\n    let b = !0;\n    return gi.load().then(() => {\n      if (!b) return;\n      const w = window.google?.accounts?.oauth2?.initTokenClient({\n        client_id: e.googleClientId,\n        scope: \"openid email profile\",\n        callback: h,\n        error_callback: y\n      });\n      if (!w) throw new Error(\"Google Sign-In client is unavailable\");\n      g.current = w, s(!0);\n    }).catch(() => {\n      b && c({\n        code: \"SERVER_ERROR\",\n        message: \"Unable to load Google sign-in. Please refresh and try again.\"\n      });\n    }), () => {\n      b = !1, g.current = null, u.current && p.current && (p.current.reject({\n        code: \"LOGIN_FAILED\",\n        message: \"Google sign-in was cancelled.\"\n      }), p.current = null, u.current = null, x.current = void 0, i(!1));\n    };\n  }, [\n    e.googleClientId,\n    h,\n    y\n  ]), {\n    signIn: S(async (b) => {\n      if (x.current = b, !e.googleClientId) {\n        const w = {\n          code: \"VALIDATION_ERROR\",\n          message: \"Google Client ID not configured\"\n        };\n        throw c(w), w;\n      }\n      if (!a) {\n        const w = {\n          code: \"VALIDATION_ERROR\",\n          message: \"Google sign-in is not ready yet. Please wait a moment and try again.\"\n        };\n        throw c(w), w;\n      }\n      if (p.current) {\n        const w = {\n          code: \"VALIDATION_ERROR\",\n          message: \"Google sign-in is already in progress.\"\n        };\n        throw c(w), w;\n      }\n      return i(!0), c(null), new Promise((w, A) => {\n        p.current = {\n          resolve: w,\n          reject: A\n        };\n        const C = crypto.randomUUID();\n        u.current = C;\n        try {\n          const T = g.current;\n          if (!T) throw new Error(\"Google Sign-In client is unavailable\");\n          T.requestAccessToken({ state: C });\n        } catch {\n          y({ type: \"popup_failed_to_open\" });\n        }\n      });\n    }, [\n      e.googleClientId,\n      a,\n      y\n    ]),\n    isLoading: t,\n    isInitialized: a,\n    error: d,\n    clearError: S(() => c(null), []),\n    pendingLinkToken: m,\n    clearPendingLink: S(() => l(null), [])\n  };\n}\nasync function Yd(e) {\n  if (e.id_token) {\n    const r = ci(e.id_token);\n    if (typeof r?.email == \"string\") return r.email;\n  }\n  if (!e.access_token) return null;\n  try {\n    const r = await fetch(\"https://www.googleapis.com/oauth2/v3/userinfo\", { headers: { Authorization: `Bearer ${e.access_token}` } });\n    if (!r.ok) return null;\n    const o = await r.json();\n    return typeof o.email == \"string\" ? o.email : null;\n  } catch {\n    return null;\n  }\n}\nvar gi, Xd = R((() => {\n  ei(), je(), G(), oe(), tr(), ie(), po(), gi = Zn({\n    id: \"google-gsi-script\",\n    src: \"https://accounts.google.com/gsi/client\",\n    label: \"Google Sign-In\",\n    isReady: () => typeof window.google?.accounts?.oauth2?.initTokenClient == \"function\"\n  });\n})), X, le = R((() => {\n  G(), Y(), X = yn(function({ error: r, className: o = \"\", onDismiss: t, autoFocus: i = !1 }) {\n    const a = J(), s = M(null);\n    if (D(() => {\n      r && i && s.current && s.current.focus();\n    }, [r, i]), !r) return null;\n    const d = typeof r == \"string\" ? r : r.message;\n    return /* @__PURE__ */ v(\"div\", {\n      ref: s,\n      className: `cedros-error ${o}`,\n      role: \"alert\",\n      \"aria-live\": \"assertive\",\n      tabIndex: i ? -1 : void 0,\n      children: [\n        /* @__PURE__ */ v(\"svg\", {\n          className: \"cedros-error-icon\",\n          width: \"16\",\n          height: \"16\",\n          viewBox: \"0 0 16 16\",\n          fill: \"none\",\n          \"aria-hidden\": \"true\",\n          children: [\n            /* @__PURE__ */ n(\"circle\", {\n              cx: \"8\",\n              cy: \"8\",\n              r: \"7\",\n              stroke: \"currentColor\",\n              strokeWidth: \"1.5\"\n            }),\n            /* @__PURE__ */ n(\"path\", {\n              d: \"M8 4.5v4\",\n              stroke: \"currentColor\",\n              strokeWidth: \"1.5\",\n              strokeLinecap: \"round\"\n            }),\n            /* @__PURE__ */ n(\"circle\", {\n              cx: \"8\",\n              cy: \"11\",\n              r: \"0.75\",\n              fill: \"currentColor\"\n            })\n          ]\n        }),\n        /* @__PURE__ */ n(\"span\", {\n          className: \"cedros-error-message\",\n          children: d\n        }),\n        t && /* @__PURE__ */ n(\"button\", {\n          type: \"button\",\n          className: \"cedros-error-dismiss\",\n          onClick: t,\n          \"aria-label\": a.common.dismissError,\n          children: /* @__PURE__ */ n(\"svg\", {\n            width: \"14\",\n            height: \"14\",\n            viewBox: \"0 0 14 14\",\n            fill: \"none\",\n            \"aria-hidden\": \"true\",\n            children: /* @__PURE__ */ n(\"path\", {\n              d: \"M10.5 3.5L3.5 10.5M3.5 3.5l7 7\",\n              stroke: \"currentColor\",\n              strokeWidth: \"1.5\",\n              strokeLinecap: \"round\"\n            })\n          })\n        })\n      ]\n    });\n  });\n}));\nfunction Ge(e, r = \"Something went wrong. Please try again.\") {\n  if (e instanceof Error) return e;\n  if (e && typeof e == \"object\" && \"message\" in e) {\n    const o = e.message;\n    if (typeof o == \"string\" && o.trim()) return new Error(o);\n  }\n  return typeof e == \"string\" && e.trim() ? new Error(e) : new Error(r);\n}\nvar Tr = R((() => {\n}));\nfunction pi({ onSuccess: e, onMfaRequired: r, onError: o, className: t = \"\", variant: i = \"default\", size: a = \"md\", disabled: s = !1, accessCode: d }) {\n  const c = J(), { signIn: m, isLoading: l, isInitialized: p, error: f } = Gd(), u = async () => {\n    try {\n      const g = await m(d);\n      \"mfaRequired\" in g ? r?.(g) : await e?.(g);\n    } catch (g) {\n      o?.(Ge(g, \"Unable to sign in with Google. Please try again.\"));\n    }\n  };\n  return /* @__PURE__ */ v(Z, { children: [/* @__PURE__ */ v(\"button\", {\n    type: \"button\",\n    className: `cedros-button ${{\n      default: \"cedros-button-social\",\n      outline: \"cedros-button-social-outline\"\n    }[i]} ${{\n      sm: \"cedros-button-sm\",\n      md: \"cedros-button-md\",\n      lg: \"cedros-button-lg\"\n    }[a]} ${t}`,\n    onClick: u,\n    disabled: s || !p || l,\n    \"aria-busy\": l,\n    \"aria-label\": c.buttons.continueWithGoogle,\n    children: [l ? /* @__PURE__ */ n(W, { size: \"sm\" }) : /* @__PURE__ */ n(io, { className: \"cedros-button-icon\" }), /* @__PURE__ */ n(\"span\", { children: c.buttons.continueWithGoogle })]\n  }), f && (!p || !o) && /* @__PURE__ */ n(X, { error: f })] });\n}\nvar fi = R((() => {\n  Xd(), le(), ee(), gr(), Tr(), Y();\n}));\nfunction Jd() {\n  const { config: e, _internal: r } = ce(), o = or(), [t, i] = _(!1), [a, s] = _(!1), [d, c] = _(null), [m, l] = _(null), p = M(null);\n  D(() => () => {\n    p.current && !p.current.accepted && p.current.controller.abort();\n  }, [e.serverUrl, e.appleClientId]);\n  const f = M(e), u = B(() => new te({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    retryAttempts: e.retryAttempts,\n    getAccessToken: r?.getAccessToken\n  }), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    r?.getAccessToken\n  ]);\n  return D(() => {\n    f.current = e;\n  }, [e]), D(() => {\n    if (!e.appleClientId) return;\n    let g = !0;\n    const x = () => {\n      if (g)\n        try {\n          window.AppleID?.auth?.init({\n            clientId: e.appleClientId,\n            scope: \"name email\",\n            redirectURI: window.location.origin,\n            usePopup: !0\n          }), g && s(!0);\n        } catch {\n          g && c({\n            code: \"SERVER_ERROR\",\n            message: \"Unable to initialize Apple sign-in. Please refresh and try again.\"\n          });\n        }\n    };\n    return hi.load().then(() => {\n      g && x();\n    }).catch(() => {\n      g && c({\n        code: \"SERVER_ERROR\",\n        message: \"Unable to load Apple sign-in. Please refresh and try again.\"\n      });\n    }), () => {\n      g = !1;\n    };\n  }, [e.appleClientId]), {\n    signIn: S(async (g) => {\n      if (!e.appleClientId) {\n        const y = {\n          code: \"VALIDATION_ERROR\",\n          message: \"Apple Client ID not configured\"\n        };\n        throw c(y), y;\n      }\n      if (!a) {\n        const y = {\n          code: \"VALIDATION_ERROR\",\n          message: \"Apple sign-in is not ready yet. Please wait a moment and try again.\"\n        };\n        throw c(y), y;\n      }\n      if (p.current) throw {\n        code: \"VALIDATION_ERROR\",\n        message: \"Apple sign-in is already in progress.\"\n      };\n      const x = {\n        controller: new AbortController(),\n        accepted: !1\n      };\n      p.current = x;\n      const { signal: k } = x.controller;\n      i(!0), c(null);\n      let h;\n      try {\n        const { nonce: y } = await u.post(\"/apple/nonce\", {});\n        k.throwIfAborted();\n        const b = await crypto.subtle.digest(\"SHA-256\", new TextEncoder().encode(y)), w = Array.from(new Uint8Array(b), (z) => z.toString(16).padStart(2, \"0\")).join(\"\");\n        k.throwIfAborted(), window.AppleID.auth.init({\n          clientId: e.appleClientId,\n          scope: \"name email\",\n          redirectURI: window.location.origin,\n          usePopup: !0,\n          nonce: w,\n          state: y\n        });\n        let A = () => {\n        };\n        const C = new Promise((z, P) => {\n          A = () => P(new DOMException(\"Apple sign-in was cancelled.\", \"AbortError\")), k.addEventListener(\"abort\", A, { once: !0 });\n        }), T = (() => {\n          try {\n            return window.AppleID.auth.signIn();\n          } catch (z) {\n            throw k.removeEventListener(\"abort\", A), z;\n          }\n        })(), E = await Promise.race([T, C]).finally(() => k.removeEventListener(\"abort\", A));\n        if (k.throwIfAborted(), E.authorization?.state !== y) throw new Error(\"Apple sign-in response did not match this request\");\n        if (h = E.authorization?.id_token, !h) throw new Error(\"No ID token received from Apple\");\n        x.accepted = !0;\n        const N = E.user?.name ? `${E.user.name.firstName || \"\"} ${E.user.name.lastName || \"\"}`.trim() : void 0, I = Qd(h) ?? E.user?.email ?? null;\n        if (I) {\n          const z = await o.requestDeviceAccountLink({\n            identifier: I,\n            method: \"apple\",\n            linkExisting: async (P, U) => {\n              try {\n                await u.post(\"/link-oauth\", {\n                  provider: \"apple\",\n                  idToken: h,\n                  authorizationCode: E.authorization?.code,\n                  nonce: y\n                });\n              } catch (j) {\n                throw O(j, \"Unable to link Apple to this account. Please try again.\");\n              }\n              return U;\n            }\n          });\n          if (z.action === \"linked\") {\n            if (i(!1), z.response) return z.response;\n            throw {\n              code: \"UNKNOWN_ERROR\",\n              message: \"Account linked. Please refresh your session.\"\n            };\n          }\n        }\n        r?.assertLoginCurrent();\n        const L = await u.post(\"/apple\", {\n          idToken: h,\n          name: N || void 0,\n          nonce: y,\n          accessCode: g || void 0\n        });\n        return r?.assertLoginCurrent(), Fe(L), !(\"mfaRequired\" in L) && !Se(L) && Le(L, \"apple\", r, f.current.callbacks), i(!1), L;\n      } catch (y) {\n        if (k.aborted) throw {\n          code: \"LOGIN_FAILED\",\n          message: \"Apple sign-in was cancelled.\"\n        };\n        if (y.error === \"popup_closed_by_user\") {\n          const w = {\n            code: \"SERVER_ERROR\",\n            message: \"Apple sign-in was cancelled.\"\n          };\n          throw c(w), i(!1), w;\n        }\n        const b = O(y, \"Unable to sign in with Apple. Please try again.\");\n        throw b.code === \"ACCOUNT_LINK_REQUIRED\" && h && l(h), c(b), i(!1), b;\n      } finally {\n        p.current === x && (p.current = null, i(!1));\n      }\n    }, [\n      e.appleClientId,\n      a,\n      u,\n      o,\n      r\n    ]),\n    isLoading: t,\n    isInitialized: a,\n    error: d,\n    clearError: S(() => c(null), []),\n    pendingLinkIdToken: m,\n    clearPendingLink: S(() => l(null), [])\n  };\n}\nfunction Qd(e) {\n  const r = ci(e);\n  return typeof r?.email == \"string\" ? r.email : null;\n}\nvar hi, Zd = R((() => {\n  ei(), je(), G(), oe(), tr(), ie(), po(), hi = Zn({\n    id: \"apple-signin-script\",\n    src: \"https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js\",\n    label: \"Apple Sign In\",\n    isReady: () => typeof window.AppleID?.auth?.init == \"function\" && typeof window.AppleID?.auth?.signIn == \"function\"\n  });\n}));\nfunction ec() {\n  if (typeof window > \"u\" || typeof navigator > \"u\") return !1;\n  const e = navigator.userAgent.toLowerCase(), r = (navigator.platform || \"\").toLowerCase();\n  return !!(/iphone|ipad|ipod/.test(e) || r.includes(\"mac\") || /macintosh/.test(e) || r === \"macintel\" && navigator.maxTouchPoints > 1);\n}\nvar rc = R((() => {\n}));\nfunction bi({ onSuccess: e, onMfaRequired: r, onError: o, className: t = \"\", variant: i = \"default\", size: a = \"md\", disabled: s = !1, hideOnNonApple: d = !1, accessCode: c }) {\n  const m = J(), { signIn: l, isLoading: p, isInitialized: f, error: u } = Jd(), [g] = _(() => ec());\n  if (d && !g) return null;\n  const x = async () => {\n    try {\n      const k = await l(c);\n      \"mfaRequired\" in k ? r?.(k) : await e?.(k);\n    } catch (k) {\n      o?.(Ge(k, \"Unable to sign in with Apple. Please try again.\"));\n    }\n  };\n  return /* @__PURE__ */ v(Z, { children: [/* @__PURE__ */ v(\"button\", {\n    type: \"button\",\n    className: `cedros-button ${{\n      default: \"cedros-button-social\",\n      outline: \"cedros-button-social-outline\"\n    }[i]} ${{\n      sm: \"cedros-button-sm\",\n      md: \"cedros-button-md\",\n      lg: \"cedros-button-lg\"\n    }[a]} ${t}`,\n    onClick: x,\n    disabled: s || !f || p,\n    \"aria-busy\": p,\n    \"aria-label\": m.buttons.continueWithApple,\n    children: [p ? /* @__PURE__ */ n(W, { size: \"sm\" }) : /* @__PURE__ */ n(ao, { className: \"cedros-button-icon\" }), /* @__PURE__ */ n(\"span\", { children: m.buttons.continueWithApple })]\n  }), u && (!f || !o) && /* @__PURE__ */ n(X, { error: u })] });\n}\nvar vi = R((() => {\n  Zd(), le(), ee(), gr(), rc(), Tr(), Y();\n}));\nfunction Er(e, r = yi) {\n  const o = Array.from(e).length >= 8, t = [{\n    key: \"minLength\",\n    label: r.minLength,\n    met: o\n  }], i = t.reduce((d, c) => d + (c.met ? 1 : 0), 0), a = i === t.length;\n  let s;\n  return a ? s = e.length >= wi ? \"strong\" : \"good\" : s = e.length < 8 ? \"weak\" : \"fair\", {\n    isValid: a,\n    requirements: t,\n    metCount: i,\n    strength: s\n  };\n}\nfunction Kr(e) {\n  if (!e || typeof e != \"string\" || e.length > 254 || e.includes(\" \")) return !1;\n  const r = e.split(\"@\");\n  if (r.length !== 2) return !1;\n  const [o, t] = r;\n  if (!o || o.length > 64 || o.startsWith(\".\") || o.endsWith(\".\") || !t || t.length > 253 || !t.includes(\".\") || t.startsWith(\".\") || t.endsWith(\".\") || t.startsWith(\"-\") || t.endsWith(\"-\")) return !1;\n  for (const a of t.split(\".\")) if (a.startsWith(\"-\") || a.endsWith(\"-\")) return !1;\n  const i = t.split(\".\").pop();\n  return !(!i || i.length < 2 || !/^[a-zA-Z]+$/.test(i) || ki.has(i.toLowerCase()) || !/^[a-zA-Z0-9.-]+$/.test(t) || /[\\x00-\\x1f\\x7f\"(),;:<>[\\]\\\\]/.test(o));\n}\nfunction Uo(e) {\n  return e.length < 43 || e.length > 44 ? !1 : xi.test(e);\n}\nvar yi, wi, ki, xi, Ye = R((() => {\n  yi = {\n    minLength: \"At least 8 characters\",\n    uppercase: \"At least 1 uppercase letter\",\n    lowercase: \"At least 1 lowercase letter\",\n    number: \"At least 1 number\",\n    special: \"At least 1 special character (@$!%*?&#^())\"\n  }, wi = 20, ki = /* @__PURE__ */ new Set([\n    \"con\",\n    \"cmo\",\n    \"ocm\",\n    \"cm\",\n    \"vom\",\n    \"xom\",\n    \"cpm\",\n    \"clm\",\n    \"ney\",\n    \"met\",\n    \"bet\",\n    \"nrt\",\n    \"ogr\",\n    \"rog\",\n    \"prg\",\n    \"irg\",\n    \"edi\",\n    \"rdu\"\n  ]), xi = /^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+$/;\n}));\nfunction _i() {\n  const { config: e, _internal: r } = ce(), [o, t] = _(!1), [i, a] = _(null), s = B(() => new te({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    retryAttempts: e.retryAttempts,\n    getAccessToken: r?.getAccessToken\n  }), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    r?.getAccessToken\n  ]);\n  return {\n    requestChallenge: S(async (d) => {\n      if (!Uo(d)) {\n        const c = {\n          code: \"INVALID_PUBLIC_KEY\",\n          message: \"Invalid Solana public key format\"\n        };\n        throw a(c), c;\n      }\n      t(!0), a(null);\n      try {\n        return await s.post(\"/solana/challenge\", { publicKey: d }, { credentials: \"omit\" });\n      } catch (c) {\n        const m = O(c, \"Unable to start wallet verification. Please try again.\");\n        throw a(m), m;\n      } finally {\n        t(!1);\n      }\n    }, [s]),\n    signIn: S(async (d, c, m, l) => {\n      if (!Uo(d)) {\n        const p = {\n          code: \"INVALID_PUBLIC_KEY\",\n          message: \"Invalid Solana public key format\"\n        };\n        throw a(p), p;\n      }\n      t(!0), a(null);\n      try {\n        r?.assertLoginCurrent();\n        const p = await s.post(\"/solana\", {\n          publicKey: d,\n          signature: c,\n          message: m,\n          accessCode: l || void 0\n        });\n        return r?.assertLoginCurrent(), Fe(p), !(\"mfaRequired\" in p) && !Se(p) && Le(p, \"solana\", r, e.callbacks), p;\n      } catch (p) {\n        const f = O(p, \"Unable to sign in with your wallet. Please try again.\");\n        throw a(f), f;\n      } finally {\n        t(!1);\n      }\n    }, [\n      s,\n      e.callbacks,\n      r\n    ]),\n    linkWallet: S(async (d, c, m) => {\n      if (!Uo(d)) {\n        const l = {\n          code: \"INVALID_PUBLIC_KEY\",\n          message: \"Invalid Solana public key format\"\n        };\n        throw a(l), l;\n      }\n      t(!0), a(null);\n      try {\n        return await s.post(\"/solana/link\", {\n          publicKey: d,\n          signature: c,\n          message: m\n        });\n      } catch (l) {\n        const p = O(l, \"Unable to link this wallet to your account. Please try again.\");\n        throw a(p), p;\n      } finally {\n        t(!1);\n      }\n    }, [s]),\n    isLoading: o,\n    error: i,\n    clearError: S(() => a(null), [])\n  };\n}\nvar oc = R((() => {\n  je(), oe(), ie(), Ye();\n}));\nfunction Gr(e) {\n  if (!e || typeof e != \"object\") return !1;\n  const r = e;\n  return typeof r.connect == \"function\" || typeof r.signMessage == \"function\" || typeof r.signTransaction == \"function\" || \"isConnected\" in r;\n}\nfunction Ai() {\n  if (typeof navigator > \"u\") return !1;\n  const e = navigator.userAgent, r = \"brave\" in navigator;\n  return /Android/i.test(e) && /Chrome\\/\\d+/.test(e) && !r;\n}\nfunction tc() {\n  if (typeof window > \"u\") return !1;\n  const e = window;\n  for (const r of kt) {\n    const o = e[r];\n    if (o && typeof o == \"object\" && \"solana\" in o && Gr(o.solana)) return !0;\n  }\n  return !!(Gr(e.solana) || Ai());\n}\nvar kt, xt = R((() => {\n  kt = [\n    \"phantom\",\n    \"solflare\",\n    \"backpack\",\n    \"glow\",\n    \"slope\",\n    \"sollet\",\n    \"coin98\",\n    \"clover\",\n    \"mathWallet\",\n    \"ledger\",\n    \"torus\",\n    \"walletconnect\"\n  ];\n}));\nfunction rn() {\n  if (typeof window > \"u\") return [];\n  const e = window, r = [];\n  for (const o of kt) {\n    const t = e[o];\n    t && typeof t == \"object\" && \"solana\" in t && Gr(t.solana) && r.push({\n      key: o,\n      name: Zo[o] ?? o,\n      icon: Ci[o] ?? et,\n      provider: t.solana\n    });\n  }\n  return r.length === 0 && Gr(e.solana) && r.push({\n    key: \"solana\",\n    name: Zo.solana ?? \"Solana Wallet\",\n    icon: et,\n    provider: e.solana\n  }), r;\n}\nfunction Yr(e) {\n  if (e instanceof Uint8Array) return e;\n  if (e && typeof e == \"object\" && \"signature\" in e && e.signature instanceof Uint8Array) return e.signature;\n  throw new Error(\"Wallet returned invalid signature format\");\n}\nvar Zo, et, Ci, nc = R((() => {\n  xt(), Zo = {\n    phantom: \"Phantom\",\n    solflare: \"Solflare\",\n    backpack: \"Backpack\",\n    glow: \"Glow\",\n    slope: \"Slope\",\n    sollet: \"Sollet\",\n    coin98: \"Coin98\",\n    clover: \"Clover\",\n    mathWallet: \"MathWallet\",\n    ledger: \"Ledger\",\n    torus: \"Torus\",\n    walletconnect: \"WalletConnect\",\n    solana: \"Solana Wallet\"\n  }, et = \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' fill='none' stroke='%236366f1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12V7H5a2 2 0 0 1 0-4h14v4'/%3E%3Cpath d='M3 5v14a2 2 0 0 0 2 2h16v-5'/%3E%3Cpath d='M18 12a2 2 0 0 0 0 4h4v-4Z'/%3E%3C/svg%3E\", Ci = {\n    phantom: \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 128 128'%3E%3Crect width='128' height='128' rx='26' fill='%23AB9FF2'/%3E%3Cpath d='M110.5 64.2c-.3-3-3-5.2-6-4.8-13.6 1.6-25 7.1-33.5 15.9-5.3 5.4-9 11.7-11.3 18.5-1.1 3.3.7 6.9 4.1 7.9 3.3 1.1 6.9-.7 7.9-4.1 1.7-5.1 4.5-9.7 8.3-13.6 6.4-6.6 15-10.7 25.5-12 3-.3 5.2-3 4.8-6l.2-1.8zM110.2 43.8c-.3-3-3-5.2-6-4.8-25.2 3-44.1 18-53.5 39.2-1.3 2.9.1 6.3 3.1 7.6s6.3-.1 7.6-3.1c7.9-17.9 23.8-30.5 45.8-33.1 3-.3 5.2-3 4.8-6l-1.8-1.8zM44.8 44.5c2.9-1.5 4.1-5.1 2.5-8-1.5-2.9-5.1-4.1-8-2.5C24.4 42.1 16 57.9 16 75.8c0 3.3 2.7 6 6 6s6-2.7 6-6c0-14 6.5-26.3 16.8-31.3z' fill='%23FFFDF8'/%3E%3C/svg%3E\",\n    solflare: \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 128 128'%3E%3Crect width='128' height='128' rx='26' fill='%23FC7227'/%3E%3Cpath d='M64 28l28 36-28 36-28-36z' fill='%23fff'/%3E%3C/svg%3E\",\n    backpack: \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 128 128'%3E%3Crect width='128' height='128' rx='26' fill='%23E33E3F'/%3E%3Cpath d='M48 42h32v8H48zM40 54h48v36H40z' fill='%23fff'/%3E%3C/svg%3E\"\n  };\n}));\nasync function ic(e) {\n  if (typeof window > \"u\") return !1;\n  try {\n    const r = await import(\n      /* @vite-ignore */\n      Ei\n    ), o = e?.chains ?? [\"solana:mainnet\"];\n    return r.registerMwa({\n      appIdentity: {\n        name: e?.name,\n        uri: e?.uri,\n        icon: e?.icon\n      },\n      chains: o,\n      authorizationCache: r.createDefaultAuthorizationCache(),\n      chainSelector: r.createDefaultChainSelector(),\n      onWalletNotFound: r.createDefaultWalletNotFoundHandler()\n    }), !0;\n  } catch {\n    return !1;\n  }\n}\nvar Ei, ac = R((() => {\n  Ei = \"@solana-mobile/wallet-standard-mobile\";\n}));\nfunction sc() {\n  return /* @__PURE__ */ n(so, { className: \"cedros-button-icon\" });\n}\nvar dc = R((() => {\n  gr();\n})), cc = /* @__PURE__ */ dt({ SolanaLoginButton: () => uc });\nasync function lc() {\n  const e = \"@solana/wallet-adapter-react\", r = \"@solana/wallet-adapter-react-ui\", o = await import(\n    /* @vite-ignore */\n    e\n  ), t = await import(\n    /* @vite-ignore */\n    r\n  );\n  return {\n    WalletProvider: o.WalletProvider,\n    WalletModalProvider: t.WalletModalProvider,\n    useWallet: o.useWallet,\n    useWalletModal: t.useWalletModal\n  };\n}\nfunction uc(e) {\n  const [r, o] = _(() => rn()), [t, i] = _(null), [a, s] = _(!1), d = !e.walletContext && r.length > 0;\n  if (D(() => {\n    if (e.walletContext) return;\n    const l = () => o(rn());\n    return l(), window.addEventListener(\"load\", l), window.addEventListener(\"focus\", l), () => {\n      window.removeEventListener(\"load\", l), window.removeEventListener(\"focus\", l);\n    };\n  }, [e.walletContext]), D(() => {\n    if (d) return;\n    let l = !1;\n    return lc().then((p) => {\n      l || i(p);\n    }).catch(() => {\n      l || s(!0);\n    }), () => {\n      l = !0;\n    };\n  }, [d]), d) return /* @__PURE__ */ n(mc, {\n    ...e,\n    wallets: r\n  });\n  if (!t)\n    return a && e.hideIfNoWallet !== !1 ? null : /* @__PURE__ */ n(pc, {\n      ...e,\n      isLoading: !a\n    });\n  const { WalletProvider: c, WalletModalProvider: m } = t;\n  return e.walletContext ? /* @__PURE__ */ n(m, { children: /* @__PURE__ */ n(on, {\n    runtime: t,\n    ...e\n  }) }) : /* @__PURE__ */ n(c, {\n    wallets: Si,\n    localStorageKey: \"cedros-walletName\",\n    children: /* @__PURE__ */ n(m, { children: /* @__PURE__ */ n(on, {\n      runtime: t,\n      ...e\n    }) })\n  });\n}\nfunction mc({ wallets: e, onSuccess: r, onMfaRequired: o, onError: t, className: i = \"\", variant: a = \"default\", size: s = \"md\", disabled: d = !1, hideIfNoWallet: c = !0, onLoadingChange: m, accessCode: l }) {\n  const p = J(), { requestChallenge: f, signIn: u, linkWallet: g, isLoading: x } = _i(), k = or(), [h, y] = _(!1), b = e[0] ?? null, w = x || h;\n  D(() => {\n    m?.(w);\n  }, [w, m]);\n  const A = async () => {\n    if (!(d || w || !b)) {\n      y(!0);\n      try {\n        const C = await gc(b, {\n          requestChallenge: f,\n          signIn: u,\n          linkWallet: g\n        }, k, l);\n        C && \"mfaRequired\" in C ? o?.(C) : await r?.(C);\n      } catch (C) {\n        t?.(Ge(C, Jr));\n      } finally {\n        y(!1);\n      }\n    }\n  };\n  return !b && c ? null : /* @__PURE__ */ n(_t, {\n    className: i,\n    variant: a,\n    size: s,\n    disabled: d || w || !b,\n    isLoading: w,\n    label: p.buttons.continueWithSolana,\n    onClick: A\n  });\n}\nasync function gc(e, r, o, t) {\n  const { provider: i } = e, a = (await i.connect())?.publicKey ?? i.publicKey;\n  if (!a) throw new Error(\"Wallet did not return a public key\");\n  const s = a.toBase58(), d = await o.requestDeviceAccountLink({\n    identifier: s,\n    method: \"solana\",\n    linkExisting: async (p, f) => {\n      const u = await r.requestChallenge(s), g = Yr(await i.signMessage(new TextEncoder().encode(u.message)));\n      return await r.linkWallet(s, Xr(g), u.message), f;\n    }\n  });\n  if (d.action === \"linked\") return d.response;\n  const c = await r.requestChallenge(s), m = new TextEncoder().encode(c.message), l = Xr(Yr(await i.signMessage(m)));\n  return r.signIn(s, l, c.message, t);\n}\nfunction on({ runtime: e, onSuccess: r, onMfaRequired: o, onError: t, className: i = \"\", variant: a = \"default\", size: s = \"md\", disabled: d = !1, hideIfNoWallet: c = !0, onLoadingChange: m, walletContext: l, accessCode: p }) {\n  const f = J(), { requestChallenge: u, signIn: g, linkWallet: x, isLoading: k } = _i(), h = or(), y = e.useWallet(), { visible: b, setVisible: w } = e.useWalletModal(), [A, C] = _(!1), T = M(!1), E = M(!1), N = M(!1), I = M(!1), L = l?.connected ?? y.connected, z = l?.connecting ?? y.connecting, P = l?.publicKey ?? y.publicKey, U = l?.signMessage ?? y.signMessage, j = l?.wallet ?? y.wallet, ae = l?.wallets ?? y.wallets, ne = l ? l.select : (V) => y.select(V), ue = l?.connect ?? y.connect, q = ae.filter((V) => V.adapter.readyState === \"Installed\" || V.adapter.readyState === \"Loadable\"), $ = S(async () => {\n    if (!T.current) {\n      if (!P || !U) {\n        t?.(/* @__PURE__ */ new Error(\"Wallet not ready\"));\n        return;\n      }\n      T.current = !0;\n      try {\n        const V = P.toBase58(), me = await h.requestDeviceAccountLink({\n          identifier: V,\n          method: \"solana\",\n          linkExisting: async (re, ge) => {\n            const we = await u(V), Pe = new TextEncoder().encode(we.message), vr = Yr(await U(Pe));\n            return await x(V, Xr(vr), we.message), ge;\n          }\n        });\n        if (me.action === \"linked\") {\n          I.current = !1, await r?.(me.response);\n          return;\n        }\n        const pe = await u(V), fe = new TextEncoder().encode(pe.message), be = Xr(Yr(await U(fe))), ve = await g(V, be, pe.message, p);\n        I.current = !1, \"mfaRequired\" in ve ? o?.(ve) : await r?.(ve);\n      } catch (V) {\n        const me = Ge(V, Jr);\n        I.current = !0, t?.(me);\n      } finally {\n        T.current = !1, C(!1);\n      }\n    }\n  }, [\n    P,\n    U,\n    u,\n    g,\n    x,\n    h,\n    r,\n    o,\n    t,\n    p\n  ]), Q = S(() => {\n    N.current = !1, ue().catch((V) => {\n      t?.(Ge(V, Jr)), C(!1);\n    });\n  }, [ue, t]);\n  D(() => {\n    N.current && j && !L && !z && Q();\n  }, [\n    j,\n    L,\n    z,\n    Q\n  ]), D(() => {\n    A && L && P && U && !T.current && $().catch(() => {\n    });\n  }, [\n    A,\n    L,\n    P,\n    U,\n    $\n  ]), D(() => {\n    b ? E.current = !0 : E.current && (E.current = !1, A && !L && j && !z ? Q() : A && !L && (N.current = !1, C(!1)));\n  }, [\n    b,\n    A,\n    L,\n    j,\n    z,\n    Q\n  ]);\n  const se = async () => {\n    d || k || z || (L && P && U && !I.current ? (C(!0), await $()) : q.length === 1 && !j ? (ne(q[0].adapter.name), C(!0), N.current = !0) : (I.current = !1, j && y.select(null), N.current = !1, w(!0), C(!0)));\n  }, K = k || z || A && !L;\n  return D(() => {\n    m?.(K);\n  }, [K, m]), c && q.length === 0 ? null : /* @__PURE__ */ n(_t, {\n    className: i,\n    variant: a,\n    size: s,\n    disabled: d || K,\n    isLoading: K,\n    label: f.buttons.continueWithSolana,\n    onClick: se\n  });\n}\nfunction pc({ className: e = \"\", variant: r = \"default\", size: o = \"md\", disabled: t = !1, isLoading: i = !0 }) {\n  const a = J();\n  return /* @__PURE__ */ n(_t, {\n    className: e,\n    variant: r,\n    size: o,\n    disabled: t || i,\n    isLoading: i,\n    label: a.buttons.continueWithSolana\n  });\n}\nfunction _t({ className: e, variant: r, size: o, disabled: t, isLoading: i, label: a, onClick: s }) {\n  return /* @__PURE__ */ v(\"button\", {\n    type: \"button\",\n    className: `cedros-button ${hc(r)} ${fc(o)} ${e}`,\n    onClick: s,\n    disabled: t,\n    \"aria-label\": a,\n    children: [i ? /* @__PURE__ */ n(W, { size: \"sm\" }) : /* @__PURE__ */ n(sc, {}), /* @__PURE__ */ n(\"span\", { children: a })]\n  });\n}\nfunction Xr(e) {\n  if (e.length === 0) throw new Error(\"Wallet returned invalid signature\");\n  try {\n    return btoa(String.fromCharCode(...e));\n  } catch {\n    throw new Error(\"Failed to encode signature\");\n  }\n}\nfunction fc(e) {\n  return {\n    sm: \"cedros-button-sm\",\n    md: \"cedros-button-md\",\n    lg: \"cedros-button-lg\"\n  }[e];\n}\nfunction hc(e) {\n  return {\n    default: \"cedros-button-social\",\n    outline: \"cedros-button-social-outline\"\n  }[e];\n}\nvar Si, Jr, bc = R((() => {\n  G(), oc(), tr(), nc(), ac(), xt(), ee(), dc(), Tr(), Y(), Ai() && ic(), Si = [], Jr = \"Unable to sign in with your wallet. Please try again.\";\n}));\nfunction Ri(e) {\n  return /* @__PURE__ */ n(at, {\n    fallback: /* @__PURE__ */ n(vc, { ...e }),\n    children: /* @__PURE__ */ n(Ni, { ...e })\n  });\n}\nfunction vc({ className: e = \"\", variant: r = \"default\", size: o = \"md\" }) {\n  return /* @__PURE__ */ v(\"button\", {\n    type: \"button\",\n    className: `cedros-button ${{\n      default: \"cedros-button-social\",\n      outline: \"cedros-button-social-outline\"\n    }[r]} ${{\n      sm: \"cedros-button-sm\",\n      md: \"cedros-button-md\",\n      lg: \"cedros-button-lg\"\n    }[o]} ${e}`,\n    disabled: !0,\n    \"aria-label\": \"Continue with Solana\",\n    children: [/* @__PURE__ */ n(W, { size: \"sm\" }), /* @__PURE__ */ n(\"span\", { children: \"Continue with Solana\" })]\n  });\n}\nvar Ni, Ti = R((() => {\n  ee(), Ni = st(async () => ({ default: (await Promise.resolve().then(() => (bc(), cc))).SolanaLoginButton }));\n})), Ir, fo = R((() => {\n  ie(), Ir = class {\n    client;\n    constructor(e, r, o, t) {\n      this.client = new te({\n        baseUrl: e,\n        timeoutMs: r,\n        retryAttempts: o,\n        getAccessToken: t\n      });\n    }\n    async listEmails() {\n      try {\n        return (await this.client.get(\"/account/emails\")).emails;\n      } catch (e) {\n        throw O(e, \"Failed to list account emails\");\n      }\n    }\n    async addEmail(e) {\n      try {\n        return (await this.client.post(\"/account/emails\", { email: e })).emails;\n      } catch (r) {\n        throw O(r, \"Failed to add email address\");\n      }\n    }\n    async resendEmail(e) {\n      try {\n        await this.client.post(`/account/emails/${encodeURIComponent(e)}/resend`, {});\n      } catch (r) {\n        throw O(r, \"Failed to resend verification email\");\n      }\n    }\n    async removeEmail(e) {\n      try {\n        return (await this.client.delete(`/account/emails/${encodeURIComponent(e)}`)).emails;\n      } catch (r) {\n        throw O(r, \"Failed to remove email address\");\n      }\n    }\n    async setPrimaryEmail(e) {\n      try {\n        return (await this.client.post(`/account/emails/${encodeURIComponent(e)}/primary`, {})).emails;\n      } catch (r) {\n        throw O(r, \"Failed to set primary email\");\n      }\n    }\n    async verifyEmail(e) {\n      try {\n        await this.client.post(\"/account/emails/verify\", { token: e });\n      } catch (r) {\n        throw O(r, \"Failed to verify email address\");\n      }\n    }\n  };\n}));\nfunction ye(e, r) {\n  if (!e) throw new Error(r);\n}\nfunction yc(e) {\n  return e.replace(/-/g, \"+\").replace(/_/g, \"/\");\n}\nfunction Qr(e) {\n  ye(typeof e == \"string\" && e.length > 0, \"Expected base64url string\");\n  const r = yc(e), o = r + \"=\".repeat((4 - r.length % 4) % 4), t = atob(o), i = new Uint8Array(t.length);\n  for (let a = 0; a < t.length; a++) i[a] = t.charCodeAt(a);\n  return i.buffer;\n}\nfunction sr(e) {\n  const r = new Uint8Array(e);\n  let o = \"\";\n  for (let t = 0; t < r.length; t++) o += String.fromCharCode(r[t]);\n  return btoa(o).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/g, \"\");\n}\nfunction Ii(e) {\n  return ye(typeof e == \"object\" && e !== null, \"Invalid credential descriptor\"), ye(typeof e.type == \"string\", \"Invalid credential descriptor type\"), ye(typeof e.id == \"string\", \"Invalid credential descriptor id\"), {\n    type: e.type,\n    id: Qr(e.id),\n    transports: Array.isArray(e.transports) ? e.transports : void 0\n  };\n}\nfunction wc(e) {\n  return Li.some((r) => r === e);\n}\nfunction tn(e) {\n  ye(e && typeof e == \"object\", \"Missing creation options\");\n  const r = e.publicKey;\n  ye(r && typeof r == \"object\", \"Missing creation options.publicKey\"), ye(typeof r.challenge == \"string\", \"Missing creation challenge\"), ye(typeof r.rp == \"object\" && r.rp !== null, \"Missing rp\"), ye(typeof r.user == \"object\" && r.user !== null, \"Missing user\");\n  const { rp: o, user: t } = r;\n  ye(typeof o.name == \"string\", \"Missing rp.name\"), ye(typeof t.id == \"string\", \"Missing user.id\"), ye(typeof t.name == \"string\", \"Missing user.name\"), ye(typeof t.displayName == \"string\", \"Missing user.displayName\");\n  const i = Array.isArray(r.excludeCredentials) ? r.excludeCredentials.map(Ii) : void 0, a = Array.isArray(r.pubKeyCredParams) ? r.pubKeyCredParams.map((d) => ({\n    type: d.type,\n    alg: d.alg\n  })) : [], s = {\n    challenge: Qr(r.challenge),\n    rp: {\n      name: o.name,\n      id: typeof o.id == \"string\" ? o.id : void 0\n    },\n    user: {\n      id: Qr(t.id),\n      name: t.name,\n      displayName: t.displayName\n    },\n    pubKeyCredParams: a,\n    timeout: typeof r.timeout == \"number\" ? r.timeout : void 0,\n    attestation: typeof r.attestation == \"string\" ? r.attestation : void 0,\n    authenticatorSelection: typeof r.authenticatorSelection == \"object\" && r.authenticatorSelection !== null ? r.authenticatorSelection : void 0,\n    excludeCredentials: i,\n    extensions: typeof r.extensions == \"object\" && r.extensions !== null ? r.extensions : void 0\n  };\n  return s.hints = [\"client-device\"], s;\n}\nfunction kc(e) {\n  ye(e && typeof e == \"object\", \"Missing request options\");\n  const r = e.publicKey;\n  ye(r && typeof r == \"object\", \"Missing request options.publicKey\"), ye(typeof r.challenge == \"string\", \"Missing request challenge\");\n  const o = Array.isArray(r.allowCredentials) ? r.allowCredentials.map(Ii) : void 0, t = {\n    challenge: Qr(r.challenge),\n    rpId: typeof r.rpId == \"string\" ? r.rpId : void 0,\n    timeout: typeof r.timeout == \"number\" ? r.timeout : void 0,\n    userVerification: typeof r.userVerification == \"string\" ? r.userVerification : void 0,\n    allowCredentials: o,\n    extensions: typeof r.extensions == \"object\" && r.extensions !== null ? r.extensions : void 0\n  };\n  return t.hints = [\"client-device\"], t;\n}\nfunction Fo(e) {\n  const r = sr(e.rawId), o = e.response, t = { clientDataJSON: sr(o.clientDataJSON) };\n  if (\"attestationObject\" in o) {\n    const i = o, a = {\n      ...t,\n      attestationObject: sr(i.attestationObject)\n    };\n    if (typeof i.getTransports == \"function\") try {\n      const s = i.getTransports().filter(wc);\n      s.length > 0 && (a.transports = s);\n    } catch {\n    }\n    return {\n      id: e.id,\n      rawId: r,\n      type: e.type,\n      authenticatorAttachment: e.authenticatorAttachment ?? void 0,\n      clientExtensionResults: e.getClientExtensionResults?.() ?? {},\n      response: a\n    };\n  }\n  if (\"authenticatorData\" in o) {\n    const i = o, a = {\n      ...t,\n      authenticatorData: sr(i.authenticatorData),\n      signature: sr(i.signature)\n    };\n    return i.userHandle && (a.userHandle = sr(i.userHandle)), {\n      id: e.id,\n      rawId: r,\n      type: e.type,\n      authenticatorAttachment: e.authenticatorAttachment ?? void 0,\n      clientExtensionResults: e.getClientExtensionResults?.() ?? {},\n      response: a\n    };\n  }\n  throw new Error(\"Unsupported WebAuthn credential response\");\n}\nvar Li, xc = R((() => {\n  Li = [\n    \"ble\",\n    \"hybrid\",\n    \"internal\",\n    \"nfc\",\n    \"usb\"\n  ];\n}));\nfunction _c(e) {\n  if (!e) return !1;\n  const r = e.startsWith(\"[\") && e.endsWith(\"]\") ? e.slice(1, -1) : e;\n  return r.includes(\":\") || /^\\d{1,3}(\\.\\d{1,3}){3}$/.test(r);\n}\nfunction qo(e, r = typeof window < \"u\" ? window.location?.hostname : void 0) {\n  if (!(e instanceof Error)) return null;\n  const o = e.name;\n  return o === \"NotAllowedError\" || o === \"AbortError\" ? {\n    code: \"SERVER_ERROR\",\n    message: \"Passkey operation was cancelled or timed out\"\n  } : o === \"InvalidStateError\" ? {\n    code: \"VALIDATION_ERROR\",\n    message: \"Passkey is not available for this operation\"\n  } : o === \"SecurityError\" ? _c(r) ? {\n    code: \"VALIDATION_ERROR\",\n    message: `Passkeys cannot be used when the site is opened via an IP address (${r}). Open it via http://localhost or an HTTPS domain instead`\n  } : {\n    code: \"VALIDATION_ERROR\",\n    message: \"Passkeys require HTTPS and a correctly configured relying party (WEBAUTHN_RP_ID / WEBAUTHN_RP_ORIGIN)\"\n  } : null;\n}\nvar Ac = R((() => {\n}));\nfunction Cc() {\n  if (typeof window < \"u\") {\n    const e = window.location?.hostname, r = e === \"localhost\" || e === \"127.0.0.1\" || e?.endsWith(\".localhost\");\n    if (window.isSecureContext !== !0 && !r) return !1;\n  }\n  return typeof window < \"u\" && typeof window.PublicKeyCredential < \"u\" && typeof navigator < \"u\" && typeof navigator.credentials < \"u\";\n}\nfunction Pi() {\n  const { config: e, _internal: r } = ce(), o = or(), [t, i] = _(!1), [a, s] = _(null), d = B(() => new te({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    retryAttempts: e.retryAttempts,\n    getAccessToken: r?.getAccessToken\n  }), [\n    r?.getAccessToken,\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts\n  ]), c = B(() => new Ir(e.serverUrl, e.requestTimeout, e.retryAttempts, r?.getAccessToken), [\n    r?.getAccessToken,\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts\n  ]), m = M(null);\n  D(() => () => m.current?.abort(), []);\n  const l = S(() => (m.current?.abort(), m.current = new AbortController(), m.current.signal), []), p = S(() => s(null), []), f = Cc(), u = S(async (k) => {\n    if (!f) {\n      const y = {\n        code: \"VALIDATION_ERROR\",\n        message: \"Passkeys are not supported in this browser\"\n      };\n      throw s(y), y;\n    }\n    const h = l();\n    i(!0), s(null);\n    try {\n      const y = await d.post(\"/webauthn/auth/options\", { email: k?.email });\n      h.throwIfAborted();\n      const b = kc(y.options), w = await navigator.credentials.get({\n        publicKey: b,\n        signal: h\n      });\n      if (h.throwIfAborted(), !w) throw new Error(\"Passkey authentication returned no credential\");\n      r?.assertLoginCurrent();\n      const A = await d.post(\"/webauthn/auth/verify\", {\n        challengeId: y.challengeId,\n        credential: Fo(w)\n      });\n      return h.throwIfAborted(), r?.assertLoginCurrent(), Fe(A), !(\"mfaRequired\" in A) && !Se(A) && Le(A, \"webauthn\", r, e.callbacks), A;\n    } catch (y) {\n      const b = typeof y == \"object\" && y !== null && \"isApiError\" in y ? y.data : void 0;\n      if (b?.code === \"INVALID_CREDENTIALS\" || b?.error === \"invalid_credentials\") {\n        const A = {\n          code: \"INVALID_CREDENTIALS\",\n          message: \"This passkey is not recognized. Try another passkey or sign in another way.\"\n        };\n        throw s(A), A;\n      }\n      const w = qo(y) ?? O(y, \"Unable to sign in with passkey. Please try again.\");\n      throw s(w), w;\n    } finally {\n      i(!1);\n    }\n  }, [\n    d,\n    e.callbacks,\n    r,\n    f,\n    l\n  ]), g = S(async (k) => {\n    if (!f) {\n      const y = {\n        code: \"VALIDATION_ERROR\",\n        message: \"Passkeys are not supported in this browser\"\n      };\n      throw s(y), y;\n    }\n    const h = l();\n    i(!0), s(null);\n    try {\n      const y = await d.post(\"/webauthn/register/options\", {});\n      h.throwIfAborted();\n      const b = tn(y.options), w = await navigator.credentials.create({\n        publicKey: b,\n        signal: h\n      });\n      if (h.throwIfAborted(), !w) throw new Error(\"Passkey registration returned no credential\");\n      const A = await d.post(\"/webauthn/register/verify\", {\n        challengeId: y.challengeId,\n        credential: Fo(w),\n        label: k?.label\n      });\n      if (h.throwIfAborted(), !A.success) throw new Error(\"Passkey registration failed\");\n      return {\n        credentialId: A.credentialId,\n        label: A.label\n      };\n    } catch (y) {\n      const b = qo(y) ?? O(y, \"Unable to register passkey. Please try again.\");\n      throw s(b), b;\n    } finally {\n      i(!1);\n    }\n  }, [\n    d,\n    f,\n    l\n  ]), x = S(async (k) => {\n    if (!f) {\n      const y = {\n        code: \"VALIDATION_ERROR\",\n        message: \"Passkeys are not supported in this browser\"\n      };\n      throw s(y), y;\n    }\n    const h = l();\n    i(!0), s(null);\n    try {\n      if (k?.email) {\n        const C = await o.requestDeviceAccountLink({\n          identifier: k.email,\n          method: \"webauthn\",\n          linkExisting: async (T, E) => (await g({ label: k.label }), await c.addEmail(k.email), E)\n        });\n        if (C.action === \"linked\") {\n          if (C.response) return C.response;\n          throw {\n            code: \"UNKNOWN_ERROR\",\n            message: \"Account linked. Please refresh your session.\"\n          };\n        }\n      }\n      const y = await d.post(\"/webauthn/signup/options\", {});\n      h.throwIfAborted();\n      const b = tn(y.options), w = await navigator.credentials.create({\n        publicKey: b,\n        signal: h\n      });\n      if (h.throwIfAborted(), !w) throw new Error(\"Passkey signup returned no credential\");\n      r?.assertLoginCurrent();\n      const A = await d.post(\"/webauthn/signup/verify\", {\n        challengeId: y.challengeId,\n        credential: Fo(w),\n        name: k?.name,\n        label: k?.label,\n        accessCode: k?.accessCode || void 0\n      });\n      if (h.throwIfAborted(), r?.assertLoginCurrent(), Fe(A), Se(A)) return A;\n      if (Le(A, \"webauthn\", r, e.callbacks), k?.email) try {\n        await c.addEmail(k.email);\n      } catch {\n        s({\n          code: \"SERVER_ERROR\",\n          message: \"Your passkey account was created, but the recovery email could not be linked. Add it from account settings.\"\n        });\n      }\n      return A;\n    } catch (y) {\n      const b = qo(y) ?? O(y, \"Unable to sign up with passkey. Please try again.\");\n      throw s(b), b;\n    } finally {\n      i(!1);\n    }\n  }, [\n    c,\n    l,\n    d,\n    e.callbacks,\n    o,\n    r,\n    f,\n    g\n  ]);\n  return {\n    isSupported: f,\n    isLoading: t,\n    error: a,\n    clearError: p,\n    continueWithPasskey: S(() => u(), [u]),\n    authenticatePasskey: u,\n    registerPasskey: g,\n    signupWithPasskey: x\n  };\n}\nvar zi = R((() => {\n  je(), G(), oe(), tr(), ie(), fo(), xc(), Ac();\n}));\nfunction Mi({ onSuccess: e, onMfaRequired: r, onError: o, className: t = \"\", children: i, disabled: a, accessCode: s, mode: d = \"login\" }) {\n  const c = J(), m = he(), { continueWithPasskey: l, signupWithPasskey: p, isLoading: f, isSupported: u, error: g } = Pi(), x = a || !u || f, k = d === \"register\" ? c.buttons.createPasskeyAccount : c.buttons.continueWithPasskey;\n  return /* @__PURE__ */ v(Z, { children: [\n    /* @__PURE__ */ v(\"button\", {\n      type: \"button\",\n      className: `cedros-button cedros-button-social ${t}`,\n      onClick: async () => {\n        try {\n          const h = d === \"register\" ? await p({ accessCode: s }) : await l();\n          \"mfaRequired\" in h ? r?.(h) : await e?.(h);\n        } catch (h) {\n          o?.(Ge(h, \"Unable to sign in with passkey. Please try again.\"));\n        }\n      },\n      disabled: x,\n      \"aria-disabled\": x,\n      \"aria-busy\": f,\n      \"aria-describedby\": u ? void 0 : m,\n      title: u ? void 0 : c.auth.passkeysUnavailable,\n      children: [f ? /* @__PURE__ */ n(W, { size: \"sm\" }) : /* @__PURE__ */ n(\"span\", {\n        className: \"cedros-social-icon\",\n        \"aria-hidden\": \"true\",\n        children: /* @__PURE__ */ n(Cr, {})\n      }), /* @__PURE__ */ n(\"span\", { children: i ?? k })]\n    }),\n    !u && /* @__PURE__ */ n(\"p\", {\n      id: m,\n      className: \"cedros-form-subtitle\",\n      children: c.auth.passkeysUnavailable\n    }),\n    !o && /* @__PURE__ */ n(X, { error: g })\n  ] });\n}\nvar Oi = R((() => {\n  zi(), ee(), le(), gr(), Tr(), Y();\n}));\nfunction Ec() {\n  return /* @__PURE__ */ n(\"svg\", {\n    width: \"16\",\n    height: \"16\",\n    viewBox: \"0 0 16 16\",\n    fill: \"none\",\n    \"aria-hidden\": \"true\",\n    children: /* @__PURE__ */ n(\"path\", {\n      d: \"M3.5 8.5L6.5 11.5L12.5 4.5\",\n      stroke: \"currentColor\",\n      strokeWidth: \"2\",\n      strokeLinecap: \"round\",\n      strokeLinejoin: \"round\"\n    })\n  });\n}\nfunction Sc() {\n  return /* @__PURE__ */ n(\"svg\", {\n    width: \"16\",\n    height: \"16\",\n    viewBox: \"0 0 16 16\",\n    fill: \"none\",\n    \"aria-hidden\": \"true\",\n    children: /* @__PURE__ */ n(\"circle\", {\n      cx: \"8\",\n      cy: \"8\",\n      r: \"4.25\",\n      stroke: \"currentColor\",\n      strokeWidth: \"1.5\"\n    })\n  });\n}\nfunction Rc({ validation: e, requirementsId: r }) {\n  const o = J(), t = he(), { strength: i, isValid: a, metCount: s, requirements: d } = e, c = d.length, m = c > 0 ? Math.round(s / c * 100) : 0, l = a ? \"true\" : \"false\", p = a ? o.passwordValidation.allRequirementsMet : o.passwordValidation.requirementsProgress.replace(\"{met}\", String(s)).replace(\"{total}\", String(c));\n  return /* @__PURE__ */ v(\"div\", {\n    className: \"cedros-password-meter\",\n    children: [\n      /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-password-strength\",\n        children: [/* @__PURE__ */ n(\"div\", {\n          className: \"cedros-strength-bar\",\n          children: /* @__PURE__ */ n(\"div\", {\n            className: \"cedros-strength-fill\",\n            \"data-valid\": l,\n            style: { width: `${m}%` }\n          })\n        }), /* @__PURE__ */ n(\"span\", {\n          className: \"cedros-strength-label\",\n          \"data-valid\": l,\n          children: o.passwordValidation[i]\n        })]\n      }),\n      /* @__PURE__ */ n(\"p\", {\n        id: t,\n        className: \"cedros-password-requirements-title\",\n        children: o.passwordValidation.requirementsTitle\n      }),\n      /* @__PURE__ */ n(\"ul\", {\n        id: r,\n        className: \"cedros-password-requirements\",\n        \"aria-labelledby\": t,\n        children: d.map((f) => /* @__PURE__ */ v(\"li\", {\n          className: \"cedros-password-requirement\",\n          \"data-met\": f.met ? \"true\" : \"false\",\n          children: [\n            /* @__PURE__ */ n(\"span\", {\n              className: \"cedros-requirement-icon\",\n              children: f.met ? /* @__PURE__ */ n(Ec, {}) : /* @__PURE__ */ n(Sc, {})\n            }),\n            /* @__PURE__ */ n(\"span\", {\n              className: \"cedros-requirement-text\",\n              children: f.label\n            }),\n            /* @__PURE__ */ v(\"span\", {\n              className: \"cedros-sr-only\",\n              children: [\" — \", f.met ? o.passwordValidation.met : o.passwordValidation.notMet]\n            })\n          ]\n        }, f.key))\n      }),\n      /* @__PURE__ */ n(\"span\", {\n        role: \"status\",\n        \"aria-live\": \"polite\",\n        className: \"cedros-sr-only\",\n        children: p\n      })\n    ]\n  });\n}\nvar Nc = R((() => {\n  Y();\n}));\nfunction Di(e, r, o, t = () => {\n}) {\n  if (!e?.animate || window.matchMedia?.(\"(prefers-reduced-motion: reduce)\").matches)\n    return t(), () => {\n    };\n  const i = e.animate(r, {\n    duration: o,\n    easing: \"cubic-bezier(0.16, 1, 0.3, 1)\"\n  });\n  return i.onfinish = t, () => {\n    i.onfinish = null, i.cancel();\n  };\n}\nfunction Ie({ stateKey: e, order: r, children: o, className: t = \"\", focusOnChange: i = !1 }) {\n  const [a, s] = _({\n    key: e,\n    children: o,\n    previous: e\n  }), [d, c] = _(null);\n  a.key !== e ? (c({\n    key: a.key,\n    children: a.children\n  }), s({\n    key: e,\n    children: o,\n    previous: a.key\n  })) : a.children !== o && s({\n    ...a,\n    children: o\n  });\n  const m = S(() => c(null), []), l = r.indexOf(e) >= r.indexOf(a.previous) ? 1 : -1;\n  return /* @__PURE__ */ v(\"div\", {\n    style: {\n      position: \"relative\",\n      width: \"100%\",\n      minWidth: 0\n    },\n    children: [d && /* @__PURE__ */ n(nn, {\n      className: t,\n      direction: l,\n      exiting: !0,\n      onExit: m,\n      children: d.children\n    }, d.key), /* @__PURE__ */ n(nn, {\n      className: t,\n      direction: l,\n      focusOnMount: i && a.previous !== e,\n      entering: a.previous !== e,\n      children: o\n    }, e)]\n  });\n}\nfunction nn({ children: e, className: r, direction: o, exiting: t = !1, entering: i = !1, focusOnMount: a = !1, onExit: s }) {\n  const d = M(null);\n  return D(() => {\n    if (a && !t && d.current?.focus({ preventScroll: !0 }), !(!i && !t))\n      return Di(d.current, t ? [{\n        opacity: 1,\n        transform: \"translateX(0)\"\n      }, {\n        opacity: 0,\n        transform: `translateX(${-o * 18}px)`\n      }] : [{\n        opacity: 0,\n        transform: `translateX(${o * 18}px)`\n      }, {\n        opacity: 1,\n        transform: \"translateX(0)\"\n      }], 180, () => {\n        t && s?.();\n      });\n  }, [\n    o,\n    i,\n    t,\n    a,\n    s\n  ]), /* @__PURE__ */ n(\"div\", {\n    ref: (c) => {\n      d.current = c, c?.toggleAttribute(\"inert\", t);\n    },\n    \"aria-hidden\": t ? !0 : void 0,\n    className: `cedros-directional-panel ${r}`.trim(),\n    tabIndex: a ? -1 : void 0,\n    style: t ? {\n      position: \"absolute\",\n      inset: 0,\n      pointerEvents: \"none\"\n    } : void 0,\n    children: e\n  });\n}\nfunction Tc({ open: e, children: r, className: o = \"\" }) {\n  const [t, i] = _(e);\n  e && !t && i(!0);\n  const a = M(null), s = M(e);\n  return D(() => {\n    const d = s.current !== e;\n    if (s.current = e, !(!t || e && !d))\n      return Di(a.current, e ? [{\n        gridTemplateRows: \"0fr\",\n        opacity: 0\n      }, {\n        gridTemplateRows: \"1fr\",\n        opacity: 1\n      }] : [{\n        gridTemplateRows: \"1fr\",\n        opacity: 1\n      }, {\n        gridTemplateRows: \"0fr\",\n        opacity: 0\n      }], 240, () => {\n        e || i(!1);\n      });\n  }, [e, t]), t ? /* @__PURE__ */ n(\"div\", {\n    ref: a,\n    className: `cedros-collapsible ${o}`.trim(),\n    \"aria-hidden\": !e,\n    style: {\n      gridTemplateRows: e ? \"1fr\" : \"0fr\",\n      opacity: e ? 1 : 0\n    },\n    children: /* @__PURE__ */ n(\"div\", {\n      className: \"cedros-collapsible__inner\",\n      ref: (d) => {\n        d?.toggleAttribute(\"inert\", !e);\n      },\n      children: r\n    })\n  }) : null;\n}\nvar pr = R((() => {\n  G();\n}));\nfunction Re({ label: e, labelAction: r, showStrengthMeter: o = !1, onValidationChange: t, error: i, className: a = \"\", onChange: s, onFocus: d, onBlur: c, value: m, id: l, \"aria-describedby\": p, ...f }) {\n  const u = J(), g = e ?? u.auth.password, [x, k] = _(!1), [h, y] = _(!1), [b, w] = _(null), A = he(), C = l ?? A, T = `${C}-requirements`, E = typeof m == \"string\" && m.length > 0, N = o && (h || E), I = b ?? (o ? Er(typeof m == \"string\" ? m : \"\", u.passwordValidation) : null), L = [\n    p,\n    i ? `${C}-error` : null,\n    N ? T : null\n  ].filter(Boolean).join(\" \"), z = (P) => {\n    const U = P.target.value;\n    if (o || t) {\n      const j = Er(U, u.passwordValidation);\n      w(j), t?.(j);\n    }\n    s?.(P);\n  };\n  return /* @__PURE__ */ v(\"div\", {\n    className: `cedros-password-input ${a}`,\n    children: [\n      /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-label-row\",\n        children: [/* @__PURE__ */ n(\"label\", {\n          htmlFor: C,\n          className: \"cedros-label\",\n          children: g\n        }), r]\n      }),\n      /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-password-wrapper\",\n        children: [/* @__PURE__ */ n(\"input\", {\n          id: C,\n          type: x ? \"text\" : \"password\",\n          className: \"cedros-input\",\n          onChange: z,\n          onFocus: (P) => {\n            y(!0), d?.(P);\n          },\n          onBlur: (P) => {\n            y(!1), c?.(P);\n          },\n          value: m,\n          \"aria-invalid\": i ? \"true\" : void 0,\n          \"aria-describedby\": L || void 0,\n          ...f\n        }), /* @__PURE__ */ n(\"button\", {\n          type: \"button\",\n          className: \"cedros-password-toggle\",\n          onClick: () => k(!x),\n          \"aria-label\": x ? u.auth.hidePassword : u.auth.showPassword,\n          \"aria-pressed\": x,\n          children: x ? /* @__PURE__ */ v(\"svg\", {\n            width: \"20\",\n            height: \"20\",\n            viewBox: \"0 0 20 20\",\n            fill: \"none\",\n            \"aria-hidden\": \"true\",\n            children: [\n              /* @__PURE__ */ n(\"path\", {\n                d: \"M2.5 10s3-6 7.5-6 7.5 6 7.5 6-3 6-7.5 6-7.5-6-7.5-6z\",\n                stroke: \"currentColor\",\n                strokeWidth: \"1.5\"\n              }),\n              /* @__PURE__ */ n(\"circle\", {\n                cx: \"10\",\n                cy: \"10\",\n                r: \"2.5\",\n                stroke: \"currentColor\",\n                strokeWidth: \"1.5\"\n              }),\n              /* @__PURE__ */ n(\"path\", {\n                d: \"M3 17L17 3\",\n                stroke: \"currentColor\",\n                strokeWidth: \"1.5\",\n                strokeLinecap: \"round\"\n              })\n            ]\n          }) : /* @__PURE__ */ v(\"svg\", {\n            width: \"20\",\n            height: \"20\",\n            viewBox: \"0 0 20 20\",\n            fill: \"none\",\n            \"aria-hidden\": \"true\",\n            children: [/* @__PURE__ */ n(\"path\", {\n              d: \"M2.5 10s3-6 7.5-6 7.5 6 7.5 6-3 6-7.5 6-7.5-6-7.5-6z\",\n              stroke: \"currentColor\",\n              strokeWidth: \"1.5\"\n            }), /* @__PURE__ */ n(\"circle\", {\n              cx: \"10\",\n              cy: \"10\",\n              r: \"2.5\",\n              stroke: \"currentColor\",\n              strokeWidth: \"1.5\"\n            })]\n          })\n        })]\n      }),\n      i && /* @__PURE__ */ n(\"p\", {\n        id: `${C}-error`,\n        className: \"cedros-input-error\",\n        children: i\n      }),\n      o && I && /* @__PURE__ */ n(Tc, {\n        open: N,\n        children: /* @__PURE__ */ n(Rc, {\n          validation: I,\n          requirementsId: T\n        })\n      })\n    ]\n  });\n}\nvar nr = R((() => {\n  Ye(), Y(), Nc(), pr();\n}));\nfunction ho(e = {}) {\n  const { maxAttempts: r = 5, windowMs: o = 6e4, showCountdown: t = !1, rateLimitMessage: i } = e, a = M([]), [s, d] = _(!1), [, c] = _(0), m = S(() => {\n    c((h) => h + 1);\n  }, []), l = S(() => {\n    const h = Date.now();\n    a.current = a.current.filter((y) => h - y < o);\n  }, [o]), p = S(() => {\n    l(), d((h) => a.current.length === 0 && h ? !1 : h);\n  }, [l]), f = S(() => (l(), Math.max(0, r - a.current.length)), [l, r]), u = S(() => {\n    if (l(), a.current.length === 0) return 0;\n    const h = a.current[0] + o;\n    return Math.max(0, h - Date.now());\n  }, [l, o]), g = S(() => (l(), a.current.length < r), [l, r]), x = S(() => {\n    if (p(), a.current.length >= r) {\n      const h = u(), y = Math.ceil(h / 1e3);\n      throw new Error(i?.(y) ?? `Too many attempts. Please wait ${y} second${y === 1 ? \"\" : \"s\"} before trying again.`);\n    }\n    a.current.push(Date.now()), d((h) => h || !0), m();\n  }, [\n    p,\n    r,\n    u,\n    i,\n    m\n  ]), k = S(() => {\n    a.current = [], d((h) => h && !1), m();\n  }, [m]);\n  return D(() => {\n    if (!s || !t) return;\n    const h = window.setInterval(() => {\n      p(), m();\n    }, 1e3);\n    return () => {\n      window.clearInterval(h);\n    };\n  }, [\n    s,\n    t,\n    m,\n    p\n  ]), {\n    checkLimit: x,\n    isAllowed: g,\n    getRemainingAttempts: f,\n    getTimeUntilReset: u,\n    reset: k\n  };\n}\nvar bo = R((() => {\n  G();\n}));\nfunction Ic() {\n  const { config: e, _internal: r } = ce(), { t: o, message: t } = Ne(), [i, a] = _(\"idle\"), [s, d] = _(!1), [c, m] = _(null), { checkLimit: l, getRemainingAttempts: p, getTimeUntilReset: f, reset: u } = ho({\n    maxAttempts: 5,\n    windowMs: 12e4,\n    rateLimitMessage: (x) => t(o.errors.rateLimitedWithSeconds, { seconds: x })\n  }), g = B(() => new te({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    retryAttempts: e.retryAttempts\n  }), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts\n  ]);\n  return {\n    state: i,\n    isLoading: s,\n    error: c,\n    verifyTotp: S(async (x, k) => {\n      const h = /^[A-Z0-9]{16}$/i.test(k) || /^[A-Z0-9]{4}(-[A-Z0-9]{4}){3}$/i.test(k);\n      if (!(/^\\d{6}$/.test(k) || h)) {\n        const y = {\n          code: \"VALIDATION_ERROR\",\n          message: o.auth.invalidTotpCode\n        };\n        throw m(y), y;\n      }\n      try {\n        l();\n      } catch (y) {\n        const b = {\n          code: \"RATE_LIMITED\",\n          message: y instanceof Error ? y.message : o.errors.tooManyRequests\n        };\n        throw m(b), b;\n      }\n      d(!0), m(null), a(\"verifying\");\n      try {\n        r?.assertLoginCurrent();\n        const y = await g.post(\"/login/mfa\", {\n          mfaToken: x,\n          code: k\n        });\n        return r?.assertLoginCurrent(), go(y), Le(y, y.method ?? \"email\", r, e.callbacks), a(\"success\"), u(), y;\n      } catch (y) {\n        const b = O(y, o.auth.incorrectVerificationCode, { networkMessage: o.errors.unableToReachServer });\n        throw m(b), a(\"error\"), b;\n      } finally {\n        d(!1);\n      }\n    }, [\n      g,\n      e.callbacks,\n      r,\n      l,\n      u,\n      o.auth,\n      o.errors\n    ]),\n    clearError: S(() => m(null), []),\n    reset: S(() => {\n      m(null), a(\"idle\"), d(!1);\n    }, []),\n    remainingAttempts: p(),\n    timeUntilReset: f()\n  };\n}\nvar Lc = R((() => {\n  je(), oe(), ie(), bo(), Y();\n}));\nfunction Zr({ value: e = \"\", onChange: r, onComplete: o, disabled: t = !1, error: i, autoFocus: a = !1, className: s = \"\" }) {\n  const { t: d, message: c } = Ne(), m = M([]), [l, p] = _(e.padEnd(Ae, \" \")), f = he();\n  D(() => {\n    p(e.padEnd(Ae, \" \"));\n  }, [e]);\n  const u = S((b) => {\n    b >= 0 && b < Ae && m.current[b]?.focus();\n  }, []), g = S((b) => {\n    const w = b.replace(/[^0-9 ]/g, \"\").slice(0, Ae).padEnd(Ae, \" \"), A = w.trimEnd();\n    p(w), r?.(A), /^\\d{6}$/.test(A) && o?.(A);\n  }, [r, o]), x = S((b, w) => {\n    if (/^\\d{2,6}$/.test(w)) {\n      g(w), u(Math.min(w.length, Ae - 1));\n      return;\n    }\n    if (!/^\\d?$/.test(w)) return;\n    const A = l.split(\"\");\n    A[b] = w || \" \";\n    const C = A.join(\"\");\n    g(C), w && b < Ae - 1 && u(b + 1);\n  }, [\n    l,\n    g,\n    u\n  ]), k = S((b, w) => {\n    if (w.key === \"Backspace\") {\n      w.preventDefault();\n      const A = l.split(\"\");\n      A[b] && A[b] !== \" \" ? (A[b] = \" \", g(A.join(\"\"))) : b > 0 && (A[b - 1] = \" \", g(A.join(\"\")), u(b - 1));\n    } else w.key === \"ArrowLeft\" && b > 0 ? (w.preventDefault(), u(b - 1)) : w.key === \"ArrowRight\" && b < Ae - 1 && (w.preventDefault(), u(b + 1));\n  }, [\n    l,\n    g,\n    u\n  ]), h = S((b) => {\n    b.preventDefault();\n    const w = b.clipboardData.getData(\"text\").replace(/\\D/g, \"\").slice(0, Ae);\n    w && (g(w), u(Math.min(w.length, Ae - 1)));\n  }, [g, u]), y = S((b) => {\n    b.target.select();\n  }, []);\n  return D(() => {\n    a && !t && m.current[0]?.focus();\n  }, [a, t]), /* @__PURE__ */ v(\"div\", {\n    className: `cedros-otp-input ${s}`,\n    children: [/* @__PURE__ */ n(\"div\", {\n      className: \"cedros-otp-slots\",\n      role: \"group\",\n      \"aria-label\": d.auth.oneTimePassword,\n      children: Array.from({ length: Ae }).map((b, w) => /* @__PURE__ */ n(\"input\", {\n        ref: (A) => {\n          m.current[w] = A;\n        },\n        id: `${f}-${w}`,\n        type: \"text\",\n        inputMode: \"numeric\",\n        pattern: \"[0-9]*\",\n        maxLength: Ae,\n        className: `cedros-otp-slot ${i ? \"cedros-otp-slot-error\" : \"\"}`,\n        value: l[w] === \" \" ? \"\" : l[w] || \"\",\n        onChange: (A) => x(w, A.target.value),\n        onKeyDown: (A) => k(w, A),\n        onPaste: h,\n        onFocus: y,\n        disabled: t,\n        autoComplete: w === 0 ? \"one-time-code\" : \"off\",\n        \"aria-label\": c(d.auth.otpDigit, { index: w + 1 }),\n        \"aria-describedby\": i ? `${f}-error` : void 0,\n        \"aria-invalid\": i ? \"true\" : void 0\n      }, w))\n    }), i && /* @__PURE__ */ n(\"p\", {\n      id: `${f}-error`,\n      className: \"cedros-otp-error\",\n      role: \"alert\",\n      children: i\n    })]\n  });\n}\nvar Ae, vo = R((() => {\n  G(), Y(), Ae = 6;\n}));\nfunction qe(e) {\n  if (!e) return null;\n  try {\n    const r = new URL(e), o = r.searchParams.getAll(\"returnTo\");\n    if (o.length !== 1) return null;\n    const t = o[0]?.trim();\n    if (!t?.startsWith(\"/\") || t.startsWith(\"//\") || t.length > Ui) return null;\n    const i = new URL(t, r);\n    return i.origin !== r.origin ? null : `${i.pathname}${i.search}${i.hash}`;\n  } catch {\n    return null;\n  }\n}\nfunction Lr(e) {\n  const r = qe(e);\n  return r ? `/login?returnTo=${encodeURIComponent(r)}` : \"/login\";\n}\nvar Ui, Be = R((() => {\n  Ui = 2048;\n}));\nfunction fr({ mfaToken: e, email: r, onSuccess: o, onBack: t, className: i = \"\" }) {\n  const a = J(), s = he(), d = M(!1), { verifyTotp: c, isLoading: m, error: l, clearError: p } = Ic(), [f, u] = _(\"\"), [g, x] = _(!1), [k, h] = _(\"\"), y = l?.code === \"INVALID_TOKEN\" || l?.code === \"TOKEN_EXPIRED\" || l?.code === \"CHALLENGE_EXPIRED\", b = Lr(typeof window > \"u\" ? void 0 : window.location.href), w = async (T) => {\n    const E = (T || (g ? k : f)).trim();\n    if (!(!E || d.current || y)) {\n      d.current = !0;\n      try {\n        const N = await c(e, E);\n        o?.(N);\n      } catch {\n        g ? h(\"\") : u(\"\");\n      } finally {\n        d.current = !1;\n      }\n    }\n  }, A = (T) => {\n    w(T);\n  }, C = () => {\n    x(!g), p(), u(\"\"), h(\"\");\n  };\n  return /* @__PURE__ */ v(\"div\", {\n    className: `cedros-totp-verify ${i}`,\n    children: [\n      /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-totp-verify-header\",\n        children: [\n          /* @__PURE__ */ v(\"svg\", {\n            className: \"cedros-totp-verify-icon\",\n            width: \"48\",\n            height: \"48\",\n            viewBox: \"0 0 48 48\",\n            fill: \"none\",\n            \"aria-hidden\": \"true\",\n            children: [\n              /* @__PURE__ */ n(\"rect\", {\n                x: \"8\",\n                y: \"20\",\n                width: \"32\",\n                height: \"24\",\n                rx: \"4\",\n                stroke: \"currentColor\",\n                strokeWidth: \"2\"\n              }),\n              /* @__PURE__ */ n(\"path\", {\n                d: \"M16 20V14a8 8 0 1 1 16 0v6\",\n                stroke: \"currentColor\",\n                strokeWidth: \"2\",\n                strokeLinecap: \"round\"\n              }),\n              /* @__PURE__ */ n(\"circle\", {\n                cx: \"24\",\n                cy: \"32\",\n                r: \"3\",\n                fill: \"currentColor\"\n              })\n            ]\n          }),\n          /* @__PURE__ */ n(\"h3\", {\n            className: \"cedros-totp-title\",\n            children: a.auth.twoFactorTitle\n          }),\n          !y && /* @__PURE__ */ n(\"p\", {\n            className: \"cedros-totp-description\",\n            children: g ? a.auth.recoveryCodeDescription : a.auth.authenticatorCodeDescription\n          }),\n          r && /* @__PURE__ */ n(\"p\", {\n            className: \"cedros-totp-email\",\n            children: r\n          })\n        ]\n      }),\n      y ? /* @__PURE__ */ n(X, {\n        error: a.auth.mfaRestartRequired,\n        autoFocus: !0\n      }) : g ? /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-totp-backup-input\",\n        children: [\n          /* @__PURE__ */ n(\"label\", {\n            htmlFor: s,\n            className: \"cedros-label\",\n            children: a.auth.recoveryCode\n          }),\n          /* @__PURE__ */ n(\"input\", {\n            id: s,\n            \"aria-invalid\": l ? !0 : void 0,\n            \"aria-describedby\": l ? `${s}-error` : void 0,\n            spellCheck: !1,\n            autoCapitalize: \"none\",\n            type: \"text\",\n            className: `cedros-input ${l ? \"cedros-input-error\" : \"\"}`,\n            placeholder: a.auth.enterRecoveryCode,\n            value: k,\n            onChange: (T) => {\n              h(T.target.value), p();\n            },\n            onKeyDown: (T) => {\n              T.key === \"Enter\" && k && w();\n            },\n            disabled: m,\n            autoFocus: !0,\n            autoComplete: \"one-time-code\"\n          }),\n          l && /* @__PURE__ */ n(\"p\", {\n            id: `${s}-error`,\n            className: \"cedros-input-error\",\n            role: \"alert\",\n            children: l.message\n          })\n        ]\n      }) : /* @__PURE__ */ n(Zr, {\n        value: f,\n        onChange: (T) => {\n          u(T), p();\n        },\n        onComplete: A,\n        disabled: m,\n        error: l?.message,\n        autoFocus: !0\n      }),\n      !y && /* @__PURE__ */ n(\"button\", {\n        type: \"button\",\n        className: \"cedros-button cedros-button-primary cedros-button-md cedros-button-full\",\n        onClick: () => w(),\n        disabled: m || (g ? !k : !/^\\d{6}$/.test(f)),\n        children: m ? /* @__PURE__ */ v(Z, { children: [/* @__PURE__ */ n(W, { size: \"sm\" }), /* @__PURE__ */ n(\"span\", { children: a.auth.verifying })] }) : a.auth.verify\n      }),\n      /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-totp-verify-footer\",\n        children: [\n          !y && /* @__PURE__ */ n(\"button\", {\n            type: \"button\",\n            className: \"cedros-link cedros-link-sm\",\n            onClick: C,\n            disabled: m,\n            children: g ? a.auth.useAuthenticatorApp : a.auth.useRecoveryCode\n          }),\n          t && /* @__PURE__ */ v(Z, { children: [!y && /* @__PURE__ */ n(\"span\", {\n            className: \"cedros-totp-verify-divider\",\n            children: \"•\"\n          }), /* @__PURE__ */ n(\"button\", {\n            type: \"button\",\n            className: \"cedros-link cedros-link-sm\",\n            onClick: t,\n            disabled: m,\n            children: a.auth.backToLogin\n          })] }),\n          !t && /* @__PURE__ */ n(\"a\", {\n            className: \"cedros-link cedros-link-sm\",\n            href: b,\n            children: a.auth.backToLogin\n          })\n        ]\n      })\n    ]\n  });\n}\nvar hr = R((() => {\n  Lc(), vo(), ee(), Y(), le(), Be();\n})), At, Fi = R((() => {\n  ie(), At = class {\n    client;\n    constructor(e, r, o, t) {\n      this.client = new te({\n        baseUrl: e,\n        timeoutMs: r,\n        retryAttempts: o,\n        getAccessToken: t\n      });\n    }\n    async listCredentials() {\n      try {\n        return (await this.client.get(\"/credentials\")).credentials;\n      } catch (e) {\n        throw O(e, \"Failed to list credentials\");\n      }\n    }\n    async unlinkCredential(e) {\n      try {\n        await this.client.delete(`/credentials/${encodeURIComponent(e)}`);\n      } catch (r) {\n        throw O(r, \"Failed to unlink credential\");\n      }\n    }\n  };\n})), Ct, qi = R((() => {\n  ie(), Ct = class {\n    client;\n    constructor(e, r, o, t) {\n      this.client = new te({\n        baseUrl: e,\n        timeoutMs: r,\n        retryAttempts: o,\n        getAccessToken: t\n      });\n    }\n    async redeem(e, r) {\n      try {\n        return await this.client.post(\"/invite-codes/redeem\", {\n          pendingInviteToken: e,\n          code: r\n        });\n      } catch (o) {\n        throw O(o, \"Unable to apply invite code\");\n      }\n    }\n    async listAccountCodes() {\n      try {\n        return await this.client.get(\"/account/invite-codes\");\n      } catch (e) {\n        throw O(e, \"Unable to load invite codes\");\n      }\n    }\n    async listAdminCodes() {\n      try {\n        return await this.client.get(\"/admin/invite-codes\");\n      } catch (e) {\n        throw O(e, \"Unable to load invite codes\");\n      }\n    }\n    async createAdminCode(e) {\n      try {\n        return await this.client.post(\"/admin/invite-codes\", e);\n      } catch (r) {\n        throw O(r, \"Unable to create invite code\");\n      }\n    }\n    async updateAdminCode(e, r) {\n      try {\n        return await this.client.patch(`/admin/invite-codes/${e}`, r);\n      } catch (o) {\n        throw O(o, \"Unable to update invite code\");\n      }\n    }\n    async deleteAdminCode(e) {\n      try {\n        await this.client.delete(`/admin/invite-codes/${e}`);\n      } catch (r) {\n        throw O(r, \"Unable to delete invite code\");\n      }\n    }\n  };\n}));\nfunction Pc(e) {\n  return \"mfaRequired\" in e && e.mfaRequired === !0;\n}\nfunction yo() {\n  const { config: e, _internal: r } = ce(), o = or(), { t, message: i } = Ne(), [a, s] = _(!1), [d, c] = _(null), m = B(() => ({\n    INVALID_CREDENTIALS: t.errors.invalidCredentials,\n    EMAIL_EXISTS: t.errors.emailExists,\n    EMAIL_NOT_VERIFIED: t.errors.emailNotVerified,\n    INVALID_TOKEN: t.errors.sessionExpired,\n    TOKEN_EXPIRED: t.errors.linkExpired,\n    INVALID_SIGNATURE: t.errors.signatureRejected,\n    CHALLENGE_EXPIRED: t.errors.challengeExpired,\n    RATE_LIMITED: t.errors.tooManyRequests,\n    SIGNUP_LIMIT_REACHED: t.errors.signupLimitReached,\n    STEP_UP_REQUIRED: t.errors.stepUpRequired,\n    SETUP_REQUIRED: t.errors.setupRequired,\n    DISPOSABLE_EMAIL_BLOCKED: t.errors.disposableEmailBlocked,\n    SERVER_ERROR: t.errors.serverError\n  }), [t.errors]), { checkLimit: l, getRemainingAttempts: p, getTimeUntilReset: f, reset: u } = ho({\n    maxAttempts: 5,\n    windowMs: 6e4,\n    rateLimitMessage: (E) => i(t.errors.rateLimitedWithSeconds, { seconds: E })\n  }), g = B(() => new te({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    retryAttempts: e.retryAttempts\n  }), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts\n  ]), x = B(() => new te({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    retryAttempts: e.retryAttempts,\n    getAccessToken: r?.getAccessToken\n  }), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    r?.getAccessToken\n  ]), k = B(() => new Ir(e.serverUrl, e.requestTimeout, e.retryAttempts, r?.getAccessToken), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    r?.getAccessToken\n  ]), h = B(() => new At(e.serverUrl, e.requestTimeout, e.retryAttempts, r?.getAccessToken), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    r?.getAccessToken\n  ]), y = B(() => new Ct(e.serverUrl, e.requestTimeout, e.retryAttempts, r?.getAccessToken), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    r?.getAccessToken\n  ]), b = e.callbacks, w = S(async (E, N) => {\n    if (!Kr(E)) {\n      const I = {\n        code: \"VALIDATION_ERROR\",\n        message: t.errors.invalidEmail\n      };\n      throw c(I), I;\n    }\n    try {\n      l();\n    } catch (I) {\n      const L = {\n        code: \"RATE_LIMITED\",\n        message: I instanceof Error ? I.message : t.errors.tooManyRequests\n      };\n      throw c(L), L;\n    }\n    s(!0), c(null);\n    try {\n      r?.assertLoginCurrent();\n      const I = await g.post(\"/login\", {\n        email: E,\n        password: N\n      });\n      if (r?.assertLoginCurrent(), Fe(I), Pc(I)) return {\n        mfaRequired: !0,\n        mfaToken: I.mfaToken,\n        email: E,\n        userId: I.userId\n      };\n      const L = I;\n      if (L.inviteCodeRequired && L.pendingInviteToken)\n        return u(), {\n          mfaRequired: !1,\n          inviteCodeRequired: !0,\n          pendingInviteToken: L.pendingInviteToken,\n          waitlistEnrollmentAccepted: L.inviteGateHandoffStatus === \"accepted\"\n        };\n      if (Se(L)) throw {\n        code: \"INVALID_TOKEN\",\n        message: t.errors.signInFallback\n      };\n      return Le(L, \"email\", r, b), u(), {\n        mfaRequired: !1,\n        response: L\n      };\n    } catch (I) {\n      const L = O(I, t.errors.signInFallback, {\n        friendlyMessages: m,\n        networkMessage: t.errors.unableToReachServer\n      });\n      throw c(L), L;\n    } finally {\n      s(!1);\n    }\n  }, [\n    g,\n    b,\n    r,\n    l,\n    u,\n    m,\n    t.errors\n  ]), A = S(async (E, N, I, L, z) => {\n    if (!Kr(E)) {\n      const P = {\n        code: \"VALIDATION_ERROR\",\n        message: t.errors.invalidEmail\n      };\n      throw c(P), P;\n    }\n    try {\n      l();\n    } catch (P) {\n      const U = {\n        code: \"RATE_LIMITED\",\n        message: P instanceof Error ? P.message : t.errors.tooManyRequests\n      };\n      throw c(U), U;\n    }\n    s(!0), c(null);\n    try {\n      const P = await o.requestDeviceAccountLink({\n        identifier: E,\n        method: \"email\",\n        linkExisting: async (ae, ne) => (await k.addEmail(E), (await h.listCredentials()).some((ue) => ue.credentialType === \"password\") || await x.post(\"/set-password\", { password: N }), ne)\n      });\n      if (P.action === \"linked\") {\n        if (u(), P.response) return P.response;\n        throw {\n          code: \"UNKNOWN_ERROR\",\n          message: \"Account linked. Please refresh your session.\"\n        };\n      }\n      const U = qe(typeof window > \"u\" ? void 0 : window.location.href);\n      r?.assertLoginCurrent();\n      const j = await g.post(\"/register\", {\n        email: E,\n        password: N,\n        name: I,\n        referral: L,\n        ...z ? { accessCode: z } : {},\n        ...U ? { returnTo: U } : {}\n      });\n      if (r?.assertLoginCurrent(), xd(j), !(\"registrationPending\" in j) && j.authenticated === !1 && !j.inviteCodeRequired && !rr(j)) throw {\n        code: \"INVALID_TOKEN\",\n        message: t.errors.registerFallback\n      };\n      return !(\"registrationPending\" in j) && !Se(j) && Le(j, \"email\", r, b), u(), j;\n    } catch (P) {\n      const U = O(P, t.errors.registerFallback, {\n        friendlyMessages: m,\n        networkMessage: t.errors.unableToReachServer\n      });\n      throw c(U), U;\n    } finally {\n      s(!1);\n    }\n  }, [\n    k,\n    g,\n    x,\n    b,\n    h,\n    o,\n    r,\n    l,\n    u,\n    m,\n    t.errors\n  ]), C = M(/* @__PURE__ */ new WeakMap()), T = S((E) => {\n    try {\n      const N = C.current.get(E);\n      if (!N) throw {\n        code: \"INVALID_TOKEN\",\n        message: t.errors.signInFallback\n      };\n      C.current.delete(E), N();\n    } catch (N) {\n      const I = O(N, t.errors.signInFallback);\n      throw c(I), I;\n    }\n  }, [t.errors.signInFallback]);\n  return {\n    login: w,\n    register: A,\n    redeemInviteCode: S(async (E, N, I) => {\n      s(!0), c(null);\n      try {\n        r?.assertLoginCurrent();\n        const L = await y.redeem(E, N);\n        if (r?.assertLoginCurrent(), Fe(L), !(\"mfaRequired\" in L) && Se(L) && !rr(L)) throw {\n          code: \"INVALID_TOKEN\",\n          message: t.errors.serverError\n        };\n        return \"mfaRequired\" in L || (C.current.set(L, () => {\n          r?.assertLoginCurrent(), !Se(L) && (Le(L, \"email\", r, b), u());\n        }), I?.deferLoginSuccess || T(L)), L;\n      } catch (L) {\n        const z = O(L, \"Unable to apply invite code\", {\n          friendlyMessages: m,\n          networkMessage: t.errors.unableToReachServer\n        });\n        throw c(z), z;\n      } finally {\n        s(!1);\n      }\n    }, [\n      T,\n      y,\n      m,\n      t.errors,\n      r,\n      b,\n      u\n    ]),\n    completeInviteRedemption: T,\n    isLoading: a,\n    error: d,\n    clearError: S(() => c(null), []),\n    remainingAttempts: p(),\n    timeUntilReset: f()\n  };\n}\nvar wo = R((() => {\n  oe(), tr(), ie(), fo(), Fi(), qi(), Ye(), bo(), Y(), Be(), je();\n}));\nfunction zc({ children: e }) {\n  const r = J(), [o, t] = _(null), [i, a] = _(\"choice\"), [s, d] = _(null), [c, m] = _(!1), l = M(null), p = M(0), f = M(r.auth.signInCancelled);\n  D(() => {\n    f.current = r.auth.signInCancelled;\n  }, [r.auth.signInCancelled]), D(() => () => {\n    p.current++, l.current?.reject({\n      code: \"LOGIN_FAILED\",\n      message: f.current\n    }), l.current = null;\n  }, []);\n  const u = S(async (b) => {\n    const w = ++p.current, A = Uc(b.method), C = await $d(b.identifier, A);\n    if (p.current !== w) throw {\n      code: \"LOGIN_FAILED\",\n      message: f.current\n    };\n    return C ? (l.current?.reject({\n      code: \"LOGIN_FAILED\",\n      message: f.current\n    }), new Promise((T, E) => {\n      l.current = {\n        resolve: T,\n        reject: E\n      }, d(null), a(\"choice\"), t({\n        request: b,\n        hint: C.hint,\n        idHash: C.idHash,\n        newLabel: C.label\n      });\n    })) : { action: \"create\" };\n  }, []), g = S((b) => {\n    l.current?.resolve(b), l.current = null, t(null), a(\"choice\"), d(null), m(!1);\n  }, []), x = S(() => {\n    p.current++, l.current?.reject({\n      code: \"LOGIN_FAILED\",\n      message: f.current\n    }), l.current = null, t(null), a(\"choice\"), d(null), m(!1);\n  }, []), k = S(() => {\n    o && (Vd(o.idHash), g({ action: \"create\" }));\n  }, [o, g]), h = S(() => {\n    Wd(), g({ action: \"create\" });\n  }, [g]), y = S(async (b) => {\n    if (!o) return;\n    const w = l.current;\n    m(!0), d(null);\n    try {\n      const A = await o.request.linkExisting(o.hint, b);\n      if (l.current !== w) return;\n      g({\n        action: \"linked\",\n        response: A ?? b\n      });\n    } catch (A) {\n      if (l.current !== w) return;\n      d(Ge(A, \"Unable to link this sign-in method. Please try again.\").message), m(!1);\n    }\n  }, [o, g]);\n  return /* @__PURE__ */ v(bt.Provider, {\n    value: { requestDeviceAccountLink: u },\n    children: [e, o && /* @__PURE__ */ n(Mc, {\n      pending: o,\n      phase: i,\n      error: s,\n      isLinking: c,\n      onChooseLink: () => a(\"signin\"),\n      onCreateSeparate: k,\n      onNotMe: h,\n      onCancel: x,\n      onSignedIn: y\n    }, o.idHash)]\n  });\n}\nfunction Mc({ pending: e, phase: r, error: o, isLinking: t, onChooseLink: i, onCreateSeparate: a, onNotMe: s, onCancel: d, onSignedIn: c }) {\n  const m = M(null), { t: l, message: p } = Ne(), f = he(), u = he();\n  Jn(!0, m, () => {\n    t || d();\n  });\n  const g = p(l.auth.deviceLinkDescription, {\n    account: e.hint.label,\n    method: jo(e.hint.method, l.auth.providers)\n  });\n  return /* @__PURE__ */ n(\"div\", {\n    className: \"cedros-modal-backdrop\",\n    role: \"presentation\",\n    children: /* @__PURE__ */ v(\"div\", {\n      ref: m,\n      className: \"cedros-device-link-dialog\",\n      role: \"alertdialog\",\n      \"aria-modal\": \"true\",\n      \"aria-labelledby\": f,\n      \"aria-describedby\": u,\n      tabIndex: -1,\n      children: [\n        /* @__PURE__ */ n(\"h2\", {\n          id: f,\n          className: \"cedros-device-link-dialog__title\",\n          children: r === \"choice\" ? l.auth.deviceAccountFound : l.auth.deviceLinkSignIn\n        }),\n        /* @__PURE__ */ n(\"p\", {\n          id: u,\n          className: \"cedros-device-link-dialog__description\",\n          children: r === \"choice\" ? g : p(l.auth.deviceLinkSignInDescription, {\n            account: e.hint.label,\n            method: jo(e.hint.method, l.auth.providers)\n          })\n        }),\n        r === \"choice\" ? /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-device-link-dialog__actions\",\n          children: [\n            /* @__PURE__ */ n(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-primary cedros-button-md\",\n              onClick: i,\n              children: l.auth.linkExistingAccount\n            }),\n            /* @__PURE__ */ n(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-outline cedros-button-md\",\n              onClick: a,\n              children: l.auth.createSeparateAccount\n            }),\n            /* @__PURE__ */ n(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-ghost cedros-button-md\",\n              onClick: s,\n              children: l.auth.notMyAccount\n            }),\n            /* @__PURE__ */ n(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-ghost cedros-button-md\",\n              onClick: d,\n              children: l.common.cancel\n            })\n          ]\n        }) : /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-device-link-dialog__signin\",\n          children: [\n            /* @__PURE__ */ n(Oc, {\n              method: e.hint.method,\n              disabled: t,\n              onSignedIn: c\n            }),\n            t && /* @__PURE__ */ v(\"div\", {\n              className: \"cedros-device-link-dialog__status\",\n              role: \"status\",\n              children: [/* @__PURE__ */ n(W, { size: \"sm\" }), /* @__PURE__ */ n(\"span\", { children: p(l.auth.linkingMethod, { method: jo(e.request.method, l.auth.providers) }) })]\n            }),\n            /* @__PURE__ */ n(X, { error: o }),\n            /* @__PURE__ */ n(\"div\", {\n              className: \"cedros-device-link-dialog__secondary-actions\",\n              children: /* @__PURE__ */ n(\"button\", {\n                type: \"button\",\n                className: \"cedros-button cedros-button-outline cedros-button-sm\",\n                onClick: d,\n                disabled: t,\n                children: l.common.back\n              })\n            })\n          ]\n        })\n      ]\n    })\n  });\n}\nfunction Oc({ method: e, disabled: r, onSignedIn: o }) {\n  const [t, i] = _(null);\n  if (t) return /* @__PURE__ */ n(fr, {\n    mfaToken: t,\n    onSuccess: o,\n    onBack: () => i(null)\n  });\n  const a = { onMfaRequired: (s) => i(s.mfaToken) };\n  return e === \"google\" ? /* @__PURE__ */ n(pi, {\n    disabled: r,\n    onSuccess: o,\n    ...a\n  }) : e === \"apple\" ? /* @__PURE__ */ n(bi, {\n    disabled: r,\n    hideOnNonApple: !1,\n    onSuccess: o,\n    ...a\n  }) : e === \"solana\" ? /* @__PURE__ */ n(Ri, {\n    disabled: r,\n    hideIfNoWallet: !1,\n    onSuccess: o,\n    ...a\n  }) : e === \"webauthn\" ? /* @__PURE__ */ n(Mi, {\n    disabled: r,\n    onSuccess: o,\n    ...a\n  }) : /* @__PURE__ */ n(Dc, {\n    disabled: r,\n    onSignedIn: o,\n    onMfaRequired: i\n  });\n}\nfunction Dc({ disabled: e, onSignedIn: r, onMfaRequired: o }) {\n  const t = J(), i = he(), { login: a, isLoading: s, error: d, clearError: c } = yo(), [m, l] = _(\"\"), [p, f] = _(\"\"), [u, g] = _(null), x = async (k) => {\n    k.preventDefault(), g(null);\n    try {\n      const h = await a(m, p);\n      if (h.mfaRequired) {\n        o(h.mfaToken);\n        return;\n      }\n      if (\"inviteCodeRequired\" in h) {\n        g(\"Enter your invite code to finish signing in before linking this method.\");\n        return;\n      }\n      await r(h.response);\n    } catch (h) {\n      g(Ge(h, \"Unable to sign in. Please try again.\").message);\n    }\n  };\n  return /* @__PURE__ */ v(\"form\", {\n    className: \"cedros-device-link-dialog__email-form\",\n    onSubmit: (k) => {\n      x(k);\n    },\n    children: [\n      /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-form-field\",\n        children: [/* @__PURE__ */ n(\"label\", {\n          htmlFor: i,\n          className: \"cedros-label\",\n          children: t.auth.email\n        }), /* @__PURE__ */ n(\"input\", {\n          id: i,\n          type: \"email\",\n          className: \"cedros-input\",\n          value: m,\n          onChange: (k) => l(k.target.value),\n          autoComplete: \"username\",\n          name: \"username\",\n          autoCapitalize: \"none\",\n          spellCheck: !1,\n          disabled: e || s,\n          required: !0\n        })]\n      }),\n      /* @__PURE__ */ n(\"div\", {\n        className: \"cedros-form-field\",\n        children: /* @__PURE__ */ n(Re, {\n          value: p,\n          onChange: (k) => f(k.target.value),\n          disabled: e || s,\n          autoComplete: \"current-password\",\n          name: \"password\",\n          required: !0\n        })\n      }),\n      /* @__PURE__ */ n(X, {\n        error: u || d,\n        onDismiss: () => {\n          g(null), c();\n        }\n      }),\n      /* @__PURE__ */ n(\"button\", {\n        type: \"submit\",\n        className: \"cedros-button cedros-button-primary cedros-button-md\",\n        disabled: e || s || !m || !p,\n        children: s ? /* @__PURE__ */ n(W, { size: \"sm\" }) : t.buttons.signIn\n      })\n    ]\n  });\n}\nfunction Uc(e) {\n  return e === \"instantLink\" ? \"email\" : e;\n}\nfunction jo(e, r) {\n  switch (e) {\n    case \"google\":\n      return r.google;\n    case \"apple\":\n      return r.apple;\n    case \"solana\":\n      return r.solana;\n    case \"webauthn\":\n      return r.passkey;\n    case \"instantLink\":\n      return r.instantLink;\n    default:\n      return r.email;\n  }\n}\nvar Fc = R((() => {\n  G(), Qn(), Y(), fi(), vi(), Ti(), Oi(), nr(), ee(), le(), hr(), wo(), Tr(), po(), tr();\n}));\nfunction ji() {\n  return Object.values(Pr);\n}\nfunction qc(e) {\n  if (typeof e == \"boolean\") return e;\n  if (typeof e != \"string\") return;\n  const r = e.trim().toLowerCase();\n  if (Vi.has(r)) return !0;\n  if (Wi.has(r)) return !1;\n}\nfunction Bi() {\n  return Object.fromEntries(Object.entries(Pr).map(([e, r]) => [e, r.defaultEnabled]));\n}\nfunction jc(e) {\n  const r = {};\n  for (const o of ji()) {\n    const t = qc(e?.[o.envVar]);\n    t !== void 0 && (r[o.name] = t);\n  }\n  return r;\n}\nfunction $i(e = {}) {\n  const r = Bi(), o = jc(e.env), t = { ...r };\n  for (const i of Object.keys(Pr)) t[i] = e.config?.[i] ?? o[i] ?? e.base?.[i] ?? r[i];\n  return t;\n}\nfunction Bc(e, r = {}) {\n  return r.flags ? r.flags[e] ?? Pr[e].defaultEnabled : $i(r)[e];\n}\nfunction $c() {\n  return ji().filter((e) => e.autoDiscoverable).map((e) => e.name);\n}\nfunction Vc() {\n  const e = Bi(), r = {};\n  for (const o of $c()) r[o] = e[o];\n  return r;\n}\nvar Pr, Vi, Wi, Hi = R((() => {\n  Pr = {\n    email: {\n      name: \"email\",\n      description: \"Enable email/password authentication.\",\n      defaultEnabled: !0,\n      status: \"stable\",\n      envVar: \"CEBBWF5_FEATURE_EMAIL\",\n      autoDiscoverable: !0\n    },\n    google: {\n      name: \"google\",\n      description: \"Enable Google OAuth authentication.\",\n      defaultEnabled: !0,\n      status: \"stable\",\n      envVar: \"CEBBWF5_FEATURE_GOOGLE\",\n      autoDiscoverable: !0\n    },\n    apple: {\n      name: \"apple\",\n      description: \"Enable Apple Sign In authentication.\",\n      defaultEnabled: !0,\n      status: \"stable\",\n      envVar: \"CEBBWF5_FEATURE_APPLE\",\n      autoDiscoverable: !0\n    },\n    solana: {\n      name: \"solana\",\n      description: \"Enable Solana wallet authentication.\",\n      defaultEnabled: !0,\n      status: \"stable\",\n      envVar: \"CEBBWF5_FEATURE_SOLANA\",\n      autoDiscoverable: !0\n    },\n    webauthn: {\n      name: \"webauthn\",\n      description: \"Enable passkey authentication.\",\n      defaultEnabled: !0,\n      status: \"stable\",\n      envVar: \"CEBBWF5_FEATURE_WEBAUTHN\",\n      autoDiscoverable: !0\n    },\n    instantLink: {\n      name: \"instantLink\",\n      description: \"Enable passwordless instant-link sign-in.\",\n      defaultEnabled: !1,\n      status: \"experimental\",\n      envVar: \"CEBBWF5_FEATURE_INSTANT_LINK\",\n      autoDiscoverable: !0\n    },\n    walletEnrollment: {\n      name: \"walletEnrollment\",\n      description: \"Enable embedded wallet auto-enrollment after registration.\",\n      defaultEnabled: !0,\n      status: \"stable\",\n      envVar: \"CEBBWF5_FEATURE_WALLET_ENROLLMENT\",\n      autoDiscoverable: !1\n    }\n  }, Vi = /* @__PURE__ */ new Set([\n    \"1\",\n    \"true\",\n    \"yes\",\n    \"on\"\n  ]), Wi = /* @__PURE__ */ new Set([\n    \"0\",\n    \"false\",\n    \"no\",\n    \"off\"\n  ]);\n}));\nfunction Ki() {\n  return typeof window < \"u\" && typeof window.matchMedia == \"function\";\n}\nfunction Wc(e) {\n  if (!Ki()) return () => {\n  };\n  const r = window.matchMedia(Et);\n  return r.addEventListener(\"change\", e), () => r.removeEventListener(\"change\", e);\n}\nfunction Hc() {\n  return Ki() && window.matchMedia(Et).matches;\n}\nfunction Kc() {\n  return wn(Wc, Hc, () => !1);\n}\nvar Et, Gc = R((() => {\n  Et = \"(prefers-color-scheme: dark)\";\n}));\nfunction Yc({ theme: e, themeOverrides: r, applyThemeToDocument: o = !0 }) {\n  const t = Kc(), i = e === \"dark\" || e !== \"light\" && t;\n  return D(() => {\n    if (typeof document > \"u\" || !o) return;\n    const a = document.documentElement;\n    let s = !1;\n    return i ? (xr++, s = !0, a.classList.add(\"cebbwf5-dark\")) : xr === 0 && a.classList.remove(\"cebbwf5-dark\"), () => {\n      s && (xr--, xr === 0 && a.classList.remove(\"cebbwf5-dark\"));\n    };\n  }, [i, o]), {\n    className: i ? \"cebbwf5-dark\" : \"\",\n    style: B(() => {\n      if (!r) return {};\n      const a = {};\n      for (const [s, d] of Object.entries(r)) if (d) {\n        a[s] = d;\n        const c = Gi[s];\n        c && !r[c] && (a[c] = d);\n      }\n      return a;\n    }, [r])\n  };\n}\nvar Gi, xr, Xc = R((() => {\n  G(), Gc(), Gi = { \"--cebbwf5-success-light\": \"--cebbwf5-login-success-soft\" }, xr = 0;\n}));\nfunction Jc(e, r, o) {\n  const [t, i] = _(null), [a, s] = _(), [d, c] = _(), [m, l] = _(), [p, f] = _(), [u, g] = _(), [x, k] = _(), [h, y] = _(r);\n  return D(() => {\n    if (!r) {\n      y(!1);\n      return;\n    }\n    let b = !0, w = !1, A = !1, C = !1, T;\n    y(!0);\n    const E = new te({\n      baseUrl: e,\n      timeoutMs: o ?? 5e3,\n      retryAttempts: 1\n    }), N = async () => {\n      if (!A) {\n        A = !0;\n        try {\n          const z = await E.get(\"/features\", {\n            credentials: \"omit\",\n            cacheTtlMs: 0,\n            forceRefresh: w\n          });\n          if (!b) return;\n          const P = uo(z.signupAvailability);\n          if (C = z.signupAvailability !== void 0 && z.signupAvailability !== null, T !== void 0 && window.clearTimeout(T), T = void 0, P) {\n            const U = Math.min(2147483647, Math.max(0, Date.parse(P.resetsAt) - Date.now() + 250));\n            T = window.setTimeout(() => {\n              b && (k(void 0), N());\n            }, U);\n          }\n          i({\n            email: z.email,\n            google: z.google,\n            apple: z.apple,\n            solana: z.solana,\n            webauthn: z.webauthn,\n            instantLink: z.instantLink\n          }), s(z.googleClientId), c(z.appleClientId), l(z.usernameEnabled), f(z.socialButtonOrder), g(z.signupAccessCodeRequired), k(P);\n        } catch {\n          if (!b || w) return;\n          i(Yi);\n        } finally {\n          A = !1, b && !w && (w = !0, y(!1));\n        }\n      }\n    };\n    N();\n    const I = window.setInterval(() => {\n      C && document.visibilityState === \"visible\" && N();\n    }, 6e4), L = () => {\n      C && document.visibilityState === \"visible\" && N();\n    };\n    return document.addEventListener(\"visibilitychange\", L), () => {\n      b = !1, window.clearInterval(I), T !== void 0 && window.clearTimeout(T), document.removeEventListener(\"visibilitychange\", L);\n    };\n  }, [\n    r,\n    e,\n    o\n  ]), {\n    features: t,\n    googleClientId: a,\n    appleClientId: d,\n    usernameEnabled: m,\n    socialButtonOrder: p,\n    signupAccessCodeRequired: u,\n    signupAvailability: x,\n    isLoading: h\n  };\n}\nvar Yi, Qc = R((() => {\n  G(), Hi(), ie(), mo(), Yi = Vc();\n})), an, sn, Xi, Zc = R((() => {\n  an = \"cedros_tokens\", sn = 6e4, Xi = class {\n    storage;\n    requestedStorage;\n    storageKey;\n    tokens = null;\n    expiresAt = 0;\n    refreshTimer = null;\n    onRefreshNeeded = null;\n    onSessionExpired = null;\n    onRefreshError = null;\n    isDestroyed = !1;\n    sessionExpiredFired = !1;\n    allowWebStorage;\n    generation = 0;\n    constructor(e = \"cookie\", r = an, o = {}) {\n      this.requestedStorage = e, this.storage = e, this.storageKey = r, this.allowWebStorage = o.allowWebStorage ?? !1, this.warnIfLocalStorage(), !this.allowWebStorage && (this.requestedStorage === \"localStorage\" || this.requestedStorage === \"sessionStorage\") && (this.storage = \"memory\"), this.loadFromStorage();\n    }\n    warnIfLocalStorage() {\n      if ((this.requestedStorage === \"localStorage\" || this.requestedStorage === \"sessionStorage\") && typeof console < \"u\") {\n        const e = this.allowWebStorage ? \"\" : \" (web storage disabled by default; set allowWebStorage=true to enable)\";\n        console.warn(\"[cedros-login] SECURITY: Using web storage for token storage. Tokens are vulnerable to XSS attacks.\" + e + \" PRODUCTION RECOMMENDATIONS: (1) Use httpOnly cookie storage instead, (2) If web storage required: implement strict Content-Security-Policy, sanitize all input/output, audit third-party scripts. See https://owasp.org/www-community/attacks/xss/\");\n      }\n    }\n    setRefreshCallback(e) {\n      this.onRefreshNeeded = e, this.scheduleRefresh();\n    }\n    setSessionExpiredCallback(e) {\n      this.onSessionExpired = e;\n    }\n    setRefreshErrorCallback(e) {\n      this.onRefreshError = e;\n    }\n    setTokens(e, r = Date.now() + e.expiresIn * 1e3) {\n      if (!this.isDestroyed) {\n        if (!Number.isFinite(r) || !Number.isFinite(e.expiresIn) || e.expiresIn <= 0 || !e.accessToken || !e.refreshToken) throw new Error(\"Invalid token response structure\");\n        this.generation += 1, this.tokens = e, this.expiresAt = r, this.sessionExpiredFired = !1, this.saveToStorage(), this.scheduleRefresh();\n      }\n    }\n    getAccessToken() {\n      if (this.isDestroyed) return null;\n      const e = this.tokens?.accessToken;\n      return !e || Date.now() >= this.expiresAt ? null : e;\n    }\n    getRefreshToken() {\n      return this.tokens?.refreshToken ?? null;\n    }\n    clear() {\n      this.generation += 1, this.tokens = null, this.expiresAt = 0, this.cancelRefresh(), this.clearStorage();\n    }\n    hasTokens() {\n      return this.tokens !== null && Date.now() < this.expiresAt;\n    }\n    destroy() {\n      this.isDestroyed = !0, this.cancelRefresh(), this.generation += 1, this.onRefreshNeeded = null, this.onSessionExpired = null, this.onRefreshError = null, this.tokens = null;\n    }\n    getTimeUntilExpiry() {\n      return this.tokens ? Math.max(0, this.expiresAt - Date.now()) : 0;\n    }\n    fireSessionExpired() {\n      this.sessionExpiredFired || (this.sessionExpiredFired = !0, this.onSessionExpired?.());\n    }\n    scheduleRefresh() {\n      if (this.cancelRefresh(), !this.tokens || !this.onRefreshNeeded) return;\n      const e = this.getTimeUntilExpiry(), r = Math.max(0, e - Math.min(sn, this.tokens.expiresIn * 500)), o = this.generation;\n      if (r <= 0) {\n        if (this.isDestroyed) return;\n        this.onRefreshNeeded().catch((t) => {\n          if (this.isDestroyed || o !== this.generation) return;\n          const i = t instanceof Error ? t : /* @__PURE__ */ new Error(\"Token refresh failed\");\n          this.onRefreshError?.(i), this.clear(), this.fireSessionExpired();\n        });\n        return;\n      }\n      this.refreshTimer = setTimeout(() => {\n        this.isDestroyed || this.onRefreshNeeded?.().catch((t) => {\n          if (this.isDestroyed || o !== this.generation) return;\n          const i = t instanceof Error ? t : /* @__PURE__ */ new Error(\"Token refresh failed\");\n          this.onRefreshError?.(i), this.clear(), this.fireSessionExpired();\n        });\n      }, r);\n    }\n    cancelRefresh() {\n      this.refreshTimer && (clearTimeout(this.refreshTimer), this.refreshTimer = null);\n    }\n    loadFromStorage() {\n      if (this.storage !== \"memory\" && !(typeof window > \"u\") && !(!this.allowWebStorage && (this.storage === \"localStorage\" || this.storage === \"sessionStorage\")))\n        try {\n          if (this.storage === \"localStorage\" || this.storage === \"sessionStorage\") {\n            const e = this.storage === \"localStorage\" ? localStorage : sessionStorage, r = e.getItem(this.storageKey);\n            if (r) {\n              const o = JSON.parse(r);\n              this.isValidStoredTokenData(o) ? (this.tokens = o.tokens, this.expiresAt = o.expiresAt) : e.removeItem(this.storageKey);\n            }\n          }\n        } catch {\n          if (this.storage === \"localStorage\" || this.storage === \"sessionStorage\") {\n            const e = this.storage === \"localStorage\" ? localStorage : sessionStorage;\n            try {\n              e.removeItem(this.storageKey);\n            } catch {\n            }\n          }\n        }\n    }\n    isValidStoredTokenData(e) {\n      if (typeof e != \"object\" || e === null) return !1;\n      const r = e;\n      if (typeof r.expiresAt != \"number\" || !Number.isFinite(r.expiresAt) || typeof r.tokens != \"object\" || r.tokens === null) return !1;\n      const o = r.tokens;\n      return !(typeof o.accessToken != \"string\" || typeof o.refreshToken != \"string\" || typeof o.expiresIn != \"number\" || !Number.isFinite(o.expiresIn) || o.expiresIn <= 0);\n    }\n    saveToStorage() {\n      if (!(this.storage === \"memory\" || !this.tokens) && !(typeof window > \"u\") && !(!this.allowWebStorage && (this.storage === \"localStorage\" || this.storage === \"sessionStorage\")))\n        try {\n          if (this.storage === \"localStorage\" || this.storage === \"sessionStorage\") {\n            const e = this.storage === \"localStorage\" ? localStorage : sessionStorage, r = {\n              tokens: this.tokens,\n              expiresAt: this.expiresAt\n            };\n            e.setItem(this.storageKey, JSON.stringify(r));\n          }\n        } catch {\n        }\n    }\n    clearStorage() {\n      if (this.storage !== \"memory\" && !(typeof window > \"u\") && !(!this.allowWebStorage && (this.storage === \"localStorage\" || this.storage === \"sessionStorage\")))\n        try {\n          (this.storage === \"localStorage\" || this.storage === \"sessionStorage\") && (this.storage === \"localStorage\" ? localStorage : sessionStorage).removeItem(this.storageKey);\n        } catch {\n        }\n    }\n  };\n}));\nfunction el(e) {\n  return !Ji(e) || typeof e.type != \"string\" ? !1 : e.type === \"logout\" || e.type === \"refresh\" ? !0 : e.type === \"login\" && rl(e.user);\n}\nfunction rl(e) {\n  return Ji(e) && typeof e.id == \"string\" && Je(e.email) && Je(e.name) && Je(e.username) && Je(e.picture) && Je(e.walletAddress) && Array.isArray(e.authMethods) && e.authMethods.every(ol) && typeof e.emailVerified == \"boolean\" && tl(e.totpEnabled) && typeof e.createdAt == \"string\" && typeof e.updatedAt == \"string\" && Je(e.welcomeCompletedAt) && Je(e.referralCode);\n}\nfunction Ji(e) {\n  return typeof e == \"object\" && e !== null;\n}\nfunction ol(e) {\n  return typeof e == \"string\" && Qi.some((r) => r === e);\n}\nfunction Je(e) {\n  return e === void 0 || typeof e == \"string\";\n}\nfunction tl(e) {\n  return e === void 0 || typeof e == \"boolean\";\n}\nvar Bo, Qi, Zi, nl = R((() => {\n  Bo = \"cedros_auth_sync\", Qi = [\n    \"email\",\n    \"google\",\n    \"apple\",\n    \"solana\",\n    \"webauthn\",\n    \"sso\"\n  ], Zi = class {\n    channel = null;\n    callback = null;\n    boundHandler = null;\n    constructor(e) {\n      typeof window < \"u\" && \"BroadcastChannel\" in window && (this.channel = new BroadcastChannel(e ? `${Bo}:${e}` : Bo), this.boundHandler = this.handleMessage.bind(this), this.channel.addEventListener(\"message\", this.boundHandler));\n    }\n    handleMessage(e) {\n      const r = e.data;\n      el(r) && this.callback?.(r);\n    }\n    setCallback(e) {\n      this.callback = e;\n    }\n    broadcastLogin(e) {\n      this.channel?.postMessage({\n        type: \"login\",\n        user: e\n      });\n    }\n    broadcastLogout() {\n      this.channel?.postMessage({ type: \"logout\" });\n    }\n    broadcastRefresh() {\n      this.channel?.postMessage({ type: \"refresh\" });\n    }\n    close() {\n      this.channel && (this.boundHandler && (this.channel.removeEventListener(\"message\", this.boundHandler), this.boundHandler = null), this.channel.close(), this.channel = null), this.callback = null;\n    }\n  };\n}));\nfunction il(e, r = \"cedros_tokens\") {\n  return `cedros_tokens.v2:${JSON.stringify([e.replace(/\\/+$/, \"\"), r])}`;\n}\nvar al = R((() => {\n}));\nasync function sl(e) {\n  const r = ll();\n  if (r) {\n    let o = !1;\n    try {\n      await r.request(ra, () => (o = !0, dn(e, {\n        probeCookieSession: !0,\n        reconcileTokenStorage: !0\n      })));\n      return;\n    } catch (t) {\n      if (o) throw t;\n    }\n  }\n  await dn(e, {\n    probeCookieSession: !1,\n    reconcileTokenStorage: !1\n  });\n}\nasync function dl(e, r) {\n  if (e.current) return e.current;\n  const o = cl();\n  e.current = o.promise, Promise.resolve().then(r).then(o.resolve, (t) => {\n    throw o.reject(t), t;\n  }).catch(() => {\n  });\n  try {\n    await o.promise;\n  } finally {\n    e.current = null;\n  }\n}\nfunction cl() {\n  let e, r;\n  return {\n    promise: new Promise((o, t) => {\n      e = o, r = t;\n    }),\n    resolve: e,\n    reject: r\n  };\n}\nfunction ll() {\n  return typeof navigator > \"u\" ? null : typeof navigator.locks?.request == \"function\" ? navigator.locks : null;\n}\nasync function dn(e, r) {\n  const o = new AbortController(), t = e.requestTimeoutMs ?? 1e4, i = window.setTimeout(() => o.abort(), t);\n  try {\n    if (e.isCurrent?.() === !1 || r.probeCookieSession && e.storage === \"cookie\" && await ul(e.serverUrl, o.signal) || e.isCurrent?.() === !1 || r.reconcileTokenStorage && ml(e)) return;\n    await gl(e, o.signal), e.isCurrent?.() !== !1 && e.onRefresh?.();\n  } finally {\n    window.clearTimeout(i);\n  }\n}\nasync function ul(e, r) {\n  try {\n    return (await fetch(`${e}/user`, {\n      credentials: \"include\",\n      redirect: \"error\",\n      signal: r\n    })).ok;\n  } catch {\n    return !1;\n  }\n}\nfunction ml(e) {\n  const r = hl(e);\n  if (!r) return !1;\n  const o = e.tokenStore.getRefreshToken();\n  return r.tokens.refreshToken === o ? !1 : (e.tokenStore.setTokens(r.tokens, r.expiresAt), r.expiresAt > Date.now());\n}\nasync function gl(e, r) {\n  const o = e.tokenStore.getRefreshToken(), t = await fetch(`${e.serverUrl}/refresh`, {\n    method: \"POST\",\n    headers: pl(o),\n    credentials: \"include\",\n    redirect: \"error\",\n    body: o ? JSON.stringify({ refreshToken: o }) : void 0,\n    signal: r\n  });\n  if (!t.ok) throw new Error(\"Token refresh failed\");\n  await fl(e, t);\n}\nfunction pl(e) {\n  const r = {}, o = Hr();\n  return e && (r[\"Content-Type\"] = \"application/json\"), o && (r[\"X-CSRF-Token\"] = o), Object.keys(r).length > 0 ? r : void 0;\n}\nasync function fl(e, r) {\n  let o;\n  try {\n    o = await r.json();\n  } catch {\n    throw new Error(\"Invalid token response structure\");\n  }\n  if (e.isCurrent?.() === !1) return;\n  const t = St(o) ? o.tokens : void 0;\n  if (t) {\n    if (!ea(t)) throw new Error(\"Invalid token response structure\");\n    e.tokenStore.setTokens(t);\n    return;\n  }\n  if (e.storage !== \"cookie\") throw new Error(\"Token refresh failed\");\n}\nfunction hl(e) {\n  const r = bl(e.storage, e.allowWebStorage);\n  if (!r) return null;\n  try {\n    const o = r.getItem(e.persistKey ?? oa);\n    if (!o) return null;\n    const t = JSON.parse(o);\n    return vl(t) ? t : null;\n  } catch {\n    return console.warn(\"[Cedros Login] Unable to read token storage before refresh\"), null;\n  }\n}\nfunction bl(e, r) {\n  return !r || typeof window > \"u\" ? null : e === \"localStorage\" ? window.localStorage : e === \"sessionStorage\" ? window.sessionStorage : null;\n}\nfunction vl(e) {\n  return St(e) && typeof e.expiresAt == \"number\" && Number.isFinite(e.expiresAt) && ea(e.tokens);\n}\nfunction ea(e) {\n  return St(e) ? typeof e.accessToken == \"string\" && e.accessToken.length > 0 && typeof e.refreshToken == \"string\" && e.refreshToken.length > 0 && typeof e.expiresIn == \"number\" && Number.isFinite(e.expiresIn) && e.expiresIn > 0 : !1;\n}\nfunction St(e) {\n  return typeof e == \"object\" && e !== null;\n}\nvar ra, oa, yl = R((() => {\n  vt(), ra = \"cedros-login:refresh\", oa = \"cedros_tokens\";\n}));\nfunction Or(e) {\n  if (typeof e != \"object\" || e === null) return !1;\n  const r = e;\n  if (typeof r.user != \"object\" || r.user === null) return !1;\n  const o = r.user;\n  return typeof o.id == \"string\" && o.id.length > 0;\n}\nfunction wl({ serverUrl: e, session: r, callbacks: o, requestTimeoutMs: t }) {\n  const i = M(null), a = M(null), s = M(o), d = M(!0), c = M(0), m = M(!1), l = M(null), p = M(() => Promise.resolve()), f = M(() => {\n  });\n  D(() => {\n    s.current = o;\n  }, [o]), D(() => (d.current = !0, () => {\n    d.current = !1, c.current += 1;\n  }), []);\n  const u = B(() => ({\n    storage: r?.storage ?? \"cookie\",\n    autoRefresh: r?.autoRefresh ?? !0,\n    syncTabs: r?.syncTabs ?? !0,\n    persistKey: il(e, r?.persistKey),\n    allowWebStorage: r?.allowWebStorage ?? !1\n  }), [\n    e,\n    r?.storage,\n    r?.autoRefresh,\n    r?.syncTabs,\n    r?.persistKey,\n    r?.allowWebStorage\n  ]), g = u, x = M(g);\n  ur(() => {\n    x.current = g;\n  }, [g]);\n  const [k, h] = _({\n    scope: g,\n    user: null,\n    authState: \"idle\"\n  }), [y, b] = _(0), w = M(0), A = S(() => {\n    w.current += 1, b(w.current);\n  }, []), C = S(() => d.current && x.current === g, [g]), T = S(() => {\n    if (!C() || w.current !== y) throw {\n      code: \"LOGIN_FAILED\",\n      message: \"Sign-in is no longer current. Please try again.\"\n    };\n  }, [C, y]), E = S((q) => {\n    C() && h(($) => ({\n      scope: g,\n      authState: $.scope === g ? $.authState : \"loading\",\n      user: q\n    }));\n  }, [g, C]), N = S((q) => {\n    C() && h(($) => ({\n      scope: g,\n      user: $.scope === g ? $.user : null,\n      authState: q\n    }));\n  }, [g, C]), I = M(null), L = S(() => !C() || I.current !== g ? null : i.current?.getAccessToken() ?? null, [g, C]);\n  D(() => {\n    m.current = !1;\n    const q = new Xi(u.storage, u.persistKey, { allowWebStorage: u.allowWebStorage });\n    return i.current = q, I.current = g, l.current = null, u.autoRefresh && q.setRefreshCallback(() => x.current !== g || I.current !== g ? Promise.resolve() : p.current()), q.setSessionExpiredCallback(() => {\n      x.current === g && I.current === g && f.current();\n    }), u.syncTabs && (a.current = new Zi(e)), () => {\n      c.current += 1, q.destroy(), i.current = null, I.current = null, a.current?.close();\n    };\n  }, [\n    g,\n    e,\n    u.storage,\n    u.syncTabs,\n    u.persistKey,\n    u.allowWebStorage,\n    u.autoRefresh\n  ]);\n  const z = S(async () => {\n    if (!C() || m.current) return;\n    const q = c.current, $ = i.current;\n    await dl(l, () => sl({\n      serverUrl: e,\n      storage: u.storage,\n      persistKey: u.persistKey,\n      allowWebStorage: u.allowWebStorage,\n      requestTimeoutMs: t,\n      tokenStore: {\n        getRefreshToken: () => $?.getRefreshToken() ?? null,\n        setTokens: (Q, se) => $?.setTokens(Q, se)\n      },\n      isCurrent: () => C() && c.current === q && !m.current,\n      onRefresh: () => a.current?.broadcastRefresh()\n    }));\n  }, [\n    C,\n    e,\n    u.storage,\n    u.persistKey,\n    u.allowWebStorage,\n    t\n  ]), P = S(() => {\n    if (u.storage === \"cookie\") return;\n    const q = L();\n    if (q)\n      return { Authorization: `Bearer ${q}` };\n  }, [u.storage, L]), U = S(() => {\n    C() && (c.current += 1, i.current?.clear(), E(null), N(\"unauthenticated\"), s.current?.onSessionExpired?.());\n  }, [\n    C,\n    N,\n    E\n  ]);\n  p.current = z, f.current = U;\n  const j = S((q) => {\n    const $ = new AbortController(), Q = t ?? 1e4, se = window.setTimeout(() => $.abort(), Q), K = {}, V = P();\n    V && Object.assign(K, V);\n    const me = Hr();\n    return me && (K[\"X-CSRF-Token\"] = me), {\n      promise: fetch(q, {\n        credentials: \"include\",\n        redirect: \"error\",\n        headers: Object.keys(K).length > 0 ? K : void 0,\n        signal: $.signal\n      }),\n      cleanup: () => window.clearTimeout(se)\n    };\n  }, [P, t]), ae = S(async () => {\n    if (!C() || m.current) return;\n    const q = c.current, $ = () => C() && c.current === q && !m.current, Q = j(`${e}/user`);\n    try {\n      const se = await Q.promise;\n      if (!$()) return;\n      if (se.ok) {\n        const K = await se.json();\n        if (Or(K)) {\n          if (!$()) return;\n          E(K.user), N(\"authenticated\");\n          return;\n        }\n      }\n      if (se.status === 401 && u.autoRefresh) {\n        try {\n          await z();\n        } catch {\n          if (!$()) return;\n          U();\n          return;\n        }\n        if (!$()) return;\n        const K = j(`${e}/user`);\n        try {\n          const V = await K.promise;\n          if (V.ok) {\n            const me = await V.json();\n            if (Or(me)) {\n              if (!$()) return;\n              E(me.user), N(\"authenticated\");\n              return;\n            }\n          }\n        } finally {\n          K.cleanup();\n        }\n      }\n      if (!$()) return;\n      E(null), N(\"unauthenticated\");\n    } catch {\n      if (!$()) return;\n      E(null), N(\"unauthenticated\");\n    } finally {\n      Q.cleanup();\n    }\n  }, [\n    C,\n    e,\n    u.autoRefresh,\n    z,\n    j,\n    U,\n    N,\n    E\n  ]);\n  D(() => {\n    !a.current || !u.syncTabs || a.current.setCallback((q) => {\n      if (C())\n        switch (q.type) {\n          case \"login\":\n            A(), c.current += 1, m.current = !1, ae();\n            break;\n          case \"logout\":\n            A(), c.current += 1, E(null), N(\"unauthenticated\"), i.current?.clear();\n            break;\n          case \"refresh\":\n            ae();\n            break;\n          default:\n            console.warn(\"[Cedros Login] Unhandled tab sync event:\", q);\n        }\n    });\n  }, [\n    C,\n    A,\n    u.syncTabs,\n    ae,\n    N,\n    E\n  ]), D(() => {\n    const q = new AbortController(), $ = t ?? 1e4, Q = window.setTimeout(() => q.abort(), $);\n    let se = !0;\n    const K = c.current, V = () => C() && se && c.current === K && !m.current;\n    return (async () => {\n      N(\"loading\");\n      try {\n        const pe = await fetch(`${e}/user`, {\n          credentials: \"include\",\n          redirect: \"error\",\n          headers: P(),\n          signal: q.signal\n        });\n        if (!V()) return;\n        if (pe.ok) {\n          const fe = await pe.json();\n          if (Or(fe)) {\n            if (!V()) return;\n            E(fe.user), N(\"authenticated\");\n            return;\n          }\n        }\n        if (pe.status === 401 && u.autoRefresh) {\n          try {\n            await z();\n          } catch {\n            if (!V()) return;\n            U();\n            return;\n          }\n          if (!V()) return;\n          const fe = await fetch(`${e}/user`, {\n            credentials: \"include\",\n            redirect: \"error\",\n            headers: P(),\n            signal: q.signal\n          });\n          if (fe.ok) {\n            const be = await fe.json();\n            if (Or(be)) {\n              if (!V()) return;\n              E(be.user), N(\"authenticated\");\n              return;\n            }\n          }\n        }\n        if (!V()) return;\n        E(null), N(\"unauthenticated\");\n      } catch {\n        if (!V()) return;\n        E(null), N(\"unauthenticated\");\n      }\n    })(), () => {\n      se = !1, window.clearTimeout(Q), q.abort();\n    };\n  }, [\n    C,\n    e,\n    u.autoRefresh,\n    z,\n    P,\n    U,\n    N,\n    E,\n    t\n  ]);\n  const ne = S((q, $) => {\n    T(), $ ? i.current?.setTokens($) : i.current?.clear(), A(), c.current += 1, m.current = !1, E(q), N(\"authenticated\"), d.current && a.current?.broadcastLogin(q);\n  }, [\n    T,\n    A,\n    E,\n    N\n  ]), ue = S(async () => {\n    if (!C()) return;\n    A(), m.current = !0, c.current += 1;\n    const q = c.current, $ = P(), Q = i.current?.getRefreshToken();\n    i.current?.clear(), E(null), N(\"unauthenticated\");\n    const se = new AbortController(), K = window.setTimeout(() => se.abort(), t ?? 1e4);\n    try {\n      const V = Hr();\n      if (!(await fetch(`${e}/logout`, {\n        method: \"POST\",\n        headers: {\n          ...V ? { \"X-CSRF-Token\": V } : {},\n          ...$ ?? {},\n          ...Q ? { \"Content-Type\": \"application/json\" } : {}\n        },\n        body: Q ? JSON.stringify({ refreshToken: Q }) : void 0,\n        credentials: \"include\",\n        redirect: \"error\",\n        signal: se.signal\n      })).ok) throw new Error(\"Session revocation failed\");\n      C() && c.current === q && s.current?.onLogout?.();\n    } finally {\n      window.clearTimeout(K), C() && c.current === q && a.current?.broadcastLogout();\n    }\n  }, [\n    C,\n    A,\n    e,\n    P,\n    E,\n    N,\n    t\n  ]);\n  return {\n    user: k.scope === g ? k.user : null,\n    authState: k.scope === g ? k.authState : \"loading\",\n    assertLoginCurrent: T,\n    handleLoginSuccess: ne,\n    logout: ue,\n    refreshUser: ae,\n    getAccessToken: L\n  };\n}\nvar kl = R((() => {\n  G(), Zc(), nl(), al(), vt(), yl();\n}));\nfunction xl(e) {\n  if (typeof window > \"u\") return !0;\n  try {\n    return new URL(e, window.location.origin).origin === window.location.origin;\n  } catch {\n    return !1;\n  }\n}\nasync function _l({ config: e, user: r, accessToken: o, timeoutMs: t = 5e3, fetchImpl: i = fetch, logger: a = console }) {\n  if (!e.enabled) return {\n    kind: \"skipped\",\n    reason: \"disabled\"\n  };\n  if (!e.orgId) return {\n    kind: \"skipped\",\n    reason: \"missing-org-id\"\n  };\n  if (!o) return {\n    kind: \"skipped\",\n    reason: \"missing-access-token\"\n  };\n  const s = e.endpoint ?? ta;\n  if (!xl(s))\n    return a.warn(\"cedros-login: CRM identify endpoint must be same-origin; request skipped\"), {\n      kind: \"skipped\",\n      reason: \"cross-origin-endpoint\"\n    };\n  const d = e.getEventId ? e.getEventId(r) : `login:${r.id}:${Date.now()}`, c = new AbortController(), m = setTimeout(() => c.abort(), t);\n  try {\n    const l = await i(s, {\n      method: \"POST\",\n      credentials: \"include\",\n      headers: {\n        \"Content-Type\": \"application/json\",\n        Authorization: `Bearer ${o}`,\n        \"x-cedros-org-id\": e.orgId\n      },\n      body: JSON.stringify({ eventId: d }),\n      signal: c.signal\n    });\n    if (l.status === 428)\n      return a.debug(\"cedros-login: CRM identify endpoint not configured (428); skipping further attempts\"), { kind: \"precondition-failed\" };\n    if (!l.ok)\n      return a.warn(`cedros-login: CRM identify failed with HTTP ${l.status}`), {\n        kind: \"failed\",\n        status: l.status\n      };\n    const p = await l.json().catch(() => null), f = !!p?.identified, u = !!p?.linkedAnalyticsVisitor, g = {\n      identified: f,\n      profileId: typeof p?.profileId == \"string\" ? p.profileId : void 0,\n      linkedAnalyticsVisitor: u\n    };\n    return u ? {\n      kind: \"identified\",\n      response: g\n    } : (a.debug(\"cedros-login: CRM identify succeeded without visitor link (cedros_vid cookie missing)\"), {\n      kind: \"visitor-not-linked\",\n      response: g\n    });\n  } catch (l) {\n    return a.warn(\"cedros-login: CRM identify request errored\", l), {\n      kind: \"failed\",\n      error: l\n    };\n  } finally {\n    clearTimeout(m);\n  }\n}\nvar ta, Al = R((() => {\n  ta = \"/site/crm/identify-login\";\n}));\nfunction na({ config: e, children: r }) {\n  const [o, t] = _(null), [i, a] = _(!1), s = M(e.callbacks);\n  s.current = e.callbacks;\n  const d = M({\n    onLoginSuccess: (re, ge) => {\n      Bd(re, ge), s.current?.onLoginSuccess?.(re, ge);\n    },\n    onLoginError: (...re) => s.current?.onLoginError?.(...re),\n    onLogout: () => s.current?.onLogout?.(),\n    onSessionExpired: () => s.current?.onSessionExpired?.()\n  }), c = e.features === void 0 || e.features === \"auto\", m = e.features === \"auto\", { features: l, googleClientId: p, appleClientId: f, socialButtonOrder: u, signupAccessCodeRequired: g, signupAvailability: x, isLoading: k } = Jc(e.serverUrl, c, e.requestTimeout), h = c ? void 0 : e.features, y = B(() => $i({\n    config: h,\n    env: e.featureFlagEnv,\n    base: c ? l ?? void 0 : void 0\n  }), [\n    e.featureFlagEnv,\n    h,\n    c,\n    l\n  ]), b = B(() => ({\n    ...e,\n    callbacks: d.current,\n    features: y,\n    googleClientId: c ? e.googleClientId ?? p : e.googleClientId,\n    appleClientId: c ? e.appleClientId ?? f : e.appleClientId,\n    signupAccessCodeRequired: c ? e.signupAccessCodeRequired ?? g : e.signupAccessCodeRequired,\n    signupAvailability: c ? e.signupAvailability ?? x : e.signupAvailability\n  }), [\n    e,\n    c,\n    y,\n    p,\n    f,\n    g,\n    x\n  ]), w = B(() => JSON.stringify(b.themeOverrides ?? null), [b.themeOverrides]), A = B(() => JSON.stringify(b.session ?? null), [b.session]), C = B(() => JSON.stringify(b.features ?? null), [b.features]), T = B(() => JSON.stringify(b.socialButtonOrder ?? null), [b.socialButtonOrder]), E = B(() => JSON.stringify(b.forms ?? null), [b.forms]), N = B(() => JSON.stringify(b.translations ?? null), [b.translations]), I = B(() => b, [\n    b.serverUrl,\n    b.googleClientId,\n    b.appleClientId,\n    b.requestTimeout,\n    b.retryAttempts,\n    b.signupAccessCodeRequired,\n    b.signupAvailability,\n    T,\n    b.locale,\n    b.theme,\n    w,\n    A,\n    C,\n    E,\n    N\n  ]), L = I.unstyled ?? !1, z = Yc({\n    theme: L ? void 0 : I.theme,\n    themeOverrides: L ? void 0 : I.themeOverrides,\n    applyThemeToDocument: I.applyThemeToDocument\n  }), { user: P, authState: U, assertLoginCurrent: j, handleLoginSuccess: ae, logout: ne, refreshUser: ue, getAccessToken: q } = wl({\n    serverUrl: I.serverUrl,\n    session: I.session,\n    callbacks: d.current,\n    requestTimeoutMs: I.requestTimeout\n  }), $ = S(async () => {\n    t(null), await ne();\n  }, [ne]), Q = S((...re) => {\n    ae(...re), t(null);\n  }, [ae]), se = M(null), K = M(!1);\n  D(() => {\n    if (U !== \"authenticated\" || !P || se.current === P.id || K.current) return;\n    const re = I.crmIdentify;\n    if (!re?.enabled) return;\n    const ge = q();\n    ge && (se.current = P.id, _l({\n      config: re,\n      user: P,\n      accessToken: ge\n    }).then((we) => {\n      we.kind === \"precondition-failed\" && (K.current = !0);\n    }));\n  }, [\n    U,\n    P,\n    I.crmIdentify,\n    q\n  ]);\n  const V = S(() => a(!0), []), me = S(() => a(!1), []), pe = I.features, fe = S((re) => Bc(re, { flags: pe }), [pe]), be = B(() => ({\n    config: I,\n    featureFlags: pe,\n    isFeatureEnabled: fe,\n    user: P,\n    authState: U,\n    logout: $,\n    refreshUser: ue,\n    socialButtonOrder: I.socialButtonOrder ?? (c ? u : void 0),\n    _internal: {\n      assertLoginCurrent: j,\n      handleLoginSuccess: Q,\n      getAccessToken: q\n    }\n  }), [\n    I,\n    pe,\n    fe,\n    P,\n    U,\n    $,\n    ue,\n    c,\n    u,\n    j,\n    Q,\n    q\n  ]), ve = B(() => ({\n    error: o,\n    isModalOpen: i,\n    openModal: V,\n    closeModal: me\n  }), [\n    o,\n    i,\n    V,\n    me\n  ]);\n  return m && k ? null : /* @__PURE__ */ n($s, {\n    locale: I.locale,\n    translations: I.translations,\n    children: /* @__PURE__ */ n(Rr.Provider, {\n      value: be,\n      children: /* @__PURE__ */ n(co.Provider, {\n        value: ve,\n        children: /* @__PURE__ */ n(\"div\", {\n          className: [\"cedros-login-theme\", z.className].filter(Boolean).join(\" \"),\n          style: z.style,\n          children: /* @__PURE__ */ n(zc, { children: r }, I.serverUrl)\n        })\n      })\n    })\n  });\n}\nvar ia = R((() => {\n  G(), Dn(), Fc(), Hi(), Xc(), Qc(), kl(), Al(), po(), Y();\n}));\nfunction $o(e) {\n  return !!e && typeof e == \"object\" && !Array.isArray(e);\n}\nfunction ko(e, r) {\n  return typeof e != \"string\" ? null : qe(`${new URL(r).origin}/?returnTo=${encodeURIComponent(e)}`);\n}\nfunction Cl(e, r) {\n  if (!$o(e) || e.enabled !== !0 || e.configuredEnabled !== !0 || !Array.isArray(e.plans)) throw new Error(\"Plans are temporarily unavailable. Please try again.\");\n  const o = /* @__PURE__ */ new Map();\n  for (const t of e.plans) $o(t) && typeof t.planId == \"string\" && o.set(t.planId, (o.get(t.planId) ?? 0) + 1);\n  return e.plans.filter((t) => $o(t) && typeof t.planId == \"string\" && /^[a-zA-Z0-9_-]+$/.test(t.planId) && o.get(t.planId) === 1 && typeof t.displayName == \"string\" && !!t.displayName.trim() && typeof t.description == \"string\" && typeof t.priceCents == \"number\" && Number.isSafeInteger(t.priceCents) && t.priceCents > 0 && typeof t.currency == \"string\" && /^[a-z]{3}$/i.test(t.currency) && t.interval === (r === \"annual\" ? \"yearly\" : \"monthly\") && typeof t.priceId == \"string\" && !!t.priceId && t.active === !0 && t.public === !0 && t.purchasable === !0 && (t.publicOnMainPricingPage === !0 || t.publicOnDeveloperPage === !0) && Array.isArray(t.paymentMethods) && t.paymentMethods.includes(\"stripe\"));\n}\nasync function El(e, r) {\n  const o = await new te({\n    baseUrl: e,\n    retryAttempts: 0\n  }).get(\"/features\", {\n    credentials: \"omit\",\n    cacheTtlMs: 0\n  });\n  if (o.subscriptionSelectionRequired !== !0) return null;\n  const t = ko(o.subscriptionSelectionRoute, r);\n  if (!t) throw new Error(\"Plan selection is temporarily unavailable. Please try again.\");\n  const i = new te({\n    baseUrl: new URL(\"/extensions/cedros-pay\", r).href,\n    retryAttempts: 0\n  }), [a, s] = await Promise.all([\"monthly\", \"annual\"].map(async (d) => Cl(await i.get(`/paywall/v1/subscription/plans?interval=${d}`, {\n    credentials: \"omit\",\n    cacheTtlMs: 0\n  }), d === \"annual\" ? \"annual\" : \"monthly\")));\n  if (!a.length && !s.length) throw new Error(\"Plans are temporarily unavailable. Please try again.\");\n  return {\n    route: t,\n    monthly: a,\n    annual: s\n  };\n}\nfunction aa(e, r) {\n  const o = ko(e, r), t = qe(r);\n  if (!o || !t) return null;\n  const i = new URL(r), a = new URL(t, i), s = new URL(o, i);\n  if (a.pathname !== s.pathname || !a.searchParams.get(\"plan\") || ![\"monthly\", \"annual\"].includes(a.searchParams.get(\"billing\") ?? \"\")) return null;\n  for (const [d, c] of s.searchParams) if (a.searchParams.get(d) !== c) return null;\n  return t;\n}\nfunction Sl(e, r, o, t) {\n  const i = ko(e, t);\n  if (!i) throw new Error(\"Invalid plan selection route.\");\n  const a = new URL(i, t), s = qe(t);\n  if (s) {\n    const d = new URL(s, t), c = d.pathname === a.pathname ? qe(d.href) : s;\n    c && a.searchParams.set(\"returnTo\", c);\n  }\n  return a.searchParams.set(\"view\", \"signup\"), a.searchParams.set(\"plan\", r.planId), a.searchParams.set(\"billing\", o), a.hash = r.planId, `${a.pathname}${a.search}${a.hash}`;\n}\nvar Rt = R((() => {\n  ie(), Be();\n}));\nfunction Rl(e, r, o) {\n  if (r?.postLogin?.action === \"setup_mfa\") return null;\n  const t = cn(r?.postLogin?.redirectUrl);\n  if (t) {\n    if (r?.postLogin?.action === \"choose_subscription\" && o) {\n      const a = aa(t, o);\n      if (a) return a;\n    }\n    return t;\n  }\n  const i = qe(o);\n  if (i) return i;\n  for (const a of da) {\n    const s = cn(e[a]);\n    if (s) return s;\n  }\n  return sa;\n}\nfunction Nl(e, r, o) {\n  const t = Rl(e, r, o.href);\n  t && o.assign(t);\n}\nfunction cn(e) {\n  if (typeof e != \"string\") return null;\n  const r = e.trim();\n  if (!r) return null;\n  for (const o of r) {\n    const t = o.charCodeAt(0);\n    if (o === \"\\\\\" || t < 32 || t === 127) return null;\n  }\n  if (r.startsWith(\"/\") && !r.startsWith(\"//\")) return r;\n  try {\n    const o = new URL(r);\n    return o.protocol === \"http:\" || o.protocol === \"https:\" ? o.toString() : null;\n  } catch {\n    return null;\n  }\n}\nvar sa, da, Tl = R((() => {\n  Rt(), Be(), sa = \"/profile\", da = [\n    \"redirectUrl\",\n    \"successHref\",\n    \"continueHref\"\n  ];\n}));\nfunction ca() {\n  const { config: e } = ce(), { t: r, message: o } = Ne(), [t, i] = _(!1), [a, s] = _(!1), [d, c] = _(null), m = B(() => new te({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    retryAttempts: e.retryAttempts\n  }), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts\n  ]), { checkLimit: l, getRemainingAttempts: p } = ho({\n    maxAttempts: 3,\n    windowMs: 3e5,\n    rateLimitMessage: (f) => o(r.errors.rateLimitedWithSeconds, { seconds: f })\n  });\n  return {\n    forgotPassword: S(async (f) => {\n      if (!Kr(f)) {\n        const u = {\n          code: \"VALIDATION_ERROR\",\n          message: r.errors.invalidEmail\n        };\n        throw c(u), u;\n      }\n      try {\n        l();\n      } catch (u) {\n        const g = {\n          code: \"RATE_LIMITED\",\n          message: u instanceof Error ? u.message : r.errors.tooManyRequests\n        };\n        throw c(g), g;\n      }\n      i(!0), c(null), s(!1);\n      try {\n        await m.post(\"/forgot-password\", { email: f }), s(!0);\n      } catch (u) {\n        const g = O(u, r.errors.signInFallback, { networkMessage: r.errors.unableToReachServer });\n        throw c(g), g;\n      } finally {\n        i(!1);\n      }\n    }, [\n      m,\n      l,\n      r.errors\n    ]),\n    resetPassword: S(async (f, u) => {\n      i(!0), c(null), s(!1);\n      try {\n        await m.post(\"/reset-password\", {\n          token: f,\n          newPassword: u\n        }), s(!0);\n      } catch (g) {\n        const x = O(g, r.errors.signInFallback, {\n          networkMessage: r.errors.unableToReachServer,\n          friendlyMessages: {\n            INVALID_TOKEN: r.errors.linkExpired,\n            TOKEN_EXPIRED: r.errors.linkExpired\n          }\n        });\n        throw c(x), x;\n      } finally {\n        i(!1);\n      }\n    }, [m, r.errors]),\n    isLoading: t,\n    isSuccess: a,\n    error: d,\n    clearError: S(() => c(null), []),\n    reset: S(() => {\n      c(null), s(!1), i(!1);\n    }, []),\n    remainingAttempts: p()\n  };\n}\nvar Nt = R((() => {\n  oe(), Ye(), bo(), ie(), Y();\n}));\nfunction Il(e) {\n  return typeof e == \"object\" && e !== null && \"mfaRequired\" in e && e.mfaRequired === !0;\n}\nfunction la() {\n  const { config: e, _internal: r } = ce(), o = or(), { t, message: i } = Ne(), [a, s] = _(!1), [d, c] = _(!1), [m, l] = _(null), p = B(() => new te({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    retryAttempts: e.retryAttempts\n  }), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts\n  ]), f = B(() => new Ir(e.serverUrl, e.requestTimeout, e.retryAttempts, r?.getAccessToken), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    r?.getAccessToken\n  ]), { checkLimit: u, getRemainingAttempts: g } = ho({\n    maxAttempts: 3,\n    windowMs: 3e5,\n    rateLimitMessage: (x) => i(t.errors.rateLimitedWithSeconds, { seconds: x })\n  });\n  return {\n    sendInstantLink: S(async (x) => {\n      if (!Kr(x)) {\n        const k = {\n          code: \"VALIDATION_ERROR\",\n          message: t.errors.invalidEmail\n        };\n        throw l(k), k;\n      }\n      try {\n        u();\n      } catch (k) {\n        const h = {\n          code: \"RATE_LIMITED\",\n          message: k instanceof Error ? k.message : t.errors.tooManyRequests\n        };\n        throw l(h), h;\n      }\n      s(!0), l(null), c(!1);\n      try {\n        if ((await o.requestDeviceAccountLink({\n          identifier: x,\n          method: \"instantLink\",\n          linkExisting: async (h, y) => (await f.addEmail(x), y)\n        })).action === \"linked\") {\n          c(!0);\n          return;\n        }\n        const k = qe(typeof window > \"u\" ? void 0 : window.location.href);\n        await p.post(\"/instant-link\", {\n          email: x,\n          ...k ? { returnTo: k } : {}\n        }), c(!0);\n      } catch (k) {\n        const h = O(k, t.errors.signInFallback, { networkMessage: t.errors.unableToReachServer });\n        throw l(h), h;\n      } finally {\n        s(!1);\n      }\n    }, [\n      f,\n      p,\n      u,\n      o,\n      t.errors\n    ]),\n    verifyInstantLink: S(async (x) => {\n      if (!x || x.trim().length === 0) {\n        const k = {\n          code: \"VALIDATION_ERROR\",\n          message: t.errors.linkExpired\n        };\n        throw l(k), k;\n      }\n      s(!0), l(null), c(!1);\n      try {\n        r?.assertLoginCurrent();\n        const k = await p.post(\"/instant-link/verify\", { token: x });\n        return r?.assertLoginCurrent(), Fe(k), Il(k) || Se(k) || Le(k, \"email\", r, e.callbacks), k;\n      } catch (k) {\n        const h = O(k, t.errors.signInFallback, { networkMessage: t.errors.unableToReachServer });\n        throw l(h), h;\n      } finally {\n        s(!1);\n      }\n    }, [\n      p,\n      e.callbacks,\n      r,\n      t.errors\n    ]),\n    isLoading: a,\n    isSuccess: d,\n    error: m,\n    clearError: S(() => l(null), []),\n    reset: S(() => {\n      l(null), c(!1), s(!1);\n    }, []),\n    remainingAttempts: g()\n  };\n}\nvar ua = R((() => {\n  je(), oe(), tr(), Ye(), bo(), ie(), fo(), Y(), Be();\n}));\nfunction Tt({ mode: e = \"reset\", onSuccess: r, onCancel: o, className: t = \"\" }) {\n  const { t: i, message: a } = Ne(), [s, d] = _(\"\"), c = ca(), m = la(), l = he(), p = e === \"instantLink\" ? {\n    submit: m.sendInstantLink,\n    isLoading: m.isLoading,\n    isSuccess: m.isSuccess,\n    error: m.error,\n    clearError: m.clearError\n  } : {\n    submit: c.forgotPassword,\n    isLoading: c.isLoading,\n    isSuccess: c.isSuccess,\n    error: c.error,\n    clearError: c.clearError\n  }, f = e === \"instantLink\", u = async (g) => {\n    g.preventDefault();\n    try {\n      await p.submit(s), r?.();\n    } catch {\n    }\n  };\n  return p.isSuccess ? /* @__PURE__ */ n(Ie, {\n    stateKey: \"success\",\n    order: rt,\n    focusOnChange: !0,\n    children: /* @__PURE__ */ v(\"div\", {\n      className: `cedros-forgot-password-success ${t}`,\n      children: [\n        /* @__PURE__ */ v(\"svg\", {\n          className: \"cedros-success-icon\",\n          width: \"48\",\n          height: \"48\",\n          viewBox: \"0 0 48 48\",\n          fill: \"none\",\n          \"aria-hidden\": \"true\",\n          children: [/* @__PURE__ */ n(\"circle\", {\n            cx: \"24\",\n            cy: \"24\",\n            r: \"22\",\n            stroke: \"currentColor\",\n            strokeWidth: \"2\"\n          }), /* @__PURE__ */ n(\"path\", {\n            d: \"M14 24l7 7 13-13\",\n            stroke: \"currentColor\",\n            strokeWidth: \"2\",\n            strokeLinecap: \"round\",\n            strokeLinejoin: \"round\"\n          })]\n        }),\n        /* @__PURE__ */ n(\"h3\", {\n          className: \"cedros-success-title\",\n          children: i.auth.checkYourEmail\n        }),\n        /* @__PURE__ */ n(\"p\", {\n          className: \"cedros-success-message\",\n          children: a(f ? i.auth.instantLinkSent : i.auth.passwordResetSent, { email: s })\n        }),\n        o && /* @__PURE__ */ n(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-md cedros-button-outline\",\n          onClick: o,\n          children: i.auth.backToLogin\n        })\n      ]\n    })\n  }) : /* @__PURE__ */ n(Ie, {\n    stateKey: \"request\",\n    order: rt,\n    children: /* @__PURE__ */ v(\"form\", {\n      className: `cedros-forgot-password-form ${t}`,\n      onSubmit: u,\n      children: [\n        /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-form-header\",\n          children: [/* @__PURE__ */ n(\"h3\", {\n            className: \"cedros-form-title\",\n            children: i.auth.forgotPasswordTitle\n          }), /* @__PURE__ */ n(\"p\", {\n            className: \"cedros-form-subtitle\",\n            children: f ? i.auth.instantLinkSubtitle : i.auth.forgotPasswordResetSubtitle\n          })]\n        }),\n        /* @__PURE__ */ n(X, {\n          error: p.error,\n          onDismiss: p.clearError\n        }),\n        /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-form-field\",\n          children: [/* @__PURE__ */ n(\"label\", {\n            htmlFor: l,\n            className: \"cedros-label\",\n            children: i.auth.emailAddress\n          }), /* @__PURE__ */ n(\"input\", {\n            id: l,\n            type: \"email\",\n            className: \"cedros-input\",\n            value: s,\n            onChange: (g) => d(g.target.value),\n            placeholder: i.auth.emailPlaceholder,\n            required: !0,\n            autoComplete: \"email\",\n            disabled: p.isLoading\n          })]\n        }),\n        /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-form-actions\",\n          children: [/* @__PURE__ */ n(\"button\", {\n            type: \"submit\",\n            className: \"cedros-button cedros-button-md cedros-button-primary cedros-button-full\",\n            disabled: p.isLoading || !s,\n            children: p.isLoading ? /* @__PURE__ */ v(Z, { children: [/* @__PURE__ */ n(W, { size: \"sm\" }), i.auth.sending] }) : f ? i.buttons.sendSignInLink : i.buttons.sendResetLink\n          }), o && /* @__PURE__ */ n(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-md cedros-button-ghost cedros-button-full\",\n            onClick: o,\n            disabled: p.isLoading,\n            children: i.auth.backToLogin\n          })]\n        })\n      ]\n    })\n  });\n}\nvar rt, It = R((() => {\n  Nt(), ua(), le(), ee(), Y(), pr(), rt = [\"request\", \"success\"];\n}));\nfunction Ll({ token: e, onSuccess: r, onLoginClick: o, className: t = \"\" }) {\n  const i = J(), [a, s] = _(!1), [d, c] = _(\"\"), [m, l] = _(\"\"), [p, f] = _(null), { resetPassword: u, isLoading: g, isSuccess: x, error: k, clearError: h } = ca(), y = d === m, b = p?.isValid && y && d.length > 0, w = async (A) => {\n    if (A.preventDefault(), !!b)\n      try {\n        await u(e, d), r?.();\n      } catch {\n      }\n  };\n  return a ? /* @__PURE__ */ n(Tt, {\n    mode: \"reset\",\n    onCancel: o,\n    className: t\n  }) : x ? /* @__PURE__ */ n(Ie, {\n    stateKey: \"success\",\n    order: ot,\n    focusOnChange: !0,\n    children: /* @__PURE__ */ v(\"div\", {\n      className: `cedros-reset-password-success ${t}`,\n      children: [\n        /* @__PURE__ */ v(\"svg\", {\n          className: \"cedros-success-icon\",\n          width: \"48\",\n          height: \"48\",\n          viewBox: \"0 0 48 48\",\n          fill: \"none\",\n          \"aria-hidden\": \"true\",\n          children: [/* @__PURE__ */ n(\"circle\", {\n            cx: \"24\",\n            cy: \"24\",\n            r: \"22\",\n            stroke: \"currentColor\",\n            strokeWidth: \"2\"\n          }), /* @__PURE__ */ n(\"path\", {\n            d: \"M14 24l7 7 13-13\",\n            stroke: \"currentColor\",\n            strokeWidth: \"2\",\n            strokeLinecap: \"round\",\n            strokeLinejoin: \"round\"\n          })]\n        }),\n        /* @__PURE__ */ n(\"h3\", {\n          className: \"cedros-success-title\",\n          children: i.auth.passwordResetSuccessful\n        }),\n        /* @__PURE__ */ n(\"p\", {\n          className: \"cedros-success-message\",\n          children: i.auth.passwordResetSuccessfulBody\n        }),\n        o && /* @__PURE__ */ n(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-md cedros-button-primary\",\n          onClick: o,\n          children: i.auth.goToLogin\n        })\n      ]\n    })\n  }) : /* @__PURE__ */ n(Ie, {\n    stateKey: \"reset\",\n    order: ot,\n    children: /* @__PURE__ */ v(\"form\", {\n      className: `cedros-reset-password-form ${t}`,\n      onSubmit: w,\n      children: [\n        /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-form-header\",\n          children: [/* @__PURE__ */ n(\"h3\", {\n            className: \"cedros-form-title\",\n            children: i.auth.resetYourPassword\n          }), /* @__PURE__ */ n(\"p\", {\n            className: \"cedros-form-subtitle\",\n            children: i.auth.resetPasswordSubtitle\n          })]\n        }),\n        /* @__PURE__ */ n(X, {\n          error: k,\n          onDismiss: h\n        }),\n        k && /* @__PURE__ */ n(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-outline\",\n          onClick: () => {\n            c(\"\"), l(\"\"), s(!0);\n          },\n          children: i.auth.requestNewResetLink\n        }),\n        /* @__PURE__ */ n(\"div\", {\n          className: \"cedros-form-field\",\n          children: /* @__PURE__ */ n(Re, {\n            label: i.auth.newPassword,\n            value: d,\n            onChange: (A) => {\n              c(A.target.value), f(Er(A.target.value, i.passwordValidation));\n            },\n            showStrengthMeter: !0,\n            onValidationChange: f,\n            disabled: g,\n            autoComplete: \"new-password\"\n          })\n        }),\n        /* @__PURE__ */ n(\"div\", {\n          className: \"cedros-form-field\",\n          children: /* @__PURE__ */ n(Re, {\n            label: i.auth.confirmPassword,\n            value: m,\n            onChange: (A) => l(A.target.value),\n            disabled: g,\n            autoComplete: \"new-password\",\n            error: m && !y ? i.messages.passwordsDoNotMatch : void 0\n          })\n        }),\n        /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-form-actions\",\n          children: [/* @__PURE__ */ n(\"button\", {\n            type: \"submit\",\n            className: \"cedros-button cedros-button-md cedros-button-primary cedros-button-full\",\n            disabled: g || !b,\n            children: g ? /* @__PURE__ */ v(Z, { children: [/* @__PURE__ */ n(W, { size: \"sm\" }), i.auth.resetting] }) : i.buttons.resetPassword\n          }), o && /* @__PURE__ */ n(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-md cedros-button-ghost cedros-button-full\",\n            onClick: o,\n            disabled: g,\n            children: i.auth.backToLogin\n          })]\n        })\n      ]\n    })\n  });\n}\nvar ot, Pl = R((() => {\n  Nt(), It(), nr(), le(), ee(), Ye(), Y(), pr(), ot = [\"reset\", \"success\"];\n}));\nasync function ma(e, r) {\n  const o = await new te({\n    ...e,\n    retryAttempts: 0\n  }).get(\"/user?resumeSignup=true\", { cacheTtlMs: 0 });\n  if (o.authenticated !== !0 || !o.signupResume) throw new Error(\"Unable to check account setup. Please try again.\");\n  const t = o.signupResume.postLogin;\n  if (t === null) return null;\n  if (t?.action === \"setup_mfa\") return { action: \"setup_mfa\" };\n  if (t?.action === \"redirect\" && typeof t.redirectUrl == \"string\") return {\n    action: \"redirect\",\n    redirectUrl: t.redirectUrl\n  };\n  const i = ko(t?.redirectUrl, r);\n  if (t?.action !== \"choose_subscription\" || !i) throw new Error(\"Plan selection is temporarily unavailable. Please try again.\");\n  return {\n    action: \"choose_subscription\",\n    redirectUrl: i\n  };\n}\nvar ga = R((() => {\n  ie(), Rt();\n}));\nfunction pa() {\n  const { config: e, _internal: r } = ce(), o = J(), [t, i] = _(null), [a, s] = _(\"idle\"), [d, c] = _(null), [m, l] = _(!1), [p, f] = _(null), u = B(() => new te({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    retryAttempts: e.retryAttempts,\n    getAccessToken: r?.getAccessToken\n  }), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    r\n  ]);\n  return {\n    status: t,\n    setupState: a,\n    setupData: d,\n    isLoading: m,\n    error: p,\n    getStatus: S(async () => {\n      l(!0), f(null);\n      try {\n        const g = await u.get(\"/mfa/status\");\n        return i(g), g;\n      } catch (g) {\n        const x = O(g, o.auth.loadTotpStatusFailed);\n        throw f(x), x;\n      } finally {\n        l(!1);\n      }\n    }, [u, o.auth.loadTotpStatusFailed]),\n    beginSetup: S(async () => {\n      l(!0), f(null), s(\"loading\");\n      try {\n        const g = await u.post(\"/mfa/setup\", {});\n        return c(g), s(\"setup\"), g;\n      } catch (g) {\n        const x = O(g, o.auth.startTotpSetupFailed);\n        throw f(x), s(\"error\"), x;\n      } finally {\n        l(!1);\n      }\n    }, [u, o.auth.startTotpSetupFailed]),\n    enableTotp: S(async (g) => {\n      if (!/^\\d{6}$/.test(g)) {\n        const x = {\n          code: \"VALIDATION_ERROR\",\n          message: o.auth.enterSixDigitCode\n        };\n        throw f(x), x;\n      }\n      l(!0), f(null), s(\"verifying\");\n      try {\n        await u.post(\"/mfa/enable\", { code: g }), s(\"success\");\n        try {\n          const x = await u.get(\"/mfa/status\");\n          i(x);\n        } catch {\n          i({\n            enabled: !0,\n            recoveryCodesRemaining: 0\n          });\n        }\n      } catch (x) {\n        const k = O(x, o.auth.incorrectVerificationCode);\n        throw f(k), s(\"error\"), k;\n      } finally {\n        l(!1);\n      }\n    }, [\n      u,\n      o.auth.enterSixDigitCode,\n      o.auth.incorrectVerificationCode\n    ]),\n    disableTotp: S(async (g) => {\n      const x = typeof g == \"string\" ? { password: g } : g;\n      if (!Object.values(x).some((k) => typeof k == \"string\" && k.trim().length > 0)) {\n        const k = {\n          code: \"VALIDATION_ERROR\",\n          message: o.auth.enterPassword\n        };\n        throw f(k), k;\n      }\n      l(!0), f(null);\n      try {\n        await u.post(\"/mfa/disable\", x), i((k) => ({\n          enabled: !1,\n          recoveryCodesRemaining: 0,\n          ...k?.disableMethods ? { disableMethods: k.disableMethods } : {}\n        })), c(null), s(\"idle\");\n      } catch (k) {\n        const h = O(k, o.auth.disableTotpFailed);\n        throw f(h), h;\n      } finally {\n        l(!1);\n      }\n    }, [\n      u,\n      o.auth.enterPassword,\n      o.auth.disableTotpFailed\n    ]),\n    regenerateBackupCodes: S(async (g) => {\n      if (!/^\\d{6}$/.test(g)) {\n        const x = {\n          code: \"VALIDATION_ERROR\",\n          message: o.auth.enterSixDigitCode\n        };\n        throw f(x), x;\n      }\n      l(!0), f(null);\n      try {\n        return await u.post(\"/mfa/recovery-codes/regenerate\", { code: g });\n      } catch (x) {\n        const k = O(x, o.auth.regenerateCodesFailed);\n        throw f(k), k;\n      } finally {\n        l(!1);\n      }\n    }, [\n      u,\n      o.auth.enterSixDigitCode,\n      o.auth.regenerateCodesFailed\n    ]),\n    clearError: S(() => f(null), []),\n    reset: S(() => {\n      f(null), c(null), s(\"idle\"), l(!1);\n    }, [])\n  };\n}\nvar fa = R((() => {\n  oe(), ie(), Y();\n}));\nfunction ln(e) {\n  const r = e * 4 + 17;\n  let o = r * r - 192 - 31 - 2 * (r - 16);\n  if (e > 1) {\n    const t = Math.floor(e / 7) + 2;\n    o -= (t * t - 3) * 25 - (t - 2) * 10;\n  }\n  return e >= 7 && (o -= 36), Math.floor(o / 8);\n}\nfunction Vo(e, r) {\n  let o = 0;\n  for (; r; r >>>= 1)\n    r & 1 && (o ^= e), e = e << 1 ^ (e & 128 ? 285 : 0);\n  return o;\n}\nfunction zl(e, r) {\n  const o = eo[r - 1], t = ro[r - 1];\n  let i = [1], a = 1;\n  for (let f = 0; f < t; f++) {\n    const u = Array(i.length + 1).fill(0);\n    for (let g = 0; g < i.length; g++)\n      u[g] ^= i[g], u[g + 1] ^= Vo(i[g], a);\n    i = u, a = Vo(a, 2);\n  }\n  const s = Math.floor(e.length / o), d = o - e.length % o, c = [], m = [];\n  let l = 0;\n  for (let f = 0; f < o; f++) {\n    const u = s + (f >= d ? 1 : 0), g = e.slice(l, l + u);\n    l += u;\n    const x = Array(t).fill(0);\n    for (const k of g) {\n      const h = k ^ x.shift();\n      x.push(0);\n      for (let y = 0; y < t; y++) x[y] ^= Vo(i[y + 1], h);\n    }\n    c.push(g), m.push(x);\n  }\n  const p = [];\n  for (let f = 0; f <= s; f++) for (const u of c) f < u.length && p.push(u[f]);\n  for (let f = 0; f < t; f++) for (const u of m) p.push(u[f]);\n  return p;\n}\nfunction Ml(e, r, o) {\n  const t = r * o;\n  switch (e) {\n    case 0:\n      return (r + o) % 2 === 0;\n    case 1:\n      return o % 2 === 0;\n    case 2:\n      return r % 3 === 0;\n    case 3:\n      return (r + o) % 3 === 0;\n    case 4:\n      return (Math.floor(o / 2) + Math.floor(r / 3)) % 2 === 0;\n    case 5:\n      return t % 2 + t % 3 === 0;\n    case 6:\n      return (t % 2 + t % 3) % 2 === 0;\n    case 7:\n      return (t % 3 + (r + o) % 2) % 2 === 0;\n    default:\n      throw new Error(\"Invalid QR mask\");\n  }\n}\nfunction Ol(e, r) {\n  let o = 0, t = 0;\n  for (const i of e) t += i;\n  o += Math.floor(Math.abs(t * 100 / e.length - 50) / 5) * 10;\n  for (let i = 0; i < r; i++) {\n    for (let a = 0; a < 2; a++) {\n      let s = -1, d = 0, c = 0;\n      for (let m = 0; m < r; m++) {\n        const l = e[a ? m * r + i : i * r + m];\n        d = l === s ? d + 1 : 1, d === 5 ? o += 3 : d > 5 && o++, s = l, c = (c << 1 | l) & 2047, m >= 10 && (c === 93 || c === 1488) && (o += 40);\n      }\n    }\n    for (let a = 0; i < r - 1 && a < r - 1; a++) {\n      const s = i * r + a;\n      e[s] === e[s + 1] && e[s] === e[s + r] && e[s] === e[s + r + 1] && (o += 3);\n    }\n  }\n  return o;\n}\nfunction Dl(e) {\n  if (Object.prototype.toString.call(e) !== \"[object Uint8Array]\" || !ArrayBuffer.isView(e) || e.length === 0 || e.length > 2331) throw new Error(\"QR payload must contain 1–2331 bytes\");\n  let r = 1;\n  for (; r <= 40; r++) {\n    const h = ln(r) - eo[r - 1] * ro[r - 1];\n    if (4 + (r < 10 ? 8 : 16) + e.length * 8 <= h * 8) break;\n  }\n  if (r > 40) throw new Error(\"QR payload is too large\");\n  const o = ln(r) - eo[r - 1] * ro[r - 1], t = [];\n  function i(h, y) {\n    for (let b = y - 1; b >= 0; b--) t.push(h >>> b & 1);\n  }\n  i(4, 4), i(e.length, r < 10 ? 8 : 16);\n  for (const h of e) i(h, 8);\n  for (i(0, Math.min(4, o * 8 - t.length)); t.length % 8; ) t.push(0);\n  const a = [];\n  for (let h = 0; h < t.length; h += 8) {\n    let y = 0;\n    for (let b = 0; b < 8; b++) y = y * 2 + t[h + b];\n    a.push(y);\n  }\n  for (let h = 0; a.length < o; h++) a.push(h % 2 ? 17 : 236);\n  const s = zl(a, r), d = r * 4 + 17, c = new Uint8Array(d * d), m = new Uint8Array(c.length);\n  function l(h, y, b) {\n    c[y * d + h] = +!!b, m[y * d + h] = 1;\n  }\n  for (const [h, y] of [\n    [3, 3],\n    [d - 4, 3],\n    [3, d - 4]\n  ]) for (let b = -4; b <= 4; b++) for (let w = -4; w <= 4; w++) {\n    const A = h + w, C = y + b;\n    if (A < 0 || C < 0 || A >= d || C >= d) continue;\n    const T = Math.max(Math.abs(w), Math.abs(b));\n    l(A, C, T !== 2 && T !== 4);\n  }\n  for (let h = 8; h < d - 8; h++)\n    l(h, 6, h % 2 === 0), l(6, h, h % 2 === 0);\n  if (r > 1) {\n    const h = Math.floor(r / 7) + 2, y = r === 32 ? 26 : Math.ceil((d - 13) / (2 * (h - 1))) * 2, b = [6];\n    for (let w = h - 2; w >= 0; w--) b.push(d - 7 - w * y);\n    for (let w = 0; w < h; w++) for (let A = 0; A < h; A++)\n      if (!(w === 0 && (A === 0 || A === h - 1) || w === h - 1 && A === 0))\n        for (let C = -2; C <= 2; C++) for (let T = -2; T <= 2; T++) l(b[A] + T, b[w] + C, Math.max(Math.abs(T), Math.abs(C)) !== 1);\n  }\n  if (r >= 7) {\n    let h = r;\n    for (let b = 0; b < 12; b++) h = h << 1 ^ (h & 2048 ? 7973 : 0);\n    const y = r << 12 | h;\n    for (let b = 0; b < 18; b++)\n      l(d - 11 + b % 3, Math.floor(b / 3), y >>> b & 1), l(Math.floor(b / 3), d - 11 + b % 3, y >>> b & 1);\n  }\n  function p(h) {\n    let y = h;\n    for (let w = 0; w < 10; w++) y = y << 1 ^ (y & 512 ? 1335 : 0);\n    const b = (h << 10 | y) ^ 21522;\n    for (let w = 0; w < 15; w++) {\n      const A = b >>> w & 1, C = w < 6 ? w : w < 8 ? w + 1 : d - 15 + w, T = w < 8 ? d - 1 - w : w === 8 ? 7 : 14 - w;\n      l(8, C, A), l(T, 8, A);\n    }\n    l(8, d - 8, 1);\n  }\n  p(0);\n  let f = 0, u = !0;\n  for (let h = d - 1; h > 0; h -= 2) {\n    h === 6 && h--;\n    for (let y = 0; y < d; y++) {\n      const b = u ? d - 1 - y : y;\n      for (let w = 0; w < 2; w++) {\n        const A = b * d + h - w;\n        m[A] || (c[A] = f < s.length * 8 ? s[f >>> 3] >>> 7 - f % 8 & 1 : 0, f++);\n      }\n    }\n    u = !u;\n  }\n  function g(h) {\n    for (let y = 0; y < d; y++) for (let b = 0; b < d; b++) {\n      const w = y * d + b;\n      !m[w] && Ml(h, b, y) && (c[w] ^= 1);\n    }\n  }\n  let x = 0, k = 1 / 0;\n  for (let h = 0; h < 8; h++) {\n    p(h), g(h);\n    const y = Ol(c, d);\n    y < k && (x = h, k = y), g(h);\n  }\n  return p(x), g(x), {\n    size: d,\n    data: c,\n    mask: x\n  };\n}\nvar eo, ro, Ul = R((() => {\n  eo = [\n    1,\n    1,\n    1,\n    2,\n    2,\n    4,\n    4,\n    4,\n    5,\n    5,\n    5,\n    8,\n    9,\n    9,\n    10,\n    10,\n    11,\n    13,\n    14,\n    16,\n    17,\n    17,\n    18,\n    20,\n    21,\n    23,\n    25,\n    26,\n    28,\n    29,\n    31,\n    33,\n    35,\n    37,\n    38,\n    40,\n    43,\n    45,\n    47,\n    49\n  ], ro = [\n    10,\n    16,\n    26,\n    18,\n    24,\n    16,\n    18,\n    22,\n    22,\n    26,\n    30,\n    22,\n    22,\n    24,\n    24,\n    28,\n    28,\n    26,\n    26,\n    26,\n    26,\n    28,\n    28,\n    28,\n    28,\n    28,\n    28,\n    28,\n    28,\n    28,\n    28,\n    28,\n    28,\n    28,\n    28,\n    28,\n    28,\n    28,\n    28,\n    28\n  ];\n})), Fl = R((() => {\n  Ul();\n}));\nfunction ql({ value: e, size: r = 200, alt: o = \"QR code\", className: t = \"\" }) {\n  let i;\n  try {\n    if (e.length > 2331) throw new Error(\"QR payload is too large\");\n    i = Dl(new TextEncoder().encode(e));\n  } catch {\n    return /* @__PURE__ */ n(\"div\", {\n      className: `cedros-qr-error ${t}`,\n      style: {\n        width: r,\n        height: r\n      },\n      role: \"img\",\n      \"aria-label\": o,\n      children: /* @__PURE__ */ n(\"p\", { children: \"Failed to generate QR code\" })\n    });\n  }\n  const a = [];\n  for (let s = 0; s < i.size; s++) for (let d = 0; d < i.size; ) {\n    if (!i.data[s * i.size + d]) {\n      d++;\n      continue;\n    }\n    const c = d;\n    for (; d < i.size && i.data[s * i.size + d]; ) d++;\n    a.push(`M${c + 4} ${s + 4}h${d - c}v1H${c + 4}z`);\n  }\n  return /* @__PURE__ */ v(\"svg\", {\n    width: r,\n    height: r,\n    viewBox: `0 0 ${i.size + 8} ${i.size + 8}`,\n    className: `cedros-totp-qr-image ${t}`,\n    role: \"img\",\n    \"aria-label\": o,\n    shapeRendering: \"crispEdges\",\n    style: { borderRadius: \"0.5rem\" },\n    children: [/* @__PURE__ */ n(\"path\", {\n      fill: \"#ffffff\",\n      d: `M0 0h${i.size + 8}v${i.size + 8}H0z`\n    }), /* @__PURE__ */ n(\"path\", {\n      fill: \"#000000\",\n      d: a.join(\"\")\n    })]\n  });\n}\nvar jl = R((() => {\n  Fl();\n}));\nfunction ha({ onSuccess: e, onCancel: r, className: o = \"\" }) {\n  const { setupState: t, setupData: i, isLoading: a, error: s, beginSetup: d, enableTotp: c, clearError: m, reset: l } = pa(), [p, f] = _(\"qr\"), [u, g] = _(\"\"), [x, k] = _(!1), [h, y] = _(!1), b = M(!1), w = M(null);\n  D(() => {\n    t === \"idle\" && d().catch(() => {\n    });\n  }, [t, d]), D(() => {\n    t === \"success\" && e?.();\n  }, [t, e]);\n  const A = async () => {\n    i?.secret && (await navigator.clipboard.writeText(i.secret), k(!0), w.current !== null && window.clearTimeout(w.current), w.current = window.setTimeout(() => k(!1), 2e3));\n  }, C = async () => {\n    if (i?.recoveryCodes) {\n      const N = i.recoveryCodes.join(`\n`);\n      await navigator.clipboard.writeText(N);\n    }\n  }, T = async (N) => {\n    const I = N ?? u;\n    if (!(b.current || !/^\\d{6}$/.test(I))) {\n      b.current = !0;\n      try {\n        await c(I);\n      } catch {\n        g(\"\");\n      } finally {\n        b.current = !1;\n      }\n    }\n  }, E = () => {\n    l(), r?.();\n  };\n  return D(() => () => {\n    w.current !== null && (window.clearTimeout(w.current), w.current = null);\n  }, []), t === \"loading\" || t === \"idle\" && a ? /* @__PURE__ */ n(\"div\", {\n    className: `cedros-totp-setup ${o}`,\n    children: /* @__PURE__ */ n(\"div\", {\n      className: \"cedros-totp-loading\",\n      children: /* @__PURE__ */ n(W, {\n        size: \"lg\",\n        label: \"Setting up two-factor authentication\"\n      })\n    })\n  }) : t === \"error\" && !i ? /* @__PURE__ */ v(\"div\", {\n    className: `cedros-totp-setup ${o}`,\n    children: [/* @__PURE__ */ n(X, {\n      error: s,\n      onDismiss: m\n    }), /* @__PURE__ */ v(\"div\", {\n      className: \"cedros-totp-actions\",\n      children: [/* @__PURE__ */ n(\"button\", {\n        type: \"button\",\n        className: \"cedros-button cedros-button-outline cedros-button-md\",\n        onClick: E,\n        children: \"Cancel\"\n      }), /* @__PURE__ */ n(\"button\", {\n        type: \"button\",\n        className: \"cedros-button cedros-button-primary cedros-button-md\",\n        onClick: () => d(),\n        children: \"Try again\"\n      })]\n    })]\n  }) : t === \"success\" ? /* @__PURE__ */ n(\"div\", {\n    className: `cedros-totp-setup ${o}`,\n    children: /* @__PURE__ */ v(\"div\", {\n      className: \"cedros-totp-success\",\n      children: [\n        /* @__PURE__ */ v(\"svg\", {\n          className: \"cedros-totp-success-icon\",\n          width: \"48\",\n          height: \"48\",\n          viewBox: \"0 0 48 48\",\n          fill: \"none\",\n          \"aria-hidden\": \"true\",\n          children: [/* @__PURE__ */ n(\"circle\", {\n            cx: \"24\",\n            cy: \"24\",\n            r: \"22\",\n            stroke: \"currentColor\",\n            strokeWidth: \"2\"\n          }), /* @__PURE__ */ n(\"path\", {\n            d: \"M14 24l7 7 13-13\",\n            stroke: \"currentColor\",\n            strokeWidth: \"2\",\n            strokeLinecap: \"round\",\n            strokeLinejoin: \"round\"\n          })]\n        }),\n        /* @__PURE__ */ n(\"h3\", {\n          className: \"cedros-totp-title\",\n          children: \"Two-factor authentication enabled\"\n        }),\n        /* @__PURE__ */ n(\"p\", {\n          className: \"cedros-totp-description\",\n          children: \"Your account is now protected with an additional layer of security.\"\n        })\n      ]\n    })\n  }) : i ? /* @__PURE__ */ n(\"div\", {\n    className: `cedros-totp-setup ${o}`,\n    children: /* @__PURE__ */ v(Ie, {\n      stateKey: p,\n      order: ba,\n      focusOnChange: !0,\n      children: [\n        p === \"qr\" && /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-totp-step\",\n          children: [\n            /* @__PURE__ */ n(\"h3\", {\n              className: \"cedros-totp-title\",\n              children: \"Scan QR code\"\n            }),\n            /* @__PURE__ */ n(\"p\", {\n              className: \"cedros-totp-description\",\n              children: \"Use your authenticator app to scan this QR code.\"\n            }),\n            /* @__PURE__ */ n(\"div\", {\n              className: \"cedros-totp-qr\",\n              children: /* @__PURE__ */ n(ql, {\n                value: i.otpauthUri,\n                size: 200,\n                alt: \"QR code for authenticator app\"\n              })\n            }),\n            /* @__PURE__ */ v(\"div\", {\n              className: \"cedros-totp-manual\",\n              children: [/* @__PURE__ */ n(\"p\", {\n                className: \"cedros-totp-manual-label\",\n                children: \"Or enter this code manually:\"\n              }), /* @__PURE__ */ v(\"div\", {\n                className: \"cedros-totp-secret\",\n                children: [/* @__PURE__ */ n(\"code\", {\n                  className: \"cedros-totp-secret-code\",\n                  children: i.secret\n                }), /* @__PURE__ */ n(\"button\", {\n                  type: \"button\",\n                  className: \"cedros-button cedros-button-ghost cedros-button-sm\",\n                  onClick: A,\n                  \"aria-label\": \"Copy secret\",\n                  children: x ? \"Copied!\" : \"Copy\"\n                })]\n              })]\n            }),\n            /* @__PURE__ */ v(\"div\", {\n              className: \"cedros-totp-actions\",\n              children: [/* @__PURE__ */ n(\"button\", {\n                type: \"button\",\n                className: \"cedros-button cedros-button-outline cedros-button-md\",\n                onClick: E,\n                children: \"Cancel\"\n              }), /* @__PURE__ */ n(\"button\", {\n                type: \"button\",\n                className: \"cedros-button cedros-button-primary cedros-button-md\",\n                onClick: () => f(\"backup\"),\n                children: \"Continue\"\n              })]\n            })\n          ]\n        }),\n        p === \"backup\" && /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-totp-step\",\n          children: [\n            /* @__PURE__ */ n(\"h3\", {\n              className: \"cedros-totp-title\",\n              children: \"Save recovery codes\"\n            }),\n            /* @__PURE__ */ n(\"p\", {\n              className: \"cedros-totp-description\",\n              children: \"Save these codes in a secure place. You can use them to access your account if you lose your authenticator device.\"\n            }),\n            /* @__PURE__ */ n(\"div\", {\n              className: \"cedros-totp-backup-codes\",\n              children: i.recoveryCodes.map((N, I) => /* @__PURE__ */ n(\"code\", {\n                className: \"cedros-totp-backup-code\",\n                children: N\n              }, I))\n            }),\n            /* @__PURE__ */ n(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-outline cedros-button-md cedros-button-full\",\n              onClick: C,\n              children: \"Copy all codes\"\n            }),\n            /* @__PURE__ */ v(\"label\", {\n              className: \"cedros-checkbox-label cedros-totp-confirm\",\n              children: [/* @__PURE__ */ n(\"input\", {\n                type: \"checkbox\",\n                className: \"cedros-checkbox\",\n                checked: h,\n                onChange: (N) => y(N.target.checked)\n              }), /* @__PURE__ */ n(\"span\", {\n                className: \"cedros-checkbox-text\",\n                children: \"I have saved these recovery codes\"\n              })]\n            }),\n            /* @__PURE__ */ v(\"div\", {\n              className: \"cedros-totp-actions\",\n              children: [/* @__PURE__ */ n(\"button\", {\n                type: \"button\",\n                className: \"cedros-button cedros-button-outline cedros-button-md\",\n                onClick: () => f(\"qr\"),\n                children: \"Back\"\n              }), /* @__PURE__ */ n(\"button\", {\n                type: \"button\",\n                className: \"cedros-button cedros-button-primary cedros-button-md\",\n                onClick: () => f(\"verify\"),\n                disabled: !h,\n                children: \"Continue\"\n              })]\n            })\n          ]\n        }),\n        p === \"verify\" && /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-totp-step\",\n          children: [\n            /* @__PURE__ */ n(\"h3\", {\n              className: \"cedros-totp-title\",\n              children: \"Verify setup\"\n            }),\n            /* @__PURE__ */ n(\"p\", {\n              className: \"cedros-totp-description\",\n              children: \"Enter the 6-digit code from your authenticator app to complete setup.\"\n            }),\n            /* @__PURE__ */ n(Zr, {\n              value: u,\n              onChange: g,\n              onComplete: T,\n              disabled: a,\n              error: s?.message,\n              autoFocus: !0\n            }),\n            /* @__PURE__ */ v(\"div\", {\n              className: \"cedros-totp-actions\",\n              children: [/* @__PURE__ */ n(\"button\", {\n                type: \"button\",\n                className: \"cedros-button cedros-button-outline cedros-button-md\",\n                onClick: () => f(\"backup\"),\n                disabled: a,\n                children: \"Back\"\n              }), /* @__PURE__ */ n(\"button\", {\n                type: \"button\",\n                className: \"cedros-button cedros-button-primary cedros-button-md\",\n                onClick: () => T(),\n                disabled: a || !/^\\d{6}$/.test(u),\n                children: a ? /* @__PURE__ */ v(Z, { children: [/* @__PURE__ */ n(W, { size: \"sm\" }), /* @__PURE__ */ n(\"span\", { children: \"Verifying...\" })] }) : \"Enable 2FA\"\n              })]\n            })\n          ]\n        })\n      ]\n    })\n  }) : null;\n}\nvar ba, xo = R((() => {\n  G(), fa(), vo(), jl(), ee(), le(), pr(), ba = [\n    \"qr\",\n    \"backup\",\n    \"verify\"\n  ];\n}));\nfunction Lt({ onSuccess: e, onSignedOut: r }) {\n  const { config: o, _internal: t, logout: i, user: a, authState: s } = ce(), d = t?.getAccessToken, c = J(), m = JSON.stringify([\n    o.serverUrl,\n    a?.id,\n    s\n  ]), l = B(() => ({ key: m }), [m]), p = M(l), f = M({\n    scope: l,\n    serverUrl: o.serverUrl,\n    userId: a?.id\n  });\n  ur(() => {\n    f.current = {\n      scope: l,\n      serverUrl: o.serverUrl,\n      userId: a?.id\n    };\n  }, [\n    l,\n    o.serverUrl,\n    a?.id\n  ]);\n  const u = M(!0), g = M(null), x = M(!1), k = M(!1);\n  ur(() => (u.current = !0, () => {\n    u.current = !1, g.current = null;\n  }), []);\n  const [h, y] = _(!1), [b, w] = _(null), [A, C] = _(!1), [T, E] = _(!1), [N, I] = _(!1), L = S(async () => {\n    if (!u.current || g.current?.kind === \"logout\") return;\n    const U = { kind: \"logout\" };\n    g.current = U;\n    const j = f.current, ae = d?.(), ne = () => {\n      const ue = d?.();\n      return u.current && g.current === U && f.current.serverUrl === j.serverUrl && (!f.current.userId || f.current.userId === j.userId) && (!ue || ue === ae);\n    };\n    C(!0), E(!1), w(null);\n    try {\n      await i(), ne() && r?.();\n    } catch {\n      ne() && w(\"logout\");\n    } finally {\n      u.current && g.current === U && (ne() || (k.current = !0, I(!0)), g.current = null, C(!1));\n    }\n  }, [\n    i,\n    r,\n    d\n  ]), z = S(async () => {\n    if (!u.current || g.current || x.current || k.current || f.current.scope !== p.current) return;\n    const U = { kind: \"resume\" };\n    g.current = U;\n    const j = d?.(), ae = () => u.current && g.current === U && f.current.scope === l;\n    E(!0), w(null);\n    try {\n      const ne = await ma({\n        baseUrl: o.serverUrl,\n        timeoutMs: o.requestTimeout,\n        getAccessToken: d\n      }, window.location.href);\n      if (!ae()) return;\n      if (d?.() !== j || ne?.action === \"setup_mfa\") throw new Error(\"Enrollment not confirmed for the current session\");\n      x.current = !0, e(ne ? { postLogin: ne } : void 0);\n    } catch {\n      ae() && w(\"resume\");\n    } finally {\n      u.current && g.current === U && (g.current = null, E(!1));\n    }\n  }, [\n    l,\n    o.serverUrl,\n    o.requestTimeout,\n    d,\n    e\n  ]), P = N || l !== p.current;\n  return /* @__PURE__ */ v(\"div\", {\n    \"aria-busy\": T || A,\n    children: [\n      /* @__PURE__ */ n(\"p\", { children: c.messages.mfaSetupRequired }),\n      P && !A && b !== \"logout\" && /* @__PURE__ */ v(\"div\", { children: [/* @__PURE__ */ n(X, {\n        error: c.messages.mfaSetupContextChanged,\n        autoFocus: !0\n      }), /* @__PURE__ */ n(\"a\", {\n        className: \"cedros-link\",\n        href: \"/login\",\n        referrerPolicy: \"no-referrer\",\n        children: c.auth.goToLogin\n      })] }),\n      !h && !P && !A && /* @__PURE__ */ n(ha, {\n        onSuccess: () => {\n          !u.current || k.current || f.current.scope !== p.current || (y(!0), z());\n        },\n        onCancel: () => {\n          L();\n        }\n      }),\n      (T && !P || A) && /* @__PURE__ */ v(\"div\", {\n        role: \"status\",\n        \"aria-live\": \"polite\",\n        className: \"cedros-login-session-status\",\n        children: [/* @__PURE__ */ n(\"span\", {\n          \"aria-hidden\": \"true\",\n          children: /* @__PURE__ */ n(W, { size: \"sm\" })\n        }), /* @__PURE__ */ n(\"span\", { children: A ? c.messages.signingOut : c.messages.mfaSetupConfirming })]\n      }),\n      /* @__PURE__ */ n(\"button\", {\n        type: \"button\",\n        className: \"cedros-button cedros-button-outline cedros-button-md\",\n        onClick: () => {\n          L();\n        },\n        disabled: A,\n        children: c.buttons.signOut\n      }),\n      h && !P && b === \"logout\" && /* @__PURE__ */ n(\"button\", {\n        type: \"button\",\n        className: \"cedros-button cedros-button-primary cedros-button-md\",\n        onClick: () => {\n          z();\n        },\n        disabled: A || T,\n        children: c.common.continue\n      }),\n      b && (!P || b === \"logout\") && /* @__PURE__ */ v(\"div\", { children: [/* @__PURE__ */ n(X, {\n        error: b === \"logout\" ? c.messages.mfaSetupLogoutFailed : c.messages.mfaSetupResumeFailed,\n        autoFocus: !0\n      }), /* @__PURE__ */ n(\"button\", {\n        type: \"button\",\n        className: \"cedros-button cedros-button-primary cedros-button-md\",\n        onClick: () => {\n          b === \"logout\" ? L() : z();\n        },\n        disabled: A || T,\n        children: c.common.retry\n      })] })\n    ]\n  });\n}\nvar Pt = R((() => {\n  oe(), Y(), ga(), xo(), ee(), le();\n}));\nfunction Bl({ enabled: e, serverUrl: r, locked: o = !1, onSignIn: t, children: i }) {\n  const a = J(), s = In(), [d, c] = _(null), [m, l] = _(\"loading\"), [p, f] = _(0), [u, g] = _(\"monthly\"), [x, k] = _(null), [h, y] = _(!0), b = M(null), w = M(null), A = M(!1);\n  if (D(() => {\n    if (!e) return;\n    let E = !0;\n    return l(\"loading\"), El(r, window.location.href).then((N) => {\n      if (E) {\n        if (c(N), k(null), y(!0), N) {\n          g(N.monthly.length ? \"monthly\" : \"annual\");\n          const I = aa(N.route, window.location.href);\n          if (I) {\n            const L = new URL(I, window.location.href), z = L.searchParams.get(\"billing\") === \"annual\" ? \"annual\" : \"monthly\", P = N[z].find((U) => U.planId === L.searchParams.get(\"plan\"));\n            P && (un(N.route, P, z), g(z), k(P), y(!1));\n          }\n        }\n        l(\"ready\");\n      }\n    }).catch(() => {\n      E && l(\"error\");\n    }), () => {\n      E = !1;\n    };\n  }, [\n    e,\n    r,\n    p\n  ]), D(() => {\n    A.current && ((h ? w.current : b.current)?.focus(), A.current = !1);\n  }, [h]), !e) return /* @__PURE__ */ n(Z, { children: i });\n  if (m === \"loading\") return /* @__PURE__ */ n(\"p\", {\n    role: \"status\",\n    children: a.signupPlans.loading\n  });\n  if (m === \"ready\" && !d) return /* @__PURE__ */ n(Z, { children: i });\n  const C = (E) => Go(E.interval === \"yearly\" ? a.signupPlans.annualPrice : a.signupPlans.monthlyPrice, { amount: new Intl.NumberFormat(s, {\n    style: \"currency\",\n    currency: E.currency\n  }).format(E.priceCents / 100) }, s), T = (E) => {\n    !d || o || (un(d.route, E, u), k(E), A.current = !0, y(!1));\n  };\n  return /* @__PURE__ */ v(\"div\", {\n    className: \"cedros-signup-plans\",\n    children: [x ? /* @__PURE__ */ v(\"div\", {\n      hidden: h,\n      children: [\n        /* @__PURE__ */ v(\"p\", {\n          role: \"status\",\n          tabIndex: -1,\n          ref: b,\n          children: [\n            /* @__PURE__ */ n(\"strong\", { children: x.displayName }),\n            \" · \",\n            C(x)\n          ]\n        }),\n        o ? null : /* @__PURE__ */ n(\"button\", {\n          type: \"button\",\n          className: \"cedros-link\",\n          onClick: () => {\n            A.current = !0, y(!0);\n          },\n          children: a.signupPlans.changePlan\n        }),\n        o ? null : /* @__PURE__ */ n(\"p\", { children: a.signupPlans.accountBody }),\n        i\n      ]\n    }) : null, h ? /* @__PURE__ */ v(Z, { children: [\n      /* @__PURE__ */ n(\"h2\", {\n        ref: w,\n        tabIndex: -1,\n        children: a.signupPlans.chooseTitle\n      }),\n      /* @__PURE__ */ n(\"p\", { children: a.signupPlans.chooseBody }),\n      m === \"error\" ? /* @__PURE__ */ v(\"div\", {\n        role: \"alert\",\n        children: [/* @__PURE__ */ n(\"p\", { children: a.signupPlans.unavailable }), /* @__PURE__ */ n(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-primary\",\n          onClick: () => f((E) => E + 1),\n          children: a.common.retry\n        })]\n      }) : /* @__PURE__ */ v(Z, { children: [/* @__PURE__ */ n(\"div\", {\n        role: \"group\",\n        \"aria-label\": a.signupPlans.billingPeriod,\n        style: {\n          display: \"flex\",\n          gap: 12,\n          marginBottom: 16\n        },\n        children: [\"monthly\", \"annual\"].map((E) => /* @__PURE__ */ n(\"button\", {\n          type: \"button\",\n          className: `cedros-button ${u === E ? \"cedros-button-primary\" : \"cedros-button-social\"}`,\n          \"aria-pressed\": u === E,\n          onClick: () => g(E),\n          children: E === \"annual\" ? a.signupPlans.annual : a.signupPlans.monthly\n        }, E))\n      }), /* @__PURE__ */ v(\"div\", {\n        style: {\n          display: \"grid\",\n          gap: 12\n        },\n        children: [d?.[u].map((E) => /* @__PURE__ */ v(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-social\",\n          style: {\n            display: \"grid\",\n            textAlign: \"left\",\n            justifyContent: \"stretch\",\n            justifyItems: \"start\",\n            height: \"auto\",\n            whiteSpace: \"normal\",\n            gap: 8,\n            padding: 16\n          },\n          onClick: () => T(E),\n          children: [\n            /* @__PURE__ */ n(\"strong\", { children: E.displayName }),\n            /* @__PURE__ */ n(\"span\", { children: C(E) }),\n            /* @__PURE__ */ n(\"span\", { children: E.description }),\n            /* @__PURE__ */ n(\"span\", { children: Go(a.signupPlans.choosePlan, { plan: E.displayName }, s) })\n          ]\n        }, E.planId)), d && !d[u].length ? /* @__PURE__ */ n(\"p\", {\n          role: \"status\",\n          children: a.signupPlans.emptyPeriod\n        }) : null]\n      })] }),\n      /* @__PURE__ */ v(\"p\", { children: [\n        a.signupPlans.existingAccount,\n        \" \",\n        /* @__PURE__ */ n(\"button\", {\n          type: \"button\",\n          className: \"cedros-link\",\n          onClick: t,\n          children: a.auth.tabs.signIn\n        })\n      ] })\n    ] }) : null]\n  });\n}\nfunction un(e, r, o) {\n  const t = new URL(window.location.href);\n  t.searchParams.set(\"returnTo\", Sl(e, r, o, t.href)), window.history.replaceState(window.history.state, \"\", t);\n}\nvar $l = R((() => {\n  G(), Y(), Rt();\n}));\nfunction va(e) {\n  const [, r] = _(0), o = uo(e), t = o?.resetsAt;\n  return D(() => {\n    if (!t) return;\n    let i;\n    const a = () => {\n      const s = Date.parse(t) - Date.now();\n      if (s <= 0) {\n        r((d) => d + 1);\n        return;\n      }\n      i = window.setTimeout(a, Math.min(ya, s + 250));\n    };\n    return a(), () => {\n      i !== void 0 && window.clearTimeout(i);\n    };\n  }, [t]), o;\n}\nvar ya, wa = R((() => {\n  mo(), G(), ya = 2147483647;\n}));\nfunction Vl({ discount: e, onContinue: r, className: o = \"\" }) {\n  const { t, message: i } = Ne(), a = M(null);\n  D(() => {\n    a.current?.focus({ preventScroll: !0 });\n  }, []);\n  const s = e ? e.percentOff >= 100 ? t.auth.inviteUnlockRewardFree : i(t.auth.inviteUnlockRewardPercent, { percent: e.percentOff }) : null;\n  return /* @__PURE__ */ v(\"div\", {\n    className: `cedros-form cedros-invite-unlock ${o}`,\n    role: \"status\",\n    children: [\n      /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-invite-unlock__stage\",\n        \"aria-hidden\": \"true\",\n        children: [\n          /* @__PURE__ */ n(\"span\", { className: \"cedros-invite-unlock__halo\" }),\n          /* @__PURE__ */ n(\"span\", { className: \"cedros-invite-unlock__ring\" }),\n          ka.map((d, c) => /* @__PURE__ */ n(\"span\", {\n            className: `cedros-invite-unlock__confetti${d.round ? \" cedros-invite-unlock__confetti--round\" : \"\"}`,\n            style: {\n              \"--unlock-x\": `${d.x}px`,\n              \"--unlock-y\": `${d.y}px`,\n              \"--unlock-mid-x\": `${d.midX}px`,\n              \"--unlock-mid-y\": `${d.midY}px`,\n              \"--unlock-rotation\": `${d.rotation}deg`,\n              \"--unlock-mid-rotation\": `${d.midRotation}deg`,\n              \"--unlock-stretch\": d.stretch,\n              \"--unlock-blur\": `${d.blur}px`,\n              \"--unlock-delay\": `${d.delay}ms`,\n              \"--unlock-color\": d.color\n            }\n          }, c)),\n          /* @__PURE__ */ n(\"span\", {\n            className: \"cedros-invite-unlock__seal\",\n            children: /* @__PURE__ */ n(\"svg\", {\n              className: \"cedros-invite-unlock__check\",\n              viewBox: \"0 0 52 52\",\n              \"aria-hidden\": \"true\",\n              children: /* @__PURE__ */ n(\"path\", { d: \"M14 27.5 22.5 36 38 17\" })\n            })\n          })\n        ]\n      }),\n      /* @__PURE__ */ n(\"h2\", {\n        ref: a,\n        tabIndex: -1,\n        className: \"cedros-form-title cedros-invite-unlock__title\",\n        children: t.auth.inviteUnlockTitle\n      }),\n      /* @__PURE__ */ n(\"p\", {\n        className: \"cedros-form-subtitle cedros-invite-unlock__subtitle\",\n        children: t.auth.inviteUnlockBody\n      }),\n      s && /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-invite-unlock__reward\",\n        children: [/* @__PURE__ */ v(\"span\", {\n          className: \"cedros-invite-unlock__reward-badge\",\n          children: [/* @__PURE__ */ n(Wl, {}), s]\n        }), /* @__PURE__ */ n(\"span\", {\n          className: \"cedros-invite-unlock__reward-note\",\n          children: e?.durationMonths != null ? i(e.durationMonths === 1 ? t.auth.inviteUnlockRewardMonth : t.auth.inviteUnlockRewardMonths, { months: e.durationMonths }) : t.auth.inviteUnlockRewardNote\n        })]\n      }),\n      /* @__PURE__ */ n(\"button\", {\n        type: \"button\",\n        className: \"cedros-button cedros-button-primary cedros-button-md cedros-button-full cedros-invite-unlock__continue\",\n        onClick: r,\n        children: t.auth.inviteUnlockContinue\n      })\n    ]\n  });\n}\nfunction Wl() {\n  return /* @__PURE__ */ v(\"svg\", {\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: \"currentColor\",\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    \"aria-hidden\": \"true\",\n    children: [\n      /* @__PURE__ */ n(\"rect\", {\n        x: \"3\",\n        y: \"8\",\n        width: \"18\",\n        height: \"4\",\n        rx: \"1\"\n      }),\n      /* @__PURE__ */ n(\"path\", { d: \"M12 8v13\" }),\n      /* @__PURE__ */ n(\"path\", { d: \"M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7\" }),\n      /* @__PURE__ */ n(\"path\", { d: \"M7.5 8a2.5 2.5 0 0 1 0-5C11 3 12 8 12 8s1-5 4.5-5a2.5 2.5 0 0 1 0 5\" })\n    ]\n  });\n}\nvar Wo, ka, Hl = R((() => {\n  G(), Y(), Wo = [\n    \"#fbbf24\",\n    \"#f472b6\",\n    \"#38bdf8\",\n    \"#34d399\",\n    \"#a78bfa\"\n  ], ka = Array.from({ length: 14 }, (e, r) => {\n    const o = r / 14 * Math.PI * 2, t = 84 + r % 3 * 24, i = 140 + r % 5 * 70;\n    return {\n      x: Math.round(Math.cos(o) * t),\n      y: Math.round(Math.sin(o) * t * 0.85) - 20,\n      midX: Math.round(Math.cos(o) * t * 0.62),\n      midY: Math.round((Math.sin(o) * t * 0.85 - 20) * 0.62),\n      rotation: i,\n      midRotation: Math.round(i * 0.58),\n      stretch: Number((1.12 + t / 500).toFixed(2)),\n      blur: Number((0.55 + t / 180).toFixed(2)),\n      delay: 140 + r % 4 * 90,\n      color: Wo[r % Wo.length],\n      round: r % 3 === 0\n    };\n  });\n}));\nfunction Kl() {\n  const { config: e } = ce(), r = J(), [o, t] = _(!1), [i, a] = _(!1), [s, d] = _(null), c = B(() => new te({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    retryAttempts: e.retryAttempts\n  }), [\n    e.requestTimeout,\n    e.retryAttempts,\n    e.serverUrl\n  ]);\n  return {\n    resend: S(async (m) => {\n      t(!0), a(!1), d(null);\n      try {\n        const l = qe(typeof window > \"u\" ? void 0 : window.location.href);\n        await c.post(\"/send-verification\", {\n          email: m,\n          ...l ? { returnTo: l } : {}\n        }), a(!0);\n      } catch (l) {\n        const p = O(l, r.errors.serverError, { networkMessage: r.errors.unableToReachServer });\n        throw d(p), p;\n      } finally {\n        t(!1);\n      }\n    }, [\n      c,\n      r.errors.serverError,\n      r.errors.unableToReachServer\n    ]),\n    isLoading: o,\n    sent: i,\n    error: s,\n    clearError: () => d(null)\n  };\n}\nvar Gl = R((() => {\n  oe(), Y(), ie(), Be();\n}));\nfunction zr({ email: e, onBackToLogin: r, className: o = \"\" }) {\n  const { t, message: i } = Ne(), { resend: a, isLoading: s, sent: d, error: c, clearError: m } = Kl();\n  return /* @__PURE__ */ v(\"div\", {\n    className: `cedros-form ${o}`,\n    children: [\n      /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-form-header\",\n        role: \"status\",\n        \"aria-live\": \"polite\",\n        children: [/* @__PURE__ */ n(\"h2\", {\n          className: \"cedros-form-title\",\n          children: t.auth.checkYourEmail\n        }), /* @__PURE__ */ n(\"p\", {\n          className: \"cedros-form-subtitle\",\n          children: i(t.auth.verificationRequiredBody, { email: e })\n        })]\n      }),\n      /* @__PURE__ */ n(X, {\n        error: c,\n        onDismiss: m\n      }),\n      d && /* @__PURE__ */ n(\"p\", {\n        role: \"status\",\n        children: t.auth.verificationResent\n      }),\n      /* @__PURE__ */ n(\"button\", {\n        type: \"button\",\n        className: \"cedros-button cedros-button-secondary cedros-button-md cedros-button-full\",\n        disabled: s,\n        \"aria-busy\": s,\n        onClick: () => {\n          a(e).catch(() => {\n          });\n        },\n        children: s ? /* @__PURE__ */ v(Z, { children: [/* @__PURE__ */ n(W, {\n          size: \"sm\",\n          announce: !0,\n          label: t.buttons.sendVerification\n        }), /* @__PURE__ */ n(\"span\", { children: t.auth.sending })] }) : t.buttons.sendVerification\n      }),\n      /* @__PURE__ */ n(\"div\", {\n        className: \"cedros-form-footer\",\n        children: r ? /* @__PURE__ */ n(\"button\", {\n          type: \"button\",\n          className: \"cedros-link\",\n          onClick: r,\n          children: t.auth.backToLogin\n        }) : /* @__PURE__ */ n(\"a\", {\n          className: \"cedros-link\",\n          href: Lr(typeof window > \"u\" ? void 0 : window.location.href),\n          children: t.auth.backToLogin\n        })\n      })\n    ]\n  });\n}\nvar Mr = R((() => {\n  Y(), Gl(), le(), ee(), Be();\n}));\nfunction _o({ pendingInviteToken: e, onSuccess: r, onBackToLogin: o, className: t = \"\" }) {\n  const { redeemInviteCode: i, completeInviteRedemption: a, isLoading: s, error: d, clearError: c } = yo(), m = J(), [l, p] = _(\"\"), [f, u] = _(null), [g, x] = _(!1), [k, h] = _(null), [y, b] = _(null), w = M(!1), A = Lr(typeof window > \"u\" ? void 0 : window.location.href), C = () => {\n    if (!(!f || w.current)) {\n      w.current = !0;\n      try {\n        a(f);\n      } catch {\n        u(null), x(!0);\n        return;\n      }\n      if (rr(f)) {\n        b(f.user.email ?? \"\"), u(null);\n        return;\n      }\n      r?.(f);\n    }\n  }, T = l.trim().length > 0 && !s, E = async (N) => {\n    if (N.preventDefault(), !!T)\n      try {\n        const I = await i(e, l.trim(), { deferLoginSuccess: !0 });\n        \"mfaRequired\" in I ? h(I.mfaToken) : u(I);\n      } catch {\n      }\n  };\n  return g ? /* @__PURE__ */ v(\"div\", {\n    className: `cedros-form ${t}`,\n    children: [/* @__PURE__ */ n(X, {\n      error: d,\n      autoFocus: !0\n    }), /* @__PURE__ */ n(\"div\", {\n      className: \"cedros-form-footer\",\n      children: o ? /* @__PURE__ */ n(\"button\", {\n        type: \"button\",\n        className: \"cedros-link\",\n        onClick: o,\n        children: m.auth.backToLogin\n      }) : /* @__PURE__ */ n(\"a\", {\n        className: \"cedros-link\",\n        href: A,\n        children: m.auth.backToLogin\n      })\n    })]\n  }) : k ? /* @__PURE__ */ n(fr, {\n    mfaToken: k,\n    onSuccess: r,\n    onBack: o ?? (() => window.location.assign(A)),\n    className: t\n  }) : f ? /* @__PURE__ */ n(Vl, {\n    discount: f.inviteDiscount,\n    onContinue: C,\n    className: t\n  }) : y !== null ? /* @__PURE__ */ n(zr, {\n    email: y,\n    onBackToLogin: o,\n    className: t\n  }) : /* @__PURE__ */ v(\"form\", {\n    onSubmit: E,\n    className: `cedros-form ${t}`,\n    children: [\n      /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-form-header\",\n        children: [/* @__PURE__ */ n(\"h2\", {\n          className: \"cedros-form-title\",\n          children: m.auth.inviteCodeRequiredTitle\n        }), /* @__PURE__ */ n(\"p\", {\n          className: \"cedros-form-subtitle\",\n          children: m.auth.inviteCodeRequiredBody\n        })]\n      }),\n      /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-form-field\",\n        children: [/* @__PURE__ */ n(\"label\", {\n          htmlFor: \"invite-code-redeem\",\n          className: \"cedros-label\",\n          children: m.auth.inviteCode\n        }), /* @__PURE__ */ n(\"input\", {\n          id: \"invite-code-redeem\",\n          type: \"text\",\n          className: \"cedros-input\",\n          value: l,\n          onChange: (N) => p(N.target.value),\n          placeholder: m.auth.enterInviteCode,\n          autoComplete: \"one-time-code\",\n          disabled: s\n        })]\n      }),\n      /* @__PURE__ */ n(X, {\n        error: d,\n        onDismiss: c\n      }),\n      /* @__PURE__ */ n(\"button\", {\n        type: \"submit\",\n        className: \"cedros-button cedros-button-primary cedros-button-md cedros-button-full\",\n        disabled: !T,\n        \"aria-busy\": s,\n        children: s ? /* @__PURE__ */ v(Z, { children: [/* @__PURE__ */ n(W, {\n          size: \"sm\",\n          announce: !0,\n          label: m.common.continue\n        }), /* @__PURE__ */ n(\"span\", { children: m.messages.verifyingSignature })] }) : m.common.continue\n      }),\n      /* @__PURE__ */ n(\"div\", {\n        className: \"cedros-form-footer\",\n        children: o ? /* @__PURE__ */ n(\"button\", {\n          type: \"button\",\n          className: \"cedros-link\",\n          onClick: o,\n          children: m.auth.backToLogin\n        }) : /* @__PURE__ */ n(\"a\", {\n          className: \"cedros-link\",\n          href: A,\n          children: m.auth.backToLogin\n        })\n      })\n    ]\n  });\n}\nvar Ao = R((() => {\n  wo(), ee(), le(), Hl(), Mr(), hr(), Y(), Be();\n}));\nfunction Yl({ onSuccess: e, onSwitchToRegister: r, onForgotPassword: o, className: t = \"\" }) {\n  const i = J(), a = he(), { login: s, isLoading: d, error: c, clearError: m } = yo(), [l, p] = _(\"\"), [f, u] = _(\"\"), [g, x] = _(null), [k, h] = _(\"\"), [y, b] = _(null), [w, A] = _(!1), C = async (N) => {\n    N.preventDefault();\n    try {\n      const I = await s(l, f);\n      I.mfaRequired ? (x(I.mfaToken), h(I.email)) : \"inviteCodeRequired\" in I ? b(I.pendingInviteToken) : (p(\"\"), u(\"\"), e?.(I.response));\n    } catch {\n    }\n  }, T = (N) => {\n    x(null), h(\"\"), e?.(N);\n  }, E = () => {\n    x(null), h(\"\"), u(\"\");\n  };\n  return g ? /* @__PURE__ */ n(Ie, {\n    stateKey: \"mfa\",\n    order: _r,\n    focusOnChange: !0,\n    children: /* @__PURE__ */ n(fr, {\n      mfaToken: g,\n      email: k,\n      onSuccess: T,\n      onBack: E,\n      className: t\n    })\n  }) : y ? /* @__PURE__ */ n(Ie, {\n    stateKey: \"invite\",\n    order: _r,\n    focusOnChange: !0,\n    children: /* @__PURE__ */ n(_o, {\n      pendingInviteToken: y,\n      onSuccess: e,\n      className: t\n    })\n  }) : c?.code === \"EMAIL_NOT_VERIFIED\" || w ? /* @__PURE__ */ n(Ie, {\n    stateKey: \"credentials\",\n    order: _r,\n    focusOnChange: !0,\n    children: /* @__PURE__ */ n(zr, {\n      email: l,\n      onBackToLogin: () => {\n        m(), u(\"\"), A(!1);\n      },\n      className: t\n    })\n  }) : /* @__PURE__ */ n(Ie, {\n    stateKey: \"credentials\",\n    order: _r,\n    children: /* @__PURE__ */ v(\"form\", {\n      onSubmit: C,\n      className: `cedros-form ${t}`,\n      children: [\n        /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-form-field\",\n          children: [/* @__PURE__ */ n(\"label\", {\n            htmlFor: `${a}-email`,\n            className: \"cedros-label\",\n            children: i.auth.email\n          }), /* @__PURE__ */ n(\"input\", {\n            id: `${a}-email`,\n            type: \"email\",\n            className: \"cedros-input\",\n            value: l,\n            onChange: (N) => p(N.target.value),\n            placeholder: i.auth.emailPlaceholder,\n            required: !0,\n            \"aria-required\": \"true\",\n            autoComplete: \"username\",\n            name: \"username\",\n            disabled: d\n          })]\n        }),\n        /* @__PURE__ */ n(\"div\", {\n          className: \"cedros-form-field\",\n          children: /* @__PURE__ */ n(Re, {\n            value: f,\n            onChange: (N) => u(N.target.value),\n            placeholder: i.auth.enterPassword,\n            required: !0,\n            autoComplete: \"current-password\",\n            name: \"password\",\n            disabled: d,\n            labelAction: o ? /* @__PURE__ */ n(\"button\", {\n              type: \"button\",\n              className: \"cedros-link cedros-link-muted cedros-link-sm\",\n              onClick: o,\n              children: i.auth.forgotYourPassword\n            }) : void 0\n          })\n        }),\n        /* @__PURE__ */ n(X, {\n          error: c,\n          onDismiss: m\n        }),\n        c?.code === \"INVALID_CREDENTIALS\" && /* @__PURE__ */ n(\"button\", {\n          type: \"button\",\n          className: \"cedros-link\",\n          disabled: d || !l,\n          onClick: () => {\n            u(\"\"), m(), A(!0);\n          },\n          children: i.buttons.sendVerification\n        }),\n        /* @__PURE__ */ n(\"button\", {\n          type: \"submit\",\n          className: \"cedros-button cedros-button-primary cedros-button-md cedros-button-full\",\n          disabled: d || !l || !f,\n          \"aria-busy\": d,\n          children: d ? /* @__PURE__ */ v(Z, { children: [/* @__PURE__ */ n(W, {\n            size: \"sm\",\n            announce: !0,\n            label: i.buttons.signIn\n          }), /* @__PURE__ */ n(\"span\", { children: i.messages.signingIn })] }) : i.buttons.signIn\n        }),\n        r && /* @__PURE__ */ v(\"p\", {\n          className: \"cedros-form-footer\",\n          children: [\n            i.auth.dontHaveAccount,\n            \" \",\n            /* @__PURE__ */ n(\"button\", {\n              type: \"button\",\n              className: \"cedros-link cedros-link-muted\",\n              onClick: r,\n              children: i.buttons.signUp\n            })\n          ]\n        })\n      ]\n    })\n  });\n}\nvar _r, Xl = R((() => {\n  wo(), nr(), Ao(), Mr(), ee(), le(), hr(), Y(), pr(), _r = [\n    \"credentials\",\n    \"mfa\",\n    \"invite\"\n  ];\n}));\nfunction Jl(e) {\n  const r = tt(e, \"response\"), o = tt(r.settings, \"settings\"), t = Object.entries(o), i = t.every(([, c]) => Array.isArray(c)), a = t.every(([, c]) => eu(c));\n  if (!i && !a) throw new Error(\"settings must contain grouped setting arrays or legacy scalar values\");\n  const s = i ? Object.fromEntries(t.map(([c, m]) => [c, m.map((l) => Ql(l))])) : Zl(t), d = ru(r.revision);\n  return {\n    settings: s,\n    ...d !== void 0 ? { revision: d } : {},\n    ...typeof r.etag == \"string\" ? { etag: r.etag } : {}\n  };\n}\nfunction Ql(e) {\n  const r = tt(e, \"setting\");\n  if (typeof r.key != \"string\" || typeof r.value != \"string\") throw new Error(\"setting key and value must be strings\");\n  if (typeof r.isSecret != \"boolean\") throw new Error(`setting ${r.key} must declare isSecret`);\n  if (typeof r.updatedAt != \"string\") throw new Error(`setting ${r.key} must declare updatedAt`);\n  const o = ou(r.hasValue, \"hasValue\", r.key), t = tu(r.applicationMode, r.key);\n  return {\n    key: r.key,\n    value: r.value,\n    description: Ho(r.description, \"description\", r.key),\n    isSecret: r.isSecret,\n    ...o !== void 0 ? { hasValue: o } : {},\n    ...t ? { applicationMode: t } : {},\n    ...r.validationError !== void 0 ? { validationError: Ho(r.validationError, \"validationError\", r.key) } : {},\n    updatedAt: r.updatedAt,\n    updatedBy: Ho(r.updatedBy, \"updatedBy\", r.key)\n  };\n}\nfunction Zl(e) {\n  return { legacy: e.map(([r, o]) => {\n    const t = xa.has(r);\n    return {\n      key: r,\n      value: t ? \"\" : String(o ?? \"\"),\n      description: null,\n      isSecret: t,\n      hasValue: o !== null && String(o).length > 0,\n      updatedAt: \"\",\n      updatedBy: null\n    };\n  }) };\n}\nfunction tt(e, r) {\n  if (!e || typeof e != \"object\" || Array.isArray(e)) throw new Error(`${r} must be an object`);\n  return e;\n}\nfunction eu(e) {\n  return e === null || typeof e == \"string\" || typeof e == \"number\" || typeof e == \"boolean\";\n}\nfunction ru(e) {\n  if (typeof e == \"number\" && Number.isFinite(e)) return e;\n  if (typeof e != \"string\") return;\n  const r = Number(e);\n  return Number.isFinite(r) ? r : void 0;\n}\nfunction Ho(e, r, o) {\n  if (e == null) return null;\n  if (typeof e == \"string\") return e;\n  throw new Error(`setting ${o} ${r} must be a string or null`);\n}\nfunction ou(e, r, o) {\n  if (e !== void 0) {\n    if (typeof e == \"boolean\") return e;\n    throw new Error(`setting ${o} ${r} must be a boolean`);\n  }\n}\nfunction tu(e, r) {\n  if (e !== void 0) {\n    if (e === \"hot\" || e === \"restart\" || e === \"host-owned\" || e === \"unsupported\") return e;\n    throw new Error(`setting ${r} applicationMode is invalid`);\n  }\n}\nfunction mn(e) {\n  const r = {};\n  for (const o of e) r[o.key] = o.value;\n  return r;\n}\nvar xa, _a, nu = R((() => {\n  ie(), xa = /* @__PURE__ */ new Set([\n    \"signup_access_code\",\n    \"email_smtp_password\",\n    \"image_storage_access_key\",\n    \"image_storage_secret_key\",\n    \"server_metrics_api_key\",\n    \"webhook_secret\"\n  ]), _a = class {\n    client;\n    constructor(e, r, o, t) {\n      this.client = new te({\n        baseUrl: e,\n        timeoutMs: r,\n        retryAttempts: o,\n        getAccessToken: t\n      });\n    }\n    async getSettings() {\n      try {\n        return await this.client.get(\"/admin/settings\", {\n          cacheTtlMs: 5e3,\n          validator: Jl\n        });\n      } catch (e) {\n        throw O(e, \"Failed to fetch system settings\");\n      }\n    }\n    async updateSettings(e) {\n      try {\n        return await this.client.patch(\"/admin/settings\", { settings: e });\n      } catch (r) {\n        throw O(r, \"Failed to update system settings\");\n      }\n    }\n    async autosaveSettings(e, r) {\n      if (!r.etag) return this.autosaveViaSettingsPatch(e);\n      try {\n        const o = await this.client.patch(\"/admin/settings/autosave\", {\n          autosave: !0,\n          clientMutationId: r.clientMutationId,\n          editingSessionId: r.editingSessionId,\n          clientSeq: r.clientSeq,\n          updateMask: r.updateMask ?? e.map((t) => t.key),\n          patch: e,\n          schemaVersion: \"v1\"\n        }, {\n          skipRetry: !0,\n          headers: {\n            \"If-Match\": r.etag,\n            \"Idempotency-Key\": r.idempotencyKey\n          }\n        });\n        return {\n          resourceId: \"global\",\n          revision: o.revision,\n          etag: o.etag,\n          canonicalPatchOrResource: mn(o.updated)\n        };\n      } catch (o) {\n        throw O(o, \"Failed to autosave system settings\");\n      }\n    }\n    async autosaveViaSettingsPatch(e) {\n      try {\n        const r = e.length > 1 ? e.map((a) => [a]) : [e], o = [];\n        let t, i;\n        for (const a of r) {\n          const s = await this.client.patch(\"/admin/settings\", { settings: a }, { skipRetry: !0 });\n          o.push(...s.updated), t = s.revision ?? t, i = s.etag ?? i;\n        }\n        return {\n          resourceId: \"global\",\n          revision: t,\n          etag: i,\n          canonicalPatchOrResource: mn(o)\n        };\n      } catch (r) {\n        throw O(r, \"Failed to autosave system settings\");\n      }\n    }\n  };\n}));\nfunction iu() {\n  return Ue(Aa);\n}\nvar Aa, au = R((() => {\n  Aa = Ar(null);\n}));\nfunction su(e) {\n  return e ? {\n    config: e.config,\n    user: e.user,\n    authState: e.authState,\n    _internal: { getAccessToken: e.getAccessToken }\n  } : null;\n}\nfunction du() {\n  const e = iu();\n  return B(() => su(e), [e]);\n}\nvar cu = R((() => {\n  au();\n}));\nfunction lu(e) {\n  const r = e?.config, o = e?._internal.getAccessToken;\n  return B(() => r ? new _a(r.serverUrl, r.requestTimeout, r.retryAttempts, o) : null, [r, o]);\n}\nfunction uu() {\n  return mu(du());\n}\nfunction mu(e) {\n  const [r, o] = _({}), [t, i] = _(!1), [a, s] = _(!1), [d, c] = _(null), [m, l] = _(), [p, f] = _(), u = M(0), g = e?.authState ?? \"unauthenticated\", x = lu(e), k = M(x);\n  k.current = x;\n  const h = S(async () => {\n    const C = ++u.current, T = k.current;\n    if (!T || g !== \"authenticated\") {\n      o({}), l(void 0), f(void 0), i(!1);\n      return;\n    }\n    i(!0), c(null);\n    try {\n      const E = await T.getSettings();\n      if (C !== u.current) return;\n      o(E.settings), Ko(E, l, f);\n    } catch (E) {\n      if (C !== u.current) return;\n      c(E instanceof Error ? E : /* @__PURE__ */ new Error(\"Failed to fetch settings\"));\n    } finally {\n      C === u.current && i(!1);\n    }\n  }, [g]), y = S(async (C) => {\n    const T = k.current;\n    if (!T) throw new Error(\"Login admin hooks require CedrosLoginAdminRuntimeProvider\");\n    if (g !== \"authenticated\") throw new Error(\"Not authenticated\");\n    s(!0), c(null);\n    try {\n      const E = await T.updateSettings(C);\n      return o((N) => gu(N, E.updated)), Ko(E, l, f), E;\n    } catch (E) {\n      const N = E instanceof Error ? E : /* @__PURE__ */ new Error(\"Failed to update settings\");\n      throw c(N), N;\n    } finally {\n      s(!1);\n    }\n  }, [g]), b = S(async (C, T) => {\n    const E = k.current;\n    if (!E) throw new Error(\"Login admin hooks require CedrosLoginAdminRuntimeProvider\");\n    if (g !== \"authenticated\") throw new Error(\"Not authenticated\");\n    const N = await E.autosaveSettings(C, T);\n    return Ko(N, l, f), N.canonicalPatchOrResource && o((I) => pu(I, N.canonicalPatchOrResource ?? {})), N;\n  }, [g]), w = S((C) => {\n    for (const T of Object.values(r)) {\n      const E = T.find((N) => N.key === C);\n      if (E) return E.value;\n    }\n  }, [r]), A = g === \"authenticated\" && u.current === 0;\n  return {\n    settings: r,\n    isLoading: t || A,\n    isUpdating: a,\n    error: d,\n    revision: m,\n    etag: p,\n    fetchSettings: h,\n    updateSettings: y,\n    autosaveSettings: b,\n    getValue: w\n  };\n}\nfunction Ko(e, r, o) {\n  if (typeof e.revision == \"number\") r(e.revision);\n  else if (typeof e.revision == \"string\") {\n    const t = Number(e.revision);\n    r(Number.isFinite(t) ? t : void 0);\n  }\n  e.etag && o(e.etag);\n}\nfunction gu(e, r) {\n  const o = new Map(r.map((t) => [t.key, t]));\n  return Ca(e, (t) => o.get(t.key) ?? t);\n}\nfunction pu(e, r) {\n  return Ca(e, (o) => Object.prototype.hasOwnProperty.call(r, o.key) ? {\n    ...o,\n    value: r[o.key] ?? o.value\n  } : o);\n}\nfunction Ca(e, r) {\n  return Object.fromEntries(Object.entries(e).map(([o, t]) => [o, t.map(r)]));\n}\nvar fu = R((() => {\n  nu(), cu();\n}));\nfunction Ea() {\n  const { settings: e, isLoading: r, error: o, fetchSettings: t, getValue: i } = uu();\n  D(() => {\n    t();\n  }, [t]);\n  const a = S((d) => d === void 0 ? !1 : d === \"true\" || d === \"1\", []), s = B(() => Object.keys(e).length === 0 ? Sa : {\n    organizations: a(i(\"feature_organizations\")),\n    sso: a(i(\"feature_sso\")),\n    mfa: a(i(\"feature_mfa\")),\n    mfaRequired: a(i(\"security_require_mfa\")),\n    signupAccessCodeRequired: a(i(\"signup_access_code_enabled\"))\n  }, [\n    e,\n    i,\n    a\n  ]);\n  return {\n    features: s,\n    isLoading: r,\n    error: o,\n    refetch: S(async () => {\n      await t();\n    }, [t]),\n    isEnabled: S((d) => s[d], [s])\n  };\n}\nvar Sa, Ra = R((() => {\n  G(), fu(), Sa = {\n    organizations: !1,\n    sso: !1,\n    mfa: !1,\n    mfaRequired: !1,\n    signupAccessCodeRequired: !1\n  };\n}));\nfunction nt({ availability: e }) {\n  const { t: r, message: o, number: t, date: i } = Ne(), a = uo(e);\n  if (!a) return null;\n  const s = a.remaining === 0, d = r.auth.signupAvailabilityPeriods[a.period], c = i(a.resetsAt, {\n    year: \"numeric\",\n    month: \"short\",\n    day: \"numeric\",\n    hour: \"numeric\",\n    minute: \"2-digit\",\n    timeZoneName: \"short\"\n  }), m = s ? o(r.auth.signupAvailabilityFull, { resetsAt: c }) : o(r.auth.signupAvailabilityRemaining, {\n    remaining: t(a.remaining),\n    limit: t(a.limit),\n    period: d\n  });\n  return /* @__PURE__ */ v(\"div\", {\n    className: \"cedros-signup-availability\",\n    \"data-full\": s ? \"true\" : void 0,\n    role: \"status\",\n    \"aria-live\": \"polite\",\n    \"data-testid\": \"signup-availability\",\n    children: [/* @__PURE__ */ n(\"span\", {\n      className: \"cedros-signup-availability-dot\",\n      \"aria-hidden\": \"true\"\n    }), /* @__PURE__ */ v(\"span\", { children: [\n      /* @__PURE__ */ n(\"strong\", { children: m }),\n      \" \",\n      !s && /* @__PURE__ */ n(\"span\", { children: r.auth.signupAvailabilityDisclaimer })\n    ] })]\n  });\n}\nvar Na = R((() => {\n  Y(), mo();\n}));\nfunction hu({ onSuccess: e, onAccountCreated: r, onSwitchToLogin: o, className: t = \"\", accessCode: i, showSignupAvailability: a = !0, onRegistrationPendingChange: s }) {\n  const d = J(), c = he(), { config: m } = ce(), { register: l, isLoading: p, error: f, clearError: u } = yo(), { features: g } = Ea(), [x, k] = _(\"\"), [h, y] = _(\"\"), [b, w] = _(\"\"), [A, C] = _(\"\"), [T, E] = _(null), [N, I] = _(null), [L, z] = _(\"\"), P = i ?? L, [U, j] = _(null), [ae, ne] = _(null), ue = m.forms?.termsOfService, q = m.forms?.emailOptIn, $ = ue?.show ?? !1, Q = ue?.required ?? !0, se = ue?.defaultChecked ?? !1, K = ue?.label ?? `${d.auth.termsAgreementPrefix} {terms}`, V = ue?.url, me = Ln(V), pe = q?.show ?? !1, fe = q?.defaultChecked ?? !1, be = q?.label ?? d.auth.emailOptInDefault, [ve, re] = _(se), [ge, we] = _(fe), Pe = b === A, vr = U?.isValid ?? !1, Io = !$ || !Q || ve, yr = m.signupAccessCodeRequired ?? g?.signupAccessCodeRequired ?? !1, ir = va(m.signupAvailability), Xe = ir?.remaining === 0, wr = h && b && A && Pe && vr && Io && (!yr || P.trim()) && !Xe && !p, ar = async (de) => {\n    if (de.preventDefault(), ne(null), $ && Q && !ve) {\n      ne({\n        code: \"VALIDATION_ERROR\",\n        message: d.auth.termsRequiredError\n      });\n      return;\n    }\n    if (wr) {\n      s?.(!0);\n      try {\n        const _e = await l(h, b, x || void 0, void 0, yr && P.trim() || void 0);\n        if (\"registrationPending\" in _e) {\n          I(h.trim());\n          return;\n        }\n        if (_e.inviteCodeRequired && _e.pendingInviteToken) {\n          r?.(), E(_e.pendingInviteToken);\n          return;\n        }\n        if (rr(_e)) {\n          r?.(), w(\"\"), C(\"\"), I(_e.user.email ?? h);\n          return;\n        }\n        e?.(_e);\n      } catch {\n        s?.(!1);\n      } finally {\n        w(\"\"), C(\"\");\n      }\n    }\n  }, Lo = f || ae, Po = () => {\n    u(), ne(null);\n  }, H = o ? /* @__PURE__ */ v(\"p\", {\n    className: \"cedros-form-footer\",\n    children: [\n      d.auth.alreadyHaveAccount,\n      \" \",\n      /* @__PURE__ */ n(\"button\", {\n        type: \"button\",\n        className: \"cedros-link cedros-link-muted\",\n        onClick: o,\n        children: d.buttons.signIn\n      })\n    ]\n  }) : null;\n  return T ? /* @__PURE__ */ n(_o, {\n    pendingInviteToken: T,\n    onSuccess: e,\n    onBackToLogin: o,\n    className: t\n  }) : N ? /* @__PURE__ */ n(zr, {\n    email: N,\n    onBackToLogin: o,\n    className: t\n  }) : Xe ? /* @__PURE__ */ v(\"div\", {\n    className: `cedros-form ${t}`,\n    children: [a && /* @__PURE__ */ n(nt, { availability: ir }), H]\n  }) : /* @__PURE__ */ v(\"form\", {\n    onSubmit: ar,\n    className: `cedros-form ${t}`,\n    children: [\n      a && /* @__PURE__ */ n(nt, { availability: ir }),\n      /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-form-field\",\n        children: [/* @__PURE__ */ v(\"label\", {\n          htmlFor: `${c}-name`,\n          className: \"cedros-label\",\n          children: [\n            d.auth.name,\n            \" \",\n            /* @__PURE__ */ n(\"span\", {\n              className: \"cedros-optional\",\n              children: d.common.optional\n            })\n          ]\n        }), /* @__PURE__ */ n(\"input\", {\n          id: `${c}-name`,\n          type: \"text\",\n          className: \"cedros-input\",\n          value: x,\n          onChange: (de) => k(de.target.value),\n          placeholder: d.auth.namePlaceholder,\n          autoComplete: \"name\",\n          disabled: p\n        })]\n      }),\n      /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-form-field\",\n        children: [/* @__PURE__ */ n(\"label\", {\n          htmlFor: `${c}-register-email`,\n          className: \"cedros-label\",\n          children: d.auth.email\n        }), /* @__PURE__ */ n(\"input\", {\n          id: `${c}-register-email`,\n          type: \"email\",\n          className: \"cedros-input\",\n          value: h,\n          onChange: (de) => y(de.target.value),\n          placeholder: d.auth.emailPlaceholder,\n          required: !0,\n          \"aria-required\": \"true\",\n          autoComplete: \"email\",\n          disabled: p\n        })]\n      }),\n      /* @__PURE__ */ n(\"div\", {\n        className: \"cedros-form-field\",\n        children: /* @__PURE__ */ n(Re, {\n          value: b,\n          onChange: (de) => w(de.target.value),\n          placeholder: d.auth.createPassword,\n          required: !0,\n          autoComplete: \"new-password\",\n          disabled: p,\n          showStrengthMeter: !0,\n          onValidationChange: j\n        })\n      }),\n      /* @__PURE__ */ n(\"div\", {\n        className: \"cedros-form-field\",\n        children: /* @__PURE__ */ n(Re, {\n          label: d.auth.confirmPassword,\n          value: A,\n          onChange: (de) => C(de.target.value),\n          placeholder: d.auth.confirmYourPassword,\n          required: !0,\n          autoComplete: \"new-password\",\n          disabled: p,\n          \"aria-invalid\": A && !Pe ? \"true\" : void 0,\n          error: A && !Pe ? d.messages.passwordsDoNotMatch : void 0\n        })\n      }),\n      yr && i === void 0 && /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-form-field\",\n        children: [/* @__PURE__ */ n(\"label\", {\n          htmlFor: `${c}-register-access-code`,\n          className: \"cedros-label\",\n          children: d.auth.accessCode\n        }), /* @__PURE__ */ n(\"input\", {\n          id: `${c}-register-access-code`,\n          type: \"text\",\n          className: \"cedros-input\",\n          value: L,\n          onChange: (de) => z(de.target.value),\n          placeholder: d.auth.enterAccessCode,\n          required: !0,\n          \"aria-required\": \"true\",\n          disabled: p,\n          autoComplete: \"off\"\n        })]\n      }),\n      $ && /* @__PURE__ */ n(\"div\", {\n        className: \"cedros-form-field cedros-checkbox-field\",\n        children: /* @__PURE__ */ v(\"label\", {\n          className: \"cedros-checkbox-label\",\n          children: [/* @__PURE__ */ n(\"input\", {\n            type: \"checkbox\",\n            className: \"cedros-checkbox\",\n            checked: ve,\n            onChange: (de) => re(de.target.checked),\n            disabled: p,\n            \"aria-required\": Q\n          }), /* @__PURE__ */ v(\"span\", {\n            className: \"cedros-checkbox-text\",\n            children: [me ? /* @__PURE__ */ v(Z, { children: [\n              K.split(\"{terms}\")[0].trim(),\n              \" \",\n              /* @__PURE__ */ n(\"a\", {\n                href: me,\n                target: \"_blank\",\n                rel: \"noopener noreferrer\",\n                className: \"cedros-link\",\n                children: d.auth.termsOfService\n              }),\n              K.split(\"{terms}\")[1] ? ` ${K.split(\"{terms}\")[1].trim()}` : \"\"\n            ] }) : K.replace(\"{terms}\", d.auth.termsOfService), Q && /* @__PURE__ */ n(\"span\", {\n              className: \"cedros-required\",\n              children: \"*\"\n            })]\n          })]\n        })\n      }),\n      pe && /* @__PURE__ */ n(\"div\", {\n        className: \"cedros-form-field cedros-checkbox-field\",\n        children: /* @__PURE__ */ v(\"label\", {\n          className: \"cedros-checkbox-label\",\n          children: [/* @__PURE__ */ n(\"input\", {\n            type: \"checkbox\",\n            className: \"cedros-checkbox\",\n            checked: ge,\n            onChange: (de) => we(de.target.checked),\n            disabled: p\n          }), /* @__PURE__ */ n(\"span\", {\n            className: \"cedros-checkbox-text\",\n            children: be\n          })]\n        })\n      }),\n      /* @__PURE__ */ n(X, {\n        error: Lo,\n        onDismiss: Po\n      }),\n      f?.code === \"EMAIL_EXISTS\" && /* @__PURE__ */ n(\"button\", {\n        type: \"button\",\n        className: \"cedros-link\",\n        disabled: p || !h,\n        onClick: () => {\n          w(\"\"), C(\"\"), s?.(!0), I(h);\n        },\n        children: d.buttons.sendVerification\n      }),\n      /* @__PURE__ */ n(\"button\", {\n        type: \"submit\",\n        className: \"cedros-button cedros-button-primary cedros-button-md cedros-button-full\",\n        disabled: !wr,\n        \"aria-busy\": p,\n        children: p ? /* @__PURE__ */ v(Z, { children: [/* @__PURE__ */ n(W, {\n          size: \"sm\",\n          announce: !0,\n          label: d.buttons.createAccount\n        }), /* @__PURE__ */ n(\"span\", { children: d.messages.creatingAccount })] }) : d.buttons.createAccount\n      }),\n      H\n    ]\n  });\n}\nvar bu = R((() => {\n  oe(), wo(), Ra(), nr(), Ao(), Mr(), ee(), le(), Na(), zn(), wa(), Y();\n}));\nfunction Ta({ onSuccess: e, onEnrollmentRequired: r, className: o = \"\", defaultTab: t = \"login\", signupPlanSelection: i = !1, getHasWallets: a, renderSolanaButton: s }) {\n  const { config: d, socialButtonOrder: c, isFeatureEnabled: m, user: l, authState: p, logout: f } = ce(), { t: u, message: g } = Ne(), x = he(), { features: k } = Ea(), [h, y] = _(t), [b, w] = _(!1), [A, C] = _(\"form\"), [T, E] = _(() => a ? a() : !1), [N, I] = _(\"\"), [L, z] = _(!1);\n  D(() => {\n    h === \"login\" && z(!1);\n  }, [h]);\n  const [P, U] = _(null), [j, ae] = _(null), [ne, ue] = _(null), [q, $] = _(null), [Q, se] = _(null), K = S((H) => {\n    if (H?.inviteCodeRequired) {\n      H.pendingInviteToken ? $(H.pendingInviteToken) : U(u.errors.serverError);\n      return;\n    }\n    if (H && rr(H)) {\n      se(H.user.email ?? \"\");\n      return;\n    }\n    if (H?.authenticated === !1) {\n      U(u.errors.serverError);\n      return;\n    }\n    if ($(null), se(null), H?.postLogin?.action === \"setup_mfa\") {\n      r ? r(H) : ue(H);\n      return;\n    }\n    e?.(H);\n  }, [\n    e,\n    r,\n    u.errors.serverError\n  ]), V = d.signupAccessCodeRequired ?? k?.signupAccessCodeRequired ?? !1, me = va(d.signupAvailability), pe = p === \"idle\" || p === \"loading\", fe = l?.email ?? l?.name ?? l?.username ?? l?.id ?? \"\", be = S((H) => {\n    U(H.message);\n  }, []), ve = S((H) => {\n    U(null), ae(H.mfaToken);\n  }, []);\n  D(() => {\n    if (!a) return;\n    const H = () => E(a());\n    return H(), window.addEventListener(\"load\", H), window.addEventListener(\"focus\", H), () => {\n      window.removeEventListener(\"load\", H), window.removeEventListener(\"focus\", H);\n    };\n  }, [a]);\n  const re = d.forms?.forgotPassword?.mode ?? (m(\"instantLink\") ? \"instantLink\" : \"reset\"), ge = S((H) => {\n    H !== h && w(!1), y(H);\n  }, [h]), we = S((H) => {\n    const de = Qe.indexOf(h);\n    let _e = de;\n    switch (H.key) {\n      case \"ArrowLeft\":\n      case \"ArrowUp\":\n        _e = de === 0 ? Qe.length - 1 : de - 1;\n        break;\n      case \"ArrowRight\":\n      case \"ArrowDown\":\n        _e = de === Qe.length - 1 ? 0 : de + 1;\n        break;\n      case \"Home\":\n        _e = 0;\n        break;\n      case \"End\":\n        _e = Qe.length - 1;\n        break;\n      default:\n        return;\n    }\n    H.preventDefault();\n    const Vt = Qe[_e];\n    ge(Vt), document.getElementById(`${x}-tab-${Vt}`)?.focus();\n  }, [\n    h,\n    x,\n    ge\n  ]);\n  if (ne) return /* @__PURE__ */ n(Lt, {\n    onSignedOut: () => ue(null),\n    onSuccess: (H) => {\n      e?.({\n        ...ne,\n        postLogin: H?.postLogin\n      });\n    }\n  });\n  if (q) return /* @__PURE__ */ n(_o, {\n    pendingInviteToken: q,\n    onSuccess: K,\n    onBackToLogin: () => $(null),\n    className: o\n  });\n  if (Q !== null) return /* @__PURE__ */ n(zr, {\n    email: Q,\n    onBackToLogin: () => se(null),\n    className: o\n  });\n  if (pe) return /* @__PURE__ */ n(\"div\", {\n    className: \"cedros-login-form-shell\",\n    children: /* @__PURE__ */ n(\"div\", {\n      className: `cedros-login-form ${o}`,\n      children: /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-login-session-status\",\n        role: \"status\",\n        \"aria-live\": \"polite\",\n        children: [/* @__PURE__ */ n(W, { size: \"sm\" }), /* @__PURE__ */ n(\"span\", {\n          className: \"cedros-login-session-message\",\n          children: u.common.loading\n        })]\n      })\n    })\n  });\n  if (p === \"authenticated\" && l) return /* @__PURE__ */ n(\"div\", {\n    className: \"cedros-login-form-shell\",\n    children: /* @__PURE__ */ n(\"div\", {\n      className: `cedros-login-form ${o}`,\n      children: /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-login-session-status\",\n        children: [\n          /* @__PURE__ */ n(\"h2\", {\n            className: \"cedros-login-session-title\",\n            children: u.auth.signedIn\n          }),\n          fe && /* @__PURE__ */ n(\"p\", {\n            className: \"cedros-login-session-message\",\n            children: g(u.auth.continueAs, { account: fe })\n          }),\n          /* @__PURE__ */ v(\"div\", {\n            className: \"cedros-login-session-actions\",\n            children: [/* @__PURE__ */ n(\"a\", {\n              className: \"cedros-button cedros-button-primary cedros-button-md\",\n              href: \"/profile\",\n              children: u.buttons.manageAccount\n            }), /* @__PURE__ */ n(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-outline cedros-button-md\",\n              onClick: () => {\n                f();\n              },\n              children: u.buttons.signOut\n            })]\n          })\n        ]\n      })\n    })\n  });\n  if (j) return /* @__PURE__ */ n(\"div\", {\n    className: \"cedros-login-form-shell\",\n    children: /* @__PURE__ */ n(\"div\", {\n      className: `cedros-login-form ${o}`,\n      children: /* @__PURE__ */ n(fr, {\n        mfaToken: j,\n        onSuccess: (H) => {\n          ae(null), K(H);\n        },\n        onBack: () => ae(null)\n      })\n    })\n  });\n  const Pe = m(\"email\"), vr = m(\"google\") && d.googleClientId, Io = m(\"apple\") && d.appleClientId, yr = !!s && m(\"solana\") && T, ir = m(\"webauthn\"), Xe = h === \"register\" && N || void 0, wr = yu(c), ar = [\n    ir ? Dr(\"webauthn\", /* @__PURE__ */ n(Mi, {\n      mode: h,\n      onSuccess: K,\n      onMfaRequired: ve,\n      onError: be,\n      accessCode: Xe\n    }, h)) : null,\n    vr ? Dr(\"google\", /* @__PURE__ */ n(pi, {\n      onSuccess: K,\n      onMfaRequired: ve,\n      onError: be,\n      accessCode: Xe\n    })) : null,\n    Io ? Dr(\"apple\", /* @__PURE__ */ n(bi, {\n      onSuccess: K,\n      onMfaRequired: ve,\n      onError: be,\n      accessCode: Xe\n    })) : null,\n    yr ? Dr(\"solana\", s?.({\n      onSuccess: K,\n      onMfaRequired: ve,\n      onError: be,\n      accessCode: Xe\n    })) : null\n  ].filter(vu).sort((H, de) => gn(H.id, wr) - gn(de.id, wr)), Lo = Pe && ar.length > 0;\n  if (!Pe && ar.length === 0) return /* @__PURE__ */ n(\"div\", {\n    className: \"cedros-login-form-shell\",\n    children: /* @__PURE__ */ n(\"div\", {\n      className: `cedros-login-form ${o}`,\n      children: /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-login-session-status\",\n        role: \"status\",\n        children: [/* @__PURE__ */ n(\"h2\", {\n          className: \"cedros-login-session-title\",\n          children: u.auth.signInUnavailableTitle\n        }), /* @__PURE__ */ n(\"p\", {\n          className: \"cedros-login-session-message\",\n          children: u.auth.signInUnavailableBody\n        })]\n      })\n    })\n  });\n  const Po = /* @__PURE__ */ n(Ie, {\n    stateKey: A,\n    order: [\"form\", \"forgotPassword\"],\n    focusOnChange: !0,\n    children: A === \"forgotPassword\" ? /* @__PURE__ */ n(\"div\", {\n      className: `cedros-login-form ${o}`,\n      children: /* @__PURE__ */ n(Tt, {\n        mode: re,\n        onCancel: () => C(\"form\")\n      })\n    }) : /* @__PURE__ */ v(\"div\", {\n      className: \"cedros-login-form-shell\",\n      children: [/* @__PURE__ */ v(\"div\", {\n        className: `cedros-login-form ${o}`,\n        children: [\n          h === \"register\" && !b && !L && /* @__PURE__ */ n(nt, { availability: me }),\n          V && h === \"register\" && !b && !L && me?.remaining !== 0 && /* @__PURE__ */ v(\"div\", {\n            className: \"cedros-form-field\",\n            children: [/* @__PURE__ */ n(\"label\", {\n              htmlFor: `${x}-login-form-access-code`,\n              className: \"cedros-label\",\n              children: u.auth.accessCode\n            }), /* @__PURE__ */ n(\"input\", {\n              id: `${x}-login-form-access-code`,\n              type: \"text\",\n              className: \"cedros-input\",\n              value: N,\n              onChange: (H) => I(H.target.value),\n              placeholder: u.auth.enterAccessCode,\n              \"aria-required\": \"true\",\n              autoComplete: \"off\"\n            })]\n          }),\n          ar.length > 0 && /* @__PURE__ */ n(\"div\", {\n            className: \"cedros-social-buttons\",\n            children: ar.map(({ id: H, element: de }) => /* @__PURE__ */ n(cs, { children: de }, H))\n          }),\n          Lo && /* @__PURE__ */ n(\"div\", {\n            className: \"cedros-divider\",\n            children: /* @__PURE__ */ n(\"span\", { children: u.messages.orContinueWith })\n          }),\n          (Pe || ir) && /* @__PURE__ */ v(Z, { children: [/* @__PURE__ */ v(\"div\", {\n            className: \"cedros-tabs\",\n            role: \"tablist\",\n            \"aria-label\": u.auth.authMethodAriaLabel,\n            children: [/* @__PURE__ */ n(\"button\", {\n              type: \"button\",\n              role: \"tab\",\n              id: `${x}-tab-login`,\n              className: `cedros-tab ${h === \"login\" ? \"cedros-tab-active\" : \"\"}`,\n              onClick: () => ge(\"login\"),\n              onKeyDown: we,\n              \"aria-selected\": h === \"login\",\n              \"aria-controls\": `${x}-tabpanel-login`,\n              tabIndex: h === \"login\" ? 0 : -1,\n              children: u.auth.tabs.signIn\n            }), /* @__PURE__ */ n(\"button\", {\n              type: \"button\",\n              role: \"tab\",\n              id: `${x}-tab-register`,\n              className: `cedros-tab ${h === \"register\" ? \"cedros-tab-active\" : \"\"}`,\n              onClick: () => ge(\"register\"),\n              onKeyDown: we,\n              \"aria-selected\": h === \"register\",\n              \"aria-controls\": `${x}-tabpanel-register`,\n              tabIndex: h === \"register\" ? 0 : -1,\n              children: u.auth.tabs.signUp\n            })]\n          }), /* @__PURE__ */ n(Ie, {\n            stateKey: h,\n            order: Qe,\n            children: /* @__PURE__ */ n(\"div\", {\n              role: \"tabpanel\",\n              id: `${x}-tabpanel-${h}`,\n              \"aria-labelledby\": `${x}-tab-${h}`,\n              children: Pe ? h === \"login\" ? /* @__PURE__ */ n(Yl, {\n                onSuccess: K,\n                onSwitchToRegister: () => ge(\"register\"),\n                onForgotPassword: () => C(\"forgotPassword\")\n              }) : /* @__PURE__ */ n(hu, {\n                onSuccess: K,\n                onAccountCreated: () => w(!0),\n                onSwitchToLogin: () => ge(\"login\"),\n                accessCode: V ? N : void 0,\n                showSignupAvailability: !1,\n                onRegistrationPendingChange: z\n              }) : null\n            })\n          })] })\n        ]\n      }), P && /* @__PURE__ */ n(X, {\n        error: P,\n        onDismiss: () => U(null)\n      })]\n    })\n  });\n  return /* @__PURE__ */ n(Bl, {\n    enabled: i && h === \"register\" && A === \"form\",\n    serverUrl: d.serverUrl,\n    locked: L,\n    onSignIn: () => y(\"login\"),\n    children: Po\n  });\n}\nfunction Dr(e, r) {\n  return r == null || r === !1 ? null : {\n    id: e,\n    element: r\n  };\n}\nfunction vu(e) {\n  return e !== null;\n}\nfunction yu(e) {\n  if (!Array.isArray(e)) return oo;\n  const r = e.map((o) => o === \"passkey\" ? \"webauthn\" : o).filter(wu);\n  return r.length ? r : oo;\n}\nfunction wu(e) {\n  return oo.includes(e);\n}\nfunction gn(e, r) {\n  const o = r.indexOf(e);\n  return o === -1 ? r.length : o;\n}\nvar Qe, oo, Ia = R((() => {\n  $l(), G(), wa(), oe(), Xl(), bu(), It(), Ao(), Mr(), je(), fi(), vi(), Oi(), Pt(), hr(), le(), ee(), Na(), pr(), Ra(), Y(), Qe = [\"login\", \"register\"], oo = [\n    \"webauthn\",\n    \"google\",\n    \"apple\",\n    \"solana\"\n  ];\n}));\nfunction ku(e) {\n  return /* @__PURE__ */ n(Ta, {\n    ...e,\n    getHasWallets: tc,\n    renderSolanaButton: (r) => /* @__PURE__ */ n(Ri, { ...r })\n  });\n}\nvar xu = R((() => {\n  Ti(), Ia(), xt();\n}));\nfunction it() {\n  return typeof window > \"u\" ? \"\" : new URLSearchParams(window.location.search).get(\"token\")?.trim() ?? \"\";\n}\nfunction Co() {\n  if (typeof window > \"u\") return;\n  const e = new URL(window.location.href);\n  e.searchParams.has(\"token\") && (e.searchParams.delete(\"token\"), window.history.replaceState(window.history.state, \"\", `${e.pathname}${e.search}${e.hash}`));\n}\nvar zt = R((() => {\n}));\nfunction _u(e) {\n  return /* @__PURE__ */ n(Ta, { ...e });\n}\nvar Au = R((() => {\n  Ia();\n}));\nfunction Cu(e) {\n  if (typeof e != \"object\" || e === null || !(\"orgId\" in e) || typeof e.orgId != \"string\" || !e.orgId.trim() || !(\"orgName\" in e) || typeof e.orgName != \"string\" || !e.orgName.trim() || !(\"role\" in e) || e.role !== \"owner\" && e.role !== \"admin\" && e.role !== \"member\") throw new Error(\"Invalid invitation acceptance response\");\n  return {\n    orgId: e.orgId,\n    orgName: e.orgName,\n    role: e.role\n  };\n}\nvar La, Eu = R((() => {\n  ie(), La = class {\n    client;\n    constructor(e, r, o, t) {\n      this.client = new te({\n        baseUrl: e,\n        timeoutMs: r,\n        retryAttempts: o,\n        getAccessToken: t\n      });\n    }\n    async listInvites(e, r = 50, o = 0) {\n      try {\n        const t = await this.client.get(`/orgs/${e}/invites?limit=${r}&offset=${o}`, { cacheTtlMs: 1e3 });\n        return {\n          invites: t.invites.map((i) => ({\n            id: i.id,\n            orgId: i.orgId,\n            email: i.email,\n            walletAddress: i.walletAddress,\n            role: i.role,\n            invitedBy: i.invitedBy,\n            createdAt: i.createdAt,\n            expiresAt: i.expiresAt\n          })),\n          total: t.total\n        };\n      } catch (t) {\n        throw O(t, \"Failed to list invites\");\n      }\n    }\n    async createInvite(e, r) {\n      try {\n        return await this.client.post(`/orgs/${e}/invites`, r);\n      } catch (o) {\n        throw O(o, \"Failed to create invite\");\n      }\n    }\n    async cancelInvite(e, r) {\n      try {\n        await this.client.delete(`/orgs/${e}/invites/${r}`);\n      } catch (o) {\n        throw O(o, \"Failed to cancel invite\");\n      }\n    }\n    async resendInvite(e, r) {\n      try {\n        return await this.client.post(`/orgs/${e}/invites/${r}/resend`, {});\n      } catch (o) {\n        throw O(o, \"Failed to resend invite\");\n      }\n    }\n    async acceptInvite(e) {\n      try {\n        return await this.client.post(\"/invites/accept\", e, { validator: Cu });\n      } catch (r) {\n        throw O(r, \"Failed to accept invite\");\n      }\n    }\n  };\n}));\nfunction Su({ token: e }) {\n  const { config: r, authState: o, user: t } = lo();\n  return ur(() => {\n    const i = document.createElement(\"meta\");\n    return i.name = \"referrer\", i.content = \"no-referrer\", document.head.appendChild(i), () => i.remove();\n  }, []), /* @__PURE__ */ n(Ru, { token: e }, JSON.stringify([\n    r.serverUrl,\n    o,\n    t?.id,\n    e\n  ]));\n}\nfunction Ru({ token: e }) {\n  const { config: r, authState: o, user: t, logout: i, _internal: a } = lo(), { t: s, message: d } = Ne(), c = he(), m = B(() => new La(r.serverUrl, r.requestTimeout, r.retryAttempts, a?.getAccessToken), [\n    r.requestTimeout,\n    r.retryAttempts,\n    r.serverUrl,\n    a?.getAccessToken\n  ]), [l, p] = _(null), [f, u] = _(null), [g, x] = _(null), [k, h] = _(!1), y = M(!1), b = M(null), w = M(!0);\n  ur(() => (w.current = !0, () => {\n    w.current = !1;\n  }), []), ur(() => {\n    l && b.current?.focus();\n  }, [l]);\n  const A = o === \"authenticated\" && t !== null, C = async () => {\n    if (!A || !w.current || y.current) return;\n    const E = a?.getAccessToken(), N = it();\n    if (N !== e) {\n      u({\n        source: \"accept\",\n        error: {\n          code: \"INVALID_TOKEN\",\n          message: s.messages.inviteLinkChanged\n        }\n      });\n      return;\n    }\n    const I = () => w.current ? a?.getAccessToken() !== E || it() !== N ? (u({\n      source: \"accept\",\n      error: {\n        code: \"INVALID_TOKEN\",\n        message: s.messages.inviteContextChanged\n      }\n    }), !1) : !0 : !1;\n    y.current = !0, x(\"accept\"), u(null);\n    try {\n      const L = await m.acceptInvite({ token: e });\n      if (!I()) return;\n      Co(), p(L);\n    } catch (L) {\n      if (!I()) return;\n      if (Nu(L)) {\n        h(!0);\n        return;\n      }\n      let z = O(L, s.messages.inviteAcceptFailed, { friendlyMessages: { FORBIDDEN: s.messages.inviteWrongAccount } });\n      z.code === \"FORBIDDEN\" && (z = {\n        ...z,\n        message: s.messages.inviteWrongAccount\n      }), u({\n        source: \"accept\",\n        error: z\n      });\n    } finally {\n      y.current = !1, w.current && x(null);\n    }\n  };\n  if (k) return /* @__PURE__ */ n(Lt, {\n    onSuccess: () => {\n      w.current && (h(!1), u(null));\n    },\n    onSignedOut: () => {\n      w.current && h(!1);\n    }\n  });\n  const T = async () => {\n    if (!(!w.current || y.current)) {\n      y.current = !0, x(\"switch\"), u(null);\n      try {\n        await i();\n      } catch (E) {\n        if (!w.current) return;\n        u({\n          source: \"switch\",\n          error: O(E, s.errors.unknownError)\n        });\n      } finally {\n        y.current = !1, w.current && x(null);\n      }\n    }\n  };\n  if (l) return /* @__PURE__ */ v(\"div\", {\n    className: \"cedros-success-message\",\n    role: \"status\",\n    children: [/* @__PURE__ */ n(\"p\", { children: d(s.messages.inviteJoined, {\n      organization: l.orgName,\n      role: l.role\n    }) }), /* @__PURE__ */ n(\"a\", {\n      ref: b,\n      className: \"cedros-button cedros-button-primary cedros-button-md\",\n      href: \"/profile\",\n      referrerPolicy: \"no-referrer\",\n      children: s.buttons.continueToProfile\n    })]\n  });\n  if (o === \"idle\" || o === \"loading\") return /* @__PURE__ */ v(\"div\", {\n    className: \"cedros-form-header\",\n    role: \"status\",\n    \"aria-live\": \"polite\",\n    children: [/* @__PURE__ */ n(W, {\n      size: \"sm\",\n      label: s.messages.inviteCheckingAccount\n    }), /* @__PURE__ */ n(\"p\", {\n      className: \"cedros-form-subtitle\",\n      children: s.messages.inviteCheckingAccount\n    })]\n  });\n  if (A) {\n    const E = f?.error, N = f?.source === \"accept\" && E?.code === \"FORBIDDEN\", I = f?.source === \"accept\" && E && [\n      \"NETWORK_ERROR\",\n      \"SERVER_ERROR\",\n      \"SERVICE_UNAVAILABLE\",\n      \"UNKNOWN_ERROR\"\n    ].includes(E.code), L = t?.email || t?.walletAddress || t?.name || s.messages.inviteCurrentAccount;\n    return /* @__PURE__ */ v(\"section\", {\n      className: \"cedros-login-form-shell\",\n      \"aria-labelledby\": c,\n      \"aria-busy\": g !== null,\n      children: [\n        /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-form-header\",\n          children: [\n            /* @__PURE__ */ n(\"h2\", {\n              className: \"cedros-form-title\",\n              id: c,\n              children: s.messages.inviteReviewTitle\n            }),\n            /* @__PURE__ */ n(\"p\", {\n              className: \"cedros-form-subtitle\",\n              children: s.messages.inviteReviewBody\n            }),\n            /* @__PURE__ */ n(\"p\", {\n              className: \"cedros-login-session-message\",\n              children: d(s.messages.inviteSignedInAs, { account: L })\n            })\n          ]\n        }),\n        E && /* @__PURE__ */ n(X, {\n          error: E,\n          autoFocus: !0\n        }),\n        I && /* @__PURE__ */ n(\"p\", {\n          className: \"cedros-login-session-message\",\n          children: s.messages.inviteOutcomeUnconfirmed\n        }),\n        g === \"accept\" && /* @__PURE__ */ n(\"p\", {\n          className: \"cedros-login-session-message\",\n          role: \"status\",\n          children: s.messages.inviteAccepting\n        }),\n        /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-login-session-actions\",\n          children: [\n            !N && /* @__PURE__ */ n(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-primary cedros-button-md\",\n              onClick: () => {\n                C();\n              },\n              disabled: g !== null,\n              children: g === \"accept\" ? s.messages.inviteAccepting : f?.source === \"accept\" ? s.common.retry : s.buttons.acceptInvite\n            }),\n            /* @__PURE__ */ n(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-outline cedros-button-md\",\n              onClick: () => {\n                T();\n              },\n              disabled: g !== null,\n              children: s.buttons.useAnotherAccount\n            }),\n            f?.source === \"accept\" && !g && /* @__PURE__ */ n(\"a\", {\n              className: \"cedros-button cedros-button-outline cedros-button-md\",\n              href: \"/profile\",\n              referrerPolicy: \"no-referrer\",\n              children: s.buttons.continueToProfile\n            })\n          ]\n        })\n      ]\n    });\n  }\n  return /* @__PURE__ */ v(\"div\", { children: [/* @__PURE__ */ n(\"p\", {\n    className: \"cedros-form-subtitle\",\n    children: s.messages.inviteSignIn\n  }), /* @__PURE__ */ n(_u, {})] });\n}\nfunction Nu(e) {\n  if (typeof e != \"object\" || e === null || !(\"data\" in e)) return !1;\n  const r = e.data;\n  return typeof r == \"object\" && r !== null && \"error\" in r && r.error === \"mfa_setup_required\";\n}\nvar Tu = R((() => {\n  Au(), le(), ee(), Pt(), oe(), Y(), ie(), Eu(), zt();\n}));\nfunction Iu({ token: e, onAuthSuccess: r }) {\n  const o = J(), { config: t, _internal: i } = ce(), a = B(() => new te({\n    baseUrl: t.serverUrl,\n    timeoutMs: t.requestTimeout,\n    retryAttempts: t.retryAttempts\n  }), [\n    t.requestTimeout,\n    t.retryAttempts,\n    t.serverUrl\n  ]), [s, d] = _(\"loading\"), [c, m] = _(null), [l, p] = _(null), [f, u] = _(null), g = M(!1);\n  return D(() => {\n    g.current || (g.current = !0, a.post(\"/verify-email\", { token: e }).then((x) => {\n      if (Co(), i?.assertLoginCurrent(), kd(x), \"message\" in x) {\n        d(\"success\");\n        return;\n      }\n      if (\"mfaRequired\" in x) {\n        p(x.mfaToken);\n        return;\n      }\n      if (Se(x)) {\n        u(x);\n        return;\n      }\n      Le(x, x.method ?? \"email\", i, t.callbacks), r(x);\n    }).catch((x) => {\n      m(O(x, o.errors.linkExpired, { networkMessage: o.errors.unableToReachServer })), d(\"error\");\n    }));\n  }, [\n    a,\n    t.callbacks,\n    i,\n    r,\n    o.errors.linkExpired,\n    o.errors.unableToReachServer,\n    e\n  ]), l ? /* @__PURE__ */ n(fr, {\n    mfaToken: l,\n    onSuccess: r\n  }) : f ? /* @__PURE__ */ n(Pa, {\n    response: f,\n    onAuthSuccess: r\n  }) : s === \"loading\" ? /* @__PURE__ */ n(za, { label: o.auth.verifying }) : s === \"error\" ? /* @__PURE__ */ n(Mt, {\n    error: c,\n    actionLabel: o.auth.goToLogin\n  }) : /* @__PURE__ */ n(Pu, {\n    title: o.messages.emailVerified,\n    actionLabel: o.auth.goToLogin\n  });\n}\nfunction Lu({ token: e, onAuthSuccess: r }) {\n  const o = J(), { verifyInstantLink: t, error: i } = la(), [a, s] = _(null), [d, c] = _(null), m = M(!1);\n  return D(() => {\n    m.current || (m.current = !0, t(e).then((l) => {\n      Co(), \"mfaRequired\" in l ? s(l.mfaToken) : Se(l) ? c(l) : r(l);\n    }).catch(() => {\n    }));\n  }, [\n    r,\n    e,\n    t\n  ]), d ? /* @__PURE__ */ n(Pa, {\n    response: d,\n    onAuthSuccess: r\n  }) : a ? /* @__PURE__ */ n(fr, {\n    mfaToken: a,\n    onSuccess: r\n  }) : i ? /* @__PURE__ */ n(Mt, {\n    error: i,\n    actionLabel: o.auth.goToLogin\n  }) : /* @__PURE__ */ n(za, { label: o.auth.verifying });\n}\nfunction Pa({ response: e, onAuthSuccess: r }) {\n  const o = J();\n  return e.inviteCodeRequired && e.pendingInviteToken ? /* @__PURE__ */ n(_o, {\n    pendingInviteToken: e.pendingInviteToken,\n    onSuccess: r\n  }) : !e.inviteCodeRequired && rr(e) ? /* @__PURE__ */ n(zr, { email: e.user.email ?? \"\" }) : /* @__PURE__ */ n(Mt, {\n    error: {\n      code: \"SERVER_ERROR\",\n      message: o.errors.serverError\n    },\n    actionLabel: o.auth.goToLogin\n  });\n}\nfunction za({ label: e }) {\n  return /* @__PURE__ */ v(\"div\", {\n    className: \"cedros-form-header\",\n    role: \"status\",\n    \"aria-live\": \"polite\",\n    children: [/* @__PURE__ */ n(W, { size: \"sm\" }), /* @__PURE__ */ n(\"p\", {\n      className: \"cedros-form-subtitle\",\n      children: e\n    })]\n  });\n}\nfunction Pu({ title: e, actionLabel: r }) {\n  const o = Lr(typeof window > \"u\" ? void 0 : window.location.href);\n  return /* @__PURE__ */ v(\"div\", {\n    className: \"cedros-success-message\",\n    role: \"status\",\n    children: [/* @__PURE__ */ n(\"p\", { children: e }), /* @__PURE__ */ n(\"a\", {\n      className: \"cedros-button cedros-button-primary cedros-button-md\",\n      href: o,\n      children: r\n    })]\n  });\n}\nfunction Mt({ error: e, actionLabel: r }) {\n  const o = Lr(typeof window > \"u\" ? void 0 : window.location.href);\n  return /* @__PURE__ */ v(\"div\", {\n    className: \"cedros-form\",\n    children: [/* @__PURE__ */ n(X, {\n      error: e,\n      autoFocus: !0\n    }), /* @__PURE__ */ n(\"a\", {\n      className: \"cedros-button cedros-button-secondary cedros-button-md\",\n      href: o,\n      children: r\n    })]\n  });\n}\nvar zu = R((() => {\n  le(), ee(), hr(), Ao(), Mr(), oe(), G(), ua(), Y(), ie(), Be(), zt(), je();\n}));\nfunction Mu({ mode: e, onAuthSuccess: r }) {\n  const [o, t] = _(!1), i = S((a) => {\n    if (a?.postLogin?.action === \"setup_mfa\") {\n      t(!0);\n      return;\n    }\n    r(a);\n  }, [r]);\n  return o ? /* @__PURE__ */ n(Lt, {\n    onSuccess: r,\n    onSignedOut: () => t(!1)\n  }) : e === \"sign-in\" || e === \"create-account\" ? /* @__PURE__ */ n(Ou, {\n    mode: e,\n    onAuthSuccess: i\n  }) : e === \"forgot-password\" ? /* @__PURE__ */ n(Tt, {}) : /* @__PURE__ */ n(Du, {\n    mode: e,\n    onAuthSuccess: i\n  });\n}\nfunction Ou({ mode: e, onAuthSuccess: r }) {\n  const { authState: o, user: t, config: i, _internal: a } = ce(), [s, d] = _(!1), [c, m] = _(0), l = M(null), p = M(!1), f = S((u) => {\n    p.current = !0, r(u);\n  }, [r]);\n  return D(() => {\n    if (o !== \"authenticated\" || !t || p.current || l.current === t.id) return;\n    let u = !0;\n    return ma({\n      baseUrl: i.serverUrl,\n      timeoutMs: i.requestTimeout,\n      getAccessToken: a?.getAccessToken\n    }, window.location.href).then((g) => {\n      !u || p.current || (l.current = t.id, r(g ? { postLogin: g } : void 0));\n    }, () => {\n      u && !p.current && d(!0);\n    }), () => {\n      u = !1;\n    };\n  }, [\n    o,\n    r,\n    t,\n    i.serverUrl,\n    i.requestTimeout,\n    a?.getAccessToken,\n    c\n  ]), o === \"authenticated\" && t && s ? /* @__PURE__ */ v(\"div\", {\n    className: \"cedros-error\",\n    role: \"alert\",\n    children: [/* @__PURE__ */ n(\"span\", {\n      className: \"cedros-error-message\",\n      children: \"Unable to resume your account setup. Please try again.\"\n    }), /* @__PURE__ */ n(\"button\", {\n      className: \"cedros-button cedros-button-primary cedros-button-md\",\n      onClick: () => {\n        d(!1), m((u) => u + 1);\n      },\n      children: \"Retry\"\n    })]\n  }) : o === \"idle\" || o === \"loading\" || o === \"authenticated\" && t ? null : /* @__PURE__ */ n(ku, {\n    defaultTab: e === \"create-account\" ? \"register\" : \"login\",\n    onSuccess: f,\n    onEnrollmentRequired: f\n  });\n}\nfunction Du({ mode: e, onAuthSuccess: r }) {\n  const [o] = _(it);\n  return D(() => {\n    o && e !== \"accept-invite\" && Co();\n  }, [o, e]), o ? e === \"reset-password\" ? /* @__PURE__ */ n(Ll, {\n    token: o,\n    onLoginClick: () => Fu(\"/login\")\n  }) : e === \"verify-email\" ? /* @__PURE__ */ n(Iu, {\n    token: o,\n    onAuthSuccess: r\n  }) : e === \"instant-link-verify\" ? /* @__PURE__ */ n(Lu, {\n    token: o,\n    onAuthSuccess: r\n  }) : /* @__PURE__ */ n(Su, { token: o }) : /* @__PURE__ */ n(Uu, { mode: e });\n}\nfunction Uu({ mode: e }) {\n  return /* @__PURE__ */ v(\"div\", {\n    className: \"cedros-error\",\n    role: \"alert\",\n    children: [/* @__PURE__ */ n(\"span\", {\n      className: \"cedros-error-message\",\n      children: \"This link is missing its secure token. Request a new link and try again.\"\n    }), /* @__PURE__ */ n(\"a\", {\n      className: \"cedros-link\",\n      href: e === \"reset-password\" ? \"/password-recovery\" : \"/login\",\n      children: e === \"reset-password\" ? \"Request a new link\" : \"Go to login\"\n    })]\n  });\n}\nfunction Fu(e) {\n  typeof window < \"u\" && window.location.assign(e);\n}\nvar qu = R((() => {\n  It(), Pl(), Pt(), xu(), oe(), G(), ga(), zt(), Tu(), zu();\n}));\nfunction ju(e, r, o) {\n  const t = Bn(e.features), i = {\n    serverUrl: Vu(r),\n    features: t ? $u(t) : \"auto\",\n    theme: o ?? \"light\",\n    applyThemeToDocument: !1\n  }, a = to(e.googleClientId) ?? pn(e.features, \"googleClientId\"), s = to(e.appleClientId) ?? pn(e.features, \"appleClientId\"), d = Oa(e.socialButtonOrder) ?? Ku(e.features, \"socialButtonOrder\"), c = Gu(e.features, \"signupAccessCodeRequired\"), m = t?.signupAvailability;\n  return a && (i.googleClientId = a), s && (i.appleClientId = s), d && (i.socialButtonOrder = d), c !== void 0 && (i.signupAccessCodeRequired = c), m && (i.signupAvailability = m), i;\n}\nfunction Ma(e, r, o) {\n  const t = ju(e, r, o);\n  return {\n    ...t,\n    serverUrl: Hu(t.serverUrl)\n  };\n}\nfunction Bu(e, r, o) {\n  const t = Ma(e, r, o);\n  return t.features !== \"auto\" ? t : {\n    ...t,\n    features: void 0\n  };\n}\nfunction $u(e) {\n  return {\n    email: e.email,\n    google: e.google,\n    apple: e.apple,\n    solana: e.solana,\n    webauthn: e.webauthn,\n    instantLink: e.instantLink\n  };\n}\nfunction Vu(e) {\n  const r = $n() ?? \"\", o = to(e);\n  return !o || !Wu(o) ? r : o;\n}\nfunction Wu(e) {\n  if (typeof window > \"u\") return !1;\n  try {\n    return new URL(e, window.location.href).origin === window.location.origin;\n  } catch {\n    return !1;\n  }\n}\nfunction Hu(e) {\n  const r = e.replace(/\\/+$/, \"\");\n  return r.endsWith(\"/public-auth\") ? r : r && `${r}/public-auth`;\n}\nfunction to(e) {\n  return typeof e == \"string\" && e.trim() ? e.trim() : void 0;\n}\nfunction pn(e, r) {\n  if (!(!e || typeof e != \"object\"))\n    return to(e[r]);\n}\nfunction Oa(e) {\n  if (!Array.isArray(e)) return;\n  const r = e.filter((o) => typeof o == \"string\" && o.trim().length > 0);\n  return r.length ? r.map((o) => o.trim()) : void 0;\n}\nfunction Ku(e, r) {\n  if (!(!e || typeof e != \"object\"))\n    return Oa(e[r]);\n}\nfunction Gu(e, r) {\n  if (!e || typeof e != \"object\") return;\n  const o = e[r];\n  return typeof o == \"boolean\" ? o : void 0;\n}\nvar Da = R((() => {\n  Hn();\n})), Yu = /* @__PURE__ */ dt({ default: () => Xu });\nfunction Xu({ props: e, runtimeBaseUrl: r, colorMode: o }) {\n  const t = ht(e.mode), i = Ju(e.layout), a = Ma(e, r, o), s = (d) => {\n    typeof window > \"u\" || Nl(e, d, window.location);\n  };\n  return /* @__PURE__ */ n(na, {\n    config: a,\n    children: /* @__PURE__ */ n(\"section\", {\n      className: Kn(i, o),\n      \"data-auth-mode\": t,\n      \"data-cebbwf5-block\": Ee,\n      children: /* @__PURE__ */ n(\"div\", {\n        className: \"cedros-auth-form__panel\",\n        children: /* @__PURE__ */ n(Mu, {\n          mode: t,\n          onAuthSuccess: s\n        })\n      })\n    })\n  });\n}\nfunction Ju(e) {\n  return e === \"inline\" || e === \"compact\" ? e : \"card\";\n}\nvar Qu = R((() => {\n  ia(), Xn(), Tl(), qu(), Da(), mr();\n}));\nfunction Zu({ props: e, runtimeBaseUrl: r, colorMode: o }) {\n  const { preserveShell: t, hasInitialHydrationShell: i } = rm(ht(e.mode)), a = F(sd, {\n    props: e,\n    suppressClientConditionalProviderButtons: !0,\n    colorMode: o\n  });\n  return t ? a : F(ut, { fallback: F(em) }, F(at, { fallback: i ? a : null }, F(Ua, {\n    props: e,\n    runtimeBaseUrl: r,\n    colorMode: o\n  })));\n}\nfunction em() {\n  return F(\"div\", {\n    className: \"cedros-error\",\n    role: \"alert\"\n  }, \"Authentication is temporarily unavailable. Please reload and try again.\");\n}\nfunction rm(e) {\n  const r = wn(om, () => tm(e), () => !0), [o, t] = _(() => r);\n  return D(() => {\n    o && t(!1);\n  }, [o]), {\n    preserveShell: o,\n    hasInitialHydrationShell: r\n  };\n}\nfunction om() {\n  return () => {\n  };\n}\nfunction tm(e) {\n  return typeof document > \"u\" ? !0 : !!document.querySelector(`[data-cebbwf5-block=\"${Ee}\"][data-auth-mode=\"${e}\"] .cedros-auth-form__panel`);\n}\nvar Ua, nm = R((() => {\n  _n(), G(), Xn(), mr(), Ua = st(() => Promise.resolve().then(() => (Qu(), Yu)));\n}));\nfunction im({ props: e }) {\n  const r = dm(e, J());\n  return F(\"section\", {\n    className: `cedros-auth-page-copy cedros-auth-page-copy--${r.variant}`,\n    \"data-cebbwf5-block\": Me\n  }, [\n    F(\"div\", {\n      key: \"brand\",\n      className: \"cedros-auth-page-copy__brand\"\n    }, [r.logo && F(\"img\", {\n      key: \"logo\",\n      className: \"cedros-auth-page-copy__logo\",\n      src: r.logo.src,\n      alt: r.logo.alt\n    }), F(\"div\", {\n      key: \"text\",\n      className: \"cedros-auth-page-copy__brand-text\"\n    }, [F(\"h1\", {\n      key: \"title\",\n      className: \"cedros-auth-page-copy__title\"\n    }, r.title), r.eyebrow && F(\"p\", {\n      key: \"eyebrow\",\n      className: \"cedros-auth-page-copy__eyebrow\"\n    }, r.eyebrow)])]),\n    r.body && F(\"p\", {\n      key: \"body\",\n      className: \"cedros-auth-page-copy__body\"\n    }, r.body),\n    r.primaryLink && F(\"a\", {\n      key: \"primaryLink\",\n      className: \"cedros-auth-page-copy__link\",\n      href: r.primaryLink.href\n    }, r.primaryLink.label),\n    r.secondaryText && F(\"p\", {\n      key: \"secondaryText\",\n      className: \"cedros-auth-page-copy__secondary\"\n    }, r.secondaryText)\n  ].filter(Boolean));\n}\nfunction am({ props: e }) {\n  const r = cm(e, J());\n  return F(\"div\", {\n    className: `cedros-login-button-block cedros-login-button-block--${r.align}`,\n    \"data-cebbwf5-block\": ft\n  }, F(\"a\", {\n    className: `cedros-login-button cedros-login-button--${r.variant}`,\n    href: r.href\n  }, r.label));\n}\nfunction sm({ props: e, colorMode: r }) {\n  const o = Fa(e, J());\n  return F(\"section\", {\n    className: Br(\"loading\", r),\n    \"data-cebbwf5-block\": er\n  }, [F(\"h2\", {\n    key: \"title\",\n    className: \"cedros-account-workspace-block__title\"\n  }, o.title), F(\"div\", {\n    key: \"status\",\n    className: \"cedros-account-workspace-block__status\",\n    role: \"status\"\n  }, [F(W, {\n    key: \"spinner\",\n    size: \"sm\"\n  }), F(\"span\", { key: \"label\" }, \"Loading account...\")])]);\n}\nfunction Br(e, r) {\n  const o = `cedros-account-workspace-block cedros-account-workspace-block--${e}`;\n  return r === \"dark\" ? `${o} cebbwf5-dark` : o;\n}\nfunction dm(e, r) {\n  const o = mm(e.primaryLink) ? e.primaryLink : null, t = xe(o?.label).trim(), i = um(xe(e.logoUrl));\n  return {\n    eyebrow: xe(e.eyebrow),\n    logo: i ? {\n      src: i,\n      alt: xe(e.logoAlt)\n    } : null,\n    title: xe(e.title) || r.admin.nav.cedrosLogin,\n    body: xe(e.body) || r.extension.authForm.editBeforePublishing,\n    secondaryText: xe(e.secondaryText),\n    variant: e.variant === \"profile\" ? \"profile\" : \"auth\",\n    primaryLink: o?.kind === \"cedros-link\" && t ? {\n      href: Eo(xe(o.href)),\n      label: t\n    } : null\n  };\n}\nfunction cm(e, r) {\n  return {\n    label: xe(e.label) || r.buttons.signIn,\n    href: Eo(xe(e.href) || \"/login\"),\n    variant: lm(e.variant),\n    align: e.align === \"center\" || e.align === \"end\" ? e.align : \"start\"\n  };\n}\nfunction Fa(e, r) {\n  return {\n    title: xe(e.title) || r.buttons.manageAccount,\n    body: xe(e.body) || r.extension.authForm.accountWorkspaceBody,\n    signInHref: Eo(xe(e.signInHref) || \"/login\"),\n    signInLabel: xe(e.signInLabel) || r.extension.authForm.logInToManageAccount\n  };\n}\nfunction lm(e) {\n  return e === \"secondary\" || e === \"link\" ? e : \"primary\";\n}\nfunction Eo(e) {\n  const r = e.trim();\n  return r ? r.startsWith(\"/\") ? r : Ln(r) || \"/\" : \"/\";\n}\nfunction um(e) {\n  const r = e.trim();\n  return !r || r.includes(\"\\\\\") || r.startsWith(\"//\") ? \"\" : r.startsWith(\"/\") ? r : Hs(r) || \"\";\n}\nfunction xe(e) {\n  return typeof e == \"string\" ? e : \"\";\n}\nfunction mm(e) {\n  return typeof e == \"object\" && e !== null && !Array.isArray(e);\n}\nvar Ot = R((() => {\n  ee(), Y(), zn(), mr(), nm();\n}));\nfunction Dt() {\n  const { user: e, authState: r, error: o, logout: t, refreshUser: i, openModal: a, closeModal: s } = ce();\n  return {\n    user: e,\n    authState: r,\n    error: o,\n    isAuthenticated: r === \"authenticated\" && e !== null,\n    isLoading: r === \"loading\",\n    logout: t,\n    refreshUser: i,\n    openLoginModal: a,\n    closeLoginModal: s\n  };\n}\nvar So = R((() => {\n  oe();\n})), qa, gm = R((() => {\n  ie(), qa = class {\n    client;\n    constructor(e, r, o, t) {\n      this.client = new te({\n        baseUrl: e,\n        timeoutMs: r,\n        retryAttempts: o,\n        getAccessToken: t\n      });\n    }\n    async changePassword(e) {\n      try {\n        return await this.client.post(\"/change-password\", e);\n      } catch (r) {\n        throw O(r, \"Failed to change password\");\n      }\n    }\n    async updateProfile(e) {\n      try {\n        return await this.client.patch(\"/me\", e);\n      } catch (r) {\n        throw O(r, \"Failed to update profile\");\n      }\n    }\n    async changeEmail(e) {\n      try {\n        return await this.client.post(\"/me/email\", e);\n      } catch (r) {\n        throw O(r, \"Failed to change email\");\n      }\n    }\n  };\n}));\nfunction ja() {\n  const { config: e, authState: r, _internal: o } = ce(), [t, i] = _(!1), [a, s] = _(null), d = B(() => new qa(e.serverUrl, e.requestTimeout, e.retryAttempts, o?.getAccessToken), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    o\n  ]), c = S(() => {\n    s(null);\n  }, []), m = S(async (l) => {\n    if (r !== \"authenticated\") throw new Error(\"Must be authenticated to change email\");\n    i(!0), s(null);\n    try {\n      return await d.changeEmail(l);\n    } catch (p) {\n      const f = p instanceof Error ? p : /* @__PURE__ */ new Error(\"Failed to change email\");\n      throw s(f), f;\n    } finally {\n      i(!1);\n    }\n  }, [r, d]);\n  return {\n    isLoading: t,\n    error: a,\n    updateProfile: S(async (l) => {\n      if (r !== \"authenticated\") throw new Error(\"Must be authenticated to update profile\");\n      i(!0), s(null);\n      try {\n        return await d.updateProfile(l);\n      } catch (p) {\n        const f = p instanceof Error ? p : /* @__PURE__ */ new Error(\"Failed to update profile\");\n        throw s(f), f;\n      } finally {\n        i(!1);\n      }\n    }, [r, d]),\n    changePassword: S(async (l) => {\n      if (r !== \"authenticated\") throw new Error(\"Must be authenticated to change password\");\n      i(!0), s(null);\n      try {\n        await d.changePassword(l);\n      } catch (p) {\n        const f = p instanceof Error ? p : /* @__PURE__ */ new Error(\"Failed to change password\");\n        throw s(f), f;\n      } finally {\n        i(!1);\n      }\n    }, [r, d]),\n    changeEmail: m,\n    clearError: c\n  };\n}\nvar Ut = R((() => {\n  oe(), gm();\n}));\nfunction pm() {\n  const { config: e, _internal: r } = ce(), [o, t] = _(!1), [i, a] = _(null), s = B(() => new te({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    getAccessToken: r?.getAccessToken\n  }), [\n    e.serverUrl,\n    e.requestTimeout,\n    r\n  ]);\n  return {\n    checkAvailability: S(async (d) => await s.get(`/username/available?username=${encodeURIComponent(d)}`, { credentials: \"include\" }), [s]),\n    getSuggestion: S(async () => {\n      try {\n        return (await s.get(\"/username/available?username=\", { credentials: \"include\" })).suggestion ?? null;\n      } catch {\n        return null;\n      }\n    }, [s]),\n    setUsername: S(async (d) => {\n      t(!0), a(null);\n      try {\n        await s.patch(\"/me\", { username: d });\n      } catch (c) {\n        const m = new Error(O(c, \"Unable to update your username. Please try again.\").message);\n        throw a(m), m;\n      } finally {\n        t(!1);\n      }\n    }, [s]),\n    isLoading: o,\n    error: i\n  };\n}\nvar fm = R((() => {\n  oe(), ie();\n}));\nfunction hm(e) {\n  return e?.name ? e.name.split(\" \").map((r) => r[0]).join(\"\").toUpperCase().slice(0, 2) : e?.email ? e.email[0].toUpperCase() : e?.walletAddress ? e.walletAddress.slice(0, 2).toUpperCase() : \"?\";\n}\nvar Ba = R((() => {\n}));\nfunction fn(e) {\n  if (!e.contentType.startsWith(\"image/\") || !e.content) throw new Error(\"Invalid avatar response\");\n  return `data:${e.contentType};base64,${e.content}`;\n}\nfunction bm(e) {\n  return new Promise((r, o) => {\n    const t = new FileReader();\n    t.onerror = () => o(/* @__PURE__ */ new Error(\"Failed to read image.\")), t.onload = () => {\n      const i = typeof t.result == \"string\" ? t.result : \"\", a = i.indexOf(\",\");\n      if (a < 0) {\n        o(/* @__PURE__ */ new Error(\"Invalid image.\"));\n        return;\n      }\n      r(i.slice(a + 1));\n    }, t.readAsDataURL(e);\n  });\n}\nvar Ft, vm = R((() => {\n  Ft = [\n    \"image/jpeg\",\n    \"image/png\",\n    \"image/gif\",\n    \"image/webp\"\n  ];\n}));\nfunction ym({ className: e = \"\" }) {\n  const { user: r, refreshUser: o } = Dt(), { config: t, _internal: i } = ce(), [a, s] = _(null), [d, c] = _(!1), [m, l] = _(null), p = M(null), f = r?.id, u = r?.picture, g = r?.avatarContentType, x = B(() => new te({\n    baseUrl: t.serverUrl,\n    timeoutMs: t.requestTimeout,\n    retryAttempts: t.retryAttempts,\n    getAccessToken: i?.getAccessToken\n  }), [\n    t.serverUrl,\n    t.requestTimeout,\n    t.retryAttempts,\n    i?.getAccessToken\n  ]);\n  D(() => {\n    if (!f) {\n      s(null);\n      return;\n    }\n    const b = u ?? null;\n    if (!g) {\n      s((A) => A?.userId === f && A.src === b ? A : {\n        userId: f,\n        src: b\n      });\n      return;\n    }\n    let w = !0;\n    return x.get(\"/me/avatar\", { cacheTtlMs: 5e3 }).then((A) => {\n      w && s({\n        userId: f,\n        src: fn(A)\n      });\n    }).catch(() => {\n      w && !b && l(\"Your saved profile picture could not be loaded.\");\n    }), () => {\n      w = !1;\n    };\n  }, [\n    g,\n    x,\n    f,\n    u\n  ]);\n  const k = S(async (b) => {\n    const w = b.target.files?.[0];\n    if (w) {\n      if (l(null), !Ft.includes(w.type) || w.size === 0) {\n        l(\"Choose a JPG, PNG, GIF, or WebP image.\");\n        return;\n      }\n      c(!0);\n      try {\n        const A = await x.post(\"/me/avatar\", {\n          contentType: w.type,\n          content: await bm(w)\n        });\n        r && s({\n          userId: r.id,\n          src: fn(A)\n        }), await o();\n      } catch (A) {\n        const C = typeof A == \"object\" && A !== null && \"name\" in A && A.name === \"AbortError\";\n        l(C ? \"Upload timed out. Check your connection and try again.\" : O(A, \"Failed to upload image.\").message);\n      } finally {\n        c(!1), p.current && (p.current.value = \"\");\n      }\n    }\n  }, [\n    x,\n    o,\n    r\n  ]), h = S(async () => {\n    l(null), c(!0);\n    try {\n      await x.delete(\"/me/avatar\"), r && s({\n        userId: r.id,\n        src: null\n      }), await o();\n    } catch (b) {\n      l(O(b, \"Failed to remove image.\").message);\n    } finally {\n      c(!1);\n    }\n  }, [\n    x,\n    o,\n    r\n  ]), y = a && a.userId === r?.id ? a.src : r?.picture ?? null;\n  return /* @__PURE__ */ v(\"div\", {\n    className: `cedros-avatar-field ${e}`.trim(),\n    \"aria-busy\": d,\n    children: [/* @__PURE__ */ n(\"div\", {\n      className: \"cedros-avatar-field__preview\",\n      children: y ? /* @__PURE__ */ n(\"img\", {\n        src: y,\n        alt: r?.name || \"Profile\",\n        className: \"cedros-profile-avatar\"\n      }) : /* @__PURE__ */ n(\"div\", {\n        className: \"cedros-profile-avatar cedros-profile-avatar-fallback\",\n        children: hm(r)\n      })\n    }), /* @__PURE__ */ v(\"div\", {\n      className: \"cedros-avatar-field__body\",\n      children: [\n        /* @__PURE__ */ n(\"p\", {\n          className: \"cedros-avatar-field__label\",\n          children: \"Profile picture\"\n        }),\n        /* @__PURE__ */ n(\"p\", {\n          className: \"cedros-avatar-field__hint\",\n          children: \"JPG, PNG, GIF, or WebP.\"\n        }),\n        /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-avatar-field__actions\",\n          children: [/* @__PURE__ */ n(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-outline cedros-button-sm\",\n            onClick: () => p.current?.click(),\n            disabled: d,\n            children: d ? \"Saving…\" : \"Upload\"\n          }), (y || r?.avatarContentType) && /* @__PURE__ */ n(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-ghost cedros-button-sm\",\n            onClick: h,\n            disabled: d,\n            children: \"Remove\"\n          })]\n        }),\n        m && /* @__PURE__ */ n(\"p\", {\n          className: \"cedros-avatar-field__error\",\n          children: m\n        }),\n        /* @__PURE__ */ n(\"input\", {\n          ref: p,\n          type: \"file\",\n          accept: $a,\n          onChange: k,\n          className: \"cedros-profile-avatar-input\",\n          \"aria-label\": \"Upload profile picture\",\n          tabIndex: -1\n        })\n      ]\n    })]\n  });\n}\nvar $a, wm = R((() => {\n  oe(), So(), G(), ie(), Ba(), vm(), $a = Ft.join(\",\");\n}));\nfunction hn({ label: e, value: r, placeholder: o, emptyText: t = \"Not set\", prefix: i, helpText: a, validateFormat: s, checkAvailable: d, onSave: c, className: m = \"\" }) {\n  const [l, p] = _(!1), [f, u] = _(r), [g, x] = _(null), [k, h] = _(!1), [y, b] = _({ status: \"idle\" }), w = M(null), A = M(0), C = S(() => {\n    u(r), x(null), b({ status: \"idle\" }), p(!0);\n  }, [r]), T = S(() => {\n    p(!1), x(null), b({ status: \"idle\" }), w.current && window.clearTimeout(w.current);\n  }, []);\n  D(() => {\n    if (!l || !d) return;\n    const N = f.trim();\n    if (w.current && window.clearTimeout(w.current), N === r.trim() || N.length === 0) {\n      b({ status: \"idle\" });\n      return;\n    }\n    const I = s?.(N) ?? null;\n    if (I) {\n      b({\n        status: \"error\",\n        message: I\n      });\n      return;\n    }\n    const L = ++A.current;\n    return b({ status: \"checking\" }), w.current = window.setTimeout(async () => {\n      try {\n        const z = await d(N);\n        if (L !== A.current) return;\n        b(z ? {\n          status: \"error\",\n          message: z\n        } : {\n          status: \"ok\",\n          message: \"Available\"\n        });\n      } catch {\n        L === A.current && b({ status: \"idle\" });\n      }\n    }, 400), () => {\n      w.current && window.clearTimeout(w.current);\n    };\n  }, [\n    f,\n    l,\n    d,\n    s,\n    r\n  ]);\n  const E = S(async () => {\n    const N = f.trim(), I = s?.(N) ?? null;\n    if (I) {\n      x(I);\n      return;\n    }\n    if (y.status === \"error\") {\n      x(y.message ?? \"Value is not available.\");\n      return;\n    }\n    x(null), h(!0);\n    try {\n      await c(N), p(!1);\n    } catch (L) {\n      x(L instanceof Error ? L.message : \"Failed to save.\");\n    } finally {\n      h(!1);\n    }\n  }, [\n    f,\n    s,\n    y,\n    c\n  ]);\n  return /* @__PURE__ */ v(\"div\", {\n    className: `cedros-field ${m}`.trim(),\n    children: [/* @__PURE__ */ v(\"div\", {\n      className: \"cedros-field__head\",\n      children: [/* @__PURE__ */ n(\"span\", {\n        className: \"cedros-field__label\",\n        children: e\n      }), !l && /* @__PURE__ */ n(\"button\", {\n        type: \"button\",\n        className: \"cedros-button cedros-button-ghost cedros-button-sm\",\n        onClick: C,\n        children: \"Edit\"\n      })]\n    }), l ? /* @__PURE__ */ v(Z, { children: [\n      a && /* @__PURE__ */ n(\"span\", {\n        className: \"cedros-field__help\",\n        children: a\n      }),\n      /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-field__control\",\n        children: [i && /* @__PURE__ */ n(\"span\", {\n          className: \"cedros-field__prefix\",\n          children: i\n        }), /* @__PURE__ */ n(\"input\", {\n          type: \"text\",\n          className: \"cedros-input\",\n          value: f,\n          placeholder: o,\n          disabled: k,\n          autoFocus: !0,\n          \"aria-label\": e,\n          onChange: (N) => u(N.target.value),\n          onKeyDown: (N) => {\n            N.key === \"Enter\" && E(), N.key === \"Escape\" && T();\n          }\n        })]\n      }),\n      y.status === \"checking\" && /* @__PURE__ */ n(\"span\", {\n        className: \"cedros-field__hint\",\n        children: \"Checking availability…\"\n      }),\n      y.status === \"ok\" && /* @__PURE__ */ n(\"span\", {\n        className: \"cedros-field__hint cedros-field__hint--ok\",\n        children: y.message\n      }),\n      (g || y.status === \"error\") && /* @__PURE__ */ n(\"span\", {\n        className: \"cedros-field__hint cedros-field__hint--error\",\n        children: g ?? y.message\n      }),\n      /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-field__actions\",\n        children: [/* @__PURE__ */ n(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-primary cedros-button-sm\",\n          onClick: E,\n          disabled: k || y.status === \"checking\",\n          children: k ? /* @__PURE__ */ n(W, { size: \"sm\" }) : \"Save\"\n        }), /* @__PURE__ */ n(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-outline cedros-button-sm\",\n          onClick: T,\n          disabled: k,\n          children: \"Cancel\"\n        })]\n      })\n    ] }) : /* @__PURE__ */ n(\"span\", {\n      className: `cedros-field__value${r ? \"\" : \" cedros-field__value--empty\"}`,\n      children: r ? `${i ?? \"\"}${r}` : t\n    })]\n  });\n}\nvar km = R((() => {\n  G(), ee();\n}));\nfunction xm(e) {\n  return e.length < 3 ? \"Username must be at least 3 characters.\" : e.length > 30 ? \"Username must be 30 characters or less.\" : /^[a-z0-9_]+$/.test(e) ? e.startsWith(\"_\") || e.endsWith(\"_\") ? \"Username cannot start or end with an underscore.\" : Va.has(e) ? \"That username is reserved.\" : null : \"Use lowercase letters, numbers, and underscores only.\";\n}\nfunction _m(e) {\n  return e.length === 0 ? \"Name cannot be empty.\" : e.length > 100 ? \"Name must be 100 characters or less.\" : null;\n}\nfunction Am({ className: e = \"\" }) {\n  const { user: r, refreshUser: o } = Dt(), { updateProfile: t } = ja(), { checkAvailability: i, setUsername: a } = pm(), s = S(async (m) => {\n    await t({ name: m }), await o();\n  }, [t, o]), d = S(async (m) => {\n    await a(m), await o();\n  }, [a, o]), c = S(async (m) => {\n    const l = await i(m);\n    return l.available ? null : l.error || \"That username is taken.\";\n  }, [i]);\n  return /* @__PURE__ */ v(\"div\", {\n    className: `cedros-account-card ${e}`.trim(),\n    children: [\n      /* @__PURE__ */ n(ym, {}),\n      /* @__PURE__ */ n(\"div\", { className: \"cedros-account-card__divider\" }),\n      /* @__PURE__ */ n(hn, {\n        label: \"Display name\",\n        value: r?.name ?? \"\",\n        placeholder: \"Your name\",\n        validateFormat: _m,\n        onSave: s\n      }),\n      /* @__PURE__ */ n(\"div\", { className: \"cedros-account-card__divider\" }),\n      /* @__PURE__ */ n(hn, {\n        label: \"Username\",\n        value: r?.username ?? \"\",\n        placeholder: \"username\",\n        prefix: \"@\",\n        helpText: \"3–30 characters: lowercase letters, numbers, and underscores.\",\n        validateFormat: xm,\n        checkAvailable: c,\n        onSave: d\n      })\n    ]\n  });\n}\nvar Va, Cm = R((() => {\n  So(), Ut(), fm(), wm(), km(), Va = /* @__PURE__ */ new Set([\n    \"admin\",\n    \"system\",\n    \"support\",\n    \"help\",\n    \"root\",\n    \"moderator\",\n    \"mod\",\n    \"staff\",\n    \"cedros\"\n  ]);\n}));\nfunction Wa() {\n  const { config: e, authState: r, _internal: o } = ce(), [t, i] = _([]), [a, s] = _(!1), [d, c] = _(null), m = B(() => new At(e.serverUrl, e.requestTimeout, e.retryAttempts, o?.getAccessToken), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    o\n  ]), l = S(() => {\n    c(null);\n  }, []), p = S(async () => {\n    if (r !== \"authenticated\") {\n      i([]);\n      return;\n    }\n    s(!0), c(null);\n    try {\n      const f = await m.listCredentials();\n      i(f);\n    } catch (f) {\n      c(f);\n    } finally {\n      s(!1);\n    }\n  }, [r, m]);\n  return D(() => {\n    r === \"authenticated\" ? p() : i([]);\n  }, [r, p]), {\n    credentials: t,\n    isLoading: a,\n    error: d,\n    fetchCredentials: p,\n    unlinkCredential: S(async (f) => {\n      s(!0), c(null);\n      try {\n        await m.unlinkCredential(f), await p();\n      } catch (u) {\n        throw c(u), u;\n      } finally {\n        s(!1);\n      }\n    }, [m, p]),\n    clearError: l\n  };\n}\nvar qt = R((() => {\n  G(), oe(), Fi();\n}));\nfunction Em() {\n  const { config: e, _internal: r } = ce(), [o, t] = _(!1), [i, a] = _(null), s = B(() => new te({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    retryAttempts: e.retryAttempts,\n    getAccessToken: r?.getAccessToken\n  }), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    r?.getAccessToken\n  ]);\n  return {\n    setPassword: S(async (d) => {\n      t(!0), a(null);\n      try {\n        await s.post(\"/set-password\", { password: d });\n      } catch (c) {\n        const m = O(c, \"Failed to set password\");\n        throw a(m), m;\n      } finally {\n        t(!1);\n      }\n    }, [s]),\n    isLoading: o,\n    error: i\n  };\n}\nvar Sm = R((() => {\n  oe(), ie();\n}));\nfunction Rm({ onPasswordChange: e, onCancel: r, className: o = \"\" }) {\n  const { isLoading: t, error: i, changePassword: a, clearError: s } = ja(), [d, c] = _(\"\"), [m, l] = _(\"\"), [p, f] = _(\"\"), [u, g] = _(null), [x, k] = _(null), h = Er(m), y = m === p, b = d.length > 0 && m.length > 0 && p.length > 0 && h.isValid && y, w = S(async () => {\n    if (b) {\n      g(null), k(null);\n      try {\n        await a({\n          currentPassword: d,\n          newPassword: m\n        }), c(\"\"), l(\"\"), f(\"\"), k(\"Password changed successfully. Other sessions have been logged out.\"), e?.(), setTimeout(() => r(), 2e3);\n      } catch (C) {\n        g(C instanceof Error ? C.message : \"Failed to change password\");\n      }\n    }\n  }, [\n    b,\n    d,\n    m,\n    a,\n    e,\n    r\n  ]), A = S(() => {\n    g(null), s(), r();\n  }, [s, r]);\n  return /* @__PURE__ */ n(\"div\", {\n    className: `cedros-profile-settings ${o}`,\n    children: /* @__PURE__ */ v(\"div\", {\n      className: \"cedros-profile-panel\",\n      children: [\n        /* @__PURE__ */ n(\"h3\", {\n          className: \"cedros-profile-title\",\n          children: \"Change password\"\n        }),\n        /* @__PURE__ */ n(\"p\", {\n          className: \"cedros-profile-description\",\n          children: \"Enter your current password and choose a new one. This will log you out of other devices.\"\n        }),\n        (u || i) && /* @__PURE__ */ n(\"div\", {\n          className: \"cedros-profile-error\",\n          children: /* @__PURE__ */ n(X, {\n            error: {\n              code: \"UNKNOWN_ERROR\",\n              message: u || i?.message || \"\"\n            },\n            onDismiss: () => {\n              g(null), s();\n            }\n          })\n        }),\n        x && /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-profile-success\",\n          children: [/* @__PURE__ */ n(\"span\", {\n            className: \"cedros-profile-success-icon\",\n            children: \"✓\"\n          }), x]\n        }),\n        /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-profile-form\",\n          children: [\n            /* @__PURE__ */ n(\"div\", {\n              className: \"cedros-profile-field\",\n              children: /* @__PURE__ */ n(Re, {\n                label: \"Current password\",\n                placeholder: \"Enter your current password\",\n                value: d,\n                onChange: (C) => c(C.target.value),\n                disabled: t,\n                autoFocus: !0\n              })\n            }),\n            /* @__PURE__ */ n(\"div\", {\n              className: \"cedros-profile-field\",\n              children: /* @__PURE__ */ n(Re, {\n                label: \"New password\",\n                placeholder: \"Enter new password\",\n                value: m,\n                onChange: (C) => l(C.target.value),\n                disabled: t,\n                showStrengthMeter: !0\n              })\n            }),\n            /* @__PURE__ */ n(\"div\", {\n              className: \"cedros-profile-field\",\n              children: /* @__PURE__ */ n(Re, {\n                label: \"Confirm new password\",\n                placeholder: \"Confirm new password\",\n                value: p,\n                onChange: (C) => f(C.target.value),\n                disabled: t,\n                error: p.length > 0 && !y ? \"Passwords do not match\" : void 0\n              })\n            })\n          ]\n        }),\n        /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-profile-actions\",\n          children: [/* @__PURE__ */ n(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-outline cedros-button-md\",\n            onClick: A,\n            disabled: t,\n            children: \"Cancel\"\n          }), /* @__PURE__ */ n(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-primary cedros-button-md\",\n            onClick: w,\n            disabled: t || !b,\n            children: t ? /* @__PURE__ */ v(Z, { children: [/* @__PURE__ */ n(W, { size: \"sm\" }), /* @__PURE__ */ n(\"span\", { children: \"Changing...\" })] }) : \"Change password\"\n          })]\n        })\n      ]\n    })\n  });\n}\nvar Ha = R((() => {\n  Ut(), nr(), ee(), le(), Ye();\n}));\nfunction Nm({ onPasswordChange: e, className: r = \"\" }) {\n  const { credentials: o, fetchCredentials: t } = Wa(), i = o.some((d) => d.credentialType === \"password\"), [a, s] = _(\"view\");\n  return a === \"change\" ? /* @__PURE__ */ n(Rm, {\n    className: r,\n    onCancel: () => s(\"view\"),\n    onPasswordChange: () => {\n      s(\"view\"), e?.();\n    }\n  }) : a === \"set\" ? /* @__PURE__ */ n(Tm, {\n    className: r,\n    onCancel: () => s(\"view\"),\n    onDone: async () => {\n      await t(), s(\"view\"), e?.();\n    }\n  }) : /* @__PURE__ */ n(\"div\", {\n    className: `cedros-account-card ${r}`.trim(),\n    children: /* @__PURE__ */ v(\"div\", {\n      className: \"cedros-field\",\n      children: [\n        /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-field__head\",\n          children: [/* @__PURE__ */ n(\"span\", {\n            className: \"cedros-field__label\",\n            children: \"Password\"\n          }), i ? /* @__PURE__ */ n(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-outline cedros-button-sm\",\n            onClick: () => s(\"change\"),\n            children: \"Change password\"\n          }) : /* @__PURE__ */ n(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-outline cedros-button-sm\",\n            onClick: () => s(\"set\"),\n            children: \"Set a password\"\n          })]\n        }),\n        /* @__PURE__ */ n(\"span\", {\n          className: `cedros-field__value${i ? \"\" : \" cedros-field__value--empty\"}`,\n          children: i ? \"••••••••\" : \"No password set\"\n        }),\n        !i && /* @__PURE__ */ n(\"span\", {\n          className: \"cedros-field__help\",\n          children: \"Add a password so you can sign in with your email as well.\"\n        })\n      ]\n    })\n  });\n}\nfunction Tm({ onCancel: e, onDone: r, className: o = \"\" }) {\n  const { setPassword: t, isLoading: i } = Em(), [a, s] = _(\"\"), [d, c] = _(\"\"), [m, l] = _(null), p = Er(a), f = a === d, u = p.isValid && f && d.length > 0, g = S(async () => {\n    if (u) {\n      l(null);\n      try {\n        await t(a), await r();\n      } catch (x) {\n        l(x instanceof Error ? x.message : \"Failed to set password.\");\n      }\n    }\n  }, [\n    u,\n    a,\n    t,\n    r\n  ]);\n  return /* @__PURE__ */ n(\"div\", {\n    className: `cedros-profile-settings ${o}`.trim(),\n    children: /* @__PURE__ */ v(\"div\", {\n      className: \"cedros-profile-panel\",\n      children: [\n        /* @__PURE__ */ n(\"h3\", {\n          className: \"cedros-profile-title\",\n          children: \"Set a password\"\n        }),\n        /* @__PURE__ */ n(\"p\", {\n          className: \"cedros-profile-description\",\n          children: \"Choose a password to enable email sign-in alongside your current methods.\"\n        }),\n        m && /* @__PURE__ */ n(\"div\", {\n          className: \"cedros-profile-error\",\n          children: m\n        }),\n        /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-profile-form\",\n          children: [/* @__PURE__ */ n(\"div\", {\n            className: \"cedros-profile-field\",\n            children: /* @__PURE__ */ n(Re, {\n              label: \"New password\",\n              placeholder: \"Enter a new password\",\n              value: a,\n              onChange: (x) => s(x.target.value),\n              disabled: i,\n              showStrengthMeter: !0,\n              autoFocus: !0\n            })\n          }), /* @__PURE__ */ n(\"div\", {\n            className: \"cedros-profile-field\",\n            children: /* @__PURE__ */ n(Re, {\n              label: \"Confirm password\",\n              placeholder: \"Re-enter the password\",\n              value: d,\n              onChange: (x) => c(x.target.value),\n              disabled: i,\n              error: d.length > 0 && !f ? \"Passwords do not match\" : void 0\n            })\n          })]\n        }),\n        /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-profile-actions\",\n          children: [/* @__PURE__ */ n(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-outline cedros-button-md\",\n            onClick: e,\n            disabled: i,\n            children: \"Cancel\"\n          }), /* @__PURE__ */ n(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-primary cedros-button-md\",\n            onClick: g,\n            disabled: i || !u,\n            children: i ? /* @__PURE__ */ n(W, { size: \"sm\" }) : \"Set password\"\n          })]\n        })\n      ]\n    })\n  });\n}\nvar Im = R((() => {\n  qt(), Sm(), Ha(), nr(), ee(), Ye();\n}));\nfunction Lm(e) {\n  return e.some((r) => r === \"email\" || r === \"password\");\n}\nfunction Pm(e, r) {\n  return e ? e.map((o) => o === \"recoveryCode\" ? \"recovery\" : o) : !r || r.length === 0 ? Ka : Lm(r) ? Ga : Ya;\n}\nfunction zm(e) {\n  return e[0] ?? \"password\";\n}\nfunction Ur(e, r) {\n  return r.includes(e);\n}\nfunction Mm({ onStatusChange: e, className: r = \"\" }) {\n  const { status: o, isLoading: t, error: i, getStatus: a, disableTotp: s, regenerateBackupCodes: d, clearError: c } = pa(), m = Un(), [l, p] = _(\"status\"), [f, u] = _(\"password\"), [g, x] = _(\"\"), [k, h] = _(\"\"), [y, b] = _(\"\"), w = M(!1), [A, C] = _(\"\"), [T, E] = _(null), [N, I] = _(!1), [L, z] = _(null), P = Pm(o?.disableMethods, m?.user?.authMethods), U = zm(P), j = Ur(f, P) ? f : U, ae = Ur(\"password\", P), ne = Ur(\"code\", P), ue = Ur(\"recovery\", P), q = j === \"password\" && ne ? \"code\" : j === \"code\" && ue ? \"recovery\" : j === \"code\" && ae || j === \"recovery\" && ae ? \"password\" : j === \"recovery\" && ne ? \"code\" : null, $ = q === \"password\" ? \"Use password\" : q === \"code\" ? \"Use authenticator code\" : q === \"recovery\" ? \"Use recovery code\" : \"\", Q = ae && !ne ? \"This will make your account less secure. Enter your password to confirm.\" : ae ? \"This will make your account less secure. Confirm with your password or a two-factor code.\" : \"This will make your account less secure. Confirm with an authenticator or recovery code.\";\n  D(() => {\n    a().catch(() => {\n    });\n  }, [a]);\n  const se = S(() => {\n    p(\"status\"), e?.(!0);\n  }, [e]), K = () => {\n    x(\"\"), h(\"\"), b(\"\"), u(U), z(null);\n  }, V = (re) => {\n    x(\"\"), h(\"\"), b(\"\"), u(re), z(null);\n  }, me = () => j === \"code\" ? { code: k } : j === \"recovery\" ? { recoveryCode: y } : { password: g }, pe = j === \"code\" ? /^\\d{6}$/.test(k) : j === \"recovery\" ? y.trim().length > 0 : g.length > 0, fe = async () => {\n    I(!0), z(null);\n    try {\n      await s(me()), p(\"status\"), K(), e?.(!1);\n    } catch (re) {\n      z(re instanceof Error ? re.message : \"Failed to disable 2FA\"), x(\"\"), h(\"\"), b(\"\");\n    } finally {\n      I(!1);\n    }\n  }, be = async (re) => {\n    const ge = re ?? A;\n    if (!(w.current || !/^\\d{6}$/.test(ge))) {\n      w.current = !0, I(!0), z(null);\n      try {\n        const we = await d(ge);\n        E(we.recoveryCodes), C(\"\");\n      } catch (we) {\n        z(we instanceof Error ? we.message : \"Failed to regenerate codes\"), C(\"\");\n      } finally {\n        w.current = !1, I(!1);\n      }\n    }\n  }, ve = async () => {\n    T && await navigator.clipboard.writeText(T.join(`\n`));\n  };\n  return t && !o ? /* @__PURE__ */ n(\"div\", {\n    className: `cedros-totp-settings ${r}`,\n    children: /* @__PURE__ */ n(\"div\", {\n      className: \"cedros-totp-panel\",\n      children: /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-totp-loading\",\n        children: [/* @__PURE__ */ n(W, { size: \"sm\" }), /* @__PURE__ */ n(\"span\", { children: \"Loading two-factor authentication…\" })]\n      })\n    })\n  }) : i && !o ? /* @__PURE__ */ v(\"div\", {\n    className: `cedros-totp-settings ${r}`,\n    children: [/* @__PURE__ */ n(X, {\n      error: i,\n      onDismiss: c\n    }), /* @__PURE__ */ n(\"button\", {\n      type: \"button\",\n      className: \"cedros-button cedros-button-primary cedros-button-md\",\n      onClick: () => a(),\n      children: \"Retry\"\n    })]\n  }) : l === \"setup\" ? /* @__PURE__ */ n(\"div\", {\n    className: `cedros-totp-settings ${r}`,\n    children: /* @__PURE__ */ n(ha, {\n      onSuccess: se,\n      onCancel: () => p(\"status\")\n    })\n  }) : l === \"disable\" ? /* @__PURE__ */ n(\"div\", {\n    className: `cedros-totp-settings ${r}`,\n    children: /* @__PURE__ */ v(\"div\", {\n      className: \"cedros-totp-panel\",\n      children: [\n        /* @__PURE__ */ n(\"h3\", {\n          className: \"cedros-totp-title\",\n          children: \"Disable two-factor authentication\"\n        }),\n        /* @__PURE__ */ n(\"p\", {\n          className: \"cedros-totp-description cedros-totp-warning\",\n          children: Q\n        }),\n        L && /* @__PURE__ */ n(\"div\", {\n          className: \"cedros-totp-error\",\n          children: /* @__PURE__ */ n(X, {\n            error: {\n              code: \"UNKNOWN_ERROR\",\n              message: L\n            },\n            onDismiss: () => z(null)\n          })\n        }),\n        /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-totp-verify-input\",\n          children: [\n            j === \"password\" && /* @__PURE__ */ n(Re, {\n              label: \"Password\",\n              placeholder: \"Enter your password\",\n              value: g,\n              onChange: (re) => x(re.target.value),\n              disabled: N,\n              autoFocus: !0\n            }),\n            j === \"code\" && /* @__PURE__ */ n(Zr, {\n              value: k,\n              onChange: h,\n              onComplete: () => {\n              },\n              disabled: N,\n              autoFocus: !0\n            }),\n            j === \"recovery\" && /* @__PURE__ */ v(Z, { children: [/* @__PURE__ */ n(\"label\", {\n              className: \"cedros-label\",\n              htmlFor: \"disable-recovery-code\",\n              children: \"Recovery code\"\n            }), /* @__PURE__ */ n(\"input\", {\n              id: \"disable-recovery-code\",\n              type: \"text\",\n              className: \"cedros-input\",\n              placeholder: \"Enter recovery code\",\n              value: y,\n              onChange: (re) => b(re.target.value),\n              disabled: N,\n              autoFocus: !0,\n              autoComplete: \"one-time-code\"\n            })] }),\n            q && /* @__PURE__ */ n(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-ghost cedros-button-sm\",\n              onClick: () => V(q),\n              disabled: N,\n              children: $\n            })\n          ]\n        }),\n        /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-totp-actions\",\n          children: [/* @__PURE__ */ n(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-outline cedros-button-md\",\n            onClick: () => {\n              p(\"status\"), K();\n            },\n            disabled: N,\n            children: \"Cancel\"\n          }), /* @__PURE__ */ n(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-danger cedros-button-md\",\n            onClick: fe,\n            disabled: N || !pe,\n            children: N ? /* @__PURE__ */ v(Z, { children: [/* @__PURE__ */ n(W, { size: \"sm\" }), /* @__PURE__ */ n(\"span\", { children: \"Disabling...\" })] }) : \"Disable 2FA\"\n          })]\n        })\n      ]\n    })\n  }) : l === \"regenerate\" ? T ? /* @__PURE__ */ n(\"div\", {\n    className: `cedros-totp-settings ${r}`,\n    children: /* @__PURE__ */ v(\"div\", {\n      className: \"cedros-totp-panel\",\n      children: [\n        /* @__PURE__ */ n(\"h3\", {\n          className: \"cedros-totp-title\",\n          children: \"New recovery codes\"\n        }),\n        /* @__PURE__ */ n(\"p\", {\n          className: \"cedros-totp-description\",\n          children: \"Save these codes in a secure place. Your old codes are no longer valid.\"\n        }),\n        /* @__PURE__ */ n(\"div\", {\n          className: \"cedros-totp-backup-codes\",\n          children: T.map((re, ge) => /* @__PURE__ */ n(\"code\", {\n            className: \"cedros-totp-backup-code\",\n            children: re\n          }, ge))\n        }),\n        /* @__PURE__ */ n(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-outline cedros-button-md cedros-button-full\",\n          onClick: ve,\n          children: \"Copy all codes\"\n        }),\n        /* @__PURE__ */ n(\"div\", {\n          className: \"cedros-totp-actions\",\n          children: /* @__PURE__ */ n(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-primary cedros-button-md\",\n            onClick: () => {\n              p(\"status\"), E(null);\n            },\n            children: \"Done\"\n          })\n        })\n      ]\n    })\n  }) : /* @__PURE__ */ n(\"div\", {\n    className: `cedros-totp-settings ${r}`,\n    children: /* @__PURE__ */ v(\"div\", {\n      className: \"cedros-totp-panel\",\n      children: [\n        /* @__PURE__ */ n(\"h3\", {\n          className: \"cedros-totp-title\",\n          children: \"Regenerate recovery codes\"\n        }),\n        /* @__PURE__ */ n(\"p\", {\n          className: \"cedros-totp-description\",\n          children: \"This will invalidate all existing recovery codes. Enter your authenticator code to confirm.\"\n        }),\n        L && /* @__PURE__ */ n(\"div\", {\n          className: \"cedros-totp-error\",\n          children: /* @__PURE__ */ n(X, {\n            error: {\n              code: \"UNKNOWN_ERROR\",\n              message: L\n            },\n            onDismiss: () => z(null)\n          })\n        }),\n        /* @__PURE__ */ n(\"div\", {\n          className: \"cedros-totp-verify-input\",\n          children: /* @__PURE__ */ n(Zr, {\n            value: A,\n            onChange: C,\n            onComplete: be,\n            disabled: N,\n            autoFocus: !0\n          })\n        }),\n        /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-totp-actions\",\n          children: [/* @__PURE__ */ n(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-outline cedros-button-md\",\n            onClick: () => {\n              p(\"status\"), C(\"\"), z(null);\n            },\n            disabled: N,\n            children: \"Cancel\"\n          }), /* @__PURE__ */ n(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-primary cedros-button-md\",\n            onClick: () => be(),\n            disabled: N || !/^\\d{6}$/.test(A),\n            children: N ? /* @__PURE__ */ v(Z, { children: [/* @__PURE__ */ n(W, { size: \"sm\" }), /* @__PURE__ */ n(\"span\", { children: \"Regenerating...\" })] }) : \"Regenerate codes\"\n          })]\n        })\n      ]\n    })\n  }) : /* @__PURE__ */ n(\"div\", {\n    className: `cedros-totp-settings ${r}`,\n    children: /* @__PURE__ */ v(\"div\", {\n      className: \"cedros-totp-panel\",\n      children: [/* @__PURE__ */ v(\"div\", {\n        className: \"cedros-totp-status-header\",\n        children: [/* @__PURE__ */ v(\"div\", {\n          className: \"cedros-totp-status-info\",\n          children: [/* @__PURE__ */ n(\"h3\", {\n            className: \"cedros-totp-title\",\n            children: \"Two-factor authentication\"\n          }), /* @__PURE__ */ n(\"p\", {\n            className: \"cedros-totp-description\",\n            children: \"Require a code from your authenticator app when you sign in with your password.\"\n          })]\n        }), /* @__PURE__ */ n(\"span\", {\n          className: `cedros-badge ${o?.enabled ? \"cedros-badge--ok\" : \"cedros-badge--muted\"}`,\n          children: o?.enabled ? \"Enabled\" : \"Disabled\"\n        })]\n      }), o?.enabled ? /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-totp-enabled-actions\",\n        children: [\n          /* @__PURE__ */ v(\"div\", {\n            className: \"cedros-totp-description\",\n            style: { marginTop: \"0.25rem\" },\n            children: [\"Recovery codes remaining: \", /* @__PURE__ */ n(\"strong\", { children: o.recoveryCodesRemaining })]\n          }),\n          /* @__PURE__ */ n(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-outline cedros-button-md\",\n            onClick: () => p(\"regenerate\"),\n            children: \"Regenerate recovery codes\"\n          }),\n          /* @__PURE__ */ n(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-danger-outline cedros-button-md\",\n            onClick: () => {\n              u(U), p(\"disable\");\n            },\n            children: \"Disable 2FA\"\n          })\n        ]\n      }) : /* @__PURE__ */ n(\"button\", {\n        type: \"button\",\n        className: \"cedros-button cedros-button-primary cedros-button-md\",\n        onClick: () => p(\"setup\"),\n        children: \"Enable two-factor authentication\"\n      })]\n    })\n  });\n}\nvar Ka, Ga, Ya, Om = R((() => {\n  G(), fa(), oe(), xo(), vo(), nr(), ee(), le(), Ka = [\n    \"password\",\n    \"code\",\n    \"recovery\"\n  ], Ga = [\"password\"], Ya = [\"code\", \"recovery\"];\n})), Dm = R((() => {\n  vo(), xo(), hr(), Om();\n}));\nfunction Ro() {\n  const [e, r] = _({\n    open: !1,\n    options: Xa\n  }), o = M(null);\n  D(() => () => {\n    o.current?.(!1), o.current = null;\n  }, []);\n  const t = S((a) => new Promise((s) => {\n    o.current?.(!1), o.current = s, r({\n      open: !0,\n      options: a\n    });\n  }), []), i = S((a) => {\n    o.current?.(a), o.current = null, r((s) => ({\n      open: !1,\n      options: s.options\n    }));\n  }, []);\n  return {\n    confirm: t,\n    dialogProps: {\n      open: e.open,\n      title: e.options.title,\n      description: e.options.description,\n      confirmLabel: e.options.confirmLabel,\n      cancelLabel: e.options.cancelLabel,\n      destructive: e.options.destructive,\n      onConfirm: S(() => i(!0), [i]),\n      onCancel: S(() => i(!1), [i])\n    }\n  };\n}\nvar Xa, No = R((() => {\n  G(), Xa = { title: \"\" };\n}));\nfunction Um({ cancelLabel: e, cancelRef: r, className: o, closeLabel: t, confirmLabel: i, confirmRef: a, description: s, descriptionId: d, destructive: c, dialogRef: m, onCancel: l, onConfirm: p, title: f, titleId: u }) {\n  const g = o.split(/\\s+/).includes(\"cedros-data-dialog\");\n  return /* @__PURE__ */ n(\"div\", {\n    className: `${g ? \"cedros-data-dialog__overlay \" : \"\"}cedros-modal-backdrop`,\n    role: \"presentation\",\n    onClick: (x) => {\n      x.target === x.currentTarget && l();\n    },\n    children: /* @__PURE__ */ n(\"div\", {\n      ref: m,\n      className: `cedros-confirm-dialog ${o}`.trim(),\n      role: \"alertdialog\",\n      \"aria-modal\": \"true\",\n      \"aria-labelledby\": u,\n      \"aria-describedby\": s ? d : void 0,\n      tabIndex: -1,\n      children: /* @__PURE__ */ n(Fm, {\n        cancelLabel: e,\n        cancelRef: r,\n        closeLabel: t,\n        confirmLabel: i,\n        confirmRef: a,\n        description: s,\n        descriptionId: d,\n        destructive: c,\n        onCancel: l,\n        onConfirm: p,\n        title: f,\n        titleId: u,\n        usesAdminContract: g\n      })\n    })\n  });\n}\nfunction Fm(e) {\n  return e.usesAdminContract ? /* @__PURE__ */ v(Z, { children: [/* @__PURE__ */ v(\"div\", {\n    className: \"cedros-data-dialog__heading\",\n    children: [\n      /* @__PURE__ */ n(\"button\", {\n        type: \"button\",\n        className: \"cedros-data-dialog__close cedros-data-btn cedros-data-btn--ghost cedros-data-btn--sm\",\n        \"aria-label\": e.closeLabel,\n        title: e.closeLabel,\n        onClick: e.onCancel,\n        children: /* @__PURE__ */ v(\"svg\", {\n          viewBox: \"0 0 24 24\",\n          \"aria-hidden\": \"true\",\n          children: [/* @__PURE__ */ n(\"path\", { d: \"M18 6 6 18\" }), /* @__PURE__ */ n(\"path\", { d: \"m6 6 12 12\" })]\n        })\n      }),\n      /* @__PURE__ */ n(\"h2\", {\n        id: e.titleId,\n        className: \"cedros-data-dialog__title cedros-confirm-dialog__title\",\n        children: e.title\n      }),\n      e.description && /* @__PURE__ */ n(\"p\", {\n        id: e.descriptionId,\n        className: \"cedros-data-dialog__description cedros-confirm-dialog__description\",\n        children: e.description\n      })\n    ]\n  }), /* @__PURE__ */ n(\"div\", {\n    className: \"cedros-data-dialog__body\",\n    children: /* @__PURE__ */ n(bn, { ...e })\n  })] }) : /* @__PURE__ */ v(Z, { children: [\n    /* @__PURE__ */ n(\"h2\", {\n      id: e.titleId,\n      className: \"cedros-confirm-dialog__title\",\n      children: e.title\n    }),\n    e.description && /* @__PURE__ */ n(\"p\", {\n      id: e.descriptionId,\n      className: \"cedros-confirm-dialog__description\",\n      children: e.description\n    }),\n    /* @__PURE__ */ n(bn, { ...e })\n  ] });\n}\nfunction bn({ cancelLabel: e, cancelRef: r, confirmLabel: o, confirmRef: t, destructive: i, onCancel: a, onConfirm: s, usesAdminContract: d }) {\n  const c = d ? \"cedros-data-actions \" : \"\", m = d ? \"cedros-data-btn cedros-data-btn--secondary \" : \"\", l = d ? `cedros-data-btn ${i ? \"cedros-data-btn--danger\" : \"cedros-data-btn--primary\"} ` : \"\";\n  return /* @__PURE__ */ v(\"div\", {\n    className: `${c}cedros-confirm-dialog__actions`,\n    children: [/* @__PURE__ */ n(\"button\", {\n      ref: r,\n      type: \"button\",\n      className: `${m}cedros-button cedros-button-outline cedros-button-md`,\n      onClick: a,\n      children: e\n    }), /* @__PURE__ */ n(\"button\", {\n      ref: t,\n      type: \"button\",\n      className: `${l}cedros-button cedros-button-md ${i ? \"cedros-button-danger\" : \"cedros-button-primary\"}`,\n      onClick: s,\n      children: o\n    })]\n  });\n}\nvar qm = R((() => {\n}));\nfunction Ze({ open: e, title: r, description: o, confirmLabel: t, cancelLabel: i, destructive: a = !1, onConfirm: s, onCancel: d, className: c = \"\" }) {\n  const m = J(), l = M(null), p = M(null), f = M(null), u = he(), g = `${u}-title`, x = `${u}-desc`;\n  return Jn(e, l, d, a ? f : p), !e || typeof document > \"u\" ? null : /* @__PURE__ */ n(Um, {\n    cancelLabel: i ?? m.common.cancel,\n    cancelRef: f,\n    className: c,\n    closeLabel: m.auth.close,\n    confirmLabel: t ?? m.common.confirm,\n    confirmRef: p,\n    description: o,\n    descriptionId: x,\n    destructive: a,\n    dialogRef: l,\n    onCancel: d,\n    onConfirm: s,\n    title: r,\n    titleId: g\n  });\n}\nvar To = R((() => {\n  Qn(), Y(), qm();\n}));\nfunction jm({ sessions: e, isLoading: r = !1, error: o, onRevokeAll: t, onRefresh: i, className: a = \"\" }) {\n  const { confirm: s, dialogProps: d } = Ro(), [c, m] = _(!1), [l, p] = _(!1), [f, u] = _(null), [g, x] = _(!1), k = he(), h = M(!1), y = M(!1), b = M(null), w = B(() => e.filter((N) => !N.isCurrent).length, [e]), A = B(() => [...e].sort((N, I) => Number(I.isCurrent) - Number(N.isCurrent)), [e]), C = g ? A : A.slice(0, 3), T = S(async () => {\n    if (!(!t || y.current || r) && e.filter((N) => !N.isCurrent).length !== 0) {\n      if (y.current = !0, !await s({\n        title: \"Sign out of all other sessions?\",\n        description: \"Your current session will stay signed in. Other sessions will need to sign in again.\",\n        confirmLabel: \"Sign out\",\n        destructive: !0\n      }) || !h.current) {\n        y.current = !1;\n        return;\n      }\n      m(!0), p(!1), u(null);\n      try {\n        await t(), h.current && p(!0);\n      } catch {\n        h.current && u(\"Could not sign out of other sessions. Please try again.\");\n      } finally {\n        y.current = !1, h.current && m(!1);\n      }\n    }\n  }, [\n    s,\n    t,\n    e,\n    r\n  ]);\n  D(() => (h.current = !0, () => {\n    h.current = !1;\n  }), []), D(() => {\n    l && b.current?.focus();\n  }, [l]);\n  const E = i && /* @__PURE__ */ n(\"button\", {\n    type: \"button\",\n    className: \"cedros-button cedros-button-outline cedros-button-sm\",\n    disabled: r || c,\n    onClick: async () => {\n      u(null), p(!1);\n      try {\n        await i();\n      } catch {\n        h.current && u(\"Could not refresh sessions. Please try again.\");\n      }\n    },\n    children: r ? \"Refreshing…\" : \"Refresh sessions\"\n  });\n  return r && e.length === 0 ? /* @__PURE__ */ v(\"div\", {\n    className: `cedros-session-list cedros-session-list-loading ${a}`,\n    children: [\n      /* @__PURE__ */ n(W, { size: \"sm\" }),\n      /* @__PURE__ */ n(\"span\", { children: \"Loading sessions…\" }),\n      /* @__PURE__ */ n(Ze, { ...d })\n    ]\n  }) : o && e.length === 0 ? /* @__PURE__ */ v(\"div\", {\n    className: `cedros-session-list ${a}`,\n    children: [\n      /* @__PURE__ */ n(X, { error: o }),\n      E,\n      /* @__PURE__ */ n(Ze, { ...d })\n    ]\n  }) : e.length === 0 ? /* @__PURE__ */ v(\"div\", {\n    className: `cedros-session-list cedros-session-list-empty ${a}`,\n    children: [\n      /* @__PURE__ */ n(\"p\", { children: \"No active sessions found.\" }),\n      f && /* @__PURE__ */ n(X, { error: f }),\n      E,\n      /* @__PURE__ */ n(Ze, { ...d })\n    ]\n  }) : /* @__PURE__ */ v(\"div\", {\n    className: `cedros-session-list ${a}`,\n    \"aria-busy\": r || c,\n    children: [\n      (o || f) && /* @__PURE__ */ n(X, { error: o || f }),\n      l && /* @__PURE__ */ v(\"div\", {\n        ref: b,\n        className: \"cedros-session-success\",\n        role: \"status\",\n        tabIndex: -1,\n        children: [/* @__PURE__ */ n(Km, {}), /* @__PURE__ */ n(\"span\", { children: \"All other sessions have been revoked.\" })]\n      }),\n      /* @__PURE__ */ n(\"ul\", {\n        id: k,\n        className: \"cedros-session-items\",\n        children: C.map((N) => /* @__PURE__ */ n(Bm, { session: N }, N.id))\n      }),\n      e.length > 3 && /* @__PURE__ */ n(\"button\", {\n        type: \"button\",\n        className: \"cedros-button cedros-button-ghost cedros-button-sm cedros-session-toggle\",\n        \"aria-expanded\": g,\n        \"aria-controls\": k,\n        onClick: () => x((N) => !N),\n        children: g ? \"Show fewer sessions\" : `Show all ${e.length} sessions`\n      }),\n      (i || t && w > 0) && /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-session-actions\",\n        children: [E, t && w > 0 && /* @__PURE__ */ n(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-outline cedros-button-sm\",\n          onClick: T,\n          disabled: c || r,\n          children: c ? /* @__PURE__ */ v(Z, { children: [/* @__PURE__ */ n(W, { size: \"sm\" }), /* @__PURE__ */ n(\"span\", { children: \"Signing out…\" })] }) : \"Sign out of all other sessions\"\n        })]\n      }),\n      /* @__PURE__ */ n(Ze, { ...d })\n    ]\n  });\n}\nfunction Bm({ session: e }) {\n  const r = $m(e.userAgent), o = Wm(e.expiresAt);\n  return /* @__PURE__ */ v(\"li\", {\n    className: `cedros-session-item ${e.isCurrent ? \"cedros-session-item-current\" : \"\"}`,\n    children: [/* @__PURE__ */ n(\"div\", {\n      className: \"cedros-session-item-icon\",\n      children: /* @__PURE__ */ n(Hm, { userAgent: e.userAgent })\n    }), /* @__PURE__ */ v(\"div\", {\n      className: \"cedros-session-item-info\",\n      children: [/* @__PURE__ */ v(\"div\", {\n        className: \"cedros-session-item-main\",\n        children: [/* @__PURE__ */ v(\"span\", {\n          className: \"cedros-session-item-device\",\n          children: [\n            r.browser,\n            \" on \",\n            r.os\n          ]\n        }), e.isCurrent && /* @__PURE__ */ n(\"span\", {\n          className: \"cedros-session-current-badge\",\n          children: \"Current session\"\n        })]\n      }), /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-session-item-meta\",\n        children: [\n          e.ipAddress && /* @__PURE__ */ v(\"span\", {\n            className: \"cedros-session-item-ip\",\n            children: [\"IP: \", e.ipAddress]\n          }),\n          /* @__PURE__ */ v(\"span\", {\n            className: \"cedros-session-item-created\",\n            children: [\"Started \", Vm(e.createdAt)]\n          }),\n          o && /* @__PURE__ */ n(\"span\", {\n            className: \"cedros-session-expiring\",\n            children: \"Expires soon\"\n          })\n        ]\n      })]\n    })]\n  });\n}\nfunction $m(e) {\n  if (!e) return {\n    browser: \"Unknown browser\",\n    os: \"Unknown device\"\n  };\n  let r = \"Unknown browser\";\n  e.includes(\"Edg\") ? r = \"Edge\" : e.includes(\"OPR/\") || e.includes(\"OPiOS/\") ? r = \"Opera\" : e.includes(\"Chrome\") || e.includes(\"CriOS/\") ? r = \"Chrome\" : e.includes(\"Firefox\") || e.includes(\"FxiOS/\") ? r = \"Firefox\" : e.includes(\"Safari\") && (r = \"Safari\");\n  let o = \"Unknown device\";\n  return e.includes(\"Windows\") ? o = \"Windows\" : e.includes(\"iPhone\") || e.includes(\"iPad\") ? o = \"iOS\" : e.includes(\"Android\") ? o = \"Android\" : e.includes(\"Mac\") ? o = \"macOS\" : e.includes(\"Linux\") && (o = \"Linux\"), {\n    browser: r,\n    os: o\n  };\n}\nfunction Vm(e) {\n  const r = new Date(e);\n  if (!Number.isFinite(r.getTime())) return \"at an unknown time\";\n  const o = (/* @__PURE__ */ new Date()).getTime() - r.getTime(), t = Math.floor(o / (1e3 * 60)), i = Math.floor(o / (1e3 * 60 * 60)), a = Math.floor(o / (1e3 * 60 * 60 * 24));\n  return t < 1 ? \"just now\" : t < 60 ? `${t} minute${t > 1 ? \"s\" : \"\"} ago` : i < 24 ? `${i} hour${i > 1 ? \"s\" : \"\"} ago` : a < 7 ? `${a} day${a > 1 ? \"s\" : \"\"} ago` : r.toLocaleDateString(void 0, {\n    year: \"numeric\",\n    month: \"short\",\n    day: \"numeric\"\n  });\n}\nfunction Wm(e) {\n  const r = new Date(e), o = /* @__PURE__ */ new Date(), t = 3600 * 1e3, i = r.getTime() - o.getTime();\n  return i > 0 && i < t;\n}\nfunction Hm({ userAgent: e }) {\n  return e?.includes(\"iPhone\") || e?.includes(\"iPad\") || e?.includes(\"Android\") ? /* @__PURE__ */ v(\"svg\", {\n    \"aria-hidden\": \"true\",\n    className: \"cedros-session-device-icon\",\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    children: [/* @__PURE__ */ n(\"rect\", {\n      x: \"5\",\n      y: \"2\",\n      width: \"14\",\n      height: \"20\",\n      rx: \"2\",\n      stroke: \"currentColor\",\n      strokeWidth: \"1.5\"\n    }), /* @__PURE__ */ n(\"circle\", {\n      cx: \"12\",\n      cy: \"18\",\n      r: \"1\",\n      fill: \"currentColor\"\n    })]\n  }) : /* @__PURE__ */ v(\"svg\", {\n    \"aria-hidden\": \"true\",\n    className: \"cedros-session-device-icon\",\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    children: [\n      /* @__PURE__ */ n(\"rect\", {\n        x: \"2\",\n        y: \"4\",\n        width: \"20\",\n        height: \"14\",\n        rx: \"2\",\n        stroke: \"currentColor\",\n        strokeWidth: \"1.5\"\n      }),\n      /* @__PURE__ */ n(\"path\", {\n        d: \"M8 21H16\",\n        stroke: \"currentColor\",\n        strokeWidth: \"1.5\",\n        strokeLinecap: \"round\"\n      }),\n      /* @__PURE__ */ n(\"path\", {\n        d: \"M12 18V21\",\n        stroke: \"currentColor\",\n        strokeWidth: \"1.5\"\n      })\n    ]\n  });\n}\nfunction Km() {\n  return /* @__PURE__ */ n(\"svg\", {\n    \"aria-hidden\": \"true\",\n    className: \"cedros-session-check\",\n    width: \"16\",\n    height: \"16\",\n    viewBox: \"0 0 16 16\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    children: /* @__PURE__ */ n(\"path\", {\n      d: \"M3 8L6 11L13 5\",\n      stroke: \"currentColor\",\n      strokeWidth: \"2\",\n      strokeLinecap: \"round\",\n      strokeLinejoin: \"round\"\n    })\n  });\n}\nvar Gm = R((() => {\n  G(), No(), To(), ee(), le();\n}));\nfunction De() {\n  return {\n    code: \"SERVER_ERROR\",\n    message: \"Could not verify session data. Please refresh and try again.\"\n  };\n}\nfunction jt(e) {\n  return typeof e == \"object\" && e !== null && !Array.isArray(e);\n}\nfunction $r(e) {\n  return typeof e == \"number\" && Number.isSafeInteger(e) && e >= 0;\n}\nfunction Ym(e) {\n  if (!jt(e) || !Array.isArray(e.sessions) || !$r(e.total)) throw De();\n  const r = e.sessions.map(Xm), o = e.limit ?? r.length, t = e.offset ?? 0;\n  if (!$r(o) || !$r(t) || r.length > o || r.length > e.total) throw De();\n  return {\n    sessions: r,\n    total: e.total,\n    limit: o,\n    offset: t\n  };\n}\nfunction Xm(e) {\n  if (!jt(e)) throw De();\n  const r = e.isCurrent ?? e.current;\n  if (typeof e.id != \"string\" || !e.id || typeof r != \"boolean\" || typeof e.createdAt != \"string\" || !Number.isFinite(Date.parse(e.createdAt)) || typeof e.expiresAt != \"string\" || !Number.isFinite(Date.parse(e.expiresAt)) || e.ipAddress != null && typeof e.ipAddress != \"string\" || e.userAgent != null && typeof e.userAgent != \"string\") throw De();\n  return {\n    id: e.id,\n    isCurrent: r,\n    createdAt: e.createdAt,\n    expiresAt: e.expiresAt,\n    ...typeof e.ipAddress == \"string\" ? { ipAddress: e.ipAddress } : {},\n    ...typeof e.userAgent == \"string\" ? { userAgent: e.userAgent } : {}\n  };\n}\nvar Ja, Jm = R((() => {\n  ie(), Ja = class {\n    client;\n    constructor(e, r, o, t) {\n      this.client = new te({\n        baseUrl: e,\n        timeoutMs: r,\n        retryAttempts: o,\n        getAccessToken: t\n      });\n    }\n    async listSessions(e = !1) {\n      try {\n        const r = /* @__PURE__ */ new Map();\n        let o = 0, t;\n        do {\n          const a = Ym(await this.client.get(o === 0 ? \"/sessions\" : `/sessions?offset=${o}`, {\n            cacheTtlMs: 1e3,\n            forceRefresh: e\n          }));\n          if (a.offset !== o) throw De();\n          t ??= a.total, t = Math.min(t, a.total);\n          for (const s of a.sessions) {\n            if (r.has(s.id)) throw De();\n            r.set(s.id, s);\n          }\n          if (a.sessions.length === 0 && o < t) throw De();\n          o += a.sessions.length;\n        } while (o < t);\n        const i = [...r.values()];\n        if (i.filter((a) => a.isCurrent).length > 1) throw De();\n        return i;\n      } catch (r) {\n        throw O(r, \"Failed to list sessions\");\n      }\n    }\n    async revokeAllSessions() {\n      try {\n        const e = await this.client.delete(\"/sessions\");\n        if (!jt(e) || !$r(e.revokedCount) || typeof e.message != \"string\") throw De();\n        return {\n          revokedCount: e.revokedCount,\n          message: e.message\n        };\n      } catch (e) {\n        throw O(e, \"Failed to revoke sessions\");\n      }\n    }\n  };\n}));\nfunction Qm() {\n  const { config: e, authState: r, user: o, _internal: t } = ce(), i = t?.getAccessToken, a = B(() => new Ja(e.serverUrl, e.requestTimeout, e.retryAttempts, i), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    i\n  ]), s = B(() => ({\n    apiClient: a,\n    authState: r,\n    userId: o?.id\n  }), [\n    a,\n    r,\n    o?.id\n  ]), d = r === \"authenticated\" && !!o?.id, [c, m] = _({\n    scope: s,\n    sessions: [],\n    isLoading: d,\n    error: null\n  }), l = M(null), p = M(0), f = M(null), u = S(async () => {\n    if (!d || l.current !== s || f.current) return;\n    const k = ++p.current;\n    m((h) => ({\n      ...h,\n      isLoading: !0,\n      error: null\n    }));\n    try {\n      const h = await a.listSessions(!0);\n      k === p.current && l.current === s && m({\n        scope: s,\n        sessions: h,\n        isLoading: !1,\n        error: null\n      });\n    } catch (h) {\n      k === p.current && l.current === s && m((y) => ({\n        ...y,\n        isLoading: !1,\n        error: O(h, \"Failed to load sessions\")\n      }));\n    }\n  }, [\n    d,\n    a,\n    s\n  ]);\n  D(() => {\n    l.current = s, f.current = null, m({\n      scope: s,\n      sessions: [],\n      isLoading: d,\n      error: null\n    }), u();\n    const k = () => {\n      document.visibilityState === \"visible\" && u();\n    };\n    return window.addEventListener(\"focus\", k), document.addEventListener(\"visibilitychange\", k), () => {\n      l.current = null, p.current += 1, window.removeEventListener(\"focus\", k), document.removeEventListener(\"visibilitychange\", k);\n    };\n  }, [\n    s,\n    d,\n    u\n  ]);\n  const g = S(() => {\n    if (!d || l.current !== s) return Promise.reject({\n      code: \"UNAUTHORIZED\",\n      message: \"Sign in again to manage sessions.\"\n    });\n    if (f.current) return f.current;\n    p.current += 1, m((y) => ({\n      ...y,\n      isLoading: !0,\n      error: null\n    }));\n    const k = () => {\n      if (l.current !== s) throw new Error(\"Session owner changed during the request\");\n    }, h = (async () => {\n      try {\n        const y = await a.revokeAllSessions();\n        k(), m((b) => ({\n          ...b,\n          sessions: b.sessions.filter((w) => w.isCurrent)\n        }));\n        try {\n          const b = await a.listSessions(!0);\n          k(), m({\n            scope: s,\n            sessions: b,\n            isLoading: !1,\n            error: null\n          });\n        } catch (b) {\n          k(), m((w) => ({\n            ...w,\n            error: {\n              ...O(b, \"Failed to refresh sessions\"),\n              message: \"Other sessions were signed out, but the updated list could not be loaded. Refresh sessions to try again.\"\n            }\n          }));\n        }\n        return y;\n      } catch (y) {\n        throw l.current === s && m((b) => ({\n          ...b,\n          error: O(y, \"Failed to sign out of other sessions\")\n        })), y;\n      } finally {\n        l.current === s && (f.current = null, m((y) => ({\n          ...y,\n          isLoading: !1\n        })));\n      }\n    })();\n    return f.current = h, h;\n  }, [\n    d,\n    a,\n    s\n  ]), x = c.scope === s ? c.sessions : [];\n  return {\n    sessions: x,\n    isLoading: c.scope === s ? c.isLoading : d,\n    error: c.scope === s ? c.error : null,\n    fetchSessions: u,\n    revokeAllSessions: g,\n    otherSessionCount: x.filter((k) => !k.isCurrent).length\n  };\n}\nvar Zm = R((() => {\n  G(), oe(), Jm(), ie();\n}));\nfunction eg({ onPasswordChange: e, onTotpChange: r, className: o = \"\" }) {\n  const { user: t, config: i } = lo(), { sessions: a, isLoading: s, error: d, fetchSessions: c, revokeAllSessions: m } = Qm();\n  return /* @__PURE__ */ v(\"div\", {\n    className: `cedros-account-stack ${o}`.trim(),\n    children: [\n      /* @__PURE__ */ n(Nm, { onPasswordChange: () => {\n        c(), e?.();\n      } }),\n      /* @__PURE__ */ n(Mm, { onStatusChange: r }),\n      /* @__PURE__ */ v(\"section\", {\n        className: \"cedros-account-card cedros-account-card--pad\",\n        children: [/* @__PURE__ */ v(\"header\", {\n          className: \"cedros-account-card__header\",\n          children: [/* @__PURE__ */ n(\"h3\", {\n            className: \"cedros-account-card__title\",\n            children: \"Active sessions\"\n          }), /* @__PURE__ */ n(\"p\", {\n            className: \"cedros-account-card__desc\",\n            children: \"Active sign-ins to your account. The same browser can have multiple sessions.\"\n          })]\n        }), /* @__PURE__ */ n(jm, {\n          onRefresh: c,\n          sessions: a,\n          isLoading: s,\n          error: d ?? void 0,\n          onRevokeAll: async () => {\n            await m();\n          }\n        }, `${i.serverUrl}:${t?.id ?? \"\"}`)]\n      })\n    ]\n  });\n}\nvar rg = R((() => {\n  Im(), Dm(), Gm(), oe(), Zm();\n}));\nfunction og() {\n  const { config: e, authState: r, _internal: o } = ce(), [t, i] = _([]), [a, s] = _(!1), [d, c] = _(null), m = B(() => new Ir(e.serverUrl, e.requestTimeout, e.retryAttempts, o?.getAccessToken), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    o\n  ]), l = S(() => {\n    c(null);\n  }, []), p = S(async () => {\n    if (r !== \"authenticated\") {\n      i([]);\n      return;\n    }\n    s(!0), c(null);\n    try {\n      i(await m.listEmails());\n    } catch (u) {\n      c(u);\n    } finally {\n      s(!1);\n    }\n  }, [m, r]);\n  D(() => {\n    r === \"authenticated\" ? p() : i([]);\n  }, [r, p]);\n  const f = S(async (u) => {\n    s(!0), c(null);\n    try {\n      const g = await u();\n      g ? i(g) : await p();\n    } catch (g) {\n      throw c(g), g;\n    } finally {\n      s(!1);\n    }\n  }, [p]);\n  return {\n    emails: t,\n    isLoading: a,\n    error: d,\n    fetchEmails: p,\n    addEmail: S(async (u) => {\n      await f(() => m.addEmail(u));\n    }, [m, f]),\n    resendEmail: S(async (u) => {\n      await f(() => m.resendEmail(u));\n    }, [m, f]),\n    removeEmail: S(async (u) => {\n      await f(() => m.removeEmail(u));\n    }, [m, f]),\n    setPrimaryEmail: S(async (u) => {\n      await f(() => m.setPrimaryEmail(u));\n    }, [m, f]),\n    verifyEmail: S(async (u) => {\n      await f(() => m.verifyEmail(u));\n    }, [m, f]),\n    clearError: l\n  };\n}\nvar tg = R((() => {\n  G(), oe(), fo();\n}));\nfunction ng({ showHeader: e = !0, onEmailChange: r, className: o = \"\" }) {\n  const { emails: t, isLoading: i, error: a, addEmail: s, resendEmail: d, removeEmail: c, setPrimaryEmail: m, clearError: l } = og(), { confirm: p, dialogProps: f } = Ro(), [u, g] = _(\"\"), [x, k] = _(null), [h, y] = _(null), b = S(async (T) => {\n    T.preventDefault();\n    const E = u.trim();\n    if (E) {\n      k(null), y(\"add\");\n      try {\n        await s(E), g(\"\"), k(`Verification sent to ${E}.`), r?.();\n      } catch {\n      } finally {\n        y(null);\n      }\n    }\n  }, [\n    s,\n    u,\n    r\n  ]), w = S(async (T) => {\n    k(null), y(`resend:${T.id}`);\n    try {\n      await d(T.id), k(`Verification resent to ${T.email}.`);\n    } catch {\n    } finally {\n      y(null);\n    }\n  }, [d]), A = S(async (T) => {\n    k(null), y(`primary:${T.id}`);\n    try {\n      await m(T.id), k(`${T.email} is now your primary email.`), r?.();\n    } catch {\n    } finally {\n      y(null);\n    }\n  }, [m, r]), C = S(async (T) => {\n    if (await p({\n      title: `Remove ${T.email}?`,\n      description: \"This email will no longer sign in to your account.\",\n      confirmLabel: \"Remove\",\n      destructive: !0\n    })) {\n      k(null), y(`remove:${T.id}`);\n      try {\n        await c(T.id), k(`${T.email} was removed.`);\n      } catch {\n      } finally {\n        y(null);\n      }\n    }\n  }, [p, c]);\n  return i && t.length === 0 ? /* @__PURE__ */ v(\"div\", {\n    className: `cebbwf5-email-management cebbwf5-email-management-loading ${o}`,\n    children: [/* @__PURE__ */ n(W, { size: \"sm\" }), /* @__PURE__ */ n(\"span\", { children: \"Loading email addresses...\" })]\n  }) : /* @__PURE__ */ v(\"section\", {\n    className: `cebbwf5-email-management ${o}`.trim(),\n    children: [\n      e && /* @__PURE__ */ v(\"header\", {\n        className: \"cebbwf5-email-management__header\",\n        children: [/* @__PURE__ */ n(\"h3\", {\n          className: \"cebbwf5-email-management__title\",\n          children: \"Email addresses\"\n        }), /* @__PURE__ */ n(\"p\", {\n          className: \"cebbwf5-email-management__description\",\n          children: \"Add and verify the email addresses you can use to sign in.\"\n        })]\n      }),\n      a && /* @__PURE__ */ n(X, {\n        error: a,\n        onDismiss: l\n      }),\n      x && /* @__PURE__ */ n(\"p\", {\n        className: \"cebbwf5-email-management__success\",\n        children: x\n      }),\n      /* @__PURE__ */ v(\"form\", {\n        className: \"cebbwf5-email-management__form\",\n        onSubmit: b,\n        children: [/* @__PURE__ */ n(\"div\", {\n          className: \"cebbwf5-email-management__field\",\n          children: /* @__PURE__ */ n(\"input\", {\n            className: \"cedros-input cebbwf5-email-management__input\",\n            type: \"email\",\n            value: u,\n            onChange: (T) => g(T.target.value),\n            placeholder: \"name@example.com\",\n            \"aria-label\": \"Email address\",\n            disabled: h === \"add\",\n            required: !0\n          })\n        }), /* @__PURE__ */ n(\"button\", {\n          type: \"submit\",\n          className: \"cedros-button cedros-button-primary cedros-button-sm\",\n          disabled: h === \"add\" || u.trim().length === 0,\n          children: h === \"add\" ? /* @__PURE__ */ n(W, { size: \"sm\" }) : \"Add email\"\n        })]\n      }),\n      t.length === 0 ? /* @__PURE__ */ n(\"p\", {\n        className: \"cebbwf5-email-management__empty\",\n        children: \"No email addresses added yet.\"\n      }) : /* @__PURE__ */ n(\"ul\", {\n        className: \"cebbwf5-email-management__list\",\n        children: t.map((T) => /* @__PURE__ */ n(ig, {\n          email: T,\n          activeAction: h,\n          onResend: w,\n          onMakePrimary: A,\n          onRemove: C\n        }, T.id))\n      }),\n      /* @__PURE__ */ n(Ze, { ...f })\n    ]\n  });\n}\nfunction ig({ email: e, activeAction: r, onResend: o, onMakePrimary: t, onRemove: i }) {\n  const a = r === `resend:${e.id}`, s = r === `primary:${e.id}`, d = r === `remove:${e.id}`, c = r !== null;\n  return /* @__PURE__ */ v(\"li\", {\n    className: \"cebbwf5-email-row\",\n    children: [/* @__PURE__ */ v(\"div\", {\n      className: \"cebbwf5-email-row__main\",\n      children: [\n        /* @__PURE__ */ n(\"span\", {\n          className: \"cebbwf5-email-row__address\",\n          children: e.email\n        }),\n        /* @__PURE__ */ v(\"span\", {\n          className: \"cebbwf5-email-row__badges\",\n          children: [e.primary && /* @__PURE__ */ n(\"span\", {\n            className: \"cedros-badge cedros-badge--ok\",\n            children: \"Primary\"\n          }), /* @__PURE__ */ n(\"span\", {\n            className: `cedros-badge ${e.verified ? \"cedros-badge--ok\" : \"cedros-badge--muted\"}`,\n            children: e.verified ? \"Verified\" : \"Pending\"\n          })]\n        }),\n        /* @__PURE__ */ v(\"span\", {\n          className: \"cebbwf5-email-row__meta\",\n          children: [\"Added \", ag(e.createdAt)]\n        })\n      ]\n    }), /* @__PURE__ */ v(\"div\", {\n      className: \"cebbwf5-email-row__actions\",\n      children: [\n        !e.verified && /* @__PURE__ */ n(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-outline cedros-button-sm\",\n          onClick: () => o(e),\n          disabled: c,\n          children: a ? /* @__PURE__ */ n(W, { size: \"sm\" }) : \"Resend\"\n        }),\n        e.verified && !e.primary && /* @__PURE__ */ n(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-outline cedros-button-sm\",\n          onClick: () => t(e),\n          disabled: c,\n          children: s ? /* @__PURE__ */ n(W, { size: \"sm\" }) : \"Make primary\"\n        }),\n        !e.primary && /* @__PURE__ */ n(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-outline cedros-button-sm cedros-button-danger-outline\",\n          onClick: () => i(e),\n          disabled: c,\n          children: d ? /* @__PURE__ */ n(W, { size: \"sm\" }) : \"Remove\"\n        })\n      ]\n    })]\n  });\n}\nfunction ag(e) {\n  const r = new Date(e);\n  return Number.isNaN(r.getTime()) ? \"recently\" : r.toLocaleDateString(void 0, {\n    month: \"short\",\n    day: \"numeric\",\n    year: \"numeric\"\n  });\n}\nvar Qa = R((() => {\n  tg(), No(), To(), le(), ee();\n}));\nfunction sg({ onLinkGoogle: e, onLinkApple: r, onAddPasskey: o, onLinkSolana: t, className: i = \"\" }) {\n  const { credentials: a, isLoading: s, error: d, unlinkCredential: c, clearError: m, fetchCredentials: l } = Wa(), { registerPasskey: p, isSupported: f, error: u, clearError: g } = Pi(), { confirm: x, dialogProps: k } = Ro(), [h, y] = _(null), [b, w] = _(!1), A = S(async () => {\n    if (o) {\n      o();\n      return;\n    }\n    w(!0);\n    try {\n      await p(), await l();\n    } catch {\n    } finally {\n      w(!1);\n    }\n  }, [\n    o,\n    p,\n    l\n  ]), C = S(async (P) => {\n    const U = P.label || Bt[P.credentialType];\n    if (await x({\n      title: `Remove ${U}?`,\n      description: `You won't be able to sign in with \"${U}\" anymore.`,\n      confirmLabel: \"Remove\",\n      destructive: !0\n    })) {\n      y(P.id);\n      try {\n        await c(P.id);\n      } catch {\n      } finally {\n        y(null);\n      }\n    }\n  }, [x, c]), T = new Set(a.map((P) => P.credentialType)), E = e && !T.has(\"oauth_google\"), N = r && !T.has(\"oauth_apple\"), I = (o || f) && !T.has(\"webauthn_passkey\"), L = t && !T.has(\"solana\"), z = E || N || I || L;\n  return s && a.length === 0 ? /* @__PURE__ */ v(\"div\", {\n    className: `cedros-linked-accounts cedros-linked-accounts-loading ${i}`,\n    children: [/* @__PURE__ */ n(W, { size: \"sm\" }), /* @__PURE__ */ n(\"span\", { children: \"Loading linked accounts…\" })]\n  }) : /* @__PURE__ */ v(\"div\", {\n    className: `cedros-linked-accounts ${i}`,\n    children: [\n      u && /* @__PURE__ */ n(X, {\n        error: u,\n        onDismiss: g\n      }),\n      d && /* @__PURE__ */ n(X, {\n        error: {\n          code: \"UNKNOWN_ERROR\",\n          message: d.message\n        },\n        onDismiss: m\n      }),\n      a.length === 0 && !s && /* @__PURE__ */ n(\"p\", {\n        className: \"cedros-linked-accounts-empty\",\n        children: \"No linked sign-in methods found.\"\n      }),\n      a.length > 0 && /* @__PURE__ */ n(\"ul\", {\n        className: \"cedros-linked-credential-list\",\n        children: a.map((P) => /* @__PURE__ */ n(dg, {\n          credential: P,\n          isUnlinking: h === P.id,\n          onUnlink: C\n        }, P.id))\n      }),\n      z && /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-linked-add\",\n        children: [/* @__PURE__ */ n(\"p\", {\n          className: \"cedros-linked-add-label\",\n          children: \"Link a new sign-in method\"\n        }), /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-linked-add-buttons\",\n          children: [\n            E && /* @__PURE__ */ v(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-outline cedros-button-sm\",\n              onClick: e,\n              children: [/* @__PURE__ */ n(io, {}), \" Google\"]\n            }),\n            N && /* @__PURE__ */ v(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-outline cedros-button-sm\",\n              onClick: r,\n              children: [/* @__PURE__ */ n(ao, {}), \" Apple\"]\n            }),\n            I && /* @__PURE__ */ n(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-outline cedros-button-sm\",\n              onClick: A,\n              disabled: b,\n              children: b ? /* @__PURE__ */ n(W, { size: \"sm\" }) : /* @__PURE__ */ v(Z, { children: [/* @__PURE__ */ n(Cr, {}), \" Passkey\"] })\n            }),\n            L && /* @__PURE__ */ v(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-outline cedros-button-sm\",\n              onClick: t,\n              children: [/* @__PURE__ */ n(so, {}), \" Solana\"]\n            })\n          ]\n        })]\n      }),\n      /* @__PURE__ */ n(Ze, { ...k })\n    ]\n  });\n}\nfunction dg({ credential: e, isUnlinking: r, onUnlink: o }) {\n  const t = e.label || Bt[e.credentialType], i = Za[e.credentialType] || cg, a = e.credentialType === \"totp\";\n  return /* @__PURE__ */ v(\"li\", {\n    className: \"cedros-linked-credential\",\n    children: [\n      /* @__PURE__ */ n(\"div\", {\n        className: \"cedros-linked-credential__icon\",\n        children: /* @__PURE__ */ n(i, {})\n      }),\n      /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-linked-credential__info\",\n        children: [/* @__PURE__ */ n(\"span\", {\n          className: \"cedros-linked-credential__name\",\n          children: t\n        }), /* @__PURE__ */ v(\"span\", {\n          className: \"cedros-linked-credential__meta\",\n          children: [\n            \"Added \",\n            vn(e.createdAt),\n            e.lastUsedAt && /* @__PURE__ */ v(Z, { children: [\" · Last used \", vn(e.lastUsedAt)] }),\n            e.isPrimary && /* @__PURE__ */ n(Z, { children: \" · Primary\" })\n          ]\n        })]\n      }),\n      /* @__PURE__ */ n(\"div\", {\n        className: \"cedros-linked-credential__action\",\n        children: a ? /* @__PURE__ */ n(\"span\", {\n          title: \"MFA removal requires verification\",\n          children: \"Manage in MFA settings\"\n        }) : /* @__PURE__ */ n(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-outline cedros-button-sm cedros-button-danger-outline\",\n          onClick: () => o(e),\n          disabled: r,\n          title: \"Remove\",\n          children: r ? /* @__PURE__ */ n(W, { size: \"sm\" }) : \"Remove\"\n        })\n      })\n    ]\n  });\n}\nfunction vn(e) {\n  const r = new Date(e), o = (/* @__PURE__ */ new Date()).getTime() - r.getTime(), t = Math.floor(o / (1e3 * 60)), i = Math.floor(o / (1e3 * 60 * 60)), a = Math.floor(o / (1e3 * 60 * 60 * 24));\n  return t < 1 ? \"just now\" : t < 60 ? `${t}m ago` : i < 24 ? `${i}h ago` : a < 30 ? `${a}d ago` : r.toLocaleDateString(void 0, {\n    year: \"numeric\",\n    month: \"short\",\n    day: \"numeric\"\n  });\n}\nfunction cg() {\n  return /* @__PURE__ */ v(\"svg\", {\n    width: \"20\",\n    height: \"20\",\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    children: [/* @__PURE__ */ n(\"circle\", {\n      cx: \"12\",\n      cy: \"12\",\n      r: \"10\",\n      stroke: \"currentColor\",\n      strokeWidth: \"1.5\"\n    }), /* @__PURE__ */ n(\"path\", {\n      d: \"M12 8v4m0 4h.01\",\n      stroke: \"currentColor\",\n      strokeWidth: \"1.5\",\n      strokeLinecap: \"round\"\n    })]\n  });\n}\nfunction lg() {\n  return /* @__PURE__ */ v(\"svg\", {\n    width: \"20\",\n    height: \"20\",\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    children: [\n      /* @__PURE__ */ n(\"rect\", {\n        x: \"3\",\n        y: \"11\",\n        width: \"18\",\n        height: \"11\",\n        rx: \"2\",\n        stroke: \"currentColor\",\n        strokeWidth: \"1.5\"\n      }),\n      /* @__PURE__ */ n(\"path\", {\n        d: \"M7 11V7a5 5 0 0110 0v4\",\n        stroke: \"currentColor\",\n        strokeWidth: \"1.5\",\n        strokeLinecap: \"round\"\n      }),\n      /* @__PURE__ */ n(\"circle\", {\n        cx: \"12\",\n        cy: \"16\",\n        r: \"1.5\",\n        fill: \"currentColor\"\n      })\n    ]\n  });\n}\nfunction ug() {\n  return /* @__PURE__ */ v(\"svg\", {\n    width: \"20\",\n    height: \"20\",\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    children: [/* @__PURE__ */ n(\"rect\", {\n      x: \"5\",\n      y: \"2\",\n      width: \"14\",\n      height: \"20\",\n      rx: \"2\",\n      stroke: \"currentColor\",\n      strokeWidth: \"1.5\"\n    }), /* @__PURE__ */ n(\"path\", {\n      d: \"M9 12h6M12 9v6\",\n      stroke: \"currentColor\",\n      strokeWidth: \"1.5\",\n      strokeLinecap: \"round\"\n    })]\n  });\n}\nfunction mg() {\n  return /* @__PURE__ */ v(\"svg\", {\n    width: \"20\",\n    height: \"20\",\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    children: [\n      /* @__PURE__ */ n(\"rect\", {\n        x: \"3\",\n        y: \"3\",\n        width: \"8\",\n        height: \"8\",\n        rx: \"1\",\n        stroke: \"currentColor\",\n        strokeWidth: \"1.5\"\n      }),\n      /* @__PURE__ */ n(\"rect\", {\n        x: \"13\",\n        y: \"3\",\n        width: \"8\",\n        height: \"8\",\n        rx: \"1\",\n        stroke: \"currentColor\",\n        strokeWidth: \"1.5\"\n      }),\n      /* @__PURE__ */ n(\"rect\", {\n        x: \"3\",\n        y: \"13\",\n        width: \"8\",\n        height: \"8\",\n        rx: \"1\",\n        stroke: \"currentColor\",\n        strokeWidth: \"1.5\"\n      }),\n      /* @__PURE__ */ n(\"rect\", {\n        x: \"13\",\n        y: \"13\",\n        width: \"8\",\n        height: \"8\",\n        rx: \"1\",\n        stroke: \"currentColor\",\n        strokeWidth: \"1.5\"\n      })\n    ]\n  });\n}\nvar Bt, Za, es = R((() => {\n  qt(), zi(), No(), To(), ee(), le(), gr(), Bt = {\n    password: \"Email & Password\",\n    oauth_google: \"Google\",\n    oauth_apple: \"Apple\",\n    solana: \"Solana Wallet\",\n    webauthn_passkey: \"Passkey\",\n    webauthn_security_key: \"Security Key\",\n    totp: \"Authenticator App (2FA)\",\n    sso_oidc: \"Single Sign-On\"\n  }, Za = {\n    password: lg,\n    oauth_google: io,\n    oauth_apple: ao,\n    solana: so,\n    webauthn_passkey: Cr,\n    webauthn_security_key: Cr,\n    totp: ug,\n    sso_oidc: mg\n  };\n}));\nfunction gg() {\n  const { config: e, logout: r } = ce(), [o, t] = _(!1), [i, a] = _(null), s = B(() => new te({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    retryAttempts: e.retryAttempts\n  }), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts\n  ]), d = B(() => `${e.serverUrl.replace(/\\/$/, \"\")}/account-deletion`, [e.serverUrl]), c = S(() => {\n    a(null);\n  }, []);\n  return {\n    isLoading: o,\n    error: i,\n    accountDeletionUrl: d,\n    requestDeletionEmail: S(async (m) => {\n      t(!0), a(null);\n      try {\n        await s.post(\"/account-deletion/request\", { email: m });\n      } catch (l) {\n        const p = O(l, \"Unable to send the account deletion link. Please try again.\");\n        throw a(p), p;\n      } finally {\n        t(!1);\n      }\n    }, [s]),\n    deleteAccount: S(async (m = rs) => {\n      t(!0), a(null);\n      try {\n        await s.post(\"/account-deletion/me\", { confirmText: m }), await r().catch(() => {\n        });\n      } catch (l) {\n        const p = O(l, \"Unable to delete the account. Please review the requirements and try again.\");\n        throw a(p), p;\n      } finally {\n        t(!1);\n      }\n    }, [s, r]),\n    clearError: c\n  };\n}\nvar rs, pg = R((() => {\n  oe(), ie(), rs = \"DELETE\";\n}));\nfunction fg({ onDeleted: e, className: r = \"\" }) {\n  const { deleteAccount: o, isLoading: t, error: i, clearError: a } = gg(), { confirm: s, dialogProps: d } = Ro(), [c, m] = _(\"\"), [l, p] = _(null), f = S(async () => {\n    await s({\n      title: \"Delete your account?\",\n      description: \"This permanently deletes your account and signs you out everywhere. It can’t be undone.\",\n      confirmLabel: \"Delete account\",\n      destructive: !0\n    }) && (p(null), await o(c), p(\"Your account has been deleted.\"), e?.());\n  }, [\n    s,\n    c,\n    o,\n    e\n  ]);\n  return /* @__PURE__ */ v(\"section\", {\n    className: `cedros-account-delete ${r}`.trim(),\n    children: [\n      /* @__PURE__ */ v(\"header\", {\n        className: \"cedros-account-delete-header\",\n        children: [/* @__PURE__ */ n(\"h3\", {\n          className: \"cedros-account-delete-title\",\n          children: \"Delete account\"\n        }), /* @__PURE__ */ n(\"p\", {\n          className: \"cedros-account-delete-description\",\n          children: \"Permanently delete your account and all of your sign-in methods. You will be signed out everywhere.\"\n        })]\n      }),\n      /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-account-delete-note\",\n        children: [/* @__PURE__ */ n(\"strong\", { children: \"This can’t be undone.\" }), \" If you own an organization, transfer ownership before deleting your account. Some records may be kept where the law requires it.\"]\n      }),\n      i && /* @__PURE__ */ n(X, {\n        error: i,\n        onDismiss: a\n      }),\n      l && /* @__PURE__ */ n(\"div\", {\n        className: \"cedros-account-delete-success\",\n        children: l\n      }),\n      /* @__PURE__ */ v(\"div\", {\n        className: \"cedros-field\",\n        children: [/* @__PURE__ */ v(\"label\", {\n          className: \"cedros-field__label\",\n          htmlFor: \"cedros-delete-account-confirm\",\n          children: [\n            \"Type \",\n            /* @__PURE__ */ n(\"code\", { children: Vr }),\n            \" to confirm\"\n          ]\n        }), /* @__PURE__ */ n(\"input\", {\n          id: \"cedros-delete-account-confirm\",\n          className: \"cedros-input\",\n          type: \"text\",\n          autoComplete: \"off\",\n          spellCheck: !1,\n          placeholder: Vr,\n          value: c,\n          onChange: (u) => m(u.target.value),\n          disabled: t\n        })]\n      }),\n      /* @__PURE__ */ n(\"div\", {\n        className: \"cedros-account-delete-actions\",\n        children: /* @__PURE__ */ n(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-danger cedros-button-md\",\n          onClick: () => {\n            f();\n          },\n          disabled: t || c.trim() !== Vr,\n          children: t ? /* @__PURE__ */ v(Z, { children: [/* @__PURE__ */ n(W, { size: \"sm\" }), /* @__PURE__ */ n(\"span\", { children: \"Deleting account…\" })] }) : \"Delete account\"\n        })\n      }),\n      /* @__PURE__ */ n(Ze, { ...d })\n    ]\n  });\n}\nvar Vr, os = R((() => {\n  pg(), No(), To(), le(), ee(), Vr = \"DELETE\";\n}));\nfunction hg({ className: e = \"\" }) {\n  const { config: r, _internal: o } = lo(), [t, i] = _([]), [a, s] = _(!0), [d, c] = _(null), [m, l] = _(null), p = B(() => new Ct(r.serverUrl, r.requestTimeout, r.retryAttempts, o?.getAccessToken), [\n    r.serverUrl,\n    r.requestTimeout,\n    r.retryAttempts,\n    o?.getAccessToken\n  ]), f = S(async () => {\n    s(!0), c(null);\n    try {\n      const g = await p.listAccountCodes();\n      i(g.codes);\n    } catch (g) {\n      c(g instanceof Error ? g.message : \"Unable to load invite codes.\");\n    } finally {\n      s(!1);\n    }\n  }, [p]);\n  D(() => {\n    f();\n  }, [f]);\n  const u = S(async (g) => {\n    if (!navigator.clipboard) {\n      c(\"Clipboard access is not available in this browser.\");\n      return;\n    }\n    try {\n      await navigator.clipboard.writeText(g.code), l(g.id);\n    } catch (x) {\n      c(x instanceof Error ? x.message : \"Unable to copy invite code.\");\n    }\n  }, []);\n  return /* @__PURE__ */ v(\"section\", {\n    className: `cedros-account-card cedros-account-card--pad ${e}`.trim(),\n    children: [\n      /* @__PURE__ */ v(\"header\", {\n        className: \"cedros-account-card__header\",\n        children: [/* @__PURE__ */ n(\"h3\", {\n          className: \"cedros-account-card__title\",\n          children: \"Invite codes\"\n        }), /* @__PURE__ */ n(\"p\", {\n          className: \"cedros-account-card__desc\",\n          children: \"Share your available one-time invite codes.\"\n        })]\n      }),\n      d && /* @__PURE__ */ n(X, {\n        error: d,\n        onDismiss: () => c(null)\n      }),\n      a ? /* @__PURE__ */ n(W, { label: \"Loading invite codes\" }) : t.length === 0 ? /* @__PURE__ */ n(\"p\", {\n        className: \"cedros-account-card__desc\",\n        children: \"No invite codes are available for your account.\"\n      }) : /* @__PURE__ */ n(\"div\", {\n        className: \"cedros-invite-code-list\",\n        children: t.map((g) => /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-invite-code-row\",\n          children: [/* @__PURE__ */ v(\"div\", { children: [/* @__PURE__ */ n(\"code\", {\n            className: \"cedros-invite-code-value\",\n            children: g.code\n          }), /* @__PURE__ */ n(\"p\", {\n            className: \"cedros-account-card__desc\",\n            children: bg(g)\n          })] }), /* @__PURE__ */ n(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-outline cedros-button-sm\",\n            onClick: () => {\n              u(g);\n            },\n            children: m === g.id ? \"Copied\" : \"Copy\"\n          })]\n        }, g.id))\n      })\n    ]\n  });\n}\nfunction bg(e) {\n  return `One-time use.${e.expiresAt ? ` Expires ${new Date(e.expiresAt).toLocaleDateString()}.` : \"\"}`;\n}\nvar vg = R((() => {\n  oe(), G(), qi(), le(), ee();\n}));\nfunction yg({ defaultSection: e = \"profile\", onClose: r, onPasswordChange: o, onEmailChange: t, onTotpChange: i, onAccountDeleted: a, onLinkGoogle: s, onLinkApple: d, onAddPasskey: c, onLinkSolana: m, className: l = \"\" }) {\n  const [p, f] = _(e), u = he(), g = M([]), x = cr.find((h) => h.id === p) ?? cr[0], k = (h, y) => {\n    const b = cr.length;\n    let w;\n    switch (h.key) {\n      case \"ArrowDown\":\n      case \"ArrowRight\":\n        w = (y + 1) % b;\n        break;\n      case \"ArrowUp\":\n      case \"ArrowLeft\":\n        w = (y - 1 + b) % b;\n        break;\n      case \"Home\":\n        w = 0;\n        break;\n      case \"End\":\n        w = b - 1;\n        break;\n      default:\n        return;\n    }\n    h.preventDefault(), f(cr[w].id), g.current[w]?.focus();\n  };\n  return /* @__PURE__ */ v(\"div\", {\n    className: `cedros-account ${l}`.trim(),\n    children: [/* @__PURE__ */ n(\"nav\", {\n      className: \"cedros-account__nav\",\n      role: \"tablist\",\n      \"aria-orientation\": \"vertical\",\n      children: cr.map((h, y) => {\n        const b = h.icon, w = h.id === p;\n        return /* @__PURE__ */ v(\"button\", {\n          ref: (A) => {\n            g.current[y] = A;\n          },\n          type: \"button\",\n          role: \"tab\",\n          id: `${u}-tab-${h.id}`,\n          \"aria-selected\": w,\n          \"aria-controls\": `${u}-panel-${h.id}`,\n          tabIndex: w ? 0 : -1,\n          className: `cedros-account__nav-item${w ? \" cedros-account__nav-item--active\" : \"\"}`,\n          onClick: () => f(h.id),\n          onKeyDown: (A) => k(A, y),\n          children: [/* @__PURE__ */ n(\"span\", {\n            className: \"cedros-account__nav-icon\",\n            \"aria-hidden\": \"true\",\n            children: /* @__PURE__ */ n(b, {})\n          }), /* @__PURE__ */ n(\"span\", {\n            className: \"cedros-account__nav-label\",\n            children: h.label\n          })]\n        }, h.id);\n      })\n    }), /* @__PURE__ */ v(\"div\", {\n      className: \"cedros-account__content\",\n      role: \"tabpanel\",\n      id: `${u}-panel-${p}`,\n      \"aria-labelledby\": `${u}-tab-${p}`,\n      tabIndex: 0,\n      children: [\n        /* @__PURE__ */ v(\"header\", {\n          className: \"cedros-account__header\",\n          children: [/* @__PURE__ */ n(\"h2\", {\n            className: \"cedros-account__title\",\n            children: x.label\n          }), /* @__PURE__ */ n(\"p\", {\n            className: \"cedros-account__description\",\n            children: x.description\n          })]\n        }),\n        /* @__PURE__ */ v(\"div\", {\n          className: \"cedros-account__panel\",\n          children: [\n            p === \"profile\" && /* @__PURE__ */ n(Am, {}),\n            p === \"emails\" && /* @__PURE__ */ n(\"div\", {\n              className: \"cedros-account-card cedros-account-card--pad\",\n              children: /* @__PURE__ */ n(ng, {\n                showHeader: !1,\n                onEmailChange: t\n              })\n            }),\n            p === \"security\" && /* @__PURE__ */ n(eg, {\n              onPasswordChange: o,\n              onTotpChange: i\n            }),\n            p === \"connected\" && /* @__PURE__ */ n(\"div\", {\n              className: \"cedros-account-card cedros-account-card--pad\",\n              children: /* @__PURE__ */ n(sg, {\n                onLinkGoogle: s,\n                onLinkApple: d,\n                onAddPasskey: c,\n                onLinkSolana: m\n              })\n            }),\n            p === \"invites\" && /* @__PURE__ */ n(hg, {}),\n            p === \"danger\" && /* @__PURE__ */ n(fg, { onDeleted: a })\n          ]\n        }, p),\n        r && /* @__PURE__ */ n(\"div\", {\n          className: \"cedros-account__footer\",\n          children: /* @__PURE__ */ n(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-outline cedros-button-md\",\n            onClick: r,\n            children: \"Close\"\n          })\n        })\n      ]\n    })]\n  });\n}\nfunction br() {\n  return {\n    width: 16,\n    height: 16,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: \"currentColor\",\n    strokeWidth: 2,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  };\n}\nfunction wg() {\n  return /* @__PURE__ */ v(\"svg\", {\n    ...br(),\n    children: [/* @__PURE__ */ n(\"path\", { d: \"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\" }), /* @__PURE__ */ n(\"circle\", {\n      cx: \"12\",\n      cy: \"7\",\n      r: \"4\"\n    })]\n  });\n}\nfunction kg() {\n  return /* @__PURE__ */ v(\"svg\", {\n    ...br(),\n    children: [/* @__PURE__ */ n(\"rect\", {\n      width: \"20\",\n      height: \"16\",\n      x: \"2\",\n      y: \"4\",\n      rx: \"2\"\n    }), /* @__PURE__ */ n(\"path\", { d: \"m22 7-8.97 5.7a2 2 0 0 1-2.06 0L2 7\" })]\n  });\n}\nfunction xg() {\n  return /* @__PURE__ */ n(\"svg\", {\n    ...br(),\n    children: /* @__PURE__ */ n(\"path\", { d: \"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\" })\n  });\n}\nfunction _g() {\n  return /* @__PURE__ */ v(\"svg\", {\n    ...br(),\n    children: [/* @__PURE__ */ n(\"path\", { d: \"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\" }), /* @__PURE__ */ n(\"path\", { d: \"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\" })]\n  });\n}\nfunction Ag() {\n  return /* @__PURE__ */ v(\"svg\", {\n    ...br(),\n    children: [\n      /* @__PURE__ */ n(\"path\", { d: \"M2 9a3 3 0 1 0 0 6v3a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3a3 3 0 1 0 0-6V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z\" }),\n      /* @__PURE__ */ n(\"path\", { d: \"M13 5v2\" }),\n      /* @__PURE__ */ n(\"path\", { d: \"M13 17v2\" }),\n      /* @__PURE__ */ n(\"path\", { d: \"M13 11v2\" })\n    ]\n  });\n}\nfunction Cg() {\n  return /* @__PURE__ */ v(\"svg\", {\n    ...br(),\n    children: [/* @__PURE__ */ n(\"path\", { d: \"M3 6h18\" }), /* @__PURE__ */ n(\"path\", { d: \"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\" })]\n  });\n}\nvar cr, Eg = R((() => {\n  Cm(), rg(), Qa(), es(), os(), vg(), cr = [\n    {\n      id: \"profile\",\n      label: \"Profile\",\n      description: \"This is how others will see you.\",\n      icon: wg\n    },\n    {\n      id: \"emails\",\n      label: \"Emails\",\n      description: \"Add and verify the email addresses you can use to sign in.\",\n      icon: kg\n    },\n    {\n      id: \"security\",\n      label: \"Security\",\n      description: \"Your password, two-factor authentication, and signed-in devices.\",\n      icon: xg\n    },\n    {\n      id: \"connected\",\n      label: \"Connected accounts\",\n      description: \"The ways you can sign in to your account.\",\n      icon: _g\n    },\n    {\n      id: \"invites\",\n      label: \"Invite codes\",\n      description: \"Invite codes available for you to share.\",\n      icon: Ag\n    },\n    {\n      id: \"danger\",\n      label: \"Danger zone\",\n      description: \"Permanently delete your account.\",\n      icon: Cg\n    }\n  ];\n})), Sg = R((() => {\n  Eg(), Ut(), So(), qt(), Nt(), Ha(), ee(), le(), Qa(), es(), xo(), os();\n}));\nfunction ts(e, r) {\n  if (typeof document > \"u\" || !e || document.getElementById(r)) return;\n  const o = document.createElement(\"style\");\n  o.id = r, o.textContent = e, (document.head ?? document.documentElement).appendChild(o);\n}\nvar $t, ns = R((() => {\n  $t = \"cedros-login-web-styles\";\n})), Rg = /* @__PURE__ */ dt({ default: () => Ng });\nfunction Ng({ props: e, runtimeBaseUrl: r, colorMode: o }) {\n  return /* @__PURE__ */ n(na, {\n    config: Tg(Bu(e, r, o)),\n    children: /* @__PURE__ */ n(Lg, {\n      props: e,\n      colorMode: o\n    })\n  });\n}\nfunction Tg(e) {\n  const r = e.callbacks?.onLogout;\n  return {\n    ...e,\n    callbacks: {\n      ...e.callbacks,\n      onLogout: () => {\n        try {\n          r?.();\n        } finally {\n          Ig();\n        }\n      }\n    }\n  };\n}\nfunction Ig() {\n  typeof window > \"u\" || window.dispatchEvent(new CustomEvent(is, { detail: { source: \"account-workspace\" } }));\n}\nfunction Lg({ props: e, colorMode: r }) {\n  const o = J(), t = Fa(e, o), { authState: i, isAuthenticated: a, user: s, logout: d } = Dt();\n  return i === \"idle\" || i === \"loading\" ? /* @__PURE__ */ v(\"section\", {\n    className: Br(\"loading\", r),\n    \"data-cebbwf5-block\": er,\n    children: [/* @__PURE__ */ n(\"h2\", {\n      className: \"cedros-account-workspace-block__title\",\n      children: t.title\n    }), /* @__PURE__ */ v(\"div\", {\n      className: \"cedros-account-workspace-block__status\",\n      role: \"status\",\n      children: [/* @__PURE__ */ n(W, { size: \"sm\" }), /* @__PURE__ */ n(\"span\", { children: \"Loading account...\" })]\n    })]\n  }) : a ? /* @__PURE__ */ v(\"section\", {\n    className: Br(\"interactive\", r),\n    \"data-cebbwf5-block\": er,\n    children: [/* @__PURE__ */ v(\"div\", {\n      className: \"cedros-account-workspace-block__header\",\n      children: [/* @__PURE__ */ v(\"div\", {\n        className: \"cedros-account-workspace-block__heading\",\n        children: [/* @__PURE__ */ n(\"h2\", {\n          className: \"cedros-account-workspace-block__title\",\n          children: t.title\n        }), /* @__PURE__ */ n(\"p\", {\n          className: \"cedros-account-workspace-block__body\",\n          children: s?.email ? s.email : t.body\n        })]\n      }), /* @__PURE__ */ n(\"button\", {\n        type: \"button\",\n        className: \"cedros-button cedros-button-outline cedros-button-sm\",\n        onClick: () => {\n          d();\n        },\n        children: o.buttons.signOut\n      })]\n    }), /* @__PURE__ */ n(yg, { className: \"cedros-account-workspace-block__settings\" })]\n  }) : /* @__PURE__ */ v(\"section\", {\n    className: Br(\"signed-out\", r),\n    \"data-cebbwf5-block\": er,\n    children: [\n      /* @__PURE__ */ n(\"h2\", {\n        className: \"cedros-account-workspace-block__title\",\n        children: t.title\n      }),\n      /* @__PURE__ */ n(\"p\", {\n        className: \"cedros-account-workspace-block__body\",\n        children: t.body\n      }),\n      /* @__PURE__ */ n(\"a\", {\n        className: \"cedros-account-workspace-block__link\",\n        href: Eo(t.signInHref),\n        children: t.signInLabel\n      })\n    ]\n  });\n}\nvar is, Pg = R((() => {\n  Sg(), ee(), ia(), So(), Y(), Da(), ns(), mr(), Ot(), is = \"cedros-login:logout\", ts(`${lt}\n${ct}`, $t);\n}));\n_n();\nG();\nOt();\nvar zg = st(() => Promise.resolve().then(() => (Pg(), Rg)));\nfunction Mg({ props: e, runtimeBaseUrl: r, colorMode: o }) {\n  const t = Og(), i = F(sm, {\n    props: e,\n    colorMode: o\n  });\n  return t ? F(ut, { fallback: i }, F(at, { fallback: i }, F(zg, {\n    props: e,\n    runtimeBaseUrl: r,\n    colorMode: o\n  }))) : i;\n}\nfunction Og() {\n  const [e, r] = _(!1);\n  return D(() => r(!0), []), e;\n}\nOt();\nmr();\nvar Dg = {\n  type: \"object\",\n  properties: {\n    eyebrow: { type: \"string\" },\n    logoAlt: { type: \"string\" },\n    logoUrl: { type: \"string\" },\n    title: { type: \"string\" },\n    body: { type: \"string\" },\n    primaryLink: {\n      type: \"object\",\n      properties: {\n        kind: {\n          type: \"string\",\n          enum: [\"cedros-link\"]\n        },\n        href: { type: \"string\" },\n        label: { type: \"string\" }\n      },\n      required: [\n        \"kind\",\n        \"href\",\n        \"label\"\n      ]\n    },\n    secondaryText: { type: \"string\" },\n    variant: {\n      type: \"string\",\n      enum: [\"auth\", \"profile\"]\n    }\n  },\n  required: [\"title\", \"body\"]\n}, Ug = {\n  type: \"object\",\n  properties: {\n    mode: {\n      type: \"string\",\n      enum: [\n        \"sign-in\",\n        \"create-account\",\n        \"forgot-password\",\n        \"reset-password\",\n        \"verify-email\",\n        \"instant-link-verify\",\n        \"accept-invite\"\n      ]\n    },\n    title: { type: \"string\" },\n    submitLabel: { type: \"string\" },\n    successMessage: { type: \"string\" },\n    showProviderButtons: { type: \"boolean\" },\n    enabledProviders: {\n      type: \"array\",\n      items: {\n        type: \"string\",\n        enum: [\n          \"email\",\n          \"google\",\n          \"apple\",\n          \"solana\",\n          \"passkey\",\n          \"instant-link\"\n        ]\n      }\n    },\n    layout: {\n      type: \"string\",\n      enum: [\n        \"card\",\n        \"inline\",\n        \"compact\"\n      ]\n    }\n  },\n  required: [\"mode\"]\n}, Fg = {\n  type: \"object\",\n  properties: {\n    label: { type: \"string\" },\n    href: { type: \"string\" },\n    variant: {\n      type: \"string\",\n      enum: [\n        \"primary\",\n        \"secondary\",\n        \"link\"\n      ]\n    },\n    align: {\n      type: \"string\",\n      enum: [\n        \"start\",\n        \"center\",\n        \"end\"\n      ]\n    }\n  },\n  required: [\"label\", \"href\"]\n}, qg = {\n  type: \"object\",\n  properties: {\n    title: { type: \"string\" },\n    body: { type: \"string\" },\n    sections: {\n      type: \"array\",\n      items: {\n        type: \"string\",\n        enum: [\n          \"profile\",\n          \"security\",\n          \"linked-accounts\",\n          \"sessions\"\n        ]\n      }\n    },\n    signInHref: { type: \"string\" },\n    signInLabel: { type: \"string\" }\n  },\n  required: [\"title\", \"body\"]\n}, Fr = [\n  {\n    type: Me,\n    displayName: \"Login Page Copy\",\n    description: \"Owner-editable heading, body, and safe link copy for Login public pages.\",\n    category: \"identity\",\n    order: 10\n  },\n  {\n    type: Ee,\n    displayName: \"Login Auth Form\",\n    description: \"Portable sign-in, account creation, forgot-password, and reset-password form starter.\",\n    category: \"identity\",\n    order: 20\n  },\n  {\n    type: ft,\n    displayName: \"Login Button\",\n    description: \"Safe call-to-action link for sign-in and account handoff flows.\",\n    category: \"identity\",\n    order: 30\n  },\n  {\n    type: er,\n    displayName: \"Account Workspace\",\n    description: \"Portable authenticated account workspace starter for profile, security, linked accounts, and sessions.\",\n    category: \"identity\",\n    order: 40\n  }\n], jg = [\n  $e(0, \"Login Page Template\", \"Starter page for the Cedros Login login flow.\"),\n  $e(1, \"Register Page Template\", \"Starter page for Cedros Login registration.\"),\n  $e(2, \"Password Recovery Page Template\", \"Starter page for password recovery.\"),\n  $e(3, \"Reset Password Page Template\", \"Starter page for choosing a new password from a secure reset link.\"),\n  $e(4, \"Email Verification Page Template\", \"Starter page for confirming an account email address.\"),\n  $e(5, \"Instant Link Verification Page Template\", \"Starter page for completing sign-in from a secure email link.\"),\n  $e(6, \"Invite Acceptance Page Template\", \"Starter page for team invite acceptance.\"),\n  $e(7, \"Profile Workspace Page Template\", \"Starter page for authenticated profile, identity, and security management.\")\n], as = [\n  {\n    ...Fr[0],\n    Component: im\n  },\n  {\n    ...Fr[1],\n    Component: Zu\n  },\n  {\n    ...Fr[2],\n    Component: am\n  },\n  {\n    ...Fr[3],\n    Component: Mg\n  }\n], Bg = [\n  Dg,\n  Ug,\n  Fg,\n  qg\n], $g = as.map(({ type: e, Component: r }, o) => ({\n  type: e,\n  render: ({ block: t, siteData: i, colorMode: a }) => F(r, {\n    props: Kg(t.props, Bg[o]),\n    runtimeBaseUrl: Gg(i),\n    colorMode: a\n  })\n})), Vg = [\n  Ve(0, [ke(Ee, {\n    mode: \"sign-in\",\n    title: \"Log in\",\n    submitLabel: \"Log in\",\n    successMessage: \"You will continue after logging in.\",\n    showProviderButtons: !0,\n    enabledProviders: [\n      \"email\",\n      \"google\",\n      \"apple\",\n      \"passkey\",\n      \"solana\",\n      \"instant-link\"\n    ],\n    layout: \"card\"\n  })]),\n  Ve(1, [ke(Me, {\n    eyebrow: \"Cedros Login\",\n    title: \"Create your account\",\n    body: \"Choose a sign-in method to create your account and continue.\",\n    primaryLink: dr(\"/register\", \"Create account\"),\n    secondaryText: \"Already have an account? Sign in instead.\",\n    variant: \"auth\"\n  }), ke(Ee, {\n    mode: \"create-account\",\n    title: \"Register\",\n    submitLabel: \"Register\",\n    successMessage: \"Check your email for the next account step.\",\n    showProviderButtons: !0,\n    enabledProviders: [\n      \"email\",\n      \"google\",\n      \"apple\",\n      \"passkey\",\n      \"solana\"\n    ],\n    layout: \"card\"\n  })]),\n  Ve(2, [ke(Me, {\n    eyebrow: \"Account recovery\",\n    title: \"Recover access\",\n    body: \"Enter your email and we’ll send instructions if an account exists.\",\n    primaryLink: dr(\"/password-recovery\", \"Recover access\"),\n    secondaryText: \"For your privacy, we won’t confirm whether an email has an account.\",\n    variant: \"auth\"\n  }), ke(Ee, {\n    mode: \"forgot-password\",\n    title: \"Forgot password\",\n    submitLabel: \"Send recovery email\",\n    successMessage: \"If an account exists, recovery instructions will be sent.\",\n    showProviderButtons: !1,\n    enabledProviders: [\"email\"],\n    layout: \"card\"\n  })]),\n  Ve(3, [ke(Me, {\n    eyebrow: \"Account recovery\",\n    title: \"Reset password\",\n    body: \"Choose a new password to restore access to your account.\",\n    primaryLink: dr(\"/reset-password\", \"Reset password\"),\n    secondaryText: \"This link can only be used once and may expire.\",\n    variant: \"auth\"\n  }), ke(Ee, {\n    mode: \"reset-password\",\n    title: \"Reset password\",\n    submitLabel: \"Update password\",\n    successMessage: \"Your password has been updated.\",\n    showProviderButtons: !1,\n    enabledProviders: [\"email\"],\n    layout: \"card\"\n  })]),\n  Ve(4, [ke(Me, {\n    eyebrow: \"Email verification\",\n    title: \"Verify your email\",\n    body: \"Confirm your email address to finish securing your account.\",\n    primaryLink: dr(\"/verify-email\", \"Verify email\"),\n    secondaryText: \"You can close this page after your email is verified.\",\n    variant: \"auth\"\n  }), ke(Ee, {\n    mode: \"verify-email\",\n    title: \"Verify email\",\n    submitLabel: \"Verify email\",\n    successMessage: \"Your email is verified.\",\n    showProviderButtons: !1,\n    enabledProviders: [\"email\"],\n    layout: \"card\"\n  })]),\n  Ve(5, [ke(Me, {\n    eyebrow: \"Instant link\",\n    title: \"Continue signing in\",\n    body: \"Finish signing in with the secure link from your email.\",\n    primaryLink: dr(\"/instant-link/verify\", \"Continue\"),\n    secondaryText: \"This link can only be used once and may expire.\",\n    variant: \"auth\"\n  }), ke(Ee, {\n    mode: \"instant-link-verify\",\n    title: \"Continue with instant link\",\n    submitLabel: \"Continue\",\n    successMessage: \"Your sign-in link is confirmed.\",\n    showProviderButtons: !1,\n    enabledProviders: [\"email\"],\n    layout: \"card\"\n  })]),\n  Ve(6, [ke(Me, {\n    eyebrow: \"Team invite\",\n    title: \"Accept your invite\",\n    body: \"Sign in with the invited account to join the team.\",\n    primaryLink: dr(\"/accept-invite\", \"Accept invite\"),\n    secondaryText: \"If you’re signed in with another account, you can switch before accepting.\",\n    variant: \"auth\"\n  }), ke(Ee, {\n    mode: \"accept-invite\",\n    title: \"Accept invite\",\n    submitLabel: \"Accept invite\",\n    successMessage: \"Your team access is ready.\",\n    showProviderButtons: !1,\n    enabledProviders: [\"email\"],\n    layout: \"card\"\n  })]),\n  Ve(7, [ke(er, {\n    title: \"Manage your account\",\n    body: \"Update your profile, security settings, and sign-in methods.\",\n    sections: [\n      \"profile\",\n      \"security\",\n      \"linked-accounts\",\n      \"sessions\"\n    ],\n    signInHref: \"/login\",\n    signInLabel: \"Log in to manage account\"\n  })])\n];\nfunction $e(e, r, o) {\n  return {\n    id: Mn[e],\n    displayName: r,\n    description: o,\n    order: e + 1,\n    contentTypes: [\"page\"]\n  };\n}\nfunction ke(e, r) {\n  return {\n    type: e,\n    props: r\n  };\n}\nfunction Ve(e, r) {\n  const o = jg[e];\n  return {\n    ...o,\n    label: o.displayName,\n    zones: [{\n      id: \"main\",\n      label: \"Main content\",\n      description: \"Owner-editable Cedros Login page content.\",\n      order: 10,\n      emptyLabel: \"Add Cedros Login content blocks to this page.\",\n      allowedBlockTypes: Hg(e, r)\n    }],\n    blocks: r,\n    nativeFallback: \"Display owner-authored content or omit this web-only builder template.\"\n  };\n}\nfunction Wg(e) {\n  return [...new Set(e.map((r) => r.type))];\n}\nfunction Hg(e, r) {\n  return e === 0 ? [Me, Ee] : Wg(r);\n}\nfunction dr(e, r) {\n  return {\n    kind: \"cedros-link\",\n    href: e,\n    label: r\n  };\n}\nfunction Kg(e, r) {\n  const o = Object.keys(r.properties ?? {}), t = {};\n  for (const i of o) Object.prototype.hasOwnProperty.call(e, i) && (t[i] = e[i]);\n  return t;\n}\nfunction Gg(e) {\n  if (!e || typeof e != \"object\") return;\n  const r = e, o = r.cedrosLogin;\n  if (o && typeof o == \"object\") {\n    const t = o;\n    if (typeof t.runtimeBaseUrl == \"string\" && t.runtimeBaseUrl) return t.runtimeBaseUrl;\n    if (typeof t.serverUrl == \"string\" && t.serverUrl) return t.serverUrl;\n  }\n  if (typeof r.runtimeBaseUrl == \"string\" && r.runtimeBaseUrl) return r.runtimeBaseUrl;\n}\nkn();\nxn();\nns();\nts(`${lt}\n${ct}`, $t);\nvar Yg = {\n  manifest: Sr,\n  contentBlocks: as,\n  contentBlockRenderers: $g,\n  contentTemplates: Vg\n};\nfunction op() {\n  return Yg;\n}\nexport {\n  op as default\n};\n","imports":[{"dynamic":false,"end":26,"specifier":"react","start":21},{"dynamic":false,"end":306,"specifier":"react","start":301},{"dynamic":false,"end":378,"specifier":"react/jsx-runtime","start":361}],"hasUnsupportedDynamicImports":true}]}