/*
 * Global form focus — loaded after DaisyUI (see partials/daisyui_styles.html).
 * Thicker, darker border only; no ring or offset outline.
 */

.input.input-bordered,
.select.select-bordered,
.textarea.textarea-bordered {
  border-color: #d1d5db; /* gray-300 */
  border-width: 1px;
}

/* Taller box only. DaisyUI .textarea sets line-height: 2, which stretches rows. */
textarea.textarea.contact-address-input {
  height: auto !important;
  min-height: 7.5rem !important;
  line-height: 1.25rem !important;
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}

/* Keep a 1px border on focus. A 1px→2px border shrinks the content box
   (border-box) and shifts the text. Extra thickness is an inset stroke. */
.input.input-bordered:focus,
.input.input-bordered:focus-within,
.select.select-bordered:focus,
.textarea.textarea-bordered:focus {
  outline: none !important;
  outline-offset: 0 !important;
  box-shadow: inset 0 0 0 1px #9ca3af !important;
  --tw-ring-shadow: 0 0 #0000 !important;
  --tw-ring-offset-shadow: 0 0 #0000 !important;
  border-width: 1px !important;
  border-color: #9ca3af !important; /* gray-400 */
}

/* Tailwind preflight adds a ring on native controls; strip it for DaisyUI fields. */
input.input:focus,
select.select:focus,
textarea.textarea:focus {
  outline: none !important;
  --tw-ring-shadow: 0 0 #0000 !important;
  --tw-ring-offset-shadow: 0 0 #0000 !important;
}

.cell-detail-panel:focus {
  outline: none !important;
  box-shadow: none !important;
  border-width: 2px !important;
  border-color: #9ca3af !important; /* gray-400 */
}

/* Loaded after DaisyUI — reusable action colours (see frontend-taste action buttons).
   White cancel also uses timetable-modal-btn-cancel (cancel-button-border skill). */
.btn.btn-ghost.timetable-btn-white,
.btn.timetable-btn-white,
.timetable-btn-white,
.btn.btn-ghost.timetable-modal-btn-cancel,
.btn.timetable-modal-btn-cancel,
.timetable-modal-btn-cancel,
.timetable-app-modal .timetable-modal-btn-cancel,
#timetableAppConfirmModalCancel,
#timetableAppPromptModalCancel {
  background-color: #fff !important;
  color: rgb(17 24 39) !important;
  border-width: 1px !important;
  border-style: solid !important;
  border-color: #000 !important;
  box-shadow: none !important;
}

.btn.btn-ghost.timetable-btn-white:hover,
.btn.btn-ghost.timetable-btn-white:focus-visible,
.btn.timetable-btn-white:hover,
.btn.timetable-btn-white:focus-visible,
.timetable-btn-white:hover,
.timetable-btn-white:focus-visible,
.btn.btn-ghost.timetable-modal-btn-cancel:hover,
.btn.btn-ghost.timetable-modal-btn-cancel:focus-visible,
.btn.timetable-modal-btn-cancel:hover,
.btn.timetable-modal-btn-cancel:focus-visible,
.timetable-modal-btn-cancel:hover,
.timetable-modal-btn-cancel:focus-visible,
.timetable-app-modal .timetable-modal-btn-cancel:hover,
.timetable-app-modal .timetable-modal-btn-cancel:focus-visible,
#timetableAppConfirmModalCancel:hover,
#timetableAppConfirmModalCancel:focus-visible,
#timetableAppPromptModalCancel:hover,
#timetableAppPromptModalCancel:focus-visible {
  background-color: rgb(249 250 251) !important;
  color: rgb(17 24 39) !important;
  border-color: #000 !important;
}

.btn.timetable-btn-blue,
.timetable-btn-blue,
.timetable-modal-btn-blue,
.timetable-app-modal .timetable-modal-btn-blue {
  background-color: #2563eb !important;
  color: #fff !important;
  border: 1px solid #000 !important;
  box-shadow: none !important;
}
.btn.timetable-btn-blue:hover,
.btn.timetable-btn-blue:focus-visible,
.timetable-btn-blue:hover,
.timetable-btn-blue:focus-visible,
.timetable-modal-btn-blue:hover,
.timetable-modal-btn-blue:focus-visible,
.timetable-app-modal .timetable-modal-btn-blue:hover,
.timetable-app-modal .timetable-modal-btn-blue:focus-visible {
  background-color: #1d4ed8 !important;
  color: #fff !important;
}

.btn.timetable-btn-green,
.timetable-btn-green,
.timetable-modal-btn-green,
.timetable-app-modal .timetable-modal-btn-green {
  background-color: #16a34a !important;
  color: #fff !important;
  border: 1px solid #000 !important;
  box-shadow: none !important;
}
.btn.timetable-btn-green:hover,
.btn.timetable-btn-green:focus-visible,
.timetable-btn-green:hover,
.timetable-btn-green:focus-visible,
.timetable-modal-btn-green:hover,
.timetable-modal-btn-green:focus-visible,
.timetable-app-modal .timetable-modal-btn-green:hover,
.timetable-app-modal .timetable-modal-btn-green:focus-visible {
  background-color: #15803d !important;
  color: #fff !important;
}

.btn.timetable-btn-red,
.timetable-btn-red,
.timetable-modal-btn-red {
  background-color: #dc2626 !important;
  color: #fff !important;
  border: 1px solid #000 !important;
  box-shadow: none !important;
}
.btn.timetable-btn-red:hover,
.btn.timetable-btn-red:focus-visible,
.timetable-btn-red:hover,
.timetable-btn-red:focus-visible,
.timetable-modal-btn-red:hover,
.timetable-modal-btn-red:focus-visible {
  background-color: #b91c1c !important;
  color: #fff !important;
}

.btn.timetable-btn-red.timetable-btn-red-plain,
.timetable-btn-red.timetable-btn-red-plain {
  border-color: #dc2626 !important;
}
.btn.timetable-btn-red.timetable-btn-red-plain:hover,
.btn.timetable-btn-red.timetable-btn-red-plain:focus-visible,
.timetable-btn-red.timetable-btn-red-plain:hover,
.timetable-btn-red.timetable-btn-red-plain:focus-visible {
  border-color: #b91c1c !important;
}

.btn.timetable-btn-gold,
.timetable-btn-gold,
.timetable-modal-btn-gold {
  background-color: #fbbf24 !important;
  color: rgb(17 24 39) !important;
  border: 1px solid #000 !important;
  box-shadow: none !important;
}
.btn.timetable-btn-gold:hover,
.btn.timetable-btn-gold:focus-visible,
.timetable-btn-gold:hover,
.timetable-btn-gold:focus-visible,
.timetable-modal-btn-gold:hover,
.timetable-modal-btn-gold:focus-visible {
  background-color: #f59e0b !important;
  color: rgb(17 24 39) !important;
}

/* Default action height — DaisyUI btn-sm / Go to Drive (2rem); beat CDN after timetable.css. */
.btn.timetable-btn-compact,
.btn.btn-sm.timetable-btn-compact,
.timetable-btn-compact {
  height: 2rem !important;
  min-height: 2rem !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  line-height: 1.2;
}

/* DaisyUI CDN follows timetable.css and strips chip fills. Keep fills here, unscoped.
   Do not re-scope .timetable-dept-chip colours to a page [data-*] wrapper. */
.timetable-dept-chip[data-dept-label="academic"] {
  color: var(--timetable-card-blue-accent, hsl(213 95% 38%)) !important;
  background: var(--timetable-card-blue-bg, #bfdbfe) !important;
}
.timetable-dept-chip[data-dept-label="efl"] {
  color: var(--timetable-dept-chip-efl-color, hsl(43 82% 30%)) !important;
  background: var(--timetable-card-efl-bg, #fef3c7) !important;
}
.timetable-dept-chip[data-dept-label="activities"] {
  color: hsl(163 35% 22%) !important;
  background: var(--timetable-card-activity-bg, hsl(163 32% 86%)) !important;
}

#timetableBulkSetRoomsCancelBtn.hidden {
  display: none !important;
}
#timetableBulkSetRoomsModal .modal-action.hidden {
  display: none !important;
}
#timetableBulkSetRoomsModal [data-bulk-set-rooms-retry].hidden,
#timetableBulkSetRoomsModal [data-bulk-set-rooms-done-close].hidden {
  display: none !important;
}

#timetableBulkSetRoomsModal.modal,
#timetableBulkSetRoomsModal .modal-box {
  overflow: visible !important;
}
#timetableBulkSetRoomsModal [data-bulk-set-rooms-room-picker] {
  position: relative;
  z-index: 50;
}
#timetableBulkSetRoomsModal [data-bulk-set-rooms-room-wrap] {
  position: relative;
  z-index: 50;
}
#timetableBulkSetRoomsModal [data-bulk-set-rooms-room-wrap] .fk-dropdown {
  z-index: 80;
}
#timetableBulkSetRoomsModal [data-bulk-set-rooms-preview-table] {
  position: relative;
  z-index: 0;
}
#timetableBulkSetRoomsModal .modal-action {
  position: relative;
  z-index: 0;
}
#timetableBulkSetRoomsModal.is-wide .modal-box,
#timetableBulkSetRoomsModal.is-progress .modal-box {
  overflow: hidden !important;
  max-width: min(72rem, 96vw) !important;
  width: 96vw;
  height: 90vh;
  max-height: 90vh;
}
#timetableBulkSetRoomsModal.is-wide th,
#timetableBulkSetRoomsModal.is-wide td,
#timetableBulkSetRoomsModal.is-progress th,
#timetableBulkSetRoomsModal.is-progress td {
  text-align: center !important;
}

/* Page number field: wide enough for the current max page (--page-digits). */
/* Checkbox + caption: DaisyUI .label is full-width + space-between, which
   pushes the text to the far edge of a wide field. Load after DaisyUI. */
.timetable-checkbox-row {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0.5rem;
  width: auto !important;
  max-width: 100%;
  padding-top: 0;
  padding-bottom: 0;
  cursor: pointer;
}

.page-num-input,
.dt-pager-input,
.activities-page-input,
.payroll-page-input,
.att-page-input,
.dbtable-page-input {
  width: calc(var(--page-digits, 1) * 1ch + 2ch + 1.15rem);
  min-width: unset;
  padding-left: 0.4rem;
  padding-right: 0.4rem;
}
