/* Data display primitives for Blazorponents. */
.bp-table-wrapper {
  width: 100%;
  border: 1px solid var(--bp-outline-muted);
  border-radius: var(--bp-radius-lg);
  background: var(--bp-surface);
  overflow-x: auto;
}

.bp-table-wrapper-scroll {
  max-height: var(--bp-table-scroll-height);
  overflow-y: auto;
}

.bp-table-wrapper-borderless {
  border: none;
}

.bp-table,
.bp-data-grid {
  width: 100%;
  border-collapse: collapse;
  min-width: 100%;
  color: var(--bp-ink);
  background: transparent;
}

.bp-table th,
.bp-table td,
.bp-data-grid th,
.bp-data-grid td {
  padding: var(--bp-table-cell-padding, 0.75rem 1rem);
  border-bottom: 1px solid var(--bp-divider);
  text-align: left;
  vertical-align: top;
}

.bp-table thead th,
.bp-data-grid thead th {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--bp-subtle);
  background: var(--bp-surface-strong);
}

.bp-table tbody tr:last-child td,
.bp-data-grid tbody tr:last-child td {
  border-bottom: none;
}

.bp-data-grid tfoot td {
  border-top: 1px solid var(--bp-divider);
}

.bp-data-grid-footer-row td {
  background: var(--bp-surface-strong);
  font-weight: 600;
}

.bp-table-caption,
.bp-data-grid-caption {
  text-align: left;
  padding: 0.75rem 1rem 0.5rem;
  color: var(--bp-subtle);
  font-size: 0.85rem;
}

.bp-table-striped tbody tr:nth-child(even),
.bp-data-grid-striped tbody tr:nth-child(even) {
  background: var(--bp-surface-muted);
}

.bp-table-hover tbody tr:hover,
.bp-data-grid-hover tbody tr:hover {
  background: var(--bp-surface-hover);
}

.bp-table-row-interactive,
.bp-table-cell-interactive {
  cursor: pointer;
}

.bp-table-row-disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.bp-table-cell-disabled {
  cursor: not-allowed;
}

.bp-table-hover tbody tr.bp-table-row-disabled:hover {
  background: inherit;
}

.bp-table-sticky-header thead th {
  position: sticky;
  top: 0;
  z-index: 1;
}

.bp-table-compact,
.bp-data-grid-compact {
  --bp-table-cell-padding: 0.5rem 0.75rem;
  font-size: 0.9rem;
}

.bp-table-loading,
.bp-table-empty {
  text-align: center;
  color: var(--bp-subtle);
  padding: 1.5rem;
}

.bp-data-grid-header,
.bp-data-grid-footer {
  padding: 0.75rem 1rem;
  color: var(--bp-ink);
}

.bp-data-grid-header {
  border-bottom: 1px solid var(--bp-divider);
}

.bp-data-grid-footer {
  border-top: 1px solid var(--bp-divider);
}

.bp-data-grid-row {
  transition: background 0.15s ease;
}

.bp-data-grid-row-interactive {
  cursor: pointer;
}

.bp-data-grid-row-selected {
  background: var(--bp-surface-muted);
}

.bp-data-grid-row-disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.bp-data-grid-sort {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0;
  border: none;
  background: none;
  color: inherit;
  font: inherit;
  cursor: pointer;
}

.bp-data-grid-sort:focus-visible {
  outline: 2px solid var(--bp-focus, var(--bp-accent));
  outline-offset: 2px;
}

.bp-data-grid-sort:disabled {
  cursor: default;
  opacity: 0.6;
}

.bp-data-grid-sort-label {
  display: inline-flex;
  align-items: center;
}

.bp-data-grid-sort-indicator {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--bp-subtle);
}

.bp-data-grid th[aria-sort="ascending"] .bp-data-grid-sort-indicator,
.bp-data-grid th[aria-sort="descending"] .bp-data-grid-sort-indicator {
  color: var(--bp-ink);
}

.bp-data-grid-sticky-header thead th {
  position: sticky;
  top: 0;
  z-index: 2;
}

.bp-data-grid-sticky-columns th:first-child,
.bp-data-grid-sticky-columns td:first-child {
  position: sticky;
  left: 0;
  z-index: 1;
  background: var(--bp-surface);
}

.bp-data-grid-sticky-columns thead th:first-child {
  z-index: 3;
  background: var(--bp-surface-strong);
}

.bp-data-grid-sticky-columns tfoot td:first-child {
  z-index: 2;
  background: var(--bp-surface-strong);
}

.bp-data-grid-loading,
.bp-data-grid-empty {
  text-align: center;
  color: var(--bp-subtle);
  padding: 1.5rem;
}

/* Accordion */
.bp-accordion {
  display: grid;
  gap: var(--bp-accordion-gap, 0.75rem);
  --bp-accordion-animation-duration: 180ms;
  --bp-accordion-animation-easing: cubic-bezier(0.4, 0, 0.2, 1);
}

.bp-accordion-item {
  border: 1px solid var(--bp-outline-muted);
  border-radius: 14px;
  background: var(--bp-surface);
  overflow: hidden;
}

.bp-accordion-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.75rem;
  padding: var(--bp-accordion-item-padding, 0.75rem 1rem);
  background: transparent;
  border: none;
  color: var(--bp-ink);
  text-align: left;
  cursor: pointer;
}

.bp-accordion-trigger:hover {
  background: var(--bp-surface-hover);
}

.bp-accordion-header {
  display: grid;
  gap: 0.25rem;
  flex: 1;
}

.bp-accordion-title {
  font-weight: 600;
}

.bp-accordion-subtitle {
  font-size: 0.85rem;
  color: var(--bp-subtle);
}

.bp-accordion-indicator {
  font-weight: 700;
}

.bp-accordion-indicator-end {
  margin-left: auto;
}

.bp-accordion-panel {
  display: grid;
  grid-template-rows: 0fr;
  overflow: hidden;
  opacity: 0;
  color: var(--bp-ink);
  transition: grid-template-rows var(--bp-accordion-animation-duration) var(--bp-accordion-animation-easing),
    opacity var(--bp-accordion-animation-duration) var(--bp-accordion-animation-easing);
}

.bp-accordion-panel[data-expanded="true"] {
  grid-template-rows: 1fr;
  opacity: 1;
}

.bp-accordion-panel[data-expanded="false"] {
  pointer-events: none;
}

.bp-accordion-panel-inner {
  padding: 0 1rem 1rem;
  min-height: 0;
}

.bp-accordion-no-animation .bp-accordion-panel {
  transition: none;
}

.bp-accordion-item-disabled .bp-accordion-trigger {
  cursor: not-allowed;
  opacity: 0.6;
}

/* Collapsible */
.bp-collapsible {
  display: grid;
  gap: var(--bp-collapsible-gap, 0.5rem);
}

.bp-collapsible-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.6rem 0.8rem;
  border-radius: 12px;
  border: 1px solid var(--bp-outline-muted);
  background: var(--bp-surface);
  color: var(--bp-ink);
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.bp-collapsible-indicator-start .bp-collapsible-trigger {
  justify-content: flex-start;
}

.bp-collapsible-trigger:hover {
  border-color: var(--bp-outline-strong);
}

.bp-collapsible-trigger:focus-visible {
  outline: 2px solid var(--bp-focus, var(--bp-accent));
  outline-offset: 2px;
}

.bp-collapsible-disabled .bp-collapsible-trigger {
  cursor: not-allowed;
}

.bp-collapsible-panel {
  padding: var(--bp-collapsible-padding, 0.5rem 0 0);
  color: var(--bp-ink);
}

.bp-collapsible-title {
  flex: 1;
}

.bp-collapsible-indicator {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.bp-collapsible-loading,
.bp-collapsible-empty {
  color: var(--bp-subtle);
}

.bp-collapsible-footer {
  margin-top: 0.5rem;
}

.bp-collapsible-animate .bp-collapsible-panel {
  overflow: hidden;
  max-height: var(--bp-collapsible-panel-max-height, 800px);
  opacity: 1;
  transition:
    max-height var(--bp-collapsible-animation-duration, 200ms) var(--bp-collapsible-animation-easing, ease),
    opacity var(--bp-collapsible-animation-duration, 200ms) var(--bp-collapsible-animation-easing, ease);
}

.bp-collapsible-animate .bp-collapsible-panel[data-state="closed"] {
  max-height: 0;
  opacity: 0;
  pointer-events: none;
}

/* Audit log */
.bp-audit-log {
  display: grid;
  gap: var(--bp-audit-log-gap, 1rem);
}

.bp-audit-log-group-header {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--bp-subtle);
}

.bp-audit-log-item {
  display: grid;
  grid-template-columns: var(--bp-audit-log-marker-size, 10px) 1fr;
  gap: 0.75rem;
  align-items: start;
}

.bp-audit-log-no-marker .bp-audit-log-item {
  grid-template-columns: 1fr;
  gap: 0;
}

.bp-audit-log-marker-column {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.bp-audit-log-marker {
  width: var(--bp-audit-log-marker-size, 10px);
  height: var(--bp-audit-log-marker-size, 10px);
  border-radius: 999px;
  background: var(--bp-accent);
  margin-top: 0.35rem;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
}

.bp-audit-log-marker-text {
  font-size: 0.55rem;
  line-height: 1;
  color: var(--bp-surface);
}

.bp-audit-log-connector {
  width: 2px;
  flex: 1;
  margin-top: 0.35rem;
  background: var(--bp-outline-muted);
}

.bp-audit-log-item-critical .bp-audit-log-marker {
  background: var(--bp-danger);
}

.bp-audit-log-entry {
  display: block;
  text-align: left;
  color: inherit;
  text-decoration: none;
}

.bp-audit-log-entry-action {
  border: none;
  background: none;
  padding: 0;
  font: inherit;
  cursor: pointer;
}

.bp-audit-log-entry-action:focus-visible {
  outline: 2px solid var(--bp-outline-strong);
  outline-offset: 2px;
}

.bp-audit-log-item-disabled {
  opacity: 0.6;
}

.bp-audit-log-entry-disabled {
  cursor: not-allowed;
}

.bp-audit-log-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.bp-audit-log-header-main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  min-width: 0;
}

.bp-audit-log-action {
  font-weight: 600;
}

.bp-audit-log-title {
  font-weight: 600;
}

.bp-audit-log-header .bp-audit-log-actor {
  font-weight: 500;
  color: var(--bp-ink);
}

.bp-audit-log-time {
  font-size: 0.8rem;
  color: var(--bp-subtle);
}

.bp-audit-log-description {
  margin-top: 0.25rem;
  color: var(--bp-muted);
}

.bp-audit-log-meta {
  margin-top: 0.35rem;
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  align-items: center;
  font-size: 0.85rem;
  color: var(--bp-subtle);
}

.bp-audit-log-details {
  margin-top: 0.5rem;
}

.bp-audit-log-empty {
  color: var(--bp-subtle);
}

/* Avatar */
.bp-avatar {
  --bp-avatar-size: 40px;
  width: var(--bp-avatar-size);
  height: var(--bp-avatar-size);
  display: grid;
  place-items: center;
  border-radius: var(--bp-avatar-radius, 999px);
  background: var(--bp-surface-muted);
  color: var(--bp-ink);
  font-weight: 600;
  position: relative;
  overflow: hidden;
}

.bp-avatar-action {
  cursor: pointer;
  border: none;
  padding: 0;
  appearance: none;
  text-decoration: none;
  color: inherit;
  font: inherit;
}

.bp-avatar-action:focus-visible {
  outline: 2px solid var(--bp-focus, var(--bp-accent));
  outline-offset: 2px;
}

.bp-avatar-disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.bp-avatar-sm {
  --bp-avatar-size: 32px;
  font-size: 0.75rem;
}

.bp-avatar-md {
  --bp-avatar-size: 40px;
  font-size: 0.85rem;
}

.bp-avatar-lg {
  --bp-avatar-size: 56px;
  font-size: 1rem;
}

.bp-avatar-xl {
  --bp-avatar-size: 72px;
  font-size: 1.1rem;
}

.bp-avatar-circle {
  --bp-avatar-radius: 999px;
}

.bp-avatar-square {
  --bp-avatar-radius: 12px;
}

.bp-avatar-image {
  width: 100%;
  height: 100%;
  object-fit: var(--bp-avatar-image-fit, cover);
  object-position: var(--bp-avatar-image-position, center);
  display: block;
}

.bp-avatar-fallback {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
}

.bp-avatar-loading {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  font-size: 0.75rem;
  color: var(--bp-subtle);
  text-align: center;
  padding: 0 0.25rem;
}

.bp-avatar-status {
  position: absolute;
  --bp-avatar-status-size: 12px;
  --bp-avatar-status-offset: -2px;
  width: var(--bp-avatar-status-size);
  height: var(--bp-avatar-status-size);
  border-radius: 999px;
  border: 2px solid var(--bp-surface);
  background: var(--bp-muted);
  display: grid;
  place-items: center;
  font-size: 0.55rem;
  line-height: 1;
}

.bp-avatar-status-bottom-right {
  bottom: var(--bp-avatar-status-offset);
  right: var(--bp-avatar-status-offset);
}

.bp-avatar-status-bottom-left {
  bottom: var(--bp-avatar-status-offset);
  left: var(--bp-avatar-status-offset);
}

.bp-avatar-status-top-right {
  top: var(--bp-avatar-status-offset);
  right: var(--bp-avatar-status-offset);
}

.bp-avatar-status-top-left {
  top: var(--bp-avatar-status-offset);
  left: var(--bp-avatar-status-offset);
}

.bp-avatar-status-online {
  background: var(--bp-success);
}

.bp-avatar-status-away {
  background: var(--bp-warning);
}

.bp-avatar-status-busy {
  background: var(--bp-danger);
}

.bp-avatar-status-offline {
  background: var(--bp-outline-strong);
}

/* Avatar group */
.bp-avatar-group {
  display: flex;
  align-items: center;
  gap: var(--bp-avatar-group-gap, 0.4rem);
}

.bp-avatar-group-items {
  display: flex;
  align-items: var(--bp-avatar-group-align, center);
  justify-content: var(--bp-avatar-group-justify, flex-start);
}

.bp-avatar-group-items > * + * {
  margin-left: var(--bp-avatar-group-overlap, -0.4rem);
}

.bp-avatar-group-stack-end .bp-avatar-group-items {
  flex-direction: row-reverse;
}

.bp-avatar-group-stack-end .bp-avatar-group-items > * + * {
  margin-left: 0;
  margin-right: var(--bp-avatar-group-overlap, -0.4rem);
}

.bp-avatar-group-item {
  display: flex;
}

.bp-avatar-group-overflow {
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  border: 1px solid var(--bp-outline-muted);
  background: var(--bp-surface-muted);
  font-size: 0.75rem;
  color: var(--bp-ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font: inherit;
}

.bp-avatar-group-overflow-action {
  cursor: pointer;
}

/* Badge */
.bp-badge {
  --bp-badge-tone-bg: var(--bp-accent-muted);
  --bp-badge-tone-fg: var(--bp-accent-strong);
  --bp-badge-tone-border: var(--bp-accent);
  --bp-badge-bg: var(--bp-badge-tone-bg);
  --bp-badge-fg: var(--bp-badge-tone-fg);
  --bp-badge-border: transparent;
  --bp-badge-padding-y: 0.35rem;
  --bp-badge-padding-x: 0.75rem;
  --bp-badge-font-size: 0.75rem;
  --bp-badge-gap: 0.35rem;
  display: inline-flex;
  align-items: center;
  gap: var(--bp-badge-gap);
  padding: var(--bp-badge-padding-y) var(--bp-badge-padding-x);
  border-radius: 999px;
  border: 1px solid var(--bp-badge-border);
  background: var(--bp-badge-bg);
  color: var(--bp-badge-fg);
  font-size: var(--bp-badge-font-size);
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: none;
  font-variant-numeric: tabular-nums;
  text-decoration: none;
  line-height: 1;
  appearance: none;
}

.bp-badge-soft {
  --bp-badge-bg: var(--bp-badge-tone-bg);
  --bp-badge-fg: var(--bp-badge-tone-fg);
  --bp-badge-border: transparent;
}

.bp-badge-solid {
  --bp-badge-bg: var(--bp-badge-tone-fg);
  --bp-badge-fg: var(--bp-inverse);
  --bp-badge-border: transparent;
}

.bp-badge-outline {
  --bp-badge-bg: transparent;
  --bp-badge-fg: var(--bp-badge-tone-fg);
  --bp-badge-border: var(--bp-badge-tone-border);
}

.bp-badge-tone-neutral {
  --bp-badge-tone-bg: var(--bp-surface-muted);
  --bp-badge-tone-fg: var(--bp-ink);
  --bp-badge-tone-border: var(--bp-outline-muted);
}

.bp-badge-tone-accent {
  --bp-badge-tone-bg: var(--bp-accent-muted);
  --bp-badge-tone-fg: var(--bp-accent-strong);
  --bp-badge-tone-border: var(--bp-accent);
}

.bp-badge-tone-success {
  --bp-badge-tone-bg: var(--bp-success-bg);
  --bp-badge-tone-fg: var(--bp-success-strong);
  --bp-badge-tone-border: var(--bp-success);
}

.bp-badge-tone-warning {
  --bp-badge-tone-bg: var(--bp-warning-bg);
  --bp-badge-tone-fg: var(--bp-warning-strong);
  --bp-badge-tone-border: var(--bp-warning);
}

.bp-badge-tone-danger {
  --bp-badge-tone-bg: var(--bp-danger-bg);
  --bp-badge-tone-fg: var(--bp-danger-strong);
  --bp-badge-tone-border: var(--bp-danger);
}

.bp-badge-size-small {
  --bp-badge-padding-y: 0.2rem;
  --bp-badge-padding-x: 0.5rem;
  --bp-badge-font-size: 0.65rem;
  --bp-badge-gap: 0.25rem;
}

.bp-badge-size-medium {
  --bp-badge-padding-y: 0.35rem;
  --bp-badge-padding-x: 0.75rem;
  --bp-badge-font-size: 0.75rem;
  --bp-badge-gap: 0.35rem;
}

.bp-badge-size-large {
  --bp-badge-padding-y: 0.45rem;
  --bp-badge-padding-x: 0.9rem;
  --bp-badge-font-size: 0.85rem;
  --bp-badge-gap: 0.4rem;
}

.bp-badge-label {
  display: inline-flex;
  align-items: center;
}

.bp-chip {
  --bp-chip-tone-bg: var(--bp-surface-muted);
  --bp-chip-tone-fg: var(--bp-ink);
  --bp-chip-tone-border: var(--bp-outline-muted);
  --bp-chip-bg: var(--bp-chip-tone-bg);
  --bp-chip-fg: var(--bp-chip-tone-fg);
  --bp-chip-border: var(--bp-chip-tone-border);
  --bp-chip-focus-ring: var(--bp-focus, var(--bp-accent));
  --bp-chip-padding-y: 0.3rem;
  --bp-chip-padding-x: 0.7rem;
  --bp-chip-font-size: 0.75rem;
  --bp-chip-gap: 0.35rem;
  --bp-chip-avatar-size: 1.2rem;
  display: inline-flex;
  align-items: center;
  gap: var(--bp-chip-gap);
  padding: var(--bp-chip-padding-y) var(--bp-chip-padding-x);
  border-radius: 999px;
  border: 1px solid var(--bp-chip-border);
  background: var(--bp-chip-bg);
  color: var(--bp-chip-fg);
  font-size: var(--bp-chip-font-size);
  font-weight: 600;
  letter-spacing: 0.01em;
  text-transform: none;
  text-decoration: none;
  line-height: 1;
  appearance: none;
  max-width: 100%;
  transition: border-color 120ms ease, background-color 120ms ease, color 120ms ease, box-shadow 120ms ease, opacity 120ms ease;
}

.bp-chip-soft {
  --bp-chip-bg: var(--bp-chip-tone-bg);
  --bp-chip-fg: var(--bp-chip-tone-fg);
  --bp-chip-border: transparent;
}

.bp-chip-solid {
  --bp-chip-bg: var(--bp-chip-tone-fg);
  --bp-chip-fg: var(--bp-inverse);
  --bp-chip-border: transparent;
}

.bp-chip-outline {
  --bp-chip-bg: transparent;
  --bp-chip-fg: var(--bp-chip-tone-fg);
  --bp-chip-border: var(--bp-chip-tone-border);
}

.bp-chip-tone-neutral {
  --bp-chip-tone-bg: var(--bp-surface-muted);
  --bp-chip-tone-fg: var(--bp-ink);
  --bp-chip-tone-border: var(--bp-outline-muted);
}

.bp-chip-tone-accent {
  --bp-chip-tone-bg: var(--bp-accent-muted);
  --bp-chip-tone-fg: var(--bp-accent-strong);
  --bp-chip-tone-border: var(--bp-accent);
}

.bp-chip-tone-success {
  --bp-chip-tone-bg: var(--bp-success-bg);
  --bp-chip-tone-fg: var(--bp-success-strong);
  --bp-chip-tone-border: var(--bp-success);
}

.bp-chip-tone-warning {
  --bp-chip-tone-bg: var(--bp-warning-bg);
  --bp-chip-tone-fg: var(--bp-warning-strong);
  --bp-chip-tone-border: var(--bp-warning);
}

.bp-chip-tone-danger {
  --bp-chip-tone-bg: var(--bp-danger-bg);
  --bp-chip-tone-fg: var(--bp-danger-strong);
  --bp-chip-tone-border: var(--bp-danger);
}

.bp-chip-size-small {
  --bp-chip-padding-y: 0.2rem;
  --bp-chip-padding-x: 0.55rem;
  --bp-chip-font-size: 0.65rem;
  --bp-chip-gap: 0.25rem;
  --bp-chip-avatar-size: 1rem;
}

.bp-chip-size-medium {
  --bp-chip-padding-y: 0.3rem;
  --bp-chip-padding-x: 0.7rem;
  --bp-chip-font-size: 0.75rem;
  --bp-chip-gap: 0.35rem;
  --bp-chip-avatar-size: 1.2rem;
}

.bp-chip-size-large {
  --bp-chip-padding-y: 0.4rem;
  --bp-chip-padding-x: 0.85rem;
  --bp-chip-font-size: 0.85rem;
  --bp-chip-gap: 0.45rem;
  --bp-chip-avatar-size: 1.4rem;
}

.bp-chip-selected {
  --bp-chip-bg: var(--bp-accent-muted);
  --bp-chip-fg: var(--bp-accent-strong);
  --bp-chip-border: var(--bp-accent);
}

.bp-chip-interactive {
  cursor: pointer;
}

.bp-chip-interactive:hover:not(.bp-chip-disabled) {
  border-color: var(--bp-chip-tone-border);
}

.bp-chip-interactive:active:not(.bp-chip-disabled) {
  transform: translateY(1px);
}

.bp-chip-interactive:focus-visible {
  outline: 2px solid var(--bp-chip-focus-ring);
  outline-offset: 2px;
}

.bp-chip-disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.bp-chip-loading {
  cursor: progress;
}

.bp-chip-leading,
.bp-chip-trailing,
.bp-chip-icon,
.bp-chip-avatar,
.bp-chip-label {
  display: inline-flex;
  align-items: center;
}

.bp-chip-label {
  min-width: 0;
}

.bp-chip-avatar {
  width: var(--bp-chip-avatar-size);
  height: var(--bp-chip-avatar-size);
  border-radius: 999px;
  overflow: hidden;
  flex-shrink: 0;
}

.bp-chip-remove {
  border: none;
  background: transparent;
  color: inherit;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  width: 1rem;
  height: 1rem;
  border-radius: 999px;
  line-height: 1;
  flex-shrink: 0;
}

.bp-chip-remove:hover:not(:disabled) {
  opacity: 0.8;
}

.bp-chip-remove:focus-visible {
  outline: 2px solid var(--bp-chip-focus-ring);
  outline-offset: 1px;
}

.bp-chip-remove:disabled {
  cursor: not-allowed;
  opacity: 0.6;
}

/* Calendar */
.bp-calendar {
  display: grid;
  gap: var(--bp-calendar-gap, 0.75rem);
  color: var(--bp-ink);
}

.bp-calendar[data-week-numbers="true"] .bp-calendar-weekdays,
.bp-calendar[data-week-numbers="true"] .bp-calendar-grid {
  grid-template-columns: 2.5rem repeat(7, minmax(0, 1fr));
}

.bp-calendar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.bp-calendar-nav-template {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.bp-calendar-title {
  font-weight: 600;
  min-width: 8ch;
  text-align: center;
}

.bp-calendar-nav {
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
  border: 1px solid var(--bp-outline-muted);
  background: var(--bp-surface);
  color: var(--bp-ink);
  cursor: pointer;
}

.bp-calendar-nav:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.bp-calendar-nav:focus-visible,
.bp-calendar-day:focus-visible {
  outline: 2px solid var(--bp-accent);
  outline-offset: 2px;
}

.bp-calendar-weekdays {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--bp-subtle);
}

.bp-calendar-week-number {
  display: grid;
  place-items: center;
  font-size: 0.65rem;
  color: var(--bp-subtle);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.bp-calendar-week-number-cell {
  border-radius: 10px;
  border: 1px dashed var(--bp-outline-muted);
  background: var(--bp-surface);
  height: var(--bp-calendar-cell-size, 2.6rem);
}

.bp-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.5rem;
}

.bp-calendar-day {
  display: grid;
  place-items: center;
  gap: 0.2rem;
  padding: 0.2rem;
  height: var(--bp-calendar-cell-size, 2.6rem);
  border-radius: 12px;
  border: 1px solid transparent;
  background: var(--bp-surface);
  color: var(--bp-ink);
  cursor: pointer;
}

.bp-calendar-day:hover {
  background: var(--bp-surface-hover);
}

.bp-calendar-day-number {
  font-variant-numeric: tabular-nums;
}

.bp-calendar-day-outside {
  color: var(--bp-subtle);
  opacity: 0.6;
}

.bp-calendar-day-today {
  border-color: var(--bp-outline-strong);
}

.bp-calendar-day-selected {
  border-color: var(--bp-accent);
  background: var(--bp-accent-muted);
  color: var(--bp-accent-strong);
}

.bp-calendar-day-range {
  border-color: var(--bp-outline-muted);
  background: var(--bp-surface-muted);
}

.bp-calendar-day-range-start,
.bp-calendar-day-range-end {
  border-color: var(--bp-accent);
  background: var(--bp-accent-muted);
  color: var(--bp-accent-strong);
}

.bp-calendar-day-disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.bp-calendar-events {
  display: grid;
  gap: 0.15rem;
  width: 100%;
  justify-items: center;
}

.bp-calendar-event {
  font-size: 0.65rem;
  line-height: 1;
  color: var(--bp-calendar-event-color, var(--bp-subtle));
}

.bp-calendar-event-count {
  font-size: 0.65rem;
  color: var(--bp-subtle);
}

.bp-calendar-loading,
.bp-calendar-empty {
  border: 1px dashed var(--bp-outline-muted);
  border-radius: 12px;
  padding: 0.75rem;
  color: var(--bp-subtle);
  background: var(--bp-surface);
}

.bp-calendar-footer {
  color: var(--bp-subtle);
  font-size: 0.875rem;
}

/* Code preview */
.bp-code-preview {
  display: grid;
  border: 1px solid var(--bp-outline-muted);
  border-radius: 14px;
  background: var(--bp-surface);
  overflow: hidden;
}

.bp-code-preview-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.6rem 0.9rem;
  background: var(--bp-surface-strong);
  border-bottom: 1px solid var(--bp-outline-muted);
}

.bp-code-preview-heading {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.bp-code-preview-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.bp-code-preview-title {
  font-weight: 600;
}

.bp-code-preview-language {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--bp-subtle);
}

.bp-code-preview-content {
  display: grid;
  min-width: 0;
}

.bp-code-preview-preview-pane,
.bp-code-preview-code-pane {
  min-width: 0;
}

.bp-code-preview-preview-pane {
  background: var(--bp-surface);
}

.bp-code-preview-preview-content {
  padding: 1rem;
  min-height: var(--bp-code-preview-preview-min-height, 0);
}

.bp-code-preview-pane-label {
  padding: 0.5rem 0.9rem;
  border-bottom: 1px solid var(--bp-outline-muted);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--bp-subtle);
  background: var(--bp-surface-strong);
}

.bp-code-preview-with-preview:not(.bp-code-preview-split) .bp-code-preview-code-pane {
  border-top: 1px solid var(--bp-outline-muted);
}

.bp-code-preview-with-preview.bp-code-preview-code-first:not(.bp-code-preview-split) .bp-code-preview-code-pane {
  border-top: 0;
  border-bottom: 1px solid var(--bp-outline-muted);
}

.bp-code-preview-code-first .bp-code-preview-code-pane {
  order: -1;
}

.bp-code-preview-split .bp-code-preview-content {
  grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 64rem) {
  .bp-code-preview-split .bp-code-preview-content {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .bp-code-preview-split .bp-code-preview-preview-pane {
    border-right: 1px solid var(--bp-outline-muted);
  }

  .bp-code-preview-split.bp-code-preview-code-first .bp-code-preview-preview-pane {
    border-right: 0;
    border-left: 1px solid var(--bp-outline-muted);
  }

  .bp-code-preview-split .bp-code-preview-code-pane,
  .bp-code-preview-split.bp-code-preview-code-first .bp-code-preview-code-pane {
    border-top: 0;
    border-bottom: 0;
  }
}

.bp-code-preview-body {
  margin: 0;
  padding: 1rem;
  background: var(--bp-surface-inverse);
  color: var(--bp-inverse);
  font-family: "Cascadia Mono", "Consolas", monospace;
  font-size: 0.85rem;
  overflow: auto;
  max-height: var(--bp-code-preview-max-height, none);
  tab-size: var(--bp-code-preview-tab-size, 4);
}

.bp-code-preview-loading .bp-code-preview-body {
  min-height: var(--bp-code-preview-loading-min-height, 6rem);
}

.bp-code-preview-code {
  display: block;
  white-space: pre;
}

.bp-code-preview-wrap .bp-code-preview-code,
.bp-code-preview-wrap .bp-code-preview-line {
  white-space: pre-wrap;
  word-break: break-word;
}

.bp-code-preview-lines .bp-code-preview-code {
  counter-reset: bp-code-line;
}

.bp-code-preview-body-lines {
  --bp-code-preview-line-number-width: 2.25rem;
  --bp-code-preview-line-number-gap: 0.75rem;
}

.bp-code-preview-line {
  display: block;
  position: relative;
  padding-left: calc(var(--bp-code-preview-line-number-width) + var(--bp-code-preview-line-number-gap));
}

.bp-code-preview-line::before {
  counter-increment: bp-code-line;
  content: counter(bp-code-line);
  position: absolute;
  left: 0;
  width: var(--bp-code-preview-line-number-width);
  text-align: right;
  color: var(--bp-subtle);
  opacity: 0.8;
  font-variant-numeric: tabular-nums;
}

.bp-code-preview-collapse {
  display: block;
  margin-top: 0.35rem;
  color: var(--bp-subtle);
  font-style: italic;
}

.bp-code-preview-lines .bp-code-preview-collapse {
  padding-left: calc(var(--bp-code-preview-line-number-width) + var(--bp-code-preview-line-number-gap));
}

.bp-code-preview-copy {
  border: 1px solid var(--bp-outline-muted);
  background: transparent;
  color: inherit;
  font-size: 0.75rem;
  padding: 0.25rem 0.6rem;
  border-radius: 999px;
  cursor: pointer;
}

.bp-code-preview-copy[data-state="copied"] {
  background: var(--bp-accent-muted);
  border-color: var(--bp-accent-muted);
  color: var(--bp-accent-strong);
}

.bp-code-preview-copy[data-state="failed"] {
  border-color: var(--bp-danger, #f87171);
}

.bp-code-preview-copy:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.bp-code-preview-footer {
  padding: 0.75rem 0.9rem;
  border-top: 1px solid var(--bp-outline-muted);
}

/* Data card */
.bp-data-card {
  display: grid;
  gap: 0.75rem;
  padding: var(--bp-data-card-padding, 1rem);
  border-radius: var(--bp-data-card-radius, 16px);
  background: var(--bp-surface);
  color: var(--bp-ink);
}

.bp-data-card-bordered,
.bp-data-card-outlined {
  border: 1px solid var(--bp-outline-muted);
}

.bp-data-card-flat {
  border: 1px solid transparent;
  box-shadow: none;
}

.bp-data-card-elevated {
  box-shadow: var(--bp-shadow-1);
}

.bp-data-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 0.75rem;
}

.bp-data-card-leading {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: var(--bp-surface-muted);
}

.bp-data-card-heading {
  display: grid;
  gap: 0.2rem;
  flex: 1;
  min-width: 0;
}

.bp-data-card-title {
  font-weight: 600;
}

.bp-data-card-subtitle {
  font-size: 0.85rem;
  color: var(--bp-subtle);
}

.bp-data-card-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.bp-data-card-actions-start {
  margin-left: 0;
}

.bp-data-card-actions-center {
  margin-left: auto;
  margin-right: auto;
}

.bp-data-card-actions-end {
  margin-left: auto;
}

.bp-data-card-actions-stretch {
  margin-left: auto;
  width: 100%;
  justify-content: space-between;
}

.bp-data-card-interactive {
  cursor: pointer;
  transition: border-color 150ms ease, box-shadow 150ms ease;
}

.bp-data-card-interactive:hover {
  border-color: var(--bp-outline-strong);
}

.bp-data-card-interactive:focus-visible {
  outline: 2px solid var(--bp-focus, var(--bp-accent));
  outline-offset: 2px;
}

.bp-data-card-disabled {
  opacity: 0.72;
  cursor: not-allowed;
}

.bp-data-card-state-loading .bp-data-card-body,
.bp-data-card-state-empty .bp-data-card-body {
  min-height: 3.25rem;
}

.bp-data-card-body {
  color: var(--bp-ink);
}

.bp-data-card-loading,
.bp-data-card-empty {
  display: grid;
  gap: 0.25rem;
  color: var(--bp-subtle);
}

.bp-data-card-fields {
  margin: 0;
  display: grid;
  gap: 0.65rem;
}

.bp-data-card-field {
  display: grid;
  gap: 0.2rem;
}

.bp-data-card-field-label {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--bp-subtle);
}

.bp-data-card-field-value {
  margin: 0;
  color: var(--bp-ink);
  font-size: 0.95rem;
}

.bp-data-card-footer {
  border-top: 1px solid var(--bp-outline-muted);
  padding-top: 0.75rem;
  color: var(--bp-subtle);
  font-size: 0.9rem;
}

/* Description list */
.bp-description-list {
  display: grid;
  --bp-description-list-columns-resolved: var(--bp-description-list-columns, 1);
  grid-template-columns: repeat(var(--bp-description-list-columns-resolved), minmax(0, 1fr));
  gap: var(--bp-description-list-row-gap, 0.75rem) var(--bp-description-list-column-gap, 1rem);
  margin: 0;
}

.bp-description-list-state-loading,
.bp-description-list-state-empty {
  min-height: 3rem;
  align-content: start;
}

@media (min-width: 640px) {
  .bp-description-list {
    --bp-description-list-columns-resolved: var(--bp-description-list-columns-sm, var(--bp-description-list-columns, 1));
  }
}

@media (min-width: 768px) {
  .bp-description-list {
    --bp-description-list-columns-resolved: var(
      --bp-description-list-columns-md,
      var(--bp-description-list-columns-sm, var(--bp-description-list-columns, 1))
    );
  }
}

@media (min-width: 1024px) {
  .bp-description-list {
    --bp-description-list-columns-resolved: var(
      --bp-description-list-columns-lg,
      var(--bp-description-list-columns-md, var(--bp-description-list-columns-sm, var(--bp-description-list-columns, 1)))
    );
  }
}

@media (min-width: 1280px) {
  .bp-description-list {
    --bp-description-list-columns-resolved: var(
      --bp-description-list-columns-xl,
      var(
        --bp-description-list-columns-lg,
        var(--bp-description-list-columns-md, var(--bp-description-list-columns-sm, var(--bp-description-list-columns, 1)))
      )
    );
  }
}

.bp-description-list-item {
  display: grid;
  gap: 0.25rem;
}

.bp-description-list-loading,
.bp-description-list-empty {
  grid-column: 1 / -1;
  display: grid;
  gap: 0.25rem;
  color: var(--bp-subtle);
}

.bp-description-list-divided .bp-description-list-item {
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--bp-divider);
}

.bp-description-list-divided .bp-description-list-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.bp-description-list-bordered {
  padding: 0.75rem 1rem;
  border-radius: var(--bp-radius-lg);
  border: 1px solid var(--bp-outline-muted);
  background: var(--bp-surface);
}

.bp-description-list-horizontal .bp-description-list-item {
  grid-template-columns: var(--bp-description-list-term-width, minmax(0, 1fr))
    var(--bp-description-list-description-width, minmax(0, 2fr));
  align-items: start;
}

.bp-description-list-term {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--bp-subtle);
  margin: 0;
}

.bp-description-list-description {
  margin: 0;
  color: var(--bp-ink);
}

/* Diff viewer */
.bp-diff-viewer {
  border: 1px solid var(--bp-outline-muted);
  border-radius: 12px;
  background: var(--bp-surface);
  overflow: hidden;
  font-family: "Cascadia Mono", "Consolas", monospace;
  font-size: 0.85rem;
}

.bp-diff-header,
.bp-diff-footer {
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid var(--bp-divider);
}

.bp-diff-footer {
  border-top: 1px solid var(--bp-divider);
  border-bottom: none;
}

.bp-diff-rows {
  display: grid;
}

.bp-diff-scroll {
  overflow: auto;
  max-height: var(--bp-diff-viewer-height, none);
}

.bp-diff-scroll-virtualized {
  height: var(--bp-diff-viewer-height, 24rem);
}

.bp-diff-line {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.75rem;
  padding: 0.35rem 0.75rem;
  border-bottom: 1px solid var(--bp-divider);
}

.bp-diff-line-has-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
}

.bp-diff-line-selected {
  box-shadow: inset 3px 0 0 var(--bp-accent);
}

.bp-diff-line-selectable {
  cursor: pointer;
}

.bp-diff-line-selectable:hover {
  background: var(--bp-surface-hover);
}

.bp-diff-line-content {
  display: grid;
  gap: 0.5rem;
}

.bp-diff-line-unified {
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
}

.bp-diff-line-split {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0;
}

.bp-diff-rows-split .bp-diff-line {
  padding: 0;
}

.bp-diff-cell {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.5rem;
  padding: 0.35rem 0.75rem;
  border-right: 1px solid var(--bp-divider);
  align-items: start;
}

.bp-diff-cell:last-child {
  border-right: none;
}

.bp-diff-cell-added {
  background: var(--bp-success-bg);
}

.bp-diff-cell-removed {
  background: var(--bp-danger-bg);
}

.bp-diff-cell-placeholder {
  background: var(--bp-surface-muted);
}

.bp-diff-gutter {
  display: inline-flex;
  align-items: baseline;
  gap: 0.5rem;
}

.bp-diff-line-number {
  width: 2.5rem;
  text-align: right;
  color: var(--bp-subtle);
}

.bp-diff-line-marker {
  width: 1rem;
  text-align: center;
}

.bp-diff-line-text {
  white-space: pre;
  word-break: normal;
  tab-size: var(--bp-diff-tab-size, 4);
  min-width: 0;
}

.bp-diff-wrap .bp-diff-line-text {
  white-space: pre-wrap;
  word-break: break-word;
}

.bp-diff-line-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  justify-self: end;
}

.bp-diff-rows-unified .bp-diff-line-added {
  background: var(--bp-success-bg);
}

.bp-diff-rows-unified .bp-diff-line-removed {
  background: var(--bp-danger-bg);
}

.bp-diff-rows-unified .bp-diff-line-modified {
  background: var(--bp-warning-bg);
}

.bp-diff-loading,
.bp-diff-empty {
  padding: 0.75rem;
  color: var(--bp-subtle);
}

/* Log viewer */
.bp-log-viewer {
  border: var(--bp-log-viewer-border, 1px solid var(--bp-outline-muted));
  border-radius: var(--bp-log-viewer-radius, 12px);
  background: var(--bp-surface);
  overflow: hidden;
  font-family: "Cascadia Mono", "Consolas", monospace;
  font-size: 0.85rem;
}

.bp-log-header,
.bp-log-footer {
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid var(--bp-divider);
}

.bp-log-footer {
  border-top: 1px solid var(--bp-divider);
  border-bottom: none;
}

.bp-log-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid var(--bp-divider);
  align-items: end;
}

.bp-log-toolbar-field {
  display: grid;
  gap: 0.25rem;
  min-width: 10rem;
}

.bp-log-toolbar-label {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--bp-subtle);
}

.bp-log-toolbar-input,
.bp-log-toolbar-select {
  font: inherit;
  padding: 0.3rem 0.5rem;
  border: 1px solid var(--bp-outline-muted);
  border-radius: 6px;
  background: var(--bp-surface);
  color: var(--bp-ink);
}

.bp-log-toolbar-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-left: auto;
}

.bp-log-toolbar-download {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.bp-log-toolbar-button {
  font: inherit;
  padding: 0.3rem 0.6rem;
  border: 1px solid var(--bp-outline-muted);
  border-radius: 6px;
  background: var(--bp-surface);
  color: var(--bp-ink);
  cursor: pointer;
}

.bp-log-toolbar-button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.bp-log-toolbar-count {
  color: var(--bp-subtle);
  font-size: 0.8rem;
}

.bp-log-loading,
.bp-log-empty,
.bp-log-error {
  padding: 0.75rem;
  color: var(--bp-subtle);
}

.bp-log-scroll {
  overflow: auto;
  max-height: var(--bp-log-viewer-height, none);
}

.bp-log-scroll-virtualized {
  height: var(--bp-log-viewer-height, 24rem);
}

.bp-log-lines {
  display: grid;
}

.bp-log-line {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.75rem;
  padding: 0.35rem 0.75rem;
  border-bottom: 1px solid var(--bp-divider);
  align-items: start;
  min-height: var(--bp-log-row-height, auto);
}

.bp-log-line-no-gutter {
  grid-template-columns: minmax(0, 1fr);
}

.bp-log-line-gutter {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--bp-subtle);
  font-variant-numeric: tabular-nums;
}

.bp-log-line-number,
.bp-log-line-delta {
  min-width: 3rem;
  text-align: right;
}

.bp-log-line-level {
  min-width: 3.5rem;
  text-align: right;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
}

.bp-log-line-level-trace .bp-log-line-level,
.bp-log-line-level-debug .bp-log-line-level {
  color: var(--bp-subtle);
}

.bp-log-line-level-info .bp-log-line-level,
.bp-log-line-level-notice .bp-log-line-level {
  color: var(--bp-accent-strong, var(--bp-accent));
}

.bp-log-line-level-warn .bp-log-line-level,
.bp-log-line-level-warning .bp-log-line-level {
  color: var(--bp-warning-strong, var(--bp-warning));
}

.bp-log-line-level-error .bp-log-line-level,
.bp-log-line-level-fatal .bp-log-line-level,
.bp-log-line-level-critical .bp-log-line-level {
  color: var(--bp-danger-strong, var(--bp-danger));
}

.bp-log-line-level-success .bp-log-line-level {
  color: var(--bp-success-strong, var(--bp-success));
}

.bp-log-line-toggle {
  width: 1rem;
  border: none;
  background: none;
  color: var(--bp-subtle);
  cursor: pointer;
  padding: 0;
  font: inherit;
}

.bp-log-line-content {
  min-width: 0;
}

.bp-log-line-text {
  white-space: pre;
  word-break: normal;
  min-width: 0;
}

.bp-log-wrap .bp-log-line-text {
  white-space: pre-wrap;
  word-break: break-word;
}

.bp-log-expandable .bp-log-line-text {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.bp-log-line-expanded .bp-log-line-text {
  white-space: pre-wrap;
  word-break: break-word;
}

.bp-log-line-active-match {
  box-shadow: inset 3px 0 0 var(--bp-accent);
}

.bp-log-search-hit {
  background: var(--bp-warning-bg);
  color: inherit;
  padding: 0 0.1rem;
  border-radius: 2px;
}

.bp-log-search-hit-active {
  background: var(--bp-accent-soft);
}

.bp-log-ansi-xterm {
  --bp-ansi-black: #000000;
  --bp-ansi-red: #800000;
  --bp-ansi-green: #008000;
  --bp-ansi-yellow: #808000;
  --bp-ansi-blue: #000080;
  --bp-ansi-magenta: #800080;
  --bp-ansi-cyan: #008080;
  --bp-ansi-white: #c0c0c0;
  --bp-ansi-bright-black: #808080;
  --bp-ansi-bright-red: #ff0000;
  --bp-ansi-bright-green: #00ff00;
  --bp-ansi-bright-yellow: #ffff00;
  --bp-ansi-bright-blue: #0000ff;
  --bp-ansi-bright-magenta: #ff00ff;
  --bp-ansi-bright-cyan: #00ffff;
  --bp-ansi-bright-white: #ffffff;
}

.bp-log-ansi-windows {
  --bp-ansi-black: #000000;
  --bp-ansi-red: #800000;
  --bp-ansi-green: #008000;
  --bp-ansi-yellow: #808000;
  --bp-ansi-blue: #000080;
  --bp-ansi-magenta: #800080;
  --bp-ansi-cyan: #008080;
  --bp-ansi-white: #c0c0c0;
  --bp-ansi-bright-black: #808080;
  --bp-ansi-bright-red: #ff0000;
  --bp-ansi-bright-green: #00ff00;
  --bp-ansi-bright-yellow: #ffff00;
  --bp-ansi-bright-blue: #0000ff;
  --bp-ansi-bright-magenta: #ff00ff;
  --bp-ansi-bright-cyan: #00ffff;
  --bp-ansi-bright-white: #ffffff;
}

.bp-log-ansi-token {
  color: inherit;
}

.bp-log-ansi-bold {
  font-weight: 600;
}

.bp-log-ansi-dim {
  opacity: 0.7;
}

.bp-log-ansi-italic {
  font-style: italic;
}

.bp-log-ansi-underline {
  text-decoration: underline;
}

.bp-log-ansi-strikethrough {
  text-decoration: line-through;
}

.bp-log-ansi-hidden {
  color: transparent;
}

.bp-log-ansi-fg-black {
  color: var(--bp-ansi-black);
}

.bp-log-ansi-fg-red {
  color: var(--bp-ansi-red);
}

.bp-log-ansi-fg-green {
  color: var(--bp-ansi-green);
}

.bp-log-ansi-fg-yellow {
  color: var(--bp-ansi-yellow);
}

.bp-log-ansi-fg-blue {
  color: var(--bp-ansi-blue);
}

.bp-log-ansi-fg-magenta {
  color: var(--bp-ansi-magenta);
}

.bp-log-ansi-fg-cyan {
  color: var(--bp-ansi-cyan);
}

.bp-log-ansi-fg-white {
  color: var(--bp-ansi-white);
}

.bp-log-ansi-fg-bright-black {
  color: var(--bp-ansi-bright-black);
}

.bp-log-ansi-fg-bright-red {
  color: var(--bp-ansi-bright-red);
}

.bp-log-ansi-fg-bright-green {
  color: var(--bp-ansi-bright-green);
}

.bp-log-ansi-fg-bright-yellow {
  color: var(--bp-ansi-bright-yellow);
}

.bp-log-ansi-fg-bright-blue {
  color: var(--bp-ansi-bright-blue);
}

.bp-log-ansi-fg-bright-magenta {
  color: var(--bp-ansi-bright-magenta);
}

.bp-log-ansi-fg-bright-cyan {
  color: var(--bp-ansi-bright-cyan);
}

.bp-log-ansi-fg-bright-white {
  color: var(--bp-ansi-bright-white);
}

.bp-log-ansi-bg-black {
  background-color: var(--bp-ansi-black);
}

.bp-log-ansi-bg-red {
  background-color: var(--bp-ansi-red);
}

.bp-log-ansi-bg-green {
  background-color: var(--bp-ansi-green);
}

.bp-log-ansi-bg-yellow {
  background-color: var(--bp-ansi-yellow);
}

.bp-log-ansi-bg-blue {
  background-color: var(--bp-ansi-blue);
}

.bp-log-ansi-bg-magenta {
  background-color: var(--bp-ansi-magenta);
}

.bp-log-ansi-bg-cyan {
  background-color: var(--bp-ansi-cyan);
}

.bp-log-ansi-bg-white {
  background-color: var(--bp-ansi-white);
}

.bp-log-ansi-bg-bright-black {
  background-color: var(--bp-ansi-bright-black);
}

.bp-log-ansi-bg-bright-red {
  background-color: var(--bp-ansi-bright-red);
}

.bp-log-ansi-bg-bright-green {
  background-color: var(--bp-ansi-bright-green);
}

.bp-log-ansi-bg-bright-yellow {
  background-color: var(--bp-ansi-bright-yellow);
}

.bp-log-ansi-bg-bright-blue {
  background-color: var(--bp-ansi-bright-blue);
}

.bp-log-ansi-bg-bright-magenta {
  background-color: var(--bp-ansi-bright-magenta);
}

.bp-log-ansi-bg-bright-cyan {
  background-color: var(--bp-ansi-bright-cyan);
}

.bp-log-ansi-bg-bright-white {
  background-color: var(--bp-ansi-bright-white);
}

/* Infinite scroll */
.bp-infinite-scroll {
  display: grid;
  gap: var(--bp-infinite-scroll-gap, 0.75rem);
  max-height: var(--bp-infinite-scroll-height, auto);
  overflow-y: auto;
  border: var(--bp-infinite-scroll-border, 1px solid var(--bp-outline-muted));
  border-radius: var(--bp-infinite-scroll-radius, 12px);
  padding: var(--bp-infinite-scroll-padding, 0.75rem);
  background: var(--bp-infinite-scroll-background, var(--bp-surface));
}

.bp-infinite-scroll-list {
  display: grid;
  gap: var(--bp-infinite-scroll-list-gap, 0.5rem);
}

.bp-infinite-scroll-item {
  padding: var(--bp-infinite-scroll-item-padding, 0.5rem 0.75rem);
  border-radius: var(--bp-infinite-scroll-item-radius, 10px);
  border: var(--bp-infinite-scroll-item-border, 1px solid var(--bp-outline-muted));
  background: var(--bp-infinite-scroll-item-background, var(--bp-surface));
}

.bp-infinite-scroll-sentinel {
  height: var(--bp-infinite-scroll-sentinel-height, 1px);
}

.bp-infinite-scroll-load-more {
  justify-self: var(--bp-infinite-scroll-load-more-justify-self, center);
  padding: var(--bp-infinite-scroll-load-more-padding, 0.35rem 0.95rem);
  border-radius: var(--bp-infinite-scroll-load-more-radius, 999px);
  border: var(--bp-infinite-scroll-load-more-border, 1px dashed var(--bp-outline-muted));
  background: var(--bp-infinite-scroll-load-more-background, var(--bp-surface));
  color: var(--bp-infinite-scroll-load-more-color, var(--bp-ink));
  font-size: var(--bp-infinite-scroll-load-more-font-size, 0.85rem);
  cursor: pointer;
  transition: background-color 140ms ease-in-out, border-color 140ms ease-in-out;
}

.bp-infinite-scroll-load-more:hover {
  background: var(--bp-infinite-scroll-load-more-hover-background, var(--bp-surface-hover));
}

.bp-infinite-scroll-load-more:focus-visible {
  outline: var(--bp-focus-ring-width, 2px) solid var(--bp-focus-ring-color, var(--bp-primary));
  outline-offset: 2px;
}

.bp-infinite-scroll-load-more:disabled {
  cursor: not-allowed;
  opacity: var(--bp-infinite-scroll-load-more-disabled-opacity, 0.6);
}

.bp-infinite-scroll-error {
  font-size: var(--bp-infinite-scroll-status-font-size, 0.85rem);
  color: var(--bp-infinite-scroll-error-color, var(--bp-danger));
  text-align: center;
}

.bp-infinite-scroll-loading,
.bp-infinite-scroll-end,
.bp-infinite-scroll-empty {
  font-size: var(--bp-infinite-scroll-status-font-size, 0.85rem);
  color: var(--bp-infinite-scroll-status-color, var(--bp-subtle));
  text-align: center;
}

/* Kanban board */
.bp-overlay-scroll-area.bp-scroll-x > .bp-scroll-area-viewport.bp-kanban-board,
.bp-overlay-scroll-area.bp-scroll-both > .bp-scroll-area-viewport.bp-kanban-board,
.bp-kanban-board {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: max-content;
  gap: var(--bp-kanban-gap, 1rem);
  justify-content: center;
  align-items: start;
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: 0.5rem;
}

.bp-overlay-scroll-area.bp-scroll-y > .bp-scroll-area-viewport.bp-kanban-board.bp-kanban-board-vertical,
.bp-overlay-scroll-area.bp-scroll-both > .bp-scroll-area-viewport.bp-kanban-board.bp-kanban-board-vertical,
.bp-kanban-board-vertical {
  grid-auto-flow: row;
  grid-auto-rows: max-content;
  overflow-x: hidden;
  overflow-y: auto;
  --bp-kanban-column-width: 100%;
}

.bp-kanban-header,
.bp-kanban-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.bp-kanban-loading,
.bp-kanban-empty {
  color: var(--bp-subtle);
  font-size: 0.85rem;
}

.bp-kanban-column {
  display: grid;
  gap: 0.75rem;
  padding: 0.75rem;
  border-radius: 14px;
  border: 1px solid var(--bp-outline-muted);
  background: var(--bp-surface);
  width: var(--bp-kanban-column-width, 16rem);
}

.bp-kanban-column-inner {
  display: grid;
  gap: 0.75rem;
  align-content: start;
}

.bp-kanban-column-disabled {
  background: var(--bp-surface-muted);
}

.bp-kanban-column-disabled .bp-kanban-column-title {
  color: var(--bp-subtle);
}

.bp-kanban-column-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.bp-kanban-column-count {
  font-size: 0.75rem;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  border: 1px solid var(--bp-outline-muted);
  color: var(--bp-subtle);
}

.bp-kanban-column-title {
  font-weight: 600;
}

.bp-kanban-column-description {
  font-size: 0.85rem;
  color: var(--bp-subtle);
}

.bp-kanban-column-body {
  display: grid;
  gap: 0.5rem;
  align-content: start;
}

.bp-kanban-column-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 0.85rem;
  color: var(--bp-subtle);
}

.bp-kanban-column-empty,
.bp-kanban-empty {
  color: var(--bp-subtle);
  font-size: 0.85rem;
}

.bp-kanban-column-draggable,
.bp-kanban-column-draggable.bp-draggable {
  display: block;
  cursor: default !important;
}

.bp-kanban-board.bp-kanban-board-column-header-handle .bp-kanban-column-draggable .bp-kanban-column-header {
  cursor: grab !important;
}

.bp-kanban-board.bp-kanban-board-column-header-handle .bp-kanban-column-draggable .bp-kanban-column-header:active {
  cursor: grabbing !important;
}

.bp-kanban-column-draggable.bp-draggable[data-disabled="true"],
.bp-kanban-card-draggable.bp-draggable[data-disabled="true"] {
  opacity: 1 !important;
}

.bp-kanban-column-draggable.bp-draggable[data-disabled="true"] {
  cursor: default !important;
}

.bp-kanban-board.bp-kanban-board-column-header-handle .bp-kanban-column-draggable.bp-draggable[data-disabled="true"] .bp-kanban-column-header {
  cursor: default !important;
}

.bp-kanban-column-draggable-active {
  opacity: 0.7;
}

.bp-kanban-column-drop-target {
  border-color: var(--bp-focus-ring-color, var(--bp-primary));
  box-shadow: inset 0 0 0 1px var(--bp-focus-ring-color, var(--bp-primary));
}

.bp-kanban-column-dropzone-tail {
  align-self: stretch;
  min-height: 8rem;
  width: 0.55rem;
}

.bp-kanban-board-vertical .bp-kanban-column-dropzone-tail {
  width: 100%;
  min-height: 0.55rem;
}

.bp-kanban-column-dropzone-tail-hit {
  min-height: 100%;
  min-width: 100%;
  border-radius: 0.5rem;
}

.bp-kanban-card-item {
  position: relative;
  margin-block-start: 0;
  padding-block-start: 0;
}

.bp-kanban-card-insert-zone {
  display: block;
  min-height: var(--bp-kanban-drag-card-height, 5.5rem);
  margin-block-end: 0.5rem;
  border-radius: 0.5rem;
}

.bp-kanban-card-insert-zone-hit {
  min-height: 100%;
  border-radius: 0.5rem;
  border: 1px dashed var(--bp-outline-strong);
  background: var(--bp-surface-muted);
}

.bp-kanban-board-card-dragging .bp-kanban-card-item.bp-kanban-card-item-insert-target {
  padding-block-start: 0;
}

.bp-kanban-card-draggable {
  display: block;
}

.bp-kanban-card-draggable-active {
  opacity: 0.7;
}

.bp-kanban-board-card-dragging .bp-kanban-card-item.bp-kanban-card-item-drag-source {
  display: none;
  padding-block-end: 0;
}

.bp-kanban-card {
  text-align: left;
  border-radius: 12px;
  border: 1px solid var(--bp-outline-muted);
  background: var(--bp-surface);
  padding: 0.75rem;
  color: var(--bp-ink);
  display: grid;
  gap: 0.35rem;
  cursor: pointer;
  width: 100%;
  appearance: none;
}

.bp-kanban-card:hover {
  border-color: var(--bp-outline-strong);
}

.bp-kanban-card:focus-visible {
  outline: var(--bp-focus-ring-width, 2px) solid var(--bp-focus-ring-color, var(--bp-primary));
  outline-offset: 2px;
}

.bp-kanban-card-drop-target {
  border-radius: 12px;
}

.bp-kanban-card-item.bp-kanban-card-drop-target {
  outline: none;
}

.bp-kanban-card-disabled {
  cursor: not-allowed;
  opacity: 0.6;
}

.bp-kanban-card-title {
  font-weight: 600;
}

.bp-kanban-card-description {
  color: var(--bp-muted);
  font-size: 0.9rem;
}

.bp-kanban-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
}

.bp-kanban-card-header-content {
  display: grid;
  gap: 0.2rem;
}

.bp-kanban-card-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--bp-subtle);
}

.bp-kanban-card-meta {
  display: flex;
  gap: 0.5rem;
  font-size: 0.75rem;
  color: var(--bp-subtle);
}

.bp-kanban-card-tag {
  padding: 0.1rem 0.4rem;
  border-radius: 999px;
  background: var(--bp-surface-muted);
}

.bp-kanban-card-footer {
  margin-top: 0.25rem;
  color: var(--bp-subtle);
}

.bp-kanban-card-dropzone-tail {
  display: none;
  border-radius: 0.5rem;
}

.bp-kanban-board-card-dragging .bp-kanban-column.bp-kanban-column-tail-hover .bp-kanban-card-dropzone-tail {
  display: block;
  min-height: var(--bp-kanban-drag-card-height, 5.5rem);
}

.bp-kanban-card-dropzone-tail-hit {
  min-height: 100%;
  border-radius: 0.5rem;
  border: 1px dashed var(--bp-outline-strong);
  background: var(--bp-surface-muted);
}

/* Key value */
.bp-key-value {
  display: grid;
  --bp-key-value-columns-resolved: var(--bp-key-value-columns, 1);
  grid-template-columns: repeat(var(--bp-key-value-columns-resolved), minmax(0, 1fr));
  gap: var(--bp-key-value-row-gap, 0.75rem) var(--bp-key-value-column-gap, 1.5rem);
  margin: 0;
}

.bp-key-value-state-loading,
.bp-key-value-state-empty {
  min-height: 3rem;
  align-content: start;
}

@media (min-width: 640px) {
  .bp-key-value {
    --bp-key-value-columns-resolved: var(--bp-key-value-columns-sm, var(--bp-key-value-columns, 1));
  }
}

@media (min-width: 768px) {
  .bp-key-value {
    --bp-key-value-columns-resolved: var(
      --bp-key-value-columns-md,
      var(--bp-key-value-columns-sm, var(--bp-key-value-columns, 1))
    );
  }
}

@media (min-width: 1024px) {
  .bp-key-value {
    --bp-key-value-columns-resolved: var(
      --bp-key-value-columns-lg,
      var(--bp-key-value-columns-md, var(--bp-key-value-columns-sm, var(--bp-key-value-columns, 1)))
    );
  }
}

@media (min-width: 1280px) {
  .bp-key-value {
    --bp-key-value-columns-resolved: var(
      --bp-key-value-columns-xl,
      var(
        --bp-key-value-columns-lg,
        var(--bp-key-value-columns-md, var(--bp-key-value-columns-sm, var(--bp-key-value-columns, 1)))
      )
    );
  }
}

.bp-key-value-loading,
.bp-key-value-empty {
  grid-column: 1 / -1;
  display: grid;
  gap: 0.25rem;
  color: var(--bp-subtle);
}

.bp-key-value-item {
  display: grid;
  gap: 0.25rem;
}

.bp-key-value:not(.bp-key-value-vertical):not(.bp-key-value-stacked) .bp-key-value-item {
  grid-template-columns: minmax(0, var(--bp-key-value-key-width, 1fr)) minmax(0, 2fr);
  align-items: start;
}

.bp-key-value-key {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--bp-subtle);
  margin: 0;
}

.bp-key-value-value {
  color: var(--bp-ink);
  text-align: var(--bp-key-value-value-align, start);
  margin: 0;
}

/* KPI */
.bp-kpi {
  --bp-kpi-padding: 0;
  --bp-kpi-gap: 0.5rem;
  --bp-kpi-body-gap: 0.4rem;
  --bp-kpi-label-size: 0.68rem;
  --bp-kpi-value-size: 1.05rem;
  --bp-kpi-delta-size: 0.82rem;
  --bp-kpi-footer-size: 0.78rem;
  --bp-kpi-value-gap: 0;
  --bp-kpi-delta-gap: 0;
  --bp-kpi-footer-gap: 0.25rem;
  --bp-kpi-leading-size: 1.25rem;
  --bp-kpi-leading-radius: 8px;
  --bp-kpi-delta-inline-gap: 0.25rem;
  display: inline-flex;
  gap: var(--bp-kpi-gap);
  align-items: baseline;
  max-width: 100%;
  padding: var(--bp-kpi-padding);
  border-radius: var(--bp-kpi-radius, 10px);
  border: 1px solid transparent;
  background: var(--bp-kpi-bg, transparent);
  color: var(--bp-ink);
  text-decoration: none;
  font: inherit;
  line-height: 1.2;
  vertical-align: middle;
  appearance: none;
}

.bp-kpi-outlined {
  --bp-kpi-padding: var(--bp-kpi-outlined-padding, 0.45rem 0.6rem);
  border-color: var(--bp-outline-muted);
  background: var(--bp-kpi-outlined-bg, var(--bp-surface));
}

.bp-kpi-flat {
  --bp-kpi-padding: var(--bp-kpi-flat-padding, 0);
  border-color: transparent;
  background: var(--bp-kpi-flat-bg, transparent);
}

.bp-kpi-elevated {
  --bp-kpi-padding: var(--bp-kpi-elevated-padding, 0.45rem 0.6rem);
  border-color: transparent;
  background: var(--bp-kpi-elevated-bg, var(--bp-surface));
  box-shadow: var(--bp-shadow-1);
}

.bp-kpi-interactive {
  cursor: pointer;
  transition: border-color 150ms ease, box-shadow 150ms ease;
}

.bp-kpi-interactive:hover {
  border-color: var(--bp-outline-strong);
}

.bp-kpi-size-small {
  --bp-kpi-gap: 0.4rem;
  --bp-kpi-body-gap: 0.3rem;
  --bp-kpi-label-size: 0.65rem;
  --bp-kpi-value-size: 0.95rem;
  --bp-kpi-delta-size: 0.75rem;
  --bp-kpi-footer-size: 0.75rem;
  --bp-kpi-leading-size: 1rem;
  --bp-kpi-leading-radius: 6px;
}

.bp-kpi-size-medium {
  --bp-kpi-gap: 0.5rem;
  --bp-kpi-body-gap: 0.4rem;
  --bp-kpi-label-size: 0.68rem;
  --bp-kpi-value-size: 1.05rem;
  --bp-kpi-delta-size: 0.85rem;
  --bp-kpi-footer-size: 0.78rem;
  --bp-kpi-leading-size: 1.25rem;
  --bp-kpi-leading-radius: 8px;
}

.bp-kpi-size-large {
  --bp-kpi-gap: 0.65rem;
  --bp-kpi-body-gap: 0.5rem;
  --bp-kpi-label-size: 0.75rem;
  --bp-kpi-value-size: 1.3rem;
  --bp-kpi-delta-size: 0.9rem;
  --bp-kpi-footer-size: 0.85rem;
  --bp-kpi-leading-size: 1.5rem;
  --bp-kpi-leading-radius: 10px;
}

.bp-kpi-body {
  display: inline-flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--bp-kpi-body-gap);
  min-width: 0;
}

.bp-kpi-leading {
  width: var(--bp-kpi-leading-size);
  height: var(--bp-kpi-leading-size);
  border-radius: var(--bp-kpi-leading-radius);
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  background: var(--bp-kpi-leading-bg, var(--bp-surface-muted));
}

.bp-kpi-label {
  font-size: var(--bp-kpi-label-size);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--bp-subtle);
  white-space: nowrap;
}

.bp-kpi-value {
  font-size: var(--bp-kpi-value-size);
  font-weight: 600;
  margin-top: var(--bp-kpi-value-gap);
  white-space: nowrap;
}

.bp-kpi-delta {
  font-size: var(--bp-kpi-delta-size);
  margin-top: var(--bp-kpi-delta-gap);
  display: inline-flex;
  align-items: center;
  gap: var(--bp-kpi-delta-inline-gap);
  white-space: nowrap;
}

.bp-kpi-delta-positive {
  color: var(--bp-success);
}

.bp-kpi-delta-negative {
  color: var(--bp-danger);
}

.bp-kpi-delta-neutral {
  color: var(--bp-subtle);
}

.bp-kpi-delta-icon {
  display: inline-flex;
  align-items: center;
}

.bp-kpi-footer {
  flex-basis: 100%;
  margin-top: var(--bp-kpi-footer-gap);
  color: var(--bp-subtle);
  font-size: var(--bp-kpi-footer-size);
}

.bp-kpi-loading,
.bp-kpi-empty {
  font-size: var(--bp-kpi-footer-size);
  color: var(--bp-subtle);
}

/* List */
.bp-list {
  display: grid;
  gap: var(--bp-list-gap, 0.5rem);
  padding-left: var(--bp-list-padding-left, 0);
  margin: 0;
  list-style: var(--bp-list-marker, none);
  color: var(--bp-ink);
}

.bp-list-custom-marker {
  list-style: none;
  padding-left: 0;
}

.bp-list-divided .bp-list-item {
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--bp-divider);
}

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

.bp-list-item-interactive {
  list-style-position: outside;
}

.bp-list-item-action {
  display: block;
  width: 100%;
  border: 0;
  background: none;
  padding: 0;
  margin: 0;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.bp-list-item-action:focus-visible {
  outline: 2px solid var(--bp-accent);
  outline-offset: 2px;
  border-radius: 8px;
}

.bp-list-item-action:disabled {
  cursor: not-allowed;
}

.bp-list-item-disabled {
  opacity: 0.65;
}

.bp-list-item-selected {
  border-radius: 8px;
  box-shadow: inset 0 0 0 1px var(--bp-accent);
}

.bp-list-custom-marker .bp-list-item {
  display: block;
}

.bp-list-item-body {
  display: flex;
  align-items: baseline;
  gap: var(--bp-list-marker-gap, 0.5rem);
  width: 100%;
}

.bp-list-marker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.bp-list-item-content {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  width: 100%;
  flex: 1;
  min-width: 0;
}

.bp-list-item-text {
  min-width: 0;
}

.bp-list-item-meta {
  font-size: 0.85rem;
  color: var(--bp-subtle);
}

.bp-list-loading,
.bp-list-empty {
  color: var(--bp-subtle);
}

.bp-list-loading-content {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}

/* Object viewer */
.bp-object-viewer {
  display: grid;
  gap: var(--bp-object-viewer-row-gap, 0.75rem);
}

.bp-object-viewer-groups {
  display: grid;
  gap: var(--bp-object-viewer-group-gap, 1rem);
}

.bp-object-viewer-group {
  display: grid;
  gap: 0.5rem;
}

.bp-object-viewer-group-nested {
  gap: 0.4rem;
}

.bp-object-viewer-category {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--bp-subtle);
}

.bp-object-viewer-list {
  display: grid;
  grid-template-columns: repeat(var(--bp-object-viewer-columns, 1), minmax(0, 1fr));
  gap: var(--bp-object-viewer-row-gap, 0.75rem) var(--bp-object-viewer-column-gap, 1.5rem);
  margin: 0;
}

.bp-object-viewer-list-nested {
  margin-top: 0.25rem;
}

.bp-object-viewer-item {
  display: grid;
  gap: 0.25rem;
}

.bp-object-viewer-term {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--bp-subtle);
  margin: 0;
}

.bp-object-viewer-value {
  margin: 0;
  color: var(--bp-ink);
}

.bp-object-viewer-nested {
  margin-top: 0.35rem;
  padding-left: 0.75rem;
  border-left: 1px dashed var(--bp-divider);
}

.bp-object-viewer-loading,
.bp-object-viewer-empty {
  color: var(--bp-subtle);
}

.bp-object-viewer-loading {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}

/* Result list */
.bp-result-list {
  display: grid;
  gap: var(--bp-result-list-gap, 0.75rem);
}

.bp-result-list-card {
  --bp-result-item-padding: 0.75rem 1rem;
}

.bp-result-list-compact {
  --bp-result-list-gap: 0.5rem;
  --bp-result-item-padding: 0.5rem 0.75rem;
  --bp-result-body-gap: 0.2rem;
}

.bp-result-list-media {
  --bp-result-item-padding: 0.75rem 1rem;
  --bp-result-body-gap: 0.2rem;
}

.bp-result-item {
  border: 1px solid var(--bp-outline-muted);
  border-radius: 14px;
  background: var(--bp-surface);
}

.bp-result-link,
.bp-result-button,
.bp-result-static {
  display: flex;
  gap: 0.75rem;
  width: 100%;
  padding: var(--bp-result-item-padding, 0.75rem 1rem);
  text-align: left;
  border: none;
  border-radius: inherit;
  background: transparent;
  color: inherit;
  cursor: pointer;
  text-decoration: none;
  transition: background-color 120ms ease-in-out;
}

.bp-result-static {
  cursor: default;
}

.bp-result-item-interactive .bp-result-link:hover,
.bp-result-item-interactive .bp-result-button:hover {
  background: var(--bp-result-item-hover-bg, rgba(127, 127, 127, 0.08));
}

.bp-result-link:focus-visible,
.bp-result-button:focus-visible {
  outline: 2px solid var(--bp-accent);
  outline-offset: -2px;
}

.bp-result-link[aria-disabled="true"] {
  cursor: not-allowed;
  pointer-events: none;
}

.bp-result-button:disabled {
  cursor: not-allowed;
}

.bp-result-list-media .bp-result-link,
.bp-result-list-media .bp-result-button,
.bp-result-list-media .bp-result-static {
  align-items: center;
}

.bp-result-leading,
.bp-result-trailing {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
}

.bp-result-badge {
  display: flex;
  align-items: center;
}

.bp-result-item-disabled {
  opacity: 0.6;
}

.bp-result-body {
  display: grid;
  gap: var(--bp-result-body-gap, 0.25rem);
  flex: 1 1 auto;
}

.bp-result-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.bp-result-item-selected {
  border-color: var(--bp-accent);
  box-shadow: 0 0 0 1px var(--bp-accent);
}

.bp-result-title {
  font-weight: 600;
}

.bp-result-description {
  color: var(--bp-muted);
}

.bp-result-meta {
  font-size: 0.85rem;
  color: var(--bp-subtle);
}

.bp-result-loading,
.bp-result-empty {
  color: var(--bp-subtle);
}

.bp-result-loading {
  padding: 0.25rem 0;
}

/* Stat card */
.bp-stat-card {
  --bp-stat-card-padding: 1rem;
  --bp-stat-card-gap: 0.5rem;
  --bp-stat-card-body-gap: 0.25rem;
  --bp-stat-card-label-size: 0.7rem;
  --bp-stat-card-value-size: 1.4rem;
  --bp-stat-card-description-size: 0.9rem;
  --bp-stat-card-delta-size: 0.85rem;
  --bp-stat-card-footer-size: 0.85rem;
  --bp-stat-card-leading-size: 2.5rem;
  --bp-stat-card-leading-radius: 12px;
  --bp-stat-card-leading-bg: var(--bp-surface-muted);
  --bp-stat-card-delta-inline-gap: 0.35rem;
  display: grid;
  gap: var(--bp-stat-card-gap);
  padding: var(--bp-stat-card-padding);
  border-radius: var(--bp-stat-card-radius, 16px);
  border: 1px solid transparent;
  background: var(--bp-surface);
  color: var(--bp-ink);
  text-decoration: none;
  text-align: start;
  font: inherit;
  line-height: 1.25;
  appearance: none;
}

.bp-stat-card-outlined {
  border-color: var(--bp-outline-muted);
}

.bp-stat-card-flat {
  border-color: transparent;
}

.bp-stat-card-elevated {
  border-color: transparent;
  box-shadow: var(--bp-shadow-1);
}

.bp-stat-card-interactive {
  cursor: pointer;
  transition: border-color 150ms ease, box-shadow 150ms ease;
}

.bp-stat-card-interactive:hover {
  border-color: var(--bp-outline-strong);
}

.bp-stat-card-size-small {
  --bp-stat-card-padding: 0.75rem;
  --bp-stat-card-gap: 0.4rem;
  --bp-stat-card-label-size: 0.65rem;
  --bp-stat-card-value-size: 1.2rem;
  --bp-stat-card-description-size: 0.8rem;
  --bp-stat-card-delta-size: 0.75rem;
  --bp-stat-card-footer-size: 0.75rem;
  --bp-stat-card-leading-size: 2rem;
  --bp-stat-card-leading-radius: 10px;
}

.bp-stat-card-size-medium {
  --bp-stat-card-padding: 1rem;
  --bp-stat-card-gap: 0.5rem;
  --bp-stat-card-label-size: 0.7rem;
  --bp-stat-card-value-size: 1.4rem;
  --bp-stat-card-description-size: 0.9rem;
  --bp-stat-card-delta-size: 0.85rem;
  --bp-stat-card-footer-size: 0.85rem;
  --bp-stat-card-leading-size: 2.5rem;
  --bp-stat-card-leading-radius: 12px;
}

.bp-stat-card-size-large {
  --bp-stat-card-padding: 1.25rem;
  --bp-stat-card-gap: 0.6rem;
  --bp-stat-card-label-size: 0.75rem;
  --bp-stat-card-value-size: 1.7rem;
  --bp-stat-card-description-size: 1rem;
  --bp-stat-card-delta-size: 0.95rem;
  --bp-stat-card-footer-size: 0.95rem;
  --bp-stat-card-leading-size: 3rem;
  --bp-stat-card-leading-radius: 14px;
}

.bp-stat-card-leading {
  width: var(--bp-stat-card-leading-size);
  height: var(--bp-stat-card-leading-size);
  border-radius: var(--bp-stat-card-leading-radius);
  display: grid;
  place-items: center;
  background: var(--bp-stat-card-leading-bg);
}

.bp-stat-card-body {
  display: grid;
  gap: var(--bp-stat-card-body-gap);
}

.bp-stat-card-bordered {
  border-color: var(--bp-outline-muted);
}

.bp-stat-card-label {
  font-size: var(--bp-stat-card-label-size);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--bp-subtle);
}

.bp-stat-card-value {
  font-size: var(--bp-stat-card-value-size);
  font-weight: 600;
}

.bp-stat-card-description {
  font-size: var(--bp-stat-card-description-size);
  color: var(--bp-muted);
}

.bp-stat-card-delta {
  font-size: var(--bp-stat-card-delta-size);
  display: inline-flex;
  align-items: center;
  gap: var(--bp-stat-card-delta-inline-gap);
}

.bp-stat-card-delta-icon {
  display: inline-flex;
  align-items: center;
}

.bp-stat-card-delta-label {
  color: var(--bp-subtle);
}

.bp-stat-card-delta-positive {
  color: var(--bp-success);
}

.bp-stat-card-delta-negative {
  color: var(--bp-danger);
}

.bp-stat-card-delta-neutral {
  color: var(--bp-subtle);
}

.bp-stat-card-footer {
  margin-top: var(--bp-stat-card-footer-gap, 0.35rem);
  color: var(--bp-subtle);
  font-size: var(--bp-stat-card-footer-size);
}

.bp-stat-card-loading,
.bp-stat-card-empty {
  color: var(--bp-subtle);
  font-size: var(--bp-stat-card-footer-size);
}

/* Stats grid */
.bp-stats-grid {
  display: grid;
  grid-template-columns: repeat(var(--bp-stats-grid-columns, auto-fit), minmax(var(--bp-stats-grid-min-column, 14rem), 1fr));
  gap: var(--bp-stats-grid-gap, 1rem);
}

.bp-stats-grid-item {
  min-width: 0;
}

.bp-stats-grid-header,
.bp-stats-grid-footer,
.bp-stats-grid-loading,
.bp-stats-grid-empty {
  grid-column: 1 / -1;
}

.bp-stats-grid-loading,
.bp-stats-grid-empty {
  color: var(--bp-subtle);
}

@media (min-width: 640px) {
  .bp-stats-grid {
    grid-template-columns: repeat(var(--bp-stats-grid-columns-sm, var(--bp-stats-grid-columns, auto-fit)), minmax(var(--bp-stats-grid-min-column, 14rem), 1fr));
  }
}

@media (min-width: 768px) {
  .bp-stats-grid {
    grid-template-columns: repeat(var(--bp-stats-grid-columns-md, var(--bp-stats-grid-columns, auto-fit)), minmax(var(--bp-stats-grid-min-column, 14rem), 1fr));
  }
}

@media (min-width: 1024px) {
  .bp-stats-grid {
    grid-template-columns: repeat(var(--bp-stats-grid-columns-lg, var(--bp-stats-grid-columns, auto-fit)), minmax(var(--bp-stats-grid-min-column, 14rem), 1fr));
  }
}

@media (min-width: 1280px) {
  .bp-stats-grid {
    grid-template-columns: repeat(var(--bp-stats-grid-columns-xl, var(--bp-stats-grid-columns, auto-fit)), minmax(var(--bp-stats-grid-min-column, 14rem), 1fr));
  }
}

/* Tag */
.bp-tag {
  --bp-tag-bg: var(--bp-surface-muted);
  --bp-tag-fg: var(--bp-ink);
  --bp-tag-border: var(--bp-outline-muted);
  --bp-tag-padding-y: 0.25rem;
  --bp-tag-padding-x: 0.6rem;
  --bp-tag-font-size: 0.75rem;
  --bp-tag-gap: 0.35rem;
  --bp-tag-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: var(--bp-tag-gap);
  padding: var(--bp-tag-padding-y) var(--bp-tag-padding-x);
  border-radius: var(--bp-tag-radius);
  border: 1px solid var(--bp-tag-border);
  background: var(--bp-tag-bg);
  color: var(--bp-tag-fg);
  font-size: var(--bp-tag-font-size);
  font-weight: 600;
}

.bp-tag-solid {
  --bp-tag-bg: var(--bp-ink);
  --bp-tag-fg: var(--bp-inverse);
  --bp-tag-border: transparent;
}

.bp-tag-outline {
  --bp-tag-bg: transparent;
  --bp-tag-fg: var(--bp-ink);
  --bp-tag-border: var(--bp-outline-muted);
}

.bp-tag-tone-accent {
  --bp-tag-bg: var(--bp-accent-muted);
  --bp-tag-fg: var(--bp-accent-strong);
  --bp-tag-border: var(--bp-accent);
}

.bp-tag-tone-success {
  --bp-tag-bg: var(--bp-success-bg);
  --bp-tag-fg: var(--bp-success-strong);
  --bp-tag-border: var(--bp-success);
}

.bp-tag-tone-warning {
  --bp-tag-bg: var(--bp-warning-bg);
  --bp-tag-fg: var(--bp-warning-strong);
  --bp-tag-border: var(--bp-warning);
}

.bp-tag-tone-danger {
  --bp-tag-bg: var(--bp-danger-bg);
  --bp-tag-fg: var(--bp-danger-strong);
  --bp-tag-border: var(--bp-danger);
}

.bp-tag-size-small {
  --bp-tag-padding-y: 0.15rem;
  --bp-tag-padding-x: 0.45rem;
  --bp-tag-font-size: 0.65rem;
  --bp-tag-gap: 0.25rem;
}

.bp-tag-size-medium {
  --bp-tag-padding-y: 0.25rem;
  --bp-tag-padding-x: 0.6rem;
  --bp-tag-font-size: 0.75rem;
  --bp-tag-gap: 0.35rem;
}

.bp-tag-size-large {
  --bp-tag-padding-y: 0.35rem;
  --bp-tag-padding-x: 0.8rem;
  --bp-tag-font-size: 0.85rem;
  --bp-tag-gap: 0.4rem;
}

.bp-tag-shape-pill {
  --bp-tag-radius: 999px;
}

.bp-tag-shape-rounded {
  --bp-tag-radius: var(--bp-radius-sm, 8px);
}

.bp-tag-selected {
  --bp-tag-border: currentColor;
}

.bp-tag-empty {
  opacity: 0.8;
}

.bp-tag-leading,
.bp-tag-trailing,
.bp-tag-label {
  display: inline-flex;
  align-items: center;
}

/* Timeline */
.bp-timeline {
  display: grid;
  gap: var(--bp-timeline-gap, 1rem);
}

.bp-timeline-horizontal {
  display: flex;
  flex-wrap: wrap;
  gap: var(--bp-timeline-gap, 1rem);
}

.bp-timeline-item {
  display: grid;
  grid-template-columns: var(--bp-timeline-marker-size, 12px) minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
}

.bp-timeline-horizontal .bp-timeline-item {
  grid-template-columns: 1fr;
  grid-template-rows: var(--bp-timeline-marker-size, 12px) auto;
  gap: 0.5rem;
  min-width: 12rem;
}

.bp-timeline-no-marker .bp-timeline-item {
  grid-template-columns: 1fr;
}

.bp-timeline-horizontal.bp-timeline-no-marker .bp-timeline-item {
  grid-template-rows: auto;
}

.bp-timeline-marker-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  min-height: var(--bp-timeline-marker-size, 12px);
}

.bp-timeline-horizontal .bp-timeline-marker-wrapper {
  flex-direction: row;
  width: 100%;
}

.bp-timeline-marker {
  width: var(--bp-timeline-marker-size, 12px);
  height: var(--bp-timeline-marker-size, 12px);
  border-radius: 999px;
  background: var(--bp-accent);
  display: grid;
  place-items: center;
  color: var(--bp-inverse);
  flex: 0 0 auto;
}

.bp-timeline-marker-custom {
  background: transparent;
  color: inherit;
}

.bp-timeline-line {
  width: 2px;
  flex: 1;
  background: var(--bp-outline-muted);
  min-height: 1.5rem;
}

.bp-timeline-horizontal .bp-timeline-line {
  width: auto;
  height: 2px;
  min-height: 0;
  align-self: center;
}

.bp-timeline-line-custom {
  background: transparent;
}

.bp-timeline-content {
  min-width: 0;
}

.bp-timeline-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.bp-timeline-title {
  font-weight: 600;
}

.bp-timeline-time {
  font-size: 0.8rem;
  color: var(--bp-subtle);
}

.bp-timeline-description {
  margin-top: 0.25rem;
  color: var(--bp-muted);
}

.bp-timeline-status {
  margin-top: 0.35rem;
  font-size: 0.8rem;
  color: var(--bp-subtle);
}

.bp-timeline-loading,
.bp-timeline-empty {
  color: var(--bp-subtle);
}

/* Tree view */
.bp-tree-view {
  display: grid;
  gap: 0.5rem;
}

.bp-tree-selection-none .bp-tree-label {
  cursor: default;
}

.bp-tree-list,
.bp-tree-children {
  list-style: none;
  padding-left: 0;
  margin: 0;
  display: grid;
  gap: 0.25rem;
}

.bp-tree-children {
  padding-left: var(--bp-tree-indent, 1rem);
}

.bp-tree-item {
  display: grid;
  gap: 0.25rem;
}

.bp-tree-node {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.bp-tree-toggle {
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 6px;
  border: 1px solid var(--bp-outline-muted);
  background: var(--bp-surface);
  color: var(--bp-ink);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
}

.bp-tree-toggle:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.bp-tree-toggle-placeholder {
  width: 1.5rem;
  height: 1.5rem;
}

.bp-tree-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--bp-subtle);
}

.bp-tree-checkbox {
  width: 1.1rem;
  height: 1.1rem;
  border-radius: 4px;
  border: 1px solid var(--bp-outline-muted);
  background: var(--bp-surface);
  color: var(--bp-ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
  font-weight: 700;
  cursor: pointer;
}

.bp-tree-checkbox[aria-checked="true"],
.bp-tree-item-selected .bp-tree-checkbox {
  border-color: var(--bp-accent);
  background: var(--bp-accent-muted);
  color: var(--bp-accent-strong);
}

.bp-tree-checkbox[aria-checked="mixed"],
.bp-tree-item-partial .bp-tree-checkbox {
  border-color: var(--bp-warning);
  background: var(--bp-warning-bg);
  color: var(--bp-warning-strong);
}

.bp-tree-checkbox:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.bp-tree-label {
  border: none;
  background: transparent;
  color: var(--bp-ink);
  cursor: pointer;
  text-align: left;
  flex: 1 1 auto;
  padding: 0.1rem 0.2rem;
  border-radius: 6px;
}

.bp-tree-label:focus-visible {
  outline: 2px solid var(--bp-focus, var(--bp-accent));
  outline-offset: 2px;
}

.bp-tree-item-selected .bp-tree-label {
  font-weight: 600;
}

.bp-tree-item-partial .bp-tree-label {
  color: var(--bp-ink-strong);
}

.bp-tree-item-disabled {
  opacity: 0.6;
}

.bp-tree-actions,
.bp-tree-context {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}

/* Virtualized list */
.bp-virtualized-list {
  border: 1px solid var(--bp-outline-muted);
  border-radius: 12px;
  background: var(--bp-surface);
  padding: 0.5rem;
  width: var(--bp-virtualized-list-width, auto);
  max-width: 100%;
  max-height: var(--bp-virtualized-list-height, auto);
  overflow: auto;
}

.bp-virtualized-list-header,
.bp-virtualized-list-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.bp-virtualized-list-header {
  margin-bottom: 0.5rem;
}

.bp-virtualized-list-footer {
  margin-top: 0.5rem;
}

.bp-virtualized-list-loading,
.bp-virtualized-list-empty,
.bp-virtualized-list-error {
  padding: 0.75rem;
  color: var(--bp-subtle);
  text-align: center;
}

.bp-virtualized-list-error {
  color: var(--bp-danger);
}

.bp-virtualized-list-item {
  display: block;
  min-width: 0;
}

.bp-virtualized-list-item + .bp-virtualized-list-item {
  margin-top: 0.25rem;
}

.bp-density-compact .bp-virtualized-list-item + .bp-virtualized-list-item {
  margin-top: 0.125rem;
}

.bp-density-comfortable .bp-virtualized-list-item + .bp-virtualized-list-item {
  margin-top: 0.375rem;
}
