.SkipLink-skipLink-NVcZ7 {
  position: absolute !important;
  background: var(--color-background-highlighted-emphasis-base) !important;
}

  @media (prefers-reduced-motion: no-preference) {.SkipLink-skipLink-NVcZ7 {
    transition: var(--motion-property-primary) var(--motion-duration-200)
}
  }

/* visually hidden when not focused */
.SkipLink-skipLink-NVcZ7:not(:focus-visible) {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  white-space: nowrap;
  width: 1px;
  transform: translateY(-100%);
}

.SkipLink-skipLink-NVcZ7:focus-visible {
  transform: translateY(0%);
  top: var(--unit-space-75);
  left: var(--unit-space-75);
  z-index: var(--elevation-zIndex-xxl) !important;
}

.Toaster-toastRack-_XJg5 {
  position: fixed;
  top: var(--unit-space-300);
  left: 0;
  right: 0;
  margin: 0 auto;
  width: -moz-fit-content;
  width: fit-content;
  z-index: var(--elevation-zIndex-xxl);
}

  .Toaster-toastRack-_XJg5 > div:first-child {
    margin-block-end: var(--unit-space-75);
  }

.ChatToggleButton-chatToggleButton-GfBgq {
  position: relative;
}

.ChatToggleButton-chatToggleButton-GfBgq.ChatToggleButton-hasUnread-wFOyf::after {
  content: '';
  position: absolute;
  inset-block-start: -3px;
  inset-inline-end: -3px;
  width: var(--unit-space-50);
  height: var(--unit-space-50);
  border-radius: var(--unit-border-radius-circle);
  background: var(--color-foreground-info-subtle-base);
  pointer-events: none;
}

.ChatToggleButton-navigationSlot-RPSNO {
  display: inline-grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  vertical-align: middle;
  opacity: 1;
  transition:
    grid-template-columns var(--motion-duration-400)
      var(--motion-timing-standard-ease),
    margin-inline-start var(--motion-duration-400)
      var(--motion-timing-standard-ease),
    opacity var(--motion-duration-300) var(--motion-timing-standard-out);
}

.ChatToggleButton-navigationSlotHidden-Ialr0 {
  grid-template-columns: minmax(0, 0fr);
  margin-inline-start: calc(-1 * var(--unit-space-75));
  opacity: 0;
  pointer-events: none;
}

.ChatToggleButton-navigationSlotInner-Z29OO {
  display: inline-flex;
  align-items: center;
  gap: var(--unit-space-75);
  width: -moz-max-content;
  width: max-content;
  min-width: 0;
}

.ChatToggleButton-navigationSlotInner-Z29OO > * {
  flex: 0 0 auto;
}

.ChatToggleButton-railSlot-mPFTt {
  display: grid;
  width: 100%;
  justify-items: center;
  filter: none;
  scale: 1;
  transform-origin: center;
  transition-property: opacity, filter, scale;
  transition-duration: var(--app-shell-composer-enter-duration, 250ms);
  transition-timing-function: var(
    --app-shell-composer-panel-easing,
    cubic-bezier(0.23, 1, 0.32, 1)
  );
}

/* Use the panel's exit treatment as it opens over the stationary icon. */
.ChatToggleButton-railSlotPanelOpen-uEHss {
  opacity: 0;
  filter: blur(2px);
  scale: 0.98;
  pointer-events: none;
  transition-duration: var(--app-shell-composer-exit-duration, 200ms);
}

@media (prefers-reduced-motion: reduce) {
  .ChatToggleButton-navigationSlot-RPSNO {
    transition: none;
  }
}

.context-shell-RdWVZ {
  /* Gap and clip-delta jump when pin/peek bits change. The few boxes that
   * consume them (spacer, nav, header padding, page lock) interpolate their
   * used width/padding/margin. Do not @property-animate these on the shell —
   * inherited interpolated custom properties restyle the whole app every frame. */
  /* The drawer curve and press scale are component-specific motion values with
   * no exact Ascent tokens. Keep them centralized instead of approximating. */
  --desktop-navigation-easing: cubic-bezier(0.32, 0.72, 0, 1);
  --desktop-navigation-motion-duration: 250ms;
  /* Matches Component Library NavSidebar geometry. The 60px rail, 14px
   * gutter, and 6px row padding have no exact global spacing tokens; token
   * arithmetic would hide the geometry rather than make it semantic. */
  --desktop-navigation-rail-width: 60px;
  --desktop-navigation-gap: var(--desktop-navigation-width, 240px);
  --peek-clip-delta: 0px;
  --desktop-navigation-inline-gutter: 14px;
  --desktop-navigation-row-inline-padding: 6px;
  --desktop-navigation-child-label-padding: var(--unit-space-175);
  /* A 1px sibling rhythm is part of the navigation layout, not a border. */
  --desktop-navigation-item-gap: 1px;
  --desktop-navigation-press-scale: 0.985;
  --desktop-navigation-press-duration: var(--motion-duration-500);

  display: contents;
}

.context-shell-RdWVZ[data-desktop-navigation-open='false']:not(
    [data-desktop-navigation-preview='true']
  ) {
  --desktop-navigation-gap: var(--desktop-navigation-rail-width);
}

.context-shell-RdWVZ[data-desktop-navigation-open='false'][data-desktop-navigation-preview='true'] {
  --peek-clip-delta: calc(
    var(--desktop-navigation-width, 240px) -
      var(--desktop-navigation-rail-width)
  );
}

.AppShell-siteBodyWithNavigation-CYQ_m {
  background-color: var(--color-surface-app-background);
}

.AppShell-siteMainWithComposerPanel-uJuVB {
  flex-basis: 0;
  min-width: 0;
}

/* Keep overflow visible so the sidebar header can cover the page header,
 * but min-height: 0 so the body still shrinks and the page card can scroll.
 * ID beats Site.module `.base .siteBody { overflow: hidden }`. */
#AppShell-SiteBody.AppShell-siteBodyWithNavigation-CYQ_m:not(
    .AppShell-siteBodyMobileResponsive-GhHcA
  ) {
  overflow: visible;
  min-height: 0;
}

.AppShell-siteMainWithNavigation-mSG7o {
  position: relative;
  flex-basis: 0;
  min-width: 0;
  min-height: 0;
  background-color: var(--color-surface-primary-base);
  border-radius: var(--unit-border-radius-xl);
  border: var(--unit-border-width-xs) var(--unit-border-style-solid)
    var(--color-border-subtle-base);
  margin-block: var(--unit-space-50);
  margin-inline-end: var(--unit-space-50);
}

/* Beat Site.module `.base .siteMain { overflow: auto }` so peek clips.
 * Scroll lives on the Page-shaped lock below (Site already lets `.Page`
 * shrink; Page.base’s overflow:hidden is overridden here). */
#AppShell-SiteBody.AppShell-siteBodyWithNavigation-CYQ_m .AppShell-siteMainWithNavigation-mSG7o {
  overflow: hidden;
}

#AppShell-SiteBody.AppShell-siteBodyWithNavigation-CYQ_m
  .AppShell-siteMainWithNavigation-mSG7o
  > .AppShell-pageLock-kb9P6 {
  overflow: auto;
}

.AppShell-siteMainWithNavigation-mSG7o::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  /* ::before sits on the padding box, 1px inside the card border. Inherit
   * would reuse the outer radius on a smaller box and read as a second curve. */
  border-radius: calc(
    var(--unit-border-radius-xl) - var(--unit-border-width-xs)
  );
  pointer-events: none;
  box-shadow: var(--elevation-shadow-inset-200);
  opacity: 0;
}

@media (prefers-reduced-motion: no-preference) {

[data-desktop-navigation-animate='true']
  .AppShell-siteMainWithNavigation-mSG7o::before {
    transition: opacity var(--desktop-navigation-motion-duration)
      var(--desktop-navigation-easing)
}
  }

[data-desktop-navigation-open='false'][data-desktop-navigation-preview='true']
  .AppShell-siteMainWithNavigation-mSG7o::before {
  opacity: 1;
}

.AppShell-pageLock-kb9P6 {
  min-width: 0;
  min-height: 0;
  width: calc(100% + var(--peek-clip-delta, 0px));
  margin-inline-start: calc(-1 * var(--peek-clip-delta, 0px));
}

@media (prefers-reduced-motion: no-preference) {

[data-desktop-navigation-animate='true'] .AppShell-pageLock-kb9P6 {
    transition:
      width var(--desktop-navigation-motion-duration)
        var(--desktop-navigation-easing),
      margin-inline-start var(--desktop-navigation-motion-duration)
        var(--desktop-navigation-easing)
}
  }

.AppShell-siteBodyMobileResponsive-GhHcA {
  position: relative;
}

.AppShell-accountStatusNotice-IqFRm {
  flex: 0 0 auto;
  min-width: 0;
  background-color: var(--color-surface-primary-base);
  border-block-end: var(--unit-border-width-xs) var(--unit-border-style-solid)
    var(--color-border-subtle-base);
}

/* With the sidebar hidden on the mobile shell, give the content card
   symmetric edge spacing (desktop relies on the sidebar for the left gap). */
.AppShell-siteBodyMobileResponsive-GhHcA .AppShell-siteMainWithNavigation-mSG7o {
  margin-inline: var(--unit-space-75);
}

/* Carries inert/aria-hidden without generating a layout box. */
.AppShell-layoutlessWrapper-wtJpy {
  display: contents;
}

.AppShell-mobileNavOverlay-Qy8CI {
  position: absolute;
  inset: 0;
  z-index: var(--elevation-zIndex-lg);
  background-color: var(--color-surface-app-background);
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.AppShell-mobileNavActions-tN1Sa {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: var(--unit-space-50);
  padding: var(--unit-space-75);
}

.AppShell-mobileNavBody-yg5sY {
  flex: 1 1 auto;
  min-height: 0;
}

/* Closed-but-mounted: hidden from layout, paint, and the accessibility tree. */
.AppShell-mobileNavOverlayClosed-Ob4xo {
  display: none;
}

/* Box API does not support single-side border; keep block-end border only here */
.AppShell-headerFallbackBorder-O1XOK {
  border-block-end: var(--unit-border-width-xs) var(--unit-border-style-solid)
    var(--color-border-subtle-base);
}

.AppShell-composerPanelRail-AEPyT,
.AppShell-composerRegion-sluYv {
  --app-shell-composer-panel-easing: cubic-bezier(0.23, 1, 0.32, 1);
  --app-shell-composer-enter-duration: 250ms;
  --app-shell-composer-exit-duration: 200ms;
}

.AppShell-composerPanelRail-AEPyT {
  box-sizing: border-box;
  flex: 0 0 auto;
  margin-inline-start: auto;
  position: relative;
  /* Ease to the toggle's reserved width, rather than hitting a parent min-width
   * before the transition finishes. Editor hosts still collapse to zero. */
  width: var(--app-shell-composer-closed-width, 0px);
  min-width: 0;
  overflow: hidden;
  transition: width var(--app-shell-composer-exit-duration)
    var(--app-shell-composer-panel-easing);
}

.AppShell-composerPanelRail-AEPyT.AppShell-composerPanelExpanded-gBD7G {
  width: calc(
    var(--app-shell-composer-panel-width, 400px) + var(--unit-space-50)
  );
  transition-duration: var(--app-shell-composer-enter-duration);
}

.AppShell-composerPanelRail-AEPyT.AppShell-composerPanelResizing-fkr3x {
  transition-duration: 0s;
}

.AppShell-composerPanelSurface-qBvi2 {
  position: absolute;
  box-sizing: border-box;
  inset-block-start: var(--unit-space-50);
  inset-block-end: var(--unit-space-50);
  inset-inline-end: var(--unit-space-50);
  width: var(--app-shell-composer-panel-width, 400px);
  min-width: 0;
  overflow: hidden;
  isolation: isolate;
  background: var(--color-background-input-base);
  border: var(--unit-border-width-xs) var(--unit-border-style-solid)
    var(--color-border-subtle-base);
  border-radius: var(--unit-border-radius-xl);
  opacity: 0;
  filter: blur(2px);
  scale: 0.98;
  transform-origin: 65% center;
  pointer-events: none;
  transition:
    opacity var(--app-shell-composer-exit-duration)
      var(--app-shell-composer-panel-easing),
    filter var(--app-shell-composer-exit-duration)
      var(--app-shell-composer-panel-easing),
    scale var(--app-shell-composer-exit-duration)
      var(--app-shell-composer-panel-easing);
}

.AppShell-composerPanelSurface-qBvi2.AppShell-composerPanelVisible-fPuFQ {
  opacity: 1;
  filter: none;
  scale: 1;
  pointer-events: auto;
  transform: translateZ(0);
  contain: layout paint;
  transition-duration: var(--app-shell-composer-enter-duration);
}

.AppShell-composerPanelSurface-qBvi2.AppShell-composerPanelResizing-fkr3x {
  transition-duration: 0s;
}

.AppShell-composerPanelContent-tBK9s {
  position: absolute;
  inset: 0;
  display: flex;
  min-width: 0;
  min-height: 0;
}

.AppShell-composerRegion-sluYv {
  display: flex;
  position: relative;
  flex: 0 0 auto;
  min-width: 0;
}

.AppShell-composerRegion-sluYv:has(.AppShell-composerToggleRail-Ha6I2 button) {
  /* SiteMain already supplies the gap beside the rail. */
  --app-shell-composer-closed-width: calc(
    var(--desktop-navigation-rail-width) - var(--unit-space-50)
  );
}

.AppShell-composerRegion-sluYv:has(
  .AppShell-composerToggleRail-Ha6I2
    > [aria-hidden='true']:not([data-chat-toggle-rail-open='true'])
) {
  --app-shell-composer-closed-width: 0px;
}

.AppShell-composerToggleRail-Ha6I2 {
  box-sizing: border-box;
  position: absolute;
  inset-block-start: var(--unit-space-50);
  inset-inline-end: var(--unit-space-50);
  width: calc(var(--desktop-navigation-rail-width) - 2 * var(--unit-space-50));
  min-width: 0;
  padding-block-start: var(--unit-space-50);
}

.AppShell-composerPanelRail-AEPyT:not([aria-hidden='true']) + .AppShell-composerToggleRail-Ha6I2 {
  pointer-events: none;
}

.AppShell-composerToggleRail-Ha6I2:not(:has(button)),
.AppShell-composerToggleRail-Ha6I2:has(
  > [aria-hidden='true']:not([data-chat-toggle-rail-open='true'])
) {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .AppShell-composerPanelRail-AEPyT,
  .AppShell-composerPanelSurface-qBvi2 {
    transition: none;
  }
}

