@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap');:root {  --font-main: 'Nunito', sans-serif;  --radius-sm: 8px;  --radius-md: 12px;  --radius-lg: 16px;  --shadow-sm: 0 2px 8px rgba(0,0,0,0.06);  --shadow-md: 0 4px 20px rgba(0,0,0,0.08);  --shadow-lg: 0 8px 30px rgba(0,0,0,0.12);  --transition-fast: 0.15s ease;}[data-theme="dark"] {  --bg-page: #0F1115;  --bg-card: rgba(255,255,255,0.04);  --bg-card-solid: #181A20;  --bg-input: rgba(255,255,255,0.06);  --bg-hover: rgba(255,255,255,0.08);  --text-main: #F5F5F5;  --text-muted: #8B949E;  --border-color: rgba(255,255,255,0.08);  --navbar-bg: rgba(15,17,21,0.85);  --table-header-bg: rgba(255,255,255,0.04);  --table-row-hover: rgba(255,255,255,0.06);}[data-theme="light"] {  --bg-page: #F5F5F5;  --bg-card: #FFFFFF;  --bg-card-solid: #FFFFFF;  --bg-input: #FFFFFF;  --bg-hover: rgba(43,125,221,0.06);  --text-main: #212529;  --text-muted: #6C757D;  --border-color: #E5E7EB;  --navbar-bg: rgba(255,255,255,0.85);  --table-header-bg: #F8F9FA;  --table-row-hover: rgba(43,125,221,0.04);}/* Select2 dark theme matching site */.select2-container--default .select2-selection--single {  background-color: var(--bg-input);  border: 1px solid var(--border-color);  border-radius: var(--radius-sm);  height: 38px;  color: var(--text-main);}.select2-container--default .select2-selection--single .select2-selection__rendered {  color: var(--text-main);  line-height: 36px;  padding-left: 12px;  padding-right: 28px;}.select2-container--default .select2-selection--single .select2-selection__arrow {  height: 36px;  right: 6px;}.select2-container--default .select2-selection--single .select2-selection__arrow b {  border-color: var(--text-muted) transparent transparent transparent;}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {  border-color: transparent transparent var(--text-muted) transparent;}.select2-container--default .select2-selection--single .select2-selection__placeholder {  color: var(--text-muted);}.select2-dropdown {  background-color: var(--bg-card-solid);  border: 1px solid var(--border-color);  border-radius: var(--radius-sm);  box-shadow: var(--shadow-md);  color: var(--text-main);}.select2-container--default .select2-results__option {  color: var(--text-main);  padding: 8px 12px;}.select2-container--default .select2-results__option--highlighted[aria-selected] {  background-color: var(--bg-hover);  color: var(--text-main);}.select2-container--default .select2-results__option[aria-selected=true] {  background-color: rgba(43, 125, 221, 0.2);  color: var(--text-main);}.select2-container--default .select2-search--dropdown .select2-search__field {  background-color: var(--bg-input) !important;  border: 1px solid var(--border-color) !important;  border-radius: var(--radius-sm) !important;  color: var(--text-main) !important;  padding: 6px 10px !important;  outline: none !important;}.select2-container--default .select2-search--dropdown .select2-search__field:focus {  border-color: #2B7DDD !important;  box-shadow: 0 0 0 2px rgba(43, 125, 221, 0.25) !important;}.select2-container--default .select2-results__message {  color: var(--text-muted);}.select2-container .select2-selection--single:focus,.select2-container.select2-container--focus .select2-selection--single {  border-color: #2B7DDD !important;  box-shadow: 0 0 0 2px rgba(43, 125, 221, 0.25) !important;}/* Room list grouped by building */.room-building-header {  font-weight: 700;  font-size: 0.85rem;  color: var(--text-muted);  text-transform: uppercase;  letter-spacing: 0.03em;  padding: 8px 12px;  background: var(--bg-hover);  border-radius: var(--radius-sm);  margin: 8px 0 4px;}.room-card,.teacher-card,.lesson-card {  background: var(--bg-input);  border: 1px solid var(--border-color);  border-radius: var(--radius-sm);  color: var(--text-main);  margin-bottom: 6px;  transition: background var(--transition-fast), border-color var(--transition-fast);  text-align: left;}.room-card:hover,.room-card:focus,.teacher-card:hover,.teacher-card:focus,.lesson-card:hover,.lesson-card:focus {  background: var(--bg-hover);  border-color: #2B7DDD;}.room-card.active,.teacher-card.active,.lesson-card.active {  border-color: #2B7DDD;  box-shadow: inset 0 0 0 2px #2B7DDD;}* {  transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);}html, body {  font-family: var(--font-main);  background-color: var(--bg-page) !important;  color: var(--text-main) !important;  overflow-x: hidden;}a {  color: #2B7DDD;  text-decoration: none;}a:hover {  color: #1E6BC7;}/* Navbar */.navbar-kpk {  background: var(--navbar-bg);  backdrop-filter: blur(12px);  -webkit-backdrop-filter: blur(12px);  border-bottom: 1px solid var(--border-color);  padding: 0.75rem 1.5rem;  position: sticky;  top: 0;  z-index: 1030;}.navbar-brand-kpk {  font-weight: 700;  font-size: 1.5rem;  background: linear-gradient(135deg, #2B7DDD 0%, #24B771 100%);  -webkit-background-clip: text;  -webkit-text-fill-color: transparent;  background-clip: text;}.nav-link-kpk {  color: var(--text-muted);  font-weight: 600;  padding: 0.5rem 1rem;  border-radius: var(--radius-md);  display: flex;  align-items: center;  gap: 0.5rem;}.nav-link-kpk:hover,.nav-link-kpk.active {  color: #2B7DDD;  background: rgba(43,125,221,0.10);}/* Glass effect utility */.glass {  background: var(--bg-card);  backdrop-filter: blur(12px);  -webkit-backdrop-filter: blur(12px);  border: 1px solid var(--border-color);}/* Cards */.card-kpk,.card-kpk .card {  background: var(--bg-card) !important;  border: 1px solid var(--border-color);  border-radius: var(--radius-lg);  box-shadow: var(--shadow-md);  overflow: hidden;  color: var(--text-main);  backdrop-filter: blur(12px);  -webkit-backdrop-filter: blur(12px);}.card-kpk .card-header {  background: transparent !important;  border-bottom: 1px solid var(--border-color);  padding: 1.25rem 1.5rem;  font-weight: 700;  color: var(--text-main);}.card-kpk .card-body {  padding: 1.5rem;  background: transparent !important;}/* Buttons */.btn-kpk-primary {  background: linear-gradient(135deg, #2B7DDD 0%, #1E6BC7 100%);  color: #fff;  border: none;  border-radius: var(--radius-md);  font-weight: 600;  padding: 0.5rem 1.25rem;  box-shadow: 0 4px 14px rgba(43,125,221,0.35);}.btn-kpk-primary:hover {  transform: translateY(-1px);  box-shadow: 0 6px 20px rgba(43,125,221,0.45);  color: #fff;}.btn-kpk-success {  background: #24B771;  color: #fff;  border: none;  border-radius: var(--radius-md);  font-weight: 600;}.btn-kpk-success:hover {  background: #1c9459;  color: #fff;}.btn-kpk-danger {  background: #FF2B2B;  color: #fff;  border: none;  border-radius: var(--radius-md);  font-weight: 600;}.btn-kpk-danger:hover {  background: #d62020;  color: #fff;}.btn-kpk-outline {  background: transparent;  color: var(--text-main);  border: 1px solid var(--border-color);  border-radius: var(--radius-md);  font-weight: 600;}.btn-kpk-outline:hover {  background: var(--bg-hover);  color: #2B7DDD;  border-color: #2B7DDD;}/* Tables */.table-kpk {  color: var(--text-main);  margin-bottom: 0;}.table-kpk thead th {  background: var(--table-header-bg);  color: var(--text-muted);  font-weight: 700;  text-transform: uppercase;  font-size: 0.75rem;  letter-spacing: 0.05em;  border-bottom: 1px solid var(--border-color);  padding: 1rem 1.25rem;}.table-kpk tbody td {  padding: 1rem 1.25rem;  border-bottom: 1px solid var(--border-color);  vertical-align: middle;}.table-kpk tbody tr:hover td {  background: var(--table-row-hover);}.table-kpk-header {  background: var(--table-header-bg);  color: var(--text-muted);}.table-kpk-header th,.table-kpk-header td {  background: var(--table-header-bg) !important;  color: var(--text-muted) !important;  border-bottom: 1px solid var(--border-color);}/* Forms */.form-control, .form-select,.card-kpk .form-control, .card-kpk .form-select,.login-card-inner .form-control {  background: var(--bg-input) !important;  color: var(--text-main) !important;  border: 1px solid var(--border-color);  border-radius: var(--radius-md);}.form-control:focus, .form-select:focus,.card-kpk .form-control:focus, .card-kpk .form-select:focus,.login-card-inner .form-control:focus {  background: var(--bg-input) !important;  color: var(--text-main) !important;  border-color: #2B7DDD;  box-shadow: 0 0 0 0.2rem rgba(43,125,221,0.25);}.form-control::placeholder,.login-card-inner .form-control::placeholder {  color: var(--text-muted);}.form-label, .form-check-label,.login-card-inner .form-label {  color: var(--text-main);}.form-select option,.login-card-inner .form-select option {  background: var(--bg-card-solid);  color: var(--text-main);}/* Badges */.badge-kpk {  border-radius: 50rem;  padding: 0.4em 0.8em;  font-weight: 600;  font-size: 0.75rem;}.badge-kpk-primary { background: rgba(43,125,221,0.15); color: #2B7DDD; }.badge-kpk-success { background: rgba(36,183,113,0.15); color: #24B771; }.badge-kpk-danger { background: rgba(255,43,43,0.15); color: #FF2B2B; }.badge-kpk-warning { background: rgba(255,193,7,0.15); color: #FFC107; }/* Theme toggle */.theme-toggle {  background: transparent;  border: 1px solid var(--border-color);  color: var(--text-main);  border-radius: var(--radius-md);  padding: 0.4rem 0.75rem;  cursor: pointer;}.theme-toggle:hover {  background: var(--bg-hover);}/* Page title */.page-title {  font-weight: 700;  margin-bottom: 1.5rem;  color: var(--text-main);}/* Login */.login-card {  max-width: 420px;  margin: 5rem auto;  padding: 2px;  border-radius: var(--radius-lg);  background: linear-gradient(135deg, #2B7DDD 0%, #24B771 100%);}.login-card-inner {  background: var(--bg-card-solid);  border-radius: calc(var(--radius-lg) - 2px);  padding: 2.5rem;}/* Alerts */.alert {  border-radius: var(--radius-md);  border: none;}.alert-success { background: rgba(36,183,113,0.12); color: #24B771; }.alert-danger { background: rgba(255,43,43,0.12); color: #FF2B2B; }.alert-warning { background: rgba(255,193,7,0.12); color: #FFC107; }.alert-info { background: rgba(43,125,221,0.12); color: #2B7DDD; }/* Override Bootstrap defaults */.navbar-toggler {  border-color: var(--border-color);}.navbar-toggler-icon {  filter: invert(1);}[data-theme="light"] .navbar-toggler-icon {  filter: none;}/* Force Bootstrap components to use theme */.container-fluid {  background: transparent !important;}p, span, small, label, th, td, h1, h2, h3, h4, h5, h6,.list-group-item, .dropdown-menu, .dropdown-item {  color: var(--text-main);}.text-muted {  color: var(--text-muted) !important;}.border-bottom, .border-top, .border-start, .border-end, .border {  border-color: var(--border-color) !important;}.modal-content {  background: var(--bg-card-solid);  color: var(--text-main);  border: 1px solid var(--border-color);}.list-group-item {  background: transparent;  border-color: var(--border-color);}/* Board grid wrapper */.board-grid-wrapper {  overflow: auto;  transform-origin: top left;  flex: 1 1 auto;  min-height: 0;}.board-grid {  display: inline-grid;  grid-template-columns: 48px 32px repeat(var(--board-cols, 1), minmax(180px, 1fr));  grid-auto-rows: minmax(80px, auto);  min-width: max-content;  gap: 0;  border: 1px solid var(--border-color);  border-radius: var(--radius-md);  background: var(--bg-card);}.board-grid > * {  border-right: 1px solid var(--border-color);  border-bottom: 1px solid var(--border-color);}.board-corner {  grid-column: 1 / 3;  grid-row: 1;  display: flex;  align-items: center;  justify-content: center;  font-weight: 700;  font-size: 0.7rem;  text-align: center;  background: var(--table-header-bg);  color: var(--text-muted);  position: sticky;  top: 0;  left: 0;  z-index: 4;  min-height: 48px;}.board-col-header {  grid-row: 1;  display: flex;  align-items: center;  justify-content: center;  padding: 0.5rem;  font-weight: 700;  font-size: 0.75rem;  text-align: center;  background: var(--table-header-bg);  color: var(--text-muted);  position: sticky;  top: 0;  z-index: 3;  min-height: 48px;  word-break: break-word;  overflow-wrap: anywhere;  hyphens: auto;}.board-day-label {  grid-column: 1 / 2;  display: flex;  align-items: center;  justify-content: center;  background: var(--table-header-bg);  color: var(--text-muted);  position: sticky;  left: 0;  z-index: 2;  writing-mode: vertical-rl;  transform: rotate(180deg);  font-weight: 700;  font-size: 0.75rem;  text-align: center;  align-self: stretch;}.board-day-label .day-label-text {  display: block;}.board-pair-label {  grid-column: 2 / 3;  display: flex;  align-items: center;  justify-content: center;  background: var(--bg-card-solid);  color: var(--text-muted);  font-weight: 600;  font-size: 0.8rem;  position: sticky;  left: 48px;  z-index: 2;  align-self: stretch;}.board-pair-label .pair-label-text {  display: block;}.board-cell {  display: flex;  flex-direction: column;  min-height: 80px;  padding: 4px !important;  vertical-align: top;  position: relative;  transition: background-color var(--transition-fast);}.board-cell.forbidden {  background-color: rgba(255,43,43,0.15) !important;}.board-cell.preferred {  background-color: rgba(255,193,7,0.15) !important;}.board-cell.busy {  background-color: rgba(255,43,43,0.15) !important;}.board-cell.drag-over {  background-color: rgba(36,183,113,0.2) !important;}.board-cell.drag-forbidden {  background-color: rgba(130,130,130,0.25) !important;}.board-cell.split-cell {  display: grid;  gap: 2px;  padding: 2px !important;}.board-cell.split-cell > .chess-slot {  margin-bottom: 0 !important;  min-width: 0;}/* Placement mode inside main board */.board-col-header.placement-primary {  color: var(--text-main);  background: rgba(43, 125, 221, 0.18);}.board-cell.placement-primary-cell {  box-shadow: inset 0 0 0 2px rgba(43, 125, 221, 0.35);}/* Placement assistant grid */.placement-modal .modal-body {  max-height: 70vh;  overflow: auto;}.placement-grid {  display: inline-grid;  grid-template-columns: 48px 32px repeat(var(--placement-cols, 2), minmax(140px, 1fr));  grid-auto-rows: minmax(64px, auto);  min-width: max-content;  gap: 0;  border: 1px solid var(--border-color);  border-radius: var(--radius-md);  background: var(--bg-card);  overflow: hidden;}.placement-grid > * {  border-right: 1px solid var(--border-color);  border-bottom: 1px solid var(--border-color);}.placement-grid .placement-corner {  grid-column: 1 / 3;  grid-row: 1;  display: flex;  align-items: center;  justify-content: center;  font-weight: 700;  font-size: 0.7rem;  text-align: center;  background: var(--table-header-bg);  color: var(--text-muted);  min-height: 40px;}.placement-grid .placement-col-header {  grid-row: 1;  display: flex;  align-items: center;  justify-content: center;  padding: 0.4rem;  font-weight: 700;  font-size: 0.75rem;  text-align: center;  background: var(--table-header-bg);  color: var(--text-muted);  min-height: 40px;}.placement-grid .placement-col-header.primary {  color: var(--text-main);  background: rgba(43, 125, 221, 0.12);}.placement-grid .placement-day-label {  grid-column: 1 / 2;  display: flex;  align-items: center;  justify-content: center;  background: var(--table-header-bg);  color: var(--text-muted);  writing-mode: vertical-rl;  transform: rotate(180deg);  font-weight: 700;  font-size: 0.75rem;  text-align: center;  align-self: stretch;}.placement-grid .placement-pair-label {  grid-column: 2 / 3;  display: flex;  align-items: center;  justify-content: center;  background: var(--bg-card-solid);  color: var(--text-muted);  font-weight: 600;  font-size: 0.8rem;  align-self: stretch;}.placement-grid .placement-cell {  display: flex;  align-items: center;  justify-content: center;  min-height: 64px;  padding: 4px !important;  position: relative;  transition: background-color var(--transition-fast);  cursor: pointer;}.placement-grid .placement-cell:hover {  background: var(--bg-hover);}.placement-grid .placement-cell.free {  background-color: rgba(36, 183, 113, 0.12);}.placement-grid .placement-cell.free:hover {  background-color: rgba(36, 183, 113, 0.22);}.placement-grid .placement-cell.busy {  background-color: rgba(255, 43, 43, 0.12);  cursor: not-allowed;}.placement-grid .placement-cell .cell-status-icon {  font-size: 1.1rem;  line-height: 1;}/* Fixed undistributed panel at bottom */.board-area {  padding-bottom: 360px;}.undistributed-panel-fixed {  position: fixed;  bottom: 0;  left: 0;  right: 0;  height: 340px;  z-index: 1020;  padding: 0 1rem 0.5rem 1rem;  background: var(--bg-page);}.undistributed-panel-fixed .card {  border-bottom-left-radius: 0;  border-bottom-right-radius: 0;}.undistributed-panel-fixed .card-body {  padding-bottom: 0.5rem;}.undistributed-panel-fixed .undistributed-list-wrapper {  overflow-y: auto;  max-height: 240px;}.board-tab-content {  padding-bottom: 0;}/* Legacy table styles preserved */.chess-table {  font-size: 0.8rem;  table-layout: fixed;}.chess-table thead th, .chess-table thead td {
  background: var(--table-header-bg, rgba(255,255,255,0.05));
  font-weight: 600;
  border-bottom: 1px solid var(--border-color, #555);
}.chess-cell {  min-height: 80px;  padding: 4px !important;}.chess-slot {  cursor: grab;  font-size: 0.75rem;}.chess-slot:active {  cursor: grabbing;}.chess-slot-changed {  background-color: #FFF9C4 !important;}.availability-table {  border-collapse: separate;  border-spacing: 0;}.availability-table th,.availability-table td {  text-align: center;  vertical-align: middle;  border: 1px solid var(--border-color, #555) !important;}.availability-table thead th {  background: var(--table-header-bg, rgba(255,255,255,0.05));  font-weight: 600;}.availability-cell {  cursor: pointer;  min-width: 80px;  height: 48px;  font-size: 0.75rem;  font-weight: 600;  user-select: none;  transition: background-color 0.15s;}.availability-cell:hover {  filter: brightness(1.1);}.avail-not-allowed {  background-color: rgba(255, 43, 43, 0.25) !important;  color: #FF6B6B;}.avail-preferred {  background-color: rgba(36, 183, 113, 0.25) !important;  color: #4ADE80;}.avail-busy {  background-color: rgba(255, 193, 7, 0.3) !important;  color: #FCD34D;}.avail-reserved {  background-color: rgba(130, 130, 130, 0.25) !important;  color: #A3A3A3;}.linked-slot-group {  border: 2px solid var(--border-color);  border-radius: var(--radius-sm);  background: var(--bg-hover);  padding: 4px;  display: flex;  flex-direction: column;  gap: 4px;  height: 100%;}.drop-zone.drag-over {  background-color: rgba(36,183,113,0.2) !important;}.undistributed-item {  cursor: grab;}.undistributed-item:active {  cursor: grabbing;}.undistributed-item.dragging {  opacity: 0.6;}.chess-cell.forbidden {  background-color: rgba(255,43,43,0.15) !important;}.chess-cell.preferred {  background-color: rgba(255,193,7,0.15) !important;}.chess-cell.busy {  background-color: rgba(255,43,43,0.15) !important;}.chess-cell.drag-over {  background-color: rgba(36,183,113,0.2) !important;}.btn-close-sm {  width: 0.4em;  height: 0.4em;  padding: 0.2em;  font-size: 0.5rem;}