.schedule-panel { background:#fff; border:1px solid #ece4f5; border-radius:22px; padding:24px; color:#302740; box-shadow:0 6px 24px #311a4d08; margin-bottom:24px; }
.schedule-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:22px; }
.schedule-heading h2 { margin:8px 0; font-size:1.5rem; color:#302740; }
.schedule-heading p { color:#796f84; line-height:1.9; font-size:.88rem; max-width:720px; margin:0; }
.schedule-eyebrow, .schedule-zone { display:inline-flex; gap:8px; align-items:center; font-size:.8rem; color:#8250a3; }
.schedule-zone { background:#f7f0fc; border-radius:10px; padding:10px 12px; white-space:nowrap; }
.schedule-panel .schedule-weeks { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin:24px 0; }
.schedule-panel .schedule-week { display:flex; flex-direction:column; align-items:stretch; gap:12px; min-width:0; padding:18px; margin:0; border:1px solid #e8ddee; border-radius:16px; background:#faf8fd; color:#796f84; font:inherit; text-align:start; cursor:pointer; transition:background .18s,border-color .18s,box-shadow .18s; }
.schedule-panel .schedule-week:hover:not(:disabled):not(.is-active) { background:#f4ecfb; border-color:#b982df; }
.schedule-panel .schedule-week-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#493256; font-size:.9rem; font-weight:600; }
.schedule-panel .schedule-week-number { display:grid; place-items:center; width:36px; height:36px; border-radius:11px; background:#eee1f9; color:#7425b6; font-size:1.15rem; line-height:1; }
.schedule-panel .schedule-week-dates { display:block; direction:ltr; text-align:start; unicode-bidi:plaintext; color:#675574; font-size:.87rem; line-height:1.8; white-space:nowrap; }
.schedule-panel .schedule-week-count { display:block; padding-top:10px; border-top:1px solid #e8ddee; font-size:.76rem; color:#8c789a; }
.schedule-panel .schedule-week.is-active { background:linear-gradient(135deg,var(--color2,#a52bea),var(--color1,#7425b6)); border-color:transparent; box-shadow:0 5px 16px #7425b629; }
.schedule-panel .schedule-week.is-active .schedule-week-heading, .schedule-panel .schedule-week.is-active .schedule-week-dates { color:#fff; }
.schedule-panel .schedule-week.is-active .schedule-week-number { background:#ffffff29; color:#fff; }
.schedule-panel .schedule-week.is-active .schedule-week-count { color:#ffffffde; border-color:#ffffff33; }
.schedule-legend { display:flex; flex-wrap:wrap; gap:18px; margin:12px 0; color:#82718f; font-size:.78rem; }
.schedule-legend > span { display:inline-flex; align-items:center; gap:6px; }
.schedule-swatch { width:12px; height:12px; border:1px solid #e5dbea; border-radius:4px; background:#fff; }
.schedule-swatch.is-selected { background:#8a2dd0; border-color:#8a2dd0; }
.schedule-table-wrap { overflow:auto; max-height:65vh; border:1px solid #e9e1ef; border-radius:14px; }
.schedule-table { width:100%; table-layout:fixed; min-width:680px; border-collapse:separate; border-spacing:0; text-align:center; font-size:.82rem; }
.schedule-table th, .schedule-table td { border-bottom:1px solid #efe9f4; border-inline-end:1px solid #efe9f4; }
.schedule-table thead th { position:sticky; top:0; z-index:2; background:#faf7fd; padding:12px 6px; height:82px; min-width:72px; }
.schedule-table thead strong, .schedule-table thead span, .schedule-table thead small { display:block; }
.schedule-table thead span { font-size:.74rem; color:#8e7e99; margin-top:5px; }
.schedule-table thead small { font-size:.66rem; color:#8a2dd0; }
.schedule-table .is-today { background:#f1e6fc; }
.schedule-table tbody th { position:sticky; inset-inline-start:0; z-index:1; background:#faf7fd; font-size:.73rem; font-weight:500; white-space:nowrap; padding:0 8px; }
.schedule-table th:first-child { width:135px; }
.schedule-table thead th:first-child { inset-inline-start:0; z-index:3; }
.schedule-table td { height:38px; padding:0; }
.schedule-table td.is-available { background:#f3e7fc; color:#8123c1; }
.schedule-table td.is-unavailable, .schedule-table td.is-expired { background:#fff0f1; color:#af747a; }
.schedule-swatch.is-unavailable { background:#fff0f1; border-color:#edc2c6; }
.schedule-panel.is-editor .schedule-table td.is-unavailable,
.schedule-panel.is-editor .schedule-table td.is-expired { background:#fff; color:#a8a2af; }
.schedule-panel.is-editor .schedule-swatch.is-unavailable { background:#fff; border-color:#e5dbea; }
.schedule-cell { display:flex; align-items:center; justify-content:center; width:100%; height:100%; min-height:38px; margin:0; position:relative; font-size:1.05rem; }
label.schedule-cell { cursor:pointer; }
.schedule-cell input { appearance:none; width:100%; height:100%; position:absolute; inset:0; margin:0; border:0; cursor:pointer; background:transparent; }
.schedule-cell input:disabled { cursor:not-allowed; }
.schedule-cell input:focus-visible { outline:3px solid #a864de; outline-offset:-3px; }
.schedule-cell input:not(:disabled):hover { background:#a864de18; }
.schedule-cell span { pointer-events:none; }
.schedule-footer { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-top:20px; font-size:.83rem; }
.schedule-footer > div:first-child { margin-inline-end:auto; display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.schedule-unsaved { color:#a66b13; font-size:.76rem; }
.schedule-actions { display:flex; gap:10px; }
.schedule-reload { background:transparent; color:#79588e; border:0; text-decoration:underline; font:inherit; padding:8px; }
.schedule-empty { background:#faf7fd; padding:14px; border-radius:10px; font-size:.83rem; color:#82718f; margin:16px 0 0; }
.schedule-panel .bg-gradient-primary { background-image:linear-gradient(135deg,var(--color2,#a52bea),var(--color1,#7425b6)); color:#fff; }
.schedule-week:focus-visible, .schedule-reload:focus-visible { outline:3px solid #a864de; outline-offset:3px; }
.schedule-sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
@media(max-width:767px) { .schedule-panel { padding:16px; } .schedule-heading { flex-direction:column; } .schedule-panel .schedule-weeks { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:18px 0; } .schedule-panel .schedule-week { padding:14px; gap:10px; } .schedule-heading h2 { font-size:1.3rem; } .schedule-footer { align-items:stretch; } .schedule-actions { width:100%; } .schedule-actions .btn { flex:1; } }

@media(min-width:768px) and (max-width:1100px) { .schedule-panel .schedule-weeks { gap:12px; } .schedule-panel .schedule-week { padding:14px; } .schedule-panel .schedule-week-dates { font-size:.76rem; } }
@media(max-width:380px) { .schedule-panel .schedule-weeks { grid-template-columns:minmax(0,1fr); } }

.schedule-table td.is-booked-selection { background:#24b76b; color:#fff; }
.booking-cell input::before, .booking-cell input::after { content:none !important; }
.booking-cell span { font-family:Arial,sans-serif; font-weight:700; }
.booking-count { margin:18px 0 10px; font-weight:600; color:#493256; }
.booking-selection-list { display:flex; flex-wrap:wrap; gap:10px; list-style:none; padding:0; margin:0; }
.booking-selection-list li { padding:8px 12px; border-radius:10px; background:#eaf8f0; color:#1c7146; font-size:.82rem; }

.schedule-swatch.is-reserved { background:#f1f2f4; border-color:#cdd1d7; }
.schedule-table td.is-reserved { background:#f1f2f4; color:#626b78; }
.schedule-reserved-label { font-size:.73rem; font-weight:600; padding:4px 8px; border-radius:6px; background:#e2e5e9; white-space:nowrap; }
.schedule-reserved-label { white-space:nowrap; }
