/* ── Login page ──────────────────────────────────────────────────────────── */
.login-bg {
  background: linear-gradient(135deg, #0d6efd 0%, #6610f2 100%);
}

/* ── Schedule table ──────────────────────────────────────────────────────── */
.schedule-table {
  font-size: 0.82rem;
  min-width: 600px;
}
.schedule-table thead th {
  vertical-align: middle;
  white-space: nowrap;
}
.schedule-table td {
  vertical-align: middle;
  padding: 5px 6px;
}

/* Date column */
.date-col {
  min-width: 115px;
  white-space: nowrap;
}
.day-num {
  font-size: 0.95rem;
  font-weight: 700;
  margin-right: 5px;
}
.day-name {
  font-size: 0.72rem;
  color: #6c757d;
}

/* Employee column */
.emp-col {
  min-width: 110px;
}

/* Logged-in user's column – header */
thead th.own-col {
  background-color: #0d6efd !important;
  color: #fff !important;
  border-left: 3px solid #0a58ca !important;
  border-right: 3px solid #0a58ca !important;
  position: relative;
}
thead th.own-col::after {
  content: '\25BC';
  font-size: 0.55rem;
  position: absolute;
  bottom: 3px;
  left: 50%;
  transform: translateX(-50%);
  opacity: 0.6;
}

/* Logged-in user's column – data cells */
td.own-col {
  background-color: #eaf2ff !important;
  border-left: 3px solid #90bfff !important;
  border-right: 3px solid #90bfff !important;
}

/* Footer total row */
tfoot td.own-col {
  background-color: #d0e6ff !important;
  border-left: 3px solid #90bfff !important;
  border-right: 3px solid #90bfff !important;
  color: #0a58ca;
}

/* Shift cell states */
.shift-cell {
  min-width: 105px;
  transition: background-color 0.15s;
}
.cell-shift    { background-color: #d1ecf1 !important; }
.cell-approved { background-color: #f8d7da !important; }
.cell-pending  { background-color: #fff3cd !important; }
.cell-rejected { background-color: #e9ecef !important; }

/* Shift cell hover (admin) */
.cell-shift:hover,
.cell-pending:hover,
.cell-approved:hover,
.cell-rejected:hover,
.shift-cell[data-date]:hover {
  filter: brightness(0.93);
  cursor: pointer;
}

.shift-time  { font-weight: 700; letter-spacing: 0.02em; }
.shift-note  { font-size: 0.68rem; color: #6c757d; margin-top: 1px; }
.badge-off   { font-size: 0.72rem; font-weight: 700; }
.tiny        { font-size: 0.68rem; }

/* Scrollable schedule container (sticky header) */
.schedule-scroll {
  max-height: calc(100vh - 165px);
  overflow-y: auto;
  overflow-x: auto;
}
.schedule-scroll thead th {
  position: sticky;
  top: 0;
  z-index: 20;
}

/* Today row */
.today-row > td {
  box-shadow: inset 0 0 0 2px #0d6efd;
}
.today-badge {
  display: inline-block;
  font-size: 0.58rem;
  font-weight: 800;
  background: #0d6efd;
  color: #fff;
  padding: 1px 5px;
  border-radius: 3px;
  margin-left: 4px;
  vertical-align: middle;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* Preset buttons in modal */
.preset-btn {
  font-size: 0.75rem;
  padding: 2px 8px;
  line-height: 1.5;
}
.preset-btn.active {
  font-weight: 700;
}

/* Weekend rows */
.weekend-row td {
  background-color: #f6f6f6;
}

/* Holiday rows */
.holiday-row td {
  background-color: #fff0f0 !important;
}
.holiday-row.weekend-row td {
  background-color: #ffe4e4 !important;
}
.holiday-label {
  font-size: 0.64rem;
  color: #c0392b;
  font-weight: 600;
  margin-top: 2px;
  line-height: 1.2;
  white-space: normal;
}

/* Legend dots */
.legend-dot {
  display: inline-block;
  width: 12px; height: 12px;
  border-radius: 2px;
  margin-right: 3px;
  vertical-align: middle;
}
.legend-dot.shift        { background: #d1ecf1; border: 1px solid #aad4df; }
.legend-dot.off-approved { background: #f8d7da; border: 1px solid #e9b5bb; }
.legend-dot.off-pending  { background: #fff3cd; border: 1px solid #ffd966; }
.legend-dot.off-rejected { background: #e9ecef; border: 1px solid #ced4da; }
.legend-dot.holiday      { background: #fff0f0; border: 1px solid #e9b5bb; }

/* Sticky header */
.sticky-top { position: sticky; top: 0; z-index: 10; }

/* ── Print ───────────────────────────────────────────────────────────────── */
@media print {
  .no-print, nav, .alert, .modal { display: none !important; }
  .container-fluid { padding: 0 !important; }
  .schedule-table  { font-size: 0.75rem; }
  body { background: white; }
  .cell-shift    { background-color: #d1ecf1 !important; -webkit-print-color-adjust: exact; }
  .cell-approved { background-color: #f8d7da !important; -webkit-print-color-adjust: exact; }
  .cell-pending  { background-color: #fff3cd !important; -webkit-print-color-adjust: exact; }
  .weekend-row td { background-color: #f0f0f0 !important; -webkit-print-color-adjust: exact; }
  .holiday-row td { background-color: #ffe4e4 !important; -webkit-print-color-adjust: exact; }
}
