/* Shared booking controls: compact, rounded and consistent across the plan and character ticket. */
.pf[data-pf-compact="true"] [data-pf-row="date"],
.pf[data-pf-compact="true"] [data-pf-row="time"] { position:relative; }
.pf[data-pf-compact="true"] .pf-days { display:block; overflow:visible; margin:0; padding:0; }
.pf[data-pf-compact="true"] .pf-date-picker,
.pf[data-pf-compact="true"] .pf-time-picker { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; min-width:0; height:48px; padding:10px 12px; border:1.5px solid var(--line); border-radius:14px; background:#faf8ff; color:var(--ink); font:inherit; font-size:14px; font-weight:550; text-align:left; cursor:pointer; transition:background .18s ease,border-color .18s ease; }
.pf[data-pf-compact="true"] .pf-date-picker::after,
.pf[data-pf-compact="true"] .pf-time-picker::after { content:'⌄'; flex:none; color:var(--violet); font-size:18px; transition:transform .18s ease; }
.pf[data-pf-compact="true"] .pf-date-picker[aria-expanded="true"]::after,
.pf[data-pf-compact="true"] .pf-time-picker[aria-expanded="true"]::after { transform:rotate(180deg); }
.pf[data-pf-compact="true"] .pf-date-picker[aria-pressed="true"],
.pf[data-pf-compact="true"] .pf-time-picker.is-picked { color:var(--ink); border-color:#c9bee0; background:#f1ebff; }
.pf[data-pf-compact="true"] .pf-date-picker:hover,
.pf[data-pf-compact="true"] .pf-time-picker:hover { border-color:var(--violet); background:var(--lilac-2); }
.pf[data-pf-compact="true"] .pf-cal,
.pf[data-pf-compact="true"] .pf-time-pop { position:absolute; top:calc(100% + 5px); z-index:50; width:300px; max-width:calc(100vw - 80px); margin:0; padding:12px; border:1px solid var(--line); border-radius:20px; background:#fff; box-shadow:0 16px 42px #27113b26; }
.pf[data-pf-compact="true"] .pf-cal { left:0; }
.pf-time-pop { right:0; max-height:min(350px,55vh); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.pf-time-section + .pf-time-section { margin-top:16px; }
.pf-time-heading { display:block; margin-bottom:8px; padding-inline:2px; color:var(--ink-3); font-size:12px; font-weight:620; }
.pf-time-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.pf-time-option { min-width:0; min-height:40px; padding:8px 4px; border:1px solid var(--line); border-radius:11px; background:#faf8ff; color:var(--ink); font:inherit; font-size:12px; cursor:pointer; transition:background .16s ease,border-color .16s ease; }
.pf-time-option:hover { border-color:var(--violet); background:var(--lilac-2); }
.pf-time-option[aria-pressed="true"] { background:var(--dusk); color:#fff; border-color:var(--dusk); }
.pf button:focus-visible,.lengths button:focus-visible { outline:3px solid #9972e7; outline-offset:3px; }
.lengths > .len-longer,.lengths > .len-step { min-height:56px; height:56px; }
.lengths > [hidden] { display:none !important; }
.len-now { min-width:0; }
.len-now b,.len-now small { overflow:visible; }
.pf-cal-nav,.pf-cal-day,.len-step-btn { transition:background-color .18s ease,color .18s ease,box-shadow .18s ease; }
.pf-cal-nav:hover:not(:disabled) { background:var(--lilac); }
.pf-cal-day:active:not(:disabled),.pf-time-option:active,.len-step-btn:active:not(:disabled) { scale:.97; }
@media(max-width:480px) {
 .pf[data-pf-compact="true"] .pf-date-picker,.pf[data-pf-compact="true"] .pf-time-picker { font-size:12px; padding:10px 8px; }
}
@media(prefers-reduced-motion:reduce) {
 .pf button,.lengths button { transition:none !important; }
}
