:root {
    color-scheme: light;
    --page-bg: #ffffff;
    --page-text: #212529;
    --panel-bg: #f8f9fa;
    --panel-text: #212529;
    --link-color: #0d6efd;
    --border-color: #dee2e6;
}

body {
    background-color: var(--page-bg);
    color: var(--page-text);
    transition: background-color 0.2s ease, color 0.2s ease;
}

html.dark-theme {
    color-scheme: dark;
    --page-bg: #111827;
    --page-text: #f8f9fa;
    --panel-bg: #1f2937;
    --panel-text: #f8f9fa;
    --link-color: #8ec5ff;
    --border-color: #4b5563;
}

html.dark-theme .text-bg-light,
html.dark-theme .text-bg-primary {
    background-color: var(--panel-bg) !important;
    color: var(--panel-text) !important;
}

html.dark-theme .theme-panel {
    color: var(--panel-text) !important;
}

html.dark-theme .theme-panel a,
html.dark-theme .theme-panel .alert-link {
    color: var(--link-color);
}

html.dark-theme .theme-panel .img-thumbnail {
    border-color: var(--border-color);
}

html.dark-theme a:not(.nav-link):not(.link-light):not(.navbar-brand):not(.alert-link) {
    color: var(--link-color);
}

html.dark-theme .table {
    --bs-table-color: var(--panel-text);
    --bs-table-bg: var(--panel-bg);
    --bs-table-border-color: var(--border-color);
    --bs-table-striped-bg: #273244;
    --bs-table-striped-color: var(--panel-text);
    --bs-table-hover-bg: #2f3c52;
    --bs-table-hover-color: var(--panel-text);
    background-color: var(--panel-bg);
    color: var(--panel-text);
}

html.dark-theme .table td,
html.dark-theme .table th {
    border-color: var(--border-color);
}
