.holiday-panel { padding: 22px; margin: 0 0 24px; border: 1px solid #d8e4ee; border-radius: 16px; background: #fff; }
.content:has(.holiday-panel) .schedule-panel { overflow-x: auto; }
.content:has(.holiday-panel) .header-actions { flex-wrap: wrap; max-width: 100%; }
.content:has(.holiday-panel) .header-actions .button { white-space: nowrap; }
@media (max-width: 1280px) {
  .content:has(.holiday-panel) .page-header { flex-direction: column; align-items: flex-start; }
}
.holiday-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; }
.holiday-head .eyebrow { margin: 0 0 5px; color: #087b68; }
.holiday-head h2 { margin: 0 0 7px; font-size: 22px; }
.holiday-head p:not(.eyebrow) { margin: 0; color: #667085; font-size: 13px; line-height: 1.7; }
.holiday-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.holiday-panel button:disabled, .holiday-modal button:disabled { opacity: .48; cursor: not-allowed; box-shadow: none; }
.holiday-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 20px; }
.holiday-stats > div { padding: 14px 16px; border: 1px solid #e6edf2; border-radius: 11px; background: #f8fbfc; }
.holiday-stats span { display: block; color: #667085; font-size: 12px; }
.holiday-stats strong { display: block; margin-top: 7px; color: #164a5e; font-size: 25px; }
.holiday-stats small { color: #667085; font-size: 12px; font-weight: 500; }
.holiday-help { color: #667085; line-height: 1.8; font-size: 12px; margin: 12px 0; }
.holiday-own-balances, .holiday-grant-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 15px; }
.holiday-balance-card, .holiday-grant-card { padding: 15px; border: 1px solid #dce6ed; border-radius: 11px; min-width: 0; }
.holiday-balance-card > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.holiday-balance-card strong, .holiday-grant-card strong { font-size: 14px; overflow-wrap: anywhere; }
.holiday-balance-card p, .holiday-grant-card p { margin: 8px 0; font-size: 12px; line-height: 1.7; color: #667085; }
.holiday-balance-card > span { font-size: 12px; color: #475467; line-height: 1.8; }
.holiday-balance-card.expired { background: #f8f9fb; }
.holiday-details { margin-top: 18px; border-top: 1px solid #e8eef3; padding-top: 16px; }
.holiday-details > summary { cursor: pointer; color: #175cd3; font-weight: 600; font-size: 13px; line-height: 1.8; }
.holiday-details > summary > span { margin-left: 10px; font-weight: 400; color: #667085; font-size: 12px; }
.holiday-subhead { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 20px 0 12px; }
.holiday-subhead h3 { font-size: 14px; margin: 0; }
.holiday-subhead > span { font-size: 12px; color: #667085; }
.holiday-table { min-width: 690px; font-size: 12px; }
.holiday-table th, .holiday-table td { padding: 12px 10px; }
.holiday-table td strong { font-size: 12px; overflow-wrap: anywhere; }
.holiday-reason { max-width: 240px; min-width: 110px; overflow-wrap: anywhere; line-height: 1.8; }
.holiday-reason small, .holiday-table td > .holiday-muted { display: block; font-size: 11px; line-height: 1.7; margin-top: 5px; }
.holiday-request-dates { display: flex; flex-wrap: wrap; gap: 5px; max-width: 255px; margin-top: 7px; }
.holiday-request-dates time { display: inline-block; padding: 3px 5px; border-radius: 5px; background: #f2f5f8; color: #475467; font-size: 11px; white-space: nowrap; }
.holiday-muted { color: #667085; font-size: 11px; line-height: 1.7; }
.holiday-badge { display: inline-block; border-radius: 6px; padding: 4px 7px; font-size: 11px; font-weight: 600; white-space: nowrap; }
.holiday-badge.pending, .holiday-calendar-badge.pending { color: #7a4a00; background: #fff3cb; border: 1px solid #f6d779; }
.holiday-badge.approved, .holiday-calendar-badge.approved { color: #05603a; background: #def8e9; border: 1px solid #a8e7c3; }
.holiday-badge.rejected { color: #b42318; background: #fff1ef; border: 1px solid #fecdca; }
.holiday-badge.neutral { color: #667085; background: #f2f4f7; border: 1px solid #e4e7ec; }
.holiday-calendar-badges { display: grid; gap: 5px; margin-top: 8px; }
.holiday-calendar-badge { display: block; padding: 5px 6px; border-radius: 6px; font-size: 10px; line-height: 1.5; overflow-wrap: anywhere; }
.holiday-empty { padding: 20px 10px; color: #667085; font-size: 13px; line-height: 1.8; }
.holiday-status { margin: 14px 0; padding: 12px 14px; border-radius: 10px; background: #f3f7fb; color: #475467; font-size: 13px; line-height: 1.8; }
.holiday-status p { margin: 5px 0 10px; }
.holiday-status.error { color: #b42318; background: #fff1ef; }
.holiday-status.warning { color: #854a0e; background: #fffaeb; border: 1px solid #f9dda1; }
.holiday-modal { width: min(820px, calc(100vw - 28px)); max-height: calc(100dvh - 28px); }
.holiday-modal [hidden] { display: none !important; }
.holiday-modal .modal-body { max-height: calc(100dvh - 225px); padding-bottom: 10px; }
.holiday-modal .modal-actions { border-top: 1px solid #e8eef3; }
.holiday-modal .field { margin-bottom: 16px; }
.holiday-modal .field label { display: block; margin-bottom: 7px; }
.holiday-modal .field input, .holiday-modal .field select, .holiday-modal .field textarea { max-width: 100%; }
.holiday-modal textarea { min-height: 78px; }
.holiday-intro { font-size: 13px; line-height: 1.9; color: #475467; padding: 13px 15px; border-radius: 10px; background: #f0f8f7; margin: 0 0 20px; }
.holiday-form-section { border: 1px solid #dfe7ed; border-radius: 12px; padding: 16px; margin-bottom: 18px; }
.holiday-form-section .holiday-subhead { margin-top: 0; }
.holiday-allocations { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.holiday-allocation { display: flex; align-items: center; gap: 7px; border: 1px solid #e3e9ef; border-radius: 9px; padding: 11px; min-width: 0; }
.holiday-allocation:has(input:checked) { border-color: #7fafe3; background: #f3f8ff; }
.holiday-allocation label { display: flex; gap: 9px; align-items: center; flex: 1; min-width: 0; cursor: pointer; }
.holiday-allocation label > input { width: 16px; height: 16px; flex: 0 0 auto; margin: 0; accent-color: #2563eb; }
.holiday-allocation label > span { display: grid; gap: 4px; min-width: 0; }
.holiday-allocation strong { font-size: 12px; overflow-wrap: anywhere; }
.holiday-allocation small { font-size: 11px; color: #667085; }
.holiday-allocation > input { width: 63px; padding: 8px 7px; font-size: 12px; }
.holiday-allocation > span { color: #667085; font-size: 12px; }
#holiday-batch-days { width: 65px; padding: 8px; font-size: 12px; }
#holiday-date-month { width: 150px; padding: 8px 9px; font-size: 12px; }
.holiday-date-legend { display: flex; flex-wrap: wrap; gap: 12px; font-size: 11px; color: #667085; margin: 8px 0 13px; }
.holiday-selected-legend { color: #175cd3; }
.holiday-picker-weekdays, .holiday-picker-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.holiday-picker-weekdays { margin-bottom: 7px; font-size: 11px; color: #667085; text-align: center; }
.holiday-picker-day { min-height: 61px; padding: 8px 4px; border: 1px solid #b7cbe5; border-radius: 8px; background: #f9fbff; color: #175cd3; cursor: pointer; }
.holiday-picker-day strong, .holiday-picker-day small { display: block; }
.holiday-picker-day strong { font-size: 14px; }
.holiday-picker-day small { margin-top: 5px; font-size: 10px; }
.holiday-picker-day.selected { color: #fff; background: #2563eb; border-color: #2563eb; }
.holiday-picker-day:disabled { background: #f3f4f6; border-color: #e5e7eb; color: #98a2b3; opacity: 1; }
.holiday-picker-day.selected:disabled { color: #fff; background: #2563eb; border-color: #2563eb; }
.holiday-chosen { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 15px; }
.holiday-chosen-date { background: #eff5ff; border: 1px solid #b9d0f5; border-radius: 6px; font-size: 11px; color: #175cd3; padding: 6px 8px; cursor: pointer; }
.holiday-request-summary { padding: 14px 15px; background: #f7f9fc; border: 1px solid #e0e7ef; border-radius: 10px; margin-bottom: 16px; font-size: 13px; overflow-wrap: anywhere; }
.holiday-request-summary p { margin: 8px 0 0; color: #475467; line-height: 1.8; }
@media (max-width: 1050px) {
  .holiday-head { flex-direction: column; }
  .holiday-table { min-width: 690px; }
}
@media (max-width: 760px) {
  .holiday-panel { padding: 17px; }
  .holiday-stats { gap: 8px; }
  .holiday-stats > div { padding: 11px; }
  .holiday-stats strong { font-size: 22px; }
  .holiday-own-balances, .holiday-grant-grid { grid-template-columns: 1fr; }
  .holiday-subhead { align-items: flex-start; flex-wrap: wrap; }
  .holiday-modal .modal-head, .holiday-modal .modal-body, .holiday-modal .modal-actions { padding-left: 16px; padding-right: 16px; }
  .holiday-allocations { grid-template-columns: 1fr; }
  .holiday-details > summary > span { display: block; margin-left: 0; }
}
@media (max-width: 470px) {
  .holiday-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .holiday-head h2 { font-size: 20px; }
  .holiday-head > .holiday-actions { width: 100%; }
  .holiday-head .button { font-size: 12px; padding: 9px 11px; }
  .holiday-form-section { padding: 12px; }
  .holiday-picker-grid, .holiday-picker-weekdays { gap: 4px; }
  .holiday-picker-day { padding: 7px 2px; min-height: 56px; }
  .holiday-picker-day small { font-size: 9px; }
  .holiday-modal .modal-head h2 { font-size: 18px; }
  .holiday-modal .modal-body { max-height: calc(100dvh - 218px); }
}
