/* =========================================================
   OwnWave Bootstrap Overrides
   Purpose: make Bootstrap components follow ow-theme.css tokens
   Scope: buttons / tables / alerts / modals / basic defaults
   ========================================================= */

/* ---------- Bootstrap global vars ---------- */
:root {
    /* Base */
    --bs-body-bg: var(--ow-bg);
    --bs-body-bg-rgb: var(--bg-rgb);
    --bs-body-color: var(--ow-text);
    --bs-body-color-rgb: var(--text-rgb);
    --bs-secondary-color: var(--ow-muted);

    /* Borders / links */
    --bs-border-color: var(--ow-border);
    --bs-border-color-translucent: var(--ow-border);
    --bs-link-color: var(--link);
    --bs-link-hover-color: var(--link-hover);
}

/* ---------- Buttons ---------- */
.btn {
    border-radius: 12px;
    font-weight: 700;
}

.btn-primary {
    --bs-btn-color: var(--primary-contrast);
    --bs-btn-bg: var(--primary);
    --bs-btn-border-color: rgba(var(--primary-rgb), .65);
    --bs-btn-hover-color: var(--primary-contrast);
    --bs-btn-hover-bg: var(--primary-hover);
    --bs-btn-hover-border-color: rgba(var(--primary-rgb), .85);
    --bs-btn-active-color: var(--primary-contrast);
    --bs-btn-active-bg: var(--primary-hover);
    --bs-btn-active-border-color: rgba(var(--primary-rgb), .95);
    --bs-btn-disabled-color: var(--primary-contrast);
    --bs-btn-disabled-bg: rgba(var(--primary-rgb), .35);
    --bs-btn-disabled-border-color: rgba(var(--primary-rgb), .35);
}

.btn-secondary {
    --bs-btn-color: var(--ow-text);
    --bs-btn-bg: var(--soft-bg-2);
    --bs-btn-border-color: var(--ow-border);
    --bs-btn-hover-color: var(--ow-text);
    --bs-btn-hover-bg: var(--soft-bg-hover);
    --bs-btn-hover-border-color: var(--border-2);
    --bs-btn-active-color: var(--ow-text);
    --bs-btn-active-bg: rgba(var(--text-rgb), .08);
    --bs-btn-active-border-color: var(--border-2);
    --bs-btn-disabled-color: rgba(var(--text-rgb), .55);
    --bs-btn-disabled-bg: rgba(var(--text-rgb), .04);
    --bs-btn-disabled-border-color: rgba(var(--text-rgb), .04);
}

.btn-outline-secondary {
    --bs-btn-color: var(--ow-text);
    --bs-btn-border-color: var(--ow-border);
    --bs-btn-hover-color: var(--ow-text);
    --bs-btn-hover-bg: var(--soft-bg-2);
    --bs-btn-hover-border-color: var(--border-2);
    --bs-btn-active-color: var(--ow-text);
    --bs-btn-active-bg: rgba(var(--text-rgb), .08);
    --bs-btn-active-border-color: var(--border-2);
    --bs-btn-disabled-color: rgba(var(--text-rgb), .45);
    --bs-btn-disabled-border-color: rgba(var(--text-rgb), .10);
}

.btn-link {
    --bs-btn-color: var(--link);
    --bs-btn-hover-color: var(--link-hover);
    text-decoration: none;
}

.btn-link:hover {
    text-decoration: underline;
}

/* Close icon (used in offcanvas/modals) */
html[data-theme="dark"] .btn-close {
    filter: invert(1) grayscale(1);
    opacity: .78;
}

html[data-theme="light"] .btn-close {
    filter: none;
    opacity: .65;
}

.btn-close:hover {
    opacity: 1;
}

/* ---------- Alerts ---------- */
.alert {
    border-radius: 14px;
    border: 1px solid var(--ow-border);
    background: var(--soft-bg);
    color: var(--ow-text);
}

.alert a {
    color: var(--link);
}

.alert a:hover {
    color: var(--link-hover);
}

.alert-success {
    background: var(--success-soft);
    border-color: rgba(var(--success-rgb), .28);
}

.alert-warning {
    background: var(--warning-soft);
    border-color: rgba(var(--warning-rgb), .28);
}

.alert-danger {
    background: var(--danger-soft);
    border-color: rgba(var(--danger-rgb), .30);
}

.alert-info {
    background: rgba(var(--primary-rgb), .10);
    border-color: rgba(var(--primary-rgb), .25);
}

/* ---------- Tables ---------- */
.table {
    --bs-table-color: var(--ow-text);
    --bs-table-bg: transparent;
    --bs-table-border-color: var(--ow-border);
    --bs-table-striped-color: var(--ow-text);
    --bs-table-striped-bg: rgba(var(--text-rgb), .03);
    --bs-table-hover-color: var(--ow-text);
    --bs-table-hover-bg: rgba(var(--text-rgb), .05);
}

.table thead th,
.table thead td {
    color: var(--ow-muted);
    border-bottom-color: var(--ow-border);
}

/* Bootstrap utility variants that assume a light background */
.table-light {
    --bs-table-bg: rgba(var(--text-rgb), .04);
}

tr.table-light,
tr.table-light > th,
tr.table-light > td {
    background-color: rgba(var(--text-rgb), .04) !important;
    color: var(--ow-text) !important;
}

/* ---------- Cards ---------- */
.card {
    background: var(--ow-surface);
    border-color: var(--ow-border);
    color: var(--ow-text);
    border-radius: 14px;
}

.card-header,
.card-footer {
    border-color: var(--ow-border);
    background: rgba(var(--text-rgb), .02);
}

/* ---------- Modals ---------- */
.modal-content {
    background: var(--ow-surface);
    border: 1px solid var(--ow-border);
    color: var(--ow-text);
    border-radius: 16px;
    box-shadow: var(--shadow-lg);
}

.modal-header,
.modal-footer {
    border-color: var(--ow-border);
}

/* ---------- Badges (light variant) ---------- */
.badge.bg-light {
    background: rgba(var(--text-rgb), .06) !important;
    color: var(--ow-text) !important;
    border: 1px solid var(--ow-border);
}
