/* Shared map selection and the approved simple instructor My layout. */
.ic-registration .ic-map-places { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.ic-registration .ic-map-place { display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start; gap:0; min-height:0; padding:7px; overflow:hidden; }
.ic-registration .ic-map-place > .ll-location { display:block; position:relative; width:100%; height:auto; aspect-ratio:1; border-radius:10px; overflow:hidden; }
.ic-registration .ic-map-place > .ic-map-meta { display:grid; gap:3px; padding:8px 3px 1px; color:var(--text); }
.ic-map-meta > small { color:var(--muted); font-size:11px; }
.ic-map-meta > span { display:flex; align-items:center; justify-content:space-between; gap:4px; color:var(--text); font-size:12px; }
.ic-map-place[aria-pressed=true] .ic-map-meta > span { color:var(--accent); }
.ic-map-places > .ic-place-empty { grid-column:1/-1; }
.ic-region-tabs { display:flex; flex-wrap:wrap; gap:5px; padding:4px; margin-top:14px; border:1px solid var(--line); border-radius:13px; background:var(--surface); }
.ic-region-tabs button { flex:1; min-height:44px; padding:8px 12px; border:0; border-radius:9px; color:var(--text); background:transparent; white-space:nowrap; font-size:12px; }
.ic-region-tabs button[aria-pressed=true] { background:var(--action-bg); color:var(--accent-text); font-weight:650; }
.ic-map-place .ll-place-label { font-size:12px; padding:8px 4px; }
.im-dashboard svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.im-dashboard { gap:22px; }
.im-intro small { color:var(--accent); font-size:11px; letter-spacing:1.4px; }
.im-intro h2 { margin:7px 0; font-size:25px; line-height:1.4; letter-spacing:-.8px; }
.im-intro p { margin:0; color:var(--muted); font-size:12px; line-height:1.8; }
.im-status { display:block; padding:12px 14px; margin:0; border:1px solid var(--line); border-radius:12px; background:color-mix(in srgb,var(--accent) 8%,var(--surface)); color:var(--accent); font-size:12px; line-height:1.8; }
.im-profile { display:grid; grid-template-columns:60px minmax(0,1fr) auto; align-items:center; gap:12px; }
.im-avatar { display:grid; place-items:center; flex:none; width:60px; height:60px; border:1px solid var(--line); border-radius:50%; overflow:hidden; background:color-mix(in srgb,var(--accent) 12%,var(--surface)); color:var(--accent); }
.im-avatar > svg { width:28px; height:28px; }
.im-avatar > img { display:block; width:100%; height:100%; object-fit:cover; }
.im-profile h2 { margin:0 0 4px; font-size:18px; line-height:1.4; overflow-wrap:anywhere; }
.im-profile p { margin:0; color:var(--muted); font-size:12px; line-height:1.7; overflow-wrap:anywhere; }
.im-profile > button,.im-section-title > button { display:flex; align-items:center; justify-content:center; gap:4px; padding:8px 0; min-height:44px; border:0; color:var(--accent); background:transparent; font-size:12px; white-space:nowrap; }
.im-profile > button svg,.im-section-title > button svg { width:14px; height:14px; }
.im-schedule { padding:18px; border:1px solid var(--line); border-radius:18px; background:var(--surface); }
.im-section-title { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.im-section-title h3 { margin:0; font-size:17px; }
.im-week { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:3px; margin-top:8px; }
.im-week button { display:grid; justify-items:center; gap:3px; min-width:0; min-height:64px; padding:8px 0 2px; border:0; border-radius:10px; background:transparent; color:var(--text); }
.im-week button.is-today { background:color-mix(in srgb,var(--accent) 12%,var(--bg)); }
.im-week small { color:var(--muted); font-size:11px; }
.im-week b { font-size:14px; font-weight:500; }
.im-week span { height:7px; line-height:7px; font-size:14px; color:var(--accent); }
.im-empty { padding:18px 0 22px; text-align:center; }
.im-empty strong { font-size:14px; }
.im-empty p,.im-next-slot p { font-size:12px; line-height:1.8; color:var(--muted); margin:6px 0 0; }
.im-primary { display:flex; align-items:center; justify-content:center; gap:7px; width:100%; min-height:48px; padding:12px; border:0; border-radius:12px; background:var(--action-bg); color:var(--accent-text); font-size:14px; font-weight:650; }
.im-next-slot { padding:14px; border-left:3px solid var(--accent); border-radius:4px 10px 10px 4px; background:color-mix(in srgb,var(--accent) 6%,var(--bg)); margin:10px 0 16px; font-size:13px; }
.im-settings-pair { display:grid; gap:18px; min-width:0; align-items:start; }
.im-settings-group { display:grid; gap:16px; min-width:0; padding:18px; border:1px solid var(--line); border-radius:18px; background:var(--surface); }
.im-settings-group > h3 { margin:0; font-size:17px; line-height:1.5; letter-spacing:-.4px; }
.im-preparation-grid,.im-lesson-start,.im-profile-content,.im-profile-main,.im-profile-manage { display:grid; min-width:0; gap:14px; align-content:start; }
.im-preparation-grid { gap:20px; }
.im-lesson-start > .iw-action { min-height:88px; border:1px solid var(--accent); border-radius:14px; background:color-mix(in srgb,var(--accent) 7%,var(--surface)); }
.im-lesson-start > .iw-action strong { color:var(--accent); }
.im-settings-group .im-profile { grid-template-columns:48px minmax(0,1fr); gap:10px; }
.im-settings-group .im-profile .im-avatar { width:48px; height:48px; }
.im-settings-group .im-profile h2 { font-size:17px; }
.im-settings-group .im-profile > button { grid-column:2; justify-self:start; min-height:44px; margin-top:-6px; }
.im-settings-rows { overflow:hidden; border:1px solid var(--line); border-radius:12px; }
.im-settings-rows > * + * { border-top:1px solid var(--line); }
.im-settings-group .iw-action { min-height:64px; padding:12px; font:inherit; }
.im-settings-group > .iw-action { border:1px solid var(--line); border-radius:12px; }
.im-settings-group .iw-action strong { line-height:1.6; overflow-wrap:anywhere; }
.im-settings-group .iw-action small { overflow-wrap:anywhere; }
.im-setting-info { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 10px; padding:12px; font-size:13px; line-height:1.6; }
.im-setting-info > span { max-width:150px; color:var(--accent); text-align:right; overflow-wrap:anywhere; }
.im-setting-info > small { grid-column:1/-1; color:var(--muted); font-size:12px; line-height:1.7; }
.im-settings-group .im-service-settings { display:grid; gap:8px; padding:0; margin:0; border:0; border-radius:0; background:transparent; }
.im-settings-group .im-service-settings > .iw-action { display:flex; width:100%; min-height:64px; padding:12px; border:1px solid var(--line); border-radius:12px; background:transparent; color:var(--text); text-align:left; }
.im-settings-hint,.im-settings-group .im-service-settings > .im-settings-hint { margin:0; color:var(--muted); font-size:12px; line-height:1.8; overflow-wrap:anywhere; }
.im-settings-group .im-schedule { min-width:0; padding:0; border:0; border-radius:0; background:transparent; }
.im-settings-group .im-section-title h3 { font-size:14px; }
.im-settings-group .im-empty { padding:12px 0 16px; }
.im-week-details { margin-top:10px; }
.im-week-details > summary { display:flex; align-items:center; min-height:44px; padding:8px 0; color:var(--accent); font-size:12px; cursor:pointer; }
.im-week-details > summary::after { content:'⌄'; margin-left:auto; }
.im-week-details[open] > summary::after { transform:rotate(180deg); }
.im-settings-disclosure { min-width:0; padding:0; }
.im-settings-disclosure > summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:56px; padding:14px 16px; border:1px solid var(--line); border-radius:14px; background:var(--surface); font-size:14px; cursor:pointer; }
.im-settings-disclosure > summary > span { display:flex; align-items:center; gap:4px; color:var(--accent); font-size:12px; }
.im-settings-disclosure[open] > summary svg { transform:rotate(90deg); }
.im-settings-disclosure > .im-settings-pair { margin-top:16px; }
.im-operation > .iw-actions + .iw-actions { margin-top:12px; }
.im-operation > .iw-actions > .iw-action:only-child,.im-settings-group > .iw-actions > .iw-action:only-child { grid-column:1/-1; }
.im-settings-group button:focus-visible,.im-settings-disclosure summary:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.ile-title-summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-width:0; padding:12px 14px; margin-bottom:18px; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.ile-title-summary > div { display:grid; gap:4px; min-width:0; overflow-wrap:anywhere; }
.ile-title-summary small { color:var(--muted); font-size:11px; }
.ile-title-summary strong { font-size:14px; line-height:1.5; }
.ile-title-summary > button { flex:none; width:auto; min-width:76px; min-height:44px; padding:10px 12px; font-size:12px; }
@media(min-width:960px) {
 .im-preparation-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
 .im-preparation-grid > .im-schedule { padding-left:24px; border-left:1px solid var(--line); }
 .im-profile-content { grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:24px; align-items:start; }
 .im-profile-settings .im-profile { grid-template-columns:48px minmax(0,1fr) auto; }
 .im-profile-settings .im-profile > button { grid-column:auto; margin-top:0; }
 .im-profile-manage .im-settings-rows { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
 .im-profile-manage .im-settings-rows > * + * { border-top:0; border-left:1px solid var(--line); }
 .im-profile-manage .im-settings-rows > :nth-child(n+3) { grid-column:1/-1; border-left:0; border-top:1px solid var(--line); }
 .im-profile-manage .im-setting-info { grid-template-columns:minmax(0,1fr); }
 .im-profile-manage .im-setting-info > span { max-width:none; text-align:left; }
}
@media(max-width:359px) { .im-settings-group { padding:14px; } .im-setting-info { grid-template-columns:minmax(0,1fr); } .im-setting-info > span { max-width:none; text-align:left; } }
.im-photo-row { display:flex; gap:16px; align-items:center; }
.im-photo-row > div { min-width:0; }
.im-avatar-large { width:80px; height:80px; aspect-ratio:1; border-radius:16px; }
.im-photo-row strong { font-size:14px; }
.im-photo-row p,.im-evidence p { color:var(--muted); font-size:12px; line-height:1.8; margin:7px 0 10px; }
.im-upload { display:inline-flex; align-items:center; position:relative; overflow:hidden; min-height:44px; padding:9px 12px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--text); font-size:12px; }
.im-upload input { position:absolute; inset:0; opacity:0; width:100%; height:100%; cursor:pointer; font-size:16px; }
.im-upload:focus-within { outline:2px solid var(--accent); outline-offset:3px; }
.im-location { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:54px; padding:12px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--text); text-align:left; font-size:13px; line-height:1.8; }
.im-location span { min-width:0; overflow-wrap:anywhere; }
.im-evidence { padding:16px; border:1px dashed var(--line); border-radius:14px; font-size:13px; }
.im-evidence > small { display:block; margin-top:10px; color:var(--muted); font-size:11px; line-height:1.8; }
.im-evidence > img { display:block; width:100px; height:100px; object-fit:contain; border-radius:10px; margin-top:10px; }
.im-profile-optional { margin-top:0; min-width:0; }
.im-profile-optional > summary { position:relative; display:grid; gap:4px; padding:14px 28px 14px 0; list-style:none; cursor:pointer; }
.im-profile-optional > summary::-webkit-details-marker { display:none; }
.im-profile-optional > summary::after { content:'⌄'; position:absolute; right:2px; top:16px; color:var(--accent); }
.im-profile-optional[open] > summary::after { content:'⌃'; }
.im-profile-optional > summary strong { font-size:13px; font-weight:600; }
.im-profile-optional > summary small { color:var(--muted); font-size:11px; line-height:1.6; overflow-wrap:anywhere; }
.im-proof-disclosure .im-evidence { margin:0 0 8px; }
#instructor-my-profile textarea { height:84px; min-height:84px; max-height:180px; }
.im-public-preview { min-width:0; display:grid; gap:12px; padding:16px; border:1px solid var(--line); border-radius:14px; background:var(--surface); }
.im-public-preview > span { color:var(--accent); font-size:12px; }
.im-public-preview > div { display:grid; gap:7px; min-width:0; overflow-wrap:anywhere; }
.im-public-preview strong { font-size:16px; line-height:1.5; }
.im-public-preview p { margin:0; white-space:pre-line; font-size:13px; line-height:1.7; }
.im-public-preview small { color:var(--muted); font-size:11px; line-height:1.7; }
.im-preview-credential { padding-top:7px; border-top:1px solid var(--line); }
.im-experience-special,.im-experience-years { display:grid; gap:8px; }
.im-experience-special { grid-template-columns:repeat(2,minmax(0,1fr)); }
.im-experience-years { grid-template-columns:repeat(5,minmax(0,1fr)); }
.im-experience-choice { position:relative; display:block; min-width:0; cursor:pointer; }
.im-experience-choice input { position:absolute; width:1px; height:1px; min-width:0; min-height:0; margin:0; padding:0; border:0; clip-path:inset(50%); overflow:hidden; white-space:nowrap; }
.im-experience-choice > span { display:flex; align-items:center; justify-content:center; min-height:44px; padding:10px 4px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--text); font-size:13px; line-height:20px; font-weight:400; }
.im-experience-choice input:checked + span { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 10%,var(--surface)); color:var(--accent); font-weight:600; }
.im-experience-choice input:focus-visible + span { outline:2px solid var(--accent); outline-offset:3px; }
@media(max-width:359px) { .im-experience-years { grid-template-columns:repeat(4,minmax(0,1fr)); } }
.is-service-choices { display:grid; gap:24px; min-width:0; }
.is-choice-group { min-width:0; margin:0; padding:0; border:0; }
.is-choice-group > legend,.is-choice-group > h4 { margin:0 0 12px; padding:0; font-size:15px; line-height:1.6; font-weight:600; }
.is-audience-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.is-rental-options { display:grid; gap:10px; }
.is-service-choice { position:relative; display:flex; align-items:center; justify-content:center; gap:7px; width:100%; min-width:0; min-height:66px; padding:12px 8px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--text); font:inherit; font-size:13px; line-height:1.6; text-align:center; cursor:pointer; }
.is-service-choice strong { font-size:13px; font-weight:600; }
.is-service-choice[aria-pressed=true] { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 9%,var(--surface)); }
.is-service-choice:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.is-choice-check { flex:none; display:grid; place-items:center; width:18px; height:18px; border:1px solid var(--line); border-radius:50%; color:transparent; font-size:12px; line-height:1; }
.is-service-choice[aria-pressed=true] .is-choice-check { color:var(--accent-text); border-color:var(--action-bg); background:var(--action-bg); }
.is-rental-choice { justify-content:flex-start; gap:12px; min-height:76px; padding:14px; text-align:left; }
.is-rental-choice > :not(.is-choice-check) { min-width:0; }
.is-rental-choice > span:first-child { flex:1; }
.is-rental-choice strong,.is-rental-choice small { display:block; overflow-wrap:anywhere; }
.is-rental-choice small { margin-top:4px; color:var(--muted); font-size:12px; line-height:1.65; font-weight:400; }
.ir-settings { display:grid; gap:16px; min-width:0; padding:16px; border:1px solid var(--line); border-radius:16px; background:var(--surface); }
.ir-settings.ir-rentals { padding:0; border:0; border-radius:0; background:transparent; }
.ir-settings h4 { margin:0; font-size:15px; line-height:1.6; }
.ir-settings > p,.ir-provider > p { margin:0; color:var(--muted); font-size:12px; line-height:1.75; }
.ir-provider,.ir-fees { display:grid; gap:16px; min-width:0; }
.ir-provider .ic-field { margin:0; }
.ir-add-types { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.ir-add-types > button,.ir-cost-link { min-width:0; min-height:48px; padding:10px 8px; border:1px solid var(--accent); border-radius:10px; background:color-mix(in srgb,var(--accent) 7%,var(--surface)); color:var(--text); font:inherit; font-size:12px; line-height:1.6; cursor:pointer; }
.ir-add-types > button { word-break:keep-all; white-space:nowrap; }
.ir-add-types > [data-value="equipment"] { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:56px; padding-inline:12px; text-align:left; }
.ir-add-types strong { flex:none; font:inherit; font-weight:600; }
.ir-add-types small { min-width:0; color:var(--muted); font-size:11px; line-height:1.7; text-align:right; white-space:normal; }
.ir-fee-card { display:grid; gap:16px; min-width:0; padding:16px; border:1px solid var(--line); border-radius:16px; background:var(--surface); }
.ir-fee-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.ir-fee-head strong { font-size:14px; line-height:1.6; }
.ir-fee-head > button { min-height:44px; padding:8px 10px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--muted); font:inherit; font-size:12px; cursor:pointer; }
.ir-fee-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.ir-fee-fields .ic-field { min-width:0; margin:0; }
.ir-fee-pricing { display:grid; gap:16px; min-width:0; padding-top:16px; border-top:1px solid var(--line); }
.ir-price-field { margin:0; }
.ir-money-input { position:relative; min-width:0; }
.ir-money-input > input { padding-right:38px; min-height:52px; font-size:18px; font-weight:600; font-variant-numeric:tabular-nums; }
.ir-money-input > input:disabled { opacity:1; color:var(--muted); }
.ir-money-input > span { position:absolute; right:14px; top:50%; transform:translateY(-50%); color:var(--muted); font-size:14px; font-weight:400; pointer-events:none; }
.ir-fee-preview { display:grid; gap:6px; min-width:0; padding:14px; border-radius:12px; background:color-mix(in srgb,var(--accent) 6%,var(--surface)); }
.ir-fee-preview > span { color:var(--muted); font-size:11px; line-height:1.6; }
.ir-fee-preview > strong { color:var(--text); font-size:14px; line-height:1.6; overflow-wrap:anywhere; }
.ir-fee-preview > p { margin:0; color:var(--text); font-size:12px; line-height:1.8; white-space:pre-line; overflow-wrap:anywhere; }
.ir-name-edit { min-width:0; border-top:1px solid var(--line); }
.ir-name-edit > summary { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:44px; color:var(--muted); font-size:12px; line-height:1.6; cursor:pointer; list-style:none; }
.ir-name-edit > summary::-webkit-details-marker { display:none; }
.ir-name-edit > summary::after { content:'⌄'; color:var(--accent); }
.ir-name-edit[open] > summary::after { content:'⌃'; }
.ir-name-edit .ic-field { margin:8px 0 0; }
.ir-fee-choices,.ir-components { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; min-width:0; margin:0; padding:0; border:0; }
.ir-fee-choices > legend,.ir-components > legend { padding:0; margin-bottom:9px; color:var(--text); font-size:12px; line-height:1.6; }
.ir-components > p { grid-column:1/-1; margin:4px 0 0; }
.ir-choice { position:relative; min-width:0; min-height:44px; padding:10px 24px 10px 8px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--text); font:inherit; font-size:12px; line-height:1.6; text-align:center; cursor:pointer; }
.ir-rentals .ir-choice { white-space:nowrap; }
.ir-choice[aria-pressed=true] { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 9%,var(--surface)); }
.ir-choice[aria-pressed=true]::after { content:'✓'; position:absolute; right:8px; top:50%; transform:translateY(-50%); color:var(--accent); }
.ir-choice:disabled { cursor:default; opacity:.8; }
.ir-settings button:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.ir-settings .ic-note { margin-top:0; }
@media(max-width:359px) { .ir-settings { padding:12px; } .ir-fee-card { padding:12px; } .ir-add-types { gap:6px; } .ir-add-types > button { padding-inline:5px; font-size:11px; } .ir-fee-fields { grid-template-columns:1fr; } }
@media(max-width:359px) { .is-audience-options { gap:6px; } .is-service-choice { padding-inline:6px; gap:5px; font-size:12px; } .is-service-choice strong { font-size:12px; } .is-choice-check { width:16px; height:16px; } .is-rental-choice { padding:12px; gap:10px; } }
.im-calendar { border:1px solid var(--line); border-radius:16px; background:var(--surface); padding:12px; }
.im-month { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; font-size:16px; }
.im-month button { display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; border-radius:10px; background:transparent; color:var(--text); font-size:24px; }
.im-dates { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:2px; }
.im-dates > span { min-width:0; text-align:center; color:var(--muted); font-size:11px; line-height:24px; }
.im-dates button { min-width:0; min-height:44px; border:0; border-radius:10px; padding:6px 0; color:var(--text); background:transparent; font-size:14px; }
.im-dates button[aria-pressed=true] { background:var(--action-bg); color:var(--accent-text); font-weight:650; }
.im-dates button:disabled { opacity:.3; }
#instructor-availability summary { min-height:44px; padding:12px 0; font-size:13px; }
.im-slot-list { display:grid; gap:12px; }
.im-slot { padding:16px; border:1px solid var(--line); border-radius:14px; background:var(--surface); font-size:14px; }
.im-slot p { margin:8px 0; color:var(--muted); font-size:13px; line-height:1.8; }
.im-slot > div { display:flex; justify-content:flex-end; gap:8px; }
.im-slot button { min-height:44px; padding:9px 14px; border:1px solid var(--line); border-radius:10px; color:var(--text); background:var(--bg); font-size:12px; }
.im-card-avatar { position:absolute; width:44px; height:44px; object-fit:cover; border:1px solid #fff9; border-radius:50%; top:74px; right:24px; }
@media(min-width:600px) { .ic-registration .ic-map-places { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:359px) { .im-profile { grid-template-columns:48px minmax(0,1fr); gap:10px; } .im-profile > .im-avatar { width:48px; height:48px; } .im-profile > button { grid-column:2; justify-self:start; margin-top:-8px; } .im-profile h2 { font-size:17px; } .im-schedule { padding:14px; } .im-calendar { padding:8px; } .im-dates { gap:0; } .im-dates button { min-height:44px; font-size:13px; } }

.ld-avatar > img { display:block; width:100%; height:100%; object-fit:cover; border-radius:50%; }

#contact-preview { width:min(580px,calc(100vw - 32px)); max-height:calc(100dvh - 40px); padding:0; border:1px solid var(--line); border-radius:24px; background:var(--bg); color:var(--text); overflow:hidden; }
#contact-preview::backdrop { background:#031018b3; backdrop-filter:blur(12px); }
.ct-panel { display:flex; flex-direction:column; max-height:calc(100dvh - 42px); }
.ct-panel > header { display:flex; align-items:center; gap:12px; padding:14px 18px; border-bottom:1px solid var(--line); flex:none; }
.ct-panel h2 { flex:1; font-size:16px; margin:0; }
.ct-panel > header button { width:44px; min-height:44px; border:1px solid var(--line); border-radius:14px; background:var(--surface); color:var(--text); font-size:24px; }
.ct-panel > footer { padding:12px 20px; border-top:1px solid var(--line); flex:none; }
.ct-panel > footer button { width:100%; }
.ct-scroll { overflow:auto; overscroll-behavior:contain; min-height:0; padding:22px; overflow-wrap:anywhere; }
.ct-scroll h3 { font-size:18px; }
.ct-scroll > p { font-size:12px; color:var(--muted); line-height:1.8; }
.ct-scroll > button { width:100%; margin-top:12px; }
.ct-list { display:grid; gap:12px; margin:20px 0; }
.ct-list > button { display:grid; gap:9px; width:100%; min-height:92px; padding:16px; text-align:left; border:1px solid var(--line); border-radius:16px; background:var(--surface); color:var(--text); font:inherit; font-size:14px; }
.ct-list small { font-size:11px; color:var(--accent); line-height:1.8; }
.ct-list span { font-size:12px; color:var(--muted); line-height:1.8; }
.ct-list button:disabled { opacity:.6; }
.ct-thread { display:grid; gap:12px; margin:24px 0; }
.ct-thread .lm-bubble small { display:block; font-size:11px; opacity:.75; margin-bottom:8px; }
.ct-thread .lm-bubble { white-space:pre-wrap; }
.ct-quick { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.ct-quick button { min-height:44px; padding:10px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--accent); font:inherit; font-size:12px; }
.ct-status { min-height:1em; color:var(--accent)!important; }
@media(max-width:599px) { #contact-preview { width:100%; max-width:100%; height:var(--contact-height,100dvh); max-height:var(--contact-height,100dvh); margin:0; position:fixed; top:var(--contact-top,0); border:0; border-radius:0; } .ct-panel { height:100%; max-height:100%; } .ct-scroll { flex:1; padding:20px; } .ct-panel > footer { padding-bottom:max(12px,env(safe-area-inset-bottom)); } }

/* Three short steps share the existing instructor form and keyboard viewport. */
.ile-progress { display:flex; flex-wrap:wrap; gap:12px; margin:0 0 24px; color:var(--accent); font-size:13px; }
.ile-progress b { margin-left:auto; color:var(--muted); }
.ile-progress progress { width:100%; height:4px; border:0; accent-color:var(--accent); }
.ile-form { gap:22px; }
.ile-form > button,.ile-section > button { min-height:48px; padding:12px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--accent); font:inherit; }
.ile-options { display:grid; gap:14px; }
.ile-option { min-width:0; padding:16px; border:1px solid var(--line); border-radius:16px; background:var(--surface); display:grid; gap:16px; }
.ile-option header { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.ile-option header button { min-height:44px; padding:8px 12px; border:0; border-radius:10px; color:var(--muted); background:var(--bg); font:inherit; font-size:12px; }
.ile-option small { font-size:11px; color:var(--muted); line-height:1.7; }
.ile-section { display:grid; gap:14px; margin-top:12px; }
.ile-section h4 { margin:0; font-size:16px; }
.ile-section > p { font-size:12px; color:var(--muted); line-height:1.8; margin:0; }
.ile-slot { display:flex; align-items:center; justify-content:space-between; text-align:left; gap:12px; }
.ile-slot strong,.ile-slot small { display:block; line-height:1.8; }
.ile-slot small { color:var(--muted); font-size:11px; }
.ile-slot[aria-pressed=true] { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 10%,var(--surface)); }
.ile-optional { border-top:1px solid var(--line); padding-top:12px; }
.ile-optional summary { cursor:pointer; min-height:44px; display:flex; align-items:center; color:var(--accent); font-size:13px; }
.ile-optional .ic-field { margin:16px 0; }
.ile-included { display:flex; flex-wrap:wrap; gap:8px; padding:0; margin:0; border:0; }
.ile-included legend { width:100%; margin-bottom:12px; font-size:14px; }
.ile-included button { min-height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--muted); font:inherit; font-size:12px; }
.ile-included button[aria-pressed=true] { color:var(--accent); border-color:var(--accent); }
.ic-panel[data-stage=lesson] .ic-footer { grid-template-columns:auto minmax(0,1fr); }
.ic-panel[data-stage=lesson] .ic-footer > :only-child { grid-column:1/-1; }
@media(max-width:359px) { .ile-option { padding:12px; } .ile-option .ic-pair { grid-template-columns:1fr; } }

/* Availability presets keep daily setup short; detailed controls open on demand. */
#instructor-availability .im-place-settings,#instructor-availability .im-period-settings { min-width:0; margin:0; padding:0; border:0; }
#instructor-availability .im-place-settings > legend,#instructor-availability .im-period-settings > legend { margin:0 0 10px; padding:0; font-size:13px; font-weight:600; }
.im-place-options { display:flex; flex-wrap:wrap; gap:8px; }
.im-place-options > button,.im-fixed-place { display:flex; align-items:center; gap:8px; min-width:0; min-height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--text); font:inherit; font-size:13px; line-height:1.6; white-space:nowrap; }
.im-place-options > button { cursor:pointer; }
.im-place-options > button[aria-pressed=true] { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 10%,var(--surface)); color:var(--accent); }
.im-place-options > button:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.im-fixed-place { margin:0; border-color:var(--line); }
.im-fixed-place svg { width:16px; height:16px; flex:none; color:var(--accent); }
.im-fixed-place strong { font:inherit; font-weight:500; }
#instructor-availability .im-date-presets button { white-space:nowrap; }
#instructor-availability .im-date-presets [aria-pressed=true] { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 10%,var(--surface)); color:var(--accent); }
#instructor-availability .im-range-summary { min-height:48px; padding:10px 12px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--text); }
.im-range-summary > strong { min-width:0; font-size:12px; font-weight:500; font-variant-numeric:tabular-nums; }
.im-range-summary > span { flex:none; color:var(--accent); font-size:11px; white-space:nowrap; }
#instructor-availability .im-operating-settings > .im-time-picker { margin-top:12px; }
#instructor-availability .im-operating-settings,#instructor-availability .im-buffer-settings { min-width:0; margin:0; padding:0; border:0; }
#instructor-availability .im-operating-settings > legend,#instructor-availability .im-buffer-settings > legend { margin-bottom:10px; padding:0; font-size:13px; font-weight:600; }
#instructor-availability .im-schedule-presets { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
#instructor-availability .im-schedule-presets > button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-width:0; min-height:56px; padding:10px 4px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--text); font:inherit; text-align:center; cursor:pointer; }
#instructor-availability .im-schedule-presets strong { font-size:12px; line-height:1.5; font-weight:600; }
#instructor-availability .im-schedule-presets small { color:var(--muted); font-size:10px; line-height:1.5; }
#instructor-availability .im-schedule-presets > button[aria-pressed=true] { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 10%,var(--surface)); color:var(--accent); }
#instructor-availability .im-schedule-presets > button[aria-pressed=true] small { color:var(--accent); }
#instructor-availability .im-operating-presets + .im-time-fields { margin-top:12px; }
.im-lunch-settings { display:grid; gap:10px; min-width:0; }
.im-lunch-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; min-width:0; }
.im-lunch-row > :only-child { grid-column:1/-1; }
.im-lunch-toggle { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:68px; padding:14px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--text); font:inherit; text-align:left; cursor:pointer; }
.im-lunch-toggle > span:first-child { display:grid; gap:5px; min-width:0; }
.im-lunch-toggle strong { font-size:13px; line-height:1.5; }
.im-lunch-toggle small { color:var(--muted); font-size:12px; font-variant-numeric:tabular-nums; }
.im-lunch-toggle[aria-pressed=true] { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 7%,var(--surface)); }
.im-setting-check { display:grid; place-items:center; flex:none; width:24px; height:24px; border:1px solid var(--line); border-radius:50%; color:var(--muted); }
.im-lunch-toggle[aria-pressed=true] .im-setting-check { border-color:var(--action-bg); background:var(--action-bg); color:var(--accent-text); }
.im-lunch-edit { min-width:52px; min-height:44px; padding:10px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--accent); font:inherit; font-size:12px; cursor:pointer; white-space:nowrap; }
#instructor-availability .im-setting-note { margin:8px 0 0; color:var(--muted); font-size:11px; line-height:1.8; }
#instructor-availability .im-selection-summary { display:grid; align-items:start; gap:8px; }
#instructor-availability .im-selection-summary span { font-size:12px; line-height:1.8; }
#instructor-availability .im-selection-summary small { color:var(--muted); font-size:11px; line-height:1.7; }
#instructor-availability :is(.im-schedule-presets > button,.im-lunch-toggle,.im-lunch-edit):focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
@media(max-width:359px) { #instructor-availability .im-schedule-presets,#instructor-availability .im-date-presets { gap:6px; } #instructor-availability .im-schedule-presets strong { font-size:11px; } #instructor-availability .im-date-presets > button { padding-inline:4px; font-size:11px; } }
@media(max-width:599px) { #instructor-availability .im-weekday-options { grid-template-columns:repeat(4,minmax(44px,1fr)); gap:6px; } }
.im-calendar-toggle { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:44px; width:100%; padding:8px 0; border:0; background:transparent; color:var(--accent); font:inherit; font-size:12px; text-align:left; cursor:pointer; }
.im-calendar-editor { display:grid; gap:10px; min-width:0; }
.im-calendar-guidance { margin:0; color:var(--muted); font-size:12px; line-height:1.75; }
.im-calendar-toggle:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }

/* One place for availability, one shared item editor for defaults and lessons. */
.ifm-shop-row { display:flex; align-items:center; justify-content:space-between; gap:14px; width:100%; min-height:68px; padding:14px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--text); text-align:left; font:inherit; }
.ifm-shop-row > span:first-child { display:grid; gap:5px; min-width:0; }
.ifm-shop-row strong { font-size:14px; line-height:1.6; overflow-wrap:anywhere; }
.ifm-shop-row small { color:var(--muted); font-size:12px; line-height:1.7; overflow-wrap:anywhere; }
.ifm-shop-row > span:last-child { flex:none; color:var(--accent); font-size:12px; }
.ic-footer .ifm-delete { min-width:52px; flex:0; color:var(--muted); }
.ile-service-settings,.ile-schedule-summary { padding:14px; margin:0; border:1px solid var(--line); border-radius:12px; min-width:0; background:var(--surface); }
.ile-service-settings > summary { cursor:pointer; min-height:44px; font-size:13px; line-height:1.7; color:var(--text); }
.ile-service-settings[open] > summary { margin-bottom:14px; }
.ile-service-settings .is-audience-options { margin-top:0; }
.ile-schedule-summary h4 { margin:0 0 6px; font-size:14px; }
.ile-schedule-summary p { margin:4px 0; color:var(--muted); font-size:12px; line-height:1.7; }
.ile-schedule-summary > button { display:flex; justify-content:center; align-items:center; gap:7px; width:100%; min-height:44px; padding:10px 12px; margin-top:10px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--accent); font:inherit; font-size:13px; }
.ile-schedule-summary strong { display:block; font-size:13px; line-height:1.7; }
@media(min-width:960px) { .im-settings-pair { grid-template-columns:repeat(2,minmax(0,1fr)); } .im-settings-pair > .im-profile-settings { grid-column:1/-1; } }

/* Click choices keep setup compact and avoid platform-specific select overlays. */
.ile-choice-field { border:0; padding:0; margin:0; min-width:0; }
.ile-choice-field legend { padding:0; margin:0 0 8px; font-size:13px; line-height:1.6; }
.ile-choice-buttons { display:flex; flex-wrap:wrap; gap:8px; min-width:0; }
.ile-choice-buttons > button { flex:1 1 60px; min-width:54px; min-height:44px; padding:10px 8px; border:1px solid var(--line); border-radius:10px; color:var(--text); background:var(--surface); font:inherit; font-size:12px; line-height:1.5; cursor:pointer; }
.ile-choice-buttons > [aria-pressed=true] { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 8%,var(--surface)); color:var(--accent); font-weight:650; }
.ile-choice-buttons > button:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.ile-cost-heading { margin:0; font-size:17px; line-height:1.6; letter-spacing:-.3px; }
.ile-form:has(.ile-cost-heading) { gap:16px; }
.ile-progress { margin-bottom:16px; gap:8px; }
.ile-title-summary { margin-bottom:16px; }
.ile-service-settings > summary { display:flex; align-items:center; justify-content:space-between; gap:12px; list-style:none; }
.ile-service-settings > summary small { display:block; color:var(--muted); font-size:12px; }
.ile-service-settings > summary::-webkit-details-marker { display:none; }

.im-settings-disclosure .im-settings-pair { grid-template-columns:1fr; }

/* One content column and one spacing rhythm throughout instructor authoring. */
#instructor-flow .ic-scroll { padding-inline-end:max(0px,calc(var(--dialog-space,24px) - var(--ic-scrollbar-width,0px))); }
.ic-panel[data-stage="lesson"] .ic-scroll { padding-block:18px; }
.ic-panel[data-stage="lesson"] .ile-form { gap:16px; }
.ic-panel[data-stage="lesson"] .ic-intro { margin:0; }
.ic-panel[data-stage="lesson"] .ic-note { margin:0; line-height:1.65; }
.ic-panel[data-stage="lesson"] .ic-field { gap:7px; }
.ic-panel[data-stage="lesson"] .ic-field > small { font-size:11px; line-height:1.6; }
.ic-panel[data-stage="lesson"] .ile-optional { padding-top:0; }
.ic-panel[data-stage="lesson"] .ile-service-settings { padding:12px; }
.ic-panel[data-stage="lesson"] .ile-progress { gap:6px; margin:0 0 14px; font-size:12px; }
.ile-progress .ile-resumed { color:var(--muted); font-size:11px; margin-left:6px; }
.ile-progress progress { display:block; appearance:none; -webkit-appearance:none; height:4px; border:0; border-radius:4px; overflow:hidden; background:var(--line); color:var(--action-bg); }
.ile-progress progress::-webkit-progress-bar { background:var(--line); border-radius:4px; }
.ile-progress progress::-webkit-progress-value { background:var(--action-bg); border-radius:4px; }
.ile-progress progress::-moz-progress-bar { background:var(--action-bg); border-radius:4px; }
.ic-panel[data-stage="lesson"] .ic-footer { flex-wrap:wrap; }
.ic-panel[data-stage="lesson"] .ile-footer-issue { flex:1 1 100%; margin:0; color:var(--accent); font-size:12px; line-height:1.6; }
.ic-panel[data-stage="lesson"] .ile-footer-issue:empty,.ic-panel[data-stage="lesson"] #instructor-lesson-issue { display:none; }
@media(max-width:599px) { .ic-panel[data-stage="lesson"] .ic-scroll { padding-block:16px; } }
.ic-panel[data-stage="lesson"] .ic-footer > .ic-primary { flex:1; min-width:0; }
.ic-panel[data-stage="lesson"] .ic-footer > .ic-secondary { flex:0 0 auto; width:auto; }
.ic-panel[data-stage="lesson"] .ic-footer > [data-instructor="lesson-draft-save"] { flex:1 1 100%; }
.ic-panel[data-stage="lesson"] .ic-footer { display:flex; align-items:center; }

/* Keep item/shop edits in the same compact dialog frame as lesson authoring. */
.ic-panel:is([data-stage="fee-item"],[data-stage="rental-shop"]) .ic-footer { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.ic-panel:is([data-stage="fee-item"],[data-stage="rental-shop"]) .ic-footer > .ic-secondary { flex:0 0 auto; width:auto; }
.ic-panel:is([data-stage="fee-item"],[data-stage="rental-shop"]) .ic-footer > .ic-primary { flex:1; min-width:0; }

.ic-panel:is([data-stage="fee-item"],[data-stage="rental-shop"]) .ic-footer > [role="status"] { flex:1 1 100%; margin:0; color:var(--accent); font-size:12px; line-height:1.6; text-align:left; }
.ic-panel:is([data-stage="fee-item"],[data-stage="rental-shop"]) .ic-footer > [role="status"]:empty { display:none; }

/* Space the expanded settings as one body rather than nested cards. */
.ile-service-body { display:grid; gap:16px; min-width:0; }
.ile-service-body > .ir-settings { padding:0; border:0; border-radius:0; background:transparent; gap:12px; }
.ir-settings > [role="status"]:empty { display:none; }
.ic-scroll { overflow-anchor:none; scroll-behavior:auto; }
.ic-panel[data-stage="lesson-costs"] .ic-scroll { padding-block:18px; }
.ilc-intro { margin:0 0 16px; }
.ic-panel[data-stage="lesson-costs"] .ic-footer { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.ic-panel[data-stage="lesson-costs"] .ic-footer > .ic-secondary { flex:0 0 auto; width:auto; }
.ic-panel[data-stage="lesson-costs"] .ic-footer > .ic-primary { flex:1; min-width:0; }
.ic-panel[data-stage="lesson-costs"] .ile-footer-issue { flex:1 1 100%; margin:0; color:var(--accent); font-size:12px; line-height:1.6; }
.ic-panel[data-stage="lesson-costs"] .ile-footer-issue:empty { display:none; }
