/* Offer-scoped illustrative availability. Other date pickers keep their layout. */
.lc-panel[data-catalog-view="booking-date"] .lc-header { padding-block:12px; }
.lc-panel[data-catalog-view="booking-date"] .lf-topline { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:10px; margin-bottom:0; }
.lc-panel[data-catalog-view="booking-date"] .lc-back { justify-self:start; min-height:44px; padding:8px 12px; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.lc-panel[data-catalog-view="booking-date"] .ld-header-label { color:var(--muted); font-size:12px; font-weight:400; white-space:nowrap; }
.lc-panel[data-catalog-view="booking-date"] #lf-close { justify-self:end; width:44px; height:44px; }
.lc-panel[data-catalog-view="booking-date"] .lc-scroll { padding:16px 20px 18px; }
.bc-month-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.bc-month-heading h3 { margin:0; color:var(--text); font-size:20px; line-height:28px; font-weight:650; letter-spacing:-.5px; }
.bc-month-heading button { display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid var(--line); border-radius:12px; color:var(--text); background:var(--surface); }
.bc-month-heading .bc-prev svg { transform:rotate(180deg); }
.bc-month-heading button:disabled { opacity:.35; cursor:default; }
.bc-month-heading button:not(:disabled):hover { background:var(--surface-hover); }
.bc-legend { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:6px 16px; margin-bottom:12px; color:var(--muted); font-size:11px; line-height:18px; }
.bc-legend > span { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.bc-legend > span:first-child { color:var(--accent); }
.bc-available-mark { width:6px; height:6px; background:var(--accent); border-radius:50%; }
.bc-grid { width:100%; border-spacing:2px; table-layout:fixed; }
.bc-grid th { height:28px; padding:0 0 4px; color:var(--muted); font-size:12px; line-height:20px; text-align:center; font-weight:400; }
.bc-grid td { padding:0; height:56px; vertical-align:middle; }
.bc-grid .bc-day { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; width:100%; height:56px; min-width:0; padding:4px 0; border:1px solid transparent; border-radius:11px; color:var(--muted); background:transparent; font-variant-numeric:tabular-nums; }
.bc-day > span { font-size:15px; line-height:22px; font-weight:500; }
.bc-day > small { font-size:11px; line-height:16px; font-weight:400; }
.bc-grid .bc-day[data-status="available"] { color:var(--accent); background:color-mix(in srgb,var(--accent) 8%,var(--bg)); }
.bc-grid .bc-day[data-status="available"]:hover { background:color-mix(in srgb,var(--accent) 15%,var(--bg)); }
.bc-grid .bc-day[data-status="full"] { background:var(--surface); }
.bc-grid .bc-day[data-status="past"] > span { text-decoration:line-through; text-decoration-thickness:1px; }
.bc-grid .bc-day:disabled { opacity:1; color:color-mix(in srgb,var(--text) 68%,var(--bg)); cursor:default; }
.bc-grid .bc-day[aria-pressed="true"],.bc-grid .bc-day[aria-pressed="true"]:hover { background:var(--action-bg); color:var(--accent-text); border-color:var(--action-bg); }
.bc-grid .bc-day:focus-visible { outline-offset:-3px; }
.bc-times { min-height:110px; padding-top:18px; margin-top:16px; border-top:1px solid var(--line); }
.bc-times h4 { margin:0 0 12px; color:var(--text); font-size:14px; line-height:22px; font-weight:600; }
.bc-times > p { margin:0; color:var(--muted); font-size:13px; line-height:22px; word-break:keep-all; }
.bc-times > button { display:flex; align-items:center; gap:12px; min-height:48px; min-width:128px; padding:10px 16px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--text); }
.bc-times > button strong { font-size:15px; line-height:22px; font-weight:600; }
.bc-times > button span { font-size:12px; line-height:18px; }
.bc-preview-note { margin:14px 0 0; color:var(--muted); font-size:11px; line-height:18px; word-break:keep-all; }
.lf-footer.bc-footer { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); align-items:center; gap:12px; padding:14px 20px; }
.bc-footer > .bc-selection { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:4px; min-height:52px; min-width:0; }
.bc-selection > strong { color:var(--text); font-size:14px; line-height:22px; font-weight:600; letter-spacing:-.2px; }
.bc-selection > small { color:var(--muted); font-size:11px; line-height:17px; word-break:keep-all; }
.bc-footer > button { min-height:52px; font-size:14px; }
.bc-footer > button svg { width:17px; height:17px; }
@media(min-width:600px) { .lc-panel[data-catalog-view="booking-date"] .lc-scroll { padding-inline:24px; } .lf-footer.bc-footer { padding-inline:24px; } }
@media(max-width:359px) { .lc-panel[data-catalog-view="booking-date"] .lc-scroll { padding-inline:14px; } .bc-grid { border-spacing:1px 2px; } .bc-month-heading h3 { font-size:19px; } .bc-footer > button { font-size:13px; gap:5px; } .lf-footer.bc-footer { gap:8px; padding-inline:14px; } .bc-selection > strong { font-size:13px; } }
@media(max-height:540px) { .lc-panel[data-catalog-view="booking-date"] .lc-header { padding-block:6px; } .lf-footer.bc-footer { padding-block:8px; } .bc-footer > button { min-height:44px; } .bc-footer > .bc-selection { min-height:44px; } }

/* Complete period, time and participant information. */
.bc-period { margin-bottom:16px; }
.bc-period-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.bc-period-fields > button { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:5px; min-height:70px; padding:10px 12px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--text); text-align:left; }
.bc-period-fields > button > span { font-size:11px; line-height:17px; }
.bc-period-fields > button > strong { font-size:14px; line-height:21px; font-weight:600; font-variant-numeric:tabular-nums; }
.bc-period-fields > button:disabled { opacity:.6; cursor:default; }
.bc-period-hint { margin:8px 0 0; color:var(--muted); font-size:12px; line-height:19px; word-break:keep-all; }
.bc-error { margin:10px 0 0; padding:10px 12px; border-left:3px solid var(--accent); background:var(--surface); color:var(--text); font-size:13px; line-height:21px; word-break:keep-all; }
.bc-grid .bc-day[data-in-range="true"] { color:var(--accent); background:color-mix(in srgb,var(--accent) 18%,var(--bg)); }
.bc-course-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:16px 0; margin-top:12px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.bc-course-facts > div { display:flex; flex-direction:column; gap:5px; }
.bc-course-facts span { color:var(--muted); font-size:12px; line-height:18px; }
.bc-course-facts strong { color:var(--text); font-size:15px; line-height:22px; font-weight:600; }
.bc-course-facts + .bc-times { border-top:0; margin-top:0; }
.bc-times { min-height:0; }
.bc-times > .bc-time-note { margin-top:8px; font-size:12px; line-height:19px; }
.bc-people { padding:0; margin:20px 0 0; border:0; min-width:0; }
.bc-people legend { padding:0; margin:0 0 12px; color:var(--text); font-size:14px; line-height:22px; font-weight:600; }
.bc-people-options { display:flex; flex-wrap:wrap; gap:8px; }
.bc-people-options label { display:flex; align-items:center; justify-content:center; gap:5px; min-height:44px; padding:8px 6px; border:1px solid var(--line); border-radius:11px; background:var(--surface); color:var(--text); font-size:14px; cursor:pointer; }
.bc-people-options input { width:16px; height:16px; min-height:0; margin:0; padding:0; accent-color:var(--accent); }
.bc-people-options label:has(input:checked) { border-color:var(--accent); color:var(--accent); background:color-mix(in srgb,var(--accent) 7%,var(--bg)); }
.bc-people > p,.bc-price-rule { margin:8px 0 0; color:var(--muted); font-size:12px; line-height:20px; word-break:keep-all; }
.bc-price-rule { margin-top:16px; padding-top:12px; border-top:1px solid var(--line); }
.bc-price-rule strong { color:var(--text); font-weight:600; }
.bc-footer > .bc-selection > strong { font-size:24px; line-height:30px; letter-spacing:-.7px; font-variant-numeric:tabular-nums; }
.ld-schedule > div > span { color:var(--muted); font-size:12px; line-height:19px; word-break:keep-all; }
@media(max-width:359px) { .bc-period-fields { gap:8px; } .bc-period-fields > button { padding-inline:10px; } .bc-period-fields > button > strong { font-size:13px; } .bc-footer > .bc-selection > strong { font-size:22px; } }
.bc-options { min-width:0; }
.lc-scroll .bc-people { margin:20px 0 0; padding:0; border:0; }
.bc-people-options { display:grid; grid-template-columns:repeat(var(--bc-people-count,2),minmax(0,1fr)); }
@media(min-width:600px) {
  .bc-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:18px; align-items:start; }
  .bc-course-facts { margin-top:0; border-top:0; padding-top:8px; gap:8px; }
  .bc-course-facts span { font-size:11px; }
  .bc-course-facts strong { font-size:14px; }
  .bc-grid td,.bc-grid .bc-day { height:52px; }
  .bc-legend { gap:6px 10px; }
  .bc-times > button { width:100%; min-width:0; flex-wrap:wrap; justify-content:center; gap:4px 10px; }
  .bc-times > button strong { font-size:14px; }
  .bc-times > .bc-time-note,.bc-price-rule,.bc-people > p { font-size:11px; line-height:18px; }
  .bc-period-fields > button { min-height:66px; }
}

/* ADR 0048: approved overview layout and local message composer. */
.bc-course-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:18px; }
.bc-course-heading > div { min-width:0; }
.bc-course-heading h3 { margin:0; color:var(--text); font-size:21px; line-height:1.35; letter-spacing:-.7px; font-weight:700; overflow-wrap:anywhere; }
.bc-course-heading p { margin:7px 0 0; color:var(--muted); font-size:12px; line-height:19px; word-break:keep-all; }
.bc-course-heading > small { flex:none; color:var(--muted); font-size:11px; line-height:18px; }
.bc-period-fields > button { min-height:66px; gap:3px; padding:10px 13px; }
.bc-period-fields > button > span { color:var(--muted); }
.bc-period-fields > button[aria-pressed="true"] > span { color:var(--accent); }
.bc-month-heading button { border-color:transparent; background:transparent; }
.bc-grid td,.bc-grid .bc-day { height:48px; }
.bc-course-facts { padding-block:12px; }
.bc-options .bc-times { padding-top:16px; }
.bc-options .bc-times > button { width:100%; min-width:0; min-height:54px; flex-direction:column; gap:2px; }
.bc-options .bc-time-note { margin-top:8px; }
.bc-overview-selection { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; margin-top:18px; border-radius:12px; background:color-mix(in srgb,var(--accent) 10%,var(--bg)); }
.bc-overview-selection > div { min-width:0; }
.bc-overview-selection strong { display:block; font-size:14px; line-height:22px; font-weight:600; color:var(--text); overflow-wrap:anywhere; }
.bc-overview-selection span { display:block; color:var(--muted); font-size:12px; line-height:19px; margin-top:2px; }
.bc-overview-selection > small { flex:none; color:var(--accent); font-size:11px; line-height:18px; }
.bc-coach { display:flex; align-items:center; gap:10px; padding:13px 14px; margin-top:16px; background:var(--surface); border:1px solid var(--line); border-radius:14px; }
.bc-avatar,.lm-coach > span { display:grid; place-items:center; flex:none; width:40px; height:40px; color:var(--accent); background:color-mix(in srgb,var(--accent) 12%,var(--bg)); border-radius:50%; font-size:16px; font-weight:600; }
.bc-coach > div { flex:1; min-width:0; }
.bc-coach strong { display:block; font-size:14px; line-height:22px; }
.bc-coach small { display:block; color:var(--muted); font-size:11px; line-height:18px; }
.bc-coach > button { min-height:44px; padding:9px 15px; color:var(--accent); border:1px solid color-mix(in srgb,var(--accent) 65%,var(--line)); background:transparent; border-radius:11px; font-size:13px; font-weight:600; }
.bc-selection > span { color:var(--muted); font-size:11px; line-height:17px; }
.bc-footer > .bc-selection { min-height:60px; gap:1px; }
.bc-footer > .bc-selection > strong { font-size:26px; line-height:32px; }
.lc-panel[data-catalog-view="message"] .lc-header { padding-block:12px; }
.lc-panel[data-catalog-view="message"] .lf-topline { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:10px; margin-bottom:0; }
.lc-panel[data-catalog-view="message"] .lc-back { justify-self:start; min-height:44px; padding:8px 12px; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.lc-panel[data-catalog-view="message"] .ld-header-label { color:var(--muted); font-size:12px; font-weight:400; white-space:nowrap; }
.lc-panel[data-catalog-view="message"] #lf-close { justify-self:end; width:44px; height:44px; }
.lm-content { display:flex; flex-direction:column; gap:16px; }
.lm-coach { display:flex; align-items:center; gap:10px; }
.lm-coach strong { display:block; color:var(--text); font-size:15px; line-height:23px; }
.lm-coach small { display:block; color:var(--muted); font-size:12px; line-height:19px; margin-top:2px; }
.lm-context { padding:12px 14px; border-radius:12px; background:color-mix(in srgb,var(--accent) 10%,var(--bg)); }
.lm-context > small { display:block; color:var(--accent); font-size:11px; line-height:18px; }
.lm-context > strong { display:block; color:var(--text); font-size:14px; line-height:22px; margin-top:5px; overflow-wrap:anywhere; }
.lm-context p { color:var(--muted); font-size:12px; line-height:20px; margin:5px 0 0; word-break:keep-all; }
.lm-thread,.lm-local-example { display:flex; flex-direction:column; gap:12px; }
.lm-example-status { margin:0; color:var(--muted); font-size:11px; line-height:18px; }
.lm-local-example > .lm-example-status { color:var(--accent); }
.lm-bubble { max-width:92%; padding:11px 13px; border:1px solid var(--line); border-radius:13px; background:var(--surface); color:var(--text); font-size:14px; line-height:23px; white-space:pre-wrap; overflow-wrap:anywhere; }
.lm-bubble > small { display:block; margin-bottom:5px; color:var(--muted); font-size:11px; line-height:18px; }
.lm-mine { align-self:flex-end; border-color:transparent; background:color-mix(in srgb,var(--accent) 10%,var(--bg)); }
.lm-attachment { border-top:1px solid var(--line); }
.lm-attachment summary { min-height:44px; padding:12px 0; color:var(--muted); font-size:12px; line-height:20px; cursor:pointer; }
.lm-quick { display:flex; flex-wrap:wrap; gap:8px; }
.lm-quick > button { min-height:44px; padding:9px 13px; border:1px solid var(--line); border-radius:22px; background:var(--surface); color:var(--text); font-size:12px; line-height:20px; }
.lf-footer.lm-footer { display:flex; flex-direction:column; align-items:stretch; gap:10px; padding:14px 20px; }
.lm-footer > .lm-compose-label { display:flex; justify-content:space-between; gap:10px; align-items:center; }
.lm-compose-label label { color:var(--text); font-size:13px; font-weight:600; line-height:20px; }
.lm-compose-label > span { color:var(--muted); font-size:11px; line-height:18px; font-variant-numeric:tabular-nums; }
.lm-footer textarea { display:block; box-sizing:border-box; width:100%; height:76px; min-height:76px; resize:none; padding:10px 12px; margin:0; color:var(--text); background:var(--surface); border:1px solid var(--line); border-radius:12px; font-family:inherit; font-size:16px; line-height:23px; }
.lm-footer textarea::placeholder { color:var(--muted); }
.lm-footer > .lm-send-row { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.lm-send-row p { flex:1; margin:0; color:var(--muted); font-size:11px; line-height:18px; word-break:keep-all; }
.lm-send-row > button { flex:0 0 145px; width:145px; min-width:145px; min-height:48px; font-size:14px; }
@media(min-width:600px) {
  .bc-layout { grid-template-columns:minmax(0,1.12fr) minmax(0,1fr); gap:22px; }
  .bc-options .bc-course-facts { padding-top:4px; }
  .lf-footer.lm-footer { padding-inline:24px; }
}
@media(max-width:599px) {
  .bc-course-heading { margin-bottom:16px; gap:8px; }
  .bc-course-heading h3 { font-size:20px; line-height:27px; }
  .bc-course-heading > small { font-size:11px; }
  .bc-course-facts { gap:10px; padding:0; border:0; margin-top:16px; }
  .bc-course-facts > div { flex-direction:row; align-items:baseline; flex-wrap:wrap; gap:5px; }
  .bc-course-facts span { font-size:11px; }
  .bc-course-facts strong { font-size:14px; }
  .bc-price-rule { font-size:11px; line-height:18px; }
  .lf-footer.bc-footer { grid-template-columns:minmax(0,1fr); gap:8px; padding:12px 20px; }
  .bc-footer > .bc-selection { display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:18px 34px; align-content:center; align-items:center; gap:0 12px; height:56px; min-height:56px; }
  .bc-selection > strong { grid-column:2; grid-row:1/3; align-self:center; }
  .bc-selection > small { grid-column:1; align-self:start; font-size:11px; line-height:17px; }
  .bc-selection > span { grid-column:1; }
  .bc-footer > button { width:100%; min-height:48px; }
  .bc-footer > .bc-selection > strong { font-size:24px; line-height:30px; }
  .bc-overview-selection { padding:11px 12px; gap:8px; }
  .bc-overview-selection strong { font-size:13px; }
  .bc-coach { padding:12px; gap:8px; }
  .lm-footer > .lm-send-row { align-items:stretch; flex-direction:column; gap:8px; }
  .lm-send-row > button { flex:none; width:100%; min-height:44px; }
}
@media(max-width:359px) {
  .lf-footer.bc-footer,.lf-footer.lm-footer { padding-inline:14px; }
  .bc-footer > .bc-selection > strong { font-size:22px; }
  .bc-overview-selection { align-items:flex-start; }
  .bc-overview-selection > small { padding-top:2px; }
}
@media(max-height:540px) {
  .lc-panel[data-catalog-view="message"] .lc-header { padding-block:6px; }
  .lf-footer.lm-footer { padding-block:8px; gap:6px; }
  .lm-footer textarea { height:54px; min-height:54px; }
  .lm-send-row > button { min-height:44px; }
  .lf-footer.bc-footer { padding-block:8px; gap:4px; }
  .bc-footer > .bc-selection { min-height:48px; height:48px; }
}
