/* Layout adapters for server-rendered forms. Components/colors come from prototype.css. */
.auth-page{max-width:520px;margin:54px auto}.auth-page h1,.account-content h1{font-size:32px;letter-spacing:-1px}.auth-page label{display:grid;gap:6px;font-size:12px;font-weight:600}.auth-page form{display:grid;gap:15px}.auth-page form button{justify-self:start}.auth-page p:empty{display:none}.account-shell{display:grid;grid-template-columns:220px minmax(0,1fr);gap:36px;margin:36px 0}.account-content{max-width:820px;min-width:0}.auth-links{display:flex;gap:16px;flex-wrap:wrap}.auth-links a,.auth-page a{color:var(--accent)}.notice{padding:12px 16px;border-radius:9px;background:var(--soft);margin-bottom:16px}.notice.error{border:1px solid var(--accent)}.account-content .field{margin-bottom:15px}.account-content input[readonly]{background:var(--shade)}.account-content .panel h2{font-size:21px}.auth-layout-footer{border-top:1px solid var(--line);padding:20px 0;margin-top:48px;color:var(--muted)}.top .auth-links{margin-left:auto}.account-content form{margin-bottom:0}.account-content .role-toggle{max-width:360px}.account-content .btn{margin-top:4px}@media(max-width:760px){.account-shell{grid-template-columns:1fr;gap:12px;margin-top:22px}.auth-page{margin:26px auto}.wrap{padding-left:18px;padding-right:18px}.top{gap:10px}.top .logo{font-size:20px}.top .auth-links{gap:8px}.account-content h1{font-size:28px}}

/* Authentication uses the prototype dialog; routes also work without JavaScript. */
.entry-intro { padding: 64px 0; max-width: 620px; }
.entry-intro h1 { font-size: clamp(30px, 5vw, 48px); }
.entry-intro p { margin: 18px 0 24px; }
#auth-dialog { padding: 8px; overflow: hidden; }
#auth-dialog .close { z-index: 1; }
.auth-dialog-content { padding: 22px; max-height: calc(90dvh - 18px); overflow-y: auto; scrollbar-width: thin; scrollbar-gutter: stable; }
.auth-dialog-content h1 { font-size: 25px; padding-right: 25px; }
.auth-dialog-content form { display: grid; gap: 15px; margin: 20px 0; }
.auth-dialog-content label { display: grid; gap: 6px; font-size: 12px; font-weight: 600; }
.auth-dialog-content a { color: var(--accent); }
.auth-dialog-content [aria-busy="true"] { opacity: .7; }
@media (max-width: 550px) {
    .auth-dialog-content { padding: 18px 14px; }
    .top .logo { font-size: 18px; }
    .top .auth-links { gap: 6px; }
    .top .auth-links .btn { padding: 7px 9px; font-size: 11px; }
}
/* Preserve the reference form rhythm; hidden password fields must stay out of layout. */
.auth-dialog-content .field { display: block; }
.auth-dialog-content .field[hidden] { display: none; }
.auth-dialog-content form.stack { margin: 0; }
.auth-dialog-content .auth-switch a { color: inherit; }
.auth-dialog-content .field { display: flex; flex-direction: column; gap: 6px; }
.auth-dialog-content .field[hidden] { display: none; }
.auth-dialog-content a { color: inherit; }
#auth-dialog .close { width: 28px; height: 28px; line-height: 1; border-radius: 50%; background: var(--panel); display: grid; place-items: center; }
.auth-dialog-content .auth-switch a { color: var(--accent); font-size: inherit; }
.auth-dialog-content form.stack + form.stack { margin-top: 15px; }
.master-profile-form .field { margin-bottom: 0; }
.master-profile-form .btn { margin-top: 0; }
.public-profile { margin: 36px 0; }
.master-avatar { width: 80px; height: 80px; font-size: 24px; flex-shrink: 0; }
.master-name { font-size: 38px; margin: 0; overflow-wrap: anywhere; }
.master-description { max-width: 650px; margin-top: 24px; white-space: pre-line; overflow-wrap: anywhere; }
.public-profile .row { flex-wrap: wrap; }
.public-profile .btn { overflow-wrap: anywhere; max-width: 100%; }
.master-profile-shell { grid-template-columns: 210px minmax(0, 1fr); }
.master-profile-shell .account-content { max-width: none; }
@media (max-width: 760px) { .master-profile-shell { grid-template-columns: 1fr; } }

/* Geography keeps the reference panels, inline additions and modal editing. */
.geography-shell .field{margin-bottom:0}
.geography-shell .btn{margin-top:0}
.geography-shell .side .avatar{margin-bottom:14px}
.geography-shell .side>strong{display:block;padding:0 15px}
.geography-shell .side>p{padding:0 15px;font-size:12px}
.geography-search{margin-bottom:20px!important}
.geography-search input,.territory-add>input[name="name"]{flex:1;min-width:150px}
.territory-add{flex-wrap:wrap}
.territory-add .hex-input{width:120px}
.territory-name{display:inline-flex;align-items:center;gap:8px;min-width:0;overflow-wrap:anywhere}
.metro-dot{display:inline-block;flex:0 0 12px;width:12px;height:12px;border-radius:50%}
.geography-dialog{position:fixed;inset:0;max-height:90dvh;overflow:auto;scrollbar-width:thin}
.geography-dialog h2{padding-right:24px}
.geography-dialog .close{position:absolute;right:18px;top:18px}
.geography-shell .record-actions{flex-wrap:wrap}
@media(max-width:550px){.geography-shell .territory-item{align-items:flex-start;gap:12px;flex-wrap:wrap}.geography-shell .section-head{align-items:flex-start;flex-wrap:wrap}.geography-dialog .form-grid{grid-template-columns:1fr}}
@media(max-width:750px){.geography-shell .side>.avatar,.geography-shell .side>strong,.geography-shell .side>p{display:none}}
.catalog-home{padding:0;max-width:none}.catalog-home dialog{overflow:auto;scrollbar-width:thin}
.catalog-search{display:flex;gap:10px;flex-wrap:wrap;margin:28px 0}.catalog-search input{flex:1;min-width:220px}.catalog-search select{min-width:150px}.catalog-results{margin:18px 0}.workshop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.workshop-card{padding:0;overflow:hidden}.workshop-card-image{display:grid;place-items:center;min-height:170px;background:var(--soft);color:var(--accent);font-size:38px}.workshop-card-image img{width:100%;height:190px;object-fit:cover}.workshop-card-body{padding:18px}.workshop-card-body h3{margin:7px 0 10px}.workshop-card-body h3 a{color:inherit}.workshop-card-price,.workshop-price{font-size:21px;font-weight:700;margin-top:16px}.workshop-card-price small,.workshop-price small{font-size:12px;font-weight:500;color:var(--muted)}.public-workshop{max-width:900px}.workshop-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:-24px -24px 24px}.workshop-gallery img{width:100%;height:220px;object-fit:cover}.workshop-gallery-empty{height:180px;display:grid;place-items:center;background:var(--soft);color:var(--muted)}.workshop-facts{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted)}
@media(max-width:650px){.workshop-grid{grid-template-columns:1fr}.workshop-gallery{grid-template-columns:1fr;margin:-18px -18px 18px}.workshop-gallery img{height:220px}}

.profile-logo { display:flex;align-items:center;gap:20px;margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--line); }
.master-avatar { overflow:hidden; }
.master-avatar img { display:block;width:100%;height:100%;object-fit:cover; }
.profile-logo-controls { min-width:0; }
.profile-logo-controls .row { flex-wrap:wrap;gap:8px;margin:12px 0 8px; }
.profile-logo-controls .btn { margin:0; }
.profile-logo-controls small,.profile-logo-controls p { color:var(--muted);font-size:12px; }
.profile-logo-controls p { margin:8px 0 0; }
.profile-logo-controls p:empty { display:none; }
.logo-file-button { position:relative;overflow:hidden;cursor:pointer; }
.logo-file-button input { position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer; }
.logo-file-button:focus-within { outline:2px solid var(--accent);outline-offset:3px; }
.profile-logo [hidden] { display:none; }
@media(max-width:550px) { .profile-logo { align-items:flex-start;gap:14px; }.profile-logo .master-avatar { width:64px;height:64px; }.profile-logo-controls .row { align-items:flex-start; } }

.category-add input[name="name"]{flex:1;min-width:0}
.category-panel td:first-child{overflow-wrap:anywhere;white-space:normal}
.category-panel table{min-width:0;width:100%}

.categories-shell{gap:35px;margin-top:35px}
@media(min-width:751px) and (max-width:1050px){.categories-shell{grid-template-columns:170px minmax(0,1fr);gap:22px}}
@media(max-width:750px){.categories-shell{display:block}.categories-shell h1{font-size:32px}}
@media(max-width:550px){.catalog-home dialog{padding:26px 22px}}
.master-favorite [data-favorite-label]{width:auto;text-align:inherit}
[data-master-favorite]{max-width:100%;margin:0}

.public-profile.master-card-page,.public-profile.favorites-page{margin-top:0}
.master-card-page .row>div:has(.master-name){min-width:0;flex:1}
.favorite-masters h3{overflow-wrap:anywhere}

#workshop-editor .schedule-entry{border-bottom:1px solid var(--line);padding-bottom:14px}
#workshop-editor .schedule-entry>.row{justify-content:space-between;margin-top:12px}
#workshop-editor .schedule-entry input[type=date],#workshop-editor .schedule-entry input[type=time]{color-scheme:light;min-width:0}
:root[data-theme=dark] #workshop-editor .schedule-entry input[type=date],:root[data-theme=dark] #workshop-editor .schedule-entry input[type=time]{color-scheme:dark}

#workshop-editor .schedule-timing{display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,180px);gap:12px;margin-bottom:16px}
#workshop-editor .schedule-timing .field{min-width:0}
@media(max-width:600px){#workshop-editor .schedule-timing{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}#workshop-editor .schedule-timing input{width:100%;min-width:0}}
.publication-date-dialog{width:min(420px,calc(100% - 32px));max-height:90dvh;overflow:auto;scrollbar-width:thin;position:fixed;inset:0}.publication-date-dialog .close{position:absolute;top:18px;right:18px}.publication-date-dialog h2{padding-right:24px}
.detail-gallery-empty{height:100%}.detail-master{margin-top:24px}.detail-master h3{margin:0}.gallery-strip{overflow-x:auto}.gallery-strip button[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}

.gallery > a.class-favorite{position:absolute;bottom:16px;right:16px}
.class-favorite [data-favorite-label]{width:auto}


/* Catalog additions retain the prototype layout and chip interactions. */
[data-hero-slide][hidden], [data-banner-cities][hidden], .banner-editor-image[hidden]{display:none}
.managed-hero .hero-photo{background:none}
.managed-hero .hero-copy>p{white-space:pre-line}
.metro-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none;margin-right:6px}
[data-pagination]{display:flex;justify-content:center;margin:28px 0}
.preference-options{display:flex;gap:10px;flex-wrap:wrap}
.banner-record form.row{flex-wrap:wrap}

.banner-editor-title{margin-top:20px}
.banner-processing{width:190px;min-height:140px;flex-shrink:0;display:grid;place-items:center;border-radius:10px;background:var(--shade);color:var(--muted)}
@media(max-width:750px){.banner-processing{width:100%}}
.location-text .metro-dot{vertical-align:middle}
.detail-location{display:block}.gallery-strip{padding:3px}
/* Booking modals retain the prototype's compact dialog and narrow scrollbar. */
.booking-dialog{color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:30px;width:min(520px,calc(100vw - 36px));max-height:86vh;overflow:auto;scrollbar-width:thin;box-sizing:border-box}.booking-dialog::backdrop{background:#10181199;backdrop-filter:blur(5px)}.booking-dialog .close{position:absolute;right:17px;top:12px}.booking-dialog h2{padding-right:25px}.booking-dialog .field input,.booking-dialog .field textarea{max-width:100%}.booking-dialog [hidden]{display:none!important}.booking-page{min-width:0}
.booking-dialog [data-booking-detail-content]>h3{margin-top:20px}.booking-dialog .total+p{margin-top:15px}.booking-dialog [data-booking-action]{margin-top:20px}
/* Conversation links use the prototype's button layout. */
.conversations .conversation{display:block;color:inherit;text-decoration:none}
.chat-feed{overflow-y:auto;max-height:450px;scrollbar-width:thin}
.message-text{white-space:pre-wrap}
.chat form input[type=hidden]{display:none}

.unread-count[hidden]{display:none}

[data-sub-form] [role=status]:empty{display:none}

.subscription-shell .account-content h1{font-size:32px}

/* Keep the contact action separated from the master's identity. */
.detail-master > .btn{display:inline-flex;align-items:center;justify-content:center;margin-top:20px;max-width:100%;white-space:normal;text-align:center}
.favorites-page{padding-top:32px}
@media(max-width:750px){
.account-shell .side:has(.role-toggle){flex-wrap:nowrap;overflow-x:auto;align-items:center;min-width:0;padding-bottom:8px}
.account-shell .side .role-toggle{flex:0 0 auto;margin:0 8px 0 0}
.account-shell .side>a{flex:0 0 auto;white-space:nowrap;margin:0}
}
.masters-information{padding-top:32px}.masters-information .info-intro{max-width:760px;margin-bottom:32px}.masters-information .info-intro h1{font-size:clamp(32px,5vw,54px)}.masters-information .info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:24px 0}.masters-information .info-grid h3{margin-top:0}.masters-information .info-steps{padding-left:24px;line-height:1.8}.nickname-prefix{overflow-wrap:anywhere}
@media(max-width:750px){.masters-information .info-grid{grid-template-columns:1fr}}

.cookie-notice[hidden] { display: none; }
@media (max-width: 600px) { .cookie-notice { left: 12px; right: 12px; width: auto; bottom: 12px; } }

.gallery .gallery-open { position:static; display:block; width:100%; height:100%; padding:0; border:0; background:none; cursor:zoom-in; }
.photo-lightbox { width:min(1100px, 94vw); max-width:94vw; padding:16px; border:1px solid var(--line); border-radius:20px; background:var(--panel); color:var(--ink); }
.photo-lightbox::backdrop { background:rgba(0,0,0,.8); }
.photo-lightbox-toolbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.photo-lightbox-stage { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.photo-lightbox-stage img { min-width:0; max-width:calc(100% - 120px); height:75vh; object-fit:contain; touch-action:pan-y pinch-zoom; }
.photo-lightbox-stage button[hidden] { display:none; }
.photo-lightbox-stage img:only-child { max-width:100%; }
@media(max-width:600px) { .photo-lightbox { padding:10px; } .photo-lightbox-stage { gap:4px; } .photo-lightbox-stage .btn { padding:8px; } .photo-lightbox-stage img { max-width:calc(100% - 66px); height:65vh; } }

.editor-photo { display:flex; flex-direction:column; gap:6px; width:120px; flex-shrink:0; }
.editor-photo > button[data-photo-id] { width:120px; height:90px; }
.editor-photo > .btn[aria-pressed="true"] { border-color:var(--accent); color:var(--accent); }

.editor-photo > button[data-photo-cover] { width:100%; height:auto; min-height:34px; border-radius:9px; }

.master-card-page .eyebrow { margin-bottom: 6px; overflow-wrap: anywhere; }

/* Keep every wrapped line aligned with the avatar and sidebar caption. */
@media(min-width:751px){.account-shell .side>strong{display:block;margin:0 15px;overflow-wrap:anywhere}}

.feedback-dropzone{position:relative;display:grid;gap:10px;padding:24px 20px;border:2px dashed var(--line);border-radius:12px;background:var(--panel);text-align:center;cursor:pointer;overflow-wrap:anywhere}
.feedback-dropzone input[type=file]{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.feedback-dropzone:hover,.feedback-dropzone.drag-active,.feedback-dropzone:focus-within{border-color:var(--accent);background:var(--soft)}
.feedback-dropzone-title{font-weight:600}.feedback-dropzone small{color:var(--muted)}
.feedback-file-list{font-size:12px;color:var(--accent)}.feedback-file-list:empty{display:none}
.feedback-dropzone:has(input:disabled){opacity:.6;cursor:wait}

/* Keep seven readable columns without moving the calendar controls off-screen. */
@media (max-width: 750px) {
    .calendar-grid-scroll { overflow-x: auto; }
    [data-calendar-grid].month-calendar { min-width: 740px; }
}

.master-class-row .booking-main{min-width:0;flex:1}.master-class-row h3{overflow-wrap:anywhere}.master-class-actions{flex-shrink:0}.master-class-actions .btn{width:100%}.master-class-placeholder{width:120px;height:105px;flex-shrink:0;display:grid;place-items:center;border-radius:8px;background:var(--soft);color:var(--accent);font-size:32px}
@media(max-width:750px){.master-class-placeholder{width:75px;height:75px}.master-class-actions{width:100%}}

.logo-mark{display:block;flex-shrink:0;align-self:center;width:28px;height:28px}
/* Align the visible Inter letterforms with the centre of the SVG mark. */
.logo-wordmark{display:block;line-height:1;transform:translateY(-.08em)}
select{min-height:44px;line-height:1.35;padding-top:10px;padding-bottom:10px;box-sizing:border-box}
.toast-source{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important}
.toast-region{position:fixed;right:24px;bottom:24px;z-index:10000;display:grid;gap:10px;max-width:min(380px,calc(100vw - 32px));pointer-events:none}
.toast-message{background:var(--panel);color:var(--text);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:12px;padding:16px 20px;box-shadow:0 8px 30px #0002;overflow-wrap:anywhere;animation:toast-enter .2s ease-out;transition:opacity .2s,transform .2s}
.toast-error{border-left-color:#cf3b35}.toast-leaving{opacity:0;transform:translateY(10px)}
@keyframes toast-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.toast-message{animation:none;transition:none}}

.fixed-date-field{display:flex;gap:8px;align-items:center;min-width:0}.fixed-date-field>input{width:100%;min-width:0;min-height:44px}.fixed-date-field>.icon{flex-shrink:0}


.booking-mode-tab{position:relative;display:inline-flex;cursor:pointer;width:fit-content}
.booking-mode-tab input{position:absolute;opacity:0;width:1px;height:1px}
.booking-mode-tab span{padding:10px 16px;border:1px solid var(--line);border-radius:999px}
.booking-mode-tab:has(input:checked) span{border-color:var(--accent);color:var(--accent);background:var(--soft)}
.booking-mode-tab:has(input:focus-visible) span{outline:2px solid var(--accent);outline-offset:3px}

.master-profile-form .profile-social-heading { margin-top: 20px; }

.booking-select{position:relative;display:block;min-width:0;width:100%}
.booking-select-trigger{position:relative;width:100%;min-height:44px;padding:10px 40px 10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);font:inherit;text-align:left;line-height:1.35}
.booking-select-trigger::after{content:"";position:absolute;right:14px;top:50%;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-70%) rotate(45deg)}
.booking-select-trigger[aria-expanded=true]::after{transform:translateY(-20%) rotate(225deg)}
.booking-select-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.booking-select-trigger:disabled{opacity:.5;cursor:default}
.booking-select-list{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;max-height:240px;overflow-y:auto;padding:5px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 8px 24px #0002;scrollbar-width:thin}
.booking-select-list[hidden]{display:none}
.booking-select-list [role=option]{display:block;padding:10px 9px;border-radius:6px;cursor:pointer;overflow-wrap:anywhere}
.booking-select-list [role=option]:hover,.booking-select-list .focused{background:var(--soft)}
.booking-select-list [aria-selected=true]{color:var(--accent);background:var(--soft)}

.booking-clickable{position:relative}
.booking-open-area{position:absolute;inset:0;width:100%;height:100%;border-radius:inherit;z-index:1}
.booking-open-area:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.booking-clickable .actions{position:relative;z-index:2;pointer-events:none}
.booking-clickable .actions button,.booking-clickable .actions a{pointer-events:auto}

.schedule-tabs{display:flex;flex-wrap:wrap;gap:8px}
.schedule-tabs [aria-selected=false]{background:var(--panel)}
.schedule-tabs [aria-selected=true]{border-color:var(--ink);color:var(--bg);background:var(--ink)}
.schedule-tabs [role=tab]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
[data-schedule-builder]>[hidden]{display:none}

#schedule-panel-request .builder-help{margin-bottom:12px}

.booking-select-panel{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 8px 24px #0002}
.booking-select-panel[hidden]{display:none}
.booking-select-panel .booking-select-list{position:static;display:block;max-height:200px;margin-top:6px;border:0;box-shadow:none;padding:0}
.booking-select-panel .booking-select-list[hidden]{display:none}
.booking-select-panel [role=status]{display:block;padding:10px}
.booking-select-panel [role=status][hidden]{display:none}

.settings-message-toggle{margin:16px 0}

.master-contacts{margin-top:24px}.header-messages{position:relative;flex-shrink:0}.header-messages>.icon{position:relative}.header-messages>.icon>.unread-count{position:absolute;right:-6px;top:-6px;border:2px solid var(--bg);font-size:10px}#header-message-options{position:absolute;right:0;top:calc(100% + 10px);min-width:190px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:6px;box-shadow:0 8px 28px #0002;z-index:100}#header-message-options[hidden]{display:none}#header-message-options a{display:flex;justify-content:space-between;gap:16px;padding:12px;border-radius:8px;white-space:nowrap}#header-message-options a:hover,#header-message-options a:focus-visible{background:var(--soft);color:var(--accent)}

.guest-stepper{display:flex;align-items:stretch;gap:8px}
.guest-stepper input{flex:1;min-width:0;text-align:center;appearance:textfield;-moz-appearance:textfield}
.guest-stepper input::-webkit-inner-spin-button,.guest-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.guest-stepper button{flex:0 0 88px;min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);font-size:22px;cursor:pointer}
.guest-stepper button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.guest-stepper button:disabled{opacity:.4;cursor:default}
.guest-stepper button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.calendar-event.kind-planned{background:color-mix(in srgb,var(--shade) 35%,transparent);border-left:3px solid color-mix(in srgb,var(--muted) 40%,transparent);color:color-mix(in srgb,var(--muted) 85%,var(--panel));text-decoration:none;display:block}
.calendar-legend .kind-planned i{background:var(--muted)}

/* Highlight only after a validation attempt; native validity also handles disabled fields. */
#workshop-editor.validation-attempted input:invalid,
#workshop-editor.validation-attempted textarea:invalid,
#workshop-editor.validation-attempted select:invalid,
#workshop-editor.validation-attempted select:invalid + .booking-select .booking-select-trigger{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}

/* Compact session editor keeps all controls aligned while stacking on small screens. */
.schedule-entry{display:grid;grid-template-columns:minmax(270px,1.3fr) minmax(400px,2fr) 30px;align-items:end;gap:12px}
#workshop-editor .schedule-entry .schedule-timing{display:grid;grid-template-columns:minmax(170px,1.5fr) minmax(85px,1fr);gap:12px;margin-bottom:0}
.schedule-entry .schedule-fields{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) minmax(140px,1.3fr);gap:12px;min-width:0}
.schedule-stepper button{width:30px;min-width:30px;flex:0 0 30px}
.schedule-stepper input{min-width:0;width:100%;padding-inline:2px}
.schedule-entry>.row{padding-bottom:12px}
[data-price-schemes]{display:grid;gap:12px}
[data-price-schemes]>.btn{justify-self:start}
@media(max-width:1100px){.schedule-entry{grid-template-columns:1fr 30px}.schedule-entry .schedule-timing{grid-column:1}.schedule-entry .schedule-fields{grid-column:1}.schedule-entry>.row{grid-column:2;grid-row:1/3}}
@media(max-width:550px){.schedule-entry .schedule-fields{grid-template-columns:1fr 1fr}.schedule-entry .schedule-fields>.field:last-child{grid-column:1/-1}}

#workshop-editor .schedule-entry>.row{margin-top:0;padding-bottom:10px}
@media(max-width:550px){#workshop-editor .schedule-entry .schedule-timing{grid-template-columns:minmax(150px,1.5fr) minmax(75px,1fr);gap:8px}}
.price-tabs-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.price-tabs-row .schedule-tabs{display:flex;flex-wrap:wrap;margin:0;gap:8px}
.price-copy{width:42px;height:42px;padding:0;border-radius:50%;flex:0 0 42px;font-size:24px}
.price-tab-wrap{position:relative;display:inline-flex;max-width:100%}
.schedule-entry .schedule-fields{grid-template-columns:minmax(120px,1fr) minmax(140px,1.2fr) minmax(120px,1fr)}
@media(max-width:550px){.schedule-entry .schedule-fields{grid-template-columns:1fr 1fr}.schedule-entry .schedule-fields>.field:nth-child(2){grid-column:1/-1;grid-row:2}.schedule-entry .schedule-fields>.field:last-child{grid-column:auto;grid-row:1;grid-column:2}}
#workshop-editor,#workshop-editor>.panel,[data-price-schemes]{min-width:0}
.price-tabs-row{min-width:0;max-width:100%;flex-wrap:wrap}
.price-tabs-row .schedule-tabs{display:contents}
.price-tab-wrap{min-width:0;max-width:100%}
.price-tab-wrap .chip{max-width:100%;white-space:normal;overflow-wrap:anywhere}
[data-price-name-label]{width:100%;max-width:360px;min-width:0}
[data-price-name]{box-sizing:border-box;min-width:0;width:100%}

.schedule-entry .schedule-fields{align-items:end}

/* Align controls independently of wrapped labels at intermediate widths. */
#workshop-editor .schedule-entry .field{margin-bottom:0;min-width:0}
#workshop-editor .schedule-entry .schedule-timing{align-items:end}
#workshop-editor .schedule-entry>.row{padding-bottom:0;align-self:end;height:44px;align-items:center}
#workshop-editor .schedule-entry .schedule-fields{align-items:end}

.price-delete-action{justify-self:end;min-height:44px}
#workshop-editor .pricing-table .money-input input{padding-block:8px;font-size:12px;line-height:1.55}
#workshop-editor .pricing-table .money-input span{top:50%;transform:translateY(-50%)}
#workshop-editor .pricing-table .range-inputs input,#workshop-editor .pricing-table .money-input input{height:36px;box-sizing:border-box}

/* Match two 68px guest bounds and their 8px gap; do not stretch to the table cell. */
#workshop-editor .pricing-table .money-input{width:144px;max-width:100%}

.pricing-base-fields{grid-template-columns:repeat(3,minmax(0,1fr))}
[data-booking-travel]{align-items:flex-start;gap:10px}
.booking-travel-copy{display:grid;gap:4px;min-width:0}
.booking-travel-copy [data-travel-amount]{white-space:nowrap}
[data-booking-total].discounted-price{font-size:1.2em;font-weight:800}
@media(max-width:750px){.pricing-base-fields{grid-template-columns:1fr}}

.booking-discount{font-size:1.15em;font-weight:800;color:var(--ink)}

.auth-recovery-title{padding-right:32px;overflow-wrap:anywhere}

[data-city-note]:not(:empty){display:block;margin-top:12px}
