
/* ===========================
   DARK MODE — THEME VARS
=========================== */
:root,
html[data-theme="dark"],
html.theme-dark,
html[data-bs-theme="dark"] {
  --primary-color: #0d6efd !important;
  --background-color: #121212 !important;
  --text-color: #ffffff !important;

  --navbar-bg-color: #1f1f1f !important;
  --hover-bg-color: #333333 !important;

  --button-hover-bg: #ffffff !important;
  --button-hover-text: #121212 !important;

  --surface-1: var(--navbar-bg-color) !important;

  --border-light: rgba(255, 255, 255, 0.34) !important;
  --border-1: var(--border-light) !important;

  --emphasis-color: var(--text-color) !important;
  --tertiary-bg: var(--surface-1) !important;
  --secondary-color: var(--border-light) !important;

  --game-silhouette-ink: #ffffff;
  --game-piece-fill: #86b7fe;
  --game-piece-stroke: rgba(255,255,255,.40);

  --progress-label-on-fill: #fff;

  --chat-control-btn-bg: #ffffff !important;
  --chat-control-btn-shadow: rgba(0,0,0,0.45) !important;

  --chat-tts-icon-url: url("/static/images/icons/tts_dark.202b359e0ea0.png") !important;

  --chat-send-triangle-color: #121212 !important;

  --chat-voice-overlay-bg: radial-gradient(
    circle at 30% 20%,
    rgba(255,255,255,0.35),
    rgba(255,255,255,0.12)
  ) !important;

  --chat-voice-overlay-ring: rgba(255,255,255,0.28) !important;
  --chat-voice-overlay-shadow: rgba(0,0,0,0.55) !important;

}

/* Theme-aware table header + popover + success buttons */
.thead-theme { background-color: var(--navbar-bg-color) !important; color: var(--text-color) !important; }
.thead-theme th { border-bottom: 1px solid var(--border-1) !important; }

.popover { background-color: var(--surface-1) !important; color: var(--text-color) !important; border: 1px solid var(--border-1) !important; }
.popover .popover-header { background-color: var(--surface-1) !important; color: var(--text-color) !important; border-bottom: 1px solid var(--border-1) !important; }
.popover .popover-body { color: var(--text-color) !important; }

.btn-outline-success { color: #28a745 !important; border-color: #28a745 !important; }
.btn-outline-success:hover,
.btn-outline-success:focus { background-color: #28a745 !important; color: #fff !important; }
.btn-success { background-color: #28a745 !important; border-color: #28a745 !important; }

/* Shortlist: keep outline on focus/active (no green fill) */
.shortlist-btn.btn-outline-success:focus,
.shortlist-btn.btn-outline-success:active,
.shortlist-btn.btn-outline-success:focus:active {
  background-color: transparent !important;
  color: #28a745 !important;
  border-color: #28a745 !important;
  box-shadow: none !important;
}
/* Help popover theme tokens (dark) */
.help-popover {
  --card-bg: #1f1f22;            /* dark gray bubble */
  --text-color: #e9ecef;         /* near-white text */
  --border-color: rgba(255,255,255,.18);
}
.help-popover { background: var(--card-bg); color: var(--text-color); border-color: var(--border-color); }
.help-popover .arrow { border-bottom-color: var(--card-bg); }
.help-popover .arrow::before { border-bottom-color: var(--border-color); }

/* ===========================
   DARK MODE — SYSTEM FALLBACK
=========================== */
@media (prefers-color-scheme: dark) {
  html:not([data-theme]):not([data-bs-theme]):not(.theme-light):not(.theme-dark) {
    --primary-color: #0d6efd !important;
    --background-color: #121212 !important;
    --text-color: #ffffff !important;
    --navbar-bg-color: #1f1f1f !important;
    --hover-bg-color: #333333 !important;
    --button-hover-bg: #ffffff !important;
    --button-hover-text: #121212 !important;
    --border-light: rgba(255, 255, 255, 0.34) !important;
    --surface-1: var(--navbar-bg-color) !important;
    --border-1: var(--border-light) !important;
    --game-ghost-stroke: rgba(255,255,255,0.65);
    --game-grid-stroke: rgba(255,255,255,0.35);
    --game-pin-fill: #fcf9f9;
    --game-pin-stroke: #fefefe;
  }
}

/* ===========================
   DARK MODE — GLOBAL
=========================== */
body { background-color: var(--background-color); color: var(--text-color); }

/* Navbar + dropdown base */
header, .navbar, .dropdown-menu { background-color: var(--navbar-bg-color); color: var(--text-color); }

/* ===========================
   DARK MODE — NAV & LINKS
=========================== */
.nav-link, .dropdown-item, .btn-link,
.navbar-nav .nav-link, .navbar-nav .btn-link { color: var(--text-color) !important; }

.navbar-nav .btn-link:hover,
.navbar-nav .dropdown-item:hover,
.nav-link:hover { background-color: var(--hover-bg-color) !important; color: var(--primary-color) !important; }

/* ===========================
   DARK MODE — TABS
=========================== */
.nav-tabs { background-color: var(--navbar-bg-color) !important; border-bottom: none !important; }
.nav-tabs .nav-link { background-color: var(--navbar-bg-color) !important; color: var(--text-color) !important; border: 1px solid transparent !important; }
.nav-tabs .nav-link:hover { background-color: var(--hover-bg-color) !important; color: var(--primary-color) !important; border-color: var(--primary-color) !important; }
.nav-tabs .nav-link.active { background-color: var(--hover-bg-color) !important; color: var(--text-color) !important; border-color: var(--primary-color) var(--primary-color) transparent !important; }

/* ===========================
   DARK MODE — FORMS
=========================== */
/* Unfocused state must be visible on white inputs */
input.form-control,
textarea.form-control,
select.form-control {
  background-color: #ffffff !important;
  color: #000000 !important;
  border: 1px solid rgba(0,0,0,0.45) !important;  /* darker so it shows even when not focused */
  box-shadow: none !important;
}

/* Inside previews, enforce again */
.preview-container .form-control { border: 1px solid rgba(0,0,0,0.45) !important; }

/* Hover + focus rings for clarity */
.form-control:hover { border-color: rgba(0,0,0,0.6) !important; }
.form-control:focus {
  border-color: var(--primary-color) !important;
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(13,110,253,.25) !important;
}

input[disabled], textarea[disabled] {
  background-color: rgba(255, 255, 255, 0.1) !important;
  color: #bbbbbb !important;
}

/* Labels */
label, .col-form-label, .form-group label { color: var(--text-color) !important; }

/* Answer option row: labels & helper text readable in dark */
.answer-option label,
.answer-option .form-check-label,
.answer-option .input-group-text,
.answer-option small,
.answer-option .form-text,
.answer-option .helptext {
  color: var(--text-color) !important;
  opacity: .9;
}

/* Make the tri-state select (Correct/Incorrect/Unknown) clearly bordered */
.answer-option select.form-control,
.answer-option input.form-control,
.answer-option textarea.form-control {
  background-color: #ffffff !important;
  color: #000 !important;
  border: 1px solid rgba(0,0,0,0.45) !important;
}

/* File input label (option image) readable */
.answer-option .custom-file-label {
  background-color: var(--navbar-bg-color) !important;
  color: var(--text-color) !important;
  border: 1px solid var(--border-light) !important;
}
.answer-option .custom-file-input:focus ~ .custom-file-label {
  border-color: var(--primary-color) !important;
  box-shadow: 0 0 0 0.2rem rgba(13,110,253,.25) !important;
}

/* ===========================
   DARK MODE — COMPONENT SURFACES
=========================== */
.card, .form-group, .session-entry, .instruction-box, .text-box, .preview-container, .bg-light {
  background-color: transparent !important;
  color: var(--text-color) !important;
  border: none !important;
}

/* Force any white panels to use dark surface in dark mode */
.bg-white,
.answer-option,
.option-item,
.option-row {
  background-color: var(--navbar-bg-color) !important;
  color: var(--text-color) !important;
}

/* Ensure borders stay visible on dark surfaces */
.bg-white.border,
.answer-option.border,
.option-item.border,
.option-row.border {
  border-color: var(--border-light) !important;
}

/* Make native file inputs readable in dark mode too */
input[type="file"].form-control-file {
  color: var(--text-color) !important;
}

/* Help text & file input */
.form-text, .text-muted, .helptext { color: rgba(255,255,255,.75) !important; }
.custom-file-label { background-color: var(--navbar-bg-color) !important; color: var(--text-color) !important; border: 1px solid var(--border-light) !important; }
.custom-file-input:focus ~ .custom-file-label { border-color: var(--primary-color) !important; box-shadow: 0 0 0 0.2rem rgba(13,110,253,.25) !important; }

/* ===========================
   DARK MODE — TABLES/LISTS
=========================== */
table { border-color: var(--border-light) !important; }
table thead th, table tbody tr td, table th, table td, ul, ol { color: var(--text-color) !important; }

/* ===========================
   DARK MODE — ACCORDIONS
=========================== */
#sessionsAccordion .card { background-color: transparent !important; border: none; }
.accordion .card-header .btn-link { color: var(--text-color) !important; }
.accordion .card-header .btn-link:hover { background-color: var(--hover-bg-color); color: var(--primary-color); }

/* ===========================
   DARK MODE — MODALS
=========================== */
.modal-content,
.modal-header, .modal-body, .modal-footer { background-color: var(--navbar-bg-color) !important; color: var(--text-color) !important; }
.modal-footer .btn { background-color: var(--primary-color); color: #ffffff; border: none; }
.modal-footer .btn-secondary { background-color: var(--hover-bg-color); color: var(--text-color); }
.modal-footer .btn:hover { background-color: var(--button-hover-bg); color: var(--button-hover-text); }
.modal-header .close { color: var(--text-color) !important; opacity: 1; }

/* ===========================
   DARK MODE — PREVIEW GEARS
=========================== */
.gear-preview { color: var(--text-color); }
.gear-preview path { stroke: var(--border-light); stroke-width: 0.75px; }
.gear-preview text { fill: var(--text-color); opacity: .65; }

/* ===========================
   DARK MODE — GAMES
=========================== */
.frame-outline { fill: none !important; fill-opacity: 0 !important; stroke: var(--game-silhouette-ink, #ffffff); stroke-width: 3; }

/* ===========================
   DARK MODE — CHAT
=========================== */
--chat-control-btn-bg: #ffffff;
--chat-control-btn-shadow: rgba(0,0,0,0.45);
--chat-tts-icon-url: url("/static/images/icons/tts_dark.202b359e0ea0.png");
--chat-send-triangle-color: #121212;