{"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: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-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 Jb, Component as Zl, Fragment as Ss, Suspense as Cs, createContext as We, createElement as j, forwardRef as Zb, isValidElement as Qb, lazy as Ts, memo as Ql, useCallback as L, useContext as se, useEffect as Rs, useId as Ke, useInsertionEffect as Ps, useLayoutEffect as ey, useMemo as V, useRef as z, useState as T, useSyncExternalStore as eu } from \"react\";\nimport { Fragment as he, jsx as c, jsxs as _ } from \"react/jsx-runtime\";\nvar ry = Object.create, Lo = Object.defineProperty, oy = Object.getOwnPropertyDescriptor, ty = Object.getOwnPropertyNames, iy = Object.getPrototypeOf, ru = Object.prototype.hasOwnProperty, h = (e, r) => () => (e && (r = e(e = 0)), r), te = (e, r) => () => (r || (e((r = { exports: {} }).exports, r), e = null), r.exports), ai = (e, r) => {\n  let o = {};\n  for (var t in e)\n    Lo(o, t, {\n      get: e[t],\n      enumerable: !0\n    });\n  return r || Lo(o, Symbol.toStringTag, { value: \"Module\" }), o;\n}, ou = (e, r, o, t) => {\n  if (r && typeof r == \"object\" || typeof r == \"function\")\n    for (var i = ty(r), n = 0, s = i.length, a; n < s; n++)\n      a = i[n], !ru.call(e, a) && a !== o && Lo(e, a, {\n        get: ((d) => r[d]).bind(null, a),\n        enumerable: !(t = oy(r, a)) || t.enumerable\n      });\n  return e;\n}, ny = (e, r, o) => (o = e != null ? ry(iy(e)) : {}, ou(r || !e || !e.__esModule ? Lo(o, \"default\", {\n  value: e,\n  enumerable: !0\n}) : o, e)), sy = (e) => ru.call(e, \"module.exports\") ? e[\"module.exports\"] : ou(Lo({}, \"__esModule\", { value: !0 }), e), Ls, tu = h((() => {\n  Ls = `.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-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})), Ns, iu = h((() => {\n  Ns = ':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-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}));\ntu();\niu();\nvar ay = \"cedros-login\", dy = \"Cedros Login\", cy = \"1.0.17\", ly = \"Authentication and identity extension for Cedros with auth flows, account lifecycle, and CRM integration metadata.\", uy = {\n  platformApiVersion: \"1\",\n  minCedrosDataVersion: \"0.1.10\",\n  witChecksum: \"5f2c9823127864b7fb7ecd4599cf0681ae2fa63c8028ae2259acb271b23c7c58\"\n};\nvar my = {\n  server: {\n    packageName: \"cedros-login\",\n    version: \"1.0.17\",\n    required: !0\n  },\n  react: {\n    packageName: \"@cedros/login-react\",\n    version: \"1.0.17\",\n    required: !0\n  },\n  reactNative: {\n    packageName: \"@cedros/login-react-native\",\n    version: \"1.0.17\",\n    required: !0\n  }\n}, gy = {\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  extensions: []\n}, hy = [\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], py = /* @__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: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: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-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: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 exactly one confirmation factor: password for password-backed accounts, or a current TOTP code or recovery code for passwordless accounts.\",\"endpoint\":{\"method\":\"POST\",\"path\":\"/mfa/disable\"},\"id\":\"cedros-login:disable-mfa\",\"inputSchema\":{\"additionalProperties\":false,\"description\":\"Provide exactly one field. Password-backed accounts use password. Passwordless accounts use code or recoveryCode.\",\"maxProperties\":1,\"minProperties\":1,\"properties\":{\"code\":{\"description\":\"Current authenticator app code for passwordless accounts.\",\"minLength\":1,\"type\":\"string\"},\"password\":{\"description\":\"Current account password for password-backed accounts.\",\"minLength\":1,\"type\":\"string\"},\"recoveryCode\":{\"description\":\"Unused MFA recovery code for passwordless accounts.\",\"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\"}]}}'), fy = {\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}, vy = [\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], by = [{\n  moduleId: \"cedros-login:admin\",\n  extensionId: \"cedros-login\",\n  displayName: \"Cedros Login\",\n  version: \"1.0.17\",\n  packageName: \"@cedros/login-react\",\n  sectionIds: [\"cedros-login:login\"],\n  sectionIcons: { \"cedros-login:login\": \"account\" },\n  navigation: {\n    sections: [{\n      id: \"cedros-login:login\",\n      label: \"Login\",\n      group: \"Extension Settings\",\n      order: 0,\n      requiredPermission: \"manage_settings\",\n      replacesSectionIds: [\n        \"cedros-data:account-settings\",\n        \"account-settings\",\n        \"cedros-login:account-settings\",\n        \"cedros-login:settings-email\",\n        \"cedros-login:settings-webhooks\",\n        \"cedros-login:settings-server\",\n        \"cedros-login:settings-images\",\n        \"cedros-login:activity\"\n      ],\n      adminPageAccess: { routePath: \"/settings/login\" }\n    }],\n    groups: [{\n      id: \"Extension Settings\",\n      label: \"Extension Settings\",\n      order: 1\n    }]\n  },\n  slots: [],\n  contributions: { dashboardCards: [{\n    id: \"cedros-login:identity-health-card\",\n    displayName: \"User Growth\",\n    description: \"Shows login-backed account growth, verification, active login, invite, and provider-mix health.\",\n    order: 20\n  }] }\n}], yy = { 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] }, wy = [{\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}], ky = [{\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}], xy = [\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    ],\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: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: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], _y = { 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}] }, Ay = [\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], Ey = [\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], Sy = [\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}], Ty = [{\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}], Ry = [{\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}], Py = [{\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}], Ly = {\n  schemaVersion: 1,\n  extensionId: ay,\n  displayName: dy,\n  version: cy,\n  description: ly,\n  compatibility: uy,\n  platformApiVersion: \"1\",\n  packageFamily: my,\n  dependencies: gy,\n  requiredCapabilities: hy,\n  surfaces: py,\n  registration: fy,\n  capabilities: vy,\n  adminModules: by,\n  analytics: yy,\n  providerAccess: wy,\n  crmSourceAccess: ky,\n  databaseAccess: xy,\n  setupSeeds: _y,\n  pageSeeds: Ay,\n  contentBlocks: Ey,\n  contentTemplates: Sy,\n  formTemplates: Cy,\n  docsArticles: Ty,\n  onboardingPages: Ry,\n  jobSchedules: Py\n}, Fo = Ly, ZE = Fo.extensionId, QE = Fo.version, hc = \"cedros-login:admin\", eS = Fo.packageFamily, Ny = (() => {\n  const e = Fo.adminModules?.find((r) => r.moduleId === hc);\n  if (!e) throw new Error(`Canonical manifest is missing admin module ${hc}`);\n  return e;\n})(), rS = Ny.navigation, Is, nu = h((() => {\n  Is = class extends Zl {\n    constructor(e) {\n      super(e), this.state = {\n        hasError: !1,\n        error: null,\n        errorInfo: null\n      };\n    }\n    static getDerivedStateFromError(e) {\n      return {\n        hasError: !0,\n        error: e\n      };\n    }\n    componentDidCatch(e, r) {\n      this.setState({ errorInfo: r }), console.error(\"[Cedros Login] Error caught by ErrorBoundary:\", e), console.error(\"[Cedros Login] Component stack:\", r.componentStack), this.props.onError?.(e, r);\n    }\n    handleRetry = () => {\n      this.setState({\n        hasError: !1,\n        error: null,\n        errorInfo: null\n      });\n    };\n    render() {\n      const { hasError: e, error: r, errorInfo: o } = this.state, { children: t, fallback: i, showDetails: n = !1 } = this.props;\n      return e ? i || /* @__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            n && 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 K = h((() => {\n})), di, su = h((() => {\n  di = We(null);\n})), au, Iy = h((() => {\n  au = {\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      settingAppliesImmediately: \"Applies immediately\",\n      settingAppliesAfterRestart: \"Applies after restart\",\n      settingManagedByHost: \"Managed by the deployment host\",\n      settingUnsupported: \"Unsupported by this runtime; retained for compatibility\",\n      authTitle: \"Authentication\",\n      authDescription: \"Configure authentication providers and methods for user sign-in.\",\n      methodsTab: \"Methods\",\n      behaviorTab: \"Behavior\",\n      advancedTab: \"Advanced\",\n      signupLimitsTab: \"Signup limits\",\n      inviteCodesTab: \"Invite codes\",\n      signupLimitsTitle: \"Signup limits\",\n      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, Ms = h((() => {\n  Iy(), 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    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      inviteCodeWaitlistBody: \"Enter your invite code for early access. If you don’t have a code, don’t worry—we’ve added you to the waitlist and will email you when you’re eligible.\",\n      inviteCodeWaitlistFallbackBody: \"Enter your invite code for early access. We couldn’t confirm your waitlist enrollment yet. Please sign in again to retry, or use the site’s waitlist form.\",\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      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: \"We sent a sign-in link to {email}. Click the link to sign in.\",\n      backToLogin: \"Back to login\",\n      resetYourPassword: \"Reset your password\",\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      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      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 10 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: au,\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 wr(e) {\n  if (!e) return \"en\";\n  try {\n    return Intl.getCanonicalLocales(e)[0] ?? \"en\";\n  } catch {\n    return \"en\";\n  }\n}\nfunction My(e, r = {}, o = \"en\") {\n  const t = wr(o);\n  return e.replace(cu, (i, n, s, a) => {\n    const d = Number(r[n]);\n    return Number.isFinite(d) && new Intl.PluralRules(t).select(d) === \"one\" ? s : a;\n  }).replace(lu, (i, n) => {\n    const s = r[n];\n    return s == null ? \"\" : String(s);\n  });\n}\nfunction Dy(e, r, o) {\n  return new Intl.NumberFormat(wr(r), o).format(e);\n}\nfunction du(e, r, o) {\n  const t = e instanceof Date ? e : new Date(e);\n  return Number.isNaN(t.getTime()) ? \"\" : new Intl.DateTimeFormat(wr(r), o).format(t);\n}\nfunction zy(e, r, o) {\n  return du(e, r, {\n    dateStyle: \"medium\",\n    timeStyle: \"short\",\n    ...o\n  });\n}\nfunction Oy(e, r, o) {\n  return new Intl.RelativeTimeFormat(wr(r), {\n    numeric: \"auto\",\n    ...o\n  }).format(e, \"day\");\n}\nfunction Uy(e, r, o) {\n  return new Intl.Collator(wr(e), {\n    sensitivity: \"base\",\n    numeric: !0\n  }).compare(r, o);\n}\nfunction By(e, r, o = \"en\") {\n  const t = wr(r);\n  if (!e.startsWith(\"/\") || t === wr(o)) return e;\n  const i = e.split(\"/\").filter(Boolean);\n  return i[0] === t ? e : `/${[t, ...i].join(\"/\")}`;\n}\nvar cu, lu, Ds = h((() => {\n  cu = /\\{(\\w+),\\s*plural,\\s*one\\s*\\{([^{}]*)\\}\\s*other\\s*\\{([^{}]*)\\}\\s*\\}/g, lu = /\\{(\\w+)\\}/g;\n}));\nfunction Vy(e, r) {\n  return uu(e, r);\n}\nfunction uu(e, r) {\n  const o = { ...e };\n  for (const t in r) if (Object.prototype.hasOwnProperty.call(r, t)) {\n    const i = e[t], n = r[t];\n    typeof i == \"object\" && i !== null && typeof n == \"object\" && n !== null ? o[t] = uu(i, n) : n !== void 0 && (o[t] = n);\n  }\n  return o;\n}\nvar mu = h((() => {\n}));\nfunction Fy({ children: e, locale: r = \"en\", translations: o }) {\n  const t = V(() => {\n    const i = wr(r);\n    return {\n      t: o ? Vy(Lt, o) : Lt,\n      locale: i\n    };\n  }, [o, r]);\n  return /* @__PURE__ */ c(di.Provider, {\n    value: t,\n    children: e\n  });\n}\nvar jy = h((() => {\n  su(), Ms(), Ds(), mu();\n}));\nfunction ie() {\n  return se(di)?.t ?? Lt;\n}\nfunction $y() {\n  return se(di)?.locale ?? \"en\";\n}\nfunction dr() {\n  const e = ie(), r = $y();\n  return {\n    t: e,\n    locale: r,\n    message: (o, t) => My(o, t, r),\n    number: (o, t) => Dy(o, r, t),\n    date: (o, t) => du(o, r, t),\n    dateTime: (o, t) => zy(o, r, t),\n    relativeDays: (o, t) => Oy(o, r, t),\n    compare: (o, t) => Uy(r, o, t),\n    path: (o, t) => By(o, r, t)\n  };\n}\nvar qy = h((() => {\n  su(), Ms(), Ds();\n})), J = h((() => {\n  jy(), qy(), Ds(), Ms(), mu();\n})), pc, q, Q = h((() => {\n  J(), pc = {\n    sm: 16,\n    md: 24,\n    lg: 32,\n    xl: 48\n  }, q = Ql(function({ size: r = \"md\", className: o = \"\", style: t, label: i, announce: n = !1 }) {\n    const s = ie(), a = pc[r], d = i ?? 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\": n ? \"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 n ? /* @__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 Wy(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 zs) if (o.startsWith(t)) return;\n  try {\n    const t = new URL(r);\n    return hu.includes(t.protocol) ? r : void 0;\n  } catch {\n    return;\n  }\n}\nfunction gu(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 zs) 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 hu, zs, pu = h((() => {\n  hu = [\"https:\"], zs = [\n    \"javascript:\",\n    \"data:\",\n    \"vbscript:\",\n    \"file:\"\n  ];\n})), Qe, Me, Os, Ir, fu, io = h((() => {\n  Qe = \"cedros-login:auth-page-copy\", Me = \"cedros-login:auth-form\", Os = \"cedros-login:login-button\", Ir = \"cedros-login:account-workspace\", fu = [\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 Hy(e, r, o) {\n  if (!e) return o;\n  let t = !1;\n  const i = { ...o };\n  for (const n of r) {\n    const s = e.elements.namedItem(n.name), a = s && \"value\" in s ? String(s.value) : \"\";\n    i[n.name] !== a && (i[n.name] = a, t = !0);\n  }\n  return t ? i : o;\n}\nvar Ky = h((() => {\n}));\nfunction Gy(e, r) {\n  return e === \"forgot-password\" ? [tr(\"email\", r.auth.emailAddress, \"email\", \"email\", r.auth.emailPlaceholder)] : e === \"verify-email\" || e === \"instant-link-verify\" || e === \"accept-invite\" ? [] : e === \"reset-password\" ? [tr(\"new_password\", r.auth.newPassword, \"password\", \"new-password\", r.auth.createPassword), tr(\"confirmPassword\", r.auth.confirmPassword, \"password\", \"new-password\", r.auth.confirmYourPassword)] : e === \"create-account\" ? [\n    tr(\"name\", r.auth.name, \"text\", \"name\", r.auth.namePlaceholder),\n    tr(\"email\", r.auth.email, \"email\", \"email\", r.auth.emailPlaceholder),\n    tr(\"password\", r.auth.password, \"password\", \"new-password\", r.auth.createPassword),\n    tr(\"confirmPassword\", r.auth.confirmPassword, \"password\", \"new-password\", r.auth.confirmYourPassword)\n  ] : [tr(\"email\", r.auth.email, \"email\", \"email\", r.auth.emailPlaceholder), tr(\"password\", r.auth.password, \"password\", \"current-password\", r.auth.enterPassword)];\n}\nfunction tr(e, r, o, t, i) {\n  return {\n    name: e,\n    label: r,\n    type: o,\n    autoComplete: t,\n    placeholder: i\n  };\n}\nvar Yy = h((() => {\n}));\nfunction Xy(e, r, o = !1) {\n  const t = e.filter((s) => s !== \"email\" && s !== \"instant-link\"), i = o ? t.filter((s) => !vu.has(s)) : t, n = Jy(r);\n  return i.sort((s, a) => {\n    const d = fc(s, n), l = fc(a, n);\n    return d === l ? i.indexOf(s) - i.indexOf(a) : d - l;\n  });\n}\nfunction Jy(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 fc(e, r) {\n  const o = r.indexOf(e);\n  return o === -1 ? r.length : o;\n}\nvar vt, vu, Zy = h((() => {\n  vt = [\n    \"solana\",\n    \"passkey\",\n    \"google\",\n    \"apple\"\n  ], vu = /* @__PURE__ */ new Set([\"apple\", \"solana\"]);\n}));\nfunction Qy(e, r = {}) {\n  switch (rw(e)) {\n    case \"google\":\n      return /* @__PURE__ */ c(ci, { ...r });\n    case \"apple\":\n      return /* @__PURE__ */ c(li, { ...r });\n    case \"passkey\":\n      return /* @__PURE__ */ c(No, { ...r });\n    case \"solana\":\n      return /* @__PURE__ */ c(ui, { ...r });\n  }\n}\nfunction ew() {\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 ci({ 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 li({ 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 ui({ 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 No({ 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 rw(e) {\n  return e === \"webauthn\" ? \"passkey\" : e;\n}\nvar no = h((() => {\n})), jo, mi, bu = h((() => {\n  jo = We(null), mi = We(null);\n}));\nfunction fe() {\n  const e = se(jo), r = se(mi);\n  if (!e || !r) throw new Error(\"useCedrosLogin must be used within a CedrosLoginProvider\");\n  return {\n    ...e,\n    ...r\n  };\n}\nfunction yu() {\n  const e = se(jo), r = se(mi);\n  return e && r ? {\n    ...e,\n    ...r\n  } : null;\n}\nfunction Us() {\n  const e = se(jo);\n  if (!e) throw new Error(\"useAuthState must be used within a CedrosLoginProvider\");\n  return e;\n}\nvar ne = h((() => {\n  bu();\n}));\nfunction gi(e) {\n  if (!e || typeof e != \"object\") return;\n  const { remaining: r, limit: o, period: t, resetsAt: i } = e, n = typeof i == \"string\" ? Date.parse(i) : NaN;\n  if (!(!Number.isSafeInteger(r) || !Number.isSafeInteger(o) || r < 0 || o < 1 || r > o || typeof t != \"string\" || !wu.includes(t) || typeof i != \"string\" || !ku.test(i) || !Number.isFinite(n) || n <= Date.now()))\n    return {\n      remaining: r,\n      limit: o,\n      period: t,\n      resetsAt: i\n    };\n}\nvar wu, ku, hi = h((() => {\n  wu = [\n    \"daily\",\n    \"weekly\",\n    \"monthly\"\n  ], ku = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$/i;\n}));\nfunction ow(e, r) {\n  const o = yu(), t = o?.config.serverUrl ?? Au(), i = tw(r ? null : t), n = o ? iw(o.isFeatureEnabled, o.config) : null, s = r ?? n ?? i;\n  return s ? e.filter((a) => nw(a, s)) : e.filter((a) => a === \"email\");\n}\nfunction tw(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 i = new AbortController(), n = window.setTimeout(() => i.abort(), Su);\n    return fetch(`${e}/features`, {\n      credentials: \"omit\",\n      signal: i.signal\n    }).then((s) => s.ok ? s.json() : null).then((s) => {\n      t && o(xu(s));\n    }).catch(() => {\n      t && o(null);\n    }).finally(() => window.clearTimeout(n)), () => {\n      t = !1, window.clearTimeout(n), i.abort();\n    };\n  }, [e]), r;\n}\nfunction iw(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 xu(e) {\n  if (!e || typeof e != \"object\") return null;\n  const r = e, o = vc(r.googleClientId), t = vc(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: gi(r.signupAvailability)\n  };\n}\nfunction _u(e) {\n  return xu(e);\n}\nfunction nw(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 Au() {\n  return typeof window > \"u\" ? null : `${window.location.origin}${Eu}`;\n}\nfunction vc(e) {\n  return typeof e == \"string\" && e.trim() ? e.trim() : void 0;\n}\nvar Eu, Su, Cu = h((() => {\n  ne(), K(), hi(), Eu = \"/extensions/cedros-login\", Su = 5e3;\n}));\nfunction sw({ props: e, suppressClientConditionalProviderButtons: r = !1, colorMode: o }) {\n  const t = ie(), i = aw(e, t), n = V(() => Gy(i.mode, t), [i.mode, t]), s = Ke(), [a, d] = T({}), l = ow(i.providers, i.features), u = Xy(l, i.socialButtonOrder, r), m = mw(i.mode, t), g = n.length > 0 && n.every((w) => (a[w.name] ?? \"\").trim()), p = (w, E) => {\n    d((P) => ({\n      ...P,\n      [w]: E\n    }));\n  }, f = L(() => {\n    d((w) => Hy(fw(s), n, w));\n  }, [n, s]);\n  F(() => {\n    f();\n    const w = window.setTimeout(f, 250);\n    return () => window.clearTimeout(w);\n  }, [f]);\n  const y = i.mode === \"sign-in\" || i.mode === \"create-account\", x = i.mode === \"create-account\" ? \"register\" : \"login\", b = j(\"form\", {\n    key: \"form\",\n    id: s,\n    className: \"cedros-form\",\n    onSubmit: (w) => w.preventDefault(),\n    onInput: f,\n    onChange: f,\n    onFocus: f\n  }, [\n    ...n.map((w) => uw(w, a[w.name] ?? \"\", p, t)),\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    }, i.submitLabel),\n    y ? m : null\n  ].filter(Boolean)), k = [\n    i.showProviderButtons && dw(u, t),\n    i.showProviderButtons && u.length > 0 && l.includes(\"email\") ? cw(t) : null,\n    lw(i.mode, t),\n    y ? j(\"div\", {\n      key: \"tabpanel\",\n      role: \"tabpanel\",\n      id: `cedros-tabpanel-${x}`,\n      \"aria-labelledby\": `cedros-tab-${x}`\n    }, b) : b,\n    !y && i.successMessage ? j(\"p\", {\n      key: \"success\",\n      className: \"cedros-auth-form__success\"\n    }, i.successMessage) : null\n  ].filter(Boolean), v = y ? [j(\"div\", {\n    key: \"login-form\",\n    className: \"cedros-login-form\"\n  }, k)] : k;\n  return j(\"section\", {\n    className: Tu(i.layout, o),\n    \"data-auth-mode\": i.mode,\n    \"data-cebbwf5-block\": Me\n  }, [j(\"h2\", {\n    key: \"title\",\n    className: \"cedros-auth-form__title\"\n  }, i.title), j(\"div\", {\n    key: \"panel\",\n    className: \"cedros-auth-form__panel\"\n  }, v)].filter(Boolean));\n}\nfunction Tu(e, r) {\n  return `cedros-auth-form cedros-auth-form--${e}${r === \"dark\" ? \" cebbwf5-dark\" : \"\"}`;\n}\nfunction aw(e, r) {\n  const o = Bs(e.mode), t = gw(o, r), i = vw(e.enabledProviders, o), n = o === \"sign-in\" || o === \"create-account\";\n  return {\n    mode: o,\n    title: gn(e.title) || t.title,\n    submitLabel: n ? t.submitLabel : gn(e.submitLabel) || t.submitLabel,\n    successMessage: gn(e.successMessage) || t.successMessage,\n    features: _u(e.features),\n    socialButtonOrder: yw(e.socialButtonOrder),\n    showProviderButtons: e.showProviderButtons === !0 || e.showProviderButtons !== !1 && i.some((s) => s !== \"email\"),\n    providers: i,\n    layout: e.layout === \"inline\" || e.layout === \"compact\" ? e.layout : \"card\"\n  };\n}\nfunction dw(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  }, Qy(o, { className: \"cedros-auth-form__provider-svg\" })), j(\"span\", { key: \"label\" }, pw(o, r))])));\n}\nfunction cw(e) {\n  return j(\"div\", {\n    key: \"divider\",\n    className: \"cedros-divider\"\n  }, j(\"span\", null, e.messages.orContinueWith));\n}\nfunction lw(e, r) {\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  }, [bc(\"login\", r.auth.tabs.signIn, e === \"sign-in\"), bc(\"register\", r.auth.tabs.signUp, e === \"create-account\")]);\n}\nfunction bc(e, r, o) {\n  return j(\"button\", {\n    key: e,\n    type: \"button\",\n    id: `cedros-tab-${e}`,\n    className: `cedros-tab ${o ? \"cedros-tab-active\" : \"\"}`,\n    role: \"tab\",\n    \"aria-selected\": o,\n    \"aria-controls\": `cedros-tabpanel-${e}`,\n    tabIndex: o ? 0 : -1\n  }, r);\n}\nfunction uw(e, r, o, t) {\n  const i = e.type === \"password\", n = e.name === \"password\" && e.autoComplete === \"current-password\", s = j(\"input\", {\n    key: \"input\",\n    id: 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: (d) => o(e.name, d.target.value),\n    onChange: (d) => o(e.name, d.target.value)\n  }), a = j(\"label\", {\n    key: \"label\",\n    htmlFor: 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  }, [a, n ? 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  }, [s, j(\"button\", {\n    key: \"toggle\",\n    type: \"button\",\n    className: \"cedros-password-toggle\",\n    \"aria-label\": t.auth.showPassword,\n    tabIndex: -1\n  }, ew())])])) : j(\"div\", {\n    key: e.name,\n    className: \"cedros-form-field\"\n  }, [a, s]);\n}\nfunction mw(e, r) {\n  return e === \"sign-in\" ? yc(r.auth.dontHaveAccount, \"/register\", r.auth.tabs.signUp) : e === \"create-account\" ? yc(r.auth.alreadyHaveAccount, \"/login\", r.auth.tabs.signIn) : null;\n}\nfunction yc(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 gw(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 hw(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 pw(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] ?? hw(e, r);\n}\nfunction fw(e) {\n  if (typeof document > \"u\") return null;\n  const r = document.getElementById(e);\n  return r instanceof HTMLFormElement ? r : null;\n}\nfunction Bs(e) {\n  return typeof e == \"string\" && Ru.includes(e) ? e : \"sign-in\";\n}\nfunction vw(e, r) {\n  const o = (Array.isArray(e) ? e.filter(bw) : Vn[r]).filter((t, i, n) => n.indexOf(t) === i);\n  return o.length ? o : Vn[r];\n}\nfunction bw(e) {\n  return typeof e == \"string\" && Pu.includes(e);\n}\nfunction yw(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 gn(e) {\n  return typeof e == \"string\" ? e : \"\";\n}\nvar Ru, Vn, Pu, Lu = h((() => {\n  K(), J(), Ky(), Yy(), Zy(), no(), Cu(), io(), Ru = [\n    \"sign-in\",\n    \"create-account\",\n    \"forgot-password\",\n    \"reset-password\",\n    \"verify-email\",\n    \"instant-link-verify\",\n    \"accept-invite\"\n  ], Vn = {\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  }, Pu = [\n    \"email\",\n    \"google\",\n    \"apple\",\n    \"solana\",\n    \"passkey\",\n    \"instant-link\"\n  ];\n}));\nfunction Ur() {\n  return se(Vs) ?? Nu;\n}\nvar Nu, Vs, Br = h((() => {\n  Nu = { requestDeviceAccountLink: async () => ({ action: \"create\" }) }, Vs = We(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 >= Fn) return o;\n  }\n  const r = document.cookie.split(\";\");\n  for (const o of r) {\n    const [t, ...i] = o.trim().split(\"=\"), n = i.join(\"=\");\n    if (t.toLowerCase() === \"xsrf-token\") try {\n      const s = decodeURIComponent(n.trim());\n      if (s.length >= Fn) return s;\n    } catch {\n      continue;\n    }\n  }\n  return null;\n}\nvar Fn, Fs = h((() => {\n  Fn = 32;\n}));\nfunction ww(e, r, o = Mu) {\n  const t = xw(e.code ?? e.error), i = _w(e.details);\n  return {\n    code: t,\n    message: o[t] ?? e.message ?? e.detail ?? i ?? r,\n    ...Aw(e.details) ? { details: e.details } : {}\n  };\n}\nfunction kw(e = \"Unable to reach the server. Check your connection and try again.\") {\n  return {\n    code: \"NETWORK_ERROR\",\n    message: e\n  };\n}\nfunction O(e, r, o = {}) {\n  if (typeof e == \"object\" && e !== null && \"name\" in e && e.name === \"AbortError\") return {\n    code: \"NETWORK_ERROR\",\n    message: o.timeoutMessage ?? \"The request timed out. Check your connection and try again.\"\n  };\n  if (Ew(e)) return e;\n  if (Iu(e)) {\n    const t = ww(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  } : kw(o.networkMessage);\n}\nfunction Iu(e) {\n  return typeof e == \"object\" && e !== null && \"isApiError\" in e;\n}\nfunction xw(e) {\n  if (!e) return \"SERVER_ERROR\";\n  const r = jn[e] ?? jn[e.toLowerCase()];\n  if (r) return r;\n  const o = e.toUpperCase();\n  return Du.has(o) ? o : \"SERVER_ERROR\";\n}\nfunction _w(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 Aw(e) {\n  return typeof e == \"object\" && e !== null && !Array.isArray(e);\n}\nfunction Ew(e) {\n  return typeof e == \"object\" && e !== null && \"code\" in e && \"message\" in e;\n}\nvar Mu, Du, jn, Sw = h((() => {\n  Mu = {\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  }, Du = /* @__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  ]), jn = {\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 js() {\n  clearTimeout(hn), hn = void 0;\n  const e = Date.now();\n  let r = 1 / 0;\n  for (const [o, t] of je) t.expiresAt <= e ? je.delete(o) : r = Math.min(r, t.expiresAt);\n  for (; je.size > 256; ) {\n    const o = je.keys().next();\n    o.done || je.delete(o.value);\n  }\n  je.size && (hn = setTimeout(js, Math.min(2147483647, Math.max(1, r - e))));\n}\nfunction Cw(e, r, o, t = {}) {\n  const i = fr.get(r);\n  if (i) return i;\n  const n = je.get(r);\n  if (!t.forceRefresh && n?.value !== void 0 && n.expiresAt > Date.now()) return Promise.resolve(n.value);\n  je.delete(r);\n  const s = Promise.resolve().then(o).then((a) => {\n    if (fr.get(r) === s) {\n      fr.delete(r);\n      const d = t.cacheTtlMs ?? 0;\n      d > 0 && Number.isFinite(d) && je.set(r, {\n        value: a,\n        expiresAt: Date.now() + d\n      }), js();\n    }\n    return a;\n  }, (a) => {\n    throw fr.get(r) === s && fr.delete(r), a;\n  });\n  return fr.set(r, s), s;\n}\nfunction Tw(e) {\n  for (const r of [je, fr]) for (const o of r.keys()) o.startsWith(`${e}\\0`) && r.delete(o);\n  js();\n}\nfunction Rw(e) {\n  return Object.entries(e ?? {}).sort(([r], [o]) => r.localeCompare(o)).map(([r, o]) => `${r.toLowerCase()}:${o}`).join(`\n`);\n}\nvar Pw, je, fr, hn, Lw = h((() => {\n  Pw = 256, je = /* @__PURE__ */ new Map(), fr = /* @__PURE__ */ new Map();\n}));\nfunction wc(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 Nw(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 i;\n  const n = new Promise((a, d) => {\n    i = d;\n  }), s = setTimeout(() => {\n    t && o.abort();\n    const a = /* @__PURE__ */ new Error(\"Request timed out\");\n    a.name = \"AbortError\", i(a);\n  }, r);\n  return {\n    signal: t,\n    timedOut: n,\n    cancel: () => clearTimeout(s)\n  };\n}\nasync function Iw(e, r, o, t) {\n  const i = Nw(e, o);\n  try {\n    return await Promise.race([fetch(e, {\n      ...r,\n      ...i.signal ? { signal: i.signal } : {}\n    }).then(t), i.timedOut]);\n  } finally {\n    i.cancel();\n  }\n}\nfunction Mw(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 Dw(e) {\n  return new Promise((r) => setTimeout(r, e));\n}\nvar kc, xc, ce, le = h((() => {\n  Fs(), Sw(), Lw(), kc = 1e4, xc = 2, ce = class {\n    baseUrl;\n    timeoutMs;\n    retryAttempts;\n    getAccessToken;\n    constructor(e) {\n      this.baseUrl = e.baseUrl, this.timeoutMs = e.timeoutMs ?? kc, this.retryAttempts = e.retryAttempts ?? xc, this.getAccessToken = e.getAccessToken;\n    }\n    async request(e) {\n      const { method: r, path: o, body: t, credentials: i = \"include\", skipRetry: n = !1, headers: s, validator: a } = e, d = `${this.baseUrl}${o}`, l = n || !(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 Iw(d, {\n          method: r,\n          headers: u,\n          credentials: i,\n          body: t !== void 0 ? JSON.stringify(t) : void 0\n        }, this.timeoutMs, async (y) => {\n          const x = y.headers.get(\"content-type\") || \"\";\n          let b = {};\n          if (x.includes(\"application/json\")) {\n            if (y.status !== 204) try {\n              b = await y.json();\n            } catch (k) {\n              if (k instanceof Error && k.name === \"AbortError\") throw k;\n              const v = k instanceof Error ? k.message : \"parse failed\";\n              throw new Error(`Invalid JSON response: ${v}`);\n            }\n          } else {\n            const k = await y.text();\n            if (k) {\n              const v = k.length > 200 ? k.slice(0, 200) + \"...\" : k;\n              b = { message: x.includes(\"text/html\") || k.trimStart().startsWith(\"<\") ? `Unexpected HTML response (${y.status}). The server may be unavailable.` : v };\n            }\n          }\n          if (!y.ok) throw {\n            isApiError: !0,\n            data: b,\n            status: y.status,\n            retryable: y.status >= 500\n          };\n          return r !== \"GET\" && r !== \"HEAD\" && Tw(this.baseUrl), wc(b, a);\n        });\n      } catch (y) {\n        if (p = y, f < l && Mw(y)) {\n          await Dw(100 * Math.pow(2, f - 1));\n          continue;\n        }\n        throw Iu(y), y;\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 ?? {}, i = r?.credentials ?? \"include\", n = this.getAccessToken?.() ?? \"\", s = [\n        this.baseUrl,\n        i,\n        n,\n        e,\n        Rw(r?.headers)\n      ].join(\"\\0\");\n      return wc(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 zw(e) {\n  try {\n    return typeof localStorage > \"u\" ? null : localStorage.getItem(e);\n  } catch {\n    return null;\n  }\n}\nfunction zu(e, r) {\n  try {\n    typeof localStorage < \"u\" && localStorage.setItem(e, r);\n  } catch {\n  }\n}\nfunction Ow(e) {\n  try {\n    typeof localStorage < \"u\" && localStorage.removeItem(e);\n  } catch {\n  }\n}\nvar Uw = h((() => {\n}));\nasync function Bw(e, r) {\n  const o = qw(r);\n  if (!o) return;\n  const t = $w(e, o);\n  if (!t) return;\n  const i = Ou(t, o), n = await Fu(i);\n  if (!n) return;\n  const s = $s(), a = {\n    label: o === \"solana\" ? Bu(i) : Uu(i),\n    method: o,\n    idHash: n,\n    updatedAt: (/* @__PURE__ */ new Date()).toISOString(),\n    dismissedIdHashes: s?.idHash === n ? s.dismissedIdHashes : []\n  };\n  zu($o, JSON.stringify(a));\n}\nasync function Vw(e, r) {\n  const o = $s();\n  if (!o) return null;\n  const t = Ou(e, r), i = await Fu(t);\n  return !i || i === o.idHash || o.dismissedIdHashes.includes(i) ? null : {\n    hint: o,\n    idHash: i,\n    label: r === \"solana\" ? Bu(t) : Uu(t)\n  };\n}\nfunction $s() {\n  const e = zw($o);\n  if (!e) return null;\n  try {\n    const r = JSON.parse(e);\n    return typeof r.label != \"string\" || typeof r.method != \"string\" || !ju(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 Fw(e) {\n  const r = $s();\n  !r || r.dismissedIdHashes.includes(e) || zu($o, JSON.stringify({\n    ...r,\n    dismissedIdHashes: [...r.dismissedIdHashes, e],\n    updatedAt: (/* @__PURE__ */ new Date()).toISOString()\n  }));\n}\nfunction jw() {\n  Ow($o);\n}\nfunction Ou(e, r) {\n  const o = e.trim();\n  return $u.has(r) ? o.toLowerCase() : o;\n}\nfunction Uu(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 Bu(e) {\n  return e.length <= 10 ? e : `${e.slice(0, 3)}…${e.slice(-3)}`;\n}\nfunction Vu(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 Fu(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 $w(e, r) {\n  return r === \"solana\" ? e.walletAddress ?? null : e.email ?? null;\n}\nfunction qw(e) {\n  return ju(e) ? e : null;\n}\nfunction ju(e) {\n  return e === \"email\" || e === \"password\" || e === \"google\" || e === \"apple\" || e === \"solana\" || e === \"webauthn\";\n}\nvar $o, $u, pi = h((() => {\n  Uw(), $o = \"cedros_last_account\", $u = /* @__PURE__ */ new Set([\n    \"email\",\n    \"password\",\n    \"google\",\n    \"apple\",\n    \"webauthn\"\n  ]);\n}));\nfunction Ww() {\n  const { config: e, _internal: r } = fe(), o = Ur(), [t, i] = T(!1), [n, s] = T(!1), [a, d] = T(null), [l, u] = T(null), m = z(null), g = z(e), p = z(null), f = z(void 0), y = V(() => new ce({\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 x = L(async (k) => {\n    const v = m.current;\n    if (v) {\n      if (k.error) {\n        const w = {\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(w), i(!1), m.current = null, v.reject(w);\n        return;\n      }\n      try {\n        const w = await Hw(k);\n        if (w) {\n          const P = await o.requestDeviceAccountLink({\n            identifier: w,\n            method: \"google\",\n            linkExisting: async (A, C) => {\n              try {\n                await y.post(\"/link-oauth\", {\n                  provider: \"google\",\n                  accessToken: k.access_token,\n                  idToken: k.id_token\n                });\n              } catch (S) {\n                throw O(S, \"Unable to link Google to this account. Please try again.\");\n              }\n              return C;\n            }\n          });\n          if (P.action === \"linked\") {\n            if (i(!1), P.response) v.resolve(P.response);\n            else {\n              const A = {\n                code: \"UNKNOWN_ERROR\",\n                message: \"Account linked. Please refresh your session.\"\n              };\n              d(A), v.reject(A);\n            }\n            return;\n          }\n        }\n        const E = await y.post(\"/google\", {\n          accessToken: k.access_token,\n          idToken: k.id_token,\n          referral: r?.getReferralCode?.() ?? void 0,\n          accessCode: f.current || void 0\n        });\n        g.current.callbacks?.onLoginSuccess?.(E.user, \"google\"), r?.handleLoginSuccess(E.user, E.tokens), i(!1), v.resolve(E);\n      } catch (w) {\n        const E = O(w, \"Unable to sign in with Google. Please try again.\");\n        E.code === \"ACCOUNT_LINK_REQUIRED\" && u(k.access_token ?? null), d(E), i(!1), v.reject(E);\n      } finally {\n        m.current = null, f.current = void 0;\n      }\n    }\n  }, [\n    y,\n    o,\n    r\n  ]), b = L((k) => {\n    const v = m.current;\n    if (!v) return;\n    const w = {\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(w), i(!1), m.current = null, v.reject(w);\n  }, []);\n  return F(() => {\n    if (!e.googleClientId) return;\n    let k = !0;\n    return qu.load().then(() => {\n      if (!k) return;\n      const v = window.google?.accounts?.oauth2?.initTokenClient({\n        client_id: e.googleClientId,\n        scope: \"openid email profile\",\n        callback: x,\n        error_callback: b\n      });\n      v && (p.current = v, 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, p.current = null;\n    };\n  }, [\n    e.googleClientId,\n    x,\n    b\n  ]), {\n    signIn: L(async (k) => {\n      if (f.current = k, !e.googleClientId) {\n        const v = {\n          code: \"VALIDATION_ERROR\",\n          message: \"Google Client ID not configured\"\n        };\n        throw d(v), v;\n      }\n      if (!n) {\n        const v = {\n          code: \"VALIDATION_ERROR\",\n          message: \"Google sign-in is not ready yet. Please wait a moment and try again.\"\n        };\n        throw d(v), v;\n      }\n      if (m.current) {\n        const v = {\n          code: \"VALIDATION_ERROR\",\n          message: \"Google sign-in is already in progress.\"\n        };\n        throw d(v), v;\n      }\n      return i(!0), d(null), new Promise((v, w) => {\n        m.current = {\n          resolve: v,\n          reject: w\n        }, p.current?.requestAccessToken();\n      });\n    }, [e.googleClientId, n]),\n    isLoading: t,\n    isInitialized: n,\n    error: a,\n    clearError: L(() => d(null), []),\n    pendingLinkToken: l,\n    clearPendingLink: L(() => u(null), [])\n  };\n}\nasync function Hw(e) {\n  if (e.id_token) {\n    const r = Vu(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 qu, Kw = h((() => {\n  K(), ne(), Br(), le(), pi(), qu = {\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((i) => i.resolve()), this.callbacks = []) : o.addEventListener(\"load\", () => {\n            this.loaded = !0, this.loading = !1, this.callbacks.forEach((i) => i.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((i) => i.resolve()), this.callbacks = [];\n        }, t.onerror = () => {\n          this.loading = !1, t.remove();\n          const i = /* @__PURE__ */ new Error(\"Failed to load Google Sign-In script\");\n          this.callbacks.forEach((n) => n.reject(i)), 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 kr(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 qo = h((() => {\n}));\nfunction Wu({ onSuccess: e, onError: r, className: o = \"\", variant: t = \"default\", size: i = \"md\", disabled: n = !1, accessCode: s }) {\n  const a = ie(), { signIn: d, isLoading: l, isInitialized: u } = Ww(), m = async () => {\n    try {\n      const g = await d(s);\n      await e?.(g);\n    } catch (g) {\n      r?.(kr(g, \"Unable to sign in with Google. Please try again.\"));\n    }\n  };\n  return /* @__PURE__ */ _(\"button\", {\n    type: \"button\",\n    className: `cedros-button ${{\n      default: \"cedros-button-social\",\n      outline: \"cedros-button-social-outline\"\n    }[t]} ${{\n      sm: \"cedros-button-sm\",\n      md: \"cedros-button-md\",\n      lg: \"cedros-button-lg\"\n    }[i]} ${o}`,\n    onClick: m,\n    disabled: n || !u || l,\n    \"aria-label\": a.buttons.continueWithGoogle,\n    children: [l ? /* @__PURE__ */ c(q, { size: \"sm\" }) : /* @__PURE__ */ c(ci, { className: \"cedros-button-icon\" }), /* @__PURE__ */ c(\"span\", { children: a.buttons.continueWithGoogle })]\n  });\n}\nvar Hu = h((() => {\n  Kw(), Q(), no(), qo(), J();\n}));\nfunction Gw() {\n  const { config: e, _internal: r } = fe(), o = Ur(), [t, i] = T(!1), [n, s] = T(!1), [a, d] = T(null), [l, u] = T(null), m = z(e), g = V(() => new ce({\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 Ku.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: L(async (p) => {\n      if (!e.appleClientId) {\n        const y = {\n          code: \"VALIDATION_ERROR\",\n          message: \"Apple Client ID not configured\"\n        };\n        throw d(y), y;\n      }\n      if (!n) {\n        const y = {\n          code: \"VALIDATION_ERROR\",\n          message: \"Apple sign-in is not ready yet. Please wait a moment and try again.\"\n        };\n        throw d(y), y;\n      }\n      i(!0), d(null);\n      let f;\n      try {\n        const y = crypto.getRandomValues(new Uint8Array(32)), x = Array.from(y, (A) => A.toString(16).padStart(2, \"0\")).join(\"\"), b = await crypto.subtle.digest(\"SHA-256\", new TextEncoder().encode(x)), k = Array.from(new Uint8Array(b), (A) => A.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: k\n        });\n        const v = await window.AppleID.auth.signIn();\n        if (f = v.authorization?.id_token, !f) throw new Error(\"No ID token received from Apple\");\n        const w = v.user?.name ? `${v.user.name.firstName || \"\"} ${v.user.name.lastName || \"\"}`.trim() : void 0, E = Yw(f) ?? v.user?.email ?? null;\n        if (E) {\n          const A = await o.requestDeviceAccountLink({\n            identifier: E,\n            method: \"apple\",\n            linkExisting: async (C, S) => {\n              try {\n                await g.post(\"/link-oauth\", {\n                  provider: \"apple\",\n                  idToken: f,\n                  authorizationCode: v.authorization?.code,\n                  nonce: x\n                });\n              } catch (R) {\n                throw O(R, \"Unable to link Apple to this account. Please try again.\");\n              }\n              return S;\n            }\n          });\n          if (A.action === \"linked\") {\n            if (i(!1), A.response) return A.response;\n            throw {\n              code: \"UNKNOWN_ERROR\",\n              message: \"Account linked. Please refresh your session.\"\n            };\n          }\n        }\n        const P = await g.post(\"/apple\", {\n          idToken: f,\n          name: w || void 0,\n          nonce: x,\n          referral: r?.getReferralCode?.() ?? void 0,\n          accessCode: p || void 0\n        });\n        return m.current.callbacks?.onLoginSuccess?.(P.user, \"apple\"), r?.handleLoginSuccess(P.user, P.tokens), i(!1), P;\n      } catch (y) {\n        if (y.error === \"popup_closed_by_user\") {\n          const b = {\n            code: \"SERVER_ERROR\",\n            message: \"Apple sign-in was cancelled.\"\n          };\n          throw d(b), i(!1), b;\n        }\n        const x = O(y, \"Unable to sign in with Apple. Please try again.\");\n        throw x.code === \"ACCOUNT_LINK_REQUIRED\" && f && u(f), d(x), i(!1), x;\n      }\n    }, [\n      e.appleClientId,\n      n,\n      g,\n      o,\n      r\n    ]),\n    isLoading: t,\n    isInitialized: n,\n    error: a,\n    clearError: L(() => d(null), []),\n    pendingLinkIdToken: l,\n    clearPendingLink: L(() => u(null), [])\n  };\n}\nfunction Yw(e) {\n  const r = Vu(e);\n  return typeof r?.email == \"string\" ? r.email : null;\n}\nvar Ku, Xw = h((() => {\n  K(), ne(), Br(), le(), pi(), Ku = {\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((i) => i.resolve()), this.callbacks = []) : o.addEventListener(\"load\", () => {\n            this.loaded = !0, this.loading = !1, this.callbacks.forEach((i) => i.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((i) => i.resolve()), this.callbacks = [];\n        }, t.onerror = () => {\n          this.loading = !1, t.remove();\n          const i = /* @__PURE__ */ new Error(\"Failed to load Apple Sign In script\");\n          this.callbacks.forEach((n) => n.reject(i)), 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 Gu() {\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 Yu = h((() => {\n}));\nfunction Xu({ onSuccess: e, onError: r, className: o = \"\", variant: t = \"default\", size: i = \"md\", disabled: n = !1, hideOnNonApple: s = !0, accessCode: a }) {\n  const d = ie(), { signIn: l, isLoading: u, isInitialized: m } = Gw(), [g] = T(() => Gu());\n  if (s && !g) return null;\n  const p = async () => {\n    try {\n      const f = await l(a);\n      await e?.(f);\n    } catch (f) {\n      r?.(kr(f, \"Unable to sign in with Apple. Please try again.\"));\n    }\n  };\n  return /* @__PURE__ */ _(\"button\", {\n    type: \"button\",\n    className: `cedros-button ${{\n      default: \"cedros-button-social\",\n      outline: \"cedros-button-social-outline\"\n    }[t]} ${{\n      sm: \"cedros-button-sm\",\n      md: \"cedros-button-md\",\n      lg: \"cedros-button-lg\"\n    }[i]} ${o}`,\n    onClick: p,\n    disabled: n || !m || u,\n    \"aria-label\": d.buttons.continueWithApple,\n    children: [u ? /* @__PURE__ */ c(q, { size: \"sm\" }) : /* @__PURE__ */ c(li, { className: \"cedros-button-icon\" }), /* @__PURE__ */ c(\"span\", { children: d.buttons.continueWithApple })]\n  });\n}\nvar Ju = h((() => {\n  Xw(), Q(), no(), Yu(), qo(), J();\n}));\nfunction Io(e, r = Zu) {\n  const o = e.length >= 10, t = /[A-Z]/.test(e), i = /[a-z]/.test(e), n = /\\d/.test(e), s = Qu.test(e), a = [\n    {\n      key: \"minLength\",\n      label: r.minLength,\n      met: o\n    },\n    {\n      key: \"uppercase\",\n      label: r.uppercase,\n      met: t\n    },\n    {\n      key: \"lowercase\",\n      label: r.lowercase,\n      met: i\n    },\n    {\n      key: \"number\",\n      label: r.number,\n      met: n\n    },\n    {\n      key: \"special\",\n      label: r.special,\n      met: s\n    }\n  ], d = a.reduce((m, g) => m + (g.met ? 1 : 0), 0), l = d === a.length;\n  let u;\n  return l ? u = e.length >= em ? \"strong\" : \"good\" : u = d <= 2 ? \"weak\" : \"fair\", {\n    isValid: l,\n    requirements: a,\n    metCount: d,\n    strength: u\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 n of t.split(\".\")) if (n.startsWith(\"-\") || n.endsWith(\"-\")) return !1;\n  const i = t.split(\".\").pop();\n  return !(!i || i.length < 2 || !/^[a-zA-Z]+$/.test(i) || rm.has(i.toLowerCase()) || !/^[a-zA-Z0-9.-]+$/.test(t) || /[\\x00-\\x1f\\x7f\"(),;:<>[\\]\\\\]/.test(o));\n}\nfunction pn(e) {\n  return e.length < 43 || e.length > 44 ? !1 : om.test(e);\n}\nvar Zu, Qu, em, rm, om, xr = h((() => {\n  Zu = {\n    minLength: \"At least 10 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  }, Qu = /[!@#$%^&*()_+\\-=[\\]{}|;':\",./<>?`~\\\\]/, em = 14, rm = /* @__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  ]), om = /^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+$/;\n}));\nfunction tm() {\n  const { config: e, _internal: r } = fe(), [o, t] = T(!1), [i, n] = T(null), s = V(() => new ce({\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: L(async (a) => {\n      if (!pn(a)) {\n        const d = {\n          code: \"INVALID_PUBLIC_KEY\",\n          message: \"Invalid Solana public key format\"\n        };\n        throw n(d), d;\n      }\n      t(!0), n(null);\n      try {\n        return await s.post(\"/solana/challenge\", { publicKey: a }, { credentials: \"omit\" });\n      } catch (d) {\n        const l = O(d, \"Unable to start wallet verification. Please try again.\");\n        throw n(l), l;\n      } finally {\n        t(!1);\n      }\n    }, [s]),\n    signIn: L(async (a, d, l, u) => {\n      if (!pn(a)) {\n        const m = {\n          code: \"INVALID_PUBLIC_KEY\",\n          message: \"Invalid Solana public key format\"\n        };\n        throw n(m), m;\n      }\n      t(!0), n(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 e.callbacks?.onLoginSuccess?.(m.user, \"solana\"), r?.handleLoginSuccess(m.user, m.tokens), m;\n      } catch (m) {\n        const g = O(m, \"Unable to sign in with your wallet. Please try again.\");\n        throw n(g), g;\n      } finally {\n        t(!1);\n      }\n    }, [\n      s,\n      e.callbacks,\n      r\n    ]),\n    linkWallet: L(async (a, d, l) => {\n      if (!pn(a)) {\n        const u = {\n          code: \"INVALID_PUBLIC_KEY\",\n          message: \"Invalid Solana public key format\"\n        };\n        throw n(u), u;\n      }\n      t(!0), n(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 = O(u, \"Unable to link this wallet to your account. Please try again.\");\n        throw n(m), m;\n      } finally {\n        t(!1);\n      }\n    }, [s]),\n    isLoading: o,\n    error: i,\n    clearError: L(() => n(null), [])\n  };\n}\nvar Jw = h((() => {\n  ne(), le(), xr();\n}));\nfunction _c(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 im, nm = h((() => {\n  im = [\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 Ac() {\n  if (typeof window > \"u\") return [];\n  const e = window, r = [];\n  for (const o of im) {\n    const t = e[o];\n    t && typeof t == \"object\" && \"solana\" in t && _c(t.solana) && r.push({\n      key: o,\n      name: $n[o] ?? o,\n      icon: sm[o] ?? qn,\n      provider: t.solana\n    });\n  }\n  return r.length === 0 && _c(e.solana) && r.push({\n    key: \"solana\",\n    name: $n.solana ?? \"Solana Wallet\",\n    icon: qn,\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 $n, qn, sm, Qw = h((() => {\n  nm(), $n = {\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  }, qn = \"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\", sm = {\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      am\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 am, r0 = h((() => {\n  am = \"@solana-mobile/wallet-standard-mobile\";\n}));\nfunction o0() {\n  return /* @__PURE__ */ c(ui, { className: \"cedros-button-icon\" });\n}\nvar t0 = h((() => {\n  no();\n})), i0 = /* @__PURE__ */ ai({ SolanaLoginButton: () => s0 });\nasync function n0() {\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(() => Ac()), [t, i] = T(null), [n, s] = T(!1), a = !e.walletContext && r.length > 0;\n  if (F(() => {\n    if (e.walletContext) return;\n    const u = () => o(Ac());\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 n0().then((m) => {\n      u || i(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 n && e.hideIfNoWallet !== !1 ? null : /* @__PURE__ */ c(c0, {\n      ...e,\n      isLoading: !n\n    });\n  const { WalletProvider: d, WalletModalProvider: l } = t;\n  return e.walletContext ? /* @__PURE__ */ c(l, { children: /* @__PURE__ */ c(Ec, {\n    runtime: t,\n    ...e\n  }) }) : /* @__PURE__ */ c(d, {\n    wallets: dm,\n    localStorageKey: \"cedros-walletName\",\n    children: /* @__PURE__ */ c(l, { children: /* @__PURE__ */ c(Ec, {\n      runtime: t,\n      ...e\n    }) })\n  });\n}\nfunction a0({ wallets: e, onSuccess: r, onError: o, className: t = \"\", variant: i = \"default\", size: n = \"md\", disabled: s = !1, hideIfNoWallet: a = !0, onLoadingChange: d, accessCode: l }) {\n  const u = ie(), { requestChallenge: m, signIn: g, linkWallet: p, isLoading: f } = tm(), y = Ur(), [x, b] = T(!1), k = e[0] ?? null, v = f || x;\n  F(() => {\n    d?.(v);\n  }, [v, d]);\n  const w = async () => {\n    if (!(s || v || !k)) {\n      b(!0);\n      try {\n        const E = await d0(k, {\n          requestChallenge: m,\n          signIn: g,\n          linkWallet: p\n        }, y, l);\n        await r?.(E);\n      } catch (E) {\n        o?.(kr(E, zt));\n      } finally {\n        b(!1);\n      }\n    }\n  };\n  return !k && a ? null : /* @__PURE__ */ c(qs, {\n    className: t,\n    variant: i,\n    size: n,\n    disabled: s || v || !k,\n    isLoading: v,\n    label: u.buttons.continueWithSolana,\n    onClick: w\n  });\n}\nasync function d0(e, r, o, t) {\n  const { provider: i } = e, n = (await i.connect())?.publicKey ?? i.publicKey;\n  if (!n) throw new Error(\"Wallet did not return a public key\");\n  const s = n.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 i.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 i.signMessage(l)));\n  return r.signIn(s, u, d.message, t);\n}\nfunction Ec({ runtime: e, onSuccess: r, onError: o, className: t = \"\", variant: i = \"default\", size: n = \"md\", disabled: s = !1, hideIfNoWallet: a = !0, onLoadingChange: d, walletContext: l, accessCode: u }) {\n  const m = ie(), { requestChallenge: g, signIn: p, linkWallet: f, isLoading: y } = tm(), x = Ur(), b = e.useWallet(), { visible: k, setVisible: v } = e.useWalletModal(), [w, E] = T(!1), P = z(!1), A = z(!1), C = z(!1), S = z(!1), R = l?.connected ?? b.connected, I = l?.connecting ?? b.connecting, N = l?.publicKey ?? b.publicKey, M = l?.signMessage ?? b.signMessage, D = l?.wallet ?? b.wallet, B = l?.wallets ?? b.wallets, G = l ? l.select : (de) => b.select(de), W = l?.connect ?? b.connect, H = B.filter((de) => de.adapter.readyState === \"Installed\" || de.adapter.readyState === \"Loadable\"), ee = L(async () => {\n    if (!P.current) {\n      if (!N || !M) {\n        o?.(/* @__PURE__ */ new Error(\"Wallet not ready\"));\n        return;\n      }\n      P.current = !0;\n      try {\n        const de = N.toBase58(), Y = await x.requestDeviceAccountLink({\n          identifier: de,\n          method: \"solana\",\n          linkExisting: async (be, Se) => {\n            const me = await g(de);\n            return await f(de, Dt(Mt(await M(new TextEncoder().encode(me.message)))), me.message), Se;\n          }\n        });\n        if (Y.action === \"linked\") {\n          S.current = !1, await r?.(Y.response);\n          return;\n        }\n        const ve = await g(de), ae = await p(de, Dt(Mt(await M(new TextEncoder().encode(ve.message)))), ve.message, u);\n        S.current = !1, await r?.(ae);\n      } catch (de) {\n        const Y = kr(de, zt);\n        S.current = !0, o?.(Y);\n      } finally {\n        P.current = !1, E(!1);\n      }\n    }\n  }, [\n    N,\n    M,\n    g,\n    p,\n    f,\n    x,\n    r,\n    o,\n    u\n  ]), Z = L(() => {\n    C.current = !1, W().catch((de) => {\n      o?.(kr(de, zt)), E(!1);\n    });\n  }, [W, o]);\n  F(() => {\n    C.current && D && !R && !I && Z();\n  }, [\n    D,\n    R,\n    I,\n    Z\n  ]), F(() => {\n    w && R && N && M && !P.current && ee().catch(() => {\n    });\n  }, [\n    w,\n    R,\n    N,\n    M,\n    ee\n  ]), F(() => {\n    k ? A.current = !0 : A.current && (A.current = !1, w && !R && D && !I ? Z() : w && !R && (C.current = !1, E(!1)));\n  }, [\n    k,\n    w,\n    R,\n    D,\n    I,\n    Z\n  ]);\n  const Ee = async () => {\n    s || y || I || (R && N && M && !S.current ? (E(!0), await ee()) : H.length === 1 && !D ? (G(H[0].adapter.name), E(!0), C.current = !0) : (S.current = !1, D && b.select(null), C.current = !1, v(!0), E(!0)));\n  }, ue = y || I || w && !R;\n  return F(() => {\n    d?.(ue);\n  }, [ue, d]), a && H.length === 0 ? null : /* @__PURE__ */ c(qs, {\n    className: t,\n    variant: i,\n    size: n,\n    disabled: s || ue,\n    isLoading: ue,\n    label: m.buttons.continueWithSolana,\n    onClick: Ee\n  });\n}\nfunction c0({ className: e = \"\", variant: r = \"default\", size: o = \"md\", disabled: t = !1, isLoading: i = !0 }) {\n  const n = ie();\n  return /* @__PURE__ */ c(qs, {\n    className: e,\n    variant: r,\n    size: o,\n    disabled: t || i,\n    isLoading: i,\n    label: n.buttons.continueWithSolana\n  });\n}\nfunction qs({ className: e, variant: r, size: o, disabled: t, isLoading: i, label: n, 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\": n,\n    children: [i ? /* @__PURE__ */ c(q, { size: \"sm\" }) : /* @__PURE__ */ c(o0, {}), /* @__PURE__ */ c(\"span\", { children: n })]\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 dm, zt, m0 = h((() => {\n  K(), Jw(), Br(), Qw(), r0(), nm(), Q(), t0(), qo(), J(), Zw() && e0(), dm = [], zt = \"Unable to sign in with your wallet. Please try again.\";\n}));\nfunction g0(e) {\n  return /* @__PURE__ */ c(Cs, {\n    fallback: /* @__PURE__ */ c(h0, { ...e }),\n    children: /* @__PURE__ */ c(cm, { ...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(q, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", { children: \"Continue with Solana\" })]\n  });\n}\nvar cm, p0 = h((() => {\n  Q(), cm = Ts(async () => ({ default: (await Promise.resolve().then(() => (m0(), i0))).SolanaLoginButton }));\n})), Wo, fi = h((() => {\n  le(), Wo = class {\n    client;\n    constructor(e, r, o, t) {\n      this.client = new ce({\n        baseUrl: e,\n        timeoutMs: r,\n        retryAttempts: o,\n        getAccessToken: t\n      });\n    }\n    async listEmails() {\n      try {\n        return (await this.client.get(\"/account/emails\")).emails;\n      } catch (e) {\n        throw O(e, \"Failed to list account emails\");\n      }\n    }\n    async addEmail(e) {\n      try {\n        return (await this.client.post(\"/account/emails\", { email: e })).emails;\n      } catch (r) {\n        throw O(r, \"Failed to add email address\");\n      }\n    }\n    async resendEmail(e) {\n      try {\n        await this.client.post(`/account/emails/${encodeURIComponent(e)}/resend`, {});\n      } catch (r) {\n        throw O(r, \"Failed to resend verification email\");\n      }\n    }\n    async removeEmail(e) {\n      try {\n        return (await this.client.delete(`/account/emails/${encodeURIComponent(e)}`)).emails;\n      } catch (r) {\n        throw O(r, \"Failed to remove email address\");\n      }\n    }\n    async setPrimaryEmail(e) {\n      try {\n        return (await this.client.post(`/account/emails/${encodeURIComponent(e)}/primary`, {})).emails;\n      } catch (r) {\n        throw O(r, \"Failed to set primary email\");\n      }\n    }\n    async verifyEmail(e) {\n      try {\n        await this.client.post(\"/account/emails/verify\", { token: e });\n      } catch (r) {\n        throw O(r, \"Failed to verify email address\");\n      }\n    }\n  };\n}));\nfunction Ce(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  Ce(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), i = new Uint8Array(t.length);\n  for (let n = 0; n < t.length; n++) i[n] = t.charCodeAt(n);\n  return i.buffer;\n}\nfunction qr(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 lm(e) {\n  return Ce(typeof e == \"object\" && e !== null, \"Invalid credential descriptor\"), Ce(typeof e.type == \"string\", \"Invalid credential descriptor type\"), Ce(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 um.some((r) => r === e);\n}\nfunction fn(e) {\n  Ce(e && typeof e == \"object\", \"Missing creation options\");\n  const r = e.publicKey;\n  Ce(r && typeof r == \"object\", \"Missing creation options.publicKey\"), Ce(typeof r.challenge == \"string\", \"Missing creation challenge\"), Ce(typeof r.rp == \"object\" && r.rp !== null, \"Missing rp\"), Ce(typeof r.user == \"object\" && r.user !== null, \"Missing user\");\n  const { rp: o, user: t } = r;\n  Ce(typeof o.name == \"string\", \"Missing rp.name\"), Ce(typeof t.id == \"string\", \"Missing user.id\"), Ce(typeof t.name == \"string\", \"Missing user.name\"), Ce(typeof t.displayName == \"string\", \"Missing user.displayName\");\n  const i = Array.isArray(r.excludeCredentials) ? r.excludeCredentials.map(lm) : void 0, n = 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: n,\n    timeout: typeof r.timeout == \"number\" ? r.timeout : void 0,\n    attestation: typeof r.attestation == \"string\" ? r.attestation : void 0,\n    authenticatorSelection: typeof r.authenticatorSelection == \"object\" && r.authenticatorSelection !== null ? r.authenticatorSelection : void 0,\n    excludeCredentials: i,\n    extensions: typeof r.extensions == \"object\" && r.extensions !== null ? r.extensions : void 0\n  };\n  return s.hints = [\"client-device\"], s;\n}\nfunction Sc(e) {\n  Ce(e && typeof e == \"object\", \"Missing request options\");\n  const r = e.publicKey;\n  Ce(r && typeof r == \"object\", \"Missing request options.publicKey\"), Ce(typeof r.challenge == \"string\", \"Missing request challenge\");\n  const o = Array.isArray(r.allowCredentials) ? r.allowCredentials.map(lm) : 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 po(e) {\n  const r = qr(e.rawId), o = e.response, t = { clientDataJSON: qr(o.clientDataJSON) };\n  if (\"attestationObject\" in o) {\n    const i = o, n = {\n      ...t,\n      attestationObject: qr(i.attestationObject)\n    };\n    if (typeof i.getTransports == \"function\") try {\n      const s = i.getTransports().filter(v0);\n      s.length > 0 && (n.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: n\n    };\n  }\n  if (\"authenticatorData\" in o) {\n    const i = o, n = {\n      ...t,\n      authenticatorData: qr(i.authenticatorData),\n      signature: qr(i.signature)\n    };\n    return i.userHandle && (n.userHandle = qr(i.userHandle)), {\n      id: e.id,\n      rawId: r,\n      type: e.type,\n      authenticatorAttachment: e.authenticatorAttachment ?? void 0,\n      clientExtensionResults: e.getClientExtensionResults?.() ?? {},\n      response: n\n    };\n  }\n  throw new Error(\"Unsupported WebAuthn credential response\");\n}\nvar um, b0 = h((() => {\n  um = [\n    \"ble\",\n    \"hybrid\",\n    \"internal\",\n    \"nfc\",\n    \"usb\"\n  ];\n}));\nfunction y0(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 fo(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\" ? {\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\" ? y0(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 w0 = h((() => {\n}));\nfunction k0() {\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 x0(e) {\n  return typeof e == \"object\" && e !== null && \"code\" in e && \"message\" in e && typeof e.code == \"string\" && typeof e.message == \"string\";\n}\nfunction mm() {\n  const { config: e, _internal: r } = fe(), o = Ur(), [t, i] = T(!1), [n, s] = T(null), a = V(() => new ce({\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 = V(() => new Wo(e.serverUrl, e.requestTimeout, e.retryAttempts, r?.getAccessToken), [\n    r?.getAccessToken,\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts\n  ]), l = L(() => s(null), []), u = k0(), m = L(async (b) => {\n    if (!u) {\n      const k = {\n        code: \"VALIDATION_ERROR\",\n        message: \"Passkeys are not supported in this browser\"\n      };\n      throw s(k), k;\n    }\n    i(!0), s(null);\n    try {\n      const k = await a.post(\"/webauthn/auth/options\", { email: b?.email }), v = Sc(k.options), w = await navigator.credentials.get({ publicKey: v });\n      if (!w) throw new Error(\"Passkey authentication returned no credential\");\n      const E = await a.post(\"/webauthn/auth/verify\", {\n        challengeId: k.challengeId,\n        credential: po(w)\n      });\n      return e.callbacks?.onLoginSuccess?.(E.user, \"webauthn\"), r?.handleLoginSuccess(E.user, E.tokens), E;\n    } catch (k) {\n      const v = fo(k) ?? O(k, \"Unable to sign in with passkey. Please try again.\");\n      throw s(v), v;\n    } finally {\n      i(!1);\n    }\n  }, [\n    a,\n    e.callbacks,\n    r,\n    u\n  ]), g = L(async (b) => {\n    if (!u) {\n      const k = {\n        code: \"VALIDATION_ERROR\",\n        message: \"Passkeys are not supported in this browser\"\n      };\n      throw s(k), k;\n    }\n    i(!0), s(null);\n    try {\n      const k = await a.post(\"/webauthn/register/options\", {}), v = fn(k.options), w = await navigator.credentials.create({ publicKey: v });\n      if (!w) throw new Error(\"Passkey registration returned no credential\");\n      const E = await a.post(\"/webauthn/register/verify\", {\n        challengeId: k.challengeId,\n        credential: po(w),\n        label: b?.label\n      });\n      if (!E.success) throw new Error(\"Passkey registration failed\");\n      return {\n        credentialId: E.credentialId,\n        label: E.label\n      };\n    } catch (k) {\n      const v = fo(k) ?? O(k, \"Unable to register passkey. Please try again.\");\n      throw s(v), v;\n    } finally {\n      i(!1);\n    }\n  }, [a, u]), p = L(async (b) => {\n    if (!u) {\n      const k = {\n        code: \"VALIDATION_ERROR\",\n        message: \"Passkeys are not supported in this browser\"\n      };\n      throw s(k), k;\n    }\n    i(!0), s(null);\n    try {\n      if (b?.email) {\n        const P = await o.requestDeviceAccountLink({\n          identifier: b.email,\n          method: \"webauthn\",\n          linkExisting: async (A, C) => (await g({ label: b.label }), await d.addEmail(b.email), C)\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 k = await a.post(\"/webauthn/signup/options\", {}), v = fn(k.options), w = await navigator.credentials.create({ publicKey: v });\n      if (!w) throw new Error(\"Passkey signup returned no credential\");\n      const E = await a.post(\"/webauthn/signup/verify\", {\n        challengeId: k.challengeId,\n        credential: po(w),\n        email: b?.email,\n        name: b?.name,\n        label: b?.label,\n        referral: r?.getReferralCode?.() ?? void 0,\n        accessCode: b?.accessCode || void 0\n      });\n      return e.callbacks?.onLoginSuccess?.(E.user, \"webauthn\"), r?.handleLoginSuccess(E.user, E.tokens), E;\n    } catch (k) {\n      const v = fo(k) ?? O(k, \"Unable to sign up with passkey. Please try again.\");\n      throw s(v), v;\n    } finally {\n      i(!1);\n    }\n  }, [\n    d,\n    a,\n    e.callbacks,\n    o,\n    r,\n    u,\n    g\n  ]), f = L(async (b, k) => {\n    const v = await a.post(\"/webauthn/signup/options\", {}), w = fn(v.options), E = await navigator.credentials.create({ publicKey: w });\n    if (!E) throw new Error(\"Passkey signup returned no credential\");\n    const P = await a.post(\"/webauthn/signup/verify\", {\n      challengeId: v.challengeId,\n      credential: po(E),\n      referral: r?.getReferralCode?.() ?? void 0,\n      accessCode: k || void 0\n    });\n    return e.callbacks?.onLoginSuccess?.(P.user, \"webauthn\"), r?.handleLoginSuccess(P.user, P.tokens), b(), P;\n  }, [\n    a,\n    e.callbacks,\n    r\n  ]), y = L(async (b, k) => {\n    try {\n      const v = await a.post(\"/webauthn/auth/options\", {}), w = Sc(v.options), E = await navigator.credentials.get({ publicKey: w });\n      if (!E) throw new Error(\"Passkey authentication returned no credential\");\n      const P = await a.post(\"/webauthn/auth/verify\", {\n        challengeId: v.challengeId,\n        credential: po(E)\n      });\n      return e.callbacks?.onLoginSuccess?.(P.user, \"webauthn\"), r?.handleLoginSuccess(P.user, P.tokens), b(), P;\n    } catch (v) {\n      if (v instanceof Error && (v.name === \"NotAllowedError\" || v.name === \"InvalidStateError\")) return f(b, k);\n      const w = typeof v == \"object\" && v !== null && \"isApiError\" in v ? v.data : void 0;\n      if (w?.code === \"INVALID_CREDENTIALS\" || w?.error === \"invalid_credentials\") {\n        const P = {\n          code: \"INVALID_CREDENTIALS\",\n          message: \"This passkey is not recognized. Please remove old passkeys for this site and try again, or sign in another way.\"\n        };\n        throw s(P), P;\n      }\n      const E = fo(v) ?? O(v, \"Unable to sign in with passkey. Please try again.\");\n      throw s(E), E;\n    } finally {\n      i(!1);\n    }\n  }, [\n    a,\n    e.callbacks,\n    r,\n    f\n  ]), x = L(async (b, k) => {\n    try {\n      return await f(b, k);\n    } catch (v) {\n      if (v instanceof Error && (v.name === \"InvalidStateError\" || v.name === \"NotAllowedError\")) return y(b, k);\n      if (!x0(v)) {\n        const w = fo(v) ?? O(v, \"Unable to create passkey. Please try again.\");\n        throw s(w), w;\n      }\n      throw v;\n    } finally {\n      i(!1);\n    }\n  }, [y, f]);\n  return {\n    isSupported: u,\n    isLoading: t,\n    error: n,\n    clearError: l,\n    continueWithPasskey: L(async (b) => {\n      if (!u) {\n        const w = {\n          code: \"VALIDATION_ERROR\",\n          message: \"Passkeys are not supported in this browser\"\n        };\n        throw s(w), w;\n      }\n      i(!0), s(null);\n      let k = !1;\n      try {\n        k = typeof localStorage < \"u\" && localStorage.getItem(\"cedros-passkey-registered\") === \"1\";\n      } catch {\n        k = !1;\n      }\n      const v = () => {\n        try {\n          localStorage.setItem(\"cedros-passkey-registered\", \"1\");\n        } catch {\n        }\n      };\n      return k ? y(v, b) : x(v, b);\n    }, [\n      y,\n      x,\n      u\n    ]),\n    authenticatePasskey: m,\n    registerPasskey: g,\n    signupWithPasskey: p\n  };\n}\nvar gm = h((() => {\n  ne(), Br(), le(), fi(), b0(), w0();\n}));\nfunction hm({ onSuccess: e, onError: r, className: o = \"\", children: t, disabled: i, accessCode: n }) {\n  const s = ie(), { continueWithPasskey: a, isLoading: d, isSupported: l } = mm(), u = i || !l || d, m = s.buttons.continueWithPasskey;\n  return /* @__PURE__ */ _(\"button\", {\n    type: \"button\",\n    className: `cedros-button cedros-button-social ${o}`,\n    onClick: async () => {\n      try {\n        const g = await a(n);\n        await e?.(g);\n      } catch (g) {\n        r?.(kr(g, \"Unable to sign in with passkey. Please try again.\"));\n      }\n    },\n    disabled: u,\n    \"aria-disabled\": u,\n    children: [d ? /* @__PURE__ */ c(q, { size: \"sm\" }) : /* @__PURE__ */ c(\"span\", {\n      className: \"cedros-social-icon\",\n      \"aria-hidden\": \"true\",\n      children: /* @__PURE__ */ c(No, {})\n    }), /* @__PURE__ */ c(\"span\", { children: t ?? m })]\n  });\n}\nvar pm = h((() => {\n  gm(), Q(), no(), qo(), J();\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 E0({ validation: e, requirementsId: r }) {\n  const o = ie(), t = Ke(), { strength: i, isValid: n, metCount: s, requirements: a } = e, d = a.length, l = d > 0 ? Math.round(s / d * 100) : 0, u = n ? \"true\" : \"false\", m = n ? 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[i]\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  J();\n})), vi, bi = h((() => {\n  vi = We({});\n}));\nfunction yi(e) {\n  const r = z(null);\n  return r.current === null && (r.current = e()), r.current;\n}\nvar Ho = h((() => {\n})), fm, vm = h((() => {\n  fm = typeof window < \"u\";\n})), wi, ki = h((() => {\n  vm(), wi = fm ? ey : Rs;\n})), so, Ko = h((() => {\n  so = /* @__PURE__ */ We(null);\n}));\nfunction Ws(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 bm = h((() => {\n})), He, C0 = h((() => {\n  He = (e, r, o) => o > r ? r : o < e ? e : o;\n})), Go, zr, ym = h((() => {\n  Go = () => {\n  }, zr = () => {\n  };\n})), sr, T0 = h((() => {\n  sr = {};\n})), Hs, R0 = h((() => {\n  Hs = (e) => /^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)$/u.test(e);\n})), Ks, P0 = h((() => {\n  Ks = (e) => typeof e == \"object\" && e !== null;\n})), Gs, L0 = h((() => {\n  Gs = (e) => /^0[^.\\s]+$/u.test(e);\n}));\n// @__NO_SIDE_EFFECTS__\nfunction wm(e) {\n  let r;\n  return () => (r === void 0 && (r = e()), r);\n}\nvar N0 = h((() => {\n})), ze, Ys = h((() => {\n  ze = /* @__NO_SIDE_EFFECTS__ */ (e) => e;\n})), ao, I0 = h((() => {\n  ao = (...e) => e.reduce((r, o) => (t) => o(r(t)));\n})), Qr, M0 = h((() => {\n  Qr = /* @__NO_SIDE_EFFECTS__ */ (e, r, o) => {\n    const t = r - e;\n    return t ? (o - e) / t : 1;\n  };\n})), xi, D0 = h((() => {\n  bm(), xi = class {\n    constructor() {\n      this.subscriptions = [];\n    }\n    add(e) {\n      return Ws(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 i = 0; i < t; i++) {\n          const n = this.subscriptions[i];\n          n && n(e, r, o);\n        }\n    }\n    getSize() {\n      return this.subscriptions.length;\n    }\n    clear() {\n      this.subscriptions.length = 0;\n    }\n  };\n})), Le, De, z0 = h((() => {\n  Le = /* @__NO_SIDE_EFFECTS__ */ (e) => e * 1e3, De = /* @__NO_SIDE_EFFECTS__ */ (e) => e / 1e3;\n})), Xs, O0 = h((() => {\n  Xs = /* @__NO_SIDE_EFFECTS__ */ (e, r) => r ? e * (1e3 / r) : 0;\n}));\nfunction U0(e, r, o, t, i) {\n  let n, s, a = 0;\n  do\n    s = r + (o - r) / 2, n = Js(s, t, i) - e, n > 0 ? o = s : r = s;\n  while (Math.abs(n) > km && ++a < xm);\n  return s;\n}\n// @__NO_SIDE_EFFECTS__\nfunction xo(e, r, o, t) {\n  if (e === r && o === t) return ze;\n  const i = (n) => U0(n, 0, 1, e, o);\n  return (n) => n === 0 || n === 1 ? n : Js(i(n), r, t);\n}\nvar Js, km, xm, _i = h((() => {\n  Ys(), Js = (e, r, o) => (((1 - 3 * o + 3 * r) * e + (3 * o - 6 * r)) * e + 3 * r) * e, km = 1e-7, xm = 12;\n})), Zs, Qs = h((() => {\n  Zs = /* @__NO_SIDE_EFFECTS__ */ (e) => (r) => r <= 0.5 ? e(2 * r) / 2 : (2 - e(2 * (1 - r))) / 2;\n})), ea, ra = h((() => {\n  ea = /* @__NO_SIDE_EFFECTS__ */ (e) => (r) => 1 - e(1 - r);\n})), Wn, Bt, oa, ta = h((() => {\n  _i(), Qs(), ra(), Wn = /* @__PURE__ */ xo(0.33, 1.53, 0.69, 0.99), Bt = /* @__PURE__ */ ea(Wn), oa = /* @__PURE__ */ Zs(Bt);\n})), ia, _m = h((() => {\n  ta(), ia = (e) => e >= 1 ? 1 : (e *= 2) < 1 ? 0.5 * Bt(e) : 0.5 * (2 - Math.pow(2, -10 * (e - 1)));\n})), bt, na, sa, Am = h((() => {\n  Qs(), ra(), bt = (e) => 1 - Math.sin(Math.acos(e)), na = ea(bt), sa = Zs(bt);\n})), Em, Sm, aa, Cm = h((() => {\n  _i(), Em = /* @__PURE__ */ xo(0.42, 0, 1, 1), Sm = /* @__PURE__ */ xo(0, 0, 0.58, 1), aa = /* @__PURE__ */ xo(0.42, 0, 0.58, 1);\n})), Tm, B0 = h((() => {\n  Tm = /* @__NO_SIDE_EFFECTS__ */ (e) => Array.isArray(e) && typeof e[0] != \"number\";\n})), da, Rm = h((() => {\n  da = /* @__NO_SIDE_EFFECTS__ */ (e) => Array.isArray(e) && typeof e[0] == \"number\";\n})), vn, Cc, Hn, V0 = h((() => {\n  ym(), Ys(), _m(), ta(), Am(), _i(), Cm(), Rm(), vn = {\n    linear: ze,\n    easeIn: Em,\n    easeInOut: aa,\n    easeOut: Sm,\n    circIn: bt,\n    circInOut: sa,\n    circOut: na,\n    backIn: Bt,\n    backInOut: oa,\n    backOut: Wn,\n    anticipate: ia\n  }, Cc = (e) => typeof e == \"string\", Hn = (e) => {\n    if (da(e)) {\n      zr(e.length === 4, \"Cubic bezier arrays must contain four numerical values.\", \"cubic-bezier-length\");\n      const [r, o, t, i] = e;\n      return /* @__PURE__ */ xo(r, o, t, i);\n    } else if (Cc(e))\n      return zr(vn[e] !== void 0, `Invalid easing type '${e}'`, \"invalid-easing-type\"), vn[e];\n    return e;\n  };\n})), $ = h((() => {\n  bm(), C0(), ym(), T0(), R0(), P0(), L0(), N0(), Ys(), I0(), M0(), D0(), z0(), O0(), _m(), ta(), Am(), _i(), Cm(), Qs(), ra(), B0(), Rm(), V0();\n})), vo, Pm = h((() => {\n  vo = [\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, i = !1;\n  const n = /* @__PURE__ */ new WeakSet();\n  let s = {\n    delta: 0,\n    timestamp: 0,\n    isProcessing: !1\n  };\n  function a(l) {\n    n.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 && n.add(l), g.add(l), l;\n    },\n    cancel: (l) => {\n      o.delete(l), n.delete(l);\n    },\n    process: (l) => {\n      if (s = l, t) {\n        i = !0;\n        return;\n      }\n      t = !0;\n      const u = r;\n      r = o, o = u, r.forEach(a), r.clear(), t = !1, i && (i = !1, d.process(l));\n    }\n  };\n  return d;\n}\nvar j0 = h((() => {\n}));\nfunction Lm(e, r) {\n  let o = !1, t = !0;\n  const i = {\n    delta: 0,\n    timestamp: 0,\n    isProcessing: !1\n  }, n = () => o = !0, s = vo.reduce((v, w) => (v[w] = F0(n), v), {}), { setup: a, read: d, resolveKeyframes: l, preUpdate: u, update: m, preRender: g, render: p, postRender: f } = s, y = () => {\n    const v = sr.useManualTiming, w = v ? i.timestamp : performance.now();\n    o = !1, v || (i.delta = t ? 1e3 / 60 : Math.max(Math.min(w - i.timestamp, Nm), 1)), i.timestamp = w, i.isProcessing = !0, a.process(i), d.process(i), l.process(i), u.process(i), m.process(i), g.process(i), p.process(i), f.process(i), i.isProcessing = !1, o && r && (t = !1, e(y));\n  }, x = () => {\n    o = !0, t = !0, i.isProcessing || e(y);\n  };\n  return {\n    schedule: vo.reduce((v, w) => {\n      const E = s[w];\n      return v[w] = (P, A = !1, C = !1) => (o || x(), E.schedule(P, A, C)), v;\n    }, {}),\n    cancel: (v) => {\n      for (let w = 0; w < vo.length; w++) s[vo[w]].cancel(v);\n    },\n    state: i,\n    steps: s\n  };\n}\nvar Nm, ca = h((() => {\n  $(), Pm(), j0(), Nm = 40;\n})), oe, ar, _e, yt, rr = h((() => {\n  $(), ca(), { schedule: oe, cancel: ar, state: _e, steps: yt } = /* @__PURE__ */ Lm(typeof requestAnimationFrame < \"u\" ? requestAnimationFrame : ze, !0);\n}));\nfunction $0() {\n  wt = void 0;\n}\nvar wt, Te, cr = h((() => {\n  $(), rr(), Te = {\n    now: () => (wt === void 0 && Te.set(_e.isProcessing || sr.useManualTiming ? _e.timestamp : performance.now()), wt),\n    set: (e) => {\n      wt = e, queueMicrotask($0);\n    }\n  };\n}));\nfunction Tc(e) {\n  return typeof e != \"string\" ? !1 : e.split(\"/*\")[0].includes(\"var(--\");\n}\nvar bn, la, Rc, Ai, Pc, co = h((() => {\n  bn = (e) => (r) => typeof r == \"string\" && r.startsWith(e), la = /* @__PURE__ */ bn(\"--\"), Rc = /* @__PURE__ */ bn(\"var(--\"), Ai = (e) => Rc(e) ? Pc.test(e.split(\"/*\")[0].trim()) : !1, Pc = /var\\(--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)$/iu;\n})), Mr, eo, bo, _r = h((() => {\n  $(), Mr = {\n    test: (e) => typeof e == \"number\",\n    parse: parseFloat,\n    transform: (e) => e\n  }, eo = {\n    ...Mr,\n    transform: (e) => He(0, 1, e)\n  }, bo = {\n    ...Mr,\n    default: 1\n  };\n})), Zr, ua = h((() => {\n  Zr = (e) => Math.round(e * 1e5) / 1e5;\n})), Ei, ma = h((() => {\n  Ei = /-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/gu;\n}));\nfunction q0(e) {\n  return e == null;\n}\nvar W0 = h((() => {\n})), Im, H0 = h((() => {\n  Im = /^(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))$/iu;\n})), Si, ga, ha = h((() => {\n  ma(), W0(), H0(), Si = (e, r) => (o) => !!(typeof o == \"string\" && Im.test(o) && o.startsWith(e) || r && !q0(o) && Object.prototype.hasOwnProperty.call(o, r)), ga = (e, r, o) => (t) => {\n    if (typeof t != \"string\") return t;\n    const [i, n, s, a] = t.match(Ei);\n    return {\n      [e]: parseFloat(i),\n      [r]: parseFloat(n),\n      [o]: parseFloat(s),\n      alpha: a !== void 0 ? parseFloat(a) : 1\n    };\n  };\n})), Lc, tt, br, Ci = h((() => {\n  $(), _r(), ua(), ha(), Lc = (e) => He(0, 255, e), tt = {\n    ...Mr,\n    transform: (e) => Math.round(Lc(e))\n  }, br = {\n    test: /* @__PURE__ */ Si(\"rgb\", \"red\"),\n    parse: /* @__PURE__ */ ga(\"red\", \"green\", \"blue\"),\n    transform: ({ red: e, green: r, blue: o, alpha: t = 1 }) => \"rgba(\" + tt.transform(e) + \", \" + tt.transform(r) + \", \" + tt.transform(o) + \", \" + Zr(eo.transform(t)) + \")\"\n  };\n}));\nfunction K0(e) {\n  let r = \"\", o = \"\", t = \"\", i = \"\";\n  return e.length > 5 ? (r = e.substring(1, 3), o = e.substring(3, 5), t = e.substring(5, 7), i = e.substring(7, 9)) : (r = e.substring(1, 2), o = e.substring(2, 3), t = e.substring(3, 4), i = e.substring(4, 5), r += r, o += o, t += t, i += i), {\n    red: parseInt(r, 16),\n    green: parseInt(o, 16),\n    blue: parseInt(t, 16),\n    alpha: i ? parseInt(i, 16) / 255 : 1\n  };\n}\nvar Vt, pa = h((() => {\n  Ci(), ha(), Vt = {\n    test: /* @__PURE__ */ Si(\"#\"),\n    parse: K0,\n    transform: br.transform\n  };\n})), Wr, Je, $e, U, Mm, Dm, Kn, lr = h((() => {\n  Wr = /* @__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__ */ Wr(\"deg\"), $e = /* @__PURE__ */ Wr(\"%\"), U = /* @__PURE__ */ Wr(\"px\"), Mm = /* @__PURE__ */ Wr(\"vh\"), Dm = /* @__PURE__ */ Wr(\"vw\"), Kn = {\n    ...$e,\n    parse: (e) => $e.parse(e) / 100,\n    transform: (e) => $e.transform(e * 100)\n  };\n})), Pr, fa = h((() => {\n  _r(), lr(), ua(), ha(), Pr = {\n    test: /* @__PURE__ */ Si(\"hsl\", \"hue\"),\n    parse: /* @__PURE__ */ ga(\"hue\", \"saturation\", \"lightness\"),\n    transform: ({ hue: e, saturation: r, lightness: o, alpha: t = 1 }) => \"hsla(\" + Math.round(e) + \", \" + $e.transform(Zr(r)) + \", \" + $e.transform(Zr(o)) + \", \" + Zr(eo.transform(t)) + \")\"\n  };\n})), ye, Yo = h((() => {\n  pa(), fa(), Ci(), ye = {\n    test: (e) => br.test(e) || Vt.test(e) || Pr.test(e),\n    parse: (e) => br.test(e) ? br.parse(e) : Pr.test(e) ? Pr.parse(e) : Vt.parse(e),\n    transform: (e) => typeof e == \"string\" ? e : e.hasOwnProperty(\"red\") ? br.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})), zm, G0 = h((() => {\n  zm = /(?:#[\\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(Ei)?.length || 0) + (e.match(zm)?.length || 0) > 0;\n}\nfunction ro(e) {\n  const r = e.toString(), o = [], t = {\n    color: [],\n    number: [],\n    var: []\n  }, i = [];\n  let n = 0;\n  return {\n    values: o,\n    split: r.replace(Vm, (s) => (ye.test(s) ? (t.color.push(n), i.push(ba), o.push(ye.parse(s))) : s.startsWith(Bm) ? (t.var.push(n), i.push(Um), o.push(s)) : (t.number.push(n), i.push(va), o.push(parseFloat(s))), ++n, Gn)).split(Gn),\n    indexes: t,\n    types: i\n  };\n}\nfunction X0(e) {\n  return ro(e).values;\n}\nfunction Om({ split: e, types: r }) {\n  const o = e.length;\n  return (t) => {\n    let i = \"\";\n    for (let n = 0; n < o; n++)\n      if (i += e[n], t[n] !== void 0) {\n        const s = r[n];\n        s === va ? i += Zr(t[n]) : s === ba ? i += ye.transform(t[n]) : i += t[n];\n      }\n    return i;\n  };\n}\nfunction J0(e) {\n  return Om(ro(e));\n}\nfunction Z0(e) {\n  const r = ro(e);\n  return Om(r)(r.values.map((o, t) => Fm(o, r.split[t])));\n}\nvar va, ba, Um, Bm, Gn, Vm, Nc, Fm, Be, or = h((() => {\n  Yo(), G0(), ma(), ua(), va = \"number\", ba = \"color\", Um = \"var\", Bm = \"var(\", Gn = \"${}\", Vm = /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, Nc = (e) => typeof e == \"number\" ? 0 : ye.test(e) ? ye.getAnimatableNone(e) : e, Fm = (e, r) => typeof e == \"number\" ? r?.trim().endsWith(\"/\") ? e : 0 : Nc(e), Be = {\n    test: Y0,\n    parse: X0,\n    createTransformer: J0,\n    getAnimatableNone: Z0\n  };\n}));\nfunction yn(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 i = 0, n = 0, s = 0;\n  if (!r) i = n = s = o;\n  else {\n    const a = o < 0.5 ? o * (1 + r) : o + r - o * r, d = 2 * o - a;\n    i = yn(d, a, e + 1 / 3), n = yn(d, a, e), s = yn(d, a, e - 1 / 3);\n  }\n  return {\n    red: Math.round(i * 255),\n    green: Math.round(n * 255),\n    blue: Math.round(s * 255),\n    alpha: t\n  };\n}\nvar jm = h((() => {\n}));\nfunction Ft(e, r) {\n  return (o) => o > 0 ? r : e;\n}\nvar ya = h((() => {\n})), re, Ge = h((() => {\n  re = (e, r, o) => e + (r - e) * o;\n}));\nfunction Ic(e) {\n  const r = $m(e);\n  if (Go(!!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 it, Mc, $m, Yn, qm = h((() => {\n  $(), pa(), fa(), jm(), Ci(), ya(), Ge(), it = (e, r, o) => {\n    const t = e * e, i = o * (r * r - t) + t;\n    return i < 0 ? 0 : Math.sqrt(i);\n  }, Mc = [\n    Vt,\n    br,\n    Pr\n  ], $m = (e) => Mc.find((r) => r.test(e)), Yn = (e, r) => {\n    const o = Ic(e), t = Ic(r);\n    if (!o || !t) return Ft(e, r);\n    const i = { ...o };\n    return (n) => (i.red = it(o.red, t.red, n), i.green = it(o.green, t.green, n), i.blue = it(o.blue, t.blue, n), i.alpha = re(o.alpha, t.alpha, n), br.transform(i));\n  };\n}));\nfunction ek(e, r) {\n  return jt.has(e) ? (o) => o <= 0 ? e : r : (o) => o >= 1 ? r : e;\n}\nvar jt, Wm = h((() => {\n  jt = /* @__PURE__ */ new Set([\"none\", \"hidden\"]);\n}));\nfunction rk(e, r) {\n  return (o) => re(e, r, o);\n}\nfunction wa(e) {\n  return typeof e == \"number\" ? rk : typeof e == \"string\" ? Ai(e) ? Ft : ye.test(e) ? Yn : Km : Array.isArray(e) ? Hm : typeof e == \"object\" ? ye.test(e) ? Yn : ok : Ft;\n}\nfunction Hm(e, r) {\n  const o = [...e], t = o.length, i = e.map((n, s) => wa(n)(n, r[s]));\n  return (n) => {\n    for (let s = 0; s < t; s++) o[s] = i[s](n);\n    return o;\n  };\n}\nfunction ok(e, r) {\n  const o = {\n    ...e,\n    ...r\n  }, t = {};\n  for (const i in o) e[i] !== void 0 && r[i] !== void 0 && (t[i] = wa(e[i])(e[i], r[i]));\n  return (i) => {\n    for (const n in t) o[n] = t[n](i);\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 i = 0; i < r.values.length; i++) {\n    const n = r.types[i], s = e.indexes[n][t[n]];\n    o[i] = e.values[s] ?? 0, t[n]++;\n  }\n  return o;\n}\nvar Km, Gm = h((() => {\n  $(), co(), Yo(), or(), qm(), ya(), Ge(), Wm(), Km = (e, r) => {\n    const o = Be.createTransformer(r), t = ro(e), i = ro(r);\n    return t.indexes.var.length === i.indexes.var.length && t.indexes.color.length === i.indexes.color.length && t.indexes.number.length >= i.indexes.number.length ? jt.has(e) && !i.values.length || jt.has(r) && !t.values.length ? ek(e, r) : ao(Hm(tk(t, i), i.values), o) : (Go(!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 Ym(e, r, o) {\n  return typeof e == \"number\" && typeof r == \"number\" && typeof o == \"number\" ? re(e, r, o) : wa(e)(e, r);\n}\nvar ka = h((() => {\n  Gm(), Ge();\n})), Xm, ik = h((() => {\n  cr(), rr(), Xm = (e) => {\n    const r = ({ timestamp: o }) => e(o);\n    return {\n      start: (o = !0) => oe.update(r, o),\n      stop: () => ar(r),\n      now: () => _e.isProcessing ? _e.timestamp : Te.now()\n    };\n  };\n})), xa, _a = h((() => {\n  xa = (e, r, o = 10) => {\n    let t = \"\";\n    const i = Math.max(Math.round(r / o), 2);\n    for (let n = 0; n < i; n++) t += Math.round(e(n / (i - 1)) * 1e4) / 1e4 + \", \";\n    return `linear(${t.substring(0, t.length - 2)})`;\n  };\n}));\nfunction Aa(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 Ea, Ti = h((() => {\n  Ea = 2e4;\n}));\nfunction nk(e, r = 100, o) {\n  const t = o({\n    ...e,\n    keyframes: [0, r]\n  }), i = Math.min(Aa(t), Ea);\n  return {\n    type: \"keyframes\",\n    ease: (n) => t.next(i * n).value / r,\n    duration: De(i)\n  };\n}\nvar Jm = h((() => {\n  $(), Ti();\n}));\nfunction Xn(e, r) {\n  return e * Math.sqrt(1 - r * r);\n}\nfunction sk(e, r, o) {\n  let t = o;\n  for (let i = 1; i < Zm; i++) t = t - e(t) / r(t);\n  return t;\n}\nfunction ak({ duration: e = ge.duration, bounce: r = ge.bounce, velocity: o = ge.velocity, mass: t = ge.mass }) {\n  let i, n;\n  Go(e <= Le(ge.maxDuration), \"Spring duration must be 10 seconds or less\", \"spring-duration-limit\");\n  let s = 1 - r;\n  s = He(ge.minDamping, ge.maxDamping, s), e = He(ge.minDuration, ge.maxDuration, De(e)), s < 1 ? (i = (l) => {\n    const u = l * s, m = u * e, g = u - o, p = Xn(l, s), f = Math.exp(-m);\n    return Jn - g / p * f;\n  }, n = (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 = Xn(Math.pow(l, 2), s);\n    return (-i(l) + Jn > 0 ? -1 : 1) * ((m - g) * p) / f;\n  }) : (i = (l) => -1e-3 + Math.exp(-l * e) * ((l - o) * e + 1), n = (l) => Math.exp(-l * e) * ((o - l) * (e * e)));\n  const a = 5 / e, d = sk(i, n, a);\n  if (e = Le(e), isNaN(d)) return {\n    stiffness: ge.stiffness,\n    damping: ge.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 Dc(e, r) {\n  return r.some((o) => e[o] !== void 0);\n}\nfunction dk(e) {\n  let r = {\n    velocity: ge.velocity,\n    stiffness: ge.stiffness,\n    damping: ge.damping,\n    mass: ge.mass,\n    isResolvedFromDuration: !1,\n    ...e\n  };\n  if (!Dc(e, eg) && Dc(e, Qm))\n    if (r.velocity = 0, e.visualDuration) {\n      const o = e.visualDuration, t = 2 * Math.PI / (o * 1.2), i = t * t, n = 2 * He(0.05, 1, 1 - (e.bounce || 0)) * Math.sqrt(i);\n      r = {\n        ...r,\n        mass: ge.mass,\n        stiffness: i,\n        damping: n\n      };\n    } else {\n      const o = ak({\n        ...e,\n        velocity: 0\n      });\n      r = {\n        ...r,\n        ...o,\n        mass: ge.mass\n      }, r.isResolvedFromDuration = !0;\n    }\n  return r;\n}\nfunction $t(e = ge.visualDuration, r = ge.bounce) {\n  const o = typeof e != \"object\" ? {\n    visualDuration: e,\n    keyframes: [0, 1],\n    bounce: r\n  } : e;\n  let { restSpeed: t, restDelta: i } = o;\n  const n = o.keyframes[0], s = o.keyframes[o.keyframes.length - 1], a = {\n    done: !1,\n    value: n\n  }, { stiffness: d, damping: l, mass: u, duration: m, velocity: g, isResolvedFromDuration: p } = dk({\n    ...o,\n    velocity: -De(o.velocity || 0)\n  }), f = g || 0, y = l / (2 * Math.sqrt(d * u)), x = s - n, b = De(Math.sqrt(d / u)), k = Math.abs(x) < 5;\n  t || (t = k ? ge.restSpeed.granular : ge.restSpeed.default), i || (i = k ? ge.restDelta.granular : ge.restDelta.default);\n  let v, w, E, P, A, C;\n  if (y < 1)\n    E = Xn(b, y), P = (f + y * b * x) / E, v = (R) => s - Math.exp(-y * b * R) * (P * Math.sin(E * R) + x * Math.cos(E * R)), A = y * b * P + x * E, C = y * b * x - P * E, w = (R) => Math.exp(-y * b * R) * (A * Math.sin(E * R) + C * Math.cos(E * R));\n  else if (y === 1) {\n    v = (I) => s - Math.exp(-b * I) * (x + (f + b * x) * I);\n    const R = f + b * x;\n    w = (I) => Math.exp(-b * I) * (b * R * I - f);\n  } else {\n    const R = b * Math.sqrt(y * y - 1);\n    v = (D) => {\n      const B = Math.exp(-y * b * D), G = Math.min(R * D, 300);\n      return s - B * ((f + y * b * x) * Math.sinh(G) + R * x * Math.cosh(G)) / R;\n    };\n    const I = (f + y * b * x) / R, N = y * b * I - x * R, M = y * b * x - I * R;\n    w = (D) => {\n      const B = Math.exp(-y * b * D), G = Math.min(R * D, 300);\n      return B * (N * Math.sinh(G) + M * Math.cosh(G));\n    };\n  }\n  const S = {\n    calculatedDuration: p && m || null,\n    velocity: (R) => Le(w(R)),\n    next: (R) => {\n      if (!p && y < 1) {\n        const N = Math.exp(-y * b * R), M = Math.sin(E * R), D = Math.cos(E * R), B = s - N * (P * M + x * D), G = Le(N * (A * M + C * D));\n        return a.done = Math.abs(G) <= t && Math.abs(s - B) <= i, a.value = a.done ? s : B, a;\n      }\n      const I = v(R);\n      if (p)\n        a.done = R >= m;\n      else {\n        const N = Le(w(R));\n        a.done = Math.abs(N) <= t && Math.abs(s - I) <= i;\n      }\n      return a.value = a.done ? s : I, a;\n    },\n    toString: () => {\n      const R = Math.min(Aa(S), Ea), I = xa((N) => S.next(R * N).value, R, 30);\n      return R + \"ms \" + I;\n    },\n    toTransition: () => {\n    }\n  };\n  return S;\n}\nvar ge, Zm, Jn, Qm, eg, Sa = h((() => {\n  $(), _a(), Ti(), Jm(), ge = {\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  }, Zm = 12, Jn = 1e-3, Qm = [\"duration\", \"bounce\"], eg = [\n    \"stiffness\",\n    \"damping\",\n    \"mass\"\n  ], $t.applyToOptions = (e) => {\n    const r = nk(e, 100, $t);\n    return e.ease = r.ease, e.duration = Le(r.duration), e.type = \"keyframes\", e;\n  };\n}));\nfunction rg(e, r, o) {\n  const t = Math.max(r - og, 0);\n  return Xs(o - e(t), r - t);\n}\nvar og, tg = h((() => {\n  $(), og = 5;\n}));\nfunction Zn({ keyframes: e, velocity: r = 0, power: o = 0.8, timeConstant: t = 325, bounceDamping: i = 10, bounceStiffness: n = 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 = (C) => a !== void 0 && C < a || d !== void 0 && C > d, f = (C) => a === void 0 ? d : d === void 0 || Math.abs(a - C) < Math.abs(d - C) ? a : d;\n  let y = o * r;\n  const x = m + y, b = s === void 0 ? x : s(x);\n  b !== x && (y = b - m);\n  const k = (C) => -y * Math.exp(-C / t), v = (C) => b + k(C), w = (C) => {\n    const S = k(C), R = v(C);\n    g.done = Math.abs(S) <= l, g.value = g.done ? b : R;\n  };\n  let E, P;\n  const A = (C) => {\n    p(g.value) && (E = C, P = $t({\n      keyframes: [g.value, f(g.value)],\n      velocity: rg(v, C, g.value),\n      damping: i,\n      stiffness: n,\n      restDelta: l,\n      restSpeed: u\n    }));\n  };\n  return A(0), {\n    calculatedDuration: null,\n    next: (C) => {\n      let S = !1;\n      return !P && E === void 0 && (S = !0, w(C), A(C)), E !== void 0 && C >= E ? P.next(C - E) : (!S && w(C), g);\n    }\n  };\n}\nvar Ca = h((() => {\n  Sa(), tg();\n}));\nfunction ck(e, r, o) {\n  const t = [], i = o || sr.mix || Ym, n = e.length - 1;\n  for (let s = 0; s < n; s++) {\n    let a = i(e[s], e[s + 1]);\n    r && (a = ao(Array.isArray(r) ? r[s] || ze : r, a)), t.push(a);\n  }\n  return t;\n}\nfunction lk(e, r, { clamp: o = !0, ease: t, mixer: i } = {}) {\n  const n = e.length;\n  if (zr(n === r.length, \"Both input and output ranges must be the same length\", \"range-length\"), n === 1) return () => r[0];\n  if (n === 2 && r[0] === r[1]) return () => r[1];\n  const s = e[0] === e[1];\n  e[0] > e[n - 1] && (e = [...e].reverse(), r = [...r].reverse());\n  const a = ck(r, t, i), 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 = Qr(e[m], e[m + 1], u);\n    return a[m](g);\n  };\n  return o ? (u) => l(He(e[0], e[n - 1], u)) : l;\n}\nvar ig = h((() => {\n  $(), ka();\n}));\nfunction uk(e, r) {\n  const o = e[e.length - 1];\n  for (let t = 1; t <= r; t++) {\n    const i = Qr(0, r, t);\n    e.push(re(o, 1, i));\n  }\n}\nvar ng = h((() => {\n  $(), Ge();\n}));\nfunction mk(e) {\n  const r = [0];\n  return uk(r, e.length - 1), r;\n}\nvar sg = h((() => {\n  ng();\n}));\nfunction gk(e, r) {\n  return e.map((o) => o * r);\n}\nvar ag = h((() => {\n}));\nfunction hk(e, r) {\n  return e.map(() => r || aa).splice(0, e.length - 1);\n}\nfunction _o({ duration: e = 300, keyframes: r, times: o, ease: t = \"easeInOut\" }) {\n  const i = Tm(t) ? t.map(Hn) : Hn(t), n = {\n    done: !1,\n    value: r[0]\n  }, s = lk(gk(o && o.length === r.length ? o : mk(r), e), r, { ease: Array.isArray(i) ? i : hk(r, i) });\n  return {\n    calculatedDuration: e,\n    next: (a) => (n.value = s(a), n.done = a >= e, n)\n  };\n}\nvar Ta = h((() => {\n  $(), ig(), sg(), ag();\n}));\nfunction Ri(e, { repeat: r, repeatType: o = \"loop\" }, t, i = 1) {\n  const n = e.filter(dg), s = i < 0 || r && o !== \"loop\" && r % 2 === 1 ? 0 : n.length - 1;\n  return !s || t === void 0 ? n[s] : t;\n}\nvar dg, Xo = h((() => {\n  dg = (e) => e !== null;\n}));\nfunction cg(e) {\n  typeof e.type == \"string\" && (e.type = lg[e.type]);\n}\nvar lg, ug = h((() => {\n  Ca(), Ta(), Sa(), lg = {\n    decay: Zn,\n    inertia: Zn,\n    tween: _o,\n    keyframes: _o,\n    spring: $t\n  };\n})), Pi, Ra = h((() => {\n  Pi = 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})), zc, Mo, Li = h((() => {\n  $(), cr(), ka(), ik(), Ca(), Ta(), Ti(), tg(), Xo(), ug(), Ra(), zc = (e) => e / 100, Mo = class extends Pi {\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      cg(e);\n      const { type: r = _o, repeat: o = 0, repeatDelay: t = 0, repeatType: i, velocity: n = 0 } = e;\n      let { keyframes: s } = e;\n      const a = r || _o;\n      a !== _o && typeof s[0] != \"number\" && (this.mixKeyframes = ao(zc, Ym(s[0], s[1])), s = [0, 100]);\n      const d = a({\n        ...e,\n        keyframes: s\n      });\n      i === \"mirror\" && (this.mirroredGenerator = a({\n        ...e,\n        keyframes: [...s].reverse(),\n        velocity: -n\n      })), d.calculatedDuration === null && (d.calculatedDuration = Aa(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: i, mirroredGenerator: n, 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: y } = 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), b = 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 k = this.currentTime, v = o;\n      if (u) {\n        const A = Math.min(this.currentTime, t) / s;\n        let C = Math.floor(A), S = A % 1;\n        !S && A >= 1 && (S = 1), S === 1 && C--, C = Math.min(C, u + 1), C % 2 && (m === \"reverse\" ? (S = 1 - S, g && (S -= g / s)) : m === \"mirror\" && (v = n)), k = He(0, 1, S) * s;\n      }\n      let w;\n      b ? (this.delayState.value = l[0], w = this.delayState) : w = v.next(k), i && !b && (w.value = i(w.value));\n      let { done: E } = w;\n      !b && a !== null && (E = this.playbackSpeed >= 0 ? this.currentTime >= t : this.currentTime <= 0);\n      const P = this.holdTime === null && (this.state === \"finished\" || this.state === \"running\" && E);\n      return P && p !== Zn && (w.value = Ri(l, this.options, y, this.speed)), f && f(w.value), P && this.finish(), w;\n    }\n    then(e, r) {\n      return this.finished.then(e, r);\n    }\n    get duration() {\n      return De(this.calculatedDuration);\n    }\n    get iterationDuration() {\n      const { delay: e = 0 } = this.options || {};\n      return this.duration + De(e);\n    }\n    get time() {\n      return De(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 rg((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 = De(this.currentTime));\n    }\n    play() {\n      if (this.isStopped) return;\n      const { driver: e = Xm, 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 mg = h((() => {\n}));\nfunction Qn(e) {\n  return e.includes(\"scale\") ? 1 : 0;\n}\nfunction es(e, r) {\n  if (!e || e === \"none\") return Qn(r);\n  const o = e.match(/^matrix3d\\(([-\\d.e\\s,]+)\\)$/u);\n  let t, i;\n  if (o)\n    t = hg, i = o;\n  else {\n    const a = e.match(/^matrix\\(([-\\d.e\\s,]+)\\)$/u);\n    t = gg, i = a;\n  }\n  if (!i) return Qn(r);\n  const n = t[r], s = i[1].split(\",\").map(fk);\n  return typeof n == \"function\" ? n(s) : s[n];\n}\nfunction fk(e) {\n  return parseFloat(e.trim());\n}\nvar gr, nt, gg, st, wn, kn, xn, hg, pg, Pa = h((() => {\n  gr = (e) => e * 180 / Math.PI, nt = (e) => st(gr(Math.atan2(e[1], e[0]))), gg = {\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: nt,\n    rotateZ: nt,\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), wn = nt, kn = (e) => Math.sqrt(e[0] * e[0] + e[1] * e[1]), xn = (e) => Math.sqrt(e[4] * e[4] + e[5] * e[5]), hg = {\n    x: 12,\n    y: 13,\n    z: 14,\n    translateX: 12,\n    translateY: 13,\n    translateZ: 14,\n    scaleX: kn,\n    scaleY: xn,\n    scale: (e) => (kn(e) + xn(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: wn,\n    rotate: wn,\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  }, pg = (e, r) => {\n    const { transform: o = \"none\" } = getComputedStyle(e);\n    return es(o, r);\n  };\n})), Or, Vr, Ye = 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  ], Vr = /* @__PURE__ */ new Set([...Or, \"pathRotation\"]);\n}));\nfunction vk(e) {\n  const r = [];\n  return fg.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 rs, Oc, fg, ir, vg = h((() => {\n  Pa(), Ye(), _r(), lr(), rs = (e) => e === Mr || e === U, Oc = /* @__PURE__ */ new Set([\n    \"x\",\n    \"y\",\n    \"z\"\n  ]), fg = Or.filter((e) => !Oc.has(e)), ir = {\n    width: ({ x: e }, { paddingLeft: r = \"0\", paddingRight: o = \"0\", boxSizing: t }) => {\n      const i = e.max - e.min;\n      return t === \"border-box\" ? i : i - parseFloat(r) - parseFloat(o);\n    },\n    height: ({ y: e }, { paddingTop: r = \"0\", paddingBottom: o = \"0\", boxSizing: t }) => {\n      const i = e.max - e.min;\n      return t === \"border-box\" ? i : i - 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 }) => es(r, \"x\"),\n    y: (e, { transform: r }) => es(r, \"y\")\n  }, ir.translateX = ir.x, ir.translateY = ir.y;\n}));\nfunction bg() {\n  if (qt) {\n    const e = Array.from(yr).filter((t) => t.needsMeasurement), r = new Set(e.map((t) => t.element)), o = /* @__PURE__ */ new Map();\n    r.forEach((t) => {\n      const i = vk(t);\n      i.length && (o.set(t, i), t.render());\n    }), e.forEach((t) => t.measureInitialState()), r.forEach((t) => {\n      t.render();\n      const i = o.get(t);\n      i && i.forEach(([n, s]) => {\n        t.getValue(n)?.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, yr.forEach((e) => e.complete(Wt)), yr.clear();\n}\nfunction yg() {\n  yr.forEach((e) => {\n    e.readKeyframes(), e.needsMeasurement && (qt = !0);\n  });\n}\nfunction bk() {\n  Wt = !0, yg(), bg(), Wt = !1;\n}\nvar yr, kt, qt, Wt, Ni, Ii = h((() => {\n  mg(), vg(), rr(), yr = /* @__PURE__ */ new Set(), kt = !1, qt = !1, Wt = !1, Ni = class {\n    constructor(e, r, o, t, i, n = !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 = i, this.isAsync = n;\n    }\n    scheduleResolve() {\n      this.state = \"scheduled\", this.isAsync ? (yr.add(this), kt || (kt = !0, oe.read(yg), oe.resolveKeyframes(bg))) : (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 i = t?.get(), n = e[e.length - 1];\n        if (i !== void 0) e[0] = i;\n        else if (o && r) {\n          const s = o.readValue(r, n);\n          s != null && (e[0] = s);\n        }\n        e[0] === void 0 && (e[0] = n), t && i === 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), yr.delete(this);\n    }\n    cancel() {\n      this.state === \"scheduled\" && (yr.delete(this), this.state = \"pending\");\n    }\n    resume() {\n      this.state === \"pending\" && this.scheduleResolve();\n    }\n  };\n})), wg, kg = h((() => {\n  wg = (e) => e.startsWith(\"--\");\n}));\nfunction xg(e, r, o) {\n  wg(r) ? e.style.setProperty(r, o) : e.style[r] = o;\n}\nvar La = h((() => {\n  kg();\n})), _g, Ag = h((() => {\n  _g = {};\n}));\nfunction Eg(e, r) {\n  const o = /* @__PURE__ */ wm(e);\n  return () => _g[r] ?? o();\n}\nvar Sg = h((() => {\n  $(), Ag();\n})), Cg, Tg = h((() => {\n  Sg(), Cg = /* @__PURE__ */ Eg(() => window.ScrollTimeline !== void 0, \"scrollTimeline\");\n})), Na, Ia = h((() => {\n  Sg(), Na = /* @__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})), Xr, Ma = h((() => {\n  Xr = ([e, r, o, t]) => `cubic-bezier(${e}, ${r}, ${o}, ${t})`;\n})), os, Rg = h((() => {\n  Ma(), os = {\n    linear: \"linear\",\n    ease: \"ease\",\n    easeIn: \"ease-in\",\n    easeOut: \"ease-out\",\n    easeInOut: \"ease-in-out\",\n    circIn: /* @__PURE__ */ Xr([\n      0,\n      0.65,\n      0.55,\n      1\n    ]),\n    circOut: /* @__PURE__ */ Xr([\n      0.55,\n      0,\n      1,\n      0.45\n    ]),\n    backIn: /* @__PURE__ */ Xr([\n      0.31,\n      0.01,\n      0.66,\n      -0.59\n    ]),\n    backOut: /* @__PURE__ */ Xr([\n      0.33,\n      1.53,\n      0.69,\n      0.99\n    ])\n  };\n}));\nfunction Pg(e, r) {\n  if (e) return typeof e == \"function\" ? Na() ? xa(e, r) : \"ease-out\" : da(e) ? Xr(e) : Array.isArray(e) ? e.map((o) => Pg(o, r) || os.easeOut) : os[e];\n}\nvar Lg = h((() => {\n  $(), Ia(), _a(), Ma(), Rg();\n}));\nfunction yk(e, r, o, { delay: t = 0, duration: i = 300, repeat: n = 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 = Pg(a, i);\n  Array.isArray(m) && (u.easing = m);\n  const g = {\n    delay: t,\n    duration: i,\n    easing: Array.isArray(m) ? \"linear\" : m,\n    fill: \"both\",\n    iterations: n + 1,\n    direction: s === \"reverse\" ? \"alternate\" : \"normal\"\n  };\n  return l && (g.pseudoElement = l), e.animate(u, g);\n}\nvar Ng = h((() => {\n  Lg();\n}));\nfunction Ig(e) {\n  return typeof e == \"function\" && \"applyToOptions\" in e;\n}\nvar Da = h((() => {\n}));\nfunction wk({ type: e, ...r }) {\n  return Ig(e) && Na() ? e.applyToOptions(r) : (r.duration ?? (r.duration = 300), r.ease ?? (r.ease = \"easeOut\"), r);\n}\nvar Mg = h((() => {\n  Ia(), Da();\n})), za, Oa = h((() => {\n  $(), La(), Tg(), Xo(), Ra(), Ng(), Mg(), za = class extends Pi {\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: i, allowFlatten: n = !1, finalKeyframe: s, onComplete: a } = e;\n      this.isPseudoElement = !!i, this.allowFlatten = n, 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, i), d.autoplay === !1 && this.animation.pause(), this.animation.onfinish = () => {\n        if (this.finishedTime = this.time, !i) {\n          const l = Ri(t, this.options, s, this.speed);\n          this.updateMotionValue && this.updateMotionValue(l), xg(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 De(Number(e));\n    }\n    get iterationDuration() {\n      const { delay: e = 0 } = this.options || {};\n      return this.duration + De(e);\n    }\n    get time() {\n      return De(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 && Cg() ? (this.animation.timeline = e, r && (this.animation.rangeStart = r), o && (this.animation.rangeEnd = o), ze) : t(this);\n    }\n  };\n}));\nfunction kk(e) {\n  return e in Ua;\n}\nfunction xk(e) {\n  typeof e.ease == \"string\" && kk(e.ease) && (e.ease = Ua[e.ease]);\n}\nvar Ua, _k = h((() => {\n  $(), Ua = {\n    anticipate: ia,\n    backInOut: oa,\n    circInOut: sa\n  };\n})), at, Dg, zg = h((() => {\n  $(), cr(), La(), Li(), Oa(), ug(), _k(), at = 10, Dg = class extends za {\n    constructor(e) {\n      xk(e), cg(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: i, ...n } = this.options;\n      if (!r) return;\n      if (e !== void 0) {\n        r.set(e);\n        return;\n      }\n      const s = new Mo({\n        ...n,\n        autoplay: !1\n      }), a = Math.max(at, Te.now() - this.startTime), d = He(0, at, a - at), l = s.sample(a).value, { name: u } = this.options;\n      i && u && xg(i, u, l), r.setWithVelocity(s.sample(Math.max(0, a - d)).value, l, d), s.stop();\n    }\n  };\n})), ts, Ak = h((() => {\n  or(), ts = (e, r) => r === \"zIndex\" ? !1 : !!(typeof e == \"number\" || Array.isArray(e) || typeof e == \"string\" && (Be.test(e) || e === \"0\") && !e.startsWith(\"url(\"));\n}));\nfunction Ek(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 i = e[0];\n  if (i === null) return !1;\n  if (r === \"display\" || r === \"visibility\") return !0;\n  const n = e[e.length - 1], s = ts(i, r), a = ts(n, r);\n  return Go(s === a, `You are trying to animate ${r} from \"${i}\" to \"${n}\". \"${s ? n : i}\" is not an animatable value.`, \"value-not-animatable\"), !s || !a ? !1 : Ek(e) || (o === \"spring\" || Ig(o)) && t;\n}\nvar Ck = h((() => {\n  $(), Da(), Ak();\n}));\nfunction is(e) {\n  e.duration = 0, e.type = \"keyframes\";\n}\nvar Ba = h((() => {\n})), Va, Fa = h((() => {\n  Va = /* @__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\" && Og.test(e[r])) return !0;\n  return !1;\n}\nvar Og, Rk = h((() => {\n  Og = /^(?:oklch|oklab|lab|lch|color|color-mix|light-dark)\\(/;\n}));\nfunction Pk(e) {\n  const { motionValue: r, name: o, repeatDelay: t, repeatType: i, damping: n, 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 Bg() && o && (Va.has(o) || Ug.has(o) && Tk(a)) && (o !== \"transform\" || !l) && !d && !t && i !== \"mirror\" && n !== 0 && s !== \"inertia\";\n}\nvar Ug, Bg, Vg = h((() => {\n  $(), Fa(), Rk(), Ug = /* @__PURE__ */ new Set([\n    \"color\",\n    \"backgroundColor\",\n    \"outlineColor\",\n    \"fill\",\n    \"stroke\",\n    \"borderColor\",\n    \"borderTopColor\",\n    \"borderRightColor\",\n    \"borderBottomColor\",\n    \"borderLeftColor\"\n  ]), Bg = /* @__PURE__ */ wm(() => Object.hasOwnProperty.call(Element.prototype, \"animate\"));\n})), Uc, Fg, jg = h((() => {\n  $(), cr(), Li(), Xo(), Ii(), zg(), Ck(), Ba(), Ra(), Vg(), Uc = 40, Fg = class extends Pi {\n    constructor({ autoplay: e = !0, delay: r = 0, type: o = \"keyframes\", repeat: t = 0, repeatDelay: i = 0, repeatType: n = \"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: i,\n        repeatType: n,\n        name: a,\n        motionValue: d,\n        element: l,\n        ...u\n      }, g = l?.KeyframeResolver || Ni;\n      this.keyframeResolver = new g(s, (p, f, y) => this.onKeyframesResolved(p, f, m, !y), a, d, l), this.keyframeResolver?.scheduleResolve();\n    }\n    onKeyframesResolved(e, r, o, t) {\n      this.keyframeResolver = void 0;\n      const { name: i, type: n, velocity: s, delay: a, isHandoff: d, onUpdate: l } = o;\n      this.resolvedAt = Te.now();\n      let u = !0;\n      Sk(e, i, n, s) || (u = !1, (sr.instantAnimations || !a) && l?.(Ri(e, o, r)), e[0] = e[e.length - 1], is(o), o.repeat = 0);\n      const m = {\n        startTime: t ? this.resolvedAt ? this.resolvedAt - this.createdAt > Uc ? 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 Dg({\n          ...m,\n          element: p\n        });\n      } catch {\n        f = new Mo(m);\n      }\n      else f = new Mo(m);\n      f.finished.then(() => {\n        this.notifyFinished();\n      }).catch(ze), 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 $g(e, r, o, t = 0, i = 1) {\n  const n = Array.from(e).sort((d, l) => d.sortNodePosition(l)).indexOf(r), s = e.size, a = (s - 1) * t;\n  return typeof o == \"function\" ? o(n, s) : i === 1 ? n * t : a - n * t;\n}\nvar ja = h((() => {\n}));\nfunction oo(e, r) {\n  return new qg(e, r);\n}\nvar _n, Bc, An, qg, lo = h((() => {\n  $(), cr(), rr(), _n = 30, Bc = (e) => !isNaN(parseFloat(e)), An = { current: void 0 }, qg = 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 i of this.dependents) i.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 = Bc(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 xi());\n      const o = this.events[e].add(r);\n      return e === \"change\" ? () => {\n        o(), oe.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 An.current && An.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 > _n) return 0;\n      const r = Math.min(this.updatedAt - this.prevUpdatedAt, _n);\n      return Xs(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 $a(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 qa = h((() => {\n}));\nfunction Wa(e, r) {\n  const o = e?.[r] ?? e?.default ?? e;\n  return o !== e ? $a(o, e) : o;\n}\nvar Mi = h((() => {\n  qa();\n})), Vc, Fc, jc, $c, Wg, Hg = h((() => {\n  Ye(), Vc = {\n    type: \"spring\",\n    stiffness: 500,\n    damping: 25,\n    restSpeed: 10\n  }, Fc = (e) => ({\n    type: \"spring\",\n    stiffness: 550,\n    damping: e === 0 ? 2 * Math.sqrt(550) : 30,\n    restSpeed: 10\n  }), jc = {\n    type: \"keyframes\",\n    duration: 0.8\n  }, $c = {\n    type: \"keyframes\",\n    ease: [\n      0.25,\n      0.1,\n      0.35,\n      1\n    ],\n    duration: 0.3\n  }, Wg = (e, { keyframes: r }) => r.length > 2 ? jc : Vr.has(e) ? e.startsWith(\"scale\") ? Fc(r[1]) : Vc : $c;\n}));\nfunction Lk(e) {\n  for (const r in e) if (!Kg.has(r)) return !0;\n  return !1;\n}\nvar Kg, Gg = h((() => {\n  Kg = /* @__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})), Di, Ha = h((() => {\n  $(), jg(), Li(), Mi(), Ba(), Hg(), Xo(), Gg(), rr(), Di = (e, r, o, t = {}, i, n) => (s) => {\n    const a = Wa(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: n ? void 0 : i\n    };\n    Lk(a) || Object.assign(u, Wg(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) && (is(u), u.delay === 0 && (m = !0)), (sr.instantAnimations || sr.skipAnimations || i?.shouldSkipAnimations || a.skipAnimations) && (m = !0, is(u), u.delay = 0), u.allowFlatten = !a.type && !a.ease, m && !n && r.get() !== void 0) {\n      const g = Ri(u.keyframes, a);\n      if (g !== void 0) {\n        oe.update(() => {\n          u.onUpdate(g), u.onComplete();\n        });\n        return;\n      }\n    }\n    return a.isSync ? new Mo(u) : new Fg(u);\n  };\n}));\nfunction Nk(e) {\n  const r = Xg.exec(e);\n  if (!r) return [,];\n  const [, o, t, i] = r;\n  return [`--${o ?? t}`, i];\n}\nfunction Yg(e, r, o = 1) {\n  zr(o <= Jg, `Max CSS variable fallback depth detected in property \"${e}\". This may indicate a circular fallback dependency.`, \"max-css-var-depth\");\n  const [t, i] = Nk(e);\n  if (!t) return;\n  const n = window.getComputedStyle(r).getPropertyValue(t);\n  if (n) {\n    const s = n.trim();\n    return Hs(s) ? parseFloat(s) : s;\n  }\n  return Ai(i) ? Yg(i, r, o + 1) : i;\n}\nvar Xg, Jg, Zg = h((() => {\n  $(), co(), Xg = /^var\\(--(?:([\\w-]+)|([\\w-]+), ?([a-zA-Z\\d ()%#.,-]+))\\)/u, Jg = 4;\n}));\nfunction qc(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 Ka(e, r, o, t) {\n  if (typeof r == \"function\") {\n    const [i, n] = qc(t);\n    r = r(o !== void 0 ? o : e.custom, i, n);\n  }\n  if (typeof r == \"string\" && (r = e.variants && e.variants[r]), typeof r == \"function\") {\n    const [i, n] = qc(t);\n    r = r(o !== void 0 ? o : e.custom, i, n);\n  }\n  return r;\n}\nvar Ga = h((() => {\n}));\nfunction Dr(e, r, o) {\n  const t = e.getProps();\n  return Ka(t, r, o !== void 0 ? o : t.custom, e);\n}\nvar Jo = h((() => {\n  Ga();\n})), Ya, Xa = h((() => {\n  Ye(), Ya = /* @__PURE__ */ new Set([\n    \"width\",\n    \"height\",\n    \"top\",\n    \"left\",\n    \"right\",\n    \"bottom\",\n    ...Or\n  ]);\n})), Ht, Ja = 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, oo(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 = {}, ...i } = Dr(e, r) || {};\n  i = {\n    ...i,\n    ...o\n  };\n  for (const n in i) Ik(e, n, Mk(i[n]));\n}\nvar Qg = h((() => {\n  lo(), Jo(), Ja();\n})), Ae, ur = h((() => {\n  Ae = (e) => !!(e && e.getVelocity);\n}));\nfunction zk(e) {\n  return !!(Ae(e) && e.add);\n}\nvar eh = h((() => {\n  ur();\n}));\nfunction ns(e, r) {\n  const o = e.getValue(\"willChange\");\n  if (zk(o)) return o.add(r);\n  if (!o && sr.WillChange) {\n    const t = new sr.WillChange(\"auto\");\n    e.addValue(\"willChange\", t), t.add(r);\n  }\n}\nvar rh = h((() => {\n  $(), eh();\n}));\nfunction Za(e) {\n  return e.replace(/([A-Z])/g, (r) => `-${r.toLowerCase()}`);\n}\nvar zi = h((() => {\n})), Wc, Qa, oh = h((() => {\n  zi(), Wc = \"framerAppearId\", Qa = \"data-\" + Za(Wc);\n}));\nfunction th(e) {\n  return e.props[Qa];\n}\nvar ed = h((() => {\n  oh();\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 ih(e, r, { delay: o = 0, transitionOverride: t, type: i } = {}) {\n  let { transition: n, transitionEnd: s, ...a } = r;\n  const d = e.getDefaultTransition();\n  n = n ? $a(n, d) : d;\n  const l = n?.reduceMotion, u = n?.skipAnimations;\n  t && (n = t);\n  const m = [], g = i && e.animationState && e.animationState.getState()[i], p = n?.path;\n  p && p.animateVisualElement(e, a, n, o, m);\n  for (const f in a) {\n    const y = e.getValue(f, e.latestValues[f] ?? null), x = a[f];\n    if (x === void 0 || g && Ok(g, f)) continue;\n    const b = {\n      delay: o,\n      ...Wa(n || {}, f)\n    };\n    u && (b.skipAnimations = !0);\n    const k = y.get();\n    if (k !== void 0 && !y.isAnimating() && !Array.isArray(x) && x === k && !b.velocity) {\n      oe.update(() => y.set(x));\n      continue;\n    }\n    let v = !1;\n    if (window.MotionHandoffAnimation) {\n      const P = th(e);\n      if (P) {\n        const A = window.MotionHandoffAnimation(P, f, oe);\n        A !== null && (b.startTime = A, v = !0);\n      }\n    }\n    ns(e, f);\n    const w = l ?? e.shouldReduceMotion;\n    y.start(Di(f, y, x, w && Ya.has(f) ? { type: !1 } : b, e, v));\n    const E = y.animation;\n    E && m.push(E);\n  }\n  if (s) {\n    const f = () => oe.update(() => {\n      s && Dk(e, s);\n    });\n    m.length ? Promise.all(m).then(f) : f();\n  }\n  return m;\n}\nvar rd = h((() => {\n  Mi(), qa(), Xa(), Qg(), rh(), ed(), Ha(), rr();\n}));\nfunction ss(e, r, o = {}) {\n  const t = Dr(e, r, o.type === \"exit\" ? e.presenceContext?.custom : void 0);\n  let { transition: i = e.getDefaultTransition() || {} } = t || {};\n  o.transitionOverride && (i = o.transitionOverride);\n  const n = t ? () => Promise.all(ih(e, t, o)) : () => Promise.resolve(), s = e.variantChildren && e.variantChildren.size ? (d = 0) => {\n    const { delayChildren: l = 0, staggerChildren: u, staggerDirection: m } = i;\n    return Uk(e, r, d, l, u, m, o);\n  } : () => Promise.resolve(), { when: a } = i;\n  if (a) {\n    const [d, l] = a === \"beforeChildren\" ? [n, s] : [s, n];\n    return d().then(() => l());\n  } else return Promise.all([n(), s(o.delay)]);\n}\nfunction Uk(e, r, o = 0, t = 0, i = 0, n = 1, s) {\n  const a = [];\n  for (const d of e.variantChildren)\n    d.notify(\"AnimationStart\", r), a.push(ss(d, r, {\n      ...s,\n      delay: o + (typeof t == \"function\" ? 0 : t) + $g(e.variantChildren, d, t, i, n)\n    }).then(() => d.notify(\"AnimationComplete\", r)));\n  return Promise.all(a);\n}\nvar nh = h((() => {\n  Jo(), ja(), rd();\n}));\nfunction Bk(e, r, o = {}) {\n  e.notify(\"AnimationStart\", r);\n  let t;\n  if (Array.isArray(r)) {\n    const i = r.map((n) => ss(e, n, o));\n    t = Promise.all(i);\n  } else if (typeof r == \"string\") t = ss(e, r, o);\n  else {\n    const i = typeof r == \"function\" ? Dr(e, r, o.custom) : r;\n    t = Promise.all(ih(e, i, o));\n  }\n  return t.then(() => {\n    e.notify(\"AnimationComplete\", r);\n  });\n}\nvar sh = h((() => {\n  Jo(), rd(), nh();\n})), ah, Vk = h((() => {\n  ah = {\n    test: (e) => e === \"auto\",\n    parse: (e) => e\n  };\n})), od, td = h((() => {\n  od = (e) => (r) => r.test(e);\n})), as, ds, id = h((() => {\n  Vk(), _r(), lr(), td(), as = [\n    Mr,\n    U,\n    $e,\n    Je,\n    Dm,\n    Mm,\n    ah\n  ], ds = (e) => as.find(od(e));\n}));\nfunction Fk(e) {\n  return typeof e == \"number\" ? e === 0 : e !== null ? e === \"none\" || e === \"0\" || Gs(e) : !0;\n}\nvar jk = h((() => {\n  $();\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(Ei) || [];\n  if (!t) return e;\n  const i = o.replace(t, \"\");\n  let n = dh.has(r) ? 1 : 0;\n  return t !== o && (n *= 100), r + \"(\" + n + i + \")\";\n}\nvar dh, Hc, Kt, ch = h((() => {\n  or(), ma(), dh = /* @__PURE__ */ new Set([\n    \"brightness\",\n    \"contrast\",\n    \"saturate\",\n    \"opacity\"\n  ]), Hc = /\\b([a-z-]*)\\(.*?\\)/gu, Kt = {\n    ...Be,\n    getAnimatableNone: (e) => {\n      const r = e.match(Hc);\n      return r ? r.map($k).join(\" \") : e;\n    }\n  };\n})), Gt, lh = h((() => {\n  or(), Gt = {\n    ...Be,\n    getAnimatableNone: (e) => {\n      const r = Be.parse(e);\n      return Be.createTransformer(e)(r.map((o) => typeof o == \"number\" ? 0 : typeof o == \"object\" ? {\n        ...o,\n        alpha: 1\n      } : o));\n    }\n  };\n})), cs, qk = h((() => {\n  _r(), cs = {\n    ...Mr,\n    transform: Math.round\n  };\n})), uh, mh = h((() => {\n  _r(), lr(), uh = {\n    rotate: Je,\n    pathRotation: Je,\n    rotateX: Je,\n    rotateY: Je,\n    rotateZ: Je,\n    scale: bo,\n    scaleX: bo,\n    scaleY: bo,\n    scaleZ: bo,\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: eo,\n    originX: Kn,\n    originY: Kn,\n    originZ: U\n  };\n})), Do, Oi = h((() => {\n  qk(), _r(), lr(), mh(), Do = {\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    ...uh,\n    zIndex: cs,\n    fillOpacity: eo,\n    strokeOpacity: eo,\n    numOctaves: cs\n  };\n})), Kc, nd, sd = h((() => {\n  Yo(), ch(), lh(), Oi(), Kc = {\n    ...Do,\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  }, nd = (e) => Kc[e];\n}));\nfunction gh(e, r) {\n  let o = nd(e);\n  return hh.has(o) || (o = Be), o.getAnimatableNone ? o.getAnimatableNone(r) : void 0;\n}\nvar hh, ad = h((() => {\n  or(), ch(), lh(), sd(), hh = /* @__PURE__ */ new Set([Kt, Gt]);\n}));\nfunction Wk(e, r, o) {\n  let t = 0, i;\n  for (; t < e.length && !i; ) {\n    const n = e[t];\n    typeof n == \"string\" && !ph.has(n) && ro(n).values.length && (i = e[t]), t++;\n  }\n  if (i && o) for (const n of r) e[n] = gh(o, i);\n}\nvar ph, Hk = h((() => {\n  or(), ad(), ph = /* @__PURE__ */ new Set([\n    \"auto\",\n    \"none\",\n    \"0\"\n  ]);\n})), fh, vh = h((() => {\n  Xa(), id(), Zg(), co(), Ii(), jk(), Hk(), vg(), fh = class extends Ni {\n    constructor(e, r, o, t, i) {\n      super(e, r, o, t, i, !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(), Ai(d))) {\n          const l = Yg(d, r.current);\n          l !== void 0 && (e[a] = l), a === e.length - 1 && (this.finalKeyframe = d);\n        }\n      }\n      if (this.resolveNoneKeyframes(), !Ya.has(o) || e.length !== 2) return;\n      const [t, i] = e, n = ds(t), s = ds(i);\n      if (Tc(t) !== Tc(i) && ir[o]) {\n        this.needsMeasurement = !0;\n        return;\n      }\n      if (n !== s)\n        if (rs(n) && rs(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 i = o.length - 1, n = o[i];\n      o[i] = ir[r](e.measureViewportBox(), window.getComputedStyle(e.current)), n !== null && this.finalKeyframe === void 0 && (this.finalKeyframe = n), this.removedTransforms?.length && this.removedTransforms.forEach(([s, a]) => {\n        e.getValue(s).set(a);\n      }), this.resolveNoneKeyframes();\n    }\n  };\n})), Ui, dd = h((() => {\n  Ui = [\n    \"borderTopLeftRadius\",\n    \"borderTopRightRadius\",\n    \"borderBottomRightRadius\",\n    \"borderBottomLeftRadius\"\n  ];\n}));\nfunction bh(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 i = o?.[e] ?? t.querySelectorAll(e);\n    return i ? Array.from(i) : [];\n  }\n  return Array.from(e).filter((t) => t != null);\n}\nvar cd = h((() => {\n})), Yt, ld = h((() => {\n  Yt = (e, r) => r && typeof e == \"number\" ? r.transform(e) : e;\n}));\nfunction xt(e) {\n  return Ks(e) && \"offsetHeight\" in e && !(\"ownerSVGElement\" in e);\n}\nvar yh = h((() => {\n  $();\n})), Bi, Kk, ud = h((() => {\n  ca(), { schedule: Bi, cancel: Kk } = /* @__PURE__ */ Lm(queueMicrotask, !1);\n}));\nfunction wh() {\n  return Ue.x || Ue.y;\n}\nvar Ue, Vi = h((() => {\n  Ue = {\n    x: !1,\n    y: !1\n  };\n}));\nfunction Gk(e) {\n  return e === \"x\" || e === \"y\" ? Ue[e] ? null : (Ue[e] = !0, () => {\n    Ue[e] = !1;\n  }) : Ue.x || Ue.y ? null : (Ue.x = Ue.y = !0, () => {\n    Ue.x = Ue.y = !1;\n  });\n}\nvar Yk = h((() => {\n  Vi();\n}));\nfunction kh(e, r) {\n  const o = bh(e), t = new AbortController(), i = {\n    passive: !0,\n    ...r,\n    signal: t.signal\n  };\n  return [\n    o,\n    i,\n    () => t.abort()\n  ];\n}\nvar xh = h((() => {\n  cd();\n}));\nfunction Xk(e) {\n  return !(e.pointerType === \"touch\" || wh());\n}\nfunction Jk(e, r, o = {}) {\n  const [t, i, n] = kh(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, i), window.addEventListener(\"pointercancel\", g, i);\n    }, f = (x) => {\n      if (x.pointerType !== \"touch\") {\n        if (a) {\n          d = !0;\n          return;\n        }\n        m(x);\n      }\n    }, y = (x) => {\n      if (!Xk(x)) return;\n      d = !1;\n      const b = r(s, x);\n      typeof b == \"function\" && (l = b, s.addEventListener(\"pointerleave\", f, i));\n    };\n    s.addEventListener(\"pointerenter\", y, i), s.addEventListener(\"pointerdown\", p, i);\n  }), n;\n}\nvar Zk = h((() => {\n  Vi(), xh();\n})), ls, _h = h((() => {\n  ls = (e, r) => r ? e === r ? !0 : ls(e, r.parentElement) : !1;\n})), Fi, Ah = h((() => {\n  Fi = (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 Sh.has(e.tagName) || e.isContentEditable === !0;\n}\nvar Eh, Sh, Ch = h((() => {\n  Eh = /* @__PURE__ */ new Set([\n    \"BUTTON\",\n    \"INPUT\",\n    \"SELECT\",\n    \"TEXTAREA\",\n    \"A\"\n  ]), Sh = /* @__PURE__ */ new Set([\n    \"INPUT\",\n    \"SELECT\",\n    \"TEXTAREA\"\n  ]);\n})), Ao, Th = h((() => {\n  Ao = /* @__PURE__ */ new WeakSet();\n}));\nfunction Gc(e) {\n  return (r) => {\n    r.key === \"Enter\" && e(r);\n  };\n}\nfunction En(e, r) {\n  e.dispatchEvent(new PointerEvent(\"pointer\" + r, {\n    isPrimary: !0,\n    bubbles: !0\n  }));\n}\nvar Rh, rx = h((() => {\n  Th(), Rh = (e, r) => {\n    const o = e.currentTarget;\n    if (!o) return;\n    const t = Gc(() => {\n      if (Ao.has(o)) return;\n      En(o, \"down\");\n      const i = Gc(() => {\n        En(o, \"up\");\n      }), n = () => En(o, \"cancel\");\n      o.addEventListener(\"keyup\", i, r), o.addEventListener(\"blur\", n, r);\n    });\n    o.addEventListener(\"keydown\", t, r), o.addEventListener(\"blur\", () => o.removeEventListener(\"keydown\", t), r);\n  };\n}));\nfunction Yc(e) {\n  return Fi(e) && !wh();\n}\nfunction ox(e, r, o = {}) {\n  const [t, i, n] = kh(e, o), s = (a) => {\n    const d = a.currentTarget;\n    if (!Yc(a) || us.has(a)) return;\n    Ao.add(d), o.stopPropagation && us.add(a);\n    const l = r(d, a), u = {\n      ...i,\n      capture: !0\n    }, m = (f, y) => {\n      window.removeEventListener(\"pointerup\", g, u), window.removeEventListener(\"pointercancel\", p, u), Ao.has(d) && Ao.delete(d), Yc(f) && typeof l == \"function\" && l(f, { success: y });\n    }, g = (f) => {\n      m(f, d === window || d === document || o.useGlobalTarget || ls(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, i), xt(a) && (a.addEventListener(\"focus\", (d) => Rh(d, i)), !Qk(a) && !a.hasAttribute(\"tabindex\") && (a.tabIndex = 0));\n  }), n;\n}\nvar us, tx = h((() => {\n  yh(), Vi(), _h(), Ah(), xh(), Ch(), rx(), Th(), us = /* @__PURE__ */ new WeakSet();\n}));\nfunction md(e) {\n  return Ks(e) && \"ownerSVGElement\" in e;\n}\nvar ji = h((() => {\n  $();\n}));\nfunction ix({ target: e, borderBoxSize: r }) {\n  Eo.get(e)?.forEach((o) => {\n    o(e, {\n      get width() {\n        return Ph(e, r);\n      },\n      get height() {\n        return Lh(e, r);\n      }\n    });\n  });\n}\nfunction nx(e) {\n  e.forEach(ix);\n}\nfunction sx() {\n  typeof ResizeObserver > \"u\" || (_t = new ResizeObserver(nx));\n}\nfunction ax(e, r) {\n  _t || sx();\n  const o = bh(e);\n  return o.forEach((t) => {\n    let i = Eo.get(t);\n    i || (i = /* @__PURE__ */ new Set(), Eo.set(t, i)), i.add(r), _t?.observe(t);\n  }), () => {\n    o.forEach((t) => {\n      const i = Eo.get(t);\n      i?.delete(r), i?.size || _t?.unobserve(t);\n    });\n  };\n}\nvar Eo, _t, Sn, Ph, Lh, dx = h((() => {\n  ji(), cd(), Eo = /* @__PURE__ */ new WeakMap(), Sn = (e, r, o) => (t, i) => i && i[0] ? i[0][e + \"Size\"] : md(t) && \"getBBox\" in t ? t.getBBox()[r] : t[o], Ph = /* @__PURE__ */ Sn(\"inline\", \"width\", \"offsetWidth\"), Lh = /* @__PURE__ */ Sn(\"block\", \"height\", \"offsetHeight\");\n}));\nfunction cx() {\n  Jr = () => {\n    const e = {\n      get width() {\n        return window.innerWidth;\n      },\n      get height() {\n        return window.innerHeight;\n      }\n    };\n    So.forEach((r) => r(e));\n  }, window.addEventListener(\"resize\", Jr);\n}\nfunction lx(e) {\n  return So.add(e), Jr || cx(), () => {\n    So.delete(e), !So.size && typeof Jr == \"function\" && (window.removeEventListener(\"resize\", Jr), Jr = void 0);\n  };\n}\nvar So, Jr, ux = h((() => {\n  So = /* @__PURE__ */ new Set();\n}));\nfunction Xc(e, r) {\n  return typeof e == \"function\" ? lx(e) : ax(e, r);\n}\nvar mx = h((() => {\n  dx(), ux();\n})), Rr, Nh = h((() => {\n  Rr = {\n    value: null,\n    addProjectionMetrics: null\n  };\n}));\nfunction gx(e) {\n  return md(e) && e.tagName === \"svg\";\n}\nvar Ih = h((() => {\n  ji();\n})), Jc, Mh, Dh = h((() => {\n  Yo(), or(), id(), td(), Jc = [\n    ...as,\n    ye,\n    Be\n  ], Mh = (e) => Jc.find(od(e));\n})), Cn, Lr, Tn, we, $i = h((() => {\n  Cn = () => ({\n    translate: 0,\n    scale: 1,\n    origin: 0,\n    originPoint: 0\n  }), Lr = () => ({\n    x: Cn(),\n    y: Cn()\n  }), Tn = () => ({\n    min: 0,\n    max: 0\n  }), we = () => ({\n    x: Tn(),\n    y: Tn()\n  });\n})), zh, Oh = h((() => {\n  zh = /* @__PURE__ */ new WeakMap();\n}));\nfunction qi(e) {\n  return e !== null && typeof e == \"object\" && typeof e.start == \"function\";\n}\nvar gd = h((() => {\n}));\nfunction zo(e) {\n  return typeof e == \"string\" || Array.isArray(e);\n}\nvar Wi = h((() => {\n})), Xt, Hi, Ki = h((() => {\n  Xt = [\n    \"animate\",\n    \"whileInView\",\n    \"whileFocus\",\n    \"whileHover\",\n    \"whileTap\",\n    \"whileDrag\",\n    \"exit\"\n  ], Hi = [\"initial\", ...Xt];\n}));\nfunction Gi(e) {\n  return qi(e.animate) || Hi.some((r) => zo(e[r]));\n}\nfunction Uh(e) {\n  return !!(Gi(e) || e.variants);\n}\nvar Bh = h((() => {\n  gd(), Wi(), Ki();\n}));\nfunction hx(e, r, o) {\n  for (const t in r) {\n    const i = r[t], n = o[t];\n    if (Ae(i)) e.addValue(t, i);\n    else if (Ae(n)) e.addValue(t, oo(i, { owner: e }));\n    else if (n !== i) if (e.hasValue(t)) {\n      const s = e.getValue(t);\n      s.liveStyle === !0 ? s.jump(i) : s.hasAnimated || s.set(i);\n    } else {\n      const s = e.getStaticValue(t);\n      e.addValue(t, oo(s !== void 0 ? s : i, { owner: e }));\n    }\n  }\n  for (const t in o) r[t] === void 0 && e.removeValue(t);\n  return r;\n}\nvar Vh = h((() => {\n  lo(), ur();\n})), Oo, Yi, hd = h((() => {\n  Oo = { current: null }, Yi = { current: !1 };\n}));\nfunction Fh() {\n  if (Yi.current = !0, !!jh)\n    if (window.matchMedia) {\n      const e = window.matchMedia(\"(prefers-reduced-motion)\"), r = () => Oo.current = e.matches;\n      e.addEventListener(\"change\", r), r();\n    } else Oo.current = !1;\n}\nvar jh, $h = h((() => {\n  hd(), jh = typeof window < \"u\";\n}));\nfunction qh(e) {\n  Co = e;\n}\nfunction px() {\n  return Co;\n}\nvar Rn, Co, Wh, Hh = h((() => {\n  $(), Ii(), Oa(), Fa(), ud(), cr(), $i(), lo(), or(), ad(), Dh(), ur(), Oh(), Bh(), Ye(), Vh(), $h(), Ga(), hd(), rr(), Rn = [\n    \"AnimationStart\",\n    \"AnimationComplete\",\n    \"Update\",\n    \"BeforeLayoutMeasure\",\n    \"LayoutMeasure\",\n    \"LayoutAnimationStart\",\n    \"LayoutAnimationComplete\"\n  ], Co = {}, Wh = class {\n    scrapeMotionValuesFromProps(e, r, o) {\n      return {};\n    }\n    constructor({ parent: e, props: r, presenceContext: o, reducedMotionConfig: t, skipAnimations: i, blockInitialAnimation: n, 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 = Ni, 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, oe.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 = i, this.options = a, this.blockInitialAnimation = !!n, this.isControllingVariants = Gi(r), this.isVariantNode = Uh(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 && Ae(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, zh.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 : (Yi.current || Fh(), this.shouldReduceMotion = Oo.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(), ar(this.notifyUpdate), ar(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 && Va.has(e) && this.current instanceof HTMLElement) {\n        const { factory: n, keyframes: s, times: a, ease: d, duration: l } = r.accelerate, u = new za({\n          element: this.current,\n          name: e,\n          keyframes: s,\n          times: a,\n          ease: d,\n          duration: Le(l)\n        }), m = n(u);\n        this.valueSubscriptions.set(e, () => {\n          m(), u.cancel();\n        });\n        return;\n      }\n      const o = Vr.has(e);\n      o && this.onBindTransform && this.onBindTransform();\n      const t = r.on(\"change\", (n) => {\n        this.latestValues[e] = n, this.props.onUpdate && oe.preRender(this.notifyUpdate), o && this.projection && (this.projection.isTransformDirty = !0), this.scheduleRender();\n      });\n      let i;\n      typeof window < \"u\" && window.MotionCheckAppearSync && (i = window.MotionCheckAppearSync(this, e, r)), this.valueSubscriptions.set(e, () => {\n        t(), i && i();\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 Co) {\n        const r = Co[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 i = this.features[e];\n          i.isMounted ? i.update() : (i.mount(), i.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) : we();\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 < Rn.length; o++) {\n        const t = Rn[o];\n        this.propEventSubscriptions[t] && (this.propEventSubscriptions[t](), delete this.propEventSubscriptions[t]);\n        const i = e[\"on\" + t];\n        i && (this.propEventSubscriptions[t] = this.on(t, i));\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 = oo(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\" && (Hs(o) || Gs(o)) ? o = parseFloat(o) : !Mh(o) && Be.test(r) && (o = gh(e, r)), this.setBaseTarget(e, Ae(o) ? o.get() : o)), Ae(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 i = Ka(this.props, r, this.presenceContext?.custom);\n        i && (o = i[e]);\n      }\n      if (r && o !== void 0) return o;\n      const t = this.getBaseTargetFromProps(this.props, e);\n      return t !== void 0 && !Ae(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 xi()), this.events[e].add(r);\n    }\n    notify(e, ...r) {\n      this.events[e] && this.events[e].notify(...r);\n    }\n    scheduleRenderMicrotask() {\n      Bi.render(this.render);\n    }\n  };\n})), pd, fd = h((() => {\n  ur(), vh(), Hh(), pd = class extends Wh {\n    constructor() {\n      super(...arguments), this.KeyframeResolver = fh;\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      Ae(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 Kh({ 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 Gh = h((() => {\n}));\nfunction Pn(e) {\n  return e === void 0 || e === 1;\n}\nfunction ms({ scale: e, scaleX: r, scaleY: o }) {\n  return !Pn(e) || !Pn(r) || !Pn(o);\n}\nfunction Cr(e) {\n  return ms(e) || Yh(e) || e.z || e.rotate || e.rotateX || e.rotateY || e.skewX || e.skewY;\n}\nfunction Yh(e) {\n  return Zc(e.x) || Zc(e.y);\n}\nfunction Zc(e) {\n  return e && e !== \"0%\";\n}\nvar vd = h((() => {\n}));\nfunction Jt(e, r, o) {\n  return o + r * (e - o);\n}\nfunction Qc(e, r, o, t, i) {\n  return i !== void 0 && (e = Jt(e, i, t)), Jt(e, o, t) + r;\n}\nfunction gs(e, r = 0, o = 1, t, i) {\n  e.min = Qc(e.min, r, o, t, i), e.max = Qc(e.max, r, o, t, i);\n}\nfunction Xh(e, { x: r, y: o }) {\n  gs(e.x, r.translate, r.scale, r.originPoint), gs(e.y, o.translate, o.scale, o.originPoint);\n}\nfunction yx(e, r, o, t = !1) {\n  const i = o.length;\n  if (!i) return;\n  r.x = r.y = 1;\n  let n, s;\n  for (let a = 0; a < i; a++) {\n    n = o[a], s = n.projectionDelta;\n    const { visualElement: d } = n.options;\n    d && d.props.style && d.props.style.display === \"contents\" || (t && n.options.layoutScroll && n.scroll && n !== n.root && (er(e.x, -n.scroll.offset.x), er(e.y, -n.scroll.offset.y)), s && (r.x *= s.x.scale, r.y *= s.y.scale, Xh(e, s)), t && Cr(n.latestValues) && At(e, n.latestValues, n.layout?.layoutBox));\n  }\n  r.x < ps && r.x > hs && (r.x = 1), r.y < ps && r.y > hs && (r.y = 1);\n}\nfunction er(e, r) {\n  e.min += r, e.max += r;\n}\nfunction el(e, r, o, t, i = 0.5) {\n  gs(e, r, o, re(e.min, e.max, i), t);\n}\nfunction rl(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  el(e.x, rl(r.x, t.x), r.scaleX, r.scale, r.originX), el(e.y, rl(r.y, t.y), r.scaleY, r.scale, r.originY);\n}\nvar hs, ps, Xi = h((() => {\n  Ge(), vd(), hs = 0.999999999999, ps = 1.0000000000001;\n}));\nfunction Jh(e, r) {\n  return Kh(bx(e.getBoundingClientRect(), r));\n}\nfunction wx(e, r, o) {\n  const t = Jh(e, o), { scroll: i } = r;\n  return i && (er(t.x, i.offset.x), er(t.y, i.offset.y)), t;\n}\nvar Zh = h((() => {\n  Gh(), Xi();\n}));\nfunction kx(e, r, o) {\n  let t = \"\", i = !0;\n  for (let s = 0; s < ep; 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, Do[a]);\n      if (!l) {\n        i = !1;\n        const m = Qh[a] || a;\n        t += `${m}(${u}) `;\n      }\n      o && (r[a] = u);\n    }\n  }\n  const n = e.pathRotation;\n  return n && (i = !1, t += `rotate(${Yt(n, Do.pathRotation)}) `), t = t.trim(), o ? t = o(r, i ? \"\" : t) : i && (t = \"none\"), t;\n}\nvar Qh, ep, rp = h((() => {\n  ld(), Oi(), Ye(), Qh = {\n    x: \"translateX\",\n    y: \"translateY\",\n    z: \"translateZ\",\n    transformPerspective: \"perspective\"\n  }, ep = Or.length;\n}));\nfunction bd(e, r, o) {\n  const { style: t, vars: i, transformOrigin: n } = e;\n  let s = !1, a = !1;\n  for (const d in r) {\n    const l = r[d];\n    if (Vr.has(d)) {\n      s = !0;\n      continue;\n    } else if (la(d)) {\n      i[d] = l;\n      continue;\n    } else {\n      const u = Yt(l, Do[d]);\n      d.startsWith(\"origin\") ? (a = !0, n[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 } = n;\n    t.transformOrigin = `${d} ${l} ${u}`;\n  }\n}\nvar yd = h((() => {\n  ld(), Oi(), Ye(), co(), rp();\n}));\nfunction op(e, { style: r, vars: o }, t, i) {\n  const n = e.style;\n  let s;\n  for (s in r) n[s] = r[s];\n  i?.applyProjectionStyles(n, t);\n  for (s in o) n.setProperty(s, o[s]);\n}\nvar wd = h((() => {\n}));\nfunction ol(e, r) {\n  return r.max === r.min ? 0 : e / (r.max - r.min) * 100;\n}\nvar Kr, tp = h((() => {\n  lr(), Kr = { 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 `${ol(e, r.target.x)}% ${ol(e, r.target.y)}%`;\n  } };\n})), ip, np = h((() => {\n  or(), Ge(), ip = { correct: (e, { treeScale: r, projectionDelta: o }) => {\n    const t = e, i = Be.parse(e);\n    if (i.length > 5) return t;\n    const n = Be.createTransformer(e), s = typeof i[0] != \"number\" ? 1 : 0, a = o.x.scale * r.x, d = o.y.scale * r.y;\n    i[0 + s] /= a, i[1 + s] /= d;\n    const l = re(a, d, 0.5);\n    return typeof i[2 + s] == \"number\" && (i[2 + s] /= l), typeof i[3 + s] == \"number\" && (i[3 + s] /= l), n(i);\n  } };\n})), Zt, kd = h((() => {\n  dd(), tp(), np(), Zt = {\n    borderRadius: {\n      ...Kr,\n      applyTo: [...Ui]\n    },\n    borderTopLeftRadius: Kr,\n    borderTopRightRadius: Kr,\n    borderBottomLeftRadius: Kr,\n    borderBottomRightRadius: Kr,\n    boxShadow: ip\n  };\n}));\nfunction sp(e, { layout: r, layoutId: o }) {\n  return Vr.has(e) || e.startsWith(\"origin\") || (r || o !== void 0) && (!!Zt[e] || e === \"opacity\");\n}\nvar ap = h((() => {\n  Ye(), kd();\n}));\nfunction xd(e, r, o) {\n  const t = e.style, i = r?.style, n = {};\n  if (!t) return n;\n  for (const s in t) (Ae(t[s]) || i && Ae(i[s]) || sp(s, e) || o?.getValue(s)?.liveStyle !== void 0) && (n[s] = t[s]);\n  return n;\n}\nvar _d = h((() => {\n  ur(), ap();\n}));\nfunction xx(e) {\n  return window.getComputedStyle(e);\n}\nvar dp, _x = h((() => {\n  co(), Ye(), Pa(), Zh(), fd(), yd(), wd(), _d(), dp = class extends pd {\n    constructor() {\n      super(...arguments), this.type = \"html\", this.renderInstance = op;\n    }\n    readValueFromInstance(e, r) {\n      if (Vr.has(r)) return this.projection?.isProjecting ? Qn(r) : pg(e, r);\n      {\n        const o = xx(e), t = (la(r) ? o.getPropertyValue(r) : o[r]) || 0;\n        return typeof t == \"string\" ? t.trim() : t;\n      }\n    }\n    measureInstanceViewportBox(e, { transformPagePoint: r }) {\n      return Jh(e, r);\n    }\n    build(e, r, o) {\n      bd(e, r, o.transformTemplate);\n    }\n    scrapeMotionValuesFromProps(e, r, o) {\n      return xd(e, r, o);\n    }\n  };\n}));\nfunction Ax(e, r, o = 1, t = 0, i = !0) {\n  e.pathLength = 1;\n  const n = i ? cp : lp;\n  e[n.offset] = `${-t}`, e[n.array] = `${r} ${o}`;\n}\nvar cp, lp, up = h((() => {\n  cp = {\n    offset: \"stroke-dashoffset\",\n    array: \"stroke-dasharray\"\n  }, lp = {\n    offset: \"strokeDashoffset\",\n    array: \"strokeDasharray\"\n  };\n}));\nfunction mp(e, { attrX: r, attrY: o, attrScale: t, pathLength: i, pathSpacing: n = 1, pathOffset: s = 0, ...a }, d, l, u) {\n  if (bd(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 gp) 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), i !== void 0 && Ax(m, i, n, s, !1);\n}\nvar gp, hp = h((() => {\n  yd(), up(), gp = [\n    \"offsetDistance\",\n    \"offsetPath\",\n    \"offsetRotate\",\n    \"offsetAnchor\"\n  ];\n})), Ad, Ed = h((() => {\n  Ad = /* @__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})), Sd, pp = h((() => {\n  Sd = (e) => typeof e == \"string\" && e.toLowerCase() === \"svg\";\n}));\nfunction Ex(e, r, o, t) {\n  op(e, r, void 0, t);\n  for (const i in r.attrs) e.setAttribute(Ad.has(i) ? i : Za(i), r.attrs[i]);\n}\nvar fp = h((() => {\n  zi(), wd(), Ed();\n}));\nfunction vp(e, r, o) {\n  const t = xd(e, r, o);\n  for (const i in e) if (Ae(e[i]) || Ae(r[i])) {\n    const n = Or.indexOf(i) !== -1 ? \"attr\" + i.charAt(0).toUpperCase() + i.substring(1) : i;\n    t[n] = e[i];\n  }\n  return t;\n}\nvar bp = h((() => {\n  ur(), Ye(), _d();\n})), yp, Sx = h((() => {\n  Ye(), sd(), $i(), fd(), zi(), hp(), Ed(), pp(), fp(), bp(), yp = class extends pd {\n    constructor() {\n      super(...arguments), this.type = \"svg\", this.isSVGTag = !1, this.measureInstanceViewportBox = we;\n    }\n    getBaseTargetFromProps(e, r) {\n      return e[r];\n    }\n    readValueFromInstance(e, r) {\n      if (Vr.has(r)) {\n        const o = nd(r);\n        return o && o.default || 0;\n      }\n      return r = Ad.has(r) ? r : Za(r), e.getAttribute(r);\n    }\n    scrapeMotionValuesFromProps(e, r, o) {\n      return vp(e, r, o);\n    }\n    build(e, r, o) {\n      mp(e, r, this.isSVGTag, o.transformTemplate, o.style);\n    }\n    renderInstance(e, r, o, t) {\n      Ex(e, r, o, t);\n    }\n    mount(e) {\n      this.isSVGTag = Sd(e.tagName), super.mount(e);\n    }\n  };\n}));\nfunction wp(e) {\n  if (!e) return;\n  if (!e.isControllingVariants) {\n    const o = e.parent ? wp(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 < kp; o++) {\n    const t = Hi[o], i = e.props[t];\n    (zo(i) || i === !1) && (r[t] = i);\n  }\n  return r;\n}\nvar kp, xp = h((() => {\n  Wi(), Ki(), kp = Hi.length;\n}));\nfunction _p(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 Cx = h((() => {\n}));\nfunction Tx(e) {\n  return (r) => Promise.all(r.map(({ animation: o, options: t }) => Bk(e, o, t)));\n}\nfunction Rx(e) {\n  let r = Tx(e), o = tl(), t = !0, i = !1;\n  const n = (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, ...y } = g;\n      u = {\n        ...u,\n        ...y,\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 = wp(e.parent) || {}, g = [], p = /* @__PURE__ */ new Set();\n    let f = {}, y = 1 / 0;\n    for (let b = 0; b < Ep; b++) {\n      const k = Ap[b], v = o[k], w = u[k] !== void 0 ? u[k] : m[k], E = zo(w), P = k === l ? v.isActive : null;\n      P === !1 && (y = b);\n      let A = w === m[k] && w !== u[k] && E;\n      if (A && (t || i) && e.manuallyAnimateOnMount && (A = !1), v.protectedKeys = { ...f }, !v.isActive && P === null || !w && !v.prevProp || qi(w) || typeof w == \"boolean\") continue;\n      if (k === \"exit\" && v.isActive && P !== !0) {\n        v.prevResolvedValues && (f = {\n          ...f,\n          ...v.prevResolvedValues\n        });\n        continue;\n      }\n      const C = Px(v.prevProp, w);\n      let S = C || k === l && v.isActive && !A && E || b > y && E, R = !1;\n      const I = Array.isArray(w) ? w : [w];\n      let N = I.reduce(n(k), {});\n      P === !1 && (N = {});\n      const { prevResolvedValues: M = {} } = v, D = {\n        ...M,\n        ...N\n      }, B = (W) => {\n        S = !0, p.has(W) && (R = !0, p.delete(W)), v.needsAnimating[W] = !0;\n        const H = e.getValue(W);\n        H && (H.liveStyle = !1);\n      };\n      for (const W in D) {\n        const H = N[W], ee = M[W];\n        if (f.hasOwnProperty(W)) continue;\n        let Z = !1;\n        Ht(H) && Ht(ee) ? Z = !_p(H, ee) || C : Z = H !== ee, Z ? H != null ? B(W) : p.add(W) : H !== void 0 && p.has(W) ? B(W) : v.protectedKeys[W] = !0;\n      }\n      v.prevProp = w, v.prevResolvedValues = N, v.isActive && (f = {\n        ...f,\n        ...N\n      }), (t || i) && e.blockInitialAnimation && (S = !1);\n      const G = A && C;\n      S && (!G || R) && g.push(...I.map((W) => {\n        const H = { type: k };\n        if (typeof W == \"string\" && (t || i) && !G && e.manuallyAnimateOnMount && e.parent) {\n          const { parent: ee } = e, Z = Dr(ee, W);\n          if (ee.enteringChildren && Z) {\n            const { delayChildren: Ee } = Z.transition || {};\n            H.delay = $g(ee.enteringChildren, e, Ee);\n          }\n        }\n        return {\n          animation: W,\n          options: H\n        };\n      }));\n    }\n    if (p.size) {\n      const b = {};\n      if (typeof u.initial != \"boolean\") {\n        const k = Dr(e, Array.isArray(u.initial) ? u.initial[0] : u.initial);\n        k && k.transition && (b.transition = k.transition);\n      }\n      p.forEach((k) => {\n        const v = e.getBaseTarget(k), w = e.getValue(k);\n        w && (w.liveStyle = !0), b[k] = v ?? null;\n      }), g.push({ animation: b });\n    }\n    let x = !!g.length;\n    return t && (u.initial === !1 || u.initial === u.animate) && !e.manuallyAnimateOnMount && (x = !1), t = !1, i = !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 = tl(), i = !0;\n    }\n  };\n}\nfunction Px(e, r) {\n  return typeof r == \"string\" ? r !== e : Array.isArray(r) ? !_p(r, e) : !1;\n}\nfunction Er(e = !1) {\n  return {\n    isActive: e,\n    protectedKeys: {},\n    needsAnimating: {},\n    prevResolvedValues: {}\n  };\n}\nfunction tl() {\n  return {\n    animate: Er(!0),\n    whileInView: Er(),\n    whileHover: Er(),\n    whileTap: Er(),\n    whileDrag: Er(),\n    whileFocus: Er(),\n    exit: Er()\n  };\n}\nvar Ap, Ep, Lx = h((() => {\n  sh(), ja(), xp(), gd(), Ja(), Wi(), Jo(), Cx(), Ki(), Ap = [...Xt].reverse(), Ep = Xt.length;\n}));\nfunction fs(e, r) {\n  e.min = r.min, e.max = r.max;\n}\nfunction Fe(e, r) {\n  fs(e.x, r.x), fs(e.y, r.y);\n}\nfunction il(e, r) {\n  e.translate = r.translate, e.scale = r.scale, e.originPoint = r.originPoint, e.origin = r.origin;\n}\nvar Sp = 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 nl(e, r, o, t = 0.5) {\n  e.origin = t, e.originPoint = re(r.min, r.max, e.origin), e.scale = Pe(o) / Pe(r), e.translate = re(o.min, o.max, e.origin) - e.originPoint, (e.scale >= Cp && e.scale <= Tp || isNaN(e.scale)) && (e.scale = 1), (e.translate >= Rp && e.translate <= Pp || isNaN(e.translate)) && (e.translate = 0);\n}\nfunction To(e, r, o, t) {\n  nl(e.x, r.x, o.x, t ? t.originX : void 0), nl(e.y, r.y, o.y, t ? t.originY : void 0);\n}\nfunction sl(e, r, o, t = 0) {\n  e.min = (t ? re(o.min, o.max, t) : o.min) + r.min, e.max = e.min + Pe(r);\n}\nfunction Ix(e, r, o, t) {\n  sl(e.x, r.x, o.x, t?.x), sl(e.y, r.y, o.y, t?.y);\n}\nfunction al(e, r, o, t = 0) {\n  const i = t ? re(o.min, o.max, t) : o.min;\n  e.min = r.min - i, e.max = e.min + Pe(r);\n}\nfunction Qt(e, r, o, t) {\n  al(e.x, r.x, o.x, t?.x), al(e.y, r.y, o.y, t?.y);\n}\nvar Cp, Tp, Rp, Pp, Cd = h((() => {\n  Ge(), Cp = 0.9999, Tp = 1.0001, Rp = -0.01, Pp = 0.01;\n}));\nfunction dl(e, r, o, t, i) {\n  return e -= r, e = Jt(e, 1 / o, t), i !== void 0 && (e = Jt(e, 1 / i, t)), e;\n}\nfunction Mx(e, r = 0, o = 1, t = 0.5, i, n = e, s = e) {\n  if ($e.test(r) && (r = parseFloat(r), r = re(s.min, s.max, r / 100) - s.min), typeof r != \"number\") return;\n  let a = re(n.min, n.max, t);\n  e === n && (a -= r), e.min = dl(e.min, r, o, a, i), e.max = dl(e.max, r, o, a, i);\n}\nfunction cl(e, r, [o, t, i], n, s) {\n  Mx(e, r[o], r[t], r[i], r.scale, n, s);\n}\nfunction ll(e, r, o, t) {\n  cl(e.x, r, Lp, o ? o.x : void 0, t ? t.x : void 0), cl(e.y, r, Np, o ? o.y : void 0, t ? t.y : void 0);\n}\nvar Lp, Np, Ip = h((() => {\n  Ge(), lr(), Xi(), Lp = [\n    \"x\",\n    \"scaleX\",\n    \"originX\"\n  ], Np = [\n    \"y\",\n    \"scaleY\",\n    \"originY\"\n  ];\n}));\nfunction ul(e) {\n  return e.translate === 0 && e.scale === 1;\n}\nfunction Mp(e) {\n  return ul(e.x) && ul(e.y);\n}\nfunction ml(e, r) {\n  return e.min === r.min && e.max === r.max;\n}\nfunction Dx(e, r) {\n  return ml(e.x, r.x) && ml(e.y, r.y);\n}\nfunction gl(e, r) {\n  return Math.round(e.min) === Math.round(r.min) && Math.round(e.max) === Math.round(r.max);\n}\nfunction Dp(e, r) {\n  return gl(e.x, r.x) && gl(e.y, r.y);\n}\nfunction hl(e) {\n  return Pe(e.x) / Pe(e.y);\n}\nfunction pl(e, r) {\n  return e.translate === r.translate && e.scale === r.scale && e.originPoint === r.originPoint;\n}\nvar zp = h((() => {\n  Cd();\n}));\nfunction Ze(e) {\n  return [e(\"x\"), e(\"y\")];\n}\nvar Op = h((() => {\n}));\nfunction zx(e, r, o) {\n  let t = \"\";\n  const i = e.x.translate / r.x, n = e.y.translate / r.y, s = o?.z || 0;\n  if ((i || n || s) && (t = `translate3d(${i}px, ${n}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: y } = 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) `), y && (t += `skewY(${y}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 Up = h((() => {\n}));\nfunction Ox(e, r, o, t, i, n) {\n  i ? (e.opacity = re(0, o.opacity ?? 1, Vp(t)), e.opacityExit = re(r.opacity ?? 1, 0, Fp(t))) : n && (e.opacity = re(r.opacity ?? 1, o.opacity ?? 1, t));\n  for (let s = 0; s < Bp; s++) {\n    const a = Ui[s];\n    let d = fl(r, a), l = fl(o, a);\n    d === void 0 && l === void 0 || (d || (d = 0), l || (l = 0), d === 0 || l === 0 || bs(d) === bs(l) ? (e[a] = Math.max(re(vs(d), vs(l), t), 0), ($e.test(l) || $e.test(d)) && (e[a] += \"%\")) : e[a] = l);\n  }\n  (r.rotate || o.rotate) && (e.rotate = re(r.rotate || 0, o.rotate || 0, t));\n}\nfunction fl(e, r) {\n  return e[r] !== void 0 ? e[r] : e.borderRadius;\n}\nfunction vl(e, r, o) {\n  return (t) => t < e ? 0 : t > r ? 1 : o(Qr(e, r, t));\n}\nvar Bp, vs, bs, Vp, Fp, jp = h((() => {\n  Ge(), lr(), $(), dd(), Bp = Ui.length, vs = (e) => typeof e == \"string\" ? parseFloat(e) : e, bs = (e) => typeof e == \"number\" || U.test(e), Vp = /* @__PURE__ */ vl(0, 0.5, na), Fp = /* @__PURE__ */ vl(0.5, 0.95, ze);\n}));\nfunction Ux(e, r, o) {\n  const t = Ae(e) ? e : oo(e);\n  return t.start(Di(\"\", t, r, o)), t.animation;\n}\nvar $p = h((() => {\n  Ha(), lo(), ur();\n}));\nfunction Uo(e, r, o, t = { passive: !0 }) {\n  return e.addEventListener(r, o, t), () => e.removeEventListener(r, o, t);\n}\nvar qp = h((() => {\n})), Wp, Hp = h((() => {\n  Wp = (e, r) => e.depth - r.depth;\n})), Kp, Gp = h((() => {\n  $(), Hp(), Kp = class {\n    constructor() {\n      this.children = [], this.isDirty = !1;\n    }\n    add(e) {\n      Ws(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(Wp), this.isDirty = !1, this.children.forEach(e);\n    }\n  };\n}));\nfunction Bx(e, r) {\n  const o = Te.now(), t = ({ timestamp: i }) => {\n    const n = i - o;\n    n >= r && (ar(t), e(n - r));\n  };\n  return oe.setup(t, !0), () => ar(t);\n}\nvar Yp = h((() => {\n  cr(), rr();\n}));\nfunction Et(e) {\n  return Ae(e) ? e.get() : e;\n}\nvar Xp = h((() => {\n  ur();\n})), Jp, Zp = h((() => {\n  $(), Jp = class {\n    constructor() {\n      this.members = [];\n    }\n    add(e) {\n      Ws(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: i } = e.options;\n        (t === void 0 || t !== i) && (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})), Ro, Qp = h((() => {\n  Ro = {\n    hasAnimatedSinceResize: !0,\n    hasEverUpdated: !1\n  };\n}));\nfunction Ln(e, r, o, t) {\n  const { latestValues: i } = r;\n  i[e] && (o[e] = i[e], r.setStaticValue(e, 0), t && (t[e] = 0));\n}\nfunction ef(e) {\n  if (e.hasCheckedOptimisedAppear = !0, e.root === e) return;\n  const { visualElement: r } = e.options;\n  if (!r) return;\n  const o = th(r);\n  if (window.MotionHasOptimisedAnimation(o, \"transform\")) {\n    const { layout: i, layoutId: n } = e.options;\n    window.MotionCancelOptimisedAnimation(o, \"transform\", oe, !(i || n));\n  }\n  const { parent: t } = e;\n  t && !t.hasCheckedOptimisedAppear && ef(t);\n}\nfunction rf({ attachResizeListener: e, defaultParent: r, measureScroll: o, checkIsScrollRoot: t, resetTransform: i }) {\n  return class {\n    constructor(s = {}, a = r?.()) {\n      this.id = nf++, 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 && (vr.nodes = vr.calculatedTargetDeltas = vr.calculatedProjections = 0), this.nodes.forEach(jx), this.nodes.forEach(Gx), this.nodes.forEach(Yx), this.nodes.forEach($x), Rr.addProjectionMetrics && Rr.addProjectionMetrics(vr);\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 Kp());\n    }\n    addEventListener(s, a) {\n      return this.eventHandlers.has(s) || this.eventHandlers.set(s, new xi()), 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 = md(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        oe.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 = Bx(g, 250), Ro.hasAnimatedSinceResize && (Ro.hasAnimatedSinceResize = !1, this.nodes.forEach(wl)));\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() || sf, { onLayoutAnimationStart: y, onLayoutAnimationComplete: x } = l.getProps(), b = !this.targetLayout || !Dp(this.targetLayout, p), k = !m && g;\n        if (this.options.layoutRoot || this.resumeFrom || k || m && (b || !this.currentAnimation)) {\n          this.resumeFrom && (this.resumingFrom = this.resumeFrom, this.resumingFrom.resumingFrom = void 0);\n          const v = {\n            ...Wa(f, \"layout\"),\n            onPlay: y,\n            onComplete: x\n          };\n          (l.shouldReduceMotion || this.options.layoutRoot) && (v.delay = 0, v.type = !1), this.startAnimation(v), this.setAnimationOrigin(u, k, v.path);\n        } else\n          m || wl(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(), ar(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 && ef(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(bl);\n        return;\n      }\n      if (this.animationId <= this.animationCommitId) {\n        this.nodes.forEach(yl);\n        return;\n      }\n      this.animationCommitId = this.animationId, this.isUpdating ? (this.isUpdating = !1, this.nodes.forEach(Hx), this.nodes.forEach(Kx), this.nodes.forEach(Vx), this.nodes.forEach(Fx)) : this.nodes.forEach(yl), this.clearAllSnapshots();\n      const s = Te.now();\n      _e.delta = He(0, 1e3 / 60, s - _e.timestamp), _e.timestamp = s, _e.isProcessing = !0, yt.update.process(_e), yt.preRender.process(_e), yt.render.process(_e), _e.isProcessing = !1;\n    }\n    didUpdate() {\n      this.updateScheduled || (this.updateScheduled = !0, Bi.read(this.scheduleUpdate));\n    }\n    clearAllSnapshots() {\n      this.nodes.forEach(qx), this.sharedNodes.forEach(Jx);\n    }\n    scheduleUpdateProjection() {\n      this.projectionUpdateScheduled || (this.projectionUpdateScheduled = !0, oe.preRender(this.updateProjection, !1, !0));\n    }\n    scheduleCheckAfterUnmount() {\n      oe.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 = we()), 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 (!i) return;\n      const s = this.isLayoutDirty || this.shouldResetTransform || this.options.alwaysMeasureLayout, a = this.projectionDelta && !Mp(this.projectionDelta), d = this.getTransformTemplate(), l = d ? d(this.latestValues, \"\") : void 0, u = l !== this.prevTransformTemplateValue;\n      s && this.instance && (a || Cr(this.latestValues) || u) && (i(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 we();\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 = we();\n      if (Fe(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 && Fe(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 || we();\n      Fe(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)), Cr(m.latestValues) && At(l, m.latestValues, m.layout?.layoutBox);\n      }\n      return Cr(this.latestValues) && At(l, this.latestValues, this.layout?.layoutBox), l;\n    }\n    removeTransform(s) {\n      const a = we();\n      Fe(a, s);\n      for (let d = 0; d < this.path.length; d++) {\n        const l = this.path[d];\n        if (!Cr(l.latestValues)) continue;\n        let u;\n        l.instance && (ms(l.latestValues) && l.updateSnapshot(), u = we(), Fe(u, l.measurePageBox())), ll(a, l.latestValues, l.snapshot?.layoutBox, u);\n      }\n      return Cr(this.latestValues) && ll(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 !== _e.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 = _e.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 = we(), this.targetWithTransforms = we()), 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) : Fe(this.target, this.layout.layoutBox), Xh(this.target, this.targetDelta)) : Fe(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 && vr.calculatedTargetDeltas++);\n    }\n    getClosestProjectingParent() {\n      if (!(!this.parent || ms(this.parent.latestValues) || Yh(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 = we(), this.relativeTargetOrigin = we(), Qt(this.relativeTargetOrigin, a, d, this.options.layoutAnchor || void 0), Fe(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 === _e.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      Fe(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 = we());\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() : (il(this.prevProjectionDelta.x, this.projectionDelta.x), il(this.prevProjectionDelta.y, this.projectionDelta.y)), To(this.projectionDelta, this.layoutCorrected, p, this.latestValues), (this.treeScale.x !== m || this.treeScale.y !== g || !pl(this.projectionDelta.x, this.prevProjectionDelta.x) || !pl(this.projectionDelta.y, this.prevProjectionDelta.y)) && (this.hasProjected = !0, this.scheduleRender(), this.notifyListeners(\"projectionUpdate\", p)), Rr.value && vr.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 = we(), f = (l ? l.source : void 0) !== (this.layout ? this.layout.source : void 0), y = this.getStack(), x = !y || y.members.length <= 1, b = !!(f && !x && this.options.crossfade === !0 && !this.path.some(Qx));\n      this.animationProgress = 0;\n      let k;\n      const v = d?.interpolateProjection(s);\n      this.mixTargetDelta = (w) => {\n        const E = w / 1e3, P = v?.(E);\n        P ? (g.x.translate = P.x, g.x.scale = re(s.x.scale, 1, E), g.x.origin = s.x.origin, g.x.originPoint = s.x.originPoint, g.y.translate = P.y, g.y.scale = re(s.y.scale, 1, E), g.y.origin = s.y.origin, g.y.originPoint = s.y.originPoint) : (kl(g.x, s.x, E), kl(g.y, s.y, E)), 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, E), k && Dx(this.relativeTarget, k) && (this.isProjectionDirty = !1), k || (k = we()), Fe(k, this.relativeTarget)), f && (this.animationValues = m, Ox(m, u, this.latestValues, E, b, x)), P && P.rotate !== void 0 && (this.animationValues || (this.animationValues = m), this.animationValues.pathRotation = P.rotate), this.root.scheduleUpdateProjection(), this.scheduleRender(), this.animationProgress = E;\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 && (ar(this.pendingAnimation), this.pendingAnimation = void 0), this.pendingAnimation = oe.update(() => {\n        Ro.hasAnimatedSinceResize = !0, this.motionValue || (this.motionValue = oo(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(tf), 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 && of(this.options.animationType, this.layout.layoutBox, l.layoutBox)) {\n          d = this.target || we();\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        Fe(a, d), At(a, u), To(this.projectionDeltaWithTransform, this.layoutCorrected, a, u);\n      }\n    }\n    registerSharedNode(s, a) {\n      this.sharedNodes.has(s) || this.sharedNodes.set(s, new Jp()), 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 && Ln(\"z\", s, l, this.animationValues);\n      for (let u = 0; u < St.length; u++)\n        Ln(`rotate${St[u]}`, s, l, this.animationValues), Ln(`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 = Et(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 = Et(a?.pointerEvents) || \"\"), this.hasProjected && !Cr(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: y, applyTo: x, isCSSVariable: b } = Zt[f], k = m === \"none\" ? u[f] : y(u[f], l);\n        if (x) {\n          const v = x.length;\n          for (let w = 0; w < v; w++) s[x[w]] = k;\n        } else b ? this.options.visualElement.renderState.vars[f] = k : s[f] = k;\n      }\n      this.options.layoutId && (s.pointerEvents = l === this ? Et(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(bl), this.root.sharedNodes.clear();\n    }\n  };\n}\nfunction Vx(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: i } = e.options, n = r.source !== e.layout.source;\n    if (i === \"size\") Ze((u) => {\n      const m = n ? r.measuredBox[u] : r.layoutBox[u], g = Pe(m);\n      m.min = o[u].min, m.max = m.min + g;\n    });\n    else if (i === \"x\" || i === \"y\") {\n      const u = i === \"x\" ? \"y\" : \"x\";\n      fs(n ? r.measuredBox[u] : r.layoutBox[u], o[u]);\n    } else of(i, r.layoutBox, o) && Ze((u) => {\n      const m = n ? 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    To(s, o, r.layoutBox);\n    const a = Lr();\n    n ? To(a, e.applyTransform(t, !0), r.measuredBox) : To(a, o, r.layoutBox);\n    const d = !Mp(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 = we();\n          Qt(f, r.layoutBox, m.layoutBox, p);\n          const y = we();\n          Qt(y, o, g.layoutBox, p), Dp(f, y) || (l = !0), u.options.layoutRoot && (e.relativeTarget = y, 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 && vr.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 bl(e) {\n  e.clearMeasurements();\n}\nfunction Wx(e) {\n  e.isLayoutDirty = !0, e.updateLayout();\n}\nfunction yl(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 wl(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 kl(e, r, o) {\n  e.translate = re(r.translate, 0, o), e.scale = re(r.scale, 1, o), e.origin = r.origin, e.originPoint = r.originPoint;\n}\nfunction xl(e, r, o, t) {\n  e.min = re(r.min, o.min, t), e.max = re(r.max, o.max, t);\n}\nfunction Zx(e, r, o, t) {\n  xl(e.x, r.x, o.x, t), xl(e.y, r.y, o.y, t);\n}\nfunction Qx(e) {\n  return e.animationValues && e.animationValues.opacityExit !== void 0;\n}\nfunction _l(e) {\n  e.min = ys(e.min), e.max = ys(e.max);\n}\nfunction e1(e) {\n  _l(e.x), _l(e.y);\n}\nfunction of(e, r, o) {\n  return e === \"position\" || e === \"preserve-aspect\" && !Nx(hl(r), hl(o), 0.2);\n}\nfunction r1(e) {\n  return e !== e.root && e.scroll?.wasRoot;\n}\nvar vr, St, tf, nf, sf, Nn, ys, Td = h((() => {\n  $(), $p(), ed(), Mi(), ud(), cr(), kd(), Nh(), Yp(), ji(), Ih(), Ge(), lo(), Xp(), jp(), Sp(), Xi(), Cd(), Ip(), $i(), zp(), Zp(), Up(), Op(), Gp(), vd(), Qp(), rr(), vr = {\n    nodes: 0,\n    calculatedTargetDeltas: 0,\n    calculatedProjections: 0\n  }, St = [\n    \"\",\n    \"X\",\n    \"Y\",\n    \"Z\"\n  ], tf = 1e3, nf = 0, sf = {\n    duration: 0.45,\n    ease: [\n      0.4,\n      0,\n      0.1,\n      1\n    ]\n  }, Nn = (e) => typeof navigator < \"u\" && navigator.userAgent && navigator.userAgent.toLowerCase().includes(e), ys = Nn(\"applewebkit/\") && !Nn(\"chrome/\") ? Math.round : ze;\n})), af, df = h((() => {\n  qp(), Td(), af = rf({\n    attachResizeListener: (e, r) => Uo(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, Rd, o1 = h((() => {\n  Td(), df(), dt = { current: void 0 }, Rd = rf({\n    measureScroll: (e) => ({\n      x: e.scrollLeft,\n      y: e.scrollTop\n    }),\n    defaultParent: () => {\n      if (!dt.current) {\n        const e = new af({});\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})), X = h((() => {\n  jg(), Li(), Oa(), zg(), ja(), $(), lo(), Ha(), Mi(), Zg(), Hg(), Xo(), qa(), co(), Gg(), Ba(), sh(), rd(), nh(), oh(), ed(), Ca(), Ta(), Sa(), Ti(), Jm(), Da(), vh(), Ii(), sg(), ng(), ag(), dd(), mg(), Ma(), Ia(), Rg(), Lg(), Ng(), Vg(), Fa(), Mg(), _a(), zi(), cd(), rr(), Oi(), ld(), kg(), Ye(), yh(), ca(), ud(), cr(), Vi(), Yk(), Zk(), tx(), Ch(), _h(), Ah(), Pa(), La(), Ja(), Xa(), mx(), Nh(), ig(), ji(), Ih(), ka(), qm(), Gm(), ya(), Ge(), Wm(), Ag(), Tg(), ur(), Yo(), pa(), fa(), jm(), Ci(), or(), id(), sd(), mh(), _r(), lr(), td(), ad(), Dh(), rh(), eh(), fd(), fx(), _x(), $i(), Hh(), Oh(), Sx(), Lx(), xp(), gd(), Bh(), ap(), Wi(), Vh(), Jo(), Ga(), Qg(), Ki(), $h(), Gh(), Sp(), Xi(), Cd(), Ip(), zp(), Op(), vd(), Zh(), tp(), np(), Up(), jp(), $p(), qp(), Hp(), Gp(), Yp(), Xp(), Td(), df(), o1(), Qp(), Zp(), yd(), rp(), wd(), _d(), hp(), Ed(), pp(), up(), fp(), bp(), Pm(), kd(), hd();\n})), to, Zo = h((() => {\n  to = We({\n    transformPagePoint: (e) => e,\n    isStatic: !1,\n    reducedMotion: \"never\"\n  });\n}));\nfunction Al(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((i) => {\n      const n = Al(i, r);\n      return !o && typeof n == \"function\" && (o = !0), n;\n    });\n    if (o) return () => {\n      for (let i = 0; i < t.length; i++) {\n        const n = t[i];\n        typeof n == \"function\" ? n() : Al(e[i], null);\n      }\n    };\n  };\n}\nfunction i1(...e) {\n  return Vo.useCallback(t1(...e), e);\n}\nvar cf = h((() => {\n}));\nfunction n1({ children: e, isPresent: r, anchorX: o, anchorY: t, root: i, pop: n }) {\n  const s = Ke(), a = z(null), d = z({\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(to), u = i1(a, e.props?.ref ?? e?.ref);\n  return Ps(() => {\n    const { width: m, height: g, top: p, left: f, right: y, bottom: x, direction: b } = d.current;\n    if (r || n === !1 || !a.current || !m || !g) return;\n    const k = b === \"rtl\", v = o === \"left\" ? k ? `right: ${y}` : `left: ${f}` : k ? `left: ${f}` : `right: ${y}`, w = t === \"bottom\" ? `bottom: ${x}` : `top: ${p}`;\n    a.current.dataset.motionPopId = s;\n    const E = document.createElement(\"style\");\n    l && (E.nonce = l);\n    const P = i ?? document.head;\n    return P.appendChild(E), E.sheet && E.sheet.insertRule(`\n          [data-motion-pop-id=\"${s}\"] {\n            position: absolute !important;\n            width: ${m}px !important;\n            height: ${g}px !important;\n            ${v}px !important;\n            ${w}px !important;\n          }\n        `), () => {\n      a.current?.removeAttribute(\"data-motion-pop-id\"), P.contains(E) && P.removeChild(E);\n    };\n  }, [r]), c(lf, {\n    isPresent: r,\n    childRef: a,\n    sizeRef: d,\n    pop: n,\n    children: n === !1 ? e : Vo.cloneElement(e, { ref: u })\n  });\n}\nvar lf, uf = h((() => {\n  X(), Zo(), cf(), lf = 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, i = xt(o) && o.offsetHeight || 0, n = getComputedStyle(r), s = this.props.sizeRef.current;\n        s.height = parseFloat(n.height), s.width = parseFloat(n.width), s.top = r.offsetTop, s.left = r.offsetLeft, s.right = t - s.width - s.left, s.bottom = i - s.height - s.top, s.direction = n.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 mf, gf = h((() => {\n  Ko(), Ho(), ki(), uf(), mf = ({ children: e, initial: r, isPresent: o, onExitComplete: t, custom: i, presenceAffectsLayout: n, mode: s, anchorX: a, anchorY: d, root: l }) => {\n    const u = yi(s1), m = Ke(), g = z(o), p = z(t);\n    wi(() => {\n      g.current = o, p.current = t;\n    });\n    let f = !0, y = V(() => (f = !1, {\n      id: m,\n      initial: r,\n      isPresent: o,\n      custom: i,\n      onExitComplete: (x) => {\n        u.set(x, !0);\n        for (const b of u.values()) if (!b) 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 n && f && (y = { ...y }), V(() => {\n      u.forEach((x, b) => u.set(b, !1));\n    }, [o]), Vo.useEffect(() => {\n      !o && !u.size && t && t();\n    }, [o]), e = c(n1, {\n      pop: s === \"popLayout\",\n      isPresent: o,\n      anchorX: a,\n      anchorY: d,\n      root: l,\n      children: e\n    }), c(so.Provider, {\n      value: y,\n      children: e\n    });\n  };\n}));\nfunction hf(e = !0) {\n  const r = se(so);\n  if (r === null) return [!0, null];\n  const { isPresent: o, onExitComplete: t, register: i } = r, n = Ke();\n  Rs(() => {\n    if (e) return i(n);\n  }, [e]);\n  const s = L(() => e && t && t(n), [\n    n,\n    t,\n    e\n  ]);\n  return !o && t ? [!1, s] : [!0];\n}\nfunction a1() {\n  return d1(se(so));\n}\nfunction d1(e) {\n  return e === null ? !0 : e.isPresent;\n}\nvar Pd = h((() => {\n  Ko();\n}));\nfunction El(e) {\n  const r = [];\n  return Jb.forEach(e, (o) => {\n    Qb(o) && r.push(o);\n  }), r;\n}\nvar yo, c1 = h((() => {\n  yo = (e) => e.key || \"\";\n})), Ld, l1 = h((() => {\n  bi(), Ho(), ki(), gf(), Pd(), c1(), Ld = ({ children: e, custom: r, initial: o = !0, onExitComplete: t, presenceAffectsLayout: i = !0, mode: n = \"sync\", propagate: s = !1, anchorX: a = \"left\", anchorY: d = \"top\", root: l }) => {\n    const [u, m] = hf(s), g = V(() => El(e), [e]), p = s && !u ? [] : g.map(yo), f = z(!0), y = z(g), x = yi(() => /* @__PURE__ */ new Map()), b = z(/* @__PURE__ */ new Set()), [k, v] = T(g), [w, E] = T(g);\n    wi(() => {\n      f.current = !1, y.current = g;\n      for (let C = 0; C < w.length; C++) {\n        const S = yo(w[C]);\n        p.includes(S) ? (x.delete(S), b.current.delete(S)) : x.get(S) !== !0 && x.set(S, !1);\n      }\n    }, [\n      w,\n      p.length,\n      p.join(\"-\")\n    ]);\n    const P = [];\n    if (g !== k) {\n      let C = [...g];\n      for (let S = 0; S < w.length; S++) {\n        const R = w[S], I = yo(R);\n        p.includes(I) || (C.splice(S, 0, R), P.push(R));\n      }\n      return n === \"wait\" && P.length && (C = P), E(El(C)), v(g), null;\n    }\n    const { forceRender: A } = se(vi);\n    return c(he, { children: w.map((C) => {\n      const S = yo(C), R = s && !u ? !1 : g === w || p.includes(S), I = () => {\n        if (b.current.has(S)) return;\n        if (x.has(S))\n          b.current.add(S), x.set(S, !0);\n        else return;\n        let N = !0;\n        x.forEach((M) => {\n          M || (N = !1);\n        }), N && (A?.(), E(y.current), s && m?.(), t && t());\n      };\n      return c(mf, {\n        isPresent: R,\n        initial: !f.current || o ? void 0 : !1,\n        custom: r,\n        presenceAffectsLayout: i,\n        mode: n,\n        root: l,\n        onExitComplete: R ? void 0 : I,\n        anchorX: a,\n        anchorY: d,\n        children: C\n      }, S);\n    }) });\n  };\n})), Nd, Id = h((() => {\n  Nd = We({ strict: !1 });\n}));\nfunction u1() {\n  if (ks) return;\n  const e = {};\n  for (const r in ws) e[r] = { isEnabled: (o) => ws[r].some((t) => !!o[t]) };\n  qh(e), ks = !0;\n}\nfunction pf() {\n  return u1(), px();\n}\nvar ws, ks, ff = h((() => {\n  X(), ws = {\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  }, ks = !1;\n}));\nfunction m1(e) {\n  const r = pf();\n  for (const o in e) r[o] = {\n    ...r[o],\n    ...e[o]\n  };\n  qh(r);\n}\nvar vf = h((() => {\n  X(), ff();\n}));\nfunction ei(e) {\n  return e.startsWith(\"while\") || e.startsWith(\"drag\") && e !== \"draggable\" || e.startsWith(\"layout\") || e.startsWith(\"onTap\") || e.startsWith(\"onPan\") || e.startsWith(\"onLayout\") || bf.has(e);\n}\nvar bf, yf = h((() => {\n  bf = /* @__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})), g1 = /* @__PURE__ */ ai({ default: () => wf }), wf, h1 = h((() => {\n  throw wf = {}, new Error('Could not resolve \"@emotion/is-prop-valid\" imported by \"framer-motion\". Is it installed?');\n}));\nfunction kf(e) {\n  typeof e == \"function\" && (Md = (r) => r.startsWith(\"on\") ? !ei(r) : e(r));\n}\nfunction p1(e, r, o) {\n  const t = {};\n  for (const i in e)\n    i === \"values\" && typeof e.values == \"object\" || Ae(e[i]) || (Md(i) || o === !0 && ei(i) || !r && !ei(i) || e.draggable && i.startsWith(\"onDrag\")) && (t[i] = e[i]);\n  return t;\n}\nvar Md, Dd = h((() => {\n  X(), yf(), Md = (e) => !ei(e);\n  try {\n    kf((h1(), sy(g1)).default);\n  } catch {\n  }\n}));\nfunction f1({ children: e, isValidProp: r, ...o }) {\n  r && kf(r);\n  const t = se(to);\n  o = {\n    ...t,\n    ...o\n  }, o.transition = $a(o.transition, t.transition), o.isStatic = yi(() => o.isStatic);\n  const i = V(() => o, [\n    JSON.stringify(o.transition),\n    o.transformPagePoint,\n    o.reducedMotion,\n    o.skipAnimations\n  ]);\n  return c(to.Provider, {\n    value: i,\n    children: e\n  });\n}\nvar v1 = h((() => {\n  X(), Zo(), Dd(), Ho();\n})), Qo, et = h((() => {\n  Qo = /* @__PURE__ */ We({});\n}));\nfunction b1(e, r) {\n  if (Gi(e)) {\n    const { initial: o, animate: t } = e;\n    return {\n      initial: o === !1 || zo(o) ? o : void 0,\n      animate: zo(t) ? t : void 0\n    };\n  }\n  return e.inherit !== !1 ? r : {};\n}\nvar y1 = h((() => {\n  X();\n}));\nfunction w1(e) {\n  const { initial: r, animate: o } = b1(e, se(Qo));\n  return V(() => ({\n    initial: r,\n    animate: o\n  }), [Sl(r), Sl(o)]);\n}\nfunction Sl(e) {\n  return Array.isArray(e) ? e.join(\" \") : e;\n}\nvar k1 = h((() => {\n  et(), y1();\n})), Ji, zd = h((() => {\n  Ji = () => ({\n    style: {},\n    transform: {},\n    transformOrigin: {},\n    vars: {}\n  });\n}));\nfunction xf(e, r, o) {\n  for (const t in r) !Ae(r[t]) && !sp(t, o) && (e[t] = r[t]);\n}\nfunction x1({ transformTemplate: e }, r) {\n  return V(() => {\n    const o = Ji();\n    return bd(o, r, e), Object.assign({}, o.vars, o.style);\n  }, [r]);\n}\nfunction _1(e, r) {\n  const o = e.style || {}, t = {};\n  return xf(t, o, e), Object.assign(t, x1(e, r)), t;\n}\nfunction A1(e, r) {\n  const o = {}, t = _1(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 _f = h((() => {\n  X(), zd();\n})), Od, Af = h((() => {\n  zd(), Od = () => ({\n    ...Ji(),\n    attrs: {}\n  });\n}));\nfunction E1(e, r, o, t) {\n  const i = V(() => {\n    const n = Od();\n    return mp(n, r, Sd(t), e.transformTemplate, e.style), {\n      ...n.attrs,\n      style: { ...n.style }\n    };\n  }, [r]);\n  if (e.style) {\n    const n = {};\n    xf(n, e.style, e), i.style = {\n      ...n,\n      ...i.style\n    };\n  }\n  return i;\n}\nvar S1 = h((() => {\n  X(), _f(), Af();\n})), Ef, C1 = h((() => {\n  Ef = [\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 Ud(e) {\n  return typeof e != \"string\" || e.includes(\"-\") ? !1 : !!(Ef.indexOf(e) > -1 || /[A-Z]/u.test(e));\n}\nvar Bd = h((() => {\n  C1();\n}));\nfunction T1(e, r, o, { latestValues: t }, i, n = !1, s) {\n  const a = (s ?? Ud(e) ? E1 : A1)(r, t, i, e), d = p1(r, typeof e == \"string\", n), l = e !== Ss ? {\n    ...d,\n    ...a,\n    ref: o\n  } : {}, { children: u } = r, m = V(() => Ae(u) ? u.get() : u, [u]);\n  return j(e, {\n    ...l,\n    children: m\n  });\n}\nvar R1 = h((() => {\n  X(), _f(), S1(), Dd(), Bd();\n}));\nfunction P1({ scrapeMotionValuesFromProps: e, createRenderState: r }, o, t, i) {\n  return {\n    latestValues: L1(o, t, i, e),\n    renderState: r()\n  };\n}\nfunction L1(e, r, o, t) {\n  const i = {}, n = t(e, {});\n  for (const g in n) i[g] = Et(n[g]);\n  let { initial: s, animate: a } = e;\n  const d = Gi(e), l = Uh(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\" && !qi(m)) {\n    const g = Array.isArray(m) ? m : [m];\n    for (let p = 0; p < g.length; p++) {\n      const f = Ka(e, g[p]);\n      if (f) {\n        const { transitionEnd: y, transition: x, ...b } = f;\n        for (const k in b) {\n          let v = b[k];\n          if (Array.isArray(v)) {\n            const w = u ? v.length - 1 : 0;\n            v = v[w];\n          }\n          v !== null && (i[k] = v);\n        }\n        for (const k in y) i[k] = y[k];\n      }\n    }\n  }\n  return i;\n}\nvar Vd, Fd = h((() => {\n  X(), et(), Ko(), Ho(), Vd = (e) => (r, o) => {\n    const t = se(Qo), i = se(so), n = () => P1(e, r, t, i);\n    return o ? n() : yi(n);\n  };\n})), Sf, N1 = h((() => {\n  X(), Fd(), zd(), Sf = /* @__PURE__ */ Vd({\n    scrapeMotionValuesFromProps: xd,\n    createRenderState: Ji\n  });\n})), Cf, I1 = h((() => {\n  X(), Fd(), Af(), Cf = /* @__PURE__ */ Vd({\n    scrapeMotionValuesFromProps: vp,\n    createRenderState: Od\n  });\n})), Tf, Rf = h((() => {\n  Tf = /* @__PURE__ */ Symbol.for(\"motionComponentSymbol\");\n}));\nfunction M1(e, r, o) {\n  const t = z(o);\n  Ps(() => {\n    t.current = o;\n  });\n  const i = z(null);\n  return L((n) => {\n    n && e.onMount?.(n), r && (n ? r.mount(n) : r.unmount());\n    const s = t.current;\n    if (typeof s == \"function\") if (n) {\n      const a = s(n);\n      typeof a == \"function\" && (i.current = a);\n    } else i.current ? (i.current(), i.current = null) : s(n);\n    else s && (s.current = n);\n  }, [r]);\n}\nvar D1 = h((() => {\n})), jd, $d = h((() => {\n  jd = We({});\n}));\nfunction Gr(e) {\n  return e && typeof e == \"object\" && Object.prototype.hasOwnProperty.call(e, \"current\");\n}\nvar Pf = h((() => {\n}));\nfunction z1(e, r, o, t, i, n) {\n  const { visualElement: s } = se(Qo), a = se(Nd), d = se(so), l = se(to), u = l.reducedMotion, m = l.skipAnimations, g = z(null), p = z(!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: n\n  }), p.current && g.current && (g.current.manuallyAnimateOnMount = !0));\n  const f = g.current, y = se(jd);\n  f && !f.projection && i && (f.type === \"html\" || f.type === \"svg\") && O1(g.current, o, i, y);\n  const x = z(!1);\n  Ps(() => {\n    f && x.current && f.update(o, d);\n  });\n  const b = o[Qa], k = z(!!b && typeof window < \"u\" && !window.MotionHandoffIsComplete?.(b) && window.MotionHasOptimisedAnimation?.(b));\n  return wi(() => {\n    p.current = !0, f && (x.current = !0, window.MotionIsMounted = !0, f.updateFeatures(), f.scheduleRenderMicrotask(), k.current && f.animationState && f.animationState.animateChanges());\n  }), Rs(() => {\n    f && (!k.current && f.animationState && f.animationState.animateChanges(), k.current && (queueMicrotask(() => {\n      window.MotionHandoffMarkAsComplete?.(b);\n    }), k.current = !1), f.enteringChildren = void 0);\n  }), f;\n}\nfunction O1(e, r, o, t) {\n  const { layoutId: i, layout: n, 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 : Lf(e.parent)), e.projection.setOptions({\n    layoutId: i,\n    layout: n,\n    alwaysMeasureLayout: !!s || a && Gr(a),\n    visualElement: e,\n    animationType: typeof n == \"string\" ? n : \"both\",\n    initialPromotionConfig: t,\n    crossfade: m,\n    layoutScroll: d,\n    layoutRoot: l,\n    layoutAnchor: u\n  });\n}\nfunction Lf(e) {\n  if (e)\n    return e.options.allowProjection !== !1 ? e.projection : Lf(e.parent);\n}\nvar U1 = h((() => {\n  X(), Id(), Zo(), et(), Ko(), $d(), Pf(), ki();\n}));\nfunction In(e, { forwardMotionProps: r = !1, type: o } = {}, t, i) {\n  t && m1(t);\n  const n = o ? o === \"svg\" : Ud(e), s = n ? Cf : Sf;\n  function a(l, u) {\n    let m;\n    const g = {\n      ...se(to),\n      ...l,\n      layoutId: B1(l)\n    }, { isStatic: p } = g, f = w1(l), y = s(l, p);\n    if (!p && typeof window < \"u\") {\n      V1(g, t);\n      const x = F1(g);\n      m = x.MeasureLayout, f.visualElement = z1(e, y, g, i, x.ProjectionNode, n);\n    }\n    return _(Qo.Provider, {\n      value: f,\n      children: [m && f.visualElement ? c(m, {\n        visualElement: f.visualElement,\n        ...g\n      }) : null, T1(e, l, M1(y, f.visualElement, u), y, p, r, n)]\n    });\n  }\n  a.displayName = `motion.${typeof e == \"string\" ? e : `create(${e.displayName ?? e.name ?? \"\"})`}`;\n  const d = Zb(a);\n  return d[Tf] = e, d;\n}\nfunction B1({ layoutId: e }) {\n  const r = se(vi).id;\n  return r && e !== void 0 ? r + \"-\" + e : e;\n}\nfunction V1(e, r) {\n  se(Nd).strict;\n}\nfunction F1(e) {\n  const { drag: r, layout: o } = pf();\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 j1 = h((() => {\n  bi(), Id(), Zo(), et(), k1(), R1(), Bd(), N1(), I1(), ff(), vf(), Rf(), D1(), U1();\n}));\nfunction $1(e, r) {\n  if (typeof Proxy > \"u\") return In;\n  const o = /* @__PURE__ */ new Map(), t = (n, s) => In(n, s, e, r), i = (n, s) => t(n, s);\n  return new Proxy(i, { get: (n, s) => s === \"create\" ? t : (o.has(s) || o.set(s, In(s, void 0, e, r)), o.get(s)) });\n}\nvar Nf = h((() => {\n  j1();\n})), If, Mf = h((() => {\n  X(), Bd(), If = (e, r) => r.isSVG ?? Ud(e) ? new yp(r) : new dp(r, { allowProjection: e !== Ss });\n})), Df, q1 = h((() => {\n  X(), Df = 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      qi(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})), Cl, zf, W1 = h((() => {\n  X(), Cl = 0, zf = class extends mr {\n    constructor() {\n      super(...arguments), this.id = Cl++, 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: i, custom: n } = this.node.getProps();\n          if (typeof i == \"string\" || typeof i == \"object\" && i !== null && !Array.isArray(i)) {\n            const s = Dr(this.node, i, n);\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})), Of, Uf = h((() => {\n  q1(), W1(), Of = {\n    animation: { Feature: Df },\n    exit: { Feature: zf }\n  };\n}));\nfunction rt(e) {\n  return { point: {\n    x: e.pageX,\n    y: e.pageY\n  } };\n}\nvar Bf, uo = h((() => {\n  X(), Bf = (e) => (r) => Fi(r) && e(r, rt(r));\n}));\nfunction Po(e, r, o, t) {\n  return Uo(e, r, Bf(o), t);\n}\nvar Zi = h((() => {\n  X(), uo();\n})), qd, Vf = h((() => {\n  qd = ({ current: e }) => e ? e.ownerDocument.defaultView : null;\n}));\nfunction H1(e, r) {\n  const o = xs(e.x, r.x), t = xs(e.y, r.y);\n  return Math.sqrt(o ** 2 + t ** 2);\n}\nvar xs, Ff = h((() => {\n  xs = (e, r) => Math.abs(e - r);\n}));\nfunction ct(e, r) {\n  return r ? { point: r(e.point) } : e;\n}\nfunction Tl(e, r) {\n  return {\n    x: e.x - r.x,\n    y: e.y - r.y\n  };\n}\nfunction Mn({ point: e }, r) {\n  return {\n    point: e,\n    delta: Tl(e, jf(r)),\n    offset: Tl(e, K1(r)),\n    velocity: G1(r, 0.1)\n  };\n}\nfunction K1(e) {\n  return e[0];\n}\nfunction jf(e) {\n  return e[e.length - 1];\n}\nfunction G1(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 i = jf(e);\n  for (; o >= 0 && (t = e[o], !(i.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 && i.timestamp - t.timestamp > Le(r) * 2 && (t = e[1]);\n  const n = De(i.timestamp - t.timestamp);\n  if (n === 0) return {\n    x: 0,\n    y: 0\n  };\n  const s = {\n    x: (i.x - t.x) / n,\n    y: (i.y - t.y) / n\n  };\n  return s.x === 1 / 0 && (s.x = 0), s.y === 1 / 0 && (s.y = 0), s;\n}\nvar Dn, Wd, $f = h((() => {\n  X(), $(), Zi(), uo(), Ff(), Dn = /* @__PURE__ */ new Set([\"auto\", \"scroll\"]), Wd = class {\n    constructor(e, r, { transformPagePoint: o, contextWindow: t = window, dragSnapToOrigin: i = !1, distanceThreshold: n = 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 = Mn(this.lastMoveEventInfo, this.history), p = this.startEvent !== null, f = H1(g.offset, {\n          x: 0,\n          y: 0\n        }) >= this.distanceThreshold;\n        if (!p && !f) return;\n        const { point: y } = g, { timestamp: x } = _e;\n        this.history.push({\n          ...y,\n          timestamp: x\n        });\n        const { onStart: b, onMove: k } = this.handlers;\n        p || (b && b(this.lastMoveEvent, g), this.startEvent = this.lastMoveEvent), k && k(this.lastMoveEvent, g);\n      }, this.handlePointerMove = (g, p) => {\n        this.lastMoveEvent = g, this.lastRawMoveEventInfo = p, this.lastMoveEventInfo = ct(p, this.transformPagePoint), oe.update(this.updatePoint, !0);\n      }, this.handlePointerUp = (g, p) => {\n        this.end();\n        const { onEnd: f, onSessionEnd: y, resumeAnimation: x } = this.handlers;\n        if ((this.dragSnapToOrigin || !this.startEvent) && x && x(), !(this.lastMoveEvent && this.lastMoveEventInfo)) return;\n        const b = Mn(g.type === \"pointercancel\" ? this.lastMoveEventInfo : ct(p, this.transformPagePoint), this.history);\n        this.startEvent && f && f(g, b), y && y(g, b);\n      }, !Fi(e)) return;\n      this.dragSnapToOrigin = i, this.handlers = r, this.transformPagePoint = o, this.distanceThreshold = n, this.contextWindow = t || window;\n      const a = ct(rt(e), this.transformPagePoint), { point: d } = a, { timestamp: l } = _e;\n      this.history = [{\n        ...d,\n        timestamp: l\n      }];\n      const { onSessionStart: u } = r;\n      u && u(e, Mn(a, this.history));\n      const m = {\n        passive: !0,\n        capture: !0\n      };\n      this.removeListeners = ao(Po(this.contextWindow, \"pointermove\", this.handlePointerMove, m), Po(this.contextWindow, \"pointerup\", this.handlePointerUp, m), Po(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        (Dn.has(o.overflowX) || Dn.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      }, i = {\n        x: t.x - r.x,\n        y: t.y - r.y\n      };\n      i.x === 0 && i.y === 0 || (o ? this.lastMoveEventInfo && (this.lastMoveEventInfo.point.x += i.x, this.lastMoveEventInfo.point.y += i.y) : this.history.length > 0 && (this.history[0].x -= i.x, this.history[0].y -= i.y), this.scrollPositions.set(e, t), oe.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(), ar(this.updatePoint);\n    }\n  };\n}));\nfunction Y1(e, { min: r, max: o }, t) {\n  return r !== void 0 && e < r ? e = t ? re(r, e, t.min) : Math.max(e, r) : o !== void 0 && e > o && (e = t ? re(o, e, t.max) : Math.min(e, o)), e;\n}\nfunction Rl(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 X1(e, { top: r, left: o, bottom: t, right: i }) {\n  return {\n    x: Rl(e.x, o, i),\n    y: Rl(e.y, r, t)\n  };\n}\nfunction Pl(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 J1(e, r) {\n  return {\n    x: Pl(e.x, r.x),\n    y: Pl(e.y, r.y)\n  };\n}\nfunction Z1(e, r) {\n  let o = 0.5;\n  const t = Pe(e), i = Pe(r);\n  return i > t ? o = Qr(r.min, r.max - t, e.min) : t > i && (o = Qr(e.min, e.max - i, r.min)), He(0, 1, o);\n}\nfunction Q1(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 e_(e = ri) {\n  return e === !1 ? e = 0 : e === !0 && (e = ri), {\n    x: Ll(e, \"left\", \"right\"),\n    y: Ll(e, \"top\", \"bottom\")\n  };\n}\nfunction Ll(e, r, o) {\n  return {\n    min: Nl(e, r),\n    max: Nl(e, o)\n  };\n}\nfunction Nl(e, r) {\n  return typeof e == \"number\" ? e : e[r] || 0;\n}\nvar ri, r_ = h((() => {\n  X(), $(), ri = 0.35;\n}));\nfunction Il(e) {\n  let r = !0;\n  return () => {\n    if (r) {\n      r = !1;\n      return;\n    }\n    e();\n  };\n}\nfunction o_(e, r, o) {\n  const t = Xc(e, Il(o)), i = Xc(r, Il(o));\n  return () => {\n    t(), i();\n  };\n}\nfunction lt(e, r, o) {\n  return (r === !0 || r === e) && (o === null || o === e);\n}\nfunction t_(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 Ml, qf, i_ = h((() => {\n  X(), $(), Zi(), uo(), Vf(), Pf(), $f(), r_(), Ml = /* @__PURE__ */ new WeakMap(), qf = 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 = we(), 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 i = (u) => {\n        r && this.snapToCursor(rt(u).point), this.stopAnimation();\n      }, n = (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 b = this.getAxisMotionValue(x).get() || 0;\n          if ($e.test(b)) {\n            const { projection: k } = this.visualElement;\n            if (k && k.layout) {\n              const v = k.layout.layoutBox[x];\n              v && (b = Pe(v) * (parseFloat(b) / 100));\n            }\n          }\n          this.originPoint[x] = b;\n        }), f && oe.update(() => f(u, m), !1, !0), ns(this.visualElement, \"transform\");\n        const { animationState: y } = this.visualElement;\n        y && y.setActive(\"whileDrag\", !0);\n      }, s = (u, m) => {\n        this.latestPointerEvent = u, this.latestPanInfo = m;\n        const { dragPropagation: g, dragDirectionLock: p, onDirectionLock: f, onDrag: y } = this.getProps();\n        if (!g && !this.openDragLock) return;\n        const { offset: x } = m;\n        if (p && this.currentDirection === null) {\n          this.currentDirection = t_(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(), y && oe.update(() => y(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 Wd(e, {\n        onSessionStart: i,\n        onStart: n,\n        onMove: s,\n        onSessionEnd: a,\n        resumeAnimation: d\n      }, {\n        transformPagePoint: this.visualElement.getTransformPagePoint(),\n        dragSnapToOrigin: l,\n        distanceThreshold: o,\n        contextWindow: qd(this.visualElement),\n        element: this.visualElement.current\n      });\n    }\n    stop(e, r) {\n      const o = e || this.latestPointerEvent, t = r || this.latestPanInfo, i = this.isDragging;\n      if (this.cancel(), !i || !t || !o) return;\n      const { velocity: n } = t;\n      this.startAnimation(n);\n      const { onDragEnd: s } = this.getProps();\n      s && oe.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 i = this.getAxisMotionValue(e);\n      let n = this.originPoint[e] + o[e];\n      this.constraints && this.constraints[e] && (n = Y1(n, this.constraints[e], this.elastic[e])), i.set(n);\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 && Gr(e) ? this.constraints || (this.constraints = this.resolveRefConstraints()) : e && o ? this.constraints = X1(o.layoutBox, e) : this.constraints = !1, this.elastic = e_(r), t !== this.constraints && !Gr(e) && o && this.constraints && !this.hasMutatedConstraints && Ze((i) => {\n        this.constraints !== !1 && this.getAxisMotionValue(i) && (this.constraints[i] = Q1(o.layoutBox[i], this.constraints[i]));\n      });\n    }\n    resolveRefConstraints() {\n      const { dragConstraints: e, onMeasureDragConstraints: r } = this.getProps();\n      if (!e || !Gr(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 i = wx(o, t.root, this.visualElement.getTransformPagePoint());\n      let n = J1(t.layout.layoutBox, i);\n      if (r) {\n        const s = r(vx(n));\n        this.hasMutatedConstraints = !!s, s && (n = Kh(s));\n      }\n      return n;\n    }\n    startAnimation(e) {\n      const { drag: r, dragMomentum: o, dragElastic: t, dragTransition: i, dragSnapToOrigin: n, 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        (n === !0 || n === 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          ...i,\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 ns(this.visualElement, e), o.start(Di(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, i = this.getAxisMotionValue(r);\n        if (t && t.layout) {\n          const { min: n, max: s } = t.layout.layoutBox[r], a = i.get() || 0;\n          i.set(e[r] - re(n, 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 (!Gr(r) || !o || !this.constraints) return;\n      this.stopAnimation();\n      const t = {\n        x: 0,\n        y: 0\n      };\n      Ze((n) => {\n        const s = this.getAxisMotionValue(n);\n        if (s && this.constraints !== !1) {\n          const a = s.get();\n          t[n] = Z1({\n            min: a,\n            max: a\n          }, this.constraints[n]);\n        }\n      });\n      const { transformTemplate: i } = this.visualElement.getProps();\n      this.visualElement.current.style.transform = i ? i({}, \"\") : \"none\", o.root && o.root.updateScroll(), o.updateLayout(), this.constraints = !1, this.resolveConstraints(), Ze((n) => {\n        if (!lt(n, e, null)) return;\n        const s = this.getAxisMotionValue(n), { min: a, max: d } = this.constraints[n];\n        s.set(re(a, d, t[n]));\n      }), this.visualElement.render();\n    }\n    addListeners() {\n      if (!this.visualElement.current) return;\n      Ml.set(this.visualElement, this);\n      const e = this.visualElement.current, r = Po(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        Gr(d) && d.current && (this.constraints = this.resolveRefConstraints(), o || (o = o_(e, d.current, () => this.scalePositionWithinConstraints())));\n      }, { projection: i } = this.visualElement, n = i.addEventListener(\"measure\", t);\n      i && !i.layout && (i.root && i.root.updateScroll(), i.updateLayout()), oe.read(t);\n      const s = Uo(window, \"resize\", () => this.scalePositionWithinConstraints()), a = i.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(), n(), a && a(), o && o();\n      };\n    }\n    getProps() {\n      const e = this.visualElement.getProps(), { drag: r = !1, dragDirectionLock: o = !1, dragPropagation: t = !1, dragConstraints: i = !1, dragElastic: n = ri, dragMomentum: s = !0 } = e;\n      return {\n        ...e,\n        drag: r,\n        dragDirectionLock: o,\n        dragPropagation: t,\n        dragConstraints: i,\n        dragElastic: n,\n        dragMomentum: s\n      };\n    }\n  };\n})), Wf, n_ = h((() => {\n  X(), $(), i_(), Wf = class extends mr {\n    constructor(e) {\n      super(e), this.removeGroupControls = ze, this.removeListeners = ze, this.controls = new qf(e);\n    }\n    mount() {\n      const { dragControls: e } = this.node.getProps();\n      e && (this.removeGroupControls = e.subscribe(this.controls)), this.removeListeners = this.controls.addListeners() || ze;\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, Hf, s_ = h((() => {\n  X(), $(), Zi(), Vf(), $f(), ut = (e) => (r, o) => {\n    e && oe.update(() => e(r, o), !1, !0);\n  }, Hf = class extends mr {\n    constructor() {\n      super(...arguments), this.removePointerDownListener = ze;\n    }\n    onPointerDown(e) {\n      this.session = new Wd(e, this.createPanHandlers(), {\n        transformPagePoint: this.node.getTransformPagePoint(),\n        contextWindow: qd(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: (i, n) => {\n          delete this.session, t && oe.postRender(() => t(i, n));\n        }\n      };\n    }\n    mount() {\n      this.removePointerDownListener = Po(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 Kf(e) {\n  const [r, o] = hf(), t = se(vi);\n  return c(Gf, {\n    ...e,\n    layoutGroup: t,\n    switchLayoutGroup: se(jd),\n    isPresent: r,\n    safeToRemove: o\n  });\n}\nvar mt, Gf, Yf = h((() => {\n  X(), Pd(), bi(), $d(), mt = !1, Gf = class extends Zl {\n    componentDidMount() {\n      const { visualElement: e, layoutGroup: r, switchLayoutGroup: o, layoutId: t } = this.props, { projection: i } = e;\n      i && (r.group && r.group.add(i), o && o.register && t && o.register(i), mt && i.root.didUpdate(), i.addEventListener(\"animationComplete\", () => {\n        this.safeToRemove();\n      }), i.setOptions({\n        ...i.options,\n        layoutDependency: this.props.layoutDependency,\n        onExitComplete: () => this.safeToRemove()\n      })), Ro.hasEverUpdated = !0;\n    }\n    getSnapshotBeforeUpdate(e) {\n      const { layoutDependency: r, visualElement: o, drag: t, isPresent: i } = this.props, { projection: n } = o;\n      return n && (n.isPresent = i, e.layoutDependency !== r && n.setOptions({\n        ...n.options,\n        layoutDependency: r\n      }), mt = !0, t || e.layoutDependency !== r || r === void 0 || e.isPresent !== i ? n.willUpdate() : this.safeToRemove(), e.isPresent !== i && (i ? n.promote() : n.relegate() || oe.postRender(() => {\n        const s = n.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(), Bi.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})), Xf, Jf = h((() => {\n  n_(), s_(), Yf(), X(), Xf = {\n    pan: { Feature: Hf },\n    drag: {\n      Feature: Wf,\n      ProjectionNode: Rd,\n      MeasureLayout: Kf\n    }\n  };\n}));\nfunction Dl(e, r, o) {\n  const { props: t } = e;\n  e.animationState && t.whileHover && e.animationState.setActive(\"whileHover\", o === \"Start\");\n  const i = t[\"onHover\" + o];\n  i && oe.postRender(() => i(r, rt(r)));\n}\nvar Zf, a_ = h((() => {\n  X(), uo(), Zf = class extends mr {\n    mount() {\n      const { current: e } = this.node;\n      e && (this.unmount = Jk(e, (r, o) => (Dl(this.node, o, \"Start\"), (t) => Dl(this.node, t, \"End\"))));\n    }\n    unmount() {\n    }\n  };\n})), Qf, d_ = h((() => {\n  X(), $(), Qf = 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 = ao(Uo(this.node.current, \"focus\", () => this.onFocus()), Uo(this.node.current, \"blur\", () => this.onBlur()));\n    }\n    unmount() {\n    }\n  };\n}));\nfunction zl(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 i = t[\"onTap\" + (o === \"End\" ? \"\" : o)];\n  i && oe.postRender(() => i(r, rt(r)));\n}\nvar ev, c_ = h((() => {\n  X(), uo(), ev = 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, i) => (zl(this.node, i, \"Start\"), (n, { success: s }) => zl(this.node, n, s ? \"End\" : \"Cancel\")), {\n        useGlobalTarget: r,\n        stopPropagation: o?.tap === !1\n      });\n    }\n    unmount() {\n    }\n  };\n}));\nfunction l_({ root: e, ...r }) {\n  const o = e || document;\n  Ct.has(o) || Ct.set(o, {});\n  const t = Ct.get(o), i = JSON.stringify(r);\n  return t[i] || (t[i] = new IntersectionObserver(rv, {\n    root: e,\n    ...r\n  })), t[i];\n}\nfunction u_(e, r, o) {\n  const t = l_(r);\n  return oi.set(e, o), t.observe(e), () => {\n    oi.delete(e), t.unobserve(e);\n  };\n}\nvar oi, Ct, Ol, rv, m_ = h((() => {\n  oi = /* @__PURE__ */ new WeakMap(), Ct = /* @__PURE__ */ new WeakMap(), Ol = (e) => {\n    const r = oi.get(e.target);\n    r && r(e);\n  }, rv = (e) => {\n    e.forEach(Ol);\n  };\n}));\nfunction g_({ viewport: e = {} }, { viewport: r = {} } = {}) {\n  return (o) => e[o] !== r[o];\n}\nvar Ul, ov, h_ = h((() => {\n  X(), m_(), Ul = {\n    some: 0,\n    all: 1\n  }, ov = 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: i } = e, n = {\n        root: r ? r.current : void 0,\n        rootMargin: o,\n        threshold: typeof t == \"number\" ? t : Ul[t]\n      }, s = (a) => {\n        const { isIntersecting: d } = a;\n        if (this.isInView === d || (this.isInView = d, i && !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 = u_(this.node.current, n, 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(g_(e, r)) && this.startObserver();\n    }\n    unmount() {\n      this.stopObserver?.(), this.hasEnteredView = !1, this.isInView = !1;\n    }\n  };\n})), tv, iv = h((() => {\n  a_(), d_(), c_(), h_(), tv = {\n    inView: { Feature: ov },\n    tap: { Feature: ev },\n    focus: { Feature: Qf },\n    hover: { Feature: Zf }\n  };\n})), nv, sv = h((() => {\n  X(), Yf(), nv = { layout: {\n    ProjectionNode: Rd,\n    MeasureLayout: Kf\n  } };\n})), av, p_ = h((() => {\n  Uf(), Jf(), iv(), sv(), av = {\n    ...Of,\n    ...tv,\n    ...Xf,\n    ...nv\n  };\n})), dv, f_ = h((() => {\n  Mf(), Nf(), p_(), dv = /* @__PURE__ */ $1(av, If);\n}));\nfunction cv() {\n  !Yi.current && Fh();\n  const [e] = T(Oo.current);\n  return e;\n}\nvar v_ = h((() => {\n  X();\n})), Bl = h((() => {\n  l1(), uf(), gf(), bi(), X(), ki(), Id(), vf(), v1(), Nf(), f_(), Zi(), uo(), Uf(), Fd(), X(), Dd(), vm(), cf(), iv(), Mf(), Jf(), sv(), $(), Ho(), Zo(), v_(), $(), Pd(), Ko(), Rf(), yf(), et(), $d(), Ff();\n})), Hd, b_ = h((() => {\n  Bl(), Bl(), Hd = dv;\n})), lv, y_ = h((() => {\n  lv = {\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 qe({ stateKey: e, order: r, children: o, className: t = \"\", focusOnChange: i = !1 }) {\n  const [n, s] = T({\n    current: e,\n    previous: e\n  });\n  n.current !== e && s({\n    current: e,\n    previous: n.current\n  });\n  const a = cv(), d = r.indexOf(n.previous), l = r.indexOf(e), u = l === d || l > d ? 1 : -1, m = i && n.previous !== e, g = a ? 0 : 18;\n  return /* @__PURE__ */ c(f1, {\n    reducedMotion: \"user\",\n    children: /* @__PURE__ */ c(Ld, {\n      initial: !1,\n      mode: \"wait\",\n      custom: u,\n      children: /* @__PURE__ */ c(w_, {\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 w_({ children: e, className: r, direction: o, distance: t, focusOnMount: i, reduceMotion: n }) {\n  const s = z(null);\n  return F(() => {\n    i && s.current?.focus({ preventScroll: !0 });\n  }, [i]), /* @__PURE__ */ c(Hd.div, {\n    ref: s,\n    className: r,\n    tabIndex: i ? -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: lv.responsive,\n      opacity: { duration: n ? 1e-3 : 0.14 }\n    },\n    children: e\n  });\n}\nfunction k_({ open: e, children: r, className: o = \"\" }) {\n  return /* @__PURE__ */ c(Ld, {\n    initial: !1,\n    children: e && /* @__PURE__ */ c(x_, {\n      className: o,\n      children: r\n    })\n  });\n}\nfunction x_({ children: e, className: r }) {\n  const o = a1(), t = cv() ? 1e-3 : 0.24;\n  return /* @__PURE__ */ c(Hd.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 mo = h((() => {\n  b_(), K(), y_();\n}));\nfunction Ve({ label: e, labelAction: r, showStrengthMeter: o = !1, onValidationChange: t, error: i, className: n = \"\", onChange: s, onFocus: a, onBlur: d, value: l, ...u }) {\n  const m = ie(), g = e ?? m.auth.password, [p, f] = T(!1), [y, x] = T(!1), [b, k] = T(null), v = Ke(), w = `${v}-requirements`, E = typeof l == \"string\" && l.length > 0, P = o && (y || E), A = b ?? (o ? Io(typeof l == \"string\" ? l : \"\", m.passwordValidation) : null), C = [i ? `${v}-error` : null, P ? w : null].filter(Boolean).join(\" \"), S = (R) => {\n    const I = R.target.value;\n    if (o || t) {\n      const N = Io(I, m.passwordValidation);\n      k(N), t?.(N);\n    }\n    s?.(R);\n  };\n  return /* @__PURE__ */ _(\"div\", {\n    className: `cedros-password-input ${n}`,\n    children: [\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-label-row\",\n        children: [/* @__PURE__ */ c(\"label\", {\n          htmlFor: v,\n          className: \"cedros-label\",\n          children: g\n        }), r]\n      }),\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-password-wrapper\",\n        children: [/* @__PURE__ */ c(\"input\", {\n          id: v,\n          type: p ? \"text\" : \"password\",\n          className: \"cedros-input\",\n          onChange: S,\n          onFocus: (R) => {\n            x(!0), a?.(R);\n          },\n          onBlur: (R) => {\n            x(!1), d?.(R);\n          },\n          value: l,\n          \"aria-invalid\": i ? \"true\" : void 0,\n          \"aria-describedby\": C || void 0,\n          ...u\n        }), /* @__PURE__ */ c(\"button\", {\n          type: \"button\",\n          className: \"cedros-password-toggle\",\n          onClick: () => f(!p),\n          \"aria-label\": p ? m.auth.hidePassword : m.auth.showPassword,\n          \"aria-pressed\": p,\n          children: p ? /* @__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      i && /* @__PURE__ */ c(\"p\", {\n        id: `${v}-error`,\n        className: \"cedros-input-error\",\n        children: i\n      }),\n      o && A && /* @__PURE__ */ c(k_, {\n        open: P,\n        children: /* @__PURE__ */ c(E0, {\n          validation: A,\n          requirementsId: w\n        })\n      })\n    ]\n  });\n}\nvar Fr = h((() => {\n  xr(), J(), S0(), mo();\n})), pe, ke = h((() => {\n  K(), pe = Ql(function({ error: r, className: o = \"\", onDismiss: t, autoFocus: i = !1 }) {\n    const n = z(null);\n    if (F(() => {\n      r && i && n.current && n.current.focus();\n    }, [r, i]), !r) return null;\n    const s = typeof r == \"string\" ? r : r.message;\n    return /* @__PURE__ */ _(\"div\", {\n      ref: n,\n      className: `cedros-error ${o}`,\n      role: \"alert\",\n      \"aria-live\": \"assertive\",\n      tabIndex: i ? -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})), Kd, uv = h((() => {\n  le(), Kd = class {\n    client;\n    constructor(e, r, o, t) {\n      this.client = new ce({\n        baseUrl: e,\n        timeoutMs: r,\n        retryAttempts: o,\n        getAccessToken: t\n      });\n    }\n    async listCredentials() {\n      try {\n        return (await this.client.get(\"/credentials\")).credentials;\n      } catch (e) {\n        throw O(e, \"Failed to list credentials\");\n      }\n    }\n    async unlinkCredential(e) {\n      try {\n        await this.client.delete(`/credentials/${encodeURIComponent(e)}`);\n      } catch (r) {\n        throw O(r, \"Failed to unlink credential\");\n      }\n    }\n  };\n})), Gd, mv = h((() => {\n  le(), Gd = class {\n    client;\n    constructor(e, r, o, t) {\n      this.client = new ce({\n        baseUrl: e,\n        timeoutMs: r,\n        retryAttempts: o,\n        getAccessToken: t\n      });\n    }\n    async redeem(e, r) {\n      try {\n        return await this.client.post(\"/invite-codes/redeem\", {\n          pendingInviteToken: e,\n          code: r\n        });\n      } catch (o) {\n        throw O(o, \"Unable to apply invite code\");\n      }\n    }\n    async listAccountCodes() {\n      try {\n        return await this.client.get(\"/account/invite-codes\");\n      } catch (e) {\n        throw O(e, \"Unable to load invite codes\");\n      }\n    }\n    async listAdminCodes() {\n      try {\n        return await this.client.get(\"/admin/invite-codes\");\n      } catch (e) {\n        throw O(e, \"Unable to load invite codes\");\n      }\n    }\n    async createAdminCode(e) {\n      try {\n        return await this.client.post(\"/admin/invite-codes\", e);\n      } catch (r) {\n        throw O(r, \"Unable to create invite code\");\n      }\n    }\n    async updateAdminCode(e, r) {\n      try {\n        return await this.client.patch(`/admin/invite-codes/${e}`, r);\n      } catch (o) {\n        throw O(o, \"Unable to update invite code\");\n      }\n    }\n    async deleteAdminCode(e) {\n      try {\n        await this.client.delete(`/admin/invite-codes/${e}`);\n      } catch (r) {\n        throw O(r, \"Unable to delete invite code\");\n      }\n    }\n  };\n}));\nfunction Qi(e = {}) {\n  const { maxAttempts: r = 5, windowMs: o = 6e4, showCountdown: t = !1, rateLimitMessage: i } = e, n = z([]), [s, a] = T(!1), [, d] = T(0), l = L(() => {\n    d((b) => b + 1);\n  }, []), u = L(() => {\n    const b = Date.now();\n    n.current = n.current.filter((k) => b - k < o);\n  }, [o]), m = L(() => {\n    u(), a((b) => n.current.length === 0 && b ? !1 : b);\n  }, [u]), g = L(() => (u(), Math.max(0, r - n.current.length)), [u, r]), p = L(() => {\n    if (u(), n.current.length === 0) return 0;\n    const b = n.current[0] + o;\n    return Math.max(0, b - Date.now());\n  }, [u, o]), f = L(() => (u(), n.current.length < r), [u, r]), y = L(() => {\n    if (m(), n.current.length >= r) {\n      const b = p(), k = Math.ceil(b / 1e3);\n      throw new Error(i?.(k) ?? `Too many attempts. Please wait ${k} second${k === 1 ? \"\" : \"s\"} before trying again.`);\n    }\n    n.current.push(Date.now()), a((b) => b || !0), l();\n  }, [\n    m,\n    r,\n    p,\n    i,\n    l\n  ]), x = L(() => {\n    n.current = [], a((b) => b && !1), l();\n  }, [l]);\n  return F(() => {\n    if (!s || !t) return;\n    const b = window.setInterval(() => {\n      m(), l();\n    }, 1e3);\n    return () => {\n      window.clearInterval(b);\n    };\n  }, [\n    s,\n    t,\n    l,\n    m\n  ]), {\n    checkLimit: y,\n    isAllowed: f,\n    getRemainingAttempts: g,\n    getTimeUntilReset: p,\n    reset: x\n  };\n}\nvar en = h((() => {\n  K();\n}));\nfunction rn(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 > hv) return null;\n    const i = new URL(t, r);\n    return i.origin !== r.origin ? null : `${i.pathname}${i.search}${i.hash}`;\n  } catch {\n    return null;\n  }\n}\nfunction gv(e) {\n  const r = rn(e);\n  return r ? `/login?returnTo=${encodeURIComponent(r)}` : \"/login\";\n}\nvar hv, on = h((() => {\n  hv = 2048;\n}));\nfunction __(e) {\n  return \"mfaRequired\" in e && e.mfaRequired === !0;\n}\nfunction ti(e) {\n  return !!(e.user.email && (e.emailQueued === !0 || e.user.emailVerified === !1 && e.tokens === void 0));\n}\nfunction tn() {\n  const { config: e, _internal: r } = fe(), o = Ur(), { t, message: i } = dr(), [n, s] = T(!1), [a, d] = T(null), l = V(() => ({\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 } = Qi({\n    maxAttempts: 5,\n    windowMs: 6e4,\n    rateLimitMessage: (A) => i(t.errors.rateLimitedWithSeconds, { seconds: A })\n  }), f = V(() => new ce({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    retryAttempts: e.retryAttempts\n  }), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts\n  ]), y = V(() => new ce({\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 = V(() => new Wo(e.serverUrl, e.requestTimeout, e.retryAttempts, r?.getAccessToken), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    r?.getAccessToken\n  ]), b = V(() => new Kd(e.serverUrl, e.requestTimeout, e.retryAttempts, r?.getAccessToken), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    r?.getAccessToken\n  ]), k = V(() => new Gd(e.serverUrl, e.requestTimeout, e.retryAttempts, r?.getAccessToken), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    r?.getAccessToken\n  ]), v = e.callbacks, w = L(async (A, C) => {\n    if (!It(A)) {\n      const S = {\n        code: \"VALIDATION_ERROR\",\n        message: t.errors.invalidEmail\n      };\n      throw d(S), S;\n    }\n    try {\n      u();\n    } catch (S) {\n      const R = {\n        code: \"RATE_LIMITED\",\n        message: S instanceof Error ? S.message : t.errors.tooManyRequests\n      };\n      throw d(R), R;\n    }\n    s(!0), d(null);\n    try {\n      const S = await f.post(\"/login\", {\n        email: A,\n        password: C\n      });\n      if (__(S)) return {\n        mfaRequired: !0,\n        mfaToken: S.mfaToken,\n        email: A,\n        userId: S.userId\n      };\n      const R = S;\n      return R.inviteCodeRequired && R.pendingInviteToken ? (p(), {\n        mfaRequired: !1,\n        inviteCodeRequired: !0,\n        pendingInviteToken: R.pendingInviteToken,\n        waitlistEnrollmentAccepted: R.inviteGateHandoffStatus === \"accepted\"\n      }) : (v?.onLoginSuccess?.(R.user, \"email\"), r?.handleLoginSuccess(R.user, R.tokens), p(), {\n        mfaRequired: !1,\n        response: R\n      });\n    } catch (S) {\n      const R = O(S, t.errors.signInFallback, {\n        friendlyMessages: l,\n        networkMessage: t.errors.unableToReachServer\n      });\n      throw d(R), R;\n    } finally {\n      s(!1);\n    }\n  }, [\n    f,\n    v,\n    r,\n    u,\n    p,\n    l,\n    t.errors\n  ]), E = L(async (A, C, S, R, I) => {\n    if (!It(A)) {\n      const N = {\n        code: \"VALIDATION_ERROR\",\n        message: t.errors.invalidEmail\n      };\n      throw d(N), N;\n    }\n    try {\n      u();\n    } catch (N) {\n      const M = {\n        code: \"RATE_LIMITED\",\n        message: N instanceof Error ? N.message : t.errors.tooManyRequests\n      };\n      throw d(M), M;\n    }\n    s(!0), d(null);\n    try {\n      const N = await o.requestDeviceAccountLink({\n        identifier: A,\n        method: \"email\",\n        linkExisting: async (G, W) => (await x.addEmail(A), (await b.listCredentials()).some((H) => H.credentialType === \"password\") || await y.post(\"/set-password\", { password: C }), W)\n      });\n      if (N.action === \"linked\") {\n        if (p(), N.response) return N.response;\n        throw {\n          code: \"UNKNOWN_ERROR\",\n          message: \"Account linked. Please refresh your session.\"\n        };\n      }\n      const M = R ?? r?.getReferralCode?.() ?? void 0, D = rn(typeof window > \"u\" ? void 0 : window.location.href), B = await f.post(\"/register\", {\n        email: A,\n        password: C,\n        name: S,\n        referral: M,\n        ...I ? { accessCode: I } : {},\n        ...D ? { returnTo: D } : {}\n      });\n      return !B.inviteCodeRequired && !ti(B) && (v?.onLoginSuccess?.(B.user, \"email\"), r?.handleLoginSuccess(B.user, B.tokens)), p(), B;\n    } catch (N) {\n      const M = O(N, 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    y,\n    v,\n    b,\n    o,\n    r,\n    u,\n    p,\n    l,\n    t.errors\n  ]), P = L((A) => {\n    ti(A) || (v?.onLoginSuccess?.(A.user, \"email\"), r?.handleLoginSuccess(A.user, A.tokens), p());\n  }, [\n    v,\n    r,\n    p\n  ]);\n  return {\n    login: w,\n    register: E,\n    redeemInviteCode: L(async (A, C, S) => {\n      s(!0), d(null);\n      try {\n        const R = await k.redeem(A, C);\n        return S?.deferLoginSuccess || P(R), R;\n      } catch (R) {\n        const I = O(R, \"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      k,\n      l,\n      t.errors\n    ]),\n    completeInviteRedemption: P,\n    isLoading: n,\n    error: a,\n    clearError: L(() => d(null), []),\n    remainingAttempts: m(),\n    timeUntilReset: g()\n  };\n}\nvar nn = h((() => {\n  ne(), Br(), le(), fi(), uv(), mv(), xr(), en(), J(), on();\n}));\nfunction A_({ children: e }) {\n  const [r, o] = T(null), [t, i] = T(\"choice\"), [n, s] = T(null), [a, d] = T(!1), l = z(null), u = L(async (y) => {\n    const x = T_(y.method), b = await Vw(y.identifier, x);\n    return b ? (l.current?.({ action: \"create\" }), new Promise((k) => {\n      l.current = k, s(null), i(\"choice\"), o({\n        request: y,\n        hint: b.hint,\n        idHash: b.idHash,\n        newLabel: b.label,\n        resolve: k\n      });\n    })) : { action: \"create\" };\n  }, []), m = L((y) => {\n    l.current?.(y), l.current = null, o(null), i(\"choice\"), s(null), d(!1);\n  }, []), g = L(() => {\n    r && (Fw(r.idHash), m({ action: \"create\" }));\n  }, [r, m]), p = L(() => {\n    jw(), m({ action: \"create\" });\n  }, [m]), f = L(async (y) => {\n    if (r) {\n      d(!0), s(null);\n      try {\n        m({\n          action: \"linked\",\n          response: await r.request.linkExisting(r.hint, y) ?? y\n        });\n      } catch (x) {\n        s(kr(x, \"Unable to link this sign-in method. Please try again.\").message), d(!1);\n      }\n    }\n  }, [r, m]);\n  return /* @__PURE__ */ _(Vs.Provider, {\n    value: { requestDeviceAccountLink: u },\n    children: [e, r && /* @__PURE__ */ c(E_, {\n      pending: r,\n      phase: t,\n      error: n,\n      isLinking: a,\n      onChooseLink: () => i(\"signin\"),\n      onCreateSeparate: g,\n      onNotMe: p,\n      onCancel: () => m({ action: \"create\" }),\n      onSignedIn: f\n    })]\n  });\n}\nfunction E_({ pending: e, phase: r, error: o, isLinking: t, onChooseLink: i, onCreateSeparate: n, onNotMe: s, onCancel: a, onSignedIn: d }) {\n  const l = `You've signed in here before as ${e.hint.label} (with ${zn(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 ${zn(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: i,\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: n,\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(S_, {\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(q, { size: \"sm\" }), /* @__PURE__ */ _(\"span\", { children: [\n                \"Linking \",\n                zn(e.request.method),\n                \"...\"\n              ] })]\n            }),\n            /* @__PURE__ */ c(pe, { 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 S_({ method: e, disabled: r, onSignedIn: o }) {\n  return e === \"google\" ? /* @__PURE__ */ c(Wu, {\n    disabled: r,\n    onSuccess: o\n  }) : e === \"apple\" ? /* @__PURE__ */ c(Xu, {\n    disabled: r,\n    hideOnNonApple: !1,\n    onSuccess: o\n  }) : e === \"solana\" ? /* @__PURE__ */ c(g0, {\n    disabled: r,\n    hideIfNoWallet: !1,\n    onSuccess: o\n  }) : e === \"webauthn\" ? /* @__PURE__ */ c(hm, {\n    disabled: r,\n    onSuccess: o\n  }) : /* @__PURE__ */ c(C_, {\n    disabled: r,\n    onSignedIn: o\n  });\n}\nfunction C_({ disabled: e, onSignedIn: r }) {\n  const { login: o, isLoading: t, error: i, clearError: n } = tn(), [s, a] = T(\"\"), [d, l] = T(\"\"), [u, m] = T(null), g = async (p) => {\n    p.preventDefault(), m(null);\n    try {\n      const f = await o(s, d);\n      if (f.mfaRequired) {\n        m(\"Complete two-factor sign-in before linking this method.\");\n        return;\n      }\n      if (\"inviteCodeRequired\" in f) {\n        m(\"Enter your invite code to finish signing in before linking this method.\");\n        return;\n      }\n      await r(f.response);\n    } catch (f) {\n      m(kr(f, \"Unable to sign in. Please try again.\").message);\n    }\n  };\n  return /* @__PURE__ */ _(\"form\", {\n    className: \"cedros-device-link-dialog__email-form\",\n    onSubmit: (p) => {\n      g(p);\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: s,\n          onChange: (p) => a(p.target.value),\n          autoComplete: \"email\",\n          disabled: e || t,\n          required: !0\n        })]\n      }),\n      /* @__PURE__ */ c(\"div\", {\n        className: \"cedros-form-field\",\n        children: /* @__PURE__ */ c(Ve, {\n          value: d,\n          onChange: (p) => l(p.target.value),\n          disabled: e || t,\n          autoComplete: \"current-password\",\n          required: !0\n        })\n      }),\n      /* @__PURE__ */ c(pe, {\n        error: u || i,\n        onDismiss: () => {\n          m(null), n();\n        }\n      }),\n      /* @__PURE__ */ c(\"button\", {\n        type: \"submit\",\n        className: \"cedros-button cedros-button-primary cedros-button-md\",\n        disabled: e || t || !s || !d,\n        children: t ? /* @__PURE__ */ c(q, { size: \"sm\" }) : \"Sign in\"\n      })\n    ]\n  });\n}\nfunction T_(e) {\n  return e === \"instantLink\" ? \"email\" : e;\n}\nfunction zn(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 R_ = h((() => {\n  Hu(), Ju(), p0(), pm(), Fr(), Q(), ke(), nn(), qo(), pi(), Br();\n}));\nfunction pv() {\n  return Object.values(ot);\n}\nfunction P_(e) {\n  if (typeof e == \"boolean\") return e;\n  if (typeof e != \"string\") return;\n  const r = e.trim().toLowerCase();\n  if (bv.has(r)) return !0;\n  if (yv.has(r)) return !1;\n}\nfunction fv() {\n  return Object.fromEntries(Object.entries(ot).map(([e, r]) => [e, r.defaultEnabled]));\n}\nfunction L_(e) {\n  const r = {};\n  for (const o of pv()) {\n    const t = P_(e?.[o.envVar]);\n    t !== void 0 && (r[o.name] = t);\n  }\n  return r;\n}\nfunction vv(e = {}) {\n  const r = fv(), o = L_(e.env), t = { ...r };\n  for (const i of Object.keys(ot)) t[i] = e.config?.[i] ?? o[i] ?? e.base?.[i] ?? r[i];\n  return t;\n}\nfunction N_(e, r = {}) {\n  return r.flags ? r.flags[e] ?? ot[e].defaultEnabled : vv(r)[e];\n}\nfunction I_() {\n  return pv().filter((e) => e.autoDiscoverable).map((e) => e.name);\n}\nfunction M_() {\n  const e = fv(), r = {};\n  for (const o of I_()) r[o] = e[o];\n  return r;\n}\nvar ot, bv, yv, wv = 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  }, bv = /* @__PURE__ */ new Set([\n    \"1\",\n    \"true\",\n    \"yes\",\n    \"on\"\n  ]), yv = /* @__PURE__ */ new Set([\n    \"0\",\n    \"false\",\n    \"no\",\n    \"off\"\n  ]);\n}));\nfunction kv() {\n  return typeof window < \"u\" && typeof window.matchMedia == \"function\";\n}\nfunction D_(e) {\n  if (!kv()) return () => {\n  };\n  const r = window.matchMedia(Yd);\n  return r.addEventListener(\"change\", e), () => r.removeEventListener(\"change\", e);\n}\nfunction z_() {\n  return kv() && window.matchMedia(Yd).matches;\n}\nfunction O_() {\n  return eu(D_, z_, () => !1);\n}\nvar Yd, U_ = h((() => {\n  Yd = \"(prefers-color-scheme: dark)\";\n}));\nfunction B_({ theme: e, themeOverrides: r, applyThemeToDocument: o = !0 }) {\n  const t = O_(), i = e === \"dark\" || e !== \"light\" && t;\n  return F(() => {\n    if (typeof document > \"u\" || !o) return;\n    const n = document.documentElement;\n    let s = !1;\n    return i ? (wo++, s = !0, n.classList.add(\"cebbwf5-dark\")) : wo === 0 && n.classList.remove(\"cebbwf5-dark\"), () => {\n      s && (wo--, wo === 0 && n.classList.remove(\"cebbwf5-dark\"));\n    };\n  }, [i, o]), {\n    className: i ? \"cebbwf5-dark\" : \"\",\n    style: V(() => {\n      if (!r) return {};\n      const n = {};\n      for (const [s, a] of Object.entries(r)) if (a) {\n        n[s] = a;\n        const d = xv[s];\n        d && !r[d] && (n[d] = a);\n      }\n      return n;\n    }, [r])\n  };\n}\nvar xv, wo, V_ = h((() => {\n  K(), U_(), xv = { \"--cebbwf5-success-light\": \"--cebbwf5-login-success-soft\" }, wo = 0;\n}));\nfunction F_(e, r, o) {\n  const [t, i] = T(null), [n, s] = T(), [a, d] = T(), [l, u] = T(), [m, g] = T(), [p, f] = T(), [y, x] = T(), [b, k] = T(r);\n  return F(() => {\n    if (!r) {\n      k(!1);\n      return;\n    }\n    let v = !0, w = !1, E = !1, P = !1, A;\n    k(!0);\n    const C = new ce({\n      baseUrl: e,\n      timeoutMs: o ?? 5e3,\n      retryAttempts: 1\n    }), S = async () => {\n      if (!E) {\n        E = !0;\n        try {\n          const N = await C.get(\"/features\", {\n            credentials: \"omit\",\n            cacheTtlMs: 0,\n            forceRefresh: w\n          });\n          if (!v) return;\n          const M = gi(N.signupAvailability);\n          if (P = N.signupAvailability !== void 0 && N.signupAvailability !== null, A !== void 0 && window.clearTimeout(A), A = void 0, M) {\n            const D = Math.min(2147483647, Math.max(0, Date.parse(M.resetsAt) - Date.now() + 250));\n            A = window.setTimeout(() => {\n              v && (x(void 0), S());\n            }, D);\n          }\n          i({\n            email: N.email,\n            google: N.google,\n            apple: N.apple,\n            solana: N.solana,\n            webauthn: N.webauthn,\n            instantLink: N.instantLink\n          }), s(N.googleClientId), d(N.appleClientId), u(N.usernameEnabled), g(N.socialButtonOrder), f(N.signupAccessCodeRequired), x(M);\n        } catch {\n          if (!v || w) return;\n          i(_v);\n        } finally {\n          E = !1, v && !w && (w = !0, k(!1));\n        }\n      }\n    };\n    S();\n    const R = window.setInterval(() => {\n      P && document.visibilityState === \"visible\" && S();\n    }, 6e4), I = () => {\n      P && document.visibilityState === \"visible\" && S();\n    };\n    return document.addEventListener(\"visibilitychange\", I), () => {\n      v = !1, window.clearInterval(R), A !== void 0 && window.clearTimeout(A), document.removeEventListener(\"visibilitychange\", I);\n    };\n  }, [\n    r,\n    e,\n    o\n  ]), {\n    features: t,\n    googleClientId: n,\n    appleClientId: a,\n    usernameEnabled: l,\n    socialButtonOrder: m,\n    signupAccessCodeRequired: p,\n    signupAvailability: y,\n    isLoading: b\n  };\n}\nvar _v, j_ = h((() => {\n  K(), wv(), le(), hi(), _v = M_();\n})), Vl, Fl, Av, $_ = h((() => {\n  Vl = \"cedros_tokens\", Fl = 6e4, Av = 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    constructor(e = \"cookie\", r = Vl, 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) {\n      this.tokens = e, this.expiresAt = Date.now() + e.expiresIn * 1e3, this.sessionExpiredFired = !1, this.saveToStorage(), this.scheduleRefresh();\n    }\n    getAccessToken() {\n      if (this.isDestroyed) return null;\n      const e = this.tokens?.accessToken;\n      return e ? Date.now() >= this.expiresAt ? (this.clear(), this.fireSessionExpired(), null) : e : null;\n    }\n    getRefreshToken() {\n      return this.tokens?.refreshToken ?? null;\n    }\n    clear() {\n      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.clearStorage(), 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 - Fl);\n      if (r <= 0) {\n        if (this.isDestroyed) return;\n        this.onRefreshNeeded().catch((o) => {\n          if (this.isDestroyed) return;\n          const t = o instanceof Error ? o : /* @__PURE__ */ new Error(\"Token refresh failed\");\n          this.onRefreshError?.(t), this.clear(), this.fireSessionExpired();\n        });\n        return;\n      }\n      this.refreshTimer = setTimeout(() => {\n        this.isDestroyed || this.onRefreshNeeded?.().catch((o) => {\n          if (this.isDestroyed) return;\n          const t = o instanceof Error ? o : /* @__PURE__ */ new Error(\"Token refresh failed\");\n          this.onRefreshError?.(t), 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) ? o.expiresAt > Date.now() ? (this.tokens = o.tokens, this.expiresAt = o.expiresAt) : e.removeItem(this.storageKey) : 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\" || 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\");\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 q_(e) {\n  return !Ev(e) || typeof e.type != \"string\" ? !1 : e.type === \"logout\" || e.type === \"refresh\" ? !0 : e.type === \"login\" && W_(e.user);\n}\nfunction W_(e) {\n  return Ev(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(H_) && typeof e.emailVerified == \"boolean\" && K_(e.totpEnabled) && typeof e.createdAt == \"string\" && typeof e.updatedAt == \"string\" && Sr(e.welcomeCompletedAt) && Sr(e.referralCode);\n}\nfunction Ev(e) {\n  return typeof e == \"object\" && e !== null;\n}\nfunction H_(e) {\n  return typeof e == \"string\" && Sv.some((r) => r === e);\n}\nfunction Sr(e) {\n  return e === void 0 || typeof e == \"string\";\n}\nfunction K_(e) {\n  return e === void 0 || typeof e == \"boolean\";\n}\nvar jl, Sv, Cv, G_ = h((() => {\n  jl = \"cedros_auth_sync\", Sv = [\n    \"email\",\n    \"google\",\n    \"apple\",\n    \"solana\",\n    \"webauthn\",\n    \"sso\"\n  ], Cv = class {\n    channel = null;\n    callback = null;\n    boundHandler = null;\n    constructor() {\n      typeof window < \"u\" && \"BroadcastChannel\" in window && (this.channel = new BroadcastChannel(jl), this.boundHandler = this.handleMessage.bind(this), this.channel.addEventListener(\"message\", this.boundHandler));\n    }\n    handleMessage(e) {\n      const r = e.data;\n      q_(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 Y_(e) {\n  const r = Z_();\n  if (r) {\n    let o = !1;\n    try {\n      await r.request(Rv, () => (o = !0, $l(e, {\n        probeCookieSession: !0,\n        reconcileTokenStorage: !0\n      })));\n      return;\n    } catch (t) {\n      if (o) throw t;\n    }\n  }\n  await $l(e, {\n    probeCookieSession: !1,\n    reconcileTokenStorage: !1\n  });\n}\nasync function X_(e, r) {\n  if (e.current) return e.current;\n  const o = J_();\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 J_() {\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 Z_() {\n  return typeof navigator > \"u\" ? null : typeof navigator.locks?.request == \"function\" ? navigator.locks : null;\n}\nasync function $l(e, r) {\n  const o = new AbortController(), t = e.requestTimeoutMs ?? 1e4, i = window.setTimeout(() => o.abort(), t);\n  try {\n    if (r.probeCookieSession && e.storage === \"cookie\" && await Q_(e.serverUrl, o.signal) || r.reconcileTokenStorage && e5(e)) return;\n    await r5(e, o.signal), e.onRefresh?.();\n  } finally {\n    window.clearTimeout(i);\n  }\n}\nasync function Q_(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 e5(e) {\n  const r = i5(e);\n  if (!r) return !1;\n  const o = e.tokenStore.getRefreshToken();\n  return r.refreshToken === o ? !1 : (e.tokenStore.setTokens(r), !0);\n}\nasync function r5(e, r) {\n  const o = e.tokenStore.getRefreshToken(), t = await fetch(`${e.serverUrl}/refresh`, {\n    method: \"POST\",\n    headers: o5(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 t5(e, t);\n}\nfunction o5(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 t5(e, r) {\n  const o = await r.json(), t = Xd(o) ? o.tokens : void 0;\n  if (t) {\n    if (!Tv(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 = n5(e.storage, e.allowWebStorage);\n  if (!r) return null;\n  try {\n    const o = r.getItem(e.persistKey ?? Pv);\n    if (!o) return null;\n    const t = JSON.parse(o);\n    return !s5(t) || t.expiresAt <= Date.now() ? null : t.tokens;\n  } catch (o) {\n    return console.warn(\"[Cedros Login] Unable to read token storage before refresh:\", o), null;\n  }\n}\nfunction n5(e, r) {\n  return !r || typeof window > \"u\" ? null : e === \"localStorage\" ? window.localStorage : e === \"sessionStorage\" ? window.sessionStorage : null;\n}\nfunction s5(e) {\n  return Xd(e) && typeof e.expiresAt == \"number\" && Tv(e.tokens);\n}\nfunction Tv(e) {\n  return Xd(e) ? typeof e.accessToken == \"string\" && e.accessToken.length > 0 && typeof e.refreshToken == \"string\" && e.refreshToken.length > 0 && typeof e.expiresIn == \"number\" && e.expiresIn > 0 : !1;\n}\nfunction Xd(e) {\n  return typeof e == \"object\" && e !== null;\n}\nvar Rv, Pv, a5 = h((() => {\n  Fs(), Rv = \"cedros-login:refresh\", Pv = \"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 d5({ serverUrl: e, session: r, callbacks: o, requestTimeoutMs: t }) {\n  const [i, n] = T(null), [s, a] = T(\"idle\"), d = z(null), l = z(null), u = z(o), m = z(!0), g = z(null), p = z(() => Promise.resolve()), f = z(() => {\n  });\n  F(() => {\n    u.current = o;\n  }, [o]), F(() => (m.current = !0, () => {\n    m.current = !1;\n  }), []);\n  const y = L((A) => {\n    m.current && n(A);\n  }, []), x = L((A) => {\n    m.current && a(A);\n  }, []), b = V(() => ({\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    const A = new Av(b.storage, b.persistKey, { allowWebStorage: b.allowWebStorage });\n    return d.current = A, b.autoRefresh && A.setRefreshCallback(() => p.current()), A.setSessionExpiredCallback(() => f.current()), b.syncTabs && (l.current = new Cv()), () => {\n      A.destroy(), d.current = null, l.current?.close();\n    };\n  }, [\n    b.storage,\n    b.syncTabs,\n    b.persistKey,\n    b.allowWebStorage,\n    b.autoRefresh\n  ]);\n  const k = L(async () => {\n    await X_(g, () => Y_({\n      serverUrl: e,\n      storage: b.storage,\n      persistKey: b.persistKey,\n      allowWebStorage: b.allowWebStorage,\n      requestTimeoutMs: t,\n      tokenStore: {\n        getRefreshToken: () => d.current?.getRefreshToken() ?? null,\n        setTokens: (A) => d.current?.setTokens(A)\n      },\n      onRefresh: () => l.current?.broadcastRefresh()\n    }));\n  }, [\n    e,\n    b.storage,\n    b.persistKey,\n    b.allowWebStorage,\n    t\n  ]), v = L(() => {\n    if (b.storage === \"cookie\") return;\n    const A = d.current?.getAccessToken();\n    if (A)\n      return { Authorization: `Bearer ${A}` };\n  }, [b.storage]), w = L(() => {\n    d.current?.clear(), y(null), x(\"unauthenticated\"), u.current?.onSessionExpired?.();\n  }, [x, y]);\n  p.current = k, f.current = w;\n  const E = L((A) => {\n    const C = new AbortController(), S = t ?? 1e4, R = window.setTimeout(() => C.abort(), S), I = {}, N = v();\n    N && Object.assign(I, N);\n    const M = Nt();\n    return M && (I[\"X-CSRF-Token\"] = M), {\n      promise: fetch(A, {\n        credentials: \"include\",\n        headers: Object.keys(I).length > 0 ? I : void 0,\n        signal: C.signal\n      }),\n      cleanup: () => window.clearTimeout(R)\n    };\n  }, [v, t]), P = L(async () => {\n    const A = E(`${e}/user`);\n    try {\n      const C = await A.promise;\n      if (C.ok) {\n        const S = await C.json();\n        if (gt(S)) {\n          y(S.user), x(\"authenticated\");\n          return;\n        }\n      }\n      if (C.status === 401 && b.autoRefresh) {\n        try {\n          await k();\n        } catch {\n          w();\n          return;\n        }\n        const S = E(`${e}/user`);\n        try {\n          const R = await S.promise;\n          if (R.ok) {\n            const I = await R.json();\n            if (gt(I)) {\n              y(I.user), x(\"authenticated\");\n              return;\n            }\n          }\n        } finally {\n          S.cleanup();\n        }\n      }\n      y(null), x(\"unauthenticated\");\n    } catch {\n      y(null), x(\"unauthenticated\");\n    } finally {\n      A.cleanup();\n    }\n  }, [\n    e,\n    b.autoRefresh,\n    k,\n    E,\n    w,\n    x,\n    y\n  ]);\n  return F(() => {\n    !l.current || !b.syncTabs || l.current.setCallback((A) => {\n      switch (A.type) {\n        case \"login\":\n          y(A.user), x(\"authenticated\");\n          break;\n        case \"logout\":\n          y(null), x(\"unauthenticated\"), d.current?.clear();\n          break;\n        case \"refresh\":\n          P();\n          break;\n        default:\n          console.warn(\"[Cedros Login] Unhandled tab sync event:\", A);\n      }\n    });\n  }, [\n    b.syncTabs,\n    P,\n    x,\n    y\n  ]), F(() => {\n    const A = new AbortController(), C = t ?? 1e4, S = window.setTimeout(() => A.abort(), C);\n    return (async () => {\n      x(\"loading\");\n      try {\n        const I = await fetch(`${e}/user`, {\n          credentials: \"include\",\n          headers: v(),\n          signal: A.signal\n        });\n        if (I.ok) {\n          const N = await I.json();\n          if (gt(N)) {\n            y(N.user), x(\"authenticated\");\n            return;\n          }\n        }\n        if (I.status === 401 && b.autoRefresh) {\n          try {\n            await k();\n          } catch {\n            w();\n            return;\n          }\n          const N = await fetch(`${e}/user`, {\n            credentials: \"include\",\n            headers: v(),\n            signal: A.signal\n          });\n          if (N.ok) {\n            const M = await N.json();\n            if (gt(M)) {\n              y(M.user), x(\"authenticated\");\n              return;\n            }\n          }\n        }\n        y(null), x(\"unauthenticated\");\n      } catch {\n        y(null), x(\"unauthenticated\");\n      }\n    })(), () => {\n      window.clearTimeout(S), A.abort();\n    };\n  }, [\n    e,\n    b.autoRefresh,\n    k,\n    v,\n    w,\n    x,\n    y,\n    t\n  ]), {\n    user: i,\n    authState: s,\n    handleLoginSuccess: L((A, C) => {\n      y(A), x(\"authenticated\"), C && d.current?.setTokens(C), m.current && l.current?.broadcastLogin(A);\n    }, [y, x]),\n    logout: L(async () => {\n      const A = Nt(), C = new AbortController(), S = t ?? 1e4, R = window.setTimeout(() => C.abort(), S);\n      try {\n        await fetch(`${e}/logout`, {\n          method: \"POST\",\n          headers: {\n            ...A ? { \"X-CSRF-Token\": A } : {},\n            ...v() ?? {}\n          },\n          credentials: \"include\",\n          signal: C.signal\n        });\n      } catch {\n      } finally {\n        window.clearTimeout(R), y(null), x(\"unauthenticated\"), d.current?.clear(), l.current?.broadcastLogout(), u.current?.onLogout?.();\n      }\n    }, [\n      e,\n      v,\n      y,\n      x,\n      t\n    ]),\n    refreshUser: P,\n    getAccessToken: L(() => d.current?.getAccessToken() ?? null, [])\n  };\n}\nvar c5 = h((() => {\n  K(), $_(), G_(), Fs(), a5();\n}));\nfunction l5(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 u5({ config: e, user: r, accessToken: o, timeoutMs: t = 5e3, fetchImpl: i = fetch, logger: n = 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 ?? Lv;\n  if (!l5(s))\n    return n.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 i(s, {\n      method: \"POST\",\n      credentials: \"include\",\n      headers: {\n        \"Content-Type\": \"application/json\",\n        Authorization: `Bearer ${o}`,\n        \"x-cedros-org-id\": e.orgId\n      },\n      body: JSON.stringify({ eventId: a }),\n      signal: d.signal\n    });\n    if (u.status === 428)\n      return n.debug(\"cedros-login: CRM identify endpoint not configured (428); skipping further attempts\"), { kind: \"precondition-failed\" };\n    if (!u.ok)\n      return n.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    } : (n.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 n.warn(\"cedros-login: CRM identify request errored\", u), {\n      kind: \"failed\",\n      error: u\n    };\n  } finally {\n    clearTimeout(l);\n  }\n}\nvar Lv, m5 = h((() => {\n  Lv = \"/site/crm/identify-login\";\n}));\nfunction Nv({ config: e, children: r }) {\n  const [o, t] = T(null), [i, n] = T(!1), s = z(e.callbacks);\n  s.current = e.callbacks;\n  const a = z({\n    onLoginSuccess: (xe, Xe) => {\n      Bw(xe, Xe), s.current?.onLoginSuccess?.(xe, Xe);\n    },\n    onLoginError: (...xe) => s.current?.onLoginError?.(...xe),\n    onLogout: () => s.current?.onLogout?.(),\n    onSessionExpired: () => s.current?.onSessionExpired?.()\n  }), d = z(null);\n  F(() => {\n    if (typeof window > \"u\") return;\n    const xe = new URLSearchParams(window.location.search), Xe = xe.get(\"ref\") || xe.get(\"referral\");\n    Xe && (d.current = Xe);\n  }, []);\n  const l = e.features === void 0 || e.features === \"auto\", u = e.features === \"auto\", { features: m, googleClientId: g, appleClientId: p, socialButtonOrder: f, signupAccessCodeRequired: y, signupAvailability: x, isLoading: b } = F_(e.serverUrl, l, e.requestTimeout), k = l ? void 0 : e.features, v = V(() => vv({\n    config: k,\n    env: e.featureFlagEnv,\n    base: l ? m ?? void 0 : void 0\n  }), [\n    e.featureFlagEnv,\n    k,\n    l,\n    m\n  ]), w = V(() => ({\n    ...e,\n    callbacks: a.current,\n    features: v,\n    googleClientId: l ? e.googleClientId ?? g : e.googleClientId,\n    appleClientId: l ? e.appleClientId ?? p : e.appleClientId,\n    signupAccessCodeRequired: l ? e.signupAccessCodeRequired ?? y : e.signupAccessCodeRequired,\n    signupAvailability: l ? e.signupAvailability ?? x : e.signupAvailability\n  }), [\n    e,\n    l,\n    v,\n    g,\n    p,\n    y,\n    x\n  ]), E = V(() => JSON.stringify(w.themeOverrides ?? null), [w.themeOverrides]), P = V(() => JSON.stringify(w.session ?? null), [w.session]), A = V(() => JSON.stringify(w.features ?? null), [w.features]), C = V(() => JSON.stringify(w.socialButtonOrder ?? null), [w.socialButtonOrder]), S = V(() => JSON.stringify(w.forms ?? null), [w.forms]), R = V(() => JSON.stringify(w.translations ?? null), [w.translations]), I = V(() => w, [\n    w.serverUrl,\n    w.googleClientId,\n    w.appleClientId,\n    w.requestTimeout,\n    w.retryAttempts,\n    w.signupAccessCodeRequired,\n    w.signupAvailability,\n    C,\n    w.locale,\n    w.theme,\n    E,\n    P,\n    A,\n    S,\n    R\n  ]), N = I.unstyled ?? !1, M = B_({\n    theme: N ? void 0 : I.theme,\n    themeOverrides: N ? void 0 : I.themeOverrides,\n    applyThemeToDocument: I.applyThemeToDocument\n  }), { user: D, authState: B, handleLoginSuccess: G, logout: W, refreshUser: H, getAccessToken: ee } = d5({\n    serverUrl: I.serverUrl,\n    session: I.session,\n    callbacks: a.current,\n    requestTimeoutMs: I.requestTimeout\n  }), Z = L(async () => {\n    t(null), await W();\n  }, [W]), Ee = L((...xe) => {\n    t(null), G(...xe);\n  }, [G]), ue = z(null), de = z(!1);\n  F(() => {\n    if (B !== \"authenticated\" || !D || ue.current === D.id || de.current) return;\n    const xe = I.crmIdentify;\n    if (!xe?.enabled) return;\n    const Xe = ee();\n    Xe && (ue.current = D.id, u5({\n      config: xe,\n      user: D,\n      accessToken: Xe\n    }).then((ho) => {\n      ho.kind === \"precondition-failed\" && (de.current = !0);\n    }));\n  }, [\n    B,\n    D,\n    I.crmIdentify,\n    ee\n  ]);\n  const Y = L(() => n(!0), []), ve = L(() => n(!1), []), ae = I.features, be = L((xe) => N_(xe, { flags: ae }), [ae]), Se = V(() => ({\n    config: I,\n    featureFlags: ae,\n    isFeatureEnabled: be,\n    user: D,\n    authState: B,\n    logout: Z,\n    refreshUser: H,\n    socialButtonOrder: I.socialButtonOrder ?? (l ? f : void 0),\n    _internal: {\n      handleLoginSuccess: Ee,\n      getAccessToken: ee,\n      getReferralCode: () => d.current\n    }\n  }), [\n    I,\n    ae,\n    be,\n    D,\n    B,\n    Z,\n    H,\n    l,\n    f,\n    Ee,\n    ee\n  ]), me = V(() => ({\n    error: o,\n    isModalOpen: i,\n    openModal: Y,\n    closeModal: ve\n  }), [\n    o,\n    i,\n    Y,\n    ve\n  ]);\n  return u && b ? null : /* @__PURE__ */ c(Fy, {\n    locale: I.locale,\n    translations: I.translations,\n    children: /* @__PURE__ */ c(jo.Provider, {\n      value: Se,\n      children: /* @__PURE__ */ c(mi.Provider, {\n        value: me,\n        children: /* @__PURE__ */ c(\"div\", {\n          className: [\"cedros-login-theme\", M.className].filter(Boolean).join(\" \"),\n          style: M.style,\n          children: /* @__PURE__ */ c(A_, { children: r })\n        })\n      })\n    })\n  });\n}\nvar Iv = h((() => {\n  K(), bu(), R_(), wv(), V_(), j_(), c5(), m5(), pi(), J();\n}));\nfunction g5(e, r, o) {\n  const t = ql(r?.postLogin?.redirectUrl);\n  if (t) return t;\n  const i = rn(o);\n  if (i) return i;\n  for (const n of Dv) {\n    const s = ql(e[n]);\n    if (s) return s;\n  }\n  return Mv;\n}\nfunction h5(e, r, o) {\n  o.assign(g5(e, r, o.href));\n}\nfunction ql(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 Mv, Dv, p5 = h((() => {\n  on(), Mv = \"/profile\", Dv = [\n    \"redirectUrl\",\n    \"successHref\",\n    \"continueHref\"\n  ];\n}));\nfunction zv() {\n  const { config: e } = fe(), { t: r, message: o } = dr(), [t, i] = T(!1), [n, s] = T(!1), [a, d] = T(null), l = V(() => new ce({\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 } = Qi({\n    maxAttempts: 3,\n    windowMs: 3e5,\n    rateLimitMessage: (g) => o(r.errors.rateLimitedWithSeconds, { seconds: g })\n  });\n  return {\n    forgotPassword: L(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      i(!0), d(null), s(!1);\n      try {\n        await l.post(\"/forgot-password\", { email: g }), s(!0);\n      } catch (p) {\n        const f = O(p, r.errors.signInFallback, { networkMessage: r.errors.unableToReachServer });\n        throw d(f), f;\n      } finally {\n        i(!1);\n      }\n    }, [\n      l,\n      u,\n      r.errors\n    ]),\n    resetPassword: L(async (g, p) => {\n      i(!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 y = O(f, r.errors.signInFallback, { networkMessage: r.errors.unableToReachServer });\n        throw d(y), y;\n      } finally {\n        i(!1);\n      }\n    }, [l, r.errors]),\n    isLoading: t,\n    isSuccess: n,\n    error: a,\n    clearError: L(() => d(null), []),\n    reset: L(() => {\n      d(null), s(!1), i(!1);\n    }, []),\n    remainingAttempts: m()\n  };\n}\nvar Jd = h((() => {\n  ne(), xr(), en(), le(), J();\n}));\nfunction f5(e) {\n  return typeof e == \"object\" && e !== null && \"mfaRequired\" in e && e.mfaRequired === !0;\n}\nfunction Ov() {\n  const { config: e, _internal: r } = fe(), o = Ur(), { t, message: i } = dr(), [n, s] = T(!1), [a, d] = T(!1), [l, u] = T(null), m = V(() => new ce({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    retryAttempts: e.retryAttempts\n  }), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts\n  ]), g = V(() => new Wo(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 } = Qi({\n    maxAttempts: 3,\n    windowMs: 3e5,\n    rateLimitMessage: (y) => i(t.errors.rateLimitedWithSeconds, { seconds: y })\n  });\n  return {\n    sendInstantLink: L(async (y) => {\n      if (!It(y)) {\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 b = {\n          code: \"RATE_LIMITED\",\n          message: x instanceof Error ? x.message : t.errors.tooManyRequests\n        };\n        throw u(b), b;\n      }\n      s(!0), u(null), d(!1);\n      try {\n        if ((await o.requestDeviceAccountLink({\n          identifier: y,\n          method: \"instantLink\",\n          linkExisting: async (x, b) => (await g.addEmail(y), b)\n        })).action === \"linked\") {\n          d(!0);\n          return;\n        }\n        await m.post(\"/instant-link\", {\n          email: y,\n          referral: r?.getReferralCode?.() ?? void 0\n        }), d(!0);\n      } catch (x) {\n        const b = O(x, t.errors.signInFallback, { networkMessage: t.errors.unableToReachServer });\n        throw u(b), b;\n      } finally {\n        s(!1);\n      }\n    }, [\n      g,\n      m,\n      p,\n      o,\n      r,\n      t.errors\n    ]),\n    verifyInstantLink: L(async (y) => {\n      if (!y || y.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: y });\n        return f5(x) || (e.callbacks?.onLoginSuccess?.(x.user, \"email\"), r?.handleLoginSuccess(x.user, x.tokens)), x;\n      } catch (x) {\n        const b = O(x, t.errors.signInFallback, { networkMessage: t.errors.unableToReachServer });\n        throw u(b), b;\n      } finally {\n        s(!1);\n      }\n    }, [\n      m,\n      e.callbacks,\n      r,\n      t.errors\n    ]),\n    isLoading: n,\n    isSuccess: a,\n    error: l,\n    clearError: L(() => u(null), []),\n    reset: L(() => {\n      u(null), d(!1), s(!1);\n    }, []),\n    remainingAttempts: f()\n  };\n}\nvar Uv = h((() => {\n  ne(), Br(), xr(), en(), le(), fi(), J();\n}));\nfunction Bv({ mode: e = \"reset\", onSuccess: r, onCancel: o, className: t = \"\" }) {\n  const { t: i, message: n } = dr(), [s, a] = T(\"\"), d = zv(), l = Ov(), u = Ke(), 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(qe, {\n    stateKey: \"success\",\n    order: _s,\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: i.auth.checkYourEmail\n        }),\n        /* @__PURE__ */ c(\"p\", {\n          className: \"cedros-success-message\",\n          children: n(g ? i.auth.instantLinkSent : i.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: i.auth.backToLogin\n        })\n      ]\n    })\n  }) : /* @__PURE__ */ c(qe, {\n    stateKey: \"request\",\n    order: _s,\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: i.auth.forgotPasswordTitle\n          }), /* @__PURE__ */ c(\"p\", {\n            className: \"cedros-form-subtitle\",\n            children: g ? i.auth.instantLinkSubtitle : i.auth.forgotPasswordResetSubtitle\n          })]\n        }),\n        /* @__PURE__ */ c(pe, {\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: i.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: i.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__ */ _(he, { children: [/* @__PURE__ */ c(q, { size: \"sm\" }), i.auth.sending] }) : g ? i.buttons.sendSignInLink : i.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: i.auth.backToLogin\n          })]\n        })\n      ]\n    })\n  });\n}\nvar _s, Vv = h((() => {\n  Jd(), Uv(), ke(), Q(), J(), mo(), _s = [\"request\", \"success\"];\n}));\nfunction v5({ token: e, onSuccess: r, onLoginClick: o, className: t = \"\" }) {\n  const i = ie(), [n, s] = T(\"\"), [a, d] = T(\"\"), [l, u] = T(null), { resetPassword: m, isLoading: g, isSuccess: p, error: f, clearError: y } = zv(), x = n === a, b = l?.isValid && x && n.length > 0, k = async (v) => {\n    if (v.preventDefault(), !!b)\n      try {\n        await m(e, n), r?.();\n      } catch {\n      }\n  };\n  return p ? /* @__PURE__ */ c(qe, {\n    stateKey: \"success\",\n    order: As,\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: i.auth.passwordResetSuccessful\n        }),\n        /* @__PURE__ */ c(\"p\", {\n          className: \"cedros-success-message\",\n          children: i.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: i.auth.goToLogin\n        })\n      ]\n    })\n  }) : /* @__PURE__ */ c(qe, {\n    stateKey: \"reset\",\n    order: As,\n    children: /* @__PURE__ */ _(\"form\", {\n      className: `cedros-reset-password-form ${t}`,\n      onSubmit: k,\n      children: [\n        /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-form-header\",\n          children: [/* @__PURE__ */ c(\"h3\", {\n            className: \"cedros-form-title\",\n            children: i.auth.resetYourPassword\n          }), /* @__PURE__ */ c(\"p\", {\n            className: \"cedros-form-subtitle\",\n            children: i.auth.resetPasswordSubtitle\n          })]\n        }),\n        /* @__PURE__ */ c(pe, {\n          error: f,\n          onDismiss: y\n        }),\n        /* @__PURE__ */ c(\"div\", {\n          className: \"cedros-form-field\",\n          children: /* @__PURE__ */ c(Ve, {\n            label: i.auth.newPassword,\n            value: n,\n            onChange: (v) => {\n              s(v.target.value), u(Io(v.target.value, i.passwordValidation));\n            },\n            showStrengthMeter: !0,\n            onValidationChange: u,\n            disabled: g,\n            autoComplete: \"new-password\"\n          })\n        }),\n        /* @__PURE__ */ c(\"div\", {\n          className: \"cedros-form-field\",\n          children: /* @__PURE__ */ c(Ve, {\n            label: i.auth.confirmPassword,\n            value: a,\n            onChange: (v) => d(v.target.value),\n            disabled: g,\n            autoComplete: \"new-password\",\n            error: a && !x ? i.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: g || !b,\n            children: g ? /* @__PURE__ */ _(he, { children: [/* @__PURE__ */ c(q, { size: \"sm\" }), i.auth.resetting] }) : i.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: g,\n            children: i.auth.backToLogin\n          })]\n        })\n      ]\n    })\n  });\n}\nvar As, b5 = h((() => {\n  Jd(), Fr(), ke(), Q(), xr(), J(), mo(), As = [\"reset\", \"success\"];\n}));\nfunction Fv(e) {\n  const [, r] = T(0), o = gi(e), t = o?.resetsAt;\n  return F(() => {\n    if (!t) return;\n    let i;\n    const n = () => {\n      const s = Date.parse(t) - Date.now();\n      if (s <= 0) {\n        r((a) => a + 1);\n        return;\n      }\n      i = window.setTimeout(n, Math.min(jv, s + 250));\n    };\n    return n(), () => {\n      i !== void 0 && window.clearTimeout(i);\n    };\n  }, [t]), o;\n}\nvar jv, $v = h((() => {\n  hi(), K(), jv = 2147483647;\n}));\nfunction y5({ discount: e, className: r = \"\" }) {\n  const { t: o, message: t } = dr(), i = z(null);\n  F(() => {\n    i.current?.focus({ preventScroll: !0 });\n  }, []);\n  const n = 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          qv.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: i,\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      n && /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-invite-unlock__reward\",\n        children: [/* @__PURE__ */ _(\"span\", {\n          className: \"cedros-invite-unlock__reward-badge\",\n          children: [/* @__PURE__ */ c(w5, {}), n]\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 w5() {\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 On, qv, k5 = h((() => {\n  K(), J(), On = [\n    \"#fbbf24\",\n    \"#f472b6\",\n    \"#38bdf8\",\n    \"#34d399\",\n    \"#a78bfa\"\n  ], qv = Array.from({ length: 14 }, (e, r) => {\n    const o = r / 14 * Math.PI * 2, t = 84 + r % 3 * 24, i = 140 + r % 5 * 70;\n    return {\n      x: Math.round(Math.cos(o) * t),\n      y: Math.round(Math.sin(o) * t * 0.85) - 20,\n      midX: Math.round(Math.cos(o) * t * 0.62),\n      midY: Math.round((Math.sin(o) * t * 0.85 - 20) * 0.62),\n      rotation: i,\n      midRotation: Math.round(i * 0.58),\n      stretch: Number((1.12 + t / 500).toFixed(2)),\n      blur: Number((0.55 + t / 180).toFixed(2)),\n      delay: 140 + r % 4 * 90,\n      color: On[r % On.length],\n      round: r % 3 === 0\n    };\n  });\n}));\nfunction x5() {\n  const { config: e } = fe(), r = ie(), [o, t] = T(!1), [i, n] = T(!1), [s, a] = T(null), d = V(() => new ce({\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: L(async (l) => {\n      t(!0), n(!1), a(null);\n      try {\n        const u = rn(typeof window > \"u\" ? void 0 : window.location.href);\n        await d.post(\"/send-verification\", {\n          email: l,\n          ...u ? { returnTo: u } : {}\n        }), n(!0);\n      } catch (u) {\n        const m = O(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: i,\n    error: s,\n    clearError: () => a(null)\n  };\n}\nvar _5 = h((() => {\n  ne(), J(), le(), on();\n}));\nfunction Zd({ email: e, onBackToLogin: r, className: o = \"\" }) {\n  const { t, message: i } = dr(), { resend: n, isLoading: s, error: a, clearError: d } = x5();\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: i(t.auth.verificationRequiredBody, { email: e })\n        })]\n      }),\n      /* @__PURE__ */ c(pe, {\n        error: a,\n        onDismiss: d\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          n(e).catch(() => {\n          });\n        },\n        children: s ? /* @__PURE__ */ _(he, { children: [/* @__PURE__ */ c(q, {\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 Qd = h((() => {\n  J(), _5(), ke(), Q();\n}));\nfunction Wv({ pendingInviteToken: e, waitlistEnrollmentAccepted: r = !1, onSuccess: o, className: t = \"\" }) {\n  const { redeemInviteCode: i, completeInviteRedemption: n, isLoading: s, error: a, clearError: d } = tn(), l = ie(), [u, m] = T(\"\"), [g, p] = T(null), [f, y] = T(null), x = z(o);\n  F(() => {\n    x.current = o;\n  }, [o]), F(() => {\n    if (!g) return;\n    const v = typeof window.matchMedia == \"function\" && window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches ? Gv : g.inviteDiscount ? Kv : Hv, w = window.setTimeout(() => {\n      if (ti(g)) {\n        y(g.user.email ?? \"\"), p(null);\n        return;\n      }\n      n(g), x.current?.(g);\n    }, v);\n    return () => window.clearTimeout(w);\n  }, [g, n]);\n  const b = u.trim().length > 0 && !s, k = async (v) => {\n    if (v.preventDefault(), !!b)\n      try {\n        p(await i(e, u.trim(), { deferLoginSuccess: !0 }));\n      } catch {\n      }\n  };\n  return g ? /* @__PURE__ */ c(y5, {\n    discount: g.inviteDiscount,\n    className: t\n  }) : f ? /* @__PURE__ */ c(Zd, {\n    email: f,\n    className: t\n  }) : /* @__PURE__ */ _(\"form\", {\n    onSubmit: k,\n    className: `cedros-form ${t}`,\n    children: [\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-form-header\",\n        children: [/* @__PURE__ */ c(\"h2\", {\n          className: \"cedros-form-title\",\n          children: l.auth.inviteCodeRequiredTitle\n        }), /* @__PURE__ */ c(\"p\", {\n          className: \"cedros-form-subtitle\",\n          children: l.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: l.auth.inviteCode\n        }), /* @__PURE__ */ c(\"input\", {\n          id: \"invite-code-redeem\",\n          type: \"text\",\n          className: \"cedros-input\",\n          value: u,\n          onChange: (v) => m(v.target.value),\n          placeholder: l.auth.enterInviteCode,\n          autoComplete: \"one-time-code\",\n          disabled: s\n        })]\n      }),\n      /* @__PURE__ */ c(pe, {\n        error: a,\n        onDismiss: d\n      }),\n      /* @__PURE__ */ c(\"button\", {\n        type: \"submit\",\n        className: \"cedros-button cedros-button-primary cedros-button-md cedros-button-full\",\n        disabled: !b,\n        \"aria-busy\": s,\n        children: s ? /* @__PURE__ */ _(he, { children: [/* @__PURE__ */ c(q, {\n          size: \"sm\",\n          announce: !0,\n          label: l.common.continue\n        }), /* @__PURE__ */ c(\"span\", { children: l.messages.verifyingSignature })] }) : l.common.continue\n      }),\n      /* @__PURE__ */ c(\"p\", {\n        className: \"cedros-form-footer\",\n        children: r ? l.auth.inviteCodeWaitlistBody : l.auth.inviteCodeWaitlistFallbackBody\n      })\n    ]\n  });\n}\nvar Hv, Kv, Gv, Yv = h((() => {\n  K(), nn(), Q(), ke(), k5(), Qd(), J(), Hv = 2800, Kv = 3600, Gv = 2e3;\n}));\nfunction A5() {\n  const { config: e, _internal: r } = fe(), { t: o, message: t } = dr(), [i, n] = T(\"idle\"), [s, a] = T(!1), [d, l] = T(null), { checkLimit: u, getRemainingAttempts: m, getTimeUntilReset: g, reset: p } = Qi({\n    maxAttempts: 5,\n    windowMs: 12e4,\n    rateLimitMessage: (y) => t(o.errors.rateLimitedWithSeconds, { seconds: y })\n  }), f = V(() => new ce({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    retryAttempts: e.retryAttempts\n  }), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts\n  ]);\n  return {\n    state: i,\n    isLoading: s,\n    error: d,\n    verifyTotp: L(async (y, x) => {\n      const b = /^[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) || b)) {\n        const k = {\n          code: \"VALIDATION_ERROR\",\n          message: o.auth.invalidTotpCode\n        };\n        throw l(k), k;\n      }\n      try {\n        u();\n      } catch (k) {\n        const v = {\n          code: \"RATE_LIMITED\",\n          message: k instanceof Error ? k.message : o.errors.tooManyRequests\n        };\n        throw l(v), v;\n      }\n      a(!0), l(null), n(\"verifying\");\n      try {\n        const k = await f.post(\"/login/mfa\", {\n          mfaToken: y,\n          code: x\n        });\n        return n(\"success\"), p(), e.callbacks?.onLoginSuccess?.(k.user, k.method ?? \"email\"), r && k.user && k.tokens && r.handleLoginSuccess(k.user, k.tokens), k;\n      } catch (k) {\n        const v = O(k, o.auth.incorrectVerificationCode, { networkMessage: o.errors.unableToReachServer });\n        throw l(v), n(\"error\"), v;\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: L(() => l(null), []),\n    reset: L(() => {\n      l(null), n(\"idle\"), a(!1);\n    }, []),\n    remainingAttempts: m(),\n    timeUntilReset: g()\n  };\n}\nvar E5 = h((() => {\n  ne(), le(), en(), J();\n}));\nfunction ii({ value: e = \"\", onChange: r, onComplete: o, disabled: t = !1, error: i, autoFocus: n = !1, className: s = \"\" }) {\n  const { t: a, message: d } = dr(), l = z([]), [u, m] = T(e.padEnd(Oe, \"\")), g = Ke();\n  F(() => {\n    m(e.padEnd(Oe, \"\"));\n  }, [e]);\n  const p = L((v) => {\n    v >= 0 && v < Oe && l.current[v]?.focus();\n  }, []), f = L((v) => {\n    const w = v.replace(/\\D/g, \"\").slice(0, Oe);\n    m(w.padEnd(Oe, \"\")), r?.(w), w.length === Oe && o?.(w);\n  }, [r, o]), y = L((v, w) => {\n    if (!/^\\d?$/.test(w)) return;\n    const E = u.split(\"\");\n    E[v] = w, f(E.join(\"\").replace(/ /g, \"\")), w && v < Oe - 1 && p(v + 1);\n  }, [\n    u,\n    f,\n    p\n  ]), x = L((v, w) => {\n    if (w.key === \"Backspace\") {\n      w.preventDefault();\n      const E = u.split(\"\");\n      E[v] && E[v] !== \" \" ? (E[v] = \" \", f(E.join(\"\").replace(/ /g, \"\"))) : v > 0 && (E[v - 1] = \" \", f(E.join(\"\").replace(/ /g, \"\")), p(v - 1));\n    } else w.key === \"ArrowLeft\" && v > 0 ? (w.preventDefault(), p(v - 1)) : w.key === \"ArrowRight\" && v < Oe - 1 && (w.preventDefault(), p(v + 1));\n  }, [\n    u,\n    f,\n    p\n  ]), b = L((v) => {\n    v.preventDefault();\n    const w = v.clipboardData.getData(\"text\").replace(/\\D/g, \"\").slice(0, Oe);\n    w && (f(w), p(Math.min(w.length, Oe - 1)));\n  }, [f, p]), k = L((v) => {\n    v.target.select();\n  }, []);\n  return F(() => {\n    n && !t && l.current[0]?.focus();\n  }, [n, 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: Oe }).map((v, w) => /* @__PURE__ */ c(\"input\", {\n        ref: (E) => {\n          l.current[w] = E;\n        },\n        id: `${g}-${w}`,\n        type: \"text\",\n        inputMode: \"numeric\",\n        pattern: \"[0-9]*\",\n        maxLength: 1,\n        className: `cedros-otp-slot ${i ? \"cedros-otp-slot-error\" : \"\"}`,\n        value: u[w] === \" \" ? \"\" : u[w] || \"\",\n        onChange: (E) => y(w, E.target.value),\n        onKeyDown: (E) => x(w, E),\n        onPaste: b,\n        onFocus: k,\n        disabled: t,\n        autoComplete: \"one-time-code\",\n        \"aria-label\": d(a.auth.otpDigit, { index: w + 1 }),\n        \"aria-invalid\": i ? \"true\" : void 0\n      }, w))\n    }), i && /* @__PURE__ */ c(\"p\", {\n      className: \"cedros-otp-error\",\n      role: \"alert\",\n      children: i\n    })]\n  });\n}\nvar Oe, sn = h((() => {\n  K(), J(), Oe = 6;\n}));\nfunction Xv({ mfaToken: e, email: r, onSuccess: o, onBack: t, className: i = \"\" }) {\n  const n = ie(), { verifyTotp: s, isLoading: a, error: d, clearError: l } = A5(), [u, m] = T(\"\"), [g, p] = T(!1), [f, y] = T(\"\"), x = async (v) => {\n    const w = v || (g ? f : u);\n    if (w)\n      try {\n        await s(e, w), o?.();\n      } catch {\n        g ? y(\"\") : m(\"\");\n      }\n  }, b = (v) => {\n    x(v);\n  }, k = () => {\n    p(!g), l(), m(\"\"), y(\"\");\n  };\n  return /* @__PURE__ */ _(\"div\", {\n    className: `cedros-totp-verify ${i}`,\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: n.auth.twoFactorTitle\n          }),\n          /* @__PURE__ */ c(\"p\", {\n            className: \"cedros-totp-description\",\n            children: g ? n.auth.recoveryCodeDescription : n.auth.authenticatorCodeDescription\n          }),\n          r && /* @__PURE__ */ c(\"p\", {\n            className: \"cedros-totp-email\",\n            children: r\n          })\n        ]\n      }),\n      g ? /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-totp-backup-input\",\n        children: [/* @__PURE__ */ c(\"input\", {\n          type: \"text\",\n          className: `cedros-input ${d ? \"cedros-input-error\" : \"\"}`,\n          placeholder: n.auth.enterRecoveryCode,\n          value: f,\n          onChange: (v) => {\n            y(v.target.value), l();\n          },\n          onKeyDown: (v) => {\n            v.key === \"Enter\" && f && x();\n          },\n          disabled: a,\n          autoFocus: !0,\n          autoComplete: \"one-time-code\"\n        }), d && /* @__PURE__ */ c(\"p\", {\n          className: \"cedros-input-error\",\n          role: \"alert\",\n          children: d.message\n        })]\n      }) : /* @__PURE__ */ c(ii, {\n        value: u,\n        onChange: (v) => {\n          m(v), l();\n        },\n        onComplete: b,\n        disabled: a,\n        error: d?.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: () => x(),\n        disabled: a || (g ? !f : u.length !== 6),\n        children: a ? /* @__PURE__ */ _(he, { children: [/* @__PURE__ */ c(q, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", { children: n.auth.verifying })] }) : n.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: k,\n          disabled: a,\n          children: g ? n.auth.useAuthenticatorApp : n.auth.useRecoveryCode\n        }), t && /* @__PURE__ */ _(he, { 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: a,\n          children: n.auth.backToLogin\n        })] })]\n      })\n    ]\n  });\n}\nvar ec = h((() => {\n  E5(), sn(), Q(), J();\n}));\nfunction S5({ onSuccess: e, onSwitchToRegister: r, onForgotPassword: o, className: t = \"\" }) {\n  const i = ie(), { login: n, isLoading: s, error: a, clearError: d } = tn(), [l, u] = T(\"\"), [m, g] = T(\"\"), [p, f] = T(null), [y, x] = T(\"\"), [b, k] = T(null), [v, w] = T(!1), E = async (C) => {\n    C.preventDefault();\n    try {\n      const S = await n(l, m);\n      S.mfaRequired ? (f(S.mfaToken), x(S.email)) : \"inviteCodeRequired\" in S ? (k(S.pendingInviteToken), w(S.waitlistEnrollmentAccepted)) : (u(\"\"), g(\"\"), e?.(S.response));\n    } catch {\n    }\n  }, P = () => {\n    f(null), x(\"\"), e?.();\n  }, A = () => {\n    f(null), x(\"\"), g(\"\");\n  };\n  return p ? /* @__PURE__ */ c(qe, {\n    stateKey: \"mfa\",\n    order: ko,\n    focusOnChange: !0,\n    children: /* @__PURE__ */ c(Xv, {\n      mfaToken: p,\n      email: y,\n      onSuccess: P,\n      onBack: A,\n      className: t\n    })\n  }) : b ? /* @__PURE__ */ c(qe, {\n    stateKey: \"invite\",\n    order: ko,\n    focusOnChange: !0,\n    children: /* @__PURE__ */ c(Wv, {\n      pendingInviteToken: b,\n      waitlistEnrollmentAccepted: v,\n      onSuccess: e,\n      className: t\n    })\n  }) : a?.code === \"EMAIL_NOT_VERIFIED\" ? /* @__PURE__ */ c(qe, {\n    stateKey: \"credentials\",\n    order: ko,\n    focusOnChange: !0,\n    children: /* @__PURE__ */ c(Zd, {\n      email: l,\n      onBackToLogin: () => {\n        d(), g(\"\");\n      },\n      className: t\n    })\n  }) : /* @__PURE__ */ c(qe, {\n    stateKey: \"credentials\",\n    order: ko,\n    children: /* @__PURE__ */ _(\"form\", {\n      onSubmit: E,\n      className: `cedros-form ${t}`,\n      children: [\n        /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-form-field\",\n          children: [/* @__PURE__ */ c(\"label\", {\n            htmlFor: \"email\",\n            className: \"cedros-label\",\n            children: i.auth.email\n          }), /* @__PURE__ */ c(\"input\", {\n            id: \"email\",\n            type: \"email\",\n            className: \"cedros-input\",\n            value: l,\n            onChange: (C) => u(C.target.value),\n            placeholder: i.auth.emailPlaceholder,\n            required: !0,\n            \"aria-required\": \"true\",\n            autoComplete: \"email\",\n            disabled: s\n          })]\n        }),\n        /* @__PURE__ */ c(\"div\", {\n          className: \"cedros-form-field\",\n          children: /* @__PURE__ */ c(Ve, {\n            value: m,\n            onChange: (C) => g(C.target.value),\n            placeholder: i.auth.enterPassword,\n            required: !0,\n            autoComplete: \"current-password\",\n            disabled: s,\n            labelAction: o ? /* @__PURE__ */ c(\"button\", {\n              type: \"button\",\n              className: \"cedros-link cedros-link-muted cedros-link-sm\",\n              onClick: o,\n              children: i.auth.forgotYourPassword\n            }) : void 0\n          })\n        }),\n        /* @__PURE__ */ c(pe, {\n          error: a,\n          onDismiss: d\n        }),\n        /* @__PURE__ */ c(\"button\", {\n          type: \"submit\",\n          className: \"cedros-button cedros-button-primary cedros-button-md cedros-button-full\",\n          disabled: s || !l || !m,\n          \"aria-busy\": s,\n          children: s ? /* @__PURE__ */ _(he, { children: [/* @__PURE__ */ c(q, {\n            size: \"sm\",\n            announce: !0,\n            label: i.buttons.signIn\n          }), /* @__PURE__ */ c(\"span\", { children: i.messages.signingIn })] }) : i.buttons.signIn\n        }),\n        r && /* @__PURE__ */ _(\"p\", {\n          className: \"cedros-form-footer\",\n          children: [\n            i.auth.dontHaveAccount,\n            \" \",\n            /* @__PURE__ */ c(\"button\", {\n              type: \"button\",\n              className: \"cedros-link cedros-link-muted\",\n              onClick: r,\n              children: i.buttons.signUp\n            })\n          ]\n        })\n      ]\n    })\n  });\n}\nvar ko, C5 = h((() => {\n  nn(), Fr(), Yv(), Qd(), Q(), ke(), ec(), J(), mo(), ko = [\n    \"credentials\",\n    \"mfa\",\n    \"invite\"\n  ];\n}));\nfunction T5(e) {\n  const r = Es(e, \"response\"), o = Es(r.settings, \"settings\"), t = Object.entries(o), i = t.every(([, d]) => Array.isArray(d)), n = t.every(([, d]) => L5(d));\n  if (!i && !n) throw new Error(\"settings must contain grouped setting arrays or legacy scalar values\");\n  const s = i ? Object.fromEntries(t.map(([d, l]) => [d, l.map((u) => R5(u))])) : P5(t), a = N5(r.revision);\n  return {\n    settings: s,\n    ...a !== void 0 ? { revision: a } : {},\n    ...typeof r.etag == \"string\" ? { etag: r.etag } : {}\n  };\n}\nfunction R5(e) {\n  const r = Es(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 = I5(r.hasValue, \"hasValue\", r.key), t = M5(r.applicationMode, r.key);\n  return {\n    key: r.key,\n    value: r.value,\n    description: Un(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: Un(r.validationError, \"validationError\", r.key) } : {},\n    updatedAt: r.updatedAt,\n    updatedBy: Un(r.updatedBy, \"updatedBy\", r.key)\n  };\n}\nfunction P5(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 Es(e, r) {\n  if (!e || typeof e != \"object\" || Array.isArray(e)) throw new Error(`${r} must be an object`);\n  return e;\n}\nfunction L5(e) {\n  return e === null || typeof e == \"string\" || typeof e == \"number\" || typeof e == \"boolean\";\n}\nfunction N5(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 Un(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 I5(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 M5(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 Wl(e) {\n  const r = {};\n  for (const o of e) r[o.key] = o.value;\n  return r;\n}\nvar Jv, Zv, D5 = h((() => {\n  le(), 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 ce({\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: T5\n        });\n      } catch (e) {\n        throw O(e, \"Failed to fetch system settings\");\n      }\n    }\n    async updateSettings(e) {\n      try {\n        return await this.client.patch(\"/admin/settings\", { settings: e });\n      } catch (r) {\n        throw O(r, \"Failed to update system settings\");\n      }\n    }\n    async autosaveSettings(e, r) {\n      if (!r.etag) return this.autosaveViaSettingsPatch(e);\n      try {\n        const o = await this.client.patch(\"/admin/settings/autosave\", {\n          autosave: !0,\n          clientMutationId: r.clientMutationId,\n          editingSessionId: r.editingSessionId,\n          clientSeq: r.clientSeq,\n          updateMask: r.updateMask ?? e.map((t) => t.key),\n          patch: e,\n          schemaVersion: \"v1\"\n        }, {\n          skipRetry: !0,\n          headers: {\n            \"If-Match\": r.etag,\n            \"Idempotency-Key\": r.idempotencyKey\n          }\n        });\n        return {\n          resourceId: \"global\",\n          revision: o.revision,\n          etag: o.etag,\n          canonicalPatchOrResource: Wl(o.updated)\n        };\n      } catch (o) {\n        throw O(o, \"Failed to autosave system settings\");\n      }\n    }\n    async autosaveViaSettingsPatch(e) {\n      try {\n        const r = e.length > 1 ? e.map((n) => [n]) : [e], o = [];\n        let t, i;\n        for (const n of r) {\n          const s = await this.client.patch(\"/admin/settings\", { settings: n }, { skipRetry: !0 });\n          o.push(...s.updated), t = s.revision ?? t, i = s.etag ?? i;\n        }\n        return {\n          resourceId: \"global\",\n          revision: t,\n          etag: i,\n          canonicalPatchOrResource: Wl(o)\n        };\n      } catch (r) {\n        throw O(r, \"Failed to autosave system settings\");\n      }\n    }\n  };\n}));\nfunction z5() {\n  return se(Qv);\n}\nvar Qv, O5 = h((() => {\n  Qv = We(null);\n}));\nfunction U5(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 B5() {\n  const e = z5();\n  return V(() => U5(e), [e]);\n}\nvar V5 = h((() => {\n  O5();\n}));\nfunction F5(e) {\n  const r = e?.config, o = e?._internal.getAccessToken;\n  return V(() => r ? new Zv(r.serverUrl, r.requestTimeout, r.retryAttempts, o) : null, [r, o]);\n}\nfunction j5() {\n  return $5(B5());\n}\nfunction $5(e) {\n  const [r, o] = T({}), [t, i] = T(!1), [n, s] = T(!1), [a, d] = T(null), [l, u] = T(), [m, g] = T(), p = z(0), f = e?.authState ?? \"unauthenticated\", y = F5(e), x = z(y);\n  x.current = y;\n  const b = L(async () => {\n    const P = ++p.current, A = x.current;\n    if (!A || f !== \"authenticated\") {\n      o({}), u(void 0), g(void 0), i(!1);\n      return;\n    }\n    i(!0), d(null);\n    try {\n      const C = await A.getSettings();\n      if (P !== p.current) return;\n      o(C.settings), Bn(C, u, g);\n    } catch (C) {\n      if (P !== p.current) return;\n      d(C instanceof Error ? C : /* @__PURE__ */ new Error(\"Failed to fetch settings\"));\n    } finally {\n      P === p.current && i(!1);\n    }\n  }, [f]), k = L(async (P) => {\n    const A = x.current;\n    if (!A) 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 C = await A.updateSettings(P);\n      return o((S) => q5(S, C.updated)), Bn(C, u, g), C;\n    } catch (C) {\n      const S = C instanceof Error ? C : /* @__PURE__ */ new Error(\"Failed to update settings\");\n      throw d(S), S;\n    } finally {\n      s(!1);\n    }\n  }, [f]), v = L(async (P, A) => {\n    const C = x.current;\n    if (!C) throw new Error(\"Login admin hooks require CedrosLoginAdminRuntimeProvider\");\n    if (f !== \"authenticated\") throw new Error(\"Not authenticated\");\n    const S = await C.autosaveSettings(P, A);\n    return Bn(S, u, g), S.canonicalPatchOrResource && o((R) => W5(R, S.canonicalPatchOrResource ?? {})), S;\n  }, [f]), w = L((P) => {\n    for (const A of Object.values(r)) {\n      const C = A.find((S) => S.key === P);\n      if (C) return C.value;\n    }\n  }, [r]), E = f === \"authenticated\" && p.current === 0;\n  return {\n    settings: r,\n    isLoading: t || E,\n    isUpdating: n,\n    error: a,\n    revision: l,\n    etag: m,\n    fetchSettings: b,\n    updateSettings: k,\n    autosaveSettings: v,\n    getValue: w\n  };\n}\nfunction Bn(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 q5(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 W5(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 H5 = h((() => {\n  D5(), V5();\n}));\nfunction rb() {\n  const { settings: e, isLoading: r, error: o, fetchSettings: t, getValue: i } = j5();\n  F(() => {\n    t();\n  }, [t]);\n  const n = L((a) => a === void 0 ? !1 : a === \"true\" || a === \"1\", []), s = V(() => Object.keys(e).length === 0 ? ob : {\n    organizations: n(i(\"feature_organizations\")),\n    sso: n(i(\"feature_sso\")),\n    mfa: n(i(\"feature_mfa\")),\n    mfaRequired: n(i(\"security_require_mfa\")),\n    signupAccessCodeRequired: n(i(\"signup_access_code_enabled\"))\n  }, [\n    e,\n    i,\n    n\n  ]);\n  return {\n    features: s,\n    isLoading: r,\n    error: o,\n    refetch: L(async () => {\n      await t();\n    }, [t]),\n    isEnabled: L((a) => s[a], [s])\n  };\n}\nvar ob, tb = h((() => {\n  K(), H5(), ob = {\n    organizations: !1,\n    sso: !1,\n    mfa: !1,\n    mfaRequired: !1,\n    signupAccessCodeRequired: !1\n  };\n}));\nfunction ib({ availability: e }) {\n  const { t: r, message: o, number: t, date: i } = dr(), n = gi(e);\n  if (!n) return null;\n  const s = n.remaining === 0, a = r.auth.signupAvailabilityPeriods[n.period], d = i(n.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(n.remaining),\n    limit: t(n.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 nb = h((() => {\n  J(), hi();\n}));\nfunction K5({ onSuccess: e, onSwitchToLogin: r, className: o = \"\", accessCode: t, showSignupAvailability: i = !0 }) {\n  const n = ie(), { config: s } = fe(), { register: a, isLoading: d, error: l, clearError: u } = tn(), { features: m } = rb(), [g, p] = T(\"\"), [f, y] = T(\"\"), [x, b] = T(\"\"), [k, v] = T(\"\"), [w, E] = T(null), [P, A] = T(null), [C, S] = T(!1), [R, I] = T(\"\"), N = t ?? R, [M, D] = T(null), [B, G] = T(null), W = s.forms?.termsOfService, H = s.forms?.emailOptIn, ee = W?.show ?? !1, Z = W?.required ?? !0, Ee = W?.defaultChecked ?? !1, ue = W?.label ?? `${n.auth.termsAgreementPrefix} {terms}`, de = W?.url, Y = gu(de), ve = H?.show ?? !1, ae = H?.defaultChecked ?? !1, be = H?.label ?? n.auth.emailOptInDefault, [Se, me] = T(Ee), [xe, Xe] = T(ae), ho = x === k, Wb = M?.isValid ?? !1, Hb = !ee || !Z || Se, mn = s.signupAccessCodeRequired ?? m?.signupAccessCodeRequired ?? !1, mc = Fv(s.signupAvailability), Kb = mc?.remaining === 0, gc = f && x && k && ho && Wb && Hb && (!mn || N.trim()) && !Kb && !d, Gb = async (Re) => {\n    if (Re.preventDefault(), G(null), ee && Z && !Se) {\n      G({\n        code: \"VALIDATION_ERROR\",\n        message: n.auth.termsRequiredError\n      });\n      return;\n    }\n    if (gc)\n      try {\n        const Ar = await a(f, x, g || void 0, void 0, mn && N.trim() || void 0);\n        if (Ar.inviteCodeRequired && Ar.pendingInviteToken) {\n          E(Ar.pendingInviteToken), S(Ar.inviteGateHandoffStatus === \"accepted\");\n          return;\n        }\n        if (ti(Ar)) {\n          b(\"\"), v(\"\"), A(Ar.user.email ?? f);\n          return;\n        }\n        e?.(Ar);\n      } catch {\n      }\n  }, Yb = l || B, Xb = () => {\n    u(), G(null);\n  };\n  return w ? /* @__PURE__ */ c(Wv, {\n    pendingInviteToken: w,\n    waitlistEnrollmentAccepted: C,\n    onSuccess: e,\n    className: o\n  }) : P ? /* @__PURE__ */ c(Zd, {\n    email: P,\n    onBackToLogin: r,\n    className: o\n  }) : /* @__PURE__ */ _(\"form\", {\n    onSubmit: Gb,\n    className: `cedros-form ${o}`,\n    children: [\n      i && /* @__PURE__ */ c(ib, { availability: mc }),\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-form-field\",\n        children: [/* @__PURE__ */ _(\"label\", {\n          htmlFor: \"name\",\n          className: \"cedros-label\",\n          children: [\n            n.auth.name,\n            \" \",\n            /* @__PURE__ */ c(\"span\", {\n              className: \"cedros-optional\",\n              children: n.common.optional\n            })\n          ]\n        }), /* @__PURE__ */ c(\"input\", {\n          id: \"name\",\n          type: \"text\",\n          className: \"cedros-input\",\n          value: g,\n          onChange: (Re) => p(Re.target.value),\n          placeholder: n.auth.namePlaceholder,\n          autoComplete: \"name\",\n          disabled: d\n        })]\n      }),\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-form-field\",\n        children: [/* @__PURE__ */ c(\"label\", {\n          htmlFor: \"register-email\",\n          className: \"cedros-label\",\n          children: n.auth.email\n        }), /* @__PURE__ */ c(\"input\", {\n          id: \"register-email\",\n          type: \"email\",\n          className: \"cedros-input\",\n          value: f,\n          onChange: (Re) => y(Re.target.value),\n          placeholder: n.auth.emailPlaceholder,\n          required: !0,\n          \"aria-required\": \"true\",\n          autoComplete: \"email\",\n          disabled: d\n        })]\n      }),\n      /* @__PURE__ */ c(\"div\", {\n        className: \"cedros-form-field\",\n        children: /* @__PURE__ */ c(Ve, {\n          value: x,\n          onChange: (Re) => b(Re.target.value),\n          placeholder: n.auth.createPassword,\n          required: !0,\n          autoComplete: \"new-password\",\n          disabled: d,\n          showStrengthMeter: !0,\n          onValidationChange: D\n        })\n      }),\n      /* @__PURE__ */ c(\"div\", {\n        className: \"cedros-form-field\",\n        children: /* @__PURE__ */ c(Ve, {\n          label: n.auth.confirmPassword,\n          value: k,\n          onChange: (Re) => v(Re.target.value),\n          placeholder: n.auth.confirmYourPassword,\n          required: !0,\n          autoComplete: \"new-password\",\n          disabled: d,\n          \"aria-invalid\": k && !ho ? \"true\" : void 0,\n          error: k && !ho ? n.messages.passwordsDoNotMatch : void 0\n        })\n      }),\n      mn && t === void 0 && /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-form-field\",\n        children: [/* @__PURE__ */ c(\"label\", {\n          htmlFor: \"register-access-code\",\n          className: \"cedros-label\",\n          children: n.auth.accessCode\n        }), /* @__PURE__ */ c(\"input\", {\n          id: \"register-access-code\",\n          type: \"text\",\n          className: \"cedros-input\",\n          value: R,\n          onChange: (Re) => I(Re.target.value),\n          placeholder: n.auth.enterAccessCode,\n          required: !0,\n          \"aria-required\": \"true\",\n          disabled: d,\n          autoComplete: \"off\"\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: Se,\n            onChange: (Re) => me(Re.target.checked),\n            disabled: d,\n            \"aria-required\": Z\n          }), /* @__PURE__ */ _(\"span\", {\n            className: \"cedros-checkbox-text\",\n            children: [Y ? /* @__PURE__ */ _(he, { children: [\n              ue.split(\"{terms}\")[0].trim(),\n              \" \",\n              /* @__PURE__ */ c(\"a\", {\n                href: Y,\n                target: \"_blank\",\n                rel: \"noopener noreferrer\",\n                className: \"cedros-link\",\n                children: n.auth.termsOfService\n              }),\n              ue.split(\"{terms}\")[1] ? ` ${ue.split(\"{terms}\")[1].trim()}` : \"\"\n            ] }) : ue.replace(\"{terms}\", n.auth.termsOfService), Z && /* @__PURE__ */ c(\"span\", {\n              className: \"cedros-required\",\n              children: \"*\"\n            })]\n          })]\n        })\n      }),\n      ve && /* @__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: xe,\n            onChange: (Re) => Xe(Re.target.checked),\n            disabled: d\n          }), /* @__PURE__ */ c(\"span\", {\n            className: \"cedros-checkbox-text\",\n            children: be\n          })]\n        })\n      }),\n      /* @__PURE__ */ c(pe, {\n        error: Yb,\n        onDismiss: Xb\n      }),\n      /* @__PURE__ */ c(\"button\", {\n        type: \"submit\",\n        className: \"cedros-button cedros-button-primary cedros-button-md cedros-button-full\",\n        disabled: !gc,\n        \"aria-busy\": d,\n        children: d ? /* @__PURE__ */ _(he, { children: [/* @__PURE__ */ c(q, {\n          size: \"sm\",\n          announce: !0,\n          label: n.buttons.createAccount\n        }), /* @__PURE__ */ c(\"span\", { children: n.messages.creatingAccount })] }) : n.buttons.createAccount\n      }),\n      r && /* @__PURE__ */ _(\"p\", {\n        className: \"cedros-form-footer\",\n        children: [\n          n.auth.alreadyHaveAccount,\n          \" \",\n          /* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-link cedros-link-muted\",\n            onClick: r,\n            children: n.buttons.signIn\n          })\n        ]\n      })\n    ]\n  });\n}\nvar G5 = h((() => {\n  ne(), nn(), tb(), Fr(), Yv(), Qd(), Q(), ke(), nb(), pu(), $v(), J();\n}));\nfunction Y5({ onSuccess: e, className: r = \"\", defaultTab: o = \"login\", getHasWallets: t, renderSolanaButton: i }) {\n  const { config: n, socialButtonOrder: s, isFeatureEnabled: a, user: d, authState: l, logout: u } = fe(), m = ie(), { features: g } = rb(), [p, f] = T(o), [y, x] = T(\"form\"), [b, k] = T(() => t ? t() : !1), [v] = T(() => Gu()), [w, E] = T(\"\"), [P, A] = T(null), C = n.signupAccessCodeRequired ?? g?.signupAccessCodeRequired ?? !1, S = Fv(n.signupAvailability), R = l === \"idle\" || l === \"loading\", I = d?.email ?? d?.name ?? d?.username ?? d?.id ?? \"\", N = L((Y) => {\n    A(Y.message);\n  }, []);\n  F(() => {\n    if (!t) return;\n    const Y = () => k(t());\n    return Y(), window.addEventListener(\"load\", Y), window.addEventListener(\"focus\", Y), () => {\n      window.removeEventListener(\"load\", Y), window.removeEventListener(\"focus\", Y);\n    };\n  }, [t]);\n  const M = n.forms?.forgotPassword?.mode ?? (a(\"instantLink\") ? \"instantLink\" : \"reset\"), D = L((Y) => {\n    const ve = Tr.indexOf(p);\n    let ae = ve;\n    switch (Y.key) {\n      case \"ArrowLeft\":\n      case \"ArrowUp\":\n        ae = ve === 0 ? Tr.length - 1 : ve - 1;\n        break;\n      case \"ArrowRight\":\n      case \"ArrowDown\":\n        ae = ve === Tr.length - 1 ? 0 : ve + 1;\n        break;\n      case \"Home\":\n        ae = 0;\n        break;\n      case \"End\":\n        ae = Tr.length - 1;\n        break;\n      default:\n        return;\n    }\n    Y.preventDefault();\n    const be = Tr[ae];\n    f(be), document.getElementById(`cedros-tab-${be}`)?.focus();\n  }, [p]);\n  if (R) 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(q, { 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: \"You're signed in\"\n          }),\n          I && /* @__PURE__ */ _(\"p\", {\n            className: \"cedros-login-session-message\",\n            children: [\"Continue as \", /* @__PURE__ */ c(\"span\", { children: I })]\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  const B = a(\"email\"), G = a(\"google\") && n.googleClientId, W = a(\"apple\") && n.appleClientId && v, H = !!i && a(\"solana\") && b, ee = a(\"webauthn\"), Z = p === \"register\" && w || void 0, Ee = J5(s), ue = [\n    ee ? ht(\"webauthn\", /* @__PURE__ */ c(hm, {\n      onSuccess: e,\n      onError: N,\n      accessCode: Z\n    })) : null,\n    G ? ht(\"google\", /* @__PURE__ */ c(Wu, {\n      onSuccess: e,\n      onError: N,\n      accessCode: Z\n    })) : null,\n    W ? ht(\"apple\", /* @__PURE__ */ c(Xu, {\n      onSuccess: e,\n      onError: N,\n      accessCode: Z\n    })) : null,\n    H ? ht(\"solana\", i?.({\n      onSuccess: e,\n      onError: N,\n      accessCode: Z\n    })) : null\n  ].filter(X5).sort((Y, ve) => Hl(Y.id, Ee) - Hl(ve.id, Ee)), de = B && ue.length > 0;\n  return !B && ue.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(qe, {\n    stateKey: y,\n    order: [\"form\", \"forgotPassword\"],\n    focusOnChange: !0,\n    children: y === \"forgotPassword\" ? /* @__PURE__ */ c(\"div\", {\n      className: `cedros-login-form ${r}`,\n      children: /* @__PURE__ */ c(Bv, {\n        mode: M,\n        onCancel: () => x(\"form\")\n      })\n    }) : /* @__PURE__ */ _(\"div\", {\n      className: \"cedros-login-form-shell\",\n      children: [/* @__PURE__ */ _(\"div\", {\n        className: `cedros-login-form ${r}`,\n        children: [\n          p === \"register\" && /* @__PURE__ */ c(ib, { availability: S }),\n          C && p === \"register\" && /* @__PURE__ */ _(\"div\", {\n            className: \"cedros-form-field\",\n            children: [/* @__PURE__ */ c(\"label\", {\n              htmlFor: \"login-form-access-code\",\n              className: \"cedros-label\",\n              children: m.auth.accessCode\n            }), /* @__PURE__ */ c(\"input\", {\n              id: \"login-form-access-code\",\n              type: \"text\",\n              className: \"cedros-input\",\n              value: w,\n              onChange: (Y) => E(Y.target.value),\n              placeholder: m.auth.enterAccessCode,\n              \"aria-required\": \"true\",\n              autoComplete: \"off\"\n            })]\n          }),\n          ue.length > 0 && /* @__PURE__ */ c(\"div\", {\n            className: \"cedros-social-buttons\",\n            children: ue.map(({ id: Y, element: ve }) => /* @__PURE__ */ c(Ss, { children: ve }, Y))\n          }),\n          de && /* @__PURE__ */ c(\"div\", {\n            className: \"cedros-divider\",\n            children: /* @__PURE__ */ c(\"span\", { children: m.messages.orContinueWith })\n          }),\n          B && /* @__PURE__ */ _(he, { 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: \"cedros-tab-login\",\n              className: `cedros-tab ${p === \"login\" ? \"cedros-tab-active\" : \"\"}`,\n              onClick: () => f(\"login\"),\n              onKeyDown: D,\n              \"aria-selected\": p === \"login\",\n              \"aria-controls\": \"cedros-tabpanel-login\",\n              tabIndex: p === \"login\" ? 0 : -1,\n              children: m.auth.tabs.signIn\n            }), /* @__PURE__ */ c(\"button\", {\n              type: \"button\",\n              role: \"tab\",\n              id: \"cedros-tab-register\",\n              className: `cedros-tab ${p === \"register\" ? \"cedros-tab-active\" : \"\"}`,\n              onClick: () => f(\"register\"),\n              onKeyDown: D,\n              \"aria-selected\": p === \"register\",\n              \"aria-controls\": \"cedros-tabpanel-register\",\n              tabIndex: p === \"register\" ? 0 : -1,\n              children: m.auth.tabs.signUp\n            })]\n          }), /* @__PURE__ */ c(qe, {\n            stateKey: p,\n            order: Tr,\n            children: /* @__PURE__ */ c(\"div\", {\n              role: \"tabpanel\",\n              id: `cedros-tabpanel-${p}`,\n              \"aria-labelledby\": `cedros-tab-${p}`,\n              children: p === \"login\" ? /* @__PURE__ */ c(S5, {\n                onSuccess: e,\n                onSwitchToRegister: () => f(\"register\"),\n                onForgotPassword: () => x(\"forgotPassword\")\n              }) : /* @__PURE__ */ c(K5, {\n                onSuccess: e,\n                onSwitchToLogin: () => f(\"login\"),\n                accessCode: C ? w : void 0,\n                showSignupAvailability: !1\n              })\n            })\n          })] })\n        ]\n      }), P && /* @__PURE__ */ c(pe, {\n        error: P,\n        onDismiss: () => A(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 X5(e) {\n  return e !== null;\n}\nfunction J5(e) {\n  if (!Array.isArray(e)) return ni;\n  const r = e.map((o) => o === \"passkey\" ? \"webauthn\" : o).filter(Z5);\n  return r.length ? r : ni;\n}\nfunction Z5(e) {\n  return ni.includes(e);\n}\nfunction Hl(e, r) {\n  const o = r.indexOf(e);\n  return o === -1 ? r.length : o;\n}\nvar Tr, ni, Q5 = h((() => {\n  K(), $v(), ne(), C5(), G5(), Vv(), Hu(), Ju(), pm(), ke(), Q(), nb(), mo(), Yu(), tb(), J(), Tr = [\"login\", \"register\"], ni = [\n    \"webauthn\",\n    \"google\",\n    \"apple\",\n    \"solana\"\n  ];\n}));\nfunction sb(e) {\n  return /* @__PURE__ */ c(Y5, { ...e });\n}\nvar ab = h((() => {\n  Q5();\n}));\nfunction e2() {\n  return typeof window > \"u\" ? \"\" : new URLSearchParams(window.location.search).get(\"token\")?.trim() ?? \"\";\n}\nfunction Bo() {\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 rc = h((() => {\n})), db, r2 = h((() => {\n  le(), db = class {\n    client;\n    constructor(e, r, o, t) {\n      this.client = new ce({\n        baseUrl: e,\n        timeoutMs: r,\n        retryAttempts: o,\n        getAccessToken: t\n      });\n    }\n    async listInvites(e, r = 50, o = 0) {\n      try {\n        const t = await this.client.get(`/orgs/${e}/invites?limit=${r}&offset=${o}`, { cacheTtlMs: 1e3 });\n        return {\n          invites: t.invites.map((i) => ({\n            id: i.id,\n            orgId: i.orgId,\n            email: i.email,\n            role: i.role,\n            invitedBy: i.invitedBy,\n            createdAt: i.createdAt,\n            expiresAt: i.expiresAt\n          })),\n          total: t.total\n        };\n      } catch (t) {\n        throw O(t, \"Failed to list invites\");\n      }\n    }\n    async createInvite(e, r) {\n      try {\n        return await this.client.post(`/orgs/${e}/invites`, r);\n      } catch (o) {\n        throw O(o, \"Failed to create invite\");\n      }\n    }\n    async cancelInvite(e, r) {\n      try {\n        await this.client.delete(`/orgs/${e}/invites/${r}`);\n      } catch (o) {\n        throw O(o, \"Failed to cancel invite\");\n      }\n    }\n    async resendInvite(e, r) {\n      try {\n        await this.client.post(`/orgs/${e}/invites/${r}/resend`, {});\n      } catch (o) {\n        throw O(o, \"Failed to resend invite\");\n      }\n    }\n    async acceptInvite(e) {\n      try {\n        return await this.client.post(\"/invites/accept\", e);\n      } catch (r) {\n        throw O(r, \"Failed to accept invite\");\n      }\n    }\n  };\n}));\nfunction o2({ token: e }) {\n  const { config: r, authState: o, user: t, logout: i, _internal: n } = Us(), s = ie(), a = V(() => new db(r.serverUrl, r.requestTimeout, r.retryAttempts, n?.getAccessToken), [\n    r.requestTimeout,\n    r.retryAttempts,\n    r.serverUrl,\n    n?.getAccessToken\n  ]), [d, l] = T(null), [u, m] = T(null), [g, p] = T(0), [f, y] = T(!1), x = z(!1), b = o === \"authenticated\" && t !== null;\n  F(() => {\n    !b || x.current || (x.current = !0, a.acceptInvite({ token: e }).then((w) => {\n      Bo(), l(w);\n    }).catch((w) => {\n      let E = O(w, s.messages.inviteAcceptFailed, { friendlyMessages: { FORBIDDEN: s.messages.inviteWrongAccount } });\n      E.code === \"FORBIDDEN\" && (E = {\n        ...E,\n        message: s.messages.inviteWrongAccount\n      }), m(E);\n    }));\n  }, [\n    g,\n    a,\n    b,\n    s.messages.inviteAcceptFailed,\n    s.messages.inviteWrongAccount,\n    e\n  ]);\n  const k = () => {\n    x.current = !1, m(null), p((w) => w + 1);\n  }, v = async () => {\n    y(!0);\n    try {\n      await i(), x.current = !1, m(null);\n    } catch (w) {\n      m(O(w, s.errors.unknownError));\n    } finally {\n      y(!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(pe, {\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          v();\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: k,\n        children: s.common.retry\n      })\n    })]\n  }) : b || o === \"loading\" ? /* @__PURE__ */ _(\"div\", {\n    className: \"cedros-form-header\",\n    role: \"status\",\n    \"aria-live\": \"polite\",\n    children: [/* @__PURE__ */ c(q, { 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 t2 = h((() => {\n  ab(), ke(), Q(), ne(), K(), J(), le(), r2(), rc();\n}));\nfunction i2({ token: e, onAuthSuccess: r }) {\n  const o = ie(), { config: t } = fe(), i = V(() => new ce({\n    baseUrl: t.serverUrl,\n    timeoutMs: t.requestTimeout,\n    retryAttempts: t.retryAttempts\n  }), [\n    t.requestTimeout,\n    t.retryAttempts,\n    t.serverUrl\n  ]), [n, s] = T(\"loading\"), [a, d] = T(null), l = z(!1);\n  return F(() => {\n    l.current || (l.current = !0, i.post(\"/verify-email\", { token: e }).then((u) => {\n      Bo(), n2(u) ? r(u) : s(\"success\");\n    }).catch((u) => {\n      d(O(u, o.errors.linkExpired, { networkMessage: o.errors.unableToReachServer })), s(\"error\");\n    }));\n  }, [\n    i,\n    r,\n    o.errors.linkExpired,\n    o.errors.unableToReachServer,\n    e\n  ]), n === \"loading\" ? /* @__PURE__ */ c(cb, { label: o.auth.verifying }) : n === \"error\" ? /* @__PURE__ */ c(lb, {\n    error: a,\n    actionLabel: o.auth.goToLogin\n  }) : /* @__PURE__ */ c(a2, {\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 s2({ token: e, onAuthSuccess: r }) {\n  const o = ie(), { verifyInstantLink: t, error: i } = Ov(), [n, s] = T(null), a = z(!1);\n  return F(() => {\n    a.current || (a.current = !0, t(e).then((d) => {\n      \"mfaRequired\" in d ? s(d.mfaToken) : (Bo(), r(d));\n    }).catch(() => {\n    }));\n  }, [\n    r,\n    e,\n    t\n  ]), n ? /* @__PURE__ */ c(Xv, {\n    mfaToken: n,\n    onSuccess: () => {\n      Bo(), r();\n    }\n  }) : i ? /* @__PURE__ */ c(lb, {\n    error: i,\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(q, { size: \"sm\" }), /* @__PURE__ */ c(\"p\", {\n      className: \"cedros-form-subtitle\",\n      children: e\n    })]\n  });\n}\nfunction a2({ title: e, actionLabel: r }) {\n  const o = gv(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 = gv(typeof window > \"u\" ? void 0 : window.location.href);\n  return /* @__PURE__ */ _(\"div\", {\n    className: \"cedros-form\",\n    children: [/* @__PURE__ */ c(pe, {\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 d2 = h((() => {\n  ke(), Q(), ec(), ne(), K(), Uv(), J(), le(), on(), rc();\n}));\nfunction c2({ mode: e, onAuthSuccess: r }) {\n  return e === \"sign-in\" || e === \"create-account\" ? /* @__PURE__ */ c(l2, {\n    mode: e,\n    onAuthSuccess: r\n  }) : e === \"forgot-password\" ? /* @__PURE__ */ c(Bv, {}) : /* @__PURE__ */ c(u2, {\n    mode: e,\n    onAuthSuccess: r\n  });\n}\nfunction l2({ mode: e, onAuthSuccess: r }) {\n  const { authState: o, user: t } = fe(), i = ie(), n = z(null), s = z(!1), a = L((d) => {\n    s.current = !0, r(d);\n  }, [r]);\n  return F(() => {\n    o !== \"authenticated\" || !t || s.current || n.current === t.id || (n.current = t.id, r());\n  }, [\n    o,\n    r,\n    t\n  ]), o === \"authenticated\" && t ? /* @__PURE__ */ c(\"div\", {\n    className: \"cedros-login-form-shell\",\n    children: /* @__PURE__ */ c(\"div\", {\n      className: \"cedros-login-form\",\n      children: /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-login-session-status\",\n        role: \"status\",\n        \"aria-live\": \"polite\",\n        children: [/* @__PURE__ */ c(q, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", {\n          className: \"cedros-login-session-message\",\n          children: i.common.loading\n        })]\n      })\n    })\n  }) : /* @__PURE__ */ c(sb, {\n    defaultTab: e === \"create-account\" ? \"register\" : \"login\",\n    onSuccess: a\n  });\n}\nfunction u2({ mode: e, onAuthSuccess: r }) {\n  const [o] = T(e2);\n  return F(() => {\n    o && Bo();\n  }, [o]), o ? e === \"reset-password\" ? /* @__PURE__ */ c(v5, {\n    token: o,\n    onLoginClick: () => g2(\"/login\")\n  }) : e === \"verify-email\" ? /* @__PURE__ */ c(i2, {\n    token: o,\n    onAuthSuccess: r\n  }) : e === \"instant-link-verify\" ? /* @__PURE__ */ c(s2, {\n    token: o,\n    onAuthSuccess: r\n  }) : /* @__PURE__ */ c(o2, { token: o }) : /* @__PURE__ */ c(m2, { mode: e });\n}\nfunction m2({ 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 g2(e) {\n  typeof window < \"u\" && window.location.assign(e);\n}\nvar h2 = h((() => {\n  Vv(), b5(), ab(), Q(), ne(), K(), J(), rc(), t2(), d2();\n}));\nfunction p2(e, r, o) {\n  const t = _u(e.features), i = {\n    serverUrl: b2(r),\n    features: t ? v2(t) : \"auto\",\n    theme: o ?? \"light\",\n    applyThemeToDocument: !1\n  }, n = si(e.googleClientId) ?? Kl(e.features, \"googleClientId\"), s = si(e.appleClientId) ?? Kl(e.features, \"appleClientId\"), a = mb(e.socialButtonOrder) ?? k2(e.features, \"socialButtonOrder\"), d = x2(e.features, \"signupAccessCodeRequired\"), l = t?.signupAvailability;\n  return n && (i.googleClientId = n), s && (i.appleClientId = s), a && (i.socialButtonOrder = a), d !== void 0 && (i.signupAccessCodeRequired = d), l && (i.signupAvailability = l), i;\n}\nfunction ub(e, r, o) {\n  const t = p2(e, r, o);\n  return {\n    ...t,\n    serverUrl: w2(t.serverUrl)\n  };\n}\nfunction f2(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 v2(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 b2(e) {\n  const r = Au() ?? \"\", o = si(e);\n  return !o || !y2(o) ? r : o;\n}\nfunction y2(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 w2(e) {\n  const r = e.replace(/\\/+$/, \"\");\n  return r.endsWith(\"/public-auth\") ? r : r && `${r}/public-auth`;\n}\nfunction si(e) {\n  return typeof e == \"string\" && e.trim() ? e.trim() : void 0;\n}\nfunction Kl(e, r) {\n  if (!(!e || typeof e != \"object\"))\n    return si(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 k2(e, r) {\n  if (!(!e || typeof e != \"object\"))\n    return mb(e[r]);\n}\nfunction x2(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  Cu();\n})), _2 = /* @__PURE__ */ ai({ default: () => A2 });\nfunction A2({ props: e, runtimeBaseUrl: r, colorMode: o }) {\n  const t = Bs(e.mode), i = E2(e.layout), n = ub(e, r, o), s = (a) => {\n    typeof window > \"u\" || h5(e, a, window.location);\n  };\n  return /* @__PURE__ */ c(Nv, {\n    config: n,\n    children: /* @__PURE__ */ c(\"section\", {\n      className: Tu(i, o),\n      \"data-auth-mode\": t,\n      \"data-cebbwf5-block\": Me,\n      children: /* @__PURE__ */ c(\"div\", {\n        className: \"cedros-auth-form__panel\",\n        children: /* @__PURE__ */ c(c2, {\n          mode: t,\n          onAuthSuccess: s\n        })\n      })\n    })\n  });\n}\nfunction E2(e) {\n  return e === \"inline\" || e === \"compact\" ? e : \"card\";\n}\nvar S2 = h((() => {\n  Iv(), Lu(), p5(), h2(), gb(), io();\n}));\nfunction C2({ props: e, runtimeBaseUrl: r, colorMode: o }) {\n  const { preserveShell: t, hasInitialHydrationShell: i } = R2(Bs(e.mode)), n = j(sw, {\n    props: e,\n    suppressClientConditionalProviderButtons: !0,\n    colorMode: o\n  });\n  return t ? n : j(Is, { fallback: j(T2) }, j(Cs, { fallback: i ? n : null }, j(hb, {\n    props: e,\n    runtimeBaseUrl: r,\n    colorMode: o\n  })));\n}\nfunction T2() {\n  return j(\"div\", {\n    className: \"cedros-error\",\n    role: \"alert\"\n  }, \"Authentication is temporarily unavailable. Please reload and try again.\");\n}\nfunction R2(e) {\n  const r = eu(P2, () => L2(e), () => !0), [o, t] = T(() => r);\n  return F(() => {\n    o && t(!1);\n  }, [o]), {\n    preserveShell: o,\n    hasInitialHydrationShell: r\n  };\n}\nfunction P2() {\n  return () => {\n  };\n}\nfunction L2(e) {\n  return typeof document > \"u\" ? !0 : !!document.querySelector(`[data-cebbwf5-block=\"${Me}\"][data-auth-mode=\"${e}\"] .cedros-auth-form__panel`);\n}\nvar hb, N2 = h((() => {\n  nu(), K(), Lu(), io(), hb = Ts(() => Promise.resolve().then(() => (S2(), _2)));\n}));\nfunction I2({ props: e }) {\n  const r = z2(e, ie());\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 M2({ props: e }) {\n  const r = O2(e, ie());\n  return j(\"div\", {\n    className: `cedros-login-button-block cedros-login-button-block--${r.align}`,\n    \"data-cebbwf5-block\": Os\n  }, j(\"a\", {\n    className: `cedros-login-button cedros-login-button--${r.variant}`,\n    href: r.href\n  }, r.label));\n}\nfunction D2({ props: e, colorMode: r }) {\n  const o = pb(e, ie());\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(q, {\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 z2(e, r) {\n  const o = V2(e.primaryLink) ? e.primaryLink : null, t = Ie(o?.label).trim(), i = B2(Ie(e.logoUrl));\n  return {\n    eyebrow: Ie(e.eyebrow),\n    logo: i ? {\n      src: i,\n      alt: Ie(e.logoAlt)\n    } : null,\n    title: Ie(e.title) || r.admin.nav.cedrosLogin,\n    body: Ie(e.body) || r.extension.authForm.editBeforePublishing,\n    secondaryText: Ie(e.secondaryText),\n    variant: e.variant === \"profile\" ? \"profile\" : \"auth\",\n    primaryLink: o?.kind === \"cedros-link\" && t ? {\n      href: an(Ie(o.href)),\n      label: t\n    } : null\n  };\n}\nfunction O2(e, r) {\n  return {\n    label: Ie(e.label) || r.buttons.signIn,\n    href: an(Ie(e.href) || \"/login\"),\n    variant: U2(e.variant),\n    align: e.align === \"center\" || e.align === \"end\" ? e.align : \"start\"\n  };\n}\nfunction pb(e, r) {\n  return {\n    title: Ie(e.title) || r.buttons.manageAccount,\n    body: Ie(e.body) || r.extension.authForm.accountWorkspaceBody,\n    signInHref: an(Ie(e.signInHref) || \"/login\"),\n    signInLabel: Ie(e.signInLabel) || r.extension.authForm.logInToManageAccount\n  };\n}\nfunction U2(e) {\n  return e === \"secondary\" || e === \"link\" ? e : \"primary\";\n}\nfunction an(e) {\n  const r = e.trim();\n  return r ? r.startsWith(\"/\") ? r : gu(r) || \"/\" : \"/\";\n}\nfunction B2(e) {\n  const r = e.trim();\n  return !r || r.includes(\"\\\\\") || r.startsWith(\"//\") ? \"\" : r.startsWith(\"/\") ? r : Wy(r) || \"\";\n}\nfunction Ie(e) {\n  return typeof e == \"string\" ? e : \"\";\n}\nfunction V2(e) {\n  return typeof e == \"object\" && e !== null && !Array.isArray(e);\n}\nvar oc = h((() => {\n  Q(), J(), pu(), io(), N2();\n}));\nfunction tc() {\n  const { user: e, authState: r, error: o, logout: t, refreshUser: i, openModal: n, 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: i,\n    openLoginModal: n,\n    closeLoginModal: s\n  };\n}\nvar dn = h((() => {\n  ne();\n})), fb, F2 = h((() => {\n  le(), fb = class {\n    client;\n    constructor(e, r, o, t) {\n      this.client = new ce({\n        baseUrl: e,\n        timeoutMs: r,\n        retryAttempts: o,\n        getAccessToken: t\n      });\n    }\n    async changePassword(e) {\n      try {\n        return await this.client.post(\"/change-password\", e);\n      } catch (r) {\n        throw O(r, \"Failed to change password\");\n      }\n    }\n    async updateProfile(e) {\n      try {\n        return await this.client.patch(\"/me\", e);\n      } catch (r) {\n        throw O(r, \"Failed to update profile\");\n      }\n    }\n    async changeEmail(e) {\n      try {\n        return await this.client.post(\"/me/email\", e);\n      } catch (r) {\n        throw O(r, \"Failed to change email\");\n      }\n    }\n  };\n}));\nfunction vb() {\n  const { config: e, authState: r, _internal: o } = fe(), [t, i] = T(!1), [n, s] = T(null), a = V(() => new fb(e.serverUrl, e.requestTimeout, e.retryAttempts, o?.getAccessToken), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    o\n  ]), d = L(() => {\n    s(null);\n  }, []), l = L(async (u) => {\n    if (r !== \"authenticated\") throw new Error(\"Must be authenticated to change email\");\n    i(!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      i(!1);\n    }\n  }, [r, a]);\n  return {\n    isLoading: t,\n    error: n,\n    updateProfile: L(async (u) => {\n      if (r !== \"authenticated\") throw new Error(\"Must be authenticated to update profile\");\n      i(!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        i(!1);\n      }\n    }, [r, a]),\n    changePassword: L(async (u) => {\n      if (r !== \"authenticated\") throw new Error(\"Must be authenticated to change password\");\n      i(!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        i(!1);\n      }\n    }, [r, a]),\n    changeEmail: l,\n    clearError: d\n  };\n}\nvar ic = h((() => {\n  ne(), F2();\n}));\nfunction j2() {\n  const { config: e, _internal: r } = fe(), [o, t] = T(!1), [i, n] = T(null), s = V(() => new ce({\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: L(async (a) => await s.get(`/username/available?username=${encodeURIComponent(a)}`, { credentials: \"include\" }), [s]),\n    getSuggestion: L(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: L(async (a) => {\n      t(!0), n(null);\n      try {\n        await s.patch(\"/me\", { username: a });\n      } catch (d) {\n        const l = new Error(O(d, \"Unable to update your username. Please try again.\").message);\n        throw n(l), l;\n      } finally {\n        t(!1);\n      }\n    }, [s]),\n    isLoading: o,\n    error: i\n  };\n}\nvar $2 = h((() => {\n  ne(), le();\n}));\nfunction q2(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 Gl(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 W2(e) {\n  return new Promise((r, o) => {\n    const t = new FileReader();\n    t.onerror = () => o(/* @__PURE__ */ new Error(\"Failed to read image.\")), t.onload = () => {\n      const i = typeof t.result == \"string\" ? t.result : \"\", n = i.indexOf(\",\");\n      if (n < 0) {\n        o(/* @__PURE__ */ new Error(\"Invalid image.\"));\n        return;\n      }\n      r(i.slice(n + 1));\n    }, t.readAsDataURL(e);\n  });\n}\nvar nc, H2 = h((() => {\n  nc = [\n    \"image/jpeg\",\n    \"image/png\",\n    \"image/gif\",\n    \"image/webp\"\n  ];\n}));\nfunction K2({ className: e = \"\" }) {\n  const { user: r, refreshUser: o } = tc(), { config: t, _internal: i } = fe(), [n, s] = T(null), [a, d] = T(!1), [l, u] = T(null), m = z(null), g = r?.id, p = r?.picture, f = r?.avatarContentType, y = V(() => new ce({\n    baseUrl: t.serverUrl,\n    timeoutMs: t.requestTimeout,\n    retryAttempts: t.retryAttempts,\n    getAccessToken: i?.getAccessToken\n  }), [\n    t.serverUrl,\n    t.requestTimeout,\n    t.retryAttempts,\n    i?.getAccessToken\n  ]);\n  F(() => {\n    if (!g) {\n      s(null);\n      return;\n    }\n    const v = p ?? null;\n    if (!f) {\n      s((E) => E?.userId === g && E.src === v ? E : {\n        userId: g,\n        src: v\n      });\n      return;\n    }\n    let w = !0;\n    return y.get(\"/me/avatar\", { cacheTtlMs: 5e3 }).then((E) => {\n      w && s({\n        userId: g,\n        src: Gl(E)\n      });\n    }).catch(() => {\n      w && !v && u(\"Your saved profile picture could not be loaded.\");\n    }), () => {\n      w = !1;\n    };\n  }, [\n    f,\n    y,\n    g,\n    p\n  ]);\n  const x = L(async (v) => {\n    const w = v.target.files?.[0];\n    if (w) {\n      if (u(null), !nc.includes(w.type) || w.size === 0) {\n        u(\"Choose a JPG, PNG, GIF, or WebP image.\");\n        return;\n      }\n      d(!0);\n      try {\n        const E = await y.post(\"/me/avatar\", {\n          contentType: w.type,\n          content: await W2(w)\n        });\n        r && s({\n          userId: r.id,\n          src: Gl(E)\n        }), await o();\n      } catch (E) {\n        u(typeof E == \"object\" && E !== null && \"name\" in E && E.name === \"AbortError\" ? \"Upload timed out. Check your connection and try again.\" : O(E, \"Failed to upload image.\").message);\n      } finally {\n        d(!1), m.current && (m.current.value = \"\");\n      }\n    }\n  }, [\n    y,\n    o,\n    r\n  ]), b = L(async () => {\n    u(null), d(!0);\n    try {\n      await y.delete(\"/me/avatar\"), r && s({\n        userId: r.id,\n        src: null\n      }), await o();\n    } catch (v) {\n      u(O(v, \"Failed to remove image.\").message);\n    } finally {\n      d(!1);\n    }\n  }, [\n    y,\n    o,\n    r\n  ]), k = n && n.userId === r?.id ? n.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: k ? /* @__PURE__ */ c(\"img\", {\n        src: k,\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: q2(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          }), (k || r?.avatarContentType) && /* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-ghost cedros-button-sm\",\n            onClick: b,\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, G2 = h((() => {\n  ne(), dn(), K(), le(), bb(), H2(), yb = nc.join(\",\");\n}));\nfunction Yl({ label: e, value: r, placeholder: o, emptyText: t = \"Not set\", prefix: i, helpText: n, validateFormat: s, checkAvailable: a, onSave: d, className: l = \"\" }) {\n  const [u, m] = T(!1), [g, p] = T(r), [f, y] = T(null), [x, b] = T(!1), [k, v] = T({ status: \"idle\" }), w = z(null), E = z(0), P = L(() => {\n    p(r), y(null), v({ status: \"idle\" }), m(!0);\n  }, [r]), A = L(() => {\n    m(!1), y(null), v({ status: \"idle\" }), w.current && window.clearTimeout(w.current);\n  }, []);\n  F(() => {\n    if (!u || !a) return;\n    const S = g.trim();\n    if (w.current && window.clearTimeout(w.current), S === r.trim() || S.length === 0) {\n      v({ status: \"idle\" });\n      return;\n    }\n    const R = s?.(S) ?? null;\n    if (R) {\n      v({\n        status: \"error\",\n        message: R\n      });\n      return;\n    }\n    const I = ++E.current;\n    return v({ status: \"checking\" }), w.current = window.setTimeout(async () => {\n      try {\n        const N = await a(S);\n        if (I !== E.current) return;\n        v(N ? {\n          status: \"error\",\n          message: N\n        } : {\n          status: \"ok\",\n          message: \"Available\"\n        });\n      } catch {\n        I === E.current && v({ status: \"idle\" });\n      }\n    }, 400), () => {\n      w.current && window.clearTimeout(w.current);\n    };\n  }, [\n    g,\n    u,\n    a,\n    s,\n    r\n  ]);\n  const C = L(async () => {\n    const S = g.trim(), R = s?.(S) ?? null;\n    if (R) {\n      y(R);\n      return;\n    }\n    if (k.status === \"error\") {\n      y(k.message ?? \"Value is not available.\");\n      return;\n    }\n    y(null), b(!0);\n    try {\n      await d(S), m(!1);\n    } catch (I) {\n      y(I instanceof Error ? I.message : \"Failed to save.\");\n    } finally {\n      b(!1);\n    }\n  }, [\n    g,\n    s,\n    k,\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__ */ _(he, { children: [\n      n && /* @__PURE__ */ c(\"span\", {\n        className: \"cedros-field__help\",\n        children: n\n      }),\n      /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-field__control\",\n        children: [i && /* @__PURE__ */ c(\"span\", {\n          className: \"cedros-field__prefix\",\n          children: i\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: (S) => p(S.target.value),\n          onKeyDown: (S) => {\n            S.key === \"Enter\" && C(), S.key === \"Escape\" && A();\n          }\n        })]\n      }),\n      k.status === \"checking\" && /* @__PURE__ */ c(\"span\", {\n        className: \"cedros-field__hint\",\n        children: \"Checking availability…\"\n      }),\n      k.status === \"ok\" && /* @__PURE__ */ c(\"span\", {\n        className: \"cedros-field__hint cedros-field__hint--ok\",\n        children: k.message\n      }),\n      (f || k.status === \"error\") && /* @__PURE__ */ c(\"span\", {\n        className: \"cedros-field__hint cedros-field__hint--error\",\n        children: f ?? k.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: C,\n          disabled: x || k.status === \"checking\",\n          children: x ? /* @__PURE__ */ c(q, { size: \"sm\" }) : \"Save\"\n        }), /* @__PURE__ */ c(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-outline cedros-button-sm\",\n          onClick: A,\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 ? `${i ?? \"\"}${r}` : t\n    })]\n  });\n}\nvar Y2 = h((() => {\n  K(), Q();\n}));\nfunction X2(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 J2(e) {\n  return e.length === 0 ? \"Name cannot be empty.\" : e.length > 100 ? \"Name must be 100 characters or less.\" : null;\n}\nfunction Z2({ className: e = \"\" }) {\n  const { user: r, refreshUser: o } = tc(), { updateProfile: t } = vb(), { checkAvailability: i, setUsername: n } = j2(), s = L(async (l) => {\n    await t({ name: l }), await o();\n  }, [t, o]), a = L(async (l) => {\n    await n(l), await o();\n  }, [n, o]), d = L(async (l) => {\n    const u = await i(l);\n    return u.available ? null : u.error || \"That username is taken.\";\n  }, [i]);\n  return /* @__PURE__ */ _(\"div\", {\n    className: `cedros-account-card ${e}`.trim(),\n    children: [\n      /* @__PURE__ */ c(K2, {}),\n      /* @__PURE__ */ c(\"div\", { className: \"cedros-account-card__divider\" }),\n      /* @__PURE__ */ c(Yl, {\n        label: \"Display name\",\n        value: r?.name ?? \"\",\n        placeholder: \"Your name\",\n        validateFormat: J2,\n        onSave: s\n      }),\n      /* @__PURE__ */ c(\"div\", { className: \"cedros-account-card__divider\" }),\n      /* @__PURE__ */ c(Yl, {\n        label: \"Username\",\n        value: r?.username ?? \"\",\n        placeholder: \"username\",\n        prefix: \"@\",\n        helpText: \"3–30 characters: lowercase letters, numbers, and underscores.\",\n        validateFormat: X2,\n        checkAvailable: d,\n        onSave: a\n      })\n    ]\n  });\n}\nvar wb, Q2 = h((() => {\n  dn(), ic(), $2(), G2(), Y2(), 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, i] = T([]), [n, s] = T(!1), [a, d] = T(null), l = V(() => new Kd(e.serverUrl, e.requestTimeout, e.retryAttempts, o?.getAccessToken), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    o\n  ]), u = L(() => {\n    d(null);\n  }, []), m = L(async () => {\n    if (r !== \"authenticated\") {\n      i([]);\n      return;\n    }\n    s(!0), d(null);\n    try {\n      i(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() : i([]);\n  }, [r, m]), {\n    credentials: t,\n    isLoading: n,\n    error: a,\n    fetchCredentials: m,\n    unlinkCredential: L(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 sc = h((() => {\n  K(), ne(), uv();\n}));\nfunction eA() {\n  const { config: e, _internal: r } = fe(), [o, t] = T(!1), [i, n] = T(null), s = V(() => new ce({\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: L(async (a) => {\n      t(!0), n(null);\n      try {\n        await s.post(\"/set-password\", { password: a });\n      } catch (d) {\n        const l = O(d, \"Failed to set password\");\n        throw n(l), l;\n      } finally {\n        t(!1);\n      }\n    }, [s]),\n    isLoading: o,\n    error: i\n  };\n}\nvar rA = h((() => {\n  ne(), le();\n}));\nfunction oA({ onPasswordChange: e, onCancel: r, className: o = \"\" }) {\n  const { isLoading: t, error: i, changePassword: n, clearError: s } = vb(), [a, d] = T(\"\"), [l, u] = T(\"\"), [m, g] = T(\"\"), [p, f] = T(null), [y, x] = T(null), b = Io(l), k = l === m, v = a.length > 0 && l.length > 0 && m.length > 0 && b.isValid && k, w = L(async () => {\n    if (v) {\n      f(null), x(null);\n      try {\n        await n({\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    v,\n    a,\n    l,\n    n,\n    e,\n    r\n  ]), E = L(() => {\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 || i) && /* @__PURE__ */ c(\"div\", {\n          className: \"cedros-profile-error\",\n          children: /* @__PURE__ */ c(pe, {\n            error: {\n              code: \"UNKNOWN_ERROR\",\n              message: p || i?.message || \"\"\n            },\n            onDismiss: () => {\n              f(null), s();\n            }\n          })\n        }),\n        y && /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-profile-success\",\n          children: [/* @__PURE__ */ c(\"span\", {\n            className: \"cedros-profile-success-icon\",\n            children: \"✓\"\n          }), y]\n        }),\n        /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-profile-form\",\n          children: [\n            /* @__PURE__ */ c(\"div\", {\n              className: \"cedros-profile-field\",\n              children: /* @__PURE__ */ c(Ve, {\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(Ve, {\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(Ve, {\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 && !k ? \"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: E,\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: w,\n            disabled: t || !v,\n            children: t ? /* @__PURE__ */ _(he, { children: [/* @__PURE__ */ c(q, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", { children: \"Changing...\" })] }) : \"Change password\"\n          })]\n        })\n      ]\n    })\n  });\n}\nvar xb = h((() => {\n  ic(), Fr(), Q(), ke(), xr();\n}));\nfunction tA({ onPasswordChange: e, className: r = \"\" }) {\n  const { credentials: o, fetchCredentials: t } = kb(), i = o.some((a) => a.credentialType === \"password\"), [n, s] = T(\"view\");\n  return n === \"change\" ? /* @__PURE__ */ c(oA, {\n    className: r,\n    onCancel: () => s(\"view\"),\n    onPasswordChange: () => {\n      s(\"view\"), e?.();\n    }\n  }) : n === \"set\" ? /* @__PURE__ */ c(iA, {\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          }), i ? /* @__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${i ? \"\" : \" cedros-field__value--empty\"}`,\n          children: i ? \"••••••••\" : \"No password set\"\n        }),\n        !i && /* @__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 iA({ onCancel: e, onDone: r, className: o = \"\" }) {\n  const { setPassword: t, isLoading: i } = eA(), [n, s] = T(\"\"), [a, d] = T(\"\"), [l, u] = T(null), m = Io(n), g = n === a, p = m.isValid && g && a.length > 0, f = L(async () => {\n    if (p) {\n      u(null);\n      try {\n        await t(n), await r();\n      } catch (y) {\n        u(y instanceof Error ? y.message : \"Failed to set password.\");\n      }\n    }\n  }, [\n    p,\n    n,\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(Ve, {\n              label: \"New password\",\n              placeholder: \"Enter a new password\",\n              value: n,\n              onChange: (y) => s(y.target.value),\n              disabled: i,\n              showStrengthMeter: !0,\n              autoFocus: !0\n            })\n          }), /* @__PURE__ */ c(\"div\", {\n            className: \"cedros-profile-field\",\n            children: /* @__PURE__ */ c(Ve, {\n              label: \"Confirm password\",\n              placeholder: \"Re-enter the password\",\n              value: a,\n              onChange: (y) => d(y.target.value),\n              disabled: i,\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: i,\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: i || !p,\n            children: i ? /* @__PURE__ */ c(q, { size: \"sm\" }) : \"Set password\"\n          })]\n        })\n      ]\n    })\n  });\n}\nvar nA = h((() => {\n  sc(), rA(), xb(), Fr(), Q(), xr();\n}));\nfunction _b() {\n  const { config: e, _internal: r } = fe(), o = ie(), [t, i] = T(null), [n, s] = T(\"idle\"), [a, d] = T(null), [l, u] = T(!1), [m, g] = T(null), p = V(() => new ce({\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: n,\n    setupData: a,\n    isLoading: l,\n    error: m,\n    getStatus: L(async () => {\n      u(!0), g(null);\n      try {\n        const f = await p.get(\"/mfa/status\");\n        return i(f), f;\n      } catch (f) {\n        const y = O(f, o.auth.loadTotpStatusFailed);\n        throw g(y), y;\n      } finally {\n        u(!1);\n      }\n    }, [p, o.auth.loadTotpStatusFailed]),\n    beginSetup: L(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 y = O(f, o.auth.startTotpSetupFailed);\n        throw g(y), s(\"error\"), y;\n      } finally {\n        u(!1);\n      }\n    }, [p, o.auth.startTotpSetupFailed]),\n    enableTotp: L(async (f) => {\n      if (!/^\\d{6}$/.test(f)) {\n        const y = {\n          code: \"VALIDATION_ERROR\",\n          message: o.auth.enterSixDigitCode\n        };\n        throw g(y), y;\n      }\n      u(!0), g(null), s(\"verifying\");\n      try {\n        await p.post(\"/mfa/enable\", { code: f }), s(\"success\");\n        try {\n          i(await p.get(\"/mfa/status\"));\n        } catch {\n          i({\n            enabled: !0,\n            recoveryCodesRemaining: 0\n          });\n        }\n      } catch (y) {\n        const x = O(y, 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: L(async (f) => {\n      const y = typeof f == \"string\" ? { password: f } : f;\n      if (!Object.values(y).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\", y), i((x) => ({\n          enabled: !1,\n          recoveryCodesRemaining: 0,\n          ...x?.disableMethods ? { disableMethods: x.disableMethods } : {}\n        })), d(null), s(\"idle\");\n      } catch (x) {\n        const b = O(x, o.auth.disableTotpFailed);\n        throw g(b), b;\n      } finally {\n        u(!1);\n      }\n    }, [\n      p,\n      o.auth.enterPassword,\n      o.auth.disableTotpFailed\n    ]),\n    regenerateBackupCodes: L(async (f) => {\n      if (!/^\\d{6}$/.test(f)) {\n        const y = {\n          code: \"VALIDATION_ERROR\",\n          message: o.auth.enterSixDigitCode\n        };\n        throw g(y), y;\n      }\n      u(!0), g(null);\n      try {\n        return await p.post(\"/mfa/recovery-codes/regenerate\", { code: f });\n      } catch (y) {\n        const x = O(y, 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: L(() => g(null), []),\n    reset: L(() => {\n      g(null), d(null), s(\"idle\"), u(!1);\n    }, [])\n  };\n}\nvar Ab = h((() => {\n  ne(), le(), J();\n})), sA = /* @__PURE__ */ te(((e, r) => {\n  r.exports = function() {\n    return typeof Promise == \"function\" && Promise.prototype && Promise.prototype.then;\n  };\n})), jr = /* @__PURE__ */ te(((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(i) {\n    if (!i) throw new Error('\"version\" cannot be null or undefined');\n    if (i < 1 || i > 40) throw new Error('\"version\" should be in range from 1 to 40');\n    return i * 4 + 17;\n  }, e.getSymbolTotalCodewords = function(i) {\n    return o[i];\n  }, e.getBCHDigit = function(t) {\n    let i = 0;\n    for (; t !== 0; )\n      i++, t >>>= 1;\n    return i;\n  }, e.setToSJISFunction = function(i) {\n    if (typeof i != \"function\") throw new Error('\"toSJISFunc\" is not a valid function.');\n    r = i;\n  }, e.isKanjiModeEnabled = function() {\n    return typeof r < \"u\";\n  }, e.toSJIS = function(i) {\n    return r(i);\n  };\n})), ac = /* @__PURE__ */ te(((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, i) {\n    if (e.isValid(t)) return t;\n    try {\n      return r(t);\n    } catch {\n      return i;\n    }\n  };\n})), aA = /* @__PURE__ */ te(((e, r) => {\n  function o() {\n    this.buffer = [], this.length = 0;\n  }\n  o.prototype = {\n    get: function(t) {\n      const i = Math.floor(t / 8);\n      return (this.buffer[i] >>> 7 - t % 8 & 1) === 1;\n    },\n    put: function(t, i) {\n      for (let n = 0; n < i; n++) this.putBit((t >>> i - n - 1 & 1) === 1);\n    },\n    getLengthInBits: function() {\n      return this.length;\n    },\n    putBit: function(t) {\n      const i = Math.floor(this.length / 8);\n      this.buffer.length <= i && this.buffer.push(0), t && (this.buffer[i] |= 128 >>> this.length % 8), this.length++;\n    }\n  }, r.exports = o;\n})), dA = /* @__PURE__ */ te(((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, i, n, s) {\n    const a = t * this.size + i;\n    this.data[a] = n, s && (this.reservedBit[a] = !0);\n  }, o.prototype.get = function(t, i) {\n    return this.data[t * this.size + i];\n  }, o.prototype.xor = function(t, i, n) {\n    this.data[t * this.size + i] ^= n;\n  }, o.prototype.isReserved = function(t, i) {\n    return this.reservedBit[t * this.size + i];\n  }, r.exports = o;\n})), cA = /* @__PURE__ */ te(((e) => {\n  var r = jr().getSymbolSize;\n  e.getRowColCoords = function(t) {\n    if (t === 1) return [];\n    const i = Math.floor(t / 7) + 2, n = r(t), s = n === 145 ? 26 : Math.ceil((n - 13) / (2 * i - 2)) * 2, a = [n - 7];\n    for (let d = 1; d < i - 1; d++) a[d] = a[d - 1] - s;\n    return a.push(6), a.reverse();\n  }, e.getPositions = function(t) {\n    const i = [], n = e.getRowColCoords(t), s = n.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 || i.push([n[a], n[d]]);\n    return i;\n  };\n})), lA = /* @__PURE__ */ te(((e) => {\n  var r = jr().getSymbolSize, o = 7;\n  e.getPositions = function(i) {\n    const n = r(i);\n    return [\n      [0, 0],\n      [n - o, 0],\n      [0, n - o]\n    ];\n  };\n})), uA = /* @__PURE__ */ te(((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(i) {\n    return i != null && i !== \"\" && !isNaN(i) && i >= 0 && i <= 7;\n  }, e.from = function(i) {\n    return e.isValid(i) ? parseInt(i, 10) : void 0;\n  }, e.getPenaltyN1 = function(i) {\n    const n = i.size;\n    let s = 0, a = 0, d = 0, l = null, u = null;\n    for (let m = 0; m < n; m++) {\n      a = d = 0, l = u = null;\n      for (let g = 0; g < n; g++) {\n        let p = i.get(m, g);\n        p === l ? a++ : (a >= 5 && (s += r.N1 + (a - 5)), l = p, a = 1), p = i.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(i) {\n    const n = i.size;\n    let s = 0;\n    for (let a = 0; a < n - 1; a++) for (let d = 0; d < n - 1; d++) {\n      const l = i.get(a, d) + i.get(a, d + 1) + i.get(a + 1, d) + i.get(a + 1, d + 1);\n      (l === 4 || l === 0) && s++;\n    }\n    return s * r.N2;\n  }, e.getPenaltyN3 = function(i) {\n    const n = i.size;\n    let s = 0, a = 0, d = 0;\n    for (let l = 0; l < n; l++) {\n      a = d = 0;\n      for (let u = 0; u < n; u++)\n        a = a << 1 & 2047 | i.get(l, u), u >= 10 && (a === 1488 || a === 93) && s++, d = d << 1 & 2047 | i.get(u, l), u >= 10 && (d === 1488 || d === 93) && s++;\n    }\n    return s * r.N3;\n  }, e.getPenaltyN4 = function(i) {\n    let n = 0;\n    const s = i.data.length;\n    for (let a = 0; a < s; a++) n += i.data[a];\n    return Math.abs(Math.ceil(n * 100 / s / 5) - 10) * r.N4;\n  };\n  function o(t, i, n) {\n    switch (t) {\n      case e.Patterns.PATTERN000:\n        return (i + n) % 2 === 0;\n      case e.Patterns.PATTERN001:\n        return i % 2 === 0;\n      case e.Patterns.PATTERN010:\n        return n % 3 === 0;\n      case e.Patterns.PATTERN011:\n        return (i + n) % 3 === 0;\n      case e.Patterns.PATTERN100:\n        return (Math.floor(i / 2) + Math.floor(n / 3)) % 2 === 0;\n      case e.Patterns.PATTERN101:\n        return i * n % 2 + i * n % 3 === 0;\n      case e.Patterns.PATTERN110:\n        return (i * n % 2 + i * n % 3) % 2 === 0;\n      case e.Patterns.PATTERN111:\n        return (i * n % 3 + (i + n) % 2) % 2 === 0;\n      default:\n        throw new Error(\"bad maskPattern:\" + t);\n    }\n  }\n  e.applyMask = function(i, n) {\n    const s = n.size;\n    for (let a = 0; a < s; a++) for (let d = 0; d < s; d++)\n      n.isReserved(d, a) || n.xor(d, a, o(i, d, a));\n  }, e.getBestMask = function(i, n) {\n    const s = Object.keys(e.Patterns).length;\n    let a = 0, d = 1 / 0;\n    for (let l = 0; l < s; l++) {\n      n(l), e.applyMask(l, i);\n      const u = e.getPenaltyN1(i) + e.getPenaltyN2(i) + e.getPenaltyN3(i) + e.getPenaltyN4(i);\n      e.applyMask(l, i), u < d && (d = u, a = l);\n    }\n    return a;\n  };\n})), Eb = /* @__PURE__ */ te(((e) => {\n  var r = ac(), 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(n, s) {\n    switch (s) {\n      case r.L:\n        return o[(n - 1) * 4 + 0];\n      case r.M:\n        return o[(n - 1) * 4 + 1];\n      case r.Q:\n        return o[(n - 1) * 4 + 2];\n      case r.H:\n        return o[(n - 1) * 4 + 3];\n      default:\n        return;\n    }\n  }, e.getTotalCodewordsCount = function(n, s) {\n    switch (s) {\n      case r.L:\n        return t[(n - 1) * 4 + 0];\n      case r.M:\n        return t[(n - 1) * 4 + 1];\n      case r.Q:\n        return t[(n - 1) * 4 + 2];\n      case r.H:\n        return t[(n - 1) * 4 + 3];\n      default:\n        return;\n    }\n  };\n})), mA = /* @__PURE__ */ te(((e) => {\n  var r = new Uint8Array(512), o = new Uint8Array(256);\n  (function() {\n    let i = 1;\n    for (let n = 0; n < 255; n++)\n      r[n] = i, o[i] = n, i <<= 1, i & 256 && (i ^= 285);\n    for (let n = 255; n < 512; n++) r[n] = r[n - 255];\n  })(), e.log = function(i) {\n    if (i < 1) throw new Error(\"log(\" + i + \")\");\n    return o[i];\n  }, e.exp = function(i) {\n    return r[i];\n  }, e.mul = function(i, n) {\n    return i === 0 || n === 0 ? 0 : r[o[i] + o[n]];\n  };\n})), gA = /* @__PURE__ */ te(((e) => {\n  var r = mA();\n  e.mul = function(t, i) {\n    const n = new Uint8Array(t.length + i.length - 1);\n    for (let s = 0; s < t.length; s++) for (let a = 0; a < i.length; a++) n[s + a] ^= r.mul(t[s], i[a]);\n    return n;\n  }, e.mod = function(t, i) {\n    let n = new Uint8Array(t);\n    for (; n.length - i.length >= 0; ) {\n      const s = n[0];\n      for (let d = 0; d < i.length; d++) n[d] ^= r.mul(i[d], s);\n      let a = 0;\n      for (; a < n.length && n[a] === 0; ) a++;\n      n = n.slice(a);\n    }\n    return n;\n  }, e.generateECPolynomial = function(t) {\n    let i = new Uint8Array([1]);\n    for (let n = 0; n < t; n++) i = e.mul(i, new Uint8Array([1, r.exp(n)]));\n    return i;\n  };\n})), hA = /* @__PURE__ */ te(((e, r) => {\n  var o = gA();\n  function t(i) {\n    this.genPoly = void 0, this.degree = i, this.degree && this.initialize(this.degree);\n  }\n  t.prototype.initialize = function(n) {\n    this.degree = n, this.genPoly = o.generateECPolynomial(this.degree);\n  }, t.prototype.encode = function(n) {\n    if (!this.genPoly) throw new Error(\"Encoder not initialized\");\n    const s = new Uint8Array(n.length + this.degree);\n    s.set(n);\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__ */ te(((e) => {\n  e.isValid = function(o) {\n    return !isNaN(o) && o >= 1 && o <= 40;\n  };\n})), Cb = /* @__PURE__ */ te(((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 i = \"(?:(?![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(i, \"g\"), e.NUMERIC = new RegExp(r, \"g\"), e.ALPHANUMERIC = new RegExp(o, \"g\");\n  var n = new RegExp(\"^\" + t + \"$\"), s = /* @__PURE__ */ new RegExp(\"^[0-9]+$\"), a = /* @__PURE__ */ new RegExp(\"^[A-Z0-9 $%*+\\\\-./:]+$\");\n  e.testKanji = function(l) {\n    return n.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__ */ te(((e) => {\n  var r = Sb(), o = Cb();\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(n, s) {\n    if (!n.ccBits) throw new Error(\"Invalid mode: \" + n);\n    if (!r.isValid(s)) throw new Error(\"Invalid version: \" + s);\n    return s >= 1 && s < 10 ? n.ccBits[0] : s < 27 ? n.ccBits[1] : n.ccBits[2];\n  }, e.getBestModeForData = function(n) {\n    return o.testNumeric(n) ? e.NUMERIC : o.testAlphanumeric(n) ? e.ALPHANUMERIC : o.testKanji(n) ? e.KANJI : e.BYTE;\n  }, e.toString = function(n) {\n    if (n && n.id) return n.id;\n    throw new Error(\"Invalid mode\");\n  }, e.isValid = function(n) {\n    return n && n.bit && n.ccBits;\n  };\n  function t(i) {\n    if (typeof i != \"string\") throw new Error(\"Param is not a string\");\n    switch (i.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: \" + i);\n    }\n  }\n  e.from = function(n, s) {\n    if (e.isValid(n)) return n;\n    try {\n      return t(n);\n    } catch {\n      return s;\n    }\n  };\n})), pA = /* @__PURE__ */ te(((e) => {\n  var r = jr(), o = Eb(), t = ac(), i = $r(), n = Sb(), s = 7973, a = r.getBCHDigit(s);\n  function d(g, p, f) {\n    for (let y = 1; y <= 40; y++) if (p <= e.getCapacity(y, f, g)) return y;\n  }\n  function l(g, p) {\n    return i.getCharCountIndicator(g, p) + 4;\n  }\n  function u(g, p) {\n    let f = 0;\n    return g.forEach(function(y) {\n      const x = l(y.mode, p);\n      f += x + y.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, i.MIXED)) return f;\n  }\n  e.from = function(p, f) {\n    return n.isValid(p) ? parseInt(p, 10) : f;\n  }, e.getCapacity = function(p, f, y) {\n    if (!n.isValid(p)) throw new Error(\"Invalid QR Code version\");\n    typeof y > \"u\" && (y = i.BYTE);\n    const x = (r.getSymbolTotalCodewords(p) - o.getTotalCodewordsCount(p, f)) * 8;\n    if (y === i.MIXED) return x;\n    const b = x - l(y, p);\n    switch (y) {\n      case i.NUMERIC:\n        return Math.floor(b / 10 * 3);\n      case i.ALPHANUMERIC:\n        return Math.floor(b / 11 * 2);\n      case i.KANJI:\n        return Math.floor(b / 13);\n      case i.BYTE:\n      default:\n        return Math.floor(b / 8);\n    }\n  }, e.getBestVersionForData = function(p, f) {\n    let y;\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      y = p[0];\n    } else y = p;\n    return d(y.mode, y.getLength(), x);\n  }, e.getEncodedBits = function(p) {\n    if (!n.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})), fA = /* @__PURE__ */ te(((e) => {\n  var r = jr(), o = 1335, t = 21522, i = 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) - i >= 0; ) l ^= o << r.getBCHDigit(l) - i;\n    return (d << 10 | l) ^ t;\n  };\n})), vA = /* @__PURE__ */ te(((e, r) => {\n  var o = $r();\n  function t(i) {\n    this.mode = o.NUMERIC, this.data = i.toString();\n  }\n  t.getBitsLength = function(n) {\n    return 10 * Math.floor(n / 3) + (n % 3 ? n % 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(n) {\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), n.put(d, 10);\n    const l = this.data.length - s;\n    l > 0 && (a = this.data.substr(s), d = parseInt(a, 10), n.put(d, l * 3 + 1));\n  }, r.exports = t;\n})), bA = /* @__PURE__ */ te(((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 i(n) {\n    this.mode = o.ALPHANUMERIC, this.data = n;\n  }\n  i.getBitsLength = function(s) {\n    return 11 * Math.floor(s / 2) + 6 * (s % 2);\n  }, i.prototype.getLength = function() {\n    return this.data.length;\n  }, i.prototype.getBitsLength = function() {\n    return i.getBitsLength(this.data.length);\n  }, i.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 = i;\n})), yA = /* @__PURE__ */ te(((e, r) => {\n  var o = $r();\n  function t(i) {\n    this.mode = o.BYTE, typeof i == \"string\" ? this.data = new TextEncoder().encode(i) : this.data = new Uint8Array(i);\n  }\n  t.getBitsLength = function(n) {\n    return n * 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(i) {\n    for (let n = 0, s = this.data.length; n < s; n++) i.put(this.data[n], 8);\n  }, r.exports = t;\n})), wA = /* @__PURE__ */ te(((e, r) => {\n  var o = $r(), t = jr();\n  function i(n) {\n    this.mode = o.KANJI, this.data = n;\n  }\n  i.getBitsLength = function(s) {\n    return s * 13;\n  }, i.prototype.getLength = function() {\n    return this.data.length;\n  }, i.prototype.getBitsLength = function() {\n    return i.getBitsLength(this.data.length);\n  }, i.prototype.write = function(n) {\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), n.put(a, 13);\n    }\n  }, r.exports = i;\n})), kA = /* @__PURE__ */ te(((e, r) => {\n  var o = {\n    single_source_shortest_paths: function(t, i, n) {\n      var s = {}, a = {};\n      a[i] = 0;\n      var d = o.PriorityQueue.make();\n      d.push(i, 0);\n      for (var l, u, m, g, p, f, y, x, b; !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], y = g + f, x = a[m], b = typeof a[m] > \"u\", (b || x > y) && (a[m] = y, d.push(m, y), s[m] = u));\n      }\n      if (typeof n < \"u\" && typeof a[n] > \"u\") {\n        var k = [\n          \"Could not find a path from \",\n          i,\n          \" to \",\n          n,\n          \".\"\n        ].join(\"\");\n        throw new Error(k);\n      }\n      return s;\n    },\n    extract_shortest_path_from_predecessor_list: function(t, i) {\n      for (var n = [], s = i; s; )\n        n.push(s), t[s], s = t[s];\n      return n.reverse(), n;\n    },\n    find_path: function(t, i, n) {\n      var s = o.single_source_shortest_paths(t, i, n);\n      return o.extract_shortest_path_from_predecessor_list(s, n);\n    },\n    PriorityQueue: {\n      make: function(t) {\n        var i = o.PriorityQueue, n = {}, s;\n        t = t || {};\n        for (s in i) i.hasOwnProperty(s) && (n[s] = i[s]);\n        return n.queue = [], n.sorter = t.sorter || i.default_sorter, n;\n      },\n      default_sorter: function(t, i) {\n        return t.cost - i.cost;\n      },\n      push: function(t, i) {\n        var n = {\n          value: t,\n          cost: i\n        };\n        this.queue.push(n), 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})), xA = /* @__PURE__ */ te(((e) => {\n  var r = $r(), o = vA(), t = bA(), i = yA(), n = wA(), s = Cb(), a = jr(), d = kA();\n  function l(b) {\n    return unescape(encodeURIComponent(b)).length;\n  }\n  function u(b, k, v) {\n    const w = [];\n    let E;\n    for (; (E = b.exec(v)) !== null; ) w.push({\n      data: E[0],\n      index: E.index,\n      mode: k,\n      length: E[0].length\n    });\n    return w;\n  }\n  function m(b) {\n    const k = u(s.NUMERIC, r.NUMERIC, b), v = u(s.ALPHANUMERIC, r.ALPHANUMERIC, b);\n    let w, E;\n    return a.isKanjiModeEnabled() ? (w = u(s.BYTE, r.BYTE, b), E = u(s.KANJI, r.KANJI, b)) : (w = u(s.BYTE_KANJI, r.BYTE, b), E = []), k.concat(v, w, E).sort(function(P, A) {\n      return P.index - A.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(b, k) {\n    switch (k) {\n      case r.NUMERIC:\n        return o.getBitsLength(b);\n      case r.ALPHANUMERIC:\n        return t.getBitsLength(b);\n      case r.KANJI:\n        return n.getBitsLength(b);\n      case r.BYTE:\n        return i.getBitsLength(b);\n    }\n  }\n  function p(b) {\n    return b.reduce(function(k, v) {\n      const w = k.length - 1 >= 0 ? k[k.length - 1] : null;\n      return w && w.mode === v.mode ? (k[k.length - 1].data += v.data, k) : (k.push(v), k);\n    }, []);\n  }\n  function f(b) {\n    const k = [];\n    for (let v = 0; v < b.length; v++) {\n      const w = b[v];\n      switch (w.mode) {\n        case r.NUMERIC:\n          k.push([\n            w,\n            {\n              data: w.data,\n              mode: r.ALPHANUMERIC,\n              length: w.length\n            },\n            {\n              data: w.data,\n              mode: r.BYTE,\n              length: w.length\n            }\n          ]);\n          break;\n        case r.ALPHANUMERIC:\n          k.push([w, {\n            data: w.data,\n            mode: r.BYTE,\n            length: w.length\n          }]);\n          break;\n        case r.KANJI:\n          k.push([w, {\n            data: w.data,\n            mode: r.BYTE,\n            length: l(w.data)\n          }]);\n          break;\n        case r.BYTE:\n          k.push([{\n            data: w.data,\n            mode: r.BYTE,\n            length: l(w.data)\n          }]);\n      }\n    }\n    return k;\n  }\n  function y(b, k) {\n    const v = {}, w = { start: {} };\n    let E = [\"start\"];\n    for (let P = 0; P < b.length; P++) {\n      const A = b[P], C = [];\n      for (let S = 0; S < A.length; S++) {\n        const R = A[S], I = \"\" + P + S;\n        C.push(I), v[I] = {\n          node: R,\n          lastCount: 0\n        }, w[I] = {};\n        for (let N = 0; N < E.length; N++) {\n          const M = E[N];\n          v[M] && v[M].node.mode === R.mode ? (w[M][I] = g(v[M].lastCount + R.length, R.mode) - g(v[M].lastCount, R.mode), v[M].lastCount += R.length) : (v[M] && (v[M].lastCount = R.length), w[M][I] = g(R.length, R.mode) + 4 + r.getCharCountIndicator(R.mode, k));\n        }\n      }\n      E = C;\n    }\n    for (let P = 0; P < E.length; P++) w[E[P]].end = 0;\n    return {\n      map: w,\n      table: v\n    };\n  }\n  function x(b, k) {\n    let v;\n    const w = r.getBestModeForData(b);\n    if (v = r.from(k, w), v !== r.BYTE && v.bit < w.bit) throw new Error('\"' + b + '\" cannot be encoded with mode ' + r.toString(v) + `.\n Suggested mode is: ` + r.toString(w));\n    switch (v === r.KANJI && !a.isKanjiModeEnabled() && (v = r.BYTE), v) {\n      case r.NUMERIC:\n        return new o(b);\n      case r.ALPHANUMERIC:\n        return new t(b);\n      case r.KANJI:\n        return new n(b);\n      case r.BYTE:\n        return new i(b);\n    }\n  }\n  e.fromArray = function(k) {\n    return k.reduce(function(v, w) {\n      return typeof w == \"string\" ? v.push(x(w, null)) : w.data && v.push(x(w.data, w.mode)), v;\n    }, []);\n  }, e.fromString = function(k, v) {\n    const w = y(f(m(k, a.isKanjiModeEnabled())), v), E = d.find_path(w.map, \"start\", \"end\"), P = [];\n    for (let A = 1; A < E.length - 1; A++) P.push(w.table[E[A]].node);\n    return e.fromArray(p(P));\n  }, e.rawSplit = function(k) {\n    return e.fromArray(m(k, a.isKanjiModeEnabled()));\n  };\n})), _A = /* @__PURE__ */ te(((e) => {\n  var r = jr(), o = ac(), t = aA(), i = dA(), n = cA(), s = lA(), a = uA(), d = Eb(), l = hA(), u = pA(), m = fA(), g = $r(), p = xA();\n  function f(A, C) {\n    const S = A.size, R = s.getPositions(C);\n    for (let I = 0; I < R.length; I++) {\n      const N = R[I][0], M = R[I][1];\n      for (let D = -1; D <= 7; D++)\n        if (!(N + D <= -1 || S <= N + D))\n          for (let B = -1; B <= 7; B++)\n            M + B <= -1 || S <= M + B || (D >= 0 && D <= 6 && (B === 0 || B === 6) || B >= 0 && B <= 6 && (D === 0 || D === 6) || D >= 2 && D <= 4 && B >= 2 && B <= 4 ? A.set(N + D, M + B, !0, !0) : A.set(N + D, M + B, !1, !0));\n    }\n  }\n  function y(A) {\n    const C = A.size;\n    for (let S = 8; S < C - 8; S++) {\n      const R = S % 2 === 0;\n      A.set(S, 6, R, !0), A.set(6, S, R, !0);\n    }\n  }\n  function x(A, C) {\n    const S = n.getPositions(C);\n    for (let R = 0; R < S.length; R++) {\n      const I = S[R][0], N = S[R][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 ? A.set(I + M, N + D, !0, !0) : A.set(I + M, N + D, !1, !0);\n    }\n  }\n  function b(A, C) {\n    const S = A.size, R = u.getEncodedBits(C);\n    let I, N, M;\n    for (let D = 0; D < 18; D++)\n      I = Math.floor(D / 3), N = D % 3 + S - 8 - 3, M = (R >> D & 1) === 1, A.set(I, N, M, !0), A.set(N, I, M, !0);\n  }\n  function k(A, C, S) {\n    const R = A.size, I = m.getEncodedBits(C, S);\n    let N, M;\n    for (N = 0; N < 15; N++)\n      M = (I >> N & 1) === 1, N < 6 ? A.set(N, 8, M, !0) : N < 8 ? A.set(N + 1, 8, M, !0) : A.set(R - 15 + N, 8, M, !0), N < 8 ? A.set(8, R - N - 1, M, !0) : N < 9 ? A.set(8, 15 - N - 1 + 1, M, !0) : A.set(8, 15 - N - 1, M, !0);\n    A.set(R - 8, 8, 1, !0);\n  }\n  function v(A, C) {\n    const S = A.size;\n    let R = -1, I = S - 1, N = 7, M = 0;\n    for (let D = S - 1; D > 0; D -= 2)\n      for (D === 6 && D--; ; ) {\n        for (let B = 0; B < 2; B++) if (!A.isReserved(I, D - B)) {\n          let G = !1;\n          M < C.length && (G = (C[M] >>> N & 1) === 1), A.set(I, D - B, G), N--, N === -1 && (M++, N = 7);\n        }\n        if (I += R, I < 0 || S <= I) {\n          I -= R, R = -R;\n          break;\n        }\n      }\n  }\n  function w(A, C, S) {\n    const R = new t();\n    S.forEach(function(M) {\n      R.put(M.mode.bit, 4), R.put(M.getLength(), g.getCharCountIndicator(M.mode, A)), M.write(R);\n    });\n    const I = (r.getSymbolTotalCodewords(A) - d.getTotalCodewordsCount(A, C)) * 8;\n    for (R.getLengthInBits() + 4 <= I && R.put(0, 4); R.getLengthInBits() % 8 !== 0; ) R.putBit(0);\n    const N = (I - R.getLengthInBits()) / 8;\n    for (let M = 0; M < N; M++) R.put(M % 2 ? 17 : 236, 8);\n    return E(R, A, C);\n  }\n  function E(A, C, S) {\n    const R = r.getSymbolTotalCodewords(C), I = R - d.getTotalCodewordsCount(C, S), N = d.getBlocksCount(C, S), M = N - R % N, D = Math.floor(R / N), B = Math.floor(I / N), G = B + 1, W = D - B, H = new l(W);\n    let ee = 0;\n    const Z = new Array(N), Ee = new Array(N);\n    let ue = 0;\n    const de = new Uint8Array(A.buffer);\n    for (let Se = 0; Se < N; Se++) {\n      const me = Se < M ? B : G;\n      Z[Se] = de.slice(ee, ee + me), Ee[Se] = H.encode(Z[Se]), ee += me, ue = Math.max(ue, me);\n    }\n    const Y = new Uint8Array(R);\n    let ve = 0, ae, be;\n    for (ae = 0; ae < ue; ae++) for (be = 0; be < N; be++) ae < Z[be].length && (Y[ve++] = Z[be][ae]);\n    for (ae = 0; ae < W; ae++) for (be = 0; be < N; be++) Y[ve++] = Ee[be][ae];\n    return Y;\n  }\n  function P(A, C, S, R) {\n    let I;\n    if (Array.isArray(A)) I = p.fromArray(A);\n    else if (typeof A == \"string\") {\n      let B = C;\n      if (!B) {\n        const G = p.rawSplit(A);\n        B = u.getBestVersionForData(G, S);\n      }\n      I = p.fromString(A, B || 40);\n    } else throw new Error(\"Invalid data\");\n    const N = u.getBestVersionForData(I, S);\n    if (!N) throw new Error(\"The amount of data is too big to be stored in a QR Code\");\n    if (!C) C = N;\n    else if (C < N) throw new Error(`\nThe chosen QR Code version cannot contain this amount of data.\nMinimum version required to store current data is: ` + N + `.\n`);\n    const M = w(C, S, I), D = new i(r.getSymbolSize(C));\n    return f(D, C), y(D), x(D, C), k(D, S, 0), C >= 7 && b(D, C), v(D, M), isNaN(R) && (R = a.getBestMask(D, k.bind(null, D, S))), a.applyMask(R, D), k(D, S, R), {\n      modules: D,\n      version: C,\n      errorCorrectionLevel: S,\n      maskPattern: R,\n      segments: I\n    };\n  }\n  e.create = function(C, S) {\n    if (typeof C > \"u\" || C === \"\") throw new Error(\"No input text\");\n    let R = o.M, I, N;\n    return typeof S < \"u\" && (R = o.from(S.errorCorrectionLevel, o.M), I = u.from(S.version), N = a.from(S.maskPattern), S.toSJISFunc && r.setToSJISFunction(S.toSJISFunc)), P(C, I, R, N);\n  };\n})), Tb = /* @__PURE__ */ te(((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(n) {\n      return [n, n];\n    }))), t.length === 6 && t.push(\"F\", \"F\");\n    const i = parseInt(t.join(\"\"), 16);\n    return {\n      r: i >> 24 & 255,\n      g: i >> 16 & 255,\n      b: i >> 8 & 255,\n      a: i & 255,\n      hex: \"#\" + t.slice(0, 6).join(\"\")\n    };\n  }\n  e.getOptions = function(t) {\n    t || (t = {}), t.color || (t.color = {});\n    const i = typeof t.margin > \"u\" || t.margin === null || t.margin < 0 ? 4 : t.margin, n = t.width && t.width >= 21 ? t.width : void 0, s = t.scale || 4;\n    return {\n      width: n,\n      scale: n ? 4 : s,\n      margin: i,\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, i) {\n    return i.width && i.width >= t + i.margin * 2 ? i.width / (t + i.margin * 2) : i.scale;\n  }, e.getImageWidth = function(t, i) {\n    const n = e.getScale(t, i);\n    return Math.floor((t + i.margin * 2) * n);\n  }, e.qrToImageData = function(t, i, n) {\n    const s = i.modules.size, a = i.modules.data, d = e.getScale(s, n), l = Math.floor((s + n.margin * 2) * d), u = n.margin * d, m = [n.color.light, n.color.dark];\n    for (let g = 0; g < l; g++) for (let p = 0; p < l; p++) {\n      let f = (g * l + p) * 4, y = n.color.light;\n      if (g >= u && p >= u && g < l - u && p < l - u) {\n        const x = Math.floor((g - u) / d), b = Math.floor((p - u) / d);\n        y = m[a[x * s + b] ? 1 : 0];\n      }\n      t[f++] = y.r, t[f++] = y.g, t[f++] = y.b, t[f] = y.a;\n    }\n  };\n})), AA = /* @__PURE__ */ te(((e) => {\n  var r = Tb();\n  function o(i, n, s) {\n    i.clearRect(0, 0, n.width, n.height), n.style || (n.style = {}), n.height = s, n.width = s, n.style.height = s + \"px\", n.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(n, 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(n.modules.size, d), m = l.getContext(\"2d\"), g = m.createImageData(u, u);\n    return r.qrToImageData(g.data, n, d), o(m, l, u), m.putImageData(g, 0, 0), l;\n  }, e.renderToDataURL = function(n, 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(n, s, d), u = d.type || \"image/png\", m = d.rendererOpts || {};\n    return l.toDataURL(u, m.quality);\n  };\n})), EA = /* @__PURE__ */ te(((e) => {\n  var r = Tb();\n  function o(n, s) {\n    const a = n.a / 255, d = s + '=\"' + n.hex + '\"';\n    return a < 1 ? d + \" \" + s + '-opacity=\"' + a.toFixed(2).slice(1) + '\"' : d;\n  }\n  function t(n, s, a) {\n    let d = n + s;\n    return typeof a < \"u\" && (d += \" \" + a), d;\n  }\n  function i(n, s, a) {\n    let d = \"\", l = 0, u = !1, m = 0;\n    for (let g = 0; g < n.length; g++) {\n      const p = Math.floor(g % s), f = Math.floor(g / s);\n      !p && !u && (u = !0), n[g] ? (m++, g > 0 && p > 0 && n[g - 1] || (d += u ? t(\"M\", p + a, 0.5 + f + a) : t(\"m\", l, 0), l = 0, u = !1), p + 1 < s && n[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=\"' + i(m, u, l.margin) + '\"/>', y = 'viewBox=\"0 0 ' + g + \" \" + g + '\"', x = '<svg xmlns=\"http://www.w3.org/2000/svg\" ' + (l.width ? 'width=\"' + l.width + '\" height=\"' + l.width + '\" ' : \"\") + y + ' shape-rendering=\"crispEdges\">' + p + f + `</svg>\n`;\n    return typeof d == \"function\" && d(null, x), x;\n  };\n})), SA = /* @__PURE__ */ te(((e) => {\n  var r = sA(), o = _A(), t = AA(), i = EA();\n  function n(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, y) {\n        try {\n          f(s(o.create(d, l), a, l));\n        } catch (x) {\n          y(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 = n.bind(null, t.render), e.toDataURL = n.bind(null, t.renderToDataURL), e.toString = n.bind(null, function(s, a, d) {\n    return i.render(s, d);\n  });\n}));\nfunction CA({ value: e, size: r = 200, alt: o = \"QR code\", className: t = \"\" }) {\n  const i = z(null), [n, s] = T(null);\n  return F(() => {\n    const a = i.current;\n    if (!a || !e) return;\n    let d = !1;\n    return Promise.resolve().then(() => /* @__PURE__ */ ny(SA(), 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]), n ? /* @__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: i,\n    className: `cedros-totp-qr-image ${t}`,\n    role: \"img\",\n    \"aria-label\": o,\n    style: { borderRadius: \"0.5rem\" }\n  });\n}\nvar TA = h((() => {\n  K();\n}));\nfunction RA({ onSuccess: e, onCancel: r, className: o = \"\" }) {\n  const { setupState: t, setupData: i, isLoading: n, error: s, beginSetup: a, enableTotp: d, clearError: l, reset: u } = _b(), [m, g] = T(\"qr\"), [p, f] = T(\"\"), [y, x] = T(!1), [b, k] = T(!1), v = z(null);\n  F(() => {\n    t === \"idle\" && a().catch(() => {\n    });\n  }, [t, a]), F(() => {\n    t === \"success\" && e?.();\n  }, [t, e]);\n  const w = async () => {\n    i?.secret && (await navigator.clipboard.writeText(i.secret), x(!0), v.current !== null && window.clearTimeout(v.current), v.current = window.setTimeout(() => x(!1), 2e3));\n  }, E = async () => {\n    if (i?.recoveryCodes) {\n      const C = i.recoveryCodes.join(`\n`);\n      await navigator.clipboard.writeText(C);\n    }\n  }, P = async () => {\n    try {\n      await d(p);\n    } catch {\n      f(\"\");\n    }\n  }, A = () => {\n    u(), r?.();\n  };\n  return F(() => () => {\n    v.current !== null && (window.clearTimeout(v.current), v.current = null);\n  }, []), t === \"loading\" || t === \"idle\" && n ? /* @__PURE__ */ c(\"div\", {\n    className: `cedros-totp-setup ${o}`,\n    children: /* @__PURE__ */ c(\"div\", {\n      className: \"cedros-totp-loading\",\n      children: /* @__PURE__ */ c(q, {\n        size: \"lg\",\n        label: \"Setting up two-factor authentication\"\n      })\n    })\n  }) : t === \"error\" && !i ? /* @__PURE__ */ _(\"div\", {\n    className: `cedros-totp-setup ${o}`,\n    children: [/* @__PURE__ */ c(pe, {\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: A,\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  }) : i ? /* @__PURE__ */ c(\"div\", {\n    className: `cedros-totp-setup ${o}`,\n    children: /* @__PURE__ */ _(qe, {\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(CA, {\n                value: i.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: i.secret\n                }), /* @__PURE__ */ c(\"button\", {\n                  type: \"button\",\n                  className: \"cedros-button cedros-button-ghost cedros-button-sm\",\n                  onClick: w,\n                  \"aria-label\": \"Copy secret\",\n                  children: y ? \"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: A,\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: i.recoveryCodes.map((C, S) => /* @__PURE__ */ c(\"code\", {\n                className: \"cedros-totp-backup-code\",\n                children: C\n              }, S))\n            }),\n            /* @__PURE__ */ c(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-outline cedros-button-md cedros-button-full\",\n              onClick: E,\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: b,\n                onChange: (C) => k(C.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: !b,\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(ii, {\n              value: p,\n              onChange: f,\n              onComplete: P,\n              disabled: n,\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: n,\n                children: \"Back\"\n              }), /* @__PURE__ */ c(\"button\", {\n                type: \"button\",\n                className: \"cedros-button cedros-button-primary cedros-button-md\",\n                onClick: P,\n                disabled: n || p.length !== 6,\n                children: n ? /* @__PURE__ */ _(he, { children: [/* @__PURE__ */ c(q, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", { children: \"Verifying...\" })] }) : \"Enable 2FA\"\n              })]\n            })\n          ]\n        })\n      ]\n    })\n  }) : null;\n}\nvar Rb, dc = h((() => {\n  K(), Ab(), sn(), TA(), Q(), ke(), mo(), Rb = [\n    \"qr\",\n    \"backup\",\n    \"verify\"\n  ];\n}));\nfunction PA(e) {\n  return e.some((r) => r === \"email\" || r === \"password\");\n}\nfunction LA(e, r) {\n  return e ? e.map((o) => o === \"recoveryCode\" ? \"recovery\" : o) : !r || r.length === 0 ? Pb : PA(r) ? Lb : Nb;\n}\nfunction NA(e) {\n  return e[0] ?? \"password\";\n}\nfunction pt(e, r) {\n  return r.includes(e);\n}\nfunction IA({ onStatusChange: e, className: r = \"\" }) {\n  const { status: o, isLoading: t, error: i, getStatus: n, disableTotp: s, regenerateBackupCodes: a, clearError: d } = _b(), l = yu(), [u, m] = T(\"status\"), [g, p] = T(\"password\"), [f, y] = T(\"\"), [x, b] = T(\"\"), [k, v] = T(\"\"), [w, E] = T(\"\"), [P, A] = T(null), [C, S] = T(!1), [R, I] = T(null), N = LA(o?.disableMethods, l?.user?.authMethods), M = NA(N), D = pt(g, N) ? g : M, B = pt(\"password\", N), G = pt(\"code\", N), W = pt(\"recovery\", N), H = D === \"password\" && G ? \"code\" : D === \"code\" && W ? \"recovery\" : D === \"code\" && B || D === \"recovery\" && B ? \"password\" : D === \"recovery\" && G ? \"code\" : null, ee = H === \"password\" ? \"Use password\" : H === \"code\" ? \"Use authenticator code\" : H === \"recovery\" ? \"Use recovery code\" : \"\", Z = B && !G ? \"This will make your account less secure. Enter your password to confirm.\" : B ? \"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    n().catch(() => {\n    });\n  }, [n]);\n  const Ee = L(() => {\n    m(\"status\"), e?.(!0);\n  }, [e]), ue = () => {\n    y(\"\"), b(\"\"), v(\"\"), p(M), I(null);\n  }, de = (me) => {\n    y(\"\"), b(\"\"), v(\"\"), p(me), I(null);\n  }, Y = () => D === \"code\" ? { code: x } : D === \"recovery\" ? { recoveryCode: k } : { password: f }, ve = D === \"code\" ? x.length === 6 : D === \"recovery\" ? k.trim().length > 0 : f.length > 0, ae = async () => {\n    S(!0), I(null);\n    try {\n      await s(Y()), m(\"status\"), ue(), e?.(!1);\n    } catch (me) {\n      I(me instanceof Error ? me.message : \"Failed to disable 2FA\"), y(\"\"), b(\"\"), v(\"\");\n    } finally {\n      S(!1);\n    }\n  }, be = async () => {\n    S(!0), I(null);\n    try {\n      A((await a(w)).recoveryCodes), E(\"\");\n    } catch (me) {\n      I(me instanceof Error ? me.message : \"Failed to regenerate codes\"), E(\"\");\n    } finally {\n      S(!1);\n    }\n  }, Se = async () => {\n    P && await navigator.clipboard.writeText(P.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(q, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", { children: \"Loading two-factor authentication…\" })]\n      })\n    })\n  }) : i && !o ? /* @__PURE__ */ _(\"div\", {\n    className: `cedros-totp-settings ${r}`,\n    children: [/* @__PURE__ */ c(pe, {\n      error: i,\n      onDismiss: d\n    }), /* @__PURE__ */ c(\"button\", {\n      type: \"button\",\n      className: \"cedros-button cedros-button-primary cedros-button-md\",\n      onClick: () => n(),\n      children: \"Retry\"\n    })]\n  }) : u === \"setup\" ? /* @__PURE__ */ c(\"div\", {\n    className: `cedros-totp-settings ${r}`,\n    children: /* @__PURE__ */ c(RA, {\n      onSuccess: Ee,\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: Z\n        }),\n        R && /* @__PURE__ */ c(\"div\", {\n          className: \"cedros-totp-error\",\n          children: /* @__PURE__ */ c(pe, {\n            error: {\n              code: \"UNKNOWN_ERROR\",\n              message: R\n            },\n            onDismiss: () => I(null)\n          })\n        }),\n        /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-totp-verify-input\",\n          children: [\n            D === \"password\" && /* @__PURE__ */ c(Ve, {\n              label: \"Password\",\n              placeholder: \"Enter your password\",\n              value: f,\n              onChange: (me) => y(me.target.value),\n              disabled: C,\n              autoFocus: !0\n            }),\n            D === \"code\" && /* @__PURE__ */ c(ii, {\n              value: x,\n              onChange: b,\n              onComplete: () => {\n              },\n              disabled: C,\n              autoFocus: !0\n            }),\n            D === \"recovery\" && /* @__PURE__ */ _(he, { 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: k,\n              onChange: (me) => v(me.target.value),\n              disabled: C,\n              autoFocus: !0,\n              autoComplete: \"one-time-code\"\n            })] }),\n            H && /* @__PURE__ */ c(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-ghost cedros-button-sm\",\n              onClick: () => de(H),\n              disabled: C,\n              children: ee\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\"), ue();\n            },\n            disabled: C,\n            children: \"Cancel\"\n          }), /* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-danger cedros-button-md\",\n            onClick: ae,\n            disabled: C || !ve,\n            children: C ? /* @__PURE__ */ _(he, { children: [/* @__PURE__ */ c(q, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", { children: \"Disabling...\" })] }) : \"Disable 2FA\"\n          })]\n        })\n      ]\n    })\n  }) : u === \"regenerate\" ? P ? /* @__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: P.map((me, xe) => /* @__PURE__ */ c(\"code\", {\n            className: \"cedros-totp-backup-code\",\n            children: me\n          }, xe))\n        }),\n        /* @__PURE__ */ c(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-outline cedros-button-md cedros-button-full\",\n          onClick: Se,\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\"), A(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        R && /* @__PURE__ */ c(\"div\", {\n          className: \"cedros-totp-error\",\n          children: /* @__PURE__ */ c(pe, {\n            error: {\n              code: \"UNKNOWN_ERROR\",\n              message: R\n            },\n            onDismiss: () => I(null)\n          })\n        }),\n        /* @__PURE__ */ c(\"div\", {\n          className: \"cedros-totp-verify-input\",\n          children: /* @__PURE__ */ c(ii, {\n            value: w,\n            onChange: E,\n            onComplete: be,\n            disabled: C,\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\"), E(\"\"), I(null);\n            },\n            disabled: C,\n            children: \"Cancel\"\n          }), /* @__PURE__ */ c(\"button\", {\n            type: \"button\",\n            className: \"cedros-button cedros-button-primary cedros-button-md\",\n            onClick: be,\n            disabled: C || w.length !== 6,\n            children: C ? /* @__PURE__ */ _(he, { children: [/* @__PURE__ */ c(q, { 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(M), 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, MA = h((() => {\n  K(), Ab(), ne(), dc(), sn(), Fr(), Q(), ke(), Pb = [\n    \"password\",\n    \"code\",\n    \"recovery\"\n  ], Lb = [\"password\"], Nb = [\"code\", \"recovery\"];\n})), DA = h((() => {\n  sn(), dc(), ec(), MA();\n}));\nfunction cn() {\n  const [e, r] = T({\n    open: !1,\n    options: Ib\n  }), o = z(null);\n  F(() => () => {\n    o.current?.(!1), o.current = null;\n  }, []);\n  const t = L((n) => new Promise((s) => {\n    o.current?.(!1), o.current = s, r({\n      open: !0,\n      options: n\n    });\n  }), []), i = L((n) => {\n    o.current?.(n), 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: L(() => i(!0), [i]),\n      onCancel: L(() => i(!1), [i])\n    }\n  };\n}\nvar Ib, ln = h((() => {\n  K(), Ib = { title: \"\" };\n}));\nfunction zA({ cancelLabel: e, cancelRef: r, className: o, closeLabel: t, confirmLabel: i, confirmRef: n, 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: (y) => {\n      y.target === y.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(OA, {\n        cancelLabel: e,\n        cancelRef: r,\n        closeLabel: t,\n        confirmLabel: i,\n        confirmRef: n,\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 OA(e) {\n  return e.usesAdminContract ? /* @__PURE__ */ _(he, { 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(Xl, { ...e })\n  })] }) : /* @__PURE__ */ _(he, { 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(Xl, { ...e })\n  ] });\n}\nfunction Xl({ cancelLabel: e, cancelRef: r, confirmLabel: o, confirmRef: t, destructive: i, onCancel: n, 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 ${i ? \"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: n,\n      children: e\n    }), /* @__PURE__ */ c(\"button\", {\n      ref: t,\n      type: \"button\",\n      className: `${u}cedros-button cedros-button-md ${i ? \"cedros-button-danger\" : \"cedros-button-primary\"}`,\n      onClick: s,\n      children: o\n    })]\n  });\n}\nvar UA = h((() => {\n}));\nfunction Nr({ open: e, title: r, description: o, confirmLabel: t, cancelLabel: i, destructive: n = !1, onConfirm: s, onCancel: a, className: d = \"\" }) {\n  const l = ie(), u = z(null), m = z(null), g = z(null), p = Ke(), f = `${p}-title`, y = `${p}-desc`;\n  return BA({\n    open: e,\n    destructive: n,\n    onCancel: a,\n    dialogRef: u,\n    cancelRef: g,\n    confirmRef: m\n  }), !e || typeof document > \"u\" ? null : /* @__PURE__ */ c(zA, {\n    cancelLabel: i ?? 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: y,\n    destructive: n,\n    dialogRef: u,\n    onCancel: a,\n    onConfirm: s,\n    title: r,\n    titleId: f\n  });\n}\nfunction BA(e) {\n  const r = z(e.onCancel);\n  F(() => {\n    r.current = e.onCancel;\n  }, [e.onCancel]), F(() => {\n    if (!e.open) return;\n    const o = document.activeElement;\n    (e.destructive ? e.cancelRef.current : e.confirmRef.current)?.focus();\n    const t = (n) => VA(n, e.dialogRef, r.current);\n    document.addEventListener(\"keydown\", t);\n    const i = document.body.style.overflow;\n    return document.body.style.overflow = \"hidden\", () => {\n      document.removeEventListener(\"keydown\", t), document.body.style.overflow = i, o instanceof HTMLElement && o.focus();\n    };\n  }, [\n    e.cancelRef,\n    e.confirmRef,\n    e.destructive,\n    e.dialogRef,\n    e.open\n  ]);\n}\nfunction VA(e, r, o) {\n  if (e.key === \"Escape\") {\n    e.preventDefault(), o();\n    return;\n  }\n  if (e.key !== \"Tab\" || !r.current) return;\n  const t = r.current.querySelectorAll(Mb);\n  if (t.length === 0) return;\n  const i = t[0], n = t[t.length - 1];\n  e.shiftKey && document.activeElement === i ? (e.preventDefault(), n.focus()) : !e.shiftKey && document.activeElement === n && (e.preventDefault(), i.focus());\n}\nvar Mb, un = h((() => {\n  K(), J(), UA(), Mb = 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n}));\nfunction FA({ sessions: e, isLoading: r = !1, error: o, onRevokeAll: t, onRefresh: i, className: n = \"\" }) {\n  const { confirm: s, dialogProps: a } = cn(), [d, l] = T(!1), [u, m] = T(!1), [g, p] = T(null), [f, y] = T(!1), x = Ke(), b = z(!1), k = z(!1), v = z(null), w = V(() => e.filter((S) => !S.isCurrent).length, [e]), E = V(() => [...e].sort((S, R) => Number(R.isCurrent) - Number(S.isCurrent)), [e]), P = f ? E : E.slice(0, 3), A = L(async () => {\n    if (!(!t || k.current || r) && e.filter((S) => !S.isCurrent).length !== 0) {\n      if (k.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      }) || !b.current) {\n        k.current = !1;\n        return;\n      }\n      l(!0), m(!1), p(null);\n      try {\n        await t(), b.current && m(!0);\n      } catch {\n        b.current && p(\"Could not sign out of other sessions. Please try again.\");\n      } finally {\n        k.current = !1, b.current && l(!1);\n      }\n    }\n  }, [\n    s,\n    t,\n    e,\n    r\n  ]);\n  F(() => (b.current = !0, () => {\n    b.current = !1;\n  }), []), F(() => {\n    u && v.current?.focus();\n  }, [u]);\n  const C = i && /* @__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 i();\n      } catch {\n        b.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 ${n}`,\n    children: [\n      /* @__PURE__ */ c(q, { 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 ${n}`,\n    children: [\n      /* @__PURE__ */ c(pe, { error: o }),\n      C,\n      /* @__PURE__ */ c(Nr, { ...a })\n    ]\n  }) : e.length === 0 ? /* @__PURE__ */ _(\"div\", {\n    className: `cedros-session-list cedros-session-list-empty ${n}`,\n    children: [\n      /* @__PURE__ */ c(\"p\", { children: \"No active sessions found.\" }),\n      g && /* @__PURE__ */ c(pe, { error: g }),\n      C,\n      /* @__PURE__ */ c(Nr, { ...a })\n    ]\n  }) : /* @__PURE__ */ _(\"div\", {\n    className: `cedros-session-list ${n}`,\n    \"aria-busy\": r || d,\n    children: [\n      (o || g) && /* @__PURE__ */ c(pe, { error: o || g }),\n      u && /* @__PURE__ */ _(\"div\", {\n        ref: v,\n        className: \"cedros-session-success\",\n        role: \"status\",\n        tabIndex: -1,\n        children: [/* @__PURE__ */ c(KA, {}), /* @__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((S) => /* @__PURE__ */ c(jA, { session: S }, S.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: () => y((S) => !S),\n        children: f ? \"Show fewer sessions\" : `Show all ${e.length} sessions`\n      }),\n      (i || t && w > 0) && /* @__PURE__ */ _(\"div\", {\n        className: \"cedros-session-actions\",\n        children: [C, t && w > 0 && /* @__PURE__ */ c(\"button\", {\n          type: \"button\",\n          className: \"cedros-button cedros-button-outline cedros-button-sm\",\n          onClick: A,\n          disabled: d || r,\n          children: d ? /* @__PURE__ */ _(he, { children: [/* @__PURE__ */ c(q, { 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 jA({ session: e }) {\n  const r = $A(e.userAgent), o = WA(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(HA, { 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 \", qA(e.createdAt)]\n          }),\n          o && /* @__PURE__ */ c(\"span\", {\n            className: \"cedros-session-expiring\",\n            children: \"Expires soon\"\n          })\n        ]\n      })]\n    })]\n  });\n}\nfunction $A(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 qA(e) {\n  const r = new Date(e);\n  if (!Number.isFinite(r.getTime())) return \"at an unknown time\";\n  const o = (/* @__PURE__ */ new Date()).getTime() - r.getTime(), t = Math.floor(o / (1e3 * 60)), i = Math.floor(o / (1e3 * 60 * 60)), n = Math.floor(o / (1e3 * 60 * 60 * 24));\n  return t < 1 ? \"just now\" : t < 60 ? `${t} minute${t > 1 ? \"s\" : \"\"} ago` : i < 24 ? `${i} hour${i > 1 ? \"s\" : \"\"} ago` : n < 7 ? `${n} day${n > 1 ? \"s\" : \"\"} ago` : r.toLocaleDateString(void 0, {\n    year: \"numeric\",\n    month: \"short\",\n    day: \"numeric\"\n  });\n}\nfunction WA(e) {\n  const r = new Date(e), o = /* @__PURE__ */ new Date(), t = 3600 * 1e3, i = r.getTime() - o.getTime();\n  return i > 0 && i < t;\n}\nfunction HA({ 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 KA() {\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 GA = h((() => {\n  K(), ln(), un(), Q(), ke();\n}));\nfunction nr() {\n  return {\n    code: \"SERVER_ERROR\",\n    message: \"Could not verify session data. Please refresh and try again.\"\n  };\n}\nfunction cc(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 YA(e) {\n  if (!cc(e) || !Array.isArray(e.sessions) || !Rt(e.total)) throw nr();\n  const r = e.sessions.map(XA), o = e.limit ?? r.length, t = e.offset ?? 0;\n  if (!Rt(o) || !Rt(t) || r.length > o || r.length > e.total) throw nr();\n  return {\n    sessions: r,\n    total: e.total,\n    limit: o,\n    offset: t\n  };\n}\nfunction XA(e) {\n  if (!cc(e)) throw nr();\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 nr();\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 Db, JA = h((() => {\n  le(), Db = class {\n    client;\n    constructor(e, r, o, t) {\n      this.client = new ce({\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 n = YA(await this.client.get(o === 0 ? \"/sessions\" : `/sessions?offset=${o}`, {\n            cacheTtlMs: 1e3,\n            forceRefresh: e\n          }));\n          if (n.offset !== o) throw nr();\n          t ??= n.total, t = Math.min(t, n.total);\n          for (const s of n.sessions) {\n            if (r.has(s.id)) throw nr();\n            r.set(s.id, s);\n          }\n          if (n.sessions.length === 0 && o < t) throw nr();\n          o += n.sessions.length;\n        } while (o < t);\n        const i = [...r.values()];\n        if (i.filter((n) => n.isCurrent).length > 1) throw nr();\n        return i;\n      } catch (r) {\n        throw O(r, \"Failed to list sessions\");\n      }\n    }\n    async revokeAllSessions() {\n      try {\n        const e = await this.client.delete(\"/sessions\");\n        if (!cc(e) || !Rt(e.revokedCount) || typeof e.message != \"string\") throw nr();\n        return {\n          revokedCount: e.revokedCount,\n          message: e.message\n        };\n      } catch (e) {\n        throw O(e, \"Failed to revoke sessions\");\n      }\n    }\n  };\n}));\nfunction ZA() {\n  const { config: e, authState: r, user: o, _internal: t } = fe(), i = t?.getAccessToken, n = V(() => new Db(e.serverUrl, e.requestTimeout, e.retryAttempts, i), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    i\n  ]), s = V(() => ({\n    apiClient: n,\n    authState: r,\n    userId: o?.id\n  }), [\n    n,\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 = z(null), m = z(0), g = z(null), p = L(async () => {\n    if (!a || u.current !== s || g.current) return;\n    const x = ++m.current;\n    l((b) => ({\n      ...b,\n      isLoading: !0,\n      error: null\n    }));\n    try {\n      const b = await n.listSessions(!0);\n      x === m.current && u.current === s && l({\n        scope: s,\n        sessions: b,\n        isLoading: !1,\n        error: null\n      });\n    } catch (b) {\n      x === m.current && u.current === s && l((k) => ({\n        ...k,\n        isLoading: !1,\n        error: O(b, \"Failed to load sessions\")\n      }));\n    }\n  }, [\n    a,\n    n,\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 = L(() => {\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((k) => ({\n      ...k,\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    }, b = (async () => {\n      try {\n        const k = await n.revokeAllSessions();\n        x(), l((v) => ({\n          ...v,\n          sessions: v.sessions.filter((w) => w.isCurrent)\n        }));\n        try {\n          const v = await n.listSessions(!0);\n          x(), l({\n            scope: s,\n            sessions: v,\n            isLoading: !1,\n            error: null\n          });\n        } catch (v) {\n          x(), l((w) => ({\n            ...w,\n            error: {\n              ...O(v, \"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 k;\n      } catch (k) {\n        throw u.current === s && l((v) => ({\n          ...v,\n          error: O(k, \"Failed to sign out of other sessions\")\n        })), k;\n      } finally {\n        u.current === s && (g.current = null, l((k) => ({\n          ...k,\n          isLoading: !1\n        })));\n      }\n    })();\n    return g.current = b, b;\n  }, [\n    a,\n    n,\n    s\n  ]), y = d.scope === s ? d.sessions : [];\n  return {\n    sessions: y,\n    isLoading: d.scope === s ? d.isLoading : a,\n    error: d.scope === s ? d.error : null,\n    fetchSessions: p,\n    revokeAllSessions: f,\n    otherSessionCount: y.filter((x) => !x.isCurrent).length\n  };\n}\nvar QA = h((() => {\n  K(), ne(), JA(), le();\n}));\nfunction eE({ onPasswordChange: e, onTotpChange: r, className: o = \"\" }) {\n  const { user: t, config: i } = Us(), { sessions: n, isLoading: s, error: a, fetchSessions: d, revokeAllSessions: l } = ZA();\n  return /* @__PURE__ */ _(\"div\", {\n    className: `cedros-account-stack ${o}`.trim(),\n    children: [\n      /* @__PURE__ */ c(tA, { onPasswordChange: () => {\n        d(), e?.();\n      } }),\n      /* @__PURE__ */ c(IA, { 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(FA, {\n          onRefresh: d,\n          sessions: n,\n          isLoading: s,\n          error: a ?? void 0,\n          onRevokeAll: async () => {\n            await l();\n          }\n        }, `${i.serverUrl}:${t?.id ?? \"\"}`)]\n      })\n    ]\n  });\n}\nvar rE = h((() => {\n  nA(), DA(), GA(), ne(), QA();\n}));\nfunction oE() {\n  const { config: e, authState: r, _internal: o } = fe(), [t, i] = T([]), [n, s] = T(!1), [a, d] = T(null), l = V(() => new Wo(e.serverUrl, e.requestTimeout, e.retryAttempts, o?.getAccessToken), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts,\n    o\n  ]), u = L(() => {\n    d(null);\n  }, []), m = L(async () => {\n    if (r !== \"authenticated\") {\n      i([]);\n      return;\n    }\n    s(!0), d(null);\n    try {\n      i(await l.listEmails());\n    } catch (p) {\n      d(p);\n    } finally {\n      s(!1);\n    }\n  }, [l, r]);\n  F(() => {\n    r === \"authenticated\" ? m() : i([]);\n  }, [r, m]);\n  const g = L(async (p) => {\n    s(!0), d(null);\n    try {\n      const f = await p();\n      f ? i(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: n,\n    error: a,\n    fetchEmails: m,\n    addEmail: L(async (p) => {\n      await g(() => l.addEmail(p));\n    }, [l, g]),\n    resendEmail: L(async (p) => {\n      await g(() => l.resendEmail(p));\n    }, [l, g]),\n    removeEmail: L(async (p) => {\n      await g(() => l.removeEmail(p));\n    }, [l, g]),\n    setPrimaryEmail: L(async (p) => {\n      await g(() => l.setPrimaryEmail(p));\n    }, [l, g]),\n    verifyEmail: L(async (p) => {\n      await g(() => l.verifyEmail(p));\n    }, [l, g]),\n    clearError: u\n  };\n}\nvar tE = h((() => {\n  K(), ne(), fi();\n}));\nfunction iE({ showHeader: e = !0, onEmailChange: r, className: o = \"\" }) {\n  const { emails: t, isLoading: i, error: n, addEmail: s, resendEmail: a, removeEmail: d, setPrimaryEmail: l, clearError: u } = oE(), { confirm: m, dialogProps: g } = cn(), [p, f] = T(\"\"), [y, x] = T(null), [b, k] = T(null), v = L(async (A) => {\n    A.preventDefault();\n    const C = p.trim();\n    if (C) {\n      x(null), k(\"add\");\n      try {\n        await s(C), f(\"\"), x(`Verification sent to ${C}.`), r?.();\n      } catch {\n      } finally {\n        k(null);\n      }\n    }\n  }, [\n    s,\n    p,\n    r\n  ]), w = L(async (A) => {\n    x(null), k(`resend:${A.id}`);\n    try {\n      await a(A.id), x(`Verification resent to ${A.email}.`);\n    } catch {\n    } finally {\n      k(null);\n    }\n  }, [a]), E = L(async (A) => {\n    x(null), k(`primary:${A.id}`);\n    try {\n      await l(A.id), x(`${A.email} is now your primary email.`), r?.();\n    } catch {\n    } finally {\n      k(null);\n    }\n  }, [l, r]), P = L(async (A) => {\n    if (await m({\n      title: `Remove ${A.email}?`,\n      description: \"This email will no longer sign in to your account.\",\n      confirmLabel: \"Remove\",\n      destructive: !0\n    })) {\n      x(null), k(`remove:${A.id}`);\n      try {\n        await d(A.id), x(`${A.email} was removed.`);\n      } catch {\n      } finally {\n        k(null);\n      }\n    }\n  }, [m, d]);\n  return i && t.length === 0 ? /* @__PURE__ */ _(\"div\", {\n    className: `cebbwf5-email-management cebbwf5-email-management-loading ${o}`,\n    children: [/* @__PURE__ */ c(q, { 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      n && /* @__PURE__ */ c(pe, {\n        error: n,\n        onDismiss: u\n      }),\n      y && /* @__PURE__ */ c(\"p\", {\n        className: \"cebbwf5-email-management__success\",\n        children: y\n      }),\n      /* @__PURE__ */ _(\"form\", {\n        className: \"cebbwf5-email-management__form\",\n        onSubmit: v,\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: (A) => f(A.target.value),\n            placeholder: \"name@example.com\",\n            \"aria-label\": \"Email address\",\n            disabled: b === \"add\",\n            required: !0\n          })\n        }), /* @__PURE__ */ c(\"button\", {\n          type: \"submit\",\n          className: \"cedros-button cedros-button-primary cedros-button-sm\",\n          disabled: b === \"add\" || p.trim().length === 0,\n          children: b === \"add\" ? /* @__PURE__ */ c(q, { 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((A) => /* @__PURE__ */ c(nE, {\n          email: A,\n          activeAction: b,\n          onResend: w,\n          onMakePrimary: E,\n          onRemove: P\n        }, A.id))\n      }),\n      /* @__PURE__ */ c(Nr, { ...g })\n    ]\n  });\n}\nfunction nE({ email: e, activeAction: r, onResend: o, onMakePrimary: t, onRemove: i }) {\n  const n = 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 \", sE(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: n ? /* @__PURE__ */ c(q, { 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(q, { 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: () => i(e),\n          disabled: d,\n          children: a ? /* @__PURE__ */ c(q, { size: \"sm\" }) : \"Remove\"\n        })\n      ]\n    })]\n  });\n}\nfunction sE(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 zb = h((() => {\n  tE(), ln(), un(), ke(), Q();\n}));\nfunction aE({ onLinkGoogle: e, onLinkApple: r, onAddPasskey: o, onLinkSolana: t, className: i = \"\" }) {\n  const { credentials: n, isLoading: s, error: a, unlinkCredential: d, clearError: l, fetchCredentials: u } = kb(), { registerPasskey: m, isSupported: g } = mm(), { confirm: p, dialogProps: f } = cn(), [y, x] = T(null), [b, k] = T(!1), v = L(async () => {\n    if (o) {\n      o();\n      return;\n    }\n    k(!0);\n    try {\n      await m(), await u();\n    } catch {\n    } finally {\n      k(!1);\n    }\n  }, [\n    o,\n    m,\n    u\n  ]), w = L(async (I) => {\n    const N = I.label || lc[I.credentialType];\n    if (await p({\n      title: `Remove ${N}?`,\n      description: `You won't be able to sign in with \"${N}\" anymore.`,\n      confirmLabel: \"Remove\",\n      destructive: !0\n    })) {\n      x(I.id);\n      try {\n        await d(I.id);\n      } catch {\n      } finally {\n        x(null);\n      }\n    }\n  }, [p, d]), E = new Set(n.map((I) => I.credentialType)), P = e && !E.has(\"oauth_google\"), A = r && !E.has(\"oauth_apple\"), C = (o || g) && !E.has(\"webauthn_passkey\"), S = t && !E.has(\"solana\"), R = P || A || C || S;\n  return s && n.length === 0 ? /* @__PURE__ */ _(\"div\", {\n    className: `cedros-linked-accounts cedros-linked-accounts-loading ${i}`,\n    children: [/* @__PURE__ */ c(q, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", { children: \"Loading linked accounts…\" })]\n  }) : /* @__PURE__ */ _(\"div\", {\n    className: `cedros-linked-accounts ${i}`,\n    children: [\n      a && /* @__PURE__ */ c(pe, {\n        error: {\n          code: \"UNKNOWN_ERROR\",\n          message: a.message\n        },\n        onDismiss: l\n      }),\n      n.length === 0 && !s && /* @__PURE__ */ c(\"p\", {\n        className: \"cedros-linked-accounts-empty\",\n        children: \"No linked sign-in methods found.\"\n      }),\n      n.length > 0 && /* @__PURE__ */ c(\"ul\", {\n        className: \"cedros-linked-credential-list\",\n        children: n.map((I) => /* @__PURE__ */ c(dE, {\n          credential: I,\n          isUnlinking: y === I.id,\n          onUnlink: w\n        }, I.id))\n      }),\n      R && /* @__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            P && /* @__PURE__ */ _(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-outline cedros-button-sm\",\n              onClick: e,\n              children: [/* @__PURE__ */ c(ci, {}), \" 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(li, {}), \" Apple\"]\n            }),\n            C && /* @__PURE__ */ c(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-outline cedros-button-sm\",\n              onClick: v,\n              disabled: b,\n              children: b ? /* @__PURE__ */ c(q, { size: \"sm\" }) : /* @__PURE__ */ _(he, { children: [/* @__PURE__ */ c(No, {}), \" Passkey\"] })\n            }),\n            S && /* @__PURE__ */ _(\"button\", {\n              type: \"button\",\n              className: \"cedros-button cedros-button-outline cedros-button-sm\",\n              onClick: t,\n              children: [/* @__PURE__ */ c(ui, {}), \" Solana\"]\n            })\n          ]\n        })]\n      }),\n      /* @__PURE__ */ c(Nr, { ...f })\n    ]\n  });\n}\nfunction dE({ credential: e, isUnlinking: r, onUnlink: o }) {\n  const t = e.label || lc[e.credentialType];\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(Ob[e.credentialType] || cE, {})\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            Jl(e.createdAt),\n            e.lastUsedAt && /* @__PURE__ */ _(he, { children: [\" · Last used \", Jl(e.lastUsedAt)] }),\n            e.isPrimary && /* @__PURE__ */ c(he, { children: \" · Primary\" })\n          ]\n        })]\n      }),\n      /* @__PURE__ */ c(\"div\", {\n        className: \"cedros-linked-credential__action\",\n        children: /* @__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: e.isPrimary ? \"Cannot remove primary sign-in method\" : \"Remove\",\n          children: r ? /* @__PURE__ */ c(q, { size: \"sm\" }) : \"Remove\"\n        })\n      })\n    ]\n  });\n}\nfunction Jl(e) {\n  const r = new Date(e), o = (/* @__PURE__ */ new Date()).getTime() - r.getTime(), t = Math.floor(o / (1e3 * 60)), i = Math.floor(o / (1e3 * 60 * 60)), n = Math.floor(o / (1e3 * 60 * 60 * 24));\n  return t < 1 ? \"just now\" : t < 60 ? `${t}m ago` : i < 24 ? `${i}h ago` : n < 30 ? `${n}d ago` : r.toLocaleDateString(void 0, {\n    year: \"numeric\",\n    month: \"short\",\n    day: \"numeric\"\n  });\n}\nfunction cE() {\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 lE() {\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 uE() {\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 mE() {\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 lc, Ob, Ub = h((() => {\n  sc(), gm(), ln(), un(), Q(), ke(), no(), lc = {\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  }, Ob = {\n    password: lE,\n    oauth_google: ci,\n    oauth_apple: li,\n    solana: ui,\n    webauthn_passkey: No,\n    webauthn_security_key: No,\n    totp: uE,\n    sso_oidc: mE\n  };\n}));\nfunction gE() {\n  const { config: e, logout: r } = fe(), [o, t] = T(!1), [i, n] = T(null), s = V(() => new ce({\n    baseUrl: e.serverUrl,\n    timeoutMs: e.requestTimeout,\n    retryAttempts: e.retryAttempts\n  }), [\n    e.serverUrl,\n    e.requestTimeout,\n    e.retryAttempts\n  ]), a = V(() => `${e.serverUrl.replace(/\\/$/, \"\")}/account-deletion`, [e.serverUrl]), d = L(() => {\n    n(null);\n  }, []);\n  return {\n    isLoading: o,\n    error: i,\n    accountDeletionUrl: a,\n    requestDeletionEmail: L(async (l) => {\n      t(!0), n(null);\n      try {\n        await s.post(\"/account-deletion/request\", { email: l });\n      } catch (u) {\n        const m = O(u, \"Unable to send the account deletion link. Please try again.\");\n        throw n(m), m;\n      } finally {\n        t(!1);\n      }\n    }, [s]),\n    deleteAccount: L(async (l = Bb) => {\n      t(!0), n(null);\n      try {\n        await s.post(\"/account-deletion/me\", { confirmText: l }), await r().catch(() => {\n        });\n      } catch (u) {\n        const m = O(u, \"Unable to delete the account. Please review the requirements and try again.\");\n        throw n(m), m;\n      } finally {\n        t(!1);\n      }\n    }, [s, r]),\n    clearError: d\n  };\n}\nvar Bb, hE = h((() => {\n  ne(), le(), Bb = \"DELETE\";\n}));\nfunction pE({ onDeleted: e, className: r = \"\" }) {\n  const { deleteAccount: o, isLoading: t, error: i, clearError: n } = gE(), { confirm: s, dialogProps: a } = cn(), [d, l] = T(\"\"), [u, m] = T(null), g = L(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      i && /* @__PURE__ */ c(pe, {\n        error: i,\n        onDismiss: n\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__ */ _(he, { children: [/* @__PURE__ */ c(q, { 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  hE(), ln(), un(), ke(), Q(), Pt = \"DELETE\";\n}));\nfunction fE({ className: e = \"\" }) {\n  const { config: r, _internal: o } = Us(), [t, i] = T([]), [n, s] = T(!0), [a, d] = T(null), [l, u] = T(null), m = V(() => new Gd(r.serverUrl, r.requestTimeout, r.retryAttempts, o?.getAccessToken), [\n    r.serverUrl,\n    r.requestTimeout,\n    r.retryAttempts,\n    o?.getAccessToken\n  ]), g = L(async () => {\n    s(!0), d(null);\n    try {\n      i((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 = L(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 (y) {\n      d(y instanceof Error ? y.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(pe, {\n        error: a,\n        onDismiss: () => d(null)\n      }),\n      n ? /* @__PURE__ */ c(q, { 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: vE(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 vE(e) {\n  return `One-time use.${e.expiresAt ? ` Expires ${new Date(e.expiresAt).toLocaleDateString()}.` : \"\"}`;\n}\nvar bE = h((() => {\n  ne(), K(), mv(), ke(), Q();\n}));\nfunction yE({ defaultSection: e = \"profile\", onClose: r, onPasswordChange: o, onEmailChange: t, onTotpChange: i, onAccountDeleted: n, onLinkGoogle: s, onLinkApple: a, onAddPasskey: d, onLinkSolana: l, className: u = \"\" }) {\n  const [m, g] = T(e), p = Ke(), f = z([]), y = Yr.find((b) => b.id === m) ?? Yr[0], x = (b, k) => {\n    const v = Yr.length;\n    let w;\n    switch (b.key) {\n      case \"ArrowDown\":\n      case \"ArrowRight\":\n        w = (k + 1) % v;\n        break;\n      case \"ArrowUp\":\n      case \"ArrowLeft\":\n        w = (k - 1 + v) % v;\n        break;\n      case \"Home\":\n        w = 0;\n        break;\n      case \"End\":\n        w = v - 1;\n        break;\n      default:\n        return;\n    }\n    b.preventDefault(), g(Yr[w].id), f.current[w]?.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: Yr.map((b, k) => {\n        const v = b.icon, w = b.id === m;\n        return /* @__PURE__ */ _(\"button\", {\n          ref: (E) => {\n            f.current[k] = E;\n          },\n          type: \"button\",\n          role: \"tab\",\n          id: `${p}-tab-${b.id}`,\n          \"aria-selected\": w,\n          \"aria-controls\": `${p}-panel-${b.id}`,\n          tabIndex: w ? 0 : -1,\n          className: `cedros-account__nav-item${w ? \" cedros-account__nav-item--active\" : \"\"}`,\n          onClick: () => g(b.id),\n          onKeyDown: (E) => x(E, k),\n          children: [/* @__PURE__ */ c(\"span\", {\n            className: \"cedros-account__nav-icon\",\n            \"aria-hidden\": \"true\",\n            children: /* @__PURE__ */ c(v, {})\n          }), /* @__PURE__ */ c(\"span\", {\n            className: \"cedros-account__nav-label\",\n            children: b.label\n          })]\n        }, b.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: y.label\n          }), /* @__PURE__ */ c(\"p\", {\n            className: \"cedros-account__description\",\n            children: y.description\n          })]\n        }),\n        /* @__PURE__ */ _(\"div\", {\n          className: \"cedros-account__panel\",\n          children: [\n            m === \"profile\" && /* @__PURE__ */ c(Z2, {}),\n            m === \"emails\" && /* @__PURE__ */ c(\"div\", {\n              className: \"cedros-account-card cedros-account-card--pad\",\n              children: /* @__PURE__ */ c(iE, {\n                showHeader: !1,\n                onEmailChange: t\n              })\n            }),\n            m === \"security\" && /* @__PURE__ */ c(eE, {\n              onPasswordChange: o,\n              onTotpChange: i\n            }),\n            m === \"connected\" && /* @__PURE__ */ c(\"div\", {\n              className: \"cedros-account-card cedros-account-card--pad\",\n              children: /* @__PURE__ */ c(aE, {\n                onLinkGoogle: s,\n                onLinkApple: a,\n                onAddPasskey: d,\n                onLinkSolana: l\n              })\n            }),\n            m === \"invites\" && /* @__PURE__ */ c(fE, {}),\n            m === \"danger\" && /* @__PURE__ */ c(pE, { onDeleted: n })\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 go() {\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 wE() {\n  return /* @__PURE__ */ _(\"svg\", {\n    ...go(),\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 kE() {\n  return /* @__PURE__ */ _(\"svg\", {\n    ...go(),\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 xE() {\n  return /* @__PURE__ */ c(\"svg\", {\n    ...go(),\n    children: /* @__PURE__ */ c(\"path\", { d: \"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\" })\n  });\n}\nfunction _E() {\n  return /* @__PURE__ */ _(\"svg\", {\n    ...go(),\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 AE() {\n  return /* @__PURE__ */ _(\"svg\", {\n    ...go(),\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 EE() {\n  return /* @__PURE__ */ _(\"svg\", {\n    ...go(),\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 Yr, SE = h((() => {\n  Q2(), rE(), zb(), Ub(), Vb(), bE(), Yr = [\n    {\n      id: \"profile\",\n      label: \"Profile\",\n      description: \"This is how others will see you.\",\n      icon: wE\n    },\n    {\n      id: \"emails\",\n      label: \"Emails\",\n      description: \"Add and verify the email addresses you can use to sign in.\",\n      icon: kE\n    },\n    {\n      id: \"security\",\n      label: \"Security\",\n      description: \"Your password, two-factor authentication, and signed-in devices.\",\n      icon: xE\n    },\n    {\n      id: \"connected\",\n      label: \"Connected accounts\",\n      description: \"The ways you can sign in to your account.\",\n      icon: _E\n    },\n    {\n      id: \"invites\",\n      label: \"Invite codes\",\n      description: \"Invite codes available for you to share.\",\n      icon: AE\n    },\n    {\n      id: \"danger\",\n      label: \"Danger zone\",\n      description: \"Permanently delete your account.\",\n      icon: EE\n    }\n  ];\n})), CE = h((() => {\n  SE(), ic(), dn(), sc(), Jd(), xb(), Q(), ke(), bb(), zb(), Ub(), dc(), Vb();\n}));\nfunction Fb(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 uc, jb = h((() => {\n  uc = \"cedros-login-web-styles\";\n})), TE = /* @__PURE__ */ ai({ default: () => RE });\nfunction RE({ props: e, runtimeBaseUrl: r, colorMode: o }) {\n  return /* @__PURE__ */ c(Nv, {\n    config: PE(f2(e, r, o)),\n    children: /* @__PURE__ */ c(NE, {\n      props: e,\n      colorMode: o\n    })\n  });\n}\nfunction PE(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          LE();\n        }\n      }\n    }\n  };\n}\nfunction LE() {\n  typeof window > \"u\" || window.dispatchEvent(new CustomEvent($b, { detail: { source: \"account-workspace\" } }));\n}\nfunction NE({ props: e, colorMode: r }) {\n  const o = ie(), t = pb(e, o), { authState: i, isAuthenticated: n, user: s, logout: a } = tc();\n  return i === \"idle\" || i === \"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(q, { size: \"sm\" }), /* @__PURE__ */ c(\"span\", { children: \"Loading account...\" })]\n    })]\n  }) : n ? /* @__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(yE, { 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: an(t.signInHref),\n        children: t.signInLabel\n      })\n    ]\n  });\n}\nvar $b, IE = h((() => {\n  CE(), Q(), Iv(), dn(), J(), gb(), jb(), io(), oc(), $b = \"cedros-login:logout\", Fb(`${Ns}\n${Ls}`, uc);\n}));\nnu();\nK();\noc();\nvar ME = Ts(() => Promise.resolve().then(() => (IE(), TE)));\nfunction DE({ props: e, runtimeBaseUrl: r, colorMode: o }) {\n  const t = zE(), i = j(D2, {\n    props: e,\n    colorMode: o\n  });\n  return t ? j(Is, { fallback: i }, j(Cs, { fallback: i }, j(ME, {\n    props: e,\n    runtimeBaseUrl: r,\n    colorMode: o\n  }))) : i;\n}\nfunction zE() {\n  const [e, r] = T(!1);\n  return F(() => r(!0), []), e;\n}\noc();\nio();\nvar OE = {\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}, UE = {\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}, BE = {\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}, VE = {\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: Me,\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: Os,\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], FE = [\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], qb = [\n  {\n    ...ft[0],\n    Component: I2\n  },\n  {\n    ...ft[1],\n    Component: C2\n  },\n  {\n    ...ft[2],\n    Component: M2\n  },\n  {\n    ...ft[3],\n    Component: DE\n  }\n], jE = [\n  OE,\n  UE,\n  BE,\n  VE\n], $E = qb.map(({ type: e, Component: r }, o) => ({\n  type: e,\n  render: ({ block: t, siteData: i, colorMode: n }) => j(r, {\n    props: KE(t.props, jE[o]),\n    runtimeBaseUrl: GE(i),\n    colorMode: n\n  })\n})), qE = [\n  pr(0, [Ne(Me, {\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, [Ne(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: Hr(\"/register\", \"Create account\"),\n    secondaryText: \"Already have an account? Sign in instead.\",\n    variant: \"auth\"\n  }), Ne(Me, {\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, [Ne(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: Hr(\"/password-recovery\", \"Recover access\"),\n    secondaryText: \"For your privacy, we won’t confirm whether an email has an account.\",\n    variant: \"auth\"\n  }), Ne(Me, {\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, [Ne(Qe, {\n    eyebrow: \"Account recovery\",\n    title: \"Reset password\",\n    body: \"Choose a new password to restore access to your account.\",\n    primaryLink: Hr(\"/reset-password\", \"Reset password\"),\n    secondaryText: \"This link can only be used once and may expire.\",\n    variant: \"auth\"\n  }), Ne(Me, {\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, [Ne(Qe, {\n    eyebrow: \"Email verification\",\n    title: \"Verify your email\",\n    body: \"Confirm your email address to finish securing your account.\",\n    primaryLink: Hr(\"/verify-email\", \"Verify email\"),\n    secondaryText: \"You can close this page after your email is verified.\",\n    variant: \"auth\"\n  }), Ne(Me, {\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, [Ne(Qe, {\n    eyebrow: \"Instant link\",\n    title: \"Continue signing in\",\n    body: \"Finish signing in with the secure link from your email.\",\n    primaryLink: Hr(\"/instant-link/verify\", \"Continue\"),\n    secondaryText: \"This link can only be used once and may expire.\",\n    variant: \"auth\"\n  }), Ne(Me, {\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, [Ne(Qe, {\n    eyebrow: \"Team invite\",\n    title: \"Accept your invite\",\n    body: \"Sign in with the invited account to join the team.\",\n    primaryLink: Hr(\"/accept-invite\", \"Accept invite\"),\n    secondaryText: \"If you’re signed in with another account, you can switch before accepting.\",\n    variant: \"auth\"\n  }), Ne(Me, {\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, [Ne(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: fu[e],\n    displayName: r,\n    description: o,\n    order: e + 1,\n    contentTypes: [\"page\"]\n  };\n}\nfunction Ne(e, r) {\n  return {\n    type: e,\n    props: r\n  };\n}\nfunction pr(e, r) {\n  const o = FE[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: HE(e, r)\n    }],\n    blocks: r,\n    nativeFallback: \"Display owner-authored content or omit this web-only builder template.\"\n  };\n}\nfunction WE(e) {\n  return [...new Set(e.map((r) => r.type))];\n}\nfunction HE(e, r) {\n  return e === 0 ? [Qe, Me] : WE(r);\n}\nfunction Hr(e, r) {\n  return {\n    kind: \"cedros-link\",\n    href: e,\n    label: r\n  };\n}\nfunction KE(e, r) {\n  const o = Object.keys(r.properties ?? {}), t = {};\n  for (const i of o) Object.prototype.hasOwnProperty.call(e, i) && (t[i] = e[i]);\n  return t;\n}\nfunction GE(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}\ntu();\niu();\njb();\nFb(`${Ns}\n${Ls}`, uc);\nvar YE = {\n  manifest: Fo,\n  contentBlocks: qb,\n  contentBlockRenderers: $E,\n  contentTemplates: qE\n};\nfunction tS() {\n  return YE;\n}\nexport {\n  tS 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}]}