/* ==== LEMON LAYOUT RESET: header sticky + left menu fixed ==== */
:root {
  --lemon-50: #fffdf3;
  --lemon-100: #fff7d6;
  --lemon-200: #ffefad;
  --lemon-300: #ffe380;
  --lemon-600: #d4a60a;
  --ink: #222;
  --header-h: 72px; /* wysokość nagłówka */
  --menu-w: 300px; /* szerokość lewego menu */
  --avatar-size: 40px;
  --streamer-menu-default-bg: #ffffff;
  --streamer-menu-default-color: #221d10;
  --streamer-menu-shadow: rgba(212, 166, 10, 0.22);
}

/* Global scrollbar polish: subtle, rounded, theme-aware */
html {
  scrollbar-width: thin;
  scrollbar-color: rgba(34, 34, 34, 0.28) var(--scrollbar-track, rgba(0, 0, 0, 0.04));
}
::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}
::-webkit-scrollbar-track {
  background: var(--scrollbar-track, rgba(0, 0, 0, 0.04));
  border-radius: 999px;
}
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #fde68a, #f0b429);
  border-radius: 999px;
  border: 2px solid rgba(255, 255, 255, 0.85);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12) inset;
}
html[data-theme="dark"] {
  scrollbar-color: rgba(255, 255, 255, 0.22) rgba(255, 255, 255, 0.06);
}
html[data-theme="dark"] ::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.06);
}
html[data-theme="dark"] ::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0.32));
  border-color: rgba(15, 23, 42, 0.88);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.22) inset;
}

/* HEADER: zawsze na górze, cytrynowy, z cieniem */
header,
#header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1100;
  height: var(--header-h);
  min-height: var(--header-h);
  display: flex;
  align-items: center;
  background: linear-gradient(90deg, var(--lemon-100), var(--lemon-300));
  border-bottom: 1px solid var(--lemon-200);
  box-shadow: 0 2px 16px rgba(212, 166, 10, 0.12);
}

/* Right-align header actions consistently (login/user + create + toggle) */
header .header-actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 8px;
}
@media (max-width: 575.98px) {
  header .header-actions {
    order: 3;
    width: 100%;
    justify-content: flex-end;
  }
}

/* Jeśli wolisz â€žtwardoâ€ť przyklejony header zamiast sticky, zamień 2 linie powyżej na:
   position: fixed; top:0; width:100%;  i odkomentuj poniższe:
   body{ padding-top: var(--header-h); } */

/* LEWE MENU: fixed pod headerem, z przewijaniem w środku */
#menu {
  position: fixed;
  top: var(--header-h);
  left: 0;
  width: var(--menu-w);
  height: calc(100vh - var(--header-h));
  overflow: auto;
  background: linear-gradient(180deg, var(--lemon-100), var(--lemon-50));
  box-shadow: 2px 0 12px rgba(212, 166, 10, 0.08);
  z-index: 1300;
}
/* Hide legacy home link now moved to header */
#menu .menu-home {
  display: none !important;
}
/* Top home link */
#menu .menu-home .menu-link {
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Uporządkowane listy w menu (bez kropek) i czytelny hover */
#menu ul {
  list-style: none;
  margin: 0;
  padding: 8px 0;
}
/* Make entire menu items clickable via the anchor */
#menu li {
  padding: 0;
}
#menu li > a,
#menu .submenu-toggle {
  display: block;
  width: 100%;
  text-align: left;
  padding: 6px 12px;
  border-radius: 8px;
  color: var(--ink);
  text-decoration: none;
  background: transparent;
  border: 0;
  cursor: pointer;
}
#menu li > a:hover,
#menu .submenu-toggle:hover {
  background: var(--lemon-200);
}

/* Submenus */
#menu li.has-children > .submenu-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
#menu li .submenu {
  display: none;
  padding: 4px 0 4px 12px;
}
#menu li.open > .submenu {
  display: block;
}
#menu li .submenu .menu-link {
  padding-left: 20px;
}
#menu li.has-children > .submenu-toggle .caret {
  transition: transform 0.2s ease;
}
#menu li.open > .submenu-toggle .caret {
  transform: rotate(90deg);
}

/* Streamer tile: highlighted call-to-action with animated brand colors */
#menu .menu-streamer {
  margin: 6px 0 16px;
  padding: 0 12px 14px;
  position: relative;
}

#menu .menu-streamer::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 6px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(212, 166, 10, 0.45), transparent);
  pointer-events: none;
}

#menu .menu-link-streamer {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 10px;
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1.2;
  color: var(--streamer-menu-default-color);
  background: var(--streamer-menu-default-bg);
  box-shadow: 0 8px 18px var(--streamer-menu-shadow);
  animation: streamerModeCycle 18s ease-in-out infinite;
  transition: transform 0.28s ease, box-shadow 0.28s ease;
}

#menu .menu-link-streamer:hover {
  transform: translateX(4px);
  box-shadow: 0 12px 22px rgba(0, 0, 0, 0.18);
}

#menu .menu-link-streamer:focus-visible {
  transform: translateX(4px);
  box-shadow: 0 12px 22px rgba(0, 0, 0, 0.18);
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

#menu .menu-link-streamer i {
  font-size: 1.25rem;
  flex: 0 0 auto;
}

#menu .menu-streamer-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

#menu .menu-streamer-text .label {
  font-size: 1rem;
  letter-spacing: 0.01em;
}

#menu .menu-streamer-subtitle {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  opacity: 0.85;
}

html[data-theme="dark"] #menu .menu-streamer::after {
  background: linear-gradient(90deg, transparent, rgba(148, 110, 255, 0.5), transparent);
}

html[data-theme="dark"] #menu .menu-link-streamer:hover,
html[data-theme="dark"] #menu .menu-link-streamer:focus-visible {
  box-shadow: 0 14px 28px rgba(12, 12, 20, 0.55);
}

html[data-theme="dark"] #menu .menu-streamer-subtitle {
  opacity: 0.9;
}

@keyframes streamerModeCycle {
  0%,
  12% {
    background: var(--streamer-menu-default-bg);
    color: var(--streamer-menu-default-color);
    box-shadow: 0 10px 24px var(--streamer-menu-shadow);
  }
  16%,
  28% {
    background: #ff0033;
    color: #ffffff;
    box-shadow: 0 10px 24px rgba(255, 0, 51, 0.32);
  }
  32%,
  44% {
    background: var(--streamer-menu-default-bg);
    color: var(--streamer-menu-default-color);
    box-shadow: 0 10px 24px var(--streamer-menu-shadow);
  }
  48%,
  60% {
    background: #00e701;
    color: #02330a;
    box-shadow: 0 10px 24px rgba(0, 231, 1, 0.32);
  }
  64%,
  76% {
    background: var(--streamer-menu-default-bg);
    color: var(--streamer-menu-default-color);
    box-shadow: 0 10px 24px var(--streamer-menu-shadow);
  }
  80%,
  88% {
    background: #6441a5;
    color: #ffffff;
    box-shadow: 0 10px 24px rgba(100, 65, 165, 0.4);
  }
  92%,
  96% {
    background: #040404;
    color: #ffffff;
    box-shadow: 0 10px 24px rgba(4, 4, 4, 0.55);
  }
  100% {
    background: var(--streamer-menu-default-bg);
    color: var(--streamer-menu-default-color);
    box-shadow: 0 10px 24px var(--streamer-menu-shadow);
  }
}

@media (prefers-reduced-motion: reduce) {
  #menu .menu-link-streamer {
    animation: none;
  }
}

/* TREĹšÄ†: odsunięta od lewego menu */
.OutOfMenu {
  margin-left: calc(var(--menu-w) + 15px);
}

/* Pasek narzędzi pod headerem — też sticky, pod headerem */
.lemon-toolbar {
  position: sticky;
  top: var(--header-h);
  z-index: 900;
  background: var(--lemon-100);
  border-bottom: 1px solid var(--lemon-200);
}

/* Reklamy po prawej (desktop) */
.layout-creator {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.layout-main {
  flex: 1 1 auto;
  min-width: 0;
}
.layout-creator #stats-boxes {
  position: sticky;
  top: calc(var(--header-h) + 16px);
  flex: 0 0 320px;
  width: 320px !important;
  min-height: 300px;
  margin: 0 8px 0 0 !important; /* mały odstęp od prawej */
  background: var(--lemon-100);
  border: 1px solid var(--lemon-200);
  border-radius: 16px;
  box-shadow: 0 2px 20px rgba(212, 166, 10, 0.08);
  color: #5f6368;
}

/* Avatar â€“ bezpieczny rozmiar */
@media (min-width: 1200px) {
  :root {
    --avatar-size: 44px;
  }
}
@media (max-width: 575.98px) {
  :root {
    --avatar-size: 36px;
  }
}
#user-menu img,
img#user-icon,
.user-avatar,
header img[alt*="user" i] {
  width: var(--avatar-size) !important;
  height: var(--avatar-size) !important;
  object-fit: cover !important;
  border-radius: 50% !important;
  border: 2px solid var(--lemon-200);
  box-shadow: 0 1px 4px rgba(212, 166, 10, 0.2);
}

/* Profile pages: emphasize identity (keep header avatar size unchanged) */
body[data-page="profile"] .profile-header .username,
body[data-page="public-profile"] .profile-header .username {
  font-size: 1.75rem;
  font-weight: 800;
  line-height: 1.1;
}
/* Larger avatar only inside profile header (not global header) */
body[data-page="profile"] .profile-header .user-avatar,
body[data-page="public-profile"] .profile-header .user-avatar {
  width: 96px !important;
  height: 96px !important;
}
@media (max-width: 575.98px) {
  body[data-page="profile"] .profile-header .user-avatar,
  body[data-page="public-profile"] .profile-header .user-avatar {
    width: 72px !important;
    height: 72px !important;
  }
}
body[data-page="profile"] .profile-header .languages,
body[data-page="public-profile"] .profile-header .languages {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 2px 0 4px 0;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--lemon-200);
  color: var(--ink);
  font-weight: 600;
}

/* === Dark mode contrast fixes === */
html[data-theme="dark"] .text-muted {
  color: #a8acb8 !important;
}

/* Cards: stronger separation and readable text */
html[data-theme="dark"] .lemon-card {
  background: #1f2127 !important;
  border-color: #2a2d34 !important;
  color: #e9e9ee !important;
}
html[data-theme="dark"] .lemon-card .card-header {
  background: linear-gradient(180deg, #242731, #1f2127) !important;
  border-bottom-color: #2a2d34 !important;
}
html[data-theme="dark"] .lemon-card .card-body {
  color: #e9e9ee !important;
}

/* Left menu: darker bg and clear hover */
html[data-theme="dark"] #menu {
  background: linear-gradient(180deg, #171923, #14161d) !important;
  box-shadow: 2px 0 12px rgba(0, 0, 0, 0.3) !important;
}
html[data-theme="dark"] #menu li > a,
html[data-theme="dark"] #menu .submenu-toggle {
  color: #e9e9ee !important;
}
html[data-theme="dark"] #menu li > a:hover,
html[data-theme="dark"] #menu .submenu-toggle:hover {
  background: #2a2d34 !important;
}

/* Mobile: menu NIE jest fixed, treść na pełną szerokość */
@media (max-width: 991.98px) {
  :root {
    --header-h: 64px;
  }
  #menu {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    box-shadow: none;
  }
  .OutOfMenu {
    margin-left: 0 !important;
  }
  .layout-creator {
    flex-direction: column;
  }
  .layout-creator #stats-boxes {
    position: static;
    width: 100% !important;
    min-height: 200px;
  }
}

/* Bezpiecznik na obrazki & zawartość kart */
img {
  max-width: 100%;
  height: auto;
}
.lemon-card .card-body {
  overflow: hidden;
}
/* Create: category picker (tree dropdown) */
.cat-picker {
  position: relative;
}
.cat-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 1500;
  background: #fffdf3;
  border: 1px solid var(--lemon-200);
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(212, 166, 10, 0.12);
  display: none;
  max-height: 360px;
  overflow: auto;
  padding: 6px;
}
.cat-picker.open .cat-dropdown {
  display: block;
}
.cat-tree {
  list-style: none;
  margin: 0;
  padding: 0;
}
.cat-tree li {
  margin: 2px 0;
}
.cat-item,
.cat-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  text-align: left;
  padding: 6px 12px;
  border-radius: 8px;
  border: 0;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
}
.cat-item:hover,
.cat-toggle:hover {
  background: var(--lemon-200);
}
.cat-sub {
  list-style: none;
  margin: 2px 0 2px 10px;
  padding: 0 0 0 6px;
  border-left: 1px dashed var(--lemon-200);
  display: none;
}
.cat-tree li.open > .cat-sub {
  display: block;
}
.cat-toggle .caret {
  transition: transform 0.2s ease;
}
#menu li.open > .submenu-toggle .caret {
  transform: rotate(90deg);
}

/* Invalid state styling: red border on toggle when hidden input invalid */
#category.is-invalid + #category-toggle {
  border-color: #dc3545 !important;
}
/* Ensure burger icon remains visible when mobile menu is closed */
@media (max-width: 991.98px) {
  #menu:not(.menu-open) ul > li.burger-icon {
    display: block !important;
  }
}
/* === HEADER LEMON FIX === */
:root {
  --header-h: 72px;
  --menu-w: 300px;
}

/* układ â€ž3 kolumnyâ€ť: [lewo] [środek=logo] [prawo=user] */
header,
#header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1100;
  min-height: var(--header-h);
  display: grid !important;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 8px 16px;
  background: linear-gradient(90deg, #fff7d6, #ffe380);
  border-bottom: 1px solid #ffefad;
  box-shadow: 0 2px 16px rgba(212, 166, 10, 0.12);
  overflow: visible; /* nie ucinaj dropdowna */
}
/* Place header actions in right column of grid */
header .header-actions {
  grid-column: 3;
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Header search */
.header-search {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-right: 8px;
}
.header-search input[type="search"] {
  height: 36px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid var(--lemon-600);
  background: #fff;
  color: var(--ink);
  min-width: 220px;
}
.header-search input[type="search"]::placeholder {
  color: #7a7a7a;
}
.header-search button {
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid var(--lemon-600);
  background: #fff;
  color: var(--lemon-600);
  cursor: pointer;
}
.header-search button:hover {
  background: var(--lemon-100);
}
@media (max-width: 575.98px) {
  .header-search input[type="search"] {
    min-width: 140px;
  }
}

/* Live search dropdown */
.search-dropdown {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  background: #fff;
  border: 1px solid var(--lemon-200);
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
  max-height: 360px;
  overflow: auto;
  z-index: 2000;
}
.search-group-title {
  font-weight: 700;
  font-size: 0.85rem;
  color: #555;
  padding: 8px 10px;
  border-bottom: 1px solid var(--lemon-200);
  background: var(--lemon-100);
}
.search-item {
  padding: 8px 10px;
  cursor: pointer;
}
.search-item:hover,
.search-item.active {
  background: var(--lemon-100);
}
.search-empty {
  padding: 10px;
  color: #777;
}

html[data-theme="dark"] .search-dropdown {
  background: var(--lemon-100);
  border-color: var(--lemon-200);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}
html[data-theme="dark"] .search-group-title {
  color: var(--ink);
  background: var(--lemon-100);
  border-bottom-color: var(--lemon-200);
}
html[data-theme="dark"] .search-item:hover,
html[data-theme="dark"] .search-item.active {
  background: var(--lemon-300);
}

/* Header left area: home button */
.header-left {
  grid-column: 1;
  justify-self: start;
}
#home-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 12px;
  border-radius: 999px;
  border: 0;
  background: #fff;
  color: var(--lemon-600);
  text-decoration: none;
}
#home-link:hover {
  background: var(--lemon-100);
}
#home-link .label {
  font-weight: 600;
}

/* logo/brand zawsze idealnie pośrodku */
header .logo,
header #logo,
header .brand,
header h1 {
  grid-column: 2;
  justify-self: center;
  margin: 0;
  color: #222;
}

/* kontener z ikoną profilu po prawej */
#user-menu {
  grid-column: 3;
  justify-self: end;
  position: relative;
}
#user-menu img {
  cursor: pointer;
}

/* menu użytkownika (dropdown) */
#user-menu .user-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 220px;
  background: #fffdf3;
  border: 1px solid #ffefad;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(212, 166, 10, 0.15);
  display: none;
  z-index: 1300; /* nad toolbar i planszą */
  overflow: visible;
}

/* Smooth hide-on-scroll behavior (create page) */
header {
  transition: transform 0.25s ease;
}
body.header-hidden header {
  transform: translateY(-110%);
}
body.header-hidden .lemon-toolbar {
  top: 0;
}
#user-menu.open .user-menu {
  display: block;
}
#user-menu .user-menu a,
#user-menu .user-menu li {
  color: var(--ink);
  padding: 10px 14px;
  display: block;
}
#user-menu .user-menu a:hover,
#user-menu .user-menu li:hover {
  background: var(--lemon-100);
}

/* === Profile page: center whole layout === */
/* Rules removed to fix column wrapping issue */

/* === Theme toggle button (visible on all pages) === */
#theme-toggle {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid var(--lemon-600);
  background: #fff;
  color: var(--lemon-600);
  cursor: pointer;
}
#theme-toggle:hover {
  background: var(--lemon-100);
}
#theme-toggle:focus {
  outline: none;
  box-shadow: 0 0 0 0.2rem rgba(212, 166, 10, 0.25);
}

/* Place pills nicely on the left side row with create/login */
#theme-toggle {
  margin-right: 8px;
}

/* === Global colors bound to variables (for theming) === */
html,
body {
  color: var(--ink);
  background: var(--lemon-50);
}

/* === Solver fullscreen polish === */
#solve-root:fullscreen {
  background: var(--lemon-50);
}
#solve-root:fullscreen .solver-layout {
  grid-template-columns: 1fr 360px;
  gap: 18px;
}
@media (max-width: 991.98px) {
  #solve-root:fullscreen .solver-layout {
    grid-template-columns: 1fr;
  }
}
#solve-root:fullscreen .solve-canvas {
  width: 100vw !important;
  height: 100vh !important;
  border: none !important;
  border-radius: 0 !important;
  background: #fff !important;
}
@supports (height: 100lvh) {
  #solve-root:fullscreen .solve-canvas {
    height: 100lvh !important;
  }
}
@supports (height: 100dvh) and (not (height: 100lvh)) {
  #solve-root:fullscreen .solve-canvas {
    height: 100dvh !important;
  }
}

/* === Dark theme variables === */
html[data-theme="dark"] {
  /* Darker, muted lemon palette */
  --lemon-50: #0f1115; /* page bg */
  --lemon-100: #141821; /* cards / light surfaces */
  --lemon-200: #1f2533; /* borders */
  --lemon-300: #2a3245; /* accents */
  --lemon-600: #c9aa3c; /* primary accent (darker yellow) */
  --ink: #e6e6e6; /* text */
  --streamer-menu-default-bg: rgba(148, 110, 255, 0.18);
  --streamer-menu-default-color: #f4f3ff;
  --streamer-menu-shadow: rgba(48, 32, 96, 0.55);
}

/* Dark theme: ensure dropdown surface matches */
html[data-theme="dark"] #user-menu .user-menu {
  background: var(--lemon-100);
  border-color: var(--lemon-200);
}
html[data-theme="dark"] #user-menu .user-menu a:hover,
html[data-theme="dark"] #user-menu .user-menu li:hover {
  background: var(--lemon-300);
}

/* Dark theme: header/login pills remain legible */
html[data-theme="dark"] #login-link {
  background: var(--lemon-100);
  color: var(--lemon-600);
}
html[data-theme="dark"] #theme-toggle {
  background: var(--lemon-100);
  color: var(--lemon-600);
}
html[data-theme="dark"] .header-search input[type="search"] {
  background: var(--lemon-50);
  border-color: var(--lemon-200);
  color: var(--ink);
}
html[data-theme="dark"] .header-search button {
  background: var(--lemon-100);
  color: var(--lemon-600);
  border-color: var(--lemon-200);
}

/* Dark theme: header and left menu gradients + borders */
html[data-theme="dark"] header,
html[data-theme="dark"] #header {
  background: var(--lemon-100); /* spokojne, jednolite tło zamiast gradientu */
  border-bottom: 1px solid var(--lemon-200); /* delikatna linia oddzielająca */
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.25); /* mniejszy cień (mniej "ciężki") */
}
html[data-theme="dark"] #menu {
  background: linear-gradient(180deg, var(--lemon-100), var(--lemon-50));
  box-shadow: 2px 0 12px rgba(0, 0, 0, 0.25);
}
html[data-theme="dark"] .lemon-toolbar {
  background: var(--lemon-100);
  border-bottom: 1px solid var(--lemon-200);
}
html[data-theme="dark"] .lemon-card {
  background: var(--lemon-100);
  border-color: var(--lemon-200);
}
html[data-theme="dark"] .lemon-card .card-header {
  background: linear-gradient(180deg, var(--lemon-100), var(--lemon-50));
  border-bottom: 1px solid var(--lemon-200);
}
html[data-theme="dark"] .badge {
  color: var(--ink);
}
html[data-theme="dark"] .form-control {
  background: var(--lemon-50);
  border-color: var(--lemon-200);
  color: var(--ink);
}
html[data-theme="dark"] .form-control:focus {
  border-color: var(--lemon-600);
  box-shadow: 0 0 0 0.2rem rgba(201, 170, 60, 0.25);
}
/* Match selects with inputs in dark mode */
html[data-theme="dark"] .form-select {
  background-color: var(--lemon-50);
  border-color: var(--lemon-200);
  color: var(--ink);
}
html[data-theme="dark"] .form-select:focus {
  border-color: var(--lemon-600);
  box-shadow: 0 0 0 0.2rem rgba(201, 170, 60, 0.25);
}
html[data-theme="dark"] .list-group-item {
  background: var(--lemon-100);
  color: var(--ink);
  border-color: var(--lemon-200);
}
html[data-theme="dark"] .btn-lemon {
  background: var(--ink);
  border-color: var(--ink);
  color: #111;
}

/* Category dropdown (create page) in dark mode */
html[data-theme="dark"] .cat-dropdown {
  background: var(--lemon-100);
  border-color: var(--lemon-200);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.35);
}
html[data-theme="dark"] .cat-item:hover,
html[data-theme="dark"] .cat-toggle:hover {
  background: var(--lemon-300);
}

/* Smooth theme change animations */
html,
body,
header,
#header,
#menu,
.card,
.lemon-card,
.lemon-card .card-header,
.user-menu,
#user-menu .user-menu,
.btn,
.form-control,
.list-group-item,
.badge,
.lemon-toolbar,
#login-link,
#create-link,
#theme-toggle {
  transition:
    background-color 0.25s ease,
    color 0.25s ease,
    border-color 0.25s ease,
    box-shadow 0.25s ease;
}
@media (prefers-reduced-motion: reduce) {
  html,
  body,
  header,
  #header,
  #menu,
  .card,
  .lemon-card,
  .lemon-card .card-header,
  .user-menu,
  #user-menu .user-menu,
  .btn,
  .form-control,
  .list-group-item,
  .badge,
  .lemon-toolbar,
  #login-link,
  #create-link,
  #theme-toggle {
    transition: none !important;
  }
}

/* Dark theme: make muted text slightly brighter for readability */
html[data-theme="dark"] .text-muted {
  color: rgba(230, 230, 230, 0.75) !important;
}
/* Dark theme: unify other subdued texts to same brighter tone */
html[data-theme="dark"] .text-secondary,
html[data-theme="dark"] .form-text,
html[data-theme="dark"] .small,
html[data-theme="dark"] label.form-label,
html[data-theme="dark"] .card .card-footer,
html[data-theme="dark"] .card .card-header .text-muted,
html[data-theme="dark"] .creator-card__title,
html[data-theme="dark"] #stats-boxes,
html[data-theme="dark"] .creator-hint {
  color: rgba(230, 230, 230, 0.75) !important;
}
/* Slightly darker badge on creator hint for dark bg */
html[data-theme="dark"] .creator-hint {
  background: #1a1f2b;
  border-color: var(--lemon-200);
}

/* === Flatpickr theming === */
.flatpickr-calendar {
  border: 1px solid var(--lemon-200);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}
.flatpickr-calendar .flatpickr-day.today {
  border-color: var(--lemon-600);
}
.flatpickr-calendar .flatpickr-day.selected,
.flatpickr-calendar .flatpickr-day.startRange,
.flatpickr-calendar .flatpickr-day.endRange {
  background: var(--lemon-600);
  border-color: var(--lemon-600);
  color: #111;
}
.flatpickr-calendar .flatpickr-day:hover {
  background: var(--lemon-100);
}

/* Dark mode calendar */
html[data-theme="dark"] .flatpickr-calendar {
  background: var(--lemon-100);
  border-color: var(--lemon-200);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  color: var(--ink);
}
html[data-theme="dark"] .flatpickr-months,
html[data-theme="dark"] .flatpickr-weekdays {
  background: var(--lemon-100);
  color: var(--ink);
}
html[data-theme="dark"] .flatpickr-day {
  color: var(--ink);
}
html[data-theme="dark"] .flatpickr-day:hover {
  background: var(--lemon-300);
}
html[data-theme="dark"] .flatpickr-day.today {
  border-color: var(--lemon-600);
}
html[data-theme="dark"] .flatpickr-day.selected,
html[data-theme="dark"] .flatpickr-day.startRange,
html[data-theme="dark"] .flatpickr-day.endRange {
  background: var(--lemon-600);
  border-color: var(--lemon-600);
  color: #111;
}

/* avatar rozmiar */
:root {
  --avatar-size: 40px;
}
@media (min-width: 1200px) {
  :root {
    --avatar-size: 44px;
  }
}
@media (max-width: 575.98px) {
  :root {
    --avatar-size: 36px;
  }
}
#user-menu img,
img#user-icon,
.user-avatar {
  width: var(--avatar-size) !important;
  height: var(--avatar-size) !important;
  object-fit: cover !important;
  border-radius: 50% !important;
  border: 2px solid #ffefad;
  box-shadow: 0 1px 4px rgba(212, 166, 10, 0.2);
}

/* pasek narzędzi pod headerem ma trzymać się pod spodem */
.lemon-toolbar {
  position: sticky;
  top: var(--header-h);
  z-index: 900;
  background: #fff7d6;
  border-bottom: 1px solid #ffefad;
}

/* === LEWE MENU FIX — zawsze przyklejone na desktopie === */
#menu {
  position: fixed;
  top: var(--header-h);
  left: 0;
  width: var(--menu-w);
  height: calc(100vh - var(--header-h));
  overflow: auto;
  background: linear-gradient(180deg, #fff7d6, #fffdf3);
  box-shadow: 2px 0 12px rgba(212, 166, 10, 0.08);
  z-index: 1300;
}

/* odsunięcie treści niezależnie od strony */
main,
.content,
.content-wrapper,
.OutOfMenu {
  margin-left: calc(var(--menu-w) + 15px);
}

/* reklamy po prawej — jak wcześniej */
.layout-creator {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.layout-main {
  flex: 1 1 auto;
  min-width: 0;
}
.layout-creator #stats-boxes {
  position: sticky;
  top: calc(var(--header-h) + 16px);
  flex: 0 0 320px;
  width: 320px !important;
  min-height: 300px;
  margin: 0 !important;
  background: #fff7d6;
  border: 1px solid #ffefad;
  border-radius: 16px;
  box-shadow: 0 2px 20px rgba(212, 166, 10, 0.08);
  color: #5f6368;
}

/* MOBILE: menu przestaje być fixed, treść na 100% szerokości */
@media (max-width: 991.98px) {
  :root {
    --header-h: 64px;
  }
  #menu {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    box-shadow: none;
  }
  main,
  .content,
  .content-wrapper,
  .OutOfMenu {
    margin-left: 0 !important;
  }
  .layout-creator {
    flex-direction: column;
  }
  .layout-creator #stats-boxes {
    position: static;
    width: 100% !important;
    min-height: 200px;
  }
}
/* ====== FIX #1 — PRZYCISKI W HEADERZE (ładne, małe, cytrynowe) ====== */
:root {
  --lemon-50: #fffdf3;
  --lemon-100: #fff7d6;
  --lemon-200: #ffefad;
  --lemon-300: #ffe380;
  --lemon-600: #d4a60a;
  --ink: #222;
}
#login-link,
#create-link {
  /* niech to będą kompaktowe pigułki */
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  font-weight: 600;
  font-size: 14px;
  line-height: 1;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid var(--lemon-600);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  text-decoration: none;
}

/* warianty kolorystyczne â€“ â€žcytrynaâ€ť */
#login-link {
  background: #fff;
  color: var(--lemon-600);
}
#login-link:hover {
  background: var(--lemon-100);
}

#create-link {
  background: var(--lemon-600);
  border-color: var(--lemon-600);
  color: #fff;
}
#create-link:hover {
  filter: brightness(0.96);
}

/* Na bardzo małych ekranach jeszcze ciut ciaśniej */
@media (max-width: 575.98px) {
  #login-link,
  #create-link {
    font-size: 13px;
    padding: 7px 12px;
  }
}

/* Jeśli gdzieś w CSS nadawałeś buttonom 100% szerokości — wyłączamy to dla tych dwóch */
#login-link,
#create-link {
  width: auto !important;
}

/* ====== FIX #2 — INDEX.NJK nie dziedziczy lewego marginesu po menu ====== */
/* Najpierw zerujemy domyślnie (żeby strona główna nie â€žuciekałaâ€ť) */
main,
.content,
.content-wrapper {
  margin-left: 0 !important;
}

/* A margines przywracamy TYLKO wtedy, gdy #menu faktycznie jest w DOM PRZED treścią (desktop) */
@media (min-width: 992px) {
  #menu ~ main,
  #menu ~ .content,
  #menu ~ .content-wrapper,
  #menu ~ .OutOfMenu {
    margin-left: calc(
      300px + 15px
    ) !important; /* 300px = szerokość lewego menu */
  }
}

/* Delikatne ucywilizowanie â€žheroâ€ť/list/kart na indexie, bez ingerencji w HTML */
.index,
.home,
body[data-page="index"] main {
  /* jeśli masz któryś z tych selektorów â€“ złapiemy go łagodnie */
  --card-bg: var(--lemon-100);
  --card-bd: var(--lemon-200);
}
.index .card,
.home .card,
body[data-page="index"] .card {
  background: var(--card-bg);
  border: 1px solid var(--card-bd);
  border-radius: 16px;
  box-shadow: 0 2px 20px rgba(212, 166, 10, 0.08);
}
.index .list-group-item,
.home .list-group-item,
body[data-page="index"] .list-group-item {
  background: var(--lemon-50);
  border-color: var(--lemon-200);
}

/* Bonus: header bardziej â€žzwartyâ€ť, żeby przyciski nie wyglądały na wielkie przez zbyt wysoki pasek */
header,
#header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1100;
  display: flex !important; /* <-- kluczowe */
  align-items: center;
  gap: 10px;
  padding: 8px 16px;
  background: linear-gradient(90deg, #fff7d6, #ffe380);
  border-bottom: 1px solid #ffefad;
  box-shadow: 0 2px 16px rgba(212, 166, 10, 0.12);
  overflow: visible;
}

/* Logo idealnie pośrodku â€“ niezależnie od liczby elementów po bokach */
header .logo,
header #logo,
header .brand,
header h1 {
  position: absolute; /* wycentrowanie "nad" flexem */
  left: 50%;
  transform: translateX(-50%);
  margin: 0;
  color: #222;
  pointer-events: none; /* żeby klik przechodził do linków pod spodem, jeśli takowe są */
}

/* Prawa strona (avatar + przyciski) */
#user-menu {
  margin-left: auto;
} /* wszystko po jego lewej idzie w prawo */

/* PRZYCISKI: zawsze wąskie, obok siebie, NIE 100% szerokości */
#login-link,
#create-link,
header #login-link,
header #create-link {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  font-weight: 600;
  font-size: 14px;
  line-height: 1;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid #d4a60a; /* var(--lemon-600) */
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  text-decoration: none;
  width: auto !important; /* <-- twardo wyłączamy pełną szerokość */
  max-width: none !important;
  flex: 0 0 auto !important; /* <-- nie rośnij w flexie */
}

/* warianty kolorów (spójne z "cytryną") */
#login-link {
  background: #fff;
  color: #d4a60a;
}
#login-link:hover {
  background: #fff7d6;
}
#create-link {
  background: #d4a60a;
  color: #fff;
  border-color: #d4a60a;
}
#create-link:hover {
  filter: brightness(0.96);
}

/* odstęp między nimi, niezależnie od kolejności w DOM */
#login-link + #create-link {
  margin-left: 8px;
}
#create-link + #login-link {
  margin-left: 8px;
}

/* Avatar â€“ mały, obok przycisków */
:root {
  --avatar-size: 40px;
}
@media (min-width: 1200px) {
  :root {
    --avatar-size: 44px;
  }
}
@media (max-width: 575.98px) {
  :root {
    --avatar-size: 36px;
  }
}
#user-menu img,
img#user-icon,
.user-avatar {
  width: var(--avatar-size) !important;
  height: var(--avatar-size) !important;
  object-fit: cover !important;
  border-radius: 50% !important;
  border: 2px solid #ffefad;
  box-shadow: 0 1px 4px rgba(212, 166, 10, 0.2);
}

/* Dropdown użytkownika â€“ pozycjonowanie względem prawej krawędzi */
#user-menu {
  position: relative;
}
#user-menu .user-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 220px;
  background: #fffdf3;
  border: 1px solid #ffefad;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(212, 166, 10, 0.15);
  display: none;
  z-index: 1300;
}
#user-menu.open .user-menu {
  display: block;
}

/* MOBILE â€“ układ nie â€žrozjeżdżaâ€ť się, logo nie zasłania przycisków */
@media (max-width: 575.98px) {
  header {
    flex-wrap: wrap;
    padding: 6px 10px;
  }
  header .logo,
  header #logo,
  header .brand,
  header h1 {
    position: static; /* wyłączamy absolute na małych ekranach */
    transform: none;
    order: 2;
    width: 100%;
    text-align: center;
    pointer-events: auto;
  }
  #user-menu {
    order: 3;
    margin-left: auto;
  }
  #login-link,
  #create-link {
    order: 3;
  }
}
/* === AUTH (login/register/2FA) â€“ lemon look + ergonomia === */
.auth-wrap {
  min-height: calc(100vh - var(--header-h, 72px));
  display: flex;
  align-items: center;
}
.lemon-card.auth-card {
  background: var(--lemon-100);
  border: 1px solid var(--lemon-200);
  border-radius: 16px;
  box-shadow: 0 2px 20px rgba(212, 166, 10, 0.08);
}
.lemon-card.auth-card .form-control {
  background: #fff;
  border: 1px solid var(--lemon-200);
}
.lemon-card.auth-card .form-control:focus {
  border-color: var(--lemon-600);
  box-shadow: 0 0 0 0.2rem rgba(212, 166, 10, 0.2);
}
.pw-meter {
  height: 6px;
  border-radius: 999px;
  background: #eee;
  overflow: hidden;
}
.pw-meter > span {
  display: block;
  height: 100%;
  width: 0;
  background: #d4a60a;
  transition: width 0.25s;
}

/* ===== HOME (index) â€“ układ i cytrynowa estetyka ===== */
:root {
  --lemon-50: #fffdf3;
  --lemon-100: #fff7d6;
  --lemon-200: #ffefad;
  --lemon-300: #ffe380;
  --lemon-600: #d4a60a;
  --ink: #222;
  --header-h: 72px; /* dopasuj do headera, jeśli zmienisz */
  --menu-w: 300px; /* dopasuj do realnej szerokości #menu */
}

/* Dwukolumnowy layout: [siatka kart] | [prawa kolumna] */
.home-layout {
  display: flex;
  gap: 24px;
}

/* Siatka kart po lewej */
.cards-grid {
  flex: 1 1 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  min-width: 0;
}

/* Karta krzyżówki */
.crossword-card {
  display: flex;
  flex-direction: column;
  background: var(--lemon-100);
  border: 1px solid var(--lemon-200);
  border-radius: 16px;
  box-shadow: 0 2px 20px rgba(212, 166, 10, 0.08);
  overflow: hidden;
}

.crossword-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--lemon-200);
  background: linear-gradient(180deg, var(--lemon-100), var(--lemon-50));
}

.crossword-preview {
  display: grid;
  place-items: center;
  background: var(--lemon-50);
  border-bottom: 1px solid var(--lemon-200);
  /* zachowaj stałe pole podglądu */
  aspect-ratio: 16 / 9;
}

.crossword-description {
  padding: 12px 16px;
  color: var(--ink);
  flex-grow: 1;
}

/* Prawa kolumna â€“ sticky panel */
#stats-boxes.sidebar {
  position: sticky;
  top: calc(var(--header-h) + 16px);
  flex: 0 0 320px;
  width: 320px !important; /* przebija stare reguły procentowe */
  align-self: flex-start;
  padding: 16px;
  background: var(--lemon-100);
  border: 1px solid var(--lemon-200);
  border-radius: 16px;
  box-shadow: 0 2px 20px rgba(212, 166, 10, 0.08);
  color: #5f6368;
}

/* Wnętrze prawej kolumny */
#stats-boxes .ad {
  background: var(--lemon-50);
  border: 1px dashed var(--lemon-200);
  border-radius: 12px;
  padding: 12px;
  text-align: center;
}

/* Listy i nagłówki w panelu */
#top-month h3 {
  margin: 0 0 8px 0;
}
#top-month ul {
  margin: 0;
  padding-left: 18px;
}

/* Responsywność */
@media (max-width: 1199.98px) {
  .cards-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 991.98px) {
  /* na mobile menu nie jest fixed, więc prawa kolumna idzie pod siatkę */
  .home-layout {
    flex-direction: column;
  }
  #stats-boxes.sidebar {
    position: static;
    width: 100% !important;
  }
}
@media (max-width: 575.98px) {
  .cards-grid {
    grid-template-columns: 1fr;
  }
}

/* Bezpieczniki, jeśli inne style próbują rozciągać elementy */
.cards-grid > * {
  min-width: 0;
}
/* === Creator polish (kreator krzyżówki) === */
:root {
  --lemon-50: #fffdf3;
  --lemon-100: #fff7d6;
  --lemon-200: #ffefad;
  --lemon-300: #ffe380;
  --lemon-600: #d4a60a;
  --ink: #222;
}

/* przyjemniejsze, wyraźniejsze karty */
.creator-card .card-header,
.lemon-card .card-header.creator-card__header {
  background: linear-gradient(180deg, var(--lemon-100), var(--lemon-50));
  border-bottom: 1px solid var(--lemon-200);
}
.creator-card__title {
  font-weight: 700;
  letter-spacing: 0.2px;
}

/* małe â€žpigułkiâ€ť */
.btn-pill {
  padding: 0.625rem 1rem;
  border-radius: 999px;
  font-weight: 600;
}
.btn-lemon {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
}
.btn-lemon:hover {
  filter: brightness(0.95);
}

/* host pod planszę â€“ delikatna kratka + paddingi */
.board-host {
  position: relative;
  padding: 14px;
  min-height: 360px;
  background:
    linear-gradient(0deg, rgba(255, 255, 255, 0.75), rgba(255, 255, 255, 0.75)),
    conic-gradient(
        from 90deg at 1px 1px,
        rgba(0, 0, 0, 0.04) 90deg,
        transparent 0
      )
      0 0/24px 24px,
    var(--lemon-50);
  border-top-left-radius: 12px;
  border-top-right-radius: 12px;
}

/* Dark mode: dim board host and invert grid tint */
html[data-theme="dark"] .board-host {
  background:
    linear-gradient(0deg, rgba(0, 0, 0, 0.35), rgba(0, 0, 0, 0.35)),
    conic-gradient(
        from 90deg at 1px 1px,
        rgba(255, 255, 255, 0.06) 90deg,
        transparent 0
      )
      0 0/24px 24px,
    var(--lemon-50);
}

/* Ensure card bodies don't turn bright in dark */
html[data-theme="dark"] .card .card-body {
  background-color: transparent;
}

/* podgląd â€“ ten sam â€žlookâ€ť */
#preview {
  min-height: 120px;
  background: var(--lemon-50);
  border: 1px dashed var(--lemon-200);
  border-radius: 10px;
  padding: 12px;
}

/* drobna wskazówka tekstowa */
.creator-hint {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.9rem;
  color: #5f6368;
  padding: 0.25rem 0.5rem;
  background: #fff8d9;
  border: 1px solid var(--lemon-200);
  border-radius: 999px;
}

/* przycisk â€žLista odpowiedziâ€ť (z Vue) â€“ łagodny FAB w rogu */
#toggleSidebar {
  background-color: #7b3fa3 !important;
  border-color: #7b3fa3 !important;
  box-shadow: 0 6px 18px rgba(123, 63, 163, 0.25);
}
#toggleSidebar:hover {
  filter: brightness(0.97);
}

/* formularz â€“ czytelne focusy */
.form-control:focus {
  border-color: var(--lemon-600);
  box-shadow: 0 0 0 0.2rem rgba(212, 166, 10, 0.2);
}

/* grid pod kursorem (jeśli chcesz mocniej uwidocznić): */
/* .grid-item:hover{ outline: 2px solid #7b3fa3 !important; } */

/* responsy: na mobilu wszystko na jednej kolumnie (już masz w bazie),
   tutaj tylko lekkie dopracowanie odstępów */
@media (max-width: 991.98px) {
  .creator-hint {
    display: none;
  }
  .board-host {
    padding: 10px;
  }
}

/* === MENU: burger tylko na telefonach === */
@media (min-width: 992px) {
  .burger-icon {
    display: none !important;
  }
}
@media (max-width: 991.98px) {
  .burger-icon {
    display: block;
    cursor: pointer;
    padding: 8px 12px;
    font-size: 22px;
  }
  /* chowamy pozycje menu kiedy zamknięte (burger zostaje) */
  #menu:not(.menu-open) ul > li {
    display: none;
  }
  #menu ul {
    display: flex;
    gap: 8px;
    align-items: center;
    padding: 8px 12px;
  }
}

/* Create: pełna szerokość i mały odstęp po prawej */
#create-main {
  padding-right: 8px;
}
#create-main .layout-creator {
  gap: 12px;
}
#create-main input#category.form-control {
  display: none !important;
}

/* Force header fixed at top */
body {
  padding-top: var(--header-h);
}
header,
#header {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 1100;
}

/* === Site header isolation === */
#site-header {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 1100;
}
body {
  padding-top: var(--header-h);
}
/* Any other <header> inside the page should behave as normal block */
main header,
.crossword-card header,
.reviews header,
section header,
article header {
  position: static !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  height: auto !important;
  min-height: unset !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Theme animation control: subtle fade without blocking main thread */
html.theme-animating body {
  transition: background-color 0.35s ease, color 0.35s ease;
}
html.theme-animating body * {
  transition: background-color 0.35s ease, color 0.35s ease, border-color 0.35s ease;
}
html.theme-animating body::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background: rgba(15, 23, 42, 0.08);
  opacity: 0;
  animation: theme-fade-overlay 0.45s ease forwards;
  z-index: 9999;
}
html[data-theme="dark"].theme-animating body::after {
  background: rgba(15, 23, 42, 0.4);
}
html[data-theme="light"].theme-animating body::after {
  background: rgba(248, 250, 252, 0.6);
}
@keyframes theme-fade-overlay {
  from { opacity: 1; }
  to { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html.theme-animating body,
  html.theme-animating body * {
    transition: none !important;
  }
  html.theme-animating body::after {
    animation: none !important;
    opacity: 0;
  }
}
/* Create: ensure letters on board are black in dark mode for contrast */
html[data-theme="dark"] .grid-item .letter {
  color: #111 !important;
}
/* ===== Streamer view solver styling ===== */
.streamer-stage {
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
  align-items: flex-start;
}
@media (max-width: 1199.98px) {
  .streamer-stage {
    grid-template-columns: 1fr;
  }
}
.streamer-main {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.streamer-head {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.streamer-crossword-title {
  font-size: 1.15rem;
  font-weight: 700;
  color: #4a2f6b;
}
.streamer-crossword-meta {
  min-height: 1.2rem;
}
.streamer-question {
  background: linear-gradient(
    145deg,
    rgba(250, 240, 255, 0.95),
    rgba(247, 250, 255, 0.95)
  );
  border: 1px solid rgba(123, 63, 163, 0.18);
  border-radius: 18px;
  padding: 16px 18px;
  box-shadow: 0 12px 28px rgba(123, 63, 163, 0.12);
  transition:
    box-shadow 0.28s ease,
    transform 0.28s ease;
}
.streamer-question.is-active {
  box-shadow: 0 18px 36px rgba(123, 63, 163, 0.18);
  transform: translateY(-2px);
}
.streamer-question .question-meta {
  font-weight: 500;
  letter-spacing: 0.01em;
}
.streamer-next {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border-radius: 14px;
  background: rgba(255, 243, 205, 0.95);
  border: 1px solid rgba(255, 193, 7, 0.35);
  color: #6c4c00;
  font-weight: 600;
}
.streamer-board {
  position: relative;
  padding: 22px;
  border-radius: 22px;
  background:
    radial-gradient(
      900px 680px at 15% 0%,
      rgba(255, 230, 165, 0.25),
      rgba(255, 255, 255, 0) 60%
    ),
    radial-gradient(
      760px 520px at 85% 100%,
      rgba(189, 163, 255, 0.22),
      rgba(255, 255, 255, 0) 65%
    ),
    linear-gradient(
      135deg,
      rgba(255, 255, 255, 0.96),
      rgba(245, 242, 255, 0.96)
    );
  border: 1px solid rgba(189, 163, 255, 0.28);
  box-shadow: 0 22px 45px rgba(123, 63, 163, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 280px;
}
.streamer-grid {
  --cell-gap: 6px;
  display: grid;
  gap: var(--cell-gap);
  grid-template-columns: repeat(var(--cols, 1), minmax(0, 1fr));
  width: min(100%, 520px);
}
.streamer-cell {
  position: relative;
  aspect-ratio: 1 / 1;
  border-radius: 10px;
  border: 1px solid rgba(123, 63, 163, 0.26);
  background: rgba(249, 244, 255, 0.96);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: clamp(1rem, 2.4vw, 1.35rem);
  color: #4f2f7a;
  box-shadow: 0 6px 14px rgba(123, 63, 163, 0.08);
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease,
    background 0.18s ease,
    border-color 0.18s ease;
}
.streamer-cell .letter {
  pointer-events: none;
}
.streamer-cell .cell-number {
  position: absolute;
  left: 6px;
  top: 6px;
  font-size: 0.55rem;
  font-weight: 600;
  color: #7b3fa3;
  opacity: 0.85;
}
.streamer-cell.blocked {
  background: repeating-linear-gradient(
    45deg,
    rgba(90, 70, 120, 0.12) 0,
    rgba(90, 70, 120, 0.12) 6px,
    transparent 6px,
    transparent 12px
  );
  border-color: rgba(123, 63, 163, 0.08);
  box-shadow: inset 0 0 0 1px rgba(123, 63, 163, 0.15);
}
.streamer-cell.blocked .letter {
  opacity: 0;
}
.streamer-cell.active {
  border-color: rgba(189, 163, 255, 0.75);
  box-shadow:
    0 0 0 3px rgba(189, 163, 255, 0.35),
    0 10px 24px rgba(123, 63, 163, 0.18);
  background: rgba(239, 229, 255, 0.98);
  transform: translateY(-2px);
}
.streamer-cell.filled {
  background: rgba(230, 247, 236, 0.98);
  color: #15513f;
  border-color: rgba(49, 194, 104, 0.45);
  box-shadow: 0 0 0 2px rgba(49, 194, 104, 0.22) inset;
}
.streamer-cell.filled .cell-number {
  color: rgba(33, 120, 75, 0.85);
}
@keyframes streamPop {
  0% {
    transform: scale(0.94);
  }
  50% {
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}
.streamer-cell.just-filled {
  animation: streamPop 0.45s ease;
}

.streamer-sidebar {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.streamer-clue-group,
.streamer-scoreboard {
  background: rgba(255, 255, 255, 0.98);
  border-radius: 18px;
  border: 1px solid rgba(189, 163, 255, 0.26);
  padding: 14px;
  box-shadow: 0 14px 30px rgba(123, 63, 163, 0.16);
}
.streamer-clue-header {
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.75rem;
  color: #6a4ca3;
  margin-bottom: 10px;
}
.streamer-clue-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 240px;
  overflow-y: auto;
  scrollbar-width: thin;
}
.streamer-clue-item {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 8px 10px;
  border-radius: 12px;
  border: 1px solid transparent;
  background: rgba(255, 255, 255, 0.75);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
  cursor: pointer;
  transition:
    background 0.18s ease,
    box-shadow 0.18s ease,
    transform 0.16s ease,
    border-color 0.18s ease;
}
.streamer-clue-item:hover {
  background: rgba(239, 229, 255, 0.85);
  transform: translateX(2px);
}
.streamer-clue-item.active {
  border-color: rgba(189, 163, 255, 0.6);
  box-shadow: 0 0 0 3px rgba(189, 163, 255, 0.35);
  background: rgba(239, 229, 255, 0.95);
}

/* Adjust crossword preview background for better logo visibility in light mode */
html[data-theme="light"] .crossword-preview {
  background: rgba(0, 0, 0, 0.1) !important; /* A subtle dark overlay for light mode */
}
.streamer-clue-item.solved {
  background: rgba(230, 247, 236, 0.95);
}
.streamer-clue-item .num {
  min-width: 2.6em;
  text-align: center;
  font-weight: 700;
  background: rgba(240, 230, 255, 0.95);
  border-radius: 999px;
  padding: 4px 0;
  color: #7b3fa3;
}
.streamer-clue-item .txt {
  flex: 1 1 auto;
}
.streamer-clue-item.solved .txt {
  text-decoration: line-through;
}
@keyframes streamListPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(49, 194, 104, 0.4);
  }
  80% {
    box-shadow: 0 0 0 10px rgba(49, 194, 104, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(49, 194, 104, 0);
  }
}
.streamer-clue-item.just-solved {
  animation: streamListPulse 0.7s ease;
}

.streamer-score-list {
  list-style: none;
  margin: 12px 0 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.streamer-score-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-radius: 12px;
  padding: 8px 12px;
  background: rgba(123, 63, 163, 0.08);
  color: #4f2f7a;
  font-weight: 600;
}
.streamer-score-list li .nick {
  flex: 1 1 auto;
}
.streamer-score-list li .pts {
  font-variant-numeric: tabular-nums;
}
.streamer-score-empty {
  background: rgba(0, 0, 0, 0.02) !important;
  color: #7a7a7a !important;
  font-weight: 500;
}

@media (max-width: 991.98px) {
  .streamer-sidebar {
    flex-direction: row;
    flex-wrap: wrap;
  }
  .streamer-clue-group,
  .streamer-scoreboard {
    flex: 1 1 280px;
  }
  .streamer-clue-list {
    max-height: 200px;
  }
  .streamer-board {
    padding: 18px;
  }
}
@media (max-width: 575.98px) {
  .streamer-board {
    padding: 14px;
  }
  .streamer-grid {
    gap: 4px;
  }
  .streamer-cell {
    border-radius: 8px;
    font-size: clamp(0.9rem, 5vw, 1.2rem);
  }
}

html[data-theme="dark"] .streamer-crossword-title {
  color: #ddcfff;
}
html[data-theme="dark"] .streamer-question {
  background: linear-gradient(
    145deg,
    rgba(28, 25, 41, 0.95),
    rgba(24, 24, 30, 0.95)
  );
  border-color: rgba(189, 163, 255, 0.25);
  color: #e6dcff;
}
html[data-theme="dark"] .streamer-question .text-muted {
  color: #b5accf !important;
}
html[data-theme="dark"] .streamer-next {
  background: rgba(92, 70, 0, 0.25);
  border-color: rgba(255, 193, 7, 0.45);
  color: #ffd966;
}
html[data-theme="dark"] .streamer-board {
  background:
    radial-gradient(
      900px 680px at 15% 0%,
      rgba(123, 63, 163, 0.3),
      rgba(0, 0, 0, 0) 60%
    ),
    radial-gradient(
      760px 520px at 85% 100%,
      rgba(255, 193, 7, 0.18),
      rgba(0, 0, 0, 0) 60%
    ),
    linear-gradient(135deg, rgba(18, 16, 24, 0.94), rgba(20, 20, 28, 0.94));
  border-color: rgba(189, 163, 255, 0.26);
  box-shadow: 0 24px 50px rgba(0, 0, 0, 0.45);
}
html[data-theme="dark"] .streamer-cell {
  background: rgba(33, 29, 45, 0.92);
  border-color: rgba(189, 163, 255, 0.25);
  color: #f4ecff;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
}
html[data-theme="dark"] .streamer-cell.blocked {
  background: rgba(20, 20, 24, 0.85);
  border-color: rgba(90, 90, 90, 0.4);
  box-shadow: inset 0 0 0 1px rgba(80, 80, 90, 0.45);
}
html[data-theme="dark"] .streamer-cell.active {
  background: rgba(61, 46, 85, 0.95);
  border-color: rgba(189, 163, 255, 0.55);
  box-shadow:
    0 0 0 3px rgba(189, 163, 255, 0.35),
    0 10px 24px rgba(0, 0, 0, 0.45);
}
html[data-theme="dark"] .streamer-cell.filled {
  background: rgba(25, 56, 42, 0.92);
  color: #b8f5d6;
  border-color: rgba(49, 194, 104, 0.45);
}
html[data-theme="dark"] .streamer-clue-group,
html[data-theme="dark"] .streamer-scoreboard {
  background: rgba(22, 22, 28, 0.95);
  border-color: rgba(189, 163, 255, 0.22);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5);
}
html[data-theme="dark"] .streamer-clue-header {
  color: #c9b8ff;
}
html[data-theme="dark"] .streamer-clue-item {
  background: rgba(32, 30, 40, 0.85);
  border-color: rgba(189, 163, 255, 0.14);
  color: #d9d3ef;
}
html[data-theme="dark"] .streamer-clue-item:hover {
  background: rgba(45, 40, 65, 0.9);
}
html[data-theme="dark"] .streamer-clue-item.active {
  background: rgba(59, 45, 85, 0.95);
  border-color: rgba(189, 163, 255, 0.4);
}
html[data-theme="dark"] .streamer-clue-item.solved {
  background: rgba(32, 56, 45, 0.95);
  border-color: rgba(49, 194, 104, 0.4);
  color: #c1f2d8;
}
html[data-theme="dark"] .streamer-clue-item .num {
  background: rgba(61, 46, 85, 0.85);
  color: #ddcfff;
}
html[data-theme="dark"] .streamer-score-list li {
  background: rgba(61, 46, 85, 0.45);
  color: #e5dcff;
}
html[data-theme="dark"] .streamer-score-empty {
  background: rgba(30, 30, 36, 0.8) !important;
  color: #9aa0af !important;
}

html[data-theme="dark"] .lemon-card .card-body {
  background: #1a1c22 !important;
  color: #e9e9ee !important;
}
html[data-theme="dark"] .card .card-body {
  background: #1a1c22 !important;
}

/* === Refined navigation palette to mirror the refreshed header === */
#menu {
  padding: 28px 18px 32px;
  border-radius: 0 28px 28px 0;
  background: linear-gradient(180deg, rgba(255, 247, 214, 0.96), rgba(255, 253, 243, 0.92));
  border-right: 1px solid rgba(212, 166, 10, 0.18);
  backdrop-filter: blur(8px);
}
#menu nav {
  display: flex;
  flex-direction: column;
  height: 100%;
}
#menu nav > ul {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 0;
  margin: 0;
}
#menu li {
  list-style: none;
}
#menu li > a,
#menu .submenu-toggle {
  border-radius: 12px;
  padding: 10px 14px;
  font-weight: 600;
  color: var(--ink);
  background: transparent;
  border: 0;
  transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
#menu li > a:hover,
#menu .submenu-toggle:hover {
  background: rgba(255, 255, 255, 0.85);
  transform: translateX(4px);
  box-shadow: 0 10px 20px rgba(212, 166, 10, 0.15);
}
#menu li.open > .submenu-toggle {
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 10px 22px rgba(212, 166, 10, 0.18);
}
#menu li .submenu {
  margin-top: 4px;
  padding-left: 16px;
  border-left: 2px solid rgba(212, 166, 10, 0.28);
  gap: 4px;
}
#menu li.open > .submenu {
  display: flex;
  flex-direction: column;
}
#menu li .submenu .menu-link {
  font-weight: 500;
  padding: 8px 12px;
}
html[data-theme="dark"] #menu {
  background: linear-gradient(180deg, rgba(32, 29, 20, 0.95), rgba(26, 22, 15, 0.92));
  border-right-color: rgba(250, 204, 21, 0.2);
  box-shadow: 2px 0 24px rgba(0, 0, 0, 0.35);
}
html[data-theme="dark"] #menu li > a,
html[data-theme="dark"] #menu .submenu-toggle {
  color: #f5f5f5;
}
html[data-theme="dark"] #menu li > a:hover,
html[data-theme="dark"] #menu .submenu-toggle:hover,
html[data-theme="dark"] #menu li.open > .submenu-toggle {
  background: rgba(250, 204, 21, 0.15);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.4);
}
html[data-theme="dark"] #menu li .submenu {
  border-left-color: rgba(250, 204, 21, 0.4);
}

@media (max-width: 991.98px) {
  #menu {
    border-radius: 24px;
    padding: 20px 16px 24px;
    margin: 12px;
    border-right: 0;
    box-shadow: 0 16px 30px rgba(212, 166, 10, 0.16);
  }
}

/* Admin stats: ensure language and category selects have consistent height */
#stats-filter-form select[name="languages"],
#stats-filter-form select[name="categories"] {
  min-height: 150px;
}
