/* Brand theme */
:root {
    --brand-bg: #1D2A40;           /* Deep slate blue */
    --brand-accent: #B39552;       /* Warm gold */
    --brand-text: #E6ECF5;         /* Light text */
    --brand-muted: #A7B2C5;        /* Muted text */
    --brand-surface: #24334F;      /* Card / surface */
    --brand-border: rgba(179, 149, 82, 0.35);

    /* Bootstrap variable overrides */
    --bs-body-bg: var(--brand-bg);
    --bs-body-color: var(--brand-text);
    --bs-primary: var(--brand-accent);
    --bs-secondary: #8896B1;
    --bs-link-color: var(--brand-accent);
    --bs-link-hover-color: #C8A968;
    --bs-border-color: var(--brand-border);
    --bs-secondary-color: var(--brand-muted);

    --bs-card-bg: var(--brand-surface);
    --bs-card-color: var(--brand-text);
    --bs-card-border-color: rgba(179, 149, 82, 0.25);

    --bs-navbar-color: rgba(255, 255, 255, 0.75);
    --bs-navbar-hover-color: #ffffff;
}

html { font-size: 14px; }

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 0.1rem #ffffff, 0 0 0 0.25rem var(--brand-accent);
}

html {
    position: relative;
    min-height: 100%;
}

body {
    margin-bottom: 60px;
    background-color: var(--brand-bg);
    color: var(--brand-text);
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* Navbar */
.bg-brand { background-color: var(--brand-bg) !important; }
.navbar-dark .navbar-brand { color: var(--brand-accent); }
.navbar-dark .navbar-brand:hover { color: var(--bs-link-hover-color); }
.navbar-dark .navbar-nav .nav-link { color: var(--bs-navbar-color); }
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus { color: var(--bs-navbar-hover-color); }
.navbar-dark .navbar-nav .nav-link.active,
.navbar-dark .navbar-nav .show > .nav-link { color: var(--brand-accent); }

/* Footer */
.footer { color: var(--brand-muted); background-color: var(--brand-surface); border-top: 1px solid var(--brand-border); }

/* Buttons */
.btn-primary {
    --bs-btn-bg: var(--brand-accent);
    --bs-btn-border-color: var(--brand-accent);
    --bs-btn-hover-bg: #a38246;
    --bs-btn-hover-border-color: #a38246;
    --bs-btn-color: #1D2A40; /* Dark text for contrast */
    --bs-btn-hover-color: #1D2A40;
}

.btn-outline-secondary {
    --bs-btn-color: var(--brand-accent);
    --bs-btn-border-color: var(--brand-accent);
    --bs-btn-hover-bg: rgba(179, 149, 82, 0.15);
    --bs-btn-hover-border-color: var(--brand-accent);
}

/* Alerts */
.alert { background-color: var(--brand-surface); color: var(--brand-text); border-color: var(--brand-border); }
.alert-success { border-left: 4px solid #198754; }
.alert-info { border-left: 4px solid var(--brand-accent); }
.alert-warning { border-left: 4px solid #ffc107; }
.alert-danger { border-left: 4px solid #dc3545; }

/* Cards */
.card { background-color: var(--bs-card-bg); color: var(--bs-card-color); border-color: var(--bs-card-border-color); border-width: 1px; }
.card .card-header { background: transparent; border-bottom-color: var(--bs-card-border-color); }
.card .card-footer { background: transparent; border-top-color: var(--bs-card-border-color); }

/* Dropdowns */
.dropdown-menu {
    --bs-dropdown-bg: var(--brand-surface);
    --bs-dropdown-color: var(--brand-text);
    --bs-dropdown-link-hover-bg: rgba(179, 149, 82, 0.15);
    --bs-dropdown-link-active-bg: rgba(179, 149, 82, 0.25);
}

/* Forms */
.form-control, .form-select {
    background-color: #2b3b59;
    color: var(--brand-text);
    border-color: var(--brand-border);
}
.form-control::placeholder { color: var(--brand-muted); }
.form-check-input { border-color: var(--brand-border); }
.form-label { color: var(--brand-text); }
.input-group-text { background-color: #2b3b59; color: var(--brand-text); border-color: var(--brand-border); }
.form-control:disabled, .form-control[readonly] { background-color: #23324d; opacity: 0.8; }

/* Links */
a { color: var(--bs-link-color); }
a:hover { color: var(--bs-link-hover-color); }

/* Tables */
.table { --bs-table-bg: transparent; --bs-table-color: var(--brand-text); --bs-table-border-color: var(--brand-border); }
.table-striped > tbody > tr:nth-of-type(odd) > * { --bs-table-accent-bg: rgba(255, 255, 255, 0.02); color: var(--brand-text); }
.table-hover > tbody > tr:hover > * { --bs-table-accent-bg: rgba(179, 149, 82, 0.08); color: var(--brand-text); }
.table thead { color: var(--brand-muted); }

/* Pagination */
.pagination { --bs-pagination-color: var(--brand-text); --bs-pagination-hover-color: var(--brand-accent); }
.page-link { background-color: var(--brand-surface); border-color: var(--brand-border); color: var(--brand-text); }
.page-link:hover { background-color: rgba(179, 149, 82, 0.15); color: var(--brand-accent); }
.page-item.active .page-link { background-color: var(--brand-accent); border-color: var(--brand-accent); color: #1D2A40; }

/* Badges */
.badge.bg-primary { background-color: var(--brand-accent) !important; color: #1D2A40; }
.badge.bg-secondary { background-color: #8896B1 !important; }

/* List group */
.list-group-item { background-color: var(--brand-surface); color: var(--brand-text); border-color: var(--brand-border); }
.list-group-item-action:hover, .list-group-item-action:focus { background-color: rgba(179, 149, 82, 0.12); color: var(--brand-text); }

/* Breadcrumb */
.breadcrumb { --bs-breadcrumb-divider-color: var(--brand-muted); --bs-breadcrumb-item-active-color: var(--brand-accent); }
.breadcrumb-item a { color: var(--brand-text); }
.breadcrumb-item.active { color: var(--brand-accent); }

/* Modals */
.modal-content { background-color: var(--brand-surface); color: var(--brand-text); border-color: var(--brand-border); }
.modal-header, .modal-footer { border-color: var(--brand-border); }

/* Tooltips */
.tooltip-inner { background-color: var(--brand-surface); color: var(--brand-text); }
.tooltip .tooltip-arrow::before { border-top-color: var(--brand-surface) !important; }

/* Code blocks */
pre, code, kbd, samp { background-color: #2b3b59; color: #f3f6fb; }
pre { padding: .75rem; border-radius: .5rem; border: 1px solid var(--brand-border); }

/* Misc */
hr { border-top: 1px solid var(--brand-border); opacity: 1; }
h1, h2, h3, h4, h5, h6 { color: #f0f4fb; }

/* Graceful overrides for hard-coded light utilities */
.bg-white { background-color: var(--brand-surface) !important; }
.bg-light { background-color: var(--brand-surface) !important; color: var(--brand-text) !important; border-color: var(--brand-border) !important; }

/* Ensure code blocks with any light utility remain dark-themed */
pre.bg-light, code.bg-light { background-color: #2b3b59 !important; color: #f3f6fb !important; }