/* Site-wide night mode — River's Poker */

:root {
    --site-bg: #0f1419;
    --site-bg-elevated: #1a2332;
    --site-bg-surface: #232f42;
    --site-border: #2d3a4f;
    --site-border-subtle: #243044;
    --site-text: #e8eef5;
    --site-text-muted: #8fa3bf;
    --site-text-dim: #6b7f99;
    --site-link: #6ea8fe;
    --site-input-bg: #1a2332;
    --site-input-border: #3d4f6a;
    --site-shadow: rgba(0, 0, 0, 0.35);
    --site-content-max: 1760px;
    --site-content-wide-max: 1960px;
}

html {
    color-scheme: dark;
}

body.site-night {
    background-color: var(--site-bg);
    color: var(--site-text);
    min-height: 100vh;
}

.site-container {
    width: min(var(--site-content-max), calc(100% - 2rem));
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

.site-container--wide {
    width: min(var(--site-content-wide-max), calc(100% - 2rem));
}

body.site-night .navbar {
    border-color: var(--site-border) !important;
}

body.site-night h1,
body.site-night h2,
body.site-night h3,
body.site-night h4,
body.site-night h5,
body.site-night h6 {
    color: var(--site-text);
}

body.site-night a:not(.btn):not(.nav-link):not(.navbar-brand) {
    color: var(--site-link);
}

body.site-night a:not(.btn):not(.nav-link):not(.navbar-brand):hover {
    color: #9ec5fe;
}

body.site-night .text-muted {
    color: var(--site-text-muted) !important;
}

body.site-night .text-dark {
    color: var(--site-text) !important;
}

body.site-night .text-secondary {
    color: var(--site-text-muted) !important;
}

body.site-night hr {
    border-color: var(--site-border);
    opacity: 1;
}

body.site-night .border,
body.site-night .border-top,
body.site-night .border-bottom,
body.site-night .border-start,
body.site-night .border-end {
    border-color: var(--site-border) !important;
}

/* Bootstrap utility overrides */
body.site-night .bg-light,
body.site-night .bg-white {
    background-color: var(--site-bg-elevated) !important;
    color: var(--site-text);
}

body.site-night .site-hero {
    background: linear-gradient(145deg, var(--site-bg-elevated) 0%, var(--site-bg) 100%);
    border: 1px solid var(--site-border);
    color: var(--site-text);
}

body.site-night .site-surface {
    background-color: var(--site-bg-surface) !important;
    color: var(--site-text);
}

/* Cards */
body.site-night .card {
    background-color: var(--site-bg-elevated);
    border-color: var(--site-border);
    color: var(--site-text);
}

body.site-night .card-header,
body.site-night .card-footer {
    background-color: var(--site-bg-surface);
    border-color: var(--site-border);
    color: var(--site-text);
}

body.site-night .card.shadow-sm {
    box-shadow: 0 0.125rem 0.5rem var(--site-shadow) !important;
}

/* Tables */
body.site-night .table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--site-text);
    --bs-table-border-color: var(--site-border);
    --bs-table-striped-bg: rgba(255, 255, 255, 0.03);
    --bs-table-hover-bg: rgba(255, 255, 255, 0.06);
    --bs-table-active-bg: rgba(255, 255, 255, 0.08);
    color: var(--site-text);
}

body.site-night .table > :not(caption) > * > * {
    border-bottom-color: var(--site-border);
}

body.site-night .table thead th {
    color: var(--site-text-muted);
}

/* Forms */
body.site-night .form-control,
body.site-night .form-select {
    background-color: var(--site-input-bg);
    border-color: var(--site-input-border);
    color: var(--site-text);
}

body.site-night .form-control:focus,
body.site-night .form-select:focus {
    background-color: var(--site-input-bg);
    border-color: #5a7ab0;
    color: var(--site-text);
    box-shadow: 0 0 0 0.2rem rgba(110, 168, 254, 0.2);
}

body.site-night .form-control::placeholder {
    color: var(--site-text-dim);
}

body.site-night .form-control:disabled,
body.site-night .form-select:disabled {
    background-color: var(--site-bg-surface);
    color: var(--site-text-muted);
}

body.site-night .form-label,
body.site-night label {
    color: var(--site-text-muted);
}

body.site-night .form-text {
    color: var(--site-text-dim);
}

body.site-night .form-check-input {
    background-color: var(--site-input-bg);
    border-color: var(--site-input-border);
}

body.site-night .form-check-input:checked {
    background-color: #0d6efd;
    border-color: #0d6efd;
}

body.site-night .input-group-text {
    background-color: var(--site-bg-surface);
    border-color: var(--site-input-border);
    color: var(--site-text-muted);
}

/* Buttons */
body.site-night .btn-link {
    color: var(--site-link);
}

body.site-night .btn-link:hover {
    color: #9ec5fe;
}

body.site-night .btn-outline-secondary {
    color: var(--site-text-muted);
    border-color: var(--site-input-border);
}

body.site-night .btn-outline-secondary:hover {
    background-color: var(--site-bg-surface);
    border-color: var(--site-text-muted);
    color: var(--site-text);
}

body.site-night .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

/* Alerts */
body.site-night .alert {
    border-color: var(--site-border);
}

body.site-night .alert-secondary {
    background-color: var(--site-bg-surface);
    border-color: var(--site-border);
    color: var(--site-text);
}

/* Nav tabs / pills */
body.site-night .nav-tabs {
    border-bottom-color: var(--site-border);
}

body.site-night .nav-tabs .nav-link {
    color: var(--site-text-muted);
}

body.site-night .nav-tabs .nav-link:hover {
    border-color: var(--site-border);
    color: var(--site-text);
}

body.site-night .nav-tabs .nav-link.active {
    background-color: var(--site-bg-elevated);
    border-color: var(--site-border) var(--site-border) var(--site-bg-elevated);
    color: var(--site-text);
}

body.site-night .nav-pills .nav-link {
    color: var(--site-text-muted);
}

body.site-night .nav-pills .nav-link.active {
    background-color: #0d6efd;
}

/* List group */
body.site-night .list-group-item {
    background-color: var(--site-bg-elevated);
    border-color: var(--site-border);
    color: var(--site-text);
}

body.site-night .list-group-item-action:hover {
    background-color: var(--site-bg-surface);
    color: var(--site-text);
}

/* Dropdown */
body.site-night .dropdown-menu {
    background-color: var(--site-bg-elevated);
    border-color: var(--site-border);
}

body.site-night .dropdown-item {
    color: var(--site-text);
}

body.site-night .dropdown-item:hover,
body.site-night .dropdown-item:focus {
    background-color: var(--site-bg-surface);
    color: var(--site-text);
}

body.site-night .dropdown-divider {
    border-color: var(--site-border);
}

/* Modal */
body.site-night .modal-content {
    background-color: var(--site-bg-elevated);
    border-color: var(--site-border);
    color: var(--site-text);
}

body.site-night .modal-header,
body.site-night .modal-footer {
    border-color: var(--site-border);
}

/* Pagination */
body.site-night .page-link {
    background-color: var(--site-bg-elevated);
    border-color: var(--site-border);
    color: var(--site-link);
}

body.site-night .page-link:hover {
    background-color: var(--site-bg-surface);
    border-color: var(--site-border);
    color: #9ec5fe;
}

body.site-night .page-item.active .page-link {
    background-color: #0d6efd;
    border-color: #0d6efd;
}

body.site-night .page-item.disabled .page-link {
    background-color: var(--site-bg-surface);
    border-color: var(--site-border);
    color: var(--site-text-dim);
}

/* Misc */
body.site-night .img-thumbnail {
    background-color: var(--site-bg-surface);
    border-color: var(--site-border);
}

body.site-night pre,
body.site-night code {
    color: #f0c674;
    background-color: var(--site-bg-surface);
}

body.site-night .badge.bg-light {
    background-color: var(--site-bg-surface) !important;
    color: var(--site-text) !important;
}

body.site-night .accordion-item {
    background-color: var(--site-bg-elevated);
    border-color: var(--site-border);
    color: var(--site-text);
}

body.site-night .accordion-button {
    background-color: var(--site-bg-surface);
    color: var(--site-text);
}

body.site-night .accordion-button:not(.collapsed) {
    background-color: var(--site-bg-elevated);
    color: var(--site-text);
    box-shadow: inset 0 -1px 0 var(--site-border);
}

body.site-night .accordion-button::after {
    filter: invert(1) grayscale(100%) brightness(200%);
}

/* Article content (base template) */
body.site-night .article-content--html figcaption,
body.site-night .article-content--html .article-image-block__caption {
    color: var(--site-text-muted);
}

/* Preflop app */
body.site-night .chart-panel img {
    background: var(--site-bg-surface);
}

body.site-night .table-outline th,
body.site-night .table-outline td {
    border-color: var(--site-border);
}

body.site-night .table-outline .disabled {
    background-color: var(--site-bg-surface);
}

body.site-night .matrix-grid th {
    background: var(--site-bg-surface);
    color: var(--site-text-muted);
}

body.site-night .matrix-grid th,
body.site-night .matrix-grid td {
    border-color: var(--site-input-border);
}

body.site-night .matrix-cell-selected {
    box-shadow: inset 0 0 0 1px var(--site-bg-elevated);
}
