/* Bootstrap variable bridge. Keep framework defaults aligned to app tokens. */
:root,
[data-bs-theme="dark"] {
    --bs-body-bg: var(--app-bg);
    --bs-body-color: var(--app-text);
    --bs-border-color: var(--app-border);
    --bs-primary: var(--app-accent);
    --bs-secondary: var(--app-muted);
    --bs-success: var(--app-success);
    --bs-warning: var(--app-warning);
    --bs-danger: var(--app-danger);
    --bs-info: var(--app-info);
    --bs-link-color: var(--app-link);
    --bs-link-hover-color: var(--app-link-hover);
    --bs-modal-bg: var(--app-modal-bg);
    --bs-dropdown-bg: var(--app-menu-bg);
    --bs-tertiary-bg: var(--app-surface-muted);
    --bs-emphasis-color: var(--app-text);
    --bs-secondary-color: var(--app-muted);
    --bs-secondary-bg: var(--app-surface-2);
    --bs-body-font-size: var(--text-base);
    --bs-border-radius: var(--app-radius-md);
    --bs-border-radius-sm: var(--app-radius-sm);
    --bs-border-radius-lg: var(--app-radius-lg);
    --app-focus-ring-primary: rgba(var(--bs-primary-rgb), 0.25);
}

.btn {
    --bs-btn-font-size: var(--text-base);
    --bs-btn-padding-x: calc(0.75rem * var(--app-density-space-scale));
    --bs-btn-padding-y: calc(0.375rem * var(--app-density-space-scale));
    --bs-btn-border-radius: var(--app-radius-md);
}

.btn-sm {
    --bs-btn-font-size: var(--text-sm);
    --bs-btn-padding-x: calc(0.5rem * var(--app-density-space-scale));
    --bs-btn-padding-y: calc(0.25rem * var(--app-density-space-scale));
}

.btn-lg {
    --bs-btn-font-size: var(--text-lg);
    --bs-btn-padding-x: calc(1rem * var(--app-density-space-scale));
    --bs-btn-padding-y: calc(0.5rem * var(--app-density-space-scale));
}

.form-control,
.form-select {
    min-height: var(--app-control-height-md);
    font-size: var(--text-base);
}

.form-control-sm,
.form-select-sm {
    min-height: var(--app-control-height-sm);
    font-size: var(--text-sm);
}

.form-control-lg,
.form-select-lg {
    min-height: var(--app-control-height-lg);
    font-size: var(--text-lg);
}

.dropdown-menu {
    --bs-dropdown-font-size: var(--text-base);
    --bs-dropdown-padding-x: var(--app-space-2);
    --bs-dropdown-padding-y: var(--app-space-2);
    --bs-dropdown-item-padding-x: var(--app-space-3);
    --bs-dropdown-item-padding-y: var(--app-space-2);
}

.table {
    --bs-table-cell-padding-x: var(--app-space-3);
    --bs-table-cell-padding-y: var(--app-space-2);
    font-size: var(--text-base);
}

.modal {
    --bs-modal-color: var(--app-text);
    --bs-modal-bg: var(--app-modal-bg);
    --bs-modal-border-color: var(--app-border-strong);
    --bs-modal-border-radius: var(--app-radius-lg);
    --bs-modal-inner-border-radius: calc(var(--app-radius-lg) - 1px);
    --bs-modal-header-border-color: var(--app-border);
    --bs-modal-footer-border-color: var(--app-border);
    --bs-modal-box-shadow: var(--app-shadow-lg);
}

.modal-content {
    background: linear-gradient(180deg, var(--app-surface-2), var(--app-modal-bg));
    box-shadow: var(--app-shadow-lg);
}

.modal-content.shadow {
    box-shadow: var(--app-shadow-lg) !important;
}

.modal-header {
    background: var(--app-surface-2);
}

.modal-footer {
    background: var(--app-modal-bg);
}

.btn-primary {
    --bs-btn-color: var(--app-text-inverse);
    --bs-btn-bg: var(--app-accent);
    --bs-btn-border-color: var(--app-accent);
    --bs-btn-hover-color: var(--app-text-inverse);
    --bs-btn-hover-bg: var(--app-accent-hover);
    --bs-btn-hover-border-color: var(--app-accent-hover);
    --bs-btn-focus-shadow-rgb: 139, 181, 255;
    --bs-btn-active-color: var(--app-text-inverse);
    --bs-btn-active-bg: var(--app-accent-hover);
    --bs-btn-active-border-color: var(--app-accent-hover);
    --bs-btn-disabled-color: var(--app-text-inverse);
    --bs-btn-disabled-bg: var(--app-accent);
    --bs-btn-disabled-border-color: var(--app-accent);
}
