
/* Schedule rows, with practical details and session-specific teacher/location. */
.planning .selected-sessions{max-width:1000px;margin:45px auto 0}
.planning .selected-title{font-size:14px;margin-bottom:18px}
.planning .slot{display:grid;grid-template-columns:minmax(260px,1.15fr) minmax(0,1fr) max-content;align-items:center;gap:28px;margin:0;padding:25px 0;background:transparent!important;border:0!important;border-top:1px solid #cfc5b7!important;border-radius:0;box-shadow:none!important;transform:none!important;transition:none;will-change:auto}
.planning .slot:last-child{border-bottom:1px solid #cfc5b7!important}
.planning .slot:is(:hover,:focus-within){background:transparent!important;transform:none!important;box-shadow:none!important}
.planning .slot-time{grid-column:1;grid-row:1;font-size:16px;line-height:1.5;min-width:0}
.planning .slot-date{font-size:16px;font-style:normal;opacity:1;color:#191814;margin-bottom:9px}
.planning .slot-practical,.planning .slot-teacher{display:flex;align-items:flex-start;gap:9px;font-size:14px;line-height:1.6;color:#665b4e}
.planning .slot-practical+.slot-practical{margin-top:5px}
.planning .slot-icon{display:block;width:18px;height:18px;flex:0 0 18px;margin-top:2px;color:#8a7b68}
.planning .slot-description{grid-column:2;grid-row:1;min-width:0}
.planning .slot-title{font:400 21px/1.4 Lora,Georgia,serif;color:#191814}
.planning .slot-teacher{margin-top:10px;color:#191814}
.planning .slot-tag{font-size:12px;line-height:1.5;margin-top:4px}
.planning .slot-meta{font-size:14px;line-height:1.5;margin-top:8px;opacity:1}
.planning .slot-meta.last-spots{color:#a34f27;font-style:normal}
.planning .slot-actions{grid-column:3;grid-row:1;min-width:0;max-width:none;align-items:flex-end;gap:10px}
.planning .slot-price{font:400 16px/1.5 Lora,Georgia,serif;color:#191814}
.planning .slot-actions .btn-black,.planning .waitlist-link{font-size:14px;line-height:1.4;padding:12px 20px;white-space:nowrap}
.planning .slot.is-full{opacity:1}
.planning .slot.is-full .slot-title,.planning .slot.is-full .slot-date,.planning .slot.is-full .slot-price{color:#776e62}
.session-recap-details{font-size:14px;line-height:1.7;margin:12px 0;color:inherit}
@media(max-width:780px){
 .planning .selected-sessions{margin-top:32px}
 .planning .slot{grid-template-columns:minmax(0,1fr) max-content;gap:15px 14px;padding:23px 0}
 .planning .slot-description{grid-column:1;grid-row:1}
 .planning .slot-time{grid-column:1/-1;grid-row:2}
 .planning .slot-actions{grid-column:2;grid-row:1;align-self:start}
 .planning .slot-title{font-size:19px}
 .planning .slot-date{font-size:16px}
 .planning .slot-actions .btn-black,.planning .waitlist-link{padding:10px 14px}
 .planning .slot-teacher{margin-top:7px}
}
@media(max-width:380px){
 .planning .slot{grid-template-columns:minmax(0,1fr)}
 .planning .slot-description{grid-row:1;grid-column:1}
 .planning .slot-time{grid-row:2;grid-column:1}
 .planning .slot-actions{grid-row:3;grid-column:1;flex-direction:row;align-items:center;justify-content:space-between}
}

.session-recap-details{white-space:pre-line}

/* Slightly tighter secondary details, keeping the date and price unchanged. */
.planning .slot-practical,.planning .slot-teacher{font-size:13px;line-height:1.45;gap:7px}
.planning .slot-practical+.slot-practical{margin-top:3px}
.planning .slot-date{margin-bottom:6px}
.planning .slot-teacher{margin-top:7px}
.planning .slot-icon{width:16px;height:16px;flex-basis:16px;margin-top:1px}
.planning .slot-tag{margin-top:3px}
.planning .slot-meta{font-size:13px;line-height:1.45;margin-top:5px}

/* Discreet session actions and one marker per daily session. */
.planning .slot-actions .btn-black,.planning .slot-actions .waitlist-link{font-size:12px;line-height:1.4;padding:8px 15px;min-height:0;min-width:0;letter-spacing:0}
.planning .slot-actions{gap:7px}
.planning .calendar-day.has-session::after{display:none!important}
.planning .calendar-session-dots{position:absolute;bottom:5px;left:50%;transform:translateX(-50%);display:flex;justify-content:center;gap:4px;flex-wrap:wrap;width:max-content;max-width:80%;pointer-events:none}
.planning .calendar-session-dot{display:block;width:4px;height:4px;flex:0 0 4px;border-radius:50%;background:#9a8060}
.planning .calendar-session-dot.is-full{background:#aaa39a}
.planning .calendar-day.is-selected .calendar-session-dot{background:#191814}

/* Final typography and availability contrast. */
.planning .slot-teacher{color:#77716a}
.planning .slot-title{font-size:20px}
.planning .calendar-session-dot{width:5px;height:5px;flex-basis:5px}
.planning .calendar-session-dot.is-available{background:#31825a}
.planning .calendar-session-dot.is-last-spots{background:#d88b3d}
.planning .calendar-session-dot.is-full{background:#74706a}
.planning .calendar-day.is-selected .calendar-session-dot.is-available{background:#254f38}
.planning .calendar-day.is-selected .calendar-session-dot.is-last-spots{background:#e4a263}
.planning .calendar-day.is-selected .calendar-session-dot.is-full{background:#625d56}
.planning .slot-price{font-size:14px}

/* Final review: stable title alignment and full-session contrast. */
.planning .slot{align-items:start}
.planning .slot-title{margin:0;line-height:1.4}
.planning .slot-description,.planning .slot-time,.planning .slot-actions{align-self:start}
.planning .slot.is-full{opacity:1}
.planning .slot-actions .waitlist-link{background:#3b3b3b!important;border-color:#3b3b3b!important;color:#fff!important}
.planning .slot-actions .slot-availability.is-full{color:#b52828!important}
.planning .calendar-day{position:relative}
.planning .calendar-session-dot.is-full,.planning .calendar-day.is-selected .calendar-session-dot.is-full{background:#8d2145}

.planning .slot-description,.planning .slot-title{text-align:left}
@media(min-width:781px){.planning .slot{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr) 180px}.planning .slot-actions{min-width:0;width:180px}}
@media(min-width:381px) and (max-width:780px){.planning .slot{grid-template-columns:minmax(0,1fr) 125px}.planning .slot-actions{min-width:0;width:125px}}
.planning .calendar-day.is-selected .calendar-session-dot.is-available{background:#8bc59e}
.planning .calendar-day.is-selected .calendar-session-dot.is-last-spots{background:#e4a263}
.planning .calendar-day.is-selected .calendar-session-dot.is-full{background:#ce668a}

@media(max-width:780px){
 .planning .slot{grid-template-columns:minmax(0,1fr) 112px;gap:12px 12px;padding:20px 0}
 .planning .slot-description{grid-column:1/-1;grid-row:1}
 .planning .slot-title{font-size:16px!important;line-height:1.35}
 .planning .slot-time{grid-column:1;grid-row:2;align-self:start}
 .planning .slot-date,.planning .slot-time{font-size:13px}
 .planning .slot-practical{font-size:11px}
 .planning .slot-actions{grid-column:2;grid-row:2;min-width:0;width:112px;align-self:start;gap:6px}
 .planning .slot-actions>a{order:1;margin:0!important}
 .planning .slot-actions .slot-price{order:2;font-size:13px}
 .planning .slot-actions .slot-availability{order:3}
}

/* Mobile session hierarchy, 4 November. */
@media(max-width:780px){
 .planning .slot{grid-template-columns:minmax(0,1fr) 112px;gap:12px}
 .planning .slot-description{grid-column:1;grid-row:1}
 .planning .slot-time{grid-column:1;grid-row:2/4;font-size:14px;line-height:1.5}
 .planning .slot-hour{font-size:13px}
 .planning .slot-actions{display:contents}
 .planning .slot-actions .slot-price{grid-column:2;grid-row:1;justify-self:end;align-self:center;font-size:14px}
 .planning .slot-actions>a{grid-column:2;grid-row:2;justify-self:end;align-self:start}
 .planning .slot-actions .slot-availability{grid-column:2;grid-row:3;justify-self:end;white-space:nowrap;font-size:9px;letter-spacing:.06em;color:#b52828!important;margin:0}
}
.planning .calendar-arrow:disabled{opacity:.25;cursor:default}

/* Approved mineral moon pictograms, distinct from availability markers. */
.planning .calendar-lunar-phases{position:absolute;left:calc(50% + 12px);top:17px;transform:translateY(-50%);display:flex;flex-direction:column;gap:2px;pointer-events:none}
.planning .calendar-lunar-phases img{display:block;width:16px;height:16px}
.planning .calendar-lunar-legend{display:flex;justify-content:center;gap:18px;margin:18px 0 0;color:#786f62;font-size:11px;line-height:1.5}
.planning .calendar-lunar-legend>span{display:inline-flex;align-items:center;gap:6px}
.planning .calendar-lunar-legend img{display:block;width:16px;height:16px}
@media(max-width:780px){.planning .calendar-lunar-phases{left:calc(50% + 9px);top:15px}.planning .calendar-lunar-phases img{width:14px;height:14px}.planning .calendar-lunar-legend{font-size:10px;gap:14px}}
