:root { --profile-fill: #eef1f2; --profile-selected: #e9edef; --whatsapp-ink: #275d43; --whatsapp-fill: #f4f9f6; --whatsapp-line: #d4e2da; }
body.profile-ready .shell { width: min(1160px, 100% - 64px); }
.profile-identity > div, .profile-ready .brand-bar > div:not(.brand-mark) { min-width: 0; }
.business-title, .profile-headline, .profile-about p, .service-copy, .public-person strong, .public-person small, .profile-ready h1 { overflow-wrap: anywhere; }
.profile-ready .brand-bar { border-bottom: 1px solid var(--line); padding-bottom: 20px; margin-bottom: 30px; }
.public-admin-link { margin-left: auto; font-size: 13px; color: var(--muted); text-decoration: none; }
.public-admin-link:hover { color: var(--accent); text-decoration: underline; }
.public-profile-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; align-items: start; }
.profile-main { min-width: 0; }
.profile-cover { width: 100%; height: 280px; object-fit: cover; border-radius: 14px; display: block; }
.profile-identity { display: flex; gap: 22px; align-items: center; padding: 24px 0 10px; }
.business-logo { width: 108px; height: 108px; flex: 0 0 108px; object-fit: contain; border: 1px solid var(--line); border-radius: 14px; background: white; }
.business-initials { display: grid; place-items: center; background: var(--ink); color: white; font-weight: 700; font-size: 32px; }
.business-title { font-size: clamp(26px, 3vw, 36px); letter-spacing: -.045em; line-height: 1.1; margin: 7px 0 10px; }
.profile-headline { margin: 0 0 12px; line-height: 1.5; }
.profile-badges { display: flex; flex-wrap: wrap; gap: 10px 16px; color: var(--muted); font-size: 12px; }
.profile-badges span { display: inline-flex; align-items: center; gap: 5px; }
.profile-badges svg { width: 15px; height: 15px; color: var(--accent); }
.profile-about { padding-top: 22px; }
.profile-about h3 { font-size: 15px; margin: 0 0 10px; }
.profile-about p { line-height: 1.75; color: var(--muted); white-space: pre-line; font-size: 14px; }
.public-location { border: 1px solid var(--line); border-radius: 14px; background: var(--paper); overflow: hidden; }
.location-content { padding: 24px; }
.location-content h3 { margin: 8px 0 20px; font-size: 17px; }
.contact-row { display: flex; gap: 10px; text-decoration: none; color: var(--ink); font-size: 13px; line-height: 1.6; margin-bottom: 18px; overflow-wrap: anywhere; }
.contact-row svg { flex-shrink: 0; margin-top: 2px; color: var(--muted); }
.contact-row small { display: block; color: var(--accent); margin-top: 4px; }
.whatsapp-contact { display: flex; gap: 10px; align-items: center; justify-content: space-between; border: 1px solid var(--whatsapp-line); border-radius: 9px; color: var(--whatsapp-ink); background: var(--whatsapp-fill); padding: 11px 13px; text-decoration: none; font-size: 13px; font-weight: 650; margin-bottom: 18px; }
.public-hours { border-top: 1px solid var(--line); padding-top: 18px; font-size: 13px; }
.public-hours summary { display: flex; gap: 9px; align-items: center; cursor: pointer; }
.public-hours dl { margin: 20px 0; }
.public-hours dl div { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; }
.public-hours dd { margin: 0; color: var(--muted); text-align: right; }
.profile-map { min-height: 170px; display: grid; align-content: center; justify-items: center; gap: 10px; background: var(--profile-fill); padding: 20px; }
.profile-map small { color: var(--muted); font-size: 11px; }
.profile-map iframe { border: 0; width: 100%; height: 200px; }
.profile-map:has(iframe) { padding: 0; }
.public-team, .profile-directory { margin: 38px 0; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.section-heading h2 { font-size: 24px; letter-spacing: -.035em; margin: 8px 0 0; }
.section-heading .helper { margin: 0; }
.public-team-list { display: flex; gap: 12px; flex-wrap: wrap; }
.public-person { width: auto; display: flex; align-items: center; gap: 12px; padding: 14px; background: white; border: 1px solid var(--line); border-radius: 11px; text-align: left; flex: 1 1 230px; max-width: 360px; color: var(--ink); }
.public-person img, .person-initials { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.person-initials { display: grid; place-items: center; background: var(--profile-fill); color: var(--muted); font-size: 15px; font-weight: 700; }
.public-person strong { display: block; font-size: 14px; }
.public-person small { display: block; color: var(--muted); font-size: 12px; margin-top: 4px; }
.public-person > svg { margin-left: auto; color: var(--muted); width: 16px; }
.service-directory-grid { display: grid; grid-template-columns: 238px minmax(0, 1fr); gap: 30px; }
.service-directory-grid > * { min-width: 0; }
.service-search { display: block; font-size: 12px; font-weight: 650; }
.service-search input { width: 100%; border: 1px solid var(--line); border-radius: 9px; background: white; min-height: 44px; padding: 12px; margin-top: 8px; font: inherit; font-weight: 400; }
.service-categories { display: grid; gap: 6px; margin-top: 18px; }
.service-categories button { padding: 13px; min-height: 44px; color: var(--muted); background: transparent; border: 0; border-radius: 8px; text-align: left; font-size: 13px; }
.service-categories button[aria-pressed="true"] { background: var(--profile-selected); color: var(--ink); font-weight: 700; }
.service-categories span { float: right; }
.service-group { background: white; border: 1px solid var(--line); border-radius: 11px; margin-bottom: 16px; overflow: hidden; }
.service-group > summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 18px 22px; background: var(--profile-fill); cursor: pointer; font-size: 14px; font-weight: 650; }
.service-group > summary::after { content: "+"; color: var(--muted); font-size: 20px; }
.service-group[open] > summary::after { content: "−"; }
.service-group > summary .helper { margin: 0 0 0 auto; font-weight: 400; }
.public-service { display: flex; align-items: center; gap: 30px; padding: 22px; border-top: 1px solid var(--line); }
.service-copy { flex: 1; min-width: 0; }
.service-copy h3 { margin: 0 0 8px; font-size: 16px; }
.service-copy p { margin: 0 0 12px; color: var(--muted); font-size: 13px; line-height: 1.6; }
.service-book { display: grid; gap: 10px; text-align: right; flex: 0 0 110px; }
.service-book strong { font-size: 16px; }
.service-book .primary { margin: 0; width: 100%; min-height: 40px; padding: 10px; border-radius: 8px; font-size: 12px; }
.profile-ready #app:not(:empty) { max-width: 760px; margin: 24px auto 0; scroll-margin-top: 20px; }
.booking-back { background: none; border: 0; color: var(--muted); padding: 8px 0; margin: 0 0 12px; width: auto; font-size: 13px; }
.booking-mode .profile-cover, .booking-mode .public-location, .booking-mode .profile-about, .booking-mode .public-team, .booking-mode .profile-directory { display: none; }
.booking-mode .public-profile-grid { display: block; max-width: 760px; margin: auto; }
.booking-mode .business-logo { width: 66px; height: 66px; flex-basis: 66px; font-size: 24px; }
.booking-mode .profile-identity { padding-top: 0; }
.booking-mode .business-title { font-size: 25px; }
.booking-mode .profile-badges, .booking-mode .profile-identity .eyebrow { display: none; }
.consent-label { display: flex; align-items: start; gap: 10px; line-height: 1.6; font-size: 13px; }
.consent-label input { width: 18px; height: 18px; flex-shrink: 0; margin-top: 3px; }
.profile-settings-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.media-editor { padding-top: 20px; margin-top: 20px; border-top: 1px solid var(--line); }
.media-preview { width: 110px; height: 110px; object-fit: contain; border: 1px solid var(--line); border-radius: 9px; }
.cover-preview { width: 100%; height: 140px; object-fit: cover; }
.media-editor h3 { margin: 0; font-size: 16px; }
.professional-preview { border-radius: 50%; object-fit: cover; }
.service-preview { width: min(100%, 240px); height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.media-editor [data-selected-preview][hidden] { display: none; }
.photo-save-hint { border-top: 1px solid var(--line); padding-top: 20px; margin-top: 20px; }
.entity-photo-shortcut { margin: 8px 0 0; }
.entity-list-item { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 12px; align-items: center; }
.entity-thumb { width: 44px; height: 44px; object-fit: cover; border-radius: 8px; }
.entity-avatar { border-radius: 50%; }
.entity-placeholder { display: grid; place-items: center; color: var(--muted); background: var(--profile-fill); font-weight: 700; font-size: 12px; position: relative; overflow: hidden; }
.entity-thumbnail-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.entity-thumbnail-image[hidden] { display: none; }
.entity-list-copy { min-width: 0; overflow-wrap: anywhere; }
.entity-list-copy strong, .entity-list-copy > span { display: block; }
.public-service.has-photo { display: grid; grid-template-columns: 128px minmax(0, 1fr) 110px; gap: 20px; }
.service-photo { width: 128px; height: 96px; object-fit: cover; border-radius: 9px; background: var(--profile-fill); }
@media(max-width: 600px) {
  .public-service.has-photo { grid-template-columns: 80px minmax(0, 1fr); gap: 12px; }
  .has-photo .service-photo { width: 80px; height: 60px; align-self: start; }
  .has-photo .service-book { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 12px; text-align: left; }
  .has-photo .service-book .primary { width: auto; min-width: 90px; }
}
.whatsapp-preview { white-space: pre-line; background: var(--whatsapp-fill); border: 1px solid var(--whatsapp-line); padding: 22px; border-radius: 10px; font-size: 14px; line-height: 1.8; }
.profile-preview-actions { display: flex; gap: 10px; flex-wrap: wrap; margin: 12px 0; }
.profile-preview-actions span { flex: 1; color: var(--whatsapp-ink); text-align: center; padding: 12px; background: var(--whatsapp-fill); border: 1px solid var(--whatsapp-line); border-radius: 7px; font-size: 12px; }
.benefit-list { padding-left: 20px; line-height: 1.9; font-size: 14px; }
.whatsapp-history-item { padding: 18px 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.whatsapp-history-item details { grid-column: 1 / -1; }
.customer-confirmed { display: block; font-size: 10px; margin-top: 4px; font-weight: 400; }
@media(max-width: 800px) {
  body.profile-ready .shell { width: min(100% - 32px, 680px); padding-top: 20px; }
  .public-profile-grid, .service-directory-grid, .profile-settings-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .profile-cover { height: 220px; }
  .public-location { margin-top: 0; }
  .service-categories { display: flex; overflow-x: auto; max-width: 100%; padding-bottom: 5px; }
  .service-categories button { white-space: nowrap; flex-shrink: 0; }
  .service-categories span { margin-left: 8px; }
  .section-heading { display: block; }
  .section-heading > .helper { display: block; margin-top: 10px; }
  .public-team, .profile-directory { margin: 30px 0; }
}
@media(max-width: 480px) {
  .profile-cover { height: 170px; border-radius: 10px; }
  .business-logo { width: 76px; height: 76px; flex-basis: 76px; font-size: 24px; }
  .profile-identity { gap: 14px; padding-top: 20px; align-items: flex-start; }
  .business-title { font-size: 25px; }
  .profile-identity .eyebrow { font-size: 9px; }
  .profile-headline { font-size: 13px; }
  .profile-badges { font-size: 10px; gap: 8px; }
  .profile-badges svg { width: 13px; }
  .public-service { padding: 18px; gap: 14px; align-items: flex-start; }
  .service-book { flex-basis: 92px; }
  .service-book strong { font-size: 14px; }
  .service-copy h3 { font-size: 14px; }
  .public-person { max-width: none; }
  .public-admin-link { font-size: 11px; text-align: right; }
}
