/* Theme Variables */
:root {
    /* Light Theme Colors */
    --bg-primary: #f0f4f8;
    --bg-secondary: #d9e2ec;
    --bg-tertiary: #bcccdc;
    --text-primary: #102a43;
    --text-secondary: #486581;
    --text-muted: #829ab1;
    --border-color: #bcccdc;
    --link-color: #0066cc;
    --link-hover-color: #004499;
    /* Navbar Colors */
    --navbar-bg: #0d3b66;
    --navbar-text: #f0f4f8;
    --navbar-border: #1a5490;
    /* Footer Colors */
    --footer-bg: #f8f9fa;
    --footer-text: #6c757d;
    --footer-border: #dee2e6;
    /* Alert Colors - maintain Bootstrap compatibility */
    --alert-success-bg: #d1e7dd;
    --alert-success-text: #0f5132;
    --alert-success-border: #badbcc;
    --alert-danger-bg: #f8d7da;
    --alert-danger-text: #842029;
    --alert-danger-border: #f5c2c7;
    /* Shadow */
    --box-shadow: 0 .125rem .25rem rgba(0,0,0,.075);
}

/* Dark Theme Colors */
[data-theme="dark"] {
    --bg-primary: #102a43;
    --bg-secondary: #243b53;
    --bg-tertiary: #334e68;
    --text-primary: #f0f4f8;
    --text-secondary: #bcccdc;
    --link-color: #5fb3f6;
    --link-hover-color: #8eccff;
    --text-muted: #6c757d;
    --border-color: #495057;
    /* Navbar Colors */
    --navbar-bg: #343a40;
    --navbar-text: #f8f9fa;
    --navbar-border: #495057;
    /* Footer Colors */
    --footer-bg: #343a40;
    --footer-text: #adb5bd;
    --footer-border: #495057;
    /* Alert Colors - Dark theme variants */
    --alert-success-bg: #0f5132;
    --alert-success-text: #d1e7dd;
    --alert-success-border: #0f5132;
    --alert-danger-bg: #842029;
    --alert-danger-text: #f8d7da;
    --alert-danger-border: #842029;
    /* Shadow */
    --box-shadow: 0 .125rem .25rem rgba(0,0,0,.5);
}

/* Apply Theme Variables */
body {
    background-color: var(--bg-primary);
    color: var(--text-primary);
    transition: background-color 0.3s ease, color 0.3s ease;
}

/* Navbar Theming */
.navbar {
    background-color: var(--navbar-bg) !important;
    border-color: var(--navbar-border) !important;
}

.navbar-light .navbar-brand,
.navbar-light .nav-link {
    color: var(--navbar-text) !important;
}

.navbar-light .nav-link:hover,
.navbar-light .nav-link:focus {
    color: var(--link-hover-color) !important;
}

/* Footer Theming */
.footer {
    background-color: var(--footer-bg);
    color: var(--footer-text);
    border-color: var(--footer-border);
}

.footer a {
    color: var(--link-color);
}

.footer a:hover {
    color: var(--link-hover-color);
}

/* Card Theming */
.card {
    background-color: var(--bg-secondary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

.card-header {
    background-color: var(--bg-tertiary);
    border-color: var(--border-color);
}

/* Table Theming */
.table {
    color: var(--text-primary);
    border-color: var(--border-color);
}

.table-striped > tbody > tr:nth-of-type(odd) {
    background-color: var(--bg-secondary);
}

.table-hover > tbody > tr:hover {
    background-color: var(--bg-tertiary);
}

/* Form Theming */
.form-control,
.form-select {
    background-color: var(--bg-secondary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

.form-control:focus,
.form-select:focus {
    background-color: var(--bg-secondary);
    color: var(--text-primary);
    border-color: var(--link-color);
}

.form-control::placeholder {
    color: var(--text-secondary);
}

/* Link Theming */
a {
    color: var(--link-color);
}

a:hover {
    color: var(--link-hover-color);
}

/* Alert Theming */
.alert-success {
    background-color: var(--alert-success-bg);
    color: var(--alert-success-text);
    border-color: var(--alert-success-border);
}

.alert-danger {
    background-color: var(--alert-danger-bg);
    color: var(--alert-danger-text);
    border-color: var(--alert-danger-border);
}

/* Modal Theming */
.modal-content {
    background-color: var(--bg-primary);
    color: var(--text-primary);
}

.modal-header,
.modal-footer {
    border-color: var(--border-color);
}

/* Dropdown Theming */
.dropdown-menu {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}

.dropdown-item {
    color: var(--text-primary);
}

.dropdown-item:hover,
.dropdown-item:focus {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
}

/* Theme Toggle Button */
.theme-toggle {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
    display: flex;
    align-items: center;
    color: var(--navbar-text);
    font-size: 1.25rem;
}

.theme-toggle:hover {
    color: var(--link-hover-color);
}

.theme-icon {
    width: 20px;
    height: 20px;
    transition: transform 0.3s ease;
}

.theme-toggle:hover .theme-icon {
    transform: rotate(20deg);
}

/* List Group Theming */
.list-group-item {
    background-color: var(--bg-secondary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

.list-group-item:hover {
    background-color: var(--bg-tertiary);
}

/* Breadcrumb Theming */
.breadcrumb {
    background-color: var(--bg-secondary);
}

.breadcrumb-item a {
    color: var(--link-color);
}

/* Badge Theming */
.badge {
    color: var(--text-primary);
}

/* Pagination Theming */
.page-link {
    background-color: var(--bg-secondary);
    color: var(--link-color);
    border-color: var(--border-color);
}

.page-link:hover {
    background-color: var(--bg-tertiary);
    color: var(--link-hover-color);
}

.page-item.active .page-link {
    background-color: var(--link-color);
    border-color: var(--link-color);
    color: #fff;
}

.page-item.disabled .page-link {
    background-color: var(--bg-secondary);
    color: var(--text-muted);
}
