/* Overlay primitives for Blazorponents. */
.bp-overlay {
  position: relative;
  display: block;
  z-index: var(--bp-overlay-z-index, auto);
}

.bp-overlay-with-backdrop {
  position: relative;
}

.bp-overlay-backdrop {
  position: absolute;
  inset: 0;
  background: var(--bp-backdrop);
  border-radius: var(--bp-overlay-backdrop-radius, 16px);
  z-index: 0;
}

.bp-overlay-panel {
  position: relative;
  z-index: 1;
  background: var(--bp-overlay-bg, var(--bp-surface));
  color: var(--bp-overlay-fg, var(--bp-ink));
  border: 1px solid var(--bp-overlay-border, var(--bp-outline-muted));
  border-radius: var(--bp-overlay-radius, 16px);
  box-shadow: var(--bp-overlay-shadow, var(--bp-shadow-2));
  box-sizing: border-box;
}

.bp-overlay-panel:focus-visible {
  outline: none;
  box-shadow: var(--bp-focus-ring);
}

.bp-dialog,
.bp-modal,
.bp-modal-stack-panel,
.bp-confirm-dialog,
.bp-sheet,
.bp-bottom-sheet,
.bp-drawer,
.bp-drawer-left,
.bp-drawer-right,
.bp-dropdown,
.bp-context-menu,
.bp-flyout,
.bp-popover,
.bp-global-loader {
  padding: var(--bp-overlay-padding, 1rem 1.25rem);
}

.bp-dialog {
  width: var(--bp-dialog-width, auto);
  height: var(--bp-dialog-height, auto);
  max-width: var(--bp-dialog-max-width, min(32rem, 100%));
  max-height: var(--bp-dialog-max-height, none);
}

.bp-dialog[data-size="sm"] {
  --bp-dialog-max-width: min(24rem, 100%);
}

.bp-dialog[data-size="md"] {
  --bp-dialog-max-width: min(32rem, 100%);
}

.bp-dialog[data-size="lg"] {
  --bp-dialog-max-width: min(48rem, 100%);
}

.bp-dialog[data-size="full"] {
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  border-radius: 0;
}

.bp-modal {
  width: var(--bp-modal-width, auto);
  height: var(--bp-modal-height, auto);
  max-width: var(--bp-modal-max-width, min(32rem, 100%));
  max-height: var(--bp-modal-max-height, min(90vh, 100%));
  overflow: hidden;
}

.bp-modal-stack-panel {
  width: var(--bp-modal-stack-width, auto);
  height: var(--bp-modal-stack-height, auto);
  max-width: var(--bp-modal-stack-max-width, min(32rem, 100%));
  max-height: var(--bp-modal-stack-max-height, min(90vh, 100%));
  overflow: hidden;
  grid-area: stack;
}

.bp-modal[data-size="sm"] {
  --bp-modal-max-width: min(24rem, 100%);
}

.bp-modal[data-size="md"] {
  --bp-modal-max-width: min(32rem, 100%);
}

.bp-modal[data-size="lg"] {
  --bp-modal-max-width: min(48rem, 100%);
}

.bp-modal[data-size="full"] {
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  border-radius: 0;
}

.bp-modal-content {
  display: flex;
  flex-direction: column;
  gap: var(--bp-modal-gap, 0.75rem);
  max-height: 100%;
  min-height: 0;
}

.bp-modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--bp-space-2, 0.5rem);
}

.bp-modal-header-content {
  display: grid;
  gap: var(--bp-space-1, 0.35rem);
}

.bp-modal-title {
  margin: 0;
  font-size: 1.1rem;
  line-height: 1.2;
}

.bp-modal-description {
  margin: 0;
  color: var(--bp-ink-muted, #475569);
}

.bp-modal-body {
  display: grid;
  gap: var(--bp-space-2, 0.5rem);
  flex: 1 1 auto;
  overflow: auto;
  min-height: 0;
}

.bp-modal-body-content {
  display: block;
}

.bp-modal-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--bp-space-2, 0.5rem);
}

.bp-modal-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--bp-space-2, 0.5rem);
  width: 100%;
}

.bp-modal-close {
  margin-left: auto;
  border: 1px solid transparent;
  background: transparent;
  color: inherit;
  font: inherit;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  cursor: pointer;
}

.bp-modal-close:focus-visible {
  outline: none;
  box-shadow: var(--bp-focus-ring);
}

.bp-dialog-content {
  display: grid;
  gap: var(--bp-dialog-gap, 0.75rem);
}

.bp-dialog-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--bp-space-2, 0.5rem);
}

.bp-dialog-header-content {
  display: grid;
  gap: var(--bp-space-1, 0.35rem);
}

.bp-dialog-title {
  margin: 0;
  font-size: 1.1rem;
  line-height: 1.2;
}

.bp-dialog-description {
  margin: 0;
  color: var(--bp-ink-muted, #475569);
}

.bp-dialog-body {
  display: grid;
  gap: var(--bp-space-2, 0.5rem);
}

.bp-dialog-body-content {
  display: block;
}

.bp-dialog-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--bp-space-2, 0.5rem);
}

.bp-dialog-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--bp-space-2, 0.5rem);
  width: 100%;
}

.bp-dialog-close {
  margin-left: auto;
  border: 1px solid transparent;
  background: transparent;
  color: inherit;
  font: inherit;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  cursor: pointer;
}

.bp-dialog-close:focus-visible {
  outline: none;
  box-shadow: var(--bp-focus-ring);
}

.bp-confirm-dialog {
  width: var(--bp-confirm-dialog-width, auto);
  height: var(--bp-confirm-dialog-height, auto);
  max-width: var(--bp-confirm-dialog-max-width, min(32rem, 100%));
  max-height: var(--bp-confirm-dialog-max-height, none);
  display: block;
}

.bp-confirm-dialog-content {
  display: grid;
  gap: var(--bp-confirm-dialog-gap, 0.75rem);
}

.bp-confirm-dialog-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--bp-space-2, 0.5rem);
}

.bp-confirm-dialog-header-content {
  display: flex;
  align-items: center;
  gap: var(--bp-space-2, 0.5rem);
}

.bp-confirm-dialog-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--bp-confirm-dialog-icon-size, 2rem);
  height: var(--bp-confirm-dialog-icon-size, 2rem);
  border-radius: 0.75rem;
  background: var(--bp-surface-muted);
  color: var(--bp-accent-strong, #1d4ed8);
  flex: 0 0 auto;
}

.bp-confirm-dialog-title {
  margin: 0;
  font-size: 1.1rem;
  line-height: 1.2;
}

.bp-confirm-dialog-body {
  display: grid;
  gap: var(--bp-space-2, 0.5rem);
}

.bp-confirm-dialog-message {
  margin: 0;
  color: var(--bp-ink-muted, #475569);
}

.bp-confirm-dialog-body-content {
  display: block;
}

.bp-confirm-dialog-footer {
  display: flex;
  justify-content: flex-end;
}

.bp-confirm-dialog-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--bp-space-2, 0.5rem);
  width: 100%;
}

.bp-confirm-dialog-close {
  margin-left: auto;
  border: 1px solid transparent;
  background: transparent;
  color: inherit;
  font: inherit;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  cursor: pointer;
}

.bp-confirm-dialog-close:focus-visible {
  outline: none;
  box-shadow: var(--bp-focus-ring);
}

.bp-confirm-dialog-explicit {
  display: grid;
  gap: 0.35rem;
}

.bp-confirm-dialog-explicit-label {
  font-size: 0.85rem;
  color: var(--bp-ink-muted, #475569);
}

.bp-confirm-dialog-explicit-input {
  width: 100%;
}

.bp-confirm-dialog-destructive .bp-confirm-dialog-confirm {
  --bp-btn-primary-bg: var(--bp-danger, #dc2626);
  --bp-btn-primary-bg-hover: var(--bp-danger-strong, #b91c1c);
  --bp-btn-primary-fg: #ffffff;
}

.bp-sheet-wrapper {
  width: 100%;
  min-height: 100%;
}

.bp-sheet-wrapper-docked {
  width: 100%;
  min-height: 100%;
}

.bp-sheet-wrapper[data-placement="left"],
.bp-sheet-wrapper[data-placement="right"] {
  display: flex;
  align-items: stretch;
}

.bp-sheet-wrapper[data-placement="left"] {
  justify-content: flex-start;
}

.bp-sheet-wrapper[data-placement="right"] {
  justify-content: flex-end;
}

.bp-sheet-wrapper[data-placement="top"],
.bp-sheet-wrapper[data-placement="bottom"] {
  display: flex;
  flex-direction: column;
}

.bp-sheet-wrapper[data-placement="top"] {
  justify-content: flex-start;
}

.bp-sheet-wrapper[data-placement="bottom"] {
  justify-content: flex-end;
}

.bp-sheet {
  width: var(--bp-sheet-width, min(28rem, 100%));
  max-width: var(--bp-sheet-max-width, 100%);
  height: var(--bp-sheet-height, auto);
  max-height: var(--bp-sheet-max-height, 100%);
  overflow: hidden;
}

.bp-sheet[data-placement="top"],
.bp-sheet[data-placement="bottom"] {
  width: var(--bp-sheet-width, 100%);
  max-width: var(--bp-sheet-max-width, 100%);
}

.bp-sheet[data-placement="left"],
.bp-sheet[data-placement="right"] {
  height: var(--bp-sheet-height, 100%);
  max-height: var(--bp-sheet-max-height, 100%);
}

.bp-sheet[data-placement="bottom"] {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.bp-sheet[data-placement="top"] {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.bp-sheet[data-placement="left"] {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.bp-sheet[data-placement="right"] {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.bp-sheet[data-size="sm"] {
  --bp-sheet-width: min(20rem, 100%);
  --bp-sheet-height: min(16rem, 100%);
}

.bp-sheet[data-size="md"] {
  --bp-sheet-width: min(28rem, 100%);
  --bp-sheet-height: min(22rem, 100%);
}

.bp-sheet[data-size="lg"] {
  --bp-sheet-width: min(36rem, 100%);
  --bp-sheet-height: min(28rem, 100%);
}

.bp-sheet[data-size="full"] {
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  border-radius: 0;
}

.bp-sheet-content {
  display: flex;
  flex-direction: column;
  gap: var(--bp-sheet-gap, 0.75rem);
  min-height: 0;
  max-height: 100%;
}

.bp-sheet-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--bp-space-2, 0.5rem);
}

.bp-sheet-header-content {
  display: block;
  min-width: 0;
}

.bp-sheet-body {
  display: block;
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

.bp-sheet-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--bp-space-2, 0.5rem);
}

.bp-sheet-close {
  margin-left: auto;
  border: 1px solid transparent;
  background: transparent;
  color: inherit;
  font: inherit;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  cursor: pointer;
}

.bp-sheet-close:focus-visible {
  outline: none;
  box-shadow: var(--bp-focus-ring);
}

.bp-bottom-sheet-wrapper {
  width: 100%;
}

.bp-bottom-sheet-wrapper-docked {
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.bp-bottom-sheet {
  width: var(--bp-bottom-sheet-width, min(28rem, 100%));
  max-width: var(--bp-bottom-sheet-max-width, 100%);
  height: var(--bp-bottom-sheet-height, auto);
  max-height: var(--bp-bottom-sheet-max-height, min(90vh, 100%));
  min-height: var(--bp-bottom-sheet-min-height, auto);
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  overflow: hidden;
}

.bp-bottom-sheet-fullscreen {
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  min-height: 100%;
  border-radius: 0;
}

.bp-bottom-sheet-content {
  display: flex;
  flex-direction: column;
  gap: var(--bp-bottom-sheet-gap, 0.75rem);
  min-height: 0;
  max-height: 100%;
}

.bp-bottom-sheet-handle {
  display: flex;
  justify-content: center;
}

.bp-bottom-sheet-handle-indicator {
  width: 3rem;
  height: 0.3rem;
  border-radius: 999px;
  background: var(--bp-outline-muted);
}

.bp-bottom-sheet-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--bp-space-2, 0.5rem);
}

.bp-bottom-sheet-header-content {
  display: block;
  min-width: 0;
}

.bp-bottom-sheet-body {
  display: block;
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

.bp-bottom-sheet-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--bp-space-2, 0.5rem);
}

.bp-bottom-sheet-close {
  margin-left: auto;
  border: 1px solid transparent;
  background: transparent;
  color: inherit;
  font: inherit;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  cursor: pointer;
}

.bp-bottom-sheet-close:focus-visible {
  outline: none;
  box-shadow: var(--bp-focus-ring);
}

.bp-drawer-wrapper {
  width: 100%;
  min-height: 100%;
}

.bp-drawer-wrapper-docked {
  width: 100%;
  min-height: 100%;
}

.bp-drawer-wrapper[data-placement="left"],
.bp-drawer-wrapper[data-placement="right"] {
  display: flex;
  align-items: stretch;
}

.bp-drawer-wrapper[data-placement="left"] {
  justify-content: flex-start;
}

.bp-drawer-wrapper[data-placement="right"] {
  justify-content: flex-end;
}

.bp-drawer-wrapper[data-placement="top"],
.bp-drawer-wrapper[data-placement="bottom"] {
  display: flex;
  flex-direction: column;
}

.bp-drawer-wrapper[data-placement="top"] {
  justify-content: flex-start;
}

.bp-drawer-wrapper[data-placement="bottom"] {
  justify-content: flex-end;
}

.bp-drawer,
.bp-drawer-left,
.bp-drawer-right {
  width: var(--bp-drawer-width, min(24rem, 100%));
  max-width: var(--bp-drawer-max-width, 100%);
  min-height: var(--bp-drawer-min-height, 12rem);
  height: var(--bp-drawer-height, auto);
  max-height: var(--bp-drawer-max-height, none);
}

.bp-drawer[data-placement="top"],
.bp-drawer[data-placement="bottom"] {
  width: var(--bp-drawer-width, 100%);
  max-width: var(--bp-drawer-max-width, 100%);
}

.bp-drawer[data-placement="left"],
.bp-drawer[data-placement="right"] {
  height: var(--bp-drawer-height, 100%);
  max-height: var(--bp-drawer-max-height, 100%);
}

.bp-drawer[data-placement="left"] {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.bp-drawer[data-placement="right"] {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.bp-drawer[data-placement="top"] {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.bp-drawer[data-placement="bottom"] {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.bp-drawer[data-variant="mini"] {
  --bp-drawer-width: var(--bp-drawer-mini-width, 6rem);
  --bp-overlay-padding: var(--bp-drawer-mini-padding, 0.75rem);
}

.bp-drawer-content {
  display: grid;
  gap: var(--bp-drawer-gap, 0.75rem);
}

.bp-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--bp-space-2, 0.5rem);
}

.bp-drawer-header-content {
  display: block;
  min-width: 0;
}

.bp-drawer-body {
  display: block;
}

.bp-drawer-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--bp-space-2, 0.5rem);
}

.bp-drawer-close {
  margin-left: auto;
  border: 1px solid transparent;
  background: transparent;
  color: inherit;
  font: inherit;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  cursor: pointer;
}

.bp-drawer-close:focus-visible {
  outline: none;
  box-shadow: var(--bp-focus-ring);
}

.bp-dropdown,
.bp-context-menu,
.bp-flyout,
.bp-popover {
  min-width: 12rem;
  max-width: min(20rem, 100%);
  border-radius: 12px;
}

.bp-dropdown {
  --bp-overlay-padding: var(--bp-dropdown-padding, 0.35rem);
}

.bp-dropdown-overlay.bp-overlay-with-backdrop {
  position: fixed;
  inset: 0;
}

.bp-dropdown[data-positioned="true"] {
  position: fixed;
}

.bp-dropdown[data-match-width="true"] {
  min-width: var(--bp-dropdown-trigger-width, 12rem);
}

.bp-dropdown-trigger {
  display: inline-flex;
  align-items: center;
}

.bp-dropdown-trigger-button {
  border: 1px solid transparent;
  background: transparent;
  color: inherit;
  font: inherit;
  padding: 0;
  cursor: pointer;
}

.bp-dropdown-trigger-button:focus-visible {
  outline: none;
  box-shadow: var(--bp-focus-ring);
}

.bp-dropdown-items {
  display: grid;
  gap: var(--bp-dropdown-gap, 0.25rem);
}

.bp-dropdown-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: var(--bp-dropdown-gap, 0.25rem);
}

.bp-dropdown-list-item {
  display: block;
}

.bp-dropdown-item {
  width: 100%;
  display: flex;
  align-items: center;
  gap: var(--bp-dropdown-item-gap, 0.5rem);
  padding: var(--bp-dropdown-item-padding, 0.4rem 0.6rem);
  border-radius: var(--bp-dropdown-item-radius, 10px);
  border: 1px solid transparent;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.bp-dropdown-item:hover:not(:disabled),
.bp-dropdown-item:focus-visible:not(:disabled) {
  background: var(--bp-dropdown-item-bg-hover, var(--bp-surface-hover));
  border-color: var(--bp-dropdown-item-border-hover, transparent);
}

.bp-dropdown-item:focus-visible {
  outline: none;
  box-shadow: var(--bp-focus-ring);
}

.bp-dropdown-item-disabled,
.bp-dropdown-item:disabled {
  cursor: not-allowed;
  color: var(--bp-ink-muted, #475569);
  opacity: 0.65;
}

.bp-dropdown-item-label {
  flex: 1;
  min-width: 0;
}

.bp-dropdown-empty {
  padding: var(--bp-dropdown-empty-padding, 0.4rem 0.6rem);
  color: var(--bp-ink-muted, #475569);
  font-size: 0.9rem;
}

.bp-flyout {
  --bp-overlay-padding: var(--bp-flyout-padding, 0.75rem 1rem);
}

.bp-flyout[data-positioned="true"] {
  position: fixed;
}

.bp-flyout[data-match-width="true"] {
  min-width: var(--bp-flyout-trigger-width, 12rem);
}

.bp-flyout-trigger {
  display: inline-flex;
  align-items: center;
}

.bp-flyout-trigger-button {
  border: 1px solid transparent;
  background: transparent;
  color: inherit;
  font: inherit;
  padding: 0;
  cursor: pointer;
}

.bp-flyout-trigger-button:focus-visible {
  outline: none;
  box-shadow: var(--bp-focus-ring);
}

.bp-flyout-content {
  display: grid;
  gap: var(--bp-flyout-gap, 0.75rem);
}

.bp-flyout-arrow {
  position: absolute;
  width: var(--bp-flyout-arrow-size, 0.65rem);
  height: var(--bp-flyout-arrow-size, 0.65rem);
  pointer-events: none;
}

.bp-flyout-arrow-tip {
  width: 100%;
  height: 100%;
  display: block;
  background: var(--bp-overlay-bg, var(--bp-surface));
  border-left: 1px solid var(--bp-overlay-border, var(--bp-outline-muted));
  border-top: 1px solid var(--bp-overlay-border, var(--bp-outline-muted));
  box-sizing: border-box;
  transform: rotate(45deg);
}

.bp-flyout[data-placement^="bottom"] .bp-flyout-arrow {
  top: calc(var(--bp-flyout-arrow-size, 0.65rem) / -2);
  left: 50%;
  transform: translateX(-50%);
}

.bp-flyout[data-placement^="top"] .bp-flyout-arrow {
  bottom: calc(var(--bp-flyout-arrow-size, 0.65rem) / -2);
  left: 50%;
  transform: translateX(-50%);
}

.bp-flyout[data-placement^="right"] .bp-flyout-arrow {
  left: calc(var(--bp-flyout-arrow-size, 0.65rem) / -2);
  top: 50%;
  transform: translateY(-50%);
}

.bp-flyout[data-placement^="left"] .bp-flyout-arrow {
  right: calc(var(--bp-flyout-arrow-size, 0.65rem) / -2);
  top: 50%;
  transform: translateY(-50%);
}

.bp-popover {
  --bp-overlay-padding: var(--bp-popover-padding, 0.75rem 1rem);
}

.bp-popover[data-positioned="true"] {
  position: fixed;
}

.bp-popover[data-match-width="true"] {
  min-width: var(--bp-popover-trigger-width, 12rem);
}

.bp-popover-trigger {
  display: inline-flex;
  align-items: center;
}

.bp-popover-content {
  display: grid;
  gap: var(--bp-popover-gap, 0.75rem);
}

.bp-popover-arrow {
  position: absolute;
  width: var(--bp-popover-arrow-size, 0.65rem);
  height: var(--bp-popover-arrow-size, 0.65rem);
  pointer-events: none;
}

.bp-popover-arrow-tip {
  width: 100%;
  height: 100%;
  display: block;
  background: var(--bp-overlay-bg, var(--bp-surface));
  border-left: 1px solid var(--bp-overlay-border, var(--bp-outline-muted));
  border-top: 1px solid var(--bp-overlay-border, var(--bp-outline-muted));
  box-sizing: border-box;
  transform: rotate(45deg);
}

.bp-popover[data-placement^="bottom"] .bp-popover-arrow {
  top: calc(var(--bp-popover-arrow-size, 0.65rem) / -2);
  left: 50%;
  transform: translateX(-50%);
}

.bp-popover[data-placement^="top"] .bp-popover-arrow {
  bottom: calc(var(--bp-popover-arrow-size, 0.65rem) / -2);
  left: 50%;
  transform: translateX(-50%);
}

.bp-popover[data-placement^="right"] .bp-popover-arrow {
  left: calc(var(--bp-popover-arrow-size, 0.65rem) / -2);
  top: 50%;
  transform: translateY(-50%);
}

.bp-popover[data-placement^="left"] .bp-popover-arrow {
  right: calc(var(--bp-popover-arrow-size, 0.65rem) / -2);
  top: 50%;
  transform: translateY(-50%);
}

.bp-popover[data-arrow-placement^="bottom"] .bp-popover-arrow {
  top: calc(var(--bp-popover-arrow-size, 0.65rem) / -2);
  left: 50%;
  transform: translateX(-50%);
}

.bp-popover[data-arrow-placement^="top"] .bp-popover-arrow {
  bottom: calc(var(--bp-popover-arrow-size, 0.65rem) / -2);
  left: 50%;
  transform: translateX(-50%);
}

.bp-popover[data-arrow-placement^="right"] .bp-popover-arrow {
  left: calc(var(--bp-popover-arrow-size, 0.65rem) / -2);
  top: 50%;
  transform: translateY(-50%);
}

.bp-popover[data-arrow-placement^="left"] .bp-popover-arrow {
  right: calc(var(--bp-popover-arrow-size, 0.65rem) / -2);
  top: 50%;
  transform: translateY(-50%);
}

.bp-context-menu {
  position: fixed;
  padding: 0;
}

.bp-context-menu-trigger {
  display: inline-flex;
  align-items: center;
}

.bp-context-menu-items {
  display: grid;
  gap: var(--bp-context-menu-gap, 0.25rem);
  padding: var(--bp-context-menu-padding, 0.35rem);
}

.bp-context-menu-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: var(--bp-context-menu-gap, 0.25rem);
}

.bp-context-menu-list-item {
  display: block;
}

.bp-context-menu-item {
  width: 100%;
  display: flex;
  align-items: center;
  gap: var(--bp-context-menu-item-gap, 0.5rem);
  padding: var(--bp-context-menu-item-padding, 0.4rem 0.6rem);
  border-radius: var(--bp-context-menu-item-radius, 10px);
  border: 1px solid transparent;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.bp-context-menu-item:hover:not(:disabled),
.bp-context-menu-item:focus-visible:not(:disabled) {
  background: var(--bp-context-menu-item-bg-hover, var(--bp-surface-hover));
  border-color: var(--bp-context-menu-item-border-hover, transparent);
}

.bp-context-menu-item:focus-visible {
  outline: none;
  box-shadow: var(--bp-focus-ring);
}

.bp-context-menu-item-disabled,
.bp-context-menu-item:disabled {
  cursor: not-allowed;
  color: var(--bp-ink-muted, #475569);
  opacity: 0.65;
}

.bp-context-menu-item-check,
.bp-context-menu-item-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--bp-context-menu-icon-size, 1.25rem);
  height: var(--bp-context-menu-icon-size, 1.25rem);
  flex: 0 0 auto;
}

.bp-context-menu-item-check {
  color: var(--bp-context-menu-check-fg, var(--bp-accent-strong, #1d4ed8));
}

.bp-context-menu-item-label {
  flex: 1;
  min-width: 0;
}

.bp-context-menu-item-shortcut {
  flex: 0 0 auto;
  color: var(--bp-context-menu-shortcut-fg, var(--bp-ink-muted, #475569));
  font-size: var(--bp-context-menu-shortcut-size, 0.75rem);
  font-family: var(--bp-context-menu-shortcut-font, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
  letter-spacing: var(--bp-context-menu-shortcut-letter-spacing, 0.01em);
  white-space: nowrap;
}

.bp-context-menu-empty {
  padding: var(--bp-context-menu-empty-padding, 0.4rem 0.6rem);
  color: var(--bp-ink-muted, #475569);
  font-size: 0.9rem;
}

.bp-modal-stack {
  display: grid;
  grid-template-areas: "stack";
  place-items: center;
  gap: var(--bp-modal-stack-gap, 0.75rem);
  padding: var(--bp-modal-stack-padding, 1rem);
  background: var(--bp-modal-stack-bg, var(--bp-surface-muted));
}

.bp-notification-center {
  display: grid;
  gap: var(--bp-notification-center-gap, var(--bp-space-3, 0.75rem));
  padding: var(--bp-notification-center-padding, 1rem);
  background: var(--bp-notification-center-bg, var(--bp-surface-muted));
  width: var(--bp-notification-center-width, auto);
  height: var(--bp-notification-center-height, auto);
  max-width: var(--bp-notification-center-max-width, min(26rem, 100%));
  max-height: var(--bp-notification-center-max-height, min(90vh, 100%));
  overflow: auto;
}

.bp-notification-center-positioned {
  position: fixed;
}

.bp-notification-center-top {
  top: var(--bp-notification-center-offset, 1.5rem);
}

.bp-notification-center-bottom {
  bottom: var(--bp-notification-center-offset, 1.5rem);
}

.bp-notification-center-left {
  left: var(--bp-notification-center-offset, 1.5rem);
}

.bp-notification-center-right {
  right: var(--bp-notification-center-offset, 1.5rem);
}

.bp-notification-center-item {
  display: block;
}

.bp-global-loader-wrapper {
  display: inline-flex;
  align-items: center;
}

.bp-global-loader-wrapper[data-mode="overlay"],
.bp-global-loader-wrapper[data-mode="fullscreen"] {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  padding: var(--bp-global-loader-overlay-padding, 1.5rem);
  --bp-overlay-backdrop-radius: 0;
}

.bp-global-loader-wrapper[data-mode="fullscreen"] {
  padding: 0;
}

.bp-global-loader {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  border-radius: 999px;
  padding: 0.6rem 1rem;
}

.bp-global-loader[data-mode="fullscreen"] {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  border-radius: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--bp-global-loader-fullscreen-padding, 1.5rem);
}

.bp-global-loader-spinner {
  display: inline-flex;
  align-items: center;
}

.bp-global-loader-message {
  display: grid;
  gap: 0.2rem;
}

.bp-tooltip-trigger {
  display: inline-flex;
  align-items: center;
}

.bp-tooltip {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--bp-tooltip-gap, 0.35rem);
  padding: var(--bp-tooltip-padding, 0.3rem 0.55rem);
  border-radius: var(--bp-tooltip-radius, 999px);
  background: var(--bp-tooltip-bg, var(--bp-surface-inverse));
  color: var(--bp-tooltip-fg, var(--bp-inverse));
  border: 1px solid var(--bp-tooltip-border, transparent);
  box-shadow: var(--bp-tooltip-shadow, var(--bp-shadow-1));
  font-size: var(--bp-tooltip-font-size, 0.85rem);
  line-height: 1.2;
}

.bp-tooltip[data-positioned="true"] {
  position: fixed;
}

.bp-tooltip-content {
  display: inline-flex;
  align-items: center;
  gap: var(--bp-tooltip-content-gap, 0.35rem);
}

.bp-tooltip-arrow {
  position: absolute;
  width: var(--bp-tooltip-arrow-size, 0.65rem);
  height: var(--bp-tooltip-arrow-size, 0.65rem);
  pointer-events: none;
}

.bp-tooltip-arrow-tip {
  width: 100%;
  height: 100%;
  display: block;
  background: var(--bp-tooltip-bg, var(--bp-surface-inverse));
  border-left: 1px solid var(--bp-tooltip-border, transparent);
  border-top: 1px solid var(--bp-tooltip-border, transparent);
  box-sizing: border-box;
  transform: rotate(45deg);
}

.bp-tooltip[data-placement^="bottom"] .bp-tooltip-arrow {
  top: calc(var(--bp-tooltip-arrow-size, 0.65rem) / -2);
  left: 50%;
  transform: translateX(-50%);
}

.bp-tooltip[data-placement^="top"] .bp-tooltip-arrow {
  bottom: calc(var(--bp-tooltip-arrow-size, 0.65rem) / -2);
  left: 50%;
  transform: translateX(-50%);
}

.bp-tooltip[data-placement^="right"] .bp-tooltip-arrow {
  left: calc(var(--bp-tooltip-arrow-size, 0.65rem) / -2);
  top: 50%;
  transform: translateY(-50%);
}

.bp-tooltip[data-placement^="left"] .bp-tooltip-arrow {
  right: calc(var(--bp-tooltip-arrow-size, 0.65rem) / -2);
  top: 50%;
  transform: translateY(-50%);
}

.bp-tooltip[data-arrow-placement^="bottom"] .bp-tooltip-arrow {
  top: calc(var(--bp-tooltip-arrow-size, 0.65rem) / -2);
  left: 50%;
  transform: translateX(-50%);
}

.bp-tooltip[data-arrow-placement^="top"] .bp-tooltip-arrow {
  bottom: calc(var(--bp-tooltip-arrow-size, 0.65rem) / -2);
  left: 50%;
  transform: translateX(-50%);
}

.bp-tooltip[data-arrow-placement^="right"] .bp-tooltip-arrow {
  left: calc(var(--bp-tooltip-arrow-size, 0.65rem) / -2);
  top: 50%;
  transform: translateY(-50%);
}

.bp-tooltip[data-arrow-placement^="left"] .bp-tooltip-arrow {
  right: calc(var(--bp-tooltip-arrow-size, 0.65rem) / -2);
  top: 50%;
  transform: translateY(-50%);
}

.bp-hover-card {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.bp-hover-card-trigger {
  display: inline-flex;
  align-items: center;
}

.bp-hover-card-panel {
  position: absolute;
  padding: 0.75rem 1rem;
  min-width: 12rem;
  max-width: var(--bp-hover-card-max-width, 20rem);
  opacity: 0;
  pointer-events: none;
  transform: translateY(0.4rem);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.bp-hover-card-panel[data-positioned="true"] {
  position: fixed;
}

.bp-hover-card-panel[data-placement="top"] {
  transform: translateY(-0.4rem);
}

.bp-hover-card-panel[data-placement="right"] {
  transform: translateX(0.4rem);
}

.bp-hover-card-panel[data-placement="left"] {
  transform: translateX(-0.4rem);
}

.bp-hover-card-panel[data-placement="bottom"] {
  transform: translateY(0.4rem);
}

.bp-hover-card-panel[data-open="true"] {
  opacity: 1;
  pointer-events: auto;
  transform: translate(0, 0);
}
