/* Sketch10 layout. DS1 owns every typography/icon role. */
.master-availability-page .cabinet-button { border:0; gap:8px; cursor:pointer; }
.availability-status-tag { font-size:var(--sb-type-caption-size); white-space:nowrap; }
.availability-status-tag[data-state="accepting"] { color:var(--sb-color-success); background:var(--sb-theme-control,#e8f6f0); }
.availability-status-tag[data-state="paused"] { color:var(--sb-color-warning); background:var(--sb-theme-surface,#fff4df); }
.availability-day__off { display:none; min-height:42px; align-items:center; padding:8px 12px; border-radius:var(--sb-radius-control); background:var(--sb-surface-control); color:var(--sb-color-muted); }
.availability-day:has(input[type="checkbox"]:not(:checked)) .availability-day__times { display:none; }
.availability-day:has(input[type="checkbox"]:not(:checked)) .availability-day__off { display:flex; }
.master-availability-page .cabinet-topbar { position:static; flex-wrap:wrap; border:0; background:transparent; backdrop-filter:none; padding:24px; }
.master-availability-page .cabinet-topbar p { font-size:var(--sb-type-caption-size); }
.master-availability-page .cabinet-topbar__actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.master-availability-page .cabinet-content--availability { display:block; width:100%; max-width:none; margin:0; padding:0 24px 24px; }
.master-availability-page .cabinet-main { padding-bottom:0; }
.master-availability { min-width:0; color:var(--sb-color-text); }
.availability-card { padding:20px; border-radius:var(--sb-radius-panel); background:var(--sb-surface); min-width:0; }
.availability-card h2,.availability-card h3 { margin:0; }
.availability-card p { margin:8px 0; color:var(--sb-color-text); }
.availability-section-heading { display:flex; align-items:flex-start; gap:12px; margin-bottom:16px; }
.availability-section-heading>.sb-icon { flex:0 0 auto; color:var(--sb-color-action); width:var(--sb-icon-feature-size); height:var(--sb-icon-feature-size); }
.availability-section-heading>div { min-width:0; }
.availability-section-heading p { margin:4px 0 0; color:var(--sb-color-muted); font-size:var(--sb-type-caption-size); }
.availability-section-heading .availability-text-button { margin-left:auto; }
.availability-status { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:16px; margin-bottom:18px; }
.availability-status .availability-section-heading { margin:0; flex:1 1 320px; }
.availability-status__choices { display:flex; gap:6px; margin:0; padding:0; border:0; min-width:0; flex:1 1 360px; }
.availability-status__choices label { flex:1; position:relative; cursor:pointer; min-width:0; }
.availability-status__choices input { position:absolute; opacity:0; width:1px; height:1px; }
.availability-status__choices span { display:flex; align-items:center; justify-content:center; min-height:48px; padding:10px 12px; text-align:center; background:var(--sb-surface-control); border-radius:var(--sb-radius-control); color:var(--sb-color-secondary); font-weight:var(--sb-type-control-weight); }
.availability-status__choices input:checked+span { color:var(--sb-color-action); background:var(--sb-surface-action); }
.availability-status__choices input:focus-visible+span { outline:var(--sb-focus-width) solid var(--sb-color-action); outline-offset:3px; }
.availability-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:18px; align-items:start; }
.availability-column { display:grid; gap:18px; min-width:0; }
.availability-week { margin:0; padding:0; border:0; min-width:0; }
.availability-day { display:grid; grid-template-columns:minmax(94px,1fr) minmax(170px,240px) 44px; align-items:center; gap:10px; min-height:58px; border-radius:var(--sb-radius-control); padding:4px 0; }
.availability-day__label { font-weight:var(--sb-type-control-weight); min-width:0; }
.availability-day__times { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:8px; min-width:0; }
.availability-day__times input { min-width:0; width:100%; min-height:42px; padding:8px; border:0; border-radius:var(--sb-radius-control); background:var(--sb-surface-control); color:var(--sb-color-text); }
.availability-day__times input:disabled { color:var(--sb-color-muted); opacity:.65; }
.availability-toggle { position:relative; display:grid; align-items:center; justify-content:end; min-height:44px; cursor:pointer; }
.availability-toggle input { position:absolute; width:1px; height:1px; opacity:0; }
.availability-toggle>span[aria-hidden] { display:block; width:42px; height:24px; border-radius:999px; background:var(--sb-theme-control,#cbd5e1); position:relative; }
.availability-toggle>span[aria-hidden]::after { content:''; position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:var(--sb-surface); }
.availability-toggle input:checked+span { background:var(--sb-color-action); }
.availability-toggle input:checked+span::after { left:21px; }
.availability-toggle input:focus-visible+span { outline:var(--sb-focus-width) solid var(--sb-color-action); outline-offset:3px; }
.availability-day__error { grid-column:1/-1; color:var(--sb-color-danger)!important; font-size:var(--sb-type-caption-size); }
.availability-caption,.availability-card .availability-caption { color:var(--sb-color-muted); font-size:var(--sb-type-caption-size); line-height:var(--sb-type-caption-leading); overflow-wrap:anywhere; }
.availability-info { display:flex; align-items:flex-start; gap:10px; padding:12px; border-radius:var(--sb-radius-control); background:var(--sb-surface-action); color:var(--sb-color-action)!important; }
.availability-info .sb-icon { flex:0 0 auto; }
.availability-save { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:16px; }
.availability-text-button,.availability-link { display:inline-flex; align-items:center; justify-content:flex-start; gap:6px; min-height:44px; padding:4px 0; border:0; background:transparent; color:var(--sb-color-action); font-size:var(--sb-type-control-size); font-weight:var(--sb-type-control-weight); }
.availability-text-button { cursor:pointer; text-align:left; }
.availability-link { text-decoration:none; }
.availability-cities { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
.availability-cities span { background:var(--sb-surface-action); border-radius:var(--sb-radius-control); color:var(--sb-color-action); padding:8px 12px; overflow-wrap:anywhere; }
.availability-offers { display:grid; gap:10px; list-style:none; margin:16px 0 8px; padding:0; max-height:360px; overflow-y:auto; }
.availability-offers li { display:grid; gap:4px; padding:12px; background:var(--sb-surface-control); border-radius:var(--sb-radius-control); overflow-wrap:anywhere; }
.availability-offers li>strong { font-weight:var(--sb-type-control-weight); }
.availability-geography-actions { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.availability-exception { padding:10px 12px; border-radius:var(--sb-radius-control); background:var(--sb-surface-control); margin:10px 0; min-width:0; }
.availability-exception summary { display:flex; align-items:center; gap:10px; min-height:44px; cursor:pointer; color:var(--sb-color-text); list-style:none; }
.availability-exception summary::-webkit-details-marker { display:none; }
.availability-exception summary>span { flex:1; min-width:0; overflow-wrap:anywhere; }
.availability-exception summary small { display:block; color:var(--sb-color-muted); }
.availability-exception--new { background:var(--sb-surface-action); }
.availability-exception--new summary { color:var(--sb-color-action); }
.availability-exception-form fieldset { display:grid; gap:10px; margin:8px 0; padding:0; min-width:0; border:0; }
.availability-exception-form label { display:grid; gap:6px; min-width:0; color:var(--sb-color-secondary); font-size:var(--sb-type-caption-size); }
.availability-exception-form input { width:100%; min-width:0; min-height:44px; padding:10px; border:0; border-radius:var(--sb-radius-control); background:var(--sb-surface); color:var(--sb-color-text); }
.availability-date-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.availability-delete .availability-text-button { color:var(--sb-color-danger); }
.availability-preview { padding:12px; background:var(--sb-surface-control); border-radius:var(--sb-radius-control); }
.availability-preview>p { display:flex; align-items:flex-start; gap:8px; }
.availability-public__status { display:flex; align-items:center; gap:8px; color:var(--sb-color-action); }
.availability-public__status strong { font-weight:var(--sb-type-control-weight); }
.availability-public__hours,.availability-public__dates { margin:8px 0; padding:0; list-style:none; display:grid; gap:4px; }
.availability-public__caption,.availability-public-empty { color:var(--sb-color-muted); font-size:var(--sb-type-caption-size); }
.availability-feedback { margin:0 0 16px; padding:14px; border-radius:var(--sb-radius-control); background:var(--sb-surface-action); }
.availability-feedback--success { display:flex; align-items:center; gap:8px; color:var(--sb-color-success); }
.availability-feedback--error { color:var(--sb-color-danger); background:var(--sb-theme-surface,#fff0ee); }
.availability-feedback ul { padding-left:20px; }
.availability-feedback a { color:inherit; }
.availability-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.master-availability [hidden] { display:none!important; }
@media(max-width:1199px){ .availability-grid { grid-template-columns:minmax(0,1fr); } .availability-day { grid-template-columns:minmax(110px,1fr) minmax(170px,300px) 44px; } }
@media(max-width:767px){ .master-availability-page .cabinet-topbar { padding:16px 12px; } .master-availability-page .cabinet-content--availability { padding:0 12px 16px; } .availability-card { padding:16px 12px; } .availability-status__choices { flex-basis:100%; } }
@media(max-width:599px){ .availability-day__off { grid-column:1/-1; grid-row:2; } .availability-day { grid-template-columns:minmax(0,1fr) 44px; gap:4px 10px; padding:8px 0; } .availability-day__label { grid-column:1; grid-row:1; } .availability-toggle { grid-column:2; grid-row:1; } .availability-day__times { grid-column:1/-1; grid-row:2; } .availability-date-fields { grid-template-columns:minmax(0,1fr); } .availability-section-heading { flex-wrap:wrap; } .availability-section-heading .availability-text-button { margin-left:0; } .availability-status__choices { flex-direction:column; } }

/* UX155 readable explanations. */
.availability-caption,.availability-public__caption{font-size:var(--sb-type-body-size);line-height:var(--sb-leading-body)}
