.seasonal-schedules { display: grid; gap: 20px; padding: 20px; min-width: 0; color: var(--nbi-text, #e8eaf0); }
.seasonal-heading, .seasonal-subheading { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 14px; }
.seasonal-heading h2 { margin: 0 0 7px; font-size: 21px; }
.seasonal-heading p { margin: 0; color: var(--nbi-muted, #98a1b4); line-height: 1.6; max-width: 70ch; }
.seasonal-local { white-space: nowrap; font-size: 10px; letter-spacing: .07em; border: 1px solid var(--nbi-border, #323b4c); padding: 6px 9px; border-radius: 4px; }
.seasonal-section { min-width: 0; border-top: 1px solid var(--nbi-border, #323b4c); padding-top: 18px; }
.seasonal-section h3, .seasonal-rule-editor h3, .seasonal-impact h3 { font-size: 14px; font-weight: 600; margin: 0 0 9px; }
.seasonal-subheading > div { min-width: 0; flex: 1 1 260px; }
.seasonal-subheading p { margin: 0 0 10px; line-height: 1.65; }
.seasonal-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.seasonal-actions button, .seasonal-subheading > button { min-height: 42px; }
.seasonal-checkbox { display: flex; align-items: center; gap: 8px; font-size: 12px; line-height: 1.6; }
.seasonal-checkbox input, .seasonal-weekdays input { width: 16px; height: 16px; min-height: 0; flex-shrink: 0; accent-color: #9a6ac5; }
.seasonal-template-list, .seasonal-history, .seasonal-reservation-impacts ul, .seasonal-hold-impacts ul { list-style: none; margin: 12px 0 0; padding: 0; }
.seasonal-template-list > li, .seasonal-history > li { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; border-bottom: 1px solid var(--nbi-border, #323b4c); padding: 13px 0; }
.seasonal-template-list > li:hover, .seasonal-history > li:hover { background: #ffffff03; }
.seasonal-template-list > li > div:first-child, .seasonal-history > li > div { min-width: 0; }
.seasonal-template-list strong, .seasonal-history strong { font-size: 13px; line-height: 1.6; }
.seasonal-template-list span, .seasonal-history span, .seasonal-history small { display: block; color: var(--nbi-muted, #98a1b4); font-size: 11px; line-height: 1.7; }
.seasonal-template-list p, .seasonal-history p { margin: 5px 0 0; font-size: 12px; line-height: 1.65; }
.seasonal-empty, .seasonal-loading { color: var(--nbi-muted, #98a1b4); padding: 12px 0; font-size: 13px; line-height: 1.7; }
.seasonal-template-source { color: #b7c9e9; font-size: 12px; margin: 12px 0; }
.seasonal-fieldset { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: 14px; }
.seasonal-fieldset:disabled, .seasonal-rule:disabled { opacity: .64; }
.seasonal-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.seasonal-schedules label, .seasonal-template-form label { min-width: 0; }
.seasonal-fieldset input:not([type=checkbox]), .seasonal-fieldset select, .seasonal-fieldset textarea, .seasonal-rule input:not([type=checkbox]), .seasonal-rule select { width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; border: 1px solid var(--nbi-border, #3c475b); border-radius: 4px; color: inherit; background: var(--nbi-input, #131925); min-height: 44px; padding: 9px 10px; }
.seasonal-fieldset textarea { resize: vertical; }
.seasonal-fieldset .nbi-field, .seasonal-rule .nbi-field { display: grid; gap: 6px; font-size: 12px; min-width: 0; }
.seasonal-fieldset .nbi-field small { font-size: 10px; color: var(--nbi-muted, #98a1b4); font-weight: 400; }
.seasonal-weekdays { margin: 0; padding: 0; border: 0; }
.seasonal-weekdays legend { padding: 0; margin-bottom: 8px; font-size: 12px; }
.seasonal-weekdays > div { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.seasonal-weekdays label { display: flex; align-items: center; gap: 6px; min-height: 32px; font-size: 12px; }
.seasonal-rule-editor { min-width: 0; }
.seasonal-rule { border: 1px solid var(--nbi-border, #323b4c); border-radius: 5px; margin: 14px 0 0; padding: 12px; min-width: 0; }
.seasonal-rule legend { padding: 0 5px; color: var(--nbi-muted, #98a1b4); font-size: 11px; }
.seasonal-rule .seasonal-time-fields { margin-top: 14px; }
.seasonal-hour-field { min-width: 0; display: grid; gap: 7px; }
.seasonal-rule p { font-size: 11px; line-height: 1.7; margin: 12px 0 6px; }
.seasonal-remove { color: #dba2a2; margin-top: 4px; }
.seasonal-date-count { margin: 0; font-size: 12px; line-height: 1.7; }
.seasonal-warning { color: #f1bf6c; font-size: 12px; line-height: 1.7; }
.seasonal-preview-summary { border-left: 2px solid #7184a8; padding-left: 12px; margin: 12px 0 20px; }
.seasonal-preview-summary strong { font-size: 14px; }
.seasonal-preview-summary p { color: var(--nbi-muted, #98a1b4); font-size: 12px; line-height: 1.7; margin: 5px 0 0; }
.seasonal-day { border-block-end: 1px solid var(--nbi-border, #323b4c); padding: 12px 0; }
.seasonal-day summary { cursor: pointer; font-size: 12px; line-height: 1.7; }
.seasonal-day summary > span { margin-left: 12px; color: var(--nbi-muted, #98a1b4); }
.seasonal-before-after { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 14px; padding-left: 10px; }
.seasonal-day-summary { min-width: 0; }
.seasonal-day-summary h4 { margin: 0 0 8px; font-size: 12px; }
.seasonal-day-summary ul { list-style: none; padding: 0; margin: 8px 0; }
.seasonal-day-summary li { display: grid; gap: 3px; padding: 7px 0; }
.seasonal-day-summary li strong, .seasonal-day-summary p { font-size: 12px; line-height: 1.6; }
.seasonal-day-summary li span { color: var(--nbi-muted, #98a1b4); font-size: 11px; line-height: 1.7; }
.seasonal-reservation-impacts, .seasonal-hold-impacts { margin-top: 22px; }
.seasonal-reservation-impacts li { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; padding: 13px 0; border-top: 1px solid var(--nbi-border, #323b4c); font-size: 12px; line-height: 1.6; }
.seasonal-reservation-impacts li span, .seasonal-hold-impacts li span { display: block; color: var(--nbi-muted, #98a1b4); font-size: 11px; line-height: 1.7; }
.seasonal-reservation-impacts p, .seasonal-hold-impacts p { margin: 5px 0 0; }
.seasonal-hold-impacts li { padding: 12px 0; border-top: 1px solid var(--nbi-border, #323b4c); font-size: 12px; line-height: 1.6; }
.seasonal-preview-region > .seasonal-actions { margin-top: 16px; }
.seasonal-recovery { border: 1px solid #a88147; border-radius: 5px; padding: 14px; min-width: 0; }
.seasonal-recovery p, .seasonal-dialog > p { font-size: 13px; line-height: 1.7; }
.seasonal-reviewed { border-top: 1px solid #80683d; margin-top: 14px; padding-top: 12px; }
.seasonal-configuration-refresh { border-left: 2px solid #b99a62; padding: 4px 0 4px 12px; font-size: 12px; line-height: 1.7; min-width: 0; }
.seasonal-configuration-refresh p { color: var(--nbi-muted, #98a1b4); margin: 6px 0 10px; }
.seasonal-configuration-refresh button { min-height: 44px; }
.seasonal-template-form, .seasonal-dialog { min-width: 0; }
.seasonal-template-form > p { line-height: 1.7; margin-bottom: 16px; }
.seasonal-schedules p, .seasonal-schedules strong, .seasonal-schedules span, .seasonal-template-form p, .seasonal-template-form strong, .seasonal-dialog p, .seasonal-dialog strong { overflow-wrap: anywhere; }
.seasonal-schedules button:disabled, .seasonal-template-form button:disabled, .seasonal-dialog button:disabled { opacity: .5; cursor: not-allowed; }
.seasonal-schedules :is(button,input,select,textarea,summary):focus-visible, .seasonal-template-form :is(button,input,select,textarea):focus-visible, .seasonal-dialog :is(button,summary):focus-visible { outline: 2px solid #8baaff; outline-offset: 3px; }
@media (max-width: 1024px) { .seasonal-template-list > li { flex-wrap: wrap; } .seasonal-reservation-impacts li { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 639px) {
  .seasonal-schedules { padding: 12px; gap: 16px; }
  .seasonal-fields, .seasonal-before-after { grid-template-columns: minmax(0, 1fr); }
  .seasonal-heading h2 { font-size: 19px; }
  .seasonal-template-list > li, .seasonal-history > li { display: grid; grid-template-columns: minmax(0, 1fr); }
  .seasonal-actions { align-items: stretch; }
  .seasonal-actions > button { flex: 1 1 140px; min-height: 44px; }
  .seasonal-weekdays label { min-height: 40px; }
  .seasonal-day summary > span { display: block; margin-left: 0; }
  .seasonal-before-after { padding-left: 0; }
  .seasonal-day-summary + .seasonal-day-summary { border-top: 1px solid var(--nbi-border, #323b4c); padding-top: 12px; }
  .seasonal-rule { padding: 10px; }
  .seasonal-subheading > button, .seasonal-fieldset > button { min-height: 44px; }
}
