/* WoW Guild Manager — dark theme. Bootstrap 5.2 / DataTables 1.13 compatible.
   Loaded AFTER the existing Vite CSS so no frontend build is required. */
:root, html[data-bs-theme="dark"] {
    color-scheme: dark;
    --wowgm-bg: #0e1420;
    --wowgm-surface: #172233;
    --wowgm-surface-raised: #1d2b3e;
    --wowgm-input: #101b2b;
    --wowgm-border: #334357;
    --wowgm-text: #e4edf8;
    --wowgm-muted: #a8b9cc;
    --wowgm-link: #78b9ff;
    --bs-body-bg: #0e1420;
    --bs-body-color: #e4edf8;
    --bs-secondary-color: #a8b9cc;
    --bs-border-color: #334357;
    --bs-heading-color: #f2f6fc;
    --bs-link-color: #78b9ff;
    --bs-link-hover-color: #afdcff;
}
html { background: var(--wowgm-bg); }
body {
    background: var(--wowgm-bg) !important;
    color: var(--wowgm-text) !important;
    min-height: 100vh;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6,
.card-title, legend, label { color: var(--wowgm-text); }
a:not(.btn):not(.nav-link):not(.dropdown-item):not(.navbar-brand) { color: var(--wowgm-link); }
a:not(.btn):not(.nav-link):not(.dropdown-item):not(.navbar-brand):hover { color: #afdcff; }
.text-muted, .text-secondary, .form-text, small.text-muted,
.dataTables_info, .dataTables_length, .dataTables_filter,
.dataTables_paginate { color: var(--wowgm-muted) !important; }
.text-body { color: var(--wowgm-text) !important; }
.text-dark:not(.badge):not(.bg-warning):not(.text-bg-warning):not(.bg-info):not(.text-bg-info) { color: var(--wowgm-text) !important; }
.bg-white, .bg-light, .bg-body, .bg-body-tertiary, .bg-body-secondary,
.table-light { background-color: var(--wowgm-surface-raised) !important; color: var(--wowgm-text) !important; }
.bg-light.text-dark, .badge.bg-light.text-dark { color: var(--wowgm-text) !important; }
.border, .border-top, .border-bottom, .border-start, .border-end, hr {
    border-color: var(--wowgm-border) !important;
}
.navbar.bg-dark { background: #111c2b !important; border-bottom: 1px solid var(--wowgm-border); }
.navbar-dark .navbar-nav .nav-link, .navbar-dark .navbar-brand { color: #dce7f5; }
.navbar-dark .navbar-nav .nav-link:hover { color: #fff; }
.navbar-toggler { border-color: var(--wowgm-border); }
.card, .accordion-item, .list-group-item, .toast, .offcanvas,
.modal-content, .popover, .dropdown-menu {
    background: var(--wowgm-surface) !important;
    color: var(--wowgm-text) !important;
    border-color: var(--wowgm-border) !important;
}
.card-header, .card-footer, .accordion-button, .modal-header, .modal-footer,
.list-group-item-action:hover, .dropdown-header {
    background: var(--wowgm-surface-raised) !important;
    color: var(--wowgm-text) !important;
    border-color: var(--wowgm-border) !important;
}
.accordion-button:not(.collapsed), .accordion-button:focus {
    background: #223a56 !important;
    color: #e9f4ff !important;
}
.dropdown-item { color: var(--wowgm-text) !important; }
.dropdown-item:hover, .dropdown-item:focus, .dropdown-item.active {
    background: #2a405c !important;
    color: #fff !important;
}
.form-control, .form-select, .form-control:disabled, .form-select:disabled,
.input-group-text, .form-control-plaintext, textarea, input[type="search"],
select, .choices__inner, .select2-selection {
    background-color: var(--wowgm-input) !important;
    color: var(--wowgm-text) !important;
    border-color: var(--wowgm-border) !important;
}
.form-control:focus, .form-select:focus, input[type="search"]:focus, textarea:focus {
    background-color: #14243a !important;
    color: #fff !important;
    border-color: #579ff0 !important;
    box-shadow: 0 0 0 .2rem rgba(87,159,240,.17);
}
.form-control::placeholder, textarea::placeholder, input::placeholder { color: #899eb3 !important; opacity: 1; }
.form-check-input { background-color: var(--wowgm-input); border-color: #647a91; }
.form-check-input:checked { background-color: #2479d0; border-color: #2479d0; }
.btn-outline-secondary { color: #c4d4e6; border-color: #6d8097; }
.btn-outline-secondary:hover, .btn-outline-secondary.active,
.btn-check:checked + .btn-outline-secondary { background: #365473; color: #fff; border-color: #88a6c5; }
.btn-light, .btn-outline-light { background: #253b54; color: #e4edf8; border-color: #48627f; }
.btn-light:hover, .btn-outline-light:hover { background: #385574; color: #fff; }
.nav-tabs { border-bottom-color: var(--wowgm-border); }
.nav-tabs .nav-link { color: #b7cbe0; }
.nav-tabs .nav-link:hover { border-color: #34465b; }
.nav-tabs .nav-link.active { background: #22344b; color: #f4f9ff; border-color: var(--wowgm-border); }
.nav-pills .nav-link:not(.active) { color: #a9cfff; }
.table, table.table, .table-responsive,
table.dataTable, table.dataTable tbody tr,
table.dataTable tbody td, table.dataTable thead th,
table.dataTable tfoot th {
    --bs-table-bg: var(--wowgm-surface);
    --bs-table-color: var(--wowgm-text);
    --bs-table-striped-bg: #203249;
    --bs-table-striped-color: var(--wowgm-text);
    --bs-table-hover-bg: #28405a;
    --bs-table-hover-color: #fff;
    color: var(--wowgm-text) !important;
    border-color: var(--wowgm-border) !important;
    background-color: var(--wowgm-surface);
}
.table > :not(caption) > * > *, table.dataTable tbody td,
table.dataTable thead th { background-color: transparent !important; color: inherit; border-color: var(--wowgm-border) !important; }
.table > thead, table.dataTable thead, table.dataTable tfoot, .table-light > :not(caption) > * > * {
    background: #253852 !important; color: #f2f7ff !important;
}
.table-striped > tbody > tr:nth-of-type(odd) > *,
table.dataTable.stripe tbody tr.odd, table.dataTable.display tbody tr.odd {
    background: #203249 !important;
}
.table-hover > tbody > tr:hover > *,
table.dataTable.hover tbody tr:hover, table.dataTable.display tbody tr:hover,
table.dataTable tbody tr.selected { background: #2a4360 !important; color: #fff !important; }
.dataTables_wrapper, .dataTables_wrapper label,
.dataTables_wrapper .dataTables_info, .dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter { color: var(--wowgm-text) !important; }
.dataTables_wrapper .dataTables_paginate .paginate_button { color: #d0e4fa !important; border-color: transparent !important; }
.dataTables_wrapper .dataTables_paginate .paginate_button:hover,
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: #2b4768 !important; color: #fff !important;
    border: 1px solid #58789e !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover { color: #8296ad !important; }
.dataTables_wrapper .dataTables_processing { background: var(--wowgm-surface-raised) !important; color: var(--wowgm-text) !important; }
.page-link { color: #acd7ff; background: var(--wowgm-surface); border-color: var(--wowgm-border); }
.page-link:hover, .page-item.active .page-link { color: #fff; background: #285b91; border-color: #507daf; }
.page-item.disabled .page-link { background: #1a2739; color: #7f96ae; border-color: var(--wowgm-border); }
.alert { border-color: var(--wowgm-border); }
.alert-light, .alert-secondary { background: #25344a; color: #dfeafa; }
pre, code, .bg-light.border, #aiOutput, #aiPromptBox {
    background: #192b40 !important; color: #e4edf8 !important;
    border-color: var(--wowgm-border) !important;
}
/* Some pages include local style blocks that set light-theme foregrounds. */
#aiOutput strong { color: #fff !important; }
#aiOutput h2, #aiOutput h3 { color: #81bdff !important; }
.badge-soft-dark, .badge-outline { background: #25384f !important; color: #e2efff !important; border-color: #506984 !important; }
.modal-backdrop.show { opacity: .72; }
.swal2-popup, .swal2-html-container, .swal2-title { color: var(--wowgm-text) !important; }
.swal2-popup { background: var(--wowgm-surface) !important; }
/* Preserve readable dark-on-yellow informational badges and WoW item quality colours. */
.badge.bg-warning.text-dark, .badge.text-bg-warning.text-dark,
.badge.bg-info.text-dark, .badge.text-bg-info.text-dark { color: #14202e !important; }
