/* AUTO-GENERATED — synced from gdo-design@2.0.0 (sha 2d0ac6c207f21322). DO NOT EDIT. */
/* AUTO-GENERATED by build-tokens.mjs from src/scss/gdo-bootstrap-bridge.scss — do not edit dist/ */
/* gdo-design Bootstrap 5.3 bridge — re-points Bootstrap component variables at */
/* the gdo role tokens so Bootstrap markup on any gdo surface picks up the active */
/* theme at runtime (Bootstrap 5.3 components read per-variant --bs-* custom */
/* properties at runtime, so overriding them here means picking a theme actually */
/* recolors the page without recompiling bootstrap.css). */
/* */
/* Canonical source: this file (direction set in TOKEN-SCHEMA.md §7 — the */
/* Bootstrap bridge is a dedicated artifact, not a parallel naming layer). */
/* Emitted as dist/bootstrap-bridge.css and distributed to css consumers. */
/* Role tokens only — never Layer 1 primitives — so themes re-skin everything. */

/* ── Buttons ── */

/* Geometry: Bootstrap buttons share .gdo-btn's metrics (font, size, weight,
   radius, padding, line-height) so server-rendered .btn and OWL GdoButton are
   visually one button system on every page. */
.btn {
  --bs-btn-font-family: var(--gdo-type-family-sans);
  --bs-btn-font-size: var(--gdo-type-size-sm);
  --bs-btn-font-weight: var(--gdo-type-weight-medium);
  --bs-btn-line-height: 1.4;
  --bs-btn-padding-y: var(--gdo-space-0);
  --bs-btn-padding-x: var(--gdo-space-3);
  --bs-btn-border-radius: var(--gdo-radius-2);
  font-family: var(--gdo-type-family-sans);
}

.btn-sm,
.btn-group-sm > .btn {
  --bs-btn-font-size: var(--gdo-type-size-xs);
  --bs-btn-padding-y: 0.15rem;
  --bs-btn-padding-x: var(--gdo-space-1);
  --bs-btn-border-radius: var(--gdo-radius-2);
}

.btn-lg,
.btn-group-lg > .btn {
  --bs-btn-font-size: var(--gdo-type-size-base);
  --bs-btn-padding-y: var(--gdo-space-1);
  --bs-btn-padding-x: var(--gdo-space-4);
  --bs-btn-border-radius: var(--gdo-radius-2);
}

/* Focus ring: Bootstrap derives focus shadows from rgb triplets that cannot
   reference tokens — override the resolved shadow with the gdo focus ring. */
.btn:focus-visible {
  box-shadow: var(--gdo-focus-ring);
}

.btn-primary {
  --bs-btn-bg: var(--gdo-bg-action);
  --bs-btn-border-color: var(--gdo-bg-action);
  --bs-btn-color: var(--gdo-text-on-action);
  --bs-btn-hover-bg: var(--gdo-bg-action-hover);
  --bs-btn-hover-border-color: var(--gdo-bg-action-hover);
  --bs-btn-hover-color: var(--gdo-text-on-action);
  --bs-btn-active-bg: var(--gdo-bg-action-hover);
  --bs-btn-active-border-color: var(--gdo-bg-action-hover);
  --bs-btn-active-color: var(--gdo-text-on-action);
  --bs-btn-disabled-bg: var(--gdo-bg-action);
  --bs-btn-disabled-border-color: var(--gdo-bg-action);
  --bs-btn-disabled-color: var(--gdo-text-on-action);
}

.btn-secondary {
  --bs-btn-bg: var(--gdo-bg-action-alt);
  --bs-btn-border-color: var(--gdo-bg-action-alt);
  --bs-btn-color: var(--gdo-text-on-action);
  --bs-btn-hover-bg: var(--gdo-bg-action);
  --bs-btn-hover-border-color: var(--gdo-bg-action);
  --bs-btn-hover-color: var(--gdo-text-on-action);
  --bs-btn-active-bg: var(--gdo-bg-action);
  --bs-btn-active-border-color: var(--gdo-bg-action);
  --bs-btn-active-color: var(--gdo-text-on-action);
  --bs-btn-disabled-bg: var(--gdo-bg-action-alt);
  --bs-btn-disabled-border-color: var(--gdo-bg-action-alt);
  --bs-btn-disabled-color: var(--gdo-text-on-action);
}

.btn-outline-primary {
  --bs-btn-color: var(--gdo-bg-action);
  --bs-btn-border-color: var(--gdo-bg-action);
  --bs-btn-hover-bg: var(--gdo-bg-action);
  --bs-btn-hover-border-color: var(--gdo-bg-action);
  --bs-btn-hover-color: var(--gdo-text-on-action);
  --bs-btn-active-bg: var(--gdo-bg-action);
  --bs-btn-active-border-color: var(--gdo-bg-action);
  --bs-btn-active-color: var(--gdo-text-on-action);
}

.btn-outline-secondary {
  --bs-btn-color: var(--gdo-text-secondary);
  --bs-btn-border-color: var(--gdo-border);
  --bs-btn-hover-color: var(--gdo-text-primary);
  --bs-btn-hover-bg: var(--gdo-bg-surface-raised);
  --bs-btn-hover-border-color: var(--gdo-border);
  --bs-btn-active-color: var(--gdo-text-primary);
  --bs-btn-active-bg: var(--gdo-bg-surface-raised);
  --bs-btn-active-border-color: var(--gdo-bg-action);
}

/* Active state for filter button groups */
.btn-group .btn-outline-secondary.active,
.btn-outline-secondary.active {
  background: var(--gdo-bg-action-soft);
  color: var(--gdo-bg-action-alt);
  border-color: var(--gdo-bg-action-alt);
}

.btn-danger {
  --bs-btn-color: var(--gdo-text-on-action);
  --bs-btn-bg: var(--gdo-status-danger);
  --bs-btn-border-color: var(--gdo-status-danger);
  --bs-btn-hover-color: var(--gdo-text-on-action);
  --bs-btn-hover-bg: var(--gdo-status-danger);
  --bs-btn-hover-border-color: var(--gdo-status-danger);
}

.btn-outline-danger {
  --bs-btn-color: var(--gdo-status-danger);
  --bs-btn-border-color: var(--gdo-status-danger);
  --bs-btn-hover-color: var(--gdo-text-on-action);
  --bs-btn-hover-bg: var(--gdo-status-danger);
  --bs-btn-hover-border-color: var(--gdo-status-danger);
}

.btn-link {
  --bs-btn-color: var(--gdo-link);
  --bs-btn-hover-color: var(--gdo-link-hover);
}

/* ── Tables ── */

.table {
  --bs-table-color: var(--gdo-text-primary);
  --bs-table-bg: transparent;
  --bs-table-border-color: var(--gdo-border);
  --bs-table-striped-bg: var(--gdo-bg-surface);
  --bs-table-hover-bg: var(--gdo-bg-surface-raised);
  --bs-table-hover-color: var(--gdo-text-primary);
}

.table thead th {
  color: var(--gdo-text-muted);
  font-size: var(--gdo-type-size-xs);
  font-weight: var(--gdo-type-weight-medium);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-bottom-color: var(--gdo-border);
}

/* ── Modals ── */

.modal-content {
  background-color: var(--gdo-bg-surface-elevated);
  border-color: var(--gdo-border);
  color: var(--gdo-text-primary);
  box-shadow: var(--gdo-shadow-3);
}

.modal-header {
  border-bottom-color: var(--gdo-border);
  background: var(--gdo-bg-surface);
  color: var(--gdo-text-primary);
}

.modal-footer {
  border-top-color: var(--gdo-border);
  background: var(--gdo-bg-surface);
}

.modal-title {
  font-size: var(--gdo-type-size-base);
  font-weight: var(--gdo-type-weight-medium);
}

/* ── Alerts ── */

.alert-info    { --bs-alert-bg: var(--gdo-status-info-bg);    --bs-alert-border-color: var(--gdo-status-info-border);    --bs-alert-color: var(--gdo-text-primary); }
.alert-success { --bs-alert-bg: var(--gdo-status-success-bg); --bs-alert-border-color: var(--gdo-status-success-border); --bs-alert-color: var(--gdo-text-primary); }
.alert-warning { --bs-alert-bg: var(--gdo-status-warning-bg); --bs-alert-border-color: var(--gdo-status-warning-border); --bs-alert-color: var(--gdo-text-primary); }
.alert-danger  { --bs-alert-bg: var(--gdo-status-danger-bg);  --bs-alert-border-color: var(--gdo-status-danger-border);  --bs-alert-color: var(--gdo-text-primary); }

/* ── Nav tabs ── */

.nav-tabs {
  --bs-nav-tabs-border-color: var(--gdo-border);
  --bs-nav-tabs-link-active-bg: var(--gdo-bg-page);
  --bs-nav-tabs-link-active-border-color: var(--gdo-border) var(--gdo-border) var(--gdo-bg-page);
}

.nav-tabs .nav-link {
  color: var(--gdo-text-secondary);
  font-family: var(--gdo-type-family-sans);
  font-size: var(--gdo-type-size-sm);
}

.nav-tabs .nav-link:hover {
  color: var(--gdo-text-primary);
  border-color: var(--gdo-border) var(--gdo-border) transparent;
}

.nav-tabs .nav-link.active {
  color: var(--gdo-link);
  background-color: var(--gdo-bg-page);
  border-color: var(--gdo-border) var(--gdo-border) var(--gdo-bg-page);
}

/* ── Progress ── */

.progress {
  background-color: var(--gdo-bg-surface-raised);
}

.progress-bar {
  background-color: var(--gdo-bg-action);
}

/* ── Forms ── */

.form-control,
.form-select {
  background-color: var(--gdo-bg-page);
  border-color: var(--gdo-border);
  color: var(--gdo-text-primary);
  font-family: var(--gdo-type-family-sans);
  font-size: var(--gdo-type-size-sm);
}

.form-control:focus,
.form-select:focus {
  background-color: var(--gdo-bg-page);
  border-color: var(--gdo-bg-action-alt);
  color: var(--gdo-text-primary);
  box-shadow: var(--gdo-focus-ring-alt);
}

.form-control::placeholder,
.form-select::placeholder {
  color: var(--gdo-text-muted);
}

.form-label {
  font-size: var(--gdo-type-size-sm);
  color: var(--gdo-text-secondary);
  font-weight: var(--gdo-type-weight-medium);
}

.form-text {
  color: var(--gdo-text-muted);
  font-size: var(--gdo-type-size-xs);
}

/* ── Badges ── */

.badge {
  font-family: var(--gdo-type-family-sans);
}

.badge.bg-warning {
  color: var(--gdo-text-primary) !important;
}

/* ── Spinners ── */

.spinner-border {
  color: var(--gdo-bg-action);
}

.spinner-border.text-primary { color: var(--gdo-bg-action)       !important; }
.spinner-border.text-success { color: var(--gdo-status-success)  !important; }
.spinner-border.text-danger  { color: var(--gdo-status-danger)   !important; }

/* ── Text utilities → gdo tokens ── */

.text-muted { color: var(--gdo-text-muted) !important; }
