.availability-panel {background:var(--white);border-radius:var(--r2);padding:var(--s6);min-width:0}
.availability-intro h3 {font-size:var(--text-lg);line-height:1.6;margin-bottom:var(--s2)}
.availability-panel p {font-size:var(--text-sm);color:var(--catalog-muted);line-height:1.8;word-break:keep-all;overflow-wrap:anywhere}
.availability-days {display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--s2);margin-block:var(--s6)}
.availability-days button {display:grid;gap:var(--s1);place-items:center;min-height:64px;padding:var(--s2) var(--s1);background:var(--surface);color:var(--ink);border-radius:var(--r1)}
.availability-days strong {font-size:var(--text-base)}
.availability-days span {font-size:var(--text-xs)}
.availability-days button[aria-pressed="true"] {background:var(--ink);color:var(--white)}
.availability-days button:hover:not([aria-pressed="true"]) {background:var(--mint)}
.availability-day-heading {display:flex;justify-content:space-between;gap:var(--s4);align-items:start;margin-bottom:var(--s5)}
.availability-day-heading h3,.availability-summary h3 {font-size:var(--text-base);line-height:1.6;margin-bottom:var(--s1)}
.availability-day-heading p {font-size:var(--text-xs)}
.availability-period {border:0;padding:0;margin:0 0 var(--s5);min-width:0}
.availability-period legend {font-size:var(--text-sm);font-weight:700;margin-bottom:var(--s3);padding:0}
.availability-period legend span {font-size:var(--text-xs);font-weight:400;color:var(--catalog-muted);margin-left:var(--s2)}
.availability-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s2)}
.availability-slot {display:flex;align-items:center;justify-content:center;gap:var(--s2);min-height:44px;border-radius:var(--r1);background:var(--surface);padding:var(--s2);cursor:pointer;font-size:var(--text-xs);white-space:nowrap}
.availability-slot input {width:18px;height:18px;margin:0;accent-color:var(--ink);flex-shrink:0}
.availability-slot:has(input:checked) {background:var(--mint);color:var(--ink)}
.availability-slot:has(input:focus-visible) {outline:3px solid var(--accent);outline-offset:3px}
.availability-slot input:focus-visible {outline:0}
.availability-summary {background:var(--surface);padding:var(--s5);border-radius:var(--r2);margin-top:var(--s6)}
.availability-summary>p {font-size:var(--text-xs)}
.availability-summary dl {margin-block:var(--s4);display:grid;gap:var(--s3)}
.availability-summary dl>div {display:grid;grid-template-columns:64px minmax(0,1fr);gap:var(--s3);font-size:var(--text-sm)}
.availability-summary dt {font-weight:600}
.availability-summary dd {margin:0;display:flex;flex-wrap:wrap;gap:var(--s1) var(--s3);font-variant-numeric:tabular-nums}
.availability-unset {color:var(--catalog-muted)}
.availability-duration {border-top:1px solid var(--line);padding-top:var(--s4)}
.availability-save {display:flex;align-items:center;justify-content:space-between;gap:var(--s5);margin-top:var(--s6)}
.availability-save>div {min-width:0}
.availability-save p {font-size:var(--text-xs);margin-top:var(--s2)}
.availability-actions {display:flex;gap:var(--s2);flex-shrink:0}
.availability-panel button:disabled {opacity:.5;cursor:default}
.availability-disclosure {border-top:1px solid var(--line);margin-top:var(--s5);padding-top:var(--s4)}
@media(max-width:767px) {
 .availability-panel {padding:var(--s4)}
 .availability-days {gap:var(--s1);grid-template-columns:repeat(4,minmax(0,1fr))}
 .availability-days span {font-size:10px}
 .availability-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
 .availability-day-heading {flex-wrap:wrap;gap:var(--s1)}
 .availability-summary {padding:var(--s4)}
 .availability-save {display:block}
 .availability-actions {margin-top:var(--s4);flex-wrap:wrap}
 .availability-actions .button {flex:1}
}
