.overview-insights{margin-top:28px}
.section-title{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:0 0 14px}
.section-title.compact{margin:2px 0 12px}
.section-title h2{margin:3px 0 0;font-size:24px}
.insight-stats{margin-bottom:16px}
.metric-row{display:grid;grid-template-columns:minmax(150px,.7fr) 1fr;align-items:center;gap:18px;padding:12px 0;border-bottom:1px solid var(--line)}
.metric-row:last-child,.trend-row:last-child{border-bottom:0}
.metric-row div{display:flex;min-width:0;flex-direction:column;gap:3px}
.metric-row small{color:var(--muted)}
.metric-bar{overflow:hidden;height:8px;border-radius:99px;background:var(--soft)}
.metric-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--teal))}
.trend-row{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.trend-row span{color:var(--muted)}
.offer-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}
.offer-summary>div{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff}
.offer-summary b{display:block;margin:7px 0 3px;color:var(--navy);font:800 27px var(--serif)}
.offer-summary p{margin:0;color:var(--muted);font-size:13px}
.offer-summary .pro-ready{border-color:#8ddcc8;background:#f1fbf8}
.offer-summary .pro-locked{border-color:#e5c981;background:#fffbef}
.offers-layout{display:grid;grid-template-columns:minmax(330px,.85fr) minmax(440px,1.15fr);gap:18px;align-items:start}
.offer-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.offer-form-grid .field-wide{grid-column:1/-1}
.consent-note{padding:10px 12px;border-left:3px solid #d6aa35;background:#fff9e9;font-size:13px}
.loyal-list{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:10px}
.loyal-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 11px;border-bottom:1px solid var(--line);cursor:pointer}
.loyal-row:last-child{border-bottom:0}
.loyal-row input{width:17px;height:17px;accent-color:var(--blue)}
.loyal-row span{display:flex;min-width:0;flex-direction:column}
.loyal-row small,.loyal-row em{color:var(--muted);font-size:12px;font-style:normal}
.loyal-row em{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.offer-list{display:flex;flex-direction:column;gap:12px}
.offer-card{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 8px 24px #142d5b0a}
.offer-card h3{margin:8px 0 0;font-size:20px}
.offer-card>p{margin:11px 0;color:#44516b}
.offer-card-head{display:flex;align-items:start;justify-content:space-between;gap:18px}
.offer-card-head>strong{color:var(--blue);font:800 18px var(--serif);text-align:right}
.offer-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0}
.offer-meta span,.offer-meta code{padding:5px 8px;border-radius:7px;background:var(--soft);color:#4a5a7c;font-size:12px}
.offer-meta code{color:var(--navy);font-weight:700}
.offer-card .actions{margin-top:14px}
.branding-image-locked{position:relative;padding:12px;border:1px dashed #d4b45d;border-radius:10px;background:#fffbef}
.branding-image-locked input{cursor:not-allowed;opacity:.55}
.pro-feature-label{display:inline-block;margin-left:7px;padding:3px 7px;border-radius:999px;color:#725712;background:#f4df9b;font-size:11px;font-weight:700}
.pro-lock-note{display:flex;flex-direction:column;gap:3px;margin:15px 0 10px;padding:12px 14px;border:1px solid #ead38f;border-radius:10px;background:#fffae9}
.pro-lock-note b{color:#725712}
.pro-lock-note span{color:#76683f;font-size:13px}
.public-page[data-public-booking] .public-business-header{padding:30px 24px 20px;background:var(--public-surface);color:var(--public-text)}
.public-page[data-public-booking] .public-hero{position:relative;min-height:220px;background-color:var(--public-accent);background-image:linear-gradient(135deg,var(--public-accent),var(--public-secondary));background-size:cover;background-position:center;border-top:1px solid color-mix(in srgb,var(--public-text) 8%,transparent)}
.public-page[data-public-booking] .public-hero[hidden]{display:none !important}
.public-page[data-public-booking] .public-identity{width:100%;align-items:center;justify-content:flex-start;flex-direction:row;text-align:left;padding:0;border:0;border-radius:0;background:transparent;backdrop-filter:none;color:var(--public-text)}
.public-page[data-public-booking] .public-identity-text{min-width:0;align-items:flex-start;text-align:left}
.public-page[data-public-booking] .public-identity h1{color:var(--public-text);text-shadow:none;font-size:28px;font-weight:800;line-height:1.15;margin:0;letter-spacing:-0.03em}
.public-page[data-public-booking] .public-identity p{color:color-mix(in srgb,var(--public-text) 65%,transparent);opacity:1;margin:3px 0 0;font-size:13px;line-height:1.4}
.empty-logo-slot{display:block;width:0;height:0}
.topbar .top-signout{color:#fff!important;border-color:#ffffff66!important}
.public-logo img,.branding-booking-page [data-mini-logo],.mini-public-copy [data-mini-logo],.phone-logo{background:transparent!important;padding:0!important;border-radius:0!important;box-shadow:none!important}
.phone-logo{display:block;width:48px;height:48px;margin-bottom:13px;object-fit:contain}
.mobile-menu-toggle{display:none}
.mobile-business-name{display:none;min-width:0;color:#fff;font-size:13px;font-weight:700;line-height:1.2;white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.booking-alert-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;padding:12px 14px;border:1px solid #b9d8f5;border-radius:12px;background:#f1f7fd}.booking-alert-bar>div:first-child{display:flex;min-width:0;flex-direction:column;gap:2px}.booking-alert-bar b{color:var(--navy);font-size:14px}.booking-alert-bar span{color:var(--muted);font-size:12px}.booking-alert-actions{display:flex;flex:0 0 auto;gap:7px}
.business-template-panel{margin-bottom:16px}.business-template-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.business-template-card{display:flex;min-width:0;flex-direction:column;gap:5px;padding:14px;border:1px solid var(--line);border-radius:12px;text-align:left;color:var(--ink);background:#fff;cursor:pointer}.business-template-card:hover{border-color:var(--blue);box-shadow:0 8px 22px #12397612}.business-template-card b{font-size:14px}.business-template-card span{color:var(--muted);font-size:11px;line-height:1.35}
.public-offer-consent{min-width:0;margin:22px 0 16px;padding:16px;border:1px solid color-mix(in srgb,var(--public-accent,#1470e0) 22%,#d9e0ec);border-radius:14px;background:color-mix(in srgb,var(--public-accent,#1470e0) 4%,var(--public-surface,#fff))}
.public-offer-consent legend{padding:0 7px;color:var(--public-text,#18233e);font-weight:800}.public-offer-consent legend span{margin-left:6px;padding:3px 7px;border-radius:999px;color:var(--muted);background:#fff;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.public-offer-consent>p{margin:0 0 12px;color:var(--muted);font-size:13px;line-height:1.5}.public-offer-options{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.public-offer-options label{display:flex;align-items:flex-start;gap:10px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--public-surface,#fff);cursor:pointer;transition:border-color .15s,box-shadow .15s}
.public-offer-options label:has(input:checked){border-color:var(--public-accent,#1470e0);box-shadow:0 0 0 1px var(--public-accent,#1470e0)}.public-offer-options input{flex:0 0 auto;width:18px;height:18px;margin-top:1px;accent-color:var(--public-accent,#1470e0)}
.public-offer-options span{display:flex;min-width:0;flex-direction:column}.public-offer-options b{color:var(--public-text,#18233e);font-size:14px}.public-offer-options small,.public-consent-note{color:var(--muted);font-size:12px;line-height:1.4}.public-consent-note{display:block;margin-top:10px}
.brand-template-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:10px}.brand-template{min-width:0;padding:7px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:var(--template-bg);cursor:pointer}.brand-template i{display:block;height:42px;margin-bottom:7px;border-radius:7px;background:linear-gradient(135deg,var(--template-a),var(--template-b))}.brand-template b{font-size:12px}.brand-template:hover,.brand-template.selected{border-color:var(--blue);box-shadow:0 0 0 2px #1470e01c}
.pwa-install-card{position:fixed;right:18px;bottom:18px;z-index:1000;display:grid;grid-template-columns:52px minmax(180px,1fr) auto;align-items:center;gap:12px;width:min(520px,calc(100vw - 36px));padding:14px 16px;border:1px solid #ffffff3d;border-radius:16px;color:#fff;background:#0e1f47;box-shadow:0 18px 48px #06143355}.pwa-install-card img{width:52px;height:52px;object-fit:contain}.pwa-install-card div{display:flex;min-width:0;flex-direction:column;gap:3px}.pwa-install-card strong{font-size:16px}.pwa-install-card span{color:#dce6f8;font-size:13px}.pwa-install-card .pwa-install-button{white-space:nowrap;background:#fff;color:#0e1f47}.pwa-install-close{position:absolute;top:-10px;right:-8px;display:grid;width:28px;height:28px;padding:0;place-items:center;border:2px solid #fff;border-radius:50%;color:#fff;background:#0e1f47;font-size:20px;line-height:1;cursor:pointer}
.install-guide-section{padding:76px 0;background:linear-gradient(180deg,#eef3f9,#fff)}.install-guide-section .section-header{max-width:700px;margin:0 auto 32px}.install-guide-section .section-header p{margin:12px auto 0;color:var(--muted)}.install-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.install-guide-card{padding:24px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 12px 32px #152a5e0b}.install-guide-card.featured{border-color:#8bcfc1;background:linear-gradient(180deg,#f0fbf8,#fff)}.install-platform{display:inline-block;margin-bottom:12px;padding:4px 9px;border-radius:999px;color:#0a735f;background:#dcf5ee;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.install-guide-card h3{font-size:20px}.install-guide-card ol{display:grid;gap:10px;margin:18px 0 0;padding-left:20px;color:#536178;font-size:13px}.install-guide-card li::marker{color:var(--blue);font-weight:800}.install-notification-note{display:flex;align-items:flex-start;gap:12px;margin-top:18px;padding:17px 19px;border:1px solid #c8d9ee;border-radius:14px;background:#f3f7fc}.install-notification-note>span{display:grid;flex:0 0 auto;width:28px;height:28px;place-items:center;border-radius:50%;color:#fff;background:var(--blue);font-weight:800}.install-notification-note p{margin:3px 0 0;color:var(--muted);font-size:13px}.install-guide-action{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:25px}
@media(max-width:820px){.install-guide-grid{grid-template-columns:1fr}.install-guide-card{padding:20px}.install-guide-section{padding:56px 0}}
.app-splash{display:none}
.skip-app-splash .app-splash{display:none!important}
@media(display-mode:standalone){
  .app-splash{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:32px;color:#fff;background:#071a3b;transition:opacity .38s ease,visibility .38s ease}
  .app-splash.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
  .app-splash-brand{display:flex;align-items:center;flex-direction:column;text-align:center;animation:splash-brand-in .55s cubic-bezier(.2,.8,.2,1) both}
  .app-splash-brand img{display:block;width:min(38vw,184px);height:min(38vw,184px);object-fit:contain;filter:drop-shadow(0 20px 30px #020d20aa)}
  .app-splash-brand strong{margin-top:18px;font:800 34px/1 "Bricolage Grotesque",sans-serif;letter-spacing:-.045em}
  .app-splash-brand span{margin-top:9px;color:#c9d9f2;font-size:13px;letter-spacing:.02em}
}
@keyframes splash-brand-in{from{opacity:0;transform:translateY(10px) scale(.94)}to{opacity:1;transform:none}}
@media(min-width:641px){.public-page[data-public-booking] .booking-form-grid{align-items:start}.public-page[data-public-booking] .booking-form-grid>.field:not(.field-wide),.public-page[data-public-booking] .booking-form-grid>[data-custom-fields]>.field:not(.field-wide){display:flex;min-width:0;height:100%;flex-direction:column}.public-page[data-public-booking] .booking-form-grid>.field:not(.field-wide)>span,.public-page[data-public-booking] .booking-form-grid>[data-custom-fields]>.field:not(.field-wide)>span{display:flex;align-items:flex-end;min-height:36px}.public-page[data-public-booking] .booking-form-grid input,.public-page[data-public-booking] .booking-form-grid select,.public-page[data-public-booking] .booking-form-grid textarea{width:100%}}
@media(max-width:760px){.topbar-inner{position:relative;z-index:2}.top-note,.topbar-inner .brand span{display:none}.topbar-inner .brand{flex:none}.mobile-business-name{display:-webkit-box;flex:1;margin:0 12px;text-align:left;max-width:none}.mobile-menu-toggle{display:inline-flex;align-items:center;justify-content:center;flex-direction:column;width:42px;height:38px;margin-left:0;padding:8px;border:1px solid #ffffff4d;border-radius:9px;color:#fff;background:#ffffff14}.mobile-menu-toggle span{display:block;width:17px;height:2px;margin:2px 0;border-radius:9px;background:#fff}.mobile-menu-toggle b{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.top-signout{margin-left:0}.topbar .tabs{position:absolute;top:100%;right:10px;left:10px;display:none;max-height:calc(100vh - 88px);padding:8px;overflow-y:auto;border:1px solid #ffffff2e;border-radius:0 0 14px 14px;background:#102856;box-shadow:0 18px 36px #06143355}.topbar.mobile-menu-open .tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px}.topbar .tabs a{padding:12px;border:0;border-radius:8px;color:#dfe9ff;background:#ffffff0a}.topbar .tabs a.active{color:#fff;background:#ffffff20}.topbar .tabs a:hover{background:#ffffff18}}
@media(max-width:430px){.topbar.mobile-menu-open .tabs{grid-template-columns:1fr}.topbar .top-signout{padding-inline:8px}.booking-alert-bar{align-items:stretch;flex-direction:column}.booking-alert-actions{flex-direction:column}.booking-alert-bar .button{width:100%}.page{padding-inline:10px}.panel,.public-card{border-radius:10px}}
@media(max-width:700px){.brand-template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.business-template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.pwa-install-card{right:10px;bottom:10px;left:10px;grid-template-columns:44px 1fr;width:auto;padding:13px}.pwa-install-card img{width:44px;height:44px}.pwa-install-card .pwa-install-button{grid-column:1/-1;width:100%}}
@media(max-width:560px){.public-offer-consent{margin-top:18px;padding:13px}.public-offer-options{grid-template-columns:1fr}.public-offer-options label{padding:11px}}
@media(max-width:980px){.offers-layout{grid-template-columns:1fr}.offer-summary{grid-template-columns:1fr 1fr}.offer-summary>div:last-child{grid-column:1/-1}}
@media(max-width:640px){.section-title{align-items:flex-start;flex-direction:column}.section-title .button{width:100%}.offer-summary{grid-template-columns:1fr}.offer-summary>div:last-child{grid-column:auto}.offer-form-grid{grid-template-columns:1fr}.offer-form-grid .field{grid-column:1}.loyal-row{grid-template-columns:auto 1fr}.loyal-row em{grid-column:2;max-width:100%}.offer-card-head{flex-direction:column}.offer-card-head>strong{text-align:left}.offer-card .actions .button{flex:1}.metric-row{grid-template-columns:1fr;gap:8px}.trend-row{grid-template-columns:74px 1fr}.trend-row strong{grid-column:2}}
@media(max-width:640px){
  .public-page[data-public-booking] .public-business-header{padding:24px 20px 18px}
  .public-page[data-public-booking] .public-hero{min-height:160px}
  .public-page[data-public-booking] .public-identity{flex-direction:row;padding:0;border-radius:0}
  .public-page[data-public-booking] .public-identity h1{font-size:24px}
  .public-page[data-public-booking] .public-logo img{width:56px;height:56px}
}

/* CRM history stays in its own full-width row instead of inheriting the booking timeline. */
.customer-card{display:grid!important;grid-template-columns:auto minmax(180px,1fr) auto;align-items:start!important}
.customer-card>div[style*="width: 100%"],.customer-history,.customer-editor{grid-column:1/-1;min-width:0}
.customer-history{overflow:hidden;padding:14px 0 0;border-top:1px solid var(--soft)}
.customer-history-list{display:grid;gap:8px}
.history-booking{display:grid;grid-template-columns:minmax(118px,.72fr) minmax(180px,1.6fr) auto;align-items:center;gap:14px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe}
.history-booking-date,.history-booking-main{display:flex;min-width:0;flex-direction:column;gap:2px}
.history-booking-date span,.history-booking-main span,.history-booking-main small{color:var(--muted);font-size:12px}
.history-booking>p{grid-column:1/-1;margin:0;padding-top:9px;border-top:1px solid var(--soft);color:var(--muted);font-size:12px;white-space:pre-wrap}

/* Pro public pages behave like responsive mini-sites while keeping booking prominent. */
.public-page[data-public-booking] [data-booking-form]{min-width:0;padding:20px;border:1px solid color-mix(in srgb,var(--public-text) 12%,transparent);border-radius:calc(var(--public-radius) + 4px);background:var(--public-surface);box-shadow:0 12px 34px color-mix(in srgb,var(--public-text) 8%,transparent)}
.branding-form-locked{position:relative}
.branding-form-locked input:disabled,.branding-form-locked textarea:disabled,.branding-form-locked select:disabled,.branding-form-locked button:disabled{filter:grayscale(.7);opacity:.48}
.branding-lock-note{pointer-events:auto!important;opacity:1!important}
.branding-lock-note .button{align-self:flex-start;margin-top:8px;pointer-events:auto}

@media(max-width:760px){
  .customer-card{grid-template-columns:auto minmax(0,1fr)!important}
  .customer-stats,.customer-card>div[style*="width: 100%"],.customer-history,.customer-editor{grid-column:1/-1}
  .history-booking{grid-template-columns:1fr auto;gap:8px}
  .history-booking-main{grid-column:1/-1}
  .history-booking-status{grid-column:2;grid-row:1}
  .public-page[data-public-booking] [data-booking-form]{padding:14px}
}

/* Keep the booking steps obvious and business names legible on narrow phones. */
.public-page[data-public-booking] .service-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.public-page[data-public-booking] .service-choice{min-height:64px;padding:12px;border:1px solid color-mix(in srgb,var(--public-accent) 24%,transparent);background:color-mix(in srgb,var(--public-accent) 4%,var(--public-surface));cursor:pointer}
.public-page[data-public-booking] .service-choice:has(input:checked){border-color:var(--public-accent);background:color-mix(in srgb,var(--public-accent) 11%,var(--public-surface));box-shadow:0 0 0 2px color-mix(in srgb,var(--public-accent) 16%,transparent)}
.public-section-inner{min-height:260px}
.public-social-links{gap:10px}
.public-social-links a{min-width:112px;justify-content:flex-start;padding:10px 12px;border-color:color-mix(in srgb,var(--public-accent) 25%,transparent);background:color-mix(in srgb,var(--public-accent) 5%,var(--public-surface))}

@media(max-width:760px){
  .mobile-business-name{display:-webkit-box!important;flex:1;max-width:none!important;margin:0 8px 0 4px;font-size:clamp(11px,3.3vw,14px);line-height:1.18;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}
  .topbar-inner{gap:6px}
}
@media(max-width:560px){
  .public-page[data-public-booking] .service-choice-grid{grid-template-columns:1fr}
  .public-nav{padding-inline:16px;gap:18px}
  .public-nav-link{font-size:13px}
  .public-section-inner{min-height:200px}
}