/* UIkit/YOOtheme provides typography, cards, buttons, forms and grid gutters.
   Only containment, container breakpoints and calendar states live here. */
.fwb-widget { width: 100%; max-width: 100%; min-width: 0; container: fwb / inline-size; }
.fwb-widget *, .fwb-calendar * { box-sizing: border-box; }
.fwb-layout > *, .fwb-form-grid > *, .fwb-calendar, .fwb-request { min-width: 0; }
.fwb-widget, .fwb-calendar { overflow-wrap: anywhere; }
.fwb-request .uk-input, .fwb-request .uk-select, .fwb-request .uk-textarea { min-width: 0; max-width: 100%; width: 100%; }
.fwb-request .uk-textarea { resize: vertical; }
.fwb-check input { flex: 0 0 auto; margin-top: .25em; }
.fwb-submit { white-space: normal; }

/* A narrow builder column must stack even on a desktop viewport. */
@container fwb (max-width: 759px) {
    .fwb-widget .fwb-layout > * { width: 100%; }
    .fwb-widget .fwb-layout > * + * { margin-top: 30px; }
}
@container fwb (max-width: 399px) {
    .fwb-widget .fwb-form-grid > * { width: 100%; }
    .fwb-widget .fwb-form-grid > * + * { margin-top: 15px; }
}

.fwb-calendar { --fwb-free: #dff3e3; --fwb-busy: #f7d4d4; --fwb-day-text: #254b38; }
.fwb-calendar .fwb-weekdays, .fwb-calendar .fwb-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; text-align: center; }
.fwb-calendar .fwb-day { min-width: 0; width: 100%; padding: 0; line-height: 36px; color: var(--fwb-day-text) !important; background: var(--fwb-free) !important; border: 1px solid transparent; border-radius: 3px; }
.fwb-calendar .fwb-day.am { background: linear-gradient(135deg, var(--fwb-busy) 49%, var(--fwb-free) 50%) !important; }
.fwb-calendar .fwb-day.pm { background: linear-gradient(135deg, var(--fwb-free) 49%, var(--fwb-busy) 50%) !important; }
.fwb-calendar .fwb-day.am.pm { background: var(--fwb-busy) !important; color: #742929 !important; }
.fwb-calendar .fwb-day.today { border-color: currentColor; }
.fwb-calendar .fwb-day:disabled { cursor: default; opacity: 1; }
.fwb-calendar .fwb-day:focus-visible { outline: 2px solid currentColor; outline-offset: -2px; }
.fwb-legend i { display: inline-block; width: .8em; height: .8em; border: 1px solid var(--fwb-busy); }
.fwb-legend .free { background: var(--fwb-free); }
.fwb-legend .busy { background: var(--fwb-busy); }
.fwb-legend .half { background: linear-gradient(135deg, var(--fwb-busy) 49%, var(--fwb-free) 50%) !important; }
.fwb-calendar-error:empty, .fwb-result:empty { display: none; }
.fwb-honey { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }

/* Essential calendar layout also survives theme utility overrides. */
.fwb-calendar .fwb-calendar-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.fwb-calendar .fwb-calendar-top h3 { flex: 1; min-width: 0; margin: 0; letter-spacing: normal; }
.fwb-calendar .fwb-prev, .fwb-calendar .fwb-next { flex: 0 0 auto; padding-inline: 12px; }
.fwb-calendar { --fwb-selection: #ffdc35; --fwb-selection-text: #302600; }
/* State colors must stay legible even in YOOtheme inverse/hover contexts. */
.fwb-calendar .fwb-day:is(.fwb-in-range, .fwb-selected-start, .fwb-selected-end) { background: var(--fwb-selection) !important; color: var(--fwb-selection-text) !important; box-shadow: inset 0 -3px #927000; font-weight: 700; }
.fwb-calendar .fwb-day.fwb-selected-start, .fwb-calendar .fwb-day.fwb-selected-end { border: 2px solid #725700; }
.fwb-legend .selected { background: var(--fwb-selection); border-color: var(--fwb-selection-border,#725700); }
.fwb-calendar .fwb-day.fwb-selected-start { border-radius: 12px 3px 3px 12px; }
.fwb-calendar .fwb-day.fwb-selected-end { border-radius: 3px 12px 12px 3px; }
.fwb-selection:empty { display: none; }
.fwb-request .uk-form-label { display: block; margin-bottom: 6px; }
.fwb-request .fwb-field { margin-top: 20px; margin-bottom: 20px; }
/* Configurable values inherit the UIkit theme when no override is selected. */
.fwb-widget[style*="--fwb-column-gap:"] .fwb-layout{margin-left:calc(-1 * var(--fwb-column-gap))}
.fwb-widget[style*="--fwb-column-gap:"] .fwb-layout>.fwb-column{padding-left:var(--fwb-column-gap)}
.fwb-widget[style*="--fwb-element-gap:"] .fwb-form-grid>.uk-grid-margin{margin-top:var(--fwb-element-gap)}
.fwb-widget[style*="--fwb-radius:"] :is(.uk-input,.uk-select,.uk-textarea,.fwb-submit){border-radius:var(--fwb-radius)}
.fwb-widget[style*="--fwb-focus:"] :is(input,select,textarea,button):focus-visible{outline-color:var(--fwb-focus)}
.fwb-element{min-width:0;border-radius:var(--fwb-radius)}
.fwb-element.fwb-override-input-background :is(.uk-input,.uk-select,.uk-textarea){background-color:var(--fwb-input-background)!important}
.fwb-element.fwb-override-input-color :is(.uk-input,.uk-select,.uk-textarea){color:var(--fwb-input-color)!important}
.fwb-element.fwb-override-input-border :is(.uk-input,.uk-select,.uk-textarea){border-color:var(--fwb-input-border)!important}
.fwb-element.fwb-override-field-border-width :is(.uk-input,.uk-select,.uk-textarea){border-width:var(--fwb-field-border-width)!important}
.fwb-element.fwb-override-field-radius :is(.uk-input,.uk-select,.uk-textarea){border-radius:var(--fwb-field-radius)!important}
.fwb-element.fwb-override-button-background .fwb-submit{background-color:var(--fwb-button-background)!important}
.fwb-element.fwb-override-button-color .fwb-submit{color:var(--fwb-button-color)!important}
.fwb-element.fwb-override-button-hover .fwb-submit:hover{background-color:var(--fwb-button-hover)!important}
.fwb-element.fwb-override-button-hover-color .fwb-submit:hover{color:var(--fwb-button-hover-color)!important}
.fwb-element.fwb-override-label-color .uk-form-label{color:var(--fwb-label-color)}
.fwb-element.fwb-override-help-color .fwb-help{color:var(--fwb-help-color)}
.fwb-calendar .fwb-day{border-color:var(--fwb-calendar-border,transparent);border-radius:var(--fwb-calendar-radius,3px);font-size:var(--fwb-calendar-font-size,inherit);line-height:var(--fwb-calendar-height,36px)}
.fwb-calendar .fwb-day.am.pm{color:var(--fwb-busy-text,#742929)!important}
.fwb-calendar .fwb-day.today{border-color:var(--fwb-today,currentColor)}
.fwb-calendar .fwb-day:not(:disabled):hover{outline:2px solid var(--fwb-calendar-hover,currentColor);outline-offset:-2px}
.fwb-calendar .fwb-day:focus-visible{outline-color:var(--fwb-focus,currentColor)}
.fwb-calendar .fwb-day:is(.fwb-in-range,.fwb-selected-start,.fwb-selected-end){box-shadow:inset 0 -3px var(--fwb-selection-border,#725700)}
.fwb-calendar .fwb-day:is(.fwb-selected-start,.fwb-selected-end){border-color:var(--fwb-selection-border,#725700)}
.fwb-calendar .fwb-day.fwb-selected-start{border-radius:var(--fwb-calendar-radius,12px) 3px 3px var(--fwb-calendar-radius,12px)}
.fwb-calendar .fwb-day.fwb-selected-end{border-radius:3px var(--fwb-calendar-radius,12px) var(--fwb-calendar-radius,12px) 3px}
.fwb-result.is-error,.fwb-calendar-error{color:var(--fwb-error)}
.fwb-result.is-success{color:var(--fwb-success)}
.fwb-dropcap p:first-of-type::first-letter{float:left;font-size:3.4em;line-height:.9;margin-right:.1em}

.fwb-element .fwb-heading-text-style{font-family:inherit}

/* Disabled days are deliberately static, including in inverse theme contexts. */
.fwb-calendar .fwb-day:disabled,.fwb-calendar .fwb-day:disabled:hover{background:var(--fwb-disabled-background,var(--fwb-busy,#f7d4d4))!important;color:var(--fwb-disabled-text,var(--fwb-busy-text,#742929))!important;outline:none!important;box-shadow:none!important;border-color:var(--fwb-calendar-border,transparent)!important;transform:none!important;transition:none!important;cursor:not-allowed}

.fwb-calendar .fwb-day.fwb-past:disabled,.fwb-calendar .fwb-day.fwb-past:disabled:hover{background:var(--fwb-past-background,#e7e9eb)!important;color:var(--fwb-past-text,#687078)!important}
