/* Theme switch (both themes) and the opt-in dark member theme.
   The dark palette follows futpepi-trading.de: navy canvas, slate cards, lime accent.
   assets/js/theme.js sets html[data-theme="dark"]; light stays the default. */
.futpepi-masthead-actions, .entry-header-actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.futpepi-theme-toggle { position: relative; flex: 0 0 58px; width: 58px; height: 44px; padding: 0; border: 0; background: transparent; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.futpepi-theme-toggle::before { content: ""; position: absolute; inset: 6px 0; border: 1px solid var(--fp-outline); border-radius: 16px; background: var(--fp-soft); transition: background-color .2s ease, border-color .2s ease; }
.futpepi-theme-toggle:hover::before { border-color: var(--fp-muted); }
.futpepi-theme-thumb { position: absolute; left: 4px; top: 10px; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--fp-raised); color: var(--fp-ink); box-shadow: 0 1px 3px #24282126; transition: transform .2s ease, background-color .2s ease, color .2s ease; }
.futpepi-theme-thumb .fp-icon { grid-area: 1 / 1; width: 14px; height: 14px; stroke-width: 2; }
.futpepi-theme-moon { display: none; }
.futpepi-theme-toggle:focus-visible { outline: 3px solid var(--fp-ink); outline-offset: 2px; border-radius: 12px; }
html[data-theme="dark"] .futpepi-theme-thumb { transform: translateX(26px); background: var(--fp-yellow); color: var(--fp-on-yellow); box-shadow: none; }
html[data-theme="dark"] .futpepi-theme-sun { display: none; }
html[data-theme="dark"] .futpepi-theme-moon { display: block; }
@media (prefers-reduced-motion: reduce) { .futpepi-theme-toggle::before, .futpepi-theme-thumb { transition: none; } }
@media (max-width: 360px) { .futpepi-masthead { gap: 12px; } .futpepi-masthead-actions { gap: 6px; } }
/* The login header gains the switch; let the logo give way on narrow phones. */
.entry-header { gap: 12px; }
.entry-brand { min-width: 0; }
.entry-brand img { max-width: 100%; }
@media (max-width: 380px) { .entry-header-actions { gap: 4px; } }

html[data-theme="dark"] {
  color-scheme: dark;
  --fp-canvas: #080d16; --fp-surface: #0c131f; --fp-soft: #111a28; --fp-raised: #1f2c40;
  --fp-ink: #f5f7fb; --fp-muted: #aeb9c9; --fp-line: #253246; --fp-outline: #364760;
  --fp-yellow: #c5f545; --fp-yellow-hover: #d6fb6e; --fp-yellow-tint: rgba(197, 245, 69, .13); --fp-on-yellow: #10170c;
  --fp-link: #f5f7fb; --fp-danger: #ff8478; --fp-success: #5fd38d;
  --fp-success-tint: rgba(95, 211, 141, .14); --fp-success-line: rgba(95, 211, 141, .38);
  --fp-platform-ps: #5d9ffb; --fp-platform-xb: #4cc874; --fp-platform-pc: #f59a4a;
  background: var(--fp-canvas);
}

/* Legacy base styles (main.css, Bootstrap) assume a white page. */
:where(html[data-theme="dark"]) :is(h1, h2, h3, h4, h5, h6) { color: var(--fp-ink); }
:where(html[data-theme="dark"]) a { color: #8fb8ff; }
:where(html[data-theme="dark"]) a:hover { color: var(--fp-ink); }
html[data-theme="dark"] #preloader { background-color: var(--fp-canvas); }
html[data-theme="dark"] #loader-1::after { border-color: var(--fp-line); }
html[data-theme="dark"] hr { border-top-color: var(--fp-line); }
html[data-theme="dark"] .text-muted { color: var(--fp-muted) !important; }
html[data-theme="dark"] .blurry-text { text-shadow: 0 0 5px rgba(255, 255, 255, .5); }

/* Shell: masthead, logo tiles, footer and login. */
html[data-theme="dark"] :is(.futpepi-brand-link, .entry-brand) { box-shadow: 0 0 0 1px var(--fp-line); }
html[data-theme="dark"] .futpepi-footer { background: #05080e; border-top: 1px solid var(--fp-line); }
html[data-theme="dark"] .member-access .access-message { background: var(--fp-success-tint); color: var(--fp-success); }
html[data-theme="dark"] .member-access .access-message.error { background: rgba(255, 132, 120, .13); color: var(--fp-danger); }

/* Solid red needs white text; the lighter --fp-danger is for text on dark. */
html[data-theme="dark"] .member-page .btn-danger,
html[data-theme="dark"] body.member-page .swal2-styled.swal2-confirm.fp-confirm-danger { background-color: #d92d20 !important; border-color: #d92d20; color: #fff; }

/* One-off light tints that have no shared token. */
html[data-theme="dark"] .alerts-setup-push { background: var(--fp-soft); }
html[data-theme="dark"] .alerts-setup-icon { color: var(--fp-yellow); }
html[data-theme="dark"] .alerts-setup-telegram .alerts-setup-icon { background: rgba(93, 159, 251, .16); color: #5d9ffb; }
html[data-theme="dark"] .member-tool #containerUVTable table.dataTable tbody tr:hover { background: var(--fp-soft); }
html[data-theme="dark"] .uv-status-filters button[aria-pressed="true"],
html[data-theme="dark"] .settings-nav-item[aria-selected="true"],
html[data-theme="dark"] .member-tool #containerUVTable .setBoughtTable.is-complete { border-color: rgba(197, 245, 69, .42); }
html[data-theme="dark"] .uv-state-1,
html[data-theme="dark"] .member-tool #containerUVTable .setBoughtTable.is-complete,
html[data-theme="dark"] .settings-membership-item[data-state="pending"] .settings-badge { color: var(--fp-yellow); }
html[data-theme="dark"] .settings-membership-item[data-state="pending"] .settings-badge { background: var(--fp-yellow-tint); }
html[data-theme="dark"] .settings-badge-active { background: var(--fp-success-tint); }
html[data-theme="dark"] .settings-switch::before { background: var(--fp-outline); }
html[data-theme="dark"] .settings-switch[aria-checked="true"]::before { background: var(--fp-yellow); }
html[data-theme="dark"] .sbc-state { background: var(--fp-soft); }
html[data-theme="dark"] .sbc-spinner, html[data-theme="dark"] .membership-spinner { border-color: var(--fp-outline); border-top-color: var(--fp-yellow); }
html[data-theme="dark"] .membership-progress { border-color: var(--fp-line); }
html[data-theme="dark"] .membership-progress p { color: var(--fp-muted); }
html[data-theme="dark"] .membership-progress:is([data-state="error"], [data-state="partial"]) { border-color: rgba(197, 245, 69, .42); background: var(--fp-yellow-tint); }
html[data-theme="dark"] .settings-membership-item[data-state="loading"] .settings-badge { color: var(--fp-muted); }
html[data-theme="dark"] .member-tool .modal-backdrop { background: #000; }
html[data-theme="dark"] .member-tool .modal-backdrop.show { opacity: .62; }
html[data-theme="dark"] body.member-tool.swal2-shown .swal2-container { background: rgba(0, 0, 0, .62); }
/* The embedded SBC solver ships its own light styles and stays a light island. */
html[data-theme="dark"] .sbc-page [data-sbc-mount] { color-scheme: light; color: #242821; }

/* Bootstrap: forms, dialogs, tables and tour popovers. */
html[data-theme="dark"] :is(.member-page, .settings-page) .modal-content { background-color: var(--fp-surface); }
html[data-theme="dark"] :is(.member-page, .settings-page) .close { color: var(--fp-ink); text-shadow: none; }
html[data-theme="dark"] .member-page .form-control::placeholder { color: var(--fp-muted); opacity: .8; }
html[data-theme="dark"] .member-page .form-control:disabled, html[data-theme="dark"] .member-page .form-control[readonly] { background-color: var(--fp-soft); }
html[data-theme="dark"] .member-page .modal-body input[type="text"]:not(.form-control) { background: var(--fp-surface); color: var(--fp-ink); }
html[data-theme="dark"] .member-page :is(.btn-outline-secondary, .btn-outline-secondary.disabled) { color: var(--fp-ink); border-color: var(--fp-outline); }
html[data-theme="dark"] .member-page .table { color: var(--fp-ink); }
html[data-theme="dark"] .member-page .table :is(td, th) { border-color: var(--fp-line); }
html[data-theme="dark"] .member-page table.dataTable tbody td { border-top-color: var(--fp-line); }
html[data-theme="dark"] .member-page .popover { background-color: var(--fp-soft); border-color: var(--fp-outline); color: var(--fp-ink); }
html[data-theme="dark"] .member-page .popover-header { background-color: var(--fp-raised); border-bottom-color: var(--fp-line); color: var(--fp-ink); }
html[data-theme="dark"] .member-page .popover-body { color: var(--fp-muted); }
html[data-theme="dark"] .member-page .bs-popover-top .arrow::after, html[data-theme="dark"] .member-page .bs-popover-auto[x-placement^="top"] .arrow::after { border-top-color: var(--fp-soft); }
html[data-theme="dark"] .member-page .bs-popover-bottom .arrow::after, html[data-theme="dark"] .member-page .bs-popover-auto[x-placement^="bottom"] .arrow::after { border-bottom-color: var(--fp-soft); }
html[data-theme="dark"] .member-page .bs-popover-left .arrow::after, html[data-theme="dark"] .member-page .bs-popover-auto[x-placement^="left"] .arrow::after { border-left-color: var(--fp-soft); }
html[data-theme="dark"] .member-page .bs-popover-right .arrow::after, html[data-theme="dark"] .member-page .bs-popover-auto[x-placement^="right"] .arrow::after { border-right-color: var(--fp-soft); }
/* Legacy player autocomplete from the shared header. */
html[data-theme="dark"] .member-page .output { background: var(--fp-surface); border-color: var(--fp-outline); color: var(--fp-muted); }
html[data-theme="dark"] .member-page :is(.prediction-item:hover, .focus, .output:hover .focus:hover) { background: var(--fp-soft); color: var(--fp-ink); }
html[data-theme="dark"] .member-page .output:hover .focus { background: var(--fp-surface); color: var(--fp-muted); }
html[data-theme="dark"] .member-page .prediction-item strong { color: var(--fp-ink); }

/* DataTables forces its pagination colors with !important. */
html[data-theme="dark"] .member-page .dataTables_wrapper :is(.dataTables_length, .dataTables_filter, .dataTables_processing) { color: var(--fp-muted); }
html[data-theme="dark"] .member-page .dataTables_wrapper .dataTables_paginate .paginate_button { color: var(--fp-ink) !important; }
html[data-theme="dark"] .member-page .dataTables_wrapper .dataTables_paginate .paginate_button:is(:hover, :active):not(.current, .disabled) { background: var(--fp-soft); border-color: var(--fp-line); box-shadow: none; }
html[data-theme="dark"] .member-page .dataTables_wrapper .dataTables_paginate .paginate_button.current { border-color: rgba(197, 245, 69, .42); }
html[data-theme="dark"] .member-page .dataTables_wrapper .dataTables_paginate .paginate_button.disabled { color: var(--fp-muted) !important; opacity: .55; }
html[data-theme="dark"] .member-page .dataTables_wrapper .dataTables_processing { background: var(--fp-soft); }

/* Date range picker. */
html[data-theme="dark"] .member-page .daterangepicker { background-color: var(--fp-soft); border-color: var(--fp-outline); color: var(--fp-ink); }
html[data-theme="dark"] .member-page .daterangepicker::before { border-bottom-color: var(--fp-outline); }
html[data-theme="dark"] .member-page .daterangepicker::after { border-bottom-color: var(--fp-soft); }
html[data-theme="dark"] .member-page .daterangepicker .calendar-table { background-color: transparent; border-color: transparent; }
html[data-theme="dark"] .member-page .daterangepicker .calendar-table :is(.next, .prev) span { border-color: var(--fp-ink); }
html[data-theme="dark"] .member-page .daterangepicker :is(td, th).available:hover, html[data-theme="dark"] .member-page .daterangepicker .ranges li:hover { background-color: var(--fp-raised); color: var(--fp-ink); }
html[data-theme="dark"] .member-page .daterangepicker td.off { background-color: transparent !important; color: var(--fp-muted); opacity: .55; }
html[data-theme="dark"] .member-page .daterangepicker :is(.drp-buttons, .drp-calendar.left, .ranges) { border-color: var(--fp-line); }
html[data-theme="dark"] .member-page .daterangepicker select { background: var(--fp-surface); border-color: var(--fp-outline); color: var(--fp-ink); }
html[data-theme="dark"] .member-page .daterangepicker .cancelBtn { color: var(--fp-ink); }

/* SweetAlert outside the ÜV tool keeps its default layout. */
html[data-theme="dark"] :is(.member-page, .settings-page) .swal2-popup { background: var(--fp-surface); border: 1px solid var(--fp-line); }
html[data-theme="dark"] :is(.member-page, .settings-page) .swal2-title { color: var(--fp-ink); }
html[data-theme="dark"] :is(.member-page, .settings-page) :is(.swal2-content, .swal2-html-container, .swal2-footer) { color: var(--fp-muted); }
html[data-theme="dark"] :is(.member-page, .settings-page) .swal2-footer { border-top-color: var(--fp-line); }
html[data-theme="dark"] :is(.member-page, .settings-page) :is(.swal2-input, .swal2-textarea, .swal2-select) { background: var(--fp-canvas); border-color: var(--fp-outline); color: var(--fp-ink); }
html[data-theme="dark"] :is(.member-page, .settings-page) .swal2-validation-message { background: var(--fp-soft); color: var(--fp-muted); }
html[data-theme="dark"] :is(.member-page, .settings-page) .swal2-close { color: var(--fp-muted); }
