@font-face {
    font-family: 'DM Sans';
    src: url("../fonts/DM-Sans-Variable-9pdvXqW.ttf") format('truetype');
    font-style: normal;
    font-weight: 100 1000;
    font-display: swap;
}

.cookie-consent[hidden], .cookie-consent-preferences[hidden] { display: none !important; }
.cookie-consent { position: fixed; z-index: 10000; right: 1rem; bottom: 1rem; left: 1rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; max-width: 70rem; margin: auto; padding: 1.1rem 1.25rem; color: #2b1b17; background: #fffaf2; border: 1px solid #1f5d5030; border-radius: 1rem; box-shadow: 0 12px 45px #17203330; }
.cookie-consent-copy { flex: 1 1 25rem; }
.cookie-consent-copy p { margin: .35rem 0 0; color: #705e54; font-size: .9rem; line-height: 1.5; }
.cookie-consent-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.cookie-consent button, .cookie-settings-trigger, [data-map-load] { padding: .65rem .85rem; color: #1f5d50; background: white; border: 1px solid #1f5d5050; border-radius: .6rem; font: inherit; font-size: .85rem; font-weight: 700; cursor: pointer; }
.cookie-consent [data-cookie-accept] { color: white; background: #1f5d50; }
.cookie-consent-preferences { flex: 1 1 100%; display: flex; align-items: center; flex-wrap: wrap; gap: .9rem; padding-top: .8rem; border-top: 1px solid #1f5d5020; }
.cookie-consent-preferences label { display: flex; align-items: center; gap: .4rem; font-size: .85rem; }
.cookie-consent-preferences input { width: auto; }
.cookie-settings-trigger { position: fixed; z-index: 9998; right: .75rem; bottom: .75rem; opacity: .88; }
.cookie-consent:not([hidden]) ~ .cookie-settings-trigger { display: none; }
.public-location-map { display: grid; min-height: 8rem; place-content: center; justify-items: center; gap: .5rem; margin: .75rem 0; padding: 1rem; background: #f5f2eb; border-radius: .8rem; text-align: center; }
.public-location-map iframe { display: block; width: 100%; height: 18rem; border: 0; border-radius: .8rem; }
@media (max-width: 600px) { .cookie-consent { right: .5rem; bottom: .5rem; left: .5rem; padding: .9rem; } .cookie-consent-actions { width: 100%; } .cookie-consent-actions button { flex: 1 1 auto; } }
@font-face {
    font-family: Fraunces;
    src: url("../fonts/Fraunces-Variable-g28FJ1C.ttf") format('truetype');
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
}
:root {
    font-family: 'DM Sans', ui-sans-serif, system-ui, sans-serif;
    color: #172033;
    background: #f7f8fb;
}

body { display:grid; grid-template-rows:auto 1fr auto; min-height:100vh; margin:0; }
.site-content { display:flex; flex-direction:column; min-width:0; }
.site-header { display: flex; justify-content: space-between; align-items: center; padding: 1rem 2rem; background: white; border-bottom: 1px solid #e7e9ef; }
.site-header nav { display: flex; gap: 1rem; }
.language-switcher { display: inline-flex; align-items: center; gap: .15rem; padding: .2rem; background: #f1f2f7; border-radius: .55rem; }
.language-switcher a { padding: .35rem .5rem; color: #64748b; border-radius: .4rem; font-size: .72rem; font-weight: 750; text-decoration: none; }
.language-switcher a[aria-current="page"] { color: #544cff; background: #fff; box-shadow: 0 1px 3px #1720331a; }
.sidebar-footer .language-switcher { margin-bottom: .8rem; }
.mobile-topbar .language-switcher { justify-self: end; }
.settings-tabs { display: flex; gap: .4rem; margin: 1.5rem 0 1rem; padding: .35rem; overflow-x: auto; background: #eceef4; border-radius: .8rem; }
.settings-tab { flex: 0 0 auto; padding: .7rem 1rem; color: #64748b; border-radius: .6rem; font-size: .88rem; font-weight: 650; text-decoration: none; }
.settings-tab.is-active { color: #544cff; background: white; box-shadow: 0 1px 3px #17203314; }
.settings-panel { margin-bottom: 1rem; }
.settings-panel h2, .settings-panel h3 { margin-bottom: -.35rem; }
.settings-privacy .page-heading { margin-bottom: 1rem; }
.settings-privacy .page-heading h2 { margin: 0 0 .5rem; font-size: 1.4rem; }
.settings-privacy .panel + .panel { margin-top: 1rem; }
.brand { color: #172033; font-weight: 800; text-decoration: none; }
.site-header a { color: #4b5563; text-decoration: none; }
.flash { max-width: 42rem; margin: 1rem auto; padding: .8rem 1rem; border-radius: .5rem; }
.flash-success { color: #14532d; background: #dcfce7; }
.card { max-width: 42rem; margin: 3rem auto; padding: 2rem; background: white; border: 1px solid #e7e9ef; border-radius: .8rem; }
.public-flow-card { margin-top: 3rem; }
.public-flow-card .notice-warning { margin-top: 1.25rem; padding: 1rem 1.25rem; color: #714b12; background: #fff6df; border: 1px solid #f0d99e; border-radius: .75rem; }
.public-flow-card .notice-warning p { margin: .5rem 0 0; }
.public-flow-brand { display: flex; align-items: center; gap: .75rem; margin-bottom: 2rem; }
.public-flow-brand img { width: 3.5rem; height: 3.5rem; object-fit: contain; border-radius: .8rem; }
.public-flow-brand strong, .public-flow-brand span { display: block; }
.public-flow-brand strong { color: #172033; font-size: 1rem; }
.public-flow-brand span { margin-top: .15rem; color: #94a3b8; font-size: .78rem; }
.public-flow-brand-reschedule { position: relative; z-index: 2; display: grid; justify-items: center; max-width: 42rem; margin: 3rem auto -5.5rem; padding: 0 2rem; text-align: center; }
.public-flow-brand-reschedule img { width: 6.5rem; height: 6.5rem; object-fit: cover; border-radius: 50%; box-shadow: 0 10px 24px rgba(23, 32, 51, .12); }
.public-flow-brand-reschedule > div { display: none; }
.public-flow-brand-reschedule + .card { padding-top: 8rem; }
.public-booking-brand { display: grid; justify-items: center; margin: .25rem 0 3rem; text-align: center; }
.public-booking-brand img { width: 6.5rem; height: 6.5rem; object-fit: cover; border-radius: 50%; box-shadow: 0 10px 24px rgba(23, 32, 51, .12); }
.form-grid { display: grid; gap: 1rem; }
label { display: grid; gap: .35rem; font-weight: 600; }
input { box-sizing: border-box; width: 100%; padding: .7rem; border: 1px solid #cbd5e1; border-radius: .4rem; }
.error-list { color: #991b1b; padding: .8rem 1.2rem; background: #fee2e2; border-radius: .5rem; }
.registration-errors { margin: 0 0 1.25rem; border: 1px solid #f2b7b2; line-height: 1.5; }
.registration-errors ul { margin: .4rem 0 0; padding-left: 1.2rem; }
.muted { color: #64748b; }
.slug-status { display: block; margin-top: .3rem; font-size: .75rem; }
.slug-status.available { color: #138a5a; }
.slug-status.unavailable { color: #b42318; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .7rem; border-bottom: 1px solid #e7e9ef; text-align: left; }
.page-shell { max-width: 42rem; margin: 12vh auto; padding: 2rem; }
.eyebrow { color: #635bff; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
h1 { font-size: clamp(2.5rem, 8vw, 5rem); line-height: 1; margin: 1rem 0; }
.lead { color: #5d6472; font-size: 1.2rem; }
.button { display: inline-block; margin-top: 1.5rem; padding: .8rem 1.1rem; border-radius: .6rem; color: white; background: #635bff; text-decoration: none; }
button.button { border: 0; cursor: pointer; font: inherit; }
.app-shell { min-height: 100vh; display: flex; background: #f7f8fb; }
.sidebar { width: 15.5rem; flex-shrink: 0; display: flex; flex-direction: column; background: #fff; border-right: 1px solid #e7e9ef; }
.sidebar-brand { position: relative; padding: 1.75rem 1.5rem .8rem; }
.brand { display: block; color: #172033; font-size: 1.3rem; font-weight: 800; letter-spacing: -.04em; text-decoration: none; }
.brand-subtitle { display: block; margin-top: .25rem; color: #94a3b8; font-size: .72rem; }
.tenant-switcher { display: flex; align-items: center; gap: .65rem; margin: 1rem; padding: .7rem; background: #f7f8fb; border: 1px solid #eef0f5; border-radius: .7rem; }
.tenant-avatar, .user-avatar { display: inline-grid; place-items: center; width: 2rem; height: 2rem; flex-shrink: 0; color: #fff; background: #635bff; border-radius: .55rem; font-size: .8rem; font-weight: 700; }
.tenant-name { overflow: hidden; color: #334155; font-size: .8rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-nav { display: grid; gap: .2rem; padding: .5rem .75rem; }
.nav-section-title { margin: 1rem .75rem .35rem; color: #a1a9b8; font-size: .67rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.nav-item { display: flex; align-items: center; gap: .7rem; padding: .65rem .75rem; color: #64748b; border-radius: .55rem; font-size: .87rem; text-decoration: none; }
.nav-item.is-active { color: #544cff; background: #f0efff; font-weight: 700; }
.nav-item.is-disabled { cursor: default; opacity: .58; }
.nav-item-button { width: 100%; border: 0; background: transparent; cursor: pointer; font-family: inherit; text-align: left; }
.nav-item small { margin-left: auto; color: #a1a9b8; font-size: .6rem; }
.nav-icon { width: 1.1rem; color: currentColor; font-size: 1rem; text-align: center; }
.nav-icon svg { display: block; width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.sidebar-footer { margin-top: auto; padding: 1rem; border-top: 1px solid #eef0f5; }
.sidebar-help-link { display:flex; align-items:center; gap:.55rem; margin-bottom:.8rem; color:#64748b; font-size:.82rem; text-decoration:none; }
.sidebar-help-link:hover { color:#1f5d50; }
.sidebar-help-link svg { display:block; width:1rem; height:1rem; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.user-summary { display: flex; align-items: center; gap: .65rem; color: #64748b; text-decoration: none; }
.user-summary-form { display: flex; align-items: center; gap: .65rem; }
.user-summary-button { padding: 0; border: 0; background: transparent; color: #64748b; cursor: pointer; text-align: left; }
.user-summary-button strong, .user-summary-button small { display: block; max-width: 10rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-summary-button strong { color: #334155; font-size: .72rem; }
.user-summary-button small { margin-top: .2rem; color: #94a3b8; font-size: .68rem; }
.user-summary strong, .user-summary small { display: block; max-width: 10rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-summary strong { color: #334155; font-size: .72rem; }
.user-summary small { margin-top: .2rem; color: #94a3b8; font-size: .68rem; }
.main-content { min-width: 0; flex: 1; }
.content-container { max-width: 75rem; margin: 0 auto; padding: 3rem 3.5rem; }
.mobile-topbar { display: none; }
.mobile-menu-toggle { display: none; }
.mobile-menu-close { display: none; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: 2.25rem; }
.page-heading h1 { margin: .45rem 0 .6rem; color: #172033; font-size: clamp(2rem, 4vw, 3rem); letter-spacing: -.05em; }
.page-heading .button { flex-shrink: 0; margin-top: 0; }
.compact-heading { align-items: center; }
.eyebrow { margin: 0; font-size: .7rem; }
.lead { margin: 0; color: #7b8495; font-size: .95rem; }
.stat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 1.5rem; }
.statistics-period { display: flex; justify-content: flex-end; }
.statistics-period label { display: grid; gap: .3rem; color: #64748b; font-size: .72rem; font-weight: 700; }
.statistics-period select { min-width: 9rem; }
.statistics-filter-menu { position: relative; }
.statistics-filter-menu > summary { display: inline-flex; align-items: center; gap: .65rem; list-style: none; cursor: pointer; }
.statistics-filter-menu > summary::-webkit-details-marker { display: none; }
.statistics-filter-chevron { flex: 0 0 auto; transition: transform .18s ease; }
.statistics-filter-menu[open] > summary .statistics-filter-chevron { transform: rotate(180deg); }
.statistics-filter-count { display: inline-grid; width: 1.25rem; height: 1.25rem; place-items: center; color: #fff; background: #1d5c50; border-radius: 50%; font-size: .68rem; }
.statistics-filter-fields { position: absolute; z-index: 8; top: calc(100% + .65rem); right: 0; display: grid; grid-template-columns: repeat(3, minmax(10rem, 1fr)); gap: .8rem; width: min(52rem, calc(100vw - 2rem)); padding: 1rem; background: #fffaf2; border: 1px solid #e8e2d7; border-radius: 1rem; box-shadow: 0 1rem 2.5rem rgba(32, 42, 64, .16); }
.statistics-filter-fields label { min-width: 0; }
.statistics-filter-fields select, .statistics-filter-fields input { width: 100%; min-width: 0; }
.statistics-filter-fields button { align-self: end; }
.statistics-grid { grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
.statistics-columns { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(12rem, .75fr)); gap: 1rem; align-items: stretch; }
.professional-statistics { grid-template-columns: minmax(0, 2fr) minmax(14rem, 1fr); }
.statistics-chart-panel, .statistics-list-panel { min-width: 0; }
.statistics-columns + .statistics-columns,
.statistics-columns + .statistics-chart-panel,
.statistics-columns + .statistics-list-panel,
.statistics-chart-panel + .statistics-columns,
.statistics-chart-panel + .statistics-chart-panel,
.statistics-chart-panel + .statistics-list-panel,
.statistics-grid + .statistics-chart-panel { margin-top: 1rem; }
.statistics-columns > .statistics-chart-panel:only-child { grid-column: 1 / -1; }
.statistics-chart { position: relative; display: flex; align-items: end; gap: .2rem; height: 10rem; overflow: hidden; padding: 1rem 0 .2rem; border-bottom: 1px solid #e8e6e1; }
.statistics-bar-column { display: flex; flex: 1 1 0; min-width: 0; height: 100%; flex-direction: column; align-items: center; justify-content: end; gap: .3rem; }
.statistics-bar-value { min-height: .8rem; color: #64748b; font-size: .62rem; }
.statistics-bar { display: block; width: min(72%, 1.5rem); min-height: .2rem; background: linear-gradient(180deg, #8179ff, #635bff); border-radius: .3rem .3rem .1rem .1rem; transition: height .2s ease; }
.statistics-bar.is-empty { min-height: 0; background: transparent; }
.statistics-bar-column small { height: .85rem; color: #8992a1; font-size: .6rem; white-space: nowrap; }
.statistics-ranking { display: grid; gap: .2rem; margin: 0; padding: 0; list-style: none; }
.statistics-ranking li { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .75rem 0; border-bottom: 1px solid #edf0f5; color: #475569; font-size: .82rem; }
.statistics-ranking li:last-child { border-bottom: 0; }
.statistics-ranking strong { display: grid; min-width: 2rem; min-height: 2rem; place-items: center; color: #5148d8; background: #f0efff; border-radius: 50%; font-size: .75rem; }
.statistics-empty { margin: 0; padding: 1.5rem .75rem; color: #94a3b8; text-align: center; font-size: .82rem; }
.admin-statistics-chart { margin-bottom: 1rem; }
.statistics-section-title { margin: 1.8rem 0 .8rem; color: #202a40; font-size: 1.15rem; }
.admin-analytics-columns { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); margin: 1rem 0; }
.admin-analytics-columns .panel { min-width: 0; overflow: hidden; }
.stat-card, .panel { background: #fff; border: 1px solid #e9ebf1; border-radius: .9rem; box-shadow: 0 8px 24px rgba(28, 37, 61, .035); }
.stat-card { display: flex; flex-direction: column; padding: 1.35rem; }
.stat-value-row { display: flex; align-items: center; justify-content: space-between; gap: .5rem; min-width: 0; }
.stat-value-row strong { min-width: 0; }
.stat-trend { flex: 0 0 auto; display: inline-flex; align-items: center; gap: .2rem; padding: .3rem .5rem; border-radius: 999px; font-size: .72rem; font-weight: 700; white-space: nowrap; }
.stat-trend.is-positive { color: #16804a; background: #eaf8f0; }
.stat-trend.is-negative { color: #bd3d4a; background: #fff0f0; }
.stat-trend.is-neutral { color: #697386; background: #f1f3f7; }
.public-plans-page { width: min(78rem, calc(100% - 2rem)); margin: 3rem auto 5rem; }
.public-plans-heading { margin: 0 auto 2rem; padding: 2.5rem 1rem 2rem; text-align: center; background: radial-gradient(ellipse at 50% 0%, #d6f3e9 0, #f6f4eb 62%, transparent 100%); border-radius: 1.5rem; }
.public-plans-heading .eyebrow { color: #bf583f; }
.public-plans-heading h1 { margin: .25rem 0; color: #15383d; font-size: clamp(2.2rem, 5vw, 3.4rem); }
.public-plans-heading .lead { color: #617478; }
.billing-toggle { display: inline-flex; gap: .3rem; margin-top: 1rem; padding: .25rem; background: #e4e9e5; border-radius: 999px; }
.billing-toggle a { padding: .65rem 1.2rem; border-radius: 999px; color: #526569; text-decoration: none; font-weight: 650; }
.billing-toggle a.is-active { color: #fff; background: #174c50; box-shadow: 0 3px 10px #174c5030; }
.signup-plan-notice { margin: 0 0 1rem; padding: 1rem 1.2rem; color: #174c50; background: #e2f3e9; border: 1px solid #c4e5d4; border-radius: .75rem; text-align: center; font-weight: 650; }
.public-plan-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); align-items: stretch; gap: 1rem; }
.public-plan-card { position: relative; display: flex; flex-direction: column; min-width: 0; padding: 1.6rem; border: 1px solid #dfe7e3; border-radius: 1rem; background: #fff; box-shadow: 0 12px 32px #173b3510; }
.public-plan-card.is-featured { color: #f6fbf7; background: #174c50; border: 2px solid #174c50; box-shadow: 0 16px 38px #174c5030; }
.public-plan-card header h2 { margin: 0 0 .5rem; color: #174c50; font-size: 1.65rem; }
.public-plan-card header p { min-height: 2.8rem; margin: 0; color: #687b79; font-size: .88rem; }
.public-plan-card.is-featured header h2, .public-plan-card.is-featured header p { color: #fff; }
.public-plan-badge { position: absolute; top: 0; right: 1rem; padding: .4rem .65rem; border-radius: 0 0 .5rem .5rem; color: #263c32; background: #f0bc61; font-size: .66rem; font-weight: 750; text-transform: uppercase; }
.public-plan-badge-custom { max-width: 65%; text-align: center; text-transform: none; }
.public-plan-price { display: grid; min-height: 5.5rem; align-content: center; margin: .9rem 0; color: #617478; }
.public-plan-price strong { color: #174c50; font-size: 2rem; line-height: 1.15; }
.public-plan-card.is-featured .public-plan-price, .public-plan-card.is-featured .public-plan-price strong { color: #b8f0d7; }
.public-plan-price strong small { font-size: .85rem; font-weight: 500; }
.public-plan-price span { margin-top: .3rem; font-size: .78rem; }
.public-plan-benefits { display: grid; gap: 0; margin: 0 0 1.5rem; padding: 0; list-style: none; }
.public-plan-benefits li { display: flex; gap: .6rem; padding: .65rem 0; border-bottom: 1px solid #e7ece9; color: #526569; font-size: .83rem; }
.public-plan-benefits li span { color: #159a73; font-weight: 800; }
.public-plan-card.is-featured .public-plan-benefits li { border-color: #ffffff30; color: #edf7f1; }
.public-plan-card.is-featured .public-plan-benefits li span { color: #8be2bd; }
.public-plan-card form { margin-top: auto; }
.public-plan-cta { width: 100%; border-radius: 999px; background: #174c50; }
.public-plan-card.is-featured .public-plan-cta { color: #19383a; background: #f0bc61; }
.public-plan-unavailable { margin-top: auto; padding: .8rem 0; color: #7b8495; text-align: center; font-size: .8rem; }
.public-plans-footnote { margin: 1.5rem 0; color: #71817e; text-align: center; font-size: .8rem; }
.plan-simulation-card { width: min(36rem, calc(100% - 2rem)); margin: 3rem auto; }
.simulation-order { display: grid; grid-template-columns: 1fr auto; gap: .4rem 1rem; margin: 1.5rem 0; padding: 1rem; border: 1px solid #e6e9f0; border-radius: .8rem; }
.simulation-order strong { color: #202a40; font-size: 1.2rem; }
.simulation-order small { grid-column: 1 / -1; color: #81899a; }
.simulation-warning { display: grid; gap: .25rem; padding: 1rem; border-radius: .7rem; color: #675510; background: #fff7d9; font-size: .85rem; }
.simulation-actions { display: grid; gap: .65rem; margin: 1.2rem 0; }
.simulation-actions .button { width: 100%; }
.simulation-back { color: #5d58cc; }
.signup-plan-summary { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .5rem 1rem; margin: 1.2rem 0; padding: 1rem; border: 1px solid #e3e5f4; border-radius: .8rem; background: #f5f5ff; }
.signup-plan-summary h2, .signup-plan-summary p { margin: .2rem 0; }
.signup-plan-summary p, .signup-plan-price span { color: #737d91; font-size: .8rem; }
.signup-plan-price { display: grid; justify-items: end; }
.signup-plan-price strong { color: #5652b8; }
.signup-plan-summary > a { grid-column: 1 / -1; color: #5d58cc; font-size: .8rem; }
.simulation-approved { color: #16804a !important; }
.stat-label { color: #7b8495; font-size: .78rem; font-weight: 600; }
.stat-card strong { margin: .45rem 0 .2rem; color: #172033; font-size: 2rem; letter-spacing: -.04em; }
.stat-note { color: #a1a9b8; font-size: .72rem; }
.dashboard-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 1rem; }
.panel { padding: 1.5rem; }
.welcome-panel { display: flex; align-items: flex-start; gap: 1rem; background: linear-gradient(135deg, #635bff, #786fff); border: 0; color: #fff; }
.welcome-panel h2, .welcome-panel p { margin-top: 0; }
.welcome-panel h2 { margin-bottom: .55rem; font-size: 1.25rem; }
.welcome-panel p { max-width: 25rem; color: #e5e3ff; font-size: .86rem; line-height: 1.6; }
.panel-icon { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; flex-shrink: 0; color: #635bff; background: #fff; border-radius: .7rem; }
.text-link { color: #fff; font-size: .85rem; font-weight: 700; text-decoration: none; }
.text-link span { margin-left: .35rem; }
.panel-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.panel h2 { margin: 0; color: #273248; font-size: 1rem; }
.setup-progress { color: #635bff; font-size: .75rem; font-weight: 700; }
.setup-caption { margin: .25rem 0 0; color: #94a3b8; font-size: .75rem; }
.progress-track { height: .4rem; margin: 1.1rem 0; overflow: hidden; background: #edf0f6; border-radius: 1rem; }
.progress-track span { display: block; height: 100%; background: #635bff; border-radius: inherit; }
.setup-list { display: grid; gap: .7rem; margin: 0; padding: 0; list-style: none; }
.setup-item { display: flex; align-items: flex-start; gap: .6rem; color: #8992a3; font-size: .8rem; }
.setup-item a { color: #64748b; text-decoration: none; }
.setup-item a:hover { color: #635bff; }
.setup-item small { display: block; margin-top: .15rem; color: #a1a9b8; font-size: .68rem; line-height: 1.35; }
.setup-check { display: grid; place-items: center; width: 1.2rem; height: 1.2rem; flex-shrink: 0; color: #a1a9b8; border: 1px solid #dfe3eb; border-radius: 50%; font-size: .7rem; }
.setup-item.is-done a { color: #22a06b; text-decoration: line-through; }
.setup-item.is-done .setup-check { color: #fff; background: #22a06b; border-color: #22a06b; }
.table-panel { padding: 0; overflow: hidden; }
.table-panel .panel-header { padding: 1.25rem 1.5rem; }
.table-panel .muted { margin: .35rem 0 0; font-size: .8rem; }
.payment-document-note { margin: 1rem 1.5rem 1.25rem !important; line-height: 1.55; }
.payment-alert-badge { display:inline-flex; align-items:center; gap:.25rem; margin:.35rem 0 0 .35rem; padding:.18rem .45rem; border:1px solid #f3c6aa; border-radius:999px; color:#9a3412; background:#fff1e8; font-size:.68rem; font-weight:750; line-height:1.25; vertical-align:middle; white-space:nowrap; }
.payment-alert-badge svg { width:.8rem; height:.8rem; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
.payment-method-recovery { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; border-color:#f3c6aa; background:#fff8f2; }
.payment-method-recovery h2 { margin:.15rem 0 .35rem; }
.payment-method-recovery p { max-width:48rem; margin:0; }
.payment-method-recovery .form-actions { flex-shrink:0; }
.payment-method-panel { max-width:52rem; }
.payment-element-frame { padding:1rem; border:1px solid var(--line,#e5e7eb); border-radius:12px; background:#fff; }
@media (max-width:720px) { .payment-method-recovery { align-items:stretch; flex-direction:column; } .payment-method-recovery .form-actions { align-items:stretch; flex-direction:column; } }
.plan-features { padding: 1.35rem 1.5rem 1.5rem; border-top: 1px solid #e9ebf1; }
.plan-features h3 { margin: 0 0 1rem; color: #273248; font-size: .95rem; }
.plan-feature-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: .7rem; }
.plan-feature-card { display: flex; align-items: center; gap: .7rem; min-height: 3.5rem; padding: .7rem .8rem; border: 1px solid #e9ebf1; border-radius: .7rem; background: #fbfcfe; }
.plan-feature-icon { display: grid; place-items: center; width: 1.65rem; height: 1.65rem; flex: 0 0 auto; border-radius: 50%; font-size: .8rem; font-weight: 800; }
.plan-feature-icon.is-enabled { color: #138a5a; background: #e5f8ef; }
.plan-feature-icon.is-disabled { color: #8992a3; background: #edf0f6; }
.plan-feature-name { flex: 1; color: #273248; font-size: .82rem; font-weight: 600; }
.plan-feature-status { padding: .25rem .5rem; border-radius: 2rem; font-size: .65rem; font-weight: 700; }
.plan-feature-status.is-enabled { color: #138a5a; background: #e5f8ef; }
.plan-feature-status.is-disabled { color: #738095; background: #edf0f6; }
.plan-contact-link { color: #635bff; font-weight: 700; text-decoration: none; }
.plan-contact-link:hover { text-decoration: underline; }
.location-list { display: grid; gap: 1rem; }
.location-card { display: grid; gap: 1rem; }
.location-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.location-card h2 { margin: .2rem 0 .3rem; }
.location-card .eyebrow { color: #635bff; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.location-actions, .location-assignment-summary { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.location-assignment-summary span { padding: .35rem .65rem; color: #64748b; background: #f1f3f9; border-radius: 2rem; font-size: .72rem; font-weight: 650; }
.location-quota { margin: -.75rem 0 1rem; }
.location-form { max-width: 54rem; }
.location-form .choice-fieldset { display: grid; gap: .5rem; }
.table-wrap { overflow-x: auto; }
table { min-width: 38rem; }
th { color: #94a3b8; font-size: .7rem; font-weight: 700; text-transform: uppercase; }
th, td { padding: 1rem 1.5rem; }
td { color: #64748b; font-size: .85rem; }
td strong { color: #273248; }
.status { display: inline-flex; padding: .3rem .55rem; border-radius: 2rem; font-size: .7rem; font-weight: 700; }
.status-active { color: #138a5a; background: #e5f8ef; }
.status-inactive { color: #9a5b16; background: #fff3df; }
.status-cancelled { color: #b4233c; background: #fde8ec; }
.status-completed { color: #4b45b8; background: #ecebff; }
.button-link { padding: 0; border: 0; background: none; cursor: pointer; font: inherit; }
.danger-link { color: #c24141; font-size: .78rem; }
.table-actions { display: flex; align-items: center; gap: .8rem; }
.table-actions a { color: #635bff; font-size: .78rem; text-decoration: none; }
.empty-state { padding: 2.5rem 1.5rem; color: #94a3b8; text-align: center; }
.form-panel { max-width: 42rem; }
.form-grid { gap: 1.2rem; }
label { color: #475569; font-size: .82rem; }
input, select, textarea { box-sizing: border-box; width: 100%; margin-top: .35rem; padding: .8rem .9rem; color: #172033; background: #fbfcfe; border: 1px solid #e1e6ef; border-radius: .4rem; font: inherit; outline: none; }
input:focus { border-color: #635bff; box-shadow: 0 0 0 3px #635b5b1a; }
.form-help { margin: -.3rem 0 0; color: #94a3b8; font-size: .75rem; line-height: 1.5; }
.booking-date-field { display: grid; gap: .35rem; }
.booking-card { max-width: 42rem; }
.booking-details-step[hidden] { display: none; }
.step-heading { margin: 0; color: #273248; font-size: 1.1rem; font-weight: 700; }
.booking-service-list { display: grid; gap: .7rem; margin: .25rem 0 .5rem; }
.booking-service-choice { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .8rem; padding: 1rem; background: #fff; border: 1px solid #e1e6ef; border-radius: .7rem; cursor: pointer; }
.booking-service-choice[hidden], [data-booking-flow-target="selection"][hidden], [data-booking-flow-target="datetime"][hidden], [data-booking-flow-target="details"][hidden] { display: none !important; }
.booking-service-choice:has(input:checked) { border-color: var(--public-accent, #635bff); background: var(--public-soft, #f8f7ff); box-shadow: 0 0 0 2px color-mix(in srgb, var(--public-accent, #635bff) 12%, transparent); }
.booking-service-choice input { width: 1.1rem; height: 1.1rem; margin: 0; padding: 0; accent-color: var(--public-accent, #635bff); }
.booking-service-choice > span { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .2rem .8rem; }
.booking-service-choice strong { color: #273248; font-size: .95rem; }
.booking-service-choice small { color: #64748b; font-size: .78rem; }
.booking-service-choice b { grid-column: 2; grid-row: 1 / span 2; color: var(--public-accent, #635bff); white-space: nowrap; }
.booking-location-group[hidden] { display: none !important; }
.booking-location-list { grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.booking-location-choice { min-height: 5rem; }
.booking-location-choice > span { grid-template-columns: 1fr; }
.booking-location-choice small { line-height: 1.4; }
.booking-customer-summary { display: grid; gap: .75rem; margin: 0; }
.booking-customer-summary div { padding: .8rem; background: #fbfcfe; border: 1px solid #e1e6ef; border-radius: .5rem; }
.booking-customer-summary dt { color: #64748b; font-size: .75rem; }
.booking-customer-summary dd { margin: .2rem 0 0; color: #273248; font-weight: 650; }
.field-label { color: #475569; font-size: .82rem; font-weight: 600; }
.calendar { padding: 1rem; background: #fbfcfe; border: 1px solid #e1e6ef; border-radius: .6rem; }
.calendar-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: .8rem; color: #273248; text-transform: capitalize; }
.calendar-nav { width: 2rem; height: 2rem; color: var(--public-accent, #635bff); background: var(--public-soft, #f0efff); border: 0; border-radius: .4rem; cursor: pointer; font-size: 1.3rem; line-height: 1; }
.calendar .calendar-weekdays, .calendar .calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: .25rem; text-align: center; }
.calendar .calendar-weekdays { margin-bottom: .35rem; color: #94a3b8; font-size: .65rem; font-weight: 700; }
.calendar .calendar-day { aspect-ratio: 1; color: #cbd5e1; background: transparent; border: 0; border-radius: .45rem; font: inherit; font-size: .78rem; }
.calendar .calendar-day:not(:disabled) { color: var(--public-accent, #635bff); background: var(--public-soft, #f0efff); cursor: pointer; font-weight: 700; }
.calendar .calendar-day:not(:disabled):hover, .calendar .calendar-day.is-selected { color: var(--public-accent-contrast, white); background: var(--public-accent, #635bff); }
.calendar .calendar-day.is-in-range:not(.is-selected) { color: var(--public-accent, #635bff); background: var(--public-soft, #f0efff); }
.checkbox-row { display: flex; grid-template-columns: auto 1fr; align-items: center; gap: .55rem; }
.checkbox-row input { width: auto; margin: 0; }
.form-actions { display: flex; align-items: center; gap: .7rem; margin-top: .5rem; }
.filter-bar { display: grid; grid-template-columns: 1fr 1.2fr 1fr auto auto; align-items: end; gap: .8rem; margin-bottom: 1rem; padding: 1rem; }
.filter-bar .button { margin-top: 0; white-space: nowrap; }
.form-two-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.appointment-series-options, .appointment-series-review { display: grid; gap: 1rem; padding: 1.2rem; border: 1px solid #1f5d5020; border-radius: .9rem; background: #fffdf9; }
.appointment-series-options h2, .appointment-series-review h2 { margin: 0; font-size: 1.1rem; }
.appointment-series-review > p { margin: 0; color: #66564b; }
.appointment-series-date { padding: .8rem 1rem; border: 1px solid #e7e9ef; border-radius: .65rem; background: #fff; }
.appointment-series-date.is-conflict { border-color: #f0bc61; background: #fff8e8; }
.appointment-series-date label { display: grid; gap: .55rem; }
.appointment-series-date strong { color: #1f5d50; }
.inline-form { display: flex; align-items: center; gap: .45rem; min-width: 14rem; }
.inline-form select { min-width: 7rem; margin: 0; padding: .5rem; font-size: .75rem; }
.inline-form .button { flex-shrink: 0; margin: 0; padding: .55rem .7rem; font-size: .75rem; }
.admin-tenants-table { width: 100%; min-width: 0; table-layout: fixed; }
.admin-tenants-table th, .admin-tenants-table td { padding: .9rem .8rem; vertical-align: middle; }
.admin-tenants-table th:nth-child(1) { width: 15%; }
.admin-tenants-table th:nth-child(2) { width: 11%; }
.admin-tenants-table th:nth-child(3) { width: 7%; }
.admin-tenants-table th:nth-child(4) { width: 22%; }
.admin-tenants-table th:nth-child(5) { width: 15%; }
.admin-tenants-table th:nth-child(6) { width: 21%; }
.admin-tenants-table th:nth-child(7) { width: 9%; }
.tenant-admin-form { min-width: 0; align-items: stretch; flex-direction: column; gap: .4rem; }
.tenant-admin-form select { min-width: 0; width: 100%; }
.tenant-admin-form .button { align-self: flex-start; }
.tenant-visibility-form { align-items: flex-start; }
.tenant-visibility-form span { font-size: .75rem; }
.admin-tenants-table td:first-child strong { display: inline-block; margin-bottom: .25rem; }
.form-two-columns fieldset { display: grid; gap: .55rem; margin: 0; padding: 1rem; border: 1px solid #e1e6ef; border-radius: .6rem; }
.form-two-columns fieldset legend { padding: 0 .35rem; color: #334155; font-size: .85rem; font-weight: 700; }
.form-field-wide { grid-column: 1 / -1; }
.choice-fieldset { display: grid; gap: .7rem; margin: 0; padding: 1rem; border: 1px solid #e1e6ef; border-radius: .6rem; }
.choice-fieldset legend { padding: 0 .35rem; color: #334155; font-size: .85rem; font-weight: 700; }
.choice-fieldset > .muted { margin: 0; font-size: .78rem; }
.button-secondary { color: #596579; background: #eef0f5; }
.button-danger { color: #fff; background: #dc5b68; }
.privacy-confirmation { max-width: 20rem; font-weight: 700; letter-spacing: .08em; }
.error-list { margin: 0 0 1rem; font-size: .85rem; }
.admin-badge { background: #f0fdfa; border-color: #ccfbf1; }
.admin-intro { display: flex; align-items: flex-start; gap: 1rem; max-width: 48rem; }
.admin-intro p { margin-bottom: 0; color: #7b8495; font-size: .86rem; line-height: 1.6; }
.schedule-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.schedule-card { padding: 1.25rem; }
.schedule-day { display: grid; grid-template-columns: 7.5rem 1fr; align-items: start; gap: .75rem; padding: .75rem 0; border-bottom: 1px solid #f0f1f5; }
.schedule-day > strong { color: #475569; font-size: .78rem; }
.period-list { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.period-chip { display: inline-flex; align-items: center; gap: .25rem; padding: .3rem .45rem .3rem .6rem; color: #5148d8; background: #f0efff; border-radius: .4rem; font-size: .72rem; font-weight: 700; }
.period-chip form { display: inline; }
.period-chip button { padding: 0; color: #8c86e8; border: 0; background: none; cursor: pointer; font-size: 1rem; line-height: 1; }
.inline-period-form { display: flex; align-items: center; gap: .3rem; width: 100%; margin-top: .35rem; }
.inline-period-form input { width: 6.5rem; margin: 0; padding: .35rem; font-size: .7rem; }
.inline-period-form span { color: #94a3b8; font-size: .7rem; }
.inline-period-form .button-link { color: #635bff; font-size: .7rem; }
.exceptions-panel { margin-top: 1rem; }
.schedule-filters { display: grid; grid-template-columns: minmax(10rem, 1fr) minmax(10rem, 1fr) auto auto; gap: .8rem; }
.schedule-filters p { margin: 0; }
.schedule-calendar-panel { margin-bottom: 1rem; padding: 1.25rem; overflow: hidden; }
.schedule-calendar-panel .notice-warning { margin: 0 0 1rem; padding: .75rem 1rem; color: #7a4b08; background: #fff6df; border: 1px solid #f0d99e; border-radius: .5rem; }
.schedule-calendar-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .75rem; margin-bottom: 1rem; }
.schedule-calendar-heading h2 { margin: 0; }
.schedule-calendar-nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; min-width: 0; }
.schedule-calendar-nav .button { flex: 0 1 auto; width: auto; max-width: 100%; margin: 0; text-align: center; white-space: nowrap; }
.holiday-source-note { margin: -.25rem 0 1rem; font-size: .78rem; }
.calendar-scroll { max-width: 100%; padding-bottom: .1rem; }
.calendar-weekdays, .schedule-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.calendar-weekdays { gap: .35rem; margin-bottom: .35rem; color: #64748b; font-size: .7rem; text-align: center; text-transform: uppercase; }
.schedule-calendar-grid { gap: .35rem; }
.calendar-day { min-width: 0; min-height: 7.5rem; padding: .45rem; background: #fff; border: 1px solid #e9ebf1; border-radius: .55rem; }
.calendar-day-outside { background: #f8f9fb; color: #a0a8b6; }
.calendar-day h3 { margin: 0 0 .35rem; color: #273248; font-size: .82rem; }
.calendar-day-outside h3 { color: #a0a8b6; }
.calendar-day-events { display: grid; gap: .3rem; }
.calendar-more-events { color: #635bff; font-size: .68rem; }
.calendar-more-events summary { padding: .25rem .1rem; cursor: pointer; font-weight: 700; }
.calendar-more-events[open] { display: grid; gap: .25rem; }
.calendar-event { display: grid; gap: .1rem; padding: .35rem; border-radius: .35rem; font-size: .68rem; line-height: 1.3; overflow-wrap: anywhere; }
.calendar-event strong { color: #273248; }
.calendar-event small { color: #64748b; font-size: .64rem; }
.calendar-holiday { background: #fff7e6; border-left: 3px solid #e8a83a; }
.holiday-applied-status { color: #176b54; font-weight: 700; }
.applied-holiday-list { display: grid; gap: .6rem; }
.applied-holiday-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1rem; background: #f5f3ff; border: 1px solid #e4e0f5; border-radius: .65rem; }
.applied-holiday-row > div { display: grid; gap: .2rem; }
.applied-holiday-row small { color: var(--muted, #64748b); }
@media (max-width: 600px) { .applied-holiday-row { align-items: flex-start; flex-direction: column; } }
.calendar-exception { background: #fff0f0; border-left: 3px solid #d75c67; }
.calendar-absence { background: #fff4e8; border-left-color: #e28a35; }
.calendar-appointment { background: #f0efff; border-left: 3px solid #635bff; }
.calendar-appointment-conflict { background: #ffe5e7; border-left-color: #c83c4b; }
.calendar-event form { margin: .1rem 0 0; }
.calendar-event .button-link { padding: 0; color: #544cff; font-size: .65rem; }
.calendar-event .button-link:hover { text-decoration: underline; }
.calendar-event .button-link.danger-link { color: #b42332; }
.conflict-note { color: #b42332 !important; font-weight: 700; }
.calendar-empty { min-height: .5rem; }
@media (max-width: 850px) { .calendar-scroll { overflow-x: auto; overflow-y: hidden; } .calendar-weekdays, .schedule-calendar-grid { min-width: 56rem; } }
@media (max-width: 600px) { .schedule-calendar-heading { grid-template-columns: minmax(0, 1fr); } .schedule-calendar-nav { justify-content: flex-start; } }
.exceptions-panel .panel-header { margin-bottom: 1rem; }
.exception-form { display: grid; grid-template-columns: repeat(4, minmax(8rem, 1fr)); align-items: end; gap: .75rem; margin-top: 1.25rem; }
.exception-form-help { grid-column: span 3; align-self: center; margin: 0; font-size: .78rem; }
.exception-form .button { margin: 0; white-space: nowrap; }
.exception-list { display: grid; gap: .5rem; margin-top: 1rem; }
.exception-row { display: grid; grid-template-columns: 7rem 1fr 1fr auto; align-items: center; gap: .75rem; padding: .7rem; color: #64748b; background: #fafbfc; border-radius: .5rem; font-size: .78rem; }
.exception-row strong { color: #273248; }
.agenda-switch { display: flex; gap: .4rem; }
.agenda-switch .button { margin: 0; padding: .6rem .8rem; font-size: .78rem; }
.agenda-toolbar { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; color: #64748b; font-size: .8rem; }
.agenda-toolbar strong { margin: 0 auto; color: #273248; }
.agenda-toolbar a { color: #635bff; text-decoration: none; }
.agenda-nav-button { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; color: #635bff !important; background: #fff; border: 1px solid #e7e9ef; border-radius: .55rem; font-size: 1.4rem; }
.agenda-toolbar form { margin-left: auto; }
.agenda-toolbar select { width: auto; min-width: 10rem; margin: 0; padding: .5rem; font-size: .75rem; }
.agenda-panel td { vertical-align: middle; }
.agenda-cards { display: grid; gap: 1.25rem; }
.agenda-day-section h2 { margin: 0 0 .65rem; color: #64748b; font-size: .8rem; text-transform: capitalize; }
.day-cards { display: grid; gap: .6rem; }
.appointment-card { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.15rem; background: #fff; border: 1px solid #e9ebf1; border-left: 4px solid #635bff; border-radius: .8rem; box-shadow: 0 6px 18px rgba(28,37,61,.035); }
.appointment-time { min-width: 4rem; color: #635bff; font-size: 1.05rem; font-weight: 800; }
.appointment-time small, .appointment-info span, .appointment-info small { display: block; color: #94a3b8; font-size: .72rem; font-weight: 400; }
.appointment-info { display: grid; gap: .2rem; flex: 1; }
.appointment-info strong { color: #273248; font-size: .9rem; }
.agenda-empty { margin: 0; padding: 1rem; color: #a1a9b8; background: #fff; border: 1px dashed #e1e6ef; border-radius: .7rem; font-size: .8rem; }
.month-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: .5rem; }
.month-day { position: relative; min-height: 7.5rem; padding: .7rem; background: #fff; border: 1px solid #e9ebf1; border-radius: .65rem; }
.month-day.has-appointments { cursor: pointer; }
.month-day.has-appointments:hover, .month-day.has-appointments:focus { z-index: 5; border-color: #c9c5ff; outline: none; box-shadow: 0 0 0 3px rgba(99,91,255,.1); }
.month-day > strong { display: block; margin-bottom: .6rem; color: #64748b; font-size: .72rem; text-transform: capitalize; }
.compact-card { display: grid; gap: .2rem; margin-bottom: .35rem; padding: .5rem; border-left-width: 3px; border-radius: .45rem; box-shadow: none; font-size: .65rem; }
.compact-card b { color: #5148d8; font-size: .68rem; }
.compact-card span { overflow: hidden; color: #64748b; text-overflow: ellipsis; white-space: nowrap; }
.month-empty { color: #d6dbe5; font-size: .75rem; }
.week-grid { display: grid; grid-template-columns: repeat(7, minmax(9rem, 1fr)); gap: .55rem; overflow-x: auto; }
.week-column { min-height: 24rem; padding: .75rem; background: #fff; border: 1px solid #e9ebf1; border-radius: .65rem; }
.week-column h2 { margin: 0 0 .8rem; color: #64748b; font-size: .75rem; text-transform: capitalize; }
.week-column h2 small { display: block; margin-top: .2rem; color: #a1a9b8; font-size: .68rem; font-weight: 400; }
.week-column .compact-card { display: grid; gap: .2rem; margin-bottom: .5rem; padding: .65rem; }
.week-column .compact-card strong { color: #273248; font-size: .7rem; }
.week-column .compact-card span, .week-column .compact-card small { color: #64748b; font-size: .68rem; }
.week-status { color: #b3bbc8; font-size: .7rem; }
.month-count { display: inline-flex; padding: .4rem .55rem; color: #5148d8; background: #f0efff; border-radius: .45rem; font-size: .72rem; font-weight: 700; }
.month-appointments-popover { position: absolute; z-index: 6; top: calc(100% - .15rem); left: 0; display: none; width: max-content; min-width: 17rem; max-width: min(24rem, 80vw); max-height: 18rem; overflow-y: auto; padding: .75rem; background: #fff; border: 1px solid #e3e5ef; border-radius: .75rem; box-shadow: 0 14px 36px rgba(28,37,61,.18); }
.month-day.has-appointments:hover .month-appointments-popover, .month-day.has-appointments:focus .month-appointments-popover { display: grid; gap: .5rem; }
.month-day:nth-child(7n) .month-appointments-popover { right: 0; left: auto; }
.month-popover-title { color: #64748b; font-size: .75rem; text-transform: capitalize; }
.month-appointment-item { display: flex; gap: .65rem; padding-top: .5rem; border-top: 1px solid #eef0f5; }
.month-appointment-item time { flex: 0 0 2.8rem; color: #5148d8; font-size: .75rem; font-weight: 750; }
.month-appointment-item > span { display: grid; gap: .15rem; min-width: 0; }
.month-appointment-item > span > strong { color: #273248; font-size: .78rem; }
.month-appointment-item small { color: #7b8799; font-size: .7rem; overflow-wrap: anywhere; }
.month-day.is-closed { background: #fafafa; }
.month-day.is-closed .month-empty { color: #c24141; }
.site-settings-form { max-width: 52rem; }
.site-settings-note { max-width: 52rem; margin-top: 1rem; }
.site-settings-note p { margin-bottom: 0; }
.public-site { display:flex; flex:1; flex-direction:column; min-height:0; color:#172033; background:#fbfcfe; }
.public-site > main { flex:1; }
.public-site-nav { display:flex; justify-content:center; flex-wrap:wrap; gap:.5rem; max-width:70rem; margin:0 auto; padding:1.25rem 2rem; }
.public-site-nav a { padding:.65rem 1rem; color:#475569; border-radius:999px; text-decoration:none; font-weight:650; }
.public-site-nav a:hover, .public-site-nav a:focus-visible { color:var(--public-accent,#635bff); background:var(--public-soft,#f1efff); }
.public-page-heading { padding-bottom:1rem; }
.public-page-heading h1 { margin:.5rem 0 1rem; font-size:clamp(2.4rem,6vw,4.5rem); letter-spacing:-.045em; }
.public-page-heading > p:last-child { max-width:48rem; color:#64748b; font-size:1.1rem; line-height:1.7; }
.public-contact-only { display:block; }
.public-site-header { display: flex; align-items: center; justify-content: space-between; max-width: 70rem; margin: 0 auto; padding: 1.25rem 2rem; }
.public-site-logo { color: #172033; font-size: 1.15rem; font-weight: 800; text-decoration: none; }
.public-site-logo-image { width: 3rem; height: 3rem; object-fit: contain; border-radius: .6rem; }
.public-site-header .button { margin: 0; padding: .65rem .9rem; font-size: .8rem; }
.public-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(16rem, 34%); align-items: stretch; max-width: 70rem; min-height: 30rem; margin: 2rem auto 0; overflow: hidden; background: radial-gradient(circle at 85% 15%, #e8e6ff 0, transparent 32%), linear-gradient(135deg, #f0efff, #fff); border-radius: 1.5rem; }
.public-hero-copy { padding: 5rem 2rem 6rem; }
.public-hero-logo { display: block; width: 5.5rem; height: 5.5rem; margin-bottom: 2rem; object-fit: contain; border-radius: 1rem; }
.public-hero-image { min-height: 20rem; padding: 1.25rem; }
.public-hero-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 1rem; }
.public-hero h1 { max-width: 42rem; margin: .75rem 0 1rem; font-size: clamp(3rem, 8vw, 6.5rem); }
.public-hero p:not(.eyebrow) { max-width: 36rem; color: #64748b; font-size: 1.15rem; line-height: 1.7; }
.public-site .public-hero .public-booking-cta { display:inline-flex; align-items:center; justify-content:center; gap:.65rem; width:max-content; max-width:100%; min-height:3.25rem; box-sizing:border-box; margin-top:1.5rem; padding:.9rem 1.3rem; font-weight:700; white-space:nowrap; }
.public-booking-cta-label { flex:0 1 auto; min-width:0; white-space:nowrap; }
.public-booking-cta-arrow { flex:0 0 auto; }
.public-section { max-width: 70rem; margin: 0 auto; padding: 5rem 2rem; }
.public-section h2 { margin: .5rem 0 1.75rem; color: #172033; font-size: clamp(1.7rem, 4vw, 2.5rem); letter-spacing: -.04em; }
.public-service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.public-service-card { padding: 1.35rem; background: #fff; border: 1px solid #e9ebf1; border-radius: .9rem; }
.public-service-card h2 { margin:0 0 .7rem; color:#273248; font-size:1rem; letter-spacing:0; }
.public-service-card h3 { margin: 0 0 .7rem; color: #273248; font-size: 1rem; }
.public-service-card p { margin: 0 0 .6rem; color: #94a3b8; font-size: .8rem; }
.public-service-card strong { color: #635bff; font-size: 1.1rem; }
.public-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.public-gallery img { width: 100%; height: 14rem; object-fit: cover; border-radius: .9rem; }
.public-professional-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.public-professional-card { text-align: center; }
.public-professional-card img, .public-professional-placeholder { width: 7rem; height: 7rem; margin: 0 auto .8rem; object-fit: cover; border-radius: 50%; }
.public-professional-placeholder { display: grid; place-items: center; color: #635bff; background: #f0efff; font-size: 2rem; font-weight: 800; }
.public-professional-card h2, .public-professional-card h3 { margin: 0; color: #273248; font-size: .95rem; }
.media-upload-form { max-width: 42rem; margin-bottom: 1.5rem; }
.media-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.media-card { padding: 0; overflow: hidden; }
.media-card img { display: block; width: 100%; height: 11rem; object-fit: cover; }
.media-card > div { display: grid; gap: .35rem; padding: .9rem; }
.media-card span { color: #64748b; font-size: .8rem; }
.professional-cell { display: flex; align-items: center; gap: .7rem; }
.professional-avatar { width: 2.75rem; height: 2.75rem; border-radius: 50%; object-fit: cover; flex: 0 0 auto; }
.professional-avatar-placeholder { display: grid; place-items: center; color: #635bff; background: #f0efff; font-weight: 800; }
.inline-image-form { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.inline-image-form input[type=file] { max-width: 12rem; font-size: .78rem; }
.media-selection-panel { max-width: 52rem; margin-top: 1rem; }
.media-selection-panel h3 { margin-top: 1.5rem; }
.media-choice-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; }
.media-choice { display: grid; gap: .45rem; padding: .55rem; border: 1px solid #e1e5ef; border-radius: .7rem; color: #64748b; font-size: .8rem; }
.media-choice img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: .45rem; }
.media-choice input { margin: 0; }
.public-two-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; }
.public-hours { display: grid; gap: .65rem; max-width: 30rem; }
.public-hours div { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: .65rem; border-bottom: 1px solid #e9ebf1; font-size: .85rem; }
.public-hours strong { color: #475569; }
.public-hours span, .public-contact p { color: #64748b; }
.public-contact a { color: #635bff; }
.public-location-map { width: 100%; margin-top: 1rem; overflow: hidden; border: 1px solid #e7e9ef; border-radius: .9rem; background: #eef0f5; }
.public-location-map iframe { display: block; width: 100%; height: 17rem; border: 0; }
.public-location-map-link { display: inline-flex; align-items: center; gap: .4rem; margin-top: .25rem; padding: .65rem .85rem; border: 1px solid #e2e6f0; border-radius: .65rem; background: #fff; font-weight: 700; text-decoration: none; }
.public-site-footer { width: 100%; box-sizing: border-box; padding: 1.5rem 2rem; color: #94a3b8; border-top: 1px solid #e9ebf1; font-size: .8rem; }
.public-site-footer-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 1.5rem; width: 100%; max-width: 70rem; margin: 0 auto; }
.public-site-footer nav { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:.65rem 1.25rem; }
.public-site-footer a { color: #635bff; text-decoration: none; }
.public-site .public-section-services > .text-link { display:inline-flex; align-items:center; gap:.35rem; margin-top:1rem; color:var(--public-accent,#635bff); }
.public-site .public-section-services > .text-link:hover,.public-site .public-section-services > .text-link:focus-visible { color:var(--public-accent,#635bff); text-decoration:underline; text-underline-offset:.2em; }
.public-site-footer-name { min-width: 0; overflow-wrap: anywhere; }
.public-site-footer-book { justify-self: end; }
.site-layout-picker { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.85rem; }
.site-customization-panel { display:grid; gap:1rem; padding-top:1.25rem; border-top:1px solid #e9ebf1; }
.site-customization-panel h2 { margin:0; color:#273248; font-size:1.05rem; }
.site-customization-panel .muted { margin:.4rem 0 0; font-size:.82rem; }
.site-customization-panel fieldset { min-width:0; margin:0; padding:1rem; border:1px solid #e1e6ef; border-radius:.7rem; }
.site-customization-panel legend { padding:0 .35rem; color:#334155; font-size:.85rem; font-weight:700; }
.site-layout-option { position:relative; display:grid; gap:.65rem; padding:.75rem; border:1px solid #e2e6ef; border-radius:.8rem; background:#fff; cursor:pointer; }
.site-layout-option:has(input:checked) { border-color:#635bff; box-shadow:0 0 0 3px #635bff1a; }
.site-layout-option input { position:absolute; top:.85rem; right:.85rem; }
.site-layout-option input,.site-sections-list input[type=checkbox] { width:auto; margin:0; padding:0; }
.site-layout-option strong { color:#273248; font-size:.85rem; }
.site-layout-option small { color:#64748b; line-height:1.4; }
.site-layout-preview { display:flex; flex-direction:column; justify-content:center; gap:.35rem; height:5.5rem; padding:.65rem; overflow:hidden; border-radius:.55rem; background:#f3f4f8; }
.site-layout-preview span { display:block; height:.35rem; border-radius:1rem; background:#cbd2e1; }
.site-layout-preview span:first-child { width:58%; height:.7rem; background:#7168ef; }
.site-layout-preview span:last-child { width:72%; }
.site-layout-preview-editorial { align-items:flex-start; border-radius:0; background:linear-gradient(90deg,#f4ecdf 62%,#d8c7ad 62%); }
.site-layout-preview-editorial span:first-child { width:38%; background:#564838; }
.site-layout-preview-showcase { align-items:center; background:linear-gradient(120deg,#283346,#66758d); }
.site-layout-preview-showcase span { background:#ffffffa8; }
.site-layout-preview-showcase span:first-child { background:#fff; }
.site-presentation-picker { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }
.site-presentation-option { display:grid; gap:.5rem; padding:.75rem; border:1px solid #e2e6ef; border-radius:.7rem; background:#fff; cursor:pointer; }
.site-presentation-option:has(input:checked) { border-color:#635bff; box-shadow:0 0 0 3px #635bff1a; }
.site-presentation-option input { width:auto; margin:0; }
.site-presentation-option strong { color:#273248; font-size:.8rem; }
.site-presentation-preview { display:grid; gap:.25rem; min-height:2.4rem; }
.site-presentation-preview i { display:block; min-height:.9rem; border-radius:.25rem; background:#d9deeb; }
.site-presentation-preview-side_by_side,.site-presentation-preview-cards { grid-template-columns:1fr 1fr; }
.site-presentation-preview-side_by_side i { min-height:2.1rem; }
.site-presentation-preview-cards i { min-height:2.1rem; border:1px solid #d9deeb; background:#f0efff; }
.site-presentation-preview-services-cards { grid-template-columns:repeat(3,1fr); }
.site-presentation-preview-services-list { grid-template-columns:1fr; }
.site-presentation-preview-services-compact { grid-template-columns:repeat(2,1fr); }
.site-presentation-preview-team-portraits { grid-template-columns:repeat(3,1fr); align-items:center; }
.site-presentation-preview-team-portraits i { width:1.4rem; min-height:1.4rem; justify-self:center; border-radius:50%; }
.site-presentation-preview-team-cards { grid-template-columns:repeat(2,1fr); }
.site-presentation-preview-team-list { grid-template-columns:1fr; }
.public-service-grid.presentation-list { grid-template-columns:1fr; gap:0; }
.public-service-grid.presentation-list .public-service-card { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:.2rem 1rem; padding:1rem .25rem; border:0; border-bottom:1px solid #e7e9ef; border-radius:0; background:transparent; }
.public-service-grid.presentation-list .public-service-card h2,.public-service-grid.presentation-list .public-service-card h3 { grid-column:1; margin:0; }
.public-service-grid.presentation-list .public-service-card p { grid-column:1; grid-row:2; margin:.2rem 0 0; }
.public-service-grid.presentation-list .public-service-card strong { grid-column:2; grid-row:1 / span 2; white-space:nowrap; }
.public-service-grid.presentation-list .public-service-card .button { grid-column:3; grid-row:1 / span 2; white-space:nowrap; }
.public-service-grid.presentation-compact { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
.public-service-grid.presentation-compact .public-service-card { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.3rem .8rem; padding:1rem; background:var(--public-soft,#f5f6fa); }
.public-service-grid.presentation-compact .public-service-card h2,.public-service-grid.presentation-compact .public-service-card h3 { margin:0; }
.public-service-grid.presentation-compact .public-service-card p { grid-column:1; grid-row:2; margin:0; }
.public-service-grid.presentation-compact .public-service-card strong { grid-column:2; grid-row:1 / span 2; white-space:nowrap; }
.public-service-grid.presentation-compact .public-service-card .button { grid-column:2; grid-row:3; justify-self:end; }
.public-professional-grid.presentation-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
.public-professional-grid.presentation-cards .public-professional-card { padding:1rem; border:1px solid #e7e9ef; border-radius:1rem; background:#fff; text-align:left; }
.public-professional-grid.presentation-cards .public-professional-card img,.public-professional-grid.presentation-cards .public-professional-placeholder { width:100%; height:auto; aspect-ratio:4/3; margin:0 0 .8rem; border-radius:.7rem; object-fit:cover; }
.public-professional-grid.presentation-list { grid-template-columns:1fr; gap:.5rem; }
.public-professional-grid.presentation-list .public-professional-card { display:flex; align-items:center; gap:.9rem; padding:.65rem .8rem; border-bottom:1px solid #e7e9ef; text-align:left; }
.public-professional-grid.presentation-list .public-professional-card img,.public-professional-grid.presentation-list .public-professional-placeholder { flex:0 0 3.5rem; width:3.5rem; height:3.5rem; margin:0; border-radius:50%; object-fit:cover; }
.public-professional-grid.presentation-list .public-professional-card h2,.public-professional-grid.presentation-list .public-professional-card h3 { margin:0; }
.public-hours-contact { display:grid; grid-template-columns:1fr; gap:0; max-width:70rem; margin:0 auto; }
.public-hours-contact .public-section { width:100%; max-width:none; box-sizing:border-box; margin:0; padding:2.5rem 2rem; }
.public-hours-contact-side_by_side,.public-hours-contact-cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.public-hours-contact-side_by_side .public-section + .public-section { border-left:1px solid #e7e9ef; }
.public-hours-contact-cards .public-section { padding:2rem; border:1px solid #e7e9ef; border-radius:1rem; background:#fff; box-shadow:0 12px 32px rgba(25,35,55,.06); }
.public-hours-contact .public-hours { max-width:none; }
.public-hours-contact .public-location-map iframe { height:13rem; }
.site-sections-list { display:grid; gap:.5rem; padding:0; list-style:none; }
.site-sections-list li { display:flex; align-items:center; gap:.6rem; padding:.65rem .75rem; border:1px solid #e6e9f0; border-radius:.65rem; background:#fff; }
.site-sections-list label { display:flex; align-items:center; gap:.6rem; flex:1; cursor:pointer; }
.site-section-move { display:flex; gap:.25rem; }
.site-section-move button { width:2rem; height:2rem; color:#635bff; border:1px solid #e4e7ef; border-radius:.45rem; background:#fff; cursor:pointer; }
.site-section-move button:disabled { color:#b6bdcc; cursor:default; }
.public-site-preview-banner { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.8rem max(1rem,calc((100vw - 70rem)/2)); color:#3d347f; background:#f0efff; font-size:.85rem; }
.public-site-preview-banner .button { margin:0; }
.public-site.layout-editorial .public-site-nav { justify-content:flex-end; border-bottom:1px solid #e9e2d6; }
.public-site.layout-editorial .public-hero { max-width:none; min-height:34rem; border-radius:0; background:#f4efe7; }
.public-site.layout-editorial .public-hero h1 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(3rem,7vw,6rem); font-weight:500; letter-spacing:-.055em; }
.public-site.layout-editorial .public-hero-copy { padding-left:max(2rem,calc((100vw - 66rem)/2)); }
.public-site.layout-editorial .public-section { border-bottom:1px solid #e9e2d6; }
.public-site.layout-editorial .public-service-grid { grid-template-columns:1fr; gap:0; }
.public-site.layout-editorial .public-service-card { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.3rem 1.5rem; padding:1.25rem 0; border:0; border-bottom:1px solid #e9e2d6; border-radius:0; background:transparent; }
.public-site.layout-editorial .public-service-grid.presentation-cards { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.public-site.layout-editorial .public-service-grid.presentation-cards .public-service-card { display:block; padding:1.35rem; border:1px solid #e9e2d6; border-radius:.9rem; background:#fff; }
.public-site.layout-editorial .public-service-grid.presentation-compact { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
.public-site.layout-editorial .public-service-grid.presentation-compact .public-service-card { display:grid; grid-template-columns:minmax(0,1fr) auto; padding:1rem; border:1px solid #e9e2d6; border-radius:.7rem; background:#fff; }
.public-site.layout-editorial .public-service-card h3,.public-site.layout-editorial .public-service-card h2 { grid-column:1; }
.public-site.layout-editorial .public-service-card p { grid-column:1; grid-row:2; }
.public-site.layout-editorial .public-service-card strong { grid-column:2; grid-row:1 / span 2; }
.public-site.layout-editorial .public-professional-card { text-align:left; }
.public-site.layout-editorial .public-professional-card img,.public-site.layout-editorial .public-professional-placeholder { width:100%; height:auto; aspect-ratio:4/3; margin:0 0 .8rem; border-radius:.25rem; object-fit:cover; }
.public-site.layout-showcase .public-hero { position:relative; display:flex; align-items:center; max-width:none; min-height:min(72vh,48rem); margin:0; border-radius:0; background:linear-gradient(120deg,#273344,#58677b); }
.public-site.layout-showcase .public-hero-background { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.public-site.layout-showcase .public-hero:after { position:absolute; inset:0; background:linear-gradient(90deg,rgba(18,25,37,.86),rgba(18,25,37,.2)); content:""; }
.public-site.layout-showcase .public-hero-copy { position:relative; z-index:1; width:100%; max-width:74rem; margin-inline:auto; box-sizing:border-box; padding:clamp(3rem,8vw,7rem) 2rem; color:#fff; }
.public-site.layout-showcase .public-hero h1 { font-size:clamp(3.5rem,9vw,7.5rem); }
.public-site.layout-showcase .public-hero p:not(.eyebrow) { color:#eef1f6; }
.public-site.layout-showcase .public-hero .eyebrow { color:#d4d0ff; }
.public-site.layout-showcase .public-section { max-width:76rem; }
.public-site.layout-showcase .public-service-card,.public-site.layout-showcase .public-review-grid .panel { box-shadow:0 14px 35px rgba(25,35,55,.08); }

/* Tenant sites: polished, image-safe presentation that keeps each tenant theme. */
.public-site:not(.layout-showcase):not(.layout-editorial) .public-site-nav { position:relative; z-index:2; width:min(100% - 2rem,76rem); max-width:none; box-sizing:border-box; margin:1rem auto 0; padding:.55rem; gap:.35rem; border:1px solid #e8ebf1; border-radius:999px; background:rgba(255,255,255,.88); box-shadow:0 8px 24px rgba(23,32,51,.045); }
.public-site:not(.layout-showcase):not(.layout-editorial) .public-site-nav a { padding:.7rem 1.15rem; transition:color .18s ease,background .18s ease,transform .18s ease; }
.public-site:not(.layout-showcase):not(.layout-editorial) .public-site-nav a:hover { transform:translateY(-1px); }
.public-site:not(.layout-showcase):not(.layout-editorial) .public-hero { grid-template-columns:minmax(0,1.1fr) minmax(18rem,.9fr); align-items:center; width:min(100% - 2rem,76rem); max-width:none; min-height:0; margin:1.5rem auto 0; padding:clamp(1.25rem,3vw,2.25rem); box-sizing:border-box; border:1px solid color-mix(in srgb,var(--public-accent,#635bff) 9%,transparent); border-radius:1.75rem; background:radial-gradient(circle at 85% 8%,color-mix(in srgb,var(--public-accent,#635bff) 11%,white),transparent 36%),linear-gradient(135deg,var(--public-soft,#f1efff),#fff 72%); box-shadow:0 24px 70px rgba(23,32,51,.075); }
.public-site:not(.layout-showcase):not(.layout-editorial) .public-hero-copy { padding:clamp(1.5rem,4vw,4rem); }
.public-site:not(.layout-showcase):not(.layout-editorial) .public-hero-logo { width:4.75rem; height:4.75rem; margin-bottom:2.25rem; border-radius:1.25rem; box-shadow:0 10px 28px rgba(23,32,51,.12); }
.public-site:not(.layout-showcase):not(.layout-editorial) .public-hero .eyebrow,.public-site .public-section > .eyebrow { margin:0 0 .65rem; color:var(--public-accent,#635bff); font-size:.72rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.public-site:not(.layout-showcase):not(.layout-editorial) .public-hero h1 { margin:.25rem 0 .75rem; font-size:clamp(3.25rem,7vw,6.25rem); line-height:.98; letter-spacing:-.065em; overflow-wrap:anywhere; }
.public-site:not(.layout-showcase):not(.layout-editorial) .public-hero p:not(.eyebrow) { max-width:34rem; font-size:clamp(1rem,1.4vw,1.18rem); }
.public-site:not(.layout-showcase):not(.layout-editorial) .public-hero-image { display:grid; min-width:0; min-height:0; aspect-ratio:1.18; padding:0; place-items:center; overflow:hidden; border-radius:1.25rem; background:rgba(255,255,255,.58); }
.public-site:not(.layout-showcase):not(.layout-editorial) .public-hero-image img { display:block; width:100%; height:100%; min-height:0; object-fit:contain; border-radius:inherit; }
.public-site .public-booking-cta { box-shadow:0 10px 24px color-mix(in srgb,var(--public-accent,#635bff) 23%,transparent); transition:transform .18s ease,box-shadow .18s ease; }
.public-site .public-booking-cta:hover { transform:translateY(-2px); box-shadow:0 14px 30px color-mix(in srgb,var(--public-accent,#635bff) 30%,transparent); }
.public-site .public-section { width:min(100% - 2rem,76rem); max-width:none; box-sizing:border-box; padding:clamp(3.5rem,7vw,6rem) 0; }
.public-site .public-section h2 { margin:.25rem 0 1.75rem; font-size:clamp(1.8rem,4vw,2.75rem); line-height:1.1; letter-spacing:-.05em; }
.public-site .public-section-services { padding-top:clamp(4rem,8vw,7rem); }
.public-site .public-service-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr)); gap:1rem; }
.public-site .public-service-card { position:relative; display:flex; min-width:0; flex-direction:column; align-items:flex-start; padding:1.4rem; overflow:hidden; border:1px solid #e8ebf1; border-radius:1.1rem; background:#fff; box-shadow:0 10px 28px rgba(23,32,51,.04); transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.public-site .public-service-card:hover { transform:translateY(-3px); border-color:color-mix(in srgb,var(--public-accent,#635bff) 35%,#e8ebf1); box-shadow:0 18px 38px rgba(23,32,51,.09); }
.public-site .public-service-card h2,.public-site .public-service-card h3 { margin:0 0 .5rem; color:#172033; font-size:1.05rem; line-height:1.35; letter-spacing:-.02em; }
.public-site .public-service-card p { margin:0 0 1rem; color:#718096; font-size:.85rem; }
.public-site .public-service-card strong { margin-top:auto; color:var(--public-accent,#635bff); font-size:1.15rem; }
.public-site .public-service-card .button { display:inline-flex; align-items:center; justify-content:center; min-height:2.65rem; box-sizing:border-box; margin:1rem 0 0; padding:.65rem 1rem; border-radius:.7rem; font-size:.85rem; font-weight:750; text-decoration:none; }
.public-site .public-service-grid.presentation-list .public-service-card { display:grid; align-items:center; }
.public-site .public-service-grid.presentation-list .public-service-card .button { margin:0; }
.public-site .public-service-grid.presentation-compact .public-service-card { display:grid; align-items:center; }
.public-site .public-professional-grid { grid-template-columns:repeat(auto-fit,minmax(12rem,1fr)); gap:1rem; }
.public-site .public-professional-card { padding:1.25rem; border:1px solid #e8ebf1; border-radius:1.1rem; background:#fff; box-shadow:0 10px 28px rgba(23,32,51,.04); }
.public-site .public-professional-card img,.public-site .public-professional-placeholder { width:6.5rem; height:6.5rem; margin-bottom:1rem; border:4px solid var(--public-soft,#f1efff); }
.public-site .public-professional-card h2,.public-site .public-professional-card h3 { font-size:1rem; }
.public-site .public-gallery { grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr)); }
.public-site .public-gallery img { height:auto; aspect-ratio:4/3; box-shadow:0 12px 30px rgba(23,32,51,.08); }
.public-site .public-hours-contact { width:min(100% - 2rem,76rem); max-width:none; margin:0 auto 3rem; padding:1rem; border:1px solid #e8ebf1; border-radius:1.4rem; background:#fff; box-shadow:0 18px 45px rgba(23,32,51,.05); }
.public-site .public-hours-contact .public-section { padding:2.25rem; }
.public-site .public-hours div { padding:.85rem 0; font-size:.9rem; }
.public-site .public-hours strong { color:#273248; }
.public-site .public-location-contact { margin-top:1rem; }
.public-site .public-location-contact > p { line-height:1.55; }
.public-site .public-location-map iframe { height:18rem; }
.public-site-footer { margin-top:2rem; padding-block:2rem; background:#fff; }
.public-site-footer-inner { max-width:76rem; }
.public-site-footer-name { color:#273248; font-size:.95rem; font-weight:800; }
.public-site-footer a { padding:.35rem .15rem; color:var(--public-accent,#635bff); }
.public-site-footer-book { display:inline-flex; justify-self:end; padding:.7rem 1rem!important; border-radius:.7rem; background:var(--public-accent,#635bff); color:var(--public-accent-contrast,#fff)!important; font-weight:750; }
.public-site.layout-showcase .public-site-nav { width:min(100% - 2rem,76rem); max-width:none; padding-inline:0; }
.public-site.layout-showcase .public-hero-copy { max-width:76rem; }
.public-site.layout-showcase .public-hero .public-booking-cta { background:var(--public-accent,#635bff); border-color:var(--public-accent,#635bff); color:var(--public-accent-contrast,#fff); }
.public-site.layout-editorial .public-hero-image img { object-fit:contain; }
@media(max-width:760px) {
  .public-site:not(.layout-showcase):not(.layout-editorial) .public-site-nav { width:calc(100% - 1.5rem); justify-content:flex-start; overflow-x:auto; flex-wrap:nowrap; border-radius:1rem; }
  .public-site:not(.layout-showcase):not(.layout-editorial) .public-site-nav a { flex:0 0 auto; padding:.65rem .85rem; }
  .public-site:not(.layout-showcase):not(.layout-editorial) .public-hero { grid-template-columns:1fr; width:calc(100% - 1.5rem); margin-top:.75rem; padding:.75rem; border-radius:1.25rem; }
  .public-site:not(.layout-showcase):not(.layout-editorial) .public-hero-copy { padding:1.5rem 1.1rem 1rem; }
  .public-site:not(.layout-showcase):not(.layout-editorial) .public-hero-logo { width:3.75rem; height:3.75rem; margin-bottom:1.5rem; }
  .public-site:not(.layout-showcase):not(.layout-editorial) .public-hero-image { grid-row:1; aspect-ratio:1.5; }
  .public-site:not(.layout-showcase):not(.layout-editorial) .public-hero h1 { font-size:clamp(2.8rem,14vw,4.5rem); }
  .public-site .public-section { width:calc(100% - 2rem); padding-block:3.5rem; }
  .public-site .public-service-grid.presentation-list .public-service-card { grid-template-columns:minmax(0,1fr) auto; gap:.35rem .7rem; }
  .public-site .public-service-grid.presentation-list .public-service-card .button { grid-column:2; grid-row:3; justify-self:end; }
  .public-site .public-service-grid.presentation-list .public-service-card strong { grid-column:2; grid-row:1 / span 2; }
  .public-site .public-hours-contact { width:calc(100% - 2rem); padding:.5rem; }
  .public-site .public-hours-contact .public-section { padding:1.5rem 1rem; }
  .public-site.layout-showcase .public-site-nav { width:100%; justify-content:center; overflow:visible; }
  .public-site.layout-showcase .public-hero { min-height:36rem; }
  .public-site.layout-showcase .public-hero-background { object-position:center; }
  .public-site-footer { padding:1.5rem 1rem; }
}
@media(max-width:760px) { .site-layout-picker,.site-presentation-picker { grid-template-columns:1fr; } .public-site-preview-banner { align-items:flex-start; flex-direction:column; } .public-hours-contact-side_by_side,.public-hours-contact-cards { grid-template-columns:1fr; } .public-hours-contact-side_by_side .public-section + .public-section { border-left:0; border-top:1px solid #e7e9ef; } .public-hours-contact .public-section { padding:2.5rem 1.25rem; } .public-service-grid.presentation-compact,.public-professional-grid.presentation-cards { grid-template-columns:1fr; } }
.site-image-settings { display: grid; gap: 1rem; padding-top: 1rem; border-top: 1px solid #e9ebf1; }
.current-site-image img { display: block; width: min(100%, 28rem); max-height: 18rem; object-fit: cover; border-radius: .9rem; }
.current-site-image label { display: block; margin-top: .6rem; color: #64748b; font-size: .85rem; }
.current-gallery { display: grid; grid-template-columns: repeat(5, 1fr); gap: .75rem; }
.current-gallery img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: .6rem; }
.current-gallery span { display: block; margin-top: .35rem; color: #64748b; font-size: .75rem; }
.commercial-link-panel { display:flex; align-items:flex-end; justify-content:space-between; gap:1.25rem; }
.commercial-link-panel h2 { margin-top:0; }
.commercial-link-field { display:grid; gap:.4rem; width:min(100%, 46rem); color:#64748b; font-size:.78rem; }
.commercial-link-field input, .commercial-link-input { min-width:15rem; color:#405b52; font-size:.78rem; }
.commercial-row-actions { display:flex; flex-wrap:wrap; gap:.45rem; }
@media(max-width:760px) { .commercial-link-panel { align-items:stretch; flex-direction:column; } .commercial-link-field input, .commercial-link-input { min-width:10rem; } }
@media (max-width: 900px) { .content-container { padding: 2.25rem 1.5rem; } .dashboard-grid { grid-template-columns: 1fr; } .statistics-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); } .statistics-chart-panel { grid-column: 1 / -1; } }
@media (max-width: 640px) {
    .public-hero { display: block; min-height: 0; }
    .public-site.layout-showcase .public-hero { display: block; }
    .public-hero-copy { padding: 3rem 1.25rem 2rem; }
    .public-site.layout-showcase .public-hero-copy { width:100%; padding:3rem 1.25rem 2rem; }
    .public-hero-logo { width: 4.5rem; height: 4.5rem; margin-bottom: 1.5rem; }
    .public-hero-image { min-height: 16rem; padding: 0 1.25rem 1.25rem; }
    .current-gallery { grid-template-columns: repeat(2, 1fr); }
    .public-booking-brand { margin-bottom: 2rem; }
    .public-booking-brand img { width: 5.5rem; height: 5.5rem; }
    .public-flow-brand-reschedule img { width: 5.5rem; height: 5.5rem; }
    .media-choice-grid { grid-template-columns: repeat(2, 1fr); }
    .sidebar { position: fixed; z-index: 20; top: 0; bottom: 0; left: 0; display: flex; width: min(17rem, 84vw); transform: translateX(-105%); transition: transform .2s ease; box-shadow: 12px 0 30px rgba(23, 32, 51, .12); }
    .app-shell.is-mobile-menu-open .sidebar { transform: translateX(0); }
    .app-shell.is-mobile-menu-open::after { position: fixed; z-index: 10; inset: 0; display: block; background: rgba(23, 32, 51, .35); content: ''; }
    .mobile-topbar { position: relative; z-index: 5; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .75rem; padding: .8rem 1rem; background: #fff; border-bottom: 1px solid #e7e9ef; }
    .mobile-menu-toggle { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .6rem; color: #544cff; background: #f0efff; border: 0; border-radius: .45rem; cursor: pointer; font: inherit; font-size: .8rem; font-weight: 700; }
    .mobile-menu-close { display: grid; position: absolute; top: 1.5rem; right: 1rem; place-items: center; width: 1.8rem; height: 1.8rem; color: #64748b; background: #f1f3f7; border: 0; border-radius: .45rem; cursor: pointer; font-size: 1.3rem; line-height: 1; }
    .mobile-menu-toggle { justify-self: start; }
    .mobile-topbar .brand { justify-self: center; font-size: 1.1rem; }
    .content-container { padding: 1.5rem 1rem; }
    .page-heading { display: block; margin-bottom: 1.5rem; }
    .statistics-period { justify-content: flex-start; width: 100%; margin-top: 1rem; }
    .statistics-filter-menu { width: 100%; }
    .statistics-filter-menu > summary { width: fit-content; }
    .statistics-filter-fields { position: static; grid-template-columns: 1fr; width: 100%; margin-top: .65rem; box-sizing: border-box; }
    .statistics-columns, .professional-statistics { grid-template-columns: 1fr; }
    .statistics-chart-panel { grid-column: auto; }
    .statistics-chart { height: 11rem; }
    .page-heading .button { margin-top: 1.25rem; }
    .page-heading h1 { font-size: 2.25rem; }
    .stat-grid { grid-template-columns: 1fr; gap: .7rem; }
    .stat-card { padding: 1rem; }
    .dashboard-grid { gap: .7rem; }
    .panel { padding: 1.15rem; }
    .table-panel { padding: 0; }
    .table-wrap { overflow: visible; }
    .inline-form { min-width: 0; flex-wrap: wrap; }
    .inline-form select { min-width: 0; flex: 1; }
    .table-wrap table, .table-wrap tbody { display: block; }
    .table-wrap thead { display: none; }
    .table-wrap tbody { display: grid; gap: .7rem; }
    .table-wrap tbody tr:not(:has(td[colspan])) { display: grid; gap: .55rem; padding: 1rem; background: #fff; border: 1px solid #e9ebf1; border-radius: .75rem; box-shadow: 0 4px 12px rgba(28, 37, 61, .035); }
    .table-wrap tbody tr:not(:has(td[colspan])) td { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: .6rem; align-items: center; padding: 0; border: 0; font-size: .82rem; overflow-wrap: anywhere; }
    .table-wrap tbody tr:not(:has(td[colspan])) td::before { color: #94a3b8; content: attr(data-label); font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
    .table-wrap tbody tr:not(:has(td[colspan])) td:last-child { padding-top: .35rem; border-top: 1px solid #eef0f5; }
    .table-wrap tbody tr:not(:has(td[colspan])) td:last-child::before { align-self: start; }
    .table-wrap tbody tr td.empty-state { display: block; padding: 1rem; }
    .form-actions { align-items: stretch; flex-direction: column-reverse; }
    .form-actions .button { width: 100%; margin-top: 0; text-align: center; }
    .filter-bar { grid-template-columns: 1fr; align-items: stretch; }
    .filter-bar .button { width: 100%; text-align: center; }
    .schedule-grid { grid-template-columns: 1fr; }
    .schedule-day { grid-template-columns: 6.5rem 1fr; }
    .inline-period-form { flex-wrap: wrap; }
    .exception-form { grid-template-columns: 1fr 1fr; }
    .exception-form .checkbox-row { grid-column: 1 / -1; }
    .exception-form-help { grid-column: 1 / -1; }
    .exception-form .button { grid-column: 1 / -1; width: 100%; text-align: center; }
    .exception-row { grid-template-columns: 1fr 1fr; }
    .agenda-toolbar { flex-wrap: wrap; }
    .agenda-toolbar strong { order: -1; width: 100%; text-align: center; }
    .agenda-toolbar form { margin-left: 0; width: 100%; }
    .agenda-toolbar select { width: 100%; }
    .agenda-switch { margin-top: 1rem; }
    .appointment-card { align-items: flex-start; gap: .7rem; }
    .appointment-card .danger-link { margin-left: auto; }
    .month-grid { grid-template-columns: repeat(2, 1fr); }
    .month-day { min-height: 6rem; }
    .month-day:nth-child(2n) .month-appointments-popover { right: 0; left: auto; }
    .public-site-header { padding: 1rem; }
    .public-cover { height: 14rem; margin: 0 1rem; border-radius: 1rem; }
    .public-hero { margin: 0 1rem; padding: 4rem 1.5rem 4.5rem; border-radius: 1rem; }
    .public-section { padding: 3.5rem 1.25rem; }
    .public-service-grid, .public-two-columns, .public-gallery { grid-template-columns: 1fr; gap: 1rem; }
    .public-gallery img { height: 13rem; }
    .public-professional-grid, .media-grid { grid-template-columns: repeat(2, 1fr); }
    .public-site-footer { padding: 1.25rem; }
    .public-site-footer-inner { grid-template-columns: 1fr; justify-items: start; gap: 1rem; }
    .public-site-footer nav { justify-content: flex-start; gap: .65rem 1rem; }
    .public-site-footer-book { justify-self: start; }
    .public-location-map iframe { height: 14rem; }
}
.directory-layout{display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,1.2fr);gap:1.25rem;margin-top:1.5rem}.directory-list{display:grid;gap:1rem;align-content:start}.directory-map{height:480px;min-height:300px;border-radius:1rem;overflow:hidden;border:1px solid #dfe3ee}.audience-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem;margin-top:2rem}.public-review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.theme-violet{--public-accent:#635bff;--public-accent-contrast:#fff;--public-soft:#f1efff}.theme-ocean{--public-accent:#087e9b;--public-accent-contrast:#fff;--public-soft:#e8f7fb}.theme-forest{--public-accent:#28734c;--public-accent-contrast:#fff;--public-soft:#edf7ef}.theme-sunset{--public-accent:#c25336;--public-accent-contrast:#fff;--public-soft:#fff1eb}.theme-violet,.theme-ocean,.theme-forest,.theme-sunset{--color-primary:var(--public-accent)}.theme-violet .button,.theme-ocean .button,.theme-forest .button,.theme-sunset .button{background:var(--public-accent);color:var(--public-accent-contrast);border-color:var(--public-accent)}.theme-violet .public-hero,.theme-ocean .public-hero,.theme-forest .public-hero,.theme-sunset .public-hero{background:var(--public-soft)}@media(max-width:800px){.directory-layout{grid-template-columns:1fr}.directory-map{height:360px}}

.theme-violet .public-review-reply,.theme-ocean .public-review-reply,.theme-forest .public-review-reply,.theme-sunset .public-review-reply{margin-top:1rem;padding:.8rem;background:var(--public-soft);border-left:3px solid var(--public-accent);border-radius:.35rem}.public-review-reply p{margin:.4rem 0 0}
.review-management-list{display:grid;gap:1rem}.review-management-card{display:grid;gap:1rem}.review-management-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.review-management-heading p{margin:.3rem 0 0}.review-management-rating{color:#d18b17}.review-management-comment{margin:0;white-space:pre-wrap}.review-reply-form{padding-top:1rem;border-top:1px solid #e7e9ef}.review-reply-form .button{justify-self:start;margin-top:0}

/* Public service discovery */
.directory-page{min-height:calc(100vh - 70px);background:#f7f8fc;color:#182235}
.directory-hero{position:relative;overflow:hidden;padding:4.25rem max(1.5rem,calc((100vw - 1240px)/2)) 2.25rem;background:radial-gradient(ellipse at 82% 4%,#d9eaff 0,transparent 32%),radial-gradient(ellipse at 14% 0%,#e9e2ff 0,transparent 34%),linear-gradient(135deg,#fbfaff 0%,#f0f5ff 100%)}
.directory-hero:after{position:absolute;right:8%;bottom:-5.5rem;width:16rem;height:16rem;border:1px solid #ffffffa8;border-radius:50%;content:"";box-shadow:0 0 0 2.5rem #ffffff45,0 0 0 5rem #ffffff28;pointer-events:none}
.directory-hero-inner{position:relative;z-index:1;max-width:1240px;margin:0 auto}
.directory-kicker{display:flex;align-items:center;gap:.55rem;margin:0 0 .8rem;color:#6258dc;font-size:.76rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.directory-kicker span,.directory-live-dot{width:.5rem;height:.5rem;border-radius:50%;background:#6c62ed;box-shadow:0 0 0 .25rem #6c62ed1c}
.directory-hero h1{max-width:740px;margin:0;color:#172033;font-size:clamp(2.6rem,5.2vw,4.6rem);letter-spacing:-.065em;line-height:1.02}
.directory-intro{max-width:610px;margin:1rem 0 1.8rem;color:#64718a;font-size:1.05rem;line-height:1.65}
.directory-search{display:grid;grid-template-columns:minmax(240px,1.5fr) minmax(180px,.8fr) auto;align-items:center;max-width:920px;gap:.4rem;padding:.45rem;background:#fff;border:1px solid #e7e9f2;border-radius:1rem;box-shadow:0 14px 40px #29355a12}
.directory-search label{display:flex;align-items:center;min-width:0;gap:.7rem;padding:0 .8rem;color:#7b83a0}
.directory-search label>span[aria-hidden]{font-size:1.35rem;line-height:1}
.directory-search input{width:100%;margin:0;padding:.85rem 0;background:transparent;border:0;box-shadow:none;font-size:.9rem}
.directory-search input:focus{outline:none;box-shadow:none}
.directory-search-city{border-left:1px solid #eceef4}
.directory-search-submit{display:flex;align-items:center;justify-content:center;gap:.8rem;min-height:3rem;padding:.75rem 1.25rem;color:#fff;background:#6258dc;border:0;border-radius:.7rem;font:inherit;font-size:.87rem;font-weight:750;cursor:pointer;transition:transform .18s,background .18s}
.directory-search-submit:hover{transform:translateY(-1px);background:#5148c5}
.directory-category-row{display:flex;align-items:flex-start;gap:1rem;margin-top:1.55rem;color:#7a849a;font-size:.76rem}
.directory-category-row>span{flex:0 0 auto;padding:.48rem 0;font-weight:700}
.directory-category-row>div{display:flex;flex-wrap:wrap;gap:.45rem}
.directory-chip{padding:.47rem .78rem;color:#5c667c;background:#ffffffa8;border:1px solid #e3e6f0;border-radius:99px;font-size:.76rem;font-weight:650;text-decoration:none;transition:all .16s}
.directory-chip:hover,.directory-chip.is-selected{color:#554bd1;background:#fff;border-color:#bdb8f5;box-shadow:0 3px 10px #4037a510}
.directory-results-shell{max-width:1360px;margin:0 auto;padding:2.2rem 2rem 4rem}
.directory-results-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.directory-results-heading .directory-kicker{margin-bottom:.35rem}
.directory-results-heading h2{margin:0;color:#202a3d;font-size:1.5rem;letter-spacing:-.035em}
.directory-result-count{padding:.4rem .7rem;color:#67738b;background:#eef0f7;border-radius:99px;font-size:.76rem;font-weight:700}
.directory-explorer{display:grid;grid-template-columns:minmax(330px,.88fr) minmax(0,1.35fr);align-items:start;gap:1rem}
.directory-results-list{display:grid;max-height:760px;gap:.7rem;overflow-y:auto;padding:.1rem .45rem .1rem .1rem;scrollbar-color:#c8cde0 transparent;scrollbar-width:thin}
.directory-business-card{padding:1.05rem 1.1rem;background:#fff;border:1px solid #e6e9f1;border-radius:1rem;box-shadow:0 4px 14px #26345a08;cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s}
.directory-business-card:hover{transform:translateY(-1px);border-color:#c6c1f0;box-shadow:0 9px 24px #26345a10}
.directory-business-card:focus-visible{outline:3px solid #aaa4f2;outline-offset:2px}
.directory-card-main{display:grid;grid-template-columns:3.1rem minmax(0,1fr) auto;align-items:center;gap:.85rem}
.directory-card-symbol{display:grid;place-items:center;width:3.1rem;height:3.1rem;color:#554bd1;background:linear-gradient(145deg,#f0edff,#e7f2ff);border:1px solid #e6e4fa;border-radius:.9rem;font-size:1.15rem;font-weight:800}
.directory-card-copy{min-width:0}
.directory-card-category{overflow:hidden;margin:0 0 .25rem;color:#7065da;font-size:.65rem;font-weight:800;letter-spacing:.07em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}
.directory-card-copy h3{overflow:hidden;margin:0;color:#202a3d;font-size:1rem;letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap}
.directory-card-copy h3 a{color:inherit;text-decoration:none}
.directory-card-copy h3 a:hover{color:#554bd1}
.directory-card-location{overflow:hidden;margin:.28rem 0 0;color:#778197;font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}
.directory-rating{align-self:start;padding:.34rem .48rem;color:#6a5110;background:#fff8e8;border:1px solid #f4e8c6;border-radius:.55rem;font-size:.72rem;font-weight:800;white-space:nowrap}
.directory-rating>span{color:#e8a82e}
.directory-rating small{color:#8991a2;font-size:.65rem;font-weight:600}
.directory-card-description{display:-webkit-box;overflow:hidden;margin:.8rem 0;color:#657087;font-size:.78rem;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.directory-card-footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.85rem;padding-top:.7rem;border-top:1px solid #f0f1f5;color:#8992a5;font-size:.69rem}
.directory-card-footer>span{display:flex;align-items:center;gap:.4rem}
.directory-card-footer a{color:#5b52d5;font-size:.73rem;font-weight:750;text-decoration:none}
.directory-card-footer a:hover{text-decoration:underline}
.directory-pin-dot{width:.4rem;height:.4rem;background:#34a780;border-radius:50%;box-shadow:0 0 0 .18rem #34a78020}
.directory-empty-state{display:grid;justify-items:center;padding:3rem 1.2rem;background:white;border:1px dashed #d8dbea;border-radius:1rem;text-align:center}
.directory-empty-state>span{display:grid;place-items:center;width:3rem;height:3rem;color:#655cda;background:#f0efff;border-radius:1rem;font-size:1.6rem}
.directory-empty-state h3{margin:1rem 0 .3rem;font-size:1rem}
.directory-empty-state p{max-width:19rem;margin:0;color:#778197;font-size:.8rem;line-height:1.55}
.directory-empty-state a{margin-top:1rem;color:#5b52d5;font-size:.8rem;font-weight:700;text-decoration:none}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.directory-card-logo{display:block;width:3.1rem;height:3.1rem;object-fit:cover;background:#f0efff;border:1px solid #e6e9f1;border-radius:.9rem}.directory-card-logo+.directory-card-copy{min-width:0}
@media(max-width:680px){.directory-card-logo{width:2.8rem;height:2.8rem}}

/* Focus the directory on search and nearby businesses. */
.directory-hero{padding-top:3.25rem;text-align:center}
.directory-hero-inner{max-width:1100px}
.directory-hero .directory-kicker{justify-content:center}
.directory-hero h1{max-width:900px;margin:0 auto;font-size:clamp(2.4rem,4.5vw,3.8rem)}
.directory-intro{max-width:680px;margin:1rem auto 1.65rem}
.directory-search{grid-template-columns:minmax(240px,1.2fr) minmax(200px,.9fr) auto;max-width:1000px;margin:0 auto;padding:.5rem;border-radius:1rem}
.directory-search label{min-height:3.3rem}
.directory-category-row{justify-content:center;margin-top:1.2rem}
.directory-results-shell{max-width:1240px}
.directory-results-heading{align-items:center;justify-content:space-between;margin-bottom:1.2rem;text-align:left}
.directory-explorer{display:block}
.directory-results-list{grid-template-columns:1fr;max-width:1050px;max-height:none;gap:1.15rem;overflow:visible;margin:0 auto;padding:.1rem}
.directory-business-card{display:grid;grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr);min-width:0;padding:0;overflow:hidden;border-radius:1.1rem;cursor:default}
.directory-card-image{position:relative;min-height:260px;background:linear-gradient(145deg,#e8e7ff,#e5f5f2)}
.directory-card-image>img{display:block;width:100%;height:100%;min-height:260px;object-fit:cover}
.directory-card-image-placeholder{display:grid;place-items:center;width:100%;height:100%;min-height:260px;color:#6158d2;font-size:4rem;font-weight:800}
.directory-rating-overlay{position:absolute;top:.9rem;right:.9rem;padding:.48rem .65rem;color:#493a07;background:#fffdf4ed;border:1px solid #f0e5bd;border-radius:.7rem;box-shadow:0 4px 14px #202a3d1a;font-size:.78rem;font-weight:850;backdrop-filter:blur(8px)}
.directory-rating-overlay>span{color:#e3a619}
.directory-rating-overlay small{color:#778197;font-size:.68rem;font-weight:650}
.directory-card-content{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:1.3rem 1.45rem;text-align:left}
.directory-card-topline{display:flex;align-items:center;justify-content:space-between;gap:.8rem;width:100%}
.directory-card-topline .directory-card-category{margin:0}
.directory-card-title{margin:.5rem 0 0;color:#202a3d;font-size:1.35rem;letter-spacing:-.035em}
.directory-card-title a{color:inherit;text-decoration:none}
.directory-card-title a:hover{color:#554bd1}
.directory-card-content .directory-card-location{margin:.45rem 0 0;white-space:normal;text-align:left}
.directory-card-content .directory-card-description{margin:.8rem 0 0;text-align:left}
.directory-distance{padding:.35rem .55rem;color:#4e48ba;background:#f1efff;border:1px solid #e6e2ff;border-radius:99px;font-size:.72rem;font-weight:800;white-space:nowrap}
.directory-service-list{width:100%;margin-top:1rem;border-top:1px solid #eceef3}
.directory-service-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.72rem 0;border-bottom:1px solid #eceef3;text-align:left}
.directory-service-name,.directory-service-action{display:grid;gap:.2rem}
.directory-service-action{justify-items:end}
.directory-service-name strong{color:#30394c;font-size:.82rem;font-weight:700}
.directory-service-name small{color:#8992a5;font-size:.7rem}
.directory-service-action{justify-items:end;flex:0 0 auto}
.directory-service-action>strong{color:#242d3e;font-size:.82rem}
.directory-book-service{display:inline-flex;align-items:center;justify-content:center;min-height:2rem;padding:.42rem .72rem;color:#fff;background:#6258dc;border-radius:.55rem;font-size:.7rem;font-weight:750;text-decoration:none;transition:background .15s,transform .15s}
.directory-book-service:hover{background:#5148c5;transform:translateY(-1px)}
.directory-more-services{display:inline-flex;align-items:center;gap:.45rem;margin-top:auto;padding-top:1rem;color:#574ed0;font-size:.79rem;font-weight:800;text-decoration:none}
.directory-more-services:hover{text-decoration:underline}
.directory-more-services small{color:#7c8495;font-size:.7rem;font-weight:650}
.directory-location-error{margin:.45rem 0 0;color:#a34f39;font-size:.85rem}
@media(max-width:680px){.directory-hero{padding:2.7rem 1rem 1.4rem}.directory-hero h1{font-size:2.55rem}.directory-intro{margin:.8rem auto 1.25rem}.directory-search{grid-template-columns:1fr;gap:0}.directory-search-city{border-top:1px solid #eceef4;border-left:0}.directory-search-submit{width:100%;margin-top:.35rem}.directory-category-row{justify-content:flex-start}.directory-results-shell{padding:1.45rem .8rem 2rem}.directory-business-card{grid-template-columns:1fr}.directory-card-image,.directory-card-image>img,.directory-card-image-placeholder{min-height:210px;height:210px}.directory-card-content{padding:1.1rem}.directory-card-title{font-size:1.15rem}.directory-card-topline{flex-wrap:wrap}.directory-service-row{gap:1rem}.directory-distance{font-size:.68rem}}

/* Brand-first home */
.home-landing{overflow:hidden;background:#fff;color:#182235}
.home-brand-hero{position:relative;display:flex;min-height:590px;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;padding:4.5rem 1.5rem 6.5rem;color:#fff;background:radial-gradient(ellipse at 51% 115%,#665de866 0,transparent 42%),radial-gradient(ellipse at 7% 20%,#20b9b31e 0,transparent 35%),linear-gradient(135deg,#111a2c 0%,#171d31 50%,#121a2c 100%);text-align:center}
.home-brand-hero:before{position:absolute;inset:0;background-image:linear-gradient(#ffffff06 1px,transparent 1px),linear-gradient(90deg,#ffffff06 1px,transparent 1px);background-size:58px 58px;mask-image:linear-gradient(transparent,#000 28%,#000 75%,transparent);content:"";pointer-events:none}
.home-brand-lockup{position:relative;display:flex;align-items:center;gap:.8rem;margin-bottom:2.2rem;color:#fff;font-size:1.25rem;font-weight:780;letter-spacing:-.055em}
.home-logo-mark{display:grid;place-items:center;width:2.75rem;height:2.75rem;color:white;background:linear-gradient(145deg,#756bf1,#5147d1);border:1px solid #ffffff25;border-radius:.9rem;box-shadow:0 8px 24px #544be255}
.home-logo-mark svg{width:1.8rem;height:1.8rem}
.home-brand-period{color:#8c84ff}
.home-brand-eyebrow{position:relative;margin:0 0 1rem;color:#b3b8d0;font-size:.75rem;font-weight:750;letter-spacing:.19em;text-transform:uppercase}
.home-brand-hero h1{position:relative;max-width:900px;margin:0;color:#fff;font-size:clamp(3.5rem,8vw,7.1rem);font-weight:720;letter-spacing:-.085em;line-height:.95}
.home-brand-tagline{position:relative;max-width:610px;margin:1.4rem 0 0;color:#c3c9dc;font-size:clamp(1rem,2vw,1.18rem);line-height:1.7}
.home-brand-footnote{position:relative;display:flex;align-items:center;gap:.6rem;margin-top:2rem;color:#d6daea;font-size:.78rem;font-weight:650}
.home-footnote-dot{width:.45rem;height:.45rem;background:#72d2bd;border-radius:50%;box-shadow:0 0 0 .25rem #72d2bd20}
.home-scroll-cue{position:absolute;bottom:1.4rem;left:50%;display:grid;place-items:center;width:2.5rem;height:2.5rem;color:#d6daea;border:1px solid #ffffff2d;border-radius:50%;text-decoration:none;transform:translateX(-50%);transition:background .18s,transform .18s}
.home-scroll-cue:hover{background:#ffffff14;transform:translate(-50%,-3px)}
.home-path-section{max-width:1240px;margin:0 auto;padding:4.2rem 2rem 4.8rem;scroll-margin-top:2rem}
.home-path-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}
.home-section-kicker{margin:0 0 .4rem;color:#7770d8;font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.home-path-heading h2{margin:0;color:#1e293b;font-size:clamp(1.65rem,3vw,2.2rem);letter-spacing:-.055em}
.home-path-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.home-path-card{position:relative;display:flex;min-height:330px;flex-direction:column;overflow:hidden;padding:1.65rem;border:1px solid transparent;border-radius:1.25rem;isolation:isolate}
.home-path-discover{background:linear-gradient(135deg,#e9fbfa,#e8f3ff);border-color:#d9f1f0}
.home-path-business{color:#fff;background:linear-gradient(135deg,#201b43,#302a5d 65%,#3c3670);border-color:#39345d}
.home-path-top{position:relative;z-index:2;display:flex;align-items:center;gap:.7rem}
.home-path-icon{display:grid;place-items:center;width:2.7rem;height:2.7rem;color:#fff;background:#13a8a1;border-radius:.8rem}
.home-path-icon svg{width:1.65rem;height:1.65rem}
.home-path-business .home-path-icon{background:#fff;color:#4d45b7}
.home-path-audience{color:#546178;font-size:.77rem;font-weight:750}
.home-path-business .home-path-audience{color:#d6d3f2}
.home-path-copy{position:relative;z-index:2;max-width:27rem;margin-top:2.25rem}
.home-path-copy h3{max-width:22rem;margin:0;color:#1d293b;font-size:clamp(1.45rem,2.7vw,2rem);letter-spacing:-.055em;line-height:1.12}
.home-path-copy p{max-width:25rem;margin:.75rem 0 0;color:#617087;font-size:.9rem;line-height:1.65}
.home-path-business .home-path-copy h3{color:#fff}
.home-path-business .home-path-copy p{color:#d5d3e9}
.home-path-link{position:relative;z-index:3;display:inline-flex;align-items:center;justify-content:space-between;gap:1.5rem;width:max-content;min-width:12rem;margin-top:1.3rem;padding:.85rem 1rem;color:#fff;background:#159c99;border-radius:.7rem;font-size:.82rem;font-weight:750;text-decoration:none;transition:transform .18s,box-shadow .18s}
.home-path-link:hover{transform:translateY(-2px);box-shadow:0 8px 18px #138d8d33}
.home-path-business .home-path-link{background:#fff;color:#302a5d}
.home-path-art{position:absolute;z-index:1;right:0;bottom:0;width:44%;height:74%;pointer-events:none}
.path-art-ring{position:absolute;right:-2.4rem;bottom:-5.8rem;width:18rem;height:18rem;border:1px solid #68c8c34d;border-radius:50%;box-shadow:0 0 0 1.2rem #68c8c31b,0 0 0 2.5rem #68c8c312}
.path-art-orb{position:absolute;right:4.4rem;bottom:2.5rem;width:5.8rem;height:5.8rem;background:linear-gradient(145deg,#ffffffb8,#ffffff25);border:1px solid #fff;border-radius:1.7rem;box-shadow:0 16px 32px #2c6f7e21;transform:rotate(-12deg)}
.path-art-spark{position:absolute;right:8rem;bottom:9.5rem;color:#139b97;font-size:2.2rem}
.path-art-grid{position:absolute;right:-1rem;bottom:-1.2rem;width:16rem;height:10rem;background-image:radial-gradient(#c8c0ff 1.1px,transparent 1.1px);background-size:13px 13px;mask-image:linear-gradient(135deg,transparent,#000)}
.path-art-star{position:absolute;right:5rem;bottom:5rem;color:#c8c2ff;font-size:5rem}
.path-art-pill{position:absolute;right:1.4rem;bottom:2.7rem;width:3.8rem;height:1.15rem;background:#82dfcf;border-radius:99px;transform:rotate(-38deg)}
.home-path-caption{margin:1.25rem 0 0;color:#8791a3;font-size:.77rem;text-align:center}
@media(max-width:760px){.home-brand-hero{min-height:530px;padding:4rem 1.25rem 5.5rem}.home-brand-lockup{margin-bottom:2rem}.home-brand-hero h1{font-size:clamp(3.2rem,13vw,5rem)}.home-brand-tagline{max-width:30rem;font-size:1rem}.home-path-section{padding:3rem 1.1rem 3.5rem}.home-path-grid{grid-template-columns:1fr}.home-path-card{min-height:300px;padding:1.35rem}.home-path-copy{margin-top:1.7rem}.home-path-art{width:38%;height:60%}}
@media(max-width:420px){.home-brand-hero{min-height:500px}.home-brand-eyebrow{font-size:.63rem}.home-path-card{min-height:320px}.home-path-art{width:48%;opacity:.8}.home-path-heading h2{font-size:1.55rem}}

.home-path-card{min-height:390px}
.home-path-copy{max-width:32rem;margin-top:1.7rem}
.home-path-copy h3{max-width:29rem}
.home-benefit-list{display:grid;gap:.58rem;margin:1rem 0 0;padding:0;list-style:none}
.home-benefit-list li{position:relative;padding-left:1.35rem;color:#546178;font-size:.82rem;line-height:1.45}
.home-benefit-list li:before{position:absolute;left:0;top:.05rem;display:grid;width:.9rem;height:.9rem;place-items:center;border-radius:50%;background:#12a89f;color:#fff;content:"✓";font-size:.61rem;font-weight:850}
.home-path-business .home-benefit-list li{color:#dedcf2}
.home-path-business .home-benefit-list li:before{background:#8e86ff;color:#211e42}
.home-path-link{margin-top:auto}
.home-discovery-section{max-width:1240px;margin:0 auto;padding:1.4rem 2rem 4rem}
.home-featured-section{padding-top:1.5rem;padding-bottom:5rem}
.home-discovery-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:1.25rem}
.home-discovery-heading h2{margin:0;color:#1e293b;font-size:clamp(1.65rem,3vw,2.15rem);letter-spacing:-.055em}
.home-discovery-heading>div:first-child>p:last-child{margin:.5rem 0 0;color:#778196;font-size:.9rem}
.home-carousel-controls{display:flex;gap:.5rem}
.home-carousel-controls button{display:grid;width:2.6rem;height:2.6rem;place-items:center;border:1px solid #e2e5ef;border-radius:50%;background:#fff;color:#30364b;font-size:1.15rem;cursor:pointer;box-shadow:0 .2rem .8rem #1c24400a;transition:transform .16s,border-color .16s,color .16s}
.home-carousel-controls button:hover{transform:translateY(-2px);border-color:#c8c3ff;color:#635bff}
.home-carousel-viewport{position:relative;overflow:hidden;padding:.2rem .1rem 1rem;touch-action:pan-y}
.home-carousel-track{display:flex;width:max-content;gap:1rem;transition:transform .68s cubic-bezier(.22,.72,.25,1);will-change:transform}
.home-carousel-track.is-instant{transition:none!important}
.home-carousel-controls button{width:2.75rem;height:2.75rem;border-radius:.85rem;background:#fff;box-shadow:0 .4rem 1.2rem #252b450b}
.home-carousel-controls button svg{width:1.15rem;height:1.15rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.home-carousel-controls button:hover{transform:translateY(-2px);border-color:#c8c3ff;color:#635bff;box-shadow:0 .6rem 1.3rem #635bff15}
.home-carousel-dot{position:relative;overflow:hidden}
.home-category-card{flex:0 0 clamp(220px,25vw,280px);overflow:hidden;border:1px solid #e8eaf2;border-radius:1.15rem;background:#fff;color:inherit;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}
.home-category-card:hover,.home-business-card:hover{transform:translateY(-4px);box-shadow:0 1rem 2.3rem #242b480f}
.home-category-image{position:relative;height:185px;overflow:hidden;background:#f0eff9}
.home-category-image img,.home-business-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.home-category-card:hover .home-category-image img,.home-business-card:hover .home-business-image img{transform:scale(1.045)}
.home-category-tone-0 .home-category-image{background:linear-gradient(135deg,#dff7f4,#eaf0ff)}
.home-category-tone-1 .home-category-image{background:linear-gradient(135deg,#f5eafc,#fcefe7)}
.home-category-tone-2 .home-category-image{background:linear-gradient(135deg,#e6eefb,#e3f4ec)}
.home-category-tone-3 .home-category-image{background:linear-gradient(135deg,#fff0e4,#eeeaff)}
.home-category-count{position:absolute;right:.75rem;bottom:.7rem;padding:.38rem .62rem;border:1px solid #ffffffa8;border-radius:99px;background:#ffffffdc;color:#465067;font-size:.69rem;font-weight:750;backdrop-filter:blur(8px)}
.home-category-meta{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.05rem}
.home-category-meta h3{margin:0;color:#252c3d;font-size:1rem;letter-spacing:-.025em}
.home-category-meta>span{color:#635bff;font-size:1.05rem}
.home-business-card{flex:0 0 clamp(245px,28vw,310px);overflow:hidden;border:1px solid #e8eaf2;border-radius:1.1rem;background:#fff;color:inherit;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}
.home-business-image{position:relative;height:205px;overflow:hidden;background:linear-gradient(135deg,#e8e6ff,#e4f5f3)}
.home-business-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.65rem;background:radial-gradient(circle at 70% 20%,#ffffff80,transparent 30%),linear-gradient(135deg,#e8e6ff,#e4f5f3);color:#596178;font-size:.83rem;font-weight:700}
.home-business-placeholder-mark{display:grid;width:3.5rem;height:3.5rem;place-items:center;border:1px solid #ffffffa6;border-radius:1.15rem;background:#ffffff9e;color:#635bff;font-size:1.5rem;box-shadow:0 .75rem 2rem #34375a15}
.home-business-image-arrow{position:absolute;right:.8rem;top:.8rem;display:grid;width:2.3rem;height:2.3rem;place-items:center;border:1px solid #ffffff80;border-radius:50%;background:#ffffffdd;color:#30364a;font-size:1rem;backdrop-filter:blur(8px)}
.home-business-meta{padding:1rem 1.05rem 1.15rem}
.home-business-category{display:inline-flex;margin-bottom:.42rem;color:#635bff;font-size:.65rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
.home-business-meta h3{overflow:hidden;margin:0;color:#252c3d;font-size:1.03rem;letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap}
.home-business-meta p{margin:.4rem 0 0;color:#7b8496;font-size:.82rem}
.home-carousel-pagination{display:flex;justify-content:center;gap:.45rem;min-height:1rem;margin-top:.1rem}
.home-carousel-dot{width:1.35rem;height:.35rem;padding:0;border:0;border-radius:99px;background:#dfe2ec;cursor:pointer;transition:width .25s ease,background .25s ease,box-shadow .25s ease}
.home-carousel-dot[aria-current="page"]{width:2.35rem;background:#635bff;box-shadow:0 2px 10px #635bff38}
.home-carousel-controls button:focus-visible,.home-carousel-dot:focus-visible,.home-category-card:focus-visible,.home-business-card:focus-visible{outline:3px solid #8c85ff;outline-offset:3px}
@media(max-width:760px){.home-path-card{min-height:390px}.home-discovery-section{padding:1rem 1.1rem 2.8rem}.home-discovery-heading{align-items:flex-start}.home-discovery-heading>div:first-child>p:last-child{max-width:30rem;line-height:1.55}.home-carousel-controls button{width:2.35rem;height:2.35rem}.home-category-card{flex-basis:75vw}.home-business-card{flex-basis:80vw}.home-category-image{height:165px}.home-business-image{height:190px}}
@media(max-width:420px){.home-path-card{min-height:420px}.home-path-copy{max-width:100%}.home-path-art{opacity:.5}.home-discovery-heading{gap:.5rem}.home-discovery-heading h2{font-size:1.55rem}.home-carousel-controls{gap:.3rem}.home-category-card{flex-basis:82vw}.home-business-card{flex-basis:86vw}}
@media(prefers-reduced-motion:reduce){.home-carousel-track,.home-category-card,.home-business-card,.home-category-image img,.home-business-image img,.home-carousel-dot{transition:none!important}}

.location-pin-icon { width: 1rem; height: 1rem; vertical-align: -.15em; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
a[aria-disabled="true"] { opacity: .55; pointer-events: none; }

.platform-footer{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.5rem clamp(1rem,5vw,5rem);border-top:1px solid #e5e8f0;background:#fff;color:#68748a;font-size:.875rem}
.platform-footer-brand{display:inline-flex;flex:0 0 auto;align-items:center;gap:.55rem;white-space:nowrap;font-weight:750;color:#20283a;text-decoration:none}
.platform-footer-brand img{display:block;width:2rem;height:2rem;flex:0 0 auto}
.platform-footer-wordmark{display:inline-flex;color:var(--brand-charcoal,#2b1b17);font-family:'Fraunces',Georgia,serif;font-size:1.08rem;font-style:italic;font-weight:800;letter-spacing:-.055em;line-height:1}
.platform-footer-wordmark span:last-child{color:var(--brand-coral,#f25c3b)}
.platform-footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem 1.25rem}
.platform-footer nav a{color:inherit;text-decoration:none}
.platform-footer nav a:hover{color:#635bff}
.institutional-page{max-width:54rem;margin:3rem auto 5rem;padding:clamp(1.25rem,4vw,3rem);background:#fff;border:1px solid #e6e9f1;border-radius:1.25rem;box-shadow:0 1rem 3rem #29345a0a}
.institutional-page h1{margin:.25rem 0 1rem;font-size:clamp(2rem,5vw,3.25rem);letter-spacing:-.04em}
.institutional-page section{margin-top:2rem}
.institutional-page h2{font-size:1.2rem}
.institutional-page section p{color:#68748a;line-height:1.75}
.institutional-draft{padding:.8rem 1rem;border:1px solid #f0dca9;border-radius:.75rem;background:#fff9e9;color:#795a12;font-size:.9rem}
.institutional-contact-form{margin-top:2rem}
@media(max-width:760px){.platform-footer{align-items:flex-start;flex-direction:column}.platform-footer nav{justify-content:flex-start}.institutional-page{margin:1rem auto 3rem;border-radius:0}}

/* Institutional pages */
.platform-footer{padding:1.65rem max(1.25rem,calc((100vw - 76rem)/2));background:#fff;border-color:#e9eaf2}
.platform-footer-brand{font-size:1.08rem;letter-spacing:-.04em;color:#20243a}
.platform-footer nav{gap:.65rem 1.3rem}
.institutional-wrap{position:relative;isolation:isolate;min-height:calc(100vh - 5rem);overflow:hidden;padding:2.25rem 1.5rem 5.5rem;background:radial-gradient(ellipse at 50% -20%,#e8e5ff 0,transparent 42%),linear-gradient(180deg,#f8f9fd 0%,#f4f6fb 100%)}
.institutional-wrap:before,.institutional-wrap:after{position:absolute;z-index:-1;content:"";border:1px solid #e6e7f3;border-radius:50%;pointer-events:none}
.institutional-wrap:before{width:34rem;height:34rem;top:7rem;left:-24rem}.institutional-wrap:after{width:42rem;height:42rem;top:24rem;right:-34rem}
.institutional-container{width:min(100%,70rem);margin:0 auto}
.institutional-back{display:inline-flex;align-items:center;gap:.55rem;margin:0 0 1.35rem;color:#68718a;text-decoration:none;font-size:.88rem;font-weight:650;transition:color .18s ease}
.institutional-back:hover{color:#635bff}.institutional-back span{font-size:1.15rem}
.institutional-hero{position:relative;overflow:hidden;padding:clamp(2rem,6vw,4.4rem);border:1px solid #ebeaf7;border-radius:1.75rem;background:linear-gradient(125deg,#fff 12%,#f5f3ff 100%);box-shadow:0 1.4rem 4rem #252c5010}
.institutional-hero:after{position:absolute;content:"";width:19rem;height:19rem;right:-5rem;bottom:-13rem;border:1px solid #dcd8ff;border-radius:50%;box-shadow:0 0 0 2.4rem #635bff05,0 0 0 5rem #635bff04}
.institutional-hero-mark{display:grid;width:3.25rem;height:3.25rem;place-items:center;margin-bottom:1.55rem;border:1px solid #e3e0ff;border-radius:1.05rem;background:#fff;color:#635bff;box-shadow:0 .35rem 1rem #635bff18}
.institutional-hero-mark svg{width:1.55rem;height:1.55rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.institutional-hero .eyebrow{margin:0 0 .65rem;color:#645bf0;font-size:.7rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.institutional-hero .eyebrow span{padding:0 .25rem;color:#b4afd9}
.institutional-hero h1{position:relative;z-index:1;max-width:49rem;margin:0;color:#1d2437;font-size:clamp(2.6rem,6.3vw,4.5rem);font-weight:560;letter-spacing:-.065em;line-height:1.02}
.institutional-intro{position:relative;z-index:1;max-width:43rem;margin:1.2rem 0 0;color:#737d91;font-size:clamp(1rem,2vw,1.18rem);line-height:1.75}
.institutional-hero-faq{background:linear-gradient(125deg,#fff 12%,#eff9f8 100%)}.institutional-hero-faq .institutional-hero-mark{border-color:#d2f0eb;color:#159e99}
.institutional-hero-terms .institutional-hero-mark{color:#c28830;border-color:#f5e5c5}
.institutional-hero-privacy .institutional-hero-mark,.institutional-hero-cookies .institutional-hero-mark{color:#299477;border-color:#d7efe4}
.institutional-draft{display:flex;align-items:flex-start;gap:.8rem;margin:1.15rem 0 0;padding:1rem 1.15rem;border:1px solid #f0dfbd;border-radius:1rem;background:#fffaf0;color:#795c27;font-size:.86rem;line-height:1.6;box-shadow:0 .5rem 1.5rem #77561b08}
.institutional-draft-icon{display:grid;flex:0 0 1.45rem;width:1.45rem;height:1.45rem;place-items:center;border-radius:50%;background:#f8ebcf;color:#906b2b;font-weight:800;font-size:.8rem}
.institutional-content{margin-top:2.3rem;padding:clamp(1.35rem,4vw,2.5rem);border:1px solid #e7e9f1;border-radius:1.5rem;background:#fff;box-shadow:0 .9rem 2.8rem #252c5008}
.institutional-section-heading{margin-bottom:1.5rem}
.institutional-section-heading .eyebrow{margin:0 0 .45rem;color:#635bff;font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.institutional-section-heading h2{margin:0;color:#252b3d;font-size:clamp(1.35rem,3vw,1.85rem);font-weight:600;letter-spacing:-.04em}
.institutional-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}
.institutional-info-card{display:grid;grid-template-columns:2.4rem 1fr;gap:.8rem;align-content:start;min-height:9.5rem;padding:1.15rem;border:1px solid #edf0f5;border-radius:1rem;background:linear-gradient(145deg,#fff,#fcfcff);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.institutional-info-card:hover{transform:translateY(-2px);border-color:#d9d5ff;box-shadow:0 .65rem 1.6rem #635bff0b}
.institutional-card-index{display:grid;width:2.15rem;height:2.15rem;place-items:center;border-radius:.7rem;background:#f1efff;color:#635bff;font-size:.72rem;font-weight:800}
.institutional-info-card h3{margin:.1rem 0 .5rem;color:#30374a;font-size:1rem;font-weight:700}
.institutional-info-card p{margin:0;color:#737d91;font-size:.9rem;line-height:1.65}
.institutional-faq{width:100%;box-sizing:border-box}
.institutional-faq-item{border-top:1px solid #eceef4}
.institutional-faq-item:last-of-type{border-bottom:1px solid #eceef4}
.institutional-faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.2rem .15rem;color:#30374a;font-weight:680;cursor:pointer;list-style:none}
.institutional-faq-item summary::-webkit-details-marker{display:none}
.faq-toggle{position:relative;flex:0 0 1.8rem;width:1.8rem;height:1.8rem;border:1px solid #e6e4f5;border-radius:50%;background:#faf9ff}
.faq-toggle:before,.faq-toggle:after{position:absolute;top:50%;left:50%;width:.62rem;height:1.5px;background:#635bff;content:"";transform:translate(-50%,-50%)}
.faq-toggle:after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .2s ease}
.institutional-faq-item[open] .faq-toggle:after{transform:translate(-50%,-50%)}
.institutional-faq-item p{max-width:54rem;margin:0;padding:0 2.7rem 1.15rem .15rem;color:#737d91;font-size:.94rem;line-height:1.7}
.institutional-inline-cta{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.5rem;padding:1rem 1.15rem;border-radius:.9rem;background:#f7f7ff;color:#68718a;font-size:.9rem}
.institutional-inline-cta a{color:#635bff;font-weight:750;text-decoration:none;white-space:nowrap}
.institutional-bottom-cta{position:relative;display:flex;align-items:center;justify-content:space-between;gap:2rem;overflow:hidden;margin-top:1.25rem;padding:1.75rem 2rem;border-radius:1.35rem;background:#22263a;color:#fff}
.institutional-bottom-cta h2{margin:.35rem 0;color:#fff;font-size:1.45rem;letter-spacing:-.035em}
.institutional-bottom-cta p:not(.eyebrow){margin:.4rem 0 0;color:#c6cada;font-size:.9rem}
.institutional-bottom-cta .eyebrow{color:#b8b2ff;font-size:.65rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.institutional-bottom-cta .button{position:relative;z-index:1;display:inline-flex;align-items:center;gap:.7rem;flex:0 0 auto;padding:.85rem 1.1rem;border:0;border-radius:.75rem;background:#766dff;color:#fff;font-weight:750;text-decoration:none}
.institutional-cta-orb{position:absolute;width:16rem;height:16rem;right:10rem;top:-12rem;border-radius:50%;background:#635bff;filter:blur(55px);opacity:.27}
.institutional-contact-container{width:min(100%,72rem)}
.institutional-contact-hero{padding-bottom:3.5rem}
.institutional-contact-layout{display:grid;grid-template-columns:minmax(15rem,.72fr) minmax(0,1.28fr);gap:1.2rem;margin-top:1.25rem;align-items:stretch}
.institutional-contact-aside{position:relative;overflow:hidden;padding:2rem;border-radius:1.35rem;background:linear-gradient(145deg,#22263a,#333253);color:#fff}
.institutional-contact-aside:after{position:absolute;right:-5rem;bottom:-7rem;width:17rem;height:17rem;border:1px solid #ffffff20;border-radius:50%;box-shadow:0 0 0 2rem #ffffff08,0 0 0 4rem #ffffff05;content:""}
.institutional-contact-aside>.eyebrow{color:#bab5ff;font-size:.68rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.institutional-contact-aside h2{position:relative;z-index:1;margin:.8rem 0;font-size:clamp(1.55rem,3vw,2rem);letter-spacing:-.045em;line-height:1.15}
.institutional-contact-aside>p:not(.eyebrow){position:relative;z-index:1;color:#d1d2df;font-size:.94rem;line-height:1.7}
.institutional-contact-note{position:relative;z-index:1;display:flex;gap:.7rem;margin:2rem 0 1.3rem;padding:1rem;border:1px solid #ffffff18;border-radius:.9rem;background:#ffffff0a}
.institutional-contact-note>span{color:#b8b2ff}.institutional-contact-note p{margin:0;color:#e2e1ed;font-size:.84rem;line-height:1.6}
.institutional-contact-aside>a{position:relative;z-index:1;color:#c6c1ff;font-weight:700;text-decoration:none}
.institutional-form-card{padding:clamp(1.25rem,3vw,2rem);border:1px solid #e7e9f1;border-radius:1.35rem;background:#fff;box-shadow:0 .9rem 2.8rem #252c5009}
.institutional-form-heading{display:flex;align-items:center;gap:.9rem;margin-bottom:1.5rem}
.institutional-form-step{display:grid;flex:0 0 2.6rem;width:2.6rem;height:2.6rem;place-items:center;border-radius:.85rem;background:#f1efff;color:#635bff;font-size:.75rem;font-weight:850}
.institutional-form-heading h2{margin:0;color:#252b3d;font-size:1.23rem;letter-spacing:-.025em}
.institutional-form-heading p{margin:.28rem 0 0;color:#8790a2;font-size:.85rem}
.institutional-contact-form{gap:1rem}
.institutional-contact-form label{display:grid;gap:.48rem;color:#394157;font-size:.87rem;font-weight:650}
.institutional-contact-form input,.institutional-contact-form textarea{width:100%;box-sizing:border-box;padding:.82rem .9rem;border:1px solid #e1e5ef;border-radius:.75rem;background:#fcfcfe;color:#222a3d;font:inherit;outline:none;transition:border .18s ease,box-shadow .18s ease}
.institutional-contact-form textarea{min-height:9rem;resize:vertical}
.institutional-contact-form input:focus,.institutional-contact-form textarea:focus{border-color:#8a83ff;box-shadow:0 0 0 3px #635bff1c}
.institutional-contact-form .button{display:inline-flex;justify-self:start;align-items:center;gap:.8rem;padding:.85rem 1.15rem;border:0;border-radius:.75rem;background:#635bff;color:#fff;font-weight:750;cursor:pointer}
.institutional-success-wrap{display:grid;min-height:65vh;place-items:center;padding-top:3rem;padding-bottom:3rem}
.institutional-success-card{width:min(100%,34rem);box-sizing:border-box;padding:3.2rem 2rem;border:1px solid #e6e8f0;border-radius:1.6rem;background:#fff;text-align:center;box-shadow:0 1.5rem 4rem #252c5012}
.institutional-success-icon{display:grid;width:4.2rem;height:4.2rem;place-items:center;margin:0 auto 1.4rem;border-radius:1.35rem;background:#e9f8f1;color:#159b70}
.institutional-success-icon svg{width:2rem;height:2rem;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.institutional-success-card .eyebrow{color:#159b70;font-size:.68rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}
.institutional-success-card h1{margin:.5rem 0;color:#22283b;font-size:2.2rem;letter-spacing:-.05em}
.institutional-success-card>p:not(.eyebrow){margin:0 auto 1.5rem;max-width:24rem;color:#737d91;line-height:1.65}
.institutional-success-card .button{display:inline-flex;align-items:center;gap:.65rem;padding:.85rem 1.1rem;border-radius:.75rem;background:#635bff;color:#fff;font-weight:750;text-decoration:none}
@media(max-width:760px){.institutional-wrap{padding:1.2rem 1rem 3.5rem}.institutional-hero{padding:2rem 1.4rem;border-radius:1.25rem}.institutional-hero h1{font-size:clamp(2.45rem,12vw,3.6rem)}.institutional-content{margin-top:1.2rem;padding:1.2rem;border-radius:1.15rem}.institutional-info-grid{grid-template-columns:1fr}.institutional-info-card{min-height:0}.institutional-bottom-cta{align-items:flex-start;flex-direction:column;padding:1.4rem;border-radius:1.1rem}.institutional-contact-layout{grid-template-columns:1fr}.institutional-contact-aside{padding:1.5rem}.institutional-form-card{padding:1.3rem}.institutional-inline-cta{align-items:flex-start;flex-direction:column}.institutional-success-card{padding:2.5rem 1.35rem}.platform-footer{padding:1.5rem 1rem}}


/* ForBoka public brand system */
:root{--brand-coral:#F25C3B;--brand-pine:#1F5D50;--brand-butter:#FFC857;--brand-charcoal:#2B1B17;--brand-cream:#FFF4E6;--brand-paper:#fffaf2}
body.platform-public{color:var(--brand-charcoal);background:var(--brand-cream);font-family:'DM Sans',ui-sans-serif,system-ui,sans-serif}
body.platform-public:not(.tenant-public) :is(h1,h2,h3){font-family:'Fraunces',Georgia,serif;font-weight:600;letter-spacing:-.035em}
.platform-public .site-header{position:relative;z-index:5;display:flex;align-items:center;gap:1.5rem;padding:.8rem max(1.25rem,calc((100vw - 78rem)/2));background:var(--brand-paper);border-bottom:1px solid #1f5d5018}
.platform-public .site-header nav{align-items:center;gap:.4rem}
.platform-public .site-header nav>a{padding:.65rem .85rem;color:var(--brand-charcoal);border-radius:999px;font-size:.88rem;font-weight:600;transition:background .18s,color .18s}
.platform-public .site-header nav>a:hover{color:var(--brand-pine);background:#1f5d500e}
.platform-public .site-header nav>a.public-nav-cta{padding:.72rem 1.1rem;color:#fff;background:var(--brand-coral);font-weight:700}
.platform-public .site-header nav>a.public-nav-cta:hover{color:#fff;background:#dc4d31}
.platform-public .brand{display:inline-flex;align-items:center;gap:.65rem;color:var(--brand-charcoal);font-family:'Fraunces',Georgia,serif;font-size:1.42rem;font-weight:800;letter-spacing:-.045em}
.platform-public .brand,.platform-public .platform-footer-brand{text-transform:lowercase}
.platform-public .brand-wordmark{display:inline-flex;color:var(--brand-charcoal);font-family:'Fraunces',Georgia,serif;font-size:1.42rem;font-style:italic;font-weight:800;letter-spacing:-.055em;line-height:1}
.platform-public .brand-wordmark span:last-child{color:var(--brand-coral)}
.platform-public .brand img{display:block;width:2.45rem;height:2.45rem;border-radius:.65rem}
.platform-public .language-switcher{background:#f1e8d8}
.platform-public .language-switcher a{color:#6c5a4e}
.platform-public .language-switcher a[aria-current=page]{color:var(--brand-pine);background:#fffdf8;box-shadow:0 1px 4px #2b1b1718}
.platform-public .platform-footer{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.5rem max(1.25rem,calc((100vw - 78rem)/2));color:#806f62;background:#f6ead8;border-top:1px solid #1f5d5018;font-size:.8rem}
.platform-public .platform-footer-brand{display:inline-flex;align-items:center;gap:.55rem;color:var(--brand-charcoal);font-family:'Fraunces',Georgia,serif;font-size:1.08rem;font-weight:800;text-decoration:none}
.platform-public .platform-footer-brand{flex:0 0 auto;white-space:nowrap}
.platform-public .platform-footer-wordmark{display:inline-flex;color:var(--brand-charcoal);font-style:italic;letter-spacing:-.055em;line-height:1}
.platform-public .platform-footer-wordmark span:last-child{color:var(--brand-coral)}
.platform-public .platform-footer-brand img{display:block;width:2rem;height:2rem;border-radius:.5rem}
.platform-public .platform-footer nav{display:flex;justify-content:center;gap:.5rem 1.1rem;flex-wrap:wrap}
.platform-public .platform-footer nav a{color:#66564b;text-decoration:none}
.platform-public .platform-footer nav a:hover{color:var(--brand-pine);text-decoration:underline;text-underline-offset:.2em}
body.platform-public:not(.tenant-public) .button{color:#fff;background:var(--brand-coral);border-radius:.75rem;font-weight:700;transition:transform .18s,background .18s,box-shadow .18s}
body.platform-public:not(.tenant-public) .button:hover{transform:translateY(-1px);background:#dc4d31;box-shadow:0 .45rem 1rem #f25c3b2b}
.platform-public .theme-violet .button,.platform-public .theme-ocean .button,.platform-public .theme-forest .button,.platform-public .theme-sunset .button{color:var(--public-accent-contrast);background:var(--public-accent);border-color:var(--public-accent);box-shadow:none;transform:none}
.platform-public .theme-violet .button:hover,.platform-public .theme-ocean .button:hover,.platform-public .theme-forest .button:hover,.platform-public .theme-sunset .button:hover{color:var(--public-accent-contrast);background:color-mix(in srgb,var(--public-accent) 88%,#000);border-color:var(--public-accent)}
body.platform-public:not(.tenant-public) .eyebrow{color:var(--brand-pine);letter-spacing:.14em}
body.platform-public:not(.tenant-public) .lead,body.platform-public:not(.tenant-public) .muted{color:#806f62}
.platform-public .flash-success{color:#17483e;background:#e3f1e8}
.platform-public .flash-error{color:#a63222;background:#ffebe4}

.home-landing{color:var(--brand-charcoal);background:var(--brand-cream)}
.home-brand-hero{min-height:clamp(34rem,72vh,48rem);padding:4rem 1.5rem 5.5rem;background:radial-gradient(ellipse at 82% 92%,#f25c3b24 0,transparent 25%),radial-gradient(ellipse at 5% 5%,#ffc85718 0,transparent 30%),linear-gradient(135deg,#1F5D50 0%,#17483e 58%,#123d35 100%)}
.home-brand-hero:before{background-image:linear-gradient(#fff1 1px,transparent 1px),linear-gradient(90deg,#fff1 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(transparent,#000 25%,#000 72%,transparent)}
.home-orbit{border-color:#fff2}
.home-brand-lockup{position:relative;z-index:1;display:flex;align-items:center;gap:.9rem;margin-bottom:2.2rem;color:var(--brand-cream);font-family:'Fraunces',Georgia,serif;font-size:1.8rem;font-weight:800;letter-spacing:-.055em}
.home-logo-mark{display:block;width:3.5rem;height:3.5rem;object-fit:contain;border:0;border-radius:.85rem;background:none;box-shadow:none}
.home-brand-period{color:var(--brand-butter)}
.home-brand-eyebrow{color:var(--brand-butter);letter-spacing:.16em}
.home-brand-hero h1{max-width:58rem;font-family:'Fraunces',Georgia,serif;font-size:clamp(3.3rem,7.5vw,6.3rem);font-weight:600;letter-spacing:-.055em;line-height:.98}
.home-brand-tagline{max-width:43rem;color:#fff4e6d9;font-size:clamp(1.05rem,2vw,1.28rem);line-height:1.7}
.home-brand-footnote{color:#fff4e6bd}
.home-footnote-dot{background:var(--brand-butter);box-shadow:0 0 0 .3rem #ffc85724}
.home-scroll-cue{color:var(--brand-cream);border-color:#fff5}
.home-path-section,.home-discovery-section{max-width:78rem}
.home-path-section{padding-top:5rem;padding-bottom:4rem}
.home-section-kicker{color:var(--brand-pine)}
.home-path-heading h2,.home-discovery-heading h2{color:var(--brand-charcoal);font-family:'Fraunces',Georgia,serif;font-weight:600;letter-spacing:-.035em}
.home-path-discover{background:#fffaf2;border-color:#1f5d5024}
.home-path-business{background:linear-gradient(145deg,#1F5D50,#17483e);border-color:#17483e}
.home-path-icon{color:#fff;background:var(--brand-pine)}
.home-path-business .home-path-icon{color:var(--brand-pine);background:var(--brand-cream)}
.home-path-audience{color:#806f62}
.home-path-business .home-path-audience{color:#fff4e6c9}
.home-path-copy h3{color:var(--brand-charcoal);font-family:'Fraunces',Georgia,serif;font-weight:600}
.home-path-copy p{color:#806f62}
.home-path-business .home-path-copy h3{color:var(--brand-cream)}
.home-path-business .home-path-copy p,.home-path-business .home-benefit-list li{color:#fff4e6d1}
.home-benefit-list li:before{color:var(--brand-pine);background:#1f5d5015}
.home-path-business .home-benefit-list li:before{color:var(--brand-charcoal);background:var(--brand-butter)}
.home-path-link{color:#fff;background:var(--brand-pine);border-radius:.8rem}
.home-path-link:hover{background:#17483e;box-shadow:0 .7rem 1.3rem #1f5d5030}
.home-path-business .home-path-link{color:var(--brand-charcoal);background:var(--brand-coral)}
.home-path-business .home-path-link:hover{color:#fff;background:#dc4d31;box-shadow:0 .7rem 1.3rem #f25c3b40}
.home-path-caption{color:#806f62}
.home-discovery-section{padding-top:2rem}
.home-category-card,.home-business-card{border-color:#1f5d501b;border-radius:1rem;background:#fffaf2}
.home-category-tone-0 .home-category-image{background:linear-gradient(135deg,#dcebe2,#fff0d0)}
.home-category-tone-1 .home-category-image{background:linear-gradient(135deg,#ffdfd4,#f4e6d6)}
.home-category-tone-2 .home-category-image{background:linear-gradient(135deg,#e2eee4,#d7e9e4)}
.home-category-tone-3 .home-category-image{background:linear-gradient(135deg,#ffe9bd,#f3e8db)}
.home-carousel-dot[aria-current=page]{background:var(--brand-coral);box-shadow:0 0 0 .4rem #f25c3b20}
.home-category-meta h3,.home-business-meta h3{color:var(--brand-charcoal);font-family:'Fraunces',Georgia,serif}
.home-category-meta>span,.home-business-image-arrow{color:var(--brand-pine)}
.home-carousel-controls button{color:var(--brand-pine);border-color:#1f5d5030;background:#fffaf2}
.home-carousel-controls button:hover{color:#fff;background:var(--brand-pine)}
.home-carousel-controls button:focus-visible,.home-carousel-dot:focus-visible,.home-category-card:focus-visible,.home-business-card:focus-visible{outline-color:var(--brand-coral)}

.public-plans-heading{background:radial-gradient(ellipse at 50% 0%,#dcebe2 0,#fff4e6 65%,transparent 100%)}
.public-plans-heading .eyebrow{color:var(--brand-coral)}
.public-plans-heading h1{color:var(--brand-charcoal);font-family:'Fraunces',Georgia,serif;font-weight:600}
.public-plans-heading .lead{color:#806f62}
.billing-toggle{background:#f1e8d8}
.billing-toggle a{color:#66564b}
.billing-toggle a.is-active{background:var(--brand-pine);box-shadow:0 3px 10px #1f5d5030}
.public-plan-card{border-color:#1f5d5024;border-radius:1.1rem;background:#fffaf2;box-shadow:0 .75rem 2rem #2b1b170c}
.public-plan-card.is-featured{background:var(--brand-pine);border-color:var(--brand-pine);box-shadow:0 1rem 2.5rem #1f5d5030}
.public-plan-card header h2,.public-plan-price strong{color:var(--brand-pine)}
.public-plan-card header p,.public-plan-price{color:#806f62}
.public-plan-card.is-featured header h2,.public-plan-card.is-featured header p{color:var(--brand-cream)}
.public-plan-card.is-featured .public-plan-price,.public-plan-card.is-featured .public-plan-price strong{color:var(--brand-butter)}
.public-plan-badge{color:var(--brand-charcoal);background:var(--brand-butter)}
.public-plan-badges{position:absolute;top:.6rem;left:1rem;right:1rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;z-index:2;pointer-events:none}
.public-plan-card{container-type:inline-size}
.public-plan-badges .public-plan-badge{position:static;min-width:0;max-width:48%;padding:.5rem .7rem;border-radius:.65rem;font-size:.7rem;line-height:1.15;text-align:center;text-transform:none;white-space:normal}
.public-plan-badges .public-plan-badge-custom{max-width:60%;color:#fff;background:var(--brand-coral);box-shadow:0 .25rem .7rem #1b302b30;font-size:.75rem}
.public-plan-card.has-public-badge{padding-top:3.4rem}
@container (max-width: 320px){.public-plan-badges{left:.75rem;right:.75rem;flex-direction:column;gap:.3rem}.public-plan-badges .public-plan-badge,.public-plan-badges .public-plan-badge-custom{max-width:100%;padding:.38rem .6rem}.public-plan-card.has-public-badge{padding-top:4.8rem}}
.public-plan-benefits li{color:#66564b;border-color:#1f5d501c}
.public-plan-benefits li span{color:var(--brand-pine)}
.public-plan-card.is-featured .public-plan-benefits li{color:#fff4e6;border-color:#fff4e638}
.public-plan-card.is-featured .public-plan-benefits li span{color:var(--brand-butter)}
.public-plan-cta{background:var(--brand-pine)}
.public-plan-card.is-featured .public-plan-cta{color:#fff;background:var(--brand-coral)}
.public-plan-card.is-featured .public-plan-cta:hover{background:#dc4d31}
.platform-public .public-plan-card:not(.is-featured) .public-plan-cta,.platform-public .public-plan-card:not(.is-featured) .public-plan-cta:hover{color:#fff;background:var(--brand-pine)}
.platform-public .public-plan-card.is-featured .public-plan-cta,.platform-public .public-plan-card.is-featured .public-plan-cta:hover{color:#fff;background:var(--brand-coral)}
.signup-plan-notice{color:var(--brand-pine);background:#e2eee4;border-color:#1f5d5030}
.public-plans-footnote{color:#806f62}

.institutional-hero{background:radial-gradient(circle at 92% 12%,#ffc85726,transparent 28%),linear-gradient(125deg,#fffaf2,#e5efe7);border-color:#1f5d5018}
.institutional-hero .eyebrow,.institutional-content .eyebrow{color:var(--brand-pine)}
.institutional-hero h1,.institutional-content h1,.institutional-content h2{color:var(--brand-charcoal);font-family:'Fraunces',Georgia,serif;font-weight:600}
.institutional-content{border-color:#1f5d5018;background:#fffaf2}
.institutional-contact-form .button,.institutional-success-card .button{background:var(--brand-pine)}
.institutional-form-step{color:var(--brand-pine);background:#e2eee4}
.institutional-form-card,.institutional-info-card,.institutional-success-card{border-color:#1f5d5018;background:#fffaf2}
.institutional-contact-form input:focus,.institutional-contact-form textarea:focus{border-color:var(--brand-pine);box-shadow:0 0 0 3px #1f5d501c}
.institutional-bottom-cta{background:var(--brand-pine)}

.public-site{font-family:'DM Sans',ui-sans-serif,system-ui,sans-serif}
.public-site-nav{border-bottom:1px solid #1f5d5018}
.public-site-footer{color:#806f62;border-color:#1f5d5020}
.public-site-footer a{color:var(--public-accent,#635bff)}
.public-site.layout-showcase .public-hero .eyebrow{color:var(--brand-butter)}

@media(max-width:760px){
 .platform-public .site-header{align-items:center;flex-wrap:wrap;padding:.65rem 1rem}
 .platform-public .site-header nav{justify-content:flex-end;flex-wrap:wrap;gap:.15rem}
 .platform-public .site-header nav>a{padding:.55rem .6rem;font-size:.78rem}
 .platform-public .site-header nav>a.public-nav-cta{padding:.58rem .75rem}
 .platform-public .brand{gap:.45rem;font-size:1.15rem}
 .platform-public .brand img{width:2rem;height:2rem}
 .platform-public .platform-footer{align-items:flex-start;flex-direction:column;padding:1.3rem 1rem}
 .platform-public .platform-footer nav{justify-content:flex-start}
 .home-brand-hero{min-height:33rem;padding:3.7rem 1.25rem 4.8rem}
 .home-brand-hero h1{font-size:clamp(3rem,12vw,5rem)}
 .home-path-section{padding-top:3.3rem}
}

body.platform-public:not(.tenant-public) .card,body.platform-public:not(.tenant-public) .panel{border-color:#1f5d501c;border-radius:1rem;background:var(--brand-paper);box-shadow:0 .7rem 2rem #2b1b170b}
body.platform-public:not(.tenant-public) .card h1,body.platform-public:not(.tenant-public) .page-shell h1{font-family:'Fraunces',Georgia,serif;font-weight:600;letter-spacing:-.04em}
body.platform-public:not(.tenant-public) input:focus,body.platform-public:not(.tenant-public) select:focus,body.platform-public:not(.tenant-public) textarea:focus{border-color:var(--brand-pine);box-shadow:0 0 0 3px #1f5d5018}
body.platform-public:not(.tenant-public) .error-list{color:#a63222;background:#ffebe4}
.password-result-card{max-width:38rem;padding:clamp(2rem,5vw,3.5rem);text-align:left}
.password-result-card .password-result-mark{display:grid;width:3.25rem;height:3.25rem;place-items:center;margin:0 0 1.5rem;border-radius:1rem;background:#e5f2e9;color:var(--brand-pine)}
.password-result-card .password-result-mark.is-error{background:#ffebe4;color:#a63222}
.password-result-card .password-result-mark svg{width:1.65rem;height:1.65rem}
.password-result-card .eyebrow{margin:0 0 .65rem}
.password-result-card h1{max-width:12ch;margin:0 0 .8rem;font-size:clamp(2.25rem,5vw,3.5rem);line-height:1.04}
.password-result-card .lead{max-width:34rem;margin:0;color:#806f62;line-height:1.7}
.password-result-card .button{display:inline-flex;align-items:center;gap:.75rem;margin-top:1.75rem}
.email-verification-card{max-width:38rem;padding:clamp(2rem,5vw,3.5rem);text-align:left}
.email-verification-card .email-verification-mark{display:grid;width:3.25rem;height:3.25rem;place-items:center;margin:0 0 1.5rem;border-radius:1rem;background:#e5efe7;color:var(--brand-pine)}
.email-verification-card .email-verification-mark.is-success{background:#e5f2e9;color:var(--brand-pine)}
.email-verification-card .email-verification-mark.is-error{background:#ffebe4;color:#a63222}
.email-verification-card .email-verification-mark svg{width:1.65rem;height:1.65rem}
.email-verification-card .eyebrow{margin:0 0 .65rem}
.email-verification-card h1{max-width:13ch;margin:0 0 .8rem;font-size:clamp(2.25rem,5vw,3.5rem);line-height:1.04}
.email-verification-card .lead{max-width:34rem;margin:0;color:#806f62;line-height:1.7}
.email-verification-card .button{display:inline-flex;align-items:center;gap:.75rem;margin-top:1.75rem}

.directory-page{color:var(--brand-charcoal);background:var(--brand-cream)}
.directory-hero{background:radial-gradient(ellipse at 82% 4%,#dcebe2 0,transparent 34%),radial-gradient(ellipse at 12% 4%,#ffc85725 0,transparent 32%),linear-gradient(135deg,#fffaf2,#fff4e6)}
.directory-hero:after{border-color:#1f5d501c;box-shadow:0 0 0 2.5rem #1f5d5008,0 0 0 5rem #1f5d5005}
.directory-kicker{color:var(--brand-pine)}
.directory-kicker span,.directory-live-dot{background:var(--brand-coral);box-shadow:0 0 0 .25rem #f25c3b20}
.directory-hero h1,.directory-results-heading h2,.directory-card-title{color:var(--brand-charcoal);font-family:'Fraunces',Georgia,serif;font-weight:600}
.directory-intro{color:#806f62}
.directory-search{border-color:#1f5d5020;border-radius:1.15rem;background:var(--brand-paper);box-shadow:0 1rem 2.4rem #2b1b1710}
.directory-search label{color:var(--brand-pine)}
.directory-search-city{border-color:#1f5d5024}
.directory-search-submit{background:var(--brand-coral);border-radius:.8rem}
.directory-search-submit:hover{background:#dc4d31}
.directory-chip{color:#66564b;border-color:#1f5d5020;background:#fffaf2}
.directory-chip:hover,.directory-chip.is-selected{color:var(--brand-pine);border-color:var(--brand-pine);background:#e7f0e7;box-shadow:none}
.directory-results-shell{background:var(--brand-cream)}
.directory-result-count{color:#66564b;background:#f1e8d8}
.directory-business-card{border-color:#1f5d5020;border-radius:1.15rem;background:var(--brand-paper);box-shadow:0 .7rem 1.8rem #2b1b170b}
.directory-business-card:hover{border-color:#1f5d5060;box-shadow:0 1rem 2.2rem #2b1b1716}
.directory-business-card:focus-visible{outline-color:var(--brand-coral)}
.directory-card-category,.directory-card-copy h3 a:hover,.directory-card-footer a,.directory-card-title a:hover,.directory-more-services{color:var(--brand-pine)}
.directory-card-symbol,.directory-card-image-placeholder{color:var(--brand-pine);background:linear-gradient(145deg,#e2eee4,#fff0d0);border-color:#1f5d5020}
.directory-card-location,.directory-card-description,.directory-intro{color:#806f62}
.directory-rating-overlay{color:var(--brand-charcoal);background:#fffaf2ed;border-color:#ffc85780;box-shadow:0 4px 14px #2b1b1710}
.directory-rating-overlay>span{color:#c28c19}
.directory-distance{color:var(--brand-pine);background:#e6f0e8;border-color:#1f5d5024}
.directory-service-list,.directory-service-row{border-color:#1f5d501c}
.directory-service-name strong,.directory-service-action>strong{color:var(--brand-charcoal)}
.directory-book-service{background:var(--brand-pine);border-radius:.6rem}
.directory-book-service:hover{background:#17483e}
.directory-empty-state{background:var(--brand-paper);border-color:#1f5d5040}
.directory-empty-state>span{color:var(--brand-pine);background:#e5efe7}
.directory-category-description{max-width:760px;margin:.2rem auto 1.1rem;color:#806f62;line-height:1.7}
.directory-category-faq{max-width:1180px;margin:1.5rem auto;padding:1.5rem 2rem;background:var(--brand-paper);border:1px solid #1f5d5020;border-radius:1rem}
.directory-category-faq h2{margin:0 0 .8rem;color:var(--brand-charcoal);font-family:'Fraunces',Georgia,serif}
.directory-category-faq details{padding:.85rem 0;border-top:1px solid #1f5d5018;color:#66564b}
.directory-category-faq summary{color:var(--brand-charcoal);font-weight:700;cursor:pointer}
.directory-category-faq p{margin:.55rem 0 0;line-height:1.6}
.directory-featured-heading{grid-column:1/-1;padding:.4rem .2rem .1rem;text-align:left}
.directory-featured-heading h3{margin:0;color:var(--brand-charcoal);font-family:'Fraunces',Georgia,serif;font-size:1.35rem}
.directory-featured-heading p{margin:.3rem 0 0;color:#806f62;font-size:.85rem}
.directory-featured-heading.is-secondary{margin-top:.6rem;padding-top:1rem;border-top:1px solid #1f5d5020}
.directory-business-card.is-category-featured{border-color:#c79642;box-shadow:0 .8rem 2rem #c7964219}
@media(max-width:680px){.directory-category-faq{margin:1rem .8rem;padding:1.2rem}.directory-category-description{padding-inline:.4rem}}
.directory-empty-state a{color:var(--brand-pine)}

.institutional-wrap{background:radial-gradient(ellipse at 50% -20%,#dcebe2 0,transparent 42%),linear-gradient(180deg,#fffaf2 0%,#fff4e6 100%)}
.institutional-wrap:before,.institutional-wrap:after{border-color:#1f5d5014}
.institutional-hero-mark{color:var(--brand-pine);border-color:#1f5d5020;background:var(--brand-paper);box-shadow:none}
.institutional-hero-mark svg{stroke:currentColor}
.institutional-hero-faq .institutional-hero-mark,.institutional-hero-terms .institutional-hero-mark,.institutional-hero-privacy .institutional-hero-mark,.institutional-hero-cookies .institutional-hero-mark{color:var(--brand-pine);border-color:#1f5d5020}
.institutional-hero:after{border-color:#1f5d5024;box-shadow:0 0 0 2.4rem #1f5d5007,0 0 0 5rem #1f5d5005}
.institutional-section-heading h2,.institutional-faq-item summary{font-family:'Fraunces',Georgia,serif}
.institutional-faq-item[open] summary,.institutional-inline-cta a{color:var(--brand-pine)}
.institutional-card-index{color:var(--brand-pine);background:#e5efe7}
.institutional-contact-aside{background:var(--brand-pine)}

.public-site.layout-editorial .public-site-nav{justify-content:flex-end;border:0;border-bottom:1px solid #e9e2d6;border-radius:0;background:transparent;box-shadow:none}
.public-site.layout-editorial .public-hero{width:100%;max-width:none;min-height:34rem;margin:0;padding:0;border:0;border-radius:0;background:#f4efe7;box-shadow:none}
.public-site.layout-editorial .public-hero h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(3rem,7vw,6rem);font-weight:500;letter-spacing:-.055em}
@media(max-width:760px){.public-site.layout-editorial .public-hero{width:100%;padding:0}.public-site.layout-editorial .public-site-nav{width:calc(100% - 1.5rem)}}

/* Forboka backoffice: share the public brand without inheriting tenant styling. */
.app-shell { --backoffice-ink:var(--brand-charcoal,#2b1b17); --backoffice-muted:#806f62; --backoffice-line:#1f5d501b; --backoffice-paper:var(--brand-paper,#fffaf2); --backoffice-pine:var(--brand-pine,#1f5d50); --backoffice-coral:var(--brand-coral,#f25c3b); font-family:'DM Sans',ui-sans-serif,system-ui,sans-serif; color:var(--backoffice-ink); background:var(--brand-cream,#fff4e6); }
.app-shell .sidebar { width:16.5rem; background:var(--backoffice-paper); border-color:var(--backoffice-line); box-shadow:8px 0 30px rgba(43,27,23,.025); }
.app-shell .sidebar-brand { padding:1.35rem 1.25rem .8rem; }
.app-shell .sidebar-brand .brand,.app-shell .mobile-topbar .brand { display:flex; align-items:center; gap:.65rem; color:var(--backoffice-ink); font-family:'Fraunces',Georgia,serif; font-size:1.45rem; font-weight:800; letter-spacing:-.045em; }
.app-shell .brand-wordmark { display:inline-flex; color:var(--brand-charcoal,#2b1b17); font-family:'Fraunces',Georgia,serif; font-size:1.45rem; font-style:italic; font-weight:800; letter-spacing:-.055em; line-height:1; }
.app-shell .brand-wordmark span:last-child { color:var(--brand-coral,#f25c3b); }
.app-shell .brand-descriptor { align-self:flex-end; padding-bottom:.1rem; color:var(--backoffice-muted); font-family:'DM Sans',ui-sans-serif,system-ui,sans-serif; font-size:.67rem; font-weight:650; letter-spacing:0; }
.app-shell .sidebar-brand .brand img,.app-shell .mobile-topbar .brand img { display:block; width:2.35rem; height:2.35rem; object-fit:contain; }
.app-shell .brand-subtitle { margin:.4rem 0 0 3rem; color:var(--backoffice-muted); font-size:.7rem; letter-spacing:.025em; }
.app-shell .tenant-switcher { margin:.8rem .9rem 1.1rem; padding:.75rem; background:linear-gradient(135deg,#e7f0e7,#fff4e6); border-color:var(--backoffice-line); border-radius:.9rem; }
.app-shell .tenant-avatar,.app-shell .user-avatar { color:#fff; background:var(--backoffice-pine); border-radius:.7rem; }
.app-shell .sidebar-nav { gap:.25rem; padding:.35rem .7rem; }
.app-shell .nav-section-title { margin:1.1rem .7rem .35rem; color:#a18a77; letter-spacing:.12em; }
.app-shell .nav-item { min-height:2.65rem; gap:.7rem; padding:.55rem .7rem; color:#66564b; border:1px solid transparent; border-radius:.75rem; font-size:.84rem; transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease; }
.app-shell a.nav-item:hover,.app-shell button.nav-item:hover { color:var(--backoffice-pine); background:#eaf1e9; }
.app-shell .nav-item.is-active { color:var(--backoffice-pine); background:#e7f0e7; border-color:#1f5d5018; font-weight:750; }
.app-shell .nav-icon { display:grid; flex:0 0 1.9rem; width:1.9rem; height:1.9rem; place-items:center; color:var(--backoffice-pine); background:#f1f4ed; border-radius:.65rem; font-size:1rem; }
.app-shell .nav-icon svg { width:1.05rem; height:1.05rem; stroke-width:1.8; }
.app-shell .nav-item.is-active .nav-icon { color:#fff; background:var(--backoffice-coral); }
.app-shell .sidebar-footer { padding:.85rem; border-color:var(--backoffice-line); background:#fffaf2; }
.app-shell .user-summary-button strong { color:var(--backoffice-ink); }
.app-shell .main-content { background:linear-gradient(180deg,#fffaf2 0,#fff4e6 34rem,#fff4e6 100%); }
.app-shell .content-container { max-width:82rem; padding:clamp(1.75rem,4vw,3.5rem) clamp(1.25rem,4vw,3.5rem); }
.app-shell .page-heading { margin-bottom:1.75rem; }
.app-shell .page-heading h1 { color:var(--backoffice-ink); font-family:'Fraunces',Georgia,serif; font-size:clamp(2rem,4vw,3.1rem); font-weight:600; letter-spacing:-.045em; }
.app-shell .page-heading .eyebrow { color:var(--backoffice-pine); }
.app-shell .lead,.app-shell .muted { color:var(--backoffice-muted); }
.app-shell .panel,.app-shell .stat-card { border-color:var(--backoffice-line); border-radius:1.1rem; background:var(--backoffice-paper); box-shadow:0 .8rem 2.4rem rgba(43,27,23,.055); }
.app-shell .panel { padding:1.5rem; }
.plan-change-overlay { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:1.25rem; background:rgba(31,38,49,.62); backdrop-filter:blur(5px); }
.plan-change-modal { width:min(100%, 43rem); max-height:min(90vh, 52rem); overflow:auto; padding:clamp(1.25rem,4vw,2.25rem); border:1px solid rgba(255,255,255,.82); border-radius:1.35rem; background:var(--backoffice-paper,#fff); box-shadow:0 28px 90px rgba(15,23,42,.3); color:var(--backoffice-ink,#29221f); }
.plan-change-header { margin-bottom:1.4rem; }
.plan-change-header .eyebrow { margin:0 0 .45rem; color:var(--backoffice-pine,#1f5d50); font-size:.72rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.plan-change-header h2 { margin:0; font-family:'Fraunces',Georgia,serif; font-size:clamp(1.55rem,4vw,2rem); font-weight:600; letter-spacing:-.035em; }
.plan-change-header > p:last-child { margin:.4rem 0 0; color:var(--backoffice-muted,#7c6f65); }
.plan-change-route { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:.75rem; margin-bottom:1rem; padding:1rem; border:1px solid var(--backoffice-line,#e8e2d8); border-radius:1rem; background:linear-gradient(135deg,#f7f2e9,#f1f6f0); }
.plan-change-route > div { display:grid; gap:.25rem; min-width:0; }
.plan-change-route > div span,.plan-change-facts span,.plan-change-price-card > span { color:var(--backoffice-muted,#7c6f65); font-size:.76rem; }
.plan-change-route strong { overflow-wrap:anywhere; font-size:1.12rem; }
.plan-change-arrow { display:grid; place-items:center; width:2rem; height:2rem; border-radius:50%; background:#fff; color:var(--backoffice-pine,#1f5d50); font-size:1.15rem; box-shadow:0 2px 8px rgba(43,27,23,.08); }
.plan-change-facts { display:flex; flex-wrap:wrap; gap:.65rem; margin-bottom:1rem; }
.plan-change-facts > div { display:grid; gap:.2rem; min-width:10rem; padding:.75rem .9rem; border:1px solid var(--backoffice-line,#e8e2d8); border-radius:.8rem; background:#fff; }
.plan-change-facts strong { font-size:.9rem; overflow-wrap:anywhere; }
.plan-change-user-impact { margin:0 0 1rem; padding:1rem; border:1px solid #e5d8c7; border-radius:.9rem; background:#fffaf2; }
.plan-change-user-impact > strong { font-size:.9rem; }
.plan-change-user-impact ul { display:grid; gap:.45rem; margin:.65rem 0; padding:0; list-style:none; }
.plan-change-user-impact li { display:flex; flex-wrap:wrap; gap:.3rem .55rem; font-weight:700; }
.plan-change-user-impact li span,.plan-change-user-impact p { color:var(--backoffice-muted,#7c6f65); font-size:.82rem; font-weight:400; }
.plan-change-user-impact p { margin:.45rem 0 0; }
.plan-change-outcome { display:flex; align-items:flex-start; gap:.8rem; margin-top:1rem; padding:1rem; border:1px solid #f2d1c5; border-radius:.95rem; background:#fff7f3; }
.plan-change-outcome.is-scheduled { border-color:#cbded1; background:#f1f7f1; }
.plan-change-outcome-icon { display:grid; flex:0 0 2.25rem; place-items:center; width:2.25rem; height:2.25rem; border-radius:.75rem; background:#fff; color:var(--backoffice-coral,#f25c3b); font-size:1.15rem; font-weight:800; }
.is-scheduled .plan-change-outcome-icon { color:var(--backoffice-pine,#1f5d50); }
.plan-change-outcome > div { min-width:0; }
.plan-change-outcome > div > strong { display:block; margin:.1rem 0 .3rem; }
.plan-change-outcome p { margin:0; color:#5f544c; font-size:.93rem; line-height:1.55; }
.plan-change-price-grid { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; margin-top:1rem; }
.plan-change-price-card { display:grid; gap:.35rem; padding:1rem; border:1px solid var(--backoffice-line,#e8e2d8); border-radius:.9rem; background:#fff; }
.plan-change-price-card strong { color:var(--backoffice-pine,#1f5d50); font-size:1.25rem; }
.plan-change-note { margin:.75rem 0 0; color:var(--backoffice-muted,#7c6f65); font-size:.8rem; line-height:1.5; }
.plan-change-modal p { line-height:1.6; }
.plan-cancel-dialog[open] { position:fixed; inset:0; width:min(calc(100% - 2rem), 34rem); max-width:calc(100vw - 2rem); max-height:min(90vh, 38rem); margin:auto; overflow:auto; box-sizing:border-box; padding:clamp(1.25rem,4vw,2rem); border:1px solid #e1e6ef; border-radius:1rem; background:#fff; box-shadow:0 24px 80px rgba(0,0,0,.24); }
.plan-cancel-dialog::backdrop { background:rgba(20,27,39,.58); }
.plan-cancel-dialog h2 { margin-top:0; }
.plan-change-actions { display:flex; justify-content:flex-end; gap:.75rem; margin-top:1.5rem; padding-top:1.1rem; border-top:1px solid var(--backoffice-line,#e8e2d8); }
.plan-change-actions form { margin:0; }
.plan-change-footer { display:grid; gap:1.15rem; margin-top:1.5rem; padding-top:1.2rem; border-top:1px solid var(--backoffice-line,#e8e2d8); }
.plan-change-confirm-form { margin:0; }
.plan-terms-acceptance { display:flex; align-items:flex-start; gap:.7rem; color:var(--backoffice-muted,#655b55); font-size:.9rem; line-height:1.55; cursor:pointer; }
.plan-terms-acceptance input[type="checkbox"] { flex:0 0 1.1rem; width:1.1rem; height:1.1rem; margin:.2rem 0 0; accent-color:var(--backoffice-green,#1e6255); }
.plan-terms-acceptance span { min-width:0; }
.plan-terms-acceptance small { display:block; margin-top:.3rem; color:var(--backoffice-pine,#1f5d50); font-size:.78rem; font-weight:650; }
.plan-terms-acceptance a { color:var(--backoffice-green,#1e6255); font-weight:650; text-underline-offset:.15em; }
.plan-change-action-buttons { display:flex; justify-content:flex-end; align-items:center; gap:.75rem; }
.plan-change-action-buttons form { margin:0; }
.plan-saved-payment-method { display:grid; grid-template-columns:1fr auto; gap:.35rem 1rem; align-items:center; padding:1rem 1.1rem; border:1px solid var(--backoffice-line,#e8e2d8); border-radius:.9rem; background:rgba(255,255,255,.65); }
.plan-saved-payment-method strong { color:var(--backoffice-ink,#29221f); font-size:.92rem; }
.plan-saved-payment-method span { color:var(--backoffice-pine,#1f5d50); font-weight:700; }
.plan-saved-payment-method p { grid-column:1/-1; margin:.1rem 0 0; color:var(--backoffice-muted,#7c6f65); font-size:.85rem; }
@media (max-width: 520px) { .plan-change-overlay { padding:.65rem; } .plan-change-modal { border-radius:1.05rem; } .plan-change-route { gap:.45rem; padding:.75rem; } .plan-change-route strong { font-size:.98rem; } .plan-change-price-grid { grid-template-columns:1fr; } .plan-change-actions { flex-direction:column-reverse; } .plan-change-actions form,.plan-change-actions button { width:100%; } .plan-change-action-buttons { flex-direction:column-reverse; align-items:stretch; } .plan-change-action-buttons form,.plan-change-action-buttons button { width:100%; } }
.app-shell .table-panel { padding:0; }
.app-shell .panel h2 { color:var(--backoffice-ink); font-family:'DM Sans',ui-sans-serif,system-ui,sans-serif; font-weight:700; }
.app-shell .stat-card { padding:1.35rem; }
.app-shell .stat-card strong { color:var(--backoffice-ink); font-family:'Fraunces',Georgia,serif; font-weight:600; }
.app-shell .stat-label { color:var(--backoffice-muted); }
.app-shell .button { border-radius:.75rem; background:var(--backoffice-coral); box-shadow:0 .35rem .8rem #f25c3b24; font-weight:700; transition:transform .16s ease,background .16s ease,box-shadow .16s ease; }
.app-shell .button:hover { transform:translateY(-1px); background:#dc4d31; box-shadow:0 .5rem 1rem #f25c3b30; }
.app-shell .button.button-secondary { color:var(--backoffice-pine); background:#e7f0e7; border:1px solid #1f5d5020; box-shadow:none; }
.app-shell input,.app-shell select,.app-shell textarea { border-color:#1f5d5028; border-radius:.65rem; background:#fff; }
.app-shell input:focus,.app-shell select:focus,.app-shell textarea:focus { outline:0; border-color:var(--backoffice-pine); box-shadow:0 0 0 3px #1f5d5018; }
.app-shell th { color:#806f62; font-size:.7rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.app-shell th,.app-shell td { border-color:#1f5d5014; }
.app-shell tr:hover td { background:#fffdf8; }
.app-shell .mobile-topbar { background:var(--backoffice-paper); border-color:var(--backoffice-line); }
.app-shell .mobile-menu-toggle { display:none; align-items:center; gap:.45rem; padding:.5rem .65rem; color:var(--backoffice-pine); border:1px solid var(--backoffice-line); border-radius:.65rem; background:#fff; font:inherit; font-size:.82rem; font-weight:700; }
.app-shell .mobile-menu-toggle svg { width:1.1rem; height:1.1rem; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.app-shell .sidebar .language-switcher { background:#f1e8d8; }
.app-shell .sidebar .language-switcher a[aria-current="page"] { color:var(--backoffice-pine); }
.app-shell .flash { border:1px solid transparent; border-radius:.8rem; box-shadow:0 .45rem 1.4rem rgba(43,27,23,.045); }
.app-shell .flash-success { border-color:#1f5d5020; background:#e7f0e7; }
.app-shell .flash-error { border-color:#f25c3b2c; background:#ffebe4; }
.app-shell .customer-note-form { display:grid; gap:.4rem; min-width:13rem; }
.app-shell .customer-note-form textarea { min-width:13rem; resize:vertical; }
.app-shell .customer-history-row td { padding-top:0; }
.app-shell .customer-history-row details { color:var(--backoffice-muted); font-size:.82rem; }
.app-shell .customer-history { display:grid; gap:.35rem; padding:.7rem 0 .3rem; }
.app-shell .customer-blocked { color:#b42318; font-weight:700; }
.app-shell .customer-agenda-stats { color:var(--backoffice-muted); }
.app-shell .customer-agenda-stats a { margin-left:.3rem; color:var(--backoffice-pine); font-weight:700; }
.app-shell .customer-filters { display:grid; grid-template-columns:minmax(12rem,1fr) minmax(10rem,.45fr) auto auto; align-items:end; gap:.75rem; margin-bottom:.75rem; }
.app-shell .customer-filters label { display:grid; gap:.35rem; color:var(--backoffice-muted); font-size:.78rem; font-weight:700; }
.app-shell .customer-filters input,.app-shell .customer-filters select { width:100%; min-width:0; }
.app-shell .customer-results { margin:.25rem 0 .75rem; color:var(--backoffice-muted); font-size:.82rem; }
.app-shell .customer-pagination { display:flex; align-items:center; justify-content:center; gap:1rem; margin:1.25rem 0; color:var(--backoffice-muted); }
.app-shell .customer-list { display:grid; gap:1rem; width:100%; min-width:0; }
.app-shell .customer-card { min-width:0; padding:1.2rem 1.35rem; border:1px solid var(--backoffice-line); border-radius:1rem; background:var(--backoffice-paper); box-shadow:0 .6rem 1.8rem rgba(43,27,23,.045); }
.app-shell .customer-card-header { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:1.25rem; }
.app-shell .customer-card-identity { display:grid; justify-items:start; gap:.25rem; min-width:0; }
.app-shell .customer-card-identity h2 { margin:0 0 .15rem; color:var(--backoffice-ink); font-size:1.15rem; }
.app-shell .customer-email,.app-shell .customer-phone { max-width:100%; overflow-wrap:anywhere; color:var(--backoffice-muted); }
.app-shell .customer-blocked { color:#b42318; font-size:.8rem; font-weight:700; }
.app-shell .customer-favorite-star { color:#d99a16; font-size:1.05em; }
.app-shell .customer-metrics { display:flex; gap:.65rem; }
.app-shell .customer-metrics div { display:grid; justify-items:center; min-width:7.25rem; padding:.65rem .85rem; border:1px solid var(--backoffice-line); border-radius:.75rem; background:#fffdf8; }
.app-shell .customer-metrics strong { color:var(--backoffice-pine); font-size:1.15rem; }
.app-shell .customer-metrics span { color:var(--backoffice-muted); font-size:.72rem; text-align:center; }
.app-shell .customer-card-tools { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:1.25rem; margin-top:1rem; }
.app-shell .customer-note-form { display:grid; justify-items:start; gap:.4rem; min-width:0; }
.app-shell .customer-note-form label { display:grid; gap:.35rem; width:min(100%,34rem); color:var(--backoffice-muted); font-size:.75rem; font-weight:750; }
.app-shell .customer-note-form textarea { width:100%; min-width:0; resize:vertical; }
.app-shell .customer-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.45rem 1rem; max-width:32rem; }
.app-shell .customer-actions form { display:flex; }
.app-shell .customer-actions .button-link { white-space:normal; text-align:center; }
.app-shell .customer-history-details { margin-top:1rem; padding-top:.75rem; border-top:1px solid var(--backoffice-line); color:var(--backoffice-muted); font-size:.83rem; }
.app-shell .customer-history { display:grid; gap:.35rem; padding:.75rem 0 .25rem; }
.app-shell .customer-favorite-indicator { color:#b78112; font-weight:700; }
.app-shell .dashboard-stat-link { color:inherit; text-decoration:none; transition:transform .16s ease,border-color .16s ease; }
.app-shell .dashboard-stat-link:hover { transform:translateY(-2px); border-color:#1f5d5045; }
.app-shell .dashboard-stat-link .stat-note { color:var(--backoffice-muted); }
.app-shell .dashboard-operations { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(17rem,.85fr); align-items:start; gap:1rem; margin-top:1rem; }
.app-shell .dashboard-appointments,.app-shell .dashboard-actions,.app-shell .dashboard-ready { min-width:0; }
.app-shell .dashboard-appointments .panel-header { margin-bottom:1rem; }
.app-shell .dashboard-appointments .panel-header p { margin:.25rem 0 0; font-size:.78rem; }
.app-shell .dashboard-panel-link { flex:none; color:var(--backoffice-pine); font-size:.78rem; }
.app-shell .dashboard-appointment-list { display:grid; }
.app-shell .dashboard-appointment-row { display:grid; grid-template-columns:4.5rem minmax(0,1fr) auto; align-items:center; gap:.85rem; padding:.8rem .35rem; color:var(--backoffice-ink); text-decoration:none; border-top:1px solid var(--backoffice-line); }
.app-shell .dashboard-appointment-row:hover { background:#fffdf8; }
.app-shell .dashboard-appointment-row time { display:grid; gap:.1rem; color:var(--backoffice-pine); font-size:.78rem; }
.app-shell .dashboard-appointment-row time strong { font-size:.9rem; }
.app-shell .dashboard-appointment-details { display:grid; gap:.2rem; min-width:0; }
.app-shell .dashboard-appointment-details strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.app-shell .dashboard-appointment-details small { overflow:hidden; color:var(--backoffice-muted); text-overflow:ellipsis; white-space:nowrap; }
.app-shell .dashboard-appointment-arrow { color:var(--backoffice-pine); }
.app-shell .dashboard-empty { display:grid; justify-items:start; gap:.6rem; padding:1rem 0 .25rem; }
.app-shell .dashboard-empty p { margin:0; color:var(--backoffice-muted); font-size:.84rem; }
.app-shell .dashboard-side-column { display:grid; gap:1rem; min-width:0; }
.app-shell .dashboard-actions h2 { margin:0 0 .65rem; }
.app-shell .dashboard-actions nav { display:grid; }
.app-shell .dashboard-actions nav a { display:grid; grid-template-columns:1.6rem 1fr auto; align-items:center; gap:.6rem; padding:.7rem .1rem; color:var(--backoffice-ink); text-decoration:none; border-top:1px solid var(--backoffice-line); font-size:.84rem; font-weight:650; }
.app-shell .dashboard-actions nav a span,.app-shell .dashboard-actions nav a b { color:var(--backoffice-pine); }
.app-shell .dashboard-actions nav a:hover { color:var(--backoffice-pine); }
.app-shell .dashboard-ready { display:flex; align-items:flex-start; gap:.8rem; }
.app-shell .dashboard-ready > span { display:grid; flex:0 0 2rem; height:2rem; place-items:center; color:#176b54; background:#e4f3e8; border-radius:50%; font-weight:800; }
.app-shell .dashboard-ready h2 { margin:0 0 .35rem; }
.app-shell .dashboard-ready p { margin:0 0 .65rem; color:var(--backoffice-muted); font-size:.82rem; line-height:1.5; }
.app-shell .dashboard-ready a { color:var(--backoffice-pine); font-size:.82rem; font-weight:750; text-decoration:none; }
@media(max-width:760px) {
 .app-shell .dashboard-operations { grid-template-columns:1fr; }
 .app-shell .sidebar { width:min(18rem,88vw); }
 .app-shell .mobile-topbar { display:grid; grid-template-columns:1fr auto 1fr; }
 .app-shell .mobile-menu-toggle { display:inline-flex; }
 .app-shell .mobile-topbar .brand { justify-self:center; font-size:1.15rem; }
 .app-shell .mobile-topbar .brand img { width:2rem; height:2rem; }
 .app-shell .content-container { padding:1.35rem 1rem 2.5rem; }
 .app-shell .page-heading { align-items:flex-start; flex-direction:column; gap:.85rem; }
 .app-shell .panel { padding:1.1rem; }
 .app-shell .customer-filters { grid-template-columns:minmax(0,1fr); }
 .app-shell .table-panel { padding:0; }
 .app-shell .customer-card { padding:1rem; }
 .app-shell .customer-card-header,.app-shell .customer-card-tools { grid-template-columns:minmax(0,1fr); }
 .app-shell .customer-metrics { justify-content:flex-start; }
 .app-shell .customer-metrics div { min-width:0; flex:1; }
 .app-shell .customer-actions { justify-content:flex-start; }
}

.legal-document { display:grid; gap:1.15rem; }
.legal-document .institutional-section-heading { margin-bottom:.2rem; }
.legal-document-section { padding:1.25rem 1.4rem; border:1px solid var(--line, #e6e2d8); border-radius:1rem; background:rgba(255,255,255,.58); }
.legal-document-section h2 { margin:0 0 .65rem; font-size:1.12rem; }
.legal-document-section p { margin:0; color:var(--muted, #776e66); line-height:1.75; }
.legal-document-updated { margin:0; color:var(--muted, #776e66); font-size:.85rem; }
@media(max-width:600px) { .legal-document-section { padding:1rem; } }

/* Keep the consent-gated map iframe flush with its entire placeholder area. */
.public-location-map { position:relative; display:grid; align-content:center; justify-items:center; box-sizing:border-box; width:100%; height:18rem; min-height:18rem; padding:0; }
.public-location-map iframe { position:absolute; inset:0; box-sizing:border-box; width:100%; height:100%; border:0; border-radius:inherit; }
@media(max-width:600px) { .public-location-map { height:14rem; min-height:14rem; } }

.password-visibility-field { position:relative; display:block; width:100%; }
.password-visibility-field input { box-sizing:border-box; width:100%; padding-right:3rem; }
.password-visibility-toggle { position:absolute; top:50%; right:.55rem; display:grid; width:2rem; height:2rem; padding:0; place-items:center; transform:translateY(-50%); border:0; border-radius:.5rem; background:transparent; color:var(--muted, #776e66); cursor:pointer; }
.password-visibility-toggle:hover, .password-visibility-toggle:focus-visible { background:rgba(31,96,80,.09); color:var(--brand-pine, #1f6050); }
.password-visibility-toggle:focus-visible { outline:2px solid var(--brand-pine, #1f6050); outline-offset:1px; }
.password-visibility-toggle svg { width:1.2rem; height:1.2rem; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }

.plan-feature-preview { display:grid; gap:1rem; margin:1.5rem 0; padding:1.25rem; border:1px solid #dedbd1; border-radius:1rem; background:linear-gradient(145deg,#fffdf8,#f0f5f0); }
.plan-feature-preview-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.plan-feature-preview-heading h2 { margin:.2rem 0 .35rem; font-size:1.25rem; }
.plan-feature-preview-heading p { margin:0; color:var(--muted,#776e66); }
.plan-feature-badge { display:inline-flex; flex-shrink:0; padding:.5rem .75rem; border-radius:999px; background:#e5f0e8; color:#1f6050; font-size:.8rem; font-weight:700; }
.preview-stat-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }
.preview-stat-grid article { display:grid; gap:.4rem; padding:1rem; border:1px solid #e6e6df; border-radius:.75rem; background:#fff; }
.preview-stat-grid article span,.preview-stat-grid article small { color:var(--muted,#776e66); font-size:.82rem; }
.preview-stat-grid article strong { color:#1f6050; font-size:1.35rem; }
.preview-stat-grid article small { color:#42815d; }
.preview-chart { display:flex; align-items:end; gap:.45rem; height:6rem; padding:.75rem 1rem; border:1px solid #e6e6df; border-radius:.75rem; background:#fff; }
.preview-chart span { flex:1; height:var(--preview-bar); border-radius:.35rem .35rem 0 0; background:linear-gradient(#6d63ff,#1f6050); opacity:.72; }
.preview-disclaimer { margin:0; color:var(--muted,#776e66); font-size:.8rem; }
.site-upgrade-preview-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr)); gap:1rem; }
.site-upgrade-preview-grid article { display:grid; align-content:start; gap:.8rem; }
.site-feature-mock,.site-feature-mock-footer { overflow:hidden; padding:1rem; border:1px solid #e1e5e0; border-radius:.8rem; background:#fff; }
.site-feature-mock-top { display:flex; gap:.25rem; padding-bottom:.8rem; border-bottom:1px solid #eee; }
.site-feature-mock-top i { width:.45rem; height:.45rem; border-radius:50%; background:#d9ded9; }
.site-feature-mock-hero { display:grid; gap:.35rem; min-height:6rem; align-content:center; margin:.8rem 0; padding:1rem; border-radius:.6rem; background:linear-gradient(120deg,#e5f1e7,#f8e7dd); }
.site-feature-mock-hero span,.site-feature-mock-footer span { color:var(--muted,#776e66); font-size:.75rem; }
.site-feature-mock-hero strong { color:#1f6050; font-family:Georgia,serif; font-size:1.2rem; }
.site-feature-mock-hero i,.site-feature-mock-sections i { display:block; height:.4rem; border-radius:1rem; background:#d9e3dc; }
.site-feature-mock-hero i { width:55%; }
.site-feature-mock-sections { display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem; }
.site-feature-mock-footer { display:grid; gap:.65rem; min-height:7.8rem; align-content:center; background:#1f6050; color:white; }
.site-feature-mock-footer strong { font-family:Georgia,serif; font-size:1.1rem; }
.site-feature-mock-footer span { padding-top:.4rem; border-top:1px solid #ffffff40; color:#e3efe7; }
.theme-feature-preview { display:flex; align-items:center; gap:.45rem; margin-top:.5rem; }
.theme-feature-preview i { width:1.35rem; height:1.35rem; border-radius:.35rem; background:#635bff; }
.theme-feature-preview i:nth-child(2) { background:#1f6050; }
.theme-feature-preview i:nth-child(3) { background:#f45b3c; }
.theme-feature-preview strong { margin-left:.25rem; color:var(--muted,#776e66); font-size:.8rem; }
.plan-capacity-notice { display:grid; justify-items:start; gap:.75rem; padding:1rem 1.2rem; border:1px solid #e7d6a7; border-radius:.85rem; background:#fff8e8; color:#604b20; }
.plan-capacity-notice p { margin:0; }
@media(max-width:700px) { .preview-stat-grid { grid-template-columns:1fr; } .plan-feature-preview-heading { flex-direction:column; } }

.app-shell .dashboard-share { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:2rem; margin:1rem 0; padding:clamp(1.1rem,2.5vw,1.8rem); background:linear-gradient(120deg,#fffaf2 0%,#f0f5ef 100%); }
.app-shell .dashboard-share-copy { min-width:0; }
.app-shell .dashboard-share h2 { margin:.25rem 0 .45rem; font-family:var(--font-display,inherit); font-size:clamp(1.35rem,2vw,1.8rem); }
.app-shell .dashboard-share-copy > p:not(.eyebrow):not(.dashboard-share-status) { max-width:42rem; margin:0 0 1rem; color:var(--backoffice-muted); }
.app-shell .dashboard-share-link { display:flex; align-items:center; gap:.65rem; max-width:48rem; padding:.45rem; border:1px solid var(--backoffice-line); border-radius:12px; background:#fff; }
.app-shell .dashboard-share-link > a { flex:1; min-width:0; overflow:hidden; padding-left:.45rem; color:var(--backoffice-pine); text-overflow:ellipsis; white-space:nowrap; }
.app-shell .dashboard-share-link .button,.app-shell .dashboard-share-actions .button { white-space:nowrap; }
.app-shell .dashboard-share-status { min-height:1.2em; margin:.25rem 0; color:var(--backoffice-pine); font-size:.8rem; }
.app-shell .dashboard-share-actions { display:flex; flex-wrap:wrap; gap:.6rem; }
.app-shell .dashboard-share-qr { display:grid; justify-items:center; gap:.5rem; padding:.75rem; border:1px solid var(--backoffice-line); border-radius:16px; background:#fff; color:var(--backoffice-muted); font-size:.72rem; text-align:center; }
.app-shell .dashboard-share-qr img { display:block; width:clamp(7rem,14vw,9rem); height:auto; image-rendering:pixelated; }
@media(max-width:640px) { .app-shell .dashboard-share { grid-template-columns:1fr; gap:1rem; } .app-shell .dashboard-share-qr { grid-row:1; justify-self:start; } .app-shell .dashboard-share-link { align-items:stretch; flex-direction:column; padding:.65rem; } .app-shell .dashboard-share-link > a { padding:.25rem; } .app-shell .dashboard-share-link .button,.app-shell .dashboard-share-actions .button { justify-content:center; width:100%; } }
