/* ── Page layout ─────────────────────────────────────────────── */
body {
  background: #fff;
  color: #111;
}

/* Controls bar: one row across the top */
.sudoku-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  align-items: flex-end;
  padding: 12px 16px;
  background: #f8f8f8;
  border: 1px solid #ddd;
  border-radius: 6px;
  margin-bottom: 16px;
}

/* Text/image sub-panels must also be flex rows inside the controls bar */
#text-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  align-items: flex-end;
  width: 100%;
}

#image-controls:not(.d-none) {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  align-items: flex-end;
  width: 100%;
}

#shared-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  align-items: flex-end;
  width: 100%;
}

.sudoku-controls .ctrl-group {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.sudoku-controls .ctrl-group label {
  font-size: 0.73rem;
  font-weight: 600;
  color: #444;
  white-space: nowrap;
}

/* Highlighted text input */
#text {
  border: 2px solid #0d6efd !important;
  box-shadow: 0 0 0 3px rgba(13,110,253,.15);
  font-size: 1rem;
  min-width: 180px;
}

#text:focus {
  box-shadow: 0 0 0 4px rgba(13,110,253,.3);
  outline: none;
}

.sudoku-preview-area {
  /* no overflow so scrollbars never appear */
}

/* SVG board rendering */
.sudoku-svg {
  display: block;
  max-width: 100%;
  height: auto;
}


/* ── Cookie banner ───────────────────────────────────────────── */
.cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background: #222;
  color: #eee;
  padding: 14px 0;
  z-index: 9999;
  border-top: 2px solid #555;
  box-shadow: 0 -4px 12px rgba(0,0,0,.35);
}

/* Language Switcher */
.language-switcher-nav {
  display: flex;
  align-items: center;
  background-color: rgba(0, 0, 0, 0.05);
  padding: 3px 10px;
  border-radius: 20px;
}

.language-switcher-nav a {
  text-decoration: none;
  margin: 0 5px;
  opacity: 0.6;
  transition: opacity 0.2s;
}

.language-switcher-nav a:hover {
  opacity: 1;
}

.language-switcher-nav .active-lang {
  opacity: 1;
  pointer-events: none;
  border-bottom: 2px solid #0d6efd;
}

.flag-icon-small {
  width: 20px;
  height: auto;
  border-radius: 2px;
}
