.fc24-booking{max-width:72rem;margin:2rem auto;padding:clamp(.75rem,3vw,2rem);color:inherit;overflow-wrap:anywhere}
.fc24-booking-card{background:var(--body-bg,#fff);border:1px solid #ddd6ed;border-radius:1rem;padding:clamp(1rem,3vw,1.75rem);margin:1.25rem 0}
.fc24-booking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}
.fc24-booking-grid>div,.fc24-booking-grid>form{min-width:0}.fc24-booking-wide{grid-column:1/-1}
.fc24-booking label,.fc24-booking small{display:block}.fc24-booking label{margin-bottom:.35rem;font-weight:600}
.fc24-booking input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.fc24-booking select,.fc24-booking textarea{width:100%;min-height:2.75rem;padding:.55rem .7rem;border:1px solid #888;border-radius:.4rem;background:var(--body-bg,#fff);color:inherit;box-sizing:border-box}
.fc24-booking input:focus-visible,.fc24-booking select:focus-visible,.fc24-booking textarea:focus-visible,.fc24-booking a:focus-visible,.fc24-booking button:focus-visible{outline:3px solid #7755ad;outline-offset:3px}
.fc24-booking fieldset{border:0;padding:0;margin-bottom:1.5rem}.fc24-booking legend{font-size:1.25rem;font-weight:650;margin-bottom:.75rem}
.fc24-booking fieldset.fc24-booking-grid>legend{grid-column:1/-1;float:left;width:100%;margin-bottom:0}
.fc24-booking-check{display:flex!important;align-items:start;gap:.75rem;padding:.8rem;border:1px solid #d7cee6;border-radius:.5rem}
.fc24-booking input[type=checkbox]{margin-top:.3rem;flex-shrink:0}
.fc24-booking .btn{margin-top:.65rem;max-width:100%;white-space:normal}.fc24-booking-tabs{display:flex;flex-wrap:wrap;gap:.5rem}
.fc24-booking-hp{display:none}
.fc24-booking dt{font-weight:650}.fc24-booking dd{margin:0}.fc24-booking-admin{max-width:90rem;margin:0}
.fc24-booking [hidden]{display:none!important}
.fc24-booking [id]{scroll-margin-top:6rem}
.fc24-booking-hours{font-weight:600}
/* Month calendar: green = bookable (public) or released (staff); grey = locked. */
.fc24-booking-calendar{padding:clamp(.5rem,2vw,1.25rem);max-width:34rem;margin-inline:auto}
.fc24-booking-calendar-admin{max-width:none}
.fc24-booking-month-nav{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.8rem}
.fc24-booking-month-nav h2,.fc24-booking-month-nav h3{font-size:clamp(1.05rem,3vw,1.35rem);text-align:center;margin:0}
.fc24-booking-month-nav .btn{margin:0;min-width:2.75rem;width:auto!important}
.fc24-booking-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(.15rem,1vw,.4rem)}
.fc24-booking-weekday{text-align:center;font-size:.85rem;padding:.25rem 0}.fc24-booking-weekday abbr{text-decoration:none}
.fc24-booking-day{min-width:0;min-height:2.75rem;box-sizing:border-box;border:1px solid #ddd;border-radius:.4rem;text-align:center;padding:.35rem .15rem;font:inherit;background:#f5f5f5;color:#666;text-decoration:none;display:flex;align-items:center;justify-content:center;position:relative}
.fc24-booking-day:disabled{opacity:1;cursor:default}
.fc24-booking-day.has-slots{background:#dff2e5;border-color:#4f8f66;color:#124526;font-weight:700}
.fc24-booking-day.has-slots:after{content:"";position:absolute;bottom:.2rem;width:.25rem;height:.25rem;border-radius:50%;background:currentColor}
.fc24-booking-day.is-full{background:repeating-linear-gradient(135deg,#f3f3f3 0 6px,#e7e7e7 6px 8px);color:#777;text-decoration:line-through}
.fc24-booking-day.is-today{box-shadow:inset 0 0 0 2px #947aa9}.fc24-booking-day.is-selected{background:#523275;color:#fff;border-color:#523275}
/* Public steps: conversation type, free times, by arrangement. */
.fc24-booking-types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}
.fc24-booking-type{display:flex;flex-direction:column;gap:.3rem;min-width:0;padding:.9rem;border:1px solid #d7cee6;border-radius:.6rem;color:inherit;text-decoration:none}
.fc24-booking-type:hover{border-color:#7755ad}
.fc24-booking-type.is-selected{background:#f2edf9;border-color:#523275;box-shadow:inset 0 0 0 1px #523275}
.fc24-booking-type>span{font-size:.9rem;font-weight:650;color:#523275}.fc24-booking-type>small{color:#555}
.fc24-booking-hour{display:grid;grid-template-columns:repeat(6,minmax(0,5.5rem));gap:.4rem;margin:.4rem 0}
.fc24-booking-time{position:relative;margin:0!important}
.fc24-booking-time input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.fc24-booking-time span{display:block;padding:.55rem .2rem;white-space:nowrap;text-align:center;border:1px solid #4f8f66;border-radius:.4rem;background:#dff2e5;color:#124526;font-weight:650;font-variant-numeric:tabular-nums}
.fc24-booking-time:has(input:checked) span{background:#523275;border-color:#523275;color:#fff}
.fc24-booking-time:has(input:focus-visible) span{outline:3px solid #7755ad;outline-offset:2px}
.fc24-booking-local{margin-top:.75rem;font-weight:600}
.fc24-booking-arrangement h2{font-size:1.15rem;margin:0 0 .35rem}
.fc24-booking-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.fc24-booking-actions .btn{margin-top:.25rem}
/* Staff: released/locked days with a compact occupancy bar, and the day agenda. */
.fc24-booking-legend{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.85rem}.fc24-booking-legend>span{padding:.2rem .5rem;border:1px solid;border-radius:.3rem}
.fc24-booking .is-released{background:#dff2e5;border-color:#4f8f66;color:#124526}.fc24-booking .is-locked{background:#f2f2f2;border-color:#cfcfcf;color:#5c5c5c}
.fc24-booking-calendar-admin .fc24-booking-day{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:.25rem;min-height:6.5rem;text-align:start;padding:.35rem;color:inherit}
.fc24-booking-calendar-admin .fc24-booking-day.is-selected{outline:3px solid #523275;outline-offset:1px;color:inherit}
.fc24-booking-calendar-admin .fc24-booking-day.is-past{opacity:.6}
.fc24-booking-day-head{display:flex;justify-content:space-between;align-items:center;gap:.25rem}
.fc24-booking-day-link{font-weight:700;color:inherit;text-decoration:none;padding:0 .2rem}.fc24-booking-day-link:hover{text-decoration:underline}
.fc24-booking-day-head input[type=checkbox]{width:1.15rem;height:1.15rem;margin:0}
.fc24-booking-day-count{font-size:.8rem;font-weight:700;color:#19365c}
.fc24-booking-day-bar{display:block;width:100%;height:.5rem;border-radius:.2rem;overflow:hidden}
.fc24-booking-bar-track{fill:#fff}.fc24-booking-bar-busy{fill:#3b5f8f;stroke:#fff;stroke-width:1px;vector-effect:non-scaling-stroke}
.fc24-booking-day-split{font-size:.72rem;line-height:1.25}
.fc24-booking-badge{display:inline-block;padding:.15rem .55rem;border:1px solid #b5b5b5;border-radius:1rem;font-size:.8rem;font-weight:600}
.fc24-booking-note{font-size:.85rem;color:#555;margin:.5rem 0 0}
.fc24-booking-agenda-list{list-style:none;padding:0;margin:.75rem 0 0;display:grid;gap:.5rem}
.fc24-booking-agenda-list a{display:grid;grid-template-columns:7.5rem minmax(0,1fr) auto;gap:.2rem 1rem;align-items:center;padding:.6rem .8rem;border:1px solid #91a6c3;border-left-width:.35rem;border-radius:.4rem;background:#eaf0f9;color:#19365c;text-decoration:none}
.fc24-booking-agenda-list a>span:not(.fc24-booking-badge){grid-column:2}
.fc24-booking-agenda-list time{font-weight:700;font-variant-numeric:tabular-nums}
.fc24-booking-agenda-list li{display:flex;gap:.6rem;align-items:center}.fc24-booking-agenda-list li>a{flex:1;min-width:0}
.fc24-booking-holder{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.fc24-booking-take{margin:0}.fc24-booking-take .btn{margin:0}
.fc24-booking .is-unassigned{background:#fff4e0;border-color:#d39b3a;color:#6b4300}.fc24-booking .is-assigned{background:#eaf0f9;border-color:#91a6c3;color:#19365c}
.fc24-booking-assign{margin:1rem 0;align-items:end}.fc24-booking-assign form{min-width:0}
.fc24-booking-agenda-list .is-cancelled a{background:#f4f4f4;border-color:#c9c9c9;color:#666}.fc24-booking-agenda-list .is-cancelled time{text-decoration:line-through}
/* Staff booking detail: contact actions, reschedule day/time choice (1.0.64). */
.fc24-booking-crm{margin:1rem 0;padding:1rem;border:1px solid #ddd6ed;border-radius:.75rem;background:#faf8fd}
.fc24-booking-crm h2{font-size:1.1rem;margin:0 0 .5rem}.fc24-booking-person{margin:0 0 .6rem;overflow-wrap:anywhere}
.fc24-booking-buttons{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.fc24-booking-buttons form{margin:0}
.fc24-booking-duplicate,.fc24-booking-matches{margin:.85rem 0 0}.fc24-booking-duplicate p{margin:0 0 .5rem}.fc24-booking-matches li{margin:.25rem 0}
.fc24-booking-pick{display:flex;flex-wrap:wrap;gap:.4rem;padding:0;list-style:none}.fc24-booking-pick .btn{display:flex;flex-direction:column;align-items:flex-start;line-height:1.25}
.fc24-booking-pick small{font-size:.75rem;opacity:.85}
.fc24-booking-time.is-current span{background:#eee;border-color:#bbb;color:#666;text-decoration:line-through}.fc24-booking-time.is-current input{cursor:not-allowed}
@media(max-width:40rem){.fc24-booking-grid,.fc24-booking-types{grid-template-columns:minmax(0,1fr)}.fc24-booking-wide{grid-column:auto}.fc24-booking{padding:.5rem}.fc24-booking .btn{width:100%}
  .fc24-booking-hour{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem}.fc24-booking-time span{padding:.55rem 0}
  .fc24-booking-agenda-list li{flex-direction:column;align-items:stretch}  .fc24-booking-agenda-list a{grid-template-columns:minmax(0,1fr)}.fc24-booking-agenda-list a>span:not(.fc24-booking-badge){grid-column:auto}}
@media(max-width:40rem){.fc24-booking .fc24-booking-pick .btn{width:auto}.fc24-booking-buttons form{width:100%}}
