/* =====================================================
   TowerOS Bootstrap Theme Bridge
   ===================================================== */

body {
    background-color: var(--tower-bg);
    color: var(--tower-text);
}

/* ---------- Cards ---------- */

.card,
.dashboard-card,
.modal-content,
.dropdown-menu,
.offcanvas,
.accordion-item {
    background-color: var(--tower-surface);
    border-color: var(--tower-border);
    color: var(--tower-text);
}

/* ---------- Headers ---------- */

.card-header,
.card-footer,
.modal-header,
.modal-footer,
.accordion-button {
    background-color: var(--tower-surface-2);
    border-color: var(--tower-border);
    color: var(--tower-text);
}

/* ---------- Text ---------- */

.text-light {
    color: var(--tower-text) !important;
}

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

/* ---------- Forms ---------- */

.form-control,
.form-select,
.input-group-text {
    background-color: var(--tower-surface);
    border-color: var(--tower-border);
    color: var(--tower-text);
}

.form-control:focus,
.form-select:focus {
    background-color: var(--tower-surface);
    color: var(--tower-text);
    border-color: var(--tower-primary);
    box-shadow: 0 0 0 .2rem rgba(var(--tower-primary-rgb), .25);
}

.form-check-input {
    background-color: var(--tower-surface);
    border-color: var(--tower-border);
}

.form-check-input:checked {
    background-color: var(--tower-primary);
    border-color: var(--tower-primary);
}

/* ---------- Buttons ---------- */

.btn-primary {
    background-color: var(--tower-primary);
    border-color: var(--tower-primary);
}

.btn-success {
    background-color: var(--tower-success);
    border-color: var(--tower-success);
}

.btn-danger {
    background-color: var(--tower-danger);
    border-color: var(--tower-danger);
}

.btn-warning {
    background-color: var(--tower-warning);
    border-color: var(--tower-warning);
}

.btn-info {
    background-color: var(--tower-info);
    border-color: var(--tower-info);
}

.btn-outline-secondary,
.btn-outline-light,
.btn-outline-info {
    color: var(--tower-text);
    border-color: var(--tower-border);
}

.btn-outline-secondary:hover,
.btn-outline-light:hover,
.btn-outline-info:hover {
    background-color: rgba(var(--tower-primary-rgb), .15);
    border-color: var(--tower-primary);
}

/* ---------- Tables ---------- */

.table {
    color: var(--tower-text);
    border-color: var(--tower-border);
}

.table th,
.table td {
    border-color: var(--tower-border);
}

.table-striped > tbody > tr:nth-of-type(odd) {
    background-color: rgba(255,255,255,.03);
}

.table-hover tbody tr:hover {
    background-color: rgba(var(--tower-primary-rgb), .10);
}

/* ---------- Alerts ---------- */

.alert-success {
    background-color: rgba(var(--tower-success-rgb), .15);
    border-color: rgba(var(--tower-success-rgb), .35);
}

.alert-danger {
    background-color: rgba(var(--tower-danger-rgb), .15);
    border-color: rgba(var(--tower-danger-rgb), .35);
}

.alert-warning {
    background-color: rgba(var(--tower-warning-rgb), .15);
    border-color: rgba(var(--tower-warning-rgb), .35);
}

.alert-info {
    background-color: rgba(var(--tower-info-rgb), .15);
    border-color: rgba(var(--tower-info-rgb), .35);
}

/* ---------- Dropdown ---------- */

.dropdown-item {
    color: var(--tower-text);
}

.dropdown-item:hover {
    background-color: rgba(var(--tower-primary-rgb), .15);
}

/* ---------- Modals ---------- */

.modal-content {
    background-color: var(--tower-surface);
}

/* ---------- Pagination ---------- */

.page-link {
    background-color: var(--tower-surface);
    border-color: var(--tower-border);
    color: var(--tower-text);
}

.page-link:hover {
    background-color: rgba(var(--tower-primary-rgb), .15);
}

/* ---------- Progress ---------- */

.progress {
    background-color: var(--tower-surface-2);
}

.progress-bar {
    background-color: var(--tower-primary);
}

/* ---------- Bootstrap button hover states ---------- */

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--tower-primary);
    --bs-btn-border-color: var(--tower-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: color-mix(in srgb, var(--tower-primary), white 10%);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--tower-primary), white 10%);
    --bs-btn-active-bg: color-mix(in srgb, var(--tower-primary), black 12%);
    --bs-btn-active-border-color: color-mix(in srgb, var(--tower-primary), black 12%);
}

.btn-outline-primary,
.btn-outline-info,
.btn-outline-secondary,
.btn-outline-light {
    --bs-btn-color: var(--tower-text);
    --bs-btn-border-color: var(--tower-border);
    --bs-btn-hover-color: var(--tower-text);
    --bs-btn-hover-bg: rgba(var(--tower-primary-rgb), .20);
    --bs-btn-hover-border-color: var(--tower-primary);
    --bs-btn-active-color: var(--tower-text);
    --bs-btn-active-bg: rgba(var(--tower-primary-rgb), .30);
    --bs-btn-active-border-color: var(--tower-primary);
}

/* ---------- Links ---------- */

a,
.btn-link {
    color: var(--tower-primary);
}

a:hover,
.btn-link:hover {
    color: color-mix(in srgb, var(--tower-primary), white 25%);
}

/* Prevent dark hover text on nav/dropdowns/buttons */
.nav-link:hover,
.dropdown-item:hover,
.btn:hover,
a:hover {
    text-decoration: none;
}

.nav-link:hover,
.sidebar .nav-link:hover {
    color: var(--tower-text) !important;
    background-color: rgba(var(--tower-primary-rgb), .14);
}

.sidebar .nav-link.active {
    color: var(--tower-text) !important;
    background-color: rgba(var(--tower-primary-rgb), .22);
}

/* ---------- Topbar / notification bar ---------- */

.topbar {
    background-color: var(--tower-surface) !important;
    color: var(--tower-text) !important;
    border-bottom: 1px solid var(--tower-border);
}

.topbar label,
.topbar span,
.topbar div,
.topbar i,
.topbar a {
    color: var(--tower-text) !important;
}

.topbar a:hover,
.topbar i:hover {
    color: var(--tower-primary) !important;
}

/* Person icon should follow theme */
.topbar .bi-person-circle,
.topbar .dropdown-toggle,
.top-icons .bi-person-circle {
    color: var(--tower-text) !important;
}

.topbar .dropdown-toggle:hover .bi-person-circle,
.top-icons .dropdown-toggle:hover .bi-person-circle {
    color: var(--tower-primary) !important;
}

/* Notification icon */
.topbar .bi-bell,
.top-icons .bi-bell {
    color: var(--tower-text) !important;
}

.topbar .bi-bell:hover,
.top-icons .bi-bell:hover {
    color: var(--tower-primary) !important;
}

/* ---------- Alerts / notification messages ---------- */

.alert,
.alert-success,
.alert-danger,
.alert-warning,
.alert-info,
.alert-secondary {
    color: var(--tower-text) !important;
}

.alert-success {
    background-color: rgba(var(--tower-success-rgb), .16) !important;
    border-color: rgba(var(--tower-success-rgb), .45) !important;
}

.alert-danger {
    background-color: rgba(var(--tower-danger-rgb), .16) !important;
    border-color: rgba(var(--tower-danger-rgb), .45) !important;
}

.alert-warning {
    background-color: rgba(var(--tower-warning-rgb), .18) !important;
    border-color: rgba(var(--tower-warning-rgb), .45) !important;
}

.alert-info {
    background-color: rgba(var(--tower-info-rgb), .16) !important;
    border-color: rgba(var(--tower-info-rgb), .45) !important;
}

.alert-secondary {
    background-color: var(--tower-surface-2) !important;
    border-color: var(--tower-border) !important;
}

/* ---------- Dropdown fix ---------- */

.dropdown-menu {
    background-color: var(--tower-surface) !important;
    border-color: var(--tower-border) !important;
}

.dropdown-item {
    color: var(--tower-text) !important;
}

.dropdown-item:hover,
.dropdown-item:focus {
    color: var(--tower-text) !important;
    background-color: rgba(var(--tower-primary-rgb), .18) !important;
}