/* Xnvia theme: color overrides only; component geometry stays in existing styles. */
html.dark-theme {
    color-scheme: dark;
    --xn-page: #10141c;
    --xn-surface: #181f2b;
    --xn-raised: #222c3b;
    --xn-border: #344155;
    --xn-control-border: #65758b;
    --xn-text: #edf2f7;
    --xn-secondary: #bbc7d6;
    --xn-muted: #94a3b8;
    --xn-link: #91b7ff;
    --xn-link-hover: #bed3ff;
    --xn-accent: #ff7800;
    --xn-focus: #5ce2e7;
    --xn-input: #141b26;
    --xn-disabled-bg: #202735;
    --xn-disabled: #8995a7;
    --xn-hover: #263348;
    --xn-selected: #253d60;
    --xn-success: #86d9a0;
    --xn-success-bg: #153326;
    --xn-warning: #f2ca7a;
    --xn-warning-bg: #382c16;
    --xn-error: #ffa3ac;
    --xn-error-bg: #3d2029;
    --xn-info: #a8ccff;
    --xn-info-bg: #1b304b;
    --site-link: var(--xn-link);
    --site-link-hover: var(--xn-link-hover);
    --title-h: var(--xn-text);
    --bs-body-bg: var(--xn-page);
    --bs-body-bg-rgb: 16, 20, 28;
    --bs-body-color: var(--xn-text);
    --bs-body-color-rgb: 237, 242, 247;
    --bs-secondary-color: var(--xn-secondary);
    --bs-secondary-color-rgb: 187, 199, 214;
    --bs-tertiary-color: var(--xn-muted);
    --bs-tertiary-color-rgb: 148, 163, 184;
    --bs-secondary-bg: var(--xn-raised);
    --bs-tertiary-bg: var(--xn-surface);
    --bs-border-color: var(--xn-border);
    --bs-link-color: var(--xn-link);
    --bs-link-color-rgb: 145, 183, 255;
    --bs-link-hover-color: var(--xn-link-hover);
    --bs-emphasis-color: var(--xn-text);
    --bs-emphasis-color-rgb: 237, 242, 247;
    background-color: var(--xn-page) !important;
}

html.dark-theme body {
    background-color: var(--xn-page) !important;
    color: var(--xn-text) !important;
    scrollbar-color: var(--xn-control-border) var(--xn-page);
}

html.dark-theme :is(.wrapper, #wrapper, #content) { 
    background-color: var(--xn-page) !important; 
}

html.dark-theme :is(
    nav, 
    header, 
    #header, 
    #footer, 
    #bottom,
    #loader-wrapper
    .navbar, 
    .navbar-nav, 
    .main-footer, 
    .card, 
    .card-header, 
    .card-footer, 
    .theme-surface, 
    .bg-white, 
    .bg-light, 
    .lighterbg,
    .extra_features, 
    .deal_rating_modal, 
    .list-group-item, 
    .offcanvas, 
) {
    background-color: var(--xn-surface) !important;
    color: var(--xn-text);
    border-color: var(--xn-border) !important;
}

html.dark-theme :is(
    #welcome_bar, 
    #cookie_banner
) {
    background: var(--xn-raised) !important;
    color: var(--xn-text) !important;
}

html.dark-theme :is(
    h1, 
    h2, 
    h3, 
    h4, 
    h5, 
    h6, 
    .top-bar, 
    .middle-bar, 
    .logo_text, 
    .text-dark, 
    .text-black
) {
    color: var(--xn-text) !important;
}

html.dark-theme :is(
    .bottom-bar, 
    .smtxt, 
    .sociallnks, 
    .text-secondary
) { 
    color: var(--xn-secondary) !important; 
}

html.dark-theme :is(
    .text-muted, 
    .text-body-secondary, 
    .text-body-tertiary, 
    .form-text
) { 
    color: var(--xn-muted) !important; 
}

html.dark-theme a { 
    color: var(--xn-link) !important; 
}

html.dark-theme a:hover { 
    color: var(--xn-link-hover) !important; 
}

html.dark-theme :is(
    .nav-link, 
    .nav-menu a, 
    .dropdown-item
) { 
    color: var(--xn-secondary) !important; 
}

html.dark-theme :is(
    .nav-link:hover, 
    .nav-menu a:hover
) { 
    color: var(--xn-accent) !important; 
}

html.dark-theme :is(
    .nav-link.active, 
    .nav-tabs 
    .nav-item.show 
    .nav-link, 
    .dropdown-item.active, 
    .list-group-item.active
) {
    background-color: var(--xn-selected) !important;
    color: var(--xn-text) !important;
    border-color: var(--xn-control-border) !important;
}

html.dark-theme :is(
    .dropdown-menu, 
    .nav-menu ul, 
    .modal-content, 
    .swal2-popup, 
    .ui-widget-content, 
    .ui-widget-header, 
    .ui-datepicker
) {
    background: var(--xn-raised) !important;
    color: var(--xn-text) !important;
    border-color: var(--xn-control-border) !important;
}

html.dark-theme :is(
    .swal2-title, 
    .swal2-html-container, 
    .swal2-close, 
    .modal-title
) { 
    color: var(--xn-text) !important; 
}

html.dark-theme :is(
    .dropdown-item:hover, 
    .dropdown-item:focus, 
    .coin_dd_item:hover, 
    .extra_features 
    .item:hover,
    .ui-state-hover, 
    .ui-state-focus, 
    .list-group-item-action:hover
) {
    background: var(--xn-hover) !important;
    color: var(--xn-text) !important;
}

html.dark-theme :is(
    .border, 
    .border-top, 
    .border-bottom, 
    .border-start, 
    .border-end, hr
) { 
    border-color: var(--xn-border) !important; 
}

html.dark-theme :is(
    input:not(:where([type=button], [type=submit], [type=reset], [type=range], [type=checkbox], [type=radio], [type=color])),
    select, 
    textarea, 
    .form-control, 
    .form-select, 
    .fake_input, 
    .phantom_input, 
    .gray_phantom_input, 
    .phanput
) {
    background-color: var(--xn-input) !important;
    color: var(--xn-text) !important;
    border-color: var(--xn-control-border) !important;
}

html.dark-theme :is(input, textarea)::placeholder { 
    color: var(--xn-muted) !important; opacity: 1; 
}

html.dark-theme :is(.input-group-text, .igtl, .igtr, .curs-link) {
    background-color: var(--xn-raised) !important;
    color: var(--xn-secondary) !important;
    border-color: var(--xn-control-border) !important;
}

html.dark-theme :is(.igtl:hover, .igtr:hover, .curs-link:hover, .phanput:hover, .join-link:hover) {
    background-color: var(--xn-hover) !important;
    color: var(--xn-link-hover) !important;
}

html.dark-theme :is(#btn_currcode, #switch:hover, #bankdropinput:hover) { 
    color: var(--xn-text) !important; 
}

html.dark-theme input { 
    accent-color: var(--xn-focus); 
}

html.dark-theme .form-check-input { 
    background-color: var(--xn-input); 
    border-color: var(--xn-control-border); 
}

html.dark-theme .form-check-input:checked { 
    background-color: #454ce4; 
    border-color: var(--xn-link); 
}

html.dark-theme .form-select {
    --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23edf2f7' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}

html.dark-theme :is(input, textarea, select)[readonly] { 
    background-color: var(--xn-surface) !important; 
    color: var(--xn-secondary) !important; 
}

html.dark-theme :is(.form-control, .form-select):focus { 
    border-color: var(--xn-focus) !important; 
}

html.dark-theme :focus-visible, #themeToggle:focus-visible {
    outline: 2px solid #5ce2e7 !important;
    outline-offset: 2px;
}

html.dark-theme :is(.is-invalid, 
.was-validated input:invalid, 
.was-validated select:invalid, 
.was-validated textarea:invalid
) { 
    border-color: var(--xn-error) !important; 
}

html.dark-theme :is(
    .is-valid, 
    .was-validated input:valid, 
    .was-validated select:valid, 
    .was-validated textarea:valid
) { 
    border-color: var(--xn-success) !important; 
}

html.dark-theme .table {
    --bs-table-color: var(--xn-text);
    --bs-table-bg: var(--xn-surface);
    --bs-table-border-color: var(--xn-border);
    --bs-table-striped-bg: var(--xn-raised);
    --bs-table-striped-color: var(--xn-text);
    --bs-table-hover-bg: var(--xn-hover);
    --bs-table-hover-color: var(--xn-text);
    --bs-table-active-bg: var(--xn-selected);
    --bs-table-active-color: var(--xn-text);
    color: var(--xn-text);
}

html.dark-theme :is(
    tr, 
    .altrow, 
    .table_body
) { 
    background: var(--xn-surface) !important; 
    color: var(--xn-text) !important; 
}

html.dark-theme :is(tr:nth-child(odd), .altrow:nth-child(odd)) { 
    background: var(--xn-raised) !important; 
}

html.dark-theme :is(tr:hover, .altrow:hover) { 
    background: var(--xn-hover) !important; 
    color: var(--xn-text) !important; 
}

html.dark-theme :is(thead th, .table_header) {
     background-color: var(--xn-selected) !important; 
     color: var(--xn-text) !important; 
}

html.dark-theme .page-link { 
    background-color: var(--xn-surface) !important; 
    color: var(--xn-link) !important; 
    border-color: var(--xn-control-border) !important; 
}

html.dark-theme .page-link:hover { 
    background-color: var(--xn-hover) !important; 
}

html.dark-theme :is(.page-item.active .page-link, .page-link.active) { 
    background-color: var(--xn-selected) !important; 
    color: var(--xn-text) !important; 
    border-color: var(--xn-link) !important; 
}

html.dark-theme :is(.text-success, .succ, .success, .valid-feedback) { 
    color: var(--xn-success) !important; 
}

html.dark-theme :is(.text-warning, .warn) { 
    color: var(--xn-warning) !important; 
}

html.dark-theme :is(.text-danger, .error, .error-lg1, .error-sm, .error-sm-bg, .error-md-bg, .bgerr, .invalid-feedback) { 
    color: var(--xn-error) !important; 
}

html.dark-theme :is(.text-info, .text-primary) { 
    color: var(--xn-info) !important; 
}

html.dark-theme :is(.alert-success, .bg-success, .text-bg-success, .countdownwindow, .clock_div) { 
    background-color: var(--xn-success-bg) !important; 
    color: var(--xn-success) !important; 
    border-color: var(--xn-success) !important; 
}

html.dark-theme :is(.alert-warning, .bg-warning, .text-bg-warning) { 
    background-color: var(--xn-warning-bg) !important; 
    color: var(--xn-warning) !important; 
    border-color: var(--xn-warning) !important; 
}

html.dark-theme :is(.alert-danger, .bg-danger, .text-bg-danger) { 
    background-color: var(--xn-error-bg) !important; 
    color: var(--xn-error) !important; 
    border-color: var(--xn-error) !important; 
}

html.dark-theme :is(.alert-info, .alert-primary, .bg-info, .bg-primary, .text-bg-info, .text-bg-primary) { 
    background-color: var(--xn-info-bg) !important; 
    color: var(--xn-info) !important; 
    border-color: var(--xn-info) !important; 
}

html.dark-theme :is(.alert-secondary, .alert-light, .alert-dark) { 
    background-color: var(--xn-raised) !important; 
    color: var(--xn-secondary) !important; 
    border-color: var(--xn-control-border) !important; 
}

html.dark-theme .alert a { 
    color: inherit !important; 
    text-decoration: underline; 
}

html.dark-theme .border-success { 
    border-color: var(--xn-success) !important; 
}

html.dark-theme .border-warning { 
    border-color: var(--xn-warning) !important; 
}

html.dark-theme .border-danger { 
    border-color: var(--xn-error) !important; 
}

html.dark-theme :is(.border-primary, .border-info) { 
    border-color: var(--xn-info) !important; 
}

/* Filled buttons retain the brand blue; pastel semantic fills use dark text. */
html.dark-theme :is(.btn-primary, .swal2-confirm) { 
    background-color: #454ce4 !important; 
    color: #fff !important; 
    border-color: #91b7ff !important; 
}

html.dark-theme :is(.btn-primary:hover, .swal2-confirm:hover) { 
    background-color: #363cc2 !important; 
}

html.dark-theme .btn-success { 
    background-color: var(--xn-success) !important; 
    color: var(--xn-page) !important; 
    border-color: var(--xn-success) !important; 
}

html.dark-theme .btn-danger { 
    background-color: var(--xn-error) !important; 
    color: var(--xn-page) !important; 
    border-color: var(--xn-error) !important; 
}

html.dark-theme .btn-warning { 
    background-color: var(--xn-accent) !important; 
    color: var(--xn-page) !important; 
    border-color: var(--xn-accent) !important; 
}

html.dark-theme .btn-info { 
    background-color: var(--xn-focus) !important; 
    color: var(--xn-page) !important; 
    border-color: var(--xn-focus) !important; 
}

html.dark-theme :is(.btn-secondary, .btn-light, .btn-dark, .swal2-cancel) { 
    background-color: var(--xn-raised) !important; 
    color: var(--xn-text) !important; 
    border-color: var(--xn-control-border) !important; 
}

html.dark-theme :is(.btn-outline-primary, .btn-outline-info) { 
    color: var(--xn-info) !important; 
    border-color: var(--xn-info) !important; 
}

html.dark-theme .btn-outline-success { 
    color: var(--xn-success) !important; 
    border-color: var(--xn-success) !important; 
}

html.dark-theme .btn-outline-warning { 
    color: var(--xn-warning) !important; 
    border-color: var(--xn-warning) !important; 
}

html.dark-theme .btn-outline-danger { 
    color: var(--xn-error) !important; 
    border-color: var(--xn-error) !important; 
}

html.dark-theme :is(.btn-outline-secondary, .btn-outline-dark, .btn-outline-light) { 
    color: var(--xn-secondary) !important; 
    border-color: var(--xn-control-border) !important; 
}

html.dark-theme :is(.btn-secondary, .btn-light, .btn-dark, [class*="btn-outline-"], .swal2-cancel):is(:hover, :active, .active) { 
    background-color: var(--xn-hover) !important; 
}

html.dark-theme .btn-link { 
    color: var(--xn-link) !important; 
}

html.dark-theme :is(.btn-success, .btn-danger, .btn-warning, .btn-info):is(:hover, :active, .active) { 
    filter: brightness(0.9); 
}

html.dark-theme :is(.ychatline, .ymess) { 
    background-color: var(--xn-info-bg) !important; 
    color: var(--xn-text); 
}

html.dark-theme .mchatline { 
    background-color: var(--xn-success-bg) !important; 
    color: var(--xn-text); 
}

html.dark-theme :is(.muname, .yuname) { 
    background-color: var(--xn-warning-bg) !important; 
    color: var(--xn-warning); 
    border-color: var(--xn-warning); 
}

html.dark-theme .circle-bg { 
    stroke: var(--xn-border); 
}

html.dark-theme .circle { 
    stroke: var(--xn-success); 
}

html.dark-theme .redcircle { 
    stroke: var(--xn-error); 
}

html.dark-theme #percentage-text { 
    color: var(--xn-text); 
}

html.dark-theme ::-webkit-scrollbar-track { 
    background-color: var(--xn-page); 
}

html.dark-theme ::-webkit-scrollbar-thumb { 
    background-color: var(--xn-control-border); 
}

html.dark-theme ::-webkit-scrollbar-thumb:hover { 
    background-color: var(--xn-muted); 
}

/* Keep the original control geometry; fixed positioning avoids moving menu content. */
#themeToggle {
    position: fixed;
    top: 10px;
    right: 10px;
    font-size: 1.4rem !important;
    background: #42445a;
    border: none;
    color: #fff;
    cursor: pointer;
    z-index: 1000;
    padding: 4px;
    border-radius: 50%;
}
#themeToggle:hover { 
    background-color: #303247; 
}

html.dark-theme #themeToggle { 
    background-color: var(--xn-raised); color: var(--xn-focus); 
}

html.dark-theme #themeToggle:hover { 
    background-color: var(--xn-hover); 
}

/* Site-specific surfaces and legacy semantic helpers. */
html.dark-theme :is(.nav-menu ul li, .table.content, .countdown) { 
    background-color: var(--xn-surface) !important; 
    color: var(--xn-text); 
    border-color: var(--xn-control-border); 
}

html.dark-theme .nav-menu ul li:hover { 
    background-color: var(--xn-hover) !important; 
}

html.dark-theme :is(td, th, .custom-drop-file) { 
    border-color: var(--xn-border); 
}

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

html.dark-theme .red { 
    color: var(--xn-error) !important; 
}

html.dark-theme .green { 
    color: var(--xn-success) !important; 
}

html.dark-theme .orange { 
    color: var(--xn-warning) !important; 
}

html.dark-theme .blue { 
    color: var(--xn-info) !important; 
}

html.dark-theme [data-theme-status="active"] { 
    background-color: var(--xn-success-bg) !important; 
    color: var(--xn-success); 
}

html.dark-theme [data-theme-status="inactive"] { 
    background-color: var(--xn-raised) !important; 
    color: var(--xn-secondary); 
}

html.dark-theme [data-theme-status="retired"] { 
    background-color: var(--xn-info-bg) !important; 
    color: var(--xn-info); 
}

html.dark-theme :is([data-theme-status="exposed"], [data-theme-status="error"]) { 
    background-color: var(--xn-error-bg) !important; 
    color: var(--xn-error); 
}

html.dark-theme [data-theme-status="lostpk"] { 
    background-color: var(--xn-warning-bg) !important; 
    color: var(--xn-warning); 
}

.theme-toggle-item { 
    position: fixed; top: 10px; right: 10px; 
}

html.dark-theme :is(.btn-primary, .btn-success, .btn-danger, .btn-warning, .btn-info, .btn-secondary, .btn-light, .btn-dark) { 
    background-image: none !important; 
}

html.dark-theme .btn :is(.far, .fas, .fal, .fab, svg) { 
    color: inherit !important; 
}

html.dark-theme .btn-primary:is(:active, .active) { 
    background-color: #363cc2 !important; 
}

html.dark-theme :is(.ui-state-default, .ui-widget-content .ui-state-default) { 
    background: var(--xn-surface); 
    color: var(--xn-text); 
    border-color: var(--xn-control-border); 
}

html.dark-theme :is(.ui-state-active, .ui-widget-content .ui-state-active) { 
    background: var(--xn-selected); 
    color: var(--xn-text); 
    border-color: var(--xn-link); 
}

html.dark-theme .ui-state-highlight { 
    background: var(--xn-warning-bg); 
    color: var(--xn-warning); 
}

html.dark-theme .progress { 
    background-color: var(--xn-raised); 
}

html.dark-theme :is(.lbl, .lbl-sm, .lbl-md, .lbl-lg, .custom-drop-file p) { 
    color: var(--xn-secondary) !important; 
}

html.dark-theme :is(.code, #no_offer_txt) { 
    background-color: var(--xn-raised) !important; 
    color: var(--xn-text); 
}

html.dark-theme .rfshbtndiv { 
    background-color: rgba(16, 20, 28, .85); 
}

html.dark-theme .rating_canned:hover { 
    background-color: var(--xn-accent); 
    color: var(--xn-page) !important; 
}

html.dark-theme :is(.progress_bar, .progress-bar:not([class*="bg-"]), #progressBar div) { 
    background-color: #454ce4; 
    color: #fff; 
}

html.dark-theme #scrollTop { 
    color: var(--xn-page); 
}

html.dark-theme .table-success { 
    --bs-table-bg: var(--xn-success-bg); 
    --bs-table-color: var(--xn-success); 
}

html.dark-theme .table-warning { 
    --bs-table-bg: var(--xn-warning-bg); 
    --bs-table-color: var(--xn-warning); 
}

html.dark-theme .table-danger { 
    --bs-table-bg: var(--xn-error-bg); 
    --bs-table-color: var(--xn-error); 
}

html.dark-theme :is(.table-info, .table-primary) { 
    --bs-table-bg: var(--xn-info-bg); 
    --bs-table-color: var(--xn-info); 
}

/* State overrides come last so variant and hover colors cannot mask disabled controls. */
html.dark-theme :is(input, textarea, select, button, .btn, .form-control, .form-select):disabled,
html.dark-theme :is(.btn.disabled, .page-item.disabled .page-link, .dropdown-item.disabled, .nav-link.disabled) {
    background-color: var(--xn-disabled-bg) !important;
    color: var(--xn-disabled) !important;
    border-color: var(--xn-border) !important;
    filter: none;
}
html.dark-theme .btn-primary:disabled:is(:active, .active) { 
    background-color: var(--xn-disabled-bg) !important; 
}

html.dark-theme .page-tab-item { 
    background-color: var(--xn-raised) !important; 
    color: var(--xn-secondary) !important; 
}

html.dark-theme .page-tab-item:hover { 
    background-color: var(--xn-hover) !important; 
    color: var(--xn-text) !important; 
}

html.dark-theme .page-tab-item.active { 
    background-color: var(--xn-selected) !important; 
    color: var(--xn-text) !important; 
}

html.dark-theme .custom-drop-file:hover { 
    color: var(--xn-success); 
}

html.dark-theme ::selection { 
    background-color: var(--xn-focus); 
    color: var(--xn-page); 
}
