{"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-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:32rem}.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{grid-column:2;justify-content:flex-start;margin-top:0}.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-body{border-top:0;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-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-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));align-self:flex-start;gap:.1875rem;padding:.1875rem;display:inline-flex}.cedros-login-admin-root .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-tabs__tab:hover,.cedros-login-admin-root .cedros-data-tabs__tab[aria-selected=true]{color:var(--cebbwf5-login-admin-fg)}.cedros-login-admin-root .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-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-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-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{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,.cedros-member-list{width:100%}.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);justify-content:space-between;align-items:center;padding:1rem;display:flex}.cedros-invite-item-expired{opacity:.6}.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);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{transition:opacity var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-spring);flex-shrink:0;align-items:center;gap:.5rem;display:flex}@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;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;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);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-plan-seat-limits{gap:.5rem;display:grid}.cedros-plan-seat-row{grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:.5rem;display:grid}.cedros-plan-seat-row-name{overflow-wrap:anywhere;min-width:0;font-size:.875rem}.cedros-plan-seat-count{width:6rem}.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-login-readiness .cedros-data-card__header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.cedros-login-readiness__status{background:color-mix(in srgb, var(--cebbwf5-login-warning) 12%, transparent);color:var(--cebbwf5-login-warning);border-radius:999px;flex:none;padding:.25rem .625rem;font-size:.75rem;font-weight:600}.cedros-login-readiness__status.is-ready{background:color-mix(in srgb, var(--cebbwf5-login-success) 12%, transparent);color:var(--cebbwf5-login-success)}.cedros-login-readiness__body{justify-content:space-between;align-items:center;gap:1rem;display:flex}.cedros-login-readiness__warning{color:var(--cebbwf5-login-warning);margin:0;font-size:.8125rem}.cedros-login-readiness__checks{flex:auto;gap:.5rem;min-width:0;display:grid}.cedros-login-readiness__body>.cedros-data-actions{flex:none}.cedros-login-email-delivery-check{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.8125rem;line-height:1.5}.cedros-login-email-delivery-check--success{color:var(--cebbwf5-login-success)}.cedros-login-email-delivery-check--failed{color:var(--cebbwf5-login-warning)}.cedros-login-service-integrations>summary{cursor:pointer;list-style:none;display:flex}.cedros-login-service-integrations>summary::-webkit-details-marker{display:none}.cedros-login-service-integrations>summary:after{content:\"+\";color:var(--cebbwf5-login-muted-foreground);margin-left:auto;font-size:1.25rem;line-height:1}.cedros-login-service-integrations[open]>summary:after{content:\"−\"}.cedros-login-service-integrations .cedros-settings-page-description{margin-top:.25rem;display:block}@media (width<=640px){.cedros-login-readiness .cedros-data-card__header,.cedros-login-readiness__body{flex-direction:column;align-items:stretch}.cedros-login-readiness__status{align-self:flex-start}.cedros-login-readiness__body .cedros-data-actions{justify-content:flex-start}}.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{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{color:var(--cebbwf5-login-muted-foreground);animation:cedros-invite-unlock-rise .42s var(--cebbwf5-ease-out) 1.3s both;align-items:baseline;gap:.25rem;margin-top:1rem;font-size:.8125rem;display:inline-flex}.cedros-invite-unlock__dots{gap:2px;display:inline-flex}.cedros-invite-unlock__dots span{background:currentColor;border-radius:50%;width:3px;height:3px;animation:1.2s ease-in-out infinite cedros-invite-unlock-dot}.cedros-invite-unlock__dots span:nth-child(2){animation-delay:.15s}.cedros-invite-unlock__dots span:nth-child(3){animation-delay:.3s}@keyframes cedros-invite-unlock-dot{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}\n/*$vite$:1*/"},{"path":"workspace/react/dist/web/register.js","kind":"module","text":"import * as Vo from \"react\";\nimport { Children as Yb, Component as tu, Fragment as Ls, Suspense as Ns, createContext as Ke, createElement as j, forwardRef as Xb, isValidElement as Jb, lazy as Is, memo as nu, useCallback as N, useContext as se, useEffect as Ms, useId as Ne, useInsertionEffect as Ds, useLayoutEffect as Zb, useMemo as B, useRef as O, useState as T, useSyncExternalStore as iu } from \"react\";\nimport { Fragment as ce, jsx as c, jsxs as _ } from \"react/jsx-runtime\";\nvar Qb = Object.create, Po = Object.defineProperty, ey = Object.getOwnPropertyDescriptor, ry = Object.getOwnPropertyNames, oy = Object.getPrototypeOf, su = Object.prototype.hasOwnProperty, h = (e, r) => () => (e && (r = e(e = 0)), r), ne = (e, r) => () => (r || (e((r = { exports: {} }).exports, r), e = null), r.exports), dn = (e, r) => {\n  let o = {};\n  for (var t in e)\n    Po(o, t, {\n      get: e[t],\n      enumerable: !0\n    });\n  return r || Po(o, Symbol.toStringTag, { value: \"Module\" }), o;\n}, au = (e, r, o, t) => {\n  if (r && typeof r == \"object\" || typeof r == \"function\")\n    for (var n = ry(r), i = 0, s = n.length, a; i < s; i++)\n      a = n[i], !su.call(e, a) && a !== o && Po(e, a, {\n        get: ((d) => r[d]).bind(null, a),\n        enumerable: !(t = ey(r, a)) || t.enumerable\n      });\n  return e;\n}, ty = (e, r, o) => (o = e != null ? Qb(oy(e)) : {}, au(r || !e || !e.__esModule ? Po(o, \"default\", {\n  value: e,\n  enumerable: !0\n}) : o, e)), ny = (e) => su.call(e, \"module.exports\") ? e[\"module.exports\"] : au(Po({}, \"__esModule\", { value: !0 }), e), zs, du = h((() => {\n  zs = `.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:32rem}.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{grid-column:2;justify-content:flex-start;margin-top:0}.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-body{border-top:0;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-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-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));align-self:flex-start;gap:.1875rem;padding:.1875rem;display:inline-flex}.cedros-login-admin-root .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-tabs__tab:hover,.cedros-login-admin-root .cedros-data-tabs__tab[aria-selected=true]{color:var(--cebbwf5-login-admin-fg)}.cedros-login-admin-root .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-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-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-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{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,.cedros-member-list{width:100%}.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);justify-content:space-between;align-items:center;padding:1rem;display:flex}.cedros-invite-item-expired{opacity:.6}.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);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{transition:opacity var(--cebbwf5-duration-fast) var(--cebbwf5-ease-out), transform var(--cebbwf5-duration-fast) var(--cebbwf5-ease-spring);flex-shrink:0;align-items:center;gap:.5rem;display:flex}@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;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;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);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-plan-seat-limits{gap:.5rem;display:grid}.cedros-plan-seat-row{grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:.5rem;display:grid}.cedros-plan-seat-row-name{overflow-wrap:anywhere;min-width:0;font-size:.875rem}.cedros-plan-seat-count{width:6rem}.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-login-readiness .cedros-data-card__header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.cedros-login-readiness__status{background:color-mix(in srgb, var(--cebbwf5-login-warning) 12%, transparent);color:var(--cebbwf5-login-warning);border-radius:999px;flex:none;padding:.25rem .625rem;font-size:.75rem;font-weight:600}.cedros-login-readiness__status.is-ready{background:color-mix(in srgb, var(--cebbwf5-login-success) 12%, transparent);color:var(--cebbwf5-login-success)}.cedros-login-readiness__body{justify-content:space-between;align-items:center;gap:1rem;display:flex}.cedros-login-readiness__warning{color:var(--cebbwf5-login-warning);margin:0;font-size:.8125rem}.cedros-login-readiness__checks{flex:auto;gap:.5rem;min-width:0;display:grid}.cedros-login-readiness__body>.cedros-data-actions{flex:none}.cedros-login-email-delivery-check{color:var(--cebbwf5-login-muted-foreground);margin:0;font-size:.8125rem;line-height:1.5}.cedros-login-email-delivery-check--success{color:var(--cebbwf5-login-success)}.cedros-login-email-delivery-check--failed{color:var(--cebbwf5-login-warning)}.cedros-login-service-integrations>summary{cursor:pointer;list-style:none;display:flex}.cedros-login-service-integrations>summary::-webkit-details-marker{display:none}.cedros-login-service-integrations>summary:after{content:\"+\";color:var(--cebbwf5-login-muted-foreground);margin-left:auto;font-size:1.25rem;line-height:1}.cedros-login-service-integrations[open]>summary:after{content:\"−\"}.cedros-login-service-integrations .cedros-settings-page-description{margin-top:.25rem;display:block}@media (width<=640px){.cedros-login-readiness .cedros-data-card__header,.cedros-login-readiness__body{flex-direction:column;align-items:stretch}.cedros-login-readiness__status{align-self:flex-start}.cedros-login-readiness__body .cedros-data-actions{justify-content:flex-start}}.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{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{color:var(--cebbwf5-login-muted-foreground);animation:cedros-invite-unlock-rise .42s var(--cebbwf5-ease-out) 1.3s both;align-items:baseline;gap:.25rem;margin-top:1rem;font-size:.8125rem;display:inline-flex}.cedros-invite-unlock__dots{gap:2px;display:inline-flex}.cedros-invite-unlock__dots span{background:currentColor;border-radius:50%;width:3px;height:3px;animation:1.2s ease-in-out infinite cedros-invite-unlock-dot}.cedros-invite-unlock__dots span:nth-child(2){animation-delay:.15s}.cedros-invite-unlock__dots span:nth-child(3){animation-delay:.3s}@keyframes cedros-invite-unlock-dot{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}`;\n})), Os, cu = h((() => {\n  Os = ':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-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}));\ndu();\ncu();\nvar iy = \"cedros-login\", sy = \"Cedros Login\", ay = \"1.0.22\", dy = \"Authentication and identity extension for Cedros with auth flows, account lifecycle, and CRM integration metadata.\", cy = {\n  platformApiVersion: \"1\",\n  minCedrosDataVersion: \"0.1.82\",\n  witChecksum: \"2bb16879743cfd2748b7deefefcb82204c16b55a1c1a70385f4e9707a83d48f9\"\n};\nvar ly = {\n  server: {\n    packageName: \"cedros-login\",\n    version: \"1.0.22\",\n    required: !0\n  },\n  react: {\n    packageName: \"@cedros/login-react\",\n    version: \"1.0.22\",\n    required: !0\n  },\n  reactNative: {\n    packageName: \"@cedros/login-react-native\",\n    version: \"1.0.22\",\n    required: !0\n  }\n}, uy = {\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  extensions: [{\n    extensionId: \"cedros-pay\",\n    minVersion: \"3.0.2\",\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}, my = [\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], gy = /* @__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\"],\"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-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-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: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: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: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-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\"],\"jobs\":[\"cedros-login:cleanup-expired-auth-data\",\"cedros-login:outbox-dispatch\"],\"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\":[{\"description\":\"Request a verification email for an account email address.\",\"endpoint\":{\"method\":\"POST\",\"path\":\"/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\":\"/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\":\"/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\":\"/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\"}]}}'), hy = {\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}, py = [\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 Data 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], fy = [{\n  moduleId: \"cedros-login:admin\",\n  extensionId: \"cedros-login\",\n  displayName: \"Cedros Login\",\n  version: \"1.0.22\",\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}], vy = { 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] }, by = [{\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\"],\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}], yy = [{\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}], wy = [\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    ],\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: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], ky = { 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 Data.\",\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 Data.\",\n  tags: [\n    \"identity\",\n    \"logins\",\n    \"notifications\"\n  ]\n}] }, xy = [\n  {\n    id: \"cedros-login:login-page\",\n    displayName: \"Login Page\",\n    title: \"Login\",\n    routePath: \"/login\",\n    description: \"Cedros Data 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 Data 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 Data 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 Data 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 Data 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 Data 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 Data 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 Data 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], _y = [\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], Ay = [\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], Cy = [{\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}], Sy = [{\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}], Ey = [{\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}], Ty = [{\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  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}], Ry = {\n  schemaVersion: 1,\n  extensionId: iy,\n  displayName: sy,\n  version: ay,\n  description: dy,\n  compatibility: cy,\n  platformApiVersion: \"1\",\n  packageFamily: ly,\n  dependencies: uy,\n  requiredCapabilities: my,\n  surfaces: gy,\n  registration: hy,\n  capabilities: py,\n  adminModules: fy,\n  analytics: vy,\n  providerAccess: by,\n  crmSourceAccess: yy,\n  databaseAccess: wy,\n  setupSeeds: ky,\n  pageSeeds: xy,\n  contentBlocks: _y,\n  contentTemplates: Ay,\n  formTemplates: Cy,\n  docsArticles: Sy,\n  onboardingPages: Ey,\n  jobSchedules: Ty\n}, Bo = Ry, JC = Bo.extensionId, ZC = Bo.version, wc = \"cedros-login:admin\", QC = Bo.packageFamily, Py = (() => {\n  const e = Bo.adminModules?.find((r) => r.moduleId === wc);\n  if (!e) throw new Error(`Canonical manifest is missing admin module ${wc}`);\n  return e;\n})(), eS = Py.navigation, Us, lu = h((() => {\n  Us = class extends tu {\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: n, showDetails: i = !1 } = this.props;\n      return e ? n || /* @__PURE__ */ c(\"div\", {\n        className: \"cedros-error-boundary\",\n        role: \"alert\",\n        \"aria-live\": \"assertive\",\n        children: /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-error-boundary-content\",\n          children: [\n            /* @__PURE__ */ _(\"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__ */ c(\"circle\", {\n                  cx: \"12\",\n                  cy: \"12\",\n                  r: \"10\"\n                }),\n                /* @__PURE__ */ c(\"line\", {\n                  x1: \"12\",\n                  y1: \"8\",\n                  x2: \"12\",\n                  y2: \"12\"\n                }),\n                /* @__PURE__ */ c(\"line\", {\n                  x1: \"12\",\n                  y1: \"16\",\n                  x2: \"12.01\",\n                  y2: \"16\"\n                })\n              ]\n            }),\n            /* @__PURE__ */ c(\"h2\", {\n              className: \"cedros-error-boundary-title\",\n              children: \"Something went wrong\"\n            }),\n            /* @__PURE__ */ c(\"p\", {\n              className: \"cedros-error-boundary-message\",\n              children: \"We encountered an unexpected error. Please try again.\"\n            }),\n            i && r && /* @__PURE__ */ _(\"details\", {\n              className: \"cedros-error-boundary-details\",\n              children: [/* @__PURE__ */ c(\"summary\", { children: \"Error details\" }), /* @__PURE__ */ _(\"pre\", { children: [r.toString(), o?.componentStack] })]\n            }),\n            /* @__PURE__ */ c(\"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 F(e, r) {\n  Vo.useEffect(e, r);\n}\nvar Y = h((() => {\n})), cn, uu = h((() => {\n  cn = Ke(null);\n})), mu, Ly = h((() => {\n  mu = {\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      planSeatsLoading: \"Loading plans from Cedros Pay…\",\n      planSeatsUnavailable: \"Cedros Pay plans could not be loaded. Limits saved earlier are shown below.\",\n      planSeatsNone: \"Cedros Pay has no active plans yet. Add plans in Cedros Pay and they will appear here.\",\n      planSeatsUnrestricted: \"Unrestricted\",\n      planSeatsLimited: \"Limited\",\n      planSeatsUnlimited: \"Unlimited\",\n      planSeatsCount: \"Seats\",\n      planSeatsNotInPay: \"Not in Cedros Pay\",\n      planSeatsRemove: \"Remove\",\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      readinessTitle: \"Sign-in readiness\",\n      readinessReady: \"Ready to share\",\n      readinessNotReady: \"Needs a sign-in method\",\n      readinessNeedsAttention: \"Needs attention\",\n      readinessReadyBody: \"{methods} will appear on the public sign-in page.\",\n      readinessNotReadyBody: \"No direct sign-in method is ready. Enable and configure a method before sharing the page.\",\n      readinessNeedsAttentionBody: \"One or more enabled methods still need to be verified before sharing the sign-in page.\",\n      readinessNeedsConfiguration: \"Finish configuring: {methods}.\",\n      emailDeliveryUntested: \"Send a real email to {email} to verify delivery for registration, recovery, and invitations.\",\n      emailDeliverySend: \"Send test email\",\n      emailDeliverySending: \"Sending test email…\",\n      emailDeliverySent: \"A test email was accepted for delivery to {email}. Check that inbox.\",\n      emailDeliveryConfirm: \"I received the email\",\n      emailDeliveryResend: \"Send again\",\n      emailDeliveryVerified: \"Email delivery confirmed.\",\n      emailDeliveryFailed: \"Email delivery failed. Ask the site host to configure the email provider, then try again.\",\n      currentAdminEmail: \"your admin email\",\n      previewSignIn: \"Preview sign-in\",\n      previewRegistration: \"Preview registration\",\n      reviewMethods: \"Review methods\",\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      inviteDiscountPlaceholder: \"No discount\",\n      inviteDiscountHelp: \"Redeeming this code also unlocks a subscription discount at checkout, lasting for the life of the subscription and taking precedence over other coupons (requires Cedros Pay). Use 100 for a free subscription.\",\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      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})), Lt, Vs = h((() => {\n  Ly(), Lt = {\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      previous: \"Previous\",\n      next: \"Next\"\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      inviteUnlockRewardNote: \"Unlocked by your invite — applied at checkout, for the life of your subscription.\",\n      inviteUnlockContinue: \"Taking you in\",\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: \"We sent a verification link to {email}. Open it to verify your account and continue automatically.\",\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      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      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. Try again without requesting a new link.\"\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 15 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: mu,\n    extension: {\n      defaultLocale: \"en\",\n      pageSeedDescription: \"Cedros Data 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 kr(e) {\n  if (!e) return \"en\";\n  try {\n    return Intl.getCanonicalLocales(e)[0] ?? \"en\";\n  } catch {\n    return \"en\";\n  }\n}\nfunction Ny(e, r = {}, o = \"en\") {\n  const t = kr(o);\n  return e.replace(hu, (n, i, s, a) => {\n    const d = Number(r[i]);\n    return Number.isFinite(d) && new Intl.PluralRules(t).select(d) === \"one\" ? s : a;\n  }).replace(pu, (n, i) => {\n    const s = r[i];\n    return s == null ? \"\" : String(s);\n  });\n}\nfunction Iy(e, r, o) {\n  return new Intl.NumberFormat(kr(r), o).format(e);\n}\nfunction gu(e, r, o) {\n  const t = e instanceof Date ? e : new Date(e);\n  return Number.isNaN(t.getTime()) ? \"\" : new Intl.DateTimeFormat(kr(r), o).format(t);\n}\nfunction My(e, r, o) {\n  return gu(e, r, {\n    dateStyle: \"medium\",\n    timeStyle: \"short\",\n    ...o\n  });\n}\nfunction Dy(e, r, o) {\n  return new Intl.RelativeTimeFormat(kr(r), {\n    numeric: \"auto\",\n    ...o\n  }).format(e, \"day\");\n}\nfunction zy(e, r, o) {\n  return new Intl.Collator(kr(e), {\n    sensitivity: \"base\",\n    numeric: !0\n  }).compare(r, o);\n}\nfunction Oy(e, r, o = \"en\") {\n  const t = kr(r);\n  if (!e.startsWith(\"/\") || t === kr(o)) return e;\n  const n = e.split(\"/\").filter(Boolean);\n  return n[0] === t ? e : `/${[t, ...n].join(\"/\")}`;\n}\nvar hu, pu, Bs = h((() => {\n  hu = /\\{(\\w+),\\s*plural,\\s*one\\s*\\{([^{}]*)\\}\\s*other\\s*\\{([^{}]*)\\}\\s*\\}/g, pu = /\\{(\\w+)\\}/g;\n}));\nfunction Uy(e, r) {\n  return fu(e, r);\n}\nfunction fu(e, r) {\n  const o = { ...e };\n  for (const t in r) if (Object.prototype.hasOwnProperty.call(r, t)) {\n    const n = e[t], i = r[t];\n    typeof n == \"object\" && n !== null && typeof i == \"object\" && i !== null ? o[t] = fu(n, i) : i !== void 0 && (o[t] = i);\n  }\n  return o;\n}\nvar vu = h((() => {\n}));\nfunction Vy({ children: e, locale: r = \"en\", translations: o }) {\n  const t = B(() => {\n    const n = kr(r);\n    return {\n      t: o ? Uy(Lt, o) : Lt,\n      locale: n\n    };\n  }, [o, r]);\n  return /* @__PURE__ */ c(cn.Provider, {\n    value: t,\n    children: e\n  });\n}\nvar By = h((() => {\n  uu(), Vs(), Bs(), vu();\n}));\nfunction le() {\n  return se(cn)?.t ?? Lt;\n}\nfunction Fy() {\n  return se(cn)?.locale ?? \"en\";\n}\nfunction rr() {\n  const e = le(), r = Fy();\n  return {\n    t: e,\n    locale: r,\n    message: (o, t) => Ny(o, t, r),\n    number: (o, t) => Iy(o, r, t),\n    date: (o, t) => gu(o, r, t),\n    dateTime: (o, t) => My(o, r, t),\n    relativeDays: (o, t) => Dy(o, r, t),\n    compare: (o, t) => zy(r, o, t),\n    path: (o, t) => Oy(o, r, t)\n  };\n}\nvar jy = h((() => {\n  uu(), Vs(), Bs();\n})), Q = h((() => {\n  By(), jy(), Bs(), Vs(), vu();\n})), kc, H, re = h((() => {\n  Q(), kc = {\n    sm: 16,\n    md: 24,\n    lg: 32,\n    xl: 48\n  }, H = nu(function({ size: r = \"md\", className: o = \"\", style: t, label: n, announce: i = !1 }) {\n    const s = le(), a = kc[r], d = n ?? s.common.loading, l = /* @__PURE__ */ _(\"svg\", {\n      className: `cedros-spinner ${o}`,\n      width: a,\n      height: a,\n      viewBox: \"0 0 24 24\",\n      fill: \"none\",\n      style: t,\n      \"aria-label\": d,\n      role: \"status\",\n      \"aria-hidden\": i ? \"true\" : void 0,\n      children: [/* @__PURE__ */ c(\"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__ */ c(\"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 i ? /* @__PURE__ */ _(\"span\", {\n      \"aria-live\": \"polite\",\n      \"aria-busy\": \"true\",\n      children: [l, /* @__PURE__ */ c(\"span\", {\n        className: \"cedros-sr-only\",\n        children: d\n      })]\n    }) : l;\n  });\n}));\nfunction $y(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 Fs) if (o.startsWith(t)) return;\n  try {\n    const t = new URL(r);\n    return yu.includes(t.protocol) ? r : void 0;\n  } catch {\n    return;\n  }\n}\nfunction bu(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 Fs) 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 yu, Fs, wu = h((() => {\n  yu = [\"https:\"], Fs = [\n    \"javascript:\",\n    \"data:\",\n    \"vbscript:\",\n    \"file:\"\n  ];\n})), Qe, Oe, js, Ir, ku, so = h((() => {\n  Qe = \"cedros-login:auth-page-copy\", Oe = \"cedros-login:auth-form\", js = \"cedros-login:login-button\", Ir = \"cedros-login:account-workspace\", ku = [\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 qy(e, r, o) {\n  if (!e) return o;\n  let t = !1;\n  const n = { ...o };\n  for (const i of r) {\n    const s = e.elements.namedItem(i.name), a = s && \"value\" in s ? String(s.value) : \"\";\n    n[i.name] !== a && (n[i.name] = a, t = !0);\n  }\n  return t ? n : o;\n}\nvar Wy = h((() => {\n}));\nfunction Hy(e, r) {\n  return e === \"forgot-password\" ? [nr(\"email\", r.auth.emailAddress, \"email\", \"email\", r.auth.emailPlaceholder)] : e === \"verify-email\" || e === \"instant-link-verify\" || e === \"accept-invite\" ? [] : e === \"reset-password\" ? [nr(\"new_password\", r.auth.newPassword, \"password\", \"new-password\", r.auth.createPassword), nr(\"confirmPassword\", r.auth.confirmPassword, \"password\", \"new-password\", r.auth.confirmYourPassword)] : e === \"create-account\" ? [\n    nr(\"name\", r.auth.name, \"text\", \"name\", r.auth.namePlaceholder),\n    nr(\"email\", r.auth.email, \"email\", \"email\", r.auth.emailPlaceholder),\n    nr(\"password\", r.auth.password, \"password\", \"new-password\", r.auth.createPassword),\n    nr(\"confirmPassword\", r.auth.confirmPassword, \"password\", \"new-password\", r.auth.confirmYourPassword)\n  ] : [nr(\"email\", r.auth.email, \"email\", \"email\", r.auth.emailPlaceholder), nr(\"password\", r.auth.password, \"password\", \"current-password\", r.auth.enterPassword)];\n}\nfunction nr(e, r, o, t, n) {\n  return {\n    name: e,\n    label: r,\n    type: o,\n    autoComplete: t,\n    placeholder: n\n  };\n}\nvar Ky = h((() => {\n}));\nfunction Gy(e, r, o = !1) {\n  const t = e.filter((s) => s !== \"email\" && s !== \"instant-link\"), n = o ? t.filter((s) => !xu.has(s)) : t, i = Yy(r);\n  return n.sort((s, a) => {\n    const d = xc(s, i), l = xc(a, i);\n    return d === l ? n.indexOf(s) - n.indexOf(a) : d - l;\n  });\n}\nfunction Yy(e) {\n  if (!Array.isArray(e)) return vt;\n  const r = e.map((o) => o === \"webauthn\" ? \"passkey\" : o).filter((o) => vt.includes(o));\n  return r.length ? r : vt;\n}\nfunction xc(e, r) {\n  const o = r.indexOf(e);\n  return o === -1 ? r.length : o;\n}\nvar vt, xu, Xy = h((() => {\n  vt = [\n    \"solana\",\n    \"passkey\",\n    \"google\",\n    \"apple\"\n  ], xu = /* @__PURE__ */ new Set([\"apple\", \"solana\"]);\n}));\nfunction Jy(e, r = {}) {\n  switch (Qy(e)) {\n    case \"google\":\n      return /* @__PURE__ */ c(ln, { ...r });\n    case \"apple\":\n      return /* @__PURE__ */ c(un, { ...r });\n    case \"passkey\":\n      return /* @__PURE__ */ c(Lo, { ...r });\n    case \"solana\":\n      return /* @__PURE__ */ c(mn, { ...r });\n  }\n}\nfunction Zy() {\n  return /* @__PURE__ */ _(\"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__ */ c(\"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__ */ c(\"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 ln({ className: e, size: r = 18 }) {\n  return /* @__PURE__ */ _(\"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__ */ c(\"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__ */ c(\"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__ */ c(\"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__ */ c(\"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 un({ className: e, size: r = 18 }) {\n  return /* @__PURE__ */ c(\"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__ */ c(\"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 mn({ className: e, size: r = 18 }) {\n  return /* @__PURE__ */ _(\"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__ */ c(\"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__ */ c(\"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__ */ c(\"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 Lo({ className: e, size: r = 20 }) {\n  return /* @__PURE__ */ _(\"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__ */ c(\"path\", { d: \"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4\" }),\n      /* @__PURE__ */ c(\"path\", { d: \"M14 13.12c0 2.38 0 6.38-1 8.88\" }),\n      /* @__PURE__ */ c(\"path\", { d: \"M17.29 21.02c.12-.6.43-2.3.5-3.02\" }),\n      /* @__PURE__ */ c(\"path\", { d: \"M2 12a10 10 0 0 1 18-6\" }),\n      /* @__PURE__ */ c(\"path\", { d: \"M2 16h.01\" }),\n      /* @__PURE__ */ c(\"path\", { d: \"M21.8 16c.2-2 .131-5.354 0-6\" }),\n      /* @__PURE__ */ c(\"path\", { d: \"M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2\" }),\n      /* @__PURE__ */ c(\"path\", { d: \"M8.65 22c.21-.66.45-1.32.57-2\" }),\n      /* @__PURE__ */ c(\"path\", { d: \"M9 6.8a6 6 0 0 1 9 5.2v2\" })\n    ]\n  });\n}\nfunction Qy(e) {\n  return e === \"webauthn\" ? \"passkey\" : e;\n}\nvar ao = h((() => {\n})), Fo, gn, _u = h((() => {\n  Fo = Ke(null), gn = Ke(null);\n}));\nfunction fe() {\n  const e = se(Fo), r = se(gn);\n  if (!e || !r) throw new Error(\"useCedrosLogin must be used within a CedrosLoginProvider\");\n  return {\n    ...e,\n    ...r\n  };\n}\nfunction Au() {\n  const e = se(Fo), r = se(gn);\n  return e && r ? {\n    ...e,\n    ...r\n  } : null;\n}\nfunction $s() {\n  const e = se(Fo);\n  if (!e) throw new Error(\"useAuthState must be used within a CedrosLoginProvider\");\n  return e;\n}\nvar ie = h((() => {\n  _u();\n}));\nfunction hn(e) {\n  if (!e || typeof e != \"object\") return;\n  const { remaining: r, limit: o, period: t, resetsAt: n } = e, i = typeof n == \"string\" ? Date.parse(n) : NaN;\n  if (!(!Number.isSafeInteger(r) || !Number.isSafeInteger(o) || r < 0 || o < 1 || r > o || typeof t != \"string\" || !Cu.includes(t) || typeof n != \"string\" || !Su.test(n) || !Number.isFinite(i) || i <= Date.now()))\n    return {\n      remaining: r,\n      limit: o,\n      period: t,\n      resetsAt: n\n    };\n}\nvar Cu, Su, pn = h((() => {\n  Cu = [\n    \"daily\",\n    \"weekly\",\n    \"monthly\"\n  ], Su = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$/i;\n}));\nfunction ew(e, r) {\n  const o = Au(), t = o?.config.serverUrl ?? Ru(), n = rw(r ? null : t), i = o ? ow(o.isFeatureEnabled, o.config) : null, s = r ?? i ?? n;\n  return s ? e.filter((a) => tw(a, s)) : e.filter((a) => a === \"email\");\n}\nfunction rw(e) {\n  const [r, o] = T(null);\n  return F(() => {\n    if (!e || typeof fetch != \"function\") {\n      o(null);\n      return;\n    }\n    let t = !0;\n    const n = new AbortController(), i = window.setTimeout(() => n.abort(), Lu);\n    return fetch(`${e}/features`, {\n      credentials: \"omit\",\n      signal: n.signal\n    }).then((s) => s.ok ? s.json() : null).then((s) => {\n      t && o(Eu(s));\n    }).catch(() => {\n      t && o(null);\n    }).finally(() => window.clearTimeout(i)), () => {\n      t = !1, window.clearTimeout(i), n.abort();\n    };\n  }, [e]), r;\n}\nfunction ow(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 Eu(e) {\n  if (!e || typeof e != \"object\") return null;\n  const r = e, o = _c(r.googleClientId), t = _c(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: hn(r.signupAvailability)\n  };\n}\nfunction Tu(e) {\n  return Eu(e);\n}\nfunction tw(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 Ru() {\n  return typeof window > \"u\" ? null : `${window.location.origin}${Pu}`;\n}\nfunction _c(e) {\n  return typeof e == \"string\" && e.trim() ? e.trim() : void 0;\n}\nvar Pu, Lu, Nu = h((() => {\n  ie(), Y(), pn(), Pu = \"/extensions/cedros-login\", Lu = 5e3;\n}));\nfunction nw({ props: e, suppressClientConditionalProviderButtons: r = !1, colorMode: o }) {\n  const t = le(), n = iw(e, t), i = B(() => Hy(n.mode, t), [n.mode, t]), s = Ne(), [a, d] = T({}), l = ew(n.providers, n.features), u = Gy(l, n.socialButtonOrder, r), m = lw(n.mode, t), g = i.length > 0 && i.every((y) => (a[y.name] ?? \"\").trim()), p = (y, C) => {\n    d((P) => ({\n      ...P,\n      [y]: C\n    }));\n  }, f = N(() => {\n    d((y) => qy(hw(s), i, y));\n  }, [i, s]);\n  F(() => {\n    f();\n    const y = window.setTimeout(f, 250);\n    return () => window.clearTimeout(y);\n  }, [f]);\n  const v = n.mode === \"sign-in\" || n.mode === \"create-account\", x = n.mode === \"create-account\" ? \"register\" : \"login\", w = j(\"form\", {\n    key: \"form\",\n    id: s,\n    className: \"cedros-form\",\n    onSubmit: (y) => y.preventDefault(),\n    onInput: f,\n    onChange: f,\n    onFocus: f\n  }, [\n    ...i.map((y) => cw(y, a[y.name] ?? \"\", p, t, s)),\n    j(\"button\", {\n      key: \"submit\",\n      type: \"submit\",\n      disabled: !g,\n      className: \"cedros-button cedros-button-primary cedros-button-md cedros-button-full\"\n    }, n.submitLabel),\n    v ? m : null\n  ].filter(Boolean)), b = [\n    n.showProviderButtons && sw(u, t),\n    n.showProviderButtons && u.length > 0 && l.includes(\"email\") ? aw(t) : null,\n    dw(n.mode, t, s),\n    v ? j(\"div\", {\n      key: \"tabpanel\",\n      role: \"tabpanel\",\n      id: `${s}-tabpanel-${x}`,\n      \"aria-labelledby\": `${s}-tab-${x}`\n    }, w) : w,\n    !v && n.successMessage ? j(\"p\", {\n      key: \"success\",\n      className: \"cedros-auth-form__success\"\n    }, n.successMessage) : null\n  ].filter(Boolean), k = v ? [j(\"div\", {\n    key: \"login-form\",\n    className: \"cedros-login-form\"\n  }, b)] : b;\n  return j(\"section\", {\n    className: Iu(n.layout, o),\n    \"data-auth-mode\": n.mode,\n    \"data-cebbwf5-block\": Oe\n  }, [j(\"h2\", {\n    key: \"title\",\n    className: \"cedros-auth-form__title\"\n  }, n.title), j(\"div\", {\n    key: \"panel\",\n    className: \"cedros-auth-form__panel\"\n  }, k)].filter(Boolean));\n}\nfunction Iu(e, r) {\n  return `cedros-auth-form cedros-auth-form--${e}${r === \"dark\" ? \" cebbwf5-dark\" : \"\"}`;\n}\nfunction iw(e, r) {\n  const o = qs(e.mode), t = uw(o, r), n = pw(e.enabledProviders, o), i = o === \"sign-in\" || o === \"create-account\";\n  return {\n    mode: o,\n    title: hi(e.title) || t.title,\n    submitLabel: i ? t.submitLabel : hi(e.submitLabel) || t.submitLabel,\n    successMessage: hi(e.successMessage) || t.successMessage,\n    features: Tu(e.features),\n    socialButtonOrder: vw(e.socialButtonOrder),\n    showProviderButtons: e.showProviderButtons === !0 || e.showProviderButtons !== !1 && n.some((s) => s !== \"email\"),\n    providers: n,\n    layout: e.layout === \"inline\" || e.layout === \"compact\" ? e.layout : \"card\"\n  };\n}\nfunction sw(e, r) {\n  return e.length === 0 ? null : j(\"div\", {\n    key: \"providers\",\n    className: \"cedros-social-buttons\",\n    \"aria-label\": r.extension.authForm.authOptionsAriaLabel\n  }, e.map((o) => j(\"button\", {\n    key: o,\n    type: \"button\",\n    className: \"cedros-button cedros-button-social cedros-button-md\",\n    \"data-provider\": o\n  }, [j(\"span\", {\n    key: \"icon\",\n    className: \"cedros-social-icon\",\n    \"aria-hidden\": !0\n  }, Jy(o, { className: \"cedros-auth-form__provider-svg\" })), j(\"span\", { key: \"label\" }, gw(o, r))])));\n}\nfunction aw(e) {\n  return j(\"div\", {\n    key: \"divider\",\n    className: \"cedros-divider\"\n  }, j(\"span\", null, e.messages.orContinueWith));\n}\nfunction dw(e, r, o) {\n  return e !== \"sign-in\" && e !== \"create-account\" ? null : j(\"div\", {\n    key: \"tabs\",\n    className: \"cedros-auth-form__tabs cedros-tabs\",\n    role: \"tablist\",\n    \"aria-label\": r.auth.authMethodAriaLabel\n  }, [Ac(\"login\", r.auth.tabs.signIn, e === \"sign-in\", o), Ac(\"register\", r.auth.tabs.signUp, e === \"create-account\", o)]);\n}\nfunction Ac(e, r, o, t) {\n  return j(\"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 cw(e, r, o, t, n) {\n  const i = e.type === \"password\", s = e.name === \"password\" && e.autoComplete === \"current-password\", a = j(\"input\", {\n    key: \"input\",\n    id: `${n}-${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: (l) => o(e.name, l.target.value),\n    onChange: (l) => o(e.name, l.target.value)\n  }), d = j(\"label\", {\n    key: \"label\",\n    htmlFor: `${n}-${e.name}`,\n    className: \"cedros-label\"\n  }, e.label);\n  return i ? j(\"div\", {\n    key: e.name,\n    className: \"cedros-form-field\"\n  }, j(\"div\", { className: \"cedros-password-input\" }, [j(\"div\", {\n    key: \"label\",\n    className: \"cedros-label-row\"\n  }, [d, s ? j(\"button\", {\n    key: \"forgot\",\n    type: \"button\",\n    className: \"cedros-link cedros-link-muted cedros-link-sm\"\n  }, t.auth.forgotYourPassword) : null]), j(\"div\", {\n    key: \"control\",\n    className: \"cedros-password-wrapper\"\n  }, [a, j(\"button\", {\n    key: \"toggle\",\n    type: \"button\",\n    className: \"cedros-password-toggle\",\n    \"aria-label\": t.auth.showPassword,\n    tabIndex: -1\n  }, Zy())])])) : j(\"div\", {\n    key: e.name,\n    className: \"cedros-form-field\"\n  }, [d, a]);\n}\nfunction lw(e, r) {\n  return e === \"sign-in\" ? Cc(r.auth.dontHaveAccount, \"/register\", r.auth.tabs.signUp) : e === \"create-account\" ? Cc(r.auth.alreadyHaveAccount, \"/login\", r.auth.tabs.signIn) : null;\n}\nfunction Cc(e, r, o) {\n  return j(\"p\", {\n    key: \"footer\",\n    className: \"cedros-form-footer\"\n  }, [`${e} `, j(\"button\", {\n    key: \"link\",\n    type: \"button\",\n    className: \"cedros-link cedros-link-muted\"\n  }, o)]);\n}\nfunction uw(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 mw(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 gw(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] ?? mw(e, r);\n}\nfunction hw(e) {\n  if (typeof document > \"u\") return null;\n  const r = document.getElementById(e);\n  return r instanceof HTMLFormElement ? r : null;\n}\nfunction qs(e) {\n  return typeof e == \"string\" && Mu.includes(e) ? e : \"sign-in\";\n}\nfunction pw(e, r) {\n  const o = (Array.isArray(e) ? e.filter(fw) : qi[r]).filter((t, n, i) => i.indexOf(t) === n);\n  return o.length ? o : qi[r];\n}\nfunction fw(e) {\n  return typeof e == \"string\" && Du.includes(e);\n}\nfunction vw(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 hi(e) {\n  return typeof e == \"string\" ? e : \"\";\n}\nvar Mu, qi, Du, zu = h((() => {\n  Y(), Q(), Wy(), Ky(), Xy(), ao(), Nu(), so(), Mu = [\n    \"sign-in\",\n    \"create-account\",\n    \"forgot-password\",\n    \"reset-password\",\n    \"verify-email\",\n    \"instant-link-verify\",\n    \"accept-invite\"\n  ], qi = {\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  }, Du = [\n    \"email\",\n    \"google\",\n    \"apple\",\n    \"solana\",\n    \"passkey\",\n    \"instant-link\"\n  ];\n}));\nfunction Ur() {\n  return se(Ws) ?? Ou;\n}\nvar Ou, Ws, Vr = h((() => {\n  Ou = { requestDeviceAccountLink: async () => ({ action: \"create\" }) }, Ws = Ke(null);\n}));\nfunction Nt() {\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 >= Wi) return o;\n  }\n  const r = document.cookie.split(\";\");\n  for (const o of r) {\n    const [t, ...n] = o.trim().split(\"=\"), i = n.join(\"=\");\n    if (t.toLowerCase() === \"xsrf-token\") try {\n      const s = decodeURIComponent(i.trim());\n      if (s.length >= Wi) return s;\n    } catch {\n      continue;\n    }\n  }\n  return null;\n}\nvar Wi, Hs = h((() => {\n  Wi = 32;\n}));\nfunction bw(e, r, o = Vu) {\n  const t = ww(e.code ?? e.error), n = kw(e.details);\n  return {\n    code: t,\n    message: o[t] ?? e.message ?? e.detail ?? n ?? r,\n    ...xw(e.details) ? { details: e.details } : {}\n  };\n}\nfunction yw(e = \"Unable to reach the server. Check your connection and try again.\") {\n  return {\n    code: \"NETWORK_ERROR\",\n    message: e\n  };\n}\nfunction V(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 (_w(e)) return e;\n  if (Uu(e)) {\n    const t = bw(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  } : yw(o.networkMessage);\n}\nfunction Uu(e) {\n  return typeof e == \"object\" && e !== null && \"isApiError\" in e;\n}\nfunction ww(e) {\n  if (!e) return \"SERVER_ERROR\";\n  const r = Hi[e] ?? Hi[e.toLowerCase()];\n  if (r) return r;\n  const o = e.toUpperCase();\n  return Bu.has(o) ? o : \"SERVER_ERROR\";\n}\nfunction kw(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 xw(e) {\n  return typeof e == \"object\" && e !== null && !Array.isArray(e);\n}\nfunction _w(e) {\n  return typeof e == \"object\" && e !== null && \"code\" in e && \"message\" in e;\n}\nvar Vu, Bu, Hi, Aw = h((() => {\n  Vu = {\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    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  }, Bu = /* @__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  ]), Hi = {\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    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 Ks() {\n  clearTimeout(pi), pi = void 0;\n  const e = Date.now();\n  let r = 1 / 0;\n  for (const [o, t] of qe) t.expiresAt <= e ? qe.delete(o) : r = Math.min(r, t.expiresAt);\n  for (; qe.size > 256; ) {\n    const o = qe.keys().next();\n    o.done || qe.delete(o.value);\n  }\n  qe.size && (pi = setTimeout(Ks, Math.min(2147483647, Math.max(1, r - e))));\n}\nfunction Cw(e, r, o, t = {}) {\n  const n = vr.get(r);\n  if (n) return n;\n  const i = qe.get(r);\n  if (!t.forceRefresh && i?.value !== void 0 && i.expiresAt > Date.now()) return Promise.resolve(i.value);\n  qe.delete(r);\n  const s = Promise.resolve().then(o).then((a) => {\n    if (vr.get(r) === s) {\n      vr.delete(r);\n      const d = t.cacheTtlMs ?? 0;\n      d > 0 && Number.isFinite(d) && qe.set(r, {\n        value: a,\n        expiresAt: Date.now() + d\n      }), Ks();\n    }\n    return a;\n  }, (a) => {\n    throw vr.get(r) === s && vr.delete(r), a;\n  });\n  return vr.set(r, s), s;\n}\nfunction Sw(e) {\n  for (const r of [qe, vr]) for (const o of r.keys()) o.startsWith(`${e}\\0`) && r.delete(o);\n  Ks();\n}\nfunction Ew(e) {\n  return Object.entries(e ?? {}).sort(([r], [o]) => r.localeCompare(o)).map(([r, o]) => `${r.toLowerCase()}:${o}`).join(`\n`);\n}\nvar Tw, qe, vr, pi, Rw = h((() => {\n  Tw = 256, qe = /* @__PURE__ */ new Map(), vr = /* @__PURE__ */ new Map();\n}));\nfunction Sc(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 Pw(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 (a) {\n    if (a instanceof TypeError && a.message.includes(\"Expected signal\")) t = void 0;\n    else throw a;\n  }\n  let n;\n  const i = new Promise((a, d) => {\n    n = d;\n  }), s = setTimeout(() => {\n    t && o.abort();\n    const a = /* @__PURE__ */ new Error(\"Request timed out\");\n    a.name = \"AbortError\", n(a);\n  }, r);\n  return {\n    signal: t,\n    timedOut: i,\n    cancel: () => clearTimeout(s)\n  };\n}\nasync function Lw(e, r, o, t) {\n  const n = Pw(e, o);\n  try {\n    return await Promise.race([fetch(e, {\n      ...r,\n      ...n.signal ? { signal: n.signal } : {}\n    }).then(t), n.timedOut]);\n  } finally {\n    n.cancel();\n  }\n}\nfunction Nw(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 Iw(e) {\n  return new Promise((r) => setTimeout(r, e));\n}\nvar Ec, Tc, ue, me = h((() => {\n  Hs(), Aw(), Rw(), Ec = 1e4, Tc = 2, ue = class {\n    baseUrl;\n    timeoutMs;\n    retryAttempts;\n    getAccessToken;\n    constructor(e) {\n      this.baseUrl = e.baseUrl, this.timeoutMs = e.timeoutMs ?? Ec, this.retryAttempts = e.retryAttempts ?? Tc, this.getAccessToken = e.getAccessToken;\n    }\n    async request(e) {\n      const { method: r, path: o, body: t, credentials: n = \"include\", skipRetry: i = !1, headers: s, validator: a } = e, d = `${this.baseUrl}${o}`, l = i || !(r === \"GET\" || r === \"HEAD\" || r === \"PUT\") ? 1 : this.retryAttempts + 1, u = { ...s ?? {} };\n      t !== void 0 && (u[\"Content-Type\"] = \"application/json\");\n      const m = this.getAccessToken?.();\n      m && (u.Authorization = `Bearer ${m}`);\n      const g = Nt();\n      g && (u[\"X-CSRF-Token\"] = g);\n      let p;\n      for (let f = 1; f <= l; f++) try {\n        return await Lw(d, {\n          method: r,\n          headers: u,\n          credentials: n,\n          body: t !== void 0 ? JSON.stringify(t) : void 0\n        }, this.timeoutMs, async (v) => {\n          const x = v.headers.get(\"content-type\") || \"\";\n          let w = {};\n          if (x.includes(\"application/json\")) {\n            if (v.status !== 204) try {\n              w = await v.json();\n            } catch (b) {\n              if (b instanceof Error && b.name === \"AbortError\") throw b;\n              const k = b instanceof Error ? b.message : \"parse failed\";\n              throw new Error(`Invalid JSON response: ${k}`);\n            }\n          } else {\n            const b = await v.text();\n            if (b) {\n              const k = b.length > 200 ? b.slice(0, 200) + \"...\" : b;\n              w = { message: x.includes(\"text/html\") || b.trimStart().startsWith(\"<\") ? `Unexpected HTML response (${v.status}). The server may be unavailable.` : k };\n            }\n          }\n          if (!v.ok) throw {\n            isApiError: !0,\n            data: w,\n            status: v.status,\n            retryable: v.status >= 500\n          };\n          return r !== \"GET\" && r !== \"HEAD\" && Sw(this.baseUrl), Sc(w, a);\n        });\n      } catch (v) {\n        if (p = v, f < l && Nw(v)) {\n          await Iw(100 * Math.pow(2, f - 1));\n          continue;\n        }\n        throw Uu(v), v;\n      }\n      throw p;\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 ?? {}, n = r?.credentials ?? \"include\", i = this.getAccessToken?.() ?? \"\", s = [\n        this.baseUrl,\n        n,\n        i,\n        e,\n        Ew(r?.headers)\n      ].join(\"\\0\");\n      return Sc(await Cw(this.baseUrl, s, () => this.request({\n        ...t,\n        method: \"GET\",\n        path: e,\n        validator: void 0\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 Mw(e) {\n  try {\n    return typeof localStorage > \"u\" ? null : localStorage.getItem(e);\n  } catch {\n    return null;\n  }\n}\nfunction Fu(e, r) {\n  try {\n    typeof localStorage < \"u\" && localStorage.setItem(e, r);\n  } catch {\n  }\n}\nfunction Dw(e) {\n  try {\n    typeof localStorage < \"u\" && localStorage.removeItem(e);\n  } catch {\n  }\n}\nvar zw = h((() => {\n}));\nasync function Ow(e, r) {\n  const o = jw(r);\n  if (!o) return;\n  const t = Fw(e, o);\n  if (!t) return;\n  const n = ju(t, o), i = await Hu(n);\n  if (!i) return;\n  const s = Gs(), a = {\n    label: o === \"solana\" ? qu(n) : $u(n),\n    method: o,\n    idHash: i,\n    updatedAt: (/* @__PURE__ */ new Date()).toISOString(),\n    dismissedIdHashes: s?.idHash === i ? s.dismissedIdHashes : []\n  };\n  Fu(jo, JSON.stringify(a));\n}\nasync function Uw(e, r) {\n  const o = Gs();\n  if (!o) return null;\n  const t = ju(e, r), n = await Hu(t);\n  return !n || n === o.idHash || o.dismissedIdHashes.includes(n) ? null : {\n    hint: o,\n    idHash: n,\n    label: r === \"solana\" ? qu(t) : $u(t)\n  };\n}\nfunction Gs() {\n  const e = Mw(jo);\n  if (!e) return null;\n  try {\n    const r = JSON.parse(e);\n    return typeof r.label != \"string\" || typeof r.method != \"string\" || !Ku(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 Vw(e) {\n  const r = Gs();\n  !r || r.dismissedIdHashes.includes(e) || Fu(jo, JSON.stringify({\n    ...r,\n    dismissedIdHashes: [...r.dismissedIdHashes, e],\n    updatedAt: (/* @__PURE__ */ new Date()).toISOString()\n  }));\n}\nfunction Bw() {\n  Dw(jo);\n}\nfunction ju(e, r) {\n  const o = e.trim();\n  return Gu.has(r) ? o.toLowerCase() : o;\n}\nfunction $u(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 qu(e) {\n  return e.length <= 10 ? e : `${e.slice(0, 3)}…${e.slice(-3)}`;\n}\nfunction Wu(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 Hu(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 Fw(e, r) {\n  return r === \"solana\" ? e.walletAddress ?? null : e.email ?? null;\n}\nfunction jw(e) {\n  return Ku(e) ? e : null;\n}\nfunction Ku(e) {\n  return e === \"email\" || e === \"password\" || e === \"google\" || e === \"apple\" || e === \"solana\" || e === \"webauthn\";\n}\nvar jo, Gu, fn = h((() => {\n  zw(), jo = \"cedros_last_account\", Gu = /* @__PURE__ */ new Set([\n    \"email\",\n    \"password\",\n    \"google\",\n    \"apple\",\n    \"webauthn\"\n  ]);\n}));\nfunction $w() {\n  const { config: e, _internal: r } = fe(), o = Ur(), [t, n] = T(!1), [i, s] = T(!1), [a, d] = T(null), [l, u] = T(null), m = O(null), g = O(e), p = O(null), f = O(null), v = O(void 0), x = B(() => new ue({\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  F(() => {\n    g.current = e;\n  }, [e]);\n  const w = N(async (k) => {\n    const y = m.current;\n    if (!y) return;\n    const C = p.current;\n    if (C) {\n      if (p.current = null, k.state !== C) {\n        const P = {\n          code: \"INVALID_CREDENTIALS\",\n          message: \"Google sign-in response did not match this request. Please try again.\"\n        };\n        d(P), n(!1), m.current = null, y.reject(P);\n        return;\n      }\n      if (k.error) {\n        const P = {\n          code: \"SERVER_ERROR\",\n          message: k.error === \"access_denied\" ? \"Google sign-in was cancelled.\" : \"Unable to sign in with Google. Please try again.\"\n        };\n        d(P), n(!1), m.current = null, y.reject(P);\n        return;\n      }\n      try {\n        const P = await qw(k);\n        if (P) {\n          const R = await o.requestDeviceAccountLink({\n            identifier: P,\n            method: \"google\",\n            linkExisting: async (A, E) => {\n              try {\n                await x.post(\"/link-oauth\", {\n                  provider: \"google\",\n                  accessToken: k.access_token,\n                  idToken: k.id_token\n                });\n              } catch (I) {\n                throw V(I, \"Unable to link Google to this account. Please try again.\");\n              }\n              return E;\n            }\n          });\n          if (R.action === \"linked\") {\n            if (n(!1), R.response) y.resolve(R.response);\n            else {\n              const A = {\n                code: \"UNKNOWN_ERROR\",\n                message: \"Account linked. Please refresh your session.\"\n              };\n              d(A), y.reject(A);\n            }\n            return;\n          }\n        }\n        const S = await x.post(\"/google\", {\n          accessToken: k.access_token,\n          idToken: k.id_token,\n          referral: r?.getReferralCode?.() ?? void 0,\n          accessCode: v.current || void 0\n        });\n        \"mfaRequired\" in S || (g.current.callbacks?.onLoginSuccess?.(S.user, \"google\"), r?.handleLoginSuccess(S.user, S.tokens)), n(!1), y.resolve(S);\n      } catch (P) {\n        const S = V(P, \"Unable to sign in with Google. Please try again.\");\n        S.code === \"ACCOUNT_LINK_REQUIRED\" && u(k.access_token ?? null), d(S), n(!1), y.reject(S);\n      } finally {\n        m.current = null, v.current = void 0;\n      }\n    }\n  }, [\n    x,\n    o,\n    r\n  ]), b = N((k) => {\n    const y = m.current;\n    if (!y) return;\n    const C = {\n      code: \"SERVER_ERROR\",\n      message: k.type === \"popup_failed_to_open\" ? \"Google sign-in popup was blocked. Please allow popups for this site.\" : \"Google sign-in was cancelled.\"\n    };\n    d(C), n(!1), m.current = null, y.reject(C);\n  }, []);\n  return F(() => {\n    if (!e.googleClientId) return;\n    let k = !0;\n    return Yu.load().then(() => {\n      if (!k) return;\n      const y = window.google?.accounts?.oauth2?.initTokenClient({\n        client_id: e.googleClientId,\n        scope: \"openid email profile\",\n        callback: w,\n        error_callback: b\n      });\n      y && (f.current = y, s(!0));\n    }).catch(() => {\n      k && d({\n        code: \"SERVER_ERROR\",\n        message: \"Unable to load Google sign-in. Please refresh and try again.\"\n      });\n    }), () => {\n      k = !1, f.current = null;\n    };\n  }, [\n    e.googleClientId,\n    w,\n    b\n  ]), {\n    signIn: N(async (k) => {\n      if (v.current = k, !e.googleClientId) {\n        const y = {\n          code: \"VALIDATION_ERROR\",\n          message: \"Google Client ID not configured\"\n        };\n        throw d(y), y;\n      }\n      if (!i) {\n        const y = {\n          code: \"VALIDATION_ERROR\",\n          message: \"Google sign-in is not ready yet. Please wait a moment and try again.\"\n        };\n        throw d(y), y;\n      }\n      if (m.current) {\n        const y = {\n          code: \"VALIDATION_ERROR\",\n          message: \"Google sign-in is already in progress.\"\n        };\n        throw d(y), y;\n      }\n      return n(!0), d(null), new Promise((y, C) => {\n        m.current = {\n          resolve: y,\n          reject: C\n        };\n        const P = crypto.randomUUID();\n        p.current = P, f.current?.requestAccessToken({ state: P });\n      });\n    }, [e.googleClientId, i]),\n    isLoading: t,\n    isInitialized: i,\n    error: a,\n    clearError: N(() => d(null), []),\n    pendingLinkToken: l,\n    clearPendingLink: N(() => u(null), [])\n  };\n}\nasync function qw(e) {\n  if (e.id_token) {\n    const r = Wu(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 Yu, Ww = h((() => {\n  Y(), ie(), Vr(), me(), fn(), Yu = {\n    loading: !1,\n    loaded: !1,\n    error: null,\n    callbacks: [],\n    load() {\n      return typeof window > \"u\" || typeof document > \"u\" ? Promise.reject(/* @__PURE__ */ new Error(\"Google Sign-In script loader cannot run in SSR\")) : this.loaded ? Promise.resolve() : this.loading ? new Promise((e, r) => {\n        this.callbacks.push({\n          resolve: e,\n          reject: r\n        });\n      }) : (this.loading = !0, new Promise((e, r) => {\n        this.callbacks.push({\n          resolve: e,\n          reject: r\n        });\n        const o = document.getElementById(\"google-gsi-script\");\n        if (o) {\n          window.google?.accounts?.id ? (this.loaded = !0, this.loading = !1, this.callbacks.forEach((n) => n.resolve()), this.callbacks = []) : o.addEventListener(\"load\", () => {\n            this.loaded = !0, this.loading = !1, this.callbacks.forEach((n) => n.resolve()), this.callbacks = [];\n          });\n          return;\n        }\n        const t = document.createElement(\"script\");\n        t.src = \"https://accounts.google.com/gsi/client\", t.async = !0, t.defer = !0, t.id = \"google-gsi-script\", t.onload = () => {\n          this.loaded = !0, this.loading = !1, this.callbacks.forEach((n) => n.resolve()), this.callbacks = [];\n        }, t.onerror = () => {\n          this.loading = !1, t.remove();\n          const n = /* @__PURE__ */ new Error(\"Failed to load Google Sign-In script\");\n          this.callbacks.forEach((i) => i.reject(n)), this.callbacks = [];\n        }, document.head.appendChild(t);\n      }));\n    },\n    _reset() {\n      this.loading = !1, this.loaded = !1, this.error = null, this.callbacks = [];\n    }\n  };\n})), ae, we = h((() => {\n  Y(), ae = nu(function({ error: r, className: o = \"\", onDismiss: t, autoFocus: n = !1 }) {\n    const i = O(null);\n    if (F(() => {\n      r && n && i.current && i.current.focus();\n    }, [r, n]), !r) return null;\n    const s = typeof r == \"string\" ? r : r.message;\n    return /* @__PURE__ */ _(\"div\", {\n      ref: i,\n      className: `cedros-error ${o}`,\n      role: \"alert\",\n      \"aria-live\": \"assertive\",\n      tabIndex: n ? -1 : void 0,\n      children: [\n        /* @__PURE__ */ _(\"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__ */ c(\"circle\", {\n              cx: \"8\",\n              cy: \"8\",\n              r: \"7\",\n              stroke: \"currentColor\",\n              strokeWidth: \"1.5\"\n            }),\n            /* @__PURE__ */ c(\"path\", {\n              d: \"M8 4.5v4\",\n              stroke: \"currentColor\",\n              strokeWidth: \"1.5\",\n              strokeLinecap: \"round\"\n            }),\n            /* @__PURE__ */ c(\"circle\", {\n              cx: \"8\",\n              cy: \"11\",\n              r: \"0.75\",\n              fill: \"currentColor\"\n            })\n          ]\n        }),\n        /* @__PURE__ */ c(\"span\", {\n          className: \"cedros-error-message\",\n          children: s\n        }),\n        t && /* @__PURE__ */ c(\"button\", {\n          type: \"button\",\n          className: \"cedros-error-dismiss\",\n          onClick: t,\n          \"aria-label\": \"Dismiss error\",\n          children: /* @__PURE__ */ c(\"svg\", {\n            width: \"14\",\n            height: \"14\",\n            viewBox: \"0 0 14 14\",\n            fill: \"none\",\n            \"aria-hidden\": \"true\",\n            children: /* @__PURE__ */ c(\"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 xr(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 $o = h((() => {\n}));\nfunction Xu({ onSuccess: e, onMfaRequired: r, onError: o, className: t = \"\", variant: n = \"default\", size: i = \"md\", disabled: s = !1, accessCode: a }) {\n  const d = le(), { signIn: l, isLoading: u, isInitialized: m, error: g } = $w(), p = async () => {\n    try {\n      const f = await l(a);\n      \"mfaRequired\" in f ? r?.(f) : await e?.(f);\n    } catch (f) {\n      o?.(xr(f, \"Unable to sign in with Google. Please try again.\"));\n    }\n  };\n  return /* @__PURE__ */ _(ce, { children: [/* @__PURE__ */ _(\"button\", {\n    type: \"button\",\n    className: `cedros-button ${{\n      default: \"cedros-button-social\",\n      outline: \"cedros-button-social-outline\"\n    }[n]} ${{\n      sm: \"cedros-button-sm\",\n      md: \"cedros-button-md\",\n      lg: \"cedros-button-lg\"\n    }[i]} ${t}`,\n    onClick: p,\n    disabled: s || !m || u,\n    \"aria-busy\": u,\n    \"aria-label\": d.buttons.continueWithGoogle,\n    children: [u ? /* @__PURE__ */ c(H, { size: \"sm\" }) : /* @__PURE__ */ c(ln, { className: \"cedros-button-icon\" }), /* @__PURE__ */ c(\"span\", { children: d.buttons.continueWithGoogle })]\n  }), g && (!m || !o) && /* @__PURE__ */ c(ae, { error: g })] });\n}\nvar Ju = h((() => {\n  Ww(), we(), re(), ao(), $o(), Q();\n}));\nfunction Hw() {\n  const { config: e, _internal: r } = fe(), o = Ur(), [t, n] = T(!1), [i, s] = T(!1), [a, d] = T(null), [l, u] = T(null), m = O(e), g = B(() => new ue({\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 F(() => {\n    m.current = e;\n  }, [e]), F(() => {\n    if (!e.appleClientId) return;\n    let p = !0;\n    const f = () => {\n      if (p)\n        try {\n          window.AppleID?.auth?.init({\n            clientId: e.appleClientId,\n            scope: \"name email\",\n            redirectURI: window.location.origin,\n            usePopup: !0\n          }), p && s(!0);\n        } catch {\n          p && d({\n            code: \"SERVER_ERROR\",\n            message: \"Unable to initialize Apple sign-in. Please refresh and try again.\"\n          });\n        }\n    };\n    return Zu.load().then(() => {\n      p && f();\n    }).catch(() => {\n      p && d({\n        code: \"SERVER_ERROR\",\n        message: \"Unable to load Apple sign-in. Please refresh and try again.\"\n      });\n    }), () => {\n      p = !1;\n    };\n  }, [e.appleClientId]), {\n    signIn: N(async (p) => {\n      if (!e.appleClientId) {\n        const v = {\n          code: \"VALIDATION_ERROR\",\n          message: \"Apple Client ID not configured\"\n        };\n        throw d(v), v;\n      }\n      if (!i) {\n        const v = {\n          code: \"VALIDATION_ERROR\",\n          message: \"Apple sign-in is not ready yet. Please wait a moment and try again.\"\n        };\n        throw d(v), v;\n      }\n      n(!0), d(null);\n      let f;\n      try {\n        const { nonce: v } = await g.post(\"/apple/nonce\", {}), x = await crypto.subtle.digest(\"SHA-256\", new TextEncoder().encode(v)), w = Array.from(new Uint8Array(x), (P) => P.toString(16).padStart(2, \"0\")).join(\"\");\n        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: v\n        });\n        const b = await window.AppleID.auth.signIn();\n        if (b.authorization?.state !== v) throw new Error(\"Apple sign-in response did not match this request\");\n        if (f = b.authorization?.id_token, !f) throw new Error(\"No ID token received from Apple\");\n        const k = b.user?.name ? `${b.user.name.firstName || \"\"} ${b.user.name.lastName || \"\"}`.trim() : void 0, y = Kw(f) ?? b.user?.email ?? null;\n        if (y) {\n          const P = await o.requestDeviceAccountLink({\n            identifier: y,\n            method: \"apple\",\n            linkExisting: async (S, R) => {\n              try {\n                await g.post(\"/link-oauth\", {\n                  provider: \"apple\",\n                  idToken: f,\n                  authorizationCode: b.authorization?.code,\n                  nonce: v\n                });\n              } catch (A) {\n                throw V(A, \"Unable to link Apple to this account. Please try again.\");\n              }\n              return R;\n            }\n          });\n          if (P.action === \"linked\") {\n            if (n(!1), P.response) return P.response;\n            throw {\n              code: \"UNKNOWN_ERROR\",\n              message: \"Account linked. Please refresh your session.\"\n            };\n          }\n        }\n        const C = await g.post(\"/apple\", {\n          idToken: f,\n          name: k || void 0,\n          nonce: v,\n          referral: r?.getReferralCode?.() ?? void 0,\n          accessCode: p || void 0\n        });\n        return \"mfaRequired\" in C || (m.current.callbacks?.onLoginSuccess?.(C.user, \"apple\"), r?.handleLoginSuccess(C.user, C.tokens)), n(!1), C;\n      } catch (v) {\n        if (v.error === \"popup_closed_by_user\") {\n          const w = {\n            code: \"SERVER_ERROR\",\n            message: \"Apple sign-in was cancelled.\"\n          };\n          throw d(w), n(!1), w;\n        }\n        const x = V(v, \"Unable to sign in with Apple. Please try again.\");\n        throw x.code === \"ACCOUNT_LINK_REQUIRED\" && f && u(f), d(x), n(!1), x;\n      }\n    }, [\n      e.appleClientId,\n      i,\n      g,\n      o,\n      r\n    ]),\n    isLoading: t,\n    isInitialized: i,\n    error: a,\n    clearError: N(() => d(null), []),\n    pendingLinkIdToken: l,\n    clearPendingLink: N(() => u(null), [])\n  };\n}\nfunction Kw(e) {\n  const r = Wu(e);\n  return typeof r?.email == \"string\" ? r.email : null;\n}\nvar Zu, Gw = h((() => {\n  Y(), ie(), Vr(), me(), fn(), Zu = {\n    loading: !1,\n    loaded: !1,\n    error: null,\n    callbacks: [],\n    load() {\n      return typeof window > \"u\" || typeof document > \"u\" ? Promise.reject(/* @__PURE__ */ new Error(\"Apple Sign-In script loader cannot run in SSR\")) : this.loaded ? Promise.resolve() : this.loading ? new Promise((e, r) => {\n        this.callbacks.push({\n          resolve: e,\n          reject: r\n        });\n      }) : (this.loading = !0, new Promise((e, r) => {\n        this.callbacks.push({\n          resolve: e,\n          reject: r\n        });\n        const o = document.getElementById(\"apple-signin-script\");\n        if (o) {\n          window.AppleID ? (this.loaded = !0, this.loading = !1, this.callbacks.forEach((n) => n.resolve()), this.callbacks = []) : o.addEventListener(\"load\", () => {\n            this.loaded = !0, this.loading = !1, this.callbacks.forEach((n) => n.resolve()), this.callbacks = [];\n          });\n          return;\n        }\n        const t = document.createElement(\"script\");\n        t.src = \"https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js\", t.async = !0, t.defer = !0, t.id = \"apple-signin-script\", t.onload = () => {\n          this.loaded = !0, this.loading = !1, this.callbacks.forEach((n) => n.resolve()), this.callbacks = [];\n        }, t.onerror = () => {\n          this.loading = !1, t.remove();\n          const n = /* @__PURE__ */ new Error(\"Failed to load Apple Sign In script\");\n          this.callbacks.forEach((i) => i.reject(n)), this.callbacks = [];\n        }, document.head.appendChild(t);\n      }));\n    },\n    _reset() {\n      this.loading = !1, this.loaded = !1, this.error = null, this.callbacks = [];\n    }\n  };\n}));\nfunction Yw() {\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 Xw = h((() => {\n}));\nfunction Qu({ onSuccess: e, onMfaRequired: r, onError: o, className: t = \"\", variant: n = \"default\", size: i = \"md\", disabled: s = !1, hideOnNonApple: a = !1, accessCode: d }) {\n  const l = le(), { signIn: u, isLoading: m, isInitialized: g, error: p } = Hw(), [f] = T(() => Yw());\n  if (a && !f) return null;\n  const v = async () => {\n    try {\n      const x = await u(d);\n      \"mfaRequired\" in x ? r?.(x) : await e?.(x);\n    } catch (x) {\n      o?.(xr(x, \"Unable to sign in with Apple. Please try again.\"));\n    }\n  };\n  return /* @__PURE__ */ _(ce, { children: [/* @__PURE__ */ _(\"button\", {\n    type: \"button\",\n    className: `cedros-button ${{\n      default: \"cedros-button-social\",\n      outline: \"cedros-button-social-outline\"\n    }[n]} ${{\n      sm: \"cedros-button-sm\",\n      md: \"cedros-button-md\",\n      lg: \"cedros-button-lg\"\n    }[i]} ${t}`,\n    onClick: v,\n    disabled: s || !g || m,\n    \"aria-busy\": m,\n    \"aria-label\": l.buttons.continueWithApple,\n    children: [m ? /* @__PURE__ */ c(H, { size: \"sm\" }) : /* @__PURE__ */ c(un, { className: \"cedros-button-icon\" }), /* @__PURE__ */ c(\"span\", { children: l.buttons.continueWithApple })]\n  }), p && (!g || !o) && /* @__PURE__ */ c(ae, { error: p })] });\n}\nvar em = h((() => {\n  Gw(), we(), re(), ao(), Xw(), $o(), Q();\n}));\nfunction No(e, r = rm) {\n  const o = Array.from(e).length >= 15, t = [{\n    key: \"minLength\",\n    label: r.minLength,\n    met: o\n  }], n = t.reduce((a, d) => a + (d.met ? 1 : 0), 0), i = n === t.length;\n  let s;\n  return i ? s = e.length >= om ? \"strong\" : \"good\" : s = e.length < 8 ? \"weak\" : \"fair\", {\n    isValid: i,\n    requirements: t,\n    metCount: n,\n    strength: s\n  };\n}\nfunction It(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 i of t.split(\".\")) if (i.startsWith(\"-\") || i.endsWith(\"-\")) return !1;\n  const n = t.split(\".\").pop();\n  return !(!n || n.length < 2 || !/^[a-zA-Z]+$/.test(n) || tm.has(n.toLowerCase()) || !/^[a-zA-Z0-9.-]+$/.test(t) || /[\\x00-\\x1f\\x7f\"(),;:<>[\\]\\\\]/.test(o));\n}\nfunction fi(e) {\n  return e.length < 43 || e.length > 44 ? !1 : nm.test(e);\n}\nvar rm, om, tm, nm, _r = h((() => {\n  rm = {\n    minLength: \"At least 15 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  }, om = 20, tm = /* @__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  ]), nm = /^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+$/;\n}));\nfunction im() {\n  const { config: e, _internal: r } = fe(), [o, t] = T(!1), [n, i] = T(null), s = B(() => new ue({\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: N(async (a) => {\n      if (!fi(a)) {\n        const d = {\n          code: \"INVALID_PUBLIC_KEY\",\n          message: \"Invalid Solana public key format\"\n        };\n        throw i(d), d;\n      }\n      t(!0), i(null);\n      try {\n        return await s.post(\"/solana/challenge\", { publicKey: a }, { credentials: \"omit\" });\n      } catch (d) {\n        const l = V(d, \"Unable to start wallet verification. Please try again.\");\n        throw i(l), l;\n      } finally {\n        t(!1);\n      }\n    }, [s]),\n    signIn: N(async (a, d, l, u) => {\n      if (!fi(a)) {\n        const m = {\n          code: \"INVALID_PUBLIC_KEY\",\n          message: \"Invalid Solana public key format\"\n        };\n        throw i(m), m;\n      }\n      t(!0), i(null);\n      try {\n        const m = await s.post(\"/solana\", {\n          publicKey: a,\n          signature: d,\n          message: l,\n          referral: r?.getReferralCode?.() ?? void 0,\n          accessCode: u || void 0\n        });\n        return \"mfaRequired\" in m || (e.callbacks?.onLoginSuccess?.(m.user, \"solana\"), r?.handleLoginSuccess(m.user, m.tokens)), m;\n      } catch (m) {\n        const g = V(m, \"Unable to sign in with your wallet. Please try again.\");\n        throw i(g), g;\n      } finally {\n        t(!1);\n      }\n    }, [\n      s,\n      e.callbacks,\n      r\n    ]),\n    linkWallet: N(async (a, d, l) => {\n      if (!fi(a)) {\n        const u = {\n          code: \"INVALID_PUBLIC_KEY\",\n          message: \"Invalid Solana public key format\"\n        };\n        throw i(u), u;\n      }\n      t(!0), i(null);\n      try {\n        return await s.post(\"/solana/link\", {\n          publicKey: a,\n          signature: d,\n          message: l\n        });\n      } catch (u) {\n        const m = V(u, \"Unable to link this wallet to your account. Please try again.\");\n        throw i(m), m;\n      } finally {\n        t(!1);\n      }\n    }, [s]),\n    isLoading: o,\n    error: n,\n    clearError: N(() => i(null), [])\n  };\n}\nvar Jw = h((() => {\n  ie(), me(), _r();\n}));\nfunction Rc(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 Zw() {\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}\nvar sm, am = h((() => {\n  sm = [\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 Pc() {\n  if (typeof window > \"u\") return [];\n  const e = window, r = [];\n  for (const o of sm) {\n    const t = e[o];\n    t && typeof t == \"object\" && \"solana\" in t && Rc(t.solana) && r.push({\n      key: o,\n      name: Ki[o] ?? o,\n      icon: dm[o] ?? Gi,\n      provider: t.solana\n    });\n  }\n  return r.length === 0 && Rc(e.solana) && r.push({\n    key: \"solana\",\n    name: Ki.solana ?? \"Solana Wallet\",\n    icon: Gi,\n    provider: e.solana\n  }), r;\n}\nfunction Mt(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 Ki, Gi, dm, Qw = h((() => {\n  am(), Ki = {\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  }, Gi = \"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\", dm = {\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 e0(e) {\n  if (typeof window > \"u\") return !1;\n  try {\n    const r = await import(\n      /* @vite-ignore */\n      cm\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 cm, r0 = h((() => {\n  cm = \"@solana-mobile/wallet-standard-mobile\";\n}));\nfunction o0() {\n  return /* @__PURE__ */ c(mn, { className: \"cedros-button-icon\" });\n}\nvar t0 = h((() => {\n  ao();\n})), n0 = /* @__PURE__ */ dn({ SolanaLoginButton: () => s0 });\nasync function i0() {\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 s0(e) {\n  const [r, o] = T(() => Pc()), [t, n] = T(null), [i, s] = T(!1), a = !e.walletContext && r.length > 0;\n  if (F(() => {\n    if (e.walletContext) return;\n    const u = () => o(Pc());\n    return u(), window.addEventListener(\"load\", u), window.addEventListener(\"focus\", u), () => {\n      window.removeEventListener(\"load\", u), window.removeEventListener(\"focus\", u);\n    };\n  }, [e.walletContext]), F(() => {\n    if (a) return;\n    let u = !1;\n    return i0().then((m) => {\n      u || n(m);\n    }).catch(() => {\n      u || s(!0);\n    }), () => {\n      u = !0;\n    };\n  }, [a]), a) return /* @__PURE__ */ c(a0, {\n    ...e,\n    wallets: r\n  });\n  if (!t)\n    return i && e.hideIfNoWallet !== !1 ? null : /* @__PURE__ */ c(c0, {\n      ...e,\n      isLoading: !i\n    });\n  const { WalletProvider: d, WalletModalProvider: l } = t;\n  return e.walletContext ? /* @__PURE__ */ c(l, { children: /* @__PURE__ */ c(Lc, {\n    runtime: t,\n    ...e\n  }) }) : /* @__PURE__ */ c(d, {\n    wallets: lm,\n    localStorageKey: \"cedros-walletName\",\n    children: /* @__PURE__ */ c(l, { children: /* @__PURE__ */ c(Lc, {\n      runtime: t,\n      ...e\n    }) })\n  });\n}\nfunction a0({ wallets: e, onSuccess: r, onMfaRequired: o, onError: t, className: n = \"\", variant: i = \"default\", size: s = \"md\", disabled: a = !1, hideIfNoWallet: d = !0, onLoadingChange: l, accessCode: u }) {\n  const m = le(), { requestChallenge: g, signIn: p, linkWallet: f, isLoading: v } = im(), x = Ur(), [w, b] = T(!1), k = e[0] ?? null, y = v || w;\n  F(() => {\n    l?.(y);\n  }, [y, l]);\n  const C = async () => {\n    if (!(a || y || !k)) {\n      b(!0);\n      try {\n        const P = await d0(k, {\n          requestChallenge: g,\n          signIn: p,\n          linkWallet: f\n        }, x, u);\n        P && \"mfaRequired\" in P ? o?.(P) : await r?.(P);\n      } catch (P) {\n        t?.(xr(P, zt));\n      } finally {\n        b(!1);\n      }\n    }\n  };\n  return !k && d ? null : /* @__PURE__ */ c(Ys, {\n    className: n,\n    variant: i,\n    size: s,\n    disabled: a || y || !k,\n    isLoading: y,\n    label: m.buttons.continueWithSolana,\n    onClick: C\n  });\n}\nasync function d0(e, r, o, t) {\n  const { provider: n } = e, i = (await n.connect())?.publicKey ?? n.publicKey;\n  if (!i) throw new Error(\"Wallet did not return a public key\");\n  const s = i.toBase58(), a = await o.requestDeviceAccountLink({\n    identifier: s,\n    method: \"solana\",\n    linkExisting: async (m, g) => {\n      const p = await r.requestChallenge(s), f = Mt(await n.signMessage(new TextEncoder().encode(p.message)));\n      return await r.linkWallet(s, Dt(f), p.message), g;\n    }\n  });\n  if (a.action === \"linked\") return a.response;\n  const d = await r.requestChallenge(s), l = new TextEncoder().encode(d.message), u = Dt(Mt(await n.signMessage(l)));\n  return r.signIn(s, u, d.message, t);\n}\nfunction Lc({ runtime: e, onSuccess: r, onMfaRequired: o, onError: t, className: n = \"\", variant: i = \"default\", size: s = \"md\", disabled: a = !1, hideIfNoWallet: d = !0, onLoadingChange: l, walletContext: u, accessCode: m }) {\n  const g = le(), { requestChallenge: p, signIn: f, linkWallet: v, isLoading: x } = im(), w = Ur(), b = e.useWallet(), { visible: k, setVisible: y } = e.useWalletModal(), [C, P] = T(!1), S = O(!1), R = O(!1), A = O(!1), E = O(!1), I = u?.connected ?? b.connected, L = u?.connecting ?? b.connecting, M = u?.publicKey ?? b.publicKey, D = u?.signMessage ?? b.signMessage, z = u?.wallet ?? b.wallet, $ = u?.wallets ?? b.wallets, q = u ? u.select : (ee) => b.select(ee), J = u?.connect ?? b.connect, G = $.filter((ee) => ee.adapter.readyState === \"Installed\" || ee.adapter.readyState === \"Loadable\"), ge = N(async () => {\n    if (!S.current) {\n      if (!M || !D) {\n        t?.(/* @__PURE__ */ new Error(\"Wallet not ready\"));\n        return;\n      }\n      S.current = !0;\n      try {\n        const ee = M.toBase58(), Se = await w.requestDeviceAccountLink({\n          identifier: ee,\n          method: \"solana\",\n          linkExisting: async (X, be) => {\n            const K = await p(ee);\n            return await v(ee, Dt(Mt(await D(new TextEncoder().encode(K.message)))), K.message), be;\n          }\n        });\n        if (Se.action === \"linked\") {\n          E.current = !1, await r?.(Se.response);\n          return;\n        }\n        const de = await p(ee), he = await f(ee, Dt(Mt(await D(new TextEncoder().encode(de.message)))), de.message, m);\n        E.current = !1, \"mfaRequired\" in he ? o?.(he) : await r?.(he);\n      } catch (ee) {\n        const Se = xr(ee, zt);\n        E.current = !0, t?.(Se);\n      } finally {\n        S.current = !1, P(!1);\n      }\n    }\n  }, [\n    M,\n    D,\n    p,\n    f,\n    v,\n    w,\n    r,\n    o,\n    t,\n    m\n  ]), ve = N(() => {\n    A.current = !1, J().catch((ee) => {\n      t?.(xr(ee, zt)), P(!1);\n    });\n  }, [J, t]);\n  F(() => {\n    A.current && z && !I && !L && ve();\n  }, [\n    z,\n    I,\n    L,\n    ve\n  ]), F(() => {\n    C && I && M && D && !S.current && ge().catch(() => {\n    });\n  }, [\n    C,\n    I,\n    M,\n    D,\n    ge\n  ]), F(() => {\n    k ? R.current = !0 : R.current && (R.current = !1, C && !I && z && !L ? ve() : C && !I && (A.current = !1, P(!1)));\n  }, [\n    k,\n    C,\n    I,\n    z,\n    L,\n    ve\n  ]);\n  const Ie = async () => {\n    a || x || L || (I && M && D && !E.current ? (P(!0), await ge()) : G.length === 1 && !z ? (q(G[0].adapter.name), P(!0), A.current = !0) : (E.current = !1, z && b.select(null), A.current = !1, y(!0), P(!0)));\n  }, _e = x || L || C && !I;\n  return F(() => {\n    l?.(_e);\n  }, [_e, l]), d && G.length === 0 ? null : /* @__PURE__ */ c(Ys, {\n    className: n,\n    variant: i,\n    size: s,\n    disabled: a || _e,\n    isLoading: _e,\n    label: g.buttons.continueWithSolana,\n    onClick: Ie\n  });\n}\nfunction c0({ className: e = \"\", variant: r = \"default\", size: o = \"md\", disabled: t = !1, isLoading: n = !0 }) {\n  const i = le();\n  return /* @__PURE__ */ c(Ys, {\n    className: e,\n    variant: r,\n    size: o,\n    disabled: t || n,\n    isLoading: n,\n    label: i.buttons.continueWithSolana\n  });\n}\nfunction Ys({ className: e, variant: r, size: o, disabled: t, isLoading: n, label: i, onClick: s }) {\n  return /* @__PURE__ */ _(\"button\", {\n    type: \"button\",\n    className: `cedros-button ${u0(r)} ${l0(o)} ${e}`,\n    onClick: s,\n    disabled: t,\n    \"aria-label\": i,\n    children: [n ? /* @__PURE__ */ c(H, { size: \"sm\" }) : /* @__PURE__ */ c(o0, {}), /* @__PURE__ */ c(\"span\", { children: i })]\n  });\n}\nfunction Dt(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 l0(e) {\n  return {\n    sm: \"cedros-button-sm\",\n    md: \"cedros-button-md\",\n    lg: \"cedros-button-lg\"\n  }[e];\n}\nfunction u0(e) {\n  return {\n    default: \"cedros-button-social\",\n    outline: \"cedros-button-social-outline\"\n  }[e];\n}\nvar lm, zt, m0 = h((() => {\n  Y(), Jw(), Vr(), Qw(), r0(), am(), re(), t0(), $o(), Q(), Zw() && e0(), lm = [], zt = \"Unable to sign in with your wallet. Please try again.\";\n}));\nfunction g0(e) {\n  return /* @__PURE__ */ c(Ns, {\n    fallback: /* @__PURE__ */ c(h0, { ...e }),\n    children: /* @__PURE__ */ c(um, { ...e })\n  });\n}\nfunction h0({ className: e = \"\", variant: r = \"default\", size: o = \"md\" }) {\n  return /* @__PURE__ */ _(\"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__ */ c(H, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", { children: \"Continue with Solana\" })]\n  });\n}\nvar um, p0 = h((() => {\n  re(), um = Is(async () => ({ default: (await Promise.resolve().then(() => (m0(), n0))).SolanaLoginButton }));\n})), qo, vn = h((() => {\n  me(), qo = class {\n    client;\n    constructor(e, r, o, t) {\n      this.client = new ue({\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 V(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 V(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 V(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 V(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 V(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 V(r, \"Failed to verify email address\");\n      }\n    }\n  };\n}));\nfunction Ee(e, r) {\n  if (!e) throw new Error(r);\n}\nfunction f0(e) {\n  return e.replace(/-/g, \"+\").replace(/_/g, \"/\");\n}\nfunction Ot(e) {\n  Ee(typeof e == \"string\" && e.length > 0, \"Expected base64url string\");\n  const r = f0(e), o = r + \"=\".repeat((4 - r.length % 4) % 4), t = atob(o), n = new Uint8Array(t.length);\n  for (let i = 0; i < t.length; i++) n[i] = t.charCodeAt(i);\n  return n.buffer;\n}\nfunction Hr(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 mm(e) {\n  return Ee(typeof e == \"object\" && e !== null, \"Invalid credential descriptor\"), Ee(typeof e.type == \"string\", \"Invalid credential descriptor type\"), Ee(typeof e.id == \"string\", \"Invalid credential descriptor id\"), {\n    type: e.type,\n    id: Ot(e.id),\n    transports: Array.isArray(e.transports) ? e.transports : void 0\n  };\n}\nfunction v0(e) {\n  return gm.some((r) => r === e);\n}\nfunction Nc(e) {\n  Ee(e && typeof e == \"object\", \"Missing creation options\");\n  const r = e.publicKey;\n  Ee(r && typeof r == \"object\", \"Missing creation options.publicKey\"), Ee(typeof r.challenge == \"string\", \"Missing creation challenge\"), Ee(typeof r.rp == \"object\" && r.rp !== null, \"Missing rp\"), Ee(typeof r.user == \"object\" && r.user !== null, \"Missing user\");\n  const { rp: o, user: t } = r;\n  Ee(typeof o.name == \"string\", \"Missing rp.name\"), Ee(typeof t.id == \"string\", \"Missing user.id\"), Ee(typeof t.name == \"string\", \"Missing user.name\"), Ee(typeof t.displayName == \"string\", \"Missing user.displayName\");\n  const n = Array.isArray(r.excludeCredentials) ? r.excludeCredentials.map(mm) : void 0, i = Array.isArray(r.pubKeyCredParams) ? r.pubKeyCredParams.map((a) => ({\n    type: a.type,\n    alg: a.alg\n  })) : [], s = {\n    challenge: Ot(r.challenge),\n    rp: {\n      name: o.name,\n      id: typeof o.id == \"string\" ? o.id : void 0\n    },\n    user: {\n      id: Ot(t.id),\n      name: t.name,\n      displayName: t.displayName\n    },\n    pubKeyCredParams: i,\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: n,\n    extensions: typeof r.extensions == \"object\" && r.extensions !== null ? r.extensions : void 0\n  };\n  return s.hints = [\"client-device\"], s;\n}\nfunction b0(e) {\n  Ee(e && typeof e == \"object\", \"Missing request options\");\n  const r = e.publicKey;\n  Ee(r && typeof r == \"object\", \"Missing request options.publicKey\"), Ee(typeof r.challenge == \"string\", \"Missing request challenge\");\n  const o = Array.isArray(r.allowCredentials) ? r.allowCredentials.map(mm) : void 0, t = {\n    challenge: Ot(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 vi(e) {\n  const r = Hr(e.rawId), o = e.response, t = { clientDataJSON: Hr(o.clientDataJSON) };\n  if (\"attestationObject\" in o) {\n    const n = o, i = {\n      ...t,\n      attestationObject: Hr(n.attestationObject)\n    };\n    if (typeof n.getTransports == \"function\") try {\n      const s = n.getTransports().filter(v0);\n      s.length > 0 && (i.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: i\n    };\n  }\n  if (\"authenticatorData\" in o) {\n    const n = o, i = {\n      ...t,\n      authenticatorData: Hr(n.authenticatorData),\n      signature: Hr(n.signature)\n    };\n    return n.userHandle && (i.userHandle = Hr(n.userHandle)), {\n      id: e.id,\n      rawId: r,\n      type: e.type,\n      authenticatorAttachment: e.authenticatorAttachment ?? void 0,\n      clientExtensionResults: e.getClientExtensionResults?.() ?? {},\n      response: i\n    };\n  }\n  throw new Error(\"Unsupported WebAuthn credential response\");\n}\nvar gm, y0 = h((() => {\n  gm = [\n    \"ble\",\n    \"hybrid\",\n    \"internal\",\n    \"nfc\",\n    \"usb\"\n  ];\n}));\nfunction w0(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 bi(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\" ? w0(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 k0 = h((() => {\n}));\nfunction x0() {\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 hm() {\n  const { config: e, _internal: r } = fe(), o = Ur(), [t, n] = T(!1), [i, s] = T(null), a = B(() => new ue({\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  ]), d = B(() => new qo(e.serverUrl, e.requestTimeout, e.retryAttempts, r?.getAccessToken), [\n    r?.getAccessToken,\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts\n  ]), l = O(null);\n  F(() => () => l.current?.abort(), []);\n  const u = N(() => (l.current?.abort(), l.current = new AbortController(), l.current.signal), []), m = N(() => s(null), []), g = x0(), p = N(async (x) => {\n    if (!g) {\n      const b = {\n        code: \"VALIDATION_ERROR\",\n        message: \"Passkeys are not supported in this browser\"\n      };\n      throw s(b), b;\n    }\n    const w = u();\n    n(!0), s(null);\n    try {\n      const b = await a.post(\"/webauthn/auth/options\", { email: x?.email });\n      w.throwIfAborted();\n      const k = b0(b.options), y = await navigator.credentials.get({\n        publicKey: k,\n        signal: w\n      });\n      if (w.throwIfAborted(), !y) throw new Error(\"Passkey authentication returned no credential\");\n      const C = await a.post(\"/webauthn/auth/verify\", {\n        challengeId: b.challengeId,\n        credential: vi(y)\n      });\n      return w.throwIfAborted(), \"mfaRequired\" in C || (e.callbacks?.onLoginSuccess?.(C.user, \"webauthn\"), r?.handleLoginSuccess(C.user, C.tokens)), C;\n    } catch (b) {\n      const k = typeof b == \"object\" && b !== null && \"isApiError\" in b ? b.data : void 0;\n      if (k?.code === \"INVALID_CREDENTIALS\" || k?.error === \"invalid_credentials\") {\n        const C = {\n          code: \"INVALID_CREDENTIALS\",\n          message: \"This passkey is not recognized. Try another passkey or sign in another way.\"\n        };\n        throw s(C), C;\n      }\n      const y = bi(b) ?? V(b, \"Unable to sign in with passkey. Please try again.\");\n      throw s(y), y;\n    } finally {\n      n(!1);\n    }\n  }, [\n    a,\n    e.callbacks,\n    r,\n    g,\n    u\n  ]), f = N(async (x) => {\n    if (!g) {\n      const b = {\n        code: \"VALIDATION_ERROR\",\n        message: \"Passkeys are not supported in this browser\"\n      };\n      throw s(b), b;\n    }\n    const w = u();\n    n(!0), s(null);\n    try {\n      const b = await a.post(\"/webauthn/register/options\", {});\n      w.throwIfAborted();\n      const k = Nc(b.options), y = await navigator.credentials.create({\n        publicKey: k,\n        signal: w\n      });\n      if (w.throwIfAborted(), !y) throw new Error(\"Passkey registration returned no credential\");\n      const C = await a.post(\"/webauthn/register/verify\", {\n        challengeId: b.challengeId,\n        credential: vi(y),\n        label: x?.label\n      });\n      if (w.throwIfAborted(), !C.success) throw new Error(\"Passkey registration failed\");\n      return {\n        credentialId: C.credentialId,\n        label: C.label\n      };\n    } catch (b) {\n      const k = bi(b) ?? V(b, \"Unable to register passkey. Please try again.\");\n      throw s(k), k;\n    } finally {\n      n(!1);\n    }\n  }, [\n    a,\n    g,\n    u\n  ]), v = N(async (x) => {\n    if (!g) {\n      const b = {\n        code: \"VALIDATION_ERROR\",\n        message: \"Passkeys are not supported in this browser\"\n      };\n      throw s(b), b;\n    }\n    const w = u();\n    n(!0), s(null);\n    try {\n      if (x?.email) {\n        const P = await o.requestDeviceAccountLink({\n          identifier: x.email,\n          method: \"webauthn\",\n          linkExisting: async (S, R) => (await f({ label: x.label }), await d.addEmail(x.email), R)\n        });\n        if (P.action === \"linked\") {\n          if (P.response) return P.response;\n          throw {\n            code: \"UNKNOWN_ERROR\",\n            message: \"Account linked. Please refresh your session.\"\n          };\n        }\n      }\n      const b = await a.post(\"/webauthn/signup/options\", {});\n      w.throwIfAborted();\n      const k = Nc(b.options), y = await navigator.credentials.create({\n        publicKey: k,\n        signal: w\n      });\n      if (w.throwIfAborted(), !y) throw new Error(\"Passkey signup returned no credential\");\n      const C = await a.post(\"/webauthn/signup/verify\", {\n        challengeId: b.challengeId,\n        credential: vi(y),\n        name: x?.name,\n        label: x?.label,\n        referral: r?.getReferralCode?.() ?? void 0,\n        accessCode: x?.accessCode || void 0\n      });\n      if (w.throwIfAborted(), e.callbacks?.onLoginSuccess?.(C.user, \"webauthn\"), r?.handleLoginSuccess(C.user, C.tokens), x?.email) try {\n        await d.addEmail(x.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 C;\n    } catch (b) {\n      const k = bi(b) ?? V(b, \"Unable to sign up with passkey. Please try again.\");\n      throw s(k), k;\n    } finally {\n      n(!1);\n    }\n  }, [\n    d,\n    u,\n    a,\n    e.callbacks,\n    o,\n    r,\n    g,\n    f\n  ]);\n  return {\n    isSupported: g,\n    isLoading: t,\n    error: i,\n    clearError: m,\n    continueWithPasskey: N(() => p(), [p]),\n    authenticatePasskey: p,\n    registerPasskey: f,\n    signupWithPasskey: v\n  };\n}\nvar pm = h((() => {\n  Y(), ie(), Vr(), me(), vn(), y0(), k0();\n}));\nfunction fm({ onSuccess: e, onMfaRequired: r, onError: o, className: t = \"\", children: n, disabled: i, accessCode: s, mode: a = \"login\" }) {\n  const d = le(), { continueWithPasskey: l, signupWithPasskey: u, isLoading: m, isSupported: g } = hm(), p = i || !g || m, f = a === \"register\" ? d.buttons.createPasskeyAccount : d.buttons.continueWithPasskey;\n  return /* @__PURE__ */ _(\"button\", {\n    type: \"button\",\n    className: `cedros-button cedros-button-social ${t}`,\n    onClick: async () => {\n      try {\n        const v = a === \"register\" ? await u({ accessCode: s }) : await l();\n        \"mfaRequired\" in v ? r?.(v) : await e?.(v);\n      } catch (v) {\n        o?.(xr(v, \"Unable to sign in with passkey. Please try again.\"));\n      }\n    },\n    disabled: p,\n    \"aria-disabled\": p,\n    \"aria-busy\": m,\n    title: g ? void 0 : d.auth.passkeysUnavailable,\n    children: [m ? /* @__PURE__ */ c(H, { size: \"sm\" }) : /* @__PURE__ */ c(\"span\", {\n      className: \"cedros-social-icon\",\n      \"aria-hidden\": \"true\",\n      children: /* @__PURE__ */ c(Lo, {})\n    }), /* @__PURE__ */ c(\"span\", { children: n ?? f })]\n  });\n}\nvar vm = h((() => {\n  pm(), re(), ao(), $o(), Q();\n}));\nfunction _0() {\n  return /* @__PURE__ */ c(\"svg\", {\n    width: \"16\",\n    height: \"16\",\n    viewBox: \"0 0 16 16\",\n    fill: \"none\",\n    \"aria-hidden\": \"true\",\n    children: /* @__PURE__ */ c(\"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 A0() {\n  return /* @__PURE__ */ c(\"svg\", {\n    width: \"16\",\n    height: \"16\",\n    viewBox: \"0 0 16 16\",\n    fill: \"none\",\n    \"aria-hidden\": \"true\",\n    children: /* @__PURE__ */ c(\"circle\", {\n      cx: \"8\",\n      cy: \"8\",\n      r: \"4.25\",\n      stroke: \"currentColor\",\n      strokeWidth: \"1.5\"\n    })\n  });\n}\nfunction C0({ validation: e, requirementsId: r }) {\n  const o = le(), t = Ne(), { strength: n, isValid: i, metCount: s, requirements: a } = e, d = a.length, l = d > 0 ? Math.round(s / d * 100) : 0, u = i ? \"true\" : \"false\", m = i ? o.passwordValidation.allRequirementsMet : o.passwordValidation.requirementsProgress.replace(\"{met}\", String(s)).replace(\"{total}\", String(d));\n  return /* @__PURE__ */ _(\"div\", {\n    className: \"cedros-password-meter\",\n    children: [\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-password-strength\",\n        children: [/* @__PURE__ */ c(\"div\", {\n          className: \"cedros-strength-bar\",\n          children: /* @__PURE__ */ c(\"div\", {\n            className: \"cedros-strength-fill\",\n            \"data-valid\": u,\n            style: { width: `${l}%` }\n          })\n        }), /* @__PURE__ */ c(\"span\", {\n          className: \"cedros-strength-label\",\n          \"data-valid\": u,\n          children: o.passwordValidation[n]\n        })]\n      }),\n      /* @__PURE__ */ c(\"p\", {\n        id: t,\n        className: \"cedros-password-requirements-title\",\n        children: o.passwordValidation.requirementsTitle\n      }),\n      /* @__PURE__ */ c(\"ul\", {\n        id: r,\n        className: \"cedros-password-requirements\",\n        \"aria-labelledby\": t,\n        children: a.map((g) => /* @__PURE__ */ _(\"li\", {\n          className: \"cedros-password-requirement\",\n          \"data-met\": g.met ? \"true\" : \"false\",\n          children: [\n            /* @__PURE__ */ c(\"span\", {\n              className: \"cedros-requirement-icon\",\n              children: g.met ? /* @__PURE__ */ c(_0, {}) : /* @__PURE__ */ c(A0, {})\n            }),\n            /* @__PURE__ */ c(\"span\", {\n              className: \"cedros-requirement-text\",\n              children: g.label\n            }),\n            /* @__PURE__ */ _(\"span\", {\n              className: \"cedros-sr-only\",\n              children: [\" — \", g.met ? o.passwordValidation.met : o.passwordValidation.notMet]\n            })\n          ]\n        }, g.key))\n      }),\n      /* @__PURE__ */ c(\"span\", {\n        role: \"status\",\n        \"aria-live\": \"polite\",\n        className: \"cedros-sr-only\",\n        children: m\n      })\n    ]\n  });\n}\nvar S0 = h((() => {\n  Q();\n})), bn, yn = h((() => {\n  bn = Ke({});\n}));\nfunction wn(e) {\n  const r = O(null);\n  return r.current === null && (r.current = e()), r.current;\n}\nvar Wo = h((() => {\n})), bm, ym = h((() => {\n  bm = typeof window < \"u\";\n})), kn, xn = h((() => {\n  ym(), kn = bm ? Zb : Ms;\n})), co, Ho = h((() => {\n  co = /* @__PURE__ */ Ke(null);\n}));\nfunction Xs(e, r) {\n  e.indexOf(r) === -1 && e.push(r);\n}\nfunction Ut(e, r) {\n  const o = e.indexOf(r);\n  o > -1 && e.splice(o, 1);\n}\nvar wm = h((() => {\n})), Ge, E0 = h((() => {\n  Ge = (e, r, o) => o > r ? r : o < e ? e : o;\n})), Ko, zr, km = h((() => {\n  Ko = () => {\n  }, zr = () => {\n  };\n})), ar, T0 = h((() => {\n  ar = {};\n})), Js, R0 = h((() => {\n  Js = (e) => /^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)$/u.test(e);\n})), Zs, P0 = h((() => {\n  Zs = (e) => typeof e == \"object\" && e !== null;\n})), Qs, L0 = h((() => {\n  Qs = (e) => /^0[^.\\s]+$/u.test(e);\n}));\n// @__NO_SIDE_EFFECTS__\nfunction xm(e) {\n  let r;\n  return () => (r === void 0 && (r = e()), r);\n}\nvar N0 = h((() => {\n})), Ve, ea = h((() => {\n  Ve = /* @__NO_SIDE_EFFECTS__ */ (e) => e;\n})), lo, I0 = h((() => {\n  lo = (...e) => e.reduce((r, o) => (t) => o(r(t)));\n})), ro, M0 = h((() => {\n  ro = /* @__NO_SIDE_EFFECTS__ */ (e, r, o) => {\n    const t = r - e;\n    return t ? (o - e) / t : 1;\n  };\n})), _n, D0 = h((() => {\n  wm(), _n = class {\n    constructor() {\n      this.subscriptions = [];\n    }\n    add(e) {\n      return Xs(this.subscriptions, e), () => Ut(this.subscriptions, e);\n    }\n    notify(e, r, o) {\n      const t = this.subscriptions.length;\n      if (t)\n        if (t === 1) this.subscriptions[0](e, r, o);\n        else for (let n = 0; n < t; n++) {\n          const i = this.subscriptions[n];\n          i && i(e, r, o);\n        }\n    }\n    getSize() {\n      return this.subscriptions.length;\n    }\n    clear() {\n      this.subscriptions.length = 0;\n    }\n  };\n})), Le, Ue, z0 = h((() => {\n  Le = /* @__NO_SIDE_EFFECTS__ */ (e) => e * 1e3, Ue = /* @__NO_SIDE_EFFECTS__ */ (e) => e / 1e3;\n})), ra, O0 = h((() => {\n  ra = /* @__NO_SIDE_EFFECTS__ */ (e, r) => r ? e * (1e3 / r) : 0;\n}));\nfunction U0(e, r, o, t, n) {\n  let i, s, a = 0;\n  do\n    s = r + (o - r) / 2, i = oa(s, t, n) - e, i > 0 ? o = s : r = s;\n  while (Math.abs(i) > _m && ++a < Am);\n  return s;\n}\n// @__NO_SIDE_EFFECTS__\nfunction ko(e, r, o, t) {\n  if (e === r && o === t) return Ve;\n  const n = (i) => U0(i, 0, 1, e, o);\n  return (i) => i === 0 || i === 1 ? i : oa(n(i), r, t);\n}\nvar oa, _m, Am, An = h((() => {\n  ea(), oa = (e, r, o) => (((1 - 3 * o + 3 * r) * e + (3 * o - 6 * r)) * e + 3 * r) * e, _m = 1e-7, Am = 12;\n})), ta, na = h((() => {\n  ta = /* @__NO_SIDE_EFFECTS__ */ (e) => (r) => r <= 0.5 ? e(2 * r) / 2 : (2 - e(2 * (1 - r))) / 2;\n})), ia, sa = h((() => {\n  ia = /* @__NO_SIDE_EFFECTS__ */ (e) => (r) => 1 - e(1 - r);\n})), Yi, Vt, aa, da = h((() => {\n  An(), na(), sa(), Yi = /* @__PURE__ */ ko(0.33, 1.53, 0.69, 0.99), Vt = /* @__PURE__ */ ia(Yi), aa = /* @__PURE__ */ ta(Vt);\n})), ca, Cm = h((() => {\n  da(), ca = (e) => e >= 1 ? 1 : (e *= 2) < 1 ? 0.5 * Vt(e) : 0.5 * (2 - Math.pow(2, -10 * (e - 1)));\n})), bt, la, ua, Sm = h((() => {\n  na(), sa(), bt = (e) => 1 - Math.sin(Math.acos(e)), la = ia(bt), ua = ta(bt);\n})), Em, Tm, ma, Rm = h((() => {\n  An(), Em = /* @__PURE__ */ ko(0.42, 0, 1, 1), Tm = /* @__PURE__ */ ko(0, 0, 0.58, 1), ma = /* @__PURE__ */ ko(0.42, 0, 0.58, 1);\n})), Pm, V0 = h((() => {\n  Pm = /* @__NO_SIDE_EFFECTS__ */ (e) => Array.isArray(e) && typeof e[0] != \"number\";\n})), ga, Lm = h((() => {\n  ga = /* @__NO_SIDE_EFFECTS__ */ (e) => Array.isArray(e) && typeof e[0] == \"number\";\n})), yi, Ic, Xi, B0 = h((() => {\n  km(), ea(), Cm(), da(), Sm(), An(), Rm(), Lm(), yi = {\n    linear: Ve,\n    easeIn: Em,\n    easeInOut: ma,\n    easeOut: Tm,\n    circIn: bt,\n    circInOut: ua,\n    circOut: la,\n    backIn: Vt,\n    backInOut: aa,\n    backOut: Yi,\n    anticipate: ca\n  }, Ic = (e) => typeof e == \"string\", Xi = (e) => {\n    if (ga(e)) {\n      zr(e.length === 4, \"Cubic bezier arrays must contain four numerical values.\", \"cubic-bezier-length\");\n      const [r, o, t, n] = e;\n      return /* @__PURE__ */ ko(r, o, t, n);\n    } else if (Ic(e))\n      return zr(yi[e] !== void 0, `Invalid easing type '${e}'`, \"invalid-easing-type\"), yi[e];\n    return e;\n  };\n})), W = h((() => {\n  wm(), E0(), km(), T0(), R0(), P0(), L0(), N0(), ea(), I0(), M0(), D0(), z0(), O0(), Cm(), da(), Sm(), An(), Rm(), na(), sa(), V0(), Lm(), B0();\n})), fo, Nm = h((() => {\n  fo = [\n    \"setup\",\n    \"read\",\n    \"resolveKeyframes\",\n    \"preUpdate\",\n    \"update\",\n    \"preRender\",\n    \"render\",\n    \"postRender\"\n  ];\n}));\nfunction F0(e) {\n  let r = /* @__PURE__ */ new Set(), o = /* @__PURE__ */ new Set(), t = !1, n = !1;\n  const i = /* @__PURE__ */ new WeakSet();\n  let s = {\n    delta: 0,\n    timestamp: 0,\n    isProcessing: !1\n  };\n  function a(l) {\n    i.has(l) && (d.schedule(l), e()), l(s);\n  }\n  const d = {\n    schedule: (l, u = !1, m = !1) => {\n      const g = m && t ? r : o;\n      return u && i.add(l), g.add(l), l;\n    },\n    cancel: (l) => {\n      o.delete(l), i.delete(l);\n    },\n    process: (l) => {\n      if (s = l, t) {\n        n = !0;\n        return;\n      }\n      t = !0;\n      const u = r;\n      r = o, o = u, r.forEach(a), r.clear(), t = !1, n && (n = !1, d.process(l));\n    }\n  };\n  return d;\n}\nvar j0 = h((() => {\n}));\nfunction Im(e, r) {\n  let o = !1, t = !0;\n  const n = {\n    delta: 0,\n    timestamp: 0,\n    isProcessing: !1\n  }, i = () => o = !0, s = fo.reduce((k, y) => (k[y] = F0(i), k), {}), { setup: a, read: d, resolveKeyframes: l, preUpdate: u, update: m, preRender: g, render: p, postRender: f } = s, v = () => {\n    const k = ar.useManualTiming, y = k ? n.timestamp : performance.now();\n    o = !1, k || (n.delta = t ? 1e3 / 60 : Math.max(Math.min(y - n.timestamp, Mm), 1)), n.timestamp = y, n.isProcessing = !0, a.process(n), d.process(n), l.process(n), u.process(n), m.process(n), g.process(n), p.process(n), f.process(n), n.isProcessing = !1, o && r && (t = !1, e(v));\n  }, x = () => {\n    o = !0, t = !0, n.isProcessing || e(v);\n  };\n  return {\n    schedule: fo.reduce((k, y) => {\n      const C = s[y];\n      return k[y] = (P, S = !1, R = !1) => (o || x(), C.schedule(P, S, R)), k;\n    }, {}),\n    cancel: (k) => {\n      for (let y = 0; y < fo.length; y++) s[fo[y]].cancel(k);\n    },\n    state: n,\n    steps: s\n  };\n}\nvar Mm, ha = h((() => {\n  W(), Nm(), j0(), Mm = 40;\n})), te, dr, Ae, yt, or = h((() => {\n  W(), ha(), { schedule: te, cancel: dr, state: Ae, steps: yt } = /* @__PURE__ */ Im(typeof requestAnimationFrame < \"u\" ? requestAnimationFrame : Ve, !0);\n}));\nfunction $0() {\n  wt = void 0;\n}\nvar wt, Te, cr = h((() => {\n  W(), or(), Te = {\n    now: () => (wt === void 0 && Te.set(Ae.isProcessing || ar.useManualTiming ? Ae.timestamp : performance.now()), wt),\n    set: (e) => {\n      wt = e, queueMicrotask($0);\n    }\n  };\n}));\nfunction Mc(e) {\n  return typeof e != \"string\" ? !1 : e.split(\"/*\")[0].includes(\"var(--\");\n}\nvar wi, pa, Dc, Cn, zc, uo = h((() => {\n  wi = (e) => (r) => typeof r == \"string\" && r.startsWith(e), pa = /* @__PURE__ */ wi(\"--\"), Dc = /* @__PURE__ */ wi(\"var(--\"), Cn = (e) => Dc(e) ? zc.test(e.split(\"/*\")[0].trim()) : !1, zc = /var\\(--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)$/iu;\n})), Mr, oo, vo, Ar = h((() => {\n  W(), Mr = {\n    test: (e) => typeof e == \"number\",\n    parse: parseFloat,\n    transform: (e) => e\n  }, oo = {\n    ...Mr,\n    transform: (e) => Ge(0, 1, e)\n  }, vo = {\n    ...Mr,\n    default: 1\n  };\n})), eo, fa = h((() => {\n  eo = (e) => Math.round(e * 1e5) / 1e5;\n})), Sn, va = h((() => {\n  Sn = /-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/gu;\n}));\nfunction q0(e) {\n  return e == null;\n}\nvar W0 = h((() => {\n})), Dm, H0 = h((() => {\n  Dm = /^(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))$/iu;\n})), En, ba, ya = h((() => {\n  va(), W0(), H0(), En = (e, r) => (o) => !!(typeof o == \"string\" && Dm.test(o) && o.startsWith(e) || r && !q0(o) && Object.prototype.hasOwnProperty.call(o, r)), ba = (e, r, o) => (t) => {\n    if (typeof t != \"string\") return t;\n    const [n, i, s, a] = t.match(Sn);\n    return {\n      [e]: parseFloat(n),\n      [r]: parseFloat(i),\n      [o]: parseFloat(s),\n      alpha: a !== void 0 ? parseFloat(a) : 1\n    };\n  };\n})), Oc, tt, yr, Tn = h((() => {\n  W(), Ar(), fa(), ya(), Oc = (e) => Ge(0, 255, e), tt = {\n    ...Mr,\n    transform: (e) => Math.round(Oc(e))\n  }, yr = {\n    test: /* @__PURE__ */ En(\"rgb\", \"red\"),\n    parse: /* @__PURE__ */ ba(\"red\", \"green\", \"blue\"),\n    transform: ({ red: e, green: r, blue: o, alpha: t = 1 }) => \"rgba(\" + tt.transform(e) + \", \" + tt.transform(r) + \", \" + tt.transform(o) + \", \" + eo(oo.transform(t)) + \")\"\n  };\n}));\nfunction K0(e) {\n  let r = \"\", o = \"\", t = \"\", n = \"\";\n  return e.length > 5 ? (r = e.substring(1, 3), o = e.substring(3, 5), t = e.substring(5, 7), n = e.substring(7, 9)) : (r = e.substring(1, 2), o = e.substring(2, 3), t = e.substring(3, 4), n = e.substring(4, 5), r += r, o += o, t += t, n += n), {\n    red: parseInt(r, 16),\n    green: parseInt(o, 16),\n    blue: parseInt(t, 16),\n    alpha: n ? parseInt(n, 16) / 255 : 1\n  };\n}\nvar Bt, wa = h((() => {\n  Tn(), ya(), Bt = {\n    test: /* @__PURE__ */ En(\"#\"),\n    parse: K0,\n    transform: yr.transform\n  };\n})), Kr, Je, We, U, zm, Om, Ji, lr = h((() => {\n  Kr = /* @__NO_SIDE_EFFECTS__ */ (e) => ({\n    test: (r) => typeof r == \"string\" && r.endsWith(e) && r.split(\" \").length === 1,\n    parse: parseFloat,\n    transform: (r) => `${r}${e}`\n  }), Je = /* @__PURE__ */ Kr(\"deg\"), We = /* @__PURE__ */ Kr(\"%\"), U = /* @__PURE__ */ Kr(\"px\"), zm = /* @__PURE__ */ Kr(\"vh\"), Om = /* @__PURE__ */ Kr(\"vw\"), Ji = {\n    ...We,\n    parse: (e) => We.parse(e) / 100,\n    transform: (e) => We.transform(e * 100)\n  };\n})), Pr, ka = h((() => {\n  Ar(), lr(), fa(), ya(), Pr = {\n    test: /* @__PURE__ */ En(\"hsl\", \"hue\"),\n    parse: /* @__PURE__ */ ba(\"hue\", \"saturation\", \"lightness\"),\n    transform: ({ hue: e, saturation: r, lightness: o, alpha: t = 1 }) => \"hsla(\" + Math.round(e) + \", \" + We.transform(eo(r)) + \", \" + We.transform(eo(o)) + \", \" + eo(oo.transform(t)) + \")\"\n  };\n})), ye, Go = h((() => {\n  wa(), ka(), Tn(), ye = {\n    test: (e) => yr.test(e) || Bt.test(e) || Pr.test(e),\n    parse: (e) => yr.test(e) ? yr.parse(e) : Pr.test(e) ? Pr.parse(e) : Bt.parse(e),\n    transform: (e) => typeof e == \"string\" ? e : e.hasOwnProperty(\"red\") ? yr.transform(e) : Pr.transform(e),\n    getAnimatableNone: (e) => {\n      const r = ye.parse(e);\n      return r.alpha = 0, ye.transform(r);\n    }\n  };\n})), Um, G0 = h((() => {\n  Um = /(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))/giu;\n}));\nfunction Y0(e) {\n  return isNaN(e) && typeof e == \"string\" && (e.match(Sn)?.length || 0) + (e.match(Um)?.length || 0) > 0;\n}\nfunction to(e) {\n  const r = e.toString(), o = [], t = {\n    color: [],\n    number: [],\n    var: []\n  }, n = [];\n  let i = 0;\n  return {\n    values: o,\n    split: r.replace(jm, (s) => (ye.test(s) ? (t.color.push(i), n.push(_a), o.push(ye.parse(s))) : s.startsWith(Fm) ? (t.var.push(i), n.push(Bm), o.push(s)) : (t.number.push(i), n.push(xa), o.push(parseFloat(s))), ++i, Zi)).split(Zi),\n    indexes: t,\n    types: n\n  };\n}\nfunction X0(e) {\n  return to(e).values;\n}\nfunction Vm({ split: e, types: r }) {\n  const o = e.length;\n  return (t) => {\n    let n = \"\";\n    for (let i = 0; i < o; i++)\n      if (n += e[i], t[i] !== void 0) {\n        const s = r[i];\n        s === xa ? n += eo(t[i]) : s === _a ? n += ye.transform(t[i]) : n += t[i];\n      }\n    return n;\n  };\n}\nfunction J0(e) {\n  return Vm(to(e));\n}\nfunction Z0(e) {\n  const r = to(e);\n  return Vm(r)(r.values.map((o, t) => $m(o, r.split[t])));\n}\nvar xa, _a, Bm, Fm, Zi, jm, Uc, $m, Fe, tr = h((() => {\n  Go(), G0(), va(), fa(), xa = \"number\", _a = \"color\", Bm = \"var\", Fm = \"var(\", Zi = \"${}\", jm = /var\\s*\\(\\s*--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)|#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\)|-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/giu, Uc = (e) => typeof e == \"number\" ? 0 : ye.test(e) ? ye.getAnimatableNone(e) : e, $m = (e, r) => typeof e == \"number\" ? r?.trim().endsWith(\"/\") ? e : 0 : Uc(e), Fe = {\n    test: Y0,\n    parse: X0,\n    createTransformer: J0,\n    getAnimatableNone: Z0\n  };\n}));\nfunction ki(e, r, o) {\n  return o < 0 && (o += 1), o > 1 && (o -= 1), o < 1 / 6 ? e + (r - e) * 6 * o : o < 1 / 2 ? r : o < 2 / 3 ? e + (r - e) * (2 / 3 - o) * 6 : e;\n}\nfunction Q0({ hue: e, saturation: r, lightness: o, alpha: t }) {\n  e /= 360, r /= 100, o /= 100;\n  let n = 0, i = 0, s = 0;\n  if (!r) n = i = s = o;\n  else {\n    const a = o < 0.5 ? o * (1 + r) : o + r - o * r, d = 2 * o - a;\n    n = ki(d, a, e + 1 / 3), i = ki(d, a, e), s = ki(d, a, e - 1 / 3);\n  }\n  return {\n    red: Math.round(n * 255),\n    green: Math.round(i * 255),\n    blue: Math.round(s * 255),\n    alpha: t\n  };\n}\nvar qm = h((() => {\n}));\nfunction Ft(e, r) {\n  return (o) => o > 0 ? r : e;\n}\nvar Aa = h((() => {\n})), oe, Ye = h((() => {\n  oe = (e, r, o) => e + (r - e) * o;\n}));\nfunction Vc(e) {\n  const r = Wm(e);\n  if (Ko(!!r, `'${e}' is not an animatable color. Use the equivalent color code instead.`, \"color-not-animatable\"), !r) return !1;\n  let o = r.parse(e);\n  return r === Pr && (o = Q0(o)), o;\n}\nvar nt, Bc, Wm, Qi, Hm = h((() => {\n  W(), wa(), ka(), qm(), Tn(), Aa(), Ye(), nt = (e, r, o) => {\n    const t = e * e, n = o * (r * r - t) + t;\n    return n < 0 ? 0 : Math.sqrt(n);\n  }, Bc = [\n    Bt,\n    yr,\n    Pr\n  ], Wm = (e) => Bc.find((r) => r.test(e)), Qi = (e, r) => {\n    const o = Vc(e), t = Vc(r);\n    if (!o || !t) return Ft(e, r);\n    const n = { ...o };\n    return (i) => (n.red = nt(o.red, t.red, i), n.green = nt(o.green, t.green, i), n.blue = nt(o.blue, t.blue, i), n.alpha = oe(o.alpha, t.alpha, i), yr.transform(n));\n  };\n}));\nfunction ek(e, r) {\n  return jt.has(e) ? (o) => o <= 0 ? e : r : (o) => o >= 1 ? r : e;\n}\nvar jt, Km = h((() => {\n  jt = /* @__PURE__ */ new Set([\"none\", \"hidden\"]);\n}));\nfunction rk(e, r) {\n  return (o) => oe(e, r, o);\n}\nfunction Ca(e) {\n  return typeof e == \"number\" ? rk : typeof e == \"string\" ? Cn(e) ? Ft : ye.test(e) ? Qi : Ym : Array.isArray(e) ? Gm : typeof e == \"object\" ? ye.test(e) ? Qi : ok : Ft;\n}\nfunction Gm(e, r) {\n  const o = [...e], t = o.length, n = e.map((i, s) => Ca(i)(i, r[s]));\n  return (i) => {\n    for (let s = 0; s < t; s++) o[s] = n[s](i);\n    return o;\n  };\n}\nfunction ok(e, r) {\n  const o = {\n    ...e,\n    ...r\n  }, t = {};\n  for (const n in o) e[n] !== void 0 && r[n] !== void 0 && (t[n] = Ca(e[n])(e[n], r[n]));\n  return (n) => {\n    for (const i in t) o[i] = t[i](n);\n    return o;\n  };\n}\nfunction tk(e, r) {\n  const o = [], t = {\n    color: 0,\n    var: 0,\n    number: 0\n  };\n  for (let n = 0; n < r.values.length; n++) {\n    const i = r.types[n], s = e.indexes[i][t[i]];\n    o[n] = e.values[s] ?? 0, t[i]++;\n  }\n  return o;\n}\nvar Ym, Xm = h((() => {\n  W(), uo(), Go(), tr(), Hm(), Aa(), Ye(), Km(), Ym = (e, r) => {\n    const o = Fe.createTransformer(r), t = to(e), n = to(r);\n    return t.indexes.var.length === n.indexes.var.length && t.indexes.color.length === n.indexes.color.length && t.indexes.number.length >= n.indexes.number.length ? jt.has(e) && !n.values.length || jt.has(r) && !t.values.length ? ek(e, r) : lo(Gm(tk(t, n), n.values), o) : (Ko(!0, `Complex values '${e}' and '${r}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`, \"complex-values-different\"), Ft(e, r));\n  };\n}));\nfunction Jm(e, r, o) {\n  return typeof e == \"number\" && typeof r == \"number\" && typeof o == \"number\" ? oe(e, r, o) : Ca(e)(e, r);\n}\nvar Sa = h((() => {\n  Xm(), Ye();\n})), Zm, nk = h((() => {\n  cr(), or(), Zm = (e) => {\n    const r = ({ timestamp: o }) => e(o);\n    return {\n      start: (o = !0) => te.update(r, o),\n      stop: () => dr(r),\n      now: () => Ae.isProcessing ? Ae.timestamp : Te.now()\n    };\n  };\n})), Ea, Ta = h((() => {\n  Ea = (e, r, o = 10) => {\n    let t = \"\";\n    const n = Math.max(Math.round(r / o), 2);\n    for (let i = 0; i < n; i++) t += Math.round(e(i / (n - 1)) * 1e4) / 1e4 + \", \";\n    return `linear(${t.substring(0, t.length - 2)})`;\n  };\n}));\nfunction Ra(e) {\n  let r = 0;\n  const o = 50;\n  let t = e.next(r);\n  for (; !t.done && r < 2e4; )\n    r += o, t = e.next(r);\n  return r >= 2e4 ? 1 / 0 : r;\n}\nvar Pa, Rn = h((() => {\n  Pa = 2e4;\n}));\nfunction ik(e, r = 100, o) {\n  const t = o({\n    ...e,\n    keyframes: [0, r]\n  }), n = Math.min(Ra(t), Pa);\n  return {\n    type: \"keyframes\",\n    ease: (i) => t.next(n * i).value / r,\n    duration: Ue(n)\n  };\n}\nvar Qm = h((() => {\n  W(), Rn();\n}));\nfunction es(e, r) {\n  return e * Math.sqrt(1 - r * r);\n}\nfunction sk(e, r, o) {\n  let t = o;\n  for (let n = 1; n < eg; n++) t = t - e(t) / r(t);\n  return t;\n}\nfunction ak({ duration: e = pe.duration, bounce: r = pe.bounce, velocity: o = pe.velocity, mass: t = pe.mass }) {\n  let n, i;\n  Ko(e <= Le(pe.maxDuration), \"Spring duration must be 10 seconds or less\", \"spring-duration-limit\");\n  let s = 1 - r;\n  s = Ge(pe.minDamping, pe.maxDamping, s), e = Ge(pe.minDuration, pe.maxDuration, Ue(e)), s < 1 ? (n = (l) => {\n    const u = l * s, m = u * e, g = u - o, p = es(l, s), f = Math.exp(-m);\n    return rs - g / p * f;\n  }, i = (l) => {\n    const u = l * s * e, m = u * o + o, g = Math.pow(s, 2) * Math.pow(l, 2) * e, p = Math.exp(-u), f = es(Math.pow(l, 2), s);\n    return (-n(l) + rs > 0 ? -1 : 1) * ((m - g) * p) / f;\n  }) : (n = (l) => -1e-3 + Math.exp(-l * e) * ((l - o) * e + 1), i = (l) => Math.exp(-l * e) * ((o - l) * (e * e)));\n  const a = 5 / e, d = sk(n, i, a);\n  if (e = Le(e), isNaN(d)) return {\n    stiffness: pe.stiffness,\n    damping: pe.damping,\n    duration: e\n  };\n  {\n    const l = Math.pow(d, 2) * t;\n    return {\n      stiffness: l,\n      damping: s * 2 * Math.sqrt(t * l),\n      duration: e\n    };\n  }\n}\nfunction Fc(e, r) {\n  return r.some((o) => e[o] !== void 0);\n}\nfunction dk(e) {\n  let r = {\n    velocity: pe.velocity,\n    stiffness: pe.stiffness,\n    damping: pe.damping,\n    mass: pe.mass,\n    isResolvedFromDuration: !1,\n    ...e\n  };\n  if (!Fc(e, og) && Fc(e, rg))\n    if (r.velocity = 0, e.visualDuration) {\n      const o = e.visualDuration, t = 2 * Math.PI / (o * 1.2), n = t * t, i = 2 * Ge(0.05, 1, 1 - (e.bounce || 0)) * Math.sqrt(n);\n      r = {\n        ...r,\n        mass: pe.mass,\n        stiffness: n,\n        damping: i\n      };\n    } else {\n      const o = ak({\n        ...e,\n        velocity: 0\n      });\n      r = {\n        ...r,\n        ...o,\n        mass: pe.mass\n      }, r.isResolvedFromDuration = !0;\n    }\n  return r;\n}\nfunction $t(e = pe.visualDuration, r = pe.bounce) {\n  const o = typeof e != \"object\" ? {\n    visualDuration: e,\n    keyframes: [0, 1],\n    bounce: r\n  } : e;\n  let { restSpeed: t, restDelta: n } = o;\n  const i = o.keyframes[0], s = o.keyframes[o.keyframes.length - 1], a = {\n    done: !1,\n    value: i\n  }, { stiffness: d, damping: l, mass: u, duration: m, velocity: g, isResolvedFromDuration: p } = dk({\n    ...o,\n    velocity: -Ue(o.velocity || 0)\n  }), f = g || 0, v = l / (2 * Math.sqrt(d * u)), x = s - i, w = Ue(Math.sqrt(d / u)), b = Math.abs(x) < 5;\n  t || (t = b ? pe.restSpeed.granular : pe.restSpeed.default), n || (n = b ? pe.restDelta.granular : pe.restDelta.default);\n  let k, y, C, P, S, R;\n  if (v < 1)\n    C = es(w, v), P = (f + v * w * x) / C, k = (E) => s - Math.exp(-v * w * E) * (P * Math.sin(C * E) + x * Math.cos(C * E)), S = v * w * P + x * C, R = v * w * x - P * C, y = (E) => Math.exp(-v * w * E) * (S * Math.sin(C * E) + R * Math.cos(C * E));\n  else if (v === 1) {\n    k = (I) => s - Math.exp(-w * I) * (x + (f + w * x) * I);\n    const E = f + w * x;\n    y = (I) => Math.exp(-w * I) * (w * E * I - f);\n  } else {\n    const E = w * Math.sqrt(v * v - 1);\n    k = (D) => {\n      const z = Math.exp(-v * w * D), $ = Math.min(E * D, 300);\n      return s - z * ((f + v * w * x) * Math.sinh($) + E * x * Math.cosh($)) / E;\n    };\n    const I = (f + v * w * x) / E, L = v * w * I - x * E, M = v * w * x - I * E;\n    y = (D) => {\n      const z = Math.exp(-v * w * D), $ = Math.min(E * D, 300);\n      return z * (L * Math.sinh($) + M * Math.cosh($));\n    };\n  }\n  const A = {\n    calculatedDuration: p && m || null,\n    velocity: (E) => Le(y(E)),\n    next: (E) => {\n      if (!p && v < 1) {\n        const L = Math.exp(-v * w * E), M = Math.sin(C * E), D = Math.cos(C * E), z = s - L * (P * M + x * D), $ = Le(L * (S * M + R * D));\n        return a.done = Math.abs($) <= t && Math.abs(s - z) <= n, a.value = a.done ? s : z, a;\n      }\n      const I = k(E);\n      if (p)\n        a.done = E >= m;\n      else {\n        const L = Le(y(E));\n        a.done = Math.abs(L) <= t && Math.abs(s - I) <= n;\n      }\n      return a.value = a.done ? s : I, a;\n    },\n    toString: () => {\n      const E = Math.min(Ra(A), Pa), I = Ea((L) => A.next(E * L).value, E, 30);\n      return E + \"ms \" + I;\n    },\n    toTransition: () => {\n    }\n  };\n  return A;\n}\nvar pe, eg, rs, rg, og, La = h((() => {\n  W(), Ta(), Rn(), Qm(), pe = {\n    stiffness: 100,\n    damping: 10,\n    mass: 1,\n    velocity: 0,\n    duration: 800,\n    bounce: 0.3,\n    visualDuration: 0.3,\n    restSpeed: {\n      granular: 0.01,\n      default: 2\n    },\n    restDelta: {\n      granular: 5e-3,\n      default: 0.5\n    },\n    minDuration: 0.01,\n    maxDuration: 10,\n    minDamping: 0.05,\n    maxDamping: 1\n  }, eg = 12, rs = 1e-3, rg = [\"duration\", \"bounce\"], og = [\n    \"stiffness\",\n    \"damping\",\n    \"mass\"\n  ], $t.applyToOptions = (e) => {\n    const r = ik(e, 100, $t);\n    return e.ease = r.ease, e.duration = Le(r.duration), e.type = \"keyframes\", e;\n  };\n}));\nfunction tg(e, r, o) {\n  const t = Math.max(r - ng, 0);\n  return ra(o - e(t), r - t);\n}\nvar ng, ig = h((() => {\n  W(), ng = 5;\n}));\nfunction os({ keyframes: e, velocity: r = 0, power: o = 0.8, timeConstant: t = 325, bounceDamping: n = 10, bounceStiffness: i = 500, modifyTarget: s, min: a, max: d, restDelta: l = 0.5, restSpeed: u }) {\n  const m = e[0], g = {\n    done: !1,\n    value: m\n  }, p = (R) => a !== void 0 && R < a || d !== void 0 && R > d, f = (R) => a === void 0 ? d : d === void 0 || Math.abs(a - R) < Math.abs(d - R) ? a : d;\n  let v = o * r;\n  const x = m + v, w = s === void 0 ? x : s(x);\n  w !== x && (v = w - m);\n  const b = (R) => -v * Math.exp(-R / t), k = (R) => w + b(R), y = (R) => {\n    const A = b(R), E = k(R);\n    g.done = Math.abs(A) <= l, g.value = g.done ? w : E;\n  };\n  let C, P;\n  const S = (R) => {\n    p(g.value) && (C = R, P = $t({\n      keyframes: [g.value, f(g.value)],\n      velocity: tg(k, R, g.value),\n      damping: n,\n      stiffness: i,\n      restDelta: l,\n      restSpeed: u\n    }));\n  };\n  return S(0), {\n    calculatedDuration: null,\n    next: (R) => {\n      let A = !1;\n      return !P && C === void 0 && (A = !0, y(R), S(R)), C !== void 0 && R >= C ? P.next(R - C) : (!A && y(R), g);\n    }\n  };\n}\nvar Na = h((() => {\n  La(), ig();\n}));\nfunction ck(e, r, o) {\n  const t = [], n = o || ar.mix || Jm, i = e.length - 1;\n  for (let s = 0; s < i; s++) {\n    let a = n(e[s], e[s + 1]);\n    r && (a = lo(Array.isArray(r) ? r[s] || Ve : r, a)), t.push(a);\n  }\n  return t;\n}\nfunction lk(e, r, { clamp: o = !0, ease: t, mixer: n } = {}) {\n  const i = e.length;\n  if (zr(i === r.length, \"Both input and output ranges must be the same length\", \"range-length\"), i === 1) return () => r[0];\n  if (i === 2 && r[0] === r[1]) return () => r[1];\n  const s = e[0] === e[1];\n  e[0] > e[i - 1] && (e = [...e].reverse(), r = [...r].reverse());\n  const a = ck(r, t, n), d = a.length, l = (u) => {\n    if (s && u < e[0]) return r[0];\n    let m = 0;\n    if (d > 1)\n      for (; m < e.length - 2 && !(u < e[m + 1]); m++) ;\n    const g = ro(e[m], e[m + 1], u);\n    return a[m](g);\n  };\n  return o ? (u) => l(Ge(e[0], e[i - 1], u)) : l;\n}\nvar sg = h((() => {\n  W(), Sa();\n}));\nfunction uk(e, r) {\n  const o = e[e.length - 1];\n  for (let t = 1; t <= r; t++) {\n    const n = ro(0, r, t);\n    e.push(oe(o, 1, n));\n  }\n}\nvar ag = h((() => {\n  W(), Ye();\n}));\nfunction mk(e) {\n  const r = [0];\n  return uk(r, e.length - 1), r;\n}\nvar dg = h((() => {\n  ag();\n}));\nfunction gk(e, r) {\n  return e.map((o) => o * r);\n}\nvar cg = h((() => {\n}));\nfunction hk(e, r) {\n  return e.map(() => r || ma).splice(0, e.length - 1);\n}\nfunction xo({ duration: e = 300, keyframes: r, times: o, ease: t = \"easeInOut\" }) {\n  const n = Pm(t) ? t.map(Xi) : Xi(t), i = {\n    done: !1,\n    value: r[0]\n  }, s = lk(gk(o && o.length === r.length ? o : mk(r), e), r, { ease: Array.isArray(n) ? n : hk(r, n) });\n  return {\n    calculatedDuration: e,\n    next: (a) => (i.value = s(a), i.done = a >= e, i)\n  };\n}\nvar Ia = h((() => {\n  W(), sg(), dg(), cg();\n}));\nfunction Pn(e, { repeat: r, repeatType: o = \"loop\" }, t, n = 1) {\n  const i = e.filter(lg), s = n < 0 || r && o !== \"loop\" && r % 2 === 1 ? 0 : i.length - 1;\n  return !s || t === void 0 ? i[s] : t;\n}\nvar lg, Yo = h((() => {\n  lg = (e) => e !== null;\n}));\nfunction ug(e) {\n  typeof e.type == \"string\" && (e.type = mg[e.type]);\n}\nvar mg, gg = h((() => {\n  Na(), Ia(), La(), mg = {\n    decay: os,\n    inertia: os,\n    tween: xo,\n    keyframes: xo,\n    spring: $t\n  };\n})), Ln, Ma = h((() => {\n  Ln = class {\n    constructor() {\n      this.updateFinished();\n    }\n    get finished() {\n      return this._finished;\n    }\n    updateFinished() {\n      this._finished = new Promise((e) => {\n        this.resolve = e;\n      });\n    }\n    notifyFinished() {\n      this.resolve();\n    }\n    then(e, r) {\n      return this.finished.then(e, r);\n    }\n  };\n})), jc, Io, Nn = h((() => {\n  W(), cr(), Sa(), nk(), Na(), Ia(), Rn(), ig(), Yo(), gg(), Ma(), jc = (e) => e / 100, Io = class extends Ln {\n    constructor(e) {\n      super(), this.state = \"idle\", this.startTime = null, this.isStopped = !1, this.currentTime = 0, this.holdTime = null, this.playbackSpeed = 1, this.delayState = {\n        done: !1,\n        value: void 0\n      }, this.stop = () => {\n        const { motionValue: r } = this.options;\n        r && r.updatedAt !== Te.now() && this.tick(Te.now()), this.isStopped = !0, this.state !== \"idle\" && (this.teardown(), this.options.onStop?.());\n      }, this.options = e, this.initAnimation(), this.play(), e.autoplay === !1 && this.pause();\n    }\n    initAnimation() {\n      const { options: e } = this;\n      ug(e);\n      const { type: r = xo, repeat: o = 0, repeatDelay: t = 0, repeatType: n, velocity: i = 0 } = e;\n      let { keyframes: s } = e;\n      const a = r || xo;\n      a !== xo && typeof s[0] != \"number\" && (this.mixKeyframes = lo(jc, Jm(s[0], s[1])), s = [0, 100]);\n      const d = a({\n        ...e,\n        keyframes: s\n      });\n      n === \"mirror\" && (this.mirroredGenerator = a({\n        ...e,\n        keyframes: [...s].reverse(),\n        velocity: -i\n      })), d.calculatedDuration === null && (d.calculatedDuration = Ra(d));\n      const { calculatedDuration: l } = d;\n      this.calculatedDuration = l, this.resolvedDuration = l + t, this.totalDuration = this.resolvedDuration * (o + 1) - t, this.generator = d;\n    }\n    updateTime(e) {\n      const r = Math.round(e - this.startTime) * this.playbackSpeed;\n      this.holdTime !== null ? this.currentTime = this.holdTime : this.currentTime = r;\n    }\n    tick(e, r = !1) {\n      const { generator: o, totalDuration: t, mixKeyframes: n, mirroredGenerator: i, resolvedDuration: s, calculatedDuration: a } = this;\n      if (this.startTime === null) return o.next(0);\n      const { delay: d = 0, keyframes: l, repeat: u, repeatType: m, repeatDelay: g, type: p, onUpdate: f, finalKeyframe: v } = this.options;\n      this.speed > 0 ? this.startTime = Math.min(this.startTime, e) : this.speed < 0 && (this.startTime = Math.min(e - t / this.speed, this.startTime)), r ? this.currentTime = e : this.updateTime(e);\n      const x = this.currentTime - d * (this.playbackSpeed >= 0 ? 1 : -1), w = this.playbackSpeed >= 0 ? x < 0 : x > t;\n      this.currentTime = Math.max(x, 0), this.state === \"finished\" && this.holdTime === null && (this.currentTime = t);\n      let b = this.currentTime, k = o;\n      if (u) {\n        const S = Math.min(this.currentTime, t) / s;\n        let R = Math.floor(S), A = S % 1;\n        !A && S >= 1 && (A = 1), A === 1 && R--, R = Math.min(R, u + 1), R % 2 && (m === \"reverse\" ? (A = 1 - A, g && (A -= g / s)) : m === \"mirror\" && (k = i)), b = Ge(0, 1, A) * s;\n      }\n      let y;\n      w ? (this.delayState.value = l[0], y = this.delayState) : y = k.next(b), n && !w && (y.value = n(y.value));\n      let { done: C } = y;\n      !w && a !== null && (C = this.playbackSpeed >= 0 ? this.currentTime >= t : this.currentTime <= 0);\n      const P = this.holdTime === null && (this.state === \"finished\" || this.state === \"running\" && C);\n      return P && p !== os && (y.value = Pn(l, this.options, v, this.speed)), f && f(y.value), P && this.finish(), y;\n    }\n    then(e, r) {\n      return this.finished.then(e, r);\n    }\n    get duration() {\n      return Ue(this.calculatedDuration);\n    }\n    get iterationDuration() {\n      const { delay: e = 0 } = this.options || {};\n      return this.duration + Ue(e);\n    }\n    get time() {\n      return Ue(this.currentTime);\n    }\n    set time(e) {\n      e = Le(e), this.currentTime = e, this.startTime === null || this.holdTime !== null || this.playbackSpeed === 0 ? this.holdTime = e : this.driver && (this.startTime = this.driver.now() - e / this.playbackSpeed), this.driver ? this.driver.start(!1) : (this.startTime = 0, this.state = \"paused\", this.holdTime = e, this.tick(e));\n    }\n    getGeneratorVelocity() {\n      const e = this.currentTime;\n      if (e <= 0) return this.options.velocity || 0;\n      if (this.generator.velocity) return this.generator.velocity(e);\n      const r = this.generator.next(e).value;\n      return tg((o) => this.generator.next(o).value, e, r);\n    }\n    get speed() {\n      return this.playbackSpeed;\n    }\n    set speed(e) {\n      const r = this.playbackSpeed !== e;\n      r && this.driver && this.updateTime(Te.now()), this.playbackSpeed = e, r && this.driver && (this.time = Ue(this.currentTime));\n    }\n    play() {\n      if (this.isStopped) return;\n      const { driver: e = Zm, startTime: r } = this.options;\n      this.driver || (this.driver = e((t) => this.tick(t))), this.options.onPlay?.();\n      const o = this.driver.now();\n      this.state === \"finished\" ? (this.updateFinished(), this.startTime = o) : this.holdTime !== null ? this.startTime = o - this.holdTime : this.startTime || (this.startTime = r ?? o), this.state === \"finished\" && this.speed < 0 && (this.startTime += this.calculatedDuration), this.holdTime = null, this.state = \"running\", this.driver.start();\n    }\n    pause() {\n      this.state = \"paused\", this.updateTime(Te.now()), this.holdTime = this.currentTime;\n    }\n    complete() {\n      this.state !== \"running\" && this.play(), this.state = \"finished\", this.holdTime = null;\n    }\n    finish() {\n      this.notifyFinished(), this.teardown(), this.state = \"finished\", this.options.onComplete?.();\n    }\n    cancel() {\n      this.holdTime = null, this.startTime = 0, this.tick(0), this.teardown(), this.options.onCancel?.();\n    }\n    teardown() {\n      this.state = \"idle\", this.stopDriver(), this.startTime = this.holdTime = null;\n    }\n    stopDriver() {\n      this.driver && (this.driver.stop(), this.driver = void 0);\n    }\n    sample(e) {\n      return this.startTime = 0, this.tick(e, !0);\n    }\n    attachTimeline(e) {\n      return this.options.allowFlatten && (this.options.type = \"keyframes\", this.options.ease = \"linear\", this.initAnimation()), this.driver?.stop(), e.observe(this);\n    }\n  };\n}));\nfunction pk(e) {\n  for (let r = 1; r < e.length; r++) e[r] ?? (e[r] = e[r - 1]);\n}\nvar hg = h((() => {\n}));\nfunction ts(e) {\n  return e.includes(\"scale\") ? 1 : 0;\n}\nfunction ns(e, r) {\n  if (!e || e === \"none\") return ts(r);\n  const o = e.match(/^matrix3d\\(([-\\d.e\\s,]+)\\)$/u);\n  let t, n;\n  if (o)\n    t = fg, n = o;\n  else {\n    const a = e.match(/^matrix\\(([-\\d.e\\s,]+)\\)$/u);\n    t = pg, n = a;\n  }\n  if (!n) return ts(r);\n  const i = t[r], s = n[1].split(\",\").map(fk);\n  return typeof i == \"function\" ? i(s) : s[i];\n}\nfunction fk(e) {\n  return parseFloat(e.trim());\n}\nvar gr, it, pg, st, xi, _i, Ai, fg, vg, Da = h((() => {\n  gr = (e) => e * 180 / Math.PI, it = (e) => st(gr(Math.atan2(e[1], e[0]))), pg = {\n    x: 4,\n    y: 5,\n    translateX: 4,\n    translateY: 5,\n    scaleX: 0,\n    scaleY: 3,\n    scale: (e) => (Math.abs(e[0]) + Math.abs(e[3])) / 2,\n    rotate: it,\n    rotateZ: it,\n    skewX: (e) => gr(Math.atan(e[1])),\n    skewY: (e) => gr(Math.atan(e[2])),\n    skew: (e) => (Math.abs(e[1]) + Math.abs(e[2])) / 2\n  }, st = (e) => (e = e % 360, e < 0 && (e += 360), e), xi = it, _i = (e) => Math.sqrt(e[0] * e[0] + e[1] * e[1]), Ai = (e) => Math.sqrt(e[4] * e[4] + e[5] * e[5]), fg = {\n    x: 12,\n    y: 13,\n    z: 14,\n    translateX: 12,\n    translateY: 13,\n    translateZ: 14,\n    scaleX: _i,\n    scaleY: Ai,\n    scale: (e) => (_i(e) + Ai(e)) / 2,\n    rotateX: (e) => st(gr(Math.atan2(e[6], e[5]))),\n    rotateY: (e) => st(gr(Math.atan2(-e[2], e[0]))),\n    rotateZ: xi,\n    rotate: xi,\n    skewX: (e) => gr(Math.atan(e[4])),\n    skewY: (e) => gr(Math.atan(e[1])),\n    skew: (e) => (Math.abs(e[1]) + Math.abs(e[4])) / 2\n  }, vg = (e, r) => {\n    const { transform: o = \"none\" } = getComputedStyle(e);\n    return ns(o, r);\n  };\n})), Or, Br, Xe = h((() => {\n  Or = [\n    \"transformPerspective\",\n    \"x\",\n    \"y\",\n    \"z\",\n    \"translateX\",\n    \"translateY\",\n    \"translateZ\",\n    \"scale\",\n    \"scaleX\",\n    \"scaleY\",\n    \"rotate\",\n    \"rotateX\",\n    \"rotateY\",\n    \"rotateZ\",\n    \"skew\",\n    \"skewX\",\n    \"skewY\"\n  ], Br = /* @__PURE__ */ new Set([...Or, \"pathRotation\"]);\n}));\nfunction vk(e) {\n  const r = [];\n  return bg.forEach((o) => {\n    const t = e.getValue(o);\n    t !== void 0 && (r.push([o, t.get()]), t.set(o.startsWith(\"scale\") ? 1 : 0));\n  }), r;\n}\nvar is, $c, bg, ir, yg = h((() => {\n  Da(), Xe(), Ar(), lr(), is = (e) => e === Mr || e === U, $c = /* @__PURE__ */ new Set([\n    \"x\",\n    \"y\",\n    \"z\"\n  ]), bg = Or.filter((e) => !$c.has(e)), ir = {\n    width: ({ x: e }, { paddingLeft: r = \"0\", paddingRight: o = \"0\", boxSizing: t }) => {\n      const n = e.max - e.min;\n      return t === \"border-box\" ? n : n - parseFloat(r) - parseFloat(o);\n    },\n    height: ({ y: e }, { paddingTop: r = \"0\", paddingBottom: o = \"0\", boxSizing: t }) => {\n      const n = e.max - e.min;\n      return t === \"border-box\" ? n : n - parseFloat(r) - parseFloat(o);\n    },\n    top: (e, { top: r }) => parseFloat(r),\n    left: (e, { left: r }) => parseFloat(r),\n    bottom: ({ y: e }, { top: r }) => parseFloat(r) + (e.max - e.min),\n    right: ({ x: e }, { left: r }) => parseFloat(r) + (e.max - e.min),\n    x: (e, { transform: r }) => ns(r, \"x\"),\n    y: (e, { transform: r }) => ns(r, \"y\")\n  }, ir.translateX = ir.x, ir.translateY = ir.y;\n}));\nfunction wg() {\n  if (qt) {\n    const e = Array.from(wr).filter((t) => t.needsMeasurement), r = new Set(e.map((t) => t.element)), o = /* @__PURE__ */ new Map();\n    r.forEach((t) => {\n      const n = vk(t);\n      n.length && (o.set(t, n), t.render());\n    }), e.forEach((t) => t.measureInitialState()), r.forEach((t) => {\n      t.render();\n      const n = o.get(t);\n      n && n.forEach(([i, s]) => {\n        t.getValue(i)?.set(s);\n      });\n    }), e.forEach((t) => t.measureEndState()), e.forEach((t) => {\n      t.suspendedScrollY !== void 0 && window.scrollTo(0, t.suspendedScrollY);\n    });\n  }\n  qt = !1, kt = !1, wr.forEach((e) => e.complete(Wt)), wr.clear();\n}\nfunction kg() {\n  wr.forEach((e) => {\n    e.readKeyframes(), e.needsMeasurement && (qt = !0);\n  });\n}\nfunction bk() {\n  Wt = !0, kg(), wg(), Wt = !1;\n}\nvar wr, kt, qt, Wt, In, Mn = h((() => {\n  hg(), yg(), or(), wr = /* @__PURE__ */ new Set(), kt = !1, qt = !1, Wt = !1, In = class {\n    constructor(e, r, o, t, n, i = !1) {\n      this.state = \"pending\", this.isAsync = !1, this.needsMeasurement = !1, this.unresolvedKeyframes = [...e], this.onComplete = r, this.name = o, this.motionValue = t, this.element = n, this.isAsync = i;\n    }\n    scheduleResolve() {\n      this.state = \"scheduled\", this.isAsync ? (wr.add(this), kt || (kt = !0, te.read(kg), te.resolveKeyframes(wg))) : (this.readKeyframes(), this.complete());\n    }\n    readKeyframes() {\n      const { unresolvedKeyframes: e, name: r, element: o, motionValue: t } = this;\n      if (e[0] === null) {\n        const n = t?.get(), i = e[e.length - 1];\n        if (n !== void 0) e[0] = n;\n        else if (o && r) {\n          const s = o.readValue(r, i);\n          s != null && (e[0] = s);\n        }\n        e[0] === void 0 && (e[0] = i), t && n === void 0 && t.set(e[0]);\n      }\n      pk(e);\n    }\n    setFinalKeyframe() {\n    }\n    measureInitialState() {\n    }\n    renderEndStyles() {\n    }\n    measureEndState() {\n    }\n    complete(e = !1) {\n      this.state = \"complete\", this.onComplete(this.unresolvedKeyframes, this.finalKeyframe, e), wr.delete(this);\n    }\n    cancel() {\n      this.state === \"scheduled\" && (wr.delete(this), this.state = \"pending\");\n    }\n    resume() {\n      this.state === \"pending\" && this.scheduleResolve();\n    }\n  };\n})), xg, _g = h((() => {\n  xg = (e) => e.startsWith(\"--\");\n}));\nfunction Ag(e, r, o) {\n  xg(r) ? e.style.setProperty(r, o) : e.style[r] = o;\n}\nvar za = h((() => {\n  _g();\n})), Cg, Sg = h((() => {\n  Cg = {};\n}));\nfunction Eg(e, r) {\n  const o = /* @__PURE__ */ xm(e);\n  return () => Cg[r] ?? o();\n}\nvar Tg = h((() => {\n  W(), Sg();\n})), Rg, Pg = h((() => {\n  Tg(), Rg = /* @__PURE__ */ Eg(() => window.ScrollTimeline !== void 0, \"scrollTimeline\");\n})), Oa, Ua = h((() => {\n  Tg(), Oa = /* @__PURE__ */ Eg(() => {\n    try {\n      document.createElement(\"div\").animate({ opacity: 0 }, { easing: \"linear(0, 1)\" });\n    } catch {\n      return !1;\n    }\n    return !0;\n  }, \"linearEasing\");\n})), Zr, Va = h((() => {\n  Zr = ([e, r, o, t]) => `cubic-bezier(${e}, ${r}, ${o}, ${t})`;\n})), ss, Lg = h((() => {\n  Va(), ss = {\n    linear: \"linear\",\n    ease: \"ease\",\n    easeIn: \"ease-in\",\n    easeOut: \"ease-out\",\n    easeInOut: \"ease-in-out\",\n    circIn: /* @__PURE__ */ Zr([\n      0,\n      0.65,\n      0.55,\n      1\n    ]),\n    circOut: /* @__PURE__ */ Zr([\n      0.55,\n      0,\n      1,\n      0.45\n    ]),\n    backIn: /* @__PURE__ */ Zr([\n      0.31,\n      0.01,\n      0.66,\n      -0.59\n    ]),\n    backOut: /* @__PURE__ */ Zr([\n      0.33,\n      1.53,\n      0.69,\n      0.99\n    ])\n  };\n}));\nfunction Ng(e, r) {\n  if (e) return typeof e == \"function\" ? Oa() ? Ea(e, r) : \"ease-out\" : ga(e) ? Zr(e) : Array.isArray(e) ? e.map((o) => Ng(o, r) || ss.easeOut) : ss[e];\n}\nvar Ig = h((() => {\n  W(), Ua(), Ta(), Va(), Lg();\n}));\nfunction yk(e, r, o, { delay: t = 0, duration: n = 300, repeat: i = 0, repeatType: s = \"loop\", ease: a = \"easeOut\", times: d } = {}, l = void 0) {\n  const u = { [r]: o };\n  d && (u.offset = d);\n  const m = Ng(a, n);\n  Array.isArray(m) && (u.easing = m);\n  const g = {\n    delay: t,\n    duration: n,\n    easing: Array.isArray(m) ? \"linear\" : m,\n    fill: \"both\",\n    iterations: i + 1,\n    direction: s === \"reverse\" ? \"alternate\" : \"normal\"\n  };\n  return l && (g.pseudoElement = l), e.animate(u, g);\n}\nvar Mg = h((() => {\n  Ig();\n}));\nfunction Dg(e) {\n  return typeof e == \"function\" && \"applyToOptions\" in e;\n}\nvar Ba = h((() => {\n}));\nfunction wk({ type: e, ...r }) {\n  return Dg(e) && Oa() ? e.applyToOptions(r) : (r.duration ?? (r.duration = 300), r.ease ?? (r.ease = \"easeOut\"), r);\n}\nvar zg = h((() => {\n  Ua(), Ba();\n})), Fa, ja = h((() => {\n  W(), za(), Pg(), Yo(), Ma(), Mg(), zg(), Fa = class extends Ln {\n    constructor(e) {\n      if (super(), this.finishedTime = null, this.isStopped = !1, this.manualStartTime = null, !e) return;\n      const { element: r, name: o, keyframes: t, pseudoElement: n, allowFlatten: i = !1, finalKeyframe: s, onComplete: a } = e;\n      this.isPseudoElement = !!n, this.allowFlatten = i, this.options = e, zr(typeof e.type != \"string\", `Mini animate() doesn't support \"type\" as a string.`, \"mini-spring\");\n      const d = wk(e);\n      this.animation = yk(r, o, t, d, n), d.autoplay === !1 && this.animation.pause(), this.animation.onfinish = () => {\n        if (this.finishedTime = this.time, !n) {\n          const l = Pn(t, this.options, s, this.speed);\n          this.updateMotionValue && this.updateMotionValue(l), Ag(r, o, l), this.animation.cancel();\n        }\n        a?.(), this.notifyFinished();\n      };\n    }\n    play() {\n      this.isStopped || (this.manualStartTime = null, this.animation.play(), this.state === \"finished\" && this.updateFinished());\n    }\n    pause() {\n      this.animation.pause();\n    }\n    complete() {\n      this.animation.finish?.();\n    }\n    cancel() {\n      try {\n        this.animation.cancel();\n      } catch {\n      }\n    }\n    stop() {\n      if (this.isStopped) return;\n      this.isStopped = !0;\n      const { state: e } = this;\n      e === \"idle\" || e === \"finished\" || (this.updateMotionValue ? this.updateMotionValue() : this.commitStyles(), this.isPseudoElement || this.cancel());\n    }\n    commitStyles() {\n      const e = this.options?.element;\n      !this.isPseudoElement && e?.isConnected && this.animation.commitStyles?.();\n    }\n    get duration() {\n      const e = this.animation.effect?.getComputedTiming?.().duration || 0;\n      return Ue(Number(e));\n    }\n    get iterationDuration() {\n      const { delay: e = 0 } = this.options || {};\n      return this.duration + Ue(e);\n    }\n    get time() {\n      return Ue(Number(this.animation.currentTime) || 0);\n    }\n    set time(e) {\n      const r = this.finishedTime !== null;\n      this.manualStartTime = null, this.finishedTime = null, this.animation.currentTime = Le(e), r && this.animation.pause();\n    }\n    get speed() {\n      return this.animation.playbackRate;\n    }\n    set speed(e) {\n      e < 0 && (this.finishedTime = null), this.animation.playbackRate = e;\n    }\n    get state() {\n      return this.finishedTime !== null ? \"finished\" : this.animation.playState;\n    }\n    get startTime() {\n      return this.manualStartTime ?? Number(this.animation.startTime);\n    }\n    set startTime(e) {\n      this.manualStartTime = this.animation.startTime = e;\n    }\n    attachTimeline({ timeline: e, rangeStart: r, rangeEnd: o, observe: t }) {\n      return this.allowFlatten && this.animation.effect?.updateTiming({ easing: \"linear\" }), this.animation.onfinish = null, e && Rg() ? (this.animation.timeline = e, r && (this.animation.rangeStart = r), o && (this.animation.rangeEnd = o), Ve) : t(this);\n    }\n  };\n}));\nfunction kk(e) {\n  return e in $a;\n}\nfunction xk(e) {\n  typeof e.ease == \"string\" && kk(e.ease) && (e.ease = $a[e.ease]);\n}\nvar $a, _k = h((() => {\n  W(), $a = {\n    anticipate: ca,\n    backInOut: aa,\n    circInOut: ua\n  };\n})), at, Og, Ug = h((() => {\n  W(), cr(), za(), Nn(), ja(), gg(), _k(), at = 10, Og = class extends Fa {\n    constructor(e) {\n      xk(e), ug(e), super(e), e.startTime !== void 0 && e.autoplay !== !1 && (this.startTime = e.startTime), this.options = e;\n    }\n    updateMotionValue(e) {\n      const { motionValue: r, onUpdate: o, onComplete: t, element: n, ...i } = this.options;\n      if (!r) return;\n      if (e !== void 0) {\n        r.set(e);\n        return;\n      }\n      const s = new Io({\n        ...i,\n        autoplay: !1\n      }), a = Math.max(at, Te.now() - this.startTime), d = Ge(0, at, a - at), l = s.sample(a).value, { name: u } = this.options;\n      n && u && Ag(n, u, l), r.setWithVelocity(s.sample(Math.max(0, a - d)).value, l, d), s.stop();\n    }\n  };\n})), as, Ak = h((() => {\n  tr(), as = (e, r) => r === \"zIndex\" ? !1 : !!(typeof e == \"number\" || Array.isArray(e) || typeof e == \"string\" && (Fe.test(e) || e === \"0\") && !e.startsWith(\"url(\"));\n}));\nfunction Ck(e) {\n  const r = e[0];\n  if (e.length === 1) return !0;\n  for (let o = 0; o < e.length; o++) if (e[o] !== r) return !0;\n}\nfunction Sk(e, r, o, t) {\n  const n = e[0];\n  if (n === null) return !1;\n  if (r === \"display\" || r === \"visibility\") return !0;\n  const i = e[e.length - 1], s = as(n, r), a = as(i, r);\n  return Ko(s === a, `You are trying to animate ${r} from \"${n}\" to \"${i}\". \"${s ? i : n}\" is not an animatable value.`, \"value-not-animatable\"), !s || !a ? !1 : Ck(e) || (o === \"spring\" || Dg(o)) && t;\n}\nvar Ek = h((() => {\n  W(), Ba(), Ak();\n}));\nfunction ds(e) {\n  e.duration = 0, e.type = \"keyframes\";\n}\nvar qa = h((() => {\n})), Wa, Ha = h((() => {\n  Wa = /* @__PURE__ */ new Set([\n    \"opacity\",\n    \"clipPath\",\n    \"filter\",\n    \"transform\"\n  ]);\n}));\nfunction Tk(e) {\n  for (let r = 0; r < e.length; r++) if (typeof e[r] == \"string\" && Vg.test(e[r])) return !0;\n  return !1;\n}\nvar Vg, Rk = h((() => {\n  Vg = /^(?:oklch|oklab|lab|lch|color|color-mix|light-dark)\\(/;\n}));\nfunction Pk(e) {\n  const { motionValue: r, name: o, repeatDelay: t, repeatType: n, damping: i, type: s, keyframes: a } = e;\n  if (!(r?.owner?.current instanceof HTMLElement)) return !1;\n  const { onUpdate: d, transformTemplate: l } = r.owner.getProps();\n  return Fg() && o && (Wa.has(o) || Bg.has(o) && Tk(a)) && (o !== \"transform\" || !l) && !d && !t && n !== \"mirror\" && i !== 0 && s !== \"inertia\";\n}\nvar Bg, Fg, jg = h((() => {\n  W(), Ha(), Rk(), Bg = /* @__PURE__ */ new Set([\n    \"color\",\n    \"backgroundColor\",\n    \"outlineColor\",\n    \"fill\",\n    \"stroke\",\n    \"borderColor\",\n    \"borderTopColor\",\n    \"borderRightColor\",\n    \"borderBottomColor\",\n    \"borderLeftColor\"\n  ]), Fg = /* @__PURE__ */ xm(() => Object.hasOwnProperty.call(Element.prototype, \"animate\"));\n})), qc, $g, qg = h((() => {\n  W(), cr(), Nn(), Yo(), Mn(), Ug(), Ek(), qa(), Ma(), jg(), qc = 40, $g = class extends Ln {\n    constructor({ autoplay: e = !0, delay: r = 0, type: o = \"keyframes\", repeat: t = 0, repeatDelay: n = 0, repeatType: i = \"loop\", keyframes: s, name: a, motionValue: d, element: l, ...u }) {\n      super(), this.stop = () => {\n        this._animation && (this._animation.stop(), this.stopTimeline?.()), this.keyframeResolver?.cancel();\n      }, this.createdAt = Te.now();\n      const m = {\n        autoplay: e,\n        delay: r,\n        type: o,\n        repeat: t,\n        repeatDelay: n,\n        repeatType: i,\n        name: a,\n        motionValue: d,\n        element: l,\n        ...u\n      }, g = l?.KeyframeResolver || In;\n      this.keyframeResolver = new g(s, (p, f, v) => this.onKeyframesResolved(p, f, m, !v), a, d, l), this.keyframeResolver?.scheduleResolve();\n    }\n    onKeyframesResolved(e, r, o, t) {\n      this.keyframeResolver = void 0;\n      const { name: n, type: i, velocity: s, delay: a, isHandoff: d, onUpdate: l } = o;\n      this.resolvedAt = Te.now();\n      let u = !0;\n      Sk(e, n, i, s) || (u = !1, (ar.instantAnimations || !a) && l?.(Pn(e, o, r)), e[0] = e[e.length - 1], ds(o), o.repeat = 0);\n      const m = {\n        startTime: t ? this.resolvedAt ? this.resolvedAt - this.createdAt > qc ? this.resolvedAt : this.createdAt : this.createdAt : void 0,\n        finalKeyframe: r,\n        ...o,\n        keyframes: e\n      }, g = u && !d && Pk(m), p = m.motionValue?.owner?.current;\n      let f;\n      if (g) try {\n        f = new Og({\n          ...m,\n          element: p\n        });\n      } catch {\n        f = new Io(m);\n      }\n      else f = new Io(m);\n      f.finished.then(() => {\n        this.notifyFinished();\n      }).catch(Ve), this.pendingTimeline && (this.stopTimeline = f.attachTimeline(this.pendingTimeline), this.pendingTimeline = void 0), this._animation = f;\n    }\n    get finished() {\n      return this._animation ? this.animation.finished : this._finished;\n    }\n    then(e, r) {\n      return this.finished.finally(e).then(() => {\n      });\n    }\n    get animation() {\n      return this._animation || (this.keyframeResolver?.resume(), bk()), this._animation;\n    }\n    get duration() {\n      return this.animation.duration;\n    }\n    get iterationDuration() {\n      return this.animation.iterationDuration;\n    }\n    get time() {\n      return this.animation.time;\n    }\n    set time(e) {\n      this.animation.time = e;\n    }\n    get speed() {\n      return this.animation.speed;\n    }\n    get state() {\n      return this.animation.state;\n    }\n    set speed(e) {\n      this.animation.speed = e;\n    }\n    get startTime() {\n      return this.animation.startTime;\n    }\n    attachTimeline(e) {\n      return this._animation ? this.stopTimeline = this.animation.attachTimeline(e) : this.pendingTimeline = e, () => this.stop();\n    }\n    play() {\n      this.animation.play();\n    }\n    pause() {\n      this.animation.pause();\n    }\n    complete() {\n      this.animation.complete();\n    }\n    cancel() {\n      this._animation && this.animation.cancel(), this.keyframeResolver?.cancel();\n    }\n  };\n}));\nfunction Wg(e, r, o, t = 0, n = 1) {\n  const i = Array.from(e).sort((d, l) => d.sortNodePosition(l)).indexOf(r), s = e.size, a = (s - 1) * t;\n  return typeof o == \"function\" ? o(i, s) : n === 1 ? i * t : a - i * t;\n}\nvar Ka = h((() => {\n}));\nfunction no(e, r) {\n  return new Hg(e, r);\n}\nvar Ci, Wc, Si, Hg, mo = h((() => {\n  W(), cr(), or(), Ci = 30, Wc = (e) => !isNaN(parseFloat(e)), Si = { current: void 0 }, Hg = class {\n    constructor(e, r = {}) {\n      this.canTrackVelocity = null, this.events = {}, this.updateAndNotify = (o) => {\n        const t = Te.now();\n        if (this.updatedAt !== t && this.setPrevFrameValue(), this.prev = this.current, this.setCurrent(o), this.current !== this.prev && (this.events.change?.notify(this.current), this.dependents))\n          for (const n of this.dependents) n.dirty();\n      }, this.hasAnimated = !1, this.setCurrent(e), this.owner = r.owner;\n    }\n    setCurrent(e) {\n      this.current = e, this.updatedAt = Te.now(), this.canTrackVelocity === null && e !== void 0 && (this.canTrackVelocity = Wc(this.current));\n    }\n    setPrevFrameValue(e = this.current) {\n      this.prevFrameValue = e, this.prevUpdatedAt = this.updatedAt;\n    }\n    onChange(e) {\n      return this.on(\"change\", e);\n    }\n    on(e, r) {\n      this.events[e] || (this.events[e] = new _n());\n      const o = this.events[e].add(r);\n      return e === \"change\" ? () => {\n        o(), te.read(() => {\n          this.events.change.getSize() || this.stop();\n        });\n      } : o;\n    }\n    clearListeners() {\n      for (const e in this.events) this.events[e].clear();\n    }\n    attach(e, r) {\n      this.passiveEffect = e, this.stopPassiveEffect = r;\n    }\n    set(e) {\n      this.passiveEffect ? this.passiveEffect(e, this.updateAndNotify) : this.updateAndNotify(e);\n    }\n    setWithVelocity(e, r, o) {\n      this.set(r), this.prev = void 0, this.prevFrameValue = e, this.prevUpdatedAt = this.updatedAt - o;\n    }\n    jump(e, r = !0) {\n      this.updateAndNotify(e), this.prev = e, this.prevUpdatedAt = this.prevFrameValue = void 0, r && this.stop(), this.stopPassiveEffect && this.stopPassiveEffect();\n    }\n    dirty() {\n      this.events.change?.notify(this.current);\n    }\n    addDependent(e) {\n      this.dependents || (this.dependents = /* @__PURE__ */ new Set()), this.dependents.add(e);\n    }\n    removeDependent(e) {\n      this.dependents && this.dependents.delete(e);\n    }\n    get() {\n      return Si.current && Si.current.push(this), this.current;\n    }\n    getPrevious() {\n      return this.prev;\n    }\n    getVelocity() {\n      const e = Te.now();\n      if (!this.canTrackVelocity || this.prevFrameValue === void 0 || e - this.updatedAt > Ci) return 0;\n      const r = Math.min(this.updatedAt - this.prevUpdatedAt, Ci);\n      return ra(parseFloat(this.current) - parseFloat(this.prevFrameValue), r);\n    }\n    start(e) {\n      return this.stop(), new Promise((r) => {\n        this.hasAnimated = !0, this.animation = e(r), this.events.animationStart && this.events.animationStart.notify();\n      }).then(() => {\n        this.events.animationComplete && this.events.animationComplete.notify(), this.clearAnimation();\n      });\n    }\n    stop() {\n      this.animation && (this.animation.stop(), this.events.animationCancel && this.events.animationCancel.notify()), this.clearAnimation();\n    }\n    isAnimating() {\n      return !!this.animation;\n    }\n    clearAnimation() {\n      delete this.animation;\n    }\n    destroy() {\n      this.dependents?.clear(), this.events.destroy?.notify(), this.clearListeners(), this.stop(), this.stopPassiveEffect && this.stopPassiveEffect();\n    }\n  };\n}));\nfunction Ga(e, r) {\n  if (e?.inherit && r) {\n    const { inherit: o, ...t } = e;\n    return {\n      ...r,\n      ...t\n    };\n  }\n  return e;\n}\nvar Ya = h((() => {\n}));\nfunction Xa(e, r) {\n  const o = e?.[r] ?? e?.default ?? e;\n  return o !== e ? Ga(o, e) : o;\n}\nvar Dn = h((() => {\n  Ya();\n})), Hc, Kc, Gc, Yc, Kg, Gg = h((() => {\n  Xe(), Hc = {\n    type: \"spring\",\n    stiffness: 500,\n    damping: 25,\n    restSpeed: 10\n  }, Kc = (e) => ({\n    type: \"spring\",\n    stiffness: 550,\n    damping: e === 0 ? 2 * Math.sqrt(550) : 30,\n    restSpeed: 10\n  }), Gc = {\n    type: \"keyframes\",\n    duration: 0.8\n  }, Yc = {\n    type: \"keyframes\",\n    ease: [\n      0.25,\n      0.1,\n      0.35,\n      1\n    ],\n    duration: 0.3\n  }, Kg = (e, { keyframes: r }) => r.length > 2 ? Gc : Br.has(e) ? e.startsWith(\"scale\") ? Kc(r[1]) : Hc : Yc;\n}));\nfunction Lk(e) {\n  for (const r in e) if (!Yg.has(r)) return !0;\n  return !1;\n}\nvar Yg, Xg = h((() => {\n  Yg = /* @__PURE__ */ new Set([\n    \"when\",\n    \"delay\",\n    \"delayChildren\",\n    \"staggerChildren\",\n    \"staggerDirection\",\n    \"repeat\",\n    \"repeatType\",\n    \"repeatDelay\",\n    \"from\",\n    \"elapsed\"\n  ]);\n})), zn, Ja = h((() => {\n  W(), qg(), Nn(), Dn(), qa(), Gg(), Yo(), Xg(), or(), zn = (e, r, o, t = {}, n, i) => (s) => {\n    const a = Xa(t, e) || {}, d = a.delay || t.delay || 0;\n    let { elapsed: l = 0 } = t;\n    l = l - Le(d);\n    const u = {\n      keyframes: Array.isArray(o) ? o : [null, o],\n      ease: \"easeOut\",\n      velocity: r.getVelocity(),\n      ...a,\n      delay: -l,\n      onUpdate: (g) => {\n        r.set(g), a.onUpdate && a.onUpdate(g);\n      },\n      onComplete: () => {\n        s(), a.onComplete && a.onComplete();\n      },\n      name: e,\n      motionValue: r,\n      element: i ? void 0 : n\n    };\n    Lk(a) || Object.assign(u, Kg(e, u)), u.duration && (u.duration = Le(u.duration)), u.repeatDelay && (u.repeatDelay = Le(u.repeatDelay)), u.from !== void 0 && (u.keyframes[0] = u.from);\n    let m = !1;\n    if ((u.type === !1 || u.duration === 0 && !u.repeatDelay) && (ds(u), u.delay === 0 && (m = !0)), (ar.instantAnimations || ar.skipAnimations || n?.shouldSkipAnimations || a.skipAnimations) && (m = !0, ds(u), u.delay = 0), u.allowFlatten = !a.type && !a.ease, m && !i && r.get() !== void 0) {\n      const g = Pn(u.keyframes, a);\n      if (g !== void 0) {\n        te.update(() => {\n          u.onUpdate(g), u.onComplete();\n        });\n        return;\n      }\n    }\n    return a.isSync ? new Io(u) : new $g(u);\n  };\n}));\nfunction Nk(e) {\n  const r = Zg.exec(e);\n  if (!r) return [,];\n  const [, o, t, n] = r;\n  return [`--${o ?? t}`, n];\n}\nfunction Jg(e, r, o = 1) {\n  zr(o <= Qg, `Max CSS variable fallback depth detected in property \"${e}\". This may indicate a circular fallback dependency.`, \"max-css-var-depth\");\n  const [t, n] = Nk(e);\n  if (!t) return;\n  const i = window.getComputedStyle(r).getPropertyValue(t);\n  if (i) {\n    const s = i.trim();\n    return Js(s) ? parseFloat(s) : s;\n  }\n  return Cn(n) ? Jg(n, r, o + 1) : n;\n}\nvar Zg, Qg, eh = h((() => {\n  W(), uo(), Zg = /^var\\(--(?:([\\w-]+)|([\\w-]+), ?([a-zA-Z\\d ()%#.,-]+))\\)/u, Qg = 4;\n}));\nfunction Xc(e) {\n  const r = [{}, {}];\n  return e?.values.forEach((o, t) => {\n    r[0][t] = o.get(), r[1][t] = o.getVelocity();\n  }), r;\n}\nfunction Za(e, r, o, t) {\n  if (typeof r == \"function\") {\n    const [n, i] = Xc(t);\n    r = r(o !== void 0 ? o : e.custom, n, i);\n  }\n  if (typeof r == \"string\" && (r = e.variants && e.variants[r]), typeof r == \"function\") {\n    const [n, i] = Xc(t);\n    r = r(o !== void 0 ? o : e.custom, n, i);\n  }\n  return r;\n}\nvar Qa = h((() => {\n}));\nfunction Dr(e, r, o) {\n  const t = e.getProps();\n  return Za(t, r, o !== void 0 ? o : t.custom, e);\n}\nvar Xo = h((() => {\n  Qa();\n})), ed, rd = h((() => {\n  Xe(), ed = /* @__PURE__ */ new Set([\n    \"width\",\n    \"height\",\n    \"top\",\n    \"left\",\n    \"right\",\n    \"bottom\",\n    ...Or\n  ]);\n})), Ht, od = h((() => {\n  Ht = (e) => Array.isArray(e);\n}));\nfunction Ik(e, r, o) {\n  e.hasValue(r) ? e.getValue(r).set(o) : e.addValue(r, no(o));\n}\nfunction Mk(e) {\n  return Ht(e) ? e[e.length - 1] || 0 : e;\n}\nfunction Dk(e, r) {\n  let { transitionEnd: o = {}, transition: t = {}, ...n } = Dr(e, r) || {};\n  n = {\n    ...n,\n    ...o\n  };\n  for (const i in n) Ik(e, i, Mk(n[i]));\n}\nvar rh = h((() => {\n  mo(), Xo(), od();\n})), Ce, ur = h((() => {\n  Ce = (e) => !!(e && e.getVelocity);\n}));\nfunction zk(e) {\n  return !!(Ce(e) && e.add);\n}\nvar oh = h((() => {\n  ur();\n}));\nfunction cs(e, r) {\n  const o = e.getValue(\"willChange\");\n  if (zk(o)) return o.add(r);\n  if (!o && ar.WillChange) {\n    const t = new ar.WillChange(\"auto\");\n    e.addValue(\"willChange\", t), t.add(r);\n  }\n}\nvar th = h((() => {\n  W(), oh();\n}));\nfunction td(e) {\n  return e.replace(/([A-Z])/g, (r) => `-${r.toLowerCase()}`);\n}\nvar On = h((() => {\n})), Jc, nd, nh = h((() => {\n  On(), Jc = \"framerAppearId\", nd = \"data-\" + td(Jc);\n}));\nfunction ih(e) {\n  return e.props[nd];\n}\nvar id = h((() => {\n  nh();\n}));\nfunction Ok({ protectedKeys: e, needsAnimating: r }, o) {\n  const t = e.hasOwnProperty(o) && r[o] !== !0;\n  return r[o] = !1, t;\n}\nfunction sh(e, r, { delay: o = 0, transitionOverride: t, type: n } = {}) {\n  let { transition: i, transitionEnd: s, ...a } = r;\n  const d = e.getDefaultTransition();\n  i = i ? Ga(i, d) : d;\n  const l = i?.reduceMotion, u = i?.skipAnimations;\n  t && (i = t);\n  const m = [], g = n && e.animationState && e.animationState.getState()[n], p = i?.path;\n  p && p.animateVisualElement(e, a, i, o, m);\n  for (const f in a) {\n    const v = e.getValue(f, e.latestValues[f] ?? null), x = a[f];\n    if (x === void 0 || g && Ok(g, f)) continue;\n    const w = {\n      delay: o,\n      ...Xa(i || {}, f)\n    };\n    u && (w.skipAnimations = !0);\n    const b = v.get();\n    if (b !== void 0 && !v.isAnimating() && !Array.isArray(x) && x === b && !w.velocity) {\n      te.update(() => v.set(x));\n      continue;\n    }\n    let k = !1;\n    if (window.MotionHandoffAnimation) {\n      const P = ih(e);\n      if (P) {\n        const S = window.MotionHandoffAnimation(P, f, te);\n        S !== null && (w.startTime = S, k = !0);\n      }\n    }\n    cs(e, f);\n    const y = l ?? e.shouldReduceMotion;\n    v.start(zn(f, v, x, y && ed.has(f) ? { type: !1 } : w, e, k));\n    const C = v.animation;\n    C && m.push(C);\n  }\n  if (s) {\n    const f = () => te.update(() => {\n      s && Dk(e, s);\n    });\n    m.length ? Promise.all(m).then(f) : f();\n  }\n  return m;\n}\nvar sd = h((() => {\n  Dn(), Ya(), rd(), rh(), th(), id(), Ja(), or();\n}));\nfunction ls(e, r, o = {}) {\n  const t = Dr(e, r, o.type === \"exit\" ? e.presenceContext?.custom : void 0);\n  let { transition: n = e.getDefaultTransition() || {} } = t || {};\n  o.transitionOverride && (n = o.transitionOverride);\n  const i = t ? () => Promise.all(sh(e, t, o)) : () => Promise.resolve(), s = e.variantChildren && e.variantChildren.size ? (d = 0) => {\n    const { delayChildren: l = 0, staggerChildren: u, staggerDirection: m } = n;\n    return Uk(e, r, d, l, u, m, o);\n  } : () => Promise.resolve(), { when: a } = n;\n  if (a) {\n    const [d, l] = a === \"beforeChildren\" ? [i, s] : [s, i];\n    return d().then(() => l());\n  } else return Promise.all([i(), s(o.delay)]);\n}\nfunction Uk(e, r, o = 0, t = 0, n = 0, i = 1, s) {\n  const a = [];\n  for (const d of e.variantChildren)\n    d.notify(\"AnimationStart\", r), a.push(ls(d, r, {\n      ...s,\n      delay: o + (typeof t == \"function\" ? 0 : t) + Wg(e.variantChildren, d, t, n, i)\n    }).then(() => d.notify(\"AnimationComplete\", r)));\n  return Promise.all(a);\n}\nvar ah = h((() => {\n  Xo(), Ka(), sd();\n}));\nfunction Vk(e, r, o = {}) {\n  e.notify(\"AnimationStart\", r);\n  let t;\n  if (Array.isArray(r)) {\n    const n = r.map((i) => ls(e, i, o));\n    t = Promise.all(n);\n  } else if (typeof r == \"string\") t = ls(e, r, o);\n  else {\n    const n = typeof r == \"function\" ? Dr(e, r, o.custom) : r;\n    t = Promise.all(sh(e, n, o));\n  }\n  return t.then(() => {\n    e.notify(\"AnimationComplete\", r);\n  });\n}\nvar dh = h((() => {\n  Xo(), sd(), ah();\n})), ch, Bk = h((() => {\n  ch = {\n    test: (e) => e === \"auto\",\n    parse: (e) => e\n  };\n})), ad, dd = h((() => {\n  ad = (e) => (r) => r.test(e);\n})), us, ms, cd = h((() => {\n  Bk(), Ar(), lr(), dd(), us = [\n    Mr,\n    U,\n    We,\n    Je,\n    Om,\n    zm,\n    ch\n  ], ms = (e) => us.find(ad(e));\n}));\nfunction Fk(e) {\n  return typeof e == \"number\" ? e === 0 : e !== null ? e === \"none\" || e === \"0\" || Qs(e) : !0;\n}\nvar jk = h((() => {\n  W();\n}));\nfunction $k(e) {\n  const [r, o] = e.slice(0, -1).split(\"(\");\n  if (r === \"drop-shadow\") return e;\n  const [t] = o.match(Sn) || [];\n  if (!t) return e;\n  const n = o.replace(t, \"\");\n  let i = lh.has(r) ? 1 : 0;\n  return t !== o && (i *= 100), r + \"(\" + i + n + \")\";\n}\nvar lh, Zc, Kt, uh = h((() => {\n  tr(), va(), lh = /* @__PURE__ */ new Set([\n    \"brightness\",\n    \"contrast\",\n    \"saturate\",\n    \"opacity\"\n  ]), Zc = /\\b([a-z-]*)\\(.*?\\)/gu, Kt = {\n    ...Fe,\n    getAnimatableNone: (e) => {\n      const r = e.match(Zc);\n      return r ? r.map($k).join(\" \") : e;\n    }\n  };\n})), Gt, mh = h((() => {\n  tr(), Gt = {\n    ...Fe,\n    getAnimatableNone: (e) => {\n      const r = Fe.parse(e);\n      return Fe.createTransformer(e)(r.map((o) => typeof o == \"number\" ? 0 : typeof o == \"object\" ? {\n        ...o,\n        alpha: 1\n      } : o));\n    }\n  };\n})), gs, qk = h((() => {\n  Ar(), gs = {\n    ...Mr,\n    transform: Math.round\n  };\n})), gh, hh = h((() => {\n  Ar(), lr(), gh = {\n    rotate: Je,\n    pathRotation: Je,\n    rotateX: Je,\n    rotateY: Je,\n    rotateZ: Je,\n    scale: vo,\n    scaleX: vo,\n    scaleY: vo,\n    scaleZ: vo,\n    skew: Je,\n    skewX: Je,\n    skewY: Je,\n    distance: U,\n    translateX: U,\n    translateY: U,\n    translateZ: U,\n    x: U,\n    y: U,\n    z: U,\n    perspective: U,\n    transformPerspective: U,\n    opacity: oo,\n    originX: Ji,\n    originY: Ji,\n    originZ: U\n  };\n})), Mo, Un = h((() => {\n  qk(), Ar(), lr(), hh(), Mo = {\n    borderWidth: U,\n    borderTopWidth: U,\n    borderRightWidth: U,\n    borderBottomWidth: U,\n    borderLeftWidth: U,\n    borderRadius: U,\n    borderTopLeftRadius: U,\n    borderTopRightRadius: U,\n    borderBottomRightRadius: U,\n    borderBottomLeftRadius: U,\n    width: U,\n    maxWidth: U,\n    height: U,\n    maxHeight: U,\n    top: U,\n    right: U,\n    bottom: U,\n    left: U,\n    inset: U,\n    insetBlock: U,\n    insetBlockStart: U,\n    insetBlockEnd: U,\n    insetInline: U,\n    insetInlineStart: U,\n    insetInlineEnd: U,\n    padding: U,\n    paddingTop: U,\n    paddingRight: U,\n    paddingBottom: U,\n    paddingLeft: U,\n    paddingBlock: U,\n    paddingBlockStart: U,\n    paddingBlockEnd: U,\n    paddingInline: U,\n    paddingInlineStart: U,\n    paddingInlineEnd: U,\n    margin: U,\n    marginTop: U,\n    marginRight: U,\n    marginBottom: U,\n    marginLeft: U,\n    marginBlock: U,\n    marginBlockStart: U,\n    marginBlockEnd: U,\n    marginInline: U,\n    marginInlineStart: U,\n    marginInlineEnd: U,\n    fontSize: U,\n    backgroundPositionX: U,\n    backgroundPositionY: U,\n    ...gh,\n    zIndex: gs,\n    fillOpacity: oo,\n    strokeOpacity: oo,\n    numOctaves: gs\n  };\n})), Qc, ld, ud = h((() => {\n  Go(), uh(), mh(), Un(), Qc = {\n    ...Mo,\n    color: ye,\n    backgroundColor: ye,\n    outlineColor: ye,\n    fill: ye,\n    stroke: ye,\n    borderColor: ye,\n    borderTopColor: ye,\n    borderRightColor: ye,\n    borderBottomColor: ye,\n    borderLeftColor: ye,\n    filter: Kt,\n    WebkitFilter: Kt,\n    mask: Gt,\n    WebkitMask: Gt\n  }, ld = (e) => Qc[e];\n}));\nfunction ph(e, r) {\n  let o = ld(e);\n  return fh.has(o) || (o = Fe), o.getAnimatableNone ? o.getAnimatableNone(r) : void 0;\n}\nvar fh, md = h((() => {\n  tr(), uh(), mh(), ud(), fh = /* @__PURE__ */ new Set([Kt, Gt]);\n}));\nfunction Wk(e, r, o) {\n  let t = 0, n;\n  for (; t < e.length && !n; ) {\n    const i = e[t];\n    typeof i == \"string\" && !vh.has(i) && to(i).values.length && (n = e[t]), t++;\n  }\n  if (n && o) for (const i of r) e[i] = ph(o, n);\n}\nvar vh, Hk = h((() => {\n  tr(), md(), vh = /* @__PURE__ */ new Set([\n    \"auto\",\n    \"none\",\n    \"0\"\n  ]);\n})), bh, yh = h((() => {\n  rd(), cd(), eh(), uo(), Mn(), jk(), Hk(), yg(), bh = class extends In {\n    constructor(e, r, o, t, n) {\n      super(e, r, o, t, n, !0);\n    }\n    readKeyframes() {\n      const { unresolvedKeyframes: e, element: r, name: o } = this;\n      if (!r || !r.current) return;\n      super.readKeyframes();\n      for (let a = 0; a < e.length; a++) {\n        let d = e[a];\n        if (typeof d == \"string\" && (d = d.trim(), Cn(d))) {\n          const l = Jg(d, r.current);\n          l !== void 0 && (e[a] = l), a === e.length - 1 && (this.finalKeyframe = d);\n        }\n      }\n      if (this.resolveNoneKeyframes(), !ed.has(o) || e.length !== 2) return;\n      const [t, n] = e, i = ms(t), s = ms(n);\n      if (Mc(t) !== Mc(n) && ir[o]) {\n        this.needsMeasurement = !0;\n        return;\n      }\n      if (i !== s)\n        if (is(i) && is(s)) for (let a = 0; a < e.length; a++) {\n          const d = e[a];\n          typeof d == \"string\" && (e[a] = parseFloat(d));\n        }\n        else ir[o] && (this.needsMeasurement = !0);\n    }\n    resolveNoneKeyframes() {\n      const { unresolvedKeyframes: e, name: r } = this, o = [];\n      for (let t = 0; t < e.length; t++) (e[t] === null || Fk(e[t])) && o.push(t);\n      o.length && Wk(e, o, r);\n    }\n    measureInitialState() {\n      const { element: e, unresolvedKeyframes: r, name: o } = this;\n      if (!e || !e.current) return;\n      o === \"height\" && (this.suspendedScrollY = window.pageYOffset), this.measuredOrigin = ir[o](e.measureViewportBox(), window.getComputedStyle(e.current)), r[0] = this.measuredOrigin;\n      const t = r[r.length - 1];\n      t !== void 0 && e.getValue(o, t).jump(t, !1);\n    }\n    measureEndState() {\n      const { element: e, name: r, unresolvedKeyframes: o } = this;\n      if (!e || !e.current) return;\n      const t = e.getValue(r);\n      t && t.jump(this.measuredOrigin, !1);\n      const n = o.length - 1, i = o[n];\n      o[n] = ir[r](e.measureViewportBox(), window.getComputedStyle(e.current)), i !== null && this.finalKeyframe === void 0 && (this.finalKeyframe = i), this.removedTransforms?.length && this.removedTransforms.forEach(([s, a]) => {\n        e.getValue(s).set(a);\n      }), this.resolveNoneKeyframes();\n    }\n  };\n})), Vn, gd = h((() => {\n  Vn = [\n    \"borderTopLeftRadius\",\n    \"borderTopRightRadius\",\n    \"borderBottomRightRadius\",\n    \"borderBottomLeftRadius\"\n  ];\n}));\nfunction wh(e, r, o) {\n  if (e == null) return [];\n  if (e instanceof EventTarget) return [e];\n  if (typeof e == \"string\") {\n    let t = document;\n    r && (t = r.current);\n    const n = o?.[e] ?? t.querySelectorAll(e);\n    return n ? Array.from(n) : [];\n  }\n  return Array.from(e).filter((t) => t != null);\n}\nvar hd = h((() => {\n})), Yt, pd = h((() => {\n  Yt = (e, r) => r && typeof e == \"number\" ? r.transform(e) : e;\n}));\nfunction xt(e) {\n  return Zs(e) && \"offsetHeight\" in e && !(\"ownerSVGElement\" in e);\n}\nvar kh = h((() => {\n  W();\n})), Bn, Kk, fd = h((() => {\n  ha(), { schedule: Bn, cancel: Kk } = /* @__PURE__ */ Im(queueMicrotask, !1);\n}));\nfunction xh() {\n  return Be.x || Be.y;\n}\nvar Be, Fn = h((() => {\n  Be = {\n    x: !1,\n    y: !1\n  };\n}));\nfunction Gk(e) {\n  return e === \"x\" || e === \"y\" ? Be[e] ? null : (Be[e] = !0, () => {\n    Be[e] = !1;\n  }) : Be.x || Be.y ? null : (Be.x = Be.y = !0, () => {\n    Be.x = Be.y = !1;\n  });\n}\nvar Yk = h((() => {\n  Fn();\n}));\nfunction _h(e, r) {\n  const o = wh(e), t = new AbortController(), n = {\n    passive: !0,\n    ...r,\n    signal: t.signal\n  };\n  return [\n    o,\n    n,\n    () => t.abort()\n  ];\n}\nvar Ah = h((() => {\n  hd();\n}));\nfunction Xk(e) {\n  return !(e.pointerType === \"touch\" || xh());\n}\nfunction Jk(e, r, o = {}) {\n  const [t, n, i] = _h(e, o);\n  return t.forEach((s) => {\n    let a = !1, d = !1, l;\n    const u = () => {\n      s.removeEventListener(\"pointerleave\", f);\n    }, m = (x) => {\n      l && (l(x), l = void 0), u();\n    }, g = (x) => {\n      a = !1, window.removeEventListener(\"pointerup\", g), window.removeEventListener(\"pointercancel\", g), d && (d = !1, m(x));\n    }, p = () => {\n      a = !0, window.addEventListener(\"pointerup\", g, n), window.addEventListener(\"pointercancel\", g, n);\n    }, f = (x) => {\n      if (x.pointerType !== \"touch\") {\n        if (a) {\n          d = !0;\n          return;\n        }\n        m(x);\n      }\n    }, v = (x) => {\n      if (!Xk(x)) return;\n      d = !1;\n      const w = r(s, x);\n      typeof w == \"function\" && (l = w, s.addEventListener(\"pointerleave\", f, n));\n    };\n    s.addEventListener(\"pointerenter\", v, n), s.addEventListener(\"pointerdown\", p, n);\n  }), i;\n}\nvar Zk = h((() => {\n  Fn(), Ah();\n})), hs, Ch = h((() => {\n  hs = (e, r) => r ? e === r ? !0 : hs(e, r.parentElement) : !1;\n})), jn, Sh = h((() => {\n  jn = (e) => e.pointerType === \"mouse\" ? typeof e.button != \"number\" || e.button <= 0 : e.isPrimary !== !1;\n}));\nfunction Qk(e) {\n  return Eh.has(e.tagName) || e.isContentEditable === !0;\n}\nfunction ex(e) {\n  return Th.has(e.tagName) || e.isContentEditable === !0;\n}\nvar Eh, Th, Rh = h((() => {\n  Eh = /* @__PURE__ */ new Set([\n    \"BUTTON\",\n    \"INPUT\",\n    \"SELECT\",\n    \"TEXTAREA\",\n    \"A\"\n  ]), Th = /* @__PURE__ */ new Set([\n    \"INPUT\",\n    \"SELECT\",\n    \"TEXTAREA\"\n  ]);\n})), _o, Ph = h((() => {\n  _o = /* @__PURE__ */ new WeakSet();\n}));\nfunction el(e) {\n  return (r) => {\n    r.key === \"Enter\" && e(r);\n  };\n}\nfunction Ei(e, r) {\n  e.dispatchEvent(new PointerEvent(\"pointer\" + r, {\n    isPrimary: !0,\n    bubbles: !0\n  }));\n}\nvar Lh, rx = h((() => {\n  Ph(), Lh = (e, r) => {\n    const o = e.currentTarget;\n    if (!o) return;\n    const t = el(() => {\n      if (_o.has(o)) return;\n      Ei(o, \"down\");\n      const n = el(() => {\n        Ei(o, \"up\");\n      }), i = () => Ei(o, \"cancel\");\n      o.addEventListener(\"keyup\", n, r), o.addEventListener(\"blur\", i, r);\n    });\n    o.addEventListener(\"keydown\", t, r), o.addEventListener(\"blur\", () => o.removeEventListener(\"keydown\", t), r);\n  };\n}));\nfunction rl(e) {\n  return jn(e) && !xh();\n}\nfunction ox(e, r, o = {}) {\n  const [t, n, i] = _h(e, o), s = (a) => {\n    const d = a.currentTarget;\n    if (!rl(a) || ps.has(a)) return;\n    _o.add(d), o.stopPropagation && ps.add(a);\n    const l = r(d, a), u = {\n      ...n,\n      capture: !0\n    }, m = (f, v) => {\n      window.removeEventListener(\"pointerup\", g, u), window.removeEventListener(\"pointercancel\", p, u), _o.has(d) && _o.delete(d), rl(f) && typeof l == \"function\" && l(f, { success: v });\n    }, g = (f) => {\n      m(f, d === window || d === document || o.useGlobalTarget || hs(d, f.target));\n    }, p = (f) => {\n      m(f, !1);\n    };\n    window.addEventListener(\"pointerup\", g, u), window.addEventListener(\"pointercancel\", p, u);\n  };\n  return t.forEach((a) => {\n    (o.useGlobalTarget ? window : a).addEventListener(\"pointerdown\", s, n), xt(a) && (a.addEventListener(\"focus\", (d) => Lh(d, n)), !Qk(a) && !a.hasAttribute(\"tabindex\") && (a.tabIndex = 0));\n  }), i;\n}\nvar ps, tx = h((() => {\n  kh(), Fn(), Ch(), Sh(), Ah(), Rh(), rx(), Ph(), ps = /* @__PURE__ */ new WeakSet();\n}));\nfunction vd(e) {\n  return Zs(e) && \"ownerSVGElement\" in e;\n}\nvar $n = h((() => {\n  W();\n}));\nfunction nx({ target: e, borderBoxSize: r }) {\n  Ao.get(e)?.forEach((o) => {\n    o(e, {\n      get width() {\n        return Nh(e, r);\n      },\n      get height() {\n        return Ih(e, r);\n      }\n    });\n  });\n}\nfunction ix(e) {\n  e.forEach(nx);\n}\nfunction sx() {\n  typeof ResizeObserver > \"u\" || (_t = new ResizeObserver(ix));\n}\nfunction ax(e, r) {\n  _t || sx();\n  const o = wh(e);\n  return o.forEach((t) => {\n    let n = Ao.get(t);\n    n || (n = /* @__PURE__ */ new Set(), Ao.set(t, n)), n.add(r), _t?.observe(t);\n  }), () => {\n    o.forEach((t) => {\n      const n = Ao.get(t);\n      n?.delete(r), n?.size || _t?.unobserve(t);\n    });\n  };\n}\nvar Ao, _t, Ti, Nh, Ih, dx = h((() => {\n  $n(), hd(), Ao = /* @__PURE__ */ new WeakMap(), Ti = (e, r, o) => (t, n) => n && n[0] ? n[0][e + \"Size\"] : vd(t) && \"getBBox\" in t ? t.getBBox()[r] : t[o], Nh = /* @__PURE__ */ Ti(\"inline\", \"width\", \"offsetWidth\"), Ih = /* @__PURE__ */ Ti(\"block\", \"height\", \"offsetHeight\");\n}));\nfunction cx() {\n  Qr = () => {\n    const e = {\n      get width() {\n        return window.innerWidth;\n      },\n      get height() {\n        return window.innerHeight;\n      }\n    };\n    Co.forEach((r) => r(e));\n  }, window.addEventListener(\"resize\", Qr);\n}\nfunction lx(e) {\n  return Co.add(e), Qr || cx(), () => {\n    Co.delete(e), !Co.size && typeof Qr == \"function\" && (window.removeEventListener(\"resize\", Qr), Qr = void 0);\n  };\n}\nvar Co, Qr, ux = h((() => {\n  Co = /* @__PURE__ */ new Set();\n}));\nfunction ol(e, r) {\n  return typeof e == \"function\" ? lx(e) : ax(e, r);\n}\nvar mx = h((() => {\n  dx(), ux();\n})), Rr, Mh = h((() => {\n  Rr = {\n    value: null,\n    addProjectionMetrics: null\n  };\n}));\nfunction gx(e) {\n  return vd(e) && e.tagName === \"svg\";\n}\nvar Dh = h((() => {\n  $n();\n})), tl, zh, Oh = h((() => {\n  Go(), tr(), cd(), dd(), tl = [\n    ...us,\n    ye,\n    Fe\n  ], zh = (e) => tl.find(ad(e));\n})), Ri, Lr, Pi, xe, qn = h((() => {\n  Ri = () => ({\n    translate: 0,\n    scale: 1,\n    origin: 0,\n    originPoint: 0\n  }), Lr = () => ({\n    x: Ri(),\n    y: Ri()\n  }), Pi = () => ({\n    min: 0,\n    max: 0\n  }), xe = () => ({\n    x: Pi(),\n    y: Pi()\n  });\n})), Uh, Vh = h((() => {\n  Uh = /* @__PURE__ */ new WeakMap();\n}));\nfunction Wn(e) {\n  return e !== null && typeof e == \"object\" && typeof e.start == \"function\";\n}\nvar bd = h((() => {\n}));\nfunction Do(e) {\n  return typeof e == \"string\" || Array.isArray(e);\n}\nvar Hn = h((() => {\n})), Xt, Kn, Gn = h((() => {\n  Xt = [\n    \"animate\",\n    \"whileInView\",\n    \"whileFocus\",\n    \"whileHover\",\n    \"whileTap\",\n    \"whileDrag\",\n    \"exit\"\n  ], Kn = [\"initial\", ...Xt];\n}));\nfunction Yn(e) {\n  return Wn(e.animate) || Kn.some((r) => Do(e[r]));\n}\nfunction Bh(e) {\n  return !!(Yn(e) || e.variants);\n}\nvar Fh = h((() => {\n  bd(), Hn(), Gn();\n}));\nfunction hx(e, r, o) {\n  for (const t in r) {\n    const n = r[t], i = o[t];\n    if (Ce(n)) e.addValue(t, n);\n    else if (Ce(i)) e.addValue(t, no(n, { owner: e }));\n    else if (i !== n) if (e.hasValue(t)) {\n      const s = e.getValue(t);\n      s.liveStyle === !0 ? s.jump(n) : s.hasAnimated || s.set(n);\n    } else {\n      const s = e.getStaticValue(t);\n      e.addValue(t, no(s !== void 0 ? s : n, { owner: e }));\n    }\n  }\n  for (const t in o) r[t] === void 0 && e.removeValue(t);\n  return r;\n}\nvar jh = h((() => {\n  mo(), ur();\n})), zo, Xn, yd = h((() => {\n  zo = { current: null }, Xn = { current: !1 };\n}));\nfunction $h() {\n  if (Xn.current = !0, !!qh)\n    if (window.matchMedia) {\n      const e = window.matchMedia(\"(prefers-reduced-motion)\"), r = () => zo.current = e.matches;\n      e.addEventListener(\"change\", r), r();\n    } else zo.current = !1;\n}\nvar qh, Wh = h((() => {\n  yd(), qh = typeof window < \"u\";\n}));\nfunction Hh(e) {\n  So = e;\n}\nfunction px() {\n  return So;\n}\nvar Li, So, Kh, Gh = h((() => {\n  W(), Mn(), ja(), Ha(), fd(), cr(), qn(), mo(), tr(), md(), Oh(), ur(), Vh(), Fh(), Xe(), jh(), Wh(), Qa(), yd(), or(), Li = [\n    \"AnimationStart\",\n    \"AnimationComplete\",\n    \"Update\",\n    \"BeforeLayoutMeasure\",\n    \"LayoutMeasure\",\n    \"LayoutAnimationStart\",\n    \"LayoutAnimationComplete\"\n  ], So = {}, Kh = class {\n    scrapeMotionValuesFromProps(e, r, o) {\n      return {};\n    }\n    constructor({ parent: e, props: r, presenceContext: o, reducedMotionConfig: t, skipAnimations: n, blockInitialAnimation: i, visualState: s }, a = {}) {\n      this.current = null, this.children = /* @__PURE__ */ new Set(), this.isVariantNode = !1, this.isControllingVariants = !1, this.shouldReduceMotion = null, this.shouldSkipAnimations = !1, this.values = /* @__PURE__ */ new Map(), this.KeyframeResolver = In, this.features = {}, this.valueSubscriptions = /* @__PURE__ */ new Map(), this.prevMotionValues = {}, this.hasBeenMounted = !1, this.events = {}, this.propEventSubscriptions = {}, this.notifyUpdate = () => this.notify(\"Update\", this.latestValues), this.render = () => {\n        this.current && (this.triggerBuild(), this.renderInstance(this.current, this.renderState, this.props.style, this.projection));\n      }, this.renderScheduledAt = 0, this.scheduleRender = () => {\n        const g = Te.now();\n        this.renderScheduledAt < g && (this.renderScheduledAt = g, te.render(this.render, !1, !0));\n      };\n      const { latestValues: d, renderState: l } = s;\n      this.latestValues = d, this.baseTarget = { ...d }, this.initialValues = r.initial ? { ...d } : {}, this.renderState = l, this.parent = e, this.props = r, this.presenceContext = o, this.depth = e ? e.depth + 1 : 0, this.reducedMotionConfig = t, this.skipAnimationsConfig = n, this.options = a, this.blockInitialAnimation = !!i, this.isControllingVariants = Yn(r), this.isVariantNode = Bh(r), this.isVariantNode && (this.variantChildren = /* @__PURE__ */ new Set()), this.manuallyAnimateOnMount = !!(e && e.current);\n      const { willChange: u, ...m } = this.scrapeMotionValuesFromProps(r, {}, this);\n      for (const g in m) {\n        const p = m[g];\n        d[g] !== void 0 && Ce(p) && p.set(d[g]);\n      }\n    }\n    mount(e) {\n      if (this.hasBeenMounted) for (const r in this.initialValues)\n        this.values.get(r)?.jump(this.initialValues[r]), this.latestValues[r] = this.initialValues[r];\n      this.current = e, Uh.set(e, this), this.projection && !this.projection.instance && this.projection.mount(e), this.parent && this.isVariantNode && !this.isControllingVariants && (this.removeFromVariantTree = this.parent.addVariantChild(this)), this.values.forEach((r, o) => this.bindToMotionValue(o, r)), this.reducedMotionConfig === \"never\" ? this.shouldReduceMotion = !1 : this.reducedMotionConfig === \"always\" ? this.shouldReduceMotion = !0 : (Xn.current || $h(), this.shouldReduceMotion = zo.current), this.shouldSkipAnimations = this.skipAnimationsConfig ?? !1, this.parent?.addChild(this), this.update(this.props, this.presenceContext), this.hasBeenMounted = !0;\n    }\n    unmount() {\n      this.projection && this.projection.unmount(), dr(this.notifyUpdate), dr(this.render), this.valueSubscriptions.forEach((e) => e()), this.valueSubscriptions.clear(), this.removeFromVariantTree && this.removeFromVariantTree(), this.parent?.removeChild(this);\n      for (const e in this.events) this.events[e].clear();\n      for (const e in this.features) {\n        const r = this.features[e];\n        r && (r.unmount(), r.isMounted = !1);\n      }\n      this.current = null;\n    }\n    addChild(e) {\n      this.children.add(e), this.enteringChildren ?? (this.enteringChildren = /* @__PURE__ */ new Set()), this.enteringChildren.add(e);\n    }\n    removeChild(e) {\n      this.children.delete(e), this.enteringChildren && this.enteringChildren.delete(e);\n    }\n    bindToMotionValue(e, r) {\n      if (this.valueSubscriptions.has(e) && this.valueSubscriptions.get(e)(), r.accelerate && Wa.has(e) && this.current instanceof HTMLElement) {\n        const { factory: i, keyframes: s, times: a, ease: d, duration: l } = r.accelerate, u = new Fa({\n          element: this.current,\n          name: e,\n          keyframes: s,\n          times: a,\n          ease: d,\n          duration: Le(l)\n        }), m = i(u);\n        this.valueSubscriptions.set(e, () => {\n          m(), u.cancel();\n        });\n        return;\n      }\n      const o = Br.has(e);\n      o && this.onBindTransform && this.onBindTransform();\n      const t = r.on(\"change\", (i) => {\n        this.latestValues[e] = i, this.props.onUpdate && te.preRender(this.notifyUpdate), o && this.projection && (this.projection.isTransformDirty = !0), this.scheduleRender();\n      });\n      let n;\n      typeof window < \"u\" && window.MotionCheckAppearSync && (n = window.MotionCheckAppearSync(this, e, r)), this.valueSubscriptions.set(e, () => {\n        t(), n && n();\n      });\n    }\n    sortNodePosition(e) {\n      return !this.current || !this.sortInstanceNodePosition || this.type !== e.type ? 0 : this.sortInstanceNodePosition(this.current, e.current);\n    }\n    updateFeatures() {\n      let e = \"animation\";\n      for (e in So) {\n        const r = So[e];\n        if (!r) continue;\n        const { isEnabled: o, Feature: t } = r;\n        if (!this.features[e] && t && o(this.props) && (this.features[e] = new t(this)), this.features[e]) {\n          const n = this.features[e];\n          n.isMounted ? n.update() : (n.mount(), n.isMounted = !0);\n        }\n      }\n    }\n    triggerBuild() {\n      this.build(this.renderState, this.latestValues, this.props);\n    }\n    measureViewportBox() {\n      return this.current ? this.measureInstanceViewportBox(this.current, this.props) : xe();\n    }\n    getStaticValue(e) {\n      return this.latestValues[e];\n    }\n    setStaticValue(e, r) {\n      this.latestValues[e] = r;\n    }\n    update(e, r) {\n      (e.transformTemplate || this.props.transformTemplate) && this.scheduleRender(), this.prevProps = this.props, this.props = e, this.prevPresenceContext = this.presenceContext, this.presenceContext = r;\n      for (let o = 0; o < Li.length; o++) {\n        const t = Li[o];\n        this.propEventSubscriptions[t] && (this.propEventSubscriptions[t](), delete this.propEventSubscriptions[t]);\n        const n = e[\"on\" + t];\n        n && (this.propEventSubscriptions[t] = this.on(t, n));\n      }\n      this.prevMotionValues = hx(this, this.scrapeMotionValuesFromProps(e, this.prevProps || {}, this), this.prevMotionValues), this.handleChildMotionValue && this.handleChildMotionValue();\n    }\n    getProps() {\n      return this.props;\n    }\n    getVariant(e) {\n      return this.props.variants ? this.props.variants[e] : void 0;\n    }\n    getDefaultTransition() {\n      return this.props.transition;\n    }\n    getTransformPagePoint() {\n      return this.props.transformPagePoint;\n    }\n    getClosestVariantNode() {\n      return this.isVariantNode ? this : this.parent ? this.parent.getClosestVariantNode() : void 0;\n    }\n    addVariantChild(e) {\n      const r = this.getClosestVariantNode();\n      if (r)\n        return r.variantChildren && r.variantChildren.add(e), () => r.variantChildren.delete(e);\n    }\n    addValue(e, r) {\n      const o = this.values.get(e);\n      r !== o && (o && this.removeValue(e), this.bindToMotionValue(e, r), this.values.set(e, r), this.latestValues[e] = r.get());\n    }\n    removeValue(e) {\n      this.values.delete(e);\n      const r = this.valueSubscriptions.get(e);\n      r && (r(), this.valueSubscriptions.delete(e)), delete this.latestValues[e], this.removeValueFromRenderState(e, this.renderState);\n    }\n    hasValue(e) {\n      return this.values.has(e);\n    }\n    getValue(e, r) {\n      if (this.props.values && this.props.values[e]) return this.props.values[e];\n      let o = this.values.get(e);\n      return o === void 0 && r !== void 0 && (o = no(r === null ? void 0 : r, { owner: this }), this.addValue(e, o)), o;\n    }\n    readValue(e, r) {\n      let o = this.latestValues[e] !== void 0 || !this.current ? this.latestValues[e] : this.getBaseTargetFromProps(this.props, e) ?? this.readValueFromInstance(this.current, e, this.options);\n      return o != null && (typeof o == \"string\" && (Js(o) || Qs(o)) ? o = parseFloat(o) : !zh(o) && Fe.test(r) && (o = ph(e, r)), this.setBaseTarget(e, Ce(o) ? o.get() : o)), Ce(o) ? o.get() : o;\n    }\n    setBaseTarget(e, r) {\n      this.baseTarget[e] = r;\n    }\n    getBaseTarget(e) {\n      const { initial: r } = this.props;\n      let o;\n      if (typeof r == \"string\" || typeof r == \"object\") {\n        const n = Za(this.props, r, this.presenceContext?.custom);\n        n && (o = n[e]);\n      }\n      if (r && o !== void 0) return o;\n      const t = this.getBaseTargetFromProps(this.props, e);\n      return t !== void 0 && !Ce(t) ? t : this.initialValues[e] !== void 0 && o === void 0 ? void 0 : this.baseTarget[e];\n    }\n    on(e, r) {\n      return this.events[e] || (this.events[e] = new _n()), this.events[e].add(r);\n    }\n    notify(e, ...r) {\n      this.events[e] && this.events[e].notify(...r);\n    }\n    scheduleRenderMicrotask() {\n      Bn.render(this.render);\n    }\n  };\n})), wd, kd = h((() => {\n  ur(), yh(), Gh(), wd = class extends Kh {\n    constructor() {\n      super(...arguments), this.KeyframeResolver = bh;\n    }\n    sortInstanceNodePosition(e, r) {\n      return e.compareDocumentPosition(r) & 2 ? 1 : -1;\n    }\n    getBaseTargetFromProps(e, r) {\n      const o = e.style;\n      return o ? o[r] : void 0;\n    }\n    removeValueFromRenderState(e, { vars: r, style: o }) {\n      delete r[e], delete o[e];\n    }\n    handleChildMotionValue() {\n      this.childSubscription && (this.childSubscription(), delete this.childSubscription);\n      const { children: e } = this.props;\n      Ce(e) && (this.childSubscription = e.on(\"change\", (r) => {\n        this.current && (this.current.textContent = `${r}`);\n      }));\n    }\n  };\n})), mr, fx = h((() => {\n  mr = class {\n    constructor(e) {\n      this.isMounted = !1, this.node = e;\n    }\n    update() {\n    }\n  };\n}));\nfunction Yh({ top: e, left: r, right: o, bottom: t }) {\n  return {\n    x: {\n      min: r,\n      max: o\n    },\n    y: {\n      min: e,\n      max: t\n    }\n  };\n}\nfunction vx({ x: e, y: r }) {\n  return {\n    top: r.min,\n    right: e.max,\n    bottom: r.max,\n    left: e.min\n  };\n}\nfunction bx(e, r) {\n  if (!r) return e;\n  const o = r({\n    x: e.left,\n    y: e.top\n  }), t = r({\n    x: e.right,\n    y: e.bottom\n  });\n  return {\n    top: o.y,\n    left: o.x,\n    bottom: t.y,\n    right: t.x\n  };\n}\nvar Xh = h((() => {\n}));\nfunction Ni(e) {\n  return e === void 0 || e === 1;\n}\nfunction fs({ scale: e, scaleX: r, scaleY: o }) {\n  return !Ni(e) || !Ni(r) || !Ni(o);\n}\nfunction Er(e) {\n  return fs(e) || Jh(e) || e.z || e.rotate || e.rotateX || e.rotateY || e.skewX || e.skewY;\n}\nfunction Jh(e) {\n  return nl(e.x) || nl(e.y);\n}\nfunction nl(e) {\n  return e && e !== \"0%\";\n}\nvar xd = h((() => {\n}));\nfunction Jt(e, r, o) {\n  return o + r * (e - o);\n}\nfunction il(e, r, o, t, n) {\n  return n !== void 0 && (e = Jt(e, n, t)), Jt(e, o, t) + r;\n}\nfunction vs(e, r = 0, o = 1, t, n) {\n  e.min = il(e.min, r, o, t, n), e.max = il(e.max, r, o, t, n);\n}\nfunction Zh(e, { x: r, y: o }) {\n  vs(e.x, r.translate, r.scale, r.originPoint), vs(e.y, o.translate, o.scale, o.originPoint);\n}\nfunction yx(e, r, o, t = !1) {\n  const n = o.length;\n  if (!n) return;\n  r.x = r.y = 1;\n  let i, s;\n  for (let a = 0; a < n; a++) {\n    i = o[a], s = i.projectionDelta;\n    const { visualElement: d } = i.options;\n    d && d.props.style && d.props.style.display === \"contents\" || (t && i.options.layoutScroll && i.scroll && i !== i.root && (er(e.x, -i.scroll.offset.x), er(e.y, -i.scroll.offset.y)), s && (r.x *= s.x.scale, r.y *= s.y.scale, Zh(e, s)), t && Er(i.latestValues) && At(e, i.latestValues, i.layout?.layoutBox));\n  }\n  r.x < ys && r.x > bs && (r.x = 1), r.y < ys && r.y > bs && (r.y = 1);\n}\nfunction er(e, r) {\n  e.min += r, e.max += r;\n}\nfunction sl(e, r, o, t, n = 0.5) {\n  vs(e, r, o, oe(e.min, e.max, n), t);\n}\nfunction al(e, r) {\n  return typeof e == \"string\" ? parseFloat(e) / 100 * (r.max - r.min) : e;\n}\nfunction At(e, r, o) {\n  const t = o ?? e;\n  sl(e.x, al(r.x, t.x), r.scaleX, r.scale, r.originX), sl(e.y, al(r.y, t.y), r.scaleY, r.scale, r.originY);\n}\nvar bs, ys, Jn = h((() => {\n  Ye(), xd(), bs = 0.999999999999, ys = 1.0000000000001;\n}));\nfunction Qh(e, r) {\n  return Yh(bx(e.getBoundingClientRect(), r));\n}\nfunction wx(e, r, o) {\n  const t = Qh(e, o), { scroll: n } = r;\n  return n && (er(t.x, n.offset.x), er(t.y, n.offset.y)), t;\n}\nvar ep = h((() => {\n  Xh(), Jn();\n}));\nfunction kx(e, r, o) {\n  let t = \"\", n = !0;\n  for (let s = 0; s < op; s++) {\n    const a = Or[s], d = e[a];\n    if (d === void 0) continue;\n    let l = !0;\n    if (typeof d == \"number\") l = d === (a.startsWith(\"scale\") ? 1 : 0);\n    else {\n      const u = parseFloat(d);\n      l = a.startsWith(\"scale\") ? u === 1 : u === 0;\n    }\n    if (!l || o) {\n      const u = Yt(d, Mo[a]);\n      if (!l) {\n        n = !1;\n        const m = rp[a] || a;\n        t += `${m}(${u}) `;\n      }\n      o && (r[a] = u);\n    }\n  }\n  const i = e.pathRotation;\n  return i && (n = !1, t += `rotate(${Yt(i, Mo.pathRotation)}) `), t = t.trim(), o ? t = o(r, n ? \"\" : t) : n && (t = \"none\"), t;\n}\nvar rp, op, tp = h((() => {\n  pd(), Un(), Xe(), rp = {\n    x: \"translateX\",\n    y: \"translateY\",\n    z: \"translateZ\",\n    transformPerspective: \"perspective\"\n  }, op = Or.length;\n}));\nfunction _d(e, r, o) {\n  const { style: t, vars: n, transformOrigin: i } = e;\n  let s = !1, a = !1;\n  for (const d in r) {\n    const l = r[d];\n    if (Br.has(d)) {\n      s = !0;\n      continue;\n    } else if (pa(d)) {\n      n[d] = l;\n      continue;\n    } else {\n      const u = Yt(l, Mo[d]);\n      d.startsWith(\"origin\") ? (a = !0, i[d] = u) : t[d] = u;\n    }\n  }\n  if (r.transform || (s || o ? t.transform = kx(r, e.transform, o) : t.transform && (t.transform = \"none\")), a) {\n    const { originX: d = \"50%\", originY: l = \"50%\", originZ: u = 0 } = i;\n    t.transformOrigin = `${d} ${l} ${u}`;\n  }\n}\nvar Ad = h((() => {\n  pd(), Un(), Xe(), uo(), tp();\n}));\nfunction np(e, { style: r, vars: o }, t, n) {\n  const i = e.style;\n  let s;\n  for (s in r) i[s] = r[s];\n  n?.applyProjectionStyles(i, t);\n  for (s in o) i.setProperty(s, o[s]);\n}\nvar Cd = h((() => {\n}));\nfunction dl(e, r) {\n  return r.max === r.min ? 0 : e / (r.max - r.min) * 100;\n}\nvar Yr, ip = h((() => {\n  lr(), Yr = { correct: (e, r) => {\n    if (!r.target) return e;\n    if (typeof e == \"string\") if (U.test(e)) e = parseFloat(e);\n    else return e;\n    return `${dl(e, r.target.x)}% ${dl(e, r.target.y)}%`;\n  } };\n})), sp, ap = h((() => {\n  tr(), Ye(), sp = { correct: (e, { treeScale: r, projectionDelta: o }) => {\n    const t = e, n = Fe.parse(e);\n    if (n.length > 5) return t;\n    const i = Fe.createTransformer(e), s = typeof n[0] != \"number\" ? 1 : 0, a = o.x.scale * r.x, d = o.y.scale * r.y;\n    n[0 + s] /= a, n[1 + s] /= d;\n    const l = oe(a, d, 0.5);\n    return typeof n[2 + s] == \"number\" && (n[2 + s] /= l), typeof n[3 + s] == \"number\" && (n[3 + s] /= l), i(n);\n  } };\n})), Zt, Sd = h((() => {\n  gd(), ip(), ap(), Zt = {\n    borderRadius: {\n      ...Yr,\n      applyTo: [...Vn]\n    },\n    borderTopLeftRadius: Yr,\n    borderTopRightRadius: Yr,\n    borderBottomLeftRadius: Yr,\n    borderBottomRightRadius: Yr,\n    boxShadow: sp\n  };\n}));\nfunction dp(e, { layout: r, layoutId: o }) {\n  return Br.has(e) || e.startsWith(\"origin\") || (r || o !== void 0) && (!!Zt[e] || e === \"opacity\");\n}\nvar cp = h((() => {\n  Xe(), Sd();\n}));\nfunction Ed(e, r, o) {\n  const t = e.style, n = r?.style, i = {};\n  if (!t) return i;\n  for (const s in t) (Ce(t[s]) || n && Ce(n[s]) || dp(s, e) || o?.getValue(s)?.liveStyle !== void 0) && (i[s] = t[s]);\n  return i;\n}\nvar Td = h((() => {\n  ur(), cp();\n}));\nfunction xx(e) {\n  return window.getComputedStyle(e);\n}\nvar lp, _x = h((() => {\n  uo(), Xe(), Da(), ep(), kd(), Ad(), Cd(), Td(), lp = class extends wd {\n    constructor() {\n      super(...arguments), this.type = \"html\", this.renderInstance = np;\n    }\n    readValueFromInstance(e, r) {\n      if (Br.has(r)) return this.projection?.isProjecting ? ts(r) : vg(e, r);\n      {\n        const o = xx(e), t = (pa(r) ? o.getPropertyValue(r) : o[r]) || 0;\n        return typeof t == \"string\" ? t.trim() : t;\n      }\n    }\n    measureInstanceViewportBox(e, { transformPagePoint: r }) {\n      return Qh(e, r);\n    }\n    build(e, r, o) {\n      _d(e, r, o.transformTemplate);\n    }\n    scrapeMotionValuesFromProps(e, r, o) {\n      return Ed(e, r, o);\n    }\n  };\n}));\nfunction Ax(e, r, o = 1, t = 0, n = !0) {\n  e.pathLength = 1;\n  const i = n ? up : mp;\n  e[i.offset] = `${-t}`, e[i.array] = `${r} ${o}`;\n}\nvar up, mp, gp = h((() => {\n  up = {\n    offset: \"stroke-dashoffset\",\n    array: \"stroke-dasharray\"\n  }, mp = {\n    offset: \"strokeDashoffset\",\n    array: \"strokeDasharray\"\n  };\n}));\nfunction hp(e, { attrX: r, attrY: o, attrScale: t, pathLength: n, pathSpacing: i = 1, pathOffset: s = 0, ...a }, d, l, u) {\n  if (_d(e, a, l), d) {\n    e.style.viewBox && (e.attrs.viewBox = e.style.viewBox);\n    return;\n  }\n  e.attrs = e.style, e.style = {};\n  const { attrs: m, style: g } = e;\n  m.transform && (g.transform = m.transform, delete m.transform), (g.transform || m.transformOrigin) && (g.transformOrigin = m.transformOrigin ?? \"50% 50%\", delete m.transformOrigin), g.transform && (g.transformBox = u?.transformBox ?? \"fill-box\", delete m.transformBox);\n  for (const p of pp) m[p] !== void 0 && (g[p] = m[p], delete m[p]);\n  r !== void 0 && (m.x = r), o !== void 0 && (m.y = o), t !== void 0 && (m.scale = t), n !== void 0 && Ax(m, n, i, s, !1);\n}\nvar pp, fp = h((() => {\n  Ad(), gp(), pp = [\n    \"offsetDistance\",\n    \"offsetPath\",\n    \"offsetRotate\",\n    \"offsetAnchor\"\n  ];\n})), Rd, Pd = h((() => {\n  Rd = /* @__PURE__ */ new Set([\n    \"baseFrequency\",\n    \"diffuseConstant\",\n    \"kernelMatrix\",\n    \"kernelUnitLength\",\n    \"keySplines\",\n    \"keyTimes\",\n    \"limitingConeAngle\",\n    \"markerHeight\",\n    \"markerWidth\",\n    \"numOctaves\",\n    \"targetX\",\n    \"targetY\",\n    \"surfaceScale\",\n    \"specularConstant\",\n    \"specularExponent\",\n    \"stdDeviation\",\n    \"tableValues\",\n    \"viewBox\",\n    \"gradientTransform\",\n    \"pathLength\",\n    \"startOffset\",\n    \"textLength\",\n    \"lengthAdjust\"\n  ]);\n})), Ld, vp = h((() => {\n  Ld = (e) => typeof e == \"string\" && e.toLowerCase() === \"svg\";\n}));\nfunction Cx(e, r, o, t) {\n  np(e, r, void 0, t);\n  for (const n in r.attrs) e.setAttribute(Rd.has(n) ? n : td(n), r.attrs[n]);\n}\nvar bp = h((() => {\n  On(), Cd(), Pd();\n}));\nfunction yp(e, r, o) {\n  const t = Ed(e, r, o);\n  for (const n in e) if (Ce(e[n]) || Ce(r[n])) {\n    const i = Or.indexOf(n) !== -1 ? \"attr\" + n.charAt(0).toUpperCase() + n.substring(1) : n;\n    t[i] = e[n];\n  }\n  return t;\n}\nvar wp = h((() => {\n  ur(), Xe(), Td();\n})), kp, Sx = h((() => {\n  Xe(), ud(), qn(), kd(), On(), fp(), Pd(), vp(), bp(), wp(), kp = class extends wd {\n    constructor() {\n      super(...arguments), this.type = \"svg\", this.isSVGTag = !1, this.measureInstanceViewportBox = xe;\n    }\n    getBaseTargetFromProps(e, r) {\n      return e[r];\n    }\n    readValueFromInstance(e, r) {\n      if (Br.has(r)) {\n        const o = ld(r);\n        return o && o.default || 0;\n      }\n      return r = Rd.has(r) ? r : td(r), e.getAttribute(r);\n    }\n    scrapeMotionValuesFromProps(e, r, o) {\n      return yp(e, r, o);\n    }\n    build(e, r, o) {\n      hp(e, r, this.isSVGTag, o.transformTemplate, o.style);\n    }\n    renderInstance(e, r, o, t) {\n      Cx(e, r, o, t);\n    }\n    mount(e) {\n      this.isSVGTag = Ld(e.tagName), super.mount(e);\n    }\n  };\n}));\nfunction xp(e) {\n  if (!e) return;\n  if (!e.isControllingVariants) {\n    const o = e.parent ? xp(e.parent) || {} : {};\n    return e.props.initial !== void 0 && (o.initial = e.props.initial), o;\n  }\n  const r = {};\n  for (let o = 0; o < _p; o++) {\n    const t = Kn[o], n = e.props[t];\n    (Do(n) || n === !1) && (r[t] = n);\n  }\n  return r;\n}\nvar _p, Ap = h((() => {\n  Hn(), Gn(), _p = Kn.length;\n}));\nfunction Cp(e, r) {\n  if (!Array.isArray(r)) return !1;\n  const o = r.length;\n  if (o !== e.length) return !1;\n  for (let t = 0; t < o; t++) if (r[t] !== e[t]) return !1;\n  return !0;\n}\nvar Ex = h((() => {\n}));\nfunction Tx(e) {\n  return (r) => Promise.all(r.map(({ animation: o, options: t }) => Vk(e, o, t)));\n}\nfunction Rx(e) {\n  let r = Tx(e), o = cl(), t = !0, n = !1;\n  const i = (l) => (u, m) => {\n    const g = Dr(e, m, l === \"exit\" ? e.presenceContext?.custom : void 0);\n    if (g) {\n      const { transition: p, transitionEnd: f, ...v } = g;\n      u = {\n        ...u,\n        ...v,\n        ...f\n      };\n    }\n    return u;\n  };\n  function s(l) {\n    r = l(e);\n  }\n  function a(l) {\n    const { props: u } = e, m = xp(e.parent) || {}, g = [], p = /* @__PURE__ */ new Set();\n    let f = {}, v = 1 / 0;\n    for (let w = 0; w < Ep; w++) {\n      const b = Sp[w], k = o[b], y = u[b] !== void 0 ? u[b] : m[b], C = Do(y), P = b === l ? k.isActive : null;\n      P === !1 && (v = w);\n      let S = y === m[b] && y !== u[b] && C;\n      if (S && (t || n) && e.manuallyAnimateOnMount && (S = !1), k.protectedKeys = { ...f }, !k.isActive && P === null || !y && !k.prevProp || Wn(y) || typeof y == \"boolean\") continue;\n      if (b === \"exit\" && k.isActive && P !== !0) {\n        k.prevResolvedValues && (f = {\n          ...f,\n          ...k.prevResolvedValues\n        });\n        continue;\n      }\n      const R = Px(k.prevProp, y);\n      let A = R || b === l && k.isActive && !S && C || w > v && C, E = !1;\n      const I = Array.isArray(y) ? y : [y];\n      let L = I.reduce(i(b), {});\n      P === !1 && (L = {});\n      const { prevResolvedValues: M = {} } = k, D = {\n        ...M,\n        ...L\n      }, z = (q) => {\n        A = !0, p.has(q) && (E = !0, p.delete(q)), k.needsAnimating[q] = !0;\n        const J = e.getValue(q);\n        J && (J.liveStyle = !1);\n      };\n      for (const q in D) {\n        const J = L[q], G = M[q];\n        if (f.hasOwnProperty(q)) continue;\n        let ge = !1;\n        Ht(J) && Ht(G) ? ge = !Cp(J, G) || R : ge = J !== G, ge ? J != null ? z(q) : p.add(q) : J !== void 0 && p.has(q) ? z(q) : k.protectedKeys[q] = !0;\n      }\n      k.prevProp = y, k.prevResolvedValues = L, k.isActive && (f = {\n        ...f,\n        ...L\n      }), (t || n) && e.blockInitialAnimation && (A = !1);\n      const $ = S && R;\n      A && (!$ || E) && g.push(...I.map((q) => {\n        const J = { type: b };\n        if (typeof q == \"string\" && (t || n) && !$ && e.manuallyAnimateOnMount && e.parent) {\n          const { parent: G } = e, ge = Dr(G, q);\n          if (G.enteringChildren && ge) {\n            const { delayChildren: ve } = ge.transition || {};\n            J.delay = Wg(G.enteringChildren, e, ve);\n          }\n        }\n        return {\n          animation: q,\n          options: J\n        };\n      }));\n    }\n    if (p.size) {\n      const w = {};\n      if (typeof u.initial != \"boolean\") {\n        const b = Dr(e, Array.isArray(u.initial) ? u.initial[0] : u.initial);\n        b && b.transition && (w.transition = b.transition);\n      }\n      p.forEach((b) => {\n        const k = e.getBaseTarget(b), y = e.getValue(b);\n        y && (y.liveStyle = !0), w[b] = k ?? null;\n      }), g.push({ animation: w });\n    }\n    let x = !!g.length;\n    return t && (u.initial === !1 || u.initial === u.animate) && !e.manuallyAnimateOnMount && (x = !1), t = !1, n = !1, x ? r(g) : Promise.resolve();\n  }\n  function d(l, u) {\n    if (o[l].isActive === u) return Promise.resolve();\n    e.variantChildren?.forEach((g) => g.animationState?.setActive(l, u)), o[l].isActive = u;\n    const m = a(l);\n    for (const g in o) o[g].protectedKeys = {};\n    return m;\n  }\n  return {\n    animateChanges: a,\n    setActive: d,\n    setAnimateFunction: s,\n    getState: () => o,\n    reset: () => {\n      o = cl(), n = !0;\n    }\n  };\n}\nfunction Px(e, r) {\n  return typeof r == \"string\" ? r !== e : Array.isArray(r) ? !Cp(r, e) : !1;\n}\nfunction Cr(e = !1) {\n  return {\n    isActive: e,\n    protectedKeys: {},\n    needsAnimating: {},\n    prevResolvedValues: {}\n  };\n}\nfunction cl() {\n  return {\n    animate: Cr(!0),\n    whileInView: Cr(),\n    whileHover: Cr(),\n    whileTap: Cr(),\n    whileDrag: Cr(),\n    whileFocus: Cr(),\n    exit: Cr()\n  };\n}\nvar Sp, Ep, Lx = h((() => {\n  dh(), Ka(), Ap(), bd(), od(), Hn(), Xo(), Ex(), Gn(), Sp = [...Xt].reverse(), Ep = Xt.length;\n}));\nfunction ws(e, r) {\n  e.min = r.min, e.max = r.max;\n}\nfunction $e(e, r) {\n  ws(e.x, r.x), ws(e.y, r.y);\n}\nfunction ll(e, r) {\n  e.translate = r.translate, e.scale = r.scale, e.originPoint = r.originPoint, e.origin = r.origin;\n}\nvar Tp = h((() => {\n}));\nfunction Pe(e) {\n  return e.max - e.min;\n}\nfunction Nx(e, r, o) {\n  return Math.abs(e - r) <= o;\n}\nfunction ul(e, r, o, t = 0.5) {\n  e.origin = t, e.originPoint = oe(r.min, r.max, e.origin), e.scale = Pe(o) / Pe(r), e.translate = oe(o.min, o.max, e.origin) - e.originPoint, (e.scale >= Rp && e.scale <= Pp || isNaN(e.scale)) && (e.scale = 1), (e.translate >= Lp && e.translate <= Np || isNaN(e.translate)) && (e.translate = 0);\n}\nfunction Eo(e, r, o, t) {\n  ul(e.x, r.x, o.x, t ? t.originX : void 0), ul(e.y, r.y, o.y, t ? t.originY : void 0);\n}\nfunction ml(e, r, o, t = 0) {\n  e.min = (t ? oe(o.min, o.max, t) : o.min) + r.min, e.max = e.min + Pe(r);\n}\nfunction Ix(e, r, o, t) {\n  ml(e.x, r.x, o.x, t?.x), ml(e.y, r.y, o.y, t?.y);\n}\nfunction gl(e, r, o, t = 0) {\n  const n = t ? oe(o.min, o.max, t) : o.min;\n  e.min = r.min - n, e.max = e.min + Pe(r);\n}\nfunction Qt(e, r, o, t) {\n  gl(e.x, r.x, o.x, t?.x), gl(e.y, r.y, o.y, t?.y);\n}\nvar Rp, Pp, Lp, Np, Nd = h((() => {\n  Ye(), Rp = 0.9999, Pp = 1.0001, Lp = -0.01, Np = 0.01;\n}));\nfunction hl(e, r, o, t, n) {\n  return e -= r, e = Jt(e, 1 / o, t), n !== void 0 && (e = Jt(e, 1 / n, t)), e;\n}\nfunction Mx(e, r = 0, o = 1, t = 0.5, n, i = e, s = e) {\n  if (We.test(r) && (r = parseFloat(r), r = oe(s.min, s.max, r / 100) - s.min), typeof r != \"number\") return;\n  let a = oe(i.min, i.max, t);\n  e === i && (a -= r), e.min = hl(e.min, r, o, a, n), e.max = hl(e.max, r, o, a, n);\n}\nfunction pl(e, r, [o, t, n], i, s) {\n  Mx(e, r[o], r[t], r[n], r.scale, i, s);\n}\nfunction fl(e, r, o, t) {\n  pl(e.x, r, Ip, o ? o.x : void 0, t ? t.x : void 0), pl(e.y, r, Mp, o ? o.y : void 0, t ? t.y : void 0);\n}\nvar Ip, Mp, Dp = h((() => {\n  Ye(), lr(), Jn(), Ip = [\n    \"x\",\n    \"scaleX\",\n    \"originX\"\n  ], Mp = [\n    \"y\",\n    \"scaleY\",\n    \"originY\"\n  ];\n}));\nfunction vl(e) {\n  return e.translate === 0 && e.scale === 1;\n}\nfunction zp(e) {\n  return vl(e.x) && vl(e.y);\n}\nfunction bl(e, r) {\n  return e.min === r.min && e.max === r.max;\n}\nfunction Dx(e, r) {\n  return bl(e.x, r.x) && bl(e.y, r.y);\n}\nfunction yl(e, r) {\n  return Math.round(e.min) === Math.round(r.min) && Math.round(e.max) === Math.round(r.max);\n}\nfunction Op(e, r) {\n  return yl(e.x, r.x) && yl(e.y, r.y);\n}\nfunction wl(e) {\n  return Pe(e.x) / Pe(e.y);\n}\nfunction kl(e, r) {\n  return e.translate === r.translate && e.scale === r.scale && e.originPoint === r.originPoint;\n}\nvar Up = h((() => {\n  Nd();\n}));\nfunction Ze(e) {\n  return [e(\"x\"), e(\"y\")];\n}\nvar Vp = h((() => {\n}));\nfunction zx(e, r, o) {\n  let t = \"\";\n  const n = e.x.translate / r.x, i = e.y.translate / r.y, s = o?.z || 0;\n  if ((n || i || s) && (t = `translate3d(${n}px, ${i}px, ${s}px) `), (r.x !== 1 || r.y !== 1) && (t += `scale(${1 / r.x}, ${1 / r.y}) `), o) {\n    const { transformPerspective: l, rotate: u, pathRotation: m, rotateX: g, rotateY: p, skewX: f, skewY: v } = o;\n    l && (t = `perspective(${l}px) ${t}`), u && (t += `rotate(${u}deg) `), m && (t += `rotate(${m}deg) `), g && (t += `rotateX(${g}deg) `), p && (t += `rotateY(${p}deg) `), f && (t += `skewX(${f}deg) `), v && (t += `skewY(${v}deg) `);\n  }\n  const a = e.x.scale * r.x, d = e.y.scale * r.y;\n  return (a !== 1 || d !== 1) && (t += `scale(${a}, ${d})`), t || \"none\";\n}\nvar Bp = h((() => {\n}));\nfunction Ox(e, r, o, t, n, i) {\n  n ? (e.opacity = oe(0, o.opacity ?? 1, jp(t)), e.opacityExit = oe(r.opacity ?? 1, 0, $p(t))) : i && (e.opacity = oe(r.opacity ?? 1, o.opacity ?? 1, t));\n  for (let s = 0; s < Fp; s++) {\n    const a = Vn[s];\n    let d = xl(r, a), l = xl(o, a);\n    d === void 0 && l === void 0 || (d || (d = 0), l || (l = 0), d === 0 || l === 0 || xs(d) === xs(l) ? (e[a] = Math.max(oe(ks(d), ks(l), t), 0), (We.test(l) || We.test(d)) && (e[a] += \"%\")) : e[a] = l);\n  }\n  (r.rotate || o.rotate) && (e.rotate = oe(r.rotate || 0, o.rotate || 0, t));\n}\nfunction xl(e, r) {\n  return e[r] !== void 0 ? e[r] : e.borderRadius;\n}\nfunction _l(e, r, o) {\n  return (t) => t < e ? 0 : t > r ? 1 : o(ro(e, r, t));\n}\nvar Fp, ks, xs, jp, $p, qp = h((() => {\n  Ye(), lr(), W(), gd(), Fp = Vn.length, ks = (e) => typeof e == \"string\" ? parseFloat(e) : e, xs = (e) => typeof e == \"number\" || U.test(e), jp = /* @__PURE__ */ _l(0, 0.5, la), $p = /* @__PURE__ */ _l(0.5, 0.95, Ve);\n}));\nfunction Ux(e, r, o) {\n  const t = Ce(e) ? e : no(e);\n  return t.start(zn(\"\", t, r, o)), t.animation;\n}\nvar Wp = h((() => {\n  Ja(), mo(), ur();\n}));\nfunction Oo(e, r, o, t = { passive: !0 }) {\n  return e.addEventListener(r, o, t), () => e.removeEventListener(r, o, t);\n}\nvar Hp = h((() => {\n})), Kp, Gp = h((() => {\n  Kp = (e, r) => e.depth - r.depth;\n})), Yp, Xp = h((() => {\n  W(), Gp(), Yp = class {\n    constructor() {\n      this.children = [], this.isDirty = !1;\n    }\n    add(e) {\n      Xs(this.children, e), this.isDirty = !0;\n    }\n    remove(e) {\n      Ut(this.children, e), this.isDirty = !0;\n    }\n    forEach(e) {\n      this.isDirty && this.children.sort(Kp), this.isDirty = !1, this.children.forEach(e);\n    }\n  };\n}));\nfunction Vx(e, r) {\n  const o = Te.now(), t = ({ timestamp: n }) => {\n    const i = n - o;\n    i >= r && (dr(t), e(i - r));\n  };\n  return te.setup(t, !0), () => dr(t);\n}\nvar Jp = h((() => {\n  cr(), or();\n}));\nfunction Ct(e) {\n  return Ce(e) ? e.get() : e;\n}\nvar Zp = h((() => {\n  ur();\n})), Qp, ef = h((() => {\n  W(), Qp = class {\n    constructor() {\n      this.members = [];\n    }\n    add(e) {\n      Xs(this.members, e);\n      for (let r = this.members.length - 1; r >= 0; r--) {\n        const o = this.members[r];\n        if (o === e || o === this.lead || o === this.prevLead) continue;\n        const t = o.instance;\n        (!t || t.isConnected === !1) && !o.snapshot && (Ut(this.members, o), o.unmount());\n      }\n      e.scheduleRender();\n    }\n    remove(e) {\n      if (Ut(this.members, e), e === this.prevLead && (this.prevLead = void 0), e === this.lead) {\n        const r = this.members[this.members.length - 1];\n        r && this.promote(r);\n      }\n    }\n    relegate(e) {\n      for (let r = this.members.indexOf(e) - 1; r >= 0; r--) {\n        const o = this.members[r];\n        if (o.isPresent !== !1 && o.instance?.isConnected !== !1)\n          return this.promote(o), !0;\n      }\n      return !1;\n    }\n    promote(e, r) {\n      const o = this.lead;\n      if (e !== o && (this.prevLead = o, this.lead = e, e.show(), o)) {\n        o.updateSnapshot(), e.scheduleRender();\n        const { layoutDependency: t } = o.options, { layoutDependency: n } = e.options;\n        (t === void 0 || t !== n) && (e.resumeFrom = o, r && (o.preserveOpacity = !0), o.snapshot && (e.snapshot = o.snapshot, e.snapshot.latestValues = o.animationValues || o.latestValues), e.root?.isUpdating && (e.isLayoutDirty = !0)), e.options.crossfade === !1 && o.hide();\n      }\n    }\n    exitAnimationComplete() {\n      this.members.forEach((e) => {\n        e.options.onExitComplete?.(), e.resumingFrom?.options.onExitComplete?.();\n      });\n    }\n    scheduleRender() {\n      this.members.forEach((e) => e.instance && e.scheduleRender(!1));\n    }\n    removeLeadSnapshot() {\n      this.lead?.snapshot && (this.lead.snapshot = void 0);\n    }\n  };\n})), To, rf = h((() => {\n  To = {\n    hasAnimatedSinceResize: !0,\n    hasEverUpdated: !1\n  };\n}));\nfunction Ii(e, r, o, t) {\n  const { latestValues: n } = r;\n  n[e] && (o[e] = n[e], r.setStaticValue(e, 0), t && (t[e] = 0));\n}\nfunction of(e) {\n  if (e.hasCheckedOptimisedAppear = !0, e.root === e) return;\n  const { visualElement: r } = e.options;\n  if (!r) return;\n  const o = ih(r);\n  if (window.MotionHasOptimisedAnimation(o, \"transform\")) {\n    const { layout: n, layoutId: i } = e.options;\n    window.MotionCancelOptimisedAnimation(o, \"transform\", te, !(n || i));\n  }\n  const { parent: t } = e;\n  t && !t.hasCheckedOptimisedAppear && of(t);\n}\nfunction tf({ attachResizeListener: e, defaultParent: r, measureScroll: o, checkIsScrollRoot: t, resetTransform: n }) {\n  return class {\n    constructor(s = {}, a = r?.()) {\n      this.id = af++, this.animationId = 0, this.animationCommitId = 0, this.children = /* @__PURE__ */ new Set(), this.options = {}, this.isTreeAnimating = !1, this.isAnimationBlocked = !1, this.isLayoutDirty = !1, this.isProjectionDirty = !1, this.isSharedProjectionDirty = !1, this.isTransformDirty = !1, this.updateManuallyBlocked = !1, this.updateBlockedByResize = !1, this.isUpdating = !1, this.isSVG = !1, this.needsReset = !1, this.shouldResetTransform = !1, this.hasCheckedOptimisedAppear = !1, this.treeScale = {\n        x: 1,\n        y: 1\n      }, this.eventHandlers = /* @__PURE__ */ new Map(), this.hasTreeAnimated = !1, this.layoutVersion = 0, this.updateScheduled = !1, this.scheduleUpdate = () => this.update(), this.projectionUpdateScheduled = !1, this.checkUpdateFailed = () => {\n        this.isUpdating && (this.isUpdating = !1, this.clearAllSnapshots());\n      }, this.updateProjection = () => {\n        this.projectionUpdateScheduled = !1, Rr.value && (br.nodes = br.calculatedTargetDeltas = br.calculatedProjections = 0), this.nodes.forEach(jx), this.nodes.forEach(Gx), this.nodes.forEach(Yx), this.nodes.forEach($x), Rr.addProjectionMetrics && Rr.addProjectionMetrics(br);\n      }, this.resolvedRelativeTargetAt = 0, this.linkedParentVersion = 0, this.hasProjected = !1, this.isVisible = !0, this.animationProgress = 0, this.sharedNodes = /* @__PURE__ */ new Map(), this.latestValues = s, this.root = a ? a.root || a : this, this.path = a ? [...a.path, a] : [], this.parent = a, this.depth = a ? a.depth + 1 : 0;\n      for (let d = 0; d < this.path.length; d++) this.path[d].shouldResetTransform = !0;\n      this.root === this && (this.nodes = new Yp());\n    }\n    addEventListener(s, a) {\n      return this.eventHandlers.has(s) || this.eventHandlers.set(s, new _n()), this.eventHandlers.get(s).add(a);\n    }\n    notifyListeners(s, ...a) {\n      const d = this.eventHandlers.get(s);\n      d && d.notify(...a);\n    }\n    hasListeners(s) {\n      return this.eventHandlers.has(s);\n    }\n    mount(s) {\n      if (this.instance) return;\n      this.isSVG = vd(s) && !gx(s), this.instance = s;\n      const { layoutId: a, layout: d, visualElement: l } = this.options;\n      if (l && !l.current && l.mount(s), this.root.nodes.add(this), this.parent && this.parent.children.add(this), this.root.hasTreeAnimated && (d || a) && (this.isLayoutDirty = !0), e) {\n        let u, m = 0;\n        const g = () => this.root.updateBlockedByResize = !1;\n        te.read(() => {\n          m = window.innerWidth;\n        }), e(s, () => {\n          const p = window.innerWidth;\n          p !== m && (m = p, this.root.updateBlockedByResize = !0, u && u(), u = Vx(g, 250), To.hasAnimatedSinceResize && (To.hasAnimatedSinceResize = !1, this.nodes.forEach(Sl)));\n        });\n      }\n      a && this.root.registerSharedNode(a, this), this.options.animate !== !1 && l && (a || d) && this.addEventListener(\"didUpdate\", ({ delta: u, hasLayoutChanged: m, hasRelativeLayoutChanged: g, layout: p }) => {\n        if (this.isTreeAnimationBlocked()) {\n          this.target = void 0, this.relativeTarget = void 0;\n          return;\n        }\n        const f = this.options.transition || l.getDefaultTransition() || df, { onLayoutAnimationStart: v, onLayoutAnimationComplete: x } = l.getProps(), w = !this.targetLayout || !Op(this.targetLayout, p), b = !m && g;\n        if (this.options.layoutRoot || this.resumeFrom || b || m && (w || !this.currentAnimation)) {\n          this.resumeFrom && (this.resumingFrom = this.resumeFrom, this.resumingFrom.resumingFrom = void 0);\n          const k = {\n            ...Xa(f, \"layout\"),\n            onPlay: v,\n            onComplete: x\n          };\n          (l.shouldReduceMotion || this.options.layoutRoot) && (k.delay = 0, k.type = !1), this.startAnimation(k), this.setAnimationOrigin(u, b, k.path);\n        } else\n          m || Sl(this), this.isLead() && this.options.onExitComplete && this.options.onExitComplete();\n        this.targetLayout = p;\n      });\n    }\n    unmount() {\n      this.options.layoutId && this.willUpdate(), this.root.nodes.remove(this);\n      const s = this.getStack();\n      s && s.remove(this), this.parent && this.parent.children.delete(this), this.instance = void 0, this.eventHandlers.clear(), dr(this.updateProjection);\n    }\n    blockUpdate() {\n      this.updateManuallyBlocked = !0;\n    }\n    unblockUpdate() {\n      this.updateManuallyBlocked = !1;\n    }\n    isUpdateBlocked() {\n      return this.updateManuallyBlocked || this.updateBlockedByResize;\n    }\n    isTreeAnimationBlocked() {\n      return this.isAnimationBlocked || this.parent && this.parent.isTreeAnimationBlocked() || !1;\n    }\n    startUpdate() {\n      this.isUpdateBlocked() || (this.isUpdating = !0, this.nodes && this.nodes.forEach(Xx), this.animationId++);\n    }\n    getTransformTemplate() {\n      const { visualElement: s } = this.options;\n      return s && s.getProps().transformTemplate;\n    }\n    willUpdate(s = !0) {\n      if (this.root.hasTreeAnimated = !0, this.root.isUpdateBlocked()) {\n        this.options.onExitComplete && this.options.onExitComplete();\n        return;\n      }\n      if (window.MotionCancelOptimisedAnimation && !this.hasCheckedOptimisedAppear && of(this), !this.root.isUpdating && this.root.startUpdate(), this.isLayoutDirty) return;\n      this.isLayoutDirty = !0;\n      for (let u = 0; u < this.path.length; u++) {\n        const m = this.path[u];\n        m.shouldResetTransform = !0, (typeof m.latestValues.x == \"string\" || typeof m.latestValues.y == \"string\") && (m.isLayoutDirty = !0), m.updateScroll(\"snapshot\"), m.options.layoutRoot && m.willUpdate(!1);\n      }\n      const { layoutId: a, layout: d } = this.options;\n      if (a === void 0 && !d) return;\n      const l = this.getTransformTemplate();\n      this.prevTransformTemplateValue = l ? l(this.latestValues, \"\") : void 0, this.updateSnapshot(), s && this.notifyListeners(\"willUpdate\");\n    }\n    update() {\n      if (this.updateScheduled = !1, this.isUpdateBlocked()) {\n        const a = this.updateBlockedByResize;\n        this.unblockUpdate(), this.updateBlockedByResize = !1, this.clearAllSnapshots(), a && this.nodes.forEach(Wx), this.nodes.forEach(Al);\n        return;\n      }\n      if (this.animationId <= this.animationCommitId) {\n        this.nodes.forEach(Cl);\n        return;\n      }\n      this.animationCommitId = this.animationId, this.isUpdating ? (this.isUpdating = !1, this.nodes.forEach(Hx), this.nodes.forEach(Kx), this.nodes.forEach(Bx), this.nodes.forEach(Fx)) : this.nodes.forEach(Cl), this.clearAllSnapshots();\n      const s = Te.now();\n      Ae.delta = Ge(0, 1e3 / 60, s - Ae.timestamp), Ae.timestamp = s, Ae.isProcessing = !0, yt.update.process(Ae), yt.preRender.process(Ae), yt.render.process(Ae), Ae.isProcessing = !1;\n    }\n    didUpdate() {\n      this.updateScheduled || (this.updateScheduled = !0, Bn.read(this.scheduleUpdate));\n    }\n    clearAllSnapshots() {\n      this.nodes.forEach(qx), this.sharedNodes.forEach(Jx);\n    }\n    scheduleUpdateProjection() {\n      this.projectionUpdateScheduled || (this.projectionUpdateScheduled = !0, te.preRender(this.updateProjection, !1, !0));\n    }\n    scheduleCheckAfterUnmount() {\n      te.postRender(() => {\n        this.isLayoutDirty ? this.root.didUpdate() : this.root.checkUpdateFailed();\n      });\n    }\n    updateSnapshot() {\n      this.snapshot || !this.instance || (this.snapshot = this.measure(), this.snapshot && !Pe(this.snapshot.measuredBox.x) && !Pe(this.snapshot.measuredBox.y) && (this.snapshot = void 0));\n    }\n    updateLayout() {\n      if (!this.instance || (this.updateScroll(), !(this.options.alwaysMeasureLayout && this.isLead()) && !this.isLayoutDirty)) return;\n      if (this.resumeFrom && !this.resumeFrom.instance) for (let d = 0; d < this.path.length; d++) this.path[d].updateScroll();\n      const s = this.layout;\n      this.layout = this.measure(!1), this.layoutVersion++, this.layoutCorrected || (this.layoutCorrected = xe()), this.isLayoutDirty = !1, this.projectionDelta = void 0, this.notifyListeners(\"measure\", this.layout.layoutBox);\n      const { visualElement: a } = this.options;\n      a && a.notify(\"LayoutMeasure\", this.layout.layoutBox, s ? s.layoutBox : void 0);\n    }\n    updateScroll(s = \"measure\") {\n      let a = !!(this.options.layoutScroll && this.instance);\n      if (this.scroll && this.scroll.animationId === this.root.animationId && this.scroll.phase === s && (a = !1), a && this.instance) {\n        const d = t(this.instance);\n        this.scroll = {\n          animationId: this.root.animationId,\n          phase: s,\n          isRoot: d,\n          offset: o(this.instance),\n          wasRoot: this.scroll ? this.scroll.isRoot : d\n        };\n      }\n    }\n    resetTransform() {\n      if (!n) return;\n      const s = this.isLayoutDirty || this.shouldResetTransform || this.options.alwaysMeasureLayout, a = this.projectionDelta && !zp(this.projectionDelta), d = this.getTransformTemplate(), l = d ? d(this.latestValues, \"\") : void 0, u = l !== this.prevTransformTemplateValue;\n      s && this.instance && (a || Er(this.latestValues) || u) && (n(this.instance, l), this.shouldResetTransform = !1, this.scheduleRender());\n    }\n    measure(s = !0) {\n      const a = this.measurePageBox();\n      let d = this.removeElementScroll(a);\n      return s && (d = this.removeTransform(d)), e1(d), {\n        animationId: this.root.animationId,\n        measuredBox: a,\n        layoutBox: d,\n        latestValues: {},\n        source: this.id\n      };\n    }\n    measurePageBox() {\n      const { visualElement: s } = this.options;\n      if (!s) return xe();\n      const a = s.measureViewportBox();\n      if (!(this.scroll?.wasRoot || this.path.some(r1))) {\n        const { scroll: d } = this.root;\n        d && (er(a.x, d.offset.x), er(a.y, d.offset.y));\n      }\n      return a;\n    }\n    removeElementScroll(s) {\n      const a = xe();\n      if ($e(a, s), this.scroll?.wasRoot) return a;\n      for (let d = 0; d < this.path.length; d++) {\n        const l = this.path[d], { scroll: u, options: m } = l;\n        l !== this.root && u && m.layoutScroll && (u.wasRoot && $e(a, s), er(a.x, u.offset.x), er(a.y, u.offset.y));\n      }\n      return a;\n    }\n    applyTransform(s, a = !1, d) {\n      const l = d || xe();\n      $e(l, s);\n      for (let u = 0; u < this.path.length; u++) {\n        const m = this.path[u];\n        !a && m.options.layoutScroll && m.scroll && m !== m.root && (er(l.x, -m.scroll.offset.x), er(l.y, -m.scroll.offset.y)), Er(m.latestValues) && At(l, m.latestValues, m.layout?.layoutBox);\n      }\n      return Er(this.latestValues) && At(l, this.latestValues, this.layout?.layoutBox), l;\n    }\n    removeTransform(s) {\n      const a = xe();\n      $e(a, s);\n      for (let d = 0; d < this.path.length; d++) {\n        const l = this.path[d];\n        if (!Er(l.latestValues)) continue;\n        let u;\n        l.instance && (fs(l.latestValues) && l.updateSnapshot(), u = xe(), $e(u, l.measurePageBox())), fl(a, l.latestValues, l.snapshot?.layoutBox, u);\n      }\n      return Er(this.latestValues) && fl(a, this.latestValues), a;\n    }\n    setTargetDelta(s) {\n      this.targetDelta = s, this.root.scheduleUpdateProjection(), this.isProjectionDirty = !0;\n    }\n    setOptions(s) {\n      this.options = {\n        ...this.options,\n        ...s,\n        crossfade: s.crossfade !== void 0 ? s.crossfade : !0\n      };\n    }\n    clearMeasurements() {\n      this.scroll = void 0, this.layout = void 0, this.snapshot = void 0, this.prevTransformTemplateValue = void 0, this.targetDelta = void 0, this.target = void 0, this.isLayoutDirty = !1;\n    }\n    forceRelativeParentToResolveTarget() {\n      this.relativeParent && this.relativeParent.resolvedRelativeTargetAt !== Ae.timestamp && this.relativeParent.resolveTargetDelta(!0);\n    }\n    resolveTargetDelta(s = !1) {\n      const a = this.getLead();\n      this.isProjectionDirty || (this.isProjectionDirty = a.isProjectionDirty), this.isTransformDirty || (this.isTransformDirty = a.isTransformDirty), this.isSharedProjectionDirty || (this.isSharedProjectionDirty = a.isSharedProjectionDirty);\n      const d = !!this.resumingFrom || this !== a;\n      if (!(s || d && this.isSharedProjectionDirty || this.isProjectionDirty || this.parent?.isProjectionDirty || this.attemptToResolveRelativeTarget || this.root.updateBlockedByResize)) return;\n      const { layout: l, layoutId: u } = this.options;\n      if (!this.layout || !(l || u)) return;\n      this.resolvedRelativeTargetAt = Ae.timestamp;\n      const m = this.getClosestProjectingParent();\n      m && this.linkedParentVersion !== m.layoutVersion && !m.options.layoutRoot && this.removeRelativeTarget(), !this.targetDelta && !this.relativeTarget && (this.options.layoutAnchor !== !1 && m && m.layout ? this.createRelativeTarget(m, this.layout.layoutBox, m.layout.layoutBox) : this.removeRelativeTarget()), !(!this.relativeTarget && !this.targetDelta) && (this.target || (this.target = xe(), this.targetWithTransforms = xe()), this.relativeTarget && this.relativeTargetOrigin && this.relativeParent && this.relativeParent.target ? (this.forceRelativeParentToResolveTarget(), Ix(this.target, this.relativeTarget, this.relativeParent.target, this.options.layoutAnchor || void 0)) : this.targetDelta ? (this.resumingFrom ? this.applyTransform(this.layout.layoutBox, !1, this.target) : $e(this.target, this.layout.layoutBox), Zh(this.target, this.targetDelta)) : $e(this.target, this.layout.layoutBox), this.attemptToResolveRelativeTarget && (this.attemptToResolveRelativeTarget = !1, this.options.layoutAnchor !== !1 && m && !!m.resumingFrom == !!this.resumingFrom && !m.options.layoutScroll && m.target && this.animationProgress !== 1 ? this.createRelativeTarget(m, this.target, m.target) : this.relativeParent = this.relativeTarget = void 0), Rr.value && br.calculatedTargetDeltas++);\n    }\n    getClosestProjectingParent() {\n      if (!(!this.parent || fs(this.parent.latestValues) || Jh(this.parent.latestValues)))\n        return this.parent.isProjecting() ? this.parent : this.parent.getClosestProjectingParent();\n    }\n    isProjecting() {\n      return !!((this.relativeTarget || this.targetDelta || this.options.layoutRoot) && this.layout);\n    }\n    createRelativeTarget(s, a, d) {\n      this.relativeParent = s, this.linkedParentVersion = s.layoutVersion, this.forceRelativeParentToResolveTarget(), this.relativeTarget = xe(), this.relativeTargetOrigin = xe(), Qt(this.relativeTargetOrigin, a, d, this.options.layoutAnchor || void 0), $e(this.relativeTarget, this.relativeTargetOrigin);\n    }\n    removeRelativeTarget() {\n      this.relativeParent = this.relativeTarget = void 0;\n    }\n    calcProjection() {\n      const s = this.getLead(), a = !!this.resumingFrom || this !== s;\n      let d = !0;\n      if ((this.isProjectionDirty || this.parent?.isProjectionDirty) && (d = !1), a && (this.isSharedProjectionDirty || this.isTransformDirty) && (d = !1), this.resolvedRelativeTargetAt === Ae.timestamp && (d = !1), d) return;\n      const { layout: l, layoutId: u } = this.options;\n      if (this.isTreeAnimating = !!(this.parent && this.parent.isTreeAnimating || this.currentAnimation || this.pendingAnimation), this.isTreeAnimating || (this.targetDelta = this.relativeTarget = void 0), !this.layout || !(l || u)) return;\n      $e(this.layoutCorrected, this.layout.layoutBox);\n      const m = this.treeScale.x, g = this.treeScale.y;\n      yx(this.layoutCorrected, this.treeScale, this.path, a), s.layout && !s.target && (this.treeScale.x !== 1 || this.treeScale.y !== 1) && (s.target = s.layout.layoutBox, s.targetWithTransforms = xe());\n      const { target: p } = s;\n      if (!p) {\n        this.prevProjectionDelta && (this.createProjectionDeltas(), this.scheduleRender());\n        return;\n      }\n      !this.projectionDelta || !this.prevProjectionDelta ? this.createProjectionDeltas() : (ll(this.prevProjectionDelta.x, this.projectionDelta.x), ll(this.prevProjectionDelta.y, this.projectionDelta.y)), Eo(this.projectionDelta, this.layoutCorrected, p, this.latestValues), (this.treeScale.x !== m || this.treeScale.y !== g || !kl(this.projectionDelta.x, this.prevProjectionDelta.x) || !kl(this.projectionDelta.y, this.prevProjectionDelta.y)) && (this.hasProjected = !0, this.scheduleRender(), this.notifyListeners(\"projectionUpdate\", p)), Rr.value && br.calculatedProjections++;\n    }\n    hide() {\n      this.isVisible = !1;\n    }\n    show() {\n      this.isVisible = !0;\n    }\n    scheduleRender(s = !0) {\n      if (this.options.visualElement?.scheduleRender(), s) {\n        const a = this.getStack();\n        a && a.scheduleRender();\n      }\n      this.resumingFrom && !this.resumingFrom.instance && (this.resumingFrom = void 0);\n    }\n    createProjectionDeltas() {\n      this.prevProjectionDelta = Lr(), this.projectionDelta = Lr(), this.projectionDeltaWithTransform = Lr();\n    }\n    setAnimationOrigin(s, a = !1, d) {\n      const l = this.snapshot, u = l ? l.latestValues : {}, m = { ...this.latestValues }, g = Lr();\n      (!this.relativeParent || !this.relativeParent.options.layoutRoot) && (this.relativeTarget = this.relativeTargetOrigin = void 0), this.attemptToResolveRelativeTarget = !a;\n      const p = xe(), f = (l ? l.source : void 0) !== (this.layout ? this.layout.source : void 0), v = this.getStack(), x = !v || v.members.length <= 1, w = !!(f && !x && this.options.crossfade === !0 && !this.path.some(Qx));\n      this.animationProgress = 0;\n      let b;\n      const k = d?.interpolateProjection(s);\n      this.mixTargetDelta = (y) => {\n        const C = y / 1e3, P = k?.(C);\n        P ? (g.x.translate = P.x, g.x.scale = oe(s.x.scale, 1, C), g.x.origin = s.x.origin, g.x.originPoint = s.x.originPoint, g.y.translate = P.y, g.y.scale = oe(s.y.scale, 1, C), g.y.origin = s.y.origin, g.y.originPoint = s.y.originPoint) : (El(g.x, s.x, C), El(g.y, s.y, C)), this.setTargetDelta(g), this.relativeTarget && this.relativeTargetOrigin && this.layout && this.relativeParent && this.relativeParent.layout && (Qt(p, this.layout.layoutBox, this.relativeParent.layout.layoutBox, this.options.layoutAnchor || void 0), Zx(this.relativeTarget, this.relativeTargetOrigin, p, C), b && Dx(this.relativeTarget, b) && (this.isProjectionDirty = !1), b || (b = xe()), $e(b, this.relativeTarget)), f && (this.animationValues = m, Ox(m, u, this.latestValues, C, w, x)), P && P.rotate !== void 0 && (this.animationValues || (this.animationValues = m), this.animationValues.pathRotation = P.rotate), this.root.scheduleUpdateProjection(), this.scheduleRender(), this.animationProgress = C;\n      }, this.mixTargetDelta(this.options.layoutRoot ? 1e3 : 0);\n    }\n    startAnimation(s) {\n      this.notifyListeners(\"animationStart\"), this.currentAnimation?.stop(), this.resumingFrom?.currentAnimation?.stop(), this.pendingAnimation && (dr(this.pendingAnimation), this.pendingAnimation = void 0), this.pendingAnimation = te.update(() => {\n        To.hasAnimatedSinceResize = !0, this.motionValue || (this.motionValue = no(0)), this.motionValue.jump(0, !1), this.currentAnimation = Ux(this.motionValue, [0, 1e3], {\n          ...s,\n          velocity: 0,\n          isSync: !0,\n          onUpdate: (a) => {\n            this.mixTargetDelta(a), s.onUpdate && s.onUpdate(a);\n          },\n          onComplete: () => {\n            s.onComplete && s.onComplete(), this.completeAnimation();\n          }\n        }), this.resumingFrom && (this.resumingFrom.currentAnimation = this.currentAnimation), this.pendingAnimation = void 0;\n      });\n    }\n    completeAnimation() {\n      this.resumingFrom && (this.resumingFrom.currentAnimation = void 0, this.resumingFrom.preserveOpacity = void 0);\n      const s = this.getStack();\n      s && s.exitAnimationComplete(), this.resumingFrom = this.currentAnimation = this.animationValues = void 0, this.notifyListeners(\"animationComplete\");\n    }\n    finishAnimation() {\n      this.currentAnimation && (this.mixTargetDelta && this.mixTargetDelta(sf), this.currentAnimation.stop()), this.completeAnimation();\n    }\n    applyTransformsToTarget() {\n      const s = this.getLead();\n      let { targetWithTransforms: a, target: d, layout: l, latestValues: u } = s;\n      if (!(!a || !d || !l)) {\n        if (this !== s && this.layout && l && nf(this.options.animationType, this.layout.layoutBox, l.layoutBox)) {\n          d = this.target || xe();\n          const m = Pe(this.layout.layoutBox.x);\n          d.x.min = s.target.x.min, d.x.max = d.x.min + m;\n          const g = Pe(this.layout.layoutBox.y);\n          d.y.min = s.target.y.min, d.y.max = d.y.min + g;\n        }\n        $e(a, d), At(a, u), Eo(this.projectionDeltaWithTransform, this.layoutCorrected, a, u);\n      }\n    }\n    registerSharedNode(s, a) {\n      this.sharedNodes.has(s) || this.sharedNodes.set(s, new Qp()), this.sharedNodes.get(s).add(a);\n      const d = a.options.initialPromotionConfig;\n      a.promote({\n        transition: d ? d.transition : void 0,\n        preserveFollowOpacity: d && d.shouldPreserveFollowOpacity ? d.shouldPreserveFollowOpacity(a) : void 0\n      });\n    }\n    isLead() {\n      const s = this.getStack();\n      return s ? s.lead === this : !0;\n    }\n    getLead() {\n      const { layoutId: s } = this.options;\n      return s ? this.getStack()?.lead || this : this;\n    }\n    getPrevLead() {\n      const { layoutId: s } = this.options;\n      return s ? this.getStack()?.prevLead : void 0;\n    }\n    getStack() {\n      const { layoutId: s } = this.options;\n      if (s) return this.root.sharedNodes.get(s);\n    }\n    promote({ needsReset: s, transition: a, preserveFollowOpacity: d } = {}) {\n      const l = this.getStack();\n      l && l.promote(this, d), s && (this.projectionDelta = void 0, this.needsReset = !0), a && this.setOptions({ transition: a });\n    }\n    relegate() {\n      const s = this.getStack();\n      return s ? s.relegate(this) : !1;\n    }\n    resetSkewAndRotation() {\n      const { visualElement: s } = this.options;\n      if (!s) return;\n      let a = !1;\n      const { latestValues: d } = s;\n      if ((d.z || d.rotate || d.rotateX || d.rotateY || d.rotateZ || d.skewX || d.skewY) && (a = !0), !a) return;\n      const l = {};\n      d.z && Ii(\"z\", s, l, this.animationValues);\n      for (let u = 0; u < St.length; u++)\n        Ii(`rotate${St[u]}`, s, l, this.animationValues), Ii(`skew${St[u]}`, s, l, this.animationValues);\n      s.render();\n      for (const u in l)\n        s.setStaticValue(u, l[u]), this.animationValues && (this.animationValues[u] = l[u]);\n      s.scheduleRender();\n    }\n    applyProjectionStyles(s, a) {\n      if (!this.instance || this.isSVG) return;\n      if (!this.isVisible) {\n        s.visibility = \"hidden\";\n        return;\n      }\n      const d = this.getTransformTemplate();\n      if (this.needsReset) {\n        this.needsReset = !1, s.visibility = \"\", s.opacity = \"\", s.pointerEvents = Ct(a?.pointerEvents) || \"\", s.transform = d ? d(this.latestValues, \"\") : \"none\";\n        return;\n      }\n      const l = this.getLead();\n      if (!this.projectionDelta || !this.layout || !l.target) {\n        this.options.layoutId && (s.opacity = this.latestValues.opacity !== void 0 ? this.latestValues.opacity : 1, s.pointerEvents = Ct(a?.pointerEvents) || \"\"), this.hasProjected && !Er(this.latestValues) && (s.transform = d ? d({}, \"\") : \"none\", this.hasProjected = !1);\n        return;\n      }\n      s.visibility = \"\";\n      const u = l.animationValues || l.latestValues;\n      this.applyTransformsToTarget();\n      let m = zx(this.projectionDeltaWithTransform, this.treeScale, u);\n      d && (m = d(u, m)), s.transform = m;\n      const { x: g, y: p } = this.projectionDelta;\n      s.transformOrigin = `${g.origin * 100}% ${p.origin * 100}% 0`, l.animationValues ? s.opacity = l === this ? u.opacity ?? this.latestValues.opacity ?? 1 : this.preserveOpacity ? this.latestValues.opacity : u.opacityExit : s.opacity = l === this ? u.opacity !== void 0 ? u.opacity : \"\" : u.opacityExit !== void 0 ? u.opacityExit : 0;\n      for (const f in Zt) {\n        if (u[f] === void 0) continue;\n        const { correct: v, applyTo: x, isCSSVariable: w } = Zt[f], b = m === \"none\" ? u[f] : v(u[f], l);\n        if (x) {\n          const k = x.length;\n          for (let y = 0; y < k; y++) s[x[y]] = b;\n        } else w ? this.options.visualElement.renderState.vars[f] = b : s[f] = b;\n      }\n      this.options.layoutId && (s.pointerEvents = l === this ? Ct(a?.pointerEvents) || \"\" : \"none\");\n    }\n    clearSnapshot() {\n      this.resumeFrom = this.snapshot = void 0;\n    }\n    resetTree() {\n      this.root.nodes.forEach((s) => s.currentAnimation?.stop()), this.root.nodes.forEach(Al), this.root.sharedNodes.clear();\n    }\n  };\n}\nfunction Bx(e) {\n  e.updateLayout();\n}\nfunction Fx(e) {\n  const r = e.resumeFrom?.snapshot || e.snapshot;\n  if (e.isLead() && e.layout && r && e.hasListeners(\"didUpdate\")) {\n    const { layoutBox: o, measuredBox: t } = e.layout, { animationType: n } = e.options, i = r.source !== e.layout.source;\n    if (n === \"size\") Ze((u) => {\n      const m = i ? r.measuredBox[u] : r.layoutBox[u], g = Pe(m);\n      m.min = o[u].min, m.max = m.min + g;\n    });\n    else if (n === \"x\" || n === \"y\") {\n      const u = n === \"x\" ? \"y\" : \"x\";\n      ws(i ? r.measuredBox[u] : r.layoutBox[u], o[u]);\n    } else nf(n, r.layoutBox, o) && Ze((u) => {\n      const m = i ? r.measuredBox[u] : r.layoutBox[u], g = Pe(o[u]);\n      m.max = m.min + g, e.relativeTarget && !e.currentAnimation && (e.isProjectionDirty = !0, e.relativeTarget[u].max = e.relativeTarget[u].min + g);\n    });\n    const s = Lr();\n    Eo(s, o, r.layoutBox);\n    const a = Lr();\n    i ? Eo(a, e.applyTransform(t, !0), r.measuredBox) : Eo(a, o, r.layoutBox);\n    const d = !zp(s);\n    let l = !1;\n    if (!e.resumeFrom) {\n      const u = e.getClosestProjectingParent();\n      if (u && !u.resumeFrom) {\n        const { snapshot: m, layout: g } = u;\n        if (m && g) {\n          const p = e.options.layoutAnchor || void 0, f = xe();\n          Qt(f, r.layoutBox, m.layoutBox, p);\n          const v = xe();\n          Qt(v, o, g.layoutBox, p), Op(f, v) || (l = !0), u.options.layoutRoot && (e.relativeTarget = v, e.relativeTargetOrigin = f, e.relativeParent = u);\n        }\n      }\n    }\n    e.notifyListeners(\"didUpdate\", {\n      layout: o,\n      snapshot: r,\n      delta: a,\n      layoutDelta: s,\n      hasLayoutChanged: d,\n      hasRelativeLayoutChanged: l\n    });\n  } else if (e.isLead()) {\n    const { onExitComplete: o } = e.options;\n    o && o();\n  }\n  e.options.transition = void 0;\n}\nfunction jx(e) {\n  Rr.value && br.nodes++, e.parent && (e.isProjecting() || (e.isProjectionDirty = e.parent.isProjectionDirty), e.isSharedProjectionDirty || (e.isSharedProjectionDirty = !!(e.isProjectionDirty || e.parent.isProjectionDirty || e.parent.isSharedProjectionDirty)), e.isTransformDirty || (e.isTransformDirty = e.parent.isTransformDirty));\n}\nfunction $x(e) {\n  e.isProjectionDirty = e.isSharedProjectionDirty = e.isTransformDirty = !1;\n}\nfunction qx(e) {\n  e.clearSnapshot();\n}\nfunction Al(e) {\n  e.clearMeasurements();\n}\nfunction Wx(e) {\n  e.isLayoutDirty = !0, e.updateLayout();\n}\nfunction Cl(e) {\n  e.isLayoutDirty = !1;\n}\nfunction Hx(e) {\n  e.isAnimationBlocked && e.layout && !e.isLayoutDirty && (e.snapshot = e.layout, e.isLayoutDirty = !0);\n}\nfunction Kx(e) {\n  const { visualElement: r } = e.options;\n  r && r.getProps().onBeforeLayoutMeasure && r.notify(\"BeforeLayoutMeasure\"), e.resetTransform();\n}\nfunction Sl(e) {\n  e.finishAnimation(), e.targetDelta = e.relativeTarget = e.target = void 0, e.isProjectionDirty = !0;\n}\nfunction Gx(e) {\n  e.resolveTargetDelta();\n}\nfunction Yx(e) {\n  e.calcProjection();\n}\nfunction Xx(e) {\n  e.resetSkewAndRotation();\n}\nfunction Jx(e) {\n  e.removeLeadSnapshot();\n}\nfunction El(e, r, o) {\n  e.translate = oe(r.translate, 0, o), e.scale = oe(r.scale, 1, o), e.origin = r.origin, e.originPoint = r.originPoint;\n}\nfunction Tl(e, r, o, t) {\n  e.min = oe(r.min, o.min, t), e.max = oe(r.max, o.max, t);\n}\nfunction Zx(e, r, o, t) {\n  Tl(e.x, r.x, o.x, t), Tl(e.y, r.y, o.y, t);\n}\nfunction Qx(e) {\n  return e.animationValues && e.animationValues.opacityExit !== void 0;\n}\nfunction Rl(e) {\n  e.min = _s(e.min), e.max = _s(e.max);\n}\nfunction e1(e) {\n  Rl(e.x), Rl(e.y);\n}\nfunction nf(e, r, o) {\n  return e === \"position\" || e === \"preserve-aspect\" && !Nx(wl(r), wl(o), 0.2);\n}\nfunction r1(e) {\n  return e !== e.root && e.scroll?.wasRoot;\n}\nvar br, St, sf, af, df, Mi, _s, Id = h((() => {\n  W(), Wp(), id(), Dn(), fd(), cr(), Sd(), Mh(), Jp(), $n(), Dh(), Ye(), mo(), Zp(), qp(), Tp(), Jn(), Nd(), Dp(), qn(), Up(), ef(), Bp(), Vp(), Xp(), xd(), rf(), or(), br = {\n    nodes: 0,\n    calculatedTargetDeltas: 0,\n    calculatedProjections: 0\n  }, St = [\n    \"\",\n    \"X\",\n    \"Y\",\n    \"Z\"\n  ], sf = 1e3, af = 0, df = {\n    duration: 0.45,\n    ease: [\n      0.4,\n      0,\n      0.1,\n      1\n    ]\n  }, Mi = (e) => typeof navigator < \"u\" && navigator.userAgent && navigator.userAgent.toLowerCase().includes(e), _s = Mi(\"applewebkit/\") && !Mi(\"chrome/\") ? Math.round : Ve;\n})), cf, lf = h((() => {\n  Hp(), Id(), cf = tf({\n    attachResizeListener: (e, r) => Oo(e, \"resize\", r),\n    measureScroll: () => ({\n      x: document.documentElement.scrollLeft || document.body?.scrollLeft || 0,\n      y: document.documentElement.scrollTop || document.body?.scrollTop || 0\n    }),\n    checkIsScrollRoot: () => !0\n  });\n})), dt, Md, o1 = h((() => {\n  Id(), lf(), dt = { current: void 0 }, Md = tf({\n    measureScroll: (e) => ({\n      x: e.scrollLeft,\n      y: e.scrollTop\n    }),\n    defaultParent: () => {\n      if (!dt.current) {\n        const e = new cf({});\n        e.mount(window), e.setOptions({ layoutScroll: !0 }), dt.current = e;\n      }\n      return dt.current;\n    },\n    resetTransform: (e, r) => {\n      e.style.transform = r !== void 0 ? r : \"none\";\n    },\n    checkIsScrollRoot: (e) => window.getComputedStyle(e).position === \"fixed\"\n  });\n})), Z = h((() => {\n  qg(), Nn(), ja(), Ug(), Ka(), W(), mo(), Ja(), Dn(), eh(), Gg(), Yo(), Ya(), uo(), Xg(), qa(), dh(), sd(), ah(), nh(), id(), Na(), Ia(), La(), Rn(), Qm(), Ba(), yh(), Mn(), dg(), ag(), cg(), gd(), hg(), Va(), Ua(), Lg(), Ig(), Mg(), jg(), Ha(), zg(), Ta(), On(), hd(), or(), Un(), pd(), _g(), Xe(), kh(), ha(), fd(), cr(), Fn(), Yk(), Zk(), tx(), Rh(), Ch(), Sh(), Da(), za(), od(), rd(), mx(), Mh(), sg(), $n(), Dh(), Sa(), Hm(), Xm(), Aa(), Ye(), Km(), Sg(), Pg(), ur(), Go(), wa(), ka(), qm(), Tn(), tr(), cd(), ud(), hh(), Ar(), lr(), dd(), md(), Oh(), th(), oh(), kd(), fx(), _x(), qn(), Gh(), Vh(), Sx(), Lx(), Ap(), bd(), Fh(), cp(), Hn(), jh(), Xo(), Qa(), rh(), Gn(), Wh(), Xh(), Tp(), Jn(), Nd(), Dp(), Up(), Vp(), xd(), ep(), ip(), ap(), Bp(), qp(), Wp(), Hp(), Gp(), Xp(), Jp(), Zp(), Id(), lf(), o1(), rf(), ef(), Ad(), tp(), Cd(), Td(), fp(), Pd(), vp(), gp(), bp(), wp(), Nm(), Sd(), yd();\n})), io, Jo = h((() => {\n  io = Ke({\n    transformPagePoint: (e) => e,\n    isStatic: !1,\n    reducedMotion: \"never\"\n  });\n}));\nfunction Pl(e, r) {\n  if (typeof e == \"function\") return e(r);\n  e != null && (e.current = r);\n}\nfunction t1(...e) {\n  return (r) => {\n    let o = !1;\n    const t = e.map((n) => {\n      const i = Pl(n, r);\n      return !o && typeof i == \"function\" && (o = !0), i;\n    });\n    if (o) return () => {\n      for (let n = 0; n < t.length; n++) {\n        const i = t[n];\n        typeof i == \"function\" ? i() : Pl(e[n], null);\n      }\n    };\n  };\n}\nfunction n1(...e) {\n  return Vo.useCallback(t1(...e), e);\n}\nvar uf = h((() => {\n}));\nfunction i1({ children: e, isPresent: r, anchorX: o, anchorY: t, root: n, pop: i }) {\n  const s = Ne(), a = O(null), d = O({\n    width: 0,\n    height: 0,\n    top: 0,\n    left: 0,\n    right: 0,\n    bottom: 0,\n    direction: \"ltr\"\n  }), { nonce: l } = se(io), u = n1(a, e.props?.ref ?? e?.ref);\n  return Ds(() => {\n    const { width: m, height: g, top: p, left: f, right: v, bottom: x, direction: w } = d.current;\n    if (r || i === !1 || !a.current || !m || !g) return;\n    const b = w === \"rtl\", k = o === \"left\" ? b ? `right: ${v}` : `left: ${f}` : b ? `left: ${f}` : `right: ${v}`, y = t === \"bottom\" ? `bottom: ${x}` : `top: ${p}`;\n    a.current.dataset.motionPopId = s;\n    const C = document.createElement(\"style\");\n    l && (C.nonce = l);\n    const P = n ?? document.head;\n    return P.appendChild(C), C.sheet && C.sheet.insertRule(`\n          [data-motion-pop-id=\"${s}\"] {\n            position: absolute !important;\n            width: ${m}px !important;\n            height: ${g}px !important;\n            ${k}px !important;\n            ${y}px !important;\n          }\n        `), () => {\n      a.current?.removeAttribute(\"data-motion-pop-id\"), P.contains(C) && P.removeChild(C);\n    };\n  }, [r]), c(mf, {\n    isPresent: r,\n    childRef: a,\n    sizeRef: d,\n    pop: i,\n    children: i === !1 ? e : Vo.cloneElement(e, { ref: u })\n  });\n}\nvar mf, gf = h((() => {\n  Z(), Jo(), uf(), mf = class extends Vo.Component {\n    getSnapshotBeforeUpdate(e) {\n      const r = this.props.childRef.current;\n      if (xt(r) && e.isPresent && !this.props.isPresent && this.props.pop !== !1) {\n        const o = r.offsetParent, t = xt(o) && o.offsetWidth || 0, n = xt(o) && o.offsetHeight || 0, i = getComputedStyle(r), s = this.props.sizeRef.current;\n        s.height = parseFloat(i.height), s.width = parseFloat(i.width), s.top = r.offsetTop, s.left = r.offsetLeft, s.right = t - s.width - s.left, s.bottom = n - s.height - s.top, s.direction = i.direction;\n      }\n      return null;\n    }\n    componentDidUpdate() {\n    }\n    render() {\n      return this.props.children;\n    }\n  };\n}));\nfunction s1() {\n  return /* @__PURE__ */ new Map();\n}\nvar hf, pf = h((() => {\n  Ho(), Wo(), xn(), gf(), hf = ({ children: e, initial: r, isPresent: o, onExitComplete: t, custom: n, presenceAffectsLayout: i, mode: s, anchorX: a, anchorY: d, root: l }) => {\n    const u = wn(s1), m = Ne(), g = O(o), p = O(t);\n    kn(() => {\n      g.current = o, p.current = t;\n    });\n    let f = !0, v = B(() => (f = !1, {\n      id: m,\n      initial: r,\n      isPresent: o,\n      custom: n,\n      onExitComplete: (x) => {\n        u.set(x, !0);\n        for (const w of u.values()) if (!w) return;\n        t && t();\n      },\n      register: (x) => (u.set(x, !1), () => {\n        u.delete(x), !g.current && !u.size && p.current?.();\n      })\n    }), [\n      o,\n      u,\n      t\n    ]);\n    return i && f && (v = { ...v }), B(() => {\n      u.forEach((x, w) => u.set(w, !1));\n    }, [o]), Vo.useEffect(() => {\n      !o && !u.size && t && t();\n    }, [o]), e = c(i1, {\n      pop: s === \"popLayout\",\n      isPresent: o,\n      anchorX: a,\n      anchorY: d,\n      root: l,\n      children: e\n    }), c(co.Provider, {\n      value: v,\n      children: e\n    });\n  };\n}));\nfunction ff(e = !0) {\n  const r = se(co);\n  if (r === null) return [!0, null];\n  const { isPresent: o, onExitComplete: t, register: n } = r, i = Ne();\n  Ms(() => {\n    if (e) return n(i);\n  }, [e]);\n  const s = N(() => e && t && t(i), [\n    i,\n    t,\n    e\n  ]);\n  return !o && t ? [!1, s] : [!0];\n}\nfunction vf() {\n  return a1(se(co));\n}\nfunction a1(e) {\n  return e === null ? !0 : e.isPresent;\n}\nvar Dd = h((() => {\n  Ho();\n}));\nfunction Ll(e) {\n  const r = [];\n  return Yb.forEach(e, (o) => {\n    Jb(o) && r.push(o);\n  }), r;\n}\nvar bo, d1 = h((() => {\n  bo = (e) => e.key || \"\";\n})), zd, c1 = h((() => {\n  yn(), Wo(), xn(), pf(), Dd(), d1(), zd = ({ children: e, custom: r, initial: o = !0, onExitComplete: t, presenceAffectsLayout: n = !0, mode: i = \"sync\", propagate: s = !1, anchorX: a = \"left\", anchorY: d = \"top\", root: l }) => {\n    const [u, m] = ff(s), g = B(() => Ll(e), [e]), p = s && !u ? [] : g.map(bo), f = O(!0), v = O(g), x = wn(() => /* @__PURE__ */ new Map()), w = O(/* @__PURE__ */ new Set()), [b, k] = T(g), [y, C] = T(g);\n    kn(() => {\n      f.current = !1, v.current = g;\n      for (let R = 0; R < y.length; R++) {\n        const A = bo(y[R]);\n        p.includes(A) ? (x.delete(A), w.current.delete(A)) : x.get(A) !== !0 && x.set(A, !1);\n      }\n    }, [\n      y,\n      p.length,\n      p.join(\"-\")\n    ]);\n    const P = [];\n    if (g !== b) {\n      let R = [...g];\n      for (let A = 0; A < y.length; A++) {\n        const E = y[A], I = bo(E);\n        p.includes(I) || (R.splice(A, 0, E), P.push(E));\n      }\n      return i === \"wait\" && P.length && (R = P), C(Ll(R)), k(g), null;\n    }\n    const { forceRender: S } = se(bn);\n    return c(ce, { children: y.map((R) => {\n      const A = bo(R), E = s && !u ? !1 : g === y || p.includes(A), I = () => {\n        if (w.current.has(A)) return;\n        if (x.has(A))\n          w.current.add(A), x.set(A, !0);\n        else return;\n        let L = !0;\n        x.forEach((M) => {\n          M || (L = !1);\n        }), L && (S?.(), C(v.current), s && m?.(), t && t());\n      };\n      return c(hf, {\n        isPresent: E,\n        initial: !f.current || o ? void 0 : !1,\n        custom: r,\n        presenceAffectsLayout: n,\n        mode: i,\n        root: l,\n        onExitComplete: E ? void 0 : I,\n        anchorX: a,\n        anchorY: d,\n        children: R\n      }, A);\n    }) });\n  };\n})), Od, Ud = h((() => {\n  Od = Ke({ strict: !1 });\n}));\nfunction l1() {\n  if (Cs) return;\n  const e = {};\n  for (const r in As) e[r] = { isEnabled: (o) => As[r].some((t) => !!o[t]) };\n  Hh(e), Cs = !0;\n}\nfunction bf() {\n  return l1(), px();\n}\nvar As, Cs, yf = h((() => {\n  Z(), As = {\n    animation: [\n      \"animate\",\n      \"variants\",\n      \"whileHover\",\n      \"whileTap\",\n      \"exit\",\n      \"whileInView\",\n      \"whileFocus\",\n      \"whileDrag\"\n    ],\n    exit: [\"exit\"],\n    drag: [\"drag\", \"dragControls\"],\n    focus: [\"whileFocus\"],\n    hover: [\n      \"whileHover\",\n      \"onHoverStart\",\n      \"onHoverEnd\"\n    ],\n    tap: [\n      \"whileTap\",\n      \"onTap\",\n      \"onTapStart\",\n      \"onTapCancel\"\n    ],\n    pan: [\n      \"onPan\",\n      \"onPanStart\",\n      \"onPanSessionStart\",\n      \"onPanEnd\"\n    ],\n    inView: [\n      \"whileInView\",\n      \"onViewportEnter\",\n      \"onViewportLeave\"\n    ],\n    layout: [\"layout\", \"layoutId\"]\n  }, Cs = !1;\n}));\nfunction u1(e) {\n  const r = bf();\n  for (const o in e) r[o] = {\n    ...r[o],\n    ...e[o]\n  };\n  Hh(r);\n}\nvar wf = h((() => {\n  Z(), yf();\n}));\nfunction en(e) {\n  return e.startsWith(\"while\") || e.startsWith(\"drag\") && e !== \"draggable\" || e.startsWith(\"layout\") || e.startsWith(\"onTap\") || e.startsWith(\"onPan\") || e.startsWith(\"onLayout\") || kf.has(e);\n}\nvar kf, xf = h((() => {\n  kf = /* @__PURE__ */ new Set([\n    \"animate\",\n    \"exit\",\n    \"variants\",\n    \"initial\",\n    \"style\",\n    \"values\",\n    \"variants\",\n    \"transition\",\n    \"transformTemplate\",\n    \"custom\",\n    \"inherit\",\n    \"onBeforeLayoutMeasure\",\n    \"onAnimationStart\",\n    \"onAnimationComplete\",\n    \"onUpdate\",\n    \"onDragStart\",\n    \"onDrag\",\n    \"onDragEnd\",\n    \"onMeasureDragConstraints\",\n    \"onDirectionLock\",\n    \"onDragTransitionEnd\",\n    \"_dragX\",\n    \"_dragY\",\n    \"onHoverStart\",\n    \"onHoverEnd\",\n    \"onViewportEnter\",\n    \"onViewportLeave\",\n    \"globalTapTarget\",\n    \"propagate\",\n    \"ignoreStrict\",\n    \"viewport\"\n  ]);\n})), m1 = /* @__PURE__ */ dn({ default: () => _f }), _f, g1 = h((() => {\n  throw _f = {}, new Error('Could not resolve \"@emotion/is-prop-valid\" imported by \"framer-motion\". Is it installed?');\n}));\nfunction Af(e) {\n  typeof e == \"function\" && (Vd = (r) => r.startsWith(\"on\") ? !en(r) : e(r));\n}\nfunction h1(e, r, o) {\n  const t = {};\n  for (const n in e)\n    n === \"values\" && typeof e.values == \"object\" || Ce(e[n]) || (Vd(n) || o === !0 && en(n) || !r && !en(n) || e.draggable && n.startsWith(\"onDrag\")) && (t[n] = e[n]);\n  return t;\n}\nvar Vd, Bd = h((() => {\n  Z(), xf(), Vd = (e) => !en(e);\n  try {\n    Af((g1(), ny(m1)).default);\n  } catch {\n  }\n}));\nfunction p1({ children: e, isValidProp: r, ...o }) {\n  r && Af(r);\n  const t = se(io);\n  o = {\n    ...t,\n    ...o\n  }, o.transition = Ga(o.transition, t.transition), o.isStatic = wn(() => o.isStatic);\n  const n = B(() => o, [\n    JSON.stringify(o.transition),\n    o.transformPagePoint,\n    o.reducedMotion,\n    o.skipAnimations\n  ]);\n  return c(io.Provider, {\n    value: n,\n    children: e\n  });\n}\nvar f1 = h((() => {\n  Z(), Jo(), Bd(), Wo();\n})), Zo, Qo = h((() => {\n  Zo = /* @__PURE__ */ Ke({});\n}));\nfunction v1(e, r) {\n  if (Yn(e)) {\n    const { initial: o, animate: t } = e;\n    return {\n      initial: o === !1 || Do(o) ? o : void 0,\n      animate: Do(t) ? t : void 0\n    };\n  }\n  return e.inherit !== !1 ? r : {};\n}\nvar b1 = h((() => {\n  Z();\n}));\nfunction y1(e) {\n  const { initial: r, animate: o } = v1(e, se(Zo));\n  return B(() => ({\n    initial: r,\n    animate: o\n  }), [Nl(r), Nl(o)]);\n}\nfunction Nl(e) {\n  return Array.isArray(e) ? e.join(\" \") : e;\n}\nvar w1 = h((() => {\n  Qo(), b1();\n})), Zn, Fd = h((() => {\n  Zn = () => ({\n    style: {},\n    transform: {},\n    transformOrigin: {},\n    vars: {}\n  });\n}));\nfunction Cf(e, r, o) {\n  for (const t in r) !Ce(r[t]) && !dp(t, o) && (e[t] = r[t]);\n}\nfunction k1({ transformTemplate: e }, r) {\n  return B(() => {\n    const o = Zn();\n    return _d(o, r, e), Object.assign({}, o.vars, o.style);\n  }, [r]);\n}\nfunction x1(e, r) {\n  const o = e.style || {}, t = {};\n  return Cf(t, o, e), Object.assign(t, k1(e, r)), t;\n}\nfunction _1(e, r) {\n  const o = {}, t = x1(e, r);\n  return e.drag && e.dragListener !== !1 && (o.draggable = !1, t.userSelect = t.WebkitUserSelect = t.WebkitTouchCallout = \"none\", t.touchAction = e.drag === !0 ? \"none\" : `pan-${e.drag === \"x\" ? \"y\" : \"x\"}`), e.tabIndex === void 0 && (e.onTap || e.onTapStart || e.whileTap) && (o.tabIndex = 0), o.style = t, o;\n}\nvar Sf = h((() => {\n  Z(), Fd();\n})), jd, Ef = h((() => {\n  Fd(), jd = () => ({\n    ...Zn(),\n    attrs: {}\n  });\n}));\nfunction A1(e, r, o, t) {\n  const n = B(() => {\n    const i = jd();\n    return hp(i, r, Ld(t), e.transformTemplate, e.style), {\n      ...i.attrs,\n      style: { ...i.style }\n    };\n  }, [r]);\n  if (e.style) {\n    const i = {};\n    Cf(i, e.style, e), n.style = {\n      ...i,\n      ...n.style\n    };\n  }\n  return n;\n}\nvar C1 = h((() => {\n  Z(), Sf(), Ef();\n})), Tf, S1 = h((() => {\n  Tf = [\n    \"animate\",\n    \"circle\",\n    \"defs\",\n    \"desc\",\n    \"ellipse\",\n    \"g\",\n    \"image\",\n    \"line\",\n    \"filter\",\n    \"marker\",\n    \"mask\",\n    \"metadata\",\n    \"path\",\n    \"pattern\",\n    \"polygon\",\n    \"polyline\",\n    \"rect\",\n    \"stop\",\n    \"switch\",\n    \"symbol\",\n    \"svg\",\n    \"text\",\n    \"tspan\",\n    \"use\",\n    \"view\"\n  ];\n}));\nfunction $d(e) {\n  return typeof e != \"string\" || e.includes(\"-\") ? !1 : !!(Tf.indexOf(e) > -1 || /[A-Z]/u.test(e));\n}\nvar qd = h((() => {\n  S1();\n}));\nfunction E1(e, r, o, { latestValues: t }, n, i = !1, s) {\n  const a = (s ?? $d(e) ? A1 : _1)(r, t, n, e), d = h1(r, typeof e == \"string\", i), l = e !== Ls ? {\n    ...d,\n    ...a,\n    ref: o\n  } : {}, { children: u } = r, m = B(() => Ce(u) ? u.get() : u, [u]);\n  return j(e, {\n    ...l,\n    children: m\n  });\n}\nvar T1 = h((() => {\n  Z(), Sf(), C1(), Bd(), qd();\n}));\nfunction R1({ scrapeMotionValuesFromProps: e, createRenderState: r }, o, t, n) {\n  return {\n    latestValues: P1(o, t, n, e),\n    renderState: r()\n  };\n}\nfunction P1(e, r, o, t) {\n  const n = {}, i = t(e, {});\n  for (const g in i) n[g] = Ct(i[g]);\n  let { initial: s, animate: a } = e;\n  const d = Yn(e), l = Bh(e);\n  r && l && !d && e.inherit !== !1 && (s === void 0 && (s = r.initial), a === void 0 && (a = r.animate));\n  let u = o ? o.initial === !1 : !1;\n  u = u || s === !1;\n  const m = u ? a : s;\n  if (m && typeof m != \"boolean\" && !Wn(m)) {\n    const g = Array.isArray(m) ? m : [m];\n    for (let p = 0; p < g.length; p++) {\n      const f = Za(e, g[p]);\n      if (f) {\n        const { transitionEnd: v, transition: x, ...w } = f;\n        for (const b in w) {\n          let k = w[b];\n          if (Array.isArray(k)) {\n            const y = u ? k.length - 1 : 0;\n            k = k[y];\n          }\n          k !== null && (n[b] = k);\n        }\n        for (const b in v) n[b] = v[b];\n      }\n    }\n  }\n  return n;\n}\nvar Wd, Hd = h((() => {\n  Z(), Qo(), Ho(), Wo(), Wd = (e) => (r, o) => {\n    const t = se(Zo), n = se(co), i = () => R1(e, r, t, n);\n    return o ? i() : wn(i);\n  };\n})), Rf, L1 = h((() => {\n  Z(), Hd(), Fd(), Rf = /* @__PURE__ */ Wd({\n    scrapeMotionValuesFromProps: Ed,\n    createRenderState: Zn\n  });\n})), Pf, N1 = h((() => {\n  Z(), Hd(), Ef(), Pf = /* @__PURE__ */ Wd({\n    scrapeMotionValuesFromProps: yp,\n    createRenderState: jd\n  });\n})), Lf, Nf = h((() => {\n  Lf = /* @__PURE__ */ Symbol.for(\"motionComponentSymbol\");\n}));\nfunction I1(e, r, o) {\n  const t = O(o);\n  Ds(() => {\n    t.current = o;\n  });\n  const n = O(null);\n  return N((i) => {\n    i && e.onMount?.(i), r && (i ? r.mount(i) : r.unmount());\n    const s = t.current;\n    if (typeof s == \"function\") if (i) {\n      const a = s(i);\n      typeof a == \"function\" && (n.current = a);\n    } else n.current ? (n.current(), n.current = null) : s(i);\n    else s && (s.current = i);\n  }, [r]);\n}\nvar M1 = h((() => {\n})), Kd, Gd = h((() => {\n  Kd = Ke({});\n}));\nfunction Xr(e) {\n  return e && typeof e == \"object\" && Object.prototype.hasOwnProperty.call(e, \"current\");\n}\nvar If = h((() => {\n}));\nfunction D1(e, r, o, t, n, i) {\n  const { visualElement: s } = se(Zo), a = se(Od), d = se(co), l = se(io), u = l.reducedMotion, m = l.skipAnimations, g = O(null), p = O(!1);\n  t = t || a.renderer, !g.current && t && (g.current = t(e, {\n    visualState: r,\n    parent: s,\n    props: o,\n    presenceContext: d,\n    blockInitialAnimation: d ? d.initial === !1 : !1,\n    reducedMotionConfig: u,\n    skipAnimations: m,\n    isSVG: i\n  }), p.current && g.current && (g.current.manuallyAnimateOnMount = !0));\n  const f = g.current, v = se(Kd);\n  f && !f.projection && n && (f.type === \"html\" || f.type === \"svg\") && z1(g.current, o, n, v);\n  const x = O(!1);\n  Ds(() => {\n    f && x.current && f.update(o, d);\n  });\n  const w = o[nd], b = O(!!w && typeof window < \"u\" && !window.MotionHandoffIsComplete?.(w) && window.MotionHasOptimisedAnimation?.(w));\n  return kn(() => {\n    p.current = !0, f && (x.current = !0, window.MotionIsMounted = !0, f.updateFeatures(), f.scheduleRenderMicrotask(), b.current && f.animationState && f.animationState.animateChanges());\n  }), Ms(() => {\n    f && (!b.current && f.animationState && f.animationState.animateChanges(), b.current && (queueMicrotask(() => {\n      window.MotionHandoffMarkAsComplete?.(w);\n    }), b.current = !1), f.enteringChildren = void 0);\n  }), f;\n}\nfunction z1(e, r, o, t) {\n  const { layoutId: n, layout: i, drag: s, dragConstraints: a, layoutScroll: d, layoutRoot: l, layoutAnchor: u, layoutCrossfade: m } = r;\n  e.projection = new o(e.latestValues, r[\"data-framer-portal-id\"] ? void 0 : Mf(e.parent)), e.projection.setOptions({\n    layoutId: n,\n    layout: i,\n    alwaysMeasureLayout: !!s || a && Xr(a),\n    visualElement: e,\n    animationType: typeof i == \"string\" ? i : \"both\",\n    initialPromotionConfig: t,\n    crossfade: m,\n    layoutScroll: d,\n    layoutRoot: l,\n    layoutAnchor: u\n  });\n}\nfunction Mf(e) {\n  if (e)\n    return e.options.allowProjection !== !1 ? e.projection : Mf(e.parent);\n}\nvar O1 = h((() => {\n  Z(), Ud(), Jo(), Qo(), Ho(), Gd(), If(), xn();\n}));\nfunction Di(e, { forwardMotionProps: r = !1, type: o } = {}, t, n) {\n  t && u1(t);\n  const i = o ? o === \"svg\" : $d(e), s = i ? Pf : Rf;\n  function a(l, u) {\n    let m;\n    const g = {\n      ...se(io),\n      ...l,\n      layoutId: U1(l)\n    }, { isStatic: p } = g, f = y1(l), v = s(l, p);\n    if (!p && typeof window < \"u\") {\n      V1(g, t);\n      const x = B1(g);\n      m = x.MeasureLayout, f.visualElement = D1(e, v, g, n, x.ProjectionNode, i);\n    }\n    return _(Zo.Provider, {\n      value: f,\n      children: [m && f.visualElement ? c(m, {\n        visualElement: f.visualElement,\n        ...g\n      }) : null, E1(e, l, I1(v, f.visualElement, u), v, p, r, i)]\n    });\n  }\n  a.displayName = `motion.${typeof e == \"string\" ? e : `create(${e.displayName ?? e.name ?? \"\"})`}`;\n  const d = Xb(a);\n  return d[Lf] = e, d;\n}\nfunction U1({ layoutId: e }) {\n  const r = se(bn).id;\n  return r && e !== void 0 ? r + \"-\" + e : e;\n}\nfunction V1(e, r) {\n  se(Od).strict;\n}\nfunction B1(e) {\n  const { drag: r, layout: o } = bf();\n  if (!r && !o) return {};\n  const t = {\n    ...r,\n    ...o\n  };\n  return {\n    MeasureLayout: r?.isEnabled(e) || o?.isEnabled(e) ? t.MeasureLayout : void 0,\n    ProjectionNode: t.ProjectionNode\n  };\n}\nvar F1 = h((() => {\n  yn(), Ud(), Jo(), Qo(), w1(), T1(), qd(), L1(), N1(), yf(), wf(), Nf(), M1(), O1();\n}));\nfunction j1(e, r) {\n  if (typeof Proxy > \"u\") return Di;\n  const o = /* @__PURE__ */ new Map(), t = (i, s) => Di(i, s, e, r), n = (i, s) => t(i, s);\n  return new Proxy(n, { get: (i, s) => s === \"create\" ? t : (o.has(s) || o.set(s, Di(s, void 0, e, r)), o.get(s)) });\n}\nvar Df = h((() => {\n  F1();\n})), zf, Of = h((() => {\n  Z(), qd(), zf = (e, r) => r.isSVG ?? $d(e) ? new kp(r) : new lp(r, { allowProjection: e !== Ls });\n})), Uf, $1 = h((() => {\n  Z(), Uf = class extends mr {\n    constructor(e) {\n      super(e), e.animationState || (e.animationState = Rx(e));\n    }\n    updateAnimationControlsSubscription() {\n      const { animate: e } = this.node.getProps();\n      Wn(e) && (this.unmountControls = e.subscribe(this.node));\n    }\n    mount() {\n      this.updateAnimationControlsSubscription();\n    }\n    update() {\n      const { animate: e } = this.node.getProps(), { animate: r } = this.node.prevProps || {};\n      e !== r && this.updateAnimationControlsSubscription();\n    }\n    unmount() {\n      this.node.animationState.reset(), this.unmountControls?.();\n    }\n  };\n})), Il, Vf, q1 = h((() => {\n  Z(), Il = 0, Vf = class extends mr {\n    constructor() {\n      super(...arguments), this.id = Il++, this.isExitComplete = !1;\n    }\n    update() {\n      if (!this.node.presenceContext) return;\n      const { isPresent: e, onExitComplete: r } = this.node.presenceContext, { isPresent: o } = this.node.prevPresenceContext || {};\n      if (!this.node.animationState || e === o) return;\n      if (e && o === !1) {\n        if (this.isExitComplete) {\n          const { initial: n, custom: i } = this.node.getProps();\n          if (typeof n == \"string\" || typeof n == \"object\" && n !== null && !Array.isArray(n)) {\n            const s = Dr(this.node, n, i);\n            if (s) {\n              const { transition: a, transitionEnd: d, ...l } = s;\n              for (const u in l) this.node.getValue(u)?.jump(l[u]);\n            }\n          }\n          this.node.animationState.reset(), this.node.animationState.animateChanges();\n        } else this.node.animationState.setActive(\"exit\", !1);\n        this.isExitComplete = !1;\n        return;\n      }\n      const t = this.node.animationState.setActive(\"exit\", !e);\n      r && !e && t.then(() => {\n        this.isExitComplete = !0, r(this.id);\n      });\n    }\n    mount() {\n      const { register: e, onExitComplete: r } = this.node.presenceContext || {};\n      r && r(this.id), e && (this.unmount = e(this.id));\n    }\n    unmount() {\n    }\n  };\n})), Bf, Ff = h((() => {\n  $1(), q1(), Bf = {\n    animation: { Feature: Uf },\n    exit: { Feature: Vf }\n  };\n}));\nfunction et(e) {\n  return { point: {\n    x: e.pageX,\n    y: e.pageY\n  } };\n}\nvar jf, go = h((() => {\n  Z(), jf = (e) => (r) => jn(r) && e(r, et(r));\n}));\nfunction Ro(e, r, o, t) {\n  return Oo(e, r, jf(o), t);\n}\nvar Qn = h((() => {\n  Z(), go();\n})), Yd, $f = h((() => {\n  Yd = ({ current: e }) => e ? e.ownerDocument.defaultView : null;\n}));\nfunction W1(e, r) {\n  const o = Ss(e.x, r.x), t = Ss(e.y, r.y);\n  return Math.sqrt(o ** 2 + t ** 2);\n}\nvar Ss, qf = h((() => {\n  Ss = (e, r) => Math.abs(e - r);\n}));\nfunction ct(e, r) {\n  return r ? { point: r(e.point) } : e;\n}\nfunction Ml(e, r) {\n  return {\n    x: e.x - r.x,\n    y: e.y - r.y\n  };\n}\nfunction zi({ point: e }, r) {\n  return {\n    point: e,\n    delta: Ml(e, Wf(r)),\n    offset: Ml(e, H1(r)),\n    velocity: K1(r, 0.1)\n  };\n}\nfunction H1(e) {\n  return e[0];\n}\nfunction Wf(e) {\n  return e[e.length - 1];\n}\nfunction K1(e, r) {\n  if (e.length < 2) return {\n    x: 0,\n    y: 0\n  };\n  let o = e.length - 1, t = null;\n  const n = Wf(e);\n  for (; o >= 0 && (t = e[o], !(n.timestamp - t.timestamp > Le(r))); )\n    o--;\n  if (!t) return {\n    x: 0,\n    y: 0\n  };\n  t === e[0] && e.length > 2 && n.timestamp - t.timestamp > Le(r) * 2 && (t = e[1]);\n  const i = Ue(n.timestamp - t.timestamp);\n  if (i === 0) return {\n    x: 0,\n    y: 0\n  };\n  const s = {\n    x: (n.x - t.x) / i,\n    y: (n.y - t.y) / i\n  };\n  return s.x === 1 / 0 && (s.x = 0), s.y === 1 / 0 && (s.y = 0), s;\n}\nvar Oi, Xd, Hf = h((() => {\n  Z(), W(), Qn(), go(), qf(), Oi = /* @__PURE__ */ new Set([\"auto\", \"scroll\"]), Xd = class {\n    constructor(e, r, { transformPagePoint: o, contextWindow: t = window, dragSnapToOrigin: n = !1, distanceThreshold: i = 3, element: s } = {}) {\n      if (this.startEvent = null, this.lastMoveEvent = null, this.lastMoveEventInfo = null, this.lastRawMoveEventInfo = null, this.handlers = {}, this.contextWindow = window, this.scrollPositions = /* @__PURE__ */ new Map(), this.removeScrollListeners = null, this.onElementScroll = (g) => {\n        this.handleScroll(g.target);\n      }, this.onWindowScroll = () => {\n        this.handleScroll(window);\n      }, this.updatePoint = () => {\n        if (!(this.lastMoveEvent && this.lastMoveEventInfo)) return;\n        this.lastRawMoveEventInfo && (this.lastMoveEventInfo = ct(this.lastRawMoveEventInfo, this.transformPagePoint));\n        const g = zi(this.lastMoveEventInfo, this.history), p = this.startEvent !== null, f = W1(g.offset, {\n          x: 0,\n          y: 0\n        }) >= this.distanceThreshold;\n        if (!p && !f) return;\n        const { point: v } = g, { timestamp: x } = Ae;\n        this.history.push({\n          ...v,\n          timestamp: x\n        });\n        const { onStart: w, onMove: b } = this.handlers;\n        p || (w && w(this.lastMoveEvent, g), this.startEvent = this.lastMoveEvent), b && b(this.lastMoveEvent, g);\n      }, this.handlePointerMove = (g, p) => {\n        this.lastMoveEvent = g, this.lastRawMoveEventInfo = p, this.lastMoveEventInfo = ct(p, this.transformPagePoint), te.update(this.updatePoint, !0);\n      }, this.handlePointerUp = (g, p) => {\n        this.end();\n        const { onEnd: f, onSessionEnd: v, resumeAnimation: x } = this.handlers;\n        if ((this.dragSnapToOrigin || !this.startEvent) && x && x(), !(this.lastMoveEvent && this.lastMoveEventInfo)) return;\n        const w = zi(g.type === \"pointercancel\" ? this.lastMoveEventInfo : ct(p, this.transformPagePoint), this.history);\n        this.startEvent && f && f(g, w), v && v(g, w);\n      }, !jn(e)) return;\n      this.dragSnapToOrigin = n, this.handlers = r, this.transformPagePoint = o, this.distanceThreshold = i, this.contextWindow = t || window;\n      const a = ct(et(e), this.transformPagePoint), { point: d } = a, { timestamp: l } = Ae;\n      this.history = [{\n        ...d,\n        timestamp: l\n      }];\n      const { onSessionStart: u } = r;\n      u && u(e, zi(a, this.history));\n      const m = {\n        passive: !0,\n        capture: !0\n      };\n      this.removeListeners = lo(Ro(this.contextWindow, \"pointermove\", this.handlePointerMove, m), Ro(this.contextWindow, \"pointerup\", this.handlePointerUp, m), Ro(this.contextWindow, \"pointercancel\", this.handlePointerUp, m)), s && this.startScrollTracking(s);\n    }\n    startScrollTracking(e) {\n      let r = e.parentElement;\n      for (; r; ) {\n        const o = getComputedStyle(r);\n        (Oi.has(o.overflowX) || Oi.has(o.overflowY)) && this.scrollPositions.set(r, {\n          x: r.scrollLeft,\n          y: r.scrollTop\n        }), r = r.parentElement;\n      }\n      this.scrollPositions.set(window, {\n        x: window.scrollX,\n        y: window.scrollY\n      }), window.addEventListener(\"scroll\", this.onElementScroll, { capture: !0 }), window.addEventListener(\"scroll\", this.onWindowScroll), this.removeScrollListeners = () => {\n        window.removeEventListener(\"scroll\", this.onElementScroll, { capture: !0 }), window.removeEventListener(\"scroll\", this.onWindowScroll);\n      };\n    }\n    handleScroll(e) {\n      const r = this.scrollPositions.get(e);\n      if (!r) return;\n      const o = e === window, t = o ? {\n        x: window.scrollX,\n        y: window.scrollY\n      } : {\n        x: e.scrollLeft,\n        y: e.scrollTop\n      }, n = {\n        x: t.x - r.x,\n        y: t.y - r.y\n      };\n      n.x === 0 && n.y === 0 || (o ? this.lastMoveEventInfo && (this.lastMoveEventInfo.point.x += n.x, this.lastMoveEventInfo.point.y += n.y) : this.history.length > 0 && (this.history[0].x -= n.x, this.history[0].y -= n.y), this.scrollPositions.set(e, t), te.update(this.updatePoint, !0));\n    }\n    updateHandlers(e) {\n      this.handlers = e;\n    }\n    end() {\n      this.removeListeners && this.removeListeners(), this.removeScrollListeners && this.removeScrollListeners(), this.scrollPositions.clear(), dr(this.updatePoint);\n    }\n  };\n}));\nfunction G1(e, { min: r, max: o }, t) {\n  return r !== void 0 && e < r ? e = t ? oe(r, e, t.min) : Math.max(e, r) : o !== void 0 && e > o && (e = t ? oe(o, e, t.max) : Math.min(e, o)), e;\n}\nfunction Dl(e, r, o) {\n  return {\n    min: r !== void 0 ? e.min + r : void 0,\n    max: o !== void 0 ? e.max + o - (e.max - e.min) : void 0\n  };\n}\nfunction Y1(e, { top: r, left: o, bottom: t, right: n }) {\n  return {\n    x: Dl(e.x, o, n),\n    y: Dl(e.y, r, t)\n  };\n}\nfunction zl(e, r) {\n  let o = r.min - e.min, t = r.max - e.max;\n  return r.max - r.min < e.max - e.min && ([o, t] = [t, o]), {\n    min: o,\n    max: t\n  };\n}\nfunction X1(e, r) {\n  return {\n    x: zl(e.x, r.x),\n    y: zl(e.y, r.y)\n  };\n}\nfunction J1(e, r) {\n  let o = 0.5;\n  const t = Pe(e), n = Pe(r);\n  return n > t ? o = ro(r.min, r.max - t, e.min) : t > n && (o = ro(e.min, e.max - n, r.min)), Ge(0, 1, o);\n}\nfunction Z1(e, r) {\n  const o = {};\n  return r.min !== void 0 && (o.min = r.min - e.min), r.max !== void 0 && (o.max = r.max - e.min), o;\n}\nfunction Q1(e = rn) {\n  return e === !1 ? e = 0 : e === !0 && (e = rn), {\n    x: Ol(e, \"left\", \"right\"),\n    y: Ol(e, \"top\", \"bottom\")\n  };\n}\nfunction Ol(e, r, o) {\n  return {\n    min: Ul(e, r),\n    max: Ul(e, o)\n  };\n}\nfunction Ul(e, r) {\n  return typeof e == \"number\" ? e : e[r] || 0;\n}\nvar rn, e_ = h((() => {\n  Z(), W(), rn = 0.35;\n}));\nfunction Vl(e) {\n  let r = !0;\n  return () => {\n    if (r) {\n      r = !1;\n      return;\n    }\n    e();\n  };\n}\nfunction r_(e, r, o) {\n  const t = ol(e, Vl(o)), n = ol(r, Vl(o));\n  return () => {\n    t(), n();\n  };\n}\nfunction lt(e, r, o) {\n  return (r === !0 || r === e) && (o === null || o === e);\n}\nfunction o_(e, r = 10) {\n  let o = null;\n  return Math.abs(e.y) > r ? o = \"y\" : Math.abs(e.x) > r && (o = \"x\"), o;\n}\nvar Bl, Kf, t_ = h((() => {\n  Z(), W(), Qn(), go(), $f(), If(), Hf(), e_(), Bl = /* @__PURE__ */ new WeakMap(), Kf = class {\n    constructor(e) {\n      this.openDragLock = null, this.isDragging = !1, this.currentDirection = null, this.originPoint = {\n        x: 0,\n        y: 0\n      }, this.constraints = !1, this.hasMutatedConstraints = !1, this.elastic = xe(), this.latestPointerEvent = null, this.latestPanInfo = null, this.visualElement = e;\n    }\n    start(e, { snapToCursor: r = !1, distanceThreshold: o } = {}) {\n      const { presenceContext: t } = this.visualElement;\n      if (t && t.isPresent === !1) return;\n      const n = (u) => {\n        r && this.snapToCursor(et(u).point), this.stopAnimation();\n      }, i = (u, m) => {\n        const { drag: g, dragPropagation: p, onDragStart: f } = this.getProps();\n        if (g && !p && (this.openDragLock && this.openDragLock(), this.openDragLock = Gk(g), !this.openDragLock))\n          return;\n        this.latestPointerEvent = u, this.latestPanInfo = m, this.isDragging = !0, this.currentDirection = null, this.resolveConstraints(), this.visualElement.projection && (this.visualElement.projection.isAnimationBlocked = !0, this.visualElement.projection.target = void 0), Ze((x) => {\n          let w = this.getAxisMotionValue(x).get() || 0;\n          if (We.test(w)) {\n            const { projection: b } = this.visualElement;\n            if (b && b.layout) {\n              const k = b.layout.layoutBox[x];\n              k && (w = Pe(k) * (parseFloat(w) / 100));\n            }\n          }\n          this.originPoint[x] = w;\n        }), f && te.update(() => f(u, m), !1, !0), cs(this.visualElement, \"transform\");\n        const { animationState: v } = this.visualElement;\n        v && v.setActive(\"whileDrag\", !0);\n      }, s = (u, m) => {\n        this.latestPointerEvent = u, this.latestPanInfo = m;\n        const { dragPropagation: g, dragDirectionLock: p, onDirectionLock: f, onDrag: v } = this.getProps();\n        if (!g && !this.openDragLock) return;\n        const { offset: x } = m;\n        if (p && this.currentDirection === null) {\n          this.currentDirection = o_(x), this.currentDirection !== null && f && f(this.currentDirection);\n          return;\n        }\n        this.updateAxis(\"x\", m.point, x), this.updateAxis(\"y\", m.point, x), this.visualElement.render(), v && te.update(() => v(u, m), !1, !0);\n      }, a = (u, m) => {\n        this.latestPointerEvent = u, this.latestPanInfo = m, this.stop(u, m), this.latestPointerEvent = null, this.latestPanInfo = null;\n      }, d = () => {\n        const { dragSnapToOrigin: u } = this.getProps();\n        (u || this.constraints) && this.startAnimation({\n          x: 0,\n          y: 0\n        });\n      }, { dragSnapToOrigin: l } = this.getProps();\n      this.panSession = new Xd(e, {\n        onSessionStart: n,\n        onStart: i,\n        onMove: s,\n        onSessionEnd: a,\n        resumeAnimation: d\n      }, {\n        transformPagePoint: this.visualElement.getTransformPagePoint(),\n        dragSnapToOrigin: l,\n        distanceThreshold: o,\n        contextWindow: Yd(this.visualElement),\n        element: this.visualElement.current\n      });\n    }\n    stop(e, r) {\n      const o = e || this.latestPointerEvent, t = r || this.latestPanInfo, n = this.isDragging;\n      if (this.cancel(), !n || !t || !o) return;\n      const { velocity: i } = t;\n      this.startAnimation(i);\n      const { onDragEnd: s } = this.getProps();\n      s && te.postRender(() => s(o, t));\n    }\n    cancel() {\n      this.isDragging = !1;\n      const { projection: e, animationState: r } = this.visualElement;\n      e && (e.isAnimationBlocked = !1), this.endPanSession();\n      const { dragPropagation: o } = this.getProps();\n      !o && this.openDragLock && (this.openDragLock(), this.openDragLock = null), r && r.setActive(\"whileDrag\", !1);\n    }\n    endPanSession() {\n      this.panSession && this.panSession.end(), this.panSession = void 0;\n    }\n    updateAxis(e, r, o) {\n      const { drag: t } = this.getProps();\n      if (!o || !lt(e, t, this.currentDirection)) return;\n      const n = this.getAxisMotionValue(e);\n      let i = this.originPoint[e] + o[e];\n      this.constraints && this.constraints[e] && (i = G1(i, this.constraints[e], this.elastic[e])), n.set(i);\n    }\n    resolveConstraints() {\n      const { dragConstraints: e, dragElastic: r } = this.getProps(), o = this.visualElement.projection && !this.visualElement.projection.layout ? this.visualElement.projection.measure(!1) : this.visualElement.projection?.layout, t = this.constraints;\n      e && Xr(e) ? this.constraints || (this.constraints = this.resolveRefConstraints()) : e && o ? this.constraints = Y1(o.layoutBox, e) : this.constraints = !1, this.elastic = Q1(r), t !== this.constraints && !Xr(e) && o && this.constraints && !this.hasMutatedConstraints && Ze((n) => {\n        this.constraints !== !1 && this.getAxisMotionValue(n) && (this.constraints[n] = Z1(o.layoutBox[n], this.constraints[n]));\n      });\n    }\n    resolveRefConstraints() {\n      const { dragConstraints: e, onMeasureDragConstraints: r } = this.getProps();\n      if (!e || !Xr(e)) return !1;\n      const o = e.current;\n      zr(o !== null, \"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.\", \"drag-constraints-ref\");\n      const { projection: t } = this.visualElement;\n      if (!t || !t.layout) return !1;\n      t.root && (t.root.scroll = void 0, t.root.updateScroll());\n      const n = wx(o, t.root, this.visualElement.getTransformPagePoint());\n      let i = X1(t.layout.layoutBox, n);\n      if (r) {\n        const s = r(vx(i));\n        this.hasMutatedConstraints = !!s, s && (i = Yh(s));\n      }\n      return i;\n    }\n    startAnimation(e) {\n      const { drag: r, dragMomentum: o, dragElastic: t, dragTransition: n, dragSnapToOrigin: i, onDragTransitionEnd: s } = this.getProps(), a = this.constraints || {}, d = Ze((l) => {\n        if (!lt(l, r, this.currentDirection)) return;\n        let u = a && a[l] || {};\n        (i === !0 || i === l) && (u = {\n          min: 0,\n          max: 0\n        });\n        const m = t ? 200 : 1e6, g = t ? 40 : 1e7, p = {\n          type: \"inertia\",\n          velocity: o ? e[l] : 0,\n          bounceStiffness: m,\n          bounceDamping: g,\n          timeConstant: 750,\n          restDelta: 1,\n          restSpeed: 10,\n          ...n,\n          ...u\n        };\n        return this.startAxisValueAnimation(l, p);\n      });\n      return Promise.all(d).then(s);\n    }\n    startAxisValueAnimation(e, r) {\n      const o = this.getAxisMotionValue(e);\n      return cs(this.visualElement, e), o.start(zn(e, o, 0, r, this.visualElement, !1));\n    }\n    stopAnimation() {\n      Ze((e) => this.getAxisMotionValue(e).stop());\n    }\n    getAxisMotionValue(e) {\n      const r = `_drag${e.toUpperCase()}`, o = this.visualElement.getProps()[r];\n      return o || this.visualElement.getValue(e, this.visualElement.latestValues[e] ?? 0);\n    }\n    snapToCursor(e) {\n      Ze((r) => {\n        const { drag: o } = this.getProps();\n        if (!lt(r, o, this.currentDirection)) return;\n        const { projection: t } = this.visualElement, n = this.getAxisMotionValue(r);\n        if (t && t.layout) {\n          const { min: i, max: s } = t.layout.layoutBox[r], a = n.get() || 0;\n          n.set(e[r] - oe(i, s, 0.5) + a);\n        }\n      });\n    }\n    scalePositionWithinConstraints() {\n      if (!this.visualElement.current) return;\n      const { drag: e, dragConstraints: r } = this.getProps(), { projection: o } = this.visualElement;\n      if (!Xr(r) || !o || !this.constraints) return;\n      this.stopAnimation();\n      const t = {\n        x: 0,\n        y: 0\n      };\n      Ze((i) => {\n        const s = this.getAxisMotionValue(i);\n        if (s && this.constraints !== !1) {\n          const a = s.get();\n          t[i] = J1({\n            min: a,\n            max: a\n          }, this.constraints[i]);\n        }\n      });\n      const { transformTemplate: n } = this.visualElement.getProps();\n      this.visualElement.current.style.transform = n ? n({}, \"\") : \"none\", o.root && o.root.updateScroll(), o.updateLayout(), this.constraints = !1, this.resolveConstraints(), Ze((i) => {\n        if (!lt(i, e, null)) return;\n        const s = this.getAxisMotionValue(i), { min: a, max: d } = this.constraints[i];\n        s.set(oe(a, d, t[i]));\n      }), this.visualElement.render();\n    }\n    addListeners() {\n      if (!this.visualElement.current) return;\n      Bl.set(this.visualElement, this);\n      const e = this.visualElement.current, r = Ro(e, \"pointerdown\", (d) => {\n        const { drag: l, dragListener: u = !0 } = this.getProps(), m = d.target, g = m !== e && ex(m);\n        l && u && !g && this.start(d);\n      });\n      let o;\n      const t = () => {\n        const { dragConstraints: d } = this.getProps();\n        Xr(d) && d.current && (this.constraints = this.resolveRefConstraints(), o || (o = r_(e, d.current, () => this.scalePositionWithinConstraints())));\n      }, { projection: n } = this.visualElement, i = n.addEventListener(\"measure\", t);\n      n && !n.layout && (n.root && n.root.updateScroll(), n.updateLayout()), te.read(t);\n      const s = Oo(window, \"resize\", () => this.scalePositionWithinConstraints()), a = n.addEventListener(\"didUpdate\", (({ delta: d, hasLayoutChanged: l }) => {\n        this.isDragging && l && (Ze((u) => {\n          const m = this.getAxisMotionValue(u);\n          m && (this.originPoint[u] += d[u].translate, m.set(m.get() + d[u].translate));\n        }), this.visualElement.render());\n      }));\n      return () => {\n        s(), r(), i(), a && a(), o && o();\n      };\n    }\n    getProps() {\n      const e = this.visualElement.getProps(), { drag: r = !1, dragDirectionLock: o = !1, dragPropagation: t = !1, dragConstraints: n = !1, dragElastic: i = rn, dragMomentum: s = !0 } = e;\n      return {\n        ...e,\n        drag: r,\n        dragDirectionLock: o,\n        dragPropagation: t,\n        dragConstraints: n,\n        dragElastic: i,\n        dragMomentum: s\n      };\n    }\n  };\n})), Gf, n_ = h((() => {\n  Z(), W(), t_(), Gf = class extends mr {\n    constructor(e) {\n      super(e), this.removeGroupControls = Ve, this.removeListeners = Ve, this.controls = new Kf(e);\n    }\n    mount() {\n      const { dragControls: e } = this.node.getProps();\n      e && (this.removeGroupControls = e.subscribe(this.controls)), this.removeListeners = this.controls.addListeners() || Ve;\n    }\n    update() {\n      const { dragControls: e } = this.node.getProps(), { dragControls: r } = this.node.prevProps || {};\n      e !== r && (this.removeGroupControls(), e && (this.removeGroupControls = e.subscribe(this.controls)));\n    }\n    unmount() {\n      this.removeGroupControls(), this.removeListeners(), this.controls.isDragging || this.controls.endPanSession();\n    }\n  };\n})), ut, Yf, i_ = h((() => {\n  Z(), W(), Qn(), $f(), Hf(), ut = (e) => (r, o) => {\n    e && te.update(() => e(r, o), !1, !0);\n  }, Yf = class extends mr {\n    constructor() {\n      super(...arguments), this.removePointerDownListener = Ve;\n    }\n    onPointerDown(e) {\n      this.session = new Xd(e, this.createPanHandlers(), {\n        transformPagePoint: this.node.getTransformPagePoint(),\n        contextWindow: Yd(this.node)\n      });\n    }\n    createPanHandlers() {\n      const { onPanSessionStart: e, onPanStart: r, onPan: o, onPanEnd: t } = this.node.getProps();\n      return {\n        onSessionStart: ut(e),\n        onStart: ut(r),\n        onMove: ut(o),\n        onEnd: (n, i) => {\n          delete this.session, t && te.postRender(() => t(n, i));\n        }\n      };\n    }\n    mount() {\n      this.removePointerDownListener = Ro(this.node.current, \"pointerdown\", (e) => this.onPointerDown(e));\n    }\n    update() {\n      this.session && this.session.updateHandlers(this.createPanHandlers());\n    }\n    unmount() {\n      this.removePointerDownListener(), this.session && this.session.end();\n    }\n  };\n}));\nfunction Xf(e) {\n  const [r, o] = ff(), t = se(bn);\n  return c(Jf, {\n    ...e,\n    layoutGroup: t,\n    switchLayoutGroup: se(Kd),\n    isPresent: r,\n    safeToRemove: o\n  });\n}\nvar mt, Jf, Zf = h((() => {\n  Z(), Dd(), yn(), Gd(), mt = !1, Jf = class extends tu {\n    componentDidMount() {\n      const { visualElement: e, layoutGroup: r, switchLayoutGroup: o, layoutId: t } = this.props, { projection: n } = e;\n      n && (r.group && r.group.add(n), o && o.register && t && o.register(n), mt && n.root.didUpdate(), n.addEventListener(\"animationComplete\", () => {\n        this.safeToRemove();\n      }), n.setOptions({\n        ...n.options,\n        layoutDependency: this.props.layoutDependency,\n        onExitComplete: () => this.safeToRemove()\n      })), To.hasEverUpdated = !0;\n    }\n    getSnapshotBeforeUpdate(e) {\n      const { layoutDependency: r, visualElement: o, drag: t, isPresent: n } = this.props, { projection: i } = o;\n      return i && (i.isPresent = n, e.layoutDependency !== r && i.setOptions({\n        ...i.options,\n        layoutDependency: r\n      }), mt = !0, t || e.layoutDependency !== r || r === void 0 || e.isPresent !== n ? i.willUpdate() : this.safeToRemove(), e.isPresent !== n && (n ? i.promote() : i.relegate() || te.postRender(() => {\n        const s = i.getStack();\n        (!s || !s.members.length) && this.safeToRemove();\n      }))), null;\n    }\n    componentDidUpdate() {\n      const { visualElement: e, layoutAnchor: r } = this.props, { projection: o } = e;\n      o && (o.options.layoutAnchor = r, o.root.didUpdate(), Bn.postRender(() => {\n        !o.currentAnimation && o.isLead() && this.safeToRemove();\n      }));\n    }\n    componentWillUnmount() {\n      const { visualElement: e, layoutGroup: r, switchLayoutGroup: o } = this.props, { projection: t } = e;\n      mt = !0, t && (t.scheduleCheckAfterUnmount(), r && r.group && r.group.remove(t), o && o.deregister && o.deregister(t));\n    }\n    safeToRemove() {\n      const { safeToRemove: e } = this.props;\n      e && e();\n    }\n    render() {\n      return null;\n    }\n  };\n})), Qf, ev = h((() => {\n  n_(), i_(), Zf(), Z(), Qf = {\n    pan: { Feature: Yf },\n    drag: {\n      Feature: Gf,\n      ProjectionNode: Md,\n      MeasureLayout: Xf\n    }\n  };\n}));\nfunction Fl(e, r, o) {\n  const { props: t } = e;\n  e.animationState && t.whileHover && e.animationState.setActive(\"whileHover\", o === \"Start\");\n  const n = t[\"onHover\" + o];\n  n && te.postRender(() => n(r, et(r)));\n}\nvar rv, s_ = h((() => {\n  Z(), go(), rv = class extends mr {\n    mount() {\n      const { current: e } = this.node;\n      e && (this.unmount = Jk(e, (r, o) => (Fl(this.node, o, \"Start\"), (t) => Fl(this.node, t, \"End\"))));\n    }\n    unmount() {\n    }\n  };\n})), ov, a_ = h((() => {\n  Z(), W(), ov = class extends mr {\n    constructor() {\n      super(...arguments), this.isActive = !1;\n    }\n    onFocus() {\n      let e = !1;\n      try {\n        e = this.node.current.matches(\":focus-visible\");\n      } catch {\n        e = !0;\n      }\n      !e || !this.node.animationState || (this.node.animationState.setActive(\"whileFocus\", !0), this.isActive = !0);\n    }\n    onBlur() {\n      !this.isActive || !this.node.animationState || (this.node.animationState.setActive(\"whileFocus\", !1), this.isActive = !1);\n    }\n    mount() {\n      this.unmount = lo(Oo(this.node.current, \"focus\", () => this.onFocus()), Oo(this.node.current, \"blur\", () => this.onBlur()));\n    }\n    unmount() {\n    }\n  };\n}));\nfunction jl(e, r, o) {\n  const { props: t } = e;\n  if (e.current instanceof HTMLButtonElement && e.current.disabled) return;\n  e.animationState && t.whileTap && e.animationState.setActive(\"whileTap\", o === \"Start\");\n  const n = t[\"onTap\" + (o === \"End\" ? \"\" : o)];\n  n && te.postRender(() => n(r, et(r)));\n}\nvar tv, d_ = h((() => {\n  Z(), go(), tv = class extends mr {\n    mount() {\n      const { current: e } = this.node;\n      if (!e) return;\n      const { globalTapTarget: r, propagate: o } = this.node.props;\n      this.unmount = ox(e, (t, n) => (jl(this.node, n, \"Start\"), (i, { success: s }) => jl(this.node, i, s ? \"End\" : \"Cancel\")), {\n        useGlobalTarget: r,\n        stopPropagation: o?.tap === !1\n      });\n    }\n    unmount() {\n    }\n  };\n}));\nfunction c_({ root: e, ...r }) {\n  const o = e || document;\n  Et.has(o) || Et.set(o, {});\n  const t = Et.get(o), n = JSON.stringify(r);\n  return t[n] || (t[n] = new IntersectionObserver(nv, {\n    root: e,\n    ...r\n  })), t[n];\n}\nfunction l_(e, r, o) {\n  const t = c_(r);\n  return on.set(e, o), t.observe(e), () => {\n    on.delete(e), t.unobserve(e);\n  };\n}\nvar on, Et, $l, nv, u_ = h((() => {\n  on = /* @__PURE__ */ new WeakMap(), Et = /* @__PURE__ */ new WeakMap(), $l = (e) => {\n    const r = on.get(e.target);\n    r && r(e);\n  }, nv = (e) => {\n    e.forEach($l);\n  };\n}));\nfunction m_({ viewport: e = {} }, { viewport: r = {} } = {}) {\n  return (o) => e[o] !== r[o];\n}\nvar ql, iv, g_ = h((() => {\n  Z(), u_(), ql = {\n    some: 0,\n    all: 1\n  }, iv = class extends mr {\n    constructor() {\n      super(...arguments), this.hasEnteredView = !1, this.isInView = !1;\n    }\n    startObserver() {\n      this.stopObserver?.();\n      const { viewport: e = {} } = this.node.getProps(), { root: r, margin: o, amount: t = \"some\", once: n } = e, i = {\n        root: r ? r.current : void 0,\n        rootMargin: o,\n        threshold: typeof t == \"number\" ? t : ql[t]\n      }, s = (a) => {\n        const { isIntersecting: d } = a;\n        if (this.isInView === d || (this.isInView = d, n && !d && this.hasEnteredView)) return;\n        d && (this.hasEnteredView = !0), this.node.animationState && this.node.animationState.setActive(\"whileInView\", d);\n        const { onViewportEnter: l, onViewportLeave: u } = this.node.getProps(), m = d ? l : u;\n        m && m(a);\n      };\n      this.stopObserver = l_(this.node.current, i, s);\n    }\n    mount() {\n      this.startObserver();\n    }\n    update() {\n      if (typeof IntersectionObserver > \"u\") return;\n      const { props: e, prevProps: r } = this.node;\n      [\n        \"amount\",\n        \"margin\",\n        \"root\"\n      ].some(m_(e, r)) && this.startObserver();\n    }\n    unmount() {\n      this.stopObserver?.(), this.hasEnteredView = !1, this.isInView = !1;\n    }\n  };\n})), sv, av = h((() => {\n  s_(), a_(), d_(), g_(), sv = {\n    inView: { Feature: iv },\n    tap: { Feature: tv },\n    focus: { Feature: ov },\n    hover: { Feature: rv }\n  };\n})), dv, cv = h((() => {\n  Z(), Zf(), dv = { layout: {\n    ProjectionNode: Md,\n    MeasureLayout: Xf\n  } };\n})), lv, h_ = h((() => {\n  Ff(), ev(), av(), cv(), lv = {\n    ...Bf,\n    ...sv,\n    ...Qf,\n    ...dv\n  };\n})), uv, p_ = h((() => {\n  Of(), Df(), h_(), uv = /* @__PURE__ */ j1(lv, zf);\n}));\nfunction mv() {\n  !Xn.current && $h();\n  const [e] = T(zo.current);\n  return e;\n}\nvar f_ = h((() => {\n  Z();\n})), Wl = h((() => {\n  c1(), gf(), pf(), yn(), Z(), xn(), Ud(), wf(), f1(), Df(), p_(), Qn(), go(), Ff(), Hd(), Z(), Bd(), ym(), uf(), av(), Of(), ev(), cv(), W(), Wo(), Jo(), f_(), W(), Dd(), Ho(), Nf(), xf(), Qo(), Gd(), qf();\n})), Jd, v_ = h((() => {\n  Wl(), Wl(), Jd = uv;\n})), gv, b_ = h((() => {\n  gv = {\n    responsive: {\n      type: \"spring\",\n      stiffness: 520,\n      damping: 38,\n      mass: 0.8\n    },\n    settle: {\n      type: \"spring\",\n      stiffness: 420,\n      damping: 34,\n      mass: 0.9\n    }\n  };\n}));\nfunction He({ stateKey: e, order: r, children: o, className: t = \"\", focusOnChange: n = !1 }) {\n  const [i, s] = T({\n    current: e,\n    previous: e\n  });\n  i.current !== e && s({\n    current: e,\n    previous: i.current\n  });\n  const a = mv(), d = r.indexOf(i.previous), l = r.indexOf(e), u = l === d || l > d ? 1 : -1, m = n && i.previous !== e, g = a ? 0 : 18;\n  return /* @__PURE__ */ c(p1, {\n    reducedMotion: \"user\",\n    children: /* @__PURE__ */ c(zd, {\n      initial: !1,\n      mode: \"wait\",\n      custom: u,\n      children: /* @__PURE__ */ c(y_, {\n        className: `cedros-directional-panel ${t}`.trim(),\n        direction: u,\n        distance: g,\n        focusOnMount: m,\n        reduceMotion: a,\n        children: o\n      }, e)\n    })\n  });\n}\nfunction y_({ children: e, className: r, direction: o, distance: t, focusOnMount: n, reduceMotion: i }) {\n  const s = O(null), a = vf();\n  return F(() => {\n    n && s.current?.focus({ preventScroll: !0 });\n  }, [n]), /* @__PURE__ */ c(Jd.div, {\n    ref: s,\n    inert: a ? void 0 : !0,\n    \"aria-hidden\": a ? void 0 : !0,\n    className: r,\n    tabIndex: n ? -1 : void 0,\n    custom: o,\n    initial: {\n      opacity: 0,\n      x: o * t\n    },\n    animate: {\n      opacity: 1,\n      x: 0\n    },\n    exit: {\n      opacity: 0,\n      x: o * -t\n    },\n    transition: {\n      x: gv.responsive,\n      opacity: { duration: i ? 1e-3 : 0.14 }\n    },\n    children: e\n  });\n}\nfunction w_({ open: e, children: r, className: o = \"\" }) {\n  return /* @__PURE__ */ c(zd, {\n    initial: !1,\n    children: e && /* @__PURE__ */ c(k_, {\n      className: o,\n      children: r\n    })\n  });\n}\nfunction k_({ children: e, className: r }) {\n  const o = vf(), t = mv() ? 1e-3 : 0.24;\n  return /* @__PURE__ */ c(Jd.div, {\n    className: `cedros-collapsible ${r}`.trim(),\n    initial: {\n      gridTemplateRows: \"0fr\",\n      opacity: 0\n    },\n    animate: {\n      gridTemplateRows: \"1fr\",\n      opacity: 1\n    },\n    exit: {\n      gridTemplateRows: \"0fr\",\n      opacity: 0\n    },\n    transition: {\n      duration: t,\n      ease: [\n        0.16,\n        1,\n        0.3,\n        1\n      ]\n    },\n    \"aria-hidden\": !o,\n    children: /* @__PURE__ */ c(\"div\", {\n      className: \"cedros-collapsible__inner\",\n      inert: o ? void 0 : !0,\n      children: e\n    })\n  });\n}\nvar ho = h((() => {\n  v_(), Y(), b_();\n}));\nfunction je({ label: e, labelAction: r, showStrengthMeter: o = !1, onValidationChange: t, error: n, className: i = \"\", onChange: s, onFocus: a, onBlur: d, value: l, id: u, \"aria-describedby\": m, ...g }) {\n  const p = le(), f = e ?? p.auth.password, [v, x] = T(!1), [w, b] = T(!1), [k, y] = T(null), C = Ne(), P = u ?? C, S = `${P}-requirements`, R = typeof l == \"string\" && l.length > 0, A = o && (w || R), E = k ?? (o ? No(typeof l == \"string\" ? l : \"\", p.passwordValidation) : null), I = [\n    m,\n    n ? `${P}-error` : null,\n    A ? S : null\n  ].filter(Boolean).join(\" \"), L = (M) => {\n    const D = M.target.value;\n    if (o || t) {\n      const z = No(D, p.passwordValidation);\n      y(z), t?.(z);\n    }\n    s?.(M);\n  };\n  return /* @__PURE__ */ _(\"div\", {\n    className: `cedros-password-input ${i}`,\n    children: [\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-label-row\",\n        children: [/* @__PURE__ */ c(\"label\", {\n          htmlFor: P,\n          className: \"cedros-label\",\n          children: f\n        }), r]\n      }),\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-password-wrapper\",\n        children: [/* @__PURE__ */ c(\"input\", {\n          id: P,\n          type: v ? \"text\" : \"password\",\n          className: \"cedros-input\",\n          onChange: L,\n          onFocus: (M) => {\n            b(!0), a?.(M);\n          },\n          onBlur: (M) => {\n            b(!1), d?.(M);\n          },\n          value: l,\n          \"aria-invalid\": n ? \"true\" : void 0,\n          \"aria-describedby\": I || void 0,\n          ...g\n        }), /* @__PURE__ */ c(\"button\", {\n          type: \"button\",\n          className: \"cedros-password-toggle\",\n          onClick: () => x(!v),\n          \"aria-label\": v ? p.auth.hidePassword : p.auth.showPassword,\n          \"aria-pressed\": v,\n          children: v ? /* @__PURE__ */ _(\"svg\", {\n            width: \"20\",\n            height: \"20\",\n            viewBox: \"0 0 20 20\",\n            fill: \"none\",\n            \"aria-hidden\": \"true\",\n            children: [\n              /* @__PURE__ */ c(\"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__ */ c(\"circle\", {\n                cx: \"10\",\n                cy: \"10\",\n                r: \"2.5\",\n                stroke: \"currentColor\",\n                strokeWidth: \"1.5\"\n              }),\n              /* @__PURE__ */ c(\"path\", {\n                d: \"M3 17L17 3\",\n                stroke: \"currentColor\",\n                strokeWidth: \"1.5\",\n                strokeLinecap: \"round\"\n              })\n            ]\n          }) : /* @__PURE__ */ _(\"svg\", {\n            width: \"20\",\n            height: \"20\",\n            viewBox: \"0 0 20 20\",\n            fill: \"none\",\n            \"aria-hidden\": \"true\",\n            children: [/* @__PURE__ */ c(\"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__ */ c(\"circle\", {\n              cx: \"10\",\n              cy: \"10\",\n              r: \"2.5\",\n              stroke: \"currentColor\",\n              strokeWidth: \"1.5\"\n            })]\n          })\n        })]\n      }),\n      n && /* @__PURE__ */ c(\"p\", {\n        id: `${P}-error`,\n        className: \"cedros-input-error\",\n        children: n\n      }),\n      o && E && /* @__PURE__ */ c(w_, {\n        open: A,\n        children: /* @__PURE__ */ c(C0, {\n          validation: E,\n          requirementsId: S\n        })\n      })\n    ]\n  });\n}\nvar Fr = h((() => {\n  _r(), Q(), S0(), ho();\n}));\nfunction ei(e = {}) {\n  const { maxAttempts: r = 5, windowMs: o = 6e4, showCountdown: t = !1, rateLimitMessage: n } = e, i = O([]), [s, a] = T(!1), [, d] = T(0), l = N(() => {\n    d((w) => w + 1);\n  }, []), u = N(() => {\n    const w = Date.now();\n    i.current = i.current.filter((b) => w - b < o);\n  }, [o]), m = N(() => {\n    u(), a((w) => i.current.length === 0 && w ? !1 : w);\n  }, [u]), g = N(() => (u(), Math.max(0, r - i.current.length)), [u, r]), p = N(() => {\n    if (u(), i.current.length === 0) return 0;\n    const w = i.current[0] + o;\n    return Math.max(0, w - Date.now());\n  }, [u, o]), f = N(() => (u(), i.current.length < r), [u, r]), v = N(() => {\n    if (m(), i.current.length >= r) {\n      const w = p(), b = Math.ceil(w / 1e3);\n      throw new Error(n?.(b) ?? `Too many attempts. Please wait ${b} second${b === 1 ? \"\" : \"s\"} before trying again.`);\n    }\n    i.current.push(Date.now()), a((w) => w || !0), l();\n  }, [\n    m,\n    r,\n    p,\n    n,\n    l\n  ]), x = N(() => {\n    i.current = [], a((w) => w && !1), l();\n  }, [l]);\n  return F(() => {\n    if (!s || !t) return;\n    const w = window.setInterval(() => {\n      m(), l();\n    }, 1e3);\n    return () => {\n      window.clearInterval(w);\n    };\n  }, [\n    s,\n    t,\n    l,\n    m\n  ]), {\n    checkLimit: v,\n    isAllowed: f,\n    getRemainingAttempts: g,\n    getTimeUntilReset: p,\n    reset: x\n  };\n}\nvar ri = h((() => {\n  Y();\n}));\nfunction x_() {\n  const { config: e, _internal: r } = fe(), { t: o, message: t } = rr(), [n, i] = T(\"idle\"), [s, a] = T(!1), [d, l] = T(null), { checkLimit: u, getRemainingAttempts: m, getTimeUntilReset: g, reset: p } = ei({\n    maxAttempts: 5,\n    windowMs: 12e4,\n    rateLimitMessage: (v) => t(o.errors.rateLimitedWithSeconds, { seconds: v })\n  }), f = B(() => new ue({\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: n,\n    isLoading: s,\n    error: d,\n    verifyTotp: N(async (v, x) => {\n      const w = /^[A-Z0-9]{16}$/i.test(x) || /^[A-Z0-9]{4}(-[A-Z0-9]{4}){3}$/i.test(x);\n      if (!(/^\\d{6}$/.test(x) || w)) {\n        const b = {\n          code: \"VALIDATION_ERROR\",\n          message: o.auth.invalidTotpCode\n        };\n        throw l(b), b;\n      }\n      try {\n        u();\n      } catch (b) {\n        const k = {\n          code: \"RATE_LIMITED\",\n          message: b instanceof Error ? b.message : o.errors.tooManyRequests\n        };\n        throw l(k), k;\n      }\n      a(!0), l(null), i(\"verifying\");\n      try {\n        const b = await f.post(\"/login/mfa\", {\n          mfaToken: v,\n          code: x\n        });\n        return i(\"success\"), p(), e.callbacks?.onLoginSuccess?.(b.user, b.method ?? \"email\"), r && b.user && b.tokens && r.handleLoginSuccess(b.user, b.tokens), b;\n      } catch (b) {\n        const k = V(b, o.auth.incorrectVerificationCode, { networkMessage: o.errors.unableToReachServer });\n        throw l(k), i(\"error\"), k;\n      } finally {\n        a(!1);\n      }\n    }, [\n      f,\n      e.callbacks,\n      r,\n      u,\n      p,\n      o.auth,\n      o.errors\n    ]),\n    clearError: N(() => l(null), []),\n    reset: N(() => {\n      l(null), i(\"idle\"), a(!1);\n    }, []),\n    remainingAttempts: m(),\n    timeUntilReset: g()\n  };\n}\nvar __ = h((() => {\n  ie(), me(), ri(), Q();\n}));\nfunction tn({ value: e = \"\", onChange: r, onComplete: o, disabled: t = !1, error: n, autoFocus: i = !1, className: s = \"\" }) {\n  const { t: a, message: d } = rr(), l = O([]), [u, m] = T(e.padEnd(ze, \" \")), g = Ne();\n  F(() => {\n    m(e.padEnd(ze, \" \"));\n  }, [e]);\n  const p = N((k) => {\n    k >= 0 && k < ze && l.current[k]?.focus();\n  }, []), f = N((k) => {\n    const y = k.replace(/[^0-9 ]/g, \"\").slice(0, ze).padEnd(ze, \" \"), C = y.trimEnd();\n    m(y), r?.(C), /^\\d{6}$/.test(C) && o?.(C);\n  }, [r, o]), v = N((k, y) => {\n    if (/^\\d{2,6}$/.test(y)) {\n      f(y), p(Math.min(y.length, ze - 1));\n      return;\n    }\n    if (!/^\\d?$/.test(y)) return;\n    const C = u.split(\"\");\n    C[k] = y || \" \", f(C.join(\"\")), y && k < ze - 1 && p(k + 1);\n  }, [\n    u,\n    f,\n    p\n  ]), x = N((k, y) => {\n    if (y.key === \"Backspace\") {\n      y.preventDefault();\n      const C = u.split(\"\");\n      C[k] && C[k] !== \" \" ? (C[k] = \" \", f(C.join(\"\"))) : k > 0 && (C[k - 1] = \" \", f(C.join(\"\")), p(k - 1));\n    } else y.key === \"ArrowLeft\" && k > 0 ? (y.preventDefault(), p(k - 1)) : y.key === \"ArrowRight\" && k < ze - 1 && (y.preventDefault(), p(k + 1));\n  }, [\n    u,\n    f,\n    p\n  ]), w = N((k) => {\n    k.preventDefault();\n    const y = k.clipboardData.getData(\"text\").replace(/\\D/g, \"\").slice(0, ze);\n    y && (f(y), p(Math.min(y.length, ze - 1)));\n  }, [f, p]), b = N((k) => {\n    k.target.select();\n  }, []);\n  return F(() => {\n    i && !t && l.current[0]?.focus();\n  }, [i, t]), /* @__PURE__ */ _(\"div\", {\n    className: `cedros-otp-input ${s}`,\n    children: [/* @__PURE__ */ c(\"div\", {\n      className: \"cedros-otp-slots\",\n      role: \"group\",\n      \"aria-label\": a.auth.oneTimePassword,\n      children: Array.from({ length: ze }).map((k, y) => /* @__PURE__ */ c(\"input\", {\n        ref: (C) => {\n          l.current[y] = C;\n        },\n        id: `${g}-${y}`,\n        type: \"text\",\n        inputMode: \"numeric\",\n        pattern: \"[0-9]*\",\n        maxLength: ze,\n        className: `cedros-otp-slot ${n ? \"cedros-otp-slot-error\" : \"\"}`,\n        value: u[y] === \" \" ? \"\" : u[y] || \"\",\n        onChange: (C) => v(y, C.target.value),\n        onKeyDown: (C) => x(y, C),\n        onPaste: w,\n        onFocus: b,\n        disabled: t,\n        autoComplete: y === 0 ? \"one-time-code\" : \"off\",\n        \"aria-label\": d(a.auth.otpDigit, { index: y + 1 }),\n        \"aria-describedby\": n ? `${g}-error` : void 0,\n        \"aria-invalid\": n ? \"true\" : void 0\n      }, y))\n    }), n && /* @__PURE__ */ c(\"p\", {\n      id: `${g}-error`,\n      className: \"cedros-otp-error\",\n      role: \"alert\",\n      children: n\n    })]\n  });\n}\nvar ze, oi = h((() => {\n  Y(), Q(), ze = 6;\n}));\nfunction ti({ mfaToken: e, email: r, onSuccess: o, onBack: t, className: n = \"\" }) {\n  const i = le(), s = Ne(), a = O(!1), { verifyTotp: d, isLoading: l, error: u, clearError: m } = x_(), [g, p] = T(\"\"), [f, v] = T(!1), [x, w] = T(\"\"), b = async (C) => {\n    const P = (C || (f ? x : g)).trim();\n    if (!(!P || a.current)) {\n      a.current = !0;\n      try {\n        const S = await d(e, P);\n        o?.(S);\n      } catch {\n        f ? w(\"\") : p(\"\");\n      } finally {\n        a.current = !1;\n      }\n    }\n  }, k = (C) => {\n    b(C);\n  }, y = () => {\n    v(!f), m(), p(\"\"), w(\"\");\n  };\n  return /* @__PURE__ */ _(\"div\", {\n    className: `cedros-totp-verify ${n}`,\n    children: [\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-totp-verify-header\",\n        children: [\n          /* @__PURE__ */ _(\"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__ */ c(\"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__ */ c(\"path\", {\n                d: \"M16 20V14a8 8 0 1 1 16 0v6\",\n                stroke: \"currentColor\",\n                strokeWidth: \"2\",\n                strokeLinecap: \"round\"\n              }),\n              /* @__PURE__ */ c(\"circle\", {\n                cx: \"24\",\n                cy: \"32\",\n                r: \"3\",\n                fill: \"currentColor\"\n              })\n            ]\n          }),\n          /* @__PURE__ */ c(\"h3\", {\n            className: \"cedros-totp-title\",\n            children: i.auth.twoFactorTitle\n          }),\n          /* @__PURE__ */ c(\"p\", {\n            className: \"cedros-totp-description\",\n            children: f ? i.auth.recoveryCodeDescription : i.auth.authenticatorCodeDescription\n          }),\n          r && /* @__PURE__ */ c(\"p\", {\n            className: \"cedros-totp-email\",\n            children: r\n          })\n        ]\n      }),\n      f ? /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-totp-backup-input\",\n        children: [\n          /* @__PURE__ */ c(\"label\", {\n            htmlFor: s,\n            className: \"cedros-label\",\n            children: i.auth.recoveryCode\n          }),\n          /* @__PURE__ */ c(\"input\", {\n            id: s,\n            \"aria-invalid\": u ? !0 : void 0,\n            \"aria-describedby\": u ? `${s}-error` : void 0,\n            spellCheck: !1,\n            autoCapitalize: \"none\",\n            type: \"text\",\n            className: `cedros-input ${u ? \"cedros-input-error\" : \"\"}`,\n            placeholder: i.auth.enterRecoveryCode,\n            value: x,\n            onChange: (C) => {\n              w(C.target.value), m();\n            },\n            onKeyDown: (C) => {\n              C.key === \"Enter\" && x && b();\n            },\n            disabled: l,\n            autoFocus: !0,\n            autoComplete: \"one-time-code\"\n          }),\n          u && /* @__PURE__ */ c(\"p\", {\n            id: `${s}-error`,\n            className: \"cedros-input-error\",\n            role: \"alert\",\n            children: u.message\n          })\n        ]\n      }) : /* @__PURE__ */ c(tn, {\n        value: g,\n        onChange: (C) => {\n          p(C), m();\n        },\n        onComplete: k,\n        disabled: l,\n        error: u?.message,\n        autoFocus: !0\n      }),\n      /* @__PURE__ */ c(\"button\", {\n        type: \"button\",\n        className: \"cedros-button cedros-button-primary cedros-button-md cedros-button-full\",\n        onClick: () => b(),\n        disabled: l || (f ? !x : !/^\\d{6}$/.test(g)),\n        children: l ? /* @__PURE__ */ _(ce, { children: [/* @__PURE__ */ c(H, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", { children: i.auth.verifying })] }) : i.auth.verify\n      }),\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-totp-verify-footer\",\n        children: [/* @__PURE__ */ c(\"button\", {\n          type: \"button\",\n          className: \"cedros-link cedros-link-sm\",\n          onClick: y,\n          disabled: l,\n          children: f ? i.auth.useAuthenticatorApp : i.auth.useRecoveryCode\n        }), t && /* @__PURE__ */ _(ce, { children: [/* @__PURE__ */ c(\"span\", {\n          className: \"cedros-totp-verify-divider\",\n          children: \"•\"\n        }), /* @__PURE__ */ c(\"button\", {\n          type: \"button\",\n          className: \"cedros-link cedros-link-sm\",\n          onClick: t,\n          disabled: l,\n          children: i.auth.backToLogin\n        })] })]\n      })\n    ]\n  });\n}\nvar rt = h((() => {\n  __(), oi(), re(), Q();\n})), Zd, hv = h((() => {\n  me(), Zd = class {\n    client;\n    constructor(e, r, o, t) {\n      this.client = new ue({\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 V(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 V(r, \"Failed to unlink credential\");\n      }\n    }\n  };\n})), Qd, pv = h((() => {\n  me(), Qd = class {\n    client;\n    constructor(e, r, o, t) {\n      this.client = new ue({\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 V(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 V(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 V(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 V(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 V(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 V(r, \"Unable to delete invite code\");\n      }\n    }\n  };\n}));\nfunction ni(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 > vv) return null;\n    const n = new URL(t, r);\n    return n.origin !== r.origin ? null : `${n.pathname}${n.search}${n.hash}`;\n  } catch {\n    return null;\n  }\n}\nfunction fv(e) {\n  const r = ni(e);\n  return r ? `/login?returnTo=${encodeURIComponent(r)}` : \"/login\";\n}\nvar vv, ii = h((() => {\n  vv = 2048;\n}));\nfunction A_(e) {\n  return \"mfaRequired\" in e && e.mfaRequired === !0;\n}\nfunction nn(e) {\n  return !!(e.user.email && (e.emailQueued === !0 || e.user.emailVerified === !1 && e.tokens === void 0));\n}\nfunction si() {\n  const { config: e, _internal: r } = fe(), o = Ur(), { t, message: n } = rr(), [i, s] = T(!1), [a, d] = T(null), l = 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: u, getRemainingAttempts: m, getTimeUntilReset: g, reset: p } = ei({\n    maxAttempts: 5,\n    windowMs: 6e4,\n    rateLimitMessage: (S) => n(t.errors.rateLimitedWithSeconds, { seconds: S })\n  }), f = B(() => new ue({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    retryAttempts: e.retryAttempts\n  }), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts\n  ]), v = B(() => new ue({\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  ]), x = B(() => new qo(e.serverUrl, e.requestTimeout, e.retryAttempts, r?.getAccessToken), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    r?.getAccessToken\n  ]), w = B(() => new Zd(e.serverUrl, e.requestTimeout, e.retryAttempts, r?.getAccessToken), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    r?.getAccessToken\n  ]), b = B(() => new Qd(e.serverUrl, e.requestTimeout, e.retryAttempts, r?.getAccessToken), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    r?.getAccessToken\n  ]), k = e.callbacks, y = N(async (S, R) => {\n    if (!It(S)) {\n      const A = {\n        code: \"VALIDATION_ERROR\",\n        message: t.errors.invalidEmail\n      };\n      throw d(A), A;\n    }\n    try {\n      u();\n    } catch (A) {\n      const E = {\n        code: \"RATE_LIMITED\",\n        message: A instanceof Error ? A.message : t.errors.tooManyRequests\n      };\n      throw d(E), E;\n    }\n    s(!0), d(null);\n    try {\n      const A = await f.post(\"/login\", {\n        email: S,\n        password: R\n      });\n      if (A_(A)) return {\n        mfaRequired: !0,\n        mfaToken: A.mfaToken,\n        email: S,\n        userId: A.userId\n      };\n      const E = A;\n      return E.inviteCodeRequired && E.pendingInviteToken ? (p(), {\n        mfaRequired: !1,\n        inviteCodeRequired: !0,\n        pendingInviteToken: E.pendingInviteToken,\n        waitlistEnrollmentAccepted: E.inviteGateHandoffStatus === \"accepted\"\n      }) : (k?.onLoginSuccess?.(E.user, \"email\"), r?.handleLoginSuccess(E.user, E.tokens), p(), {\n        mfaRequired: !1,\n        response: E\n      });\n    } catch (A) {\n      const E = V(A, t.errors.signInFallback, {\n        friendlyMessages: l,\n        networkMessage: t.errors.unableToReachServer\n      });\n      throw d(E), E;\n    } finally {\n      s(!1);\n    }\n  }, [\n    f,\n    k,\n    r,\n    u,\n    p,\n    l,\n    t.errors\n  ]), C = N(async (S, R, A, E, I) => {\n    if (!It(S)) {\n      const L = {\n        code: \"VALIDATION_ERROR\",\n        message: t.errors.invalidEmail\n      };\n      throw d(L), L;\n    }\n    try {\n      u();\n    } catch (L) {\n      const M = {\n        code: \"RATE_LIMITED\",\n        message: L instanceof Error ? L.message : t.errors.tooManyRequests\n      };\n      throw d(M), M;\n    }\n    s(!0), d(null);\n    try {\n      const L = await o.requestDeviceAccountLink({\n        identifier: S,\n        method: \"email\",\n        linkExisting: async ($, q) => (await x.addEmail(S), (await w.listCredentials()).some((J) => J.credentialType === \"password\") || await v.post(\"/set-password\", { password: R }), q)\n      });\n      if (L.action === \"linked\") {\n        if (p(), L.response) return L.response;\n        throw {\n          code: \"UNKNOWN_ERROR\",\n          message: \"Account linked. Please refresh your session.\"\n        };\n      }\n      const M = E ?? r?.getReferralCode?.() ?? void 0, D = ni(typeof window > \"u\" ? void 0 : window.location.href), z = await f.post(\"/register\", {\n        email: S,\n        password: R,\n        name: A,\n        referral: M,\n        ...I ? { accessCode: I } : {},\n        ...D ? { returnTo: D } : {}\n      });\n      return !z.inviteCodeRequired && !nn(z) && (k?.onLoginSuccess?.(z.user, \"email\"), r?.handleLoginSuccess(z.user, z.tokens)), p(), z;\n    } catch (L) {\n      const M = V(L, t.errors.registerFallback, {\n        friendlyMessages: l,\n        networkMessage: t.errors.unableToReachServer\n      });\n      throw d(M), M;\n    } finally {\n      s(!1);\n    }\n  }, [\n    x,\n    f,\n    v,\n    k,\n    w,\n    o,\n    r,\n    u,\n    p,\n    l,\n    t.errors\n  ]), P = N((S) => {\n    nn(S) || (k?.onLoginSuccess?.(S.user, \"email\"), r?.handleLoginSuccess(S.user, S.tokens), p());\n  }, [\n    k,\n    r,\n    p\n  ]);\n  return {\n    login: y,\n    register: C,\n    redeemInviteCode: N(async (S, R, A) => {\n      s(!0), d(null);\n      try {\n        const E = await b.redeem(S, R);\n        return A?.deferLoginSuccess || P(E), E;\n      } catch (E) {\n        const I = V(E, \"Unable to apply invite code\", {\n          friendlyMessages: l,\n          networkMessage: t.errors.unableToReachServer\n        });\n        throw d(I), I;\n      } finally {\n        s(!1);\n      }\n    }, [\n      P,\n      b,\n      l,\n      t.errors\n    ]),\n    completeInviteRedemption: P,\n    isLoading: i,\n    error: a,\n    clearError: N(() => d(null), []),\n    remainingAttempts: m(),\n    timeUntilReset: g()\n  };\n}\nvar ai = h((() => {\n  ie(), Vr(), me(), vn(), hv(), pv(), _r(), ri(), Q(), ii();\n}));\nfunction C_({ children: e }) {\n  const [r, o] = T(null), [t, n] = T(\"choice\"), [i, s] = T(null), [a, d] = T(!1), l = O(null), u = N(async (v) => {\n    const x = R_(v.method), w = await Uw(v.identifier, x);\n    return w ? (l.current?.({ action: \"create\" }), new Promise((b) => {\n      l.current = b, s(null), n(\"choice\"), o({\n        request: v,\n        hint: w.hint,\n        idHash: w.idHash,\n        newLabel: w.label,\n        resolve: b\n      });\n    })) : { action: \"create\" };\n  }, []), m = N((v) => {\n    l.current?.(v), l.current = null, o(null), n(\"choice\"), s(null), d(!1);\n  }, []), g = N(() => {\n    r && (Vw(r.idHash), m({ action: \"create\" }));\n  }, [r, m]), p = N(() => {\n    Bw(), m({ action: \"create\" });\n  }, [m]), f = N(async (v) => {\n    if (r) {\n      d(!0), s(null);\n      try {\n        m({\n          action: \"linked\",\n          response: await r.request.linkExisting(r.hint, v) ?? v\n        });\n      } catch (x) {\n        s(xr(x, \"Unable to link this sign-in method. Please try again.\").message), d(!1);\n      }\n    }\n  }, [r, m]);\n  return /* @__PURE__ */ _(Ws.Provider, {\n    value: { requestDeviceAccountLink: u },\n    children: [e, r && /* @__PURE__ */ c(S_, {\n      pending: r,\n      phase: t,\n      error: i,\n      isLinking: a,\n      onChooseLink: () => n(\"signin\"),\n      onCreateSeparate: g,\n      onNotMe: p,\n      onCancel: () => m({ action: \"create\" }),\n      onSignedIn: f\n    })]\n  });\n}\nfunction S_({ pending: e, phase: r, error: o, isLinking: t, onChooseLink: n, onCreateSeparate: i, onNotMe: s, onCancel: a, onSignedIn: d }) {\n  const l = `You've signed in here before as ${e.hint.label} (with ${Ui(e.hint.method)}). Link this new sign-in method to that account, or create a separate one?`;\n  return /* @__PURE__ */ c(\"div\", {\n    className: \"cedros-modal-backdrop\",\n    role: \"presentation\",\n    children: /* @__PURE__ */ _(\"div\", {\n      className: \"cedros-device-link-dialog\",\n      role: \"alertdialog\",\n      \"aria-modal\": \"true\",\n      \"aria-labelledby\": \"cedros-device-link-title\",\n      \"aria-describedby\": \"cedros-device-link-description\",\n      children: [\n        /* @__PURE__ */ c(\"h2\", {\n          id: \"cedros-device-link-title\",\n          className: \"cedros-device-link-dialog__title\",\n          children: r === \"choice\" ? \"Account found on this device\" : \"Sign in to link\"\n        }),\n        /* @__PURE__ */ c(\"p\", {\n          id: \"cedros-device-link-description\",\n          className: \"cedros-device-link-dialog__description\",\n          children: r === \"choice\" ? l : `Use ${Ui(e.hint.method)} to continue as ${e.hint.label}.`\n        }),\n        r === \"choice\" ? /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-device-link-dialog__actions\",\n          children: [\n            /* @__PURE__ */ c(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-primary cedros-button-md\",\n              onClick: n,\n              children: \"Link to my existing account\"\n            }),\n            /* @__PURE__ */ c(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-outline cedros-button-md\",\n              onClick: i,\n              children: \"Create a separate account\"\n            }),\n            /* @__PURE__ */ c(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-ghost cedros-button-md\",\n              onClick: s,\n              children: \"That's not me\"\n            })\n          ]\n        }) : /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-device-link-dialog__signin\",\n          children: [\n            /* @__PURE__ */ c(E_, {\n              method: e.hint.method,\n              disabled: t,\n              onSignedIn: d\n            }),\n            t && /* @__PURE__ */ _(\"div\", {\n              className: \"cedros-device-link-dialog__status\",\n              role: \"status\",\n              children: [/* @__PURE__ */ c(H, { size: \"sm\" }), /* @__PURE__ */ _(\"span\", { children: [\n                \"Linking \",\n                Ui(e.request.method),\n                \"...\"\n              ] })]\n            }),\n            /* @__PURE__ */ c(ae, { error: o }),\n            /* @__PURE__ */ c(\"div\", {\n              className: \"cedros-device-link-dialog__secondary-actions\",\n              children: /* @__PURE__ */ c(\"button\", {\n                type: \"button\",\n                className: \"cedros-button cedros-button-outline cedros-button-sm\",\n                onClick: a,\n                disabled: t,\n                children: \"Back\"\n              })\n            })\n          ]\n        })\n      ]\n    })\n  });\n}\nfunction E_({ method: e, disabled: r, onSignedIn: o }) {\n  const [t, n] = T(null);\n  if (t) return /* @__PURE__ */ c(ti, {\n    mfaToken: t,\n    onSuccess: o,\n    onBack: () => n(null)\n  });\n  const i = { onMfaRequired: (s) => n(s.mfaToken) };\n  return e === \"google\" ? /* @__PURE__ */ c(Xu, {\n    disabled: r,\n    onSuccess: o,\n    ...i\n  }) : e === \"apple\" ? /* @__PURE__ */ c(Qu, {\n    disabled: r,\n    hideOnNonApple: !1,\n    onSuccess: o,\n    ...i\n  }) : e === \"solana\" ? /* @__PURE__ */ c(g0, {\n    disabled: r,\n    hideIfNoWallet: !1,\n    onSuccess: o,\n    ...i\n  }) : e === \"webauthn\" ? /* @__PURE__ */ c(fm, {\n    disabled: r,\n    onSuccess: o,\n    ...i\n  }) : /* @__PURE__ */ c(T_, {\n    disabled: r,\n    onSignedIn: o,\n    onMfaRequired: n\n  });\n}\nfunction T_({ disabled: e, onSignedIn: r, onMfaRequired: o }) {\n  const { login: t, isLoading: n, error: i, clearError: s } = si(), [a, d] = T(\"\"), [l, u] = T(\"\"), [m, g] = T(null), p = async (f) => {\n    f.preventDefault(), g(null);\n    try {\n      const v = await t(a, l);\n      if (v.mfaRequired) {\n        o(v.mfaToken);\n        return;\n      }\n      if (\"inviteCodeRequired\" in v) {\n        g(\"Enter your invite code to finish signing in before linking this method.\");\n        return;\n      }\n      await r(v.response);\n    } catch (v) {\n      g(xr(v, \"Unable to sign in. Please try again.\").message);\n    }\n  };\n  return /* @__PURE__ */ _(\"form\", {\n    className: \"cedros-device-link-dialog__email-form\",\n    onSubmit: (f) => {\n      p(f);\n    },\n    children: [\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-form-field\",\n        children: [/* @__PURE__ */ c(\"label\", {\n          htmlFor: \"device-link-email\",\n          className: \"cedros-label\",\n          children: \"Email\"\n        }), /* @__PURE__ */ c(\"input\", {\n          id: \"device-link-email\",\n          type: \"email\",\n          className: \"cedros-input\",\n          value: a,\n          onChange: (f) => d(f.target.value),\n          autoComplete: \"email\",\n          disabled: e || n,\n          required: !0\n        })]\n      }),\n      /* @__PURE__ */ c(\"div\", {\n        className: \"cedros-form-field\",\n        children: /* @__PURE__ */ c(je, {\n          value: l,\n          onChange: (f) => u(f.target.value),\n          disabled: e || n,\n          autoComplete: \"current-password\",\n          required: !0\n        })\n      }),\n      /* @__PURE__ */ c(ae, {\n        error: m || i,\n        onDismiss: () => {\n          g(null), s();\n        }\n      }),\n      /* @__PURE__ */ c(\"button\", {\n        type: \"submit\",\n        className: \"cedros-button cedros-button-primary cedros-button-md\",\n        disabled: e || n || !a || !l,\n        children: n ? /* @__PURE__ */ c(H, { size: \"sm\" }) : \"Sign in\"\n      })\n    ]\n  });\n}\nfunction R_(e) {\n  return e === \"instantLink\" ? \"email\" : e;\n}\nfunction Ui(e) {\n  switch (e) {\n    case \"google\":\n      return \"Google\";\n    case \"apple\":\n      return \"Apple\";\n    case \"solana\":\n      return \"Solana\";\n    case \"webauthn\":\n      return \"passkey\";\n    case \"instantLink\":\n      return \"instant link\";\n    default:\n      return \"email\";\n  }\n}\nvar P_ = h((() => {\n  Ju(), em(), p0(), vm(), Fr(), re(), we(), rt(), ai(), $o(), fn(), Vr();\n}));\nfunction bv() {\n  return Object.values(ot);\n}\nfunction L_(e) {\n  if (typeof e == \"boolean\") return e;\n  if (typeof e != \"string\") return;\n  const r = e.trim().toLowerCase();\n  if (kv.has(r)) return !0;\n  if (xv.has(r)) return !1;\n}\nfunction yv() {\n  return Object.fromEntries(Object.entries(ot).map(([e, r]) => [e, r.defaultEnabled]));\n}\nfunction N_(e) {\n  const r = {};\n  for (const o of bv()) {\n    const t = L_(e?.[o.envVar]);\n    t !== void 0 && (r[o.name] = t);\n  }\n  return r;\n}\nfunction wv(e = {}) {\n  const r = yv(), o = N_(e.env), t = { ...r };\n  for (const n of Object.keys(ot)) t[n] = e.config?.[n] ?? o[n] ?? e.base?.[n] ?? r[n];\n  return t;\n}\nfunction I_(e, r = {}) {\n  return r.flags ? r.flags[e] ?? ot[e].defaultEnabled : wv(r)[e];\n}\nfunction M_() {\n  return bv().filter((e) => e.autoDiscoverable).map((e) => e.name);\n}\nfunction D_() {\n  const e = yv(), r = {};\n  for (const o of M_()) r[o] = e[o];\n  return r;\n}\nvar ot, kv, xv, _v = h((() => {\n  ot = {\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  }, kv = /* @__PURE__ */ new Set([\n    \"1\",\n    \"true\",\n    \"yes\",\n    \"on\"\n  ]), xv = /* @__PURE__ */ new Set([\n    \"0\",\n    \"false\",\n    \"no\",\n    \"off\"\n  ]);\n}));\nfunction Av() {\n  return typeof window < \"u\" && typeof window.matchMedia == \"function\";\n}\nfunction z_(e) {\n  if (!Av()) return () => {\n  };\n  const r = window.matchMedia(ec);\n  return r.addEventListener(\"change\", e), () => r.removeEventListener(\"change\", e);\n}\nfunction O_() {\n  return Av() && window.matchMedia(ec).matches;\n}\nfunction U_() {\n  return iu(z_, O_, () => !1);\n}\nvar ec, V_ = h((() => {\n  ec = \"(prefers-color-scheme: dark)\";\n}));\nfunction B_({ theme: e, themeOverrides: r, applyThemeToDocument: o = !0 }) {\n  const t = U_(), n = e === \"dark\" || e !== \"light\" && t;\n  return F(() => {\n    if (typeof document > \"u\" || !o) return;\n    const i = document.documentElement;\n    let s = !1;\n    return n ? (yo++, s = !0, i.classList.add(\"cebbwf5-dark\")) : yo === 0 && i.classList.remove(\"cebbwf5-dark\"), () => {\n      s && (yo--, yo === 0 && i.classList.remove(\"cebbwf5-dark\"));\n    };\n  }, [n, o]), {\n    className: n ? \"cebbwf5-dark\" : \"\",\n    style: B(() => {\n      if (!r) return {};\n      const i = {};\n      for (const [s, a] of Object.entries(r)) if (a) {\n        i[s] = a;\n        const d = Cv[s];\n        d && !r[d] && (i[d] = a);\n      }\n      return i;\n    }, [r])\n  };\n}\nvar Cv, yo, F_ = h((() => {\n  Y(), V_(), Cv = { \"--cebbwf5-success-light\": \"--cebbwf5-login-success-soft\" }, yo = 0;\n}));\nfunction j_(e, r, o) {\n  const [t, n] = T(null), [i, s] = T(), [a, d] = T(), [l, u] = T(), [m, g] = T(), [p, f] = T(), [v, x] = T(), [w, b] = T(r);\n  return F(() => {\n    if (!r) {\n      b(!1);\n      return;\n    }\n    let k = !0, y = !1, C = !1, P = !1, S;\n    b(!0);\n    const R = new ue({\n      baseUrl: e,\n      timeoutMs: o ?? 5e3,\n      retryAttempts: 1\n    }), A = async () => {\n      if (!C) {\n        C = !0;\n        try {\n          const L = await R.get(\"/features\", {\n            credentials: \"omit\",\n            cacheTtlMs: 0,\n            forceRefresh: y\n          });\n          if (!k) return;\n          const M = hn(L.signupAvailability);\n          if (P = L.signupAvailability !== void 0 && L.signupAvailability !== null, S !== void 0 && window.clearTimeout(S), S = void 0, M) {\n            const D = Math.min(2147483647, Math.max(0, Date.parse(M.resetsAt) - Date.now() + 250));\n            S = window.setTimeout(() => {\n              k && (x(void 0), A());\n            }, D);\n          }\n          n({\n            email: L.email,\n            google: L.google,\n            apple: L.apple,\n            solana: L.solana,\n            webauthn: L.webauthn,\n            instantLink: L.instantLink\n          }), s(L.googleClientId), d(L.appleClientId), u(L.usernameEnabled), g(L.socialButtonOrder), f(L.signupAccessCodeRequired), x(M);\n        } catch {\n          if (!k || y) return;\n          n(Sv);\n        } finally {\n          C = !1, k && !y && (y = !0, b(!1));\n        }\n      }\n    };\n    A();\n    const E = window.setInterval(() => {\n      P && document.visibilityState === \"visible\" && A();\n    }, 6e4), I = () => {\n      P && document.visibilityState === \"visible\" && A();\n    };\n    return document.addEventListener(\"visibilitychange\", I), () => {\n      k = !1, window.clearInterval(E), S !== void 0 && window.clearTimeout(S), document.removeEventListener(\"visibilitychange\", I);\n    };\n  }, [\n    r,\n    e,\n    o\n  ]), {\n    features: t,\n    googleClientId: i,\n    appleClientId: a,\n    usernameEnabled: l,\n    socialButtonOrder: m,\n    signupAccessCodeRequired: p,\n    signupAvailability: v,\n    isLoading: w\n  };\n}\nvar Sv, $_ = h((() => {\n  Y(), _v(), me(), pn(), Sv = D_();\n})), Hl, Kl, Ev, q_ = h((() => {\n  Hl = \"cedros_tokens\", Kl = 6e4, Ev = 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 = Hl, 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(Kl, 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 n = t instanceof Error ? t : /* @__PURE__ */ new Error(\"Token refresh failed\");\n          this.onRefreshError?.(n), 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 n = t instanceof Error ? t : /* @__PURE__ */ new Error(\"Token refresh failed\");\n          this.onRefreshError?.(n), 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 W_(e) {\n  return !Tv(e) || typeof e.type != \"string\" ? !1 : e.type === \"logout\" || e.type === \"refresh\" ? !0 : e.type === \"login\" && H_(e.user);\n}\nfunction H_(e) {\n  return Tv(e) && typeof e.id == \"string\" && Sr(e.email) && Sr(e.name) && Sr(e.username) && Sr(e.picture) && Sr(e.walletAddress) && Array.isArray(e.authMethods) && e.authMethods.every(K_) && typeof e.emailVerified == \"boolean\" && G_(e.totpEnabled) && typeof e.createdAt == \"string\" && typeof e.updatedAt == \"string\" && Sr(e.welcomeCompletedAt) && Sr(e.referralCode);\n}\nfunction Tv(e) {\n  return typeof e == \"object\" && e !== null;\n}\nfunction K_(e) {\n  return typeof e == \"string\" && Rv.some((r) => r === e);\n}\nfunction Sr(e) {\n  return e === void 0 || typeof e == \"string\";\n}\nfunction G_(e) {\n  return e === void 0 || typeof e == \"boolean\";\n}\nvar Vi, Rv, Pv, Y_ = h((() => {\n  Vi = \"cedros_auth_sync\", Rv = [\n    \"email\",\n    \"google\",\n    \"apple\",\n    \"solana\",\n    \"webauthn\",\n    \"sso\"\n  ], Pv = 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 ? `${Vi}:${e}` : Vi), this.boundHandler = this.handleMessage.bind(this), this.channel.addEventListener(\"message\", this.boundHandler));\n    }\n    handleMessage(e) {\n      const r = e.data;\n      W_(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}));\nasync function X_(e) {\n  const r = Q_();\n  if (r) {\n    let o = !1;\n    try {\n      await r.request(Nv, () => (o = !0, Gl(e, {\n        probeCookieSession: !0,\n        reconcileTokenStorage: !0\n      })));\n      return;\n    } catch (t) {\n      if (o) throw t;\n    }\n  }\n  await Gl(e, {\n    probeCookieSession: !1,\n    reconcileTokenStorage: !1\n  });\n}\nasync function J_(e, r) {\n  if (e.current) return e.current;\n  const o = Z_();\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 Z_() {\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 Q_() {\n  return typeof navigator > \"u\" ? null : typeof navigator.locks?.request == \"function\" ? navigator.locks : null;\n}\nasync function Gl(e, r) {\n  const o = new AbortController(), t = e.requestTimeoutMs ?? 1e4, n = window.setTimeout(() => o.abort(), t);\n  try {\n    if (e.isCurrent?.() === !1 || r.probeCookieSession && e.storage === \"cookie\" && await e5(e.serverUrl, o.signal) || e.isCurrent?.() === !1 || r.reconcileTokenStorage && r5(e)) return;\n    await o5(e, o.signal), e.isCurrent?.() !== !1 && e.onRefresh?.();\n  } finally {\n    window.clearTimeout(n);\n  }\n}\nasync function e5(e, r) {\n  try {\n    return (await fetch(`${e}/user`, {\n      credentials: \"include\",\n      signal: r\n    })).ok;\n  } catch {\n    return !1;\n  }\n}\nfunction r5(e) {\n  const r = i5(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), !0);\n}\nasync function o5(e, r) {\n  const o = e.tokenStore.getRefreshToken(), t = await fetch(`${e.serverUrl}/refresh`, {\n    method: \"POST\",\n    headers: t5(o),\n    credentials: \"include\",\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 n5(e, t);\n}\nfunction t5(e) {\n  const r = {}, o = Nt();\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 n5(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 = rc(o) ? o.tokens : void 0;\n  if (t) {\n    if (!Lv(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 i5(e) {\n  const r = s5(e.storage, e.allowWebStorage);\n  if (!r) return null;\n  try {\n    const o = r.getItem(e.persistKey ?? Iv);\n    if (!o) return null;\n    const t = JSON.parse(o);\n    return !a5(t) || t.expiresAt <= Date.now() ? null : t;\n  } catch {\n    return console.warn(\"[Cedros Login] Unable to read token storage before refresh\"), null;\n  }\n}\nfunction s5(e, r) {\n  return !r || typeof window > \"u\" ? null : e === \"localStorage\" ? window.localStorage : e === \"sessionStorage\" ? window.sessionStorage : null;\n}\nfunction a5(e) {\n  return rc(e) && typeof e.expiresAt == \"number\" && Number.isFinite(e.expiresAt) && Lv(e.tokens);\n}\nfunction Lv(e) {\n  return rc(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 rc(e) {\n  return typeof e == \"object\" && e !== null;\n}\nvar Nv, Iv, d5 = h((() => {\n  Hs(), Nv = \"cedros-login:refresh\", Iv = \"cedros_tokens\";\n}));\nfunction gt(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 c5({ serverUrl: e, session: r, callbacks: o, requestTimeoutMs: t }) {\n  const [n, i] = T(null), [s, a] = T(\"idle\"), d = O(null), l = O(null), u = O(o), m = O(!0), g = O(0), p = O(!1), f = O(null), v = O(() => Promise.resolve()), x = O(() => {\n  });\n  F(() => {\n    u.current = o;\n  }, [o]), F(() => (m.current = !0, () => {\n    m.current = !1, g.current += 1;\n  }), []);\n  const w = N((A) => {\n    m.current && i(A);\n  }, []), b = N((A) => {\n    m.current && a(A);\n  }, []), k = B(() => ({\n    storage: r?.storage ?? \"cookie\",\n    autoRefresh: r?.autoRefresh ?? !0,\n    syncTabs: r?.syncTabs ?? !0,\n    persistKey: r?.persistKey,\n    allowWebStorage: r?.allowWebStorage ?? !1\n  }), [\n    r?.storage,\n    r?.autoRefresh,\n    r?.syncTabs,\n    r?.persistKey,\n    r?.allowWebStorage\n  ]);\n  F(() => {\n    p.current = !1;\n    const A = new Ev(k.storage, k.persistKey, { allowWebStorage: k.allowWebStorage });\n    return d.current = A, k.autoRefresh && A.setRefreshCallback(() => v.current()), A.setSessionExpiredCallback(() => x.current()), k.syncTabs && (l.current = new Pv(e)), () => {\n      g.current += 1, A.destroy(), d.current = null, l.current?.close();\n    };\n  }, [\n    e,\n    k.storage,\n    k.syncTabs,\n    k.persistKey,\n    k.allowWebStorage,\n    k.autoRefresh\n  ]);\n  const y = N(async () => {\n    if (p.current) return;\n    const A = g.current, E = d.current;\n    await J_(f, () => X_({\n      serverUrl: e,\n      storage: k.storage,\n      persistKey: k.persistKey,\n      allowWebStorage: k.allowWebStorage,\n      requestTimeoutMs: t,\n      tokenStore: {\n        getRefreshToken: () => E?.getRefreshToken() ?? null,\n        setTokens: (I, L) => E?.setTokens(I, L)\n      },\n      isCurrent: () => m.current && g.current === A && !p.current,\n      onRefresh: () => l.current?.broadcastRefresh()\n    }));\n  }, [\n    e,\n    k.storage,\n    k.persistKey,\n    k.allowWebStorage,\n    t\n  ]), C = N(() => {\n    if (k.storage === \"cookie\") return;\n    const A = d.current?.getAccessToken();\n    if (A)\n      return { Authorization: `Bearer ${A}` };\n  }, [k.storage]), P = N(() => {\n    g.current += 1, d.current?.clear(), w(null), b(\"unauthenticated\"), u.current?.onSessionExpired?.();\n  }, [b, w]);\n  v.current = y, x.current = P;\n  const S = N((A) => {\n    const E = new AbortController(), I = t ?? 1e4, L = window.setTimeout(() => E.abort(), I), M = {}, D = C();\n    D && Object.assign(M, D);\n    const z = Nt();\n    return z && (M[\"X-CSRF-Token\"] = z), {\n      promise: fetch(A, {\n        credentials: \"include\",\n        headers: Object.keys(M).length > 0 ? M : void 0,\n        signal: E.signal\n      }),\n      cleanup: () => window.clearTimeout(L)\n    };\n  }, [C, t]), R = N(async () => {\n    if (p.current) return;\n    const A = g.current, E = () => m.current && g.current === A && !p.current, I = S(`${e}/user`);\n    try {\n      const L = await I.promise;\n      if (!E()) return;\n      if (L.ok) {\n        const M = await L.json();\n        if (gt(M)) {\n          if (!E()) return;\n          w(M.user), b(\"authenticated\");\n          return;\n        }\n      }\n      if (L.status === 401 && k.autoRefresh) {\n        try {\n          await y();\n        } catch {\n          if (!E()) return;\n          P();\n          return;\n        }\n        if (!E()) return;\n        const M = S(`${e}/user`);\n        try {\n          const D = await M.promise;\n          if (D.ok) {\n            const z = await D.json();\n            if (gt(z)) {\n              if (!E()) return;\n              w(z.user), b(\"authenticated\");\n              return;\n            }\n          }\n        } finally {\n          M.cleanup();\n        }\n      }\n      if (!E()) return;\n      w(null), b(\"unauthenticated\");\n    } catch {\n      if (!E()) return;\n      w(null), b(\"unauthenticated\");\n    } finally {\n      I.cleanup();\n    }\n  }, [\n    e,\n    k.autoRefresh,\n    y,\n    S,\n    P,\n    b,\n    w\n  ]);\n  return F(() => {\n    !l.current || !k.syncTabs || l.current.setCallback((A) => {\n      switch (A.type) {\n        case \"login\":\n          g.current += 1, p.current = !1, R();\n          break;\n        case \"logout\":\n          g.current += 1, w(null), b(\"unauthenticated\"), d.current?.clear();\n          break;\n        case \"refresh\":\n          R();\n          break;\n        default:\n          console.warn(\"[Cedros Login] Unhandled tab sync event:\", A);\n      }\n    });\n  }, [\n    k.syncTabs,\n    R,\n    b,\n    w\n  ]), F(() => {\n    const A = new AbortController(), E = t ?? 1e4, I = window.setTimeout(() => A.abort(), E);\n    let L = !0;\n    const M = g.current, D = () => m.current && L && g.current === M && !p.current;\n    return (async () => {\n      b(\"loading\");\n      try {\n        const $ = await fetch(`${e}/user`, {\n          credentials: \"include\",\n          headers: C(),\n          signal: A.signal\n        });\n        if (!D()) return;\n        if ($.ok) {\n          const q = await $.json();\n          if (gt(q)) {\n            if (!D()) return;\n            w(q.user), b(\"authenticated\");\n            return;\n          }\n        }\n        if ($.status === 401 && k.autoRefresh) {\n          try {\n            await y();\n          } catch {\n            if (!D()) return;\n            P();\n            return;\n          }\n          if (!D()) return;\n          const q = await fetch(`${e}/user`, {\n            credentials: \"include\",\n            headers: C(),\n            signal: A.signal\n          });\n          if (q.ok) {\n            const J = await q.json();\n            if (gt(J)) {\n              if (!D()) return;\n              w(J.user), b(\"authenticated\");\n              return;\n            }\n          }\n        }\n        if (!D()) return;\n        w(null), b(\"unauthenticated\");\n      } catch {\n        if (!D()) return;\n        w(null), b(\"unauthenticated\");\n      }\n    })(), () => {\n      L = !1, window.clearTimeout(I), A.abort();\n    };\n  }, [\n    e,\n    k.autoRefresh,\n    y,\n    C,\n    P,\n    b,\n    w,\n    t\n  ]), {\n    user: n,\n    authState: s,\n    handleLoginSuccess: N((A, E) => {\n      g.current += 1, p.current = !1, w(A), b(\"authenticated\"), E && d.current?.setTokens(E), m.current && l.current?.broadcastLogin(A);\n    }, [w, b]),\n    logout: N(async () => {\n      p.current = !0, g.current += 1;\n      const A = g.current, E = C(), I = d.current?.getRefreshToken();\n      d.current?.clear(), w(null), b(\"unauthenticated\");\n      const L = f.current;\n      if (L) {\n        let z;\n        try {\n          await Promise.race([L.catch(() => {\n          }), new Promise(($) => {\n            z = window.setTimeout($, t ?? 1e4);\n          })]);\n        } finally {\n          window.clearTimeout(z);\n        }\n      }\n      const M = new AbortController(), D = window.setTimeout(() => M.abort(), t ?? 1e4);\n      try {\n        const z = Nt();\n        if (!(await fetch(`${e}/logout`, {\n          method: \"POST\",\n          headers: {\n            ...z ? { \"X-CSRF-Token\": z } : {},\n            ...E ?? {},\n            ...I ? { \"Content-Type\": \"application/json\" } : {}\n          },\n          body: I ? JSON.stringify({ refreshToken: I }) : void 0,\n          credentials: \"include\",\n          signal: M.signal\n        })).ok) throw new Error(\"Session revocation failed\");\n        g.current === A && u.current?.onLogout?.();\n      } finally {\n        window.clearTimeout(D), g.current === A && l.current?.broadcastLogout();\n      }\n    }, [\n      e,\n      C,\n      w,\n      b,\n      t\n    ]),\n    refreshUser: R,\n    getAccessToken: N(() => d.current?.getAccessToken() ?? null, [])\n  };\n}\nvar l5 = h((() => {\n  Y(), q_(), Y_(), Hs(), d5();\n}));\nfunction u5(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 m5({ config: e, user: r, accessToken: o, timeoutMs: t = 5e3, fetchImpl: n = fetch, logger: i = 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 ?? Mv;\n  if (!u5(s))\n    return i.warn(\"cedros-login: CRM identify endpoint must be same-origin; request skipped\"), {\n      kind: \"skipped\",\n      reason: \"cross-origin-endpoint\"\n    };\n  const a = e.getEventId ? e.getEventId(r) : `login:${r.id}:${Date.now()}`, d = new AbortController(), l = setTimeout(() => d.abort(), t);\n  try {\n    const u = await n(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: a }),\n      signal: d.signal\n    });\n    if (u.status === 428)\n      return i.debug(\"cedros-login: CRM identify endpoint not configured (428); skipping further attempts\"), { kind: \"precondition-failed\" };\n    if (!u.ok)\n      return i.warn(`cedros-login: CRM identify failed with HTTP ${u.status}`), {\n        kind: \"failed\",\n        status: u.status\n      };\n    const m = await u.json().catch(() => null), g = !!m?.identified, p = !!m?.linkedAnalyticsVisitor, f = {\n      identified: g,\n      profileId: typeof m?.profileId == \"string\" ? m.profileId : void 0,\n      linkedAnalyticsVisitor: p\n    };\n    return p ? {\n      kind: \"identified\",\n      response: f\n    } : (i.debug(\"cedros-login: CRM identify succeeded without visitor link (cedros_vid cookie missing)\"), {\n      kind: \"visitor-not-linked\",\n      response: f\n    });\n  } catch (u) {\n    return i.warn(\"cedros-login: CRM identify request errored\", u), {\n      kind: \"failed\",\n      error: u\n    };\n  } finally {\n    clearTimeout(l);\n  }\n}\nvar Mv, g5 = h((() => {\n  Mv = \"/site/crm/identify-login\";\n}));\nfunction Dv({ config: e, children: r }) {\n  const [o, t] = T(null), [n, i] = T(!1), s = O(e.callbacks);\n  s.current = e.callbacks;\n  const a = O({\n    onLoginSuccess: (K, ke) => {\n      Ow(K, ke), s.current?.onLoginSuccess?.(K, ke);\n    },\n    onLoginError: (...K) => s.current?.onLoginError?.(...K),\n    onLogout: () => s.current?.onLogout?.(),\n    onSessionExpired: () => s.current?.onSessionExpired?.()\n  }), d = O(null);\n  F(() => {\n    if (typeof window > \"u\") return;\n    const K = new URLSearchParams(window.location.search), ke = K.get(\"ref\") || K.get(\"referral\");\n    ke && (d.current = ke);\n  }, []);\n  const l = e.features === void 0 || e.features === \"auto\", u = e.features === \"auto\", { features: m, googleClientId: g, appleClientId: p, socialButtonOrder: f, signupAccessCodeRequired: v, signupAvailability: x, isLoading: w } = j_(e.serverUrl, l, e.requestTimeout), b = l ? void 0 : e.features, k = B(() => wv({\n    config: b,\n    env: e.featureFlagEnv,\n    base: l ? m ?? void 0 : void 0\n  }), [\n    e.featureFlagEnv,\n    b,\n    l,\n    m\n  ]), y = B(() => ({\n    ...e,\n    callbacks: a.current,\n    features: k,\n    googleClientId: l ? e.googleClientId ?? g : e.googleClientId,\n    appleClientId: l ? e.appleClientId ?? p : e.appleClientId,\n    signupAccessCodeRequired: l ? e.signupAccessCodeRequired ?? v : e.signupAccessCodeRequired,\n    signupAvailability: l ? e.signupAvailability ?? x : e.signupAvailability\n  }), [\n    e,\n    l,\n    k,\n    g,\n    p,\n    v,\n    x\n  ]), C = B(() => JSON.stringify(y.themeOverrides ?? null), [y.themeOverrides]), P = B(() => JSON.stringify(y.session ?? null), [y.session]), S = B(() => JSON.stringify(y.features ?? null), [y.features]), R = B(() => JSON.stringify(y.socialButtonOrder ?? null), [y.socialButtonOrder]), A = B(() => JSON.stringify(y.forms ?? null), [y.forms]), E = B(() => JSON.stringify(y.translations ?? null), [y.translations]), I = B(() => y, [\n    y.serverUrl,\n    y.googleClientId,\n    y.appleClientId,\n    y.requestTimeout,\n    y.retryAttempts,\n    y.signupAccessCodeRequired,\n    y.signupAvailability,\n    R,\n    y.locale,\n    y.theme,\n    C,\n    P,\n    S,\n    A,\n    E\n  ]), L = I.unstyled ?? !1, M = B_({\n    theme: L ? void 0 : I.theme,\n    themeOverrides: L ? void 0 : I.themeOverrides,\n    applyThemeToDocument: I.applyThemeToDocument\n  }), { user: D, authState: z, handleLoginSuccess: $, logout: q, refreshUser: J, getAccessToken: G } = c5({\n    serverUrl: I.serverUrl,\n    session: I.session,\n    callbacks: a.current,\n    requestTimeoutMs: I.requestTimeout\n  }), ge = N(async () => {\n    t(null), await q();\n  }, [q]), ve = N((...K) => {\n    t(null), $(...K);\n  }, [$]), Ie = O(null), _e = O(!1);\n  F(() => {\n    if (z !== \"authenticated\" || !D || Ie.current === D.id || _e.current) return;\n    const K = I.crmIdentify;\n    if (!K?.enabled) return;\n    const ke = G();\n    ke && (Ie.current = D.id, m5({\n      config: K,\n      user: D,\n      accessToken: ke\n    }).then((qr) => {\n      qr.kind === \"precondition-failed\" && (_e.current = !0);\n    }));\n  }, [\n    z,\n    D,\n    I.crmIdentify,\n    G\n  ]);\n  const ee = N(() => i(!0), []), Se = N(() => i(!1), []), de = I.features, he = N((K) => I_(K, { flags: de }), [de]), X = B(() => ({\n    config: I,\n    featureFlags: de,\n    isFeatureEnabled: he,\n    user: D,\n    authState: z,\n    logout: ge,\n    refreshUser: J,\n    socialButtonOrder: I.socialButtonOrder ?? (l ? f : void 0),\n    _internal: {\n      handleLoginSuccess: ve,\n      getAccessToken: G,\n      getReferralCode: () => d.current\n    }\n  }), [\n    I,\n    de,\n    he,\n    D,\n    z,\n    ge,\n    J,\n    l,\n    f,\n    ve,\n    G\n  ]), be = B(() => ({\n    error: o,\n    isModalOpen: n,\n    openModal: ee,\n    closeModal: Se\n  }), [\n    o,\n    n,\n    ee,\n    Se\n  ]);\n  return u && w ? null : /* @__PURE__ */ c(Vy, {\n    locale: I.locale,\n    translations: I.translations,\n    children: /* @__PURE__ */ c(Fo.Provider, {\n      value: X,\n      children: /* @__PURE__ */ c(gn.Provider, {\n        value: be,\n        children: /* @__PURE__ */ c(\"div\", {\n          className: [\"cedros-login-theme\", M.className].filter(Boolean).join(\" \"),\n          style: M.style,\n          children: /* @__PURE__ */ c(C_, { children: r })\n        })\n      })\n    })\n  });\n}\nvar zv = h((() => {\n  Y(), _u(), P_(), _v(), F_(), $_(), l5(), g5(), fn(), Q();\n}));\nfunction h5(e, r, o) {\n  const t = Yl(r?.postLogin?.redirectUrl);\n  if (t) return t;\n  const n = ni(o);\n  if (n) return n;\n  for (const i of Uv) {\n    const s = Yl(e[i]);\n    if (s) return s;\n  }\n  return Ov;\n}\nfunction p5(e, r, o) {\n  o.assign(h5(e, r, o.href));\n}\nfunction Yl(e) {\n  if (typeof e != \"string\") return null;\n  const r = e.trim();\n  if (!r) return null;\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 Ov, Uv, f5 = h((() => {\n  ii(), Ov = \"/profile\", Uv = [\n    \"redirectUrl\",\n    \"successHref\",\n    \"continueHref\"\n  ];\n}));\nfunction Vv() {\n  const { config: e } = fe(), { t: r, message: o } = rr(), [t, n] = T(!1), [i, s] = T(!1), [a, d] = T(null), l = B(() => new ue({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    retryAttempts: e.retryAttempts\n  }), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts\n  ]), { checkLimit: u, getRemainingAttempts: m } = ei({\n    maxAttempts: 3,\n    windowMs: 3e5,\n    rateLimitMessage: (g) => o(r.errors.rateLimitedWithSeconds, { seconds: g })\n  });\n  return {\n    forgotPassword: N(async (g) => {\n      if (!It(g)) {\n        const p = {\n          code: \"VALIDATION_ERROR\",\n          message: r.errors.invalidEmail\n        };\n        throw d(p), p;\n      }\n      try {\n        u();\n      } catch (p) {\n        const f = {\n          code: \"RATE_LIMITED\",\n          message: p instanceof Error ? p.message : r.errors.tooManyRequests\n        };\n        throw d(f), f;\n      }\n      n(!0), d(null), s(!1);\n      try {\n        await l.post(\"/forgot-password\", { email: g }), s(!0);\n      } catch (p) {\n        const f = V(p, r.errors.signInFallback, { networkMessage: r.errors.unableToReachServer });\n        throw d(f), f;\n      } finally {\n        n(!1);\n      }\n    }, [\n      l,\n      u,\n      r.errors\n    ]),\n    resetPassword: N(async (g, p) => {\n      n(!0), d(null), s(!1);\n      try {\n        await l.post(\"/reset-password\", {\n          token: g,\n          newPassword: p\n        }), s(!0);\n      } catch (f) {\n        const v = V(f, r.errors.signInFallback, { networkMessage: r.errors.unableToReachServer });\n        throw d(v), v;\n      } finally {\n        n(!1);\n      }\n    }, [l, r.errors]),\n    isLoading: t,\n    isSuccess: i,\n    error: a,\n    clearError: N(() => d(null), []),\n    reset: N(() => {\n      d(null), s(!1), n(!1);\n    }, []),\n    remainingAttempts: m()\n  };\n}\nvar oc = h((() => {\n  ie(), _r(), ri(), me(), Q();\n}));\nfunction v5(e) {\n  return typeof e == \"object\" && e !== null && \"mfaRequired\" in e && e.mfaRequired === !0;\n}\nfunction Bv() {\n  const { config: e, _internal: r } = fe(), o = Ur(), { t, message: n } = rr(), [i, s] = T(!1), [a, d] = T(!1), [l, u] = T(null), m = B(() => new ue({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    retryAttempts: e.retryAttempts\n  }), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts\n  ]), g = B(() => new qo(e.serverUrl, e.requestTimeout, e.retryAttempts, r?.getAccessToken), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    r?.getAccessToken\n  ]), { checkLimit: p, getRemainingAttempts: f } = ei({\n    maxAttempts: 3,\n    windowMs: 3e5,\n    rateLimitMessage: (v) => n(t.errors.rateLimitedWithSeconds, { seconds: v })\n  });\n  return {\n    sendInstantLink: N(async (v) => {\n      if (!It(v)) {\n        const x = {\n          code: \"VALIDATION_ERROR\",\n          message: t.errors.invalidEmail\n        };\n        throw u(x), x;\n      }\n      try {\n        p();\n      } catch (x) {\n        const w = {\n          code: \"RATE_LIMITED\",\n          message: x instanceof Error ? x.message : t.errors.tooManyRequests\n        };\n        throw u(w), w;\n      }\n      s(!0), u(null), d(!1);\n      try {\n        if ((await o.requestDeviceAccountLink({\n          identifier: v,\n          method: \"instantLink\",\n          linkExisting: async (x, w) => (await g.addEmail(v), w)\n        })).action === \"linked\") {\n          d(!0);\n          return;\n        }\n        await m.post(\"/instant-link\", {\n          email: v,\n          referral: r?.getReferralCode?.() ?? void 0\n        }), d(!0);\n      } catch (x) {\n        const w = V(x, t.errors.signInFallback, { networkMessage: t.errors.unableToReachServer });\n        throw u(w), w;\n      } finally {\n        s(!1);\n      }\n    }, [\n      g,\n      m,\n      p,\n      o,\n      r,\n      t.errors\n    ]),\n    verifyInstantLink: N(async (v) => {\n      if (!v || v.trim().length === 0) {\n        const x = {\n          code: \"VALIDATION_ERROR\",\n          message: t.errors.linkExpired\n        };\n        throw u(x), x;\n      }\n      s(!0), u(null), d(!1);\n      try {\n        const x = await m.post(\"/instant-link/verify\", { token: v });\n        return v5(x) || (e.callbacks?.onLoginSuccess?.(x.user, \"email\"), r?.handleLoginSuccess(x.user, x.tokens)), x;\n      } catch (x) {\n        const w = V(x, t.errors.signInFallback, { networkMessage: t.errors.unableToReachServer });\n        throw u(w), w;\n      } finally {\n        s(!1);\n      }\n    }, [\n      m,\n      e.callbacks,\n      r,\n      t.errors\n    ]),\n    isLoading: i,\n    isSuccess: a,\n    error: l,\n    clearError: N(() => u(null), []),\n    reset: N(() => {\n      u(null), d(!1), s(!1);\n    }, []),\n    remainingAttempts: f()\n  };\n}\nvar Fv = h((() => {\n  ie(), Vr(), _r(), ri(), me(), vn(), Q();\n}));\nfunction tc({ mode: e = \"reset\", onSuccess: r, onCancel: o, className: t = \"\" }) {\n  const { t: n, message: i } = rr(), [s, a] = T(\"\"), d = Vv(), l = Bv(), u = Ne(), m = e === \"instantLink\" ? {\n    submit: l.sendInstantLink,\n    isLoading: l.isLoading,\n    isSuccess: l.isSuccess,\n    error: l.error,\n    clearError: l.clearError\n  } : {\n    submit: d.forgotPassword,\n    isLoading: d.isLoading,\n    isSuccess: d.isSuccess,\n    error: d.error,\n    clearError: d.clearError\n  }, g = e === \"instantLink\", p = async (f) => {\n    f.preventDefault();\n    try {\n      await m.submit(s), r?.();\n    } catch {\n    }\n  };\n  return m.isSuccess ? /* @__PURE__ */ c(He, {\n    stateKey: \"success\",\n    order: Es,\n    focusOnChange: !0,\n    children: /* @__PURE__ */ _(\"div\", {\n      className: `cedros-forgot-password-success ${t}`,\n      children: [\n        /* @__PURE__ */ _(\"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__ */ c(\"circle\", {\n            cx: \"24\",\n            cy: \"24\",\n            r: \"22\",\n            stroke: \"currentColor\",\n            strokeWidth: \"2\"\n          }), /* @__PURE__ */ c(\"path\", {\n            d: \"M14 24l7 7 13-13\",\n            stroke: \"currentColor\",\n            strokeWidth: \"2\",\n            strokeLinecap: \"round\",\n            strokeLinejoin: \"round\"\n          })]\n        }),\n        /* @__PURE__ */ c(\"h3\", {\n          className: \"cedros-success-title\",\n          children: n.auth.checkYourEmail\n        }),\n        /* @__PURE__ */ c(\"p\", {\n          className: \"cedros-success-message\",\n          children: i(g ? n.auth.instantLinkSent : n.auth.passwordResetSent, { email: s })\n        }),\n        o && /* @__PURE__ */ c(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-md cedros-button-outline\",\n          onClick: o,\n          children: n.auth.backToLogin\n        })\n      ]\n    })\n  }) : /* @__PURE__ */ c(He, {\n    stateKey: \"request\",\n    order: Es,\n    children: /* @__PURE__ */ _(\"form\", {\n      className: `cedros-forgot-password-form ${t}`,\n      onSubmit: p,\n      children: [\n        /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-form-header\",\n          children: [/* @__PURE__ */ c(\"h3\", {\n            className: \"cedros-form-title\",\n            children: n.auth.forgotPasswordTitle\n          }), /* @__PURE__ */ c(\"p\", {\n            className: \"cedros-form-subtitle\",\n            children: g ? n.auth.instantLinkSubtitle : n.auth.forgotPasswordResetSubtitle\n          })]\n        }),\n        /* @__PURE__ */ c(ae, {\n          error: m.error,\n          onDismiss: m.clearError\n        }),\n        /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-form-field\",\n          children: [/* @__PURE__ */ c(\"label\", {\n            htmlFor: u,\n            className: \"cedros-label\",\n            children: n.auth.emailAddress\n          }), /* @__PURE__ */ c(\"input\", {\n            id: u,\n            type: \"email\",\n            className: \"cedros-input\",\n            value: s,\n            onChange: (f) => a(f.target.value),\n            placeholder: n.auth.emailPlaceholder,\n            required: !0,\n            autoComplete: \"email\",\n            disabled: m.isLoading\n          })]\n        }),\n        /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-form-actions\",\n          children: [/* @__PURE__ */ c(\"button\", {\n            type: \"submit\",\n            className: \"cedros-button cedros-button-md cedros-button-primary cedros-button-full\",\n            disabled: m.isLoading || !s,\n            children: m.isLoading ? /* @__PURE__ */ _(ce, { children: [/* @__PURE__ */ c(H, { size: \"sm\" }), n.auth.sending] }) : g ? n.buttons.sendSignInLink : n.buttons.sendResetLink\n          }), o && /* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-md cedros-button-ghost cedros-button-full\",\n            onClick: o,\n            disabled: m.isLoading,\n            children: n.auth.backToLogin\n          })]\n        })\n      ]\n    })\n  });\n}\nvar Es, nc = h((() => {\n  oc(), Fv(), we(), re(), Q(), ho(), Es = [\"request\", \"success\"];\n}));\nfunction b5({ token: e, onSuccess: r, onLoginClick: o, className: t = \"\" }) {\n  const n = le(), [i, s] = T(!1), [a, d] = T(\"\"), [l, u] = T(\"\"), [m, g] = T(null), { resetPassword: p, isLoading: f, isSuccess: v, error: x, clearError: w } = Vv(), b = a === l, k = m?.isValid && b && a.length > 0, y = async (C) => {\n    if (C.preventDefault(), !!k)\n      try {\n        await p(e, a), r?.();\n      } catch {\n      }\n  };\n  return i ? /* @__PURE__ */ c(tc, {\n    mode: \"reset\",\n    onCancel: o,\n    className: t\n  }) : v ? /* @__PURE__ */ c(He, {\n    stateKey: \"success\",\n    order: Ts,\n    focusOnChange: !0,\n    children: /* @__PURE__ */ _(\"div\", {\n      className: `cedros-reset-password-success ${t}`,\n      children: [\n        /* @__PURE__ */ _(\"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__ */ c(\"circle\", {\n            cx: \"24\",\n            cy: \"24\",\n            r: \"22\",\n            stroke: \"currentColor\",\n            strokeWidth: \"2\"\n          }), /* @__PURE__ */ c(\"path\", {\n            d: \"M14 24l7 7 13-13\",\n            stroke: \"currentColor\",\n            strokeWidth: \"2\",\n            strokeLinecap: \"round\",\n            strokeLinejoin: \"round\"\n          })]\n        }),\n        /* @__PURE__ */ c(\"h3\", {\n          className: \"cedros-success-title\",\n          children: n.auth.passwordResetSuccessful\n        }),\n        /* @__PURE__ */ c(\"p\", {\n          className: \"cedros-success-message\",\n          children: n.auth.passwordResetSuccessfulBody\n        }),\n        o && /* @__PURE__ */ c(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-md cedros-button-primary\",\n          onClick: o,\n          children: n.auth.goToLogin\n        })\n      ]\n    })\n  }) : /* @__PURE__ */ c(He, {\n    stateKey: \"reset\",\n    order: Ts,\n    children: /* @__PURE__ */ _(\"form\", {\n      className: `cedros-reset-password-form ${t}`,\n      onSubmit: y,\n      children: [\n        /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-form-header\",\n          children: [/* @__PURE__ */ c(\"h3\", {\n            className: \"cedros-form-title\",\n            children: n.auth.resetYourPassword\n          }), /* @__PURE__ */ c(\"p\", {\n            className: \"cedros-form-subtitle\",\n            children: n.auth.resetPasswordSubtitle\n          })]\n        }),\n        /* @__PURE__ */ c(ae, {\n          error: x,\n          onDismiss: w\n        }),\n        (x?.code === \"TOKEN_EXPIRED\" || x?.code === \"INVALID_TOKEN\") && /* @__PURE__ */ c(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-outline\",\n          onClick: () => {\n            d(\"\"), u(\"\"), s(!0);\n          },\n          children: n.auth.requestNewResetLink\n        }),\n        /* @__PURE__ */ c(\"div\", {\n          className: \"cedros-form-field\",\n          children: /* @__PURE__ */ c(je, {\n            label: n.auth.newPassword,\n            value: a,\n            onChange: (C) => {\n              d(C.target.value), g(No(C.target.value, n.passwordValidation));\n            },\n            showStrengthMeter: !0,\n            onValidationChange: g,\n            disabled: f,\n            autoComplete: \"new-password\"\n          })\n        }),\n        /* @__PURE__ */ c(\"div\", {\n          className: \"cedros-form-field\",\n          children: /* @__PURE__ */ c(je, {\n            label: n.auth.confirmPassword,\n            value: l,\n            onChange: (C) => u(C.target.value),\n            disabled: f,\n            autoComplete: \"new-password\",\n            error: l && !b ? n.messages.passwordsDoNotMatch : void 0\n          })\n        }),\n        /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-form-actions\",\n          children: [/* @__PURE__ */ c(\"button\", {\n            type: \"submit\",\n            className: \"cedros-button cedros-button-md cedros-button-primary cedros-button-full\",\n            disabled: f || !k,\n            children: f ? /* @__PURE__ */ _(ce, { children: [/* @__PURE__ */ c(H, { size: \"sm\" }), n.auth.resetting] }) : n.buttons.resetPassword\n          }), o && /* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-md cedros-button-ghost cedros-button-full\",\n            onClick: o,\n            disabled: f,\n            children: n.auth.backToLogin\n          })]\n        })\n      ]\n    })\n  });\n}\nvar Ts, y5 = h((() => {\n  oc(), nc(), Fr(), we(), re(), _r(), Q(), ho(), Ts = [\"reset\", \"success\"];\n}));\nfunction jv(e) {\n  const [, r] = T(0), o = hn(e), t = o?.resetsAt;\n  return F(() => {\n    if (!t) return;\n    let n;\n    const i = () => {\n      const s = Date.parse(t) - Date.now();\n      if (s <= 0) {\n        r((a) => a + 1);\n        return;\n      }\n      n = window.setTimeout(i, Math.min($v, s + 250));\n    };\n    return i(), () => {\n      n !== void 0 && window.clearTimeout(n);\n    };\n  }, [t]), o;\n}\nvar $v, qv = h((() => {\n  pn(), Y(), $v = 2147483647;\n}));\nfunction w5({ discount: e, className: r = \"\" }) {\n  const { t: o, message: t } = rr(), n = O(null);\n  F(() => {\n    n.current?.focus({ preventScroll: !0 });\n  }, []);\n  const i = e ? e.percentOff >= 100 ? o.auth.inviteUnlockRewardFree : t(o.auth.inviteUnlockRewardPercent, { percent: e.percentOff }) : null;\n  return /* @__PURE__ */ _(\"div\", {\n    className: `cedros-form cedros-invite-unlock ${r}`,\n    role: \"status\",\n    children: [\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-invite-unlock__stage\",\n        \"aria-hidden\": \"true\",\n        children: [\n          /* @__PURE__ */ c(\"span\", { className: \"cedros-invite-unlock__halo\" }),\n          /* @__PURE__ */ c(\"span\", { className: \"cedros-invite-unlock__ring\" }),\n          Wv.map((s, a) => /* @__PURE__ */ c(\"span\", {\n            className: `cedros-invite-unlock__confetti${s.round ? \" cedros-invite-unlock__confetti--round\" : \"\"}`,\n            style: {\n              \"--unlock-x\": `${s.x}px`,\n              \"--unlock-y\": `${s.y}px`,\n              \"--unlock-mid-x\": `${s.midX}px`,\n              \"--unlock-mid-y\": `${s.midY}px`,\n              \"--unlock-rotation\": `${s.rotation}deg`,\n              \"--unlock-mid-rotation\": `${s.midRotation}deg`,\n              \"--unlock-stretch\": s.stretch,\n              \"--unlock-blur\": `${s.blur}px`,\n              \"--unlock-delay\": `${s.delay}ms`,\n              \"--unlock-color\": s.color\n            }\n          }, a)),\n          /* @__PURE__ */ c(\"span\", {\n            className: \"cedros-invite-unlock__seal\",\n            children: /* @__PURE__ */ c(\"svg\", {\n              className: \"cedros-invite-unlock__check\",\n              viewBox: \"0 0 52 52\",\n              \"aria-hidden\": \"true\",\n              children: /* @__PURE__ */ c(\"path\", { d: \"M14 27.5 22.5 36 38 17\" })\n            })\n          })\n        ]\n      }),\n      /* @__PURE__ */ c(\"h2\", {\n        ref: n,\n        tabIndex: -1,\n        className: \"cedros-form-title cedros-invite-unlock__title\",\n        children: o.auth.inviteUnlockTitle\n      }),\n      /* @__PURE__ */ c(\"p\", {\n        className: \"cedros-form-subtitle cedros-invite-unlock__subtitle\",\n        children: o.auth.inviteUnlockBody\n      }),\n      i && /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-invite-unlock__reward\",\n        children: [/* @__PURE__ */ _(\"span\", {\n          className: \"cedros-invite-unlock__reward-badge\",\n          children: [/* @__PURE__ */ c(k5, {}), i]\n        }), /* @__PURE__ */ c(\"span\", {\n          className: \"cedros-invite-unlock__reward-note\",\n          children: o.auth.inviteUnlockRewardNote\n        })]\n      }),\n      /* @__PURE__ */ _(\"p\", {\n        className: \"cedros-invite-unlock__continue\",\n        children: [o.auth.inviteUnlockContinue, /* @__PURE__ */ _(\"span\", {\n          className: \"cedros-invite-unlock__dots\",\n          \"aria-hidden\": \"true\",\n          children: [\n            /* @__PURE__ */ c(\"span\", {}),\n            /* @__PURE__ */ c(\"span\", {}),\n            /* @__PURE__ */ c(\"span\", {})\n          ]\n        })]\n      })\n    ]\n  });\n}\nfunction k5() {\n  return /* @__PURE__ */ _(\"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__ */ c(\"rect\", {\n        x: \"3\",\n        y: \"8\",\n        width: \"18\",\n        height: \"4\",\n        rx: \"1\"\n      }),\n      /* @__PURE__ */ c(\"path\", { d: \"M12 8v13\" }),\n      /* @__PURE__ */ c(\"path\", { d: \"M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7\" }),\n      /* @__PURE__ */ c(\"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 Bi, Wv, x5 = h((() => {\n  Y(), Q(), Bi = [\n    \"#fbbf24\",\n    \"#f472b6\",\n    \"#38bdf8\",\n    \"#34d399\",\n    \"#a78bfa\"\n  ], Wv = Array.from({ length: 14 }, (e, r) => {\n    const o = r / 14 * Math.PI * 2, t = 84 + r % 3 * 24, n = 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: n,\n      midRotation: Math.round(n * 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: Bi[r % Bi.length],\n      round: r % 3 === 0\n    };\n  });\n}));\nfunction _5() {\n  const { config: e } = fe(), r = le(), [o, t] = T(!1), [n, i] = T(!1), [s, a] = T(null), d = B(() => new ue({\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: N(async (l) => {\n      t(!0), i(!1), a(null);\n      try {\n        const u = ni(typeof window > \"u\" ? void 0 : window.location.href);\n        await d.post(\"/send-verification\", {\n          email: l,\n          ...u ? { returnTo: u } : {}\n        }), i(!0);\n      } catch (u) {\n        const m = V(u, r.errors.serverError, { networkMessage: r.errors.unableToReachServer });\n        throw a(m), m;\n      } finally {\n        t(!1);\n      }\n    }, [\n      d,\n      r.errors.serverError,\n      r.errors.unableToReachServer\n    ]),\n    isLoading: o,\n    sent: n,\n    error: s,\n    clearError: () => a(null)\n  };\n}\nvar A5 = h((() => {\n  ie(), Q(), me(), ii();\n}));\nfunction ic({ email: e, onBackToLogin: r, className: o = \"\" }) {\n  const { t, message: n } = rr(), { resend: i, isLoading: s, sent: a, error: d, clearError: l } = _5();\n  return /* @__PURE__ */ _(\"div\", {\n    className: `cedros-form ${o}`,\n    children: [\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-form-header\",\n        role: \"status\",\n        \"aria-live\": \"polite\",\n        children: [/* @__PURE__ */ c(\"h2\", {\n          className: \"cedros-form-title\",\n          children: t.auth.checkYourEmail\n        }), /* @__PURE__ */ c(\"p\", {\n          className: \"cedros-form-subtitle\",\n          children: n(t.auth.verificationRequiredBody, { email: e })\n        })]\n      }),\n      /* @__PURE__ */ c(ae, {\n        error: d,\n        onDismiss: l\n      }),\n      a && /* @__PURE__ */ c(\"p\", {\n        role: \"status\",\n        children: t.auth.verificationResent\n      }),\n      /* @__PURE__ */ c(\"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          i(e).catch(() => {\n          });\n        },\n        children: s ? /* @__PURE__ */ _(ce, { children: [/* @__PURE__ */ c(H, {\n          size: \"sm\",\n          announce: !0,\n          label: t.buttons.sendVerification\n        }), /* @__PURE__ */ c(\"span\", { children: t.auth.sending })] }) : t.buttons.sendVerification\n      }),\n      r ? /* @__PURE__ */ c(\"button\", {\n        type: \"button\",\n        className: \"cedros-link\",\n        onClick: r,\n        children: t.auth.backToLogin\n      }) : /* @__PURE__ */ c(\"a\", {\n        className: \"cedros-link\",\n        href: \"/login\",\n        children: t.auth.backToLogin\n      })\n    ]\n  });\n}\nvar sc = h((() => {\n  Q(), A5(), we(), re();\n}));\nfunction Hv({ pendingInviteToken: e, onSuccess: r, className: o = \"\" }) {\n  const { redeemInviteCode: t, completeInviteRedemption: n, isLoading: i, error: s, clearError: a } = si(), d = le(), [l, u] = T(\"\"), [m, g] = T(null), [p, f] = T(null), v = O(r);\n  F(() => {\n    v.current = r;\n  }, [r]), F(() => {\n    if (!m) return;\n    const b = typeof window.matchMedia == \"function\" && window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches ? Yv : m.inviteDiscount ? Gv : Kv, k = window.setTimeout(() => {\n      if (nn(m)) {\n        f(m.user.email ?? \"\"), g(null);\n        return;\n      }\n      n(m), v.current?.(m);\n    }, b);\n    return () => window.clearTimeout(k);\n  }, [m, n]);\n  const x = l.trim().length > 0 && !i, w = async (b) => {\n    if (b.preventDefault(), !!x)\n      try {\n        g(await t(e, l.trim(), { deferLoginSuccess: !0 }));\n      } catch {\n      }\n  };\n  return m ? /* @__PURE__ */ c(w5, {\n    discount: m.inviteDiscount,\n    className: o\n  }) : p ? /* @__PURE__ */ c(ic, {\n    email: p,\n    className: o\n  }) : /* @__PURE__ */ _(\"form\", {\n    onSubmit: w,\n    className: `cedros-form ${o}`,\n    children: [\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-form-header\",\n        children: [/* @__PURE__ */ c(\"h2\", {\n          className: \"cedros-form-title\",\n          children: d.auth.inviteCodeRequiredTitle\n        }), /* @__PURE__ */ c(\"p\", {\n          className: \"cedros-form-subtitle\",\n          children: d.auth.inviteCodeRequiredBody\n        })]\n      }),\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-form-field\",\n        children: [/* @__PURE__ */ c(\"label\", {\n          htmlFor: \"invite-code-redeem\",\n          className: \"cedros-label\",\n          children: d.auth.inviteCode\n        }), /* @__PURE__ */ c(\"input\", {\n          id: \"invite-code-redeem\",\n          type: \"text\",\n          className: \"cedros-input\",\n          value: l,\n          onChange: (b) => u(b.target.value),\n          placeholder: d.auth.enterInviteCode,\n          autoComplete: \"one-time-code\",\n          disabled: i\n        })]\n      }),\n      /* @__PURE__ */ c(ae, {\n        error: s,\n        onDismiss: a\n      }),\n      /* @__PURE__ */ c(\"button\", {\n        type: \"submit\",\n        className: \"cedros-button cedros-button-primary cedros-button-md cedros-button-full\",\n        disabled: !x,\n        \"aria-busy\": i,\n        children: i ? /* @__PURE__ */ _(ce, { children: [/* @__PURE__ */ c(H, {\n          size: \"sm\",\n          announce: !0,\n          label: d.common.continue\n        }), /* @__PURE__ */ c(\"span\", { children: d.messages.verifyingSignature })] }) : d.common.continue\n      })\n    ]\n  });\n}\nvar Kv, Gv, Yv, Xv = h((() => {\n  Y(), ai(), re(), we(), x5(), sc(), Q(), Kv = 2800, Gv = 3600, Yv = 2e3;\n}));\nfunction C5({ onSuccess: e, onSwitchToRegister: r, onForgotPassword: o, className: t = \"\" }) {\n  const n = le(), i = Ne(), { login: s, isLoading: a, error: d, clearError: l } = si(), [u, m] = T(\"\"), [g, p] = T(\"\"), [f, v] = T(null), [x, w] = T(\"\"), [b, k] = T(null), y = async (S) => {\n    S.preventDefault();\n    try {\n      const R = await s(u, g);\n      R.mfaRequired ? (v(R.mfaToken), w(R.email)) : \"inviteCodeRequired\" in R ? k(R.pendingInviteToken) : (m(\"\"), p(\"\"), e?.(R.response));\n    } catch {\n    }\n  }, C = (S) => {\n    v(null), w(\"\"), e?.(S);\n  }, P = () => {\n    v(null), w(\"\"), p(\"\");\n  };\n  return f ? /* @__PURE__ */ c(He, {\n    stateKey: \"mfa\",\n    order: wo,\n    focusOnChange: !0,\n    children: /* @__PURE__ */ c(ti, {\n      mfaToken: f,\n      email: x,\n      onSuccess: C,\n      onBack: P,\n      className: t\n    })\n  }) : b ? /* @__PURE__ */ c(He, {\n    stateKey: \"invite\",\n    order: wo,\n    focusOnChange: !0,\n    children: /* @__PURE__ */ c(Hv, {\n      pendingInviteToken: b,\n      onSuccess: e,\n      className: t\n    })\n  }) : d?.code === \"EMAIL_NOT_VERIFIED\" ? /* @__PURE__ */ c(He, {\n    stateKey: \"credentials\",\n    order: wo,\n    focusOnChange: !0,\n    children: /* @__PURE__ */ c(ic, {\n      email: u,\n      onBackToLogin: () => {\n        l(), p(\"\");\n      },\n      className: t\n    })\n  }) : /* @__PURE__ */ c(He, {\n    stateKey: \"credentials\",\n    order: wo,\n    children: /* @__PURE__ */ _(\"form\", {\n      onSubmit: y,\n      className: `cedros-form ${t}`,\n      children: [\n        /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-form-field\",\n          children: [/* @__PURE__ */ c(\"label\", {\n            htmlFor: `${i}-email`,\n            className: \"cedros-label\",\n            children: n.auth.email\n          }), /* @__PURE__ */ c(\"input\", {\n            id: `${i}-email`,\n            type: \"email\",\n            className: \"cedros-input\",\n            value: u,\n            onChange: (S) => m(S.target.value),\n            placeholder: n.auth.emailPlaceholder,\n            required: !0,\n            \"aria-required\": \"true\",\n            autoComplete: \"username\",\n            name: \"username\",\n            disabled: a\n          })]\n        }),\n        /* @__PURE__ */ c(\"div\", {\n          className: \"cedros-form-field\",\n          children: /* @__PURE__ */ c(je, {\n            value: g,\n            onChange: (S) => p(S.target.value),\n            placeholder: n.auth.enterPassword,\n            required: !0,\n            autoComplete: \"current-password\",\n            name: \"password\",\n            disabled: a,\n            labelAction: o ? /* @__PURE__ */ c(\"button\", {\n              type: \"button\",\n              className: \"cedros-link cedros-link-muted cedros-link-sm\",\n              onClick: o,\n              children: n.auth.forgotYourPassword\n            }) : void 0\n          })\n        }),\n        /* @__PURE__ */ c(ae, {\n          error: d,\n          onDismiss: l\n        }),\n        /* @__PURE__ */ c(\"button\", {\n          type: \"submit\",\n          className: \"cedros-button cedros-button-primary cedros-button-md cedros-button-full\",\n          disabled: a || !u || !g,\n          \"aria-busy\": a,\n          children: a ? /* @__PURE__ */ _(ce, { children: [/* @__PURE__ */ c(H, {\n            size: \"sm\",\n            announce: !0,\n            label: n.buttons.signIn\n          }), /* @__PURE__ */ c(\"span\", { children: n.messages.signingIn })] }) : n.buttons.signIn\n        }),\n        r && /* @__PURE__ */ _(\"p\", {\n          className: \"cedros-form-footer\",\n          children: [\n            n.auth.dontHaveAccount,\n            \" \",\n            /* @__PURE__ */ c(\"button\", {\n              type: \"button\",\n              className: \"cedros-link cedros-link-muted\",\n              onClick: r,\n              children: n.buttons.signUp\n            })\n          ]\n        })\n      ]\n    })\n  });\n}\nvar wo, S5 = h((() => {\n  ai(), Fr(), Xv(), sc(), re(), we(), rt(), Q(), ho(), wo = [\n    \"credentials\",\n    \"mfa\",\n    \"invite\"\n  ];\n}));\nfunction E5(e) {\n  const r = Rs(e, \"response\"), o = Rs(r.settings, \"settings\"), t = Object.entries(o), n = t.every(([, d]) => Array.isArray(d)), i = t.every(([, d]) => P5(d));\n  if (!n && !i) throw new Error(\"settings must contain grouped setting arrays or legacy scalar values\");\n  const s = n ? Object.fromEntries(t.map(([d, l]) => [d, l.map((u) => T5(u))])) : R5(t), a = L5(r.revision);\n  return {\n    settings: s,\n    ...a !== void 0 ? { revision: a } : {},\n    ...typeof r.etag == \"string\" ? { etag: r.etag } : {}\n  };\n}\nfunction T5(e) {\n  const r = Rs(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 = N5(r.hasValue, \"hasValue\", r.key), t = I5(r.applicationMode, r.key);\n  return {\n    key: r.key,\n    value: r.value,\n    description: Fi(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: Fi(r.validationError, \"validationError\", r.key) } : {},\n    updatedAt: r.updatedAt,\n    updatedBy: Fi(r.updatedBy, \"updatedBy\", r.key)\n  };\n}\nfunction R5(e) {\n  return { legacy: e.map(([r, o]) => {\n    const t = Jv.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 Rs(e, r) {\n  if (!e || typeof e != \"object\" || Array.isArray(e)) throw new Error(`${r} must be an object`);\n  return e;\n}\nfunction P5(e) {\n  return e === null || typeof e == \"string\" || typeof e == \"number\" || typeof e == \"boolean\";\n}\nfunction L5(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 Fi(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 N5(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 I5(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 Xl(e) {\n  const r = {};\n  for (const o of e) r[o.key] = o.value;\n  return r;\n}\nvar Jv, Zv, M5 = h((() => {\n  me(), Jv = /* @__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  ]), Zv = class {\n    client;\n    constructor(e, r, o, t) {\n      this.client = new ue({\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: E5\n        });\n      } catch (e) {\n        throw V(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 V(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: Xl(o.updated)\n        };\n      } catch (o) {\n        throw V(o, \"Failed to autosave system settings\");\n      }\n    }\n    async autosaveViaSettingsPatch(e) {\n      try {\n        const r = e.length > 1 ? e.map((i) => [i]) : [e], o = [];\n        let t, n;\n        for (const i of r) {\n          const s = await this.client.patch(\"/admin/settings\", { settings: i }, { skipRetry: !0 });\n          o.push(...s.updated), t = s.revision ?? t, n = s.etag ?? n;\n        }\n        return {\n          resourceId: \"global\",\n          revision: t,\n          etag: n,\n          canonicalPatchOrResource: Xl(o)\n        };\n      } catch (r) {\n        throw V(r, \"Failed to autosave system settings\");\n      }\n    }\n  };\n}));\nfunction D5() {\n  return se(Qv);\n}\nvar Qv, z5 = h((() => {\n  Qv = Ke(null);\n}));\nfunction O5(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 U5() {\n  const e = D5();\n  return B(() => O5(e), [e]);\n}\nvar V5 = h((() => {\n  z5();\n}));\nfunction B5(e) {\n  const r = e?.config, o = e?._internal.getAccessToken;\n  return B(() => r ? new Zv(r.serverUrl, r.requestTimeout, r.retryAttempts, o) : null, [r, o]);\n}\nfunction F5() {\n  return j5(U5());\n}\nfunction j5(e) {\n  const [r, o] = T({}), [t, n] = T(!1), [i, s] = T(!1), [a, d] = T(null), [l, u] = T(), [m, g] = T(), p = O(0), f = e?.authState ?? \"unauthenticated\", v = B5(e), x = O(v);\n  x.current = v;\n  const w = N(async () => {\n    const P = ++p.current, S = x.current;\n    if (!S || f !== \"authenticated\") {\n      o({}), u(void 0), g(void 0), n(!1);\n      return;\n    }\n    n(!0), d(null);\n    try {\n      const R = await S.getSettings();\n      if (P !== p.current) return;\n      o(R.settings), ji(R, u, g);\n    } catch (R) {\n      if (P !== p.current) return;\n      d(R instanceof Error ? R : /* @__PURE__ */ new Error(\"Failed to fetch settings\"));\n    } finally {\n      P === p.current && n(!1);\n    }\n  }, [f]), b = N(async (P) => {\n    const S = x.current;\n    if (!S) throw new Error(\"Login admin hooks require CedrosLoginAdminRuntimeProvider\");\n    if (f !== \"authenticated\") throw new Error(\"Not authenticated\");\n    s(!0), d(null);\n    try {\n      const R = await S.updateSettings(P);\n      return o((A) => $5(A, R.updated)), ji(R, u, g), R;\n    } catch (R) {\n      const A = R instanceof Error ? R : /* @__PURE__ */ new Error(\"Failed to update settings\");\n      throw d(A), A;\n    } finally {\n      s(!1);\n    }\n  }, [f]), k = N(async (P, S) => {\n    const R = x.current;\n    if (!R) throw new Error(\"Login admin hooks require CedrosLoginAdminRuntimeProvider\");\n    if (f !== \"authenticated\") throw new Error(\"Not authenticated\");\n    const A = await R.autosaveSettings(P, S);\n    return ji(A, u, g), A.canonicalPatchOrResource && o((E) => q5(E, A.canonicalPatchOrResource ?? {})), A;\n  }, [f]), y = N((P) => {\n    for (const S of Object.values(r)) {\n      const R = S.find((A) => A.key === P);\n      if (R) return R.value;\n    }\n  }, [r]), C = f === \"authenticated\" && p.current === 0;\n  return {\n    settings: r,\n    isLoading: t || C,\n    isUpdating: i,\n    error: a,\n    revision: l,\n    etag: m,\n    fetchSettings: w,\n    updateSettings: b,\n    autosaveSettings: k,\n    getValue: y\n  };\n}\nfunction ji(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 $5(e, r) {\n  const o = new Map(r.map((t) => [t.key, t]));\n  return eb(e, (t) => o.get(t.key) ?? t);\n}\nfunction q5(e, r) {\n  return eb(e, (o) => Object.prototype.hasOwnProperty.call(r, o.key) ? {\n    ...o,\n    value: r[o.key] ?? o.value\n  } : o);\n}\nfunction eb(e, r) {\n  return Object.fromEntries(Object.entries(e).map(([o, t]) => [o, t.map(r)]));\n}\nvar W5 = h((() => {\n  M5(), V5();\n}));\nfunction rb() {\n  const { settings: e, isLoading: r, error: o, fetchSettings: t, getValue: n } = F5();\n  F(() => {\n    t();\n  }, [t]);\n  const i = N((a) => a === void 0 ? !1 : a === \"true\" || a === \"1\", []), s = B(() => Object.keys(e).length === 0 ? ob : {\n    organizations: i(n(\"feature_organizations\")),\n    sso: i(n(\"feature_sso\")),\n    mfa: i(n(\"feature_mfa\")),\n    mfaRequired: i(n(\"security_require_mfa\")),\n    signupAccessCodeRequired: i(n(\"signup_access_code_enabled\"))\n  }, [\n    e,\n    n,\n    i\n  ]);\n  return {\n    features: s,\n    isLoading: r,\n    error: o,\n    refetch: N(async () => {\n      await t();\n    }, [t]),\n    isEnabled: N((a) => s[a], [s])\n  };\n}\nvar ob, tb = h((() => {\n  Y(), W5(), ob = {\n    organizations: !1,\n    sso: !1,\n    mfa: !1,\n    mfaRequired: !1,\n    signupAccessCodeRequired: !1\n  };\n}));\nfunction nb({ availability: e }) {\n  const { t: r, message: o, number: t, date: n } = rr(), i = hn(e);\n  if (!i) return null;\n  const s = i.remaining === 0, a = r.auth.signupAvailabilityPeriods[i.period], d = n(i.resetsAt, {\n    year: \"numeric\",\n    month: \"short\",\n    day: \"numeric\",\n    hour: \"numeric\",\n    minute: \"2-digit\",\n    timeZoneName: \"short\"\n  }), l = s ? o(r.auth.signupAvailabilityFull, { resetsAt: d }) : o(r.auth.signupAvailabilityRemaining, {\n    remaining: t(i.remaining),\n    limit: t(i.limit),\n    period: a\n  });\n  return /* @__PURE__ */ _(\"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__ */ c(\"span\", {\n      className: \"cedros-signup-availability-dot\",\n      \"aria-hidden\": \"true\"\n    }), /* @__PURE__ */ _(\"span\", { children: [\n      /* @__PURE__ */ c(\"strong\", { children: l }),\n      \" \",\n      !s && /* @__PURE__ */ c(\"span\", { children: r.auth.signupAvailabilityDisclaimer })\n    ] })]\n  });\n}\nvar ib = h((() => {\n  Q(), pn();\n}));\nfunction H5({ onSuccess: e, onSwitchToLogin: r, className: o = \"\", accessCode: t, showSignupAvailability: n = !0 }) {\n  const i = le(), s = Ne(), { config: a } = fe(), { register: d, isLoading: l, error: u, clearError: m } = si(), { features: g } = rb(), [p, f] = T(\"\"), [v, x] = T(\"\"), [w, b] = T(\"\"), [k, y] = T(\"\"), [C, P] = T(null), [S, R] = T(null), [A, E] = T(\"\"), I = t ?? A, [L, M] = T(null), [D, z] = T(null), $ = a.forms?.termsOfService, q = a.forms?.emailOptIn, J = $?.show ?? !1, G = $?.required ?? !0, ge = $?.defaultChecked ?? !1, ve = $?.label ?? `${i.auth.termsAgreementPrefix} {terms}`, Ie = $?.url, _e = bu(Ie), ee = q?.show ?? !1, Se = q?.defaultChecked ?? !1, de = q?.label ?? i.auth.emailOptInDefault, [he, X] = T(ge), [be, K] = T(Se), ke = w === k, qr = L?.isValid ?? !1, qb = !J || !G || he, gi = a.signupAccessCodeRequired ?? g?.signupAccessCodeRequired ?? !1, bc = jv(a.signupAvailability), Wb = bc?.remaining === 0, yc = v && w && k && ke && qr && qb && (!gi || I.trim()) && !Wb && !l, Hb = async (Re) => {\n    if (Re.preventDefault(), z(null), J && G && !he) {\n      z({\n        code: \"VALIDATION_ERROR\",\n        message: i.auth.termsRequiredError\n      });\n      return;\n    }\n    if (yc)\n      try {\n        const Wr = await d(v, w, p || void 0, void 0, gi && I.trim() || void 0);\n        if (Wr.inviteCodeRequired && Wr.pendingInviteToken) {\n          P(Wr.pendingInviteToken);\n          return;\n        }\n        if (nn(Wr)) {\n          b(\"\"), y(\"\"), R(Wr.user.email ?? v);\n          return;\n        }\n        e?.(Wr);\n      } catch {\n      }\n  }, Kb = u || D, Gb = () => {\n    m(), z(null);\n  };\n  return C ? /* @__PURE__ */ c(Hv, {\n    pendingInviteToken: C,\n    onSuccess: e,\n    className: o\n  }) : S ? /* @__PURE__ */ c(ic, {\n    email: S,\n    onBackToLogin: r,\n    className: o\n  }) : /* @__PURE__ */ _(\"form\", {\n    onSubmit: Hb,\n    className: `cedros-form ${o}`,\n    children: [\n      n && /* @__PURE__ */ c(nb, { availability: bc }),\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-form-field\",\n        children: [/* @__PURE__ */ _(\"label\", {\n          htmlFor: `${s}-name`,\n          className: \"cedros-label\",\n          children: [\n            i.auth.name,\n            \" \",\n            /* @__PURE__ */ c(\"span\", {\n              className: \"cedros-optional\",\n              children: i.common.optional\n            })\n          ]\n        }), /* @__PURE__ */ c(\"input\", {\n          id: `${s}-name`,\n          type: \"text\",\n          className: \"cedros-input\",\n          value: p,\n          onChange: (Re) => f(Re.target.value),\n          placeholder: i.auth.namePlaceholder,\n          autoComplete: \"name\",\n          disabled: l\n        })]\n      }),\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-form-field\",\n        children: [/* @__PURE__ */ c(\"label\", {\n          htmlFor: `${s}-register-email`,\n          className: \"cedros-label\",\n          children: i.auth.email\n        }), /* @__PURE__ */ c(\"input\", {\n          id: `${s}-register-email`,\n          type: \"email\",\n          className: \"cedros-input\",\n          value: v,\n          onChange: (Re) => x(Re.target.value),\n          placeholder: i.auth.emailPlaceholder,\n          required: !0,\n          \"aria-required\": \"true\",\n          autoComplete: \"email\",\n          disabled: l\n        })]\n      }),\n      /* @__PURE__ */ c(\"div\", {\n        className: \"cedros-form-field\",\n        children: /* @__PURE__ */ c(je, {\n          value: w,\n          onChange: (Re) => b(Re.target.value),\n          placeholder: i.auth.createPassword,\n          required: !0,\n          autoComplete: \"new-password\",\n          disabled: l,\n          showStrengthMeter: !0,\n          onValidationChange: M\n        })\n      }),\n      /* @__PURE__ */ c(\"div\", {\n        className: \"cedros-form-field\",\n        children: /* @__PURE__ */ c(je, {\n          label: i.auth.confirmPassword,\n          value: k,\n          onChange: (Re) => y(Re.target.value),\n          placeholder: i.auth.confirmYourPassword,\n          required: !0,\n          autoComplete: \"new-password\",\n          disabled: l,\n          \"aria-invalid\": k && !ke ? \"true\" : void 0,\n          error: k && !ke ? i.messages.passwordsDoNotMatch : void 0\n        })\n      }),\n      gi && t === void 0 && /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-form-field\",\n        children: [/* @__PURE__ */ c(\"label\", {\n          htmlFor: `${s}-register-access-code`,\n          className: \"cedros-label\",\n          children: i.auth.accessCode\n        }), /* @__PURE__ */ c(\"input\", {\n          id: `${s}-register-access-code`,\n          type: \"text\",\n          className: \"cedros-input\",\n          value: A,\n          onChange: (Re) => E(Re.target.value),\n          placeholder: i.auth.enterAccessCode,\n          required: !0,\n          \"aria-required\": \"true\",\n          disabled: l,\n          autoComplete: \"off\"\n        })]\n      }),\n      J && /* @__PURE__ */ c(\"div\", {\n        className: \"cedros-form-field cedros-checkbox-field\",\n        children: /* @__PURE__ */ _(\"label\", {\n          className: \"cedros-checkbox-label\",\n          children: [/* @__PURE__ */ c(\"input\", {\n            type: \"checkbox\",\n            className: \"cedros-checkbox\",\n            checked: he,\n            onChange: (Re) => X(Re.target.checked),\n            disabled: l,\n            \"aria-required\": G\n          }), /* @__PURE__ */ _(\"span\", {\n            className: \"cedros-checkbox-text\",\n            children: [_e ? /* @__PURE__ */ _(ce, { children: [\n              ve.split(\"{terms}\")[0].trim(),\n              \" \",\n              /* @__PURE__ */ c(\"a\", {\n                href: _e,\n                target: \"_blank\",\n                rel: \"noopener noreferrer\",\n                className: \"cedros-link\",\n                children: i.auth.termsOfService\n              }),\n              ve.split(\"{terms}\")[1] ? ` ${ve.split(\"{terms}\")[1].trim()}` : \"\"\n            ] }) : ve.replace(\"{terms}\", i.auth.termsOfService), G && /* @__PURE__ */ c(\"span\", {\n              className: \"cedros-required\",\n              children: \"*\"\n            })]\n          })]\n        })\n      }),\n      ee && /* @__PURE__ */ c(\"div\", {\n        className: \"cedros-form-field cedros-checkbox-field\",\n        children: /* @__PURE__ */ _(\"label\", {\n          className: \"cedros-checkbox-label\",\n          children: [/* @__PURE__ */ c(\"input\", {\n            type: \"checkbox\",\n            className: \"cedros-checkbox\",\n            checked: be,\n            onChange: (Re) => K(Re.target.checked),\n            disabled: l\n          }), /* @__PURE__ */ c(\"span\", {\n            className: \"cedros-checkbox-text\",\n            children: de\n          })]\n        })\n      }),\n      /* @__PURE__ */ c(ae, {\n        error: Kb,\n        onDismiss: Gb\n      }),\n      /* @__PURE__ */ c(\"button\", {\n        type: \"submit\",\n        className: \"cedros-button cedros-button-primary cedros-button-md cedros-button-full\",\n        disabled: !yc,\n        \"aria-busy\": l,\n        children: l ? /* @__PURE__ */ _(ce, { children: [/* @__PURE__ */ c(H, {\n          size: \"sm\",\n          announce: !0,\n          label: i.buttons.createAccount\n        }), /* @__PURE__ */ c(\"span\", { children: i.messages.creatingAccount })] }) : i.buttons.createAccount\n      }),\n      r && /* @__PURE__ */ _(\"p\", {\n        className: \"cedros-form-footer\",\n        children: [\n          i.auth.alreadyHaveAccount,\n          \" \",\n          /* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-link cedros-link-muted\",\n            onClick: r,\n            children: i.buttons.signIn\n          })\n        ]\n      })\n    ]\n  });\n}\nvar K5 = h((() => {\n  ie(), ai(), tb(), Fr(), Xv(), sc(), re(), we(), ib(), wu(), qv(), Q();\n}));\nfunction G5({ onSuccess: e, className: r = \"\", defaultTab: o = \"login\", getHasWallets: t, renderSolanaButton: n }) {\n  const { config: i, socialButtonOrder: s, isFeatureEnabled: a, user: d, authState: l, logout: u } = fe(), { t: m, message: g } = rr(), p = Ne(), { features: f } = rb(), [v, x] = T(o), [w, b] = T(\"form\"), [k, y] = T(() => t ? t() : !1), [C, P] = T(\"\"), [S, R] = T(null), [A, E] = T(null), I = i.signupAccessCodeRequired ?? f?.signupAccessCodeRequired ?? !1, L = jv(i.signupAvailability), M = l === \"idle\" || l === \"loading\", D = d?.email ?? d?.name ?? d?.username ?? d?.id ?? \"\", z = N((X) => {\n    R(X.message);\n  }, []), $ = N((X) => {\n    R(null), E(X.mfaToken);\n  }, []);\n  F(() => {\n    if (!t) return;\n    const X = () => y(t());\n    return X(), window.addEventListener(\"load\", X), window.addEventListener(\"focus\", X), () => {\n      window.removeEventListener(\"load\", X), window.removeEventListener(\"focus\", X);\n    };\n  }, [t]);\n  const q = i.forms?.forgotPassword?.mode ?? (a(\"instantLink\") ? \"instantLink\" : \"reset\"), J = N((X) => {\n    const be = Tr.indexOf(v);\n    let K = be;\n    switch (X.key) {\n      case \"ArrowLeft\":\n      case \"ArrowUp\":\n        K = be === 0 ? Tr.length - 1 : be - 1;\n        break;\n      case \"ArrowRight\":\n      case \"ArrowDown\":\n        K = be === Tr.length - 1 ? 0 : be + 1;\n        break;\n      case \"Home\":\n        K = 0;\n        break;\n      case \"End\":\n        K = Tr.length - 1;\n        break;\n      default:\n        return;\n    }\n    X.preventDefault();\n    const ke = Tr[K];\n    x(ke), document.getElementById(`${p}-tab-${ke}`)?.focus();\n  }, [v, p]);\n  if (M) return /* @__PURE__ */ c(\"div\", {\n    className: \"cedros-login-form-shell\",\n    children: /* @__PURE__ */ c(\"div\", {\n      className: `cedros-login-form ${r}`,\n      children: /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-login-session-status\",\n        role: \"status\",\n        \"aria-live\": \"polite\",\n        children: [/* @__PURE__ */ c(H, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", {\n          className: \"cedros-login-session-message\",\n          children: m.common.loading\n        })]\n      })\n    })\n  });\n  if (l === \"authenticated\" && d) return /* @__PURE__ */ c(\"div\", {\n    className: \"cedros-login-form-shell\",\n    children: /* @__PURE__ */ c(\"div\", {\n      className: `cedros-login-form ${r}`,\n      children: /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-login-session-status\",\n        children: [\n          /* @__PURE__ */ c(\"h2\", {\n            className: \"cedros-login-session-title\",\n            children: m.auth.signedIn\n          }),\n          D && /* @__PURE__ */ c(\"p\", {\n            className: \"cedros-login-session-message\",\n            children: g(m.auth.continueAs, { account: D })\n          }),\n          /* @__PURE__ */ _(\"div\", {\n            className: \"cedros-login-session-actions\",\n            children: [/* @__PURE__ */ c(\"a\", {\n              className: \"cedros-button cedros-button-primary cedros-button-md\",\n              href: \"/profile\",\n              children: m.buttons.manageAccount\n            }), /* @__PURE__ */ c(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-outline cedros-button-md\",\n              onClick: () => {\n                u();\n              },\n              children: m.buttons.signOut\n            })]\n          })\n        ]\n      })\n    })\n  });\n  if (A) return /* @__PURE__ */ c(\"div\", {\n    className: \"cedros-login-form-shell\",\n    children: /* @__PURE__ */ c(\"div\", {\n      className: `cedros-login-form ${r}`,\n      children: /* @__PURE__ */ c(ti, {\n        mfaToken: A,\n        onSuccess: (X) => {\n          E(null), e?.(X);\n        },\n        onBack: () => E(null)\n      })\n    })\n  });\n  const G = a(\"email\"), ge = a(\"google\") && i.googleClientId, ve = a(\"apple\") && i.appleClientId, Ie = !!n && a(\"solana\") && k, _e = a(\"webauthn\"), ee = v === \"register\" && C || void 0, Se = X5(s), de = [\n    _e ? ht(\"webauthn\", /* @__PURE__ */ c(fm, {\n      mode: v,\n      onSuccess: e,\n      onMfaRequired: $,\n      onError: z,\n      accessCode: ee\n    }, v)) : null,\n    ge ? ht(\"google\", /* @__PURE__ */ c(Xu, {\n      onSuccess: e,\n      onMfaRequired: $,\n      onError: z,\n      accessCode: ee\n    })) : null,\n    ve ? ht(\"apple\", /* @__PURE__ */ c(Qu, {\n      onSuccess: e,\n      onMfaRequired: $,\n      onError: z,\n      accessCode: ee\n    })) : null,\n    Ie ? ht(\"solana\", n?.({\n      onSuccess: e,\n      onMfaRequired: $,\n      onError: z,\n      accessCode: ee\n    })) : null\n  ].filter(Y5).sort((X, be) => Jl(X.id, Se) - Jl(be.id, Se)), he = G && de.length > 0;\n  return !G && de.length === 0 ? /* @__PURE__ */ c(\"div\", {\n    className: \"cedros-login-form-shell\",\n    children: /* @__PURE__ */ c(\"div\", {\n      className: `cedros-login-form ${r}`,\n      children: /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-login-session-status\",\n        role: \"status\",\n        children: [/* @__PURE__ */ c(\"h2\", {\n          className: \"cedros-login-session-title\",\n          children: m.auth.signInUnavailableTitle\n        }), /* @__PURE__ */ c(\"p\", {\n          className: \"cedros-login-session-message\",\n          children: m.auth.signInUnavailableBody\n        })]\n      })\n    })\n  }) : /* @__PURE__ */ c(He, {\n    stateKey: w,\n    order: [\"form\", \"forgotPassword\"],\n    focusOnChange: !0,\n    children: w === \"forgotPassword\" ? /* @__PURE__ */ c(\"div\", {\n      className: `cedros-login-form ${r}`,\n      children: /* @__PURE__ */ c(tc, {\n        mode: q,\n        onCancel: () => b(\"form\")\n      })\n    }) : /* @__PURE__ */ _(\"div\", {\n      className: \"cedros-login-form-shell\",\n      children: [/* @__PURE__ */ _(\"div\", {\n        className: `cedros-login-form ${r}`,\n        children: [\n          v === \"register\" && /* @__PURE__ */ c(nb, { availability: L }),\n          I && v === \"register\" && /* @__PURE__ */ _(\"div\", {\n            className: \"cedros-form-field\",\n            children: [/* @__PURE__ */ c(\"label\", {\n              htmlFor: `${p}-login-form-access-code`,\n              className: \"cedros-label\",\n              children: m.auth.accessCode\n            }), /* @__PURE__ */ c(\"input\", {\n              id: `${p}-login-form-access-code`,\n              type: \"text\",\n              className: \"cedros-input\",\n              value: C,\n              onChange: (X) => P(X.target.value),\n              placeholder: m.auth.enterAccessCode,\n              \"aria-required\": \"true\",\n              autoComplete: \"off\"\n            })]\n          }),\n          de.length > 0 && /* @__PURE__ */ c(\"div\", {\n            className: \"cedros-social-buttons\",\n            children: de.map(({ id: X, element: be }) => /* @__PURE__ */ c(Ls, { children: be }, X))\n          }),\n          he && /* @__PURE__ */ c(\"div\", {\n            className: \"cedros-divider\",\n            children: /* @__PURE__ */ c(\"span\", { children: m.messages.orContinueWith })\n          }),\n          (G || _e) && /* @__PURE__ */ _(ce, { children: [/* @__PURE__ */ _(\"div\", {\n            className: \"cedros-tabs\",\n            role: \"tablist\",\n            \"aria-label\": m.auth.authMethodAriaLabel,\n            children: [/* @__PURE__ */ c(\"button\", {\n              type: \"button\",\n              role: \"tab\",\n              id: `${p}-tab-login`,\n              className: `cedros-tab ${v === \"login\" ? \"cedros-tab-active\" : \"\"}`,\n              onClick: () => x(\"login\"),\n              onKeyDown: J,\n              \"aria-selected\": v === \"login\",\n              \"aria-controls\": `${p}-tabpanel-login`,\n              tabIndex: v === \"login\" ? 0 : -1,\n              children: m.auth.tabs.signIn\n            }), /* @__PURE__ */ c(\"button\", {\n              type: \"button\",\n              role: \"tab\",\n              id: `${p}-tab-register`,\n              className: `cedros-tab ${v === \"register\" ? \"cedros-tab-active\" : \"\"}`,\n              onClick: () => x(\"register\"),\n              onKeyDown: J,\n              \"aria-selected\": v === \"register\",\n              \"aria-controls\": `${p}-tabpanel-register`,\n              tabIndex: v === \"register\" ? 0 : -1,\n              children: m.auth.tabs.signUp\n            })]\n          }), /* @__PURE__ */ c(He, {\n            stateKey: v,\n            order: Tr,\n            children: /* @__PURE__ */ c(\"div\", {\n              role: \"tabpanel\",\n              id: `${p}-tabpanel-${v}`,\n              \"aria-labelledby\": `${p}-tab-${v}`,\n              children: G ? v === \"login\" ? /* @__PURE__ */ c(C5, {\n                onSuccess: e,\n                onSwitchToRegister: () => x(\"register\"),\n                onForgotPassword: () => b(\"forgotPassword\")\n              }) : /* @__PURE__ */ c(H5, {\n                onSuccess: e,\n                onSwitchToLogin: () => x(\"login\"),\n                accessCode: I ? C : void 0,\n                showSignupAvailability: !1\n              }) : null\n            })\n          })] })\n        ]\n      }), S && /* @__PURE__ */ c(ae, {\n        error: S,\n        onDismiss: () => R(null)\n      })]\n    })\n  });\n}\nfunction ht(e, r) {\n  return r == null || r === !1 ? null : {\n    id: e,\n    element: r\n  };\n}\nfunction Y5(e) {\n  return e !== null;\n}\nfunction X5(e) {\n  if (!Array.isArray(e)) return sn;\n  const r = e.map((o) => o === \"passkey\" ? \"webauthn\" : o).filter(J5);\n  return r.length ? r : sn;\n}\nfunction J5(e) {\n  return sn.includes(e);\n}\nfunction Jl(e, r) {\n  const o = r.indexOf(e);\n  return o === -1 ? r.length : o;\n}\nvar Tr, sn, Z5 = h((() => {\n  Y(), qv(), ie(), S5(), K5(), nc(), Ju(), em(), vm(), rt(), we(), re(), ib(), ho(), tb(), Q(), Tr = [\"login\", \"register\"], sn = [\n    \"webauthn\",\n    \"google\",\n    \"apple\",\n    \"solana\"\n  ];\n}));\nfunction sb(e) {\n  return /* @__PURE__ */ c(G5, { ...e });\n}\nvar ab = h((() => {\n  Z5();\n}));\nfunction Q5() {\n  return typeof window > \"u\" ? \"\" : new URLSearchParams(window.location.search).get(\"token\")?.trim() ?? \"\";\n}\nfunction Uo() {\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 ac = h((() => {\n})), db, e2 = h((() => {\n  me(), db = class {\n    client;\n    constructor(e, r, o, t) {\n      this.client = new ue({\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((n) => ({\n            id: n.id,\n            orgId: n.orgId,\n            email: n.email,\n            role: n.role,\n            invitedBy: n.invitedBy,\n            createdAt: n.createdAt,\n            expiresAt: n.expiresAt\n          })),\n          total: t.total\n        };\n      } catch (t) {\n        throw V(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 V(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 V(o, \"Failed to cancel invite\");\n      }\n    }\n    async resendInvite(e, r) {\n      try {\n        await this.client.post(`/orgs/${e}/invites/${r}/resend`, {});\n      } catch (o) {\n        throw V(o, \"Failed to resend invite\");\n      }\n    }\n    async acceptInvite(e) {\n      try {\n        return await this.client.post(\"/invites/accept\", e);\n      } catch (r) {\n        throw V(r, \"Failed to accept invite\");\n      }\n    }\n  };\n}));\nfunction r2({ token: e }) {\n  const { config: r, authState: o, user: t, logout: n, _internal: i } = $s(), s = le(), a = B(() => new db(r.serverUrl, r.requestTimeout, r.retryAttempts, i?.getAccessToken), [\n    r.requestTimeout,\n    r.retryAttempts,\n    r.serverUrl,\n    i?.getAccessToken\n  ]), [d, l] = T(null), [u, m] = T(null), [g, p] = T(0), [f, v] = T(!1), x = O(!1), w = o === \"authenticated\" && t !== null;\n  F(() => {\n    !w || x.current || (x.current = !0, a.acceptInvite({ token: e }).then((y) => {\n      Uo(), l(y);\n    }).catch((y) => {\n      let C = V(y, s.messages.inviteAcceptFailed, { friendlyMessages: { FORBIDDEN: s.messages.inviteWrongAccount } });\n      C.code === \"FORBIDDEN\" && (C = {\n        ...C,\n        message: s.messages.inviteWrongAccount\n      }), m(C);\n    }));\n  }, [\n    g,\n    a,\n    w,\n    s.messages.inviteAcceptFailed,\n    s.messages.inviteWrongAccount,\n    e\n  ]);\n  const b = () => {\n    x.current = !1, m(null), p((y) => y + 1);\n  }, k = async () => {\n    v(!0);\n    try {\n      await n(), x.current = !1, m(null);\n    } catch (y) {\n      m(V(y, s.errors.unknownError));\n    } finally {\n      v(!1);\n    }\n  };\n  return d ? /* @__PURE__ */ _(\"div\", {\n    className: \"cedros-success-message\",\n    role: \"status\",\n    children: [/* @__PURE__ */ _(\"p\", { children: [\n      \"You joined \",\n      d.orgName,\n      \" as \",\n      d.role,\n      \".\"\n    ] }), /* @__PURE__ */ c(\"a\", {\n      className: \"cedros-button cedros-button-primary cedros-button-md\",\n      href: \"/profile\",\n      children: \"Continue to profile\"\n    })]\n  }) : u ? /* @__PURE__ */ _(\"div\", {\n    className: \"cedros-login-form-shell\",\n    children: [/* @__PURE__ */ c(ae, {\n      error: u,\n      autoFocus: !0\n    }), /* @__PURE__ */ c(\"div\", {\n      className: \"cedros-login-session-actions\",\n      children: u.code === \"FORBIDDEN\" ? /* @__PURE__ */ c(\"button\", {\n        type: \"button\",\n        className: \"cedros-button cedros-button-primary cedros-button-md\",\n        onClick: () => {\n          k();\n        },\n        disabled: f,\n        children: s.buttons.useAnotherAccount\n      }) : /* @__PURE__ */ c(\"button\", {\n        type: \"button\",\n        className: \"cedros-button cedros-button-primary cedros-button-md\",\n        onClick: b,\n        children: s.common.retry\n      })\n    })]\n  }) : w || o === \"loading\" ? /* @__PURE__ */ _(\"div\", {\n    className: \"cedros-form-header\",\n    role: \"status\",\n    \"aria-live\": \"polite\",\n    children: [/* @__PURE__ */ c(H, { size: \"sm\" }), /* @__PURE__ */ c(\"p\", {\n      className: \"cedros-form-subtitle\",\n      children: \"Accepting your invite…\"\n    })]\n  }) : /* @__PURE__ */ _(\"div\", { children: [/* @__PURE__ */ c(\"p\", {\n    className: \"cedros-form-subtitle\",\n    children: \"Sign in with the invited account to continue.\"\n  }), /* @__PURE__ */ c(sb, {})] });\n}\nvar o2 = h((() => {\n  ab(), we(), re(), ie(), Y(), Q(), me(), e2(), ac();\n}));\nfunction t2({ token: e, onAuthSuccess: r }) {\n  const o = le(), { config: t } = fe(), n = B(() => new ue({\n    baseUrl: t.serverUrl,\n    timeoutMs: t.requestTimeout,\n    retryAttempts: t.retryAttempts\n  }), [\n    t.requestTimeout,\n    t.retryAttempts,\n    t.serverUrl\n  ]), [i, s] = T(\"loading\"), [a, d] = T(null), l = O(!1);\n  return F(() => {\n    l.current || (l.current = !0, n.post(\"/verify-email\", { token: e }).then((u) => {\n      Uo(), n2(u) ? r(u) : s(\"success\");\n    }).catch((u) => {\n      d(V(u, o.errors.linkExpired, { networkMessage: o.errors.unableToReachServer })), s(\"error\");\n    }));\n  }, [\n    n,\n    r,\n    o.errors.linkExpired,\n    o.errors.unableToReachServer,\n    e\n  ]), i === \"loading\" ? /* @__PURE__ */ c(cb, { label: o.auth.verifying }) : i === \"error\" ? /* @__PURE__ */ c(lb, {\n    error: a,\n    actionLabel: o.auth.goToLogin\n  }) : /* @__PURE__ */ c(s2, {\n    title: o.messages.emailVerified,\n    actionLabel: o.auth.goToLogin\n  });\n}\nfunction n2(e) {\n  return \"user\" in e && typeof e.isNewUser == \"boolean\";\n}\nfunction i2({ token: e, onAuthSuccess: r }) {\n  const o = le(), { verifyInstantLink: t, error: n } = Bv(), [i, s] = T(null), a = O(!1);\n  return F(() => {\n    a.current || (a.current = !0, t(e).then((d) => {\n      \"mfaRequired\" in d ? s(d.mfaToken) : (Uo(), r(d));\n    }).catch(() => {\n    }));\n  }, [\n    r,\n    e,\n    t\n  ]), i ? /* @__PURE__ */ c(ti, {\n    mfaToken: i,\n    onSuccess: () => {\n      Uo(), r();\n    }\n  }) : n ? /* @__PURE__ */ c(lb, {\n    error: n,\n    actionLabel: o.auth.goToLogin\n  }) : /* @__PURE__ */ c(cb, { label: o.auth.verifying });\n}\nfunction cb({ label: e }) {\n  return /* @__PURE__ */ _(\"div\", {\n    className: \"cedros-form-header\",\n    role: \"status\",\n    \"aria-live\": \"polite\",\n    children: [/* @__PURE__ */ c(H, { size: \"sm\" }), /* @__PURE__ */ c(\"p\", {\n      className: \"cedros-form-subtitle\",\n      children: e\n    })]\n  });\n}\nfunction s2({ title: e, actionLabel: r }) {\n  const o = fv(typeof window > \"u\" ? void 0 : window.location.href);\n  return /* @__PURE__ */ _(\"div\", {\n    className: \"cedros-success-message\",\n    role: \"status\",\n    children: [/* @__PURE__ */ c(\"p\", { children: e }), /* @__PURE__ */ c(\"a\", {\n      className: \"cedros-button cedros-button-primary cedros-button-md\",\n      href: o,\n      children: r\n    })]\n  });\n}\nfunction lb({ error: e, actionLabel: r }) {\n  const o = fv(typeof window > \"u\" ? void 0 : window.location.href);\n  return /* @__PURE__ */ _(\"div\", {\n    className: \"cedros-form\",\n    children: [/* @__PURE__ */ c(ae, {\n      error: e,\n      autoFocus: !0\n    }), /* @__PURE__ */ c(\"a\", {\n      className: \"cedros-button cedros-button-secondary cedros-button-md\",\n      href: o,\n      children: r\n    })]\n  });\n}\nvar a2 = h((() => {\n  we(), re(), rt(), ie(), Y(), Fv(), Q(), me(), ii(), ac();\n}));\nfunction d2({ mode: e, onAuthSuccess: r }) {\n  return e === \"sign-in\" || e === \"create-account\" ? /* @__PURE__ */ c(c2, {\n    mode: e,\n    onAuthSuccess: r\n  }) : e === \"forgot-password\" ? /* @__PURE__ */ c(tc, {}) : /* @__PURE__ */ c(l2, {\n    mode: e,\n    onAuthSuccess: r\n  });\n}\nfunction c2({ mode: e, onAuthSuccess: r }) {\n  const { authState: o, user: t } = fe(), n = O(null), i = O(!1), s = N((a) => {\n    i.current = !0, r(a);\n  }, [r]);\n  return F(() => {\n    o !== \"authenticated\" || !t || i.current || n.current === t.id || (n.current = t.id, r());\n  }, [\n    o,\n    r,\n    t\n  ]), o === \"idle\" || o === \"loading\" || o === \"authenticated\" && t ? null : /* @__PURE__ */ c(sb, {\n    defaultTab: e === \"create-account\" ? \"register\" : \"login\",\n    onSuccess: s\n  });\n}\nfunction l2({ mode: e, onAuthSuccess: r }) {\n  const [o] = T(Q5);\n  return F(() => {\n    o && Uo();\n  }, [o]), o ? e === \"reset-password\" ? /* @__PURE__ */ c(b5, {\n    token: o,\n    onLoginClick: () => m2(\"/login\")\n  }) : e === \"verify-email\" ? /* @__PURE__ */ c(t2, {\n    token: o,\n    onAuthSuccess: r\n  }) : e === \"instant-link-verify\" ? /* @__PURE__ */ c(i2, {\n    token: o,\n    onAuthSuccess: r\n  }) : /* @__PURE__ */ c(r2, { token: o }) : /* @__PURE__ */ c(u2, { mode: e });\n}\nfunction u2({ mode: e }) {\n  return /* @__PURE__ */ _(\"div\", {\n    className: \"cedros-error\",\n    role: \"alert\",\n    children: [/* @__PURE__ */ c(\"span\", {\n      className: \"cedros-error-message\",\n      children: \"This link is missing its secure token. Request a new link and try again.\"\n    }), /* @__PURE__ */ c(\"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 m2(e) {\n  typeof window < \"u\" && window.location.assign(e);\n}\nvar g2 = h((() => {\n  nc(), y5(), ab(), ie(), Y(), ac(), o2(), a2();\n}));\nfunction h2(e, r, o) {\n  const t = Tu(e.features), n = {\n    serverUrl: v2(r),\n    features: t ? f2(t) : \"auto\",\n    theme: o ?? \"light\",\n    applyThemeToDocument: !1\n  }, i = an(e.googleClientId) ?? Zl(e.features, \"googleClientId\"), s = an(e.appleClientId) ?? Zl(e.features, \"appleClientId\"), a = mb(e.socialButtonOrder) ?? w2(e.features, \"socialButtonOrder\"), d = k2(e.features, \"signupAccessCodeRequired\"), l = t?.signupAvailability;\n  return i && (n.googleClientId = i), s && (n.appleClientId = s), a && (n.socialButtonOrder = a), d !== void 0 && (n.signupAccessCodeRequired = d), l && (n.signupAvailability = l), n;\n}\nfunction ub(e, r, o) {\n  const t = h2(e, r, o);\n  return {\n    ...t,\n    serverUrl: y2(t.serverUrl)\n  };\n}\nfunction p2(e, r, o) {\n  const t = ub(e, r, o);\n  return t.features !== \"auto\" ? t : {\n    ...t,\n    features: void 0\n  };\n}\nfunction f2(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 v2(e) {\n  const r = Ru() ?? \"\", o = an(e);\n  return !o || !b2(o) ? r : o;\n}\nfunction b2(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 y2(e) {\n  const r = e.replace(/\\/+$/, \"\");\n  return r.endsWith(\"/public-auth\") ? r : r && `${r}/public-auth`;\n}\nfunction an(e) {\n  return typeof e == \"string\" && e.trim() ? e.trim() : void 0;\n}\nfunction Zl(e, r) {\n  if (!(!e || typeof e != \"object\"))\n    return an(e[r]);\n}\nfunction mb(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 w2(e, r) {\n  if (!(!e || typeof e != \"object\"))\n    return mb(e[r]);\n}\nfunction k2(e, r) {\n  if (!e || typeof e != \"object\") return;\n  const o = e[r];\n  return typeof o == \"boolean\" ? o : void 0;\n}\nvar gb = h((() => {\n  Nu();\n})), x2 = /* @__PURE__ */ dn({ default: () => _2 });\nfunction _2({ props: e, runtimeBaseUrl: r, colorMode: o }) {\n  const t = qs(e.mode), n = A2(e.layout), i = ub(e, r, o), s = (a) => {\n    typeof window > \"u\" || p5(e, a, window.location);\n  };\n  return /* @__PURE__ */ c(Dv, {\n    config: i,\n    children: /* @__PURE__ */ c(\"section\", {\n      className: Iu(n, o),\n      \"data-auth-mode\": t,\n      \"data-cebbwf5-block\": Oe,\n      children: /* @__PURE__ */ c(\"div\", {\n        className: \"cedros-auth-form__panel\",\n        children: /* @__PURE__ */ c(d2, {\n          mode: t,\n          onAuthSuccess: s\n        })\n      })\n    })\n  });\n}\nfunction A2(e) {\n  return e === \"inline\" || e === \"compact\" ? e : \"card\";\n}\nvar C2 = h((() => {\n  zv(), zu(), f5(), g2(), gb(), so();\n}));\nfunction S2({ props: e, runtimeBaseUrl: r, colorMode: o }) {\n  const { preserveShell: t, hasInitialHydrationShell: n } = T2(qs(e.mode)), i = j(nw, {\n    props: e,\n    suppressClientConditionalProviderButtons: !0,\n    colorMode: o\n  });\n  return t ? i : j(Us, { fallback: j(E2) }, j(Ns, { fallback: n ? i : null }, j(hb, {\n    props: e,\n    runtimeBaseUrl: r,\n    colorMode: o\n  })));\n}\nfunction E2() {\n  return j(\"div\", {\n    className: \"cedros-error\",\n    role: \"alert\"\n  }, \"Authentication is temporarily unavailable. Please reload and try again.\");\n}\nfunction T2(e) {\n  const r = iu(R2, () => P2(e), () => !0), [o, t] = T(() => r);\n  return F(() => {\n    o && t(!1);\n  }, [o]), {\n    preserveShell: o,\n    hasInitialHydrationShell: r\n  };\n}\nfunction R2() {\n  return () => {\n  };\n}\nfunction P2(e) {\n  return typeof document > \"u\" ? !0 : !!document.querySelector(`[data-cebbwf5-block=\"${Oe}\"][data-auth-mode=\"${e}\"] .cedros-auth-form__panel`);\n}\nvar hb, L2 = h((() => {\n  lu(), Y(), zu(), so(), hb = Is(() => Promise.resolve().then(() => (C2(), x2)));\n}));\nfunction N2({ props: e }) {\n  const r = D2(e, le());\n  return j(\"section\", {\n    className: `cedros-auth-page-copy cedros-auth-page-copy--${r.variant}`,\n    \"data-cebbwf5-block\": Qe\n  }, [\n    j(\"div\", {\n      key: \"brand\",\n      className: \"cedros-auth-page-copy__brand\"\n    }, [r.logo && j(\"img\", {\n      key: \"logo\",\n      className: \"cedros-auth-page-copy__logo\",\n      src: r.logo.src,\n      alt: r.logo.alt\n    }), j(\"div\", {\n      key: \"text\",\n      className: \"cedros-auth-page-copy__brand-text\"\n    }, [j(\"h1\", {\n      key: \"title\",\n      className: \"cedros-auth-page-copy__title\"\n    }, r.title), r.eyebrow && j(\"p\", {\n      key: \"eyebrow\",\n      className: \"cedros-auth-page-copy__eyebrow\"\n    }, r.eyebrow)])]),\n    r.body && j(\"p\", {\n      key: \"body\",\n      className: \"cedros-auth-page-copy__body\"\n    }, r.body),\n    r.primaryLink && j(\"a\", {\n      key: \"primaryLink\",\n      className: \"cedros-auth-page-copy__link\",\n      href: r.primaryLink.href\n    }, r.primaryLink.label),\n    r.secondaryText && j(\"p\", {\n      key: \"secondaryText\",\n      className: \"cedros-auth-page-copy__secondary\"\n    }, r.secondaryText)\n  ].filter(Boolean));\n}\nfunction I2({ props: e }) {\n  const r = z2(e, le());\n  return j(\"div\", {\n    className: `cedros-login-button-block cedros-login-button-block--${r.align}`,\n    \"data-cebbwf5-block\": js\n  }, j(\"a\", {\n    className: `cedros-login-button cedros-login-button--${r.variant}`,\n    href: r.href\n  }, r.label));\n}\nfunction M2({ props: e, colorMode: r }) {\n  const o = pb(e, le());\n  return j(\"section\", {\n    className: Tt(\"loading\", r),\n    \"data-cebbwf5-block\": Ir\n  }, [j(\"h2\", {\n    key: \"title\",\n    className: \"cedros-account-workspace-block__title\"\n  }, o.title), j(\"div\", {\n    key: \"status\",\n    className: \"cedros-account-workspace-block__status\",\n    role: \"status\"\n  }, [j(H, {\n    key: \"spinner\",\n    size: \"sm\"\n  }), j(\"span\", { key: \"label\" }, \"Loading account...\")])]);\n}\nfunction Tt(e, r) {\n  const o = `cedros-account-workspace-block cedros-account-workspace-block--${e}`;\n  return r === \"dark\" ? `${o} cebbwf5-dark` : o;\n}\nfunction D2(e, r) {\n  const o = V2(e.primaryLink) ? e.primaryLink : null, t = De(o?.label).trim(), n = U2(De(e.logoUrl));\n  return {\n    eyebrow: De(e.eyebrow),\n    logo: n ? {\n      src: n,\n      alt: De(e.logoAlt)\n    } : null,\n    title: De(e.title) || r.admin.nav.cedrosLogin,\n    body: De(e.body) || r.extension.authForm.editBeforePublishing,\n    secondaryText: De(e.secondaryText),\n    variant: e.variant === \"profile\" ? \"profile\" : \"auth\",\n    primaryLink: o?.kind === \"cedros-link\" && t ? {\n      href: di(De(o.href)),\n      label: t\n    } : null\n  };\n}\nfunction z2(e, r) {\n  return {\n    label: De(e.label) || r.buttons.signIn,\n    href: di(De(e.href) || \"/login\"),\n    variant: O2(e.variant),\n    align: e.align === \"center\" || e.align === \"end\" ? e.align : \"start\"\n  };\n}\nfunction pb(e, r) {\n  return {\n    title: De(e.title) || r.buttons.manageAccount,\n    body: De(e.body) || r.extension.authForm.accountWorkspaceBody,\n    signInHref: di(De(e.signInHref) || \"/login\"),\n    signInLabel: De(e.signInLabel) || r.extension.authForm.logInToManageAccount\n  };\n}\nfunction O2(e) {\n  return e === \"secondary\" || e === \"link\" ? e : \"primary\";\n}\nfunction di(e) {\n  const r = e.trim();\n  return r ? r.startsWith(\"/\") ? r : bu(r) || \"/\" : \"/\";\n}\nfunction U2(e) {\n  const r = e.trim();\n  return !r || r.includes(\"\\\\\") || r.startsWith(\"//\") ? \"\" : r.startsWith(\"/\") ? r : $y(r) || \"\";\n}\nfunction De(e) {\n  return typeof e == \"string\" ? e : \"\";\n}\nfunction V2(e) {\n  return typeof e == \"object\" && e !== null && !Array.isArray(e);\n}\nvar dc = h((() => {\n  re(), Q(), wu(), so(), L2();\n}));\nfunction cc() {\n  const { user: e, authState: r, error: o, logout: t, refreshUser: n, openModal: i, closeModal: s } = fe();\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: n,\n    openLoginModal: i,\n    closeLoginModal: s\n  };\n}\nvar ci = h((() => {\n  ie();\n})), fb, B2 = h((() => {\n  me(), fb = class {\n    client;\n    constructor(e, r, o, t) {\n      this.client = new ue({\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 V(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 V(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 V(r, \"Failed to change email\");\n      }\n    }\n  };\n}));\nfunction vb() {\n  const { config: e, authState: r, _internal: o } = fe(), [t, n] = T(!1), [i, s] = T(null), a = B(() => new fb(e.serverUrl, e.requestTimeout, e.retryAttempts, o?.getAccessToken), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    o\n  ]), d = N(() => {\n    s(null);\n  }, []), l = N(async (u) => {\n    if (r !== \"authenticated\") throw new Error(\"Must be authenticated to change email\");\n    n(!0), s(null);\n    try {\n      return await a.changeEmail(u);\n    } catch (m) {\n      const g = m instanceof Error ? m : /* @__PURE__ */ new Error(\"Failed to change email\");\n      throw s(g), g;\n    } finally {\n      n(!1);\n    }\n  }, [r, a]);\n  return {\n    isLoading: t,\n    error: i,\n    updateProfile: N(async (u) => {\n      if (r !== \"authenticated\") throw new Error(\"Must be authenticated to update profile\");\n      n(!0), s(null);\n      try {\n        return await a.updateProfile(u);\n      } catch (m) {\n        const g = m instanceof Error ? m : /* @__PURE__ */ new Error(\"Failed to update profile\");\n        throw s(g), g;\n      } finally {\n        n(!1);\n      }\n    }, [r, a]),\n    changePassword: N(async (u) => {\n      if (r !== \"authenticated\") throw new Error(\"Must be authenticated to change password\");\n      n(!0), s(null);\n      try {\n        await a.changePassword(u);\n      } catch (m) {\n        const g = m instanceof Error ? m : /* @__PURE__ */ new Error(\"Failed to change password\");\n        throw s(g), g;\n      } finally {\n        n(!1);\n      }\n    }, [r, a]),\n    changeEmail: l,\n    clearError: d\n  };\n}\nvar lc = h((() => {\n  ie(), B2();\n}));\nfunction F2() {\n  const { config: e, _internal: r } = fe(), [o, t] = T(!1), [n, i] = T(null), s = B(() => new ue({\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: N(async (a) => await s.get(`/username/available?username=${encodeURIComponent(a)}`, { credentials: \"include\" }), [s]),\n    getSuggestion: N(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: N(async (a) => {\n      t(!0), i(null);\n      try {\n        await s.patch(\"/me\", { username: a });\n      } catch (d) {\n        const l = new Error(V(d, \"Unable to update your username. Please try again.\").message);\n        throw i(l), l;\n      } finally {\n        t(!1);\n      }\n    }, [s]),\n    isLoading: o,\n    error: n\n  };\n}\nvar j2 = h((() => {\n  ie(), me();\n}));\nfunction $2(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 bb = h((() => {\n}));\nfunction Ql(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 q2(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 n = typeof t.result == \"string\" ? t.result : \"\", i = n.indexOf(\",\");\n      if (i < 0) {\n        o(/* @__PURE__ */ new Error(\"Invalid image.\"));\n        return;\n      }\n      r(n.slice(i + 1));\n    }, t.readAsDataURL(e);\n  });\n}\nvar uc, W2 = h((() => {\n  uc = [\n    \"image/jpeg\",\n    \"image/png\",\n    \"image/gif\",\n    \"image/webp\"\n  ];\n}));\nfunction H2({ className: e = \"\" }) {\n  const { user: r, refreshUser: o } = cc(), { config: t, _internal: n } = fe(), [i, s] = T(null), [a, d] = T(!1), [l, u] = T(null), m = O(null), g = r?.id, p = r?.picture, f = r?.avatarContentType, v = B(() => new ue({\n    baseUrl: t.serverUrl,\n    timeoutMs: t.requestTimeout,\n    retryAttempts: t.retryAttempts,\n    getAccessToken: n?.getAccessToken\n  }), [\n    t.serverUrl,\n    t.requestTimeout,\n    t.retryAttempts,\n    n?.getAccessToken\n  ]);\n  F(() => {\n    if (!g) {\n      s(null);\n      return;\n    }\n    const k = p ?? null;\n    if (!f) {\n      s((C) => C?.userId === g && C.src === k ? C : {\n        userId: g,\n        src: k\n      });\n      return;\n    }\n    let y = !0;\n    return v.get(\"/me/avatar\", { cacheTtlMs: 5e3 }).then((C) => {\n      y && s({\n        userId: g,\n        src: Ql(C)\n      });\n    }).catch(() => {\n      y && !k && u(\"Your saved profile picture could not be loaded.\");\n    }), () => {\n      y = !1;\n    };\n  }, [\n    f,\n    v,\n    g,\n    p\n  ]);\n  const x = N(async (k) => {\n    const y = k.target.files?.[0];\n    if (y) {\n      if (u(null), !uc.includes(y.type) || y.size === 0) {\n        u(\"Choose a JPG, PNG, GIF, or WebP image.\");\n        return;\n      }\n      d(!0);\n      try {\n        const C = await v.post(\"/me/avatar\", {\n          contentType: y.type,\n          content: await q2(y)\n        });\n        r && s({\n          userId: r.id,\n          src: Ql(C)\n        }), await o();\n      } catch (C) {\n        u(typeof C == \"object\" && C !== null && \"name\" in C && C.name === \"AbortError\" ? \"Upload timed out. Check your connection and try again.\" : V(C, \"Failed to upload image.\").message);\n      } finally {\n        d(!1), m.current && (m.current.value = \"\");\n      }\n    }\n  }, [\n    v,\n    o,\n    r\n  ]), w = N(async () => {\n    u(null), d(!0);\n    try {\n      await v.delete(\"/me/avatar\"), r && s({\n        userId: r.id,\n        src: null\n      }), await o();\n    } catch (k) {\n      u(V(k, \"Failed to remove image.\").message);\n    } finally {\n      d(!1);\n    }\n  }, [\n    v,\n    o,\n    r\n  ]), b = i && i.userId === r?.id ? i.src : r?.picture ?? null;\n  return /* @__PURE__ */ _(\"div\", {\n    className: `cedros-avatar-field ${e}`.trim(),\n    \"aria-busy\": a,\n    children: [/* @__PURE__ */ c(\"div\", {\n      className: \"cedros-avatar-field__preview\",\n      children: b ? /* @__PURE__ */ c(\"img\", {\n        src: b,\n        alt: r?.name || \"Profile\",\n        className: \"cedros-profile-avatar\"\n      }) : /* @__PURE__ */ c(\"div\", {\n        className: \"cedros-profile-avatar cedros-profile-avatar-fallback\",\n        children: $2(r)\n      })\n    }), /* @__PURE__ */ _(\"div\", {\n      className: \"cedros-avatar-field__body\",\n      children: [\n        /* @__PURE__ */ c(\"p\", {\n          className: \"cedros-avatar-field__label\",\n          children: \"Profile picture\"\n        }),\n        /* @__PURE__ */ c(\"p\", {\n          className: \"cedros-avatar-field__hint\",\n          children: \"JPG, PNG, GIF, or WebP.\"\n        }),\n        /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-avatar-field__actions\",\n          children: [/* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-outline cedros-button-sm\",\n            onClick: () => m.current?.click(),\n            disabled: a,\n            children: a ? \"Saving…\" : \"Upload\"\n          }), (b || r?.avatarContentType) && /* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-ghost cedros-button-sm\",\n            onClick: w,\n            disabled: a,\n            children: \"Remove\"\n          })]\n        }),\n        l && /* @__PURE__ */ c(\"p\", {\n          className: \"cedros-avatar-field__error\",\n          children: l\n        }),\n        /* @__PURE__ */ c(\"input\", {\n          ref: m,\n          type: \"file\",\n          accept: yb,\n          onChange: x,\n          className: \"cedros-profile-avatar-input\",\n          \"aria-label\": \"Upload profile picture\",\n          tabIndex: -1\n        })\n      ]\n    })]\n  });\n}\nvar yb, K2 = h((() => {\n  ie(), ci(), Y(), me(), bb(), W2(), yb = uc.join(\",\");\n}));\nfunction eu({ label: e, value: r, placeholder: o, emptyText: t = \"Not set\", prefix: n, helpText: i, validateFormat: s, checkAvailable: a, onSave: d, className: l = \"\" }) {\n  const [u, m] = T(!1), [g, p] = T(r), [f, v] = T(null), [x, w] = T(!1), [b, k] = T({ status: \"idle\" }), y = O(null), C = O(0), P = N(() => {\n    p(r), v(null), k({ status: \"idle\" }), m(!0);\n  }, [r]), S = N(() => {\n    m(!1), v(null), k({ status: \"idle\" }), y.current && window.clearTimeout(y.current);\n  }, []);\n  F(() => {\n    if (!u || !a) return;\n    const A = g.trim();\n    if (y.current && window.clearTimeout(y.current), A === r.trim() || A.length === 0) {\n      k({ status: \"idle\" });\n      return;\n    }\n    const E = s?.(A) ?? null;\n    if (E) {\n      k({\n        status: \"error\",\n        message: E\n      });\n      return;\n    }\n    const I = ++C.current;\n    return k({ status: \"checking\" }), y.current = window.setTimeout(async () => {\n      try {\n        const L = await a(A);\n        if (I !== C.current) return;\n        k(L ? {\n          status: \"error\",\n          message: L\n        } : {\n          status: \"ok\",\n          message: \"Available\"\n        });\n      } catch {\n        I === C.current && k({ status: \"idle\" });\n      }\n    }, 400), () => {\n      y.current && window.clearTimeout(y.current);\n    };\n  }, [\n    g,\n    u,\n    a,\n    s,\n    r\n  ]);\n  const R = N(async () => {\n    const A = g.trim(), E = s?.(A) ?? null;\n    if (E) {\n      v(E);\n      return;\n    }\n    if (b.status === \"error\") {\n      v(b.message ?? \"Value is not available.\");\n      return;\n    }\n    v(null), w(!0);\n    try {\n      await d(A), m(!1);\n    } catch (I) {\n      v(I instanceof Error ? I.message : \"Failed to save.\");\n    } finally {\n      w(!1);\n    }\n  }, [\n    g,\n    s,\n    b,\n    d\n  ]);\n  return /* @__PURE__ */ _(\"div\", {\n    className: `cedros-field ${l}`.trim(),\n    children: [/* @__PURE__ */ _(\"div\", {\n      className: \"cedros-field__head\",\n      children: [/* @__PURE__ */ c(\"span\", {\n        className: \"cedros-field__label\",\n        children: e\n      }), !u && /* @__PURE__ */ c(\"button\", {\n        type: \"button\",\n        className: \"cedros-button cedros-button-ghost cedros-button-sm\",\n        onClick: P,\n        children: \"Edit\"\n      })]\n    }), u ? /* @__PURE__ */ _(ce, { children: [\n      i && /* @__PURE__ */ c(\"span\", {\n        className: \"cedros-field__help\",\n        children: i\n      }),\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-field__control\",\n        children: [n && /* @__PURE__ */ c(\"span\", {\n          className: \"cedros-field__prefix\",\n          children: n\n        }), /* @__PURE__ */ c(\"input\", {\n          type: \"text\",\n          className: \"cedros-input\",\n          value: g,\n          placeholder: o,\n          disabled: x,\n          autoFocus: !0,\n          \"aria-label\": e,\n          onChange: (A) => p(A.target.value),\n          onKeyDown: (A) => {\n            A.key === \"Enter\" && R(), A.key === \"Escape\" && S();\n          }\n        })]\n      }),\n      b.status === \"checking\" && /* @__PURE__ */ c(\"span\", {\n        className: \"cedros-field__hint\",\n        children: \"Checking availability…\"\n      }),\n      b.status === \"ok\" && /* @__PURE__ */ c(\"span\", {\n        className: \"cedros-field__hint cedros-field__hint--ok\",\n        children: b.message\n      }),\n      (f || b.status === \"error\") && /* @__PURE__ */ c(\"span\", {\n        className: \"cedros-field__hint cedros-field__hint--error\",\n        children: f ?? b.message\n      }),\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-field__actions\",\n        children: [/* @__PURE__ */ c(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-primary cedros-button-sm\",\n          onClick: R,\n          disabled: x || b.status === \"checking\",\n          children: x ? /* @__PURE__ */ c(H, { size: \"sm\" }) : \"Save\"\n        }), /* @__PURE__ */ c(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-outline cedros-button-sm\",\n          onClick: S,\n          disabled: x,\n          children: \"Cancel\"\n        })]\n      })\n    ] }) : /* @__PURE__ */ c(\"span\", {\n      className: `cedros-field__value${r ? \"\" : \" cedros-field__value--empty\"}`,\n      children: r ? `${n ?? \"\"}${r}` : t\n    })]\n  });\n}\nvar G2 = h((() => {\n  Y(), re();\n}));\nfunction Y2(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.\" : wb.has(e) ? \"That username is reserved.\" : null : \"Use lowercase letters, numbers, and underscores only.\";\n}\nfunction X2(e) {\n  return e.length === 0 ? \"Name cannot be empty.\" : e.length > 100 ? \"Name must be 100 characters or less.\" : null;\n}\nfunction J2({ className: e = \"\" }) {\n  const { user: r, refreshUser: o } = cc(), { updateProfile: t } = vb(), { checkAvailability: n, setUsername: i } = F2(), s = N(async (l) => {\n    await t({ name: l }), await o();\n  }, [t, o]), a = N(async (l) => {\n    await i(l), await o();\n  }, [i, o]), d = N(async (l) => {\n    const u = await n(l);\n    return u.available ? null : u.error || \"That username is taken.\";\n  }, [n]);\n  return /* @__PURE__ */ _(\"div\", {\n    className: `cedros-account-card ${e}`.trim(),\n    children: [\n      /* @__PURE__ */ c(H2, {}),\n      /* @__PURE__ */ c(\"div\", { className: \"cedros-account-card__divider\" }),\n      /* @__PURE__ */ c(eu, {\n        label: \"Display name\",\n        value: r?.name ?? \"\",\n        placeholder: \"Your name\",\n        validateFormat: X2,\n        onSave: s\n      }),\n      /* @__PURE__ */ c(\"div\", { className: \"cedros-account-card__divider\" }),\n      /* @__PURE__ */ c(eu, {\n        label: \"Username\",\n        value: r?.username ?? \"\",\n        placeholder: \"username\",\n        prefix: \"@\",\n        helpText: \"3–30 characters: lowercase letters, numbers, and underscores.\",\n        validateFormat: Y2,\n        checkAvailable: d,\n        onSave: a\n      })\n    ]\n  });\n}\nvar wb, Z2 = h((() => {\n  ci(), lc(), j2(), K2(), G2(), wb = /* @__PURE__ */ new Set([\n    \"admin\",\n    \"system\",\n    \"support\",\n    \"help\",\n    \"root\",\n    \"moderator\",\n    \"mod\",\n    \"staff\",\n    \"cedros\"\n  ]);\n}));\nfunction kb() {\n  const { config: e, authState: r, _internal: o } = fe(), [t, n] = T([]), [i, s] = T(!1), [a, d] = T(null), l = B(() => new Zd(e.serverUrl, e.requestTimeout, e.retryAttempts, o?.getAccessToken), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    o\n  ]), u = N(() => {\n    d(null);\n  }, []), m = N(async () => {\n    if (r !== \"authenticated\") {\n      n([]);\n      return;\n    }\n    s(!0), d(null);\n    try {\n      n(await l.listCredentials());\n    } catch (g) {\n      d(g);\n    } finally {\n      s(!1);\n    }\n  }, [r, l]);\n  return F(() => {\n    r === \"authenticated\" ? m() : n([]);\n  }, [r, m]), {\n    credentials: t,\n    isLoading: i,\n    error: a,\n    fetchCredentials: m,\n    unlinkCredential: N(async (g) => {\n      s(!0), d(null);\n      try {\n        await l.unlinkCredential(g), await m();\n      } catch (p) {\n        throw d(p), p;\n      } finally {\n        s(!1);\n      }\n    }, [l, m]),\n    clearError: u\n  };\n}\nvar mc = h((() => {\n  Y(), ie(), hv();\n}));\nfunction Q2() {\n  const { config: e, _internal: r } = fe(), [o, t] = T(!1), [n, i] = T(null), s = B(() => new ue({\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: N(async (a) => {\n      t(!0), i(null);\n      try {\n        await s.post(\"/set-password\", { password: a });\n      } catch (d) {\n        const l = V(d, \"Failed to set password\");\n        throw i(l), l;\n      } finally {\n        t(!1);\n      }\n    }, [s]),\n    isLoading: o,\n    error: n\n  };\n}\nvar eA = h((() => {\n  ie(), me();\n}));\nfunction rA({ onPasswordChange: e, onCancel: r, className: o = \"\" }) {\n  const { isLoading: t, error: n, changePassword: i, clearError: s } = vb(), [a, d] = T(\"\"), [l, u] = T(\"\"), [m, g] = T(\"\"), [p, f] = T(null), [v, x] = T(null), w = No(l), b = l === m, k = a.length > 0 && l.length > 0 && m.length > 0 && w.isValid && b, y = N(async () => {\n    if (k) {\n      f(null), x(null);\n      try {\n        await i({\n          currentPassword: a,\n          newPassword: l\n        }), d(\"\"), u(\"\"), g(\"\"), x(\"Password changed successfully. Other sessions have been logged out.\"), e?.(), setTimeout(() => r(), 2e3);\n      } catch (P) {\n        f(P instanceof Error ? P.message : \"Failed to change password\");\n      }\n    }\n  }, [\n    k,\n    a,\n    l,\n    i,\n    e,\n    r\n  ]), C = N(() => {\n    f(null), s(), r();\n  }, [s, r]);\n  return /* @__PURE__ */ c(\"div\", {\n    className: `cedros-profile-settings ${o}`,\n    children: /* @__PURE__ */ _(\"div\", {\n      className: \"cedros-profile-panel\",\n      children: [\n        /* @__PURE__ */ c(\"h3\", {\n          className: \"cedros-profile-title\",\n          children: \"Change password\"\n        }),\n        /* @__PURE__ */ c(\"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        (p || n) && /* @__PURE__ */ c(\"div\", {\n          className: \"cedros-profile-error\",\n          children: /* @__PURE__ */ c(ae, {\n            error: {\n              code: \"UNKNOWN_ERROR\",\n              message: p || n?.message || \"\"\n            },\n            onDismiss: () => {\n              f(null), s();\n            }\n          })\n        }),\n        v && /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-profile-success\",\n          children: [/* @__PURE__ */ c(\"span\", {\n            className: \"cedros-profile-success-icon\",\n            children: \"✓\"\n          }), v]\n        }),\n        /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-profile-form\",\n          children: [\n            /* @__PURE__ */ c(\"div\", {\n              className: \"cedros-profile-field\",\n              children: /* @__PURE__ */ c(je, {\n                label: \"Current password\",\n                placeholder: \"Enter your current password\",\n                value: a,\n                onChange: (P) => d(P.target.value),\n                disabled: t,\n                autoFocus: !0\n              })\n            }),\n            /* @__PURE__ */ c(\"div\", {\n              className: \"cedros-profile-field\",\n              children: /* @__PURE__ */ c(je, {\n                label: \"New password\",\n                placeholder: \"Enter new password\",\n                value: l,\n                onChange: (P) => u(P.target.value),\n                disabled: t,\n                showStrengthMeter: !0\n              })\n            }),\n            /* @__PURE__ */ c(\"div\", {\n              className: \"cedros-profile-field\",\n              children: /* @__PURE__ */ c(je, {\n                label: \"Confirm new password\",\n                placeholder: \"Confirm new password\",\n                value: m,\n                onChange: (P) => g(P.target.value),\n                disabled: t,\n                error: m.length > 0 && !b ? \"Passwords do not match\" : void 0\n              })\n            })\n          ]\n        }),\n        /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-profile-actions\",\n          children: [/* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-outline cedros-button-md\",\n            onClick: C,\n            disabled: t,\n            children: \"Cancel\"\n          }), /* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-primary cedros-button-md\",\n            onClick: y,\n            disabled: t || !k,\n            children: t ? /* @__PURE__ */ _(ce, { children: [/* @__PURE__ */ c(H, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", { children: \"Changing...\" })] }) : \"Change password\"\n          })]\n        })\n      ]\n    })\n  });\n}\nvar xb = h((() => {\n  lc(), Fr(), re(), we(), _r();\n}));\nfunction oA({ onPasswordChange: e, className: r = \"\" }) {\n  const { credentials: o, fetchCredentials: t } = kb(), n = o.some((a) => a.credentialType === \"password\"), [i, s] = T(\"view\");\n  return i === \"change\" ? /* @__PURE__ */ c(rA, {\n    className: r,\n    onCancel: () => s(\"view\"),\n    onPasswordChange: () => {\n      s(\"view\"), e?.();\n    }\n  }) : i === \"set\" ? /* @__PURE__ */ c(tA, {\n    className: r,\n    onCancel: () => s(\"view\"),\n    onDone: async () => {\n      await t(), s(\"view\"), e?.();\n    }\n  }) : /* @__PURE__ */ c(\"div\", {\n    className: `cedros-account-card ${r}`.trim(),\n    children: /* @__PURE__ */ _(\"div\", {\n      className: \"cedros-field\",\n      children: [\n        /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-field__head\",\n          children: [/* @__PURE__ */ c(\"span\", {\n            className: \"cedros-field__label\",\n            children: \"Password\"\n          }), n ? /* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-outline cedros-button-sm\",\n            onClick: () => s(\"change\"),\n            children: \"Change password\"\n          }) : /* @__PURE__ */ c(\"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__ */ c(\"span\", {\n          className: `cedros-field__value${n ? \"\" : \" cedros-field__value--empty\"}`,\n          children: n ? \"••••••••\" : \"No password set\"\n        }),\n        !n && /* @__PURE__ */ c(\"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 tA({ onCancel: e, onDone: r, className: o = \"\" }) {\n  const { setPassword: t, isLoading: n } = Q2(), [i, s] = T(\"\"), [a, d] = T(\"\"), [l, u] = T(null), m = No(i), g = i === a, p = m.isValid && g && a.length > 0, f = N(async () => {\n    if (p) {\n      u(null);\n      try {\n        await t(i), await r();\n      } catch (v) {\n        u(v instanceof Error ? v.message : \"Failed to set password.\");\n      }\n    }\n  }, [\n    p,\n    i,\n    t,\n    r\n  ]);\n  return /* @__PURE__ */ c(\"div\", {\n    className: `cedros-profile-settings ${o}`.trim(),\n    children: /* @__PURE__ */ _(\"div\", {\n      className: \"cedros-profile-panel\",\n      children: [\n        /* @__PURE__ */ c(\"h3\", {\n          className: \"cedros-profile-title\",\n          children: \"Set a password\"\n        }),\n        /* @__PURE__ */ c(\"p\", {\n          className: \"cedros-profile-description\",\n          children: \"Choose a password to enable email sign-in alongside your current methods.\"\n        }),\n        l && /* @__PURE__ */ c(\"div\", {\n          className: \"cedros-profile-error\",\n          children: l\n        }),\n        /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-profile-form\",\n          children: [/* @__PURE__ */ c(\"div\", {\n            className: \"cedros-profile-field\",\n            children: /* @__PURE__ */ c(je, {\n              label: \"New password\",\n              placeholder: \"Enter a new password\",\n              value: i,\n              onChange: (v) => s(v.target.value),\n              disabled: n,\n              showStrengthMeter: !0,\n              autoFocus: !0\n            })\n          }), /* @__PURE__ */ c(\"div\", {\n            className: \"cedros-profile-field\",\n            children: /* @__PURE__ */ c(je, {\n              label: \"Confirm password\",\n              placeholder: \"Re-enter the password\",\n              value: a,\n              onChange: (v) => d(v.target.value),\n              disabled: n,\n              error: a.length > 0 && !g ? \"Passwords do not match\" : void 0\n            })\n          })]\n        }),\n        /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-profile-actions\",\n          children: [/* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-outline cedros-button-md\",\n            onClick: e,\n            disabled: n,\n            children: \"Cancel\"\n          }), /* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-primary cedros-button-md\",\n            onClick: f,\n            disabled: n || !p,\n            children: n ? /* @__PURE__ */ c(H, { size: \"sm\" }) : \"Set password\"\n          })]\n        })\n      ]\n    })\n  });\n}\nvar nA = h((() => {\n  mc(), eA(), xb(), Fr(), re(), _r();\n}));\nfunction _b() {\n  const { config: e, _internal: r } = fe(), o = le(), [t, n] = T(null), [i, s] = T(\"idle\"), [a, d] = T(null), [l, u] = T(!1), [m, g] = T(null), p = B(() => new ue({\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: i,\n    setupData: a,\n    isLoading: l,\n    error: m,\n    getStatus: N(async () => {\n      u(!0), g(null);\n      try {\n        const f = await p.get(\"/mfa/status\");\n        return n(f), f;\n      } catch (f) {\n        const v = V(f, o.auth.loadTotpStatusFailed);\n        throw g(v), v;\n      } finally {\n        u(!1);\n      }\n    }, [p, o.auth.loadTotpStatusFailed]),\n    beginSetup: N(async () => {\n      u(!0), g(null), s(\"loading\");\n      try {\n        const f = await p.post(\"/mfa/setup\", {});\n        return d(f), s(\"setup\"), f;\n      } catch (f) {\n        const v = V(f, o.auth.startTotpSetupFailed);\n        throw g(v), s(\"error\"), v;\n      } finally {\n        u(!1);\n      }\n    }, [p, o.auth.startTotpSetupFailed]),\n    enableTotp: N(async (f) => {\n      if (!/^\\d{6}$/.test(f)) {\n        const v = {\n          code: \"VALIDATION_ERROR\",\n          message: o.auth.enterSixDigitCode\n        };\n        throw g(v), v;\n      }\n      u(!0), g(null), s(\"verifying\");\n      try {\n        await p.post(\"/mfa/enable\", { code: f }), s(\"success\");\n        try {\n          n(await p.get(\"/mfa/status\"));\n        } catch {\n          n({\n            enabled: !0,\n            recoveryCodesRemaining: 0\n          });\n        }\n      } catch (v) {\n        const x = V(v, o.auth.incorrectVerificationCode);\n        throw g(x), s(\"error\"), x;\n      } finally {\n        u(!1);\n      }\n    }, [\n      p,\n      o.auth.enterSixDigitCode,\n      o.auth.incorrectVerificationCode\n    ]),\n    disableTotp: N(async (f) => {\n      const v = typeof f == \"string\" ? { password: f } : f;\n      if (!Object.values(v).some((x) => typeof x == \"string\" && x.trim().length > 0)) {\n        const x = {\n          code: \"VALIDATION_ERROR\",\n          message: o.auth.enterPassword\n        };\n        throw g(x), x;\n      }\n      u(!0), g(null);\n      try {\n        await p.post(\"/mfa/disable\", v), n((x) => ({\n          enabled: !1,\n          recoveryCodesRemaining: 0,\n          ...x?.disableMethods ? { disableMethods: x.disableMethods } : {}\n        })), d(null), s(\"idle\");\n      } catch (x) {\n        const w = V(x, o.auth.disableTotpFailed);\n        throw g(w), w;\n      } finally {\n        u(!1);\n      }\n    }, [\n      p,\n      o.auth.enterPassword,\n      o.auth.disableTotpFailed\n    ]),\n    regenerateBackupCodes: N(async (f) => {\n      if (!/^\\d{6}$/.test(f)) {\n        const v = {\n          code: \"VALIDATION_ERROR\",\n          message: o.auth.enterSixDigitCode\n        };\n        throw g(v), v;\n      }\n      u(!0), g(null);\n      try {\n        return await p.post(\"/mfa/recovery-codes/regenerate\", { code: f });\n      } catch (v) {\n        const x = V(v, o.auth.regenerateCodesFailed);\n        throw g(x), x;\n      } finally {\n        u(!1);\n      }\n    }, [\n      p,\n      o.auth.enterSixDigitCode,\n      o.auth.regenerateCodesFailed\n    ]),\n    clearError: N(() => g(null), []),\n    reset: N(() => {\n      g(null), d(null), s(\"idle\"), u(!1);\n    }, [])\n  };\n}\nvar Ab = h((() => {\n  ie(), me(), Q();\n})), iA = /* @__PURE__ */ ne(((e, r) => {\n  r.exports = function() {\n    return typeof Promise == \"function\" && Promise.prototype && Promise.prototype.then;\n  };\n})), jr = /* @__PURE__ */ ne(((e) => {\n  var r, o = [\n    0,\n    26,\n    44,\n    70,\n    100,\n    134,\n    172,\n    196,\n    242,\n    292,\n    346,\n    404,\n    466,\n    532,\n    581,\n    655,\n    733,\n    815,\n    901,\n    991,\n    1085,\n    1156,\n    1258,\n    1364,\n    1474,\n    1588,\n    1706,\n    1828,\n    1921,\n    2051,\n    2185,\n    2323,\n    2465,\n    2611,\n    2761,\n    2876,\n    3034,\n    3196,\n    3362,\n    3532,\n    3706\n  ];\n  e.getSymbolSize = function(n) {\n    if (!n) throw new Error('\"version\" cannot be null or undefined');\n    if (n < 1 || n > 40) throw new Error('\"version\" should be in range from 1 to 40');\n    return n * 4 + 17;\n  }, e.getSymbolTotalCodewords = function(n) {\n    return o[n];\n  }, e.getBCHDigit = function(t) {\n    let n = 0;\n    for (; t !== 0; )\n      n++, t >>>= 1;\n    return n;\n  }, e.setToSJISFunction = function(n) {\n    if (typeof n != \"function\") throw new Error('\"toSJISFunc\" is not a valid function.');\n    r = n;\n  }, e.isKanjiModeEnabled = function() {\n    return typeof r < \"u\";\n  }, e.toSJIS = function(n) {\n    return r(n);\n  };\n})), gc = /* @__PURE__ */ ne(((e) => {\n  e.L = { bit: 1 }, e.M = { bit: 0 }, e.Q = { bit: 3 }, e.H = { bit: 2 };\n  function r(o) {\n    if (typeof o != \"string\") throw new Error(\"Param is not a string\");\n    switch (o.toLowerCase()) {\n      case \"l\":\n      case \"low\":\n        return e.L;\n      case \"m\":\n      case \"medium\":\n        return e.M;\n      case \"q\":\n      case \"quartile\":\n        return e.Q;\n      case \"h\":\n      case \"high\":\n        return e.H;\n      default:\n        throw new Error(\"Unknown EC Level: \" + o);\n    }\n  }\n  e.isValid = function(t) {\n    return t && typeof t.bit < \"u\" && t.bit >= 0 && t.bit < 4;\n  }, e.from = function(t, n) {\n    if (e.isValid(t)) return t;\n    try {\n      return r(t);\n    } catch {\n      return n;\n    }\n  };\n})), sA = /* @__PURE__ */ ne(((e, r) => {\n  function o() {\n    this.buffer = [], this.length = 0;\n  }\n  o.prototype = {\n    get: function(t) {\n      const n = Math.floor(t / 8);\n      return (this.buffer[n] >>> 7 - t % 8 & 1) === 1;\n    },\n    put: function(t, n) {\n      for (let i = 0; i < n; i++) this.putBit((t >>> n - i - 1 & 1) === 1);\n    },\n    getLengthInBits: function() {\n      return this.length;\n    },\n    putBit: function(t) {\n      const n = Math.floor(this.length / 8);\n      this.buffer.length <= n && this.buffer.push(0), t && (this.buffer[n] |= 128 >>> this.length % 8), this.length++;\n    }\n  }, r.exports = o;\n})), aA = /* @__PURE__ */ ne(((e, r) => {\n  function o(t) {\n    if (!t || t < 1) throw new Error(\"BitMatrix size must be defined and greater than 0\");\n    this.size = t, this.data = new Uint8Array(t * t), this.reservedBit = new Uint8Array(t * t);\n  }\n  o.prototype.set = function(t, n, i, s) {\n    const a = t * this.size + n;\n    this.data[a] = i, s && (this.reservedBit[a] = !0);\n  }, o.prototype.get = function(t, n) {\n    return this.data[t * this.size + n];\n  }, o.prototype.xor = function(t, n, i) {\n    this.data[t * this.size + n] ^= i;\n  }, o.prototype.isReserved = function(t, n) {\n    return this.reservedBit[t * this.size + n];\n  }, r.exports = o;\n})), dA = /* @__PURE__ */ ne(((e) => {\n  var r = jr().getSymbolSize;\n  e.getRowColCoords = function(t) {\n    if (t === 1) return [];\n    const n = Math.floor(t / 7) + 2, i = r(t), s = i === 145 ? 26 : Math.ceil((i - 13) / (2 * n - 2)) * 2, a = [i - 7];\n    for (let d = 1; d < n - 1; d++) a[d] = a[d - 1] - s;\n    return a.push(6), a.reverse();\n  }, e.getPositions = function(t) {\n    const n = [], i = e.getRowColCoords(t), s = i.length;\n    for (let a = 0; a < s; a++) for (let d = 0; d < s; d++)\n      a === 0 && d === 0 || a === 0 && d === s - 1 || a === s - 1 && d === 0 || n.push([i[a], i[d]]);\n    return n;\n  };\n})), cA = /* @__PURE__ */ ne(((e) => {\n  var r = jr().getSymbolSize, o = 7;\n  e.getPositions = function(n) {\n    const i = r(n);\n    return [\n      [0, 0],\n      [i - o, 0],\n      [0, i - o]\n    ];\n  };\n})), lA = /* @__PURE__ */ ne(((e) => {\n  e.Patterns = {\n    PATTERN000: 0,\n    PATTERN001: 1,\n    PATTERN010: 2,\n    PATTERN011: 3,\n    PATTERN100: 4,\n    PATTERN101: 5,\n    PATTERN110: 6,\n    PATTERN111: 7\n  };\n  var r = {\n    N1: 3,\n    N2: 3,\n    N3: 40,\n    N4: 10\n  };\n  e.isValid = function(n) {\n    return n != null && n !== \"\" && !isNaN(n) && n >= 0 && n <= 7;\n  }, e.from = function(n) {\n    return e.isValid(n) ? parseInt(n, 10) : void 0;\n  }, e.getPenaltyN1 = function(n) {\n    const i = n.size;\n    let s = 0, a = 0, d = 0, l = null, u = null;\n    for (let m = 0; m < i; m++) {\n      a = d = 0, l = u = null;\n      for (let g = 0; g < i; g++) {\n        let p = n.get(m, g);\n        p === l ? a++ : (a >= 5 && (s += r.N1 + (a - 5)), l = p, a = 1), p = n.get(g, m), p === u ? d++ : (d >= 5 && (s += r.N1 + (d - 5)), u = p, d = 1);\n      }\n      a >= 5 && (s += r.N1 + (a - 5)), d >= 5 && (s += r.N1 + (d - 5));\n    }\n    return s;\n  }, e.getPenaltyN2 = function(n) {\n    const i = n.size;\n    let s = 0;\n    for (let a = 0; a < i - 1; a++) for (let d = 0; d < i - 1; d++) {\n      const l = n.get(a, d) + n.get(a, d + 1) + n.get(a + 1, d) + n.get(a + 1, d + 1);\n      (l === 4 || l === 0) && s++;\n    }\n    return s * r.N2;\n  }, e.getPenaltyN3 = function(n) {\n    const i = n.size;\n    let s = 0, a = 0, d = 0;\n    for (let l = 0; l < i; l++) {\n      a = d = 0;\n      for (let u = 0; u < i; u++)\n        a = a << 1 & 2047 | n.get(l, u), u >= 10 && (a === 1488 || a === 93) && s++, d = d << 1 & 2047 | n.get(u, l), u >= 10 && (d === 1488 || d === 93) && s++;\n    }\n    return s * r.N3;\n  }, e.getPenaltyN4 = function(n) {\n    let i = 0;\n    const s = n.data.length;\n    for (let a = 0; a < s; a++) i += n.data[a];\n    return Math.abs(Math.ceil(i * 100 / s / 5) - 10) * r.N4;\n  };\n  function o(t, n, i) {\n    switch (t) {\n      case e.Patterns.PATTERN000:\n        return (n + i) % 2 === 0;\n      case e.Patterns.PATTERN001:\n        return n % 2 === 0;\n      case e.Patterns.PATTERN010:\n        return i % 3 === 0;\n      case e.Patterns.PATTERN011:\n        return (n + i) % 3 === 0;\n      case e.Patterns.PATTERN100:\n        return (Math.floor(n / 2) + Math.floor(i / 3)) % 2 === 0;\n      case e.Patterns.PATTERN101:\n        return n * i % 2 + n * i % 3 === 0;\n      case e.Patterns.PATTERN110:\n        return (n * i % 2 + n * i % 3) % 2 === 0;\n      case e.Patterns.PATTERN111:\n        return (n * i % 3 + (n + i) % 2) % 2 === 0;\n      default:\n        throw new Error(\"bad maskPattern:\" + t);\n    }\n  }\n  e.applyMask = function(n, i) {\n    const s = i.size;\n    for (let a = 0; a < s; a++) for (let d = 0; d < s; d++)\n      i.isReserved(d, a) || i.xor(d, a, o(n, d, a));\n  }, e.getBestMask = function(n, i) {\n    const s = Object.keys(e.Patterns).length;\n    let a = 0, d = 1 / 0;\n    for (let l = 0; l < s; l++) {\n      i(l), e.applyMask(l, n);\n      const u = e.getPenaltyN1(n) + e.getPenaltyN2(n) + e.getPenaltyN3(n) + e.getPenaltyN4(n);\n      e.applyMask(l, n), u < d && (d = u, a = l);\n    }\n    return a;\n  };\n})), Cb = /* @__PURE__ */ ne(((e) => {\n  var r = gc(), o = [\n    1,\n    1,\n    1,\n    1,\n    1,\n    1,\n    1,\n    1,\n    1,\n    1,\n    2,\n    2,\n    1,\n    2,\n    2,\n    4,\n    1,\n    2,\n    4,\n    4,\n    2,\n    4,\n    4,\n    4,\n    2,\n    4,\n    6,\n    5,\n    2,\n    4,\n    6,\n    6,\n    2,\n    5,\n    8,\n    8,\n    4,\n    5,\n    8,\n    8,\n    4,\n    5,\n    8,\n    11,\n    4,\n    8,\n    10,\n    11,\n    4,\n    9,\n    12,\n    16,\n    4,\n    9,\n    16,\n    16,\n    6,\n    10,\n    12,\n    18,\n    6,\n    10,\n    17,\n    16,\n    6,\n    11,\n    16,\n    19,\n    6,\n    13,\n    18,\n    21,\n    7,\n    14,\n    21,\n    25,\n    8,\n    16,\n    20,\n    25,\n    8,\n    17,\n    23,\n    25,\n    9,\n    17,\n    23,\n    34,\n    9,\n    18,\n    25,\n    30,\n    10,\n    20,\n    27,\n    32,\n    12,\n    21,\n    29,\n    35,\n    12,\n    23,\n    34,\n    37,\n    12,\n    25,\n    34,\n    40,\n    13,\n    26,\n    35,\n    42,\n    14,\n    28,\n    38,\n    45,\n    15,\n    29,\n    40,\n    48,\n    16,\n    31,\n    43,\n    51,\n    17,\n    33,\n    45,\n    54,\n    18,\n    35,\n    48,\n    57,\n    19,\n    37,\n    51,\n    60,\n    19,\n    38,\n    53,\n    63,\n    20,\n    40,\n    56,\n    66,\n    21,\n    43,\n    59,\n    70,\n    22,\n    45,\n    62,\n    74,\n    24,\n    47,\n    65,\n    77,\n    25,\n    49,\n    68,\n    81\n  ], t = [\n    7,\n    10,\n    13,\n    17,\n    10,\n    16,\n    22,\n    28,\n    15,\n    26,\n    36,\n    44,\n    20,\n    36,\n    52,\n    64,\n    26,\n    48,\n    72,\n    88,\n    36,\n    64,\n    96,\n    112,\n    40,\n    72,\n    108,\n    130,\n    48,\n    88,\n    132,\n    156,\n    60,\n    110,\n    160,\n    192,\n    72,\n    130,\n    192,\n    224,\n    80,\n    150,\n    224,\n    264,\n    96,\n    176,\n    260,\n    308,\n    104,\n    198,\n    288,\n    352,\n    120,\n    216,\n    320,\n    384,\n    132,\n    240,\n    360,\n    432,\n    144,\n    280,\n    408,\n    480,\n    168,\n    308,\n    448,\n    532,\n    180,\n    338,\n    504,\n    588,\n    196,\n    364,\n    546,\n    650,\n    224,\n    416,\n    600,\n    700,\n    224,\n    442,\n    644,\n    750,\n    252,\n    476,\n    690,\n    816,\n    270,\n    504,\n    750,\n    900,\n    300,\n    560,\n    810,\n    960,\n    312,\n    588,\n    870,\n    1050,\n    336,\n    644,\n    952,\n    1110,\n    360,\n    700,\n    1020,\n    1200,\n    390,\n    728,\n    1050,\n    1260,\n    420,\n    784,\n    1140,\n    1350,\n    450,\n    812,\n    1200,\n    1440,\n    480,\n    868,\n    1290,\n    1530,\n    510,\n    924,\n    1350,\n    1620,\n    540,\n    980,\n    1440,\n    1710,\n    570,\n    1036,\n    1530,\n    1800,\n    570,\n    1064,\n    1590,\n    1890,\n    600,\n    1120,\n    1680,\n    1980,\n    630,\n    1204,\n    1770,\n    2100,\n    660,\n    1260,\n    1860,\n    2220,\n    720,\n    1316,\n    1950,\n    2310,\n    750,\n    1372,\n    2040,\n    2430\n  ];\n  e.getBlocksCount = function(i, s) {\n    switch (s) {\n      case r.L:\n        return o[(i - 1) * 4 + 0];\n      case r.M:\n        return o[(i - 1) * 4 + 1];\n      case r.Q:\n        return o[(i - 1) * 4 + 2];\n      case r.H:\n        return o[(i - 1) * 4 + 3];\n      default:\n        return;\n    }\n  }, e.getTotalCodewordsCount = function(i, s) {\n    switch (s) {\n      case r.L:\n        return t[(i - 1) * 4 + 0];\n      case r.M:\n        return t[(i - 1) * 4 + 1];\n      case r.Q:\n        return t[(i - 1) * 4 + 2];\n      case r.H:\n        return t[(i - 1) * 4 + 3];\n      default:\n        return;\n    }\n  };\n})), uA = /* @__PURE__ */ ne(((e) => {\n  var r = new Uint8Array(512), o = new Uint8Array(256);\n  (function() {\n    let n = 1;\n    for (let i = 0; i < 255; i++)\n      r[i] = n, o[n] = i, n <<= 1, n & 256 && (n ^= 285);\n    for (let i = 255; i < 512; i++) r[i] = r[i - 255];\n  })(), e.log = function(n) {\n    if (n < 1) throw new Error(\"log(\" + n + \")\");\n    return o[n];\n  }, e.exp = function(n) {\n    return r[n];\n  }, e.mul = function(n, i) {\n    return n === 0 || i === 0 ? 0 : r[o[n] + o[i]];\n  };\n})), mA = /* @__PURE__ */ ne(((e) => {\n  var r = uA();\n  e.mul = function(t, n) {\n    const i = new Uint8Array(t.length + n.length - 1);\n    for (let s = 0; s < t.length; s++) for (let a = 0; a < n.length; a++) i[s + a] ^= r.mul(t[s], n[a]);\n    return i;\n  }, e.mod = function(t, n) {\n    let i = new Uint8Array(t);\n    for (; i.length - n.length >= 0; ) {\n      const s = i[0];\n      for (let d = 0; d < n.length; d++) i[d] ^= r.mul(n[d], s);\n      let a = 0;\n      for (; a < i.length && i[a] === 0; ) a++;\n      i = i.slice(a);\n    }\n    return i;\n  }, e.generateECPolynomial = function(t) {\n    let n = new Uint8Array([1]);\n    for (let i = 0; i < t; i++) n = e.mul(n, new Uint8Array([1, r.exp(i)]));\n    return n;\n  };\n})), gA = /* @__PURE__ */ ne(((e, r) => {\n  var o = mA();\n  function t(n) {\n    this.genPoly = void 0, this.degree = n, this.degree && this.initialize(this.degree);\n  }\n  t.prototype.initialize = function(i) {\n    this.degree = i, this.genPoly = o.generateECPolynomial(this.degree);\n  }, t.prototype.encode = function(i) {\n    if (!this.genPoly) throw new Error(\"Encoder not initialized\");\n    const s = new Uint8Array(i.length + this.degree);\n    s.set(i);\n    const a = o.mod(s, this.genPoly), d = this.degree - a.length;\n    if (d > 0) {\n      const l = new Uint8Array(this.degree);\n      return l.set(a, d), l;\n    }\n    return a;\n  }, r.exports = t;\n})), Sb = /* @__PURE__ */ ne(((e) => {\n  e.isValid = function(o) {\n    return !isNaN(o) && o >= 1 && o <= 40;\n  };\n})), Eb = /* @__PURE__ */ ne(((e) => {\n  var r = \"[0-9]+\", o = \"[A-Z $%*+\\\\-./:]+\", t = \"(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+\";\n  t = t.replace(/u/g, \"\\\\u\");\n  var n = \"(?:(?![A-Z0-9 $%*+\\\\-./:]|\" + t + `)(?:.|[\\r\n]))+`;\n  e.KANJI = new RegExp(t, \"g\"), e.BYTE_KANJI = /* @__PURE__ */ new RegExp(\"[^A-Z0-9 $%*+\\\\-./:]+\", \"g\"), e.BYTE = new RegExp(n, \"g\"), e.NUMERIC = new RegExp(r, \"g\"), e.ALPHANUMERIC = new RegExp(o, \"g\");\n  var i = new RegExp(\"^\" + t + \"$\"), s = /* @__PURE__ */ new RegExp(\"^[0-9]+$\"), a = /* @__PURE__ */ new RegExp(\"^[A-Z0-9 $%*+\\\\-./:]+$\");\n  e.testKanji = function(l) {\n    return i.test(l);\n  }, e.testNumeric = function(l) {\n    return s.test(l);\n  }, e.testAlphanumeric = function(l) {\n    return a.test(l);\n  };\n})), $r = /* @__PURE__ */ ne(((e) => {\n  var r = Sb(), o = Eb();\n  e.NUMERIC = {\n    id: \"Numeric\",\n    bit: 1,\n    ccBits: [\n      10,\n      12,\n      14\n    ]\n  }, e.ALPHANUMERIC = {\n    id: \"Alphanumeric\",\n    bit: 2,\n    ccBits: [\n      9,\n      11,\n      13\n    ]\n  }, e.BYTE = {\n    id: \"Byte\",\n    bit: 4,\n    ccBits: [\n      8,\n      16,\n      16\n    ]\n  }, e.KANJI = {\n    id: \"Kanji\",\n    bit: 8,\n    ccBits: [\n      8,\n      10,\n      12\n    ]\n  }, e.MIXED = { bit: -1 }, e.getCharCountIndicator = function(i, s) {\n    if (!i.ccBits) throw new Error(\"Invalid mode: \" + i);\n    if (!r.isValid(s)) throw new Error(\"Invalid version: \" + s);\n    return s >= 1 && s < 10 ? i.ccBits[0] : s < 27 ? i.ccBits[1] : i.ccBits[2];\n  }, e.getBestModeForData = function(i) {\n    return o.testNumeric(i) ? e.NUMERIC : o.testAlphanumeric(i) ? e.ALPHANUMERIC : o.testKanji(i) ? e.KANJI : e.BYTE;\n  }, e.toString = function(i) {\n    if (i && i.id) return i.id;\n    throw new Error(\"Invalid mode\");\n  }, e.isValid = function(i) {\n    return i && i.bit && i.ccBits;\n  };\n  function t(n) {\n    if (typeof n != \"string\") throw new Error(\"Param is not a string\");\n    switch (n.toLowerCase()) {\n      case \"numeric\":\n        return e.NUMERIC;\n      case \"alphanumeric\":\n        return e.ALPHANUMERIC;\n      case \"kanji\":\n        return e.KANJI;\n      case \"byte\":\n        return e.BYTE;\n      default:\n        throw new Error(\"Unknown mode: \" + n);\n    }\n  }\n  e.from = function(i, s) {\n    if (e.isValid(i)) return i;\n    try {\n      return t(i);\n    } catch {\n      return s;\n    }\n  };\n})), hA = /* @__PURE__ */ ne(((e) => {\n  var r = jr(), o = Cb(), t = gc(), n = $r(), i = Sb(), s = 7973, a = r.getBCHDigit(s);\n  function d(g, p, f) {\n    for (let v = 1; v <= 40; v++) if (p <= e.getCapacity(v, f, g)) return v;\n  }\n  function l(g, p) {\n    return n.getCharCountIndicator(g, p) + 4;\n  }\n  function u(g, p) {\n    let f = 0;\n    return g.forEach(function(v) {\n      const x = l(v.mode, p);\n      f += x + v.getBitsLength();\n    }), f;\n  }\n  function m(g, p) {\n    for (let f = 1; f <= 40; f++) if (u(g, f) <= e.getCapacity(f, p, n.MIXED)) return f;\n  }\n  e.from = function(p, f) {\n    return i.isValid(p) ? parseInt(p, 10) : f;\n  }, e.getCapacity = function(p, f, v) {\n    if (!i.isValid(p)) throw new Error(\"Invalid QR Code version\");\n    typeof v > \"u\" && (v = n.BYTE);\n    const x = (r.getSymbolTotalCodewords(p) - o.getTotalCodewordsCount(p, f)) * 8;\n    if (v === n.MIXED) return x;\n    const w = x - l(v, p);\n    switch (v) {\n      case n.NUMERIC:\n        return Math.floor(w / 10 * 3);\n      case n.ALPHANUMERIC:\n        return Math.floor(w / 11 * 2);\n      case n.KANJI:\n        return Math.floor(w / 13);\n      case n.BYTE:\n      default:\n        return Math.floor(w / 8);\n    }\n  }, e.getBestVersionForData = function(p, f) {\n    let v;\n    const x = t.from(f, t.M);\n    if (Array.isArray(p)) {\n      if (p.length > 1) return m(p, x);\n      if (p.length === 0) return 1;\n      v = p[0];\n    } else v = p;\n    return d(v.mode, v.getLength(), x);\n  }, e.getEncodedBits = function(p) {\n    if (!i.isValid(p) || p < 7) throw new Error(\"Invalid QR Code version\");\n    let f = p << 12;\n    for (; r.getBCHDigit(f) - a >= 0; ) f ^= s << r.getBCHDigit(f) - a;\n    return p << 12 | f;\n  };\n})), pA = /* @__PURE__ */ ne(((e) => {\n  var r = jr(), o = 1335, t = 21522, n = r.getBCHDigit(o);\n  e.getEncodedBits = function(s, a) {\n    const d = s.bit << 3 | a;\n    let l = d << 10;\n    for (; r.getBCHDigit(l) - n >= 0; ) l ^= o << r.getBCHDigit(l) - n;\n    return (d << 10 | l) ^ t;\n  };\n})), fA = /* @__PURE__ */ ne(((e, r) => {\n  var o = $r();\n  function t(n) {\n    this.mode = o.NUMERIC, this.data = n.toString();\n  }\n  t.getBitsLength = function(i) {\n    return 10 * Math.floor(i / 3) + (i % 3 ? i % 3 * 3 + 1 : 0);\n  }, t.prototype.getLength = function() {\n    return this.data.length;\n  }, t.prototype.getBitsLength = function() {\n    return t.getBitsLength(this.data.length);\n  }, t.prototype.write = function(i) {\n    let s, a, d;\n    for (s = 0; s + 3 <= this.data.length; s += 3)\n      a = this.data.substr(s, 3), d = parseInt(a, 10), i.put(d, 10);\n    const l = this.data.length - s;\n    l > 0 && (a = this.data.substr(s), d = parseInt(a, 10), i.put(d, l * 3 + 1));\n  }, r.exports = t;\n})), vA = /* @__PURE__ */ ne(((e, r) => {\n  var o = $r(), t = [\n    \"0\",\n    \"1\",\n    \"2\",\n    \"3\",\n    \"4\",\n    \"5\",\n    \"6\",\n    \"7\",\n    \"8\",\n    \"9\",\n    \"A\",\n    \"B\",\n    \"C\",\n    \"D\",\n    \"E\",\n    \"F\",\n    \"G\",\n    \"H\",\n    \"I\",\n    \"J\",\n    \"K\",\n    \"L\",\n    \"M\",\n    \"N\",\n    \"O\",\n    \"P\",\n    \"Q\",\n    \"R\",\n    \"S\",\n    \"T\",\n    \"U\",\n    \"V\",\n    \"W\",\n    \"X\",\n    \"Y\",\n    \"Z\",\n    \" \",\n    \"$\",\n    \"%\",\n    \"*\",\n    \"+\",\n    \"-\",\n    \".\",\n    \"/\",\n    \":\"\n  ];\n  function n(i) {\n    this.mode = o.ALPHANUMERIC, this.data = i;\n  }\n  n.getBitsLength = function(s) {\n    return 11 * Math.floor(s / 2) + 6 * (s % 2);\n  }, n.prototype.getLength = function() {\n    return this.data.length;\n  }, n.prototype.getBitsLength = function() {\n    return n.getBitsLength(this.data.length);\n  }, n.prototype.write = function(s) {\n    let a;\n    for (a = 0; a + 2 <= this.data.length; a += 2) {\n      let d = t.indexOf(this.data[a]) * 45;\n      d += t.indexOf(this.data[a + 1]), s.put(d, 11);\n    }\n    this.data.length % 2 && s.put(t.indexOf(this.data[a]), 6);\n  }, r.exports = n;\n})), bA = /* @__PURE__ */ ne(((e, r) => {\n  var o = $r();\n  function t(n) {\n    this.mode = o.BYTE, typeof n == \"string\" ? this.data = new TextEncoder().encode(n) : this.data = new Uint8Array(n);\n  }\n  t.getBitsLength = function(i) {\n    return i * 8;\n  }, t.prototype.getLength = function() {\n    return this.data.length;\n  }, t.prototype.getBitsLength = function() {\n    return t.getBitsLength(this.data.length);\n  }, t.prototype.write = function(n) {\n    for (let i = 0, s = this.data.length; i < s; i++) n.put(this.data[i], 8);\n  }, r.exports = t;\n})), yA = /* @__PURE__ */ ne(((e, r) => {\n  var o = $r(), t = jr();\n  function n(i) {\n    this.mode = o.KANJI, this.data = i;\n  }\n  n.getBitsLength = function(s) {\n    return s * 13;\n  }, n.prototype.getLength = function() {\n    return this.data.length;\n  }, n.prototype.getBitsLength = function() {\n    return n.getBitsLength(this.data.length);\n  }, n.prototype.write = function(i) {\n    let s;\n    for (s = 0; s < this.data.length; s++) {\n      let a = t.toSJIS(this.data[s]);\n      if (a >= 33088 && a <= 40956) a -= 33088;\n      else if (a >= 57408 && a <= 60351) a -= 49472;\n      else throw new Error(\"Invalid SJIS character: \" + this.data[s] + `\nMake sure your charset is UTF-8`);\n      a = (a >>> 8 & 255) * 192 + (a & 255), i.put(a, 13);\n    }\n  }, r.exports = n;\n})), wA = /* @__PURE__ */ ne(((e, r) => {\n  var o = {\n    single_source_shortest_paths: function(t, n, i) {\n      var s = {}, a = {};\n      a[n] = 0;\n      var d = o.PriorityQueue.make();\n      d.push(n, 0);\n      for (var l, u, m, g, p, f, v, x, w; !d.empty(); ) {\n        l = d.pop(), u = l.value, g = l.cost, p = t[u] || {};\n        for (m in p) p.hasOwnProperty(m) && (f = p[m], v = g + f, x = a[m], w = typeof a[m] > \"u\", (w || x > v) && (a[m] = v, d.push(m, v), s[m] = u));\n      }\n      if (typeof i < \"u\" && typeof a[i] > \"u\") {\n        var b = [\n          \"Could not find a path from \",\n          n,\n          \" to \",\n          i,\n          \".\"\n        ].join(\"\");\n        throw new Error(b);\n      }\n      return s;\n    },\n    extract_shortest_path_from_predecessor_list: function(t, n) {\n      for (var i = [], s = n; s; )\n        i.push(s), t[s], s = t[s];\n      return i.reverse(), i;\n    },\n    find_path: function(t, n, i) {\n      var s = o.single_source_shortest_paths(t, n, i);\n      return o.extract_shortest_path_from_predecessor_list(s, i);\n    },\n    PriorityQueue: {\n      make: function(t) {\n        var n = o.PriorityQueue, i = {}, s;\n        t = t || {};\n        for (s in n) n.hasOwnProperty(s) && (i[s] = n[s]);\n        return i.queue = [], i.sorter = t.sorter || n.default_sorter, i;\n      },\n      default_sorter: function(t, n) {\n        return t.cost - n.cost;\n      },\n      push: function(t, n) {\n        var i = {\n          value: t,\n          cost: n\n        };\n        this.queue.push(i), this.queue.sort(this.sorter);\n      },\n      pop: function() {\n        return this.queue.shift();\n      },\n      empty: function() {\n        return this.queue.length === 0;\n      }\n    }\n  };\n  typeof r < \"u\" && (r.exports = o);\n})), kA = /* @__PURE__ */ ne(((e) => {\n  var r = $r(), o = fA(), t = vA(), n = bA(), i = yA(), s = Eb(), a = jr(), d = wA();\n  function l(w) {\n    return unescape(encodeURIComponent(w)).length;\n  }\n  function u(w, b, k) {\n    const y = [];\n    let C;\n    for (; (C = w.exec(k)) !== null; ) y.push({\n      data: C[0],\n      index: C.index,\n      mode: b,\n      length: C[0].length\n    });\n    return y;\n  }\n  function m(w) {\n    const b = u(s.NUMERIC, r.NUMERIC, w), k = u(s.ALPHANUMERIC, r.ALPHANUMERIC, w);\n    let y, C;\n    return a.isKanjiModeEnabled() ? (y = u(s.BYTE, r.BYTE, w), C = u(s.KANJI, r.KANJI, w)) : (y = u(s.BYTE_KANJI, r.BYTE, w), C = []), b.concat(k, y, C).sort(function(P, S) {\n      return P.index - S.index;\n    }).map(function(P) {\n      return {\n        data: P.data,\n        mode: P.mode,\n        length: P.length\n      };\n    });\n  }\n  function g(w, b) {\n    switch (b) {\n      case r.NUMERIC:\n        return o.getBitsLength(w);\n      case r.ALPHANUMERIC:\n        return t.getBitsLength(w);\n      case r.KANJI:\n        return i.getBitsLength(w);\n      case r.BYTE:\n        return n.getBitsLength(w);\n    }\n  }\n  function p(w) {\n    return w.reduce(function(b, k) {\n      const y = b.length - 1 >= 0 ? b[b.length - 1] : null;\n      return y && y.mode === k.mode ? (b[b.length - 1].data += k.data, b) : (b.push(k), b);\n    }, []);\n  }\n  function f(w) {\n    const b = [];\n    for (let k = 0; k < w.length; k++) {\n      const y = w[k];\n      switch (y.mode) {\n        case r.NUMERIC:\n          b.push([\n            y,\n            {\n              data: y.data,\n              mode: r.ALPHANUMERIC,\n              length: y.length\n            },\n            {\n              data: y.data,\n              mode: r.BYTE,\n              length: y.length\n            }\n          ]);\n          break;\n        case r.ALPHANUMERIC:\n          b.push([y, {\n            data: y.data,\n            mode: r.BYTE,\n            length: y.length\n          }]);\n          break;\n        case r.KANJI:\n          b.push([y, {\n            data: y.data,\n            mode: r.BYTE,\n            length: l(y.data)\n          }]);\n          break;\n        case r.BYTE:\n          b.push([{\n            data: y.data,\n            mode: r.BYTE,\n            length: l(y.data)\n          }]);\n      }\n    }\n    return b;\n  }\n  function v(w, b) {\n    const k = {}, y = { start: {} };\n    let C = [\"start\"];\n    for (let P = 0; P < w.length; P++) {\n      const S = w[P], R = [];\n      for (let A = 0; A < S.length; A++) {\n        const E = S[A], I = \"\" + P + A;\n        R.push(I), k[I] = {\n          node: E,\n          lastCount: 0\n        }, y[I] = {};\n        for (let L = 0; L < C.length; L++) {\n          const M = C[L];\n          k[M] && k[M].node.mode === E.mode ? (y[M][I] = g(k[M].lastCount + E.length, E.mode) - g(k[M].lastCount, E.mode), k[M].lastCount += E.length) : (k[M] && (k[M].lastCount = E.length), y[M][I] = g(E.length, E.mode) + 4 + r.getCharCountIndicator(E.mode, b));\n        }\n      }\n      C = R;\n    }\n    for (let P = 0; P < C.length; P++) y[C[P]].end = 0;\n    return {\n      map: y,\n      table: k\n    };\n  }\n  function x(w, b) {\n    let k;\n    const y = r.getBestModeForData(w);\n    if (k = r.from(b, y), k !== r.BYTE && k.bit < y.bit) throw new Error('\"' + w + '\" cannot be encoded with mode ' + r.toString(k) + `.\n Suggested mode is: ` + r.toString(y));\n    switch (k === r.KANJI && !a.isKanjiModeEnabled() && (k = r.BYTE), k) {\n      case r.NUMERIC:\n        return new o(w);\n      case r.ALPHANUMERIC:\n        return new t(w);\n      case r.KANJI:\n        return new i(w);\n      case r.BYTE:\n        return new n(w);\n    }\n  }\n  e.fromArray = function(b) {\n    return b.reduce(function(k, y) {\n      return typeof y == \"string\" ? k.push(x(y, null)) : y.data && k.push(x(y.data, y.mode)), k;\n    }, []);\n  }, e.fromString = function(b, k) {\n    const y = v(f(m(b, a.isKanjiModeEnabled())), k), C = d.find_path(y.map, \"start\", \"end\"), P = [];\n    for (let S = 1; S < C.length - 1; S++) P.push(y.table[C[S]].node);\n    return e.fromArray(p(P));\n  }, e.rawSplit = function(b) {\n    return e.fromArray(m(b, a.isKanjiModeEnabled()));\n  };\n})), xA = /* @__PURE__ */ ne(((e) => {\n  var r = jr(), o = gc(), t = sA(), n = aA(), i = dA(), s = cA(), a = lA(), d = Cb(), l = gA(), u = hA(), m = pA(), g = $r(), p = kA();\n  function f(S, R) {\n    const A = S.size, E = s.getPositions(R);\n    for (let I = 0; I < E.length; I++) {\n      const L = E[I][0], M = E[I][1];\n      for (let D = -1; D <= 7; D++)\n        if (!(L + D <= -1 || A <= L + D))\n          for (let z = -1; z <= 7; z++)\n            M + z <= -1 || A <= M + z || (D >= 0 && D <= 6 && (z === 0 || z === 6) || z >= 0 && z <= 6 && (D === 0 || D === 6) || D >= 2 && D <= 4 && z >= 2 && z <= 4 ? S.set(L + D, M + z, !0, !0) : S.set(L + D, M + z, !1, !0));\n    }\n  }\n  function v(S) {\n    const R = S.size;\n    for (let A = 8; A < R - 8; A++) {\n      const E = A % 2 === 0;\n      S.set(A, 6, E, !0), S.set(6, A, E, !0);\n    }\n  }\n  function x(S, R) {\n    const A = i.getPositions(R);\n    for (let E = 0; E < A.length; E++) {\n      const I = A[E][0], L = A[E][1];\n      for (let M = -2; M <= 2; M++) for (let D = -2; D <= 2; D++) M === -2 || M === 2 || D === -2 || D === 2 || M === 0 && D === 0 ? S.set(I + M, L + D, !0, !0) : S.set(I + M, L + D, !1, !0);\n    }\n  }\n  function w(S, R) {\n    const A = S.size, E = u.getEncodedBits(R);\n    let I, L, M;\n    for (let D = 0; D < 18; D++)\n      I = Math.floor(D / 3), L = D % 3 + A - 8 - 3, M = (E >> D & 1) === 1, S.set(I, L, M, !0), S.set(L, I, M, !0);\n  }\n  function b(S, R, A) {\n    const E = S.size, I = m.getEncodedBits(R, A);\n    let L, M;\n    for (L = 0; L < 15; L++)\n      M = (I >> L & 1) === 1, L < 6 ? S.set(L, 8, M, !0) : L < 8 ? S.set(L + 1, 8, M, !0) : S.set(E - 15 + L, 8, M, !0), L < 8 ? S.set(8, E - L - 1, M, !0) : L < 9 ? S.set(8, 15 - L - 1 + 1, M, !0) : S.set(8, 15 - L - 1, M, !0);\n    S.set(E - 8, 8, 1, !0);\n  }\n  function k(S, R) {\n    const A = S.size;\n    let E = -1, I = A - 1, L = 7, M = 0;\n    for (let D = A - 1; D > 0; D -= 2)\n      for (D === 6 && D--; ; ) {\n        for (let z = 0; z < 2; z++) if (!S.isReserved(I, D - z)) {\n          let $ = !1;\n          M < R.length && ($ = (R[M] >>> L & 1) === 1), S.set(I, D - z, $), L--, L === -1 && (M++, L = 7);\n        }\n        if (I += E, I < 0 || A <= I) {\n          I -= E, E = -E;\n          break;\n        }\n      }\n  }\n  function y(S, R, A) {\n    const E = new t();\n    A.forEach(function(M) {\n      E.put(M.mode.bit, 4), E.put(M.getLength(), g.getCharCountIndicator(M.mode, S)), M.write(E);\n    });\n    const I = (r.getSymbolTotalCodewords(S) - d.getTotalCodewordsCount(S, R)) * 8;\n    for (E.getLengthInBits() + 4 <= I && E.put(0, 4); E.getLengthInBits() % 8 !== 0; ) E.putBit(0);\n    const L = (I - E.getLengthInBits()) / 8;\n    for (let M = 0; M < L; M++) E.put(M % 2 ? 17 : 236, 8);\n    return C(E, S, R);\n  }\n  function C(S, R, A) {\n    const E = r.getSymbolTotalCodewords(R), I = E - d.getTotalCodewordsCount(R, A), L = d.getBlocksCount(R, A), M = L - E % L, D = Math.floor(E / L), z = Math.floor(I / L), $ = z + 1, q = D - z, J = new l(q);\n    let G = 0;\n    const ge = new Array(L), ve = new Array(L);\n    let Ie = 0;\n    const _e = new Uint8Array(S.buffer);\n    for (let X = 0; X < L; X++) {\n      const be = X < M ? z : $;\n      ge[X] = _e.slice(G, G + be), ve[X] = J.encode(ge[X]), G += be, Ie = Math.max(Ie, be);\n    }\n    const ee = new Uint8Array(E);\n    let Se = 0, de, he;\n    for (de = 0; de < Ie; de++) for (he = 0; he < L; he++) de < ge[he].length && (ee[Se++] = ge[he][de]);\n    for (de = 0; de < q; de++) for (he = 0; he < L; he++) ee[Se++] = ve[he][de];\n    return ee;\n  }\n  function P(S, R, A, E) {\n    let I;\n    if (Array.isArray(S)) I = p.fromArray(S);\n    else if (typeof S == \"string\") {\n      let z = R;\n      if (!z) {\n        const $ = p.rawSplit(S);\n        z = u.getBestVersionForData($, A);\n      }\n      I = p.fromString(S, z || 40);\n    } else throw new Error(\"Invalid data\");\n    const L = u.getBestVersionForData(I, A);\n    if (!L) throw new Error(\"The amount of data is too big to be stored in a QR Code\");\n    if (!R) R = L;\n    else if (R < L) throw new Error(`\nThe chosen QR Code version cannot contain this amount of data.\nMinimum version required to store current data is: ` + L + `.\n`);\n    const M = y(R, A, I), D = new n(r.getSymbolSize(R));\n    return f(D, R), v(D), x(D, R), b(D, A, 0), R >= 7 && w(D, R), k(D, M), isNaN(E) && (E = a.getBestMask(D, b.bind(null, D, A))), a.applyMask(E, D), b(D, A, E), {\n      modules: D,\n      version: R,\n      errorCorrectionLevel: A,\n      maskPattern: E,\n      segments: I\n    };\n  }\n  e.create = function(R, A) {\n    if (typeof R > \"u\" || R === \"\") throw new Error(\"No input text\");\n    let E = o.M, I, L;\n    return typeof A < \"u\" && (E = o.from(A.errorCorrectionLevel, o.M), I = u.from(A.version), L = a.from(A.maskPattern), A.toSJISFunc && r.setToSJISFunction(A.toSJISFunc)), P(R, I, E, L);\n  };\n})), Tb = /* @__PURE__ */ ne(((e) => {\n  function r(o) {\n    if (typeof o == \"number\" && (o = o.toString()), typeof o != \"string\") throw new Error(\"Color should be defined as hex string\");\n    let t = o.slice().replace(\"#\", \"\").split(\"\");\n    if (t.length < 3 || t.length === 5 || t.length > 8) throw new Error(\"Invalid hex color: \" + o);\n    (t.length === 3 || t.length === 4) && (t = Array.prototype.concat.apply([], t.map(function(i) {\n      return [i, i];\n    }))), t.length === 6 && t.push(\"F\", \"F\");\n    const n = parseInt(t.join(\"\"), 16);\n    return {\n      r: n >> 24 & 255,\n      g: n >> 16 & 255,\n      b: n >> 8 & 255,\n      a: n & 255,\n      hex: \"#\" + t.slice(0, 6).join(\"\")\n    };\n  }\n  e.getOptions = function(t) {\n    t || (t = {}), t.color || (t.color = {});\n    const n = typeof t.margin > \"u\" || t.margin === null || t.margin < 0 ? 4 : t.margin, i = t.width && t.width >= 21 ? t.width : void 0, s = t.scale || 4;\n    return {\n      width: i,\n      scale: i ? 4 : s,\n      margin: n,\n      color: {\n        dark: r(t.color.dark || \"#000000ff\"),\n        light: r(t.color.light || \"#ffffffff\")\n      },\n      type: t.type,\n      rendererOpts: t.rendererOpts || {}\n    };\n  }, e.getScale = function(t, n) {\n    return n.width && n.width >= t + n.margin * 2 ? n.width / (t + n.margin * 2) : n.scale;\n  }, e.getImageWidth = function(t, n) {\n    const i = e.getScale(t, n);\n    return Math.floor((t + n.margin * 2) * i);\n  }, e.qrToImageData = function(t, n, i) {\n    const s = n.modules.size, a = n.modules.data, d = e.getScale(s, i), l = Math.floor((s + i.margin * 2) * d), u = i.margin * d, m = [i.color.light, i.color.dark];\n    for (let g = 0; g < l; g++) for (let p = 0; p < l; p++) {\n      let f = (g * l + p) * 4, v = i.color.light;\n      if (g >= u && p >= u && g < l - u && p < l - u) {\n        const x = Math.floor((g - u) / d), w = Math.floor((p - u) / d);\n        v = m[a[x * s + w] ? 1 : 0];\n      }\n      t[f++] = v.r, t[f++] = v.g, t[f++] = v.b, t[f] = v.a;\n    }\n  };\n})), _A = /* @__PURE__ */ ne(((e) => {\n  var r = Tb();\n  function o(n, i, s) {\n    n.clearRect(0, 0, i.width, i.height), i.style || (i.style = {}), i.height = s, i.width = s, i.style.height = s + \"px\", i.style.width = s + \"px\";\n  }\n  function t() {\n    try {\n      return document.createElement(\"canvas\");\n    } catch {\n      throw new Error(\"You need to specify a canvas element\");\n    }\n  }\n  e.render = function(i, s, a) {\n    let d = a, l = s;\n    typeof d > \"u\" && (!s || !s.getContext) && (d = s, s = void 0), s || (l = t()), d = r.getOptions(d);\n    const u = r.getImageWidth(i.modules.size, d), m = l.getContext(\"2d\"), g = m.createImageData(u, u);\n    return r.qrToImageData(g.data, i, d), o(m, l, u), m.putImageData(g, 0, 0), l;\n  }, e.renderToDataURL = function(i, s, a) {\n    let d = a;\n    typeof d > \"u\" && (!s || !s.getContext) && (d = s, s = void 0), d || (d = {});\n    const l = e.render(i, s, d), u = d.type || \"image/png\", m = d.rendererOpts || {};\n    return l.toDataURL(u, m.quality);\n  };\n})), AA = /* @__PURE__ */ ne(((e) => {\n  var r = Tb();\n  function o(i, s) {\n    const a = i.a / 255, d = s + '=\"' + i.hex + '\"';\n    return a < 1 ? d + \" \" + s + '-opacity=\"' + a.toFixed(2).slice(1) + '\"' : d;\n  }\n  function t(i, s, a) {\n    let d = i + s;\n    return typeof a < \"u\" && (d += \" \" + a), d;\n  }\n  function n(i, s, a) {\n    let d = \"\", l = 0, u = !1, m = 0;\n    for (let g = 0; g < i.length; g++) {\n      const p = Math.floor(g % s), f = Math.floor(g / s);\n      !p && !u && (u = !0), i[g] ? (m++, g > 0 && p > 0 && i[g - 1] || (d += u ? t(\"M\", p + a, 0.5 + f + a) : t(\"m\", l, 0), l = 0, u = !1), p + 1 < s && i[g + 1] || (d += t(\"h\", m), m = 0)) : l++;\n    }\n    return d;\n  }\n  e.render = function(s, a, d) {\n    const l = r.getOptions(a), u = s.modules.size, m = s.modules.data, g = u + l.margin * 2, p = l.color.light.a ? \"<path \" + o(l.color.light, \"fill\") + ' d=\"M0 0h' + g + \"v\" + g + 'H0z\"/>' : \"\", f = \"<path \" + o(l.color.dark, \"stroke\") + ' d=\"' + n(m, u, l.margin) + '\"/>', v = 'viewBox=\"0 0 ' + g + \" \" + g + '\"', x = '<svg xmlns=\"http://www.w3.org/2000/svg\" ' + (l.width ? 'width=\"' + l.width + '\" height=\"' + l.width + '\" ' : \"\") + v + ' shape-rendering=\"crispEdges\">' + p + f + `</svg>\n`;\n    return typeof d == \"function\" && d(null, x), x;\n  };\n})), CA = /* @__PURE__ */ ne(((e) => {\n  var r = iA(), o = xA(), t = _A(), n = AA();\n  function i(s, a, d, l, u) {\n    const m = [].slice.call(arguments, 1), g = m.length, p = typeof m[g - 1] == \"function\";\n    if (!p && !r()) throw new Error(\"Callback required as last argument\");\n    if (p) {\n      if (g < 2) throw new Error(\"Too few arguments provided\");\n      g === 2 ? (u = d, d = a, a = l = void 0) : g === 3 && (a.getContext && typeof u > \"u\" ? (u = l, l = void 0) : (u = l, l = d, d = a, a = void 0));\n    } else {\n      if (g < 1) throw new Error(\"Too few arguments provided\");\n      return g === 1 ? (d = a, a = l = void 0) : g === 2 && !a.getContext && (l = d, d = a, a = void 0), new Promise(function(f, v) {\n        try {\n          f(s(o.create(d, l), a, l));\n        } catch (x) {\n          v(x);\n        }\n      });\n    }\n    try {\n      const f = o.create(d, l);\n      u(null, s(f, a, l));\n    } catch (f) {\n      u(f);\n    }\n  }\n  e.create = o.create, e.toCanvas = i.bind(null, t.render), e.toDataURL = i.bind(null, t.renderToDataURL), e.toString = i.bind(null, function(s, a, d) {\n    return n.render(s, d);\n  });\n}));\nfunction SA({ value: e, size: r = 200, alt: o = \"QR code\", className: t = \"\" }) {\n  const n = O(null), [i, s] = T(null);\n  return F(() => {\n    const a = n.current;\n    if (!a || !e) return;\n    let d = !1;\n    return Promise.resolve().then(() => /* @__PURE__ */ ty(CA(), 1)).then((l) => {\n      if (!d)\n        return (l.default ?? l).toCanvas(a, e, {\n          width: r,\n          margin: 2,\n          color: {\n            dark: \"#000000\",\n            light: \"#ffffff\"\n          },\n          errorCorrectionLevel: \"M\"\n        });\n    }).then(() => {\n      d || s(null);\n    }).catch((l) => {\n      d || s(l instanceof Error ? l.message : \"Failed to generate QR code\");\n    }), () => {\n      d = !0;\n    };\n  }, [e, r]), i ? /* @__PURE__ */ c(\"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__ */ c(\"p\", { children: \"Failed to generate QR code\" })\n  }) : /* @__PURE__ */ c(\"canvas\", {\n    ref: n,\n    className: `cedros-totp-qr-image ${t}`,\n    role: \"img\",\n    \"aria-label\": o,\n    style: { borderRadius: \"0.5rem\" }\n  });\n}\nvar EA = h((() => {\n  Y();\n}));\nfunction TA({ onSuccess: e, onCancel: r, className: o = \"\" }) {\n  const { setupState: t, setupData: n, isLoading: i, error: s, beginSetup: a, enableTotp: d, clearError: l, reset: u } = _b(), [m, g] = T(\"qr\"), [p, f] = T(\"\"), [v, x] = T(!1), [w, b] = T(!1), k = O(!1), y = O(null);\n  F(() => {\n    t === \"idle\" && a().catch(() => {\n    });\n  }, [t, a]), F(() => {\n    t === \"success\" && e?.();\n  }, [t, e]);\n  const C = async () => {\n    n?.secret && (await navigator.clipboard.writeText(n.secret), x(!0), y.current !== null && window.clearTimeout(y.current), y.current = window.setTimeout(() => x(!1), 2e3));\n  }, P = async () => {\n    if (n?.recoveryCodes) {\n      const A = n.recoveryCodes.join(`\n`);\n      await navigator.clipboard.writeText(A);\n    }\n  }, S = async (A) => {\n    const E = A ?? p;\n    if (!(k.current || !/^\\d{6}$/.test(E))) {\n      k.current = !0;\n      try {\n        await d(E);\n      } catch {\n        f(\"\");\n      } finally {\n        k.current = !1;\n      }\n    }\n  }, R = () => {\n    u(), r?.();\n  };\n  return F(() => () => {\n    y.current !== null && (window.clearTimeout(y.current), y.current = null);\n  }, []), t === \"loading\" || t === \"idle\" && i ? /* @__PURE__ */ c(\"div\", {\n    className: `cedros-totp-setup ${o}`,\n    children: /* @__PURE__ */ c(\"div\", {\n      className: \"cedros-totp-loading\",\n      children: /* @__PURE__ */ c(H, {\n        size: \"lg\",\n        label: \"Setting up two-factor authentication\"\n      })\n    })\n  }) : t === \"error\" && !n ? /* @__PURE__ */ _(\"div\", {\n    className: `cedros-totp-setup ${o}`,\n    children: [/* @__PURE__ */ c(ae, {\n      error: s,\n      onDismiss: l\n    }), /* @__PURE__ */ _(\"div\", {\n      className: \"cedros-totp-actions\",\n      children: [/* @__PURE__ */ c(\"button\", {\n        type: \"button\",\n        className: \"cedros-button cedros-button-outline cedros-button-md\",\n        onClick: R,\n        children: \"Cancel\"\n      }), /* @__PURE__ */ c(\"button\", {\n        type: \"button\",\n        className: \"cedros-button cedros-button-primary cedros-button-md\",\n        onClick: () => a(),\n        children: \"Try again\"\n      })]\n    })]\n  }) : t === \"success\" ? /* @__PURE__ */ c(\"div\", {\n    className: `cedros-totp-setup ${o}`,\n    children: /* @__PURE__ */ _(\"div\", {\n      className: \"cedros-totp-success\",\n      children: [\n        /* @__PURE__ */ _(\"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__ */ c(\"circle\", {\n            cx: \"24\",\n            cy: \"24\",\n            r: \"22\",\n            stroke: \"currentColor\",\n            strokeWidth: \"2\"\n          }), /* @__PURE__ */ c(\"path\", {\n            d: \"M14 24l7 7 13-13\",\n            stroke: \"currentColor\",\n            strokeWidth: \"2\",\n            strokeLinecap: \"round\",\n            strokeLinejoin: \"round\"\n          })]\n        }),\n        /* @__PURE__ */ c(\"h3\", {\n          className: \"cedros-totp-title\",\n          children: \"Two-factor authentication enabled\"\n        }),\n        /* @__PURE__ */ c(\"p\", {\n          className: \"cedros-totp-description\",\n          children: \"Your account is now protected with an additional layer of security.\"\n        })\n      ]\n    })\n  }) : n ? /* @__PURE__ */ c(\"div\", {\n    className: `cedros-totp-setup ${o}`,\n    children: /* @__PURE__ */ _(He, {\n      stateKey: m,\n      order: Rb,\n      focusOnChange: !0,\n      children: [\n        m === \"qr\" && /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-totp-step\",\n          children: [\n            /* @__PURE__ */ c(\"h3\", {\n              className: \"cedros-totp-title\",\n              children: \"Scan QR code\"\n            }),\n            /* @__PURE__ */ c(\"p\", {\n              className: \"cedros-totp-description\",\n              children: \"Use your authenticator app to scan this QR code.\"\n            }),\n            /* @__PURE__ */ c(\"div\", {\n              className: \"cedros-totp-qr\",\n              children: /* @__PURE__ */ c(SA, {\n                value: n.otpauthUri,\n                size: 200,\n                alt: \"QR code for authenticator app\"\n              })\n            }),\n            /* @__PURE__ */ _(\"div\", {\n              className: \"cedros-totp-manual\",\n              children: [/* @__PURE__ */ c(\"p\", {\n                className: \"cedros-totp-manual-label\",\n                children: \"Or enter this code manually:\"\n              }), /* @__PURE__ */ _(\"div\", {\n                className: \"cedros-totp-secret\",\n                children: [/* @__PURE__ */ c(\"code\", {\n                  className: \"cedros-totp-secret-code\",\n                  children: n.secret\n                }), /* @__PURE__ */ c(\"button\", {\n                  type: \"button\",\n                  className: \"cedros-button cedros-button-ghost cedros-button-sm\",\n                  onClick: C,\n                  \"aria-label\": \"Copy secret\",\n                  children: v ? \"Copied!\" : \"Copy\"\n                })]\n              })]\n            }),\n            /* @__PURE__ */ _(\"div\", {\n              className: \"cedros-totp-actions\",\n              children: [/* @__PURE__ */ c(\"button\", {\n                type: \"button\",\n                className: \"cedros-button cedros-button-outline cedros-button-md\",\n                onClick: R,\n                children: \"Cancel\"\n              }), /* @__PURE__ */ c(\"button\", {\n                type: \"button\",\n                className: \"cedros-button cedros-button-primary cedros-button-md\",\n                onClick: () => g(\"backup\"),\n                children: \"Continue\"\n              })]\n            })\n          ]\n        }),\n        m === \"backup\" && /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-totp-step\",\n          children: [\n            /* @__PURE__ */ c(\"h3\", {\n              className: \"cedros-totp-title\",\n              children: \"Save recovery codes\"\n            }),\n            /* @__PURE__ */ c(\"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__ */ c(\"div\", {\n              className: \"cedros-totp-backup-codes\",\n              children: n.recoveryCodes.map((A, E) => /* @__PURE__ */ c(\"code\", {\n                className: \"cedros-totp-backup-code\",\n                children: A\n              }, E))\n            }),\n            /* @__PURE__ */ c(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-outline cedros-button-md cedros-button-full\",\n              onClick: P,\n              children: \"Copy all codes\"\n            }),\n            /* @__PURE__ */ _(\"label\", {\n              className: \"cedros-checkbox-label cedros-totp-confirm\",\n              children: [/* @__PURE__ */ c(\"input\", {\n                type: \"checkbox\",\n                className: \"cedros-checkbox\",\n                checked: w,\n                onChange: (A) => b(A.target.checked)\n              }), /* @__PURE__ */ c(\"span\", {\n                className: \"cedros-checkbox-text\",\n                children: \"I have saved these recovery codes\"\n              })]\n            }),\n            /* @__PURE__ */ _(\"div\", {\n              className: \"cedros-totp-actions\",\n              children: [/* @__PURE__ */ c(\"button\", {\n                type: \"button\",\n                className: \"cedros-button cedros-button-outline cedros-button-md\",\n                onClick: () => g(\"qr\"),\n                children: \"Back\"\n              }), /* @__PURE__ */ c(\"button\", {\n                type: \"button\",\n                className: \"cedros-button cedros-button-primary cedros-button-md\",\n                onClick: () => g(\"verify\"),\n                disabled: !w,\n                children: \"Continue\"\n              })]\n            })\n          ]\n        }),\n        m === \"verify\" && /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-totp-step\",\n          children: [\n            /* @__PURE__ */ c(\"h3\", {\n              className: \"cedros-totp-title\",\n              children: \"Verify setup\"\n            }),\n            /* @__PURE__ */ c(\"p\", {\n              className: \"cedros-totp-description\",\n              children: \"Enter the 6-digit code from your authenticator app to complete setup.\"\n            }),\n            /* @__PURE__ */ c(tn, {\n              value: p,\n              onChange: f,\n              onComplete: S,\n              disabled: i,\n              error: s?.message,\n              autoFocus: !0\n            }),\n            /* @__PURE__ */ _(\"div\", {\n              className: \"cedros-totp-actions\",\n              children: [/* @__PURE__ */ c(\"button\", {\n                type: \"button\",\n                className: \"cedros-button cedros-button-outline cedros-button-md\",\n                onClick: () => g(\"backup\"),\n                disabled: i,\n                children: \"Back\"\n              }), /* @__PURE__ */ c(\"button\", {\n                type: \"button\",\n                className: \"cedros-button cedros-button-primary cedros-button-md\",\n                onClick: () => S(),\n                disabled: i || !/^\\d{6}$/.test(p),\n                children: i ? /* @__PURE__ */ _(ce, { children: [/* @__PURE__ */ c(H, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", { children: \"Verifying...\" })] }) : \"Enable 2FA\"\n              })]\n            })\n          ]\n        })\n      ]\n    })\n  }) : null;\n}\nvar Rb, hc = h((() => {\n  Y(), Ab(), oi(), EA(), re(), we(), ho(), Rb = [\n    \"qr\",\n    \"backup\",\n    \"verify\"\n  ];\n}));\nfunction RA(e) {\n  return e.some((r) => r === \"email\" || r === \"password\");\n}\nfunction PA(e, r) {\n  return e ? e.map((o) => o === \"recoveryCode\" ? \"recovery\" : o) : !r || r.length === 0 ? Pb : RA(r) ? Lb : Nb;\n}\nfunction LA(e) {\n  return e[0] ?? \"password\";\n}\nfunction pt(e, r) {\n  return r.includes(e);\n}\nfunction NA({ onStatusChange: e, className: r = \"\" }) {\n  const { status: o, isLoading: t, error: n, getStatus: i, disableTotp: s, regenerateBackupCodes: a, clearError: d } = _b(), l = Au(), [u, m] = T(\"status\"), [g, p] = T(\"password\"), [f, v] = T(\"\"), [x, w] = T(\"\"), [b, k] = T(\"\"), y = O(!1), [C, P] = T(\"\"), [S, R] = T(null), [A, E] = T(!1), [I, L] = T(null), M = PA(o?.disableMethods, l?.user?.authMethods), D = LA(M), z = pt(g, M) ? g : D, $ = pt(\"password\", M), q = pt(\"code\", M), J = pt(\"recovery\", M), G = z === \"password\" && q ? \"code\" : z === \"code\" && J ? \"recovery\" : z === \"code\" && $ || z === \"recovery\" && $ ? \"password\" : z === \"recovery\" && q ? \"code\" : null, ge = G === \"password\" ? \"Use password\" : G === \"code\" ? \"Use authenticator code\" : G === \"recovery\" ? \"Use recovery code\" : \"\", ve = $ && !q ? \"This will make your account less secure. Enter your password to confirm.\" : $ ? \"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  F(() => {\n    i().catch(() => {\n    });\n  }, [i]);\n  const Ie = N(() => {\n    m(\"status\"), e?.(!0);\n  }, [e]), _e = () => {\n    v(\"\"), w(\"\"), k(\"\"), p(D), L(null);\n  }, ee = (K) => {\n    v(\"\"), w(\"\"), k(\"\"), p(K), L(null);\n  }, Se = () => z === \"code\" ? { code: x } : z === \"recovery\" ? { recoveryCode: b } : { password: f }, de = z === \"code\" ? /^\\d{6}$/.test(x) : z === \"recovery\" ? b.trim().length > 0 : f.length > 0, he = async () => {\n    E(!0), L(null);\n    try {\n      await s(Se()), m(\"status\"), _e(), e?.(!1);\n    } catch (K) {\n      L(K instanceof Error ? K.message : \"Failed to disable 2FA\"), v(\"\"), w(\"\"), k(\"\");\n    } finally {\n      E(!1);\n    }\n  }, X = async (K) => {\n    const ke = K ?? C;\n    if (!(y.current || !/^\\d{6}$/.test(ke))) {\n      y.current = !0, E(!0), L(null);\n      try {\n        R((await a(ke)).recoveryCodes), P(\"\");\n      } catch (qr) {\n        L(qr instanceof Error ? qr.message : \"Failed to regenerate codes\"), P(\"\");\n      } finally {\n        y.current = !1, E(!1);\n      }\n    }\n  }, be = async () => {\n    S && await navigator.clipboard.writeText(S.join(`\n`));\n  };\n  return t && !o ? /* @__PURE__ */ c(\"div\", {\n    className: `cedros-totp-settings ${r}`,\n    children: /* @__PURE__ */ c(\"div\", {\n      className: \"cedros-totp-panel\",\n      children: /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-totp-loading\",\n        children: [/* @__PURE__ */ c(H, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", { children: \"Loading two-factor authentication…\" })]\n      })\n    })\n  }) : n && !o ? /* @__PURE__ */ _(\"div\", {\n    className: `cedros-totp-settings ${r}`,\n    children: [/* @__PURE__ */ c(ae, {\n      error: n,\n      onDismiss: d\n    }), /* @__PURE__ */ c(\"button\", {\n      type: \"button\",\n      className: \"cedros-button cedros-button-primary cedros-button-md\",\n      onClick: () => i(),\n      children: \"Retry\"\n    })]\n  }) : u === \"setup\" ? /* @__PURE__ */ c(\"div\", {\n    className: `cedros-totp-settings ${r}`,\n    children: /* @__PURE__ */ c(TA, {\n      onSuccess: Ie,\n      onCancel: () => m(\"status\")\n    })\n  }) : u === \"disable\" ? /* @__PURE__ */ c(\"div\", {\n    className: `cedros-totp-settings ${r}`,\n    children: /* @__PURE__ */ _(\"div\", {\n      className: \"cedros-totp-panel\",\n      children: [\n        /* @__PURE__ */ c(\"h3\", {\n          className: \"cedros-totp-title\",\n          children: \"Disable two-factor authentication\"\n        }),\n        /* @__PURE__ */ c(\"p\", {\n          className: \"cedros-totp-description cedros-totp-warning\",\n          children: ve\n        }),\n        I && /* @__PURE__ */ c(\"div\", {\n          className: \"cedros-totp-error\",\n          children: /* @__PURE__ */ c(ae, {\n            error: {\n              code: \"UNKNOWN_ERROR\",\n              message: I\n            },\n            onDismiss: () => L(null)\n          })\n        }),\n        /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-totp-verify-input\",\n          children: [\n            z === \"password\" && /* @__PURE__ */ c(je, {\n              label: \"Password\",\n              placeholder: \"Enter your password\",\n              value: f,\n              onChange: (K) => v(K.target.value),\n              disabled: A,\n              autoFocus: !0\n            }),\n            z === \"code\" && /* @__PURE__ */ c(tn, {\n              value: x,\n              onChange: w,\n              onComplete: () => {\n              },\n              disabled: A,\n              autoFocus: !0\n            }),\n            z === \"recovery\" && /* @__PURE__ */ _(ce, { children: [/* @__PURE__ */ c(\"label\", {\n              className: \"cedros-label\",\n              htmlFor: \"disable-recovery-code\",\n              children: \"Recovery code\"\n            }), /* @__PURE__ */ c(\"input\", {\n              id: \"disable-recovery-code\",\n              type: \"text\",\n              className: \"cedros-input\",\n              placeholder: \"Enter recovery code\",\n              value: b,\n              onChange: (K) => k(K.target.value),\n              disabled: A,\n              autoFocus: !0,\n              autoComplete: \"one-time-code\"\n            })] }),\n            G && /* @__PURE__ */ c(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-ghost cedros-button-sm\",\n              onClick: () => ee(G),\n              disabled: A,\n              children: ge\n            })\n          ]\n        }),\n        /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-totp-actions\",\n          children: [/* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-outline cedros-button-md\",\n            onClick: () => {\n              m(\"status\"), _e();\n            },\n            disabled: A,\n            children: \"Cancel\"\n          }), /* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-danger cedros-button-md\",\n            onClick: he,\n            disabled: A || !de,\n            children: A ? /* @__PURE__ */ _(ce, { children: [/* @__PURE__ */ c(H, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", { children: \"Disabling...\" })] }) : \"Disable 2FA\"\n          })]\n        })\n      ]\n    })\n  }) : u === \"regenerate\" ? S ? /* @__PURE__ */ c(\"div\", {\n    className: `cedros-totp-settings ${r}`,\n    children: /* @__PURE__ */ _(\"div\", {\n      className: \"cedros-totp-panel\",\n      children: [\n        /* @__PURE__ */ c(\"h3\", {\n          className: \"cedros-totp-title\",\n          children: \"New recovery codes\"\n        }),\n        /* @__PURE__ */ c(\"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__ */ c(\"div\", {\n          className: \"cedros-totp-backup-codes\",\n          children: S.map((K, ke) => /* @__PURE__ */ c(\"code\", {\n            className: \"cedros-totp-backup-code\",\n            children: K\n          }, ke))\n        }),\n        /* @__PURE__ */ c(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-outline cedros-button-md cedros-button-full\",\n          onClick: be,\n          children: \"Copy all codes\"\n        }),\n        /* @__PURE__ */ c(\"div\", {\n          className: \"cedros-totp-actions\",\n          children: /* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-primary cedros-button-md\",\n            onClick: () => {\n              m(\"status\"), R(null);\n            },\n            children: \"Done\"\n          })\n        })\n      ]\n    })\n  }) : /* @__PURE__ */ c(\"div\", {\n    className: `cedros-totp-settings ${r}`,\n    children: /* @__PURE__ */ _(\"div\", {\n      className: \"cedros-totp-panel\",\n      children: [\n        /* @__PURE__ */ c(\"h3\", {\n          className: \"cedros-totp-title\",\n          children: \"Regenerate recovery codes\"\n        }),\n        /* @__PURE__ */ c(\"p\", {\n          className: \"cedros-totp-description\",\n          children: \"This will invalidate all existing recovery codes. Enter your authenticator code to confirm.\"\n        }),\n        I && /* @__PURE__ */ c(\"div\", {\n          className: \"cedros-totp-error\",\n          children: /* @__PURE__ */ c(ae, {\n            error: {\n              code: \"UNKNOWN_ERROR\",\n              message: I\n            },\n            onDismiss: () => L(null)\n          })\n        }),\n        /* @__PURE__ */ c(\"div\", {\n          className: \"cedros-totp-verify-input\",\n          children: /* @__PURE__ */ c(tn, {\n            value: C,\n            onChange: P,\n            onComplete: X,\n            disabled: A,\n            autoFocus: !0\n          })\n        }),\n        /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-totp-actions\",\n          children: [/* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-outline cedros-button-md\",\n            onClick: () => {\n              m(\"status\"), P(\"\"), L(null);\n            },\n            disabled: A,\n            children: \"Cancel\"\n          }), /* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-primary cedros-button-md\",\n            onClick: () => X(),\n            disabled: A || !/^\\d{6}$/.test(C),\n            children: A ? /* @__PURE__ */ _(ce, { children: [/* @__PURE__ */ c(H, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", { children: \"Regenerating...\" })] }) : \"Regenerate codes\"\n          })]\n        })\n      ]\n    })\n  }) : /* @__PURE__ */ c(\"div\", {\n    className: `cedros-totp-settings ${r}`,\n    children: /* @__PURE__ */ _(\"div\", {\n      className: \"cedros-totp-panel\",\n      children: [/* @__PURE__ */ _(\"div\", {\n        className: \"cedros-totp-status-header\",\n        children: [/* @__PURE__ */ _(\"div\", {\n          className: \"cedros-totp-status-info\",\n          children: [/* @__PURE__ */ c(\"h3\", {\n            className: \"cedros-totp-title\",\n            children: \"Two-factor authentication\"\n          }), /* @__PURE__ */ c(\"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__ */ c(\"span\", {\n          className: `cedros-badge ${o?.enabled ? \"cedros-badge--ok\" : \"cedros-badge--muted\"}`,\n          children: o?.enabled ? \"Enabled\" : \"Disabled\"\n        })]\n      }), o?.enabled ? /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-totp-enabled-actions\",\n        children: [\n          /* @__PURE__ */ _(\"div\", {\n            className: \"cedros-totp-description\",\n            style: { marginTop: \"0.25rem\" },\n            children: [\"Recovery codes remaining: \", /* @__PURE__ */ c(\"strong\", { children: o.recoveryCodesRemaining })]\n          }),\n          /* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-outline cedros-button-md\",\n            onClick: () => m(\"regenerate\"),\n            children: \"Regenerate recovery codes\"\n          }),\n          /* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-danger-outline cedros-button-md\",\n            onClick: () => {\n              p(D), m(\"disable\");\n            },\n            children: \"Disable 2FA\"\n          })\n        ]\n      }) : /* @__PURE__ */ c(\"button\", {\n        type: \"button\",\n        className: \"cedros-button cedros-button-primary cedros-button-md\",\n        onClick: () => m(\"setup\"),\n        children: \"Enable two-factor authentication\"\n      })]\n    })\n  });\n}\nvar Pb, Lb, Nb, IA = h((() => {\n  Y(), Ab(), ie(), hc(), oi(), Fr(), re(), we(), Pb = [\n    \"password\",\n    \"code\",\n    \"recovery\"\n  ], Lb = [\"password\"], Nb = [\"code\", \"recovery\"];\n})), MA = h((() => {\n  oi(), hc(), rt(), IA();\n}));\nfunction li() {\n  const [e, r] = T({\n    open: !1,\n    options: Ib\n  }), o = O(null);\n  F(() => () => {\n    o.current?.(!1), o.current = null;\n  }, []);\n  const t = N((i) => new Promise((s) => {\n    o.current?.(!1), o.current = s, r({\n      open: !0,\n      options: i\n    });\n  }), []), n = N((i) => {\n    o.current?.(i), 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: N(() => n(!0), [n]),\n      onCancel: N(() => n(!1), [n])\n    }\n  };\n}\nvar Ib, ui = h((() => {\n  Y(), Ib = { title: \"\" };\n}));\nfunction $i(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 || t.display === \"none\" || t.visibility === \"hidden\") return !1;\n    }\n    return !0;\n  });\n}\nfunction DA(e, r, o, t) {\n  const n = O(o);\n  F(() => {\n    n.current = o;\n  }, [o]), F(() => {\n    const i = r.current;\n    if (!e || !i) return;\n    const s = document.activeElement;\n    fr.length === 0 && (Ps = document.body.style.overflow, document.body.style.overflow = \"hidden\"), fr.push(i);\n    const a = () => fr[fr.length - 1] === i, d = () => ($i(i)[0] ?? i).focus();\n    ((typeof t == \"string\" ? $i(i).find((m) => m.matches(t)) : t?.current) ?? i).focus();\n    const l = (m) => {\n      if (!(!a() || m.defaultPrevented)) {\n        if (m.key === \"Escape\")\n          m.preventDefault(), n.current();\n        else if (m.key === \"Tab\") {\n          const g = $i(i), p = g.indexOf(document.activeElement);\n          (g.length === 0 || p === -1 || (m.shiftKey ? p === 0 : p === g.length - 1)) && (m.preventDefault(), (m.shiftKey ? g.at(-1) ?? i : g[0] ?? i).focus());\n        }\n      }\n    }, u = (m) => {\n      a() && m.target instanceof Node && !i.contains(m.target) && d();\n    };\n    return document.addEventListener(\"keydown\", l), document.addEventListener(\"focusin\", u), () => {\n      const m = a();\n      fr.splice(fr.indexOf(i), 1), document.removeEventListener(\"keydown\", l), document.removeEventListener(\"focusin\", u), fr.length === 0 && (document.body.style.overflow = Ps), m && s instanceof HTMLElement && s.isConnected && s.focus();\n    };\n  }, [\n    e,\n    r,\n    t\n  ]);\n}\nvar fr, Ps, zA = h((() => {\n  Y(), fr = [], Ps = \"\";\n}));\nfunction OA({ cancelLabel: e, cancelRef: r, className: o, closeLabel: t, confirmLabel: n, confirmRef: i, description: s, descriptionId: a, destructive: d, dialogRef: l, onCancel: u, onConfirm: m, title: g, titleId: p }) {\n  const f = o.split(/\\s+/).includes(\"cedros-data-dialog\");\n  return /* @__PURE__ */ c(\"div\", {\n    className: `${f ? \"cedros-data-dialog__overlay \" : \"\"}cedros-modal-backdrop`,\n    role: \"presentation\",\n    onClick: (v) => {\n      v.target === v.currentTarget && u();\n    },\n    children: /* @__PURE__ */ c(\"div\", {\n      ref: l,\n      className: `cedros-confirm-dialog ${o}`.trim(),\n      role: \"alertdialog\",\n      \"aria-modal\": \"true\",\n      \"aria-labelledby\": p,\n      \"aria-describedby\": s ? a : void 0,\n      tabIndex: -1,\n      children: /* @__PURE__ */ c(UA, {\n        cancelLabel: e,\n        cancelRef: r,\n        closeLabel: t,\n        confirmLabel: n,\n        confirmRef: i,\n        description: s,\n        descriptionId: a,\n        destructive: d,\n        onCancel: u,\n        onConfirm: m,\n        title: g,\n        titleId: p,\n        usesAdminContract: f\n      })\n    })\n  });\n}\nfunction UA(e) {\n  return e.usesAdminContract ? /* @__PURE__ */ _(ce, { children: [/* @__PURE__ */ _(\"div\", {\n    className: \"cedros-data-dialog__heading\",\n    children: [\n      /* @__PURE__ */ c(\"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__ */ _(\"svg\", {\n          viewBox: \"0 0 24 24\",\n          \"aria-hidden\": \"true\",\n          children: [/* @__PURE__ */ c(\"path\", { d: \"M18 6 6 18\" }), /* @__PURE__ */ c(\"path\", { d: \"m6 6 12 12\" })]\n        })\n      }),\n      /* @__PURE__ */ c(\"h2\", {\n        id: e.titleId,\n        className: \"cedros-data-dialog__title cedros-confirm-dialog__title\",\n        children: e.title\n      }),\n      e.description && /* @__PURE__ */ c(\"p\", {\n        id: e.descriptionId,\n        className: \"cedros-data-dialog__description cedros-confirm-dialog__description\",\n        children: e.description\n      })\n    ]\n  }), /* @__PURE__ */ c(\"div\", {\n    className: \"cedros-data-dialog__body\",\n    children: /* @__PURE__ */ c(ru, { ...e })\n  })] }) : /* @__PURE__ */ _(ce, { children: [\n    /* @__PURE__ */ c(\"h2\", {\n      id: e.titleId,\n      className: \"cedros-confirm-dialog__title\",\n      children: e.title\n    }),\n    e.description && /* @__PURE__ */ c(\"p\", {\n      id: e.descriptionId,\n      className: \"cedros-confirm-dialog__description\",\n      children: e.description\n    }),\n    /* @__PURE__ */ c(ru, { ...e })\n  ] });\n}\nfunction ru({ cancelLabel: e, cancelRef: r, confirmLabel: o, confirmRef: t, destructive: n, onCancel: i, onConfirm: s, usesAdminContract: a }) {\n  const d = a ? \"cedros-data-actions \" : \"\", l = a ? \"cedros-data-btn cedros-data-btn--secondary \" : \"\", u = a ? `cedros-data-btn ${n ? \"cedros-data-btn--danger\" : \"cedros-data-btn--primary\"} ` : \"\";\n  return /* @__PURE__ */ _(\"div\", {\n    className: `${d}cedros-confirm-dialog__actions`,\n    children: [/* @__PURE__ */ c(\"button\", {\n      ref: r,\n      type: \"button\",\n      className: `${l}cedros-button cedros-button-outline cedros-button-md`,\n      onClick: i,\n      children: e\n    }), /* @__PURE__ */ c(\"button\", {\n      ref: t,\n      type: \"button\",\n      className: `${u}cedros-button cedros-button-md ${n ? \"cedros-button-danger\" : \"cedros-button-primary\"}`,\n      onClick: s,\n      children: o\n    })]\n  });\n}\nvar VA = h((() => {\n}));\nfunction Nr({ open: e, title: r, description: o, confirmLabel: t, cancelLabel: n, destructive: i = !1, onConfirm: s, onCancel: a, className: d = \"\" }) {\n  const l = le(), u = O(null), m = O(null), g = O(null), p = Ne(), f = `${p}-title`, v = `${p}-desc`;\n  return DA(e, u, a, i ? g : m), !e || typeof document > \"u\" ? null : /* @__PURE__ */ c(OA, {\n    cancelLabel: n ?? l.common.cancel,\n    cancelRef: g,\n    className: d,\n    closeLabel: l.auth.close,\n    confirmLabel: t ?? l.common.confirm,\n    confirmRef: m,\n    description: o,\n    descriptionId: v,\n    destructive: i,\n    dialogRef: u,\n    onCancel: a,\n    onConfirm: s,\n    title: r,\n    titleId: f\n  });\n}\nvar mi = h((() => {\n  zA(), Q(), VA();\n}));\nfunction BA({ sessions: e, isLoading: r = !1, error: o, onRevokeAll: t, onRefresh: n, className: i = \"\" }) {\n  const { confirm: s, dialogProps: a } = li(), [d, l] = T(!1), [u, m] = T(!1), [g, p] = T(null), [f, v] = T(!1), x = Ne(), w = O(!1), b = O(!1), k = O(null), y = B(() => e.filter((A) => !A.isCurrent).length, [e]), C = B(() => [...e].sort((A, E) => Number(E.isCurrent) - Number(A.isCurrent)), [e]), P = f ? C : C.slice(0, 3), S = N(async () => {\n    if (!(!t || b.current || r) && e.filter((A) => !A.isCurrent).length !== 0) {\n      if (b.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      }) || !w.current) {\n        b.current = !1;\n        return;\n      }\n      l(!0), m(!1), p(null);\n      try {\n        await t(), w.current && m(!0);\n      } catch {\n        w.current && p(\"Could not sign out of other sessions. Please try again.\");\n      } finally {\n        b.current = !1, w.current && l(!1);\n      }\n    }\n  }, [\n    s,\n    t,\n    e,\n    r\n  ]);\n  F(() => (w.current = !0, () => {\n    w.current = !1;\n  }), []), F(() => {\n    u && k.current?.focus();\n  }, [u]);\n  const R = n && /* @__PURE__ */ c(\"button\", {\n    type: \"button\",\n    className: \"cedros-button cedros-button-outline cedros-button-sm\",\n    disabled: r || d,\n    onClick: async () => {\n      p(null), m(!1);\n      try {\n        await n();\n      } catch {\n        w.current && p(\"Could not refresh sessions. Please try again.\");\n      }\n    },\n    children: r ? \"Refreshing…\" : \"Refresh sessions\"\n  });\n  return r && e.length === 0 ? /* @__PURE__ */ _(\"div\", {\n    className: `cedros-session-list cedros-session-list-loading ${i}`,\n    children: [\n      /* @__PURE__ */ c(H, { size: \"sm\" }),\n      /* @__PURE__ */ c(\"span\", { children: \"Loading sessions…\" }),\n      /* @__PURE__ */ c(Nr, { ...a })\n    ]\n  }) : o && e.length === 0 ? /* @__PURE__ */ _(\"div\", {\n    className: `cedros-session-list ${i}`,\n    children: [\n      /* @__PURE__ */ c(ae, { error: o }),\n      R,\n      /* @__PURE__ */ c(Nr, { ...a })\n    ]\n  }) : e.length === 0 ? /* @__PURE__ */ _(\"div\", {\n    className: `cedros-session-list cedros-session-list-empty ${i}`,\n    children: [\n      /* @__PURE__ */ c(\"p\", { children: \"No active sessions found.\" }),\n      g && /* @__PURE__ */ c(ae, { error: g }),\n      R,\n      /* @__PURE__ */ c(Nr, { ...a })\n    ]\n  }) : /* @__PURE__ */ _(\"div\", {\n    className: `cedros-session-list ${i}`,\n    \"aria-busy\": r || d,\n    children: [\n      (o || g) && /* @__PURE__ */ c(ae, { error: o || g }),\n      u && /* @__PURE__ */ _(\"div\", {\n        ref: k,\n        className: \"cedros-session-success\",\n        role: \"status\",\n        tabIndex: -1,\n        children: [/* @__PURE__ */ c(HA, {}), /* @__PURE__ */ c(\"span\", { children: \"All other sessions have been revoked.\" })]\n      }),\n      /* @__PURE__ */ c(\"ul\", {\n        id: x,\n        className: \"cedros-session-items\",\n        children: P.map((A) => /* @__PURE__ */ c(FA, { session: A }, A.id))\n      }),\n      e.length > 3 && /* @__PURE__ */ c(\"button\", {\n        type: \"button\",\n        className: \"cedros-button cedros-button-ghost cedros-button-sm cedros-session-toggle\",\n        \"aria-expanded\": f,\n        \"aria-controls\": x,\n        onClick: () => v((A) => !A),\n        children: f ? \"Show fewer sessions\" : `Show all ${e.length} sessions`\n      }),\n      (n || t && y > 0) && /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-session-actions\",\n        children: [R, t && y > 0 && /* @__PURE__ */ c(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-outline cedros-button-sm\",\n          onClick: S,\n          disabled: d || r,\n          children: d ? /* @__PURE__ */ _(ce, { children: [/* @__PURE__ */ c(H, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", { children: \"Signing out…\" })] }) : \"Sign out of all other sessions\"\n        })]\n      }),\n      /* @__PURE__ */ c(Nr, { ...a })\n    ]\n  });\n}\nfunction FA({ session: e }) {\n  const r = jA(e.userAgent), o = qA(e.expiresAt);\n  return /* @__PURE__ */ _(\"li\", {\n    className: `cedros-session-item ${e.isCurrent ? \"cedros-session-item-current\" : \"\"}`,\n    children: [/* @__PURE__ */ c(\"div\", {\n      className: \"cedros-session-item-icon\",\n      children: /* @__PURE__ */ c(WA, { userAgent: e.userAgent })\n    }), /* @__PURE__ */ _(\"div\", {\n      className: \"cedros-session-item-info\",\n      children: [/* @__PURE__ */ _(\"div\", {\n        className: \"cedros-session-item-main\",\n        children: [/* @__PURE__ */ _(\"span\", {\n          className: \"cedros-session-item-device\",\n          children: [\n            r.browser,\n            \" on \",\n            r.os\n          ]\n        }), e.isCurrent && /* @__PURE__ */ c(\"span\", {\n          className: \"cedros-session-current-badge\",\n          children: \"Current session\"\n        })]\n      }), /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-session-item-meta\",\n        children: [\n          e.ipAddress && /* @__PURE__ */ _(\"span\", {\n            className: \"cedros-session-item-ip\",\n            children: [\"IP: \", e.ipAddress]\n          }),\n          /* @__PURE__ */ _(\"span\", {\n            className: \"cedros-session-item-created\",\n            children: [\"Started \", $A(e.createdAt)]\n          }),\n          o && /* @__PURE__ */ c(\"span\", {\n            className: \"cedros-session-expiring\",\n            children: \"Expires soon\"\n          })\n        ]\n      })]\n    })]\n  });\n}\nfunction jA(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 $A(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)), n = Math.floor(o / (1e3 * 60 * 60)), i = Math.floor(o / (1e3 * 60 * 60 * 24));\n  return t < 1 ? \"just now\" : t < 60 ? `${t} minute${t > 1 ? \"s\" : \"\"} ago` : n < 24 ? `${n} hour${n > 1 ? \"s\" : \"\"} ago` : i < 7 ? `${i} day${i > 1 ? \"s\" : \"\"} ago` : r.toLocaleDateString(void 0, {\n    year: \"numeric\",\n    month: \"short\",\n    day: \"numeric\"\n  });\n}\nfunction qA(e) {\n  const r = new Date(e), o = /* @__PURE__ */ new Date(), t = 3600 * 1e3, n = r.getTime() - o.getTime();\n  return n > 0 && n < t;\n}\nfunction WA({ userAgent: e }) {\n  return e?.includes(\"iPhone\") || e?.includes(\"iPad\") || e?.includes(\"Android\") ? /* @__PURE__ */ _(\"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__ */ c(\"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__ */ c(\"circle\", {\n      cx: \"12\",\n      cy: \"18\",\n      r: \"1\",\n      fill: \"currentColor\"\n    })]\n  }) : /* @__PURE__ */ _(\"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__ */ c(\"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__ */ c(\"path\", {\n        d: \"M8 21H16\",\n        stroke: \"currentColor\",\n        strokeWidth: \"1.5\",\n        strokeLinecap: \"round\"\n      }),\n      /* @__PURE__ */ c(\"path\", {\n        d: \"M12 18V21\",\n        stroke: \"currentColor\",\n        strokeWidth: \"1.5\"\n      })\n    ]\n  });\n}\nfunction HA() {\n  return /* @__PURE__ */ c(\"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__ */ c(\"path\", {\n      d: \"M3 8L6 11L13 5\",\n      stroke: \"currentColor\",\n      strokeWidth: \"2\",\n      strokeLinecap: \"round\",\n      strokeLinejoin: \"round\"\n    })\n  });\n}\nvar KA = h((() => {\n  Y(), ui(), mi(), re(), we();\n}));\nfunction sr() {\n  return {\n    code: \"SERVER_ERROR\",\n    message: \"Could not verify session data. Please refresh and try again.\"\n  };\n}\nfunction pc(e) {\n  return typeof e == \"object\" && e !== null && !Array.isArray(e);\n}\nfunction Rt(e) {\n  return typeof e == \"number\" && Number.isSafeInteger(e) && e >= 0;\n}\nfunction GA(e) {\n  if (!pc(e) || !Array.isArray(e.sessions) || !Rt(e.total)) throw sr();\n  const r = e.sessions.map(YA), o = e.limit ?? r.length, t = e.offset ?? 0;\n  if (!Rt(o) || !Rt(t) || r.length > o || r.length > e.total) throw sr();\n  return {\n    sessions: r,\n    total: e.total,\n    limit: o,\n    offset: t\n  };\n}\nfunction YA(e) {\n  if (!pc(e)) throw sr();\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 sr();\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 Mb, XA = h((() => {\n  me(), Mb = class {\n    client;\n    constructor(e, r, o, t) {\n      this.client = new ue({\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 i = GA(await this.client.get(o === 0 ? \"/sessions\" : `/sessions?offset=${o}`, {\n            cacheTtlMs: 1e3,\n            forceRefresh: e\n          }));\n          if (i.offset !== o) throw sr();\n          t ??= i.total, t = Math.min(t, i.total);\n          for (const s of i.sessions) {\n            if (r.has(s.id)) throw sr();\n            r.set(s.id, s);\n          }\n          if (i.sessions.length === 0 && o < t) throw sr();\n          o += i.sessions.length;\n        } while (o < t);\n        const n = [...r.values()];\n        if (n.filter((i) => i.isCurrent).length > 1) throw sr();\n        return n;\n      } catch (r) {\n        throw V(r, \"Failed to list sessions\");\n      }\n    }\n    async revokeAllSessions() {\n      try {\n        const e = await this.client.delete(\"/sessions\");\n        if (!pc(e) || !Rt(e.revokedCount) || typeof e.message != \"string\") throw sr();\n        return {\n          revokedCount: e.revokedCount,\n          message: e.message\n        };\n      } catch (e) {\n        throw V(e, \"Failed to revoke sessions\");\n      }\n    }\n  };\n}));\nfunction JA() {\n  const { config: e, authState: r, user: o, _internal: t } = fe(), n = t?.getAccessToken, i = B(() => new Mb(e.serverUrl, e.requestTimeout, e.retryAttempts, n), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    n\n  ]), s = B(() => ({\n    apiClient: i,\n    authState: r,\n    userId: o?.id\n  }), [\n    i,\n    r,\n    o?.id\n  ]), a = r === \"authenticated\" && !!o?.id, [d, l] = T({\n    scope: s,\n    sessions: [],\n    isLoading: a,\n    error: null\n  }), u = O(null), m = O(0), g = O(null), p = N(async () => {\n    if (!a || u.current !== s || g.current) return;\n    const x = ++m.current;\n    l((w) => ({\n      ...w,\n      isLoading: !0,\n      error: null\n    }));\n    try {\n      const w = await i.listSessions(!0);\n      x === m.current && u.current === s && l({\n        scope: s,\n        sessions: w,\n        isLoading: !1,\n        error: null\n      });\n    } catch (w) {\n      x === m.current && u.current === s && l((b) => ({\n        ...b,\n        isLoading: !1,\n        error: V(w, \"Failed to load sessions\")\n      }));\n    }\n  }, [\n    a,\n    i,\n    s\n  ]);\n  F(() => {\n    u.current = s, g.current = null, l({\n      scope: s,\n      sessions: [],\n      isLoading: a,\n      error: null\n    }), p();\n    const x = () => {\n      document.visibilityState === \"visible\" && p();\n    };\n    return window.addEventListener(\"focus\", x), document.addEventListener(\"visibilitychange\", x), () => {\n      u.current = null, m.current += 1, window.removeEventListener(\"focus\", x), document.removeEventListener(\"visibilitychange\", x);\n    };\n  }, [\n    s,\n    a,\n    p\n  ]);\n  const f = N(() => {\n    if (!a || u.current !== s) return Promise.reject({\n      code: \"UNAUTHORIZED\",\n      message: \"Sign in again to manage sessions.\"\n    });\n    if (g.current) return g.current;\n    m.current += 1, l((b) => ({\n      ...b,\n      isLoading: !0,\n      error: null\n    }));\n    const x = () => {\n      if (u.current !== s) throw new Error(\"Session owner changed during the request\");\n    }, w = (async () => {\n      try {\n        const b = await i.revokeAllSessions();\n        x(), l((k) => ({\n          ...k,\n          sessions: k.sessions.filter((y) => y.isCurrent)\n        }));\n        try {\n          const k = await i.listSessions(!0);\n          x(), l({\n            scope: s,\n            sessions: k,\n            isLoading: !1,\n            error: null\n          });\n        } catch (k) {\n          x(), l((y) => ({\n            ...y,\n            error: {\n              ...V(k, \"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 b;\n      } catch (b) {\n        throw u.current === s && l((k) => ({\n          ...k,\n          error: V(b, \"Failed to sign out of other sessions\")\n        })), b;\n      } finally {\n        u.current === s && (g.current = null, l((b) => ({\n          ...b,\n          isLoading: !1\n        })));\n      }\n    })();\n    return g.current = w, w;\n  }, [\n    a,\n    i,\n    s\n  ]), v = d.scope === s ? d.sessions : [];\n  return {\n    sessions: v,\n    isLoading: d.scope === s ? d.isLoading : a,\n    error: d.scope === s ? d.error : null,\n    fetchSessions: p,\n    revokeAllSessions: f,\n    otherSessionCount: v.filter((x) => !x.isCurrent).length\n  };\n}\nvar ZA = h((() => {\n  Y(), ie(), XA(), me();\n}));\nfunction QA({ onPasswordChange: e, onTotpChange: r, className: o = \"\" }) {\n  const { user: t, config: n } = $s(), { sessions: i, isLoading: s, error: a, fetchSessions: d, revokeAllSessions: l } = JA();\n  return /* @__PURE__ */ _(\"div\", {\n    className: `cedros-account-stack ${o}`.trim(),\n    children: [\n      /* @__PURE__ */ c(oA, { onPasswordChange: () => {\n        d(), e?.();\n      } }),\n      /* @__PURE__ */ c(NA, { onStatusChange: r }),\n      /* @__PURE__ */ _(\"section\", {\n        className: \"cedros-account-card cedros-account-card--pad\",\n        children: [/* @__PURE__ */ _(\"header\", {\n          className: \"cedros-account-card__header\",\n          children: [/* @__PURE__ */ c(\"h3\", {\n            className: \"cedros-account-card__title\",\n            children: \"Active sessions\"\n          }), /* @__PURE__ */ c(\"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__ */ c(BA, {\n          onRefresh: d,\n          sessions: i,\n          isLoading: s,\n          error: a ?? void 0,\n          onRevokeAll: async () => {\n            await l();\n          }\n        }, `${n.serverUrl}:${t?.id ?? \"\"}`)]\n      })\n    ]\n  });\n}\nvar eC = h((() => {\n  nA(), MA(), KA(), ie(), ZA();\n}));\nfunction rC() {\n  const { config: e, authState: r, _internal: o } = fe(), [t, n] = T([]), [i, s] = T(!1), [a, d] = T(null), l = B(() => new qo(e.serverUrl, e.requestTimeout, e.retryAttempts, o?.getAccessToken), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    o\n  ]), u = N(() => {\n    d(null);\n  }, []), m = N(async () => {\n    if (r !== \"authenticated\") {\n      n([]);\n      return;\n    }\n    s(!0), d(null);\n    try {\n      n(await l.listEmails());\n    } catch (p) {\n      d(p);\n    } finally {\n      s(!1);\n    }\n  }, [l, r]);\n  F(() => {\n    r === \"authenticated\" ? m() : n([]);\n  }, [r, m]);\n  const g = N(async (p) => {\n    s(!0), d(null);\n    try {\n      const f = await p();\n      f ? n(f) : await m();\n    } catch (f) {\n      throw d(f), f;\n    } finally {\n      s(!1);\n    }\n  }, [m]);\n  return {\n    emails: t,\n    isLoading: i,\n    error: a,\n    fetchEmails: m,\n    addEmail: N(async (p) => {\n      await g(() => l.addEmail(p));\n    }, [l, g]),\n    resendEmail: N(async (p) => {\n      await g(() => l.resendEmail(p));\n    }, [l, g]),\n    removeEmail: N(async (p) => {\n      await g(() => l.removeEmail(p));\n    }, [l, g]),\n    setPrimaryEmail: N(async (p) => {\n      await g(() => l.setPrimaryEmail(p));\n    }, [l, g]),\n    verifyEmail: N(async (p) => {\n      await g(() => l.verifyEmail(p));\n    }, [l, g]),\n    clearError: u\n  };\n}\nvar oC = h((() => {\n  Y(), ie(), vn();\n}));\nfunction tC({ showHeader: e = !0, onEmailChange: r, className: o = \"\" }) {\n  const { emails: t, isLoading: n, error: i, addEmail: s, resendEmail: a, removeEmail: d, setPrimaryEmail: l, clearError: u } = rC(), { confirm: m, dialogProps: g } = li(), [p, f] = T(\"\"), [v, x] = T(null), [w, b] = T(null), k = N(async (S) => {\n    S.preventDefault();\n    const R = p.trim();\n    if (R) {\n      x(null), b(\"add\");\n      try {\n        await s(R), f(\"\"), x(`Verification sent to ${R}.`), r?.();\n      } catch {\n      } finally {\n        b(null);\n      }\n    }\n  }, [\n    s,\n    p,\n    r\n  ]), y = N(async (S) => {\n    x(null), b(`resend:${S.id}`);\n    try {\n      await a(S.id), x(`Verification resent to ${S.email}.`);\n    } catch {\n    } finally {\n      b(null);\n    }\n  }, [a]), C = N(async (S) => {\n    x(null), b(`primary:${S.id}`);\n    try {\n      await l(S.id), x(`${S.email} is now your primary email.`), r?.();\n    } catch {\n    } finally {\n      b(null);\n    }\n  }, [l, r]), P = N(async (S) => {\n    if (await m({\n      title: `Remove ${S.email}?`,\n      description: \"This email will no longer sign in to your account.\",\n      confirmLabel: \"Remove\",\n      destructive: !0\n    })) {\n      x(null), b(`remove:${S.id}`);\n      try {\n        await d(S.id), x(`${S.email} was removed.`);\n      } catch {\n      } finally {\n        b(null);\n      }\n    }\n  }, [m, d]);\n  return n && t.length === 0 ? /* @__PURE__ */ _(\"div\", {\n    className: `cebbwf5-email-management cebbwf5-email-management-loading ${o}`,\n    children: [/* @__PURE__ */ c(H, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", { children: \"Loading email addresses...\" })]\n  }) : /* @__PURE__ */ _(\"section\", {\n    className: `cebbwf5-email-management ${o}`.trim(),\n    children: [\n      e && /* @__PURE__ */ _(\"header\", {\n        className: \"cebbwf5-email-management__header\",\n        children: [/* @__PURE__ */ c(\"h3\", {\n          className: \"cebbwf5-email-management__title\",\n          children: \"Email addresses\"\n        }), /* @__PURE__ */ c(\"p\", {\n          className: \"cebbwf5-email-management__description\",\n          children: \"Add and verify the email addresses you can use to sign in.\"\n        })]\n      }),\n      i && /* @__PURE__ */ c(ae, {\n        error: i,\n        onDismiss: u\n      }),\n      v && /* @__PURE__ */ c(\"p\", {\n        className: \"cebbwf5-email-management__success\",\n        children: v\n      }),\n      /* @__PURE__ */ _(\"form\", {\n        className: \"cebbwf5-email-management__form\",\n        onSubmit: k,\n        children: [/* @__PURE__ */ c(\"div\", {\n          className: \"cebbwf5-email-management__field\",\n          children: /* @__PURE__ */ c(\"input\", {\n            className: \"cedros-input cebbwf5-email-management__input\",\n            type: \"email\",\n            value: p,\n            onChange: (S) => f(S.target.value),\n            placeholder: \"name@example.com\",\n            \"aria-label\": \"Email address\",\n            disabled: w === \"add\",\n            required: !0\n          })\n        }), /* @__PURE__ */ c(\"button\", {\n          type: \"submit\",\n          className: \"cedros-button cedros-button-primary cedros-button-sm\",\n          disabled: w === \"add\" || p.trim().length === 0,\n          children: w === \"add\" ? /* @__PURE__ */ c(H, { size: \"sm\" }) : \"Add email\"\n        })]\n      }),\n      t.length === 0 ? /* @__PURE__ */ c(\"p\", {\n        className: \"cebbwf5-email-management__empty\",\n        children: \"No email addresses added yet.\"\n      }) : /* @__PURE__ */ c(\"ul\", {\n        className: \"cebbwf5-email-management__list\",\n        children: t.map((S) => /* @__PURE__ */ c(nC, {\n          email: S,\n          activeAction: w,\n          onResend: y,\n          onMakePrimary: C,\n          onRemove: P\n        }, S.id))\n      }),\n      /* @__PURE__ */ c(Nr, { ...g })\n    ]\n  });\n}\nfunction nC({ email: e, activeAction: r, onResend: o, onMakePrimary: t, onRemove: n }) {\n  const i = r === `resend:${e.id}`, s = r === `primary:${e.id}`, a = r === `remove:${e.id}`, d = r !== null;\n  return /* @__PURE__ */ _(\"li\", {\n    className: \"cebbwf5-email-row\",\n    children: [/* @__PURE__ */ _(\"div\", {\n      className: \"cebbwf5-email-row__main\",\n      children: [\n        /* @__PURE__ */ c(\"span\", {\n          className: \"cebbwf5-email-row__address\",\n          children: e.email\n        }),\n        /* @__PURE__ */ _(\"span\", {\n          className: \"cebbwf5-email-row__badges\",\n          children: [e.primary && /* @__PURE__ */ c(\"span\", {\n            className: \"cedros-badge cedros-badge--ok\",\n            children: \"Primary\"\n          }), /* @__PURE__ */ c(\"span\", {\n            className: `cedros-badge ${e.verified ? \"cedros-badge--ok\" : \"cedros-badge--muted\"}`,\n            children: e.verified ? \"Verified\" : \"Pending\"\n          })]\n        }),\n        /* @__PURE__ */ _(\"span\", {\n          className: \"cebbwf5-email-row__meta\",\n          children: [\"Added \", iC(e.createdAt)]\n        })\n      ]\n    }), /* @__PURE__ */ _(\"div\", {\n      className: \"cebbwf5-email-row__actions\",\n      children: [\n        !e.verified && /* @__PURE__ */ c(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-outline cedros-button-sm\",\n          onClick: () => o(e),\n          disabled: d,\n          children: i ? /* @__PURE__ */ c(H, { size: \"sm\" }) : \"Resend\"\n        }),\n        e.verified && !e.primary && /* @__PURE__ */ c(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-outline cedros-button-sm\",\n          onClick: () => t(e),\n          disabled: d,\n          children: s ? /* @__PURE__ */ c(H, { size: \"sm\" }) : \"Make primary\"\n        }),\n        !e.primary && /* @__PURE__ */ c(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-outline cedros-button-sm cedros-button-danger-outline\",\n          onClick: () => n(e),\n          disabled: d,\n          children: a ? /* @__PURE__ */ c(H, { size: \"sm\" }) : \"Remove\"\n        })\n      ]\n    })]\n  });\n}\nfunction iC(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 Db = h((() => {\n  oC(), ui(), mi(), we(), re();\n}));\nfunction sC({ onLinkGoogle: e, onLinkApple: r, onAddPasskey: o, onLinkSolana: t, className: n = \"\" }) {\n  const { credentials: i, isLoading: s, error: a, unlinkCredential: d, clearError: l, fetchCredentials: u } = kb(), { registerPasskey: m, isSupported: g, error: p, clearError: f } = hm(), { confirm: v, dialogProps: x } = li(), [w, b] = T(null), [k, y] = T(!1), C = N(async () => {\n    if (o) {\n      o();\n      return;\n    }\n    y(!0);\n    try {\n      await m(), await u();\n    } catch {\n    } finally {\n      y(!1);\n    }\n  }, [\n    o,\n    m,\n    u\n  ]), P = N(async (M) => {\n    const D = M.label || fc[M.credentialType];\n    if (await v({\n      title: `Remove ${D}?`,\n      description: `You won't be able to sign in with \"${D}\" anymore.`,\n      confirmLabel: \"Remove\",\n      destructive: !0\n    })) {\n      b(M.id);\n      try {\n        await d(M.id);\n      } catch {\n      } finally {\n        b(null);\n      }\n    }\n  }, [v, d]), S = new Set(i.map((M) => M.credentialType)), R = e && !S.has(\"oauth_google\"), A = r && !S.has(\"oauth_apple\"), E = (o || g) && !S.has(\"webauthn_passkey\"), I = t && !S.has(\"solana\"), L = R || A || E || I;\n  return s && i.length === 0 ? /* @__PURE__ */ _(\"div\", {\n    className: `cedros-linked-accounts cedros-linked-accounts-loading ${n}`,\n    children: [/* @__PURE__ */ c(H, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", { children: \"Loading linked accounts…\" })]\n  }) : /* @__PURE__ */ _(\"div\", {\n    className: `cedros-linked-accounts ${n}`,\n    children: [\n      p && /* @__PURE__ */ c(ae, {\n        error: p,\n        onDismiss: f\n      }),\n      a && /* @__PURE__ */ c(ae, {\n        error: {\n          code: \"UNKNOWN_ERROR\",\n          message: a.message\n        },\n        onDismiss: l\n      }),\n      i.length === 0 && !s && /* @__PURE__ */ c(\"p\", {\n        className: \"cedros-linked-accounts-empty\",\n        children: \"No linked sign-in methods found.\"\n      }),\n      i.length > 0 && /* @__PURE__ */ c(\"ul\", {\n        className: \"cedros-linked-credential-list\",\n        children: i.map((M) => /* @__PURE__ */ c(aC, {\n          credential: M,\n          isUnlinking: w === M.id,\n          onUnlink: P\n        }, M.id))\n      }),\n      L && /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-linked-add\",\n        children: [/* @__PURE__ */ c(\"p\", {\n          className: \"cedros-linked-add-label\",\n          children: \"Link a new sign-in method\"\n        }), /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-linked-add-buttons\",\n          children: [\n            R && /* @__PURE__ */ _(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-outline cedros-button-sm\",\n              onClick: e,\n              children: [/* @__PURE__ */ c(ln, {}), \" Google\"]\n            }),\n            A && /* @__PURE__ */ _(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-outline cedros-button-sm\",\n              onClick: r,\n              children: [/* @__PURE__ */ c(un, {}), \" Apple\"]\n            }),\n            E && /* @__PURE__ */ c(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-outline cedros-button-sm\",\n              onClick: C,\n              disabled: k,\n              children: k ? /* @__PURE__ */ c(H, { size: \"sm\" }) : /* @__PURE__ */ _(ce, { children: [/* @__PURE__ */ c(Lo, {}), \" Passkey\"] })\n            }),\n            I && /* @__PURE__ */ _(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-outline cedros-button-sm\",\n              onClick: t,\n              children: [/* @__PURE__ */ c(mn, {}), \" Solana\"]\n            })\n          ]\n        })]\n      }),\n      /* @__PURE__ */ c(Nr, { ...x })\n    ]\n  });\n}\nfunction aC({ credential: e, isUnlinking: r, onUnlink: o }) {\n  const t = e.label || fc[e.credentialType], n = zb[e.credentialType] || dC, i = e.credentialType === \"totp\";\n  return /* @__PURE__ */ _(\"li\", {\n    className: \"cedros-linked-credential\",\n    children: [\n      /* @__PURE__ */ c(\"div\", {\n        className: \"cedros-linked-credential__icon\",\n        children: /* @__PURE__ */ c(n, {})\n      }),\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-linked-credential__info\",\n        children: [/* @__PURE__ */ c(\"span\", {\n          className: \"cedros-linked-credential__name\",\n          children: t\n        }), /* @__PURE__ */ _(\"span\", {\n          className: \"cedros-linked-credential__meta\",\n          children: [\n            \"Added \",\n            ou(e.createdAt),\n            e.lastUsedAt && /* @__PURE__ */ _(ce, { children: [\" · Last used \", ou(e.lastUsedAt)] }),\n            e.isPrimary && /* @__PURE__ */ c(ce, { children: \" · Primary\" })\n          ]\n        })]\n      }),\n      /* @__PURE__ */ c(\"div\", {\n        className: \"cedros-linked-credential__action\",\n        children: i ? /* @__PURE__ */ c(\"span\", {\n          title: \"MFA removal requires verification\",\n          children: \"Manage in MFA settings\"\n        }) : /* @__PURE__ */ c(\"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__ */ c(H, { size: \"sm\" }) : \"Remove\"\n        })\n      })\n    ]\n  });\n}\nfunction ou(e) {\n  const r = new Date(e), o = (/* @__PURE__ */ new Date()).getTime() - r.getTime(), t = Math.floor(o / (1e3 * 60)), n = Math.floor(o / (1e3 * 60 * 60)), i = Math.floor(o / (1e3 * 60 * 60 * 24));\n  return t < 1 ? \"just now\" : t < 60 ? `${t}m ago` : n < 24 ? `${n}h ago` : i < 30 ? `${i}d ago` : r.toLocaleDateString(void 0, {\n    year: \"numeric\",\n    month: \"short\",\n    day: \"numeric\"\n  });\n}\nfunction dC() {\n  return /* @__PURE__ */ _(\"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__ */ c(\"circle\", {\n      cx: \"12\",\n      cy: \"12\",\n      r: \"10\",\n      stroke: \"currentColor\",\n      strokeWidth: \"1.5\"\n    }), /* @__PURE__ */ c(\"path\", {\n      d: \"M12 8v4m0 4h.01\",\n      stroke: \"currentColor\",\n      strokeWidth: \"1.5\",\n      strokeLinecap: \"round\"\n    })]\n  });\n}\nfunction cC() {\n  return /* @__PURE__ */ _(\"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__ */ c(\"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__ */ c(\"path\", {\n        d: \"M7 11V7a5 5 0 0110 0v4\",\n        stroke: \"currentColor\",\n        strokeWidth: \"1.5\",\n        strokeLinecap: \"round\"\n      }),\n      /* @__PURE__ */ c(\"circle\", {\n        cx: \"12\",\n        cy: \"16\",\n        r: \"1.5\",\n        fill: \"currentColor\"\n      })\n    ]\n  });\n}\nfunction lC() {\n  return /* @__PURE__ */ _(\"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__ */ c(\"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__ */ c(\"path\", {\n      d: \"M9 12h6M12 9v6\",\n      stroke: \"currentColor\",\n      strokeWidth: \"1.5\",\n      strokeLinecap: \"round\"\n    })]\n  });\n}\nfunction uC() {\n  return /* @__PURE__ */ _(\"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__ */ c(\"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__ */ c(\"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__ */ c(\"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__ */ c(\"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 fc, zb, Ob = h((() => {\n  mc(), pm(), ui(), mi(), re(), we(), ao(), fc = {\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  }, zb = {\n    password: cC,\n    oauth_google: ln,\n    oauth_apple: un,\n    solana: mn,\n    webauthn_passkey: Lo,\n    webauthn_security_key: Lo,\n    totp: lC,\n    sso_oidc: uC\n  };\n}));\nfunction mC() {\n  const { config: e, logout: r } = fe(), [o, t] = T(!1), [n, i] = T(null), s = B(() => new ue({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    retryAttempts: e.retryAttempts\n  }), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts\n  ]), a = B(() => `${e.serverUrl.replace(/\\/$/, \"\")}/account-deletion`, [e.serverUrl]), d = N(() => {\n    i(null);\n  }, []);\n  return {\n    isLoading: o,\n    error: n,\n    accountDeletionUrl: a,\n    requestDeletionEmail: N(async (l) => {\n      t(!0), i(null);\n      try {\n        await s.post(\"/account-deletion/request\", { email: l });\n      } catch (u) {\n        const m = V(u, \"Unable to send the account deletion link. Please try again.\");\n        throw i(m), m;\n      } finally {\n        t(!1);\n      }\n    }, [s]),\n    deleteAccount: N(async (l = Ub) => {\n      t(!0), i(null);\n      try {\n        await s.post(\"/account-deletion/me\", { confirmText: l }), await r().catch(() => {\n        });\n      } catch (u) {\n        const m = V(u, \"Unable to delete the account. Please review the requirements and try again.\");\n        throw i(m), m;\n      } finally {\n        t(!1);\n      }\n    }, [s, r]),\n    clearError: d\n  };\n}\nvar Ub, gC = h((() => {\n  ie(), me(), Ub = \"DELETE\";\n}));\nfunction hC({ onDeleted: e, className: r = \"\" }) {\n  const { deleteAccount: o, isLoading: t, error: n, clearError: i } = mC(), { confirm: s, dialogProps: a } = li(), [d, l] = T(\"\"), [u, m] = T(null), g = N(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    }) && (m(null), await o(d), m(\"Your account has been deleted.\"), e?.());\n  }, [\n    s,\n    d,\n    o,\n    e\n  ]);\n  return /* @__PURE__ */ _(\"section\", {\n    className: `cedros-account-delete ${r}`.trim(),\n    children: [\n      /* @__PURE__ */ _(\"header\", {\n        className: \"cedros-account-delete-header\",\n        children: [/* @__PURE__ */ c(\"h3\", {\n          className: \"cedros-account-delete-title\",\n          children: \"Delete account\"\n        }), /* @__PURE__ */ c(\"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__ */ _(\"div\", {\n        className: \"cedros-account-delete-note\",\n        children: [/* @__PURE__ */ c(\"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      n && /* @__PURE__ */ c(ae, {\n        error: n,\n        onDismiss: i\n      }),\n      u && /* @__PURE__ */ c(\"div\", {\n        className: \"cedros-account-delete-success\",\n        children: u\n      }),\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-field\",\n        children: [/* @__PURE__ */ _(\"label\", {\n          className: \"cedros-field__label\",\n          htmlFor: \"cedros-delete-account-confirm\",\n          children: [\n            \"Type \",\n            /* @__PURE__ */ c(\"code\", { children: Pt }),\n            \" to confirm\"\n          ]\n        }), /* @__PURE__ */ c(\"input\", {\n          id: \"cedros-delete-account-confirm\",\n          className: \"cedros-input\",\n          type: \"text\",\n          autoComplete: \"off\",\n          spellCheck: !1,\n          placeholder: Pt,\n          value: d,\n          onChange: (p) => l(p.target.value),\n          disabled: t\n        })]\n      }),\n      /* @__PURE__ */ c(\"div\", {\n        className: \"cedros-account-delete-actions\",\n        children: /* @__PURE__ */ c(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-danger cedros-button-md\",\n          onClick: () => {\n            g();\n          },\n          disabled: t || d.trim() !== Pt,\n          children: t ? /* @__PURE__ */ _(ce, { children: [/* @__PURE__ */ c(H, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", { children: \"Deleting account…\" })] }) : \"Delete account\"\n        })\n      }),\n      /* @__PURE__ */ c(Nr, { ...a })\n    ]\n  });\n}\nvar Pt, Vb = h((() => {\n  gC(), ui(), mi(), we(), re(), Pt = \"DELETE\";\n}));\nfunction pC({ className: e = \"\" }) {\n  const { config: r, _internal: o } = $s(), [t, n] = T([]), [i, s] = T(!0), [a, d] = T(null), [l, u] = T(null), m = B(() => new Qd(r.serverUrl, r.requestTimeout, r.retryAttempts, o?.getAccessToken), [\n    r.serverUrl,\n    r.requestTimeout,\n    r.retryAttempts,\n    o?.getAccessToken\n  ]), g = N(async () => {\n    s(!0), d(null);\n    try {\n      n((await m.listAccountCodes()).codes);\n    } catch (f) {\n      d(f instanceof Error ? f.message : \"Unable to load invite codes.\");\n    } finally {\n      s(!1);\n    }\n  }, [m]);\n  F(() => {\n    g();\n  }, [g]);\n  const p = N(async (f) => {\n    if (!navigator.clipboard) {\n      d(\"Clipboard access is not available in this browser.\");\n      return;\n    }\n    try {\n      await navigator.clipboard.writeText(f.code), u(f.id);\n    } catch (v) {\n      d(v instanceof Error ? v.message : \"Unable to copy invite code.\");\n    }\n  }, []);\n  return /* @__PURE__ */ _(\"section\", {\n    className: `cedros-account-card cedros-account-card--pad ${e}`.trim(),\n    children: [\n      /* @__PURE__ */ _(\"header\", {\n        className: \"cedros-account-card__header\",\n        children: [/* @__PURE__ */ c(\"h3\", {\n          className: \"cedros-account-card__title\",\n          children: \"Invite codes\"\n        }), /* @__PURE__ */ c(\"p\", {\n          className: \"cedros-account-card__desc\",\n          children: \"Share your available one-time invite codes.\"\n        })]\n      }),\n      a && /* @__PURE__ */ c(ae, {\n        error: a,\n        onDismiss: () => d(null)\n      }),\n      i ? /* @__PURE__ */ c(H, { label: \"Loading invite codes\" }) : t.length === 0 ? /* @__PURE__ */ c(\"p\", {\n        className: \"cedros-account-card__desc\",\n        children: \"No invite codes are available for your account.\"\n      }) : /* @__PURE__ */ c(\"div\", {\n        className: \"cedros-invite-code-list\",\n        children: t.map((f) => /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-invite-code-row\",\n          children: [/* @__PURE__ */ _(\"div\", { children: [/* @__PURE__ */ c(\"code\", {\n            className: \"cedros-invite-code-value\",\n            children: f.code\n          }), /* @__PURE__ */ c(\"p\", {\n            className: \"cedros-account-card__desc\",\n            children: fC(f)\n          })] }), /* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-outline cedros-button-sm\",\n            onClick: () => {\n              p(f);\n            },\n            children: l === f.id ? \"Copied\" : \"Copy\"\n          })]\n        }, f.id))\n      })\n    ]\n  });\n}\nfunction fC(e) {\n  return `One-time use.${e.expiresAt ? ` Expires ${new Date(e.expiresAt).toLocaleDateString()}.` : \"\"}`;\n}\nvar vC = h((() => {\n  ie(), Y(), pv(), we(), re();\n}));\nfunction bC({ defaultSection: e = \"profile\", onClose: r, onPasswordChange: o, onEmailChange: t, onTotpChange: n, onAccountDeleted: i, onLinkGoogle: s, onLinkApple: a, onAddPasskey: d, onLinkSolana: l, className: u = \"\" }) {\n  const [m, g] = T(e), p = Ne(), f = O([]), v = Jr.find((w) => w.id === m) ?? Jr[0], x = (w, b) => {\n    const k = Jr.length;\n    let y;\n    switch (w.key) {\n      case \"ArrowDown\":\n      case \"ArrowRight\":\n        y = (b + 1) % k;\n        break;\n      case \"ArrowUp\":\n      case \"ArrowLeft\":\n        y = (b - 1 + k) % k;\n        break;\n      case \"Home\":\n        y = 0;\n        break;\n      case \"End\":\n        y = k - 1;\n        break;\n      default:\n        return;\n    }\n    w.preventDefault(), g(Jr[y].id), f.current[y]?.focus();\n  };\n  return /* @__PURE__ */ _(\"div\", {\n    className: `cedros-account ${u}`.trim(),\n    children: [/* @__PURE__ */ c(\"nav\", {\n      className: \"cedros-account__nav\",\n      role: \"tablist\",\n      \"aria-orientation\": \"vertical\",\n      children: Jr.map((w, b) => {\n        const k = w.icon, y = w.id === m;\n        return /* @__PURE__ */ _(\"button\", {\n          ref: (C) => {\n            f.current[b] = C;\n          },\n          type: \"button\",\n          role: \"tab\",\n          id: `${p}-tab-${w.id}`,\n          \"aria-selected\": y,\n          \"aria-controls\": `${p}-panel-${w.id}`,\n          tabIndex: y ? 0 : -1,\n          className: `cedros-account__nav-item${y ? \" cedros-account__nav-item--active\" : \"\"}`,\n          onClick: () => g(w.id),\n          onKeyDown: (C) => x(C, b),\n          children: [/* @__PURE__ */ c(\"span\", {\n            className: \"cedros-account__nav-icon\",\n            \"aria-hidden\": \"true\",\n            children: /* @__PURE__ */ c(k, {})\n          }), /* @__PURE__ */ c(\"span\", {\n            className: \"cedros-account__nav-label\",\n            children: w.label\n          })]\n        }, w.id);\n      })\n    }), /* @__PURE__ */ _(\"div\", {\n      className: \"cedros-account__content\",\n      role: \"tabpanel\",\n      id: `${p}-panel-${m}`,\n      \"aria-labelledby\": `${p}-tab-${m}`,\n      tabIndex: 0,\n      children: [\n        /* @__PURE__ */ _(\"header\", {\n          className: \"cedros-account__header\",\n          children: [/* @__PURE__ */ c(\"h2\", {\n            className: \"cedros-account__title\",\n            children: v.label\n          }), /* @__PURE__ */ c(\"p\", {\n            className: \"cedros-account__description\",\n            children: v.description\n          })]\n        }),\n        /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-account__panel\",\n          children: [\n            m === \"profile\" && /* @__PURE__ */ c(J2, {}),\n            m === \"emails\" && /* @__PURE__ */ c(\"div\", {\n              className: \"cedros-account-card cedros-account-card--pad\",\n              children: /* @__PURE__ */ c(tC, {\n                showHeader: !1,\n                onEmailChange: t\n              })\n            }),\n            m === \"security\" && /* @__PURE__ */ c(QA, {\n              onPasswordChange: o,\n              onTotpChange: n\n            }),\n            m === \"connected\" && /* @__PURE__ */ c(\"div\", {\n              className: \"cedros-account-card cedros-account-card--pad\",\n              children: /* @__PURE__ */ c(sC, {\n                onLinkGoogle: s,\n                onLinkApple: a,\n                onAddPasskey: d,\n                onLinkSolana: l\n              })\n            }),\n            m === \"invites\" && /* @__PURE__ */ c(pC, {}),\n            m === \"danger\" && /* @__PURE__ */ c(hC, { onDeleted: i })\n          ]\n        }, m),\n        r && /* @__PURE__ */ c(\"div\", {\n          className: \"cedros-account__footer\",\n          children: /* @__PURE__ */ c(\"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 po() {\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 yC() {\n  return /* @__PURE__ */ _(\"svg\", {\n    ...po(),\n    children: [/* @__PURE__ */ c(\"path\", { d: \"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\" }), /* @__PURE__ */ c(\"circle\", {\n      cx: \"12\",\n      cy: \"7\",\n      r: \"4\"\n    })]\n  });\n}\nfunction wC() {\n  return /* @__PURE__ */ _(\"svg\", {\n    ...po(),\n    children: [/* @__PURE__ */ c(\"rect\", {\n      width: \"20\",\n      height: \"16\",\n      x: \"2\",\n      y: \"4\",\n      rx: \"2\"\n    }), /* @__PURE__ */ c(\"path\", { d: \"m22 7-8.97 5.7a2 2 0 0 1-2.06 0L2 7\" })]\n  });\n}\nfunction kC() {\n  return /* @__PURE__ */ c(\"svg\", {\n    ...po(),\n    children: /* @__PURE__ */ c(\"path\", { d: \"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\" })\n  });\n}\nfunction xC() {\n  return /* @__PURE__ */ _(\"svg\", {\n    ...po(),\n    children: [/* @__PURE__ */ c(\"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__ */ c(\"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 _C() {\n  return /* @__PURE__ */ _(\"svg\", {\n    ...po(),\n    children: [\n      /* @__PURE__ */ c(\"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__ */ c(\"path\", { d: \"M13 5v2\" }),\n      /* @__PURE__ */ c(\"path\", { d: \"M13 17v2\" }),\n      /* @__PURE__ */ c(\"path\", { d: \"M13 11v2\" })\n    ]\n  });\n}\nfunction AC() {\n  return /* @__PURE__ */ _(\"svg\", {\n    ...po(),\n    children: [/* @__PURE__ */ c(\"path\", { d: \"M3 6h18\" }), /* @__PURE__ */ c(\"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 Jr, CC = h((() => {\n  Z2(), eC(), Db(), Ob(), Vb(), vC(), Jr = [\n    {\n      id: \"profile\",\n      label: \"Profile\",\n      description: \"This is how others will see you.\",\n      icon: yC\n    },\n    {\n      id: \"emails\",\n      label: \"Emails\",\n      description: \"Add and verify the email addresses you can use to sign in.\",\n      icon: wC\n    },\n    {\n      id: \"security\",\n      label: \"Security\",\n      description: \"Your password, two-factor authentication, and signed-in devices.\",\n      icon: kC\n    },\n    {\n      id: \"connected\",\n      label: \"Connected accounts\",\n      description: \"The ways you can sign in to your account.\",\n      icon: xC\n    },\n    {\n      id: \"invites\",\n      label: \"Invite codes\",\n      description: \"Invite codes available for you to share.\",\n      icon: _C\n    },\n    {\n      id: \"danger\",\n      label: \"Danger zone\",\n      description: \"Permanently delete your account.\",\n      icon: AC\n    }\n  ];\n})), SC = h((() => {\n  CC(), lc(), ci(), mc(), oc(), xb(), re(), we(), bb(), Db(), Ob(), hc(), Vb();\n}));\nfunction Bb(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 vc, Fb = h((() => {\n  vc = \"cedros-login-web-styles\";\n})), EC = /* @__PURE__ */ dn({ default: () => TC });\nfunction TC({ props: e, runtimeBaseUrl: r, colorMode: o }) {\n  return /* @__PURE__ */ c(Dv, {\n    config: RC(p2(e, r, o)),\n    children: /* @__PURE__ */ c(LC, {\n      props: e,\n      colorMode: o\n    })\n  });\n}\nfunction RC(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          PC();\n        }\n      }\n    }\n  };\n}\nfunction PC() {\n  typeof window > \"u\" || window.dispatchEvent(new CustomEvent(jb, { detail: { source: \"account-workspace\" } }));\n}\nfunction LC({ props: e, colorMode: r }) {\n  const o = le(), t = pb(e, o), { authState: n, isAuthenticated: i, user: s, logout: a } = cc();\n  return n === \"idle\" || n === \"loading\" ? /* @__PURE__ */ _(\"section\", {\n    className: Tt(\"loading\", r),\n    \"data-cebbwf5-block\": Ir,\n    children: [/* @__PURE__ */ c(\"h2\", {\n      className: \"cedros-account-workspace-block__title\",\n      children: t.title\n    }), /* @__PURE__ */ _(\"div\", {\n      className: \"cedros-account-workspace-block__status\",\n      role: \"status\",\n      children: [/* @__PURE__ */ c(H, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", { children: \"Loading account...\" })]\n    })]\n  }) : i ? /* @__PURE__ */ _(\"section\", {\n    className: Tt(\"interactive\", r),\n    \"data-cebbwf5-block\": Ir,\n    children: [/* @__PURE__ */ _(\"div\", {\n      className: \"cedros-account-workspace-block__header\",\n      children: [/* @__PURE__ */ _(\"div\", {\n        className: \"cedros-account-workspace-block__heading\",\n        children: [/* @__PURE__ */ c(\"h2\", {\n          className: \"cedros-account-workspace-block__title\",\n          children: t.title\n        }), /* @__PURE__ */ c(\"p\", {\n          className: \"cedros-account-workspace-block__body\",\n          children: s?.email ? s.email : t.body\n        })]\n      }), /* @__PURE__ */ c(\"button\", {\n        type: \"button\",\n        className: \"cedros-button cedros-button-outline cedros-button-sm\",\n        onClick: () => {\n          a();\n        },\n        children: o.buttons.signOut\n      })]\n    }), /* @__PURE__ */ c(bC, { className: \"cedros-account-workspace-block__settings\" })]\n  }) : /* @__PURE__ */ _(\"section\", {\n    className: Tt(\"signed-out\", r),\n    \"data-cebbwf5-block\": Ir,\n    children: [\n      /* @__PURE__ */ c(\"h2\", {\n        className: \"cedros-account-workspace-block__title\",\n        children: t.title\n      }),\n      /* @__PURE__ */ c(\"p\", {\n        className: \"cedros-account-workspace-block__body\",\n        children: t.body\n      }),\n      /* @__PURE__ */ c(\"a\", {\n        className: \"cedros-account-workspace-block__link\",\n        href: di(t.signInHref),\n        children: t.signInLabel\n      })\n    ]\n  });\n}\nvar jb, NC = h((() => {\n  SC(), re(), zv(), ci(), Q(), gb(), Fb(), so(), dc(), jb = \"cedros-login:logout\", Bb(`${Os}\n${zs}`, vc);\n}));\nlu();\nY();\ndc();\nvar IC = Is(() => Promise.resolve().then(() => (NC(), EC)));\nfunction MC({ props: e, runtimeBaseUrl: r, colorMode: o }) {\n  const t = DC(), n = j(M2, {\n    props: e,\n    colorMode: o\n  });\n  return t ? j(Us, { fallback: n }, j(Ns, { fallback: n }, j(IC, {\n    props: e,\n    runtimeBaseUrl: r,\n    colorMode: o\n  }))) : n;\n}\nfunction DC() {\n  const [e, r] = T(!1);\n  return F(() => r(!0), []), e;\n}\ndc();\nso();\nvar zC = {\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}, OC = {\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}, UC = {\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}, VC = {\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}, ft = [\n  {\n    type: Qe,\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: Oe,\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: js,\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: Ir,\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], BC = [\n  hr(0, \"Login Page Template\", \"Starter page for the Cedros Login login flow.\"),\n  hr(1, \"Register Page Template\", \"Starter page for Cedros Login registration.\"),\n  hr(2, \"Password Recovery Page Template\", \"Starter page for password recovery.\"),\n  hr(3, \"Reset Password Page Template\", \"Starter page for choosing a new password from a secure reset link.\"),\n  hr(4, \"Email Verification Page Template\", \"Starter page for confirming an account email address.\"),\n  hr(5, \"Instant Link Verification Page Template\", \"Starter page for completing sign-in from a secure email link.\"),\n  hr(6, \"Invite Acceptance Page Template\", \"Starter page for team invite acceptance.\"),\n  hr(7, \"Profile Workspace Page Template\", \"Starter page for authenticated profile, identity, and security management.\")\n], $b = [\n  {\n    ...ft[0],\n    Component: N2\n  },\n  {\n    ...ft[1],\n    Component: S2\n  },\n  {\n    ...ft[2],\n    Component: I2\n  },\n  {\n    ...ft[3],\n    Component: MC\n  }\n], FC = [\n  zC,\n  OC,\n  UC,\n  VC\n], jC = $b.map(({ type: e, Component: r }, o) => ({\n  type: e,\n  render: ({ block: t, siteData: n, colorMode: i }) => j(r, {\n    props: HC(t.props, FC[o]),\n    runtimeBaseUrl: KC(n),\n    colorMode: i\n  })\n})), $C = [\n  pr(0, [Me(Oe, {\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  pr(1, [Me(Qe, {\n    eyebrow: \"Cedros Login\",\n    title: \"Create your account\",\n    body: \"Choose a sign-in method to create your account and continue.\",\n    primaryLink: Gr(\"/register\", \"Create account\"),\n    secondaryText: \"Already have an account? Sign in instead.\",\n    variant: \"auth\"\n  }), Me(Oe, {\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  pr(2, [Me(Qe, {\n    eyebrow: \"Account recovery\",\n    title: \"Recover access\",\n    body: \"Enter your email and we’ll send instructions if an account exists.\",\n    primaryLink: Gr(\"/password-recovery\", \"Recover access\"),\n    secondaryText: \"For your privacy, we won’t confirm whether an email has an account.\",\n    variant: \"auth\"\n  }), Me(Oe, {\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  pr(3, [Me(Qe, {\n    eyebrow: \"Account recovery\",\n    title: \"Reset password\",\n    body: \"Choose a new password to restore access to your account.\",\n    primaryLink: Gr(\"/reset-password\", \"Reset password\"),\n    secondaryText: \"This link can only be used once and may expire.\",\n    variant: \"auth\"\n  }), Me(Oe, {\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  pr(4, [Me(Qe, {\n    eyebrow: \"Email verification\",\n    title: \"Verify your email\",\n    body: \"Confirm your email address to finish securing your account.\",\n    primaryLink: Gr(\"/verify-email\", \"Verify email\"),\n    secondaryText: \"You can close this page after your email is verified.\",\n    variant: \"auth\"\n  }), Me(Oe, {\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  pr(5, [Me(Qe, {\n    eyebrow: \"Instant link\",\n    title: \"Continue signing in\",\n    body: \"Finish signing in with the secure link from your email.\",\n    primaryLink: Gr(\"/instant-link/verify\", \"Continue\"),\n    secondaryText: \"This link can only be used once and may expire.\",\n    variant: \"auth\"\n  }), Me(Oe, {\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  pr(6, [Me(Qe, {\n    eyebrow: \"Team invite\",\n    title: \"Accept your invite\",\n    body: \"Sign in with the invited account to join the team.\",\n    primaryLink: Gr(\"/accept-invite\", \"Accept invite\"),\n    secondaryText: \"If you’re signed in with another account, you can switch before accepting.\",\n    variant: \"auth\"\n  }), Me(Oe, {\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  pr(7, [Me(Ir, {\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 hr(e, r, o) {\n  return {\n    id: ku[e],\n    displayName: r,\n    description: o,\n    order: e + 1,\n    contentTypes: [\"page\"]\n  };\n}\nfunction Me(e, r) {\n  return {\n    type: e,\n    props: r\n  };\n}\nfunction pr(e, r) {\n  const o = BC[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: WC(e, r)\n    }],\n    blocks: r,\n    nativeFallback: \"Display owner-authored content or omit this web-only builder template.\"\n  };\n}\nfunction qC(e) {\n  return [...new Set(e.map((r) => r.type))];\n}\nfunction WC(e, r) {\n  return e === 0 ? [Qe, Oe] : qC(r);\n}\nfunction Gr(e, r) {\n  return {\n    kind: \"cedros-link\",\n    href: e,\n    label: r\n  };\n}\nfunction HC(e, r) {\n  const o = Object.keys(r.properties ?? {}), t = {};\n  for (const n of o) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);\n  return t;\n}\nfunction KC(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}\ndu();\ncu();\nFb();\nBb(`${Os}\n${zs}`, vc);\nvar GC = {\n  manifest: Bo,\n  contentBlocks: $b,\n  contentBlockRenderers: jC,\n  contentTemplates: $C\n};\nfunction oS() {\n  return GC;\n}\nexport {\n  oS as default\n};\n","imports":[{"dynamic":false,"end":26,"specifier":"react","start":21},{"dynamic":false,"end":405,"specifier":"react","start":400},{"dynamic":false,"end":478,"specifier":"react/jsx-runtime","start":461}],"hasUnsupportedDynamicImports":true}]}