:root {
  color-scheme: dark;
  --bg: #050505;
  --bg-soft: #111111;
  --text: #ffffff;
  --muted: #a1a1aa;
  --surface: rgba(17, 17, 17, 0.9);
  --surface-raised: rgba(197, 160, 89, 0.05);
  --line: rgba(197, 160, 89, 0.2);
  --line-strong: rgba(197, 160, 89, 0.4);
  --accent: #c5a059;
  --accent-hover: #d9b775;
  --accent-pressed: #b08d46;
  --accent-text: #050505;
  --danger: #ff6b5f;
  --success: #5caa81;
  --warning: #d2b36d;
  --placeholder: #71717a;
  --input-bg: rgba(0, 0, 0, 0.5);
  --input-focus-bg: rgba(0, 0, 0, 0.72);
  --sidebar-bg: #0b0b0b;
  --topbar-bg: rgba(5,5,5,.9);
  --modal-bg: #111111;
  --menu-bg: #151515;
  --body-glow: radial-gradient(circle at top right, rgba(197, 160, 89, 0.16), transparent 340px), linear-gradient(180deg, rgba(197, 160, 89, 0.06), transparent 280px);
  --focus: #c5a059;
  --gold-glow: 0 0 16px rgba(197, 160, 89, 0.35);
  --button-hover-shadow: 0 0 24px rgba(197, 160, 89, 0.55);
  --soft-hover: rgba(197, 160, 89, 0.1);
  --subtle-fill: rgba(0, 0, 0, 0.22);
  --danger-soft-text: #ffd0cc;
  --badge-soft: rgba(229, 184, 91, 0.12);
  --checked-soft: rgba(229, 184, 91, 0.14);
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --surface-shadow: 0 8px 24px rgba(0,0,0,.12);
  --surface-shadow-raised: 0 18px 48px rgba(0,0,0,.24);
  --ease-standard: 160ms cubic-bezier(.2,.8,.2,1);
}

@media (max-width: 700px) {
  .public-overview { padding-top: 0; }
  .public-overview > #public-professionals { margin-top: -88px; padding-top: 54px; padding-bottom: 20px; }
  .public-professional-card .public-professional-placeholder,
  .public-professional-card .public-professional-media { width: clamp(72px, 22vw, 88px); height: clamp(72px, 22vw, 88px); }
  .public-team-booking { margin-top: 26px; }
  #public-services { margin-top: 48px !important; }
html:has(body.public-booking-body) { overflow-x: hidden; }
html:has(body.public-booking-body) { scroll-behavior: smooth; }
.public-template-minimal { --public-radius: 10px; }
.public-template-minimal .public-site-hero { background-image: none !important; background-color: var(--bg); color: var(--text); }
.public-template-minimal .public-site-hero::before, .public-template-minimal .public-site-hero::after { display: none; background: none; }
.public-template-minimal .public-site-hero-copy { max-width: 720px; }
.public-template-modern { --public-radius: 22px; }
.public-template-modern .public-site-hero { filter: saturate(1.12); }
.public-template-modern .public-service-row, .public-template-modern .public-review { border-radius: 14px; padding-inline: 18px; background: color-mix(in srgb, var(--surface) 72%, transparent); }
.public-template-premium .public-site-hero { min-height: min(760px, 88vh); background-position: center; }
.public-template-premium .public-site-hero-copy { padding-block: 12vh; }
.public-template-premium .public-site-hero h1 { font-family: Georgia, 'Times New Roman', serif; font-weight: 500; letter-spacing: -.06em; }
.public-template-premium .public-overview-section { border-top: 1px solid color-mix(in srgb, var(--accent) 28%, transparent); }
.public-template-minimal { background: var(--bg); color: var(--text); }
.public-template-minimal .public-site-header, .public-template-minimal .public-site-footer { background: var(--bg); color: var(--text); border-color: var(--line); }
.public-template-minimal .public-site-hero { min-height: 620px; display: grid; align-items: center; padding: 100px 7vw; border-bottom: 1px solid var(--line); background-color: var(--bg); }
.public-template-minimal .public-site-hero-copy { max-width: 760px; padding: 0; }.public-template-minimal .public-site-hero h1 { color: var(--text); font-size: clamp(3.4rem, 8vw, 7rem); font-weight: 650; letter-spacing: -.08em; }.public-template-minimal .public-site-hero p { color: var(--muted); }
.public-template-minimal .public-overview { background: var(--bg); }.public-template-minimal .public-overview-section { border-top: 1px solid var(--line); }.public-template-minimal .public-service-row, .public-template-minimal .public-review { color: var(--text); border-color: var(--line); background: transparent; }.public-template-minimal .public-hero-cta, .public-template-minimal .public-header-cta { background: var(--accent); color: var(--accent-text); }
.public-template-modern { background: var(--bg); color: var(--text); }.public-template-modern .public-site-header { background: color-mix(in srgb, var(--surface) 88%, transparent); }.public-template-modern .public-site-hero { min-height: 680px; border-radius: 0 0 42px 42px; background-image: linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.62)), var(--public-cover); }.public-template-modern .public-site-hero-copy { max-width: 620px; }.public-template-modern .public-site-hero h1 { font-size: clamp(3rem, 7vw, 6.6rem); letter-spacing: -.08em; }.public-template-modern .public-overview { padding-top: 56px; }.public-template-modern .public-professional-card, .public-template-modern .public-service-row, .public-template-modern .public-review { border: 1px solid var(--line); background: color-mix(in srgb, var(--surface) 92%, transparent); backdrop-filter: blur(12px); }.public-template-modern .public-professional-card { padding: 14px; border-radius: 20px; }.public-template-modern .public-final-cta { border-radius: 28px; }
@media (max-width: 700px) { .public-template-minimal .public-site-hero { min-height: 560px; padding: 100px 24px 64px; }.public-template-minimal .public-site-hero h1 { font-size: clamp(3rem, 15vw, 5rem); }.public-template-modern .public-site-hero { min-height: 600px; border-radius: 0 0 28px 28px; } }
.public-template-hero-editorial, .public-template-hero-minimal, .public-template-hero-modern { position: relative; z-index: 1; }
.public-template-hero-editorial { width: min(620px, 72%); margin-left: 8vw; }.public-template-hero-editorial h1 { margin: 14px 0 22px; font-size: clamp(4rem, 9vw, 8.5rem); line-height: .86; text-transform: uppercase; }.public-template-hero-editorial p:not(.eyebrow) { max-width: 34ch; }
.public-template-hero-kicker { position: absolute; top: 16%; right: 7%; writing-mode: vertical-rl; letter-spacing: .22em; font-size: .7rem; opacity: .72; }.public-template-hero-index { position: absolute; right: 8%; bottom: 13%; font-size: .7rem; letter-spacing: .18em; opacity: .7; }
.public-template-hero-minimal { display: grid; justify-items: center; max-width: 680px; margin: 0 auto; text-align: center; }.public-template-hero-minimal h1 { margin: 18px 0; font-size: clamp(3.5rem, 8vw, 7rem); line-height: .94; letter-spacing: -.09em; }.public-template-hero-minimal p:not(.eyebrow) { max-width: 38ch; margin: 0 auto 28px; }
.public-template-hero-modern { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, .48fr); align-items: end; gap: 36px; width: min(1120px, 100%); margin: auto; }.public-template-hero-modern h1 { margin: 14px 0 20px; font-size: clamp(3.4rem, 7vw, 7rem); line-height: .88; letter-spacing: -.08em; }.public-template-bento { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }.public-template-bento span { min-height: 100px; display: grid; align-content: end; padding: 16px; border: 1px solid rgba(255,255,255,.18); border-radius: 18px; background: rgba(255,255,255,.1); backdrop-filter: blur(14px); }.public-template-bento span:last-child { grid-column: 1 / -1; }.public-template-bento b { display: block; font-size: 1.7rem; color: var(--accent); }
.public-template-premium #public-professionals { order: 4; }.public-template-premium #public-services { order: 3; }.public-template-premium #public-reviews { order: 5; }.public-template-minimal #public-services { order: 1; }.public-template-minimal #public-professionals { order: 2; }.public-template-minimal #public-gallery { order: 3; }.public-template-modern #public-professionals { order: 1; }.public-template-modern #public-services { order: 2; }.public-template-modern #public-reviews { order: 4; }
@media (max-width: 700px) { .public-template-hero-editorial { width: 100%; margin: 0; }.public-template-hero-editorial h1 { font-size: clamp(3.8rem, 18vw, 6rem); }.public-template-hero-kicker { top: 10%; right: 8%; }.public-template-hero-modern { grid-template-columns: 1fr; align-items: start; }.public-template-hero-modern h1 { font-size: clamp(3.2rem, 15vw, 5.6rem); }.public-template-bento { grid-template-columns: repeat(3, 1fr); }.public-template-bento span { min-height: 82px; padding: 11px; font-size: .72rem; }.public-template-bento span:last-child { grid-column: auto; }.public-template-bento b { font-size: 1.25rem; } }
/* Sidebar: clear hierarchy, active state, and comfortable navigation. */
.dashboard-layout .sidebar{width:252px;gap:26px;padding:24px 14px;background:var(--sidebar-bg);border-right:1px solid color-mix(in srgb,var(--line) 78%,transparent);box-shadow:4px 0 18px rgba(0,0,0,.06)}.dashboard-layout .brand{display:flex;align-items:center;min-height:44px;padding:0 12px;border-radius:10px;color:var(--text);font-size:.92rem;letter-spacing:.1em}.dashboard-layout .brand:hover{background:var(--surface-raised);text-decoration:none}.dashboard-layout .sidebar nav{gap:5px;min-height:0;overflow-y:auto;padding:2px 0;scrollbar-width:thin}.dashboard-layout .nav-item{position:relative;min-height:46px;padding:0 13px;border:1px solid transparent;border-radius:10px;color:var(--muted);font-weight:650;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.dashboard-layout .nav-item svg{width:19px;height:19px;opacity:.82}.dashboard-layout .nav-item:hover{border-color:var(--line);background:var(--surface-raised);color:var(--text);transform:translateX(1px)}.dashboard-layout .nav-item.active{border-color:color-mix(in srgb,var(--accent) 58%,var(--line));background:color-mix(in srgb,var(--accent) 10%,var(--surface-raised));color:var(--text);box-shadow:0 1px 4px rgba(0,0,0,.08)}.dashboard-layout .nav-item.active::before{left:-1px;top:8px;bottom:8px;width:3px}.dashboard-layout .nav-item.active svg{color:var(--accent);opacity:1}.dashboard-layout .nav-item:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.dashboard-layout .logout-button{margin-top:auto;border-top-color:transparent}.dashboard-layout .logout-button:hover{color:var(--danger-soft-text);border-color:color-mix(in srgb,var(--danger) 35%,var(--line));background:color-mix(in srgb,var(--danger) 8%,var(--surface-raised))}.dashboard-layout.sidebar-collapsed .sidebar{width:72px;padding-inline:10px}.dashboard-layout.sidebar-collapsed .brand{justify-content:center;padding-inline:0;font-size:0}.dashboard-layout.sidebar-collapsed .brand::first-letter{font-size:1rem}.dashboard-layout.sidebar-collapsed .nav-item{justify-content:center;padding-inline:0}.dashboard-layout.sidebar-collapsed .nav-item.active::before{left:0}.dashboard-layout.sidebar-collapsed .nav-item:hover{transform:none}.dashboard-layout.sidebar-collapsed .logout-button{justify-content:center}.dashboard-layout .drawer-backdrop{backdrop-filter:blur(2px)}@media(max-width:700px){.dashboard-layout .sidebar{box-shadow:12px 0 30px rgba(0,0,0,.2)}.dashboard-layout.drawer-open .nav-item{min-height:48px}.dashboard-layout .nav-item:hover{transform:none}}

/* Appearance: focused theme selection and visual customization. */
.appearance-page{display:grid;gap:20px;width:100%;max-width:none}.appearance-page .services-heading{margin-bottom:0}.appearance-page .theme-grid{gap:16px}.appearance-page .theme-card{gap:16px;padding:20px;border-radius:15px;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.04);transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.appearance-page .theme-card:hover{border-color:var(--line-strong);transform:translateY(-1px)}.appearance-page .theme-card.selected{border-color:var(--accent);background:var(--surface);box-shadow:0 1px 4px rgba(0,0,0,.1),var(--gold-glow)}.appearance-page .theme-card.previewing{outline:2px solid var(--accent);outline-offset:3px}.appearance-page .theme-card header span{border-color:var(--accent);background:var(--bg-soft)}.appearance-page .theme-swatches i{width:36px;height:36px}.appearance-page .theme-mini-preview{min-height:132px;border-radius:12px}.appearance-page .theme-card footer{padding-top:14px;border-top:1px solid var(--line)}.appearance-page .theme-card footer button{min-height:42px;border-radius:9px}.appearance-page .appearance-public-media{gap:20px;margin-top:0;padding:20px;border-radius:15px;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.04)}.appearance-page .appearance-public-media h2{letter-spacing:-.015em}.appearance-page .public-media-form{gap:16px}.appearance-page .public-media-form label{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft)}.appearance-page .public-media-form input{margin-top:4px}.appearance-page .public-media-preview{border-radius:12px}.appearance-page .public-media-actions{padding-top:4px}.appearance-page .public-media-actions a{border-radius:9px}.appearance-page button:focus-visible,.appearance-page input:focus-visible,.appearance-page select:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.appearance-page #appearance-feedback:empty,.appearance-page #appearance-error:empty{display:none}.theme-customizer .theme-color-control{border-radius:10px;background:var(--bg-soft)}.theme-customizer .theme-style-grid{gap:14px}.theme-customizer form>footer{border-top:1px solid var(--line);padding-top:16px}.theme-customizer select{min-height:44px;border-radius:9px}@media(max-width:700px){.appearance-page{gap:16px}.appearance-page .theme-card,.appearance-page .appearance-public-media{padding:16px}.appearance-page .theme-card footer button{flex:1 1 120px}.appearance-page .public-media-actions{align-items:stretch;flex-direction:column}.appearance-page .public-media-actions button,.appearance-page .public-media-actions a{width:100%}}
.appearance-theme-save{position:sticky;bottom:12px;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);box-shadow:0 8px 24px rgba(0,0,0,.12)}.appearance-theme-save p{margin:0;color:var(--muted);line-height:1.45}.appearance-theme-save strong{color:var(--text)}.appearance-theme-save button{flex:none;width:auto;min-width:132px;min-height:44px;margin:0;padding:0 16px}@media(max-width:600px){.appearance-theme-save{align-items:stretch;flex-direction:column}.appearance-theme-save button{width:100%}}
.appearance-jump-nav{position:sticky;top:8px;z-index:5;display:flex;flex-flow:row nowrap;align-items:center;gap:6px;width:max-content;max-width:100%;overflow-x:auto;padding:5px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:0 4px 16px rgba(0,0,0,.08);scrollbar-width:thin}
.appearance-jump-nav > button{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:auto;min-width:max-content;min-height:42px;margin:0;padding:0 15px;border:1px solid transparent;border-radius:9px;background-color:transparent;color:var(--muted);box-shadow:none;font-weight:700;white-space:nowrap}
.appearance-jump-nav button:hover{border-color:var(--line);background:var(--bg-soft);color:var(--text);box-shadow:none}
.appearance-jump-nav button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.appearance-theme-section,.appearance-public-model,.appearance-public-media{scroll-margin-top:86px}
.appearance-theme-section{display:grid;gap:14px}
.appearance-theme-section .appearance-theme-save{position:relative;inset:auto;z-index:auto}
.appearance-general-feedback:not(:empty){margin:0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text)}
.appearance-public-model-card{border-radius:15px;box-shadow:0 1px 3px rgba(0,0,0,.04);transition:border-color .18s ease,box-shadow .18s ease}
.appearance-public-model-card:hover{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));box-shadow:0 5px 16px rgba(0,0,0,.06)}
.appearance-public-model-actions a:focus-visible,.appearance-public-media :is(a,button,input):focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.appearance-page .theme-card footer button{min-height:46px}
.appearance-page .theme-card :is(button,input,select):focus-visible{outline:3px solid var(--focus);outline-offset:2px}
@media(max-width:700px){.appearance-jump-nav{top:4px;width:100%;box-sizing:border-box}.appearance-jump-nav > button{flex:0 0 auto;min-width:max-content;padding-inline:12px}.appearance-theme-section,.appearance-public-model,.appearance-public-media{scroll-margin-top:66px}.appearance-public-model-card{padding:15px}}
.appearance-page .public-media-form{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));align-items:stretch}
.appearance-page .public-media-field{display:grid;align-content:start;gap:10px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:13px;background:var(--bg-soft)}
.appearance-page .public-media-field .public-media-preview{width:100%;max-width:none;height:156px;margin:0;object-fit:cover}
.appearance-page .public-media-field .public-media-preview-logo{height:100px;object-fit:contain}
.appearance-page .public-media-field label{gap:7px;margin:0;padding:0;border:0;background:transparent}
.appearance-page .public-media-empty{display:grid;place-items:center;min-height:156px;border:1px dashed var(--line-strong);border-radius:10px;background:var(--surface);color:var(--muted)}
.appearance-page .public-media-empty span{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;font-size:1.35rem}
.appearance-page .public-media-actions,.appearance-page #public-media-feedback{grid-column:1/-1}
@media(prefers-reduced-motion:reduce){.appearance-page .theme-card,.appearance-public-model-card{transition:none}.appearance-page .theme-card:hover,.appearance-public-model-card:hover{transform:none}}
.appearance-heading{align-items:flex-end}.appearance-heading>div{max-width:760px}.appearance-heading h1{margin-bottom:0}.appearance-intro{max-width:65ch;margin:9px 0 0;color:var(--muted);font-size:.95rem;line-height:1.55}.appearance-theme-count{flex:none;padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:.8rem;font-weight:700}.appearance-page .theme-card header{min-height:76px}.appearance-page .theme-card header span.theme-state{padding:5px 9px;white-space:nowrap}.appearance-page .theme-state.published{color:var(--success);border-color:color-mix(in srgb,var(--success) 35%,var(--line));background:color-mix(in srgb,var(--success) 8%,var(--surface))}.appearance-page .theme-state.draft{color:var(--accent);border-color:var(--accent);background:var(--bg-soft)}.appearance-page .theme-card.selected{box-shadow:inset 0 0 0 1px var(--accent),0 6px 18px rgba(0,0,0,.06)}.appearance-page .theme-card.previewing{outline:2px solid var(--focus);outline-offset:3px}.appearance-page .theme-card footer{justify-content:stretch}.appearance-page .theme-card footer button{flex:1;min-width:0;min-height:44px}.appearance-page .theme-card footer button[aria-pressed="true"]{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.appearance-page .theme-card footer button[aria-pressed="true"]:hover{background:var(--accent-hover)}.appearance-page .theme-card footer button:disabled{cursor:not-allowed;opacity:.58}.appearance-page .theme-mini-preview{pointer-events:none}.appearance-page .theme-card:focus-within{border-color:var(--focus)}@media(max-width:700px){.appearance-heading{align-items:flex-start}.appearance-theme-count{margin-top:2px}.appearance-page .theme-card header{min-height:0}.appearance-page .theme-card footer{display:grid;grid-template-columns:1fr 1fr}.appearance-page .theme-card footer button{width:100%;min-width:0;padding-inline:9px}}

/* Availability: focused schedule hierarchy and accessible selection states. */
.availability-page{display:grid;gap:20px;width:100%;max-width:none}.availability-page>h1{margin:0;letter-spacing:-.025em}.availability-page .availability-intro{margin:-10px 0 0;max-width:680px;line-height:1.55}.availability-page .availability-tabs{gap:5px;margin:0;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft);overflow-x:auto;scrollbar-width:none}.availability-page .availability-tab{min-height:42px;padding:0 15px;border:1px solid transparent;border-radius:8px;border-bottom-width:1px}.availability-page .availability-tab.active{border-color:var(--accent);background:var(--surface);color:var(--text);box-shadow:0 1px 5px rgba(0,0,0,.1)}.availability-page .availability-grid{gap:16px}.availability-page .availability-day{gap:16px;padding:20px;border-radius:15px;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.04)}.availability-page .availability-day.has-periods{border-color:color-mix(in srgb,var(--accent) 24%,var(--line))}.availability-page .availability-day.is-unavailable{border-style:solid;background:var(--bg-soft)}.availability-page .availability-day header{align-items:flex-start}.availability-page .availability-day h2{letter-spacing:-.015em}.availability-page .day-status{font-size:.8rem}.availability-page .availability-period{min-height:50px;padding:7px 8px 7px 13px;border-radius:10px;background:var(--bg-soft)}.availability-page .availability-period strong{font-variant-numeric:tabular-nums}.availability-page .availability-period .icon-action{border-radius:8px}.availability-page .availability-day>.secondary-button,.availability-page .availability-copy-button{border-radius:9px}.availability-page .exceptions-header{margin:0;padding:20px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.04)}.availability-page .exception-list{gap:14px}.availability-page .exception-card{padding:18px;border-radius:15px;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.04)}.availability-page .exception-kind{border-color:var(--accent);background:var(--bg-soft)}.availability-page .availability-feedback:empty{display:none}.availability-page button:focus-visible,.availability-page input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.availability-page .copy-choice:has(input:checked),.availability-page .exception-modes label:has(input:checked){border-color:var(--accent);background:var(--checked-soft);color:var(--text)}.availability-page .copy-choice,.availability-page .exception-modes label{border-radius:9px}.availability-page .availability-modal fieldset{border-radius:12px;background:var(--bg-soft)}@media(max-width:700px){.availability-page{gap:16px}.availability-page .availability-day,.availability-page .exception-card,.availability-page .exceptions-header{padding:16px}.availability-page .availability-day header,.availability-page .exceptions-header{display:grid}.availability-page .availability-copy-button{justify-self:start}.availability-page .exception-card>div:last-child{justify-items:stretch}.availability-page .exception-card>div:last-child button{width:100%}}

/* Customers: focused hierarchy and responsive data browsing. */
.customers-page{display:grid;gap:20px;width:100%;max-width:none}.customers-page .services-heading{margin-bottom:0}.customers-page .customers-search{max-width:none;margin:0;padding:18px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:0 5px 16px rgba(0,0,0,.04)}.customers-page .customers-search input{min-height:44px;margin-top:5px;border-radius:9px;background:var(--bg-soft)}.customers-page .services-table-wrap{border-radius:15px;box-shadow:0 1px 3px rgba(0,0,0,.03)}.customers-page .customers-table{margin:0}.customers-page .customers-table th{font-size:.72rem;letter-spacing:.035em}.customers-page .customers-table td{vertical-align:middle}.customers-page .customers-table tbody tr:hover{background:var(--surface-raised)}.customers-page .customers-table td small{display:inline-block;margin-top:3px;color:var(--muted)}.customers-page .customers-pagination{justify-content:center;margin:0;padding-top:2px}.customers-page .customers-pagination span{min-width:110px;color:var(--muted);font-size:.82rem;text-align:center}.customers-page .customers-pagination button{min-height:42px;border-radius:9px}.customers-page .customer-detail-modal input:focus-visible,.customers-page button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.customers-page .customer-detail-grid section,.customers-page .customer-detail-section,.customers-page .customer-combo-list article{border-radius:12px;background:var(--bg-soft)}.customers-page .customer-detail-modal header{border-bottom:1px solid var(--line);padding-bottom:14px}.customers-page .customer-detail-modal h2{letter-spacing:-.02em}.customers-page .customer-detail-section{padding:18px}.customers-page .customer-combo-list article{padding:14px}.customers-page .customer-combo-list article header{align-items:center}.customers-page .customer-detail-modal .services-table-wrap{border-radius:11px;box-shadow:none}@media(max-width:700px){.customers-page{gap:16px}.customers-page .customers-search{padding:15px}.customers-page .customers-pagination{justify-content:stretch}.customers-page .customers-pagination button{flex:1}.customers-page .customers-pagination span{display:grid;place-items:center;min-width:92px}.customers-page .customer-detail-section{padding:16px}}
.customers-page .page-intro { max-width: 620px; margin: 7px 0 0; color: var(--muted); line-height: 1.5; }
.commission-page .commission-tabs button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.commission-page .commission-tab-icon { display: inline-grid; place-items: center; width: 20px; height: 20px; flex: 0 0 20px; color: currentColor; }
.commission-page .commission-tab-icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.notifications-page .notification-tabs button.active { border: 1px solid var(--accent); color: var(--text); font-weight: 700; }
.notifications-page .notification-send fieldset label,
.notifications-page .notification-channels > .notification-switch { border: 1px solid var(--line); transition: border-color .16s ease, background .16s ease, box-shadow .16s ease; }
.notifications-page .notification-send fieldset label:has(input:checked),
.notifications-page .notification-channels > .notification-switch:has(input:checked) { border-color: color-mix(in srgb, var(--accent) 58%, var(--line)); background: color-mix(in srgb, var(--accent) 9%, var(--surface)); box-shadow: 0 1px 4px rgba(0,0,0,.1); }
.notifications-page .notification-send fieldset label:focus-within,
.notifications-page .notification-channels > .notification-switch:focus-within { outline: 2px solid var(--focus); outline-offset: 2px; }
.appointments-page .page-intro { max-width: 620px; margin: 7px 0 0; color: var(--muted); line-height: 1.5; }
.appointments-page .appointments-heading { margin-bottom: 0; }
.appointments-page .appointments-date-panel { padding: 18px 0 20px; }
.appointments-page .appointments-selected-date { min-width: 210px; }
.appointments-page .appointments-selected-date strong { line-height: 1.25; }
.appointments-page .appointment-filters { padding: 4px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg-soft); }
.appointments-page .appointment-filters button { border-radius: 8px; border-bottom-width: 1px; }
.appointments-page .appointment-filters button.active { background: var(--surface); box-shadow: 0 1px 4px rgba(0,0,0,.1); }
.appointments-page .appointment-agenda-row { border-radius: 12px; background: var(--surface); transition: background .16s ease, border-color .16s ease, transform .16s ease; }
.appointments-page .appointment-agenda-row:hover { border-color: var(--line-strong); background: var(--surface-raised); transform: translateY(-1px); }
.appointments-page .appointment-actions summary { border-radius: 9px; }
@media (max-width: 700px) {
  .appointments-page .appointments-heading { align-items: stretch; flex-direction: column; }
  .appointments-page #new-appointment { width: 100%; justify-content: center; }
  .appointments-page .appointments-view-tabs { align-items: stretch; flex-direction: column; }
  .appointments-page .appointments-view-tabs .financial-tabs { width: 100%; }
  .appointments-page .appointments-view-tabs .financial-tabs button { flex: 1; min-width: 0; padding-inline: 8px; }
  .appointments-page .appointments-tv-link { justify-content: center; }
  .appointments-page .appointments-date-panel { margin-top: 18px; padding: 15px 0 16px; }
  .appointments-page .appointments-selected-date { min-width: 0; text-align: left; }
  .appointments-page .appointment-agenda-row { grid-template-columns: 1fr auto; gap: 8px 12px; padding: 14px; }
  .appointments-page .appointment-agenda-row > :first-child { grid-column: 1 / -1; }
  .appointments-page .appointment-agenda-row .appointment-status { justify-self: start; }
  .appointments-page .appointment-row-actions { grid-column: 1 / -1; justify-content: stretch; }
  .appointments-page .appointment-row-actions > * { flex: 1; }
}
.customers-page .customers-search { display: grid; gap: 8px; }
.customers-page .customers-search label { margin: 0; }
.customers-page .customers-search > span { color: var(--muted); font-size: .78rem; }
.customers-page .customers-table td[data-label="Ações"] .icon-action { display: inline-grid; place-items: center; width: 44px; min-height: 44px; margin: 0; }
@media (max-width: 700px) {
  .customers-page .customers-table-wrap { border: 0; background: transparent; box-shadow: none; }
  .customers-page .customers-table tr { margin-bottom: 12px; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); box-shadow: 0 1px 3px rgba(0,0,0,.03); }
  .customers-page .customers-table tr:last-child { margin-bottom: 0; }
  .customers-page .customers-table td { grid-template-columns: minmax(92px, .45fr) minmax(0, 1fr); gap: 12px; overflow-wrap: anywhere; }
  .customers-page .customers-table td[data-label="Ações"] { display: flex; justify-content: flex-end; padding-top: 10px; border-top: 1px solid var(--line); }
  .customers-page .customers-table td[data-label="Ações"]::before { display: none; }
}

/* Promotions: focused hierarchy and responsive card layout. */
.promotions-page .promotion-tabs button.active,
.promotions-page .promotion-day-picker label:has(input:checked) span,
.promotions-page .promotion-check-grid label:has(input:checked){border-color:var(--accent);background:var(--surface);color:var(--text);box-shadow:0 1px 4px rgba(0,0,0,.1)}
.promotions-page{display:grid;gap:20px;width:100%;max-width:none}.promotions-page .promotions-heading{margin-bottom:0}.promotions-page .promotion-tabs{gap:5px;margin:0;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft);overflow-x:auto;scrollbar-width:none}.promotions-page .promotion-tabs button{min-height:42px;padding:0 14px;border:1px solid transparent;border-radius:8px;border-bottom-width:1px;background:transparent}.promotions-page .promotion-tabs button.active{border-color:var(--accent);background:var(--surface);color:var(--text);box-shadow:0 1px 5px rgba(0,0,0,.1)}.promotions-page .promotion-card-grid{gap:16px}.promotions-page .promotion-card,.promotions-page .promotion-empty{padding:20px;border-radius:15px;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.04)}.promotions-page .promotion-card:hover{border-color:var(--line-strong)}.promotions-page .promotion-card dl{gap:12px;margin:18px 0}.promotions-page .promotion-card dl div{padding-top:10px;border-top:1px solid var(--line)}.promotions-page .promotion-card dl div:first-child{padding-top:0;border-top:0}.promotions-page .promotion-card footer{padding-top:14px;border-top:1px solid var(--line)}.promotions-page .promotion-empty{min-height:190px}.promotions-page .promotion-form fieldset,.promotions-page .promotion-rule-box,.promotions-page .promotion-help-list article{border-radius:12px;background:var(--bg-soft)}.promotions-page .promotion-modal input,.promotions-page .promotion-modal select,.promotions-page .promotion-modal textarea{border-radius:9px}.promotions-page button:focus-visible,.promotions-page input:focus-visible,.promotions-page select:focus-visible,.promotions-page textarea:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media(max-width:900px){.promotions-page .promotion-card-grid{grid-template-columns:1fr}}@media(max-width:600px){.promotions-page{gap:16px}.promotions-page .promotion-card,.promotions-page .promotion-empty{padding:16px}.promotions-page .promotion-day-picker{grid-template-columns:repeat(4,minmax(0,1fr))}.promotions-page .promotion-rule-box{grid-template-columns:1fr 88px}.promotions-page .promotion-rule-box span{padding:0}.promotions-page .promotion-rule-box span:nth-of-type(2){grid-column:1/-1}.promotions-page .promotion-date-grid,.promotions-page .promotion-benefit-grid,.promotions-page .first-visit-benefit-grid{grid-template-columns:1fr}}

@media (prefers-reduced-motion: reduce) {
  html:has(body.public-booking-body) { scroll-behavior: auto; }
}
}

@media (max-width: 700px) {
  .public-professional-grid:not(.has-many-professionals) { justify-content: center; }
  .public-professional-grid.has-many-professionals { justify-content: flex-start; }
}

/* Cinematic hero layers: only the photograph moves; content remains stable. */
.public-site-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--bg);
}
.public-site-hero::before {
  content: '';
  position: absolute;
  z-index: -2;
  inset: -6%;
  background: var(--public-cover) center / cover no-repeat;
  transform: translate3d(0, var(--hero-parallax, 0px), 0) scale(1.04);
  animation: public-hero-entry 1000ms ease-out both, public-hero-cinematic 16s ease-in-out 1000ms infinite alternate;
  will-change: transform;
}
.public-site-hero::after {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.72) 0%, rgba(0,0,0,.30) 45%, rgba(0,0,0,.08) 75%, transparent 100%);
  animation: public-hero-overlay 16s ease-in-out 900ms infinite alternate;
}
.public-site-hero > * { position: relative; z-index: 1; }
@keyframes public-hero-entry {
  from { opacity: 0; filter: blur(3px); transform: translate3d(0, var(--hero-parallax, 0px), 0) scale(1.08); }
  to { opacity: 1; filter: blur(0); transform: translate3d(0, var(--hero-parallax, 0px), 0) scale(1.04); }
}
@keyframes public-hero-cinematic {
  from { opacity: 1; filter: blur(0); transform: translate3d(0, var(--hero-parallax, 0px), 0) scale(1.04); }
  to { opacity: 1; filter: blur(0); transform: translate3d(-1.5%, calc(var(--hero-parallax, 0px) - 1%), 0) scale(1.10); }
}
@keyframes public-hero-cinematic-mobile {
  from { opacity: 1; filter: blur(0); transform: translate3d(0, 0, 0) scale(1.04); }
  to { opacity: 1; filter: blur(0); transform: translate3d(0, -.5%, 0) scale(1.08); }
}
@keyframes public-hero-overlay { from { opacity: .94; } 50% { opacity: 1; } to { opacity: .94; } }
@media (max-width: 700px) {
  .public-site-hero::before {
    background-position: 62% center;
    animation: public-hero-entry 900ms ease-out both, public-hero-cinematic-mobile 17s ease-in-out 900ms infinite alternate;
  }
}
@media (prefers-reduced-motion: reduce) {
  .public-site-hero::before, .public-site-hero::after { animation: none; }
  .public-site-hero::before { opacity: 1; filter: none; transform: none; }
}

/* Dynamic public gallery */
.public-gallery { display: grid; gap: 12px; grid-auto-flow: dense; }
.public-gallery-single { grid-template-columns: 1fr; grid-auto-rows: minmax(280px, 520px); }
.public-gallery-split { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 360px; }
.public-gallery-editorial, .public-gallery-featured-grid { grid-template-columns: minmax(0, 1.35fr) repeat(2, minmax(0, 1fr)); grid-auto-rows: 190px; }
.public-gallery-editorial .public-gallery-tile-1, .public-gallery-featured-grid .public-gallery-tile-1 { grid-row: span 2; }
.public-gallery-featured-grid .public-gallery-tile-1 { grid-column: span 2; }
.public-gallery-tile { position: relative; min-width: 0; min-height: 0; padding: 0; overflow: hidden; border: 0; border-radius: 14px; background: var(--surface); cursor: zoom-in; }
.public-gallery-image { width: 100%; height: 100%; min-height: 0; display: block; aspect-ratio: auto; object-fit: cover; transition: transform 320ms ease, filter 320ms ease; }
.public-gallery-tile:hover .public-gallery-image, .public-gallery-tile:focus-visible .public-gallery-image { transform: scale(1.035); filter: saturate(1.04); }
.public-gallery-tile:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.public-gallery-view-all { display: inline-flex; align-items: center; gap: 10px; margin-top: 18px; border: 0; border-bottom: 1px solid var(--line-strong); padding: 4px 0; background: transparent; color: var(--text); font: inherit; cursor: pointer; }
.public-gallery-view-all span { transition: transform 220ms ease; }
.public-gallery-view-all:hover span { transform: translateX(4px); }
.public-gallery-lightbox { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; overflow: hidden; padding: 20px; background: rgba(0,0,0,.86); color: #fff; }
.public-gallery-lightbox[hidden] { display: none; }
.public-gallery-lightbox-scrim { position: absolute; inset: 0; }
.public-gallery-lightbox-dialog { position: relative; z-index: 1; display: grid; grid-template-rows: 44px minmax(0, 1fr) 64px; width: min(100%, 1180px); height: min(900px, calc(100dvh - 40px)); max-height: calc(100dvh - 40px); overflow: hidden; }
.public-gallery-lightbox-dialog header, .public-gallery-lightbox-dialog footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; }
.public-gallery-lightbox-close, .public-gallery-lightbox-nav, .public-gallery-lightbox-dialog footer button { min-width: 44px; min-height: 44px; border: 1px solid rgba(255,255,255,.3); border-radius: 999px; background: rgba(0,0,0,.32); color: #fff; font: inherit; cursor: pointer; }
.public-gallery-lightbox-close { position:absolute;top:var(--gallery-close-top,12px);right:var(--gallery-close-right,12px);bottom:auto;z-index:3;display:grid;place-items:center;width:40px!important;height:40px;min-width:40px;min-height:40px;padding:0!important;border:0;background:rgba(15,15,15,.56);box-shadow:0 4px 18px rgba(0,0,0,.16);font-size:1.45rem;line-height:1;backdrop-filter:blur(10px);transition:background 160ms ease,transform 160ms ease }
.public-gallery-lightbox-close:hover,.public-gallery-lightbox-close:focus-visible{background:rgba(15,15,15,.78);transform:scale(1.04)}
.public-gallery-lightbox-close span{display:block;transform:translateY(-1px)}
.public-gallery-lightbox-stage { position: relative; display: grid; place-items: center; min-height: 0; overflow: hidden; touch-action: pan-y; }
.public-gallery-lightbox-stage img { display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; transition: transform 220ms ease; user-select: none; }
.public-gallery-lightbox-stage img.is-zoomed { transform: scale(1.8); cursor: zoom-out; }
.public-gallery-lightbox-nav { position: static; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 118px; padding-inline: 16px; font-size: 1rem; }
.public-gallery-lightbox-nav span { font-size: .78rem; font-weight: 700; }
.public-gallery-open { overflow: hidden; }
.gallery-manager { display: grid; gap: 22px; }
.gallery-upload-zone { display: grid; gap: 14px; padding: 24px; border: 1px dashed var(--line-strong); border-radius: 14px; background: var(--surface); }
.gallery-upload-zone label { display: grid; gap: 7px; min-height: 120px; place-content: center; border-radius: 10px; background: var(--subtle-fill); text-align: center; cursor: pointer; }
.gallery-upload-zone label span, .gallery-upload-hint { color: var(--muted); font-size: .88rem; }
.gallery-upload-zone input { max-width: 100%; }
.gallery-upload-zone > button { width: fit-content; }
.gallery-manager-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.gallery-manager-item { display: grid; gap: 10px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); transition: opacity 180ms ease, transform 180ms ease; }
.gallery-manager-item.is-dragging { opacity: .45; transform: scale(.98); }
.gallery-manager-item img { width: 100%; aspect-ratio: 4 / 3; display: block; object-fit: cover; background: var(--subtle-fill); }
.gallery-manager-item-actions { display: grid; gap: 10px; padding: 0 12px 12px; }
.gallery-manager-item-actions > span { color: var(--muted); font-size: .82rem; }
.gallery-manager-item-actions > div { display: flex; flex-wrap: wrap; gap: 8px; }
.gallery-manager-item-actions button { width: auto; min-height: 38px; padding-inline: 10px; font-size: .78rem; }
.gallery-manager-empty { padding: 36px 20px; border: 1px dashed var(--line); border-radius: 12px; text-align: center; }
.gallery-manager-empty p { color: var(--muted); }
.gallery-skeleton { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.gallery-skeleton i { display: block; aspect-ratio: 4 / 3; border-radius: 12px; background: linear-gradient(100deg, var(--subtle-fill) 30%, var(--surface-raised) 45%, var(--subtle-fill) 60%); background-size: 300% 100%; animation: gallery-skeleton-shimmer 1.4s linear infinite; }
@keyframes gallery-skeleton-shimmer { to { background-position: -200% 0; } }
@media (max-width: 700px) {
  .public-gallery { display: flex; overflow-x: auto; margin-inline: -16px; padding-inline: 16px 16px; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .public-gallery::-webkit-scrollbar { display: none; }
  .public-gallery-tile, .public-gallery-single .public-gallery-tile, .public-gallery-split .public-gallery-tile, .public-gallery-editorial .public-gallery-tile, .public-gallery-featured-grid .public-gallery-tile { flex: 0 0 min(82vw, 360px); height: 310px; scroll-snap-align: start; }
  .public-gallery .public-gallery-tile-1 { flex-basis: min(86vw, 390px); height: 360px; }
  .public-gallery-lightbox { padding: max(10px, env(safe-area-inset-top)) 10px max(10px, env(safe-area-inset-bottom)); }
  .public-gallery-lightbox-dialog { grid-template-rows: 40px minmax(0,1fr) 58px; height: calc(100dvh - max(20px, env(safe-area-inset-top) + env(safe-area-inset-bottom))); max-height: calc(100dvh - max(20px, env(safe-area-inset-top) + env(safe-area-inset-bottom))); }
  .public-gallery-lightbox-close{width:40px!important;height:40px;min-width:40px;min-height:40px}
  .public-gallery-lightbox-stage img { max-width: 100%; }
  .public-gallery-lightbox-nav { min-width: 44px; min-height: 44px; padding-inline: 12px; }
  .public-gallery-lightbox-nav span { display: none; }
  .gallery-upload-zone { padding: 16px; }
  .gallery-manager-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .gallery-skeleton { grid-template-columns: 1fr 1fr; gap: 10px; }
  .gallery-manager-item-actions { padding-inline: 8px; }
  .gallery-manager-item-actions > div { display: grid; }
}
@media (prefers-reduced-motion: reduce) {
  .public-gallery-image, .public-gallery-view-all span, .public-gallery-lightbox-stage img { transition: none; }
  .gallery-skeleton i { animation: none; }
}
.public-menu { display:flex; flex-wrap:wrap; gap:8px; margin:20px 0 28px; padding:6px; border:1px solid var(--line); border-radius:999px; background:var(--surface-raised); position:sticky; top:10px; z-index:5; transition:background .2s ease,backdrop-filter .2s ease,border-color .2s ease; }
.public-site-hero { min-height:clamp(480px, 78vh, 760px); display:flex; align-items:flex-end; padding:clamp(28px, 6vw, 72px); margin:calc(-1 * clamp(16px, 4vw, 40px)) calc(-1 * clamp(16px, 4vw, 40px)) 0; background:linear-gradient(180deg,rgba(0,0,0,.08) 10%,rgba(0,0,0,.82) 100%),var(--public-cover) center/cover no-repeat; color:#fff; }
.public-site-hero-copy { max-width:620px; }
.public-site-hero h1 { max-width:600px; margin:10px 0 14px; color:#fff; font-size:clamp(2.4rem,6vw,5.6rem); line-height:.98; letter-spacing:-.055em; }
.public-site-hero p:not(.eyebrow) { max-width:470px; color:rgba(255,255,255,.86); font-size:clamp(1rem,1.6vw,1.25rem); }
.public-hero-cta { display:inline-flex; align-items:center; min-height:48px; margin-top:18px; padding:0 22px; border-radius:999px; background:#fff; color:#151515; font-weight:800; text-decoration:none; }
.public-hero-proof { display:flex; align-items:center; gap:10px; margin:18px 0 0; color:#fff; letter-spacing:.08em; }
.public-hero-proof span { color:rgba(255,255,255,.78); letter-spacing:0; }
.public-quick-facts { display:grid; grid-template-columns:repeat(3,1fr); max-width:760px; margin:30px auto 42px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.public-quick-facts div { display:grid; gap:4px; padding:18px 22px; border-right:1px solid var(--line); }
.public-quick-facts div:last-child { border-right:0; }
.public-quick-facts strong { font-size:1.35rem; letter-spacing:-.03em; }
.public-quick-facts span { color:var(--muted); font-size:.82rem; }
.public-menu.is-scrolled { background:color-mix(in srgb,var(--surface-raised) 86%,transparent); backdrop-filter:blur(14px); border-color:color-mix(in srgb,var(--line-strong) 48%,transparent); }
.public-service-list { display:grid; }
.public-service-row { display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:20px; padding:22px 0; border-bottom:1px solid var(--line); color:var(--text); text-decoration:none; }
.public-service-row span { display:grid; gap:6px; }
.public-service-row small { color:var(--muted); }
.public-service-row em { color:var(--muted); font-style:normal; font-size:.9rem; }
.public-service-image { width: 56px; height: 56px; object-fit: cover; border-radius: 50%; border: 1px solid var(--line-strong); background: var(--surface-raised); }
.public-menu a { flex:1 1 auto; min-height:40px; display:grid; place-items:center; padding:8px 14px; border-radius:999px; color:var(--text); text-decoration:none; font-weight:700; }
.public-menu a:hover, .public-menu a:focus-visible { background:var(--accent); color:var(--accent-text); }
.public-overview { display:grid; gap:28px; margin-top:32px; }
.public-overview-section { scroll-margin-top:20px; }
.public-section-heading { margin-bottom:14px; }
.public-overview-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px; }
.public-overview-card { display:grid; gap:8px; min-height:76px; padding:16px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--text); text-decoration:none; }
.public-overview-card span { color:var(--muted); font-size:.9rem; }
.public-location { padding:20px; border:1px dashed var(--line-strong); border-radius:12px; }
@media (max-width: 600px) { .public-site-hero { min-height:68vh; margin-left:-16px; margin-right:-16px; padding:24px; } .public-menu { top:8px; border-radius:14px; } .public-menu a { flex-basis:calc(50% - 8px); } .public-quick-facts { margin-top:24px; } .public-quick-facts div { padding:14px 10px; } .public-quick-facts strong { font-size:1.1rem; } .public-service-row { grid-template-columns:1fr auto; gap:10px; } .public-service-row em { grid-column:1 / -1; } }

html.app-route-loading .app-shell {
  min-height: 100vh;
  display: grid;
  place-items: center;
}

html.app-route-loading .panel > :not(#app-route-status) {
  display: none;
}

.app-route-status {
  display: none;
  color: var(--muted);
  text-align: center;
}

html.app-route-loading .app-route-status,
.app-route-status.is-error {
  display: block;
}

html.app-route-failed .app-shell {
  min-height: 100vh;
  display: grid;
  place-items: center;
}

html.app-route-failed .panel > :not(#app-route-status):not(#app-route-retry) {
  display: none !important;
}

html.app-route-failed .app-route-status {
  display: block;
}

.route-load-error {
  max-width: 560px;
  margin: 48px auto;
  padding: 28px;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-lg);
  background: var(--surface);
}

.route-load-error p {
  color: var(--muted);
}

.route-load-error button {
  min-height: 44px;
}

:root[data-theme="beauty"] {
  color-scheme: light;
  --bg: #fffaf7;
  --bg-soft: #f6ebe6;
  --text: #352726;
  --muted: #7d6761;
  --surface: rgba(255, 255, 255, 0.92);
  --surface-raised: rgba(180, 111, 114, 0.1);
  --line: rgba(130, 88, 80, 0.2);
  --line-strong: rgba(180, 111, 114, 0.44);
  --accent: #b46f72;
  --accent-hover: #9d5f64;
  --accent-pressed: #874f55;
  --accent-text: #fffaf7;
  --danger: #b44f4b;
  --success: #517f62;
  --warning: #9b7a43;
  --placeholder: #a08b84;
  --input-bg: rgba(255, 255, 255, 0.82);
  --input-focus-bg: #ffffff;
  --sidebar-bg: #f0dfd8;
  --topbar-bg: rgba(255, 250, 247, 0.92);
  --modal-bg: #fffdfb;
  --menu-bg: #fffdfb;
  --body-glow: radial-gradient(circle at top right, rgba(232, 199, 191, 0.56), transparent 360px), linear-gradient(180deg, rgba(180, 111, 114, 0.12), transparent 300px);
  --focus: #b46f72;
  --gold-glow: 0 0 0 3px rgba(180, 111, 114, 0.18);
  --button-hover-shadow: 0 12px 30px rgba(180, 111, 114, 0.24);
  --soft-hover: rgba(180, 111, 114, 0.1);
  --subtle-fill: rgba(180, 111, 114, 0.08);
  --danger-soft-text: #9d514d;
  --badge-soft: rgba(180, 111, 114, 0.13);
  --checked-soft: rgba(180, 111, 114, 0.14);
}

:root[data-theme="girl"] {
  color-scheme: light;
  --bg: #fff5fa;
  --bg-soft: #faebf2;
  --text: #382e33;
  --muted: #8c7380;
  --surface: rgba(255, 255, 255, 0.94);
  --surface-raised: rgba(250, 235, 242, 0.86);
  --line: #ede0e7;
  --line-strong: rgba(235, 71, 153, 0.34);
  --accent: #eb4799;
  --accent-hover: #d93a89;
  --accent-pressed: #bd2f75;
  --accent-text: #ffffff;
  --danger: #c94f63;
  --success: #547f62;
  --warning: #a87036;
  --placeholder: #aa8d9b;
  --input-bg: rgba(255, 255, 255, 0.9);
  --input-focus-bg: #ffffff;
  --sidebar-bg: #eb4799;
  --topbar-bg: rgba(255, 245, 250, 0.94);
  --modal-bg: #ffffff;
  --menu-bg: #ffffff;
  --body-glow: radial-gradient(circle at top right, rgba(255, 128, 191, 0.22), transparent 380px), linear-gradient(135deg, rgba(235, 71, 153, 0.1), rgba(242, 104, 127, 0.06) 34%, transparent 64%);
  --focus: #eb4799;
  --gold-glow: 0 0 0 3px rgba(235, 71, 153, 0.16);
  --button-hover-shadow: 0 14px 32px rgba(235, 71, 153, 0.28);
  --soft-hover: rgba(235, 71, 153, 0.1);
  --subtle-fill: rgba(250, 235, 242, 0.88);
  --danger-soft-text: #b84258;
  --badge-soft: rgba(235, 71, 153, 0.12);
  --checked-soft: rgba(235, 71, 153, 0.15);
}

:root[data-theme="premium-blue"] {
  color-scheme: light;
  --bg: #F5F8FC;
  --bg-soft: #DBEAFE;
  --text: #102A43;
  --muted: #64748B;
  --surface: #FFFFFF;
  --surface-raised: #F5F8FC;
  --line: #D8E2EF;
  --line-strong: #AFC4DE;
  --accent: #1D4ED8;
  --accent-hover: #1E40AF;
  --accent-pressed: #1E3A8A;
  --accent-text: #FFFFFF;
  --danger: #B42318;
  --success: #16794B;
  --warning: #9A6700;
  --placeholder: #64748B;
  --input-bg: #FFFFFF;
  --input-focus-bg: #FFFFFF;
  --sidebar-bg: #102A43;
  --topbar-bg: rgba(245, 248, 252, .96);
  --modal-bg: #FFFFFF;
  --menu-bg: #FFFFFF;
  --body-glow: linear-gradient(180deg, rgba(219, 234, 254, .48), transparent 300px);
  --focus: #1D4ED8;
  --gold-glow: 0 0 0 3px rgba(29, 78, 216, .16);
  --button-hover-shadow: 0 10px 24px rgba(16, 42, 67, .16);
  --soft-hover: rgba(29, 78, 216, .08);
  --subtle-fill: #F5F8FC;
  --danger-soft-text: #A12622;
  --badge-soft: #DBEAFE;
  --checked-soft: #DBEAFE;
}

:root[data-theme="premium-blue"] .sidebar,
:root[data-theme="premium-blue"] .sidebar .brand,
:root[data-theme="premium-blue"] .sidebar .brand span,
:root[data-theme="premium-blue"] .sidebar .nav-item,
:root[data-theme="premium-blue"] .sidebar .logout-button { color: #FFFFFF; }
:root[data-theme="premium-blue"] .sidebar .nav-item svg { color: #FFFFFF; stroke: #FFFFFF; }
:root[data-theme="premium-blue"] .sidebar .nav-item.active,
:root[data-theme="premium-blue"] .sidebar .nav-item:hover,
:root[data-theme="premium-blue"] .sidebar .logout-button:hover { background: rgba(219, 234, 254, .14); color: #FFFFFF; }

:root[data-theme="emerald-ivory"] {
  color-scheme: light;
  --bg: #FAF8F2;
  --bg-soft: #DCEFEA;
  --text: #26332F;
  --muted: #687771;
  --surface: #FAF8F2;
  --surface-raised: #F3F4EC;
  --line: #E3E8E2;
  --line-strong: #B9C9C1;
  --accent: #0F766E;
  --accent-hover: #115E59;
  --accent-pressed: #134E4A;
  --accent-text: #FFFFFF;
  --danger: #B42318;
  --success: #16794B;
  --warning: #927641;
  --placeholder: #687771;
  --input-bg: #FFFFFF;
  --input-focus-bg: #FFFFFF;
  --sidebar-bg: #123B35;
  --topbar-bg: rgba(250, 248, 242, .96);
  --modal-bg: #FAF8F2;
  --menu-bg: #FAF8F2;
  --body-glow: linear-gradient(180deg, rgba(220, 239, 234, .55), transparent 300px);
  --focus: #0F766E;
  --gold-glow: 0 0 0 3px rgba(184, 155, 98, .18);
  --button-hover-shadow: 0 10px 24px rgba(18, 59, 53, .16);
  --soft-hover: rgba(15, 118, 110, .08);
  --subtle-fill: #F3F4EC;
  --danger-soft-text: #A12622;
  --badge-soft: #DCEFEA;
  --checked-soft: #DCEFEA;
}
:root[data-theme="emerald-ivory"] .sidebar,
:root[data-theme="emerald-ivory"] .sidebar .brand,
:root[data-theme="emerald-ivory"] .sidebar .brand span,
:root[data-theme="emerald-ivory"] .sidebar .nav-item,
:root[data-theme="emerald-ivory"] .sidebar .logout-button { color: #FAF8F2; }
:root[data-theme="emerald-ivory"] .sidebar .nav-item svg { color: #FAF8F2; stroke: #FAF8F2; }
:root[data-theme="emerald-ivory"] .sidebar .nav-item.active,
:root[data-theme="emerald-ivory"] .sidebar .nav-item:hover,
:root[data-theme="emerald-ivory"] .sidebar .logout-button:hover { background: rgba(220, 239, 234, .14); color: #FAF8F2; }

:root[data-theme="premium-purple"] {
  color-scheme: light;
  --bg: #FFFFFF;
  --bg-soft: #F8F5FA;
  --text: #000000;
  --muted: #696969;
  --surface: #FFFFFF;
  --surface-raised: #F8F5FA;
  --line: #F0EAF2;
  --line-strong: #D8C6DF;
  --accent: #812E8D;
  --accent-hover: #7602A9;
  --accent-pressed: #65008F;
  --accent-text: #FFFFFF;
  --danger: #B42318;
  --success: #16794B;
  --warning: #927641;
  --placeholder: #696969;
  --input-bg: #FFFFFF;
  --input-focus-bg: #FFFFFF;
  --sidebar-bg: #9E43C8;
  --topbar-bg: rgba(255, 255, 255, .96);
  --modal-bg: #FFFFFF;
  --menu-bg: #FFFFFF;
  --body-glow: linear-gradient(180deg, rgba(248, 245, 250, .9), transparent 320px);
  --focus: #812E8D;
  --gold-glow: 0 0 0 3px rgba(229, 94, 205, .14);
  --button-hover-shadow: 0 10px 24px rgba(118, 2, 169, .18);
  --soft-hover: rgba(158, 67, 200, .08);
  --subtle-fill: #F8F5FA;
  --danger-soft-text: #A12622;
  --badge-soft: #F2E7F5;
  --checked-soft: #F2E7F5;
}
:root[data-theme="premium-purple"] .sidebar,
:root[data-theme="premium-purple"] .sidebar .brand,
:root[data-theme="premium-purple"] .sidebar .brand span,
:root[data-theme="premium-purple"] .sidebar .nav-item,
:root[data-theme="premium-purple"] .sidebar .logout-button { color: #FFFFFF; }
:root[data-theme="premium-purple"] .sidebar .nav-item svg { color: #FFFFFF; stroke: #FFFFFF; }
:root[data-theme="premium-purple"] .sidebar .nav-group-label { color: #FFFFFF; opacity: .9; }
:root[data-theme="premium-purple"] .sidebar .nav-item.active,
:root[data-theme="premium-purple"] .sidebar .nav-item:hover,
:root[data-theme="premium-purple"] .sidebar .logout-button:hover { background: rgba(255, 255, 255, .16); color: #FFFFFF; }

:root[data-theme="premium-gold"] {
  color-scheme: light;
  --bg: #FAF8F2;
  --bg-soft: #F3E9D2;
  --text: #29251F;
  --muted: #70695E;
  --surface: #FFFFFF;
  --surface-raised: #FAF8F2;
  --line: #E8E0D1;
  --line-strong: #D8BE83;
  --accent: #8C6528;
  --accent-hover: #76541F;
  --accent-pressed: #654719;
  --accent-text: #FFFFFF;
  --danger: #B42318;
  --success: #16794B;
  --warning: #8C6528;
  --placeholder: #70695E;
  --input-bg: #FFFFFF;
  --input-focus-bg: #FFFFFF;
  --sidebar-bg: #29251F;
  --topbar-bg: rgba(250, 248, 242, .96);
  --modal-bg: #FFFFFF;
  --menu-bg: #FFFFFF;
  --body-glow: linear-gradient(180deg, rgba(243, 233, 210, .52), transparent 300px);
  --focus: #8C6528;
  --gold-glow: 0 0 0 3px rgba(184, 138, 59, .18);
  --button-hover-shadow: 0 10px 24px rgba(140, 101, 40, .2);
  --soft-hover: rgba(184, 138, 59, .1);
  --subtle-fill: #FAF8F2;
  --danger-soft-text: #A12622;
  --badge-soft: #F3E9D2;
  --checked-soft: #F3E9D2;
}
:root[data-theme="premium-gold"] .sidebar,
:root[data-theme="premium-gold"] .sidebar .brand,
:root[data-theme="premium-gold"] .sidebar .brand span,
:root[data-theme="premium-gold"] .sidebar .nav-item,
:root[data-theme="premium-gold"] .sidebar .logout-button { color: #FAF8F2; }
:root[data-theme="premium-gold"] .sidebar .nav-item svg { color: #D8BE83; stroke: #D8BE83; }
:root[data-theme="premium-gold"] .sidebar .nav-group-label { color: #FAF8F2; opacity: .82; }
:root[data-theme="premium-gold"] .sidebar .nav-item.active,
:root[data-theme="premium-gold"] .sidebar .nav-item:hover,
:root[data-theme="premium-gold"] .sidebar .logout-button:hover { background: rgba(243, 233, 210, .14); color: #FFFFFF; }

:root[data-theme="premium-terracotta"] {
  color-scheme: light;
  --bg: #FAF6EF;
  --bg-soft: #E9D9C5;
  --text: #302721;
  --muted: #75685F;
  --surface: #FFFFFF;
  --surface-raised: #FAF6EF;
  --line: #E8DED2;
  --line-strong: #D9BDA8;
  --accent: #A64B36;
  --accent-hover: #873B2B;
  --accent-pressed: #713122;
  --accent-text: #FFFFFF;
  --danger: #B42318;
  --success: #16794B;
  --warning: #8C6528;
  --placeholder: #75685F;
  --input-bg: #FFFFFF;
  --input-focus-bg: #FFFFFF;
  --sidebar-bg: #302721;
  --topbar-bg: rgba(250, 246, 239, .96);
  --modal-bg: #FFFFFF;
  --menu-bg: #FFFFFF;
  --body-glow: linear-gradient(180deg, rgba(233, 217, 197, .45), transparent 300px);
  --focus: #A64B36;
  --gold-glow: 0 0 0 3px rgba(217, 137, 106, .2);
  --button-hover-shadow: 0 10px 24px rgba(135, 59, 43, .18);
  --soft-hover: rgba(166, 75, 54, .08);
  --subtle-fill: #FAF6EF;
  --danger-soft-text: #A12622;
  --badge-soft: #E9D9C5;
  --checked-soft: #E9D9C5;
}
:root[data-theme="premium-terracotta"] .sidebar,
:root[data-theme="premium-terracotta"] .sidebar .brand,
:root[data-theme="premium-terracotta"] .sidebar .brand span,
:root[data-theme="premium-terracotta"] .sidebar .nav-item,
:root[data-theme="premium-terracotta"] .sidebar .logout-button { color: #FAF6EF; }
:root[data-theme="premium-terracotta"] .sidebar .nav-item svg { color: #D9896A; stroke: #D9896A; }
:root[data-theme="premium-terracotta"] .sidebar .nav-group-label { color: #FAF6EF; opacity: .82; }
:root[data-theme="premium-terracotta"] .sidebar .nav-item.active,
:root[data-theme="premium-terracotta"] .sidebar .nav-item:hover,
:root[data-theme="premium-terracotta"] .sidebar .logout-button:hover { background: rgba(233, 217, 197, .14); color: #FFFFFF; }

:root[data-theme="girl"] .sidebar,
:root[data-theme="girl"] .sidebar .brand,
:root[data-theme="girl"] .sidebar .brand span,
:root[data-theme="girl"] .sidebar .nav-item,
:root[data-theme="girl"] .sidebar .logout-button {
  color: #ffffff;
}

:root[data-theme="girl"] .sidebar .nav-item svg {
  color: #ffffff;
  stroke: #ffffff;
}

:root[data-theme="girl"] .sidebar .nav-item.active,
:root[data-theme="girl"] .sidebar .nav-item:hover,
:root[data-theme="girl"] .sidebar .logout-button:hover {
  background: rgba(255, 255, 255, 0.16);
  color: #ffffff;
}

* {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

body {
  margin: 0;
  background: var(--body-glow), var(--bg);
  color: var(--text);
  font-family: Inter, Arial, sans-serif;
}

.app-shell {
  width: min(100%, 1080px);
  margin: 0 auto;
  padding: 20px;
}

.panel,
.admin-forms {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.72);
  padding: 20px;
  backdrop-filter: blur(12px);
}

.admin-forms {
  margin-top: 18px;
}

.eyebrow,
.field-error,
.form-message,
.form-link {
  color: var(--muted);
  font-size: 0.9rem;
}

.eyebrow {
  color: var(--accent);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

h1,
h2,
h3 {
  margin: 0 0 16px;
  font-weight: 800;
  line-height: 1.15;
}

label {
  display: grid;
  gap: 6px;
  margin-bottom: 14px;
  font-weight: 700;
}

input,
button,
select,
textarea {
  width: 100%;
  min-height: 44px;
  border-radius: var(--control-radius, 12px);
  font: inherit;
}

.secondary-button {
  margin-top: 12px;
  background: transparent;
  border: 1px solid var(--line-strong);
  color: var(--text);
  box-shadow: none;
}

.secondary-button:hover {
  background: var(--soft-hover);
  box-shadow: none;
}

input,
select,
textarea {
  background: var(--input-bg);
  border: 1px solid var(--line);
  color: var(--text);
  padding: 10px 12px;
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

textarea {
  min-height: 100px;
  resize: vertical;
}

input::placeholder {
  color: var(--placeholder);
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--focus);
  background: var(--input-focus-bg);
  box-shadow: var(--gold-glow);
  outline: 2px solid var(--line);
  outline-offset: 2px;
}

button {
  border: 0;
  background: var(--accent);
  color: var(--accent-text);
  font-weight: 700;
  cursor: pointer;
  box-shadow: var(--gold-glow);
  transition: background 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

button:hover {
  background: var(--accent-hover);
  box-shadow: var(--button-hover-shadow);
  transform: translateY(-1px);
}

button:active {
  background: var(--accent-pressed);
  transform: translateY(0) scale(0.98);
}

.field-error {
  color: var(--danger);
  min-height: 18px;
}

.form-link {
  margin: 14px 0 0;
  text-align: center;
}

a {
  color: var(--accent-hover);
  font-weight: 700;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

.admin-grid {
  display: grid;
  gap: 12px;
}

.admin-grid form {
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 12px;
  transition: border-color 160ms ease, background 160ms ease;
}

.admin-grid form:hover {
  background: var(--soft-hover);
  border-color: var(--line-strong);
}

.dashboard-panel { min-height: 280px; }
.profile-page { width: min(100%, 880px); margin: 0 auto; }
.profile-header { margin-bottom: 26px; }
.profile-header .eyebrow { margin: 0 0 8px; color: var(--accent); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.profile-header h1 { margin-bottom: 8px; }
.profile-header > p:last-child, .profile-section-heading p { margin: 0; color: var(--muted); line-height: 1.55; }
.profile-section { display: grid; gap: 16px; margin-top: 18px; padding: 24px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
.profile-section-heading { display: grid; gap: 5px; margin-bottom: 2px; }
.profile-section h2 { margin: 0; font-size: 1.05rem; }
.profile-section > label { margin: 0; }
.profile-grid { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.profile-actions { display: flex; justify-content: flex-end; margin-top: 20px; }
.profile-actions button { width: auto; padding: 0 18px; }
.profile-actions button:disabled { cursor: wait; opacity: .7; }
.profile-page .form-message { min-height: 1.35em; margin: 10px 0 0; }
.dashboard-empty { margin-top: 28px; padding: 18px; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); }
.establishment-context { color: var(--accent); font-weight: 700; }
.establishments-page { width: min(92%, 1160px); margin-inline: auto; display: grid; gap: 22px; }
.establishments-page h1 { margin: 0; letter-spacing: -.035em; }
.establishments-page .eyebrow { margin-bottom: 6px; }
.establishments-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; }
.establishments-heading-actions { display: flex; align-items: center; gap: 12px; }
.establishments-count { display: inline-flex; align-items: center; gap: 5px; min-height: 36px; padding: 0 11px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: .78rem; }
.establishments-count strong { color: var(--text); font-size: .95rem; }
.establishments-intro { margin: 5px 0 0; color: var(--muted); }
.contract-expiry-banner,.contract-expired-screen { display: grid; gap: 8px; margin: 0 0 24px; padding: 18px 20px; border: 1px solid var(--line-strong); border-radius: 14px; background: var(--surface); }
.contract-expiry-banner strong,.contract-expired-screen h1 { margin: 0; color: var(--text); }
.contract-expiry-banner span,.contract-expired-screen p { margin: 0; color: var(--muted); }
.contract-expiry-banner.is-urgent,.contract-status-badge.status-expired { border-color: #b66a5e; }
.contract-expired-screen { max-width: 760px; margin: 7vh auto; padding: clamp(24px,5vw,48px); }
.contract-expired-screen .eyebrow { color: var(--accent); font-weight: 700; }
.contract-expired-screen dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin: 16px 0 0; }
.contract-expired-screen dl div { padding: 14px; border: 1px solid var(--line); border-radius: 10px; }
.contract-expired-screen dt { color: var(--muted); font-size: .82rem; }
.contract-expired-screen dd { margin: 5px 0 0; font-weight: 700; }
.contract-expired-plans,.contract-expiry-banner a { width: fit-content; color: var(--accent); font-weight: 700; text-underline-offset: 3px; }
.self-onboarding { padding: 0; overflow: hidden; }
.self-onboarding details > summary { display: grid; grid-template-columns: minmax(0,1fr) minmax(90px,180px); align-items: center; gap: 20px; padding: 20px; cursor: pointer; list-style: none; }
.self-onboarding details > summary::-webkit-details-marker { display: none; }
.self-onboarding details > summary > span:first-child { display: grid; gap: 5px; }
.self-onboarding details > summary strong { color: var(--text); }
.self-onboarding details > summary small { color: var(--muted); }
.self-onboarding-progress { height: 8px; overflow: hidden; border-radius: 999px; background: var(--line); }
.self-onboarding-progress i { display: block; height: 100%; border-radius: inherit; background: var(--accent); transition: width .2s ease; }
.self-onboarding ol { display: grid; gap: 0; margin: 0; padding: 0 20px; list-style: none; }
.self-onboarding-step { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 16px; padding: 16px 0; border-top: 1px solid var(--line); }
.self-onboarding-step-copy { display: grid; gap: 4px; }
.self-onboarding-step-copy strong { color: var(--text); }
.self-onboarding-step-copy p { margin: 0; color: var(--muted); font-size: .86rem; }
.self-onboarding-step-copy a { width: fit-content; margin-top: 4px; color: var(--accent); font-size: .83rem; text-underline-offset: 3px; }
.self-onboarding-step.is-complete .self-onboarding-step-copy strong { text-decoration: line-through; text-decoration-color: var(--muted); }
.self-onboarding-step select { min-height: 40px; max-width: 150px; padding: 6px 9px; border: 1px solid var(--line-strong); border-radius: 8px; background: var(--surface); color: var(--text); }
.self-onboarding-feedback { min-height: 1.2em; margin: 0; padding: 0 20px 14px; color: var(--muted); font-size: .8rem; }
.self-onboarding :is(a,button,select,summary):focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
@media (max-width: 700px) { .self-onboarding details > summary { grid-template-columns: minmax(0,1fr); gap: 12px; }.self-onboarding-step { grid-template-columns: minmax(0,1fr); }.self-onboarding-step select { max-width: none; width: 100%; }.self-onboarding ol { padding-inline: 15px; } }
.establishment-contract-card { display: grid; gap: 12px; grid-column: 1/-1; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg-soft); }
.establishment-contract-card header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; }
.establishment-contract-card .eyebrow,.establishment-contract-card h3,.establishment-contract-card p { margin: 0; }
.establishment-contract-card h3 { font-size: 1.05rem; }
.establishment-contract-card > p { color: var(--muted); }
.establishment-contract-card button { min-height: 44px; justify-self: start; }
.establishment-contract-row { color: var(--muted)!important; font-size: .82rem!important; }
.contract-status-badge { display: inline-flex; align-items: center; min-height: 30px; padding: 4px 10px; border: 1px solid var(--line-strong); border-radius: 999px; color: var(--text); font-size: .78rem; font-weight: 700; }
.contract-status-badge.status-expiring { border-color: var(--accent); color: var(--accent); }
.contract-status-badge.status-expired { color: #f1a49a; }
.contract-status-badge.status-pending { color: var(--muted); }
.establishment-contract-field { min-width: 0; margin: 0; padding: 16px; border: 1px solid var(--line); border-radius: 12px; }
.establishment-contract-field legend { padding: 0 6px; font-weight: 700; }
.establishment-contract-inputs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.establishment-contract-inputs label { min-width: 0; }
.establishment-contract-field > p { margin: 10px 0 0; color: var(--muted); }
.establishments-filters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) auto; align-items: end; gap: 14px; padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); box-shadow: var(--surface-shadow); }
.establishments-filters label { margin: 0; }
.establishments-filters input, .establishments-filters select { min-height: 44px; margin-top: 5px; background: var(--bg-soft); }
.establishments-filters button { min-height: 44px; }
.establishment-health { margin-top: 16px; padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.establishment-health > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.establishment-health > header h3 { margin: 0; font-size: 1.08rem; }
.establishment-health > header .eyebrow { margin: 0 0 5px; }
.establishment-health-status { display: inline-flex; align-items: center; gap: 7px; min-height: 34px; padding: 0 11px; border: 1px solid var(--line); border-radius: 999px; font-size: .82rem; font-weight: 700; white-space: nowrap; }
.establishment-health-summary { margin: 10px 0 14px; color: var(--muted); font-size: .88rem; }
.establishment-health ul { margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.establishment-health li { display: grid; grid-template-columns: 22px minmax(0,1fr) auto; align-items: center; gap: 11px; min-height: 62px; padding: 10px 2px; border-bottom: 1px solid var(--line); }
.establishment-health li:last-child { border-bottom: 0; }
.health-check-icon { display: grid; width: 20px; height: 20px; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-size: .75rem; font-weight: 800; }
.health-check > div { display: grid; min-width: 0; gap: 3px; }
.health-check small,.establishment-list-health small { color: var(--muted); line-height: 1.4; }
.health-check button { width: auto; min-height: 36px; padding-inline: 12px; }
.health-operational { color: var(--success); }
.health-incomplete,.health-warning { color: var(--accent); }
.health-issue,.health-error { color: var(--danger); }
.health-inactive,.health-unknown { color: var(--muted); }
.establishment-list-health { display: flex; flex-wrap: wrap; align-items: baseline; gap: 7px; margin-top: 10px; font-size: .84rem; font-weight: 700; }
.establishment-list-health small { flex-basis: 100%; margin-left: 20px; font-size: .78rem; font-weight: 400; }
.establishment-health :focus-visible,.establishment-list-health :focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.establishment-registration-form { width: 100%; max-width: none; }
.establishment-modal { width: min(70vw, 1100px); max-height: min(900px, calc(100dvh - 32px)); padding: 28px; border-radius: 18px; box-shadow: var(--surface-shadow-raised); }
.establishment-modal > header { position: sticky; top: -24px; z-index: 1; padding-bottom: 16px; background: var(--modal-bg); }
.establishment-modal > header h2 { margin: 2px 0 0; letter-spacing: -.025em; }
.establishment-modal > header .modal-close { border: 1px solid var(--line); border-radius: 50%; }
.establishment-registration-form { display: grid; gap: 16px; }
.establishment-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 16px 18px; }
.establishment-form-grid label { display: grid; gap: 6px; margin: 0; }
.establishment-form-grid input, .establishment-form-grid textarea { min-height: 44px; }
.establishment-form-wide, .establishment-form-grid > label:nth-child(15) { grid-column: 1 / -1; }
.establishment-form-grid textarea { width: 100%; resize: vertical; }
.establishment-logo-field { display: grid; align-content: start; gap: 8px; padding: 14px; border: 1px dashed var(--line-strong); border-radius: 12px; background: var(--bg-soft); }
.establishment-logo-field > span:first-child { font-weight: 700; }
.establishment-logo-field input[type="file"] { width: 100%; min-height: 44px; padding: 8px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); }
.establishment-logo-field small,.establishment-logo-feedback { color: var(--muted); font-size: .82rem; }
.establishment-logo-preview,.establishment-logo-placeholder { width: 112px; height: 88px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); object-fit: contain; color: var(--muted); font-size: .8rem; }
.establishment-zip-feedback { display: block; min-height: 1.2em; margin-top: 4px; color: var(--muted); font-size: .78rem; }
.establishments-pagination { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 16px; }
.establishments-pagination button { min-width: 108px; min-height: 42px; }
.establishments-pagination span { min-width: 120px; color: var(--muted); text-align: center; }
.establishment-card.is-inactive { opacity: .68; }
.establishment-detail-summary { display: flex; flex-wrap: wrap; gap: 10px 18px; margin: -8px 0 18px; color: var(--muted); }
.establishment-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin: 18px 0; padding: 4px; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.establishment-tabs button { min-width: 0; min-height: 40px; padding: 0 10px; border: 1px solid transparent; border-radius: 9px; background: transparent; color: var(--muted); white-space: normal; }
.establishment-tabs button.is-active { border-color: var(--accent); background: var(--surface-raised); color: var(--text); }
.establishment-overview { display: grid; gap: 8px; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.establishments-grid { display: grid; gap: 12px; width: 100%; min-width: 0; overflow: visible; border: 0; background: transparent; box-shadow: none; }
.establishments-grid .establishment-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 18px; min-width: 0; padding: 18px 22px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); box-shadow: var(--surface-shadow); transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease; }
.establishments-grid .establishment-card:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--accent) 52%, var(--line)); background: var(--surface-raised); box-shadow: var(--surface-shadow-raised, var(--surface-shadow)); }
.establishments-grid .establishment-card:focus-within { outline: 2px solid var(--focus); outline-offset: -2px; }
@media (prefers-reduced-motion: reduce) { .establishments-grid .establishment-card { transition: none; }.establishments-grid .establishment-card:hover { transform: none; } }
.establishments-grid .establishment-card h2 { margin: 0; font-size: 1rem; }
.establishments-grid .establishment-card p { margin: 4px 0 0; color: var(--muted); font-size: .85rem; }
.establishments-grid .establishment-actions { grid-column: 2; display: flex; align-items: center; justify-content: flex-end; justify-self: end; gap: 6px; }
.establishments-grid .establishment-actions button { min-width: 40px; min-height: 40px; }
.establishments-grid .establishment-actions { flex-wrap: wrap; }
.establishments-grid .establishment-support-action { min-width: 176px; padding-inline: 12px; white-space: nowrap; }
.establishment-status { display: inline-flex; align-items: center; min-height: 28px; padding: 0 9px; border: 1px solid color-mix(in srgb, var(--success) 55%, var(--line)); border-radius: 999px; color: var(--success); font-size: .78rem; font-weight: 700; }
.establishments-heading h1,.establishments-heading h2 { margin: 0; }
.establishments-heading > button { width: auto; padding: 0 16px; }
.establishment-professionals { display: grid; gap: 10px; }
.establishment-card,.establishment-person { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.establishment-card h2 { margin: 0 0 5px; font-size: 1.1rem; }
.establishment-card p { margin: 0; color: var(--muted); font-size: .86rem; }
.establishments-empty { display: grid; justify-items: start; gap: 8px; padding: 28px; border: 1px dashed var(--line-strong); border-radius: 14px; background: var(--surface); }
.establishments-empty span { color: var(--muted); }
.establishments-empty button { width: auto; margin-top: 8px; }
.establishment-actions,.establishment-person > div { display: flex; align-items: center; gap: 8px; }
.establishment-actions .secondary-button,.establishment-person .secondary-button { width: auto; min-height: 40px; margin: 0; padding: 0 12px; }
.establishment-back { width: auto; margin: 0 0 16px; padding: 0; min-height: 32px; color: var(--accent); background: transparent; box-shadow: none; }
.establishment-search-results { display: grid; gap: 8px; max-height: 40vh; overflow: auto; }
.establishment-search-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px; border: 1px solid var(--line); border-radius: 6px; }
.establishment-search-row small { display: block; color: var(--muted); }
.establishment-search-row button { width: auto; padding: 0 12px; }
.establishment-warning { border-left: 3px solid var(--accent); padding: 10px; color: var(--text); background: var(--surface-raised); }
.establishment-modal select { width: 100%; min-height: 44px; padding: 10px; color: var(--text); background: var(--modal-bg); border: 1px solid var(--line); border-radius: 8px; }
.establishments-page button:focus-visible,.establishment-modal button:focus-visible,.establishment-modal select:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.establishment-modal button:disabled { opacity: .6; cursor: wait; }
.appearance-page { display: grid; gap: 18px; }
.appearance-public-media { display: grid; gap: 18px; margin-top: 12px; padding: 24px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); box-shadow: var(--surface-shadow); }
.appearance-public-media h2 { margin: 0 0 6px; font-size: 1.15rem; }
.appearance-public-media p { margin: 0; color: var(--muted); }
.public-media-form { display: grid; gap: 16px; }
.public-media-form label { display: grid; gap: 7px; }
.public-media-form small { color: var(--muted); font-size: .8rem; }
.public-media-preview { width: min(100%, 360px); height: 150px; display: block; object-fit: cover; border: 1px solid var(--line); border-radius: 10px; background: var(--subtle-fill); }
.public-media-preview-logo { width: min(100%, 240px); height: 88px; object-fit: contain; padding: 12px; }
.public-media-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.public-media-actions button, .public-media-actions a { width: auto; min-height: 44px; padding: 0 16px; }
.public-media-actions a { display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line-strong); border-radius: var(--control-radius); color: var(--text); text-decoration: none; }
.public-media-actions a:hover { background: var(--surface-raised); }
#public-media-feedback { min-height: 1.5em; color: var(--success); }
.theme-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); }
.theme-card { display: grid; gap: 14px; padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.theme-card.selected { border-color: var(--accent); box-shadow: var(--gold-glow); }
.theme-card.previewing { outline: 2px solid var(--line-strong); outline-offset: 2px; }
.theme-card header { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.theme-card h2 { margin: 0 0 6px; font-size: 1.05rem; }
.theme-card p { margin: 0; color: var(--muted); font-size: .9rem; }
.theme-card header span { flex: none; padding: 5px 8px; border: 1px solid var(--line-strong); border-radius: 999px; color: var(--accent); font-size: .75rem; font-weight: 800; }
.theme-swatches { display: flex; gap: 8px; }
.theme-swatches i { width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 50%; }
.theme-mini-preview { display: grid; grid-template-columns: 54px 1fr; min-height: 120px; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: var(--bg); }
.theme-mini-preview aside { background: var(--sidebar-bg); border-right: 1px solid var(--line); }
.theme-mini-preview main { display: grid; align-content: center; gap: 10px; padding: 16px; }
.theme-mini-preview b, .theme-mini-preview p { display: block; height: 12px; margin: 0; border-radius: 999px; background: var(--text); opacity: .85; }
.theme-mini-preview p { width: 70%; background: var(--muted); opacity: .6; }
.theme-mini-preview[data-preview="PREMIUM_BLUE"] { border-color: #D8E2EF; background: #F5F8FC; }
.theme-mini-preview[data-preview="PREMIUM_BLUE"] aside { background: #102A43; border-color: #D8E2EF; }
.theme-mini-preview[data-preview="PREMIUM_BLUE"] main b { width: 64%; height: 18px; border-radius: 5px; background: #102A43; opacity: 1; }
.theme-mini-preview[data-preview="PREMIUM_BLUE"] main p { height: 10px; border-radius: 5px; background: #64748B; opacity: .55; }
.theme-mini-preview[data-preview="EMERALD_IVORY"] { border-color: #E3E8E2; background: #FAF8F2; }
.theme-mini-preview[data-preview="EMERALD_IVORY"] aside { background: #123B35; border-color: #E3E8E2; }
.theme-mini-preview[data-preview="EMERALD_IVORY"] main b { width: 64%; height: 18px; border-radius: 5px; background: #123B35; opacity: 1; }
.theme-mini-preview[data-preview="EMERALD_IVORY"] main p { height: 10px; border-radius: 5px; background: #687771; opacity: .68; }
.theme-mini-preview[data-preview="PREMIUM_PURPLE"] { border-color: #F0EAF2; background: #F8F5FA; }
.theme-mini-preview[data-preview="PREMIUM_PURPLE"] aside { background: #7602A9; border-color: #F0EAF2; }
.theme-mini-preview[data-preview="PREMIUM_PURPLE"] main b { width: 64%; height: 18px; border-radius: 5px; background: #812E8D; opacity: 1; }
.theme-mini-preview[data-preview="PREMIUM_PURPLE"] main p { height: 10px; border-radius: 5px; background: #696969; opacity: .64; }
.theme-mini-preview[data-preview="PREMIUM_GOLD"] { border-color: #E8E0D1; background: #FAF8F2; }
.theme-mini-preview[data-preview="PREMIUM_GOLD"] aside { background: #29251F; border-color: #E8E0D1; }
.theme-mini-preview[data-preview="PREMIUM_GOLD"] main b { width: 64%; height: 18px; border-radius: 5px; background: #8C6528; opacity: 1; }
.theme-mini-preview[data-preview="PREMIUM_GOLD"] main p { height: 10px; border-radius: 5px; background: #70695E; opacity: .72; }
.theme-mini-preview[data-preview="PREMIUM_TERRACOTTA"] { border-color: #E8DED2; background: #FAF6EF; }
.theme-mini-preview[data-preview="PREMIUM_TERRACOTTA"] aside { background: #302721; border-color: #E8DED2; }
.theme-mini-preview[data-preview="PREMIUM_TERRACOTTA"] main b { width: 64%; height: 18px; border-radius: 5px; background: #A64B36; opacity: 1; }
.theme-mini-preview[data-preview="PREMIUM_TERRACOTTA"] main p { height: 10px; border-radius: 5px; background: #75685F; opacity: .76; }
.theme-card footer { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.theme-card footer button { width: auto; min-width: 104px; margin: 0; padding: 0 14px; }
.theme-customizer { width: min(100%,760px); }
.theme-color-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2px 18px; margin-top: 18px; }
.theme-color-control { display: grid; grid-template-columns: 52px 1fr; align-items: center; gap: 10px; min-height: 46px; padding: 5px 9px; border: 1px solid var(--line); border-radius: var(--control-radius,8px); background: var(--input-bg); }
.theme-color-control input { width: 42px; min-height: 34px; padding: 2px; border: 0; background: transparent; }
.theme-color-control output { color: var(--muted); font-family: monospace; text-transform: uppercase; }
.theme-style-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-top: 8px; }
:root[data-custom-theme="true"] .sidebar,:root[data-custom-theme="true"] .sidebar .brand,:root[data-custom-theme="true"] .sidebar .brand span,:root[data-custom-theme="true"] .sidebar .nav-item,:root[data-custom-theme="true"] .sidebar .logout-button { color: var(--sidebar-text); }
:root[data-custom-theme="true"] .theme-card,:root[data-custom-theme="true"] .service-modal,:root[data-custom-theme="true"] .establishment-card { box-shadow: var(--theme-shadow); }
@media (max-width:600px) { .theme-color-grid,.theme-style-grid { grid-template-columns:1fr; }.theme-card footer button { flex:1 1 120px; } }
@media (max-width: 700px) { .establishments-page { width: 100%; }.establishments-filters { grid-template-columns: 1fr; padding: 15px; }.establishments-filters button { width: 100%; }.establishment-form-grid { grid-template-columns: 1fr; }.establishment-form-wide { grid-column: auto; }.establishment-contract-inputs,.contract-expired-screen dl { grid-template-columns: 1fr; }.establishments-pagination { gap: 8px; }.establishments-pagination button { min-width: 0; flex: 1; }.establishments-pagination span { min-width: 86px; }.establishment-health { padding: 15px; }.establishment-health > header { align-items: flex-start; flex-direction: column; gap: 10px; }.establishment-health li { grid-template-columns: 22px minmax(0,1fr); }.establishment-health li button { grid-column: 2; justify-self: start; } }
@media (max-width: 700px) { .establishment-modal { width: 100%; max-height: calc(100dvh - 24px); padding: 20px 18px; border-radius: 16px 16px 12px 12px; }.establishment-modal > header { top: -20px; }.establishment-modal footer { position: sticky; bottom: -20px; z-index: 1; padding-top: 14px; background: var(--modal-bg); }.establishment-modal footer button { flex: 1; } }
@media (max-width: 700px) { .establishments-page { width: min(100% - 28px, 620px); }.establishments-grid .establishment-card { grid-template-columns: minmax(0, 1fr); min-width: 0; align-items: start; gap: 10px; padding: 16px; }.establishments-grid .establishment-actions { grid-column: 1; grid-row: auto; justify-self: start; justify-content: flex-start; } }
@media (max-width: 600px) { .establishment-card,.establishment-person { align-items: stretch; flex-direction: column; }.establishments-heading-actions { align-items: stretch; flex-direction: column; width: 100%; }.establishments-heading-actions > button { width: 100%; }.establishments-count { justify-content: center; }.establishment-actions,.establishment-person > div { justify-content: flex-start; }.establishment-modal footer { flex-wrap: wrap; }.establishment-modal footer button { min-height: 44px; } }
@media (max-width: 600px) { .profile-page { width: 100%; }.profile-section { gap: 14px; padding: 18px 16px; }.profile-grid { grid-template-columns: 1fr; }.profile-actions button { width: 100%; min-height: 48px; } }

.dashboard-layout { min-height: 100vh; display: flex; background: var(--bg); }
.sidebar { width: 244px; min-height: 100vh; display: flex; flex-direction: column; gap: 24px; padding: 22px 14px; background: var(--sidebar-bg); border-right: 1px solid var(--line); transition: width 180ms ease, transform 180ms ease; }
.brand { color: var(--text); font-weight: 800; letter-spacing: .08em; padding: 10px; white-space: nowrap; }.brand span { color: var(--accent); }
.sidebar nav { display: grid; gap: 6px; }.nav-item { width: 100%; min-height: 46px; display: flex; gap: 12px; align-items: center; padding: 0 12px; border-radius: 8px; color: var(--muted); background: transparent; box-shadow: none; text-align: left; }.nav-item svg,.icon-button svg,.profile-menu svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }.nav-item.active,.nav-item:hover { background: var(--surface-raised); color: var(--text); }.logout-button { margin-top: auto; }
.dashboard-workspace { min-width: 0; flex: 1; }.topbar { min-height: 68px; display: flex; align-items: center; justify-content: space-between; padding: 0 24px; border-bottom: 1px solid var(--line); background: var(--topbar-bg); }.icon-button { width: 44px; min-height: 44px; padding: 10px; background: transparent; color: var(--text); box-shadow: none; }.profile-wrap { position: relative; }.profile-trigger { width: auto; display: flex; align-items: center; gap: 10px; padding: 4px 8px; background: transparent; color: var(--text); box-shadow: none; }.avatar { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: var(--accent); color: var(--accent-text); font-size: .8rem; font-weight: 800; }.profile-menu { position: absolute; z-index: 5; right: 0; top: calc(100% + 10px); width: 176px; padding: 6px; background: var(--menu-bg); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 14px 30px rgba(0,0,0,.18); }.profile-menu a,.profile-menu button { width: 100%; display: flex; gap: 9px; align-items: center; min-height: 40px; padding: 8px; color: var(--text); background: transparent; box-shadow: none; text-align: left; }.dashboard-main { width: 90%; margin: 0 auto; padding: 40px 28px; }.dashboard-date { color: var(--muted); text-transform: capitalize; }.sidebar-collapsed .sidebar { width: 68px; }.sidebar-collapsed .sidebar span { display: none; }.sidebar-collapsed .brand { font-size: 0; }.sidebar-collapsed .brand::first-letter { font-size: 1.1rem; }
.drawer-backdrop { display: none; }
.availability-grid { display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); }.availability-day { padding:16px; border:1px solid var(--line); border-radius:8px; background:var(--surface); }.availability-day h2 { font-size:1rem; }.availability-day p { color:var(--muted); }
.availability-page { width: 100%; }.availability-intro { max-width: 620px; margin: -6px 0 24px; color: var(--muted); }.availability-feedback { min-height: 20px; }.availability-tabs { display: flex; gap: 8px; margin: 22px 0; border-bottom: 1px solid var(--line); }.availability-tab { width: auto; min-height: 42px; padding: 0 12px; color: var(--muted); background: transparent; box-shadow: none; border-radius: 0; border-bottom: 2px solid transparent; }.availability-tab.active { color: var(--text); border-color: var(--accent); }.availability-tab:hover { background: var(--surface-raised); box-shadow: none; }.availability-grid { grid-template-columns: 1fr; gap: 14px; }.availability-day { display: grid; gap: 16px; padding: 18px; border-radius: 8px; }.availability-day.is-unavailable { border-style: dashed; background: var(--subtle-fill); }.availability-day header, .exceptions-header, .exception-card { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }.availability-day h2 { margin: 0; font-size: 1.05rem; }.day-status, .empty-availability { margin: 4px 0 0; color: var(--muted); font-size: .88rem; }.is-unavailable .day-status, .is-unavailable .empty-availability { color: var(--warning); }.availability-periods { display: grid; gap: 8px; }.availability-period { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 44px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--subtle-fill); }.availability-period > span { display: flex; gap: 6px; }.availability-day .secondary-button { margin: 0; }.text-button { width: auto; min-height: 38px; padding: 0 6px; color: var(--accent-hover); background: transparent; box-shadow: none; text-decoration: underline; text-underline-offset: 3px; }.text-button:hover { background: transparent; box-shadow: none; }.danger-action:hover, .danger-button { color: #fff; background: var(--danger); }.exceptions-header { margin-bottom: 18px; }.exceptions-header h2 { margin-bottom: 6px; }.exceptions-header .secondary-button { width: auto; margin: 0; padding: 0 14px; }.exception-list { display: grid; gap: 10px; }.exception-card { padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }.exception-card > div:last-child { display: grid; justify-items: end; gap: 8px; }.exception-date { margin: 0 0 4px; font-weight: 800; text-transform: capitalize; }.exception-kind { padding: 4px 8px; border-radius: 999px; color: var(--accent); border: 1px solid var(--line-strong); font-size: .75rem; }.exception-unavailable .exception-kind { color: var(--danger-soft-text); border-color: rgba(255,107,95,.45); }.time-fields, .exception-period-input { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; }.copy-periods { margin: 0; padding-left: 20px; color: var(--muted); }.copy-warning { padding: 10px; border-left: 3px solid var(--accent); color: var(--muted); background: var(--surface-raised); }.copy-choice { display: flex; grid-template-columns: 20px 1fr; align-items: center; min-height: 40px; margin: 0; }.copy-choice input, .exception-modes input { width: 18px; min-height: 18px; }.exception-modes { display: grid; gap: 8px; }.exception-modes label { display: flex; grid-template-columns: 20px 1fr; align-items: center; margin: 0; padding: 10px; border: 1px solid var(--line); border-radius: 6px; }.exception-period-input { align-items: end; margin-bottom: 10px; }.exception-period-input .icon-action { margin-bottom: 14px; }.availability-modal input:focus-visible, .availability-tab:focus-visible, .text-button:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }.availability-modal button:disabled { cursor: wait; opacity: .65; }
.services-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:20px; }.new-service-button { width:auto; padding:0 16px; }.services-table-wrap { overflow:auto; border:1px solid var(--line); border-radius:8px; }.services-table { width:100%; border-collapse:collapse; min-width:680px; }.services-table th,.services-table td { padding:14px 16px; border-bottom:1px solid var(--line); text-align:left; vertical-align:middle; }.services-table th { color:var(--muted); font-size:.8rem; text-transform:uppercase; }.service-status { display:inline-flex; width:auto; min-height:30px; padding:4px 8px; border:1px solid var(--line-strong); border-radius:999px; color:var(--muted); background:transparent; box-shadow:none; font-size:.8rem; }.service-status:hover { background:var(--surface-raised); }.service-status.active { color:var(--accent); }.service-actions { display:flex; gap:8px; }.icon-action { width:38px; min-height:38px; padding:8px; background:transparent; color:var(--text); border:1px solid var(--line); box-shadow:none; }.icon-action svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }.empty-cell { text-align:center !important; color:var(--muted); }.modal-backdrop { position:fixed; inset:0; z-index:30; display:grid; place-items:center; padding:16px; background:rgba(0,0,0,.68); }.service-modal { width:min(100%,520px); max-height:calc(100vh - 32px); overflow:auto; padding:22px; border:1px solid var(--line-strong); border-radius:8px; background:var(--modal-bg); box-shadow:0 24px 60px rgba(0,0,0,.24); }.service-modal header { display:flex; justify-content:space-between; align-items:center; gap:12px; }.modal-close { width:40px; min-height:40px; padding:0; background:transparent; color:var(--text); box-shadow:none; font-size:1.7rem; }.service-modal textarea { min-height:90px; resize:vertical; background:var(--input-bg); border:1px solid var(--line); color:var(--text); padding:10px 12px; font:inherit; }.service-modal footer { display:flex; justify-content:flex-end; gap:10px; margin-top:20px; }.service-modal footer button { width:auto; padding:0 18px; }
.customers-search { max-width: 520px; margin-bottom: 16px; }.customers-search label { margin: 0; }.customers-table small { color: var(--muted); }.customers-pagination { display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin-top: 14px; }.customers-pagination button { width: auto; margin: 0; }.customer-detail-modal { width: min(100%, 860px); }.customer-detail-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin: 18px 0; }.customer-detail-grid section,.customer-detail-section,.customer-combo-list article { padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }.customer-detail-modal h3 { margin: 0 0 10px; font-size: 1rem; }.customer-detail-modal ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }.customer-detail-modal li { display: grid; gap: 3px; }.customer-detail-modal li span,.customer-detail-modal p { color: var(--muted); }.customer-combo-list { display: grid; gap: 10px; }.customer-combo-list article header { display: flex; justify-content: space-between; gap: 10px; }
.promotion-modal { width:min(100%,760px); }.promotion-check-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 14px; }.promotion-check-grid label { display:flex; align-items:center; gap:8px; margin:0; }.promotion-check-grid input { width:18px; min-height:18px; }
.promotions-heading p:not(.eyebrow) { margin: 6px 0 0; color: var(--muted); }.promotion-heading-actions { display:flex; align-items:center; gap:10px; }.promotion-heading-actions .secondary-button { width:auto; min-height:42px; padding:0 14px; }.promotion-tabs { display:flex; gap:8px; max-width:100%; overflow-x:auto; margin:0 0 18px; border-bottom:1px solid var(--line); scrollbar-width:thin; }.promotion-tabs button { flex:none; width:auto; min-height:46px; padding:0 14px; border-radius:0; border-bottom:2px solid transparent; color:var(--muted); background:transparent; box-shadow:none; white-space:nowrap; }.promotion-tabs button.active { color:var(--text); border-color:var(--accent); }.promotion-tabs small { display:inline-flex; align-items:center; justify-content:center; min-width:22px; min-height:22px; margin-left:8px; padding:0 6px; border-radius:999px; color:var(--accent); background:var(--badge-soft); font-size:.75rem; }.promotion-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }.promotion-card, .promotion-empty { padding:16px; border:1px solid var(--line); border-radius:8px; background:var(--surface); }.promotion-card header, .promotion-card footer { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }.promotion-card h2 { margin:0 0 6px; font-size:1.05rem; }.promotion-card p { margin:0; color:var(--muted); }.promotion-card dl { display:grid; gap:10px; margin:16px 0; }.promotion-card dl div { display:grid; grid-template-columns:98px 1fr; gap:12px; }.promotion-card dt { color:var(--muted); font-size:.78rem; font-weight:800; text-transform:uppercase; }.promotion-card dd { margin:0; color:var(--text); }.promotion-card footer { align-items:center; }.promotion-card footer .secondary-button { width:auto; min-height:38px; padding:0 12px; }.promotion-badge { display:inline-flex; align-items:center; min-height:28px; padding:0 9px; border-radius:999px; border:1px solid var(--line-strong); font-size:.78rem; font-weight:800; white-space:nowrap; }.promotion-badge.active { color:var(--accent); }.promotion-badge.inactive { color:var(--muted); }.promotion-badge.expired { color:var(--danger-soft-text); border-color:rgba(255,107,95,.45); }.promotion-empty { grid-column:1/-1; display:grid; justify-items:center; gap:8px; padding:34px 16px; text-align:center; }.promotion-empty h2, .promotion-empty p { margin:0; }.promotion-empty p { color:var(--muted); }.promotion-empty button { width:auto; margin-top:8px; }.promotion-form { display:grid; gap:16px; }.promotion-form fieldset { margin:0; padding:14px; border:1px solid var(--line); border-radius:8px; }.promotion-form legend { padding:0 6px; color:var(--muted); font-size:.85rem; font-weight:800; }.promotion-rule-box { display:grid; grid-template-columns:auto 88px minmax(0,1fr) auto minmax(0,1fr); gap:10px; align-items:end; padding:14px; border:1px solid var(--line); border-radius:8px; background:var(--surface-raised); }.promotion-rule-box span { padding-bottom:13px; color:var(--muted); font-weight:800; white-space:nowrap; }.promotion-day-picker { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; }.promotion-day-picker label { margin:0; }.promotion-day-picker input { position:absolute; opacity:0; pointer-events:none; }.promotion-day-picker span { display:flex; align-items:center; justify-content:center; min-height:42px; border:1px solid var(--line); border-radius:8px; color:var(--muted); background:var(--subtle-fill); font-weight:800; }.promotion-day-picker input:checked + span { color:var(--text); border-color:var(--accent); background:var(--checked-soft); }.promotion-date-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.promotion-switch { align-self:end; min-height:44px; margin:0; padding:0 10px; border:1px solid var(--line); border-radius:8px; background:var(--subtle-fill); }.first-visit-benefit-grid { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:center; }.first-visit-benefit-grid > label, .first-visit-benefit-grid > .promotion-inline-note { width:100%; margin:0; }.promotion-inline-note { align-self:end; min-height:44px; display:flex; align-items:center; justify-content:center; padding:8px 12px; border:1px solid var(--line); border-radius:8px; color:var(--muted); background:var(--surface-raised); text-align:center; font-size:.9rem; }.promotion-help-modal { width:min(100%,680px); }.promotion-help-list { display:grid; gap:12px; margin-top:18px; }.promotion-help-list article { padding:14px; border:1px solid var(--line); border-radius:8px; background:var(--surface-raised); }.promotion-help-list h3 { margin:0 0 8px; font-size:1rem; }.promotion-help-list p { margin:0 0 10px; color:var(--muted); }.promotion-help-list strong { color:var(--accent); }
.promotion-modal .financial-form-grid { width:100%; align-items:end; }.promotion-form > label, .promotion-form > .financial-form-grid, .promotion-form > fieldset, .promotion-form > .field-error, .promotion-form > footer { width:100%; }.promotion-form .financial-form-grid { grid-template-columns:repeat(auto-fit,minmax(0,1fr)); }.promotion-date-grid { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:end; }.promotion-benefit-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.promotion-date-grid > label, .first-visit-benefit-grid > label, .promotion-benefit-grid > label { min-width:0; margin:0; }.promotion-date-grid input, .first-visit-benefit-grid select, .first-visit-benefit-grid input, .promotion-benefit-grid select, .promotion-benefit-grid input { width:100%; }.promotion-percent-input { display:flex; align-items:center; min-height:44px; border:1px solid var(--line); border-radius:8px; background:var(--subtle-fill); overflow:hidden; }.promotion-percent-input input { min-height:42px; border:0; box-shadow:none; background:transparent; }.promotion-percent-input span { display:flex; align-items:center; justify-content:center; align-self:stretch; min-width:44px; padding:0 12px; border-left:1px solid var(--line); color:var(--muted); font-weight:800; background:rgba(255,255,255,.04); }.promotion-switch { display:flex; align-items:center; justify-content:center; gap:8px; height:44px; align-self:end; }.promotion-switch input { width:18px; min-height:18px; }.promotion-form footer { margin-top:10px; padding-top:2px; }
.promotion-form.is-free-benefit .first-visit-benefit-grid { grid-template-columns:1fr; }
.financial-page { display: grid; gap: 20px; }
.analytics-page { display: grid; gap: 20px; }
.analytics-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 4px 0 2px; }
.analytics-header h1 { margin: 2px 0 6px; letter-spacing: 0; }
.analytics-header-description { max-width: 600px; margin: 0; color: var(--muted); font-size: .94rem; }
.analytics-live-indicator { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; padding: 8px 12px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: var(--surface); font-size: .78rem; font-weight: 700; }
.analytics-live-indicator i { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 16%, transparent); }
.analytics-tabs { display: flex; gap: 8px; overflow-x: auto; border-bottom: 1px solid var(--line); }
.analytics-tabs button { width: auto; min-height: 44px; padding: 0 16px; border: 0; border-bottom: 2px solid transparent; border-radius: 0; color: var(--muted); background: transparent; box-shadow: none; white-space: nowrap; }
.analytics-tabs button.active { color: var(--text); border-color: var(--accent); }
.analytics-filters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: end; padding: 22px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); box-shadow: 0 8px 18px rgba(0,0,0,.06); }
.analytics-filters::before { content: 'Filtros do relatório'; grid-column: 1 / -1; margin-bottom: -4px; color: var(--text); font-size: 1rem; font-weight: 800; }
.analytics-filters label { margin: 0; }
.analytics-filters button { grid-column: 1 / -1; order: 99; justify-self: center; width: 40%; min-width: 220px; min-height: 44px; }
.analytics-custom-dates { grid-column: 3 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; min-width: 0; }
.analytics-custom-dates label { margin: 0; }
.analytics-filters.analytics-custom-mode { grid-template-columns: repeat(8, minmax(0, 1fr)); }
.analytics-filters.analytics-custom-mode > label { grid-column: span 2; }
.analytics-filters.analytics-custom-mode .analytics-custom-dates { display: contents; }
.analytics-filters.analytics-custom-mode .analytics-status-filter { grid-column: 1 / span 2; }
.analytics-filters.analytics-custom-mode .analytics-custom-dates label { width: 100%; min-width: 0; }
.analytics-filters.analytics-custom-mode .analytics-custom-dates label:first-child { grid-column: 3 / span 3; }
.analytics-filters.analytics-custom-mode .analytics-custom-dates label:last-child { grid-column: 6 / span 3; }
.analytics-filters:not(.analytics-custom-mode) .analytics-period-filter { order: 1; }
.analytics-filters:not(.analytics-custom-mode) .analytics-granularity-filter { order: 2; }
.analytics-filters:not(.analytics-custom-mode) .analytics-professional-filter { order: 3; }
.analytics-filters:not(.analytics-custom-mode) .analytics-status-filter { order: 4; grid-column: span 1; }
.analytics-filters:not(.analytics-custom-mode) .analytics-service-filter { order: 5; grid-column: span 1; }
.analytics-filters:not(.analytics-custom-mode) .analytics-month-filter { order: 6; }
.analytics-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.analytics-kpis article { display: grid; gap: 8px; min-height: 104px; padding: 20px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); box-shadow: 0 8px 18px rgba(0,0,0,.07); }
.analytics-kpis article { position: relative; overflow: hidden; transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease; }
.analytics-kpis article::after { content: ''; position: absolute; right: -20px; bottom: -28px; width: 90px; height: 90px; border: 10px solid color-mix(in srgb, var(--accent) 12%, transparent); border-radius: 50%; }
.analytics-kpis article:hover { transform: translateY(-2px); border-color: var(--line-strong); box-shadow: 0 14px 26px rgba(0,0,0,.1); }
.analytics-kpis span, .analytics-period { color: var(--muted); }
.analytics-kpis strong { font-size: 1.35rem; overflow-wrap: anywhere; }
.analytics-section { display: grid; gap: 12px; padding-top: 8px; }
.analytics-section h2 { margin: 0; font-size: 1.1rem; }
.analytics-status { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.analytics-status span { display: grid; gap: 5px; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--muted); }
.analytics-status b { color: var(--text); font-size: 1.25rem; }
.analytics-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 8px; }
.analytics-table-wrap table { width: 100%; border-collapse: collapse; }
.analytics-table-wrap td { padding: 12px 14px; border-bottom: 1px solid var(--line); }
.analytics-empty { padding: 20px; border: 1px dashed var(--line); color: var(--muted); }
.analytics-chart-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.analytics-chart { min-width: 0; padding: 22px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); box-shadow: 0 10px 24px rgba(0,0,0,.08); transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease; }
.analytics-chart:nth-child(1) { min-height: 320px; }
.analytics-chart:nth-child(2), .analytics-chart:nth-child(3) { min-height: 260px; }
.analytics-chart-wide { grid-column: 1 / -1; }
.analytics-chart-weekday { order: -2; }
.analytics-chart-appointments-evolution { order: -1; }
.analytics-chart-wide .analytics-bars { overflow-x: hidden; }
.analytics-chart-wide .analytics-bar-item { min-width: 0; flex-basis: 0; }
.analytics-chart:hover { transform: translateY(-2px); border-color: var(--line-strong); box-shadow: 0 16px 32px rgba(0,0,0,.14); }
.analytics-chart h2 { margin: 0 0 12px; font-size: 1rem; }
.analytics-chart-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.analytics-chart-heading h2 { margin:0; }
.analytics-chart-description { margin:4px 0 0; color:var(--muted); font-size:.78rem; line-height:1.35; }
.analytics-ai-action { border:1px solid var(--line); border-radius:999px; padding:7px 10px; background:transparent; color:var(--muted); font-size:.72rem; cursor:pointer; white-space:nowrap; }
.analytics-ai-action:hover,.analytics-ai-action:focus-visible { border-color:var(--accent); color:var(--accent); }
.analytics-ai-panel { position:fixed; z-index:100; top:0; right:0; bottom:0; width:min(440px,100%); padding:24px; overflow:auto; border-left:1px solid var(--line); background:var(--surface); box-shadow:-20px 0 60px rgba(0,0,0,.24); animation:analytics-ai-in 220ms ease both; }
.analytics-ai-panel-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:24px; }
.analytics-ai-panel-head h2 { margin:0; font-size:1.2rem; }
.analytics-ai-eyebrow { display:block; margin-bottom:5px; color:var(--accent); font-size:.68rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.analytics-ai-panel-head button { border:0; background:transparent; color:var(--muted); font-size:1.5rem; cursor:pointer; }
.analytics-ai-loading { display:grid; gap:10px; padding-top:20px; }
.analytics-ai-loading span { display:block; height:14px; border-radius:6px; background:var(--subtle-fill); animation:analytics-shimmer 1.2s infinite; }
.analytics-ai-loading span:nth-child(2) { width:82%; }.analytics-ai-loading span:nth-child(3) { width:64%; }
.analytics-ai-loading p { color:var(--muted); font-size:.86rem; }
.analytics-ai-content { display:grid; gap:14px; color:var(--text); line-height:1.55; }
.analytics-ai-summary { margin:0; padding:16px; border-radius:12px; background:color-mix(in srgb, var(--accent) 10%, var(--surface)); font-size:1rem; font-weight:650; }
.analytics-ai-content h3 { margin:12px 0 0; font-size:.86rem; color:var(--accent); text-transform:uppercase; letter-spacing:.08em; }
.analytics-ai-insight,.analytics-ai-recommendation { padding:14px; border:1px solid var(--line); border-radius:9px; background:var(--subtle-fill); }
.analytics-ai-insight { border-left:3px solid var(--accent); }
.analytics-ai-recommendation { border-color:color-mix(in srgb, var(--accent) 45%, var(--line)); background:color-mix(in srgb, var(--accent) 7%, var(--surface)); }
.analytics-ai-insight p,.analytics-ai-recommendation p { margin:6px 0 0; color:var(--muted); font-size:.86rem; }
.analytics-ai-recommendation small { display:block; margin-top:8px; color:var(--accent); font-size:.78rem; }
.analytics-ai-content ul { margin:0; padding-left:20px; color:var(--muted); font-size:.86rem; }
.analytics-ai-error { padding:16px; border:1px solid var(--danger, #b75d5d); border-radius:8px; color:var(--danger, #b75d5d); }
@keyframes analytics-ai-in { from { transform:translateX(18px); opacity:0; } to { transform:none; opacity:1; } }
.analytics-chart-legend { color: var(--muted); font-size: .8rem; }
.analytics-chart-legend i { display: inline-block; width: 9px; height: 9px; margin-right: 5px; border-radius: 50%; background: var(--accent); }
.analytics-insight { margin: 12px 0 0; padding: 10px 12px; border-left: 3px solid var(--accent); border-radius: 0 6px 6px 0; color: var(--muted); background: var(--subtle-fill); font-size: .84rem; }
.analytics-insight b { color: var(--text); }
.analytics-bars { display: flex; align-items: end; gap: 8px; min-height: 170px; padding-top: 20px; overflow-x: auto; }
.analytics-bars:before { content: ''; position: absolute; }
.analytics-bar-item { display: grid; grid-template-rows: 28px minmax(20px, 110px) 22px; flex: 1 0 54px; min-width: 54px; align-items: end; gap: 4px; text-align: center; font-size: .72rem; }
.analytics-bar-item span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); }
.analytics-bar-item i { display: block; width: min(34px, 100%); justify-self: center; border-radius: 4px 4px 0 0; background: var(--accent); animation: analytics-bar-in 420ms ease both; transform-origin: bottom; }
.analytics-bar-item:hover i { background: var(--accent-hover); }
.analytics-bar-item b { font-size: .72rem; overflow-wrap: anywhere; }
.analytics-change-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 18px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.analytics-change-list::before { content: 'Comparação com o período anterior'; grid-column: 1 / -1; color: var(--text); font-size: 1rem; font-weight: 800; }
.analytics-change-list span { display: grid; gap: 5px; min-height: 54px; align-content: center; padding: 10px 12px; border: 1px solid var(--line); border-radius: 6px; color: var(--muted); font-size: .82rem; background: var(--subtle-fill); }
.analytics-change-list b, .analytics-context-value { color: var(--accent); }
.analytics-loading { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.analytics-skeleton { position: relative; overflow: hidden; border-radius: 10px; background: var(--surface); border: 1px solid var(--line); }
.analytics-skeleton::after { content: ''; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--text) 8%, transparent), transparent); animation: analytics-shimmer 1.2s infinite; }
.analytics-skeleton-kpis { grid-column: 1 / -1; height: 120px; }
.analytics-skeleton-chart { height: 280px; }
@media (max-width: 900px) { .analytics-change-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .analytics-chart-grid, .analytics-change-list { grid-template-columns: 1fr; } }
@keyframes analytics-bar-in { from { transform: scaleY(0); opacity: .35; } to { transform: scaleY(1); opacity: 1; } }
@keyframes analytics-shimmer { to { transform: translateX(100%); } }
@media (prefers-reduced-motion: reduce) { .analytics-chart, .analytics-bar-item i { transition: none; animation: none; } }
/* Analytics UX refinement: quiet content, explicit hierarchy, comfortable controls. */
.analytics-page { max-width: 1320px; margin: 0 auto; }
.analytics-header { padding-bottom: 8px; }
.analytics-tabs { display:flex; gap:6px; padding:5px; overflow-x:auto; border:1px solid var(--line); border-radius:12px; background:var(--subtle-fill); scrollbar-width:none; }
.analytics-tabs::-webkit-scrollbar { display:none; }
.analytics-tabs button { min-height:40px; padding:8px 16px; border:0; border-radius:9px; background:transparent; color:var(--muted); font-weight:700; white-space:nowrap; cursor:pointer; transition:background .18s,color .18s,transform .18s; }
.analytics-tabs button:hover { color:var(--text); }
.analytics-tabs button.active { background:var(--surface); color:var(--text); box-shadow:0 2px 8px rgba(0,0,0,.08); }
.analytics-filters { padding:16px; border:1px solid var(--line); border-radius:14px; background:var(--surface); box-shadow:0 6px 18px rgba(0,0,0,.05); }
.analytics-filters label { gap:7px; font-size:.76rem; font-weight:700; }
.analytics-filters input,.analytics-filters select { min-height:42px; border-radius:9px; }
.analytics-chart-grid { gap:16px; }
.analytics-chart { padding:20px; border-radius:14px; box-shadow:0 5px 18px rgba(0,0,0,.055); }
.analytics-chart-heading { min-height:44px; align-items:flex-start; }
.analytics-chart-heading h2 { font-size:1.02rem; letter-spacing:-.01em; }
.analytics-ai-action { min-height:36px; padding:8px 12px; font-weight:700; }
.analytics-ai-action:active { transform:scale(.97); }
.analytics-bars { min-height:190px; padding-top:28px; }
.analytics-bar-item b { font-variant-numeric:tabular-nums; }
.analytics-ai-panel { width:min(480px,100%); padding:28px; background:color-mix(in srgb,var(--surface) 94%,var(--accent)); }
.analytics-ai-panel-head { position:sticky; top:-28px; z-index:1; margin:0 -28px 22px; padding:22px 28px 18px; background:color-mix(in srgb,var(--surface) 94%,var(--accent)); border-bottom:1px solid var(--line); }
.analytics-ai-panel-head button { display:grid; place-items:center; width:44px; height:44px; border-radius:50%; }
.analytics-ai-panel-head button:hover,.analytics-ai-panel-head button:focus-visible { background:var(--subtle-fill); color:var(--text); }
.analytics-ai-content { gap:18px; }
.analytics-ai-content h3 { margin-top:8px; padding-bottom:5px; border-bottom:1px solid var(--line); }
.analytics-ai-insight,.analytics-ai-recommendation { border-radius:12px; box-shadow:0 3px 12px rgba(0,0,0,.04); }
.analytics-ai-insight strong,.analytics-ai-recommendation strong { display:block; font-size:.95rem; }
@media (max-width:600px) {
  .analytics-ai-panel { top:auto; width:100%; max-height:88dvh; padding:22px 18px calc(22px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); border-left:0; border-radius:18px 18px 0 0; animation:analytics-ai-sheet-in 220ms ease both; }
  .analytics-ai-panel-head { top:-22px; margin:0 -18px 18px; padding:18px; }
  .analytics-tabs button { min-height:44px; }
  .analytics-chart-heading { display:grid; gap:10px; }
  .analytics-ai-action { justify-self:start; min-height:44px; }
}
@keyframes analytics-ai-sheet-in { from { transform:translateY(18px); opacity:0; } to { transform:none; opacity:1; } }
@media (max-width: 900px) { .analytics-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }.analytics-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 601px) and (max-width: 900px) { .analytics-custom-dates { grid-column: 1 / -1; } }
@media (min-width: 601px) and (max-width: 900px) { .analytics-filters.analytics-custom-mode { grid-template-columns: repeat(8, minmax(0, 1fr)); }.analytics-filters.analytics-custom-mode .analytics-status-filter { grid-column: 1 / span 2; } }
@media (max-width: 600px) { .analytics-filters, .analytics-kpis, .analytics-status { grid-template-columns: 1fr; }.analytics-filters button { width: 100%; min-width: 0; } }
@media (max-width: 600px) { .analytics-custom-dates { grid-column: 1 / -1; grid-template-columns: 1fr; }.analytics-filters.analytics-custom-mode { grid-template-columns: 1fr; }.analytics-filters.analytics-custom-mode > label,.analytics-filters.analytics-custom-mode .analytics-status-filter,.analytics-filters.analytics-custom-mode .analytics-custom-dates label:first-child,.analytics-filters.analytics-custom-mode .analytics-custom-dates label:last-child { grid-column: auto; } }
@media (max-width: 700px) { .analytics-header { align-items: flex-start; flex-direction: column; gap: 12px; }.analytics-live-indicator { order: -1; }.analytics-loading { grid-template-columns: 1fr; }.analytics-skeleton-kpis { grid-column: auto; } }

/* Global UX refinement guided by apple-design: clarity, hierarchy, focus, and adaptable touch targets. */
:root {
  --control-radius: 10px;
  --surface-shadow: 0 8px 24px rgba(0,0,0,.08);
  --surface-shadow-raised: 0 16px 36px rgba(0,0,0,.14);
}
body { min-width: 320px; line-height: 1.5; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
button, input, select, textarea, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible { outline: 3px solid color-mix(in srgb, var(--focus) 72%, transparent); outline-offset: 3px; }
button:disabled, input:disabled, select:disabled, textarea:disabled { cursor: not-allowed; opacity: .55; transform: none; }
button, .icon-button, .icon-action, .modal-close, .nav-item { min-height: 44px; }
.panel, .admin-forms, .availability-day, .exception-card, .promotion-card, .customer-detail-grid section, .customer-detail-section, .customer-combo-list article, .financial-summary article, .analytics-chart, .analytics-kpis article, .analytics-status span { border-radius: 12px; box-shadow: var(--surface-shadow); }
.panel, .admin-forms { padding: 24px; }
.dashboard-main { width: min(100%, 1320px); padding: 32px clamp(18px, 3vw, 40px) 56px; }
.sidebar { gap: 28px; padding: 24px 14px; }
.sidebar nav { gap: 4px; align-content: start; }
.nav-item { border-radius: 10px; font-weight: 650; }
.customer-dashboard .sidebar nav { align-content: start; }
.customer-dashboard { --dashboard-sidebar-width: 244px; --dashboard-sidebar-collapsed-width: 68px; }

@media (max-width: 700px) {
  .customer-dashboard .sidebar,
.customer-dashboard.sidebar-collapsed .sidebar { width: 244px; }
}

/* Final width override for the WhatsApp agent page. */
.whatsapp-page,
.whatsapp-page .whatsapp-agent-form,
.whatsapp-page .whatsapp-form-grid,
.whatsapp-page .custom-personality-field { width:100% !important; max-width:none !important; }

/* Compact agent configuration hierarchy */
.personality-advanced { margin-top:4px; border-top:1px solid var(--line); }
.personality-advanced summary { display:flex; justify-content:space-between; align-items:center; min-height:42px; cursor:pointer; color:var(--text); font-weight:600; list-style:none; }
.personality-advanced summary::-webkit-details-marker { display:none; }
.personality-advanced summary::after { content:'＋'; color:var(--accent); font-size:1.1rem; }
.personality-advanced[open] summary::after { content:'−'; }
.personality-advanced summary span { margin-left:auto; margin-right:12px; color:var(--muted); font-size:.75rem; font-weight:400; }
.personality-advanced-content { display:grid; gap:10px; padding:4px 0 2px; }
.whatsapp-agent-form footer button { min-height:44px; }
.whatsapp-capabilities label { transition:background .16s ease, border-color .16s ease; }
.whatsapp-capabilities label:has(input:checked) { border-color:color-mix(in srgb, var(--accent) 55%, var(--line)); background:color-mix(in srgb, var(--accent) 8%, var(--surface)); }
.whatsapp-capabilities input { accent-color:var(--accent); }
@media (min-width:900px) { .whatsapp-agent-form { width:100%; max-width:none; } .custom-personality-field { max-width:none; } }
@media (max-width:700px) { .agent-settings-intro { padding:15px; } .custom-personality-field { padding:13px; } .whatsapp-agent-form footer { margin-left:-4px; margin-right:-4px; } }
.custom-personality-field > textarea { min-height:170px; line-height:1.55; }
.whatsapp-agent-form { width:100%; max-width:none; }
.dashboard-main:has(.whatsapp-page) { width:100%; }
.personality-block textarea { min-height:110px; line-height:1.5; }
.improve-personality { display:inline-flex; align-items:center; justify-content:center; gap:6px; width:auto; min-height:38px; margin-top:2px; padding:0 14px; border:1px solid color-mix(in srgb, var(--accent) 65%, var(--line)); border-radius:999px; background:color-mix(in srgb, var(--accent) 10%, var(--surface)); color:var(--accent); font-weight:700; box-shadow:none; transition:transform .16s ease, background .16s ease, box-shadow .16s ease; }
.improve-personality:hover { transform:translateY(-1px); background:color-mix(in srgb, var(--accent) 18%, var(--surface)); box-shadow:0 5px 14px color-mix(in srgb, var(--accent) 18%, transparent); }
.improve-personality:disabled { cursor:wait; opacity:.72; transform:none; }
.whatsapp-page, .whatsapp-agent-form { width:100%; max-width:none; }
.nav-item.active { position: relative; background: var(--surface-raised); }
.nav-item.active::before { content: ''; position: absolute; left: 0; top: 10px; bottom: 10px; width: 3px; border-radius: 3px; background: var(--accent); }
.topbar { min-height: 72px; padding-inline: clamp(14px, 3vw, 32px); }
.profile-menu { width: 220px; padding: 8px; border-radius: 12px; box-shadow: var(--surface-shadow-raised); }
.profile-menu a, .profile-menu button { min-height: 44px; border-radius: 8px; }
.profile-menu a:hover, .profile-menu button:hover { background: var(--surface-raised); text-decoration: none; transform: none; box-shadow: none; }
.services-heading, .exceptions-header, .promotion-card header, .promotion-card footer { gap: 18px; }
.services-heading { margin-bottom: 24px; }
.services-heading h1, .analytics-header h1 { font-size: clamp(1.55rem, 2.4vw, 2rem); letter-spacing: -.025em; }
.secondary-button, .text-button, .icon-action { min-height: 44px; }
.services-table-wrap, .analytics-table-wrap { border-radius: 12px; box-shadow: var(--surface-shadow); }
.services-table th, .services-table td, .analytics-table-wrap th, .analytics-table-wrap td { padding: 14px 16px; }
.services-table tbody tr:hover, .analytics-table-wrap tbody tr:hover { background: var(--surface-raised); }
.modal-backdrop { padding: 20px; background: color-mix(in srgb, var(--bg) 68%, transparent); backdrop-filter: blur(5px); }
.service-modal { border-radius: 16px; box-shadow: var(--surface-shadow-raised); }
.service-modal header { position: sticky; top: -22px; z-index: 1; padding-bottom: 14px; background: var(--modal-bg); }
.service-modal footer { position: sticky; bottom: -22px; padding-top: 14px; background: var(--modal-bg); }
.empty-cell, .analytics-empty, .dashboard-empty, .promotion-empty { border-radius: 12px; }
.dashboard-empty, .analytics-empty, .promotion-empty { padding: 28px 20px; text-align: center; }
@media (max-width: 700px) {
  .dashboard-main { padding: 24px 16px 44px; }
  .panel, .admin-forms { padding: 18px; }
  .services-heading, .exceptions-header { align-items: flex-start; flex-wrap: wrap; }
  .services-heading > *, .exceptions-header > * { max-width: 100%; }
  .service-modal { width: 100%; max-height: calc(100dvh - 24px); border-radius: 16px 16px 12px 12px; padding: 20px 18px; }
  .service-modal footer { bottom: -20px; flex-direction: column-reverse; align-items: stretch; }
  .service-modal footer button { width: 100%; }
  .profile-menu { right: -4px; width: min(240px, calc(100vw - 24px)); }
  .appearance-public-media { padding: 18px; }
  .public-media-actions { align-items: stretch; flex-direction: column; }
  .public-media-actions button, .public-media-actions a { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

.referral-page { min-height: 100dvh; display: grid; place-items: center; padding: 24px; background: var(--bg); }
.referral-card { width: min(100%, 520px); padding: clamp(28px, 6vw, 56px); border: 1px solid var(--border); border-radius: 20px; background: var(--surface); box-shadow: var(--surface-shadow-raised); text-align: center; }
.referral-card h1 { margin: 10px 0 14px; font-size: clamp(2rem, 7vw, 3.2rem); letter-spacing: -.04em; }
.referral-card p { line-height: 1.6; }
.referral-details { display: grid; gap: 12px; margin: 26px 0 0; text-align: left; }
.referral-details div { display: grid; gap: 3px; padding: 12px 0; border-top: 1px solid var(--border); }
.referral-details dt { color: var(--muted); font-size: .82rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.referral-details dd { margin: 0; line-height: 1.45; }
.referral-card .customer-primary-link, .referral-card .secondary-button { display: inline-flex; margin-top: 20px; min-height: 48px; align-items: center; justify-content: center; }
.referral-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.referral-summary { margin-top: 22px; }
.referral-benefit-area { margin-top: 22px; }
.referral-benefit-copy { margin: 0 0 18px; padding: 18px 20px; border: 1px dashed #34a853; border-radius: 12px; line-height: 1.55; text-align: left; }
.referral-benefit-copy p { margin: 0 0 12px; text-align: left; }
.referral-benefit-copy ol { margin: 0; padding-left: 26px; text-align: left; list-style-position: outside; }
.referral-benefit-copy li { padding: 3px 0 3px 6px; text-align: left; }
.referral-congrats-icon { display: inline-block; margin-right: 3px; }
.referral-highlight { display: grid; gap: 5px; margin: 18px 0; padding: 18px; border-radius: 12px; background: var(--surface-raised); }
.referral-highlight strong { font-size: 1.35rem; }
.referral-highlight span { color: var(--muted); }
.referral-summary > div { display: grid; gap: 4px; }
@media (max-width: 520px) { .referral-actions > * { flex: 1 1 100%; } }
.commission-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.commission-summary article { padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.commission-summary span { display: block; margin-bottom: 8px; color: var(--muted); font-size: .84rem; }
.commission-summary strong { font-size: 1.3rem; overflow-wrap: anywhere; }
.commission-summary-view, .commission-rule-form { display: grid; gap: 20px; }
.commission-filters, .commission-rule-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; align-items: end; }
.commission-filters button, .commission-rule-actions button { width: auto; padding: 0 16px; }
.commission-page .commission-filter-note { margin: -12px 2px 0; color: var(--muted); font-size: .82rem; }
.commission-page .commission-summary article small { color: var(--muted); font-size: .76rem; line-height: 1.4; }
.commission-rule-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.commission-rule-actions label { display: flex; align-items: center; gap: 8px; margin: 0 auto 0 0; }
.commission-rule-actions input { width: auto; }
.commission-page td .secondary-button { width: auto; min-height: 36px; padding: 0 10px; }
@media (max-width: 600px) { .commission-filters, .commission-rule-fields { grid-template-columns: 1fr; }.commission-filters button { width: 100%; } }
.commission-page{display:grid;gap:20px;width:100%;max-width:none}.commission-page .services-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.commission-page .services-heading h1{margin:0;letter-spacing:-.025em}.commission-page .financial-tabs{gap:5px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft);overflow-x:auto;scrollbar-width:none}.commission-page .financial-tabs button{min-height:42px;padding:0 15px;border:1px solid transparent;border-radius:8px;border-bottom-width:1px;background:transparent}.commission-page .financial-tabs button.active{border-color:var(--accent);background:var(--surface);box-shadow:0 1px 5px rgba(0,0,0,.1)}.commission-page .financial-tabs button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.commission-page .commission-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:12px;align-items:end;padding:18px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:0 5px 16px rgba(0,0,0,.04)}.commission-page .commission-filters label,.commission-page .commission-rule-fields label{gap:6px;color:var(--muted);font-size:.76rem;font-weight:750}.commission-page .commission-filters input,.commission-page .commission-filters select,.commission-page .commission-rule-fields input,.commission-page .commission-rule-fields select{min-height:44px;margin-top:5px;border-radius:9px;background:var(--bg-soft)}.commission-page .commission-filters button{min-height:44px;border-radius:9px}.commission-page .commission-summary{gap:14px}.commission-page .commission-summary article{display:grid;gap:8px;min-height:112px;padding:18px;border-radius:15px;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.04)}.commission-page .commission-summary span{margin:0;color:var(--muted);font-size:.72rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.commission-page .commission-summary strong{font-size:clamp(1.35rem,2.4vw,1.75rem);line-height:1.1}.commission-page .services-table-wrap{border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.03)}.commission-page .services-table{margin:0}.commission-page .services-table th{font-size:.72rem;letter-spacing:.035em;text-transform:uppercase}.commission-page .services-table td{vertical-align:middle}.commission-page .services-table td small{display:block;margin-top:3px;color:var(--muted)}.commission-page .commission-rule-form{gap:18px;padding:20px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:0 5px 16px rgba(0,0,0,.04)}.commission-page .commission-rule-form h2{margin:0;font-size:1.1rem}.commission-page .commission-rule-actions{padding-top:4px}.commission-page .commission-rule-actions label{color:var(--text);font-size:.85rem}.commission-page .commission-rule-actions button{min-height:42px;border-radius:9px}.commission-page .form-message:empty{display:none}@media(max-width:900px){.commission-page .commission-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.commission-page .commission-filters button{grid-column:1/-1;justify-self:start;width:auto}}@media(max-width:600px){.commission-page{gap:16px}.commission-page .services-heading{display:block}.commission-page .commission-filters{grid-template-columns:1fr;padding:15px}.commission-page .commission-filters button{width:100%}.commission-page .commission-rule-form{padding:16px}.commission-page .commission-rule-actions{align-items:stretch;flex-direction:column}.commission-page .commission-rule-actions label{margin:0}.commission-page .commission-rule-actions button{width:100%}}
.financial-tabs { display: flex; gap: 8px; border-bottom: 1px solid var(--line); }
.financial-tabs button { width: auto; min-height: 44px; padding: 0 16px; border-radius: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--muted); box-shadow: none; }
.financial-tabs button.active { border-color: var(--accent); color: var(--text); }
.financial-tabs button:hover { background: var(--surface-raised); box-shadow: none; }
.financial-new-entry-button { width: auto; min-width: 124px; padding: 0 16px; }
.manage-types-button { width: auto; display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 0 14px; }
.manage-types-button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.financial-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.financial-summary article { padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.financial-summary .financial-summary-label { display: flex; align-items: center; gap: 8px; }
.financial-summary-label svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.financial-summary span { display: block; margin-bottom: 8px; color: var(--muted); font-size: .84rem; font-weight: 700; text-transform: uppercase; }
.financial-summary strong { font-size: clamp(1.15rem, 2vw, 1.6rem); overflow-wrap: anywhere; }
.financial-filters { padding: 18px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.financial-form-grid, .financial-filters { display: grid; gap: 12px; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: end; }
.financial-entry-modal { width: min(100%, 700px); max-height: calc(100dvh - 32px); }
.financial-entry-modal header, .financial-types-modal header { margin-bottom: 20px; }
.financial-entry-modal header h2, .financial-types-modal header h2 { margin: 0; }
.financial-entry-modal .financial-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 16px; }
.financial-entry-modal .financial-form-grid > label, .financial-type-field > label { margin: 0; }
.financial-entry-modal [data-financial-error]:empty { display: none; }
.financial-entry-modal input, .financial-entry-modal select, .financial-types-modal input { min-height: 44px; }
.financial-type-field { display: grid; gap: 6px; min-width: 0; }
.financial-type-control { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: stretch; }
.financial-type-control .manage-types-button { margin: 0; min-height: 44px; }
.financial-entry-modal .secondary-button, .financial-types-modal .secondary-button { margin: 0; }
.financial-form .form-message { margin: 14px 0 0; }
.financial-form .form-message:empty { display: none; }
.financial-form footer { margin-top: 24px; }
.financial-types-backdrop { z-index: 31; }
.financial-types-modal { display: flex; flex-direction: column; max-height: calc(100dvh - 32px); }
.financial-types-modal h3 { margin: 0 0 12px; font-size: 1rem; }
.financial-type-form { flex: none; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.financial-type-main { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: end; }
.financial-type-main label { margin: 0; min-width: 0; }
.financial-type-main button { width: auto; min-height: 44px; padding: 0 18px; }
.financial-type-form-options { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; }
.financial-type-form-options .checkbox-row { margin: 0; }
.financial-type-form-options .secondary-button { width: auto; padding: 0 14px; }
.financial-type-form [data-type-error="general"] { margin: 8px 0 0; }
.financial-type-form [data-type-error="general"]:empty { display: none; }
.financial-types-existing { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; padding-top: 20px; }
.financial-type-list { display: grid; gap: 8px; overflow-y: auto; min-height: 0; align-content: start; }
.financial-filters label { margin-bottom: 0; }
.financial-filters button { align-self: end; min-height: 44px; }
.financial-form footer { display: flex; justify-content: flex-end; gap: 10px; }
.financial-form footer button, .financial-filters button { width: auto; padding: 0 16px; }
.financial-type-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 6px; color: var(--text); background: transparent; box-shadow: none; text-align: left; }
.financial-type-row small { color: var(--muted); }
.financial-type-row svg { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; }
.financial-type-row span { min-width: 0; overflow-wrap: anywhere; }
.financial-expense-type-row { justify-content: flex-start; }
.financial-expense-type-row span { flex: 1; }
.financial-expense-type-row .icon-action { flex: none; }
.financial-period-controls { display: grid; gap: 14px; }
.financial-period-modes { display: flex; flex-wrap: wrap; gap: 8px; }
.financial-period-modes button { width: auto; min-height: 42px; padding: 0 14px; border: 1px solid var(--line); border-radius: 6px; color: var(--muted); background: var(--surface); box-shadow: none; }
.financial-period-modes button.active { color: var(--accent); border-color: var(--accent); }
.financial-overview-page button:focus-visible, .financial-overview-page input:focus-visible, .financial-tabs button:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.financial-period-controls > label { max-width: 240px; margin: 0; }
.financial-custom-dates { display: grid; grid-template-columns: repeat(2, minmax(0, 220px)) auto; align-items: end; gap: 12px; }
.financial-custom-dates label { margin: 0; }
.financial-custom-dates button { width: auto; min-height: 44px; padding: 0 16px; }
.financial-custom-dates .field-error { grid-column: 1 / -1; margin: 0; }
#financial-overview-results { display: grid; gap: 18px; margin-top: 4px; }
.financial-overview-period { margin: 0; color: var(--muted); font-size: .9rem; }
.financial-overview-cards article { display: grid; gap: 4px; padding: 20px; }
.financial-overview-cards article small { color: var(--muted); font-weight: 700; }
.financial-balance-positive strong { color: #9fdbb4; }
.financial-balance-negative strong { color: #ff9d96; }
.financial-rankings { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; margin-top: 20px; }
.financial-rankings section { min-width: 0; }
.financial-page{display:grid;gap:20px;width:100%;max-width:none}.financial-page .services-heading{margin-bottom:0}.financial-page .services-heading h1{letter-spacing:-.025em}.financial-page .financial-tabs{gap:5px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft);overflow-x:auto;scrollbar-width:none}.financial-page .financial-tabs button{min-height:42px;padding:0 15px;border:1px solid transparent;border-radius:8px;border-bottom-width:1px}.financial-page .financial-tabs button.active{border-color:var(--accent);background:var(--surface);box-shadow:0 1px 5px rgba(0,0,0,.1)}.financial-page .financial-summary{gap:14px}.financial-page .financial-summary article{display:grid;gap:8px;min-height:112px;padding:18px;border-radius:15px;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.04)}.financial-page .financial-summary span{margin:0;font-size:.72rem;letter-spacing:.04em}.financial-page .financial-summary strong{font-size:clamp(1.35rem,2.4vw,1.75rem);line-height:1.1}.financial-page .financial-filters{grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:12px;padding:18px;border-radius:15px;box-shadow:0 5px 16px rgba(0,0,0,.04)}.financial-page .financial-filters input,.financial-page .financial-filters select{min-height:44px;margin-top:5px;border-radius:9px;background:var(--bg-soft)}.financial-page .financial-filters button{min-height:44px;border-radius:9px}.financial-page .services-table-wrap{border-radius:15px;box-shadow:0 1px 3px rgba(0,0,0,.03)}.financial-page .financial-table{margin:0}.financial-page .financial-table th{font-size:.72rem;letter-spacing:.035em}.financial-page .financial-table td{vertical-align:middle}.financial-page .financial-period-controls{padding:18px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:0 5px 16px rgba(0,0,0,.04)}.financial-page .financial-period-modes{gap:5px;padding:4px;border:1px solid var(--line);border-radius:10px;background:var(--bg-soft);overflow-x:auto;scrollbar-width:none}.financial-page .financial-period-modes button{border:1px solid transparent;border-radius:7px;background:transparent}.financial-page .financial-period-modes button.active{border-color:var(--accent);background:var(--surface);color:var(--text);box-shadow:0 1px 4px rgba(0,0,0,.1)}.financial-page .financial-overview-period{font-size:.8rem}.financial-page .financial-rankings{gap:16px;margin-top:0}.financial-page .financial-rankings section{padding:20px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.03)}.financial-page button:focus-visible,.financial-page input:focus-visible,.financial-page select:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media(max-width:920px){.financial-page .financial-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.financial-page .financial-filters button{grid-column:1/-1;justify-self:start;width:auto}}@media(max-width:600px){.financial-page{gap:16px}.financial-page .financial-filters{grid-template-columns:1fr;padding:15px}.financial-page .financial-filters button{width:100%}.financial-page .financial-period-controls{padding:15px}.financial-page .financial-period-modes{width:calc(100% + 8px);margin-left:-4px}.financial-page .financial-custom-dates{grid-template-columns:1fr}.financial-page .financial-custom-dates button{width:100%}.financial-page .financial-rankings{grid-template-columns:1fr}.financial-page .financial-rankings section{padding:16px}}
.financial-rankings h2 { margin: 0 0 14px; font-size: 1.05rem; }
.financial-ranking-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.financial-ranking-list li { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 64px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.financial-ranking-list li > div { display: grid; gap: 4px; min-width: 0; }
.financial-ranking-list li strong { overflow-wrap: anywhere; }
.financial-ranking-list li span, .financial-ranking-empty { color: var(--muted); font-size: .85rem; }
.financial-ranking-empty { margin: 0; padding: 14px 0; border-top: 1px solid var(--line); }
.financial-ranking-list li > strong { flex: none; }
.financial-overview-state, .financial-overview-empty { padding: 20px; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); }
.financial-overview-state button { width: auto; padding: 0 16px; }
.manager-label { margin-left: 8px; color: var(--accent); font-size: .76rem; font-weight: 700; text-transform: uppercase; }
.establishment-person > div { flex-wrap: wrap; }
.employee-report-page { display: grid; gap: 22px; min-width: 0; }
.employee-report-page > header h1 { margin-bottom: 0; }
.employee-report-tabs { display: flex; gap: 4px; max-width: 100%; overflow-x: auto; border-bottom: 1px solid var(--line); scrollbar-width: thin; }
.employee-report-tabs button { flex: none; width: auto; min-height: 44px; padding: 0 14px; border-radius: 0; border-bottom: 2px solid transparent; color: var(--muted); background: transparent; box-shadow: none; white-space: nowrap; }
.employee-report-tabs button.active { color: var(--text); border-color: var(--accent); }
.employee-report-filters { display: grid; gap: 14px; }
.employee-report-periods { display: flex; flex-wrap: wrap; gap: 8px; }
.employee-report-periods button { width: auto; min-height: 42px; padding: 0 14px; border: 1px solid var(--line); border-radius: 6px; color: var(--muted); background: var(--surface); box-shadow: none; }
.employee-report-periods button.active { color: var(--accent); border-color: var(--accent); }
.employee-report-dates, .employee-report-selects { display: grid; grid-template-columns: repeat(2, minmax(0, 220px)) auto; align-items: end; gap: 12px; }
.employee-report-selects { grid-template-columns: repeat(2, minmax(0, 260px)); }
.employee-report-dates label, .employee-report-selects label { margin: 0; }
.employee-report-dates button { width: auto; min-height: 44px; padding: 0 16px; }
.employee-report-dates .field-error { grid-column: 1 / -1; margin: 0; }
.employee-report-content { display: grid; gap: 24px; min-width: 0; }
.employee-report-range { margin: 0; color: var(--muted); font-size: .9rem; }
.employee-report-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.employee-report-cards article { display: grid; align-content: space-between; gap: 12px; min-height: 110px; padding: 18px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.employee-report-cards span { color: var(--muted); font-size: .82rem; font-weight: 700; text-transform: uppercase; }
.employee-report-cards strong { font-size: 1.45rem; overflow-wrap: anywhere; }
.employee-report-charts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin-top: 8px; }
.employee-report-charts > :last-child:nth-child(odd) { grid-column: 1 / -1; }
.employee-report-chart { min-width: 0; }
.employee-report-chart h2, .employee-report-list h2 { margin: 0 0 14px; font-size: 1.05rem; }
.employee-report-bars { display: grid; gap: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.employee-report-bar-row { display: grid; gap: 8px; }
.employee-report-bar-heading { display: flex; justify-content: space-between; gap: 12px; font-size: .88rem; }
.employee-report-bar-heading span { min-width: 0; overflow-wrap: anywhere; }
.employee-report-bar-heading strong { flex: none; }
.employee-report-track { height: 9px; overflow: hidden; border-radius: 4px; background: var(--surface-raised); }
.employee-report-track > div { height: 100%; border-radius: inherit; background: var(--accent); }
.employee-report-list { min-width: 0; margin-top: 8px; }
.employee-report-state, .employee-report-empty { margin: 0; padding: 18px; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); }
.employee-report-state button { width: auto; padding: 0 16px; }
.employee-report-page button:focus-visible, .employee-report-page input:focus-visible, .employee-report-page select:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
@media (max-width: 920px) { .employee-report-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .employee-report-charts { grid-template-columns: 1fr; gap: 28px; }.employee-report-charts > :last-child:nth-child(odd) { grid-column: auto; }.employee-report-dates, .employee-report-selects { grid-template-columns: 1fr; }.employee-report-dates button { width: 100%; }.employee-report-cards { grid-template-columns: 1fr; }.employee-report-cards article { min-height: 92px; } }
@media (max-width: 700px) { .financial-rankings { grid-template-columns: 1fr; gap: 28px; margin-top: 12px; }.financial-custom-dates { grid-template-columns: 1fr; }.financial-custom-dates button { width: 100%; }.financial-ranking-list li > strong { flex: 0 1 auto; text-align: right; } }
.financial-service-type { cursor: default; }
.checkbox-row { display: flex; align-items: center; gap: 8px; }
.checkbox-row input { width: 18px; min-height: 18px; }
@media (max-width: 920px) { .financial-form-grid, .financial-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }.financial-summary { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .financial-entry-modal .financial-form-grid, .financial-filters, .financial-type-main { grid-template-columns: 1fr; }.financial-type-main button { width: 100%; }.financial-entry-modal .financial-form footer { flex-direction: column; align-items: stretch; }.financial-entry-modal .financial-form footer button, .financial-filters button { width: 100%; flex: none; }.manage-types-button span { display: none; }.manage-types-button { width: 44px; padding: 0; justify-content: center; }.financial-new-entry-button { min-width: 110px; padding: 0 10px; } }
@media (max-width: 820px) { .promotion-card-grid { grid-template-columns:1fr; }.promotion-date-grid { grid-template-columns:1fr 1fr; }.promotion-rule-box { grid-template-columns:1fr 78px; align-items:end; }.promotion-rule-box span { padding-bottom:0; }.promotion-rule-box span:nth-of-type(1), .promotion-rule-box span:nth-of-type(2) { align-self:center; } }
@media (max-width: 600px) { .promotion-heading-actions { gap:8px; }.promotion-heading-actions .secondary-button { min-height:44px; padding:0 10px; }.promotion-tabs button { min-height:42px; padding:0 12px; }.promotion-check-grid { grid-template-columns:1fr; }.promotion-day-picker { grid-template-columns:repeat(4,minmax(0,1fr)); }.promotion-date-grid, .promotion-rule-box, .first-visit-benefit-grid, .promotion-benefit-grid { grid-template-columns:1fr; }.promotion-rule-box span { padding:0; }.promotion-card header, .promotion-card footer { align-items:stretch; flex-direction:column; }.promotion-card dl div { grid-template-columns:1fr; gap:4px; }.promotion-card footer .secondary-button, .promotion-card footer .icon-action { width:100%; }.promotion-card footer .icon-action { justify-content:center; } }
@media (max-width: 700px) { .sidebar { position: fixed; z-index: 10; width: 244px; transform: translateX(-100%); }.dashboard-layout.drawer-open .sidebar { transform: translateX(0); }.dashboard-layout.drawer-open .drawer-backdrop { display: block; position: fixed; inset: 0; z-index: 9; background: rgba(0,0,0,.55); border: 0; }.sidebar-collapsed .sidebar { width: 244px; }.sidebar-collapsed .sidebar span { display: initial; }.profile-name { display: none; }.topbar { padding: 0 14px; }.dashboard-main { width: 100%; padding: 28px 18px; } }
@media (max-width:700px) { .services-heading { align-items:flex-end; }.new-service-button span { display:none; }.new-service-button { width:44px; padding:0; font-size:1.4rem; }.services-table-wrap { border:0; overflow:visible; }.services-table,.services-table tbody,.services-table tr,.services-table td { display:block; min-width:0; }.services-table thead { display:none; }.services-table tr { margin-bottom:12px; padding:12px; border:1px solid var(--line); border-radius:8px; background:var(--surface); }.services-table td { display:grid; grid-template-columns:90px 1fr; gap:12px; padding:8px 0; border:0; }.services-table td::before { content:attr(data-label); color:var(--muted); font-size:.78rem; font-weight:700; }.services-table .service-actions { display:flex; }.service-modal footer { position:sticky; bottom:-22px; padding:14px 0 0; background:var(--modal-bg); }.service-modal footer button { flex:1; } }
@media (max-width:700px) { .customer-detail-grid { grid-template-columns: 1fr; }.customer-combo-list article header { align-items: flex-start; flex-direction: column; }.customers-search { max-width: none; }.customers-pagination { justify-content: stretch; }.customers-pagination button { flex: 1; } }
@media (min-width: 720px) { .availability-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.availability-day { min-height: 220px; }.availability-day .secondary-button { align-self: end; } }
@media (min-width: 1040px) { .availability-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }.availability-day { padding: 20px; } }

/* Dashboard layout: fixed desktop rail, independent navigation scroll, natural page scroll. */
.dashboard-layout {
  --dashboard-sidebar-width: 244px;
  --dashboard-sidebar-collapsed-width: 68px;
}

@media (min-width: 701px) {
  .dashboard-layout { display: block; min-height: 100dvh; }
  .dashboard-layout .sidebar {
    position: fixed;
    z-index: 20;
    inset: 0 auto 0 0;
    width: var(--dashboard-sidebar-width);
    height: 100dvh;
    min-height: 0;
    overflow: hidden;
  }
  .dashboard-layout .sidebar nav {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: var(--line-strong) transparent;
  }
  .dashboard-layout .dashboard-workspace {
    min-height: 100dvh;
    margin-left: var(--dashboard-sidebar-width);
    transition: margin-left 180ms ease;
  }
  .dashboard-layout.sidebar-collapsed .sidebar { width: var(--dashboard-sidebar-collapsed-width); }
  .dashboard-layout.sidebar-collapsed .dashboard-workspace { margin-left: var(--dashboard-sidebar-collapsed-width); }
  .dashboard-layout .topbar { position: relative; z-index: 15; }
  .dashboard-layout .profile-menu { z-index: 40; }
}

@media (max-width: 700px) {
  body:has(.dashboard-layout.drawer-open) { overflow: hidden; }
  .dashboard-layout .topbar {
    position: fixed;
    inset: 0 0 auto;
    z-index: 15;
    width: 100%;
  }
  .dashboard-layout .dashboard-workspace { padding-top: 64px; }
  .dashboard-layout .sidebar {
    height: 100dvh;
    overflow: hidden;
  }
  .dashboard-layout .sidebar nav {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
  }
}

.availability-copy-button {
  width: auto;
  min-height: 30px;
  padding: 0 9px;
  border: 1px solid var(--line-strong);
  border-radius: 6px;
  color: var(--muted);
  background: transparent;
  box-shadow: none;
  font-size: .75rem;
  font-weight: 700;
  white-space: nowrap;
}

.availability-copy-button:hover {
  color: var(--text);
  background: var(--surface-raised);
  box-shadow: none;
  transform: none;
}

.availability-copy-button:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 3px;
}

@media (min-width: 760px) {
  .app-shell {
    padding: 32px;
  }

  .admin-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.dashboard-appointments { margin-top: 28px; border-top: 1px solid var(--line); padding-top: 20px; }
.customer-page { width: 100%; }
.customer-primary-link { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 18px; border-radius: 6px; background: var(--accent); color: var(--accent-text); font-weight: 700; text-decoration: none; }
.customer-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 24px 0; }
.customer-heading-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.customer-plans-page { display:grid; gap:18px; }
.customer-plan-card { padding:20px; border:1px solid var(--line); border-radius:12px; background:var(--surface,#fff); display:grid; gap:12px; }
.customer-plan-card > header { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.customer-plan-card h2 { margin:4px 0; }
.customer-plan-card h3 { font-size:1rem; margin:0 0 8px; }
.customer-plan-card ul { margin:0; padding-left:20px; display:grid; gap:5px; }
.customer-plan-status { border-radius:999px; background:#f2efe9; padding:7px 11px; font-size:.82rem; font-weight:650; }
.customer-plan-status-active { background:#e8f5eb; color:#176b35; }
.customer-plan-status-declined,.customer-plan-status-expired,.customer-plan-status-cancelled { background:#f9e9e7; color:#8b2f28; }
.customer-plan-card details summary { cursor:pointer; font-weight:600; }
.customer-plan-card a:focus-visible,.customer-heading-actions a:focus-visible { outline:3px solid #1565c0; outline-offset:3px; }
.customer-summary > div { display: flex; flex-direction: column; gap: 8px; padding: 16px; border: 1px solid var(--line); border-radius: 6px; }
.customer-summary span,.customer-appointment small { color: var(--muted); }
.customer-summary strong { font-size: 1.7rem; }
.customer-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.customer-section-heading h2 { margin: 0; font-size: 1.2rem; }
.customer-place-list { display: grid; gap: 8px; margin-top: 16px; }
.customer-place-list a { display: flex; justify-content: space-between; gap: 12px; padding: 14px; border: 1px solid var(--line); border-radius: 6px; color: var(--text); text-decoration: none; }
.customer-appointment { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 6px; }
.customer-appointment > div:first-child { display: grid; gap: 5px; }
.customer-appointment > span,.customer-appointment > small { display: block; }
.customer-appointment-actions { display: flex; gap: 8px; }
.customer-appointment-actions a,.customer-appointment-actions button,.customer-booking-actions a { display: inline-flex; align-items: center; justify-content: center; width: auto; min-height: 44px; padding: 9px 16px; text-decoration: none; }
.customer-appointment-actions .secondary-button { margin: 0; border-radius: 6px; }
.customer-booking-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 24px 0; }
.customer-booking-grid label { min-width: 0; }
.customer-booking-grid select,.customer-booking-grid input { width: 100%; min-height: 44px; }
#customer-booking-summary { padding: 18px 0; border-top: 1px solid var(--line); }
#customer-booking-summary h2 { margin: 0 0 10px; font-size: 1.15rem; }
#customer-booking-summary p { margin: 5px 0; }
.customer-booking-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; }
.customer-booking-actions button { width: auto; }
.customer-booking-actions .secondary-button { margin: 0; border-radius: 6px; }
@media (max-width: 700px) { .customer-booking-grid,.customer-summary { grid-template-columns: 1fr; }.customer-appointment { align-items: stretch; flex-direction: column; }.customer-appointment-actions > * { flex: 1; }.customer-booking-actions > * { flex: 1; }.customer-section-heading { flex-wrap: wrap; } }
@media (max-width: 700px) { .customer-heading-actions { width:100%; }.customer-heading-actions > * { flex:1; text-align:center; }.customer-plan-card { padding:16px; }.customer-plan-card > header { display:grid; gap:10px; }.customer-plan-status { justify-self:start; max-width:100%; white-space:normal; }.customer-plan-card details { overflow-wrap:anywhere; } }
.public-link-panel .muted { overflow-wrap: anywhere; }
.public-link-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.public-link-actions > button,.public-link-actions form button { width: auto; padding: 0 16px; }
.public-link-actions form { display: flex; flex-wrap: wrap; align-items: end; gap: 10px; width: 100%; }
.public-link-actions form label { flex: 1; min-width: min(100%, 260px); margin: 0; }
.public-booking-body { min-height: 100vh; background: var(--bg); }
.public-booking-header { min-height: 68px; display: flex; align-items: center; padding: 0 max(24px, calc((100vw - 1080px)/2)); border-bottom: 1px solid var(--line); }
.public-booking-brand { color: var(--text); font-weight: 900; text-decoration: none; }
.public-booking-brand span { color: var(--accent); }
.public-booking-shell { width: min(calc(100% - 32px), 820px); margin: 0 auto; padding: 48px 0 72px; }
.public-booking-intro { margin-bottom: 32px; }
.public-booking-intro h1 { max-width: 18ch; margin: 0 0 12px; font-size: clamp(2rem, 3rem, 3rem); overflow-wrap: anywhere; }
.public-booking-intro > p:last-child { max-width: 55ch; margin: 0; color: var(--muted); }
.public-progress { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; padding: 0 0 22px; margin: 0 0 26px; list-style: none; border-bottom: 1px solid var(--line); }
.public-progress li { min-width: 0; color: var(--muted); font-size: .75rem; }
.public-progress li button { width: 100%; min-height: 44px; display: flex; align-items: center; gap: 7px; padding: 0; border: 0; border-radius: 4px; background: transparent; color: inherit; box-shadow: none; text-align: left; cursor: pointer; }
.public-progress li button:hover:not(:disabled) { background: var(--surface-raised); box-shadow: none; }
.public-progress li button:disabled { opacity: .5; cursor: default; }
.public-progress li button:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.public-progress li span { flex: none; width: 26px; height: 26px; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: 50%; font-weight: 700; }
.public-progress li.active,.public-progress li.done { color: var(--text); }
.public-progress li.active span { background: var(--accent); border-color: var(--accent); color: var(--accent-text); }
.public-progress li.done span { border-color: var(--accent); color: var(--accent); }
.public-progress li small { min-width: 0; overflow-wrap: anywhere; }
.public-stage-heading { display: flex; align-items: start; gap: 12px; margin-bottom: 22px; }
.public-stage-heading h2 { margin: 0; font-size: 1.5rem; }
.public-stage-heading p { margin: 8px 0 0; color: var(--muted); }
.public-back { width: 42px; min-width: 42px; min-height: 42px; padding: 0; border: 1px solid var(--line); background: transparent; color: var(--text); box-shadow: none; font-size: 1.35rem; }
.public-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.public-choice { min-height: 112px; display: flex; flex-direction: column; align-items: start; justify-content: center; gap: 8px; padding: 18px; border: 1px solid var(--line); border-radius: 8px; background: var(--bg-soft); color: var(--text); box-shadow: none; text-align: left; }
.public-choice:hover,.public-choice.selected { border-color: var(--accent); background: var(--surface-raised); box-shadow: none; }
.public-choice:disabled { opacity: .42; cursor: not-allowed; border-color: var(--line); background: var(--bg-soft); box-shadow: none; }
.public-choice strong { font-size: 1rem; overflow-wrap: anywhere; }
.public-choice small,.public-choice span:not(.public-choice-avatar) { color: var(--muted); }
.public-choice b { color: var(--accent); }
.public-choice-avatar { width: 40px; height: 40px; flex: none; display: grid; place-items: center; overflow: hidden; border-radius: 50%; background: var(--accent); color: var(--accent-text); font-weight: 800; }
.public-choice-avatar img { width: 100%; height: 100%; display: block; object-fit: cover; }
.public-professional-choice { min-height: 88px; flex-direction: row; align-items: center; gap: 12px; }
.public-choice .public-professional-copy { min-width: 0; display: grid; gap: 4px; color: var(--text); }
.profile-photo-row { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.profile-photo-avatar { width: 64px; height: 64px; }
.profile-photo-controls { flex: 1 1 220px; display: grid; gap: 8px; justify-items: start; }
.profile-photo-controls label { width: 100%; }
.profile-photo-controls input { height: auto; max-width: 100%; padding: 8px; }
.profile-photo-controls button { width: auto; padding: 0 18px; }
.profile-photo-controls .form-message { margin: 0; }
.combos-page { min-width: 0; }
.combos-page .financial-tabs button { flex: 1 1 0; min-width: 0; padding: 6px 8px; }
.combo-section-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin: 24px 0 16px; }
.combo-section-heading h2 { margin: 0; font-size: 1.15rem; }
.combo-section-heading p { margin: 4px 0 0; font-size: .85rem; }
.combo-section-heading button { width: auto; min-height: 44px; margin: 0; padding: 0 16px; border-radius: 6px; }
.combo-filters { display: grid; grid-template-columns: minmax(0, 2fr) minmax(160px, 1fr); gap: 12px; margin-bottom: 18px; }
.combo-filters label { min-width: 0; margin: 0; font-size: .85rem; }
.combo-filters input,.combo-filters select { min-height: 44px; }
.combo-contract-list { display: grid; gap: 10px; }
.combo-contract-row { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.combo-contract-row-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.combo-contract-row-heading > div { min-width: 0; overflow-wrap: anywhere; }
.combo-contract-row-heading h3 { margin: 0; font-size: 1rem; }
.combo-contract-row-heading p { margin: 4px 0 0; color: var(--muted); font-size: .9rem; }
.combo-status { flex: none; display: inline-flex; align-items: center; min-height: 28px; padding: 3px 9px; border: 1px solid var(--line-strong); border-radius: 999px; color: var(--muted); font-size: .8rem; font-weight: 700; }
.combo-status[data-status="Ativo"] { color: #8ed9a5; border-color: rgba(142,217,165,.4); }
.combo-status[data-status="A iniciar"] { color: var(--accent); }
.combo-status[data-status="Vencido"] { color: #d7a1a1; border-color: rgba(215,161,161,.4); }
.combo-status[data-status="Sem saldo"] { color: #d5b981; border-color: rgba(213,185,129,.4); }
.combo-contract-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 16px 0 0; }
.combo-contract-facts div { min-width: 0; }
.combo-contract-facts dt { color: var(--muted); font-size: .75rem; }
.combo-contract-facts dd { margin: 4px 0 0; font-size: .9rem; overflow-wrap: anywhere; }
.combo-contract-details { margin-top: 14px; color: var(--muted); font-size: .85rem; }
.combo-contract-details summary { cursor: pointer; color: var(--text); }
.combo-contract-details .combo-credit-list { margin-top: 12px; }
.combo-contract-details ul { padding-left: 20px; }
.combo-header-actions,.combo-item-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.combo-header-actions button,.combo-item-actions button { width: auto; min-height: 44px; margin: 0; padding: 0 16px; border-radius: 6px; }
.combo-list { display: grid; gap: 12px; padding-top: 18px; }
.combo-item,.combo-contract { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; padding: 18px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.combo-item > div:first-child { min-width: 0; }
.combo-item-heading,.combo-contract header { display: flex; align-items: center; gap: 12px; }
.combo-item h2 { margin: 0; font-size: 1.05rem; }
.combo-item p,.combo-contract p { margin: 10px 0; color: var(--muted); }
.combo-item-meta { display: flex; gap: 16px; align-items: center; }
.combo-item-meta strong { color: var(--text); }
.combo-item ul,.combo-preview ul { margin: 8px 0 0; padding-left: 20px; }
.combo-contract { display: block; }
.combo-contract header { justify-content: space-between; }
.combo-contract header > div { display: grid; gap: 4px; }
.combo-contract small,.combo-credit-list span { color: var(--muted); }
.combo-credit-list { display: grid; gap: 8px; }
.combo-credit-list > div { display: flex; justify-content: space-between; gap: 12px; border-top: 1px solid var(--line); padding-top: 8px; }
.combo-contract details { margin-top: 14px; }
.combo-contract-actions { justify-content: flex-end; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.combo-modal { width: min(100%, 640px); }
.combo-contract-context { margin: 8px 0 0; color: var(--muted); }
.combo-contract-context strong { color: var(--text); }
.combo-form { display: grid; gap: 14px; margin-top: 16px; }
.combo-form label { margin: 0; }
.combo-form > p { margin: 0; }
.combo-form > .field-error:empty { display: none; }
.combo-form > footer { margin-top: 0; }
.combo-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.combo-form fieldset { display: grid; gap: 10px; border: 1px solid var(--line); border-radius: 8px; padding: 12px; }
.combo-service-row { display: grid; grid-template-columns: minmax(0, 1fr) 110px 38px; gap: 10px; align-items: end; margin-bottom: 8px; }
.combo-service-row button { margin-bottom: 0; }
.combo-customer-results { max-height: 160px; overflow: auto; display: grid; gap: 4px; }
.combo-customer-results .appointment-choice { border-radius: 6px; }
.combo-customer-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.combo-customer-actions button,.combo-modal [data-register],.combo-modal #add-combo-service { width: auto; margin: 0; padding: 0 16px; border-radius: 6px; }
.combo-modal [data-register],.combo-modal #add-combo-service { justify-self: start; }
.combo-modal footer { align-items: center; }
.combo-modal footer button,.combo-modal footer a { display: inline-flex; align-items: center; justify-content: center; width: auto; min-height: 44px; margin: 0; padding: 0 18px; border-radius: 6px; text-decoration: none; }
.combo-preview { padding: 12px; border: 1px solid var(--line); border-radius: 8px; }
.combo-preview h3 { margin: 0; font-size: .9rem; }
.combo-preview p { margin: 10px 0 0; color: var(--muted); font-size: .85rem; }
.combo-modal .public-summary { margin-top: 16px; }
.combo-payment-choice { display: grid; gap: 7px; width: min(100%, 460px); margin: 18px 0; }
.combos-page{display:grid;gap:20px;width:100%;max-width:none}.combos-page .appointments-heading{margin-bottom:0}.combos-page .financial-tabs{gap:5px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft);overflow-x:auto;scrollbar-width:none}.combos-page .financial-tabs button{min-height:42px;padding:0 15px;border:1px solid transparent;border-radius:8px;border-bottom-width:1px;background:transparent}.combos-page .financial-tabs button.active{border-color:var(--accent);background:var(--surface);color:var(--text);box-shadow:0 1px 5px rgba(0,0,0,.1)}.combos-page .combo-section-heading{margin:0 0 16px}.combos-page .combo-section-heading h2{letter-spacing:-.015em}.combos-page .combo-section-heading button,.combos-page .combo-header-actions button,.combos-page .combo-item-actions button{border-radius:9px}.combos-page .combo-filters{grid-template-columns:minmax(0,2fr) minmax(180px,1fr);margin-bottom:18px;padding:18px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:0 5px 16px rgba(0,0,0,.04)}.combos-page .combo-filters input,.combos-page .combo-filters select{margin-top:5px;border-radius:9px;background:var(--bg-soft)}.combos-page .combo-contract-list,.combos-page .combo-list{gap:14px}.combos-page .combo-contract-row,.combos-page .combo-item{padding:20px;border-radius:15px;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.04)}.combos-page .combo-contract-row:hover,.combos-page .combo-item:hover{border-color:var(--line-strong)}.combos-page .combo-contract-facts{gap:16px;margin-top:18px}.combos-page .combo-contract-facts dt{font-size:.7rem;letter-spacing:.03em;text-transform:uppercase}.combos-page .combo-contract-facts dd{font-size:.92rem}.combos-page .combo-item-meta strong{font-size:1.1rem}.combos-page .combo-item-meta span{color:var(--muted);font-size:.85rem}.combos-page .combo-contract-details{padding-top:12px;border-top:1px solid var(--line)}.combos-page .combo-item-actions{align-self:center}.combos-page .combo-status,.combos-page .service-status{min-height:30px}.combos-page .combo-form fieldset,.combos-page .combo-preview{border-radius:12px;background:var(--bg-soft)}.combos-page .combo-modal input,.combos-page .combo-modal select,.combos-page .combo-modal textarea{border-radius:9px}.combos-page .combo-modal footer{border-top:1px solid var(--line);padding-top:16px}.combos-page .combo-feedback:empty{display:none}.combos-page button:focus-visible,.combos-page input:focus-visible,.combos-page select:focus-visible,.combos-page textarea:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media(max-width:700px){.combos-page{gap:16px}.combos-page .combo-filters{grid-template-columns:1fr;padding:15px}.combos-page .combo-contract-row,.combos-page .combo-item{padding:16px}.combos-page .combo-contract-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.combos-page .combo-item{display:grid}.combos-page .combo-item-actions{align-self:stretch}.combos-page .combo-item-actions button{flex:1}.combos-page .combo-section-heading{align-items:stretch;flex-direction:column}.combos-page .combo-section-heading button{width:100%}}
.appointment-team-actions { align-items: center; flex-wrap: wrap; }
.appointment-team-actions .secondary-button { width: auto; min-height: 38px; margin: 0; padding: 0 12px; border-radius: 6px; }
@media (max-width: 700px) {
  .appointments-view-tabs { margin-top: 18px; }
  .appointments-date-panel { margin-top: 22px; padding: 14px 0 16px; }
  .appointments-date-navigation { display: grid; gap: 14px; }
  .appointments-date-shortcuts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: 8px; overflow: visible; padding: 0; }
  .appointments-date-shortcut { min-width: 0; width: 100%; padding: 0 8px; }
  .appointments-date-shortcut span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .appointments-calendar-button { grid-column: 1 / -1; justify-content: center; }
  .appointments-selected-date { min-width: 0; text-align: left; }
  .appointments-selected-date strong { white-space: normal; }
  .combo-section-heading { align-items: flex-start; }
  .combo-contract-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .combo-item { flex-direction: column; }
  .combo-item-actions,.combo-header-actions { width: 100%; }
  .combo-item-actions button,.combo-header-actions button { flex: 1; }
  .combo-credit-list > div { display: grid; }
  .combo-form-grid { grid-template-columns: 1fr; }
  .combo-service-row { grid-template-columns: minmax(0, 1fr) 90px 38px; }
  .combo-modal footer { flex-wrap: wrap; }
  .combo-customer-actions button,.combo-modal footer button,.combo-modal footer a { flex: 1 1 auto; }
}
@media (max-width: 480px) {
  .combo-section-heading { flex-direction: column; align-items: stretch; }
  .combo-section-heading button { width: 100%; }
  .combo-filters { grid-template-columns: 1fr; }
  .combo-contract-row-heading { flex-wrap: wrap; }
}
.public-form { width: min(100%, 480px); display: grid; gap: 14px; }
.public-form label { margin: 0; }
.public-form button { width: auto; justify-self: start; padding: 0 22px; }
.public-date-options { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.public-date-options button { width: 100%; min-width: 0; min-height: 64px; display: grid; place-content: center; gap: 3px; padding: 6px 2px; border: 1px solid var(--line-strong); border-radius: 8px; background: var(--bg-soft); color: var(--text); box-shadow: none; }
.public-date-options button:hover,.public-date-options button.selected { border-color: var(--accent); background: var(--surface-raised); box-shadow: none; }
.public-date-options button strong { font-size: .78rem; font-weight: 700; }
.public-date-options button small { color: var(--muted); font-size: .72rem; }
.public-date-picker { width: min(100%, 480px); display: grid; gap: 18px; }
.public-calendar { padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--bg-soft); }
.public-calendar-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.public-calendar-kicker { display: block; margin-bottom: 4px; color: var(--muted); font-size: .72rem; }
.public-calendar-heading h3 { margin: 0; font-size: 1rem; }
.public-calendar-nav { display: flex; gap: 4px; }
.public-calendar-nav button { width: 40px; min-height: 40px; padding: 0; border: 1px solid var(--line); border-radius: 6px; background: transparent; color: var(--text); box-shadow: none; font-size: 1.6rem; line-height: 1; }
.public-calendar-nav button:hover:not(:disabled) { border-color: var(--accent); background: var(--surface-raised); box-shadow: none; }
.public-calendar-nav button:disabled { opacity: .35; cursor: default; }
.public-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.public-calendar-weekday { min-height: 28px; display: grid; place-items: center; color: var(--muted); font-size: .72rem; }
.public-calendar-day { position: relative; width: 100%; min-width: 0; min-height: 44px; display: grid; place-items: center; padding: 0 0 3px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: var(--text); box-shadow: none; font-size: .88rem; }
.public-calendar-day:hover:not(:disabled) { border-color: var(--line-strong); background: var(--surface-raised); box-shadow: none; }
.public-calendar-day.today { border-color: var(--line-strong); }
.public-calendar-day.selected { border-color: var(--accent); background: var(--accent); color: var(--accent-text); box-shadow: none; font-weight: 700; }
.public-calendar-day.available::after { position: absolute; bottom: 4px; left: calc(50% - 2px); width: 4px; height: 4px; border-radius: 50%; background: var(--accent); content: ''; }
.public-calendar-day.selected::after { background: var(--accent-text); }
.public-calendar-day:disabled { opacity: .24; cursor: default; }
.public-calendar-day:focus-visible,.public-calendar-nav button:focus-visible,.public-date-options button:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
@media (max-width: 440px) { .public-date-options { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.public-time-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(105px, 1fr)); gap: 10px; }
.public-time-grid button { border: 1px solid var(--line-strong); background: var(--bg-soft); color: var(--text); box-shadow: none; }
.public-time-grid button:hover,.public-time-grid button.selected { border-color: var(--accent); background: var(--surface-raised); box-shadow: none; }
.public-text-button { width: auto; margin-top: 18px; padding: 0; background: transparent; color: var(--accent); box-shadow: none; }
.public-identity-options { display: flex; gap: 8px; margin-bottom: 22px; }
.public-identity-options button { width: auto; padding: 0 16px; border: 1px solid var(--line); background: transparent; color: var(--text); box-shadow: none; }
.public-identity-options button.active { border-color: var(--accent); color: var(--accent); }
.public-error { color: var(--danger); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.public-chat { position: fixed; right: 24px; bottom: 24px; z-index: 80; }
.public-chat svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.public-chat-launcher { position: absolute; right: 0; bottom: 0; width: 56px; height: 56px; min-height: 56px; display: grid; place-items: center; padding: 0; border: 1px solid var(--accent); border-radius: 50%; background: var(--accent); color: var(--accent-text); box-shadow: var(--theme-shadow, 0 12px 28px rgba(0,0,0,.28)); }
.public-chat-launcher:hover { transform: translateY(-2px); background: var(--accent-hover); box-shadow: 0 16px 34px rgba(0,0,0,.32); }
.public-chat-panel { position: absolute; right: 0; bottom: 68px; width: min(380px, calc(100vw - 32px)); height: min(600px, calc(100vh - 116px)); display: grid; grid-template-rows: auto minmax(0, 1fr) auto auto auto; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--text); box-shadow: 0 20px 56px rgba(0,0,0,.34); }
.public-chat-panel[hidden] { display: none; }
.public-chat-header { min-height: 68px; display: flex; align-items: center; gap: 11px; padding: 12px 14px; border-bottom: 1px solid var(--line); background: var(--bg-soft); }
.public-chat-header > div:nth-child(2) { min-width: 0; display: grid; gap: 3px; }
.public-chat-header strong,.public-chat-header span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.public-chat-header span { color: var(--muted); font-size: .75rem; }
.public-chat-avatar { width: 38px; height: 38px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--accent); color: var(--accent-text); }
.public-chat-avatar svg { width: 18px; height: 18px; }
.public-chat-close { width: 40px; min-width: 40px; min-height: 40px; margin-left: auto; display: grid; place-items: center; padding: 0; border: 0; background: transparent; color: var(--muted); box-shadow: none; }
.public-chat-close:hover { background: var(--soft-hover); color: var(--text); box-shadow: none; }
.public-chat-messages { min-height: 0; overflow-y: auto; scrollbar-width: none; -ms-overflow-style: none; overscroll-behavior: contain; display: flex; flex-direction: column; gap: 10px; padding: 16px; background: var(--bg); }
.public-chat-messages::-webkit-scrollbar { display: none; width: 0; height: 0; }
.public-chat-message { max-width: 84%; display: flex; }
.public-chat-message span { padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); font-size: .9rem; line-height: 1.45; overflow-wrap: anywhere; }
.public-chat-message.from-user { align-self: flex-end; }
.public-chat-message.from-user span { border-color: var(--accent); background: var(--accent); color: var(--accent-text); }
.public-chat-message.from-agent { align-self: flex-start; }
.public-chat-actions { display: flex; gap: 6px; overflow-x: auto; padding: 10px 12px; border-top: 1px solid var(--line); }
.public-chat-actions button { width: auto; min-height: 36px; flex: none; padding: 0 11px; border: 1px solid var(--line-strong); border-radius: 6px; background: transparent; color: var(--text); box-shadow: none; font-size: .78rem; }
.public-chat-actions button:hover { border-color: var(--accent); background: var(--soft-hover); box-shadow: none; }
.public-chat-composer { display: grid; grid-template-columns: minmax(0, 1fr) 42px; gap: 8px; align-items: end; padding: 10px 12px; border-top: 1px solid var(--line); background: var(--surface); }
.public-chat-composer textarea { width: 100%; min-width: 0; min-height: 42px; max-height: 96px; resize: none; padding: 10px 12px; }
.public-chat-composer button { width: 42px; min-height: 42px; display: grid; place-items: center; padding: 0; }
.public-chat-register { width: 100%; min-height: 36px; padding: 5px 12px 9px; border: 0; background: var(--surface); color: var(--accent); box-shadow: none; font-size: .8rem; }
.public-chat-register:hover { background: var(--soft-hover); box-shadow: none; }
.public-chat-error { margin: 0; padding: 8px 12px; color: var(--danger); font-size: .8rem; }
.public-chat-typing { min-width: 58px; min-height: 38px; flex-direction: row; align-items: center; gap: 4px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.public-chat-typing i { width: 6px; height: 6px; border-radius: 50%; background: var(--muted); animation: public-chat-pulse 1s infinite alternate; }
.public-chat-typing i:nth-child(2) { animation-delay: .2s; }.public-chat-typing i:nth-child(3) { animation-delay: .4s; }
@keyframes public-chat-pulse { to { opacity: .25; transform: translateY(-2px); } }
@media (max-width: 600px) {
  .public-chat { right: 14px; bottom: max(14px, env(safe-area-inset-bottom)); }
  .public-chat-launcher[aria-expanded="true"] { display: none; }
  .public-chat-panel { position: fixed; inset: auto 0; top: var(--public-chat-viewport-top, 0px); width: 100vw; height: var(--public-chat-viewport-height, 100vh); height: var(--public-chat-viewport-height, 100dvh); border: 0; border-radius: 0; }
  .public-chat-header { position: sticky; top: 0; z-index: 2; min-height: calc(68px + env(safe-area-inset-top)); padding-top: calc(12px + env(safe-area-inset-top)); }
  .public-chat-register { padding-bottom: max(9px, env(safe-area-inset-bottom)); }
}

/* Public establishment — visual refinement */
.public-site-header { gap: clamp(18px, 2.5vw, 34px); border-bottom: 1px solid transparent; }
.public-site-header.is-scrolled { border-bottom-color: color-mix(in srgb, var(--line) 76%, transparent); }
.public-menu { gap: clamp(14px, 1.8vw, 24px); }
.public-hero-cta { width: fit-content; display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding-inline: 22px; transition: transform 150ms ease, background 150ms ease, color 150ms ease; }
.public-hero-cta:hover { transform: translateY(-1px); }
.public-hero-cta:active { transform: translateY(0); }
.public-overview { gap: clamp(50px, 7vw, 94px); padding-block: clamp(54px, 8vw, 96px); }
.public-section-heading { margin-bottom: 22px; }
.public-section-heading h2 { font-size: clamp(1.85rem, 3.25vw, 3rem); line-height: 1.06; }
.public-professional-grid { width: min(100%, 870px); grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: clamp(16px, 2.3vw, 24px); }
.public-professional-card { gap: 14px; overflow: hidden; }
.public-professional-media, .public-professional-placeholder { aspect-ratio: 4 / 5; overflow: hidden; border-radius: 14px; }
.public-professional-media { position: relative; background: var(--bg-soft); }
.public-professional-media::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent 56%, rgba(0,0,0,.16)); opacity: 0; transition: opacity 180ms ease; }
.public-professional-card img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform 180ms ease; }
.public-professional-card:hover img { transform: scale(1.025); }
.public-professional-card:hover .public-professional-media::after { opacity: 1; }
.public-professional-placeholder { position: relative; isolation: isolate; display: grid; place-items: center; border: 1px solid color-mix(in srgb, var(--accent) 36%, var(--line)); background: radial-gradient(circle at 16% 18%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 38%), color-mix(in srgb, var(--bg-soft) 82%, var(--surface)); color: color-mix(in srgb, var(--accent) 90%, #fff); font-size: clamp(1.9rem, 4vw, 2.8rem); font-weight: 650; letter-spacing: .08em; }
.public-professional-placeholder::before, .public-professional-placeholder::after { content: ''; position: absolute; z-index: -1; width: 48%; aspect-ratio: 1; border: 1px solid color-mix(in srgb, var(--accent) 22%, transparent); border-radius: 50%; }
.public-professional-placeholder::before { top: -18%; right: -7%; }
.public-professional-placeholder::after { bottom: -23%; left: -13%; }
.public-professional-content { display: grid; gap: 4px; padding: 0 2px 3px; }
.public-professional-card h3 { margin: 0; font-size: 1.12rem; }
.public-professional-content > p, .public-professional-content > small { margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.45; }
.public-professional-content > small { min-height: 1.45em; font-size: .82rem; }
.public-text-action { justify-self: start; min-height: 42px; margin-top: 5px; transition: color 150ms ease; }
.public-text-action::after { display: inline-block; transition: transform 150ms ease; }
.public-text-action:hover::after, .public-text-action:focus-visible::after { transform: translateX(4px); }
.public-service-row { min-height: 78px; padding: 17px 0; transition: color 150ms ease, background 150ms ease; }
.public-service-row:hover { padding-inline: 10px; background: color-mix(in srgb, var(--surface-raised) 55%, transparent); }
.public-service-row em { transition: transform 150ms ease, color 150ms ease; }
.public-service-row:hover em, .public-service-row:focus-visible em { transform: translateX(4px); color: var(--accent); }
.public-gallery { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(220px, .8fr); grid-template-rows: repeat(2, minmax(180px, 1fr)); gap: 12px; }
.public-gallery-image { width: 100%; height: 100%; min-height: 0; display: block; border-radius: 14px; object-fit: cover; }
.public-gallery-image-1 { grid-row: 1 / span 2; min-height: 390px; }
.public-reviews-section { max-width: 760px; }
.public-reviews-section .public-section-heading { margin-bottom: 16px; }
.public-reviews-summary { display: grid; grid-template-columns: auto 1fr; align-items: center; column-gap: 12px; row-gap: 2px; margin-top: 16px; }
.public-reviews-summary strong { grid-row: 1 / span 2; font-size: 2.6rem; line-height: 1; letter-spacing: -.06em; }
.public-reviews-summary span { color: var(--accent); letter-spacing: .08em; }
.public-reviews-summary small { color: var(--muted); }
.public-review footer span { display: block; margin-top: 5px; color: var(--muted); font-size: .78rem; }
.public-about { grid-template-columns: minmax(0, 1fr) minmax(280px, .9fr); align-items: center; gap: clamp(28px, 6vw, 80px); }
.public-about-copy h2, .public-location-section h2 { margin: 8px 0 16px; font-size: clamp(1.85rem, 3vw, 2.8rem); line-height: 1.08; letter-spacing: -.045em; }
.public-about-copy > p:last-child, .public-location-section p { margin: 0; color: var(--muted); line-height: 1.7; }
.public-about > img { width: 100%; aspect-ratio: 4 / 5; border-radius: 14px; object-fit: cover; }
.public-location-section { display: flex; justify-content: space-between; gap: 28px; padding-top: 4px; border-top: 1px solid var(--line); }
.public-location-actions { display: flex; flex-wrap: wrap; align-content: start; gap: 8px 18px; padding-top: 8px; }
.public-location-actions a { color: var(--accent); font-weight: 700; text-decoration: none; }
.public-location-actions a:hover span, .public-location-actions a:focus-visible span { display: inline-block; transform: translateX(4px); }
.public-final-cta { min-height: 400px; }
.public-site-footer { grid-template-columns: minmax(160px, 1fr) minmax(0, 1.6fr) auto; align-items: start; padding-top: 34px; }
.public-site-footer > div { display: grid; gap: 8px; }
.public-site-footer strong { color: var(--text); font-size: 1rem; }
.public-site-footer p { margin: 0; font-size: .8rem; }
.public-site-footer small { align-self: end; color: color-mix(in srgb, var(--muted) 70%, transparent); font-size: .7rem; white-space: nowrap; }
@media (max-width: 700px) {
  .public-site-header { backdrop-filter: none; }
  .public-hero-cta { width: 100%; }
  .public-overview { gap: 52px; padding-block: 54px; }
  .public-professional-grid { display: flex; width: calc(100% + 16px); margin-right: -16px; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; padding: 2px 16px 10px 0; scrollbar-width: thin; }
  .public-professional-card { flex: 0 0 min(78vw, 300px); scroll-snap-align: start; }
  .public-professional-media, .public-professional-placeholder { border-radius: 12px; }
  .public-service-row:hover { padding-inline: 0; background: transparent; }
  .public-gallery { display: flex; width: calc(100% + 16px); margin-right: -16px; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; padding-right: 16px; scrollbar-width: thin; }
  .public-gallery-image, .public-gallery-image-1 { flex: 0 0 min(82vw, 340px); min-height: 310px; aspect-ratio: 4 / 5; scroll-snap-align: start; }
  .public-about { grid-template-columns: 1fr; gap: 24px; }
  .public-about > img { max-height: 440px; }
  .public-location-section { display: grid; gap: 18px; }
  .public-site-footer { grid-template-columns: 1fr; gap: 18px; }
  .public-site-footer small { align-self: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .public-hero-cta, .public-professional-card img, .public-professional-media::after, .public-text-action::after, .public-service-row, .public-service-row em { transition: none; }
}
.public-summary { display: grid; gap: 0; margin: 0 0 24px; }
.public-summary > div { display: flex; justify-content: space-between; gap: 20px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.public-summary dt { color: var(--muted); }
.public-summary dd { margin: 0; text-align: right; }
.public-success { padding: 40px 0; text-align: center; }
.public-success > span { width: 54px; height: 54px; display: grid; place-items: center; margin: 0 auto 20px; border-radius: 50%; background: var(--accent); color: var(--accent-text); font-size: 1.5rem; }
.public-success a { color: var(--accent); }
.notifications-page { display: grid; gap: 20px; }
.notifications-page .financial-tabs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.notifications-page .financial-tabs button { min-width: 0; padding-inline: 8px; white-space: normal; }
.notifications-page .services-heading { margin-bottom: 0; }
.notification-config-section { padding: 0 0 24px; border-bottom: 1px solid var(--line); }
.notification-config-section + .notification-config-section { margin-top: 28px; }
.notification-config-section h2 { margin: 0 0 16px; font-size: 1.15rem; }
.notification-config-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.notification-config-heading h2 { margin: 0; }
.notification-config-form { display: grid; gap: 16px; max-width: 680px; }
.notification-config-grid { display: grid; grid-template-columns: minmax(0,2fr) minmax(0,1fr); gap: 12px; }
.notification-config-grid label,.notification-config-form label { margin: 0; }
.notification-config-form .notification-actions { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 10px; }
.notification-config-form .notification-actions button { width: auto; margin: 0; }
.notification-settings { display: grid; gap: 20px; max-width: 680px; }
.notification-switch { display: flex; align-items: center; gap: 10px; min-height: 44px; }
.notification-switch input { width: 20px; height: 20px; min-height: 20px; }
.notification-channels { display: flex; flex-wrap: wrap; gap: 12px 28px; }
.notification-settings fieldset { display: grid; gap: 12px; padding: 18px; border: 1px solid var(--line); border-radius: 8px; }
.notification-settings legend { padding: 0 6px; font-weight: 700; }
#notification-leads { display: grid; gap: 10px; }
.notification-lead { display: flex; align-items: end; gap: 10px; }
.notification-lead label { flex: 1; margin: 0; }
.notification-lead .icon-action { flex: none; min-height: 44px; margin: 0; }
.notification-settings .secondary-button,.notification-actions button { width: auto; margin: 0; }
.notification-filters { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); align-items: end; gap: 12px; }
.notification-filters label { margin: 0; }
.notification-filters button { min-height: 44px; }
.notification-status { display: inline-block; padding: 4px 8px; border: 1px solid var(--line); border-radius: 6px; }
.notification-status.status-sent { color: #9ad9ae; }
.notification-status.status-failed { color: #f5aaa4; }
.notification-status.status-cancelled { color: var(--muted); }
.notification-send { display: grid; gap: 18px; max-width: 720px; }
.notification-send fieldset { display: flex; flex-wrap: wrap; gap: 8px 20px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 8px; }
.notification-send legend { padding: 0 6px; font-weight: 700; }
.notification-send fieldset label { display: flex; align-items: center; gap: 8px; min-height: 38px; margin: 0; }
.notification-send fieldset input { width: 18px; min-height: 18px; }
.notification-send textarea { width: 100%; padding: 12px; color: var(--text); background: var(--surface); border: 1px solid var(--line); border-radius: 6px; font: inherit; resize: vertical; }
.notification-send .notification-actions { display: flex; justify-content: flex-end; gap: 10px; }
.notification-send .notification-actions button { width: auto; margin: 0; }
#notification-client-results { display: grid; gap: 4px; max-height: 220px; overflow-y: auto; }
#notification-client-results button { display: flex; justify-content: space-between; gap: 10px; width: 100%; padding: 10px 12px; color: var(--text); background: var(--surface); border: 1px solid var(--line); box-shadow: none; text-align: left; }
#notification-client-results button:hover { background: var(--surface-raised); }
#notification-client-results small { color: var(--muted); }
.notification-review-modal { width: min(100%, 560px); }
.notification-review { display: grid; gap: 14px; padding: 16px; border: 1px solid var(--line-strong); border-radius: 8px; background: var(--surface); }
.notification-review dl { display: grid; gap: 10px; margin: 0; }
.notification-review dl div { display: grid; grid-template-columns: 120px minmax(0,1fr); gap: 12px; align-items: start; }
.notification-review dt { color: var(--muted); font-size: .78rem; font-weight: 700; text-transform: uppercase; }
.notification-review dd { margin: 0; overflow-wrap: anywhere; }
.notification-review p { white-space: pre-wrap; overflow-wrap: anywhere; }
.customer-notification-toast { position: fixed; right: 18px; bottom: 18px; z-index: 1200; display: grid; gap: 4px; max-width: min(360px, calc(100vw - 32px)); padding: 14px 16px; color: var(--text); background: var(--surface-raised); border: 1px solid var(--line-strong); border-radius: 8px; box-shadow: var(--shadow); }
.customer-notification-toast span { color: var(--muted); font-size: .92rem; overflow-wrap: anywhere; }
.whatsapp-page { width:100%; }.whatsapp-tabs { display:flex; gap:8px; margin-bottom:22px; overflow:auto; border-bottom:1px solid var(--line); }.whatsapp-tabs button { width:auto; min-width:max-content; padding:0 12px; color:var(--muted); background:transparent; box-shadow:none; border-radius:0; border-bottom:2px solid transparent; }.whatsapp-tabs button.active { color:var(--text); border-color:var(--accent); }.whatsapp-overview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }.whatsapp-overview section { padding:18px; border:1px solid var(--line); border-radius:8px; background:var(--surface); }.whatsapp-overview h2 { font-size:1rem; }.whatsapp-status { display:inline-block; margin-bottom:8px; color:var(--warning); }.whatsapp-status.online { color:var(--success); }.whatsapp-agent-form { max-width:900px; }.whatsapp-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 18px; }.whatsapp-form-grid .wide { grid-column:1/-1; }.whatsapp-agent-form fieldset { margin:18px 0; padding:16px; border:1px solid var(--line); border-radius:8px; }.whatsapp-capabilities { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }.whatsapp-capabilities label { display:flex; align-items:center; gap:9px; margin:0; padding:9px; border:1px solid var(--line); border-radius:6px; }.whatsapp-capabilities input { width:18px; min-height:18px; }.whatsapp-agent-form footer { display:flex; justify-content:flex-end; }.whatsapp-agent-form footer button { width:auto; padding:0 18px; }.whatsapp-conversations { display:grid; gap:8px; }.whatsapp-conversations > button { display:grid; grid-template-columns:minmax(180px,.5fr) 1fr; align-items:center; gap:16px; padding:14px; color:var(--text); background:var(--surface); border:1px solid var(--line); box-shadow:none; text-align:left; }.whatsapp-conversations > button span { display:grid; gap:4px; min-width:0; overflow-wrap:anywhere; }.whatsapp-conversations small { color:var(--muted); }.whatsapp-conversation-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; margin:16px 0; }.whatsapp-conversation-heading > div:last-child { display:flex; flex-wrap:wrap; gap:8px; }.whatsapp-conversation-heading button { width:auto; margin:0; padding:0 12px; }.whatsapp-messages { display:grid; gap:10px; max-height:55vh; padding:14px; overflow:auto; border:1px solid var(--line); border-radius:8px; background:var(--bg-soft); }.whatsapp-messages article { width:min(78%,600px); padding:10px 12px; border-radius:8px; background:var(--surface); }.whatsapp-messages article.outbound { justify-self:end; background:var(--surface-raised); }.whatsapp-messages small { color:var(--muted); }.whatsapp-messages p { margin:5px 0 0; white-space:pre-wrap; }.whatsapp-human-message { margin-top:14px; }.whatsapp-human-message button,#whatsapp-human-message button { width:auto; padding:0 18px; }.whatsapp-tools { margin-top:20px; padding:14px; border:1px solid var(--line); border-radius:8px; }
.whatsapp-channel-tabs { display:flex; width:max-content; margin-bottom:16px; padding:3px; border:1px solid var(--line); border-radius:6px; background:var(--bg-soft); }
.whatsapp-channel-tabs button { width:auto; min-width:112px; min-height:38px; padding:0 14px; color:var(--muted); background:transparent; border:0; border-radius:4px; box-shadow:none; }
.whatsapp-channel-tabs button.active { color:var(--text); background:var(--surface); box-shadow:0 1px 3px rgba(0,0,0,.12); }
.whatsapp-connection{display:grid;gap:24px;max-width:920px}.whatsapp-connection .notification-config-heading{align-items:flex-start;justify-content:space-between}.whatsapp-connection-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:28px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 9%,var(--surface)),var(--surface))}.whatsapp-connection-hero h2,.whatsapp-connect-options h3,.whatsapp-credentials-card h3,.whatsapp-instance-actions h3{margin:0}.whatsapp-connection-hero p:last-child,.whatsapp-connect-options>div>p:last-child,.whatsapp-instance-actions p{margin:8px 0 0;color:var(--muted)}.whatsapp-connection-hero .notification-status{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.whatsapp-connection-hero .notification-status i{width:8px;height:8px;border-radius:50%;background:currentColor}.whatsapp-connect-options{display:grid;gap:18px}.whatsapp-connect-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.whatsapp-connect-option{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;min-height:92px;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text);text-align:left;box-shadow:none}.whatsapp-connect-option:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 5%,var(--surface));transform:translateY(-1px)}.whatsapp-connect-option:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 42%,transparent);outline-offset:2px}.whatsapp-connect-option strong,.whatsapp-connect-option small{display:block}.whatsapp-connect-option small{margin-top:4px;color:var(--muted);font-weight:400;line-height:1.35}.whatsapp-connect-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:color-mix(in srgb,var(--accent) 13%,var(--surface));color:var(--accent);font-size:1.35rem;font-weight:800}.whatsapp-credentials-card,.whatsapp-instance-actions{border-radius:16px}.whatsapp-credentials-card label>small{display:block;margin-top:6px;color:var(--muted);font-weight:400}.whatsapp-instance-actions{display:grid;grid-template-columns:1fr auto;align-items:center;gap:20px}.whatsapp-instance-actions .form-message{grid-column:1/-1}.whatsapp-modal-backdrop{z-index:1000}.whatsapp-connect-modal{width:min(100%,520px);max-height:min(88vh,720px);overflow:auto;padding:0}.whatsapp-connect-modal>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px 24px 18px;border-bottom:1px solid var(--line)}.whatsapp-connect-modal>header h2{margin:2px 0 0}.whatsapp-connect-modal>header p:last-child{margin:8px 0 0;color:var(--muted)}.whatsapp-connect-modal .modal-close{flex:0 0 auto}.whatsapp-modal-content{padding:24px}.whatsapp-modal-loading{display:grid;justify-items:center;gap:12px;min-height:280px;place-content:center;color:var(--muted)}.whatsapp-spinner{width:30px;height:30px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:whatsapp-spin .8s linear infinite}.whatsapp-qr{display:grid;justify-items:center;gap:18px;margin:0;text-align:center}.whatsapp-qr img{display:block;width:min(100%,320px);height:auto;padding:12px;border:1px solid #e6e6e6;border-radius:14px;background:#fff;image-rendering:pixelated}.whatsapp-qr figcaption{display:grid;gap:5px;max-width:46ch}.whatsapp-qr figcaption span,.whatsapp-modal-hint{color:var(--muted)}.whatsapp-modal-hint{margin:18px 0 0;text-align:center;font-size:.9rem}.whatsapp-pairing-form{display:grid;gap:18px}.whatsapp-pairing-form label small{display:block;margin-top:7px;color:var(--muted);font-weight:400}.whatsapp-pairing-form footer,.whatsapp-modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.whatsapp-pairing-code{display:grid;justify-items:center;gap:12px;margin:0;padding:22px;border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--accent) 6%,var(--surface));text-align:center}.whatsapp-pairing-code p{margin:0}.whatsapp-pairing-code strong{font-size:clamp(2rem,9vw,3.4rem);letter-spacing:.16em;overflow-wrap:anywhere}.whatsapp-pairing-code ol{display:grid;gap:8px;margin:10px 0 0;padding-left:22px;color:var(--muted);text-align:left}.whatsapp-modal-footer{margin-top:18px}@keyframes whatsapp-spin{to{transform:rotate(360deg)}}@media(max-width:700px){.whatsapp-connection-hero{display:grid;padding:22px}.whatsapp-connect-grid{grid-template-columns:1fr}.whatsapp-instance-actions{grid-template-columns:1fr}.whatsapp-connect-modal>header,.whatsapp-modal-content{padding-left:20px;padding-right:20px}}@media(prefers-reduced-motion:reduce){.whatsapp-spinner{animation-duration:1.6s}.whatsapp-connect-option:hover{transform:none}}
.channels-page{display:grid;gap:24px}.channels-page .services-heading p:last-child{margin:8px 0 0;color:var(--muted)}.channels-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.channels-summary article{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.channels-summary h2,.channels-summary p{margin:0}.channels-summary p{margin-top:4px;color:var(--muted);font-size:.9rem}.channels-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent);font-size:1.25rem;font-weight:800}.channels-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px}.channels-grid .notification-config-section{margin:0}.channel-connect-actions,.channel-management{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}.channel-connect-actions h3{margin:0 0 12px}.channel-management{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.channel-management p{flex-basis:100%;margin:0}.danger-text{color:var(--danger,#b42318)}@media(max-width:900px){.channels-grid{grid-template-columns:1fr}}@media(max-width:700px){.channels-summary{grid-template-columns:1fr}.channels-summary article{grid-template-columns:auto 1fr}.channels-summary .notification-status{grid-column:2}}
.channel-connect-actions{display:grid;gap:16px}.channel-connect-heading{display:grid;gap:6px}.channel-connect-heading h3,.channel-connect-heading p{margin:0}.channel-connect-heading>p{max-width:48ch;color:var(--muted);line-height:1.5}.channel-connect-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.channel-connect-option{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:96px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text);box-shadow:none;text-align:left}.channel-connect-option:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 6%,var(--surface));transform:translateY(-1px)}.channel-connect-option:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 40%,transparent);outline-offset:2px}.channel-connect-option-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent)}.channel-connect-option-icon svg{width:24px;height:24px;fill:currentColor}.channel-connect-option-copy{min-width:0}.channel-connect-option-copy strong,.channel-connect-option-copy small{display:block;overflow-wrap:anywhere}.channel-connect-option-copy strong{line-height:1.25}.channel-connect-option-copy small{margin-top:5px;color:var(--muted);font-size:.82rem;font-weight:400;line-height:1.4}.channel-connect-arrow{color:var(--muted);font-size:1.2rem}@media(max-width:620px){.channel-connect-options{grid-template-columns:1fr}.channel-connect-option{min-height:88px}}@media(prefers-reduced-motion:reduce){.channel-connect-option:hover{transform:none}}
@media (max-width:700px) { .whatsapp-overview,.whatsapp-form-grid,.whatsapp-capabilities { grid-template-columns:1fr; }.whatsapp-form-grid .wide { grid-column:auto; }.whatsapp-conversation-heading { flex-direction:column; }.whatsapp-conversations > button { grid-template-columns:1fr; }.whatsapp-messages article { width:92%; } }
.custom-personality-field[hidden] { display:none; }
.custom-personality-field textarea { min-height:120px; resize:vertical; }
.custom-personality-field { display:grid; gap:10px; padding:16px; border:1px solid var(--line); border-radius:8px; background:var(--bg-soft); }
.agent-settings-intro { margin-bottom:22px; padding:18px 20px; border:1px solid var(--line); border-left:3px solid var(--accent); border-radius:8px; background:var(--surface); }
.agent-settings-intro h2 { margin:4px 0 6px; font-size:1.15rem; }
.agent-settings-intro p:last-child { max-width:720px; margin:0; color:var(--muted); line-height:1.55; }
.whatsapp-agent-form > fieldset { background:var(--surface); }
.whatsapp-agent-form legend { padding:0 6px; color:var(--text); font-weight:700; }
.whatsapp-agent-form select,.whatsapp-agent-form input,.whatsapp-agent-form textarea { transition:border-color .16s ease, box-shadow .16s ease; }
.whatsapp-agent-form select:focus,.whatsapp-agent-form input:focus,.whatsapp-agent-form textarea:focus { border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent); outline:none; }
.custom-personality-field > span:first-child { font-size:1rem; font-weight:700; }
.personality-suggestions { padding-top:4px; border-top:1px solid var(--line); }
.chatbot-preview { border-radius:7px; }
.whatsapp-agent-form footer { position:sticky; bottom:0; z-index:2; margin-top:18px; padding:12px 0; background:linear-gradient(transparent,var(--bg) 35%); }
.custom-personality-field > .personality-block { display:grid; gap:7px; padding:12px; border:1px solid var(--line); border-radius:7px; background:var(--surface); }
.custom-personality-field > textarea { background:var(--surface); }
.custom-personality-field .improve-personality { width:auto; min-height:36px; margin-top:8px; padding:0 14px; }
.custom-personality-field small { display:block; margin-top:6px; color:var(--muted); }
.personality-suggestions { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.personality-chip { width:auto; min-height:32px; padding:0 10px; border:1px solid var(--line-strong); border-radius:999px; background:transparent; color:var(--text); box-shadow:none; font-size:.78rem; }
.personality-chip:hover { border-color:var(--accent); background:var(--soft-hover); }
.chatbot-preview { display:grid; gap:6px; margin:12px 0 0; padding:10px 12px; border-left:3px solid var(--accent); background:var(--bg-soft); }
.chatbot-preview span { color:var(--muted); }
.whatsapp-overview { grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); }
.agent-channel-settings > div { display:flex; flex-wrap:wrap; gap:12px; }
.agent-channel-settings .notification-switch { min-width:180px; margin:0; padding:12px; border:1px solid var(--line); border-radius:6px; background:var(--surface-raised); }
.notification-switch:has(input:disabled){cursor:not-allowed;opacity:.58}.channel-required-message{flex-basis:100%;margin:2px 0 0;padding:10px 12px;border-left:3px solid var(--warning);border-radius:4px;background:color-mix(in srgb,var(--warning) 8%,var(--surface));color:var(--muted);font-size:.9rem;line-height:1.45}.channel-required-message a{color:var(--accent);font-weight:700}
@media (max-width: 900px) { .notification-filters { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 600px) { .notifications-page .financial-tabs button { font-size: .88rem; padding-inline: 4px; }.notification-config-grid { grid-template-columns: 1fr; }.notification-filters { grid-template-columns: 1fr; }.notification-filters button { width: 100%; }.notification-channels { display: grid; gap: 4px; }.notification-send fieldset { display: grid; }.notification-send .notification-actions button { flex: 1; }.notification-review dl div { grid-template-columns: 1fr; gap: 4px; } }
.public-not-found { padding: 40px 0; }

/* Public establishment — content-first presentation */
.public-booking-shell { width: 100%; max-width: none; margin: 0; padding: 0 0 88px; }
.public-site-header { position: fixed; inset: 0 0 auto; z-index: 20; display: flex; align-items: center; gap: 28px; min-height: 72px; padding: 0 max(24px, calc((100vw - 1180px) / 2)); color: #fff; transition: background 180ms ease, box-shadow 180ms ease, color 180ms ease; }
.public-site-header.is-scrolled { color: var(--text); background: color-mix(in srgb, var(--surface-raised) 92%, transparent); box-shadow: 0 1px 0 color-mix(in srgb, var(--line) 72%, transparent); backdrop-filter: blur(16px); }
.public-site-brand { min-width: 0; margin-right: auto; color: inherit; font-size: .98rem; font-weight: 800; letter-spacing: -.02em; text-decoration: none; overflow-wrap: anywhere; }
.public-site-logo { display: block; width: auto; max-width: min(180px, 42vw); height: 34px; object-fit: contain; object-position: left center; }
.public-site-hero .public-site-logo, .public-final-cta .public-site-logo { max-width: min(240px, 70vw); height: 42px; object-position: left center; }
.public-site-footer .public-site-logo { max-width: 180px; height: 32px; }
.public-menu { position: static; display: flex; flex: 0 1 auto; gap: 20px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
.public-menu a { flex: 0 0 auto; min-height: 44px; padding: 0; color: inherit; font-size: .9rem; font-weight: 650; }
.public-menu a:hover, .public-menu a:focus-visible { color: inherit; background: transparent; text-decoration: underline; text-underline-offset: 5px; }
.public-header-cta, .public-mobile-cta { width: auto; min-height: 44px; margin: 0; padding: 0 16px; border: 0; border-radius: 999px; background: var(--accent); color: var(--accent-text); box-shadow: none; font-weight: 750; }
.public-site-header.is-scrolled .public-header-cta { background: var(--accent); color: var(--accent-text); }
.public-site-hero { min-height: min(780px, 88svh); align-items: flex-end; margin: 0; padding: clamp(112px, 16vh, 168px) max(24px, calc((100vw - 1180px) / 2)) clamp(56px, 10vh, 108px); }
.public-site-hero-copy { width: min(100%, 650px); }
.public-site-hero h1 { max-width: 11ch; margin: 10px 0 18px; font-size: clamp(3rem, 7vw, 6.5rem); line-height: .94; letter-spacing: -.065em; }
.public-site-hero p:not(.eyebrow) { max-width: 35rem; font-size: clamp(1rem, 1.5vw, 1.18rem); line-height: 1.55; }
.public-hero-cta { min-height: 48px; border: 0; cursor: pointer; }
.public-overview { width: min(calc(100% - 48px), 1080px); gap: clamp(64px, 10vw, 132px); margin: 0 auto; padding: clamp(64px, 10vw, 132px) 0; }
.public-overview-section { scroll-margin-top: 96px; }
.public-section-heading { max-width: 610px; margin-bottom: 26px; }
.public-section-heading h2 { margin: 6px 0 0; font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.04; letter-spacing: -.045em; }
.public-section-heading p:not(.eyebrow) { margin: 12px 0 0; color: var(--muted); }
.public-professional-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 18px; }
.public-professional-card { display: grid; gap: 15px; min-width: 0; }
.public-professional-card img, .public-professional-placeholder { width: 100%; aspect-ratio: 4 / 4.5; display: grid; place-items: center; border-radius: 14px; background: var(--bg-soft); color: var(--muted); font-size: 2.25rem; font-weight: 700; object-fit: cover; }
.public-professional-card h3 { margin: 0 0 5px; font-size: 1.12rem; letter-spacing: -.02em; }
.public-text-action { width: auto; min-height: 44px; padding: 0; border: 0; border-radius: 0; color: var(--accent); background: transparent; box-shadow: none; font-weight: 700; }
.public-text-action::after { content: ' →'; }
.public-service-list { border-top: 1px solid var(--line); }
.public-service-row { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto 24px; align-items: center; gap: 18px; padding: 21px 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; color: var(--text); background: transparent; box-shadow: none; text-align: left; }
.public-service-row:hover, .public-service-row:focus-visible { color: var(--text); background: transparent; box-shadow: none; }
.public-service-row strong { font-size: 1.08rem; }
.public-service-row small { display: block; margin-top: 4px; color: var(--muted); }
.public-service-row b { font-size: 1rem; white-space: nowrap; }
.public-service-row em { color: var(--muted); font-size: 1.3rem; font-style: normal; }
.public-reviews-section { padding-top: 0; }
.public-review-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.public-review { min-width: 0; padding: 22px 0 0; border-top: 1px solid var(--line); }
.public-review > p { margin: 0 0 14px; color: var(--accent); letter-spacing: .08em; }
.public-review blockquote { margin: 0; font-size: 1.03rem; line-height: 1.55; }
.public-review footer { margin-top: 14px; color: var(--muted); font-size: .9rem; }
.public-booking-panel { scroll-margin-top: 92px; padding: clamp(28px, 5vw, 58px); border: 1px solid var(--line); border-radius: 18px; background: var(--surface); box-shadow: var(--shadow); }
.public-booking-panel-heading { display: flex; align-items: start; justify-content: space-between; gap: 20px; margin-bottom: 30px; }
.public-booking-panel-heading h2 { margin: 4px 0 0; font-size: clamp(1.65rem, 3vw, 2.35rem); letter-spacing: -.04em; }
.public-dismiss-booking { width: auto; min-height: 44px; padding: 0 12px; border: 0; border-radius: 8px; color: var(--muted); background: transparent; box-shadow: none; }
.public-final-cta { min-height: 430px; display: flex; align-items: flex-end; padding: clamp(32px, 6vw, 72px); border-radius: 18px; background: linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.78)), var(--public-cover) center / cover no-repeat; color: #fff; }
.public-final-cta > div { max-width: 530px; }
.public-final-cta h2 { margin: 8px 0 18px; color: #fff; font-size: clamp(2rem, 4vw, 3.7rem); line-height: 1.03; letter-spacing: -.05em; }
.public-site-footer { width: min(calc(100% - 48px), 1080px); display: flex; justify-content: space-between; gap: 24px; margin: 0 auto; padding: 28px 0 42px; border-top: 1px solid var(--line); color: var(--muted); font-size: .9rem; }
.public-site-footer > span { color: var(--text); font-weight: 700; }
.public-site-footer nav { display: flex; flex-wrap: wrap; gap: 16px; }
.public-site-footer a { color: inherit; text-decoration: none; }
.public-site-footer a:hover, .public-site-footer a:focus-visible { color: var(--text); text-decoration: underline; }
.public-mobile-cta { display: none; }
@media (max-width: 700px) {
  .public-booking-shell { padding-bottom: 82px; }
  .public-site-header { min-height: 64px; gap: 12px; padding: 0 16px; }
  .public-menu, .public-header-cta { display: none; }
  .public-site-hero { min-height: min(690px, 82svh); padding: 110px 24px 52px; }
  .public-site-hero h1 { font-size: clamp(2.7rem, 14vw, 4.6rem); }
  .public-overview { width: min(calc(100% - 32px), 1080px); gap: 66px; padding: 66px 0; }
  .public-professional-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .public-professional-card img, .public-professional-placeholder { border-radius: 12px; }
  .public-service-row { gap: 10px; padding: 18px 0; }
  .public-service-row strong { font-size: 1rem; }
  .public-booking-panel { margin-inline: -4px; padding: 24px 18px; border-radius: 14px; }
  .public-booking-panel-heading { margin-bottom: 22px; }
  .public-final-cta { min-height: 360px; padding: 28px 22px; border-radius: 14px; }
  .public-site-footer { width: min(calc(100% - 32px), 1080px); display: grid; gap: 12px; padding-bottom: 26px; }
  .public-mobile-cta { position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 20; display: block; min-height: 48px; box-shadow: 0 10px 28px rgba(0,0,0,.24); }
}
@media (prefers-reduced-motion: reduce) { .public-site-header { transition: none; } }
@media (max-width: 700px) { .public-booking-shell { padding-top: 28px; }.public-progress { gap: 3px; }.public-progress li button { flex-direction: column; justify-content: center; gap: 4px; text-align: center; }.public-progress li small { font-size: .61rem; }.public-choice-grid { grid-template-columns: 1fr; }.public-summary > div { flex-direction: column; gap: 5px; }.public-summary dd { text-align: left; }.public-link-actions form button { width: 100%; } }
.appointments-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 0; }
.appointments-heading h1 { margin: 0; }
.appointments-view-tabs { margin-top: 22px; }
.appointments-view-tabs { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.appointments-tv-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border: 1px solid var(--line-strong); border-radius: 6px; color: var(--text); text-decoration: none; white-space: nowrap; }
.appointments-tv-link svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.appointments-tv-link:hover { background: var(--surface-raised); border-color: var(--accent); }
.appointments-date-panel { display: grid; gap: 14px; margin-top: 26px; padding: 16px 0 18px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.appointments-date-navigation { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; min-width: 0; }
.appointments-date-shortcuts { display: flex; flex: 1 1 auto; flex-wrap: wrap; gap: 6px; min-width: 0; overflow: visible; padding: 2px; }
.appointments-date-shortcut { flex: 0 0 auto; width: auto; min-height: 44px; padding: 0 14px; border: 1px solid var(--line); border-radius: 6px; color: var(--muted); background: var(--surface); box-shadow: none; white-space: nowrap; }
.appointments-date-shortcut:hover { border-color: var(--line-strong); color: var(--text); background: var(--surface-raised); box-shadow: none; }
.appointments-date-shortcut.active { border-color: var(--accent); color: var(--text); background: var(--badge-soft); box-shadow: none; }
.appointments-date-shortcut:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.appointments-calendar-button { display: inline-flex; align-items: center; gap: 8px; }
.appointments-calendar-button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.appointments-selected-date { display: grid; flex: 0 0 auto; gap: 3px; min-width: 190px; text-align: right; }
.appointments-selected-date span { color: var(--muted); font-size: .76rem; font-weight: 700; text-transform: uppercase; }
.appointments-selected-date strong { color: var(--text); font-size: 1.03rem; font-weight: 700; white-space: nowrap; }
.appointments-date-input { position: absolute; width: 1px; height: 1px; padding: 0; border: 0; opacity: 0; pointer-events: none; }
.appointments-page #daily-appointments { margin-top: 18px; }
.appointments-page #daily-appointments, .appointments-page #team-appointments { transition: opacity 180ms ease, transform 180ms ease; }
.appointments-page #daily-appointments.is-refreshing, .appointments-page #team-appointments.is-refreshing { opacity: .55; transform: translateY(4px); }
.dashboard-appointments header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.dashboard-appointments h2 { margin: 0; font-size: 1.2rem; }
#new-appointment { width: auto; display: inline-flex; align-items: center; gap: 8px; padding: 0 16px; }
#new-appointment svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; }
#appointment-feedback { color: var(--accent); min-height: 1.4em; }
.appointment-agenda { display: grid; gap: 8px; }
.appointment-now { margin: 0 0 12px; color: var(--muted); font-size: .85rem; font-weight: 700; }
.appointment-time-label { display: block; margin-top: 4px; color: var(--accent); font-size: .75rem; font-weight: 700; }
.appointment-agenda-row.is-current, #team-appointments tr.is-current { border-left: 3px solid var(--accent); background: var(--surface-raised); }
.appointment-agenda-row.is-next, #team-appointments tr.is-next { border-left: 3px solid #5caa81; }
#team-appointments tr.is-current td:first-child, #team-appointments tr.is-next td:first-child { padding-left: 13px; }
.appointment-filters { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; border-bottom: 1px solid var(--line); }
.appointment-filters button { width: auto; min-height: 44px; padding: 8px 12px; border-radius: 0; border-bottom: 2px solid transparent; color: var(--muted); background: transparent; box-shadow: none; font-size: .86rem; }
.appointment-filters button.active { border-color: var(--accent); color: var(--text); font-weight: 700; }
.appointment-filters button:hover { color: var(--text); background: var(--surface-raised); box-shadow: none; }
.appointment-filters button:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.appointment-agenda-row { display: grid; grid-template-columns: 120px minmax(0, 1fr) auto 44px; gap: 12px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 6px; }
.appointment-agenda-row small { display: block; color: var(--muted); }
.appointment-agenda-row.is-cancelled { opacity: .8; }
.appointment-status { display: inline-flex; align-items: center; min-height: 28px; padding: 3px 8px; border: 1px solid var(--line-strong); border-radius: 6px; color: var(--text); font-size: .78rem; font-weight: 700; white-space: nowrap; }
.appointment-status.status-scheduled { border-color: var(--accent); }
.appointment-status.status-completed { border-color: #5caa81; }
.appointment-status.status-cancelled { border-color: var(--danger); }
.appointment-status.status-no_show { border-color: #b26a30; color: #8f4c1d; }
.team-appointment-item.status-no_show .team-appointment-status { color: #8f4c1d; border-color: color-mix(in srgb,#b26a30 45%,var(--line)); }
.appointment-actions { position: relative; justify-self: end; }
.appointment-actions summary { display: grid; place-items: center; width: 44px; min-height: 44px; border: 1px solid var(--line); border-radius: 6px; color: var(--text); cursor: pointer; font-size: 1.45rem; list-style: none; }
.appointment-actions summary::-webkit-details-marker { display: none; }
.appointment-actions summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.appointment-actions-menu { position: absolute; right: 0; top: calc(100% + 4px); z-index: 3; width: 170px; padding: 4px; border: 1px solid var(--line); border-radius: 6px; background: var(--menu-bg); box-shadow: 0 12px 28px rgba(0,0,0,.24); }
.appointment-actions-menu button { display: block; width: 100%; min-height: 42px; padding: 8px; border-radius: 4px; color: var(--text); background: transparent; box-shadow: none; text-align: left; }
.appointment-actions-menu button:hover { background: var(--surface-raised); }
.appointment-actions-menu .danger-option { color: #ffaaa3; }
.appointment-status-options { display: grid; gap: 8px; margin-top: 18px; }
.appointment-status-options label { display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 6px; cursor: pointer; }
.appointment-status-options label:has(input:checked) { border-color: var(--accent); background: var(--surface-raised); }
.appointment-status-options input { width: 18px; min-height: 18px; }
.appointment-status-modal { width: min(100%, 480px); }
.appointment-status-modal button:focus-visible, .appointment-status-options input:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.appointment-status-modal button:disabled { opacity: .6; cursor: wait; }
.appointment-row-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.appointment-row-actions .icon-action { flex: 0 0 44px; width: 44px; min-height: 44px; }
.appointment-confirm-modal { width: min(100%, 450px); }
.appointment-confirm-modal p { line-height: 1.65; }
.appointment-confirm-modal .danger-button { background: var(--danger); color: #fff; }
.appointment-confirm-modal .danger-button:disabled { opacity: .6; cursor: wait; }
.appointment-confirm-modal button:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.appointment-step-body h3 { margin: 0 0 12px; font-size: 1rem; }
.appointment-modal { width: min(100%, 660px); display: flex; flex-direction: column; }
.appointment-modal h2 { margin: 3px 0 0; font-size: 1.35rem; }
.appointment-modal .public-stage-heading h3 { margin: 0; font-size: 1.2rem; }
.appointment-modal .public-progress { margin-top: 18px; }
.appointment-current { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 14px; margin: 14px 0; padding: 12px; border: 1px solid var(--line); border-radius: 6px; }
.appointment-current div { min-width: 0; }
.appointment-current dt { color: var(--muted); font-size: .76rem; }
.appointment-current dd { margin: 2px 0 0; overflow-wrap: anywhere; font-size: .9rem; font-weight: 700; }
.appointment-steps { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0 0 12px; border-bottom: 1px solid var(--line); }
.appointment-steps li { padding: 6px 8px; color: var(--muted); font-size: .8rem; }
.appointment-steps li.current { color: var(--text); border-bottom: 2px solid var(--accent); font-weight: 700; }
.appointment-step-body { min-height: 180px; max-height: min(60dvh, 620px); overflow-y: auto; padding: 8px 2px; }
.appointment-step-body label { display: block; margin-bottom: 8px; }
.appointment-step-body input { width: 100%; }
.appointment-results { display: grid; gap: 8px; margin-top: 12px; }
.appointment-choice { width: 100%; min-height: 58px; display: grid; justify-items: start; padding: 10px 12px; text-align: left; color: var(--text); background: var(--surface); border: 1px solid var(--line); box-shadow: none; }
.appointment-choice small { color: var(--muted); }
.appointment-choice.selected, .appointment-slot.selected { border-color: var(--accent); outline: 2px solid var(--accent); outline-offset: -2px; }
.appointment-selection { margin: 0; color: var(--accent); }
.appointment-slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 8px; margin-top: 14px; }
.appointment-slot { min-height: 44px; padding: 8px; color: var(--text); background: var(--surface); border: 1px solid var(--line); box-shadow: none; }
.appointment-summary { display: grid; gap: 0; margin: 0; }
.appointment-summary div { display: flex; justify-content: space-between; gap: 12px; padding: 10px 2px; border-bottom: 1px solid var(--line); }
.appointment-summary dt { color: var(--muted); }
.appointment-summary dd { margin: 0; text-align: right; }
.appointment-error { min-height: 1.4em; }
.appointment-modal button:focus-visible, .appointment-modal input:focus-visible, #new-appointment:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.appointment-modal button:disabled { opacity: .6; cursor: wait; }
@media (max-width: 600px) {
  .appointment-backdrop { padding: 8px; }
  .appointment-modal { max-height: calc(100dvh - 16px); padding: 16px; }
  .appointment-step-body { max-height: 58dvh; }
  .appointment-agenda-row { grid-template-columns: minmax(0, 1fr) auto 44px; gap: 8px; }
  .appointment-agenda-row strong { grid-column: 1 / -1; }
  .appointment-status { align-self: start; }
  .appointment-row-actions { justify-content: flex-end; }
  .appointment-modal footer { flex-wrap: wrap; }
  .appointment-modal footer button { min-height: 44px; }
  .appointment-confirm-modal footer { flex-wrap: wrap; }
  .appointment-confirm-modal footer button { min-height: 44px; }
  .appointment-current { grid-template-columns: 1fr 1fr; }
  .appointment-status-modal footer { flex-wrap: wrap; }
  .appointment-status-modal footer button { min-height: 44px; }
}

/* Public establishment — editorial proportions and accessible interactions. */
.public-booking-shell { width: 100%; max-width: none; margin: 0; padding: 0; }
.public-site-header { position: fixed; inset: 0 0 auto; z-index: 20; display: flex; align-items: center; gap: clamp(18px,2.5vw,34px); min-height: 72px; padding: 0 max(24px,calc((100vw - 1180px)/2)); color: #fff; border-bottom: 1px solid transparent; transition: background 180ms ease, box-shadow 180ms ease, color 180ms ease; }
.public-site-header.is-scrolled { color: var(--text); background: color-mix(in srgb,var(--bg) 94%,transparent); border-bottom-color: color-mix(in srgb,var(--line) 76%,transparent); box-shadow: 0 1px 0 color-mix(in srgb,var(--line) 72%,transparent); backdrop-filter: blur(10px); }
.public-site-brand { min-width: 0; margin-right: auto; color: inherit; font-size: .98rem; font-weight: 700; letter-spacing: -.02em; text-decoration: none; overflow-wrap: anywhere; }
.public-menu { position: static; display: flex; flex: 0 1 auto; gap: clamp(14px,1.8vw,24px); margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
.public-menu a { flex: 0 0 auto; min-height: 44px; padding: 0; color: inherit; font-size: .9rem; font-weight: 650; }
.public-menu a:hover,.public-menu a:focus-visible { color: inherit; background: transparent; text-decoration: underline; text-underline-offset: 5px; }
.public-header-cta,.public-mobile-cta { width: auto; min-height: 44px; margin: 0; padding: 0 16px; border: 0; border-radius: 999px; background: var(--accent); color: var(--accent-text); box-shadow: none; font-weight: 750; }
.public-site-header.is-scrolled .public-header-cta { background: var(--accent); color: var(--accent-text); }
.public-site-hero { min-height: min(780px,88svh); align-items: flex-end; margin: 0; padding: clamp(112px,16vh,168px) max(24px,calc((100vw - 1180px)/2)) clamp(56px,10vh,108px); }
.public-site-hero { min-height: min(820px, 82svh); padding-bottom: clamp(72px, 11vh, 132px); background-image: linear-gradient(to top, rgba(0,0,0,.72) 0%, rgba(0,0,0,.30) 45%, rgba(0,0,0,.08) 75%, transparent 100%), var(--public-cover); }
.public-site-hero-copy { width: min(100%,650px); }
.public-site-hero-copy { max-width: 620px; }
.public-site-hero h1 { max-width: 11ch; margin: 10px 0 18px; font-size: clamp(3rem,7vw,6.5rem); line-height: .94; letter-spacing: -.065em; }
.public-site-hero p:not(.eyebrow) { max-width: 35rem; font-size: clamp(1rem,1.5vw,1.18rem); line-height: 1.55; }
.public-site-hero .public-hero-proof { display: none; }
.public-hero-meta { max-width: 38rem; margin: 18px 0 0; color: rgba(255,255,255,.72); font-size: .875rem !important; line-height: 1.45 !important; }
.public-hero-cta { width: fit-content; display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 48px; margin-top: 18px; padding: 0 22px; border: 0; cursor: pointer; transition: transform 150ms ease,background 150ms ease,color 150ms ease; }
.public-hero-cta:hover { transform: translateY(-1px); }.public-hero-cta:active { transform: translateY(0); }
.public-overview { width: min(calc(100% - 48px),1080px); gap: clamp(40px,5vw,64px); margin: 0 auto; padding: clamp(40px,5vw,64px) 0; }
.public-overview { width: min(calc(100% - 48px), 1120px); gap: clamp(56px, 8vw, 112px); padding-block: clamp(56px, 9vw, 120px); }
.public-overview { gap: clamp(40px, 6vw, 76px); padding-block: clamp(42px, 6vw, 84px); }
.public-overview-section { min-width: 0; width: 100%; scroll-margin-top: 96px; }.public-section-heading { min-width: 0; max-width: 610px; margin-bottom: 22px; }
.public-section-heading h2 { margin: 6px 0 0; font-size: clamp(1.85rem,3.25vw,3rem); line-height: 1.06; letter-spacing: -.045em; }
.public-section-heading p:not(.eyebrow) { margin: 12px 0 0; color: var(--muted); }
.public-professional-grid { width: 100%; display: grid; grid-template-columns: repeat(auto-fill,minmax(240px,300px)); gap: clamp(16px,2.3vw,24px); }
.public-professional-card { display: grid; gap: 14px; min-width: 0; overflow: hidden; }
.public-professional-card .public-professional-media,.public-professional-card .public-professional-placeholder { width: 100%; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 12px; }
.public-professional-media { position: relative; background: var(--bg-soft); }.public-professional-media::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg,transparent 56%,rgba(0,0,0,.16)); opacity: 0; transition: opacity 180ms ease; }
.public-professional-card .public-professional-media img { width: 100%; height: 100%; display: block; aspect-ratio: auto; border-radius: 0; object-fit: cover; transition: transform 180ms ease; }
.public-professional-card:hover img { transform: scale(1.025); }.public-professional-card:hover .public-professional-media::after { opacity: 1; }
.public-professional-card .public-professional-placeholder { position: relative; isolation: isolate; display: grid; place-items: center; border: 1px solid color-mix(in srgb,var(--accent) 36%,var(--line)); background: radial-gradient(circle at 16% 18%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 38%),color-mix(in srgb,var(--bg-soft) 82%,var(--surface)); color: color-mix(in srgb,var(--accent) 90%,#fff); font-size: clamp(1.9rem,4vw,2.8rem); font-weight: 650; letter-spacing: .08em; }
.public-professional-placeholder::before,.public-professional-placeholder::after { content: ''; position: absolute; z-index: -1; width: 48%; aspect-ratio: 1; border: 1px solid color-mix(in srgb,var(--accent) 22%,transparent); border-radius: 50%; }.public-professional-placeholder::before { top: -18%; right: -7%; }.public-professional-placeholder::after { bottom: -23%; left: -13%; }
.public-professional-content { display: grid; gap: 4px; padding: 0 2px 3px; }.public-professional-card h3 { margin: 0; font-size: 1.12rem; letter-spacing: -.02em; }.public-professional-content > p,.public-professional-content > small { margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.45; }.public-professional-content > small { min-height: 1.45em; font-size: .875rem; }
.public-text-action { justify-self: start; width: auto; min-height: 44px; margin-top: 4px; padding: 0; border: 0; border-radius: 0; color: var(--accent); background: transparent; box-shadow: none; font-weight: 700; transition: color 150ms ease; }.public-text-action::after { display: inline-block; transition: transform 150ms ease; }.public-text-action:hover::after,.public-text-action:focus-visible::after { transform: translateX(4px); }
.public-service-list { border-top: 1px solid var(--line); }.public-service-row { width: 100%; min-height: 78px; display: grid; grid-template-columns: minmax(0,1fr) auto 24px; align-items: center; gap: 18px; padding: 17px 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; color: var(--text); background: transparent; box-shadow: none; text-align: left; transition: color 150ms ease,background 150ms ease; }.public-service-row:hover { padding-inline: 0; background: color-mix(in srgb,var(--surface-raised) 55%,transparent); box-shadow: none; }.public-service-row strong { font-size: 1.08rem; }.public-service-row small { display: block; margin-top: 4px; color: var(--muted); }.public-service-row b { font-size: 1rem; white-space: nowrap; }.public-service-row em { grid-column: auto; justify-self: end; color: var(--muted); font-size: 1.3rem; font-style: normal; transition: transform 150ms ease,color 150ms ease; }.public-service-row:hover em,.public-service-row:focus-visible em { transform: translateX(4px); color: var(--accent); }
.public-gallery { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(220px,.8fr); grid-template-rows: repeat(2,minmax(180px,1fr)); gap: 12px; }.public-gallery-image { width: 100%; height: 100%; min-height: 0; display: block; border-radius: 12px; object-fit: cover; }.public-gallery-image-1 { grid-row: 1 / span 2; min-height: 390px; }
.public-reviews-section { max-width: 760px; padding-top: 0; }.public-reviews-section .public-section-heading { margin-bottom: 16px; }.public-reviews-summary { display: grid; grid-template-columns: auto 1fr; align-items: center; column-gap: 12px; row-gap: 2px; margin-top: 16px; }.public-reviews-summary strong { grid-row: 1 / span 2; font-size: 2.6rem; line-height: 1; letter-spacing: -.06em; }.public-reviews-summary span { color: var(--accent); letter-spacing: .08em; }.public-reviews-summary small { color: var(--muted); }.public-review footer span { display: block; margin-top: 5px; color: var(--muted); font-size: .78rem; }
.public-about { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,.9fr); align-items: center; gap: clamp(28px,6vw,80px); }.public-about-copy h2,.public-location-section h2 { margin: 8px 0 16px; font-size: clamp(1.85rem,3vw,2.8rem); line-height: 1.08; letter-spacing: -.045em; }.public-about-copy > p:last-child,.public-location-section p { margin: 0; color: var(--muted); line-height: 1.7; }.public-about > img { width: 100%; aspect-ratio: 4 / 5; border-radius: 12px; object-fit: cover; }.public-location-section { display: flex; justify-content: space-between; gap: 28px; padding-top: 4px; border-top: 1px solid var(--line); }.public-location-actions { display: flex; flex-wrap: wrap; align-content: start; gap: 8px 18px; padding-top: 8px; }.public-location-actions a { color: var(--accent); font-weight: 700; text-decoration: none; }.public-location-actions a:hover span,.public-location-actions a:focus-visible span { display: inline-block; transform: translateX(4px); }
.public-final-cta { min-height: 360px; }.public-site-footer { width: min(calc(100% - 48px),1080px); display: grid; grid-template-columns: minmax(160px,1fr) minmax(0,1.6fr) auto; align-items: start; gap: 24px; margin: 0 auto; padding: 34px 0 42px; border-top: 1px solid var(--line); color: var(--muted); font-size: .9rem; }.public-site-footer > div { display: grid; gap: 8px; }.public-site-footer strong { color: var(--text); font-size: 1rem; }.public-site-footer p { margin: 0; font-size: .8rem; }.public-site-footer nav { display: flex; flex-wrap: wrap; gap: 4px 16px; }.public-site-footer a { display: inline-flex; align-items: center; min-height: 44px; color: inherit; text-decoration: none; }.public-site-footer a:hover,.public-site-footer a:focus-visible { color: var(--text); text-decoration: underline; }.public-site-footer small { align-self: end; color: var(--muted); font-size: .75rem; white-space: nowrap; }.public-mobile-cta { display: none; }
.public-final-cta { min-height: clamp(360px, 48vw, 560px); }
.public-final-cta h2 { max-width: 10ch; font-weight: 600; }
.public-site-footer { padding-top: 42px; }
/* Shared controls keep the page's identity without the dashboard's glow. */
.public-booking-body { --public-radius: 12px; --public-control-radius: 999px; }
.public-booking-body { overflow-x: hidden; }
.public-booking-body :is(button,a,input,select,textarea,[tabindex]):focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
.public-booking-body button { box-shadow: none; }
.public-booking-body button:disabled { cursor: not-allowed; opacity: .55; transform: none; }
.public-booking-body button:active:not(:disabled) { transform: translateY(1px); }
.public-booking-body :is(.public-text-action,.public-dismiss-booking,.public-menu-toggle):hover { background: transparent; color: var(--accent-hover); box-shadow: none; }
.public-booking-body .public-hero-cta:hover { background: var(--accent-hover); color: var(--accent-text); box-shadow: none; }
.public-hero-cta,.public-header-cta,.public-mobile-cta { border-radius: var(--public-control-radius); }
.public-site-hero { background-image: linear-gradient(180deg,rgba(0,0,0,.38),rgba(0,0,0,.3) 40%,rgba(0,0,0,.82)),var(--public-cover); }
.public-site-hero .eyebrow { color: rgba(255,255,255,.9); }
.public-final-cta .eyebrow { color: var(--accent); }
.public-site-hero,.public-final-cta { overflow-wrap: anywhere; }
.public-site-header.is-scrolled,.public-site-header.menu-open { box-shadow: none; }
.public-menu-toggle { display: none; }
.public-professional-card h3 { overflow-wrap: anywhere; line-height: 1.4; }
.public-professional-card:hover .public-professional-placeholder { transform: none; }
.public-professional-card .public-professional-placeholder { border-color: color-mix(in srgb,var(--accent) 18%,transparent); background: color-mix(in srgb, var(--accent) 7%, var(--bg-soft)); font-weight: 500; }
.public-professional-placeholder::before,.public-professional-placeholder::after { display: none; }
.public-service-row span { min-width: 0; gap: 0; }
.public-service-row strong { overflow-wrap: anywhere; font-weight: 600; }
.public-service-row b { font-variant-numeric: tabular-nums; font-weight: 500; }
.public-gallery[data-image-count="1"] { grid-template-columns: 1fr; grid-template-rows: 360px; }
.public-gallery[data-image-count="1"] .public-gallery-image-1 { grid-row: auto; min-height: 0; }
.public-gallery[data-image-count="2"] { grid-template-rows: 360px; }
.public-gallery[data-image-count="2"] .public-gallery-image-1 { grid-row: auto; min-height: 0; }
.public-about-text-only { grid-template-columns: 1fr; max-width: 64ch; }
.public-location-actions a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; }
.public-rating-distribution { display: grid; gap: 4px; max-width: 360px; margin-top: 20px; }
.public-rating-distribution > div { display: grid; grid-template-columns: 32px minmax(0,1fr) 32px; align-items: center; gap: 12px; font-size: .875rem; color: var(--muted); }
.public-rating-distribution small { text-align: right; font-variant-numeric: tabular-nums; }
.public-rating-distribution meter { width: 100%; height: 8px; appearance: none; background: var(--bg-soft); border-radius: 4px; }
.public-rating-distribution meter::-webkit-meter-bar { background: var(--bg-soft); border: 0; }
.public-rating-distribution meter::-webkit-meter-optimum-value { background: var(--accent); }
.public-rating-distribution meter::-moz-meter-bar { background: var(--accent); }
.public-review blockquote { margin-inline: 0; overflow-wrap: anywhere; }
.public-booking-panel { scroll-margin-top: 88px; min-width: 0; }
.public-booking-context { color: var(--accent); margin: 0 0 20px; }
.public-dismiss-booking { min-height: 44px; }
.public-loading,.public-not-found { min-height: 60svh; display: grid; align-content: center; justify-content: center; padding: 32px; }
.public-skip-link { position: fixed; top: 8px; left: 16px; z-index: 100; padding: 12px 16px; background: var(--bg); color: var(--text); transform: translateY(-150%); }
.public-skip-link:focus { transform: none; }
.public-booking-body .public-chat { right: max(24px,env(safe-area-inset-right)); bottom: max(24px,env(safe-area-inset-bottom)); }
.public-booking-body .public-chat-launcher { background: var(--bg-soft); color: var(--accent); border-color: var(--line-strong); box-shadow: 0 4px 16px rgba(0,0,0,.24); }
.public-booking-body .public-chat-panel { background: var(--bg-soft); border-radius: var(--public-radius); }
.public-booking-body .public-chat-actions button,.public-booking-body .public-chat-close { min-height: 44px; }
.public-booking-body .public-chat-close { min-width: 44px; }
.public-booking-body .public-chat-composer { grid-template-columns: minmax(0,1fr) 44px; padding-bottom: max(12px,env(safe-area-inset-bottom)); }
.public-booking-body .public-chat-composer button { width: 44px; min-height: 44px; }
.public-booking-body .public-chat-composer textarea { min-height: 44px; font-size: 1rem; }
.public-chat-open .public-mobile-cta,.public-booking-open .public-mobile-cta { display: none; }
@media (max-width:900px) {
  .public-site-header { padding-inline: 20px; gap: 16px; }
  .public-menu { gap: 12px; }
  .public-menu a { font-size: .8125rem; }
}
@media (max-width:700px) { .public-booking-shell { padding-bottom: calc(88px + env(safe-area-inset-bottom)); }.public-site-header { min-height: 64px; gap: 12px; padding: 0 16px; backdrop-filter: none; }.public-menu,.public-header-cta { display: none; }.public-site-hero { min-height: min(690px,82svh); padding: 110px 24px 52px; }.public-site-hero h1 { font-size: clamp(2.7rem,14vw,4.6rem); }.public-hero-cta { width: 100%; }.public-overview { width: min(calc(100% - 32px),1080px); gap: 40px; padding-block: 40px; }.public-professional-grid { display: flex; width: calc(100% + 16px); margin-right: -16px; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; padding: 2px 16px 10px 0; scrollbar-width: thin; }.public-professional-card { flex: 0 0 min(78vw,300px); scroll-snap-align: start; }.public-professional-card .public-professional-media,.public-professional-card .public-professional-placeholder { border-radius: 12px; }.public-service-row { gap: 10px; padding: 18px 0; }.public-service-row:hover { padding-inline: 0; background: transparent; }.public-service-row strong { font-size: 1rem; }.public-gallery { display: flex; width: calc(100% + 16px); margin-right: -16px; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; padding-right: 16px; scrollbar-width: thin; }.public-gallery-image,.public-gallery-image-1 { flex: 0 0 min(82vw,340px); min-height: 310px; aspect-ratio: 4 / 5; scroll-snap-align: start; }.public-about { grid-template-columns: 1fr; gap: 24px; }.public-about > img { max-height: 440px; }.public-location-section { display: grid; gap: 18px; }.public-final-cta { min-height: 360px; padding: 28px 22px; border-radius: 12px; }.public-site-footer { width: min(calc(100% - 32px),1080px); grid-template-columns: 1fr; gap: 18px; padding-bottom: 26px; }.public-site-footer small { align-self: auto; }.public-mobile-cta { position: fixed; left: 16px; right: 88px; bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 20; display: block; min-height: 48px; background: var(--accent); color: var(--accent-text); box-shadow: 0 10px 28px rgba(0,0,0,.24); } }
.public-site-hero { min-height: min(720px, 82svh); padding: 104px 24px 72px; }
@media (max-width:700px) {
  .public-menu-toggle { width: auto; display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 8px; margin: 0; border: 0; background: transparent; color: inherit; font-weight: 500; }
  .public-site-header.menu-open { background: var(--bg); color: var(--text); }
  .public-site-header.menu-open .public-menu { display: grid; position: absolute; inset: 64px 0 auto; gap: 0; padding: 12px 20px 20px; border-bottom: 1px solid var(--line); background: var(--bg); max-height: calc(100dvh - 64px); overflow-y: auto; }
  .public-menu a { justify-content: start; border-radius: 0; font-size: 1rem; padding: 8px 0; }
  .public-site-brand { font-size: 1rem; line-height: 1.3; }
  .public-booking-body .public-chat { right: 16px; bottom: calc(12px + env(safe-area-inset-bottom)); }
  .public-booking-open .public-chat { bottom: calc(16px + env(safe-area-inset-bottom)); }
  .public-chat-open .public-mobile-cta,.public-booking-open .public-mobile-cta { display: none; }
  .public-service-row { grid-template-columns: minmax(0,1fr) auto 20px; gap: 12px; }
  .public-progress { grid-template-columns: repeat(3,minmax(0,1fr)); row-gap: 12px; }
  .public-progress li small { font-size: .75rem; }
  .public-booking-panel { padding-inline: 0; }
  .public-booking-panel-heading { align-items: start; gap: 12px; }
  .public-booking-panel-heading h2 { font-size: 1.5rem; }
  .public-hero-cta { max-width: 340px; }
  .public-final-cta h2 { font-size: clamp(1.875rem,8vw,2.5rem); }
  .public-professional-grid,.public-gallery { scroll-snap-type: x proximity; scroll-padding-inline: 4px; padding-top: 4px; }
}
@media (max-width:600px) { .public-booking-body .public-chat-panel { border-radius: 0; } }
@media (prefers-reduced-transparency:reduce) {
  .public-site-header.is-scrolled { background: var(--bg); backdrop-filter: none; }
}
@media (prefers-contrast:more) {
  .public-booking-body { --muted: #dedede; --line: #999; }
}
@media (prefers-reduced-motion:reduce) { .public-site-header,.public-hero-cta,.public-professional-card img,.public-professional-media::after,.public-text-action::after,.public-service-row,.public-service-row em { transition: none; } }

.public-service-row:has(.public-service-image) { grid-template-columns: 56px minmax(0,1fr) auto 24px; }
@media (max-width:700px) { .public-service-row:has(.public-service-image) { grid-template-columns: 48px minmax(0,1fr) auto 20px; }.public-service-image { width: 48px; height: 48px; } }

/* Final hero treatment: photography leads, content stays concise and legible. */
.public-site-hero { min-height: min(820px, 82svh); background-image: linear-gradient(to top, rgba(0,0,0,.72) 0%, rgba(0,0,0,.30) 45%, rgba(0,0,0,.08) 75%, transparent 100%), var(--public-cover); }
.public-site-hero .public-hero-proof { display: none; }
.public-hero-meta { max-width: 38rem; margin: 18px 0 0; color: rgba(255,255,255,.72); font-size: .875rem !important; line-height: 1.45 !important; }
@media (max-width: 700px) { .public-site-hero { min-height: min(720px, 82svh); padding: 104px 24px 72px; } }

/* Contextual booking: a focused task layer, separate from the establishment story. */
.public-booking-panel {
  position: fixed;
  inset: 0;
  z-index: 70;
  display: grid;
  place-items: center;
  overflow-y: auto;
  padding: clamp(20px, 5vw, 64px);
  background: rgba(0, 0, 0, .76);
  backdrop-filter: blur(6px);
}
.public-booking-dialog {
  width: min(100%, 760px);
  max-height: min(880px, calc(100dvh - 40px));
  overflow-y: auto;
  padding: clamp(24px, 4vw, 48px);
  border: 1px solid var(--line-strong);
  border-radius: 18px;
  background: var(--bg);
  box-shadow: 0 24px 80px rgba(0, 0, 0, .48);
}
.public-booking-panel-heading { margin-bottom: 24px; }
.public-booking-panel-heading {
  position: sticky;
  top: 0;
  z-index: 2;
  align-items: center;
  margin: calc(-1 * clamp(24px, 4vw, 48px)) calc(-1 * clamp(24px, 4vw, 48px)) 24px;
  padding: clamp(18px, 3vw, 28px) clamp(24px, 4vw, 48px) 18px;
  border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 94%, transparent);
  backdrop-filter: blur(10px);
}
.public-booking-panel-heading h2 { margin-bottom: 0; }
.public-dismiss-booking {
  width: 44px;
  min-width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--text);
  background: transparent;
}
.public-dismiss-booking svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.public-dismiss-booking:hover { border-color: var(--accent); color: var(--accent); background: var(--soft-hover); }
body.public-booking-open { overflow: hidden; }
body.public-booking-open .public-chat { display: none; }
@media (max-width: 700px) {
  .public-booking-panel { display: block; padding: 0; background: var(--bg); backdrop-filter: none; }
  .public-booking-dialog { width: 100%; min-height: 100dvh; max-height: none; padding: max(24px, env(safe-area-inset-top)) 20px max(32px, env(safe-area-inset-bottom)); border: 0; border-radius: 0; box-shadow: none; }
  .public-booking-panel-heading { margin: calc(-1 * max(24px, env(safe-area-inset-top))) -20px 24px; padding: max(16px, env(safe-area-inset-top)) 20px 14px; background: var(--bg); backdrop-filter: none; }
}
@media (prefers-reduced-transparency: reduce) {
  .public-booking-panel { background: var(--bg); }
}

@media (prefers-reduced-motion:reduce) {
  .public-booking-body *, .public-booking-body *::before, .public-booking-body *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .public-professional-card:hover img { transform: none; }
}

/* Keep the dialog controls visible while its content scrolls. */
.public-booking-panel .public-booking-panel-heading {
  position: sticky !important;
  top: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 64px;
  margin: -24px -24px 24px;
  padding: 14px 24px;
  background: var(--bg);
  border-bottom: 1px solid var(--line);
}

/* Professionals become the human bridge between the hero and the booking decision. */
.public-overview > #public-professionals {
  position: relative;
  z-index: 2;
  margin-top: clamp(-112px, -8vw, -76px);
  padding-top: clamp(76px, 9vw, 112px);
  padding-bottom: clamp(24px, 4vw, 42px);
  border-top: 1px solid color-mix(in srgb, var(--line) 64%, transparent);
}
.public-overview > #public-professionals > .public-section-heading { display: none; }
.public-professional-grid { grid-template-columns: repeat(auto-fit, minmax(170px, 220px)); justify-content: center; gap: 18px; margin: 0; }
.public-professional-card {
  position: relative;
  cursor: pointer;
  padding: 0 8px;
  border: 0;
  border-radius: 0;
  background: transparent;
  transform: none;
  transition: transform 160ms ease;
}
.public-professional-card:hover { transform: translateY(-2px); background: transparent; }
.public-professional-card .public-professional-placeholder,
.public-professional-card .public-professional-media {
  width: clamp(64px, 6vw, 78px);
  aspect-ratio: 1;
  margin: 0 auto 2px;
  border-radius: 50%;
  border: 4px solid var(--bg);
}
.public-professional-card .public-professional-content { text-align: center; }
.public-professional-card .public-professional-content > p { display: block; margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.35; }
.public-professional-card .public-professional-content > small { color: var(--muted); font-size: .8rem; transition: color 220ms ease; }
.public-professional-card .public-text-action { display: none; }
.public-team-booking { display: flex; width: fit-content; margin: 28px auto 0; }
.public-review-modal-open { overflow: hidden; }
.public-review-modal-open .public-chat { display: none; }
.public-review-modal-person { display: grid; justify-items: center; gap: 8px; margin: -6px 0 24px; text-align: center; }
.public-review-modal-person .public-professional-modal-photo { width: 84px; }
.public-review-modal-person span { color: var(--muted); font-size: .875rem; }
.public-review-empty { margin: 0; color: var(--muted); }
.public-professional-modal[hidden] { display: none; }
.public-professional-modal { position: fixed; inset: 0; z-index: 75; display: grid; place-items: center; padding: 24px; }
.public-professional-modal-scrim { position: absolute; inset: 0; background: rgba(0,0,0,.76); backdrop-filter: blur(6px); }
.public-professional-modal-dialog { position: relative; width: min(100%, 940px); max-height: min(820px, calc(100dvh - 48px)); overflow-y: auto; padding: clamp(24px, 4vw, 48px); border: 1px solid var(--line-strong); border-radius: 18px; background: var(--bg); box-shadow: 0 24px 80px rgba(0,0,0,.48); }
.public-professional-modal-dialog > header { display: flex; align-items: start; justify-content: space-between; gap: 20px; margin-bottom: 30px; }
.public-professional-modal-dialog h2 { margin: 6px 0 0; font-size: clamp(1.7rem, 3vw, 2.6rem); letter-spacing: -.045em; }
.public-professional-modal-close { width: 44px; min-width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: transparent; color: var(--text); }
.public-professional-modal-close svg { width: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.public-professional-modal-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; }
.public-professional-modal-card { display: grid; justify-items: center; gap: 8px; padding: 20px; border: 1px solid var(--line); border-radius: 14px; text-align: center; }
.public-professional-modal-card.is-selected { border-color: var(--accent); }
.public-professional-modal-photo { width: 132px; aspect-ratio: 1; border-radius: 50%; }
.public-professional-modal-card h3 { margin: 4px 0 0; font-size: 1.1rem; }
.public-professional-modal-card p { min-height: 1.4em; margin: 0; color: var(--muted); font-size: .875rem; }
.public-professional-modal-card .public-hero-cta { width: auto; min-height: 44px; margin-top: 10px; }
body.public-professional-modal-open { overflow: hidden; }
body.public-professional-modal-open .public-chat { display: none; }
@media (max-width: 700px) {
  .public-overview > #public-professionals { margin-top: -104px; padding-top: 72px; padding-bottom: 30px; }
  .public-professional-grid { margin: 0; contain: paint; }
  .public-professional-card { flex-basis: min(58vw, 210px); padding: 0 4px; transform: none; }
  .public-professional-card:hover { transform: translateY(-2px); }
  .public-team-booking { margin-top: 24px; }
  .public-professional-modal { padding: 0; }
  .public-professional-modal-dialog { width: 100%; min-height: 100dvh; max-height: none; padding: max(24px, env(safe-area-inset-top)) 20px max(32px, env(safe-area-inset-bottom)); border: 0; border-radius: 0; }
  .public-professional-modal-grid { display: flex; overflow-x: auto; scroll-snap-type: x proximity; padding: 4px 0 12px; }
  .public-professional-modal-card { flex: 0 0 min(78vw, 280px); scroll-snap-align: start; }
}
@media (prefers-reduced-motion: reduce) {
  .public-professional-card { transition: none; }
}
@media (min-width: 701px) {
  .public-booking-panel .public-booking-panel-heading { margin: -48px -48px 24px; padding: 18px 48px; }
}
@media (max-width: 700px) {
  .public-booking-panel .public-booking-panel-heading { margin: -24px -20px 24px; padding: max(14px, env(safe-area-inset-top)) 20px 14px; }
}

/* Booking header: a stable task anchor while the steps scroll underneath. */
.public-booking-dialog { overscroll-behavior: contain; padding: 0 clamp(24px, 4vw, 48px) clamp(24px, 4vw, 48px); }
.public-booking-panel .public-booking-panel-heading {
  position: sticky !important;
  top: 0 !important;
  z-index: 10;
  flex: 0 0 auto;
  min-height: 76px;
  align-items: center;
  gap: 18px;
  margin: 0 -48px 24px !important;
  padding: 16px 48px 14px !important;
  border-bottom: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
  background: var(--bg);
  box-shadow: 0 8px 18px rgba(0, 0, 0, .08);
  backdrop-filter: none;
}
.public-booking-panel-heading > div { min-width: 0; }
.public-booking-panel-heading .eyebrow { margin: 0 0 4px; font-size: .68rem; letter-spacing: .14em; }
.public-booking-panel-heading h2 { margin: 0; max-width: 24ch; font-size: clamp(1.45rem, 2.8vw, 2rem); line-height: 1.08; }
.public-dismiss-booking { flex: 0 0 44px; margin-left: auto; border-color: var(--line-strong); }
.public-dismiss-booking:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.public-dismiss-booking:disabled { opacity: .45; cursor: wait; }
@media (max-width: 700px) {
  .public-booking-panel .public-booking-panel-heading {
    min-height: 70px;
    margin: 0 -20px 24px !important;
    padding: max(14px, env(safe-area-inset-top)) 20px 12px !important;
  }
  .public-booking-panel-heading h2 { font-size: 1.42rem; }
}

/* Professionals section: centered editorial presentation with deliberate breathing room. */
.public-overview > #public-professionals {
  margin-top: 0;
  padding-top: clamp(64px, 8vw, 104px);
  padding-bottom: clamp(24px, 3.5vw, 40px);
  border-top: 0;
}
.public-overview > #public-professionals > .public-section-heading { display: block; max-width: 620px; margin: 0 auto 36px; text-align: center; }
.public-overview > #public-professionals > .public-section-heading h2 { max-width: none; margin-top: 10px; font-size: clamp(2rem, 4vw, 3.5rem); }
.public-overview > #public-professionals > .public-section-heading p:not(.eyebrow) { margin: 12px auto 0; max-width: 42ch; }
.public-professional-grid { grid-template-columns: repeat(auto-fit, minmax(150px, 190px)); gap: 28px; margin: 0 auto; }
.public-professional-card { padding: 0; }
.public-professional-card .public-professional-placeholder,
.public-professional-card .public-professional-media { width: 96px; margin: 0 auto 12px; }
.public-professional-card .public-professional-placeholder { background: color-mix(in srgb, var(--accent) 10%, var(--bg-soft)); border: 1px solid color-mix(in srgb, var(--accent) 36%, var(--line)); color: var(--accent); font-size: 1.35rem; letter-spacing: .08em; }
.public-professional-card.is-selected .public-professional-placeholder { outline: 2px solid var(--accent); outline-offset: 4px; }
.public-professional-card:hover h3,.public-professional-card.is-selected h3 { color: var(--text); }
.public-professional-card:hover small,.public-professional-card.is-selected small { color: var(--accent); }
.public-professional-card .public-professional-content { gap: 5px; }
.public-professional-card h3 { font-size: 1rem; font-weight: 600; }
.public-team-booking { margin: 34px auto 0; }
@media (max-width: 700px) {
  .public-overview > #public-professionals { padding-top: 48px; padding-bottom: 28px; }
  .public-overview > #public-professionals > .public-section-heading { margin-bottom: 28px; text-align: left; }
  .public-overview > #public-professionals > .public-section-heading h2 { font-size: clamp(1.9rem, 8vw, 2.6rem); }
  .public-professional-grid { justify-content: start; gap: 22px; padding-bottom: 4px; }
  .public-professional-card { flex-basis: 150px; }
  .public-professional-card .public-professional-placeholder,
  .public-professional-card .public-professional-media { width: 80px; }
  .public-professional-card .public-professional-placeholder { font-size: 1.05rem; }
  .public-team-booking { margin-top: 28px; }
}
@media (max-width: 700px) {
  .public-overview { gap: 36px; padding-block: 40px; }
  .public-professional-grid { width: 100%; margin-right: 0; padding-right: 0; overflow-x: auto; }
}

/* Service rows stay editorial while acknowledging pointer and keyboard intent. */
.public-service-row { transition: transform 220ms ease, color 220ms ease, background 220ms ease; }
.public-service-row:hover, .public-service-row:focus-visible { transform: translateX(6px); }
.public-service-row:hover strong, .public-service-row:focus-visible strong { color: var(--text); }
@media (max-width: 700px) {
  .public-service-row:hover, .public-service-row:focus-visible { transform: translateX(3px); }
}

/* Final team composition: faces emerge from the hero, without a surrounding card. */
.public-overview { padding-top: 0; }
.public-overview > #public-professionals { margin-top: -215px; padding-top: 64px; padding-bottom: 28px; }
.public-overview > #public-professionals > .public-section-heading { display: none; }
.public-professional-grid { gap: clamp(20px, 3vw, 34px); }
.public-professional-card { position: relative; flex-basis: 160px; overflow: visible; }
.public-professional-card .public-professional-placeholder,
.public-professional-card .public-professional-media { width: clamp(104px, 8vw, 116px); height: clamp(104px, 8vw, 116px); margin-bottom: 8px; }
.public-professional-card .public-professional-content { gap: 4px; }
.public-professional-card h3 { font-weight: 550; }
.public-professional-card.is-selected { opacity: 1; }
.public-professional-card:not(.is-selected) { opacity: .84; }
.public-professional-card.is-selected .public-professional-placeholder,
.public-professional-card.is-selected .public-professional-media { transform: scale(1.04); }
.public-professional-card.is-selected::after { content: '✓'; position: absolute; top: -4px; left: calc(50% + 34px); width: 22px; height: 22px; display: grid; place-items: center; border: 2px solid var(--bg); border-radius: 50%; background: var(--accent); color: var(--accent-text); font-size: .72rem; font-weight: 800; }
.public-team-booking { margin-top: 28px; }
#public-services { margin-top: clamp(36px, 5vw, 64px) !important; }
@media (max-width: 700px) {
  .public-overview > #public-professionals { margin-top: -220px; padding-top: 54px; padding-bottom: 24px; }
  .public-professional-grid { gap: 22px; }
  .public-professional-card { flex-basis: 142px; }
  .public-professional-card .public-professional-placeholder,
  .public-professional-card .public-professional-media { width: clamp(78px, 22vw, 88px); height: clamp(78px, 22vw, 88px); }
  .public-team-booking { margin-top: 24px; }
}

/* Mobile-only composition: compact hero, portraits crossing its lower edge. */
@media (max-width: 700px) {
  .public-site-hero {
    min-height: 58svh;
    height: auto;
    padding: 96px max(20px, env(safe-area-inset-left)) 70px max(20px, env(safe-area-inset-right));
    background-position: 62% center;
    background-image: linear-gradient(to top, rgba(0,0,0,.78) 0%, rgba(0,0,0,.42) 35%, rgba(0,0,0,.10) 70%, transparent 100%), var(--public-cover);
  }
  .public-site-hero h1 { max-width: 12ch; font-size: clamp(2rem, 10vw, 3.4rem); line-height: .95; }
  .public-site-hero p:not(.eyebrow) { max-width: 30ch; font-size: .95rem; line-height: 1.4; }
  .public-hero-meta { margin-top: 10px; font-size: .875rem !important; }
  .public-overview { padding-top: 0; }
  .public-overview > #public-professionals { margin-top: -212px; padding-top: 54px; padding-bottom: 20px; }
  .public-professional-grid { gap: 18px; }
  .public-professional-card { flex-basis: 128px; min-width: 128px; }
  .public-professional-grid:not(.has-many-professionals) { justify-content: center; }
  .public-professional-grid.has-many-professionals { justify-content: flex-start; }
  .public-professional-card .public-professional-placeholder,
  .public-professional-card .public-professional-media { width: clamp(72px, 22vw, 88px); height: clamp(72px, 22vw, 88px); }
  .public-team-booking { width: calc(100% - 40px); max-width: 360px; min-height: 50px; margin-top: 26px; }
  #public-services { margin-top: 48px !important; }
  html:has(body.public-booking-body) { overflow-x: hidden; }
}

/* The team crosses the hero boundary as one composition, with reserved space. */
.public-overview > #public-professionals {
  margin-top: 0;
  padding-top: clamp(24px, 3vw, 40px);
  padding-bottom: clamp(28px, 4vw, 44px);
}
.public-overview > #public-professionals > .public-section-heading { margin-bottom: 28px; }
.public-professional-grid { margin: 0 auto; transform: none; }
.public-professional-card { transform: none; }
.public-professional-card:hover { transform: translateY(-3px); }
.public-professional-card .public-professional-placeholder,
.public-professional-card .public-professional-media { width: clamp(96px, 8vw, 120px); height: clamp(96px, 8vw, 120px); margin: 0 auto 10px; border: 3px solid var(--bg); box-shadow: 0 4px 14px rgba(0,0,0,.12); }
.public-professional-card .public-professional-placeholder,
.public-professional-card .public-professional-media { border-width: 2px; box-shadow: none; }
.public-professional-card .public-professional-content > p { display: none; }
.public-professional-card h3 { max-width: 15ch; margin-inline: auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.public-team-booking { margin-top: 28px; }
.public-team-booking { min-width: 196px; min-height: 50px; justify-content: center; padding-inline: 24px; background: var(--accent); color: var(--accent-text); font-weight: 700; box-shadow: 0 8px 22px rgba(0,0,0,.16); }
.public-team-booking:hover { background: var(--accent-hover); color: var(--accent-text); transform: translateY(-2px); }
@media (max-width: 700px) {
  .public-overview > #public-professionals { margin-top: 0; padding-top: 48px; padding-bottom: 32px; }
  .public-professional-card { transform: none; }
  .public-professional-card:hover { transform: translateY(-3px); }
  .public-professional-card .public-professional-placeholder,
  .public-professional-card .public-professional-media { width: clamp(72px, 21vw, 88px); height: clamp(72px, 21vw, 88px); }
  .public-team-booking { margin-top: 26px; }
  .public-team-booking { width: min(100%, 280px); }
}

@media (max-width: 700px) {
  .public-mobile-cta:not(.is-visible) { display: none; }
  .public-mobile-cta.is-visible { display: flex; align-items: center; justify-content: center; }
}

/* Rhythm: team and CTA read as one decision block; services get the next breath. */
.public-overview { gap: clamp(36px, 5vw, 64px); }
.public-overview > #public-professionals { padding-top: clamp(36px, 5vw, 60px); padding-bottom: 0; }
.public-overview > #public-professionals > .public-section-heading { margin-bottom: 22px; }
.public-team-booking { margin-top: 22px; }
.public-overview > #public-services { margin-top: clamp(32px, 5vw, 64px); }

/* Mobile hero atmosphere: keep the photo recognizable while letting the content lead. */
@media (max-width: 700px) {
  .public-site-hero {
    background-image: none;
    background-color: var(--bg);
  }
  .public-site-hero-copy .public-hero-cta {
    display: flex;
    width: min(100%, 320px);
    margin-inline: auto;
  }
  .public-site-hero::before { z-index: 0; }
  .public-site-hero::after { z-index: 1; }
  .public-site-hero > * { z-index: 2; }

  .public-site-hero::before {
    filter: saturate(.72) brightness(.68) contrast(1.08);
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 58%, rgba(0,0,0,.82) 74%, rgba(0,0,0,.28) 86%, transparent 94%);
    mask-image: linear-gradient(to bottom, #000 0%, #000 58%, rgba(0,0,0,.82) 74%, rgba(0,0,0,.28) 86%, transparent 94%);
    animation: public-hero-entry-atmosphere 900ms ease-out both, public-hero-cinematic-mobile-atmosphere 17s ease-in-out 900ms infinite alternate;
  }

  .public-site-hero::after {
    background:
      linear-gradient(to top, rgba(0,0,0,.98) 0%, rgba(0,0,0,.90) 18%, rgba(0,0,0,.64) 42%, rgba(0,0,0,.22) 76%, rgba(0,0,0,.06) 100%),
      linear-gradient(90deg, rgba(0,0,0,.24), transparent 65%),
      radial-gradient(ellipse at center, transparent 35%, rgba(0,0,0,.18) 100%);
  }
}

@keyframes public-hero-entry-atmosphere {
  from { opacity: 0; filter: saturate(.72) brightness(.68) contrast(1.08) blur(1px); transform: translate3d(0, 0, 0) scale(1.06); }
  to { opacity: 1; filter: saturate(.72) brightness(.68) contrast(1.08) blur(0); transform: translate3d(0, 0, 0) scale(1.04); }
}
@keyframes public-hero-cinematic-mobile-atmosphere {
  from { opacity: 1; filter: saturate(.72) brightness(.68) contrast(1.08); transform: translate3d(0, 0, 0) scale(1.04); }
  to { opacity: 1; filter: saturate(.72) brightness(.68) contrast(1.08); transform: translate3d(0, -.5%, 0) scale(1.08); }
}

@media (prefers-reduced-motion: reduce) and (max-width: 700px) {
  .public-site-hero::before {
    animation: none;
    filter: saturate(.72) brightness(.68) contrast(1.08);
    transform: none;
  }
}

@media (max-width: 700px) {
  .public-overview { gap: 32px; }
  .public-overview > #public-professionals { padding-top: 34px; }
  .public-overview > #public-services { margin-top: 36px; }
}

@media (max-width: 700px) {
  .public-overview { padding-top: 0; }
  .public-overview > #public-professionals { margin-top: -88px; padding-top: 54px; padding-bottom: 20px; }
  .public-professional-card .public-professional-placeholder,
  .public-professional-card .public-professional-media { width: clamp(72px, 22vw, 88px); height: clamp(72px, 22vw, 88px); }
  .public-team-booking { margin-top: 26px; }
  #public-services { margin-top: 48px !important; }
  html:has(body.public-booking-body) { overflow-x: hidden; }
}

/* Desktop uses the same cinematic treatment, with a lighter grade and no mobile fade mask. */
@media (min-width: 701px) {
  .public-site-hero {
    background-image: none;
    background-color: var(--bg);
  }
  .public-site-hero::before {
    z-index: 0;
    filter: saturate(.82) brightness(.76) contrast(1.06);
    animation: public-hero-entry-atmosphere-desktop 1000ms ease-out both, public-hero-cinematic-desktop-atmosphere 16s ease-in-out 1000ms infinite alternate;
  }
  .public-site-hero::after {
    z-index: 1;
    background:
      linear-gradient(to top, rgba(0,0,0,.86) 0%, rgba(0,0,0,.56) 34%, rgba(0,0,0,.16) 72%, rgba(0,0,0,.05) 100%),
      linear-gradient(90deg, rgba(0,0,0,.18), transparent 68%),
      radial-gradient(ellipse at center, transparent 38%, rgba(0,0,0,.14) 100%);
  }
  .public-site-hero > * { z-index: 2; }
}

@keyframes public-hero-entry-atmosphere-desktop {
  from { opacity: 0; filter: saturate(.82) brightness(.76) contrast(1.06) blur(1px); transform: translate3d(0, 0, 0) scale(1.06); }
  to { opacity: 1; filter: saturate(.82) brightness(.76) contrast(1.06) blur(0); transform: translate3d(0, 0, 0) scale(1.04); }
}
@keyframes public-hero-cinematic-desktop-atmosphere {
  from { opacity: 1; filter: saturate(.82) brightness(.76) contrast(1.06); transform: translate3d(0, var(--hero-parallax, 0px), 0) scale(1.04); }
  to { opacity: 1; filter: saturate(.82) brightness(.76) contrast(1.06); transform: translate3d(-1.5%, calc(var(--hero-parallax, 0px) - 1%), 0) scale(1.10); }
}

@media (prefers-reduced-motion: reduce) and (min-width: 701px) {
  .public-site-hero::before {
    animation: none;
    filter: saturate(.82) brightness(.76) contrast(1.06);
    transform: none;
  }
}

@media (max-width: 700px) {
  .appointments-view-tabs { align-items: stretch; flex-direction: column; }
  .appointments-view-tabs .financial-tabs { width: 100%; }
  .appointments-tv-link { justify-content: center; }
  .appointments-date-navigation { display: grid; grid-template-columns: 1fr; gap: 14px; }
  .appointments-date-shortcuts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: 8px; overflow: visible; padding: 0; }
  .appointments-date-shortcut { min-width: 0; width: 100%; padding: 0 8px; }
  .appointments-date-shortcut span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .appointments-calendar-button { grid-column: 1 / -1; justify-content: center; }
  .appointments-selected-date { grid-column: 1; min-width: 0; width: 100%; text-align: left; }
  .appointments-selected-date strong { white-space: normal; }
}

@media (max-width: 700px) {
  .customer-dashboard .sidebar,
  .customer-dashboard.sidebar-collapsed .sidebar { width: 244px; }
}

/* Shared dashboard language: restrained surfaces, clear hierarchy and accessible controls. */
.dashboard-main { max-width: none; }
.dashboard-workspace { background: var(--bg); }
.sidebar { gap: var(--space-5); padding: var(--space-5) var(--space-3); background: color-mix(in srgb, var(--sidebar-bg) 94%, var(--bg)); }
.brand { padding: var(--space-3); }
.sidebar nav { gap: var(--space-1); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.nav-item { min-height: 44px; border-radius: var(--radius-sm); transition: background var(--ease-standard), color var(--ease-standard), transform var(--ease-standard); }
.nav-item:hover { transform: translateX(2px); }
.topbar { background: color-mix(in srgb, var(--topbar-bg) 88%, transparent); backdrop-filter: blur(18px); }
.dashboard-main > * { min-width: 0; }
.services-heading, .appointments-heading, .promotions-heading, .analytics-header { margin-bottom: var(--space-5); }
.services-heading h1, .appointments-heading h1, .promotions-heading h1, .analytics-header h1 { letter-spacing: -.035em; }
.services-table-wrap, .analytics-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); box-shadow: var(--surface-shadow); }
.services-table, .analytics-table-wrap table { min-width: 680px; }
.services-table th, .analytics-table-wrap th { background: color-mix(in srgb, var(--surface-raised) 70%, transparent); font-size: .74rem; letter-spacing: .06em; }
.services-table tbody tr, .analytics-table-wrap tbody tr { transition: background var(--ease-standard); }
button, input, select, textarea { font: inherit; }
button, .secondary-button, input, select, textarea { border-radius: var(--radius-sm); }
button, .secondary-button { transition: transform var(--ease-standard), background var(--ease-standard), box-shadow var(--ease-standard), border-color var(--ease-standard); }
button:hover:not(:disabled), .secondary-button:hover:not(:disabled) { transform: translateY(-1px); }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
input, select, textarea { min-height: 44px; border-color: var(--line); background: var(--input-bg); }
textarea { min-height: 96px; resize: vertical; }
.modal-backdrop { backdrop-filter: blur(8px); }
.service-modal, .customer-detail-modal, .promotion-modal { border-radius: var(--radius-lg); box-shadow: var(--surface-shadow-raised); }
.empty-cell, .analytics-empty, .dashboard-empty, .promotion-empty { border: 1px dashed var(--line); background: var(--surface); }
.form-message, [role="status"] { min-height: 1.4em; }
.master-settings-page { width: min(100%, 1120px); margin-inline: auto; display: grid; gap: var(--space-5); }
.settings-panel { display: grid; gap: var(--space-4); padding: clamp(18px, 3vw, 28px); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); box-shadow: var(--surface-shadow); }
.settings-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); }
.settings-section-heading h2 { margin: 0 0 var(--space-2); letter-spacing: -.025em; }
.settings-section-heading p { margin: 0; color: var(--muted); }
.whatsapp-platform-status { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; padding: 7px 12px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: .82rem; font-weight: 650; }
.whatsapp-platform-status::before { width: 8px; height: 8px; border-radius: 50%; background: currentColor; content: ""; }
.whatsapp-platform-status.is-connected { border-color: color-mix(in srgb, var(--success) 55%, var(--line)); color: var(--success); background: color-mix(in srgb, var(--success) 10%, transparent); }
.whatsapp-platform-status.is-error, .whatsapp-platform-status.is-unavailable { border-color: color-mix(in srgb, var(--danger) 55%, var(--line)); color: var(--danger); background: color-mix(in srgb, var(--danger) 8%, transparent); }
.platform-whatsapp-notice { margin: 0; padding: 13px 15px; border-left: 3px solid var(--accent); border-radius: var(--radius-sm); color: var(--muted); background: color-mix(in srgb, var(--accent) 7%, var(--surface)); }
.platform-whatsapp-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); }
.platform-whatsapp-meta > span { min-width: 0; display: grid; gap: 5px; padding: 14px; border: 1px solid var(--line); border-radius: var(--radius-md); background: color-mix(in srgb, var(--surface-raised) 46%, transparent); }
.platform-whatsapp-meta small, .platform-token-field small { color: var(--muted); }
.platform-whatsapp-meta strong { overflow-wrap: anywhere; font-size: .94rem; }
.platform-whatsapp-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); align-items: end; }
.platform-whatsapp-form > label { min-width: 0; display: grid; align-content: start; gap: 8px; }
.platform-whatsapp-form > label small { color: var(--muted); font-size: .8rem; line-height: 1.45; }
.platform-whatsapp-form .platform-token-field, .platform-whatsapp-form > .form-message, .platform-whatsapp-form > .platform-whatsapp-actions { grid-column: 1 / -1; }
.platform-whatsapp-form .platform-token-field small { font-size: .8rem; }
.platform-whatsapp-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.platform-whatsapp-actions .danger-button { margin-left: auto; }
.platform-whatsapp-pairing, .platform-whatsapp-log { padding-top: var(--space-3); border-top: 1px solid var(--line); }
.platform-whatsapp-pairing summary, .platform-whatsapp-log summary { min-height: 44px; padding-block: 10px; color: var(--text); font-weight: 650; cursor: pointer; }
.platform-whatsapp-pairing summary:focus-visible, .platform-whatsapp-log summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; border-radius: var(--radius-sm); }
.platform-whatsapp-log summary span { float: right; padding: 2px 9px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: .78rem; }
.platform-section-help { margin: 0 0 var(--space-3); color: var(--muted); }
.platform-pairing-actions { display: flex; flex-wrap: wrap; align-items: end; gap: var(--space-3); }
.platform-pairing-actions form { flex: 1 1 420px; display: flex; align-items: end; gap: var(--space-3); }
.platform-pairing-actions label { flex: 1; display: grid; gap: 8px; }
.platform-whatsapp-pairing > .platform-section-help { max-width: 65ch; }
.platform-whatsapp-log > p { margin: var(--space-2) 0 0; color: var(--muted); }
.platform-whatsapp-log ul { margin: 0; padding: 0; list-style: none; }
.platform-whatsapp-log li { display: flex; justify-content: space-between; gap: var(--space-3); padding: 11px 0; border-top: 1px solid var(--line); }
.platform-whatsapp-log li small, .platform-whatsapp-log > p { color: var(--muted); }
.platform-whatsapp-qr { display: block; width: min(100%, 260px); margin: var(--space-3) auto; padding: 10px; border-radius: var(--radius-md); background: white; }
.platform-pairing-modal[hidden] { display: none; }
.platform-pairing-dialog { width: min(100%, 500px); }
.platform-pairing-dialog > header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-3); margin-bottom: var(--space-4); }
.platform-pairing-dialog > header h2 { margin: 0; }
.platform-pairing-modal-content { min-height: 150px; display: grid; place-content: center; gap: var(--space-3); color: var(--muted); text-align: center; }
.platform-pairing-qr { display: grid; justify-items: center; gap: var(--space-3); margin: 0; }
.platform-pairing-qr figcaption { max-width: 38ch; line-height: 1.5; }
.platform-pairing-code { display: grid; justify-items: center; gap: var(--space-3); padding: clamp(18px, 5vw, 28px); border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--line)); border-radius: var(--radius-md); background: color-mix(in srgb, var(--accent) 6%, var(--surface)); }
.platform-pairing-code p, .platform-pairing-code small { margin: 0; }
.platform-pairing-code strong { color: var(--text); font-size: clamp(2rem, 9vw, 3rem); letter-spacing: .14em; overflow-wrap: anywhere; }
.platform-pairing-code small { max-width: 38ch; line-height: 1.45; }
.platform-whatsapp-load-error { margin: 0; padding: 14px 16px; border: 1px solid color-mix(in srgb, var(--danger) 42%, var(--line)); border-radius: var(--radius-md); color: var(--danger); background: color-mix(in srgb, var(--danger) 8%, var(--surface)); }
.platform-whatsapp-load-error .text-button { margin-left: 8px; color: inherit; }
@media (max-width: 700px) {
  .master-settings-page { gap: var(--space-4); }
  .settings-panel { padding: var(--space-4); }
  .settings-section-heading { flex-direction: column; }
  .platform-whatsapp-meta { grid-template-columns: 1fr; }
  .platform-whatsapp-form { grid-template-columns: minmax(0, 1fr); }
  .platform-whatsapp-form .platform-token-field, .platform-whatsapp-form > .form-message, .platform-whatsapp-form > .platform-whatsapp-actions { grid-column: auto; }
  .platform-whatsapp-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
  .platform-whatsapp-actions button { width: 100%; }
  .platform-whatsapp-actions .danger-button { margin-left: 0; }
  .platform-pairing-actions { align-items: stretch; flex-direction: column; }
  .platform-pairing-actions form { width: 100%; flex-direction: column; align-items: stretch; }
  .platform-pairing-actions form button { width: 100%; }
.platform-whatsapp-log li { flex-direction: column; gap: 4px; }
}
@media (max-width: 700px) {
  .commission-page { width: 100%; min-width: 0; overflow-x: clip; }
  .commission-page .commission-filters { width: 100%; min-width: 0; max-width: 100%; grid-template-columns: minmax(0, 1fr); overflow: hidden; }
  .commission-page .commission-filters label { width: 100%; min-width: 0; max-width: 100%; overflow: hidden; }
  .commission-page .commission-filters input[type="date"] { display: block; width: calc(100% - 15px); min-width: 0; max-width: calc(100% - 15px); height: 44px; min-height: 44px; margin-right: 15px; box-sizing: border-box; appearance: none; -webkit-appearance: none; padding: 0 12px; line-height: 42px; border: 1px solid var(--line); border-radius: 9px; color: var(--text); background: var(--bg-soft); }
  .commission-page .services-table-wrap { width: 100%; min-width: 0; overflow: visible; border: 0; box-shadow: none; }
  .commission-page .services-table { width: 100%; min-width: 0; table-layout: fixed; }
  .commission-page .services-table tr { width: 100%; min-width: 0; overflow-wrap: anywhere; }
  .commission-page .services-table td { min-width: 0; grid-template-columns: 86px minmax(0, 1fr); }
  .commission-page .services-table td[data-label="Ações"] { display: flex; flex-wrap: wrap; gap: 8px; }
  .commission-page .services-table td[data-label="Ações"]::before { display: none; }
  .commission-page .services-table td[data-label="Ações"] .secondary-button { min-width: 0; max-width: 100%; }
}
@media (max-width: 700px) {
  .dashboard-main { width: 100%; padding-inline: var(--space-4); }
  .topbar { min-height: 64px; }
  .services-table-wrap, .analytics-table-wrap { margin-inline: -4px; border-radius: var(--radius-sm); }
  .promotion-card-grid, .customer-detail-grid { grid-template-columns: 1fr; }
  .analytics-header { align-items: flex-start; flex-direction: column; }
  .analytics-filters { grid-template-columns: 1fr; padding: var(--space-4); }
  .analytics-filters button { width: 100%; min-width: 0; }
}
.reviews-page { width: 100%; }
.public-site-settings { width: 100%; }
.public-seo-panel { margin: 22px 0 28px; padding: clamp(18px,3vw,28px); border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.public-seo-panel > header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.public-seo-panel h2 { margin:4px 0 8px; }
.public-seo-panel header p:not(.eyebrow) { max-width:720px; margin:0; color:var(--muted); }
.public-seo-index-state { flex:none; padding:8px 12px; border:1px solid var(--line); border-radius:999px; color:var(--warning,#8a5a00); font-size:.78rem; font-weight:700; }
.public-seo-index-state.is-ready { color:var(--success,#176b42); }
.public-seo-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(240px,.8fr); gap:24px; margin-top:24px; }
.public-seo-grid h3 { margin:20px 0 10px; font-size:.98rem; }
.public-seo-search-preview { display:grid; gap:5px; max-width:720px; padding:16px; border:1px solid var(--line); border-radius:12px; background:var(--bg-soft); }
.public-seo-search-preview strong { color:#1a0dab; font-size:1.08rem; }
.public-seo-search-preview span { overflow-wrap:anywhere; color:#137333; font-size:.78rem; }
.public-seo-search-preview p { margin:0; color:var(--muted); font-size:.86rem; }
.public-seo-checks { display:grid; gap:0; margin:0; padding:0; list-style:none; }
.public-seo-checks li { display:grid; grid-template-columns:24px minmax(0,1fr) auto; align-items:center; gap:10px; min-height:52px; border-bottom:1px solid var(--line); }
.public-seo-checks li > span:first-child { display:grid; width:22px; height:22px; place-items:center; border:1px solid var(--line); border-radius:50%; font-weight:800; }
.public-seo-checks li.is-complete > span:first-child { color:var(--success,#176b42); }
.public-seo-checks li.is-needed > span:first-child { color:var(--warning,#8a5a00); }
.public-seo-checks li > span:nth-child(2) { display:grid; gap:3px; font-size:.88rem; }
.public-seo-checks small { color:var(--muted); font-size:.73rem; }
.public-seo-checks a { font-size:.8rem; font-weight:700; }
.public-seo-grid aside { padding:4px 18px 16px; border-left:1px solid var(--line); }
.public-seo-grid aside ol { display:grid; gap:12px; padding-left:22px; line-height:1.5; }
.public-seo-grid aside p { color:var(--muted); font-size:.82rem; }
.public-seo-intro { max-width:1160px; margin:0 auto; padding:20px clamp(18px,4vw,40px); color:var(--text); }
.public-seo-intro h1 { margin:0 0 8px; font-size:clamp(1.5rem,3vw,2.1rem); }
.public-seo-intro p { margin:6px 0; color:var(--muted); }
.public-seo-intro ul { display:flex; flex-wrap:wrap; gap:8px 24px; margin:8px 0; padding-left:20px; }
.public-seo-intro nav { display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:12px; font-size:.9rem; }
@media (max-width:700px) { .public-seo-panel > header { flex-direction:column; }.public-seo-grid { grid-template-columns:1fr; gap:4px; }.public-seo-grid aside { padding:4px 0 0; border-left:0; }.public-seo-checks li { grid-template-columns:24px minmax(0,1fr); padding:8px 0; }.public-seo-checks a { grid-column:2; width:fit-content; } }
.public-site-actions { display: flex; gap: 10px; align-items: center; }
.public-site-open-link { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:0 18px; border:1px solid color-mix(in srgb,var(--accent) 72%,var(--line)); border-radius:12px; background:var(--accent); color:var(--accent-text,#fff); box-shadow:0 5px 14px color-mix(in srgb,var(--accent) 20%,transparent); font-weight:750; text-decoration:none; white-space:nowrap; transition:background-color .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.public-site-open-link span { font-size:1.12rem; line-height:1; }
.public-site-open-link:hover { border-color:var(--accent-hover,var(--accent)); background:var(--accent-hover,var(--accent)); box-shadow:0 7px 18px color-mix(in srgb,var(--accent) 26%,transparent); transform:translateY(-1px); }
.public-site-open-link:focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
.public-site-open-link:active { transform:translateY(0); }
.public-site-feedback { min-height: 20px; margin: 12px 0 0; color: var(--muted); }
.public-site-feedback:empty { display: none; }
.public-site-feedback.is-error { color: var(--danger-soft-text,#ff8d85); }
.public-site-models { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 24px 0; }
.public-site-models article { padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.public-site-model-preview { display: grid; align-content: end; min-height: 150px; padding: 18px; border-radius: 12px; color: white; }
.public-site-model-preview span { font-size: .7rem; letter-spacing: .12em; opacity: .72; }.public-site-model-preview strong { margin-top: 8px; font-size: 1.6rem; }
.public-site-model-preview.premium { background: linear-gradient(135deg,#211b14,#a47c3b); }.public-site-model-preview.minimal { background: #e9e9e5; color: #121212; }.public-site-model-preview.modern { background: linear-gradient(135deg,#172d43,#e06d4f); }
.public-site-models h2 { margin: 16px 0 4px; }.public-site-models p { min-height: 42px; color: var(--muted); }.public-site-models button { width: auto; min-height: 44px; }.public-site-models button.active { border-color: var(--accent); color: var(--accent); }
.public-site-preview-panel { padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }.public-site-preview-panel header { display: flex; justify-content: space-between; gap: 16px; align-items: center; }.public-site-preview-panel h2 { margin: 6px 0 16px; }.public-site-preview-panel iframe { display: block; width: 100%; min-height: 520px; border: 1px solid var(--line); border-radius: 12px; background: #111; }
@media (max-width: 800px) { .public-site-models { grid-template-columns: 1fr; }.public-site-actions { display: flex; width: 100%; align-items: stretch; }.public-site-open-link { width:100%; min-height:48px; box-sizing:border-box; }.public-site-preview-panel header { align-items: flex-start; flex-direction: column; } }
.public-site-model-card { display: grid; grid-template-rows: auto 1fr auto; gap: 0; transition: border-color 180ms ease, transform 180ms ease; }
.public-site-model-card.is-selected { border-color: color-mix(in srgb,var(--accent) 72%,var(--line)); }
.public-site-model-card:hover { transform: translateY(-2px); }
.public-site-current-state { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:12px 0 0; color:var(--muted); font-size:.9rem; }
.public-site-current-state strong { color:var(--text); }
.public-site-state-dot { width:9px; height:9px; flex:0 0 auto; border-radius:50%; background:var(--success,#218653); box-shadow:0 0 0 3px color-mix(in srgb,var(--success,#218653) 14%,transparent); }
.public-site-model-copy { min-width:0; }
.public-site-model-title { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; }
.public-site-model-title h2 { min-width:0; }
.public-site-model-status { display:inline-flex; align-items:center; min-height:26px; padding:3px 9px; border:1px solid var(--line); border-radius:999px; background:var(--bg-soft); color:var(--muted); font-size:.72rem; font-weight:700; line-height:1.2; }
.public-site-model-status.is-selected { border-color:color-mix(in srgb,var(--accent) 38%,var(--line)); background:color-mix(in srgb,var(--accent) 9%,var(--surface)); color:var(--accent); }
.public-site-model-status.is-published { border-color:color-mix(in srgb,var(--success,#218653) 32%,var(--line)); background:color-mix(in srgb,var(--success,#218653) 8%,var(--surface)); color:var(--success,#176b42); }
.public-site-model-card:focus-within { outline:3px solid color-mix(in srgb,var(--focus) 72%,transparent); outline-offset:3px; }
.public-site-models button { min-height:44px; }
.public-site-models button:focus-visible,.public-site-preview-controls button:focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
.public-site-model-preview { position: relative; overflow: hidden; }
.public-site-model-preview i { position: absolute; inset: auto 18px 18px auto; width: 38%; height: 54%; border: 1px solid currentColor; opacity: .34; }
.public-site-model-preview.premium { justify-items: start; background: radial-gradient(circle at 78% 18%,rgba(153,21,72,.34),transparent 32%),linear-gradient(145deg,#090807,#241317); font-family: Georgia,serif; }
.public-site-model-preview.premium i { width: 31%; height: 72%; border-radius: 0; background: linear-gradient(145deg,transparent,rgba(255,255,255,.12)); }
.public-site-model-preview.minimal { align-content: center; justify-items: center; background: #f5f5f2; color: #171719; text-align: center; }
.public-site-model-preview.minimal i { inset: auto auto 18px; width: 62%; height: 1px; border: 0; background: currentColor; opacity: .18; }
.public-site-model-preview.modern { grid-template-columns: 1fr auto; align-content: end; background: #0b1020; }
.public-site-model-preview.modern i { width: 42%; height: 62%; border: 0; border-radius: 10px; background: var(--accent); opacity: .72; transform: rotate(3deg); }
.public-site-model-preview.editorial { justify-items: start; background: linear-gradient(110deg,#0c0b0b 0 55%,#29151e 55%); font-family: Georgia,serif; }
.public-site-model-preview.editorial strong { max-width: 4ch; font-size: 1.85rem; line-height: .85; }
.public-site-model-preview.editorial i { width: 28%; height: 78%; border: 0; border-left: 1px solid rgba(255,255,255,.35); background: linear-gradient(transparent,rgba(166,76,114,.48)); }
.public-site-model-preview.masculino { justify-items: start; background: linear-gradient(105deg,#111211 0 56%,#cb7544 56%); font-family:"Arial Narrow",Impact,sans-serif; text-transform:uppercase; }
.public-site-model-preview.masculino strong { max-width:5ch; font-size:2rem; line-height:.78; }
.public-site-model-preview.masculino i { width:31%; height:72%; border:1px solid rgba(17,18,17,.5); background:repeating-linear-gradient(135deg,rgba(17,18,17,.25) 0 6px,transparent 6px 12px); }
.public-site-model-preview.direto { justify-items:start; align-content:center; background:linear-gradient(90deg,#fff 0 70%,#f1f4f5 70%); color:#1b2527; }
.public-site-model-preview.direto span { color:#28746c; }
.public-site-model-preview.direto strong { max-width:7ch; font-size:1.85rem; line-height:.95; }
.public-site-model-preview.direto i { inset:auto 16px 18px auto; width:25%; height:58%; border:1px solid #ccd9d7; border-radius:9px; background:linear-gradient(#fff 0 24%,#eaf2f0 24% 43%,#fff 43% 67%,#eaf2f0 67%); opacity:1; }
.public-site-model-preview.vitrine { justify-items: start; align-content: center; background: linear-gradient(135deg,#f4f7f4 0 64%,#dce8df 64%); color: #202b24; }
.public-site-model-preview.vitrine span { color: #52735f; }
.public-site-model-preview.vitrine strong { max-width: 7ch; font-size: 1.8rem; line-height: .94; }
.public-site-model-preview.vitrine i { inset: auto 16px 16px auto; width: 39%; height: 68%; border: 1px solid #b8c8bb; border-radius: 8px; background: linear-gradient(#fff 0 21%,#eff3ef 21% 44%,#fff 44% 67%,#eff3ef 67%); opacity: 1; }
.public-site-model-preview.ponto { justify-items: start; align-content: center; background: linear-gradient(120deg,#f6f7f5 0 66%,#e5eae7 66%); color: #232a26; }
.public-site-model-preview.ponto span { color: #5d7165; }
.public-site-model-preview.ponto strong { max-width: 6ch; font-size: 1.9rem; line-height: .94; }
.public-site-model-preview.ponto i { inset: auto 16px 16px auto; width: 42%; height: 58%; border: 1px solid #cbd5ce; border-radius: 8px; background: linear-gradient(#fff 0 22%,#eef2ef 22% 42%,#fff 42% 62%,#eef2ef 62%); opacity: 1; }
.appearance-public-model { margin-top:36px; padding-top:28px; border-top:1px solid var(--line); }
.appearance-public-model > header { margin-bottom:18px; }
.appearance-public-model > header h2 { margin:4px 0; }
.appearance-public-model > header p:last-child { color:var(--muted); }
.appearance-public-model-card { display:grid; grid-template-columns:minmax(180px, .65fr) minmax(0, 1fr) minmax(180px, .72fr); align-items:center; gap:20px; padding:18px; border:1px solid var(--line); border-radius:16px; background:var(--surface); }
.appearance-public-model-card .public-site-model-preview { min-height:150px; }
.appearance-public-model-card h3 { margin:0 0 8px; font-size:1.05rem; }
.appearance-public-model-card p { margin:0; color:var(--muted); line-height:1.5; }
.appearance-public-model-actions { display:grid; gap:8px; }
.appearance-public-model-actions button { width:100%; min-height:44px; margin:0; }
.appearance-public-model-actions a { min-height:44px; display:inline-flex; align-items:center; justify-content:center; color:var(--accent); font-weight:700; }
.appearance-public-model-preview { margin-top:18px; padding:16px; border:1px solid var(--line); border-radius:16px; background:var(--surface); }
.appearance-public-model-preview > p { margin:0 0 10px; color:var(--muted); }
.appearance-public-model-preview iframe { display:block; width:100%; height:560px; border:1px solid var(--line); border-radius:10px; background:var(--bg); }
@media(max-width:800px) { .appearance-public-model-card { grid-template-columns:1fr; gap:14px; }.appearance-public-model-card .public-site-model-preview { min-height:130px; }.appearance-public-model-actions { grid-template-columns:1fr; }.appearance-public-model-preview { padding:10px; }.appearance-public-model-preview iframe { height:500px; } }

/* Appearance workflow: separate selection, preview, publication, and media edits. */
.appearance-page { gap: 24px; }
.appearance-page :is(.appearance-intro,.appearance-step-heading > p:last-child,.theme-card > header p,.appearance-public-model-card > p,.public-media-purpose,.public-media-field small) { color: #c1c1c8; }
.appearance-page .appearance-jump-nav { gap: 4px; border-color: rgba(255,255,255,.12); background: rgba(17,17,17,.96); }
.appearance-page .appearance-jump-nav > button { min-height: 44px; padding-inline: 13px; color: #c1c1c8; }
.appearance-page .appearance-jump-nav > button > span { display: grid; place-items: center; width: 24px; height: 24px; margin-right: 8px; border: 1px solid currentColor; border-radius: 50%; font-size: .75rem; }
.appearance-page .appearance-jump-nav > button.is-current { border-color: rgba(197,160,89,.48); background: rgba(197,160,89,.12); color: #f1d89f; }
.appearance-page .appearance-jump-nav > button.is-current > span { border-color: var(--accent); background: var(--accent); color: #090909; }
.appearance-page .appearance-step-heading { display: grid; gap: 4px; }
.appearance-page .appearance-step-heading h2 { margin: 0; font-size: clamp(1.3rem,2vw,1.65rem); letter-spacing: -.025em; }
.appearance-page .appearance-step-heading p:last-child { max-width: 72ch; margin: 0; line-height: 1.5; }
.appearance-page .theme-card { min-width: 0; }
.appearance-page .theme-card footer { align-items: center; }
.appearance-page .theme-card footer .secondary-button { background: transparent; color: var(--text); }
.appearance-page .theme-card .theme-preview-action { background: rgba(255,255,255,.06); border: 1px solid var(--line-strong); color: var(--text); }
.appearance-page .theme-card .theme-preview-action:hover { background: var(--soft-hover); border-color: var(--accent); }
.appearance-page .theme-selected-chip { display: inline-flex; flex: 1; align-items: center; justify-content: center; min-height: 44px; padding: 0 10px; border: 1px solid rgba(92,170,129,.42); border-radius: 9px; background: rgba(92,170,129,.11); color: #b6e3c7; font-size: .85rem; font-weight: 750; text-align: center; }
.appearance-page .theme-card.previewing { outline-color: var(--focus); outline-offset: 3px; }
.appearance-page .appearance-public-model { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-top: 6px; padding: 22px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.appearance-page .appearance-public-model > header,.appearance-page .appearance-model-publication { grid-column: 1 / -1; }
.appearance-page .appearance-public-model > header { margin-bottom: 2px; }
.appearance-page .appearance-public-model-card { grid-template-columns: 1fr; align-content: start; gap: 12px; min-width: 0; padding: 12px; border-color: rgba(255,255,255,.12); background: var(--bg-soft); }
.appearance-page .appearance-public-model-card.is-selected { border-color: var(--accent); box-shadow: inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent); }
.appearance-page .appearance-public-model-card.is-published:not(.is-selected) { border-color: color-mix(in srgb,var(--success) 42%,var(--line)); }
.appearance-page .appearance-public-model-card .public-site-model-preview { min-height: 180px; margin: 0; border-radius: 10px; }
.appearance-page .appearance-model-card-copy { display: grid; align-content: start; gap: 6px; min-height: 104px; }
.appearance-page .appearance-model-card-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.appearance-page .appearance-public-model-card h3 { margin: 0; }
.appearance-page .appearance-public-model-card p { color: #c1c1c8; font-size: .9rem; }
.appearance-page .appearance-model-state { display: inline-flex; align-items: center; min-height: 26px; padding: 3px 8px; border: 1px solid rgba(255,255,255,.15); border-radius: 999px; color: #d4d4d8; font-size: .7rem; font-weight: 700; }
.appearance-page .appearance-model-state.is-draft { border-color: var(--accent); background: rgba(197,160,89,.1); color: #f1d89f; }
.appearance-page .appearance-model-state.is-published { border-color: rgba(92,170,129,.5); color: #b6e3c7; }
.appearance-page .appearance-public-model-actions { align-content: end; }
.appearance-page .appearance-public-model-actions > button { min-height: 44px; }
.appearance-page .appearance-public-model-actions .appearance-model-selected,.appearance-page .appearance-published-confirmation { display: grid; place-items: center; min-height: 44px; border-radius: 9px; background: rgba(92,170,129,.11); color: #b6e3c7; font-size: .84rem; font-weight: 750; text-align: center; }
.appearance-page .appearance-public-model-actions a { min-height: 40px; color: #e5c982; font-size: .84rem; }
.appearance-page .appearance-model-publication { display: grid; grid-template-columns: 1fr auto 1fr auto; align-items: center; gap: 14px; margin-top: 4px; padding: 16px; border: 1px solid rgba(255,255,255,.12); border-radius: 12px; background: rgba(0,0,0,.2); }
.appearance-page .appearance-model-version { display: grid; gap: 3px; min-width: 0; }
.appearance-page .appearance-model-version > span { color: #c1c1c8; font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.appearance-page .appearance-model-version strong { font-size: 1rem; }
.appearance-page .appearance-model-version small { color: #b4b4bd; }
.appearance-page .appearance-model-version.is-published strong { color: #b6e3c7; }
.appearance-page .appearance-model-version-divider { color: #b4b4bd; }
.appearance-page .appearance-model-publication-actions { display: flex; align-items: center; gap: 8px; }
.appearance-page .appearance-model-publication-actions > button { width: auto; min-height: 44px; margin: 0; padding-inline: 14px; }
.appearance-page .appearance-model-publication-actions .secondary-button { background: transparent; color: var(--text); }
.appearance-page .appearance-model-feedback { grid-column: 1 / -1; margin: 0; color: #c1c1c8; }
.appearance-page .appearance-public-media { display: grid; gap: 16px; padding: 22px; }
.appearance-page .public-media-form { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.appearance-page .public-media-field { grid-template-rows: 150px auto; gap: 12px; padding: 12px; border-color: rgba(255,255,255,.13); background: rgba(0,0,0,.2); }
.appearance-page .public-media-art { display: grid; place-items: center; min-width: 0; min-height: 0; overflow: hidden; border-radius: 9px; background: #080808; }
.appearance-page .public-media-field .public-media-preview,.appearance-page .public-media-field .public-media-empty { width: 100%; height: 100%; min-height: 0; max-width: none; margin: 0; object-fit: cover; }
.appearance-page .public-media-field .public-media-preview-logo { object-fit: contain; }
.appearance-page .public-media-field-copy { display: grid; align-content: start; gap: 9px; min-width: 0; }
.appearance-page .public-media-field label { display: grid; gap: 6px; padding: 0; border: 0; background: transparent; font-weight: 750; }
.appearance-page .public-media-purpose { display: block; min-height: 40px; font-size: .82rem; font-weight: 450; line-height: 1.45; }
.appearance-page .public-media-field input[type="file"] { width: 100%; min-width: 0; padding: 8px; border: 1px solid var(--line-strong); border-radius: 8px; background: var(--input-bg); color: #f2f2f4; font-size: .78rem; }
.appearance-page .public-media-field input[type="file"]::file-selector-button { min-height: 34px; margin-right: 8px; padding: 0 10px; border: 1px solid var(--line-strong); border-radius: 6px; background: #25221b; color: #f4e7c6; font: inherit; font-weight: 700; cursor: pointer; }
.appearance-page .public-media-field small { font-size: .75rem; line-height: 1.4; }
.appearance-page .public-media-pending { margin: 0; color: #f1d89f; font-size: .8rem; line-height: 1.4; }
.appearance-page .public-media-pending[hidden] { display: none; }
.appearance-page .public-media-field-actions { display: flex; justify-content: flex-end; }
.appearance-page .public-media-field-actions button { min-height: 38px; margin: 0; padding-inline: 12px; background: transparent; color: #f2dada; font-size: .82rem; }
.appearance-page .public-media-field.is-removing .public-media-art { border: 1px dashed #bd8982; background: rgba(182,106,94,.08); }
.appearance-page .public-media-field.is-removing .public-media-empty { border: 0; background: transparent; color: #f1d89f; }
.appearance-page .public-media-actions { display: flex; align-items: center; gap: 10px; }
.appearance-page .public-media-actions a { min-height: 44px; padding: 0 12px; border: 1px solid var(--line); }
.appearance-page .appearance-preview-modal { box-sizing: border-box; width: min(96vw,1500px); height: min(94dvh,1100px); max-width: none; max-height: none; margin: auto; padding: 0; overflow: hidden; border: 1px solid var(--line-strong); border-radius: 16px; background: #111; color: var(--text); }
.appearance-page .appearance-preview-modal::backdrop { background: rgba(0,0,0,.78); backdrop-filter: blur(4px); }
.appearance-page .appearance-preview-surface { display: grid; grid-template-rows: auto auto minmax(0,1fr) auto; width: 100%; height: 100%; min-height: 0; }
.appearance-page .appearance-preview-surface > header,.appearance-page .appearance-preview-surface > footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.appearance-page .appearance-preview-surface > header h2 { margin: 0; font-size: 1.2rem; }
.appearance-page .appearance-preview-surface > header p:last-child { margin: 4px 0 0; color: #c1c1c8; }
.appearance-page .appearance-preview-surface > footer { justify-content: flex-end; border-top: 1px solid var(--line); border-bottom: 0; }
.appearance-page .appearance-preview-surface > footer button { width: auto; min-height: 44px; margin: 0; }
.appearance-page .appearance-preview-close { flex: 0 0 44px; width: 44px; min-height: 44px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: var(--bg-soft); color: var(--text); font-size: 1.5rem; }
.appearance-page .appearance-preview-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 18px; border-bottom: 1px solid var(--line); }
.appearance-page .appearance-preview-toolbar > span { color: #c1c1c8; font-size: .82rem; }
.appearance-page .appearance-preview-viewports { display: flex; gap: 4px; padding: 3px; border: 1px solid var(--line); border-radius: 9px; background: #080808; }
.appearance-page .appearance-preview-viewports button { width: auto; min-height: 38px; margin: 0; padding-inline: 12px; border: 1px solid transparent; background: transparent; color: #c1c1c8; box-shadow: none; }
.appearance-page .appearance-preview-viewports button[aria-pressed="true"] { border-color: var(--line-strong); background: #242019; color: #f1d89f; }
.appearance-page .appearance-preview-stage { display: grid; min-width: 0; min-height: 0; place-items: stretch center; overflow: hidden; padding: 12px; background: #050505; }
.appearance-page .appearance-preview-stage iframe { width: 100%; height: 100%; min-height: 0; border: 1px solid var(--line); border-radius: 8px; background: white; }
.appearance-page .appearance-preview-stage[data-viewport="tablet"] iframe { width: min(768px,100%); }
.appearance-page .appearance-preview-stage[data-viewport="mobile"] iframe { width: min(390px,100%); }
.appearance-page :is(button,a,input):focus-visible { outline: 3px solid #e5c982; outline-offset: 3px; }
body:has(.appearance-page) .contract-expiry-banner:not(.is-urgent) { gap: 4px; margin-bottom: 16px; padding: 11px 14px; border-color: rgba(255,255,255,.12); background: rgba(17,17,17,.65); }
body:has(.appearance-page) .contract-expiry-banner:not(.is-urgent) strong { font-size: .88rem; }
body:has(.appearance-page) .contract-expiry-banner:not(.is-urgent) span { color: #c1c1c8; font-size: .82rem; }
@media(max-width:900px) { .appearance-page .appearance-public-model { grid-template-columns: repeat(2,minmax(0,1fr)); }.appearance-page .appearance-model-publication { grid-template-columns: 1fr auto 1fr; }.appearance-page .appearance-model-publication-actions { grid-column: 1/-1; justify-content:flex-end; } }
@media(max-width:700px) {
  .appearance-page { gap: 18px; }
  .appearance-page .appearance-jump-nav { top: 4px; width: 100%; justify-content: space-between; gap: 2px; }
  .appearance-page .appearance-jump-nav > button { flex: 1 1 0; min-width: 0; padding-inline: 7px; font-size: .84rem; }
  .appearance-page .appearance-jump-nav > button > span { width: 22px; height: 22px; margin-right: 5px; }
  .appearance-page .appearance-public-model { grid-template-columns: 1fr; padding: 14px; }
  .appearance-page .appearance-public-model-card { grid-template-columns: minmax(0,1fr); }
  .appearance-page .appearance-public-model-card .public-site-model-preview { min-height: 160px; }
  .appearance-page .appearance-model-card-copy { min-height: 0; }
  .appearance-page .appearance-model-publication { grid-template-columns: minmax(0,1fr); gap: 10px; padding: 13px; }
  .appearance-page .appearance-model-version-divider { display:none; }
  .appearance-page .appearance-model-publication-actions { display:grid; grid-template-columns: 1fr; }
  .appearance-page .appearance-model-publication-actions > button { width:100%; }
  .appearance-page .appearance-public-media { padding: 14px; }
  .appearance-page .public-media-form { grid-template-columns: 1fr; }
  .appearance-page .public-media-field { grid-template-rows: 180px auto; }
  .appearance-page .appearance-preview-modal { width:100vw; height:100dvh; height:100svh; border:0; border-radius:0; }
  .appearance-page .appearance-preview-surface > header { align-items:flex-start; padding:12px; }
  .appearance-page .appearance-preview-toolbar { align-items:stretch; flex-direction:column; padding:9px 12px; }
  .appearance-page .appearance-preview-viewports { display:grid; grid-template-columns:repeat(3,1fr); }
  .appearance-page .appearance-preview-viewports button { padding-inline:6px; }
  .appearance-page .appearance-preview-stage { padding:6px; }
  .appearance-page .appearance-preview-surface > footer { padding:9px 12px calc(9px + env(safe-area-inset-bottom)); }
  .appearance-page .appearance-preview-surface > footer button { flex:1; padding-inline:8px; }
}
@media(prefers-reduced-motion:reduce) { .appearance-page .appearance-preview-stage iframe { transition:none; } }

/* Appearance refinement: clear step status, resilient media previews, and stable controls. */
.appearance-page [hidden] { display:none !important; }
.appearance-page .appearance-jump-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:min(100%,820px); gap:8px; padding:6px; border:0; border-radius:0; background:transparent; box-shadow:none; overflow:visible; }
.appearance-page .appearance-jump-nav > button { position:relative; display:grid; grid-template-columns:30px minmax(0,1fr) auto; justify-content:start; gap:0 9px; min-width:0; min-height:58px; padding:8px 12px; border:1px solid rgba(255,255,255,.14); border-radius:11px; background:#111; color:#e7e7eb; text-align:left; white-space:normal; }
.appearance-page .appearance-jump-nav > button > span { grid-row:1 / span 2; width:28px; height:28px; margin:0; border-color:rgba(255,255,255,.25); color:#d6d6dc; }
.appearance-page .appearance-jump-nav > button > small { align-self:start; color:#bcbcc5; font-size:.7rem; font-weight:600; line-height:1.2; }
.appearance-page .appearance-jump-nav > button.is-current { border-color:var(--accent); background:#171511; color:#fff; box-shadow:inset 0 0 0 1px rgba(197,160,89,.18); }
.appearance-page .appearance-jump-nav > button.is-current > span { background:var(--accent); color:#111; }
.appearance-page .appearance-jump-nav > button.is-done > small { color:#a8d8b9; }
.appearance-page .appearance-jump-nav > button.is-pending > small { color:#f1d89f; }
.appearance-page .appearance-jump-nav > button.is-optional > small { color:#bcbcc5; }
.appearance-page .theme-card { grid-template-rows:minmax(86px,auto) auto 132px auto; }
.appearance-page .theme-card header { align-items:flex-start; }
.appearance-page .theme-card header h2 { line-height:1.25; }
.appearance-page .theme-card header p { max-width:38ch; color:#c4c4cb; line-height:1.45; }
.appearance-page .theme-card footer { display:grid; grid-template-columns:1fr 1fr; align-items:stretch; gap:8px; }
.appearance-page .theme-card footer > :is(button,.theme-selected-chip) { width:100%; min-width:0; min-height:44px; margin:0; padding-inline:8px; }
.appearance-page .theme-selected-chip { grid-column:2; align-self:stretch; font-size:.78rem; }
.appearance-page .theme-card .theme-preview-action { justify-content:center; }
.appearance-page .appearance-public-model-card .appearance-model-card-heading { min-height:28px; }
.appearance-page .appearance-model-selected { padding-inline:8px; }
.appearance-page .appearance-model-publication { scroll-margin-top:84px; }
.appearance-page .appearance-model-publication { grid-template-columns:minmax(0,1fr) auto; }
.appearance-page .public-media-field { grid-template-rows:170px auto; }
.appearance-page .public-media-art { position:relative; }
.appearance-page .public-media-field .public-media-preview { display:block; width:100%; height:100%; min-height:0; object-fit:cover; }
.appearance-page .public-media-field .public-media-preview-logo { object-fit:contain; }
.appearance-page .public-media-empty { display:grid; width:100%; height:100%; padding:12px; box-sizing:border-box; border:1px dashed rgba(255,255,255,.26); border-radius:9px; background:#151515; color:#d5d5dc; text-align:center; }
.appearance-page .public-media-empty small { max-width:28ch; color:#d1d1d8; font-size:.82rem; line-height:1.45; }
.appearance-page .public-media-empty[hidden] { display:none !important; }
.appearance-page .public-media-field.is-unavailable .public-media-art { background:rgba(182,106,94,.07); }
.appearance-page .public-media-field input[type="file"] { min-height:48px; }
.appearance-page .appearance-preview-toolbar > span { max-width:70ch; line-height:1.45; }
.appearance-page .appearance-preview-stage { overflow:hidden; }
.appearance-page .appearance-preview-stage iframe { overflow:auto; }
@media(max-width:700px) {
  .appearance-page .appearance-jump-nav { grid-template-columns:1fr; gap:6px; }
  .appearance-page .appearance-jump-nav > button { grid-template-columns:30px minmax(0,1fr) auto; min-height:50px; }
  .appearance-page .theme-card { grid-template-rows:auto auto 132px auto; }
  .appearance-page .theme-card footer { grid-template-columns:1fr 1fr; }
  .appearance-page .public-media-field { grid-template-rows:190px auto; }
}
@media(max-width:900px) { .appearance-page .appearance-model-publication { grid-template-columns:minmax(0,1fr) auto; } }
.public-site-models button.active { background: color-mix(in srgb,var(--accent) 14%,transparent); }
.public-site-preview-panel { overflow: hidden; }
.public-site-preview-panel header > div:first-child { min-width: 0; }
.public-site-preview-panel header span { color: var(--muted); font-size: .85rem; }
.public-site-preview-controls { display: inline-flex; gap: 4px; padding: 4px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg-soft); }
.public-site-preview-controls button { width: auto; min-height: 44px; padding: 0 13px; border: 0; border-radius: 8px; background: transparent; color: var(--muted); box-shadow: none; }
.public-site-preview-controls button.active { background: var(--surface-raised); color: var(--text); box-shadow: 0 1px 4px rgba(0,0,0,.18); }
.public-site-preview-modal { box-sizing: border-box; width: min(96vw, 1480px); height: min(92dvh, 1040px); max-width: none; max-height: none; margin: auto; padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); color: var(--text); box-shadow: 0 24px 90px rgba(0,0,0,.32); }
.public-site-preview-modal::backdrop { background: rgba(9,13,18,.68); backdrop-filter: blur(5px); }
.public-site-preview-surface { display: grid; grid-template-rows: auto auto minmax(0,1fr) auto; width: 100%; height: 100%; min-height: 0; }
.public-site-preview-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 20px 24px 14px; border-bottom: 1px solid var(--line); }
.public-site-preview-heading .eyebrow { margin: 0 0 3px; }
.public-site-preview-heading h2 { margin: 0; font-size: 1.3rem; }
.public-site-preview-heading p:last-child { margin: 4px 0 0; color: var(--muted); font-size: .86rem; }
.public-site-preview-close { flex: 0 0 44px; width: 44px; height: 44px; min-height: 44px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: var(--bg-soft); color: var(--text); font-size: 1.6rem; line-height: 1; }
.public-site-preview-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 24px; border-bottom: 1px solid var(--line); }
.public-site-preview-theme-note { color: var(--muted); font-size: .82rem; }
.public-site-preview-stage { display: grid; min-width: 0; min-height: 0; overflow: auto; overscroll-behavior: contain; background: var(--bg-soft); }
.public-site-preview-stage iframe { display: block; width: 100%; height: 100%; min-height: 0; margin: 0 auto; border: 0; background: var(--bg); transition: width 180ms ease; }
.public-site-preview-stage[data-viewport="tablet"] iframe { width: 768px; max-width: 100%; border-inline: 1px solid var(--line); }
.public-site-preview-stage[data-viewport="mobile"] iframe { width: 390px; max-width: 100%; border-inline: 1px solid var(--line); }
.public-site-preview-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 72px; padding: 10px 24px calc(10px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: var(--surface); }
.public-site-preview-footer .public-site-feedback { flex: 1; margin: 0; }
.public-site-preview-footer > div { display: flex; flex: 0 0 auto; gap: 9px; }
.public-site-preview-footer button { width: auto; min-width: 112px; min-height: 44px; margin: 0; border-radius: 9px; }
.public-site-preview-modal :is(button,a):focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
@media(max-width:800px) {
  .public-site-preview-modal { width: 100vw; height: 100dvh; height: 100svh; border: 0; border-radius: 0; }
  .public-site-preview-heading { padding: 16px 16px 12px; }
  .public-site-preview-toolbar { align-items: flex-start; flex-direction: column; gap: 7px; padding: 10px 16px; }
  .public-site-preview-theme-note { font-size: .76rem; }
  .public-site-preview-footer { align-items: stretch; flex-direction: column; gap: 7px; padding: 9px 16px calc(10px + env(safe-area-inset-bottom)); }
  .public-site-preview-footer > div { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  .public-site-preview-footer button { width: 100%; }
  .public-site-preview-stage { min-height:0; padding:8px; }
  .public-site-settings .services-heading { align-items:stretch; flex-direction:column; }
  .public-site-models { gap:12px; margin-top:18px; }
  .public-site-models article { padding:14px; }
  .public-site-model-preview { min-height:132px; }
  .public-site-models p { min-height:0; }
  .public-site-models button { width:100%; }
}
@media(prefers-reduced-motion:reduce) { .public-site-preview-stage iframe { transition: none; } }
.public-site-preview-stage { display: flex; justify-content: center; width: 100%; min-height: 620px; padding: 14px; overflow: auto; border: 1px solid var(--line); border-radius: 12px; background: #090909; }
.public-site-preview-panel .public-site-preview-stage iframe { min-height: 590px; border: 0; border-radius: 8px; transition: width 220ms ease; }
.public-site-preview-stage[data-viewport="desktop"] iframe { width: 100%; }
.public-site-preview-stage[data-viewport="tablet"] iframe { width: min(100%,768px); }
.public-site-preview-stage[data-viewport="mobile"] iframe { width: min(100%,390px); }
@media (max-width:1100px) { .public-site-models { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width:800px) { .public-site-models { grid-template-columns: 1fr; }.public-site-model-card:hover { transform: none; }.public-site-preview-controls { width: 100%; }.public-site-preview-controls button { flex: 1; padding-inline: 8px; }.public-site-preview-stage { min-height: 560px; padding: 8px; }.public-site-preview-panel .public-site-preview-stage iframe { min-height: 540px; } }
.public-site-preview-modal .public-site-preview-stage { display:flex; align-items:stretch; min-height:0; padding:12px; border:0; border-radius:0; background:var(--bg-soft); }
@media(max-width:800px) { .public-site-preview-modal .public-site-preview-stage { min-height:0; padding:8px; } }
.reviews-page .page-intro { color: var(--muted, #8d8d95); max-width: 560px; }
.reviews-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 24px 0; }
.reviews-summary article, .review-moderation-card { background: var(--surface, #111); border: 1px solid var(--border, #2a2a2a); border-radius: 16px; padding: 20px; }
.reviews-summary span, .review-moderation-head span, .review-status { display: block; color: var(--muted, #999); font-size: .86rem; }
.reviews-summary strong { display: block; margin-top: 8px; font-size: 1.7rem; }
.reviews-summary-attention { border-color: rgba(197,160,89,.55) !important; }
.reviews-list { display: grid; gap: 14px; }
.review-moderation-card.is-pending { border-color: rgba(197,160,89,.7); }
.review-moderation-head, .review-moderation-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.review-moderation-head strong { display: block; }
.review-moderation-card p { color: var(--text, #eee); line-height: 1.55; margin: 18px 0; }
.review-stars { color: #c5a059 !important; white-space: nowrap; }
.review-moderation-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.review-moderation-actions .button { min-height: 38px; }
@media (max-width: 700px) { .reviews-summary { grid-template-columns: 1fr; } .review-moderation-head, .review-moderation-foot { align-items: flex-start; flex-direction: column; } }

/* Dashboard sidebar: vertical navigation only, without accidental horizontal scrolling. */
@media(min-width:701px){
  .dashboard-layout{--dashboard-sidebar-width:264px}
}
.dashboard-layout .sidebar{overflow-x:hidden}
.dashboard-layout .sidebar nav{max-width:100%;overflow-x:hidden}
.dashboard-layout .sidebar nav{scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth;box-shadow:inset 0 -18px 18px -18px color-mix(in srgb,var(--accent) 75%,transparent)}
.dashboard-layout .sidebar nav::-webkit-scrollbar{display:none;width:0;height:0}
.dashboard-layout .sidebar .nav-item{max-width:100%;box-sizing:border-box}
.dashboard-layout .sidebar .nav-item span{min-width:0;overflow-wrap:anywhere;line-height:1.25}
.dashboard-layout .sidebar .logout-button { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 12%, var(--sidebar-bg)); color: var(--text); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 18%, transparent); }
.dashboard-layout .sidebar .logout-button:hover { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 20%, var(--sidebar-bg)); color: var(--text); }

/* Gallery manager: image-first workflow with clear upload, ordering, and destructive actions. */
.gallery-manager{gap:24px}.gallery-manager-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.gallery-manager-heading h1{margin:2px 0 6px}.gallery-manager-heading>div>p:last-child{max-width:650px;margin:0;color:var(--muted);line-height:1.55}.gallery-count{display:inline-flex;align-items:baseline;gap:5px;padding:9px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:.82rem;white-space:nowrap}.gallery-count strong{color:var(--text);font-size:1rem}.gallery-manager .gallery-upload-zone{gap:0;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.gallery-manager .gallery-upload-zone>label{min-height:190px;margin:0;padding:28px;border:2px dashed var(--line-strong);border-radius:15px 15px 0 0;background:var(--bg-soft);transition:border-color .16s ease,background .16s ease}.gallery-manager .gallery-upload-zone>label:hover,.gallery-manager .gallery-upload-zone>label.is-dragover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface))}.gallery-upload-icon{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 4px;border-radius:14px;background:color-mix(in srgb,var(--accent) 13%,var(--surface));color:var(--accent)!important;font-size:1.7rem!important}.gallery-manager .gallery-upload-zone input{width:min(100%,340px);margin-top:8px}.gallery-upload-footer{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:14px 18px}.gallery-upload-footer p,.gallery-upload-footer span{margin:0}.gallery-file-selection{justify-self:end;color:var(--muted);font-size:.82rem}.gallery-upload-footer button{width:auto;min-width:140px;margin:0}.gallery-collection{display:grid;gap:16px}.gallery-collection>header{display:flex;align-items:end;justify-content:space-between;gap:18px}.gallery-collection h2{margin:2px 0 0}.gallery-collection>header>p{margin:0;color:var(--muted);font-size:.82rem}.gallery-manager .gallery-manager-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:18px}.gallery-manager .gallery-manager-item{gap:0;border-radius:16px;box-shadow:0 1px 2px rgba(0,0,0,.04);transition:opacity .18s ease,transform .18s ease,border-color .18s ease,box-shadow .18s ease}.gallery-manager .gallery-manager-item:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));transform:translateY(-2px);box-shadow:var(--surface-shadow-raised)}.gallery-manager-item.is-featured{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}.gallery-manager-media{position:relative;overflow:hidden;background:var(--subtle-fill)}.gallery-manager .gallery-manager-item img{aspect-ratio:4/3;transition:transform .24s ease}.gallery-manager-item:hover img{transform:scale(1.025)}.gallery-featured-badge{position:absolute;top:12px;left:12px;padding:6px 9px;border-radius:999px;background:color-mix(in srgb,var(--accent) 88%,#000);color:var(--accent-text,#fff);font-size:.72rem;box-shadow:0 4px 14px rgba(0,0,0,.18)}.gallery-drag-handle{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:36px;height:36px;border:1px solid rgba(255,255,255,.28);border-radius:10px;background:rgba(15,15,15,.62);color:#fff;font-size:1.2rem;cursor:grab;backdrop-filter:blur(8px)}.gallery-manager .gallery-manager-item-actions{gap:14px;padding:15px}.gallery-manager-item-actions>div:first-child{display:grid;gap:4px}.gallery-manager-item-actions>div:first-child strong{font-size:.92rem}.gallery-manager-item-actions>div:first-child small{color:var(--muted);font-size:.78rem}.gallery-manager .gallery-manager-item-actions>div:last-child{display:grid;grid-template-columns:1fr auto;gap:8px}.gallery-manager .gallery-manager-item-actions button{min-height:42px;border-radius:8px}.gallery-delete-button{width:auto!important;margin:0;padding:0 10px!important;border:1px solid color-mix(in srgb,var(--danger,#b42318) 35%,var(--line));background:transparent;color:var(--danger,#b42318);box-shadow:none}.gallery-delete-button:hover{background:color-mix(in srgb,var(--danger,#b42318) 9%,var(--surface))}.gallery-manager-empty{display:grid;justify-items:center;gap:8px;min-height:300px;place-content:center;border-radius:16px;background:var(--bg-soft)}.gallery-manager-empty>span{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:var(--surface);color:var(--muted);font-size:1.6rem}.gallery-manager-empty h2,.gallery-manager-empty p{margin:0}.gallery-manager-empty button{width:auto;margin-top:10px}.gallery-confirm-modal{width:min(100%,480px);border-radius:16px}.gallery-confirm-modal header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.gallery-confirm-modal header h2{margin:2px 0 0}.gallery-confirm-modal>p{color:var(--muted);line-height:1.55}.gallery-confirm-modal footer{display:flex;justify-content:flex-end;gap:10px}.gallery-confirm-modal footer button{width:auto;margin:0}@media(max-width:700px){.gallery-manager-heading,.gallery-collection>header{display:grid}.gallery-count{justify-self:start}.gallery-upload-footer{grid-template-columns:1fr}.gallery-file-selection{justify-self:start}.gallery-upload-footer button{width:100%}.gallery-manager .gallery-manager-grid{grid-template-columns:1fr}.gallery-collection>header>p{display:none}.gallery-manager .gallery-manager-item-actions>div:last-child{grid-template-columns:1fr auto}}@media(prefers-reduced-motion:reduce){.gallery-manager .gallery-manager-item:hover{transform:none}.gallery-manager-item:hover img{transform:none}}

/* Notifications: guided communication workspace with clear delivery states. */
.notifications-page{gap:0}.notifications-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}.notifications-heading h1{margin:2px 0 6px}.notifications-heading>div>p:last-child{max-width:620px;margin:0;color:var(--muted);line-height:1.55}.notifications-state{display:inline-flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid color-mix(in srgb,var(--warning) 35%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--warning) 8%,var(--surface));color:var(--warning);font-size:.84rem;font-weight:750;white-space:nowrap}.notifications-state i{width:8px;height:8px;border-radius:50%;background:currentColor}.notifications-state.is-active{border-color:color-mix(in srgb,var(--success) 35%,var(--line));background:color-mix(in srgb,var(--success) 8%,var(--surface));color:var(--success)}.notifications-page .notification-tabs{display:flex;gap:4px;margin-bottom:28px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft)}.notifications-page .notification-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border:0;border-radius:8px}.notifications-page .notification-tabs button.active{border:0;background:var(--surface);box-shadow:0 1px 5px rgba(0,0,0,.12)}.notification-tabs button span{font-size:1.05rem}.notification-content{min-height:260px}.notification-section-heading{margin-bottom:20px}.notification-section-heading h2{margin:2px 0 6px;font-size:1.25rem}.notification-section-heading p:last-child{max-width:620px;margin:0;color:var(--muted);line-height:1.5}.notifications-page .notification-config-section{max-width:780px;padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.notifications-page .notification-settings{max-width:none;gap:18px}.notification-master-switch{display:flex;align-items:center;justify-content:space-between;min-height:64px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft)}.notification-master-switch span{font-size:1rem;font-weight:750}.notifications-page .notification-channels{display:grid;grid-template-columns:1fr repeat(2,minmax(140px,auto));align-items:center;gap:12px;padding:16px;border:1px solid var(--line);border-radius:12px}.notification-group-copy{display:grid;gap:4px}.notification-group-copy small{color:var(--muted);font-size:.82rem}.notifications-page .notification-channels>.notification-switch{min-height:48px;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--bg-soft)}.notifications-page .notification-settings fieldset{padding:18px;border-radius:12px;background:var(--bg-soft)}.notifications-page #notification-leads{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.notifications-page .notification-lead{padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.notifications-page .notification-lead input{background:var(--bg-soft)}.notifications-page .notification-settings>.notification-actions{display:flex;justify-content:flex-end}.notifications-page .notification-settings>.notification-actions button{min-width:180px}.notifications-page .notification-send{max-width:780px;padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.notifications-page .notification-send fieldset{padding:16px 18px;border-radius:12px;background:var(--bg-soft)}.notifications-page .notification-send fieldset label{padding:4px 8px;border-radius:7px}.notifications-page .notification-send fieldset label:has(input:checked){background:color-mix(in srgb,var(--accent) 9%,var(--surface));color:var(--text)}.notifications-page #notification-client-picker{padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft)}.notifications-page #notification-client-results{display:grid;gap:6px;margin-top:8px}.notifications-page #notification-client-results button{display:grid;width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);box-shadow:none;text-align:left}.notifications-page #notification-client-results button small{margin-top:4px;color:var(--muted)}.notifications-page #notification-selected-client:not(:empty){margin:10px 0 0;padding:9px 11px;border-radius:8px;background:color-mix(in srgb,var(--success) 9%,var(--surface));color:var(--success);font-weight:700}.notifications-page .notification-send textarea{min-height:150px;border-radius:10px}.notifications-page .notification-filters{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.notifications-page .services-table-wrap{margin-top:16px;border-radius:14px;background:var(--surface)}.notifications-page .empty-cell{height:180px;color:var(--muted);text-align:center}.notification-review-modal{border-radius:16px}.notification-review-modal header h2{margin:0}.notification-review-modal .notification-review{border-radius:12px;background:var(--bg-soft)}@media(max-width:700px){.notifications-heading{display:grid}.notifications-state{justify-self:start}.notifications-page .notification-tabs{grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.notifications-page .notification-tabs button{min-width:0;padding:0 6px;font-size:.78rem}.notification-tabs button span{display:none}.notifications-page .notification-config-section,.notifications-page .notification-send{padding:16px}.notifications-page .notification-channels{grid-template-columns:1fr}.notification-group-copy{margin-bottom:4px}.notifications-page #notification-leads{grid-template-columns:1fr}.notifications-page .notification-settings>.notification-actions button{width:100%}}

/* WhatsApp: operational workspace with clear status, navigation, and conversation hierarchy. */
.whatsapp-page{--wa-accent:#25d366;display:grid;gap:0}.whatsapp-page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}.whatsapp-page-heading h1{margin:2px 0 6px}.whatsapp-page-heading>div>p:last-child{max-width:620px;margin:0;color:var(--muted);line-height:1.55}.whatsapp-channel-link{display:inline-flex;align-items:center;justify-content:center;width:auto;min-height:44px;padding:0 16px;text-decoration:none;white-space:nowrap}.whatsapp-page .whatsapp-tabs{gap:4px;margin-bottom:28px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft)}.whatsapp-page .whatsapp-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border:0;border-radius:8px}.whatsapp-page .whatsapp-tabs button.active{border:0;background:var(--surface);box-shadow:0 1px 5px rgba(0,0,0,.12)}.whatsapp-tabs button span{font-size:1.05rem}.whatsapp-content{min-height:260px}.whatsapp-loading{display:grid;min-height:240px;place-items:center;color:var(--muted)}.whatsapp-overview-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.whatsapp-overview-intro h2{margin:2px 0 6px}.whatsapp-overview-intro>div>p:last-child{margin:0;color:var(--muted)}.whatsapp-health{display:inline-flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid color-mix(in srgb,var(--warning) 35%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--warning) 8%,var(--surface));color:var(--warning);font-size:.84rem;font-weight:750;white-space:nowrap}.whatsapp-health i{width:8px;height:8px;border-radius:50%;background:currentColor}.whatsapp-health.healthy{border-color:color-mix(in srgb,var(--success) 35%,var(--line));background:color-mix(in srgb,var(--success) 8%,var(--surface));color:var(--success)}.whatsapp-page .whatsapp-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.whatsapp-overview article{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:12px;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--surface);transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}.whatsapp-overview article:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));transform:translateY(-1px);box-shadow:var(--surface-shadow-raised)}.whatsapp-overview article>h2,.whatsapp-overview article>p,.whatsapp-overview article>.text-button{grid-column:1/-1}.whatsapp-overview article h2{margin:4px 0 0;font-size:1.08rem}.whatsapp-overview article>p{min-height:1.5em;margin:0;color:var(--muted);overflow-wrap:anywhere}.whatsapp-card-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:color-mix(in srgb,var(--wa-accent) 13%,var(--surface));color:color-mix(in srgb,var(--wa-accent) 75%,var(--text));font-weight:850}.whatsapp-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.whatsapp-card-heading p{margin:3px 0 0;color:var(--muted);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.whatsapp-page .whatsapp-status{margin:0;padding:5px 8px;border-radius:999px;background:color-mix(in srgb,var(--warning) 9%,var(--surface));font-size:.76rem;line-height:1}.whatsapp-page .whatsapp-status.online{background:color-mix(in srgb,var(--success) 10%,var(--surface))}.whatsapp-overview .text-button{justify-self:start;width:auto;min-height:36px;padding:0;color:var(--accent);text-decoration:none}.whatsapp-page .whatsapp-channel-tabs{margin-bottom:18px;border-radius:10px}.whatsapp-page .whatsapp-channel-tabs button{min-height:42px;border-radius:7px}.whatsapp-page .whatsapp-conversations{gap:10px}.whatsapp-page .whatsapp-conversations>button{min-height:76px;padding:16px 18px;border-radius:12px;transition:border-color .16s ease,background .16s ease,transform .16s ease}.whatsapp-conversations>button:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 4%,var(--surface));transform:translateX(2px)}.whatsapp-conversations>button strong{font-size:.96rem}.whatsapp-conversations>button>span:last-child{color:var(--muted);line-height:1.45}.whatsapp-conversations>p:only-child{display:grid;min-height:220px;place-items:center;margin:0;border:1px dashed var(--line);border-radius:14px;background:var(--bg-soft);color:var(--muted)}.whatsapp-page .whatsapp-conversation-heading{padding:16px 0;border-bottom:1px solid var(--line)}.whatsapp-page .whatsapp-messages{max-height:62vh;padding:20px;border-radius:14px}.whatsapp-page .whatsapp-messages article{padding:12px 14px;border-radius:14px 14px 14px 4px;box-shadow:0 1px 2px rgba(0,0,0,.06)}.whatsapp-page .whatsapp-messages article.outbound{border-radius:14px 14px 4px 14px;background:color-mix(in srgb,var(--wa-accent) 9%,var(--surface))}.whatsapp-page .whatsapp-tools{border-radius:12px;background:var(--surface)}.whatsapp-page .whatsapp-agent-form{display:grid;gap:18px}.whatsapp-page .whatsapp-agent-form>fieldset{margin:0;padding:20px;border-radius:14px}.whatsapp-page .agent-settings-intro{margin:0;border-radius:14px}.whatsapp-page .whatsapp-form-grid{gap:4px 18px;padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.whatsapp-page .whatsapp-capabilities{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.whatsapp-page .whatsapp-capabilities label{min-height:46px;padding:11px 12px;border-radius:9px}.whatsapp-page .whatsapp-agent-form footer{padding:18px 0 10px}.whatsapp-page .whatsapp-agent-form footer button{min-width:190px}.whatsapp-content>.services-table-wrap{border-radius:14px;background:var(--surface)}@media(max-width:700px){.whatsapp-page-heading,.whatsapp-overview-intro{display:grid}.whatsapp-channel-link{width:100%}.whatsapp-page .whatsapp-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;overflow:visible}.whatsapp-page .whatsapp-tabs button{min-width:0;padding:0 6px;font-size:.75rem}.whatsapp-tabs button span{display:none}.whatsapp-page .whatsapp-overview{grid-template-columns:1fr}.whatsapp-overview article>p{min-height:0}.whatsapp-card-heading{align-items:center}.whatsapp-page .whatsapp-messages{padding:12px}.whatsapp-page .whatsapp-agent-form>fieldset,.whatsapp-page .whatsapp-form-grid{padding:15px}}@media(prefers-reduced-motion:reduce){.whatsapp-overview article:hover,.whatsapp-conversations>button:hover{transform:none}}

.notifications-page,.dashboard-main:has(.notifications-page),.notifications-page .notification-content,.notifications-page .notification-config-section,.notifications-page .notification-send{width:100%;max-width:none}
.notifications-page .notification-tabs button.active { border: 1px solid var(--accent); background: var(--surface); color: var(--text); font-weight: 700; box-shadow: 0 1px 5px rgba(0,0,0,.12); }
.whatsapp-page .whatsapp-tabs button.active { border: 1px solid var(--accent); background: var(--surface); color: var(--text); font-weight: 700; box-shadow: 0 1px 5px rgba(0,0,0,.12); }
.gallery-manager,.dashboard-main:has(.gallery-manager),.gallery-upload-zone,.gallery-manager-grid{width:100%;max-width:none}.gallery-manager{box-sizing:border-box}.gallery-manager-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}

.whatsapp-connection-success{display:grid;justify-items:center;gap:8px;padding:28px 18px;text-align:center}.whatsapp-connection-success>span{display:grid;place-items:center;width:58px;height:58px;margin-bottom:6px;border-radius:50%;background:color-mix(in srgb,var(--success) 13%,var(--surface));color:var(--success);font-size:1.55rem;font-weight:850}.whatsapp-connection-success h3,.whatsapp-connection-success p{margin:0}.whatsapp-connection-success p{max-width:390px;color:var(--muted);line-height:1.5}.whatsapp-qr figcaption small,.whatsapp-pairing-code>small{display:block;margin-top:8px;color:var(--success);font-size:.78rem;font-weight:700}
.channel-status-feedback:not(:empty){margin:12px 0 0;padding:11px 13px;border:1px solid color-mix(in srgb,var(--warning) 32%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--warning) 8%,var(--surface));color:var(--text)}.channel-status-feedback.is-success:not(:empty){border-color:color-mix(in srgb,var(--success) 32%,var(--line));background:color-mix(in srgb,var(--success) 8%,var(--surface));color:var(--success)}

/* Services: calm, full-width catalog management with clear state and actions. */
.services-page,.dashboard-main:has(.services-page){width:100%;max-width:none}.services-page{display:grid;gap:0;box-sizing:border-box}.services-page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;margin-bottom:26px}.services-page-heading h1{margin:2px 0 7px}.services-page-heading>div:first-child>p:last-child{max-width:610px;margin:0;color:var(--muted);line-height:1.55}.services-heading-actions{display:flex;align-items:center;gap:14px}.services-summary{display:flex;align-items:center;gap:13px;padding:9px 13px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--muted);font-size:.8rem;white-space:nowrap}.services-summary span{display:flex;align-items:center;gap:5px}.services-summary span+span{padding-left:13px;border-left:1px solid var(--line)}.services-summary strong{color:var(--text);font-size:.92rem}.services-summary i{width:7px;height:7px;border-radius:50%;background:var(--success)}.services-page .new-service-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:auto;min-height:44px;margin:0;padding:0 17px;white-space:nowrap}.services-page .new-service-button>span{font-size:1.25rem;font-weight:450}.services-page .services-table-wrap{width:100%;max-width:none;margin:0;overflow:auto;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.03)}.services-page .services-table{min-width:850px}.services-page .services-table th{padding:13px 16px;border-bottom:1px solid var(--line);background:var(--bg-soft);color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.065em;text-transform:uppercase}.services-page .services-table td{padding:16px;border-bottom:1px solid var(--line);vertical-align:middle}.services-page .services-table tbody tr{transition:background .16s ease}.services-page .services-table tbody tr:hover{background:color-mix(in srgb,var(--accent) 3%,var(--surface))}.services-page .services-table tbody tr:last-child td{border-bottom:0}.services-page .services-table tr.is-inactive{opacity:.62}.service-name-cell{display:flex;align-items:center;gap:12px;min-width:190px}.service-name-cell>span{display:grid;place-items:center;width:38px;height:38px;flex:0 0 auto;border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--accent) 8%,var(--surface));color:var(--accent);font-size:.82rem;font-weight:850}.service-name-cell>div{display:grid;gap:4px}.service-name-cell strong{font-size:.91rem}.service-name-cell small{color:var(--muted);font-size:.7rem;white-space:nowrap}.service-description{max-width:330px;color:var(--muted);line-height:1.45}.service-price{font-variant-numeric:tabular-nums;white-space:nowrap}.services-page .service-status{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:auto;min-height:32px;margin:0;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:var(--bg-soft);color:var(--muted);box-shadow:none;font-size:.72rem}.services-page .service-status i{width:7px;height:7px;border-radius:50%;background:currentColor}.services-page .service-status.active{border-color:color-mix(in srgb,var(--success) 30%,var(--line));background:color-mix(in srgb,var(--success) 8%,var(--surface));color:var(--success)}.services-page .service-actions{display:flex;justify-content:flex-end;gap:6px}.services-page .icon-action{display:grid;place-items:center;width:36px;min-height:36px;margin:0;padding:8px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--muted);box-shadow:none}.services-page .icon-action:hover{border-color:var(--line);background:var(--bg-soft);color:var(--text)}.services-page .danger-action:hover{color:var(--danger)}.services-empty{display:grid;justify-items:center;min-height:360px;align-content:center;padding:40px;border:1px dashed var(--line-strong);border-radius:16px;background:var(--surface);text-align:center}.services-empty>span{display:grid;place-items:center;width:56px;height:56px;margin-bottom:16px;border-radius:17px;background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--accent);font-size:1.4rem}.services-empty h2{margin:0 0 7px;font-size:1.15rem}.services-empty p{max-width:410px;margin:0 0 20px;color:var(--muted);line-height:1.5}.services-empty button{width:auto;margin:0}.service-modal{border-radius:18px}.service-modal>header{align-items:flex-start}.service-modal>header h2{margin:2px 0 0}.service-modal>header .eyebrow{margin:0}.service-modal .modal-close{width:40px;min-height:40px;margin:0;border-radius:50%;font-size:1.35rem}.service-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}.service-form-grid label{margin:0}.service-description-field,.service-image-field{grid-column:1/-1}.service-description-field textarea{min-height:104px;resize:vertical}.service-image-field{padding:15px;border:1px dashed var(--line-strong);border-radius:12px;background:var(--bg-soft)}.service-image-field>span{font-weight:700}.service-image-field input[type=file]{min-height:44px;padding:8px;background:var(--surface)}.service-modal footer{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.service-modal footer button{width:auto;min-width:112px;margin:0}.service-modal .danger-button{background:var(--danger);color:#fff}.service-delete-icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:16px;border-radius:14px;background:color-mix(in srgb,var(--danger) 12%,var(--surface));color:var(--danger);font-size:1.25rem;font-weight:900}.service-modal.confirm-modal>p,.service-modal[role=alertdialog]>p{color:var(--muted);line-height:1.55}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:800px){.services-page-heading{display:grid}.services-heading-actions{justify-content:space-between}.services-page .services-table{min-width:0}.services-page .services-table thead{display:none}.services-page .services-table,.services-page .services-table tbody,.services-page .services-table tr,.services-page .services-table td{display:block;width:100%}.services-page .services-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px;border-bottom:1px solid var(--line)}.services-page .services-table tr:last-child{border-bottom:0}.services-page .services-table td{display:grid;gap:5px;padding:0;border:0}.services-page .services-table td::before{content:attr(data-label);color:var(--muted);font-size:.65rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.services-page .services-table td:first-child,.services-page .services-table .service-description{grid-column:1/-1}.services-page .service-actions{display:flex;justify-content:flex-start}.service-form-grid{grid-template-columns:1fr}.service-description-field,.service-image-field{grid-column:auto}}@media(max-width:540px){.services-heading-actions{display:grid}.services-summary{justify-content:space-between}.services-page .new-service-button{width:100%}.services-page .services-table tr{grid-template-columns:1fr}.services-page .services-table td,.services-page .services-table td:first-child,.services-page .services-table .service-description{grid-column:1}.service-name-cell small{white-space:normal}.service-modal footer{display:grid;grid-template-columns:1fr 1fr}.service-modal footer button{width:100%;min-width:0}}

/* Keep action cells in the table formatting context so row dividers stay continuous. */
.service-name-cell>.service-avatar{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));border-radius:50%;background:color-mix(in srgb,var(--accent) 8%,var(--surface));color:var(--accent);font-size:.82rem;font-weight:850;box-shadow:0 1px 3px rgba(0,0,0,.08)}.service-avatar img{width:100%;height:100%;object-fit:cover;object-position:center}.service-avatar>span{display:grid;width:100%;height:100%;place-items:center}
.services-page .services-table td.service-actions{display:table-cell;white-space:nowrap;text-align:right}.services-page .service-actions .icon-action{display:inline-grid;vertical-align:middle}.services-page .service-actions .icon-action+.icon-action{margin-left:6px}@media(max-width:800px){.services-page .services-table td.service-actions{display:grid;grid-template-columns:36px 36px;justify-content:start;text-align:left}.services-page .service-actions .icon-action+.icon-action{margin-left:0}}

/* Employee reports: full-width, glanceable management dashboard. */
.employee-report-page { width: min(100%, 1320px); max-width: 1320px; margin-inline: auto; box-sizing: border-box; }
.services-page,
.gallery-manager,
.notifications-page,
.whatsapp-page { width: min(100%, 1320px); max-width: 1320px; margin-inline: auto; box-sizing: border-box; }
.master-users-page { display: grid; gap: 20px; width: min(100%, 1320px); max-width: 1320px; margin-inline: auto; box-sizing: border-box; }
.master-dashboard { display: grid; gap: 30px; width: min(100%, 1320px); max-width: 1320px; margin-inline: auto; box-sizing: border-box; }
.master-dashboard-heading,.master-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.master-dashboard-heading .eyebrow { margin: 0 0 8px; color: var(--accent); font-size: .72rem; font-weight: 800; letter-spacing: .12em; }
.master-dashboard-heading h1 { margin: 0; font-size: clamp(1.75rem, 3vw, 2.35rem); letter-spacing: -.045em; }
.master-dashboard-heading p:last-child,.master-section-heading p { margin: 7px 0 0; color: var(--muted); }
.master-dashboard-updated { color: var(--muted); font-size: .76rem; white-space: nowrap; }
.master-overview,.master-attention { display: grid; gap: 14px; }
.master-section-heading { align-items: center; }
.master-section-heading h2 { margin: 0; font-size: 1.12rem; letter-spacing: -.02em; }
.master-section-heading > a { display: inline-flex; align-items: center; gap: 8px; color: var(--accent); font-size: .84rem; font-weight: 700; text-decoration: none; }
.master-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.master-metric { position: relative; display: grid; align-content: start; justify-items: start; min-width: 0; min-height: 148px; gap: 8px; padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); color: var(--text); text-decoration: none; box-sizing: border-box; transition: border-color var(--ease-standard),background var(--ease-standard),transform var(--ease-standard); }
.master-metric > svg { width: 20px; height: 20px; margin-bottom: 5px; fill: none; stroke: var(--accent); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.master-metric-label { color: var(--muted); font-size: .79rem; font-weight: 650; line-height: 1.3; }
.master-metric > strong { font-size: clamp(1.65rem,2.4vw,2rem); font-variant-numeric: tabular-nums; letter-spacing: -.04em; line-height: 1.1; }
.master-metric-detail { color: var(--muted); font-size: .72rem; }
a.master-metric:hover { border-color: color-mix(in srgb,var(--accent) 48%,var(--line)); background: var(--surface-raised); transform: translateY(-2px); }
.master-metric-arrow { position: absolute; top: 17px; right: 17px; color: var(--muted); font-size: .95rem; }
a.master-metric:hover .master-metric-arrow { color: var(--accent); }
.master-metric:focus-visible,.master-attention-item:focus-visible,.master-section-heading > a:focus-visible,.master-dashboard button:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.master-attention-list { overflow: hidden; margin: 0; padding: 0; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); list-style: none; }
.master-attention-list li + li { border-top: 1px solid var(--line); }
.master-attention-item { display: grid; grid-template-columns: 10px minmax(0,1fr) auto 16px; align-items: center; gap: 13px; min-height: 76px; padding: 13px 17px; color: var(--text); text-decoration: none; transition: background var(--ease-standard); }
.master-attention-item:hover { background: var(--surface-raised); }
.master-attention-indicator { width: 9px; height: 9px; border-radius: 50%; background: var(--muted); }
.severity-critical .master-attention-indicator { background: var(--danger); box-shadow: 0 0 0 4px color-mix(in srgb,var(--danger) 12%,transparent); }
.severity-warning .master-attention-indicator { background: var(--accent); box-shadow: 0 0 0 4px color-mix(in srgb,var(--accent) 14%,transparent); }
.master-attention-copy { display: grid; min-width: 0; gap: 4px; }
.master-attention-copy strong { font-size: .88rem; }
.master-attention-copy small { color: var(--muted); font-size: .76rem; line-height: 1.35; }
.master-attention-count { font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.master-attention-arrow { color: var(--muted); font-size: 1.35rem; transition: color var(--ease-standard),transform var(--ease-standard); }
.master-attention-item:hover .master-attention-arrow { color: var(--accent); transform: translateX(2px); }
.master-all-clear { display: flex; align-items: center; gap: 13px; min-height: 92px; padding: 18px; border: 1px solid color-mix(in srgb,var(--success) 28%,var(--line)); border-radius: 15px; background: color-mix(in srgb,var(--success) 5%,var(--surface)); }
.master-all-clear > span { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: color-mix(in srgb,var(--success) 13%,var(--surface)); color: var(--success); font-weight: 800; }
.master-all-clear strong { font-size: .9rem; }
.master-all-clear p { margin: 4px 0 0; color: var(--muted); font-size: .82rem; }
.master-dashboard-error { display: flex; align-items: flex-start; gap: 14px; padding: 20px; border: 1px solid color-mix(in srgb,var(--danger) 32%,var(--line)); border-radius: 15px; background: var(--surface); }
.master-dashboard-error > span { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: color-mix(in srgb,var(--danger) 12%,var(--surface)); color: var(--danger); font-weight: 800; }
.master-dashboard-error h2 { margin: 0; font-size: 1rem; }
.master-dashboard-error p { margin: 5px 0 13px; color: var(--muted); }
.master-dashboard-error button { width: auto; min-height: 42px; margin: 0; padding-inline: 16px; }
.master-metric-skeleton { display: grid; align-content: start; gap: 13px; min-height: 148px; padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); }
.master-metric-skeleton i,.master-attention-skeleton { display: block; overflow: hidden; position: relative; border-radius: 8px; background: color-mix(in srgb,var(--muted) 13%,var(--surface)); }
.master-metric-skeleton i:nth-child(1) { width: 22px; height: 22px; }.master-metric-skeleton i:nth-child(2) { width: 62%; height: 12px; }.master-metric-skeleton i:nth-child(3) { width: 38%; height: 27px; }
.master-metric-skeleton i::after,.master-attention-skeleton::after { position: absolute; inset: 0; background: linear-gradient(90deg,transparent,color-mix(in srgb,var(--text) 6%,transparent),transparent); content: ''; animation: master-skeleton 1.5s ease-in-out infinite; }
.master-attention-skeleton { min-height: 180px; border: 1px solid var(--line); border-radius: 15px; }
@keyframes master-skeleton { to { transform: translateX(100%); } }
@media(max-width:1000px) { .master-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media(max-width:700px) { .master-dashboard { gap: 24px; }.master-dashboard-heading { align-items: flex-start; flex-direction: column; gap: 10px; }.master-dashboard-updated { font-size: .72rem; }.master-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }.master-metric,.master-metric-skeleton { min-height: 137px; padding: 14px; }.master-metric-label { font-size: .74rem; }.master-metric-detail { font-size: .67rem; }.master-section-heading { align-items: flex-start; }.master-section-heading > a { font-size: .75rem; }.master-attention-item { grid-template-columns: 9px minmax(0,1fr) auto 12px; gap: 10px; min-height: 72px; padding: 12px; }.master-attention-copy strong { font-size: .82rem; }.master-attention-copy small { font-size: .71rem; }.master-attention-count { font-size: .95rem; } }
@media(max-width:380px) { .master-metrics { grid-template-columns: 1fr; }.master-metric { min-height: 118px; grid-template-columns: 24px 1fr; align-items: center; column-gap: 10px; }.master-metric > svg { grid-row: span 2; margin: 0; }.master-metric-label,.master-metric-detail { grid-column: 2; }.master-metric > strong { grid-column: 2; grid-row: 2; }.master-metric-detail { display: none; } }
@media(prefers-reduced-motion:reduce) { .master-dashboard *, .master-dashboard *::before, .master-dashboard *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; } }

/* Master WhatsApp & AI operations center */
.wa-central{display:grid;gap:22px;width:min(100%,1320px);max-width:1320px;margin-inline:auto;box-sizing:border-box;color:var(--text)}
.wa-heading{display:grid;gap:16px}.wa-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.wa-heading .eyebrow{margin:0 0 7px;color:var(--accent);font-size:.7rem;font-weight:850;letter-spacing:.12em}.wa-heading h1{margin:0;font-size:clamp(1.8rem,3vw,2.3rem);letter-spacing:-.045em}.wa-heading p:last-child{margin:7px 0 0;color:var(--muted);line-height:1.5}.wa-period{display:grid;gap:6px;min-width:150px;color:var(--muted);font-size:.72rem;font-weight:750}.wa-period select,.wa-custom-range input,.wa-filters input,.wa-filters select{min-height:42px;margin:0;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text)}.wa-custom-range{display:flex;align-items:flex-end;justify-content:flex-end;gap:10px}.wa-custom-range label,.wa-filters label{display:grid;gap:6px;color:var(--muted);font-size:.72rem;font-weight:750}.wa-custom-range input{padding:8px 10px}.wa-central button:focus-visible,.wa-central a:focus-visible,.wa-central input:focus-visible,.wa-central select:focus-visible,.wa-dialog button:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.wa-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.wa-metric{display:grid;gap:7px;min-width:0;padding:17px 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.wa-metric>span,.wa-ai-stats>div>span{color:var(--muted);font-size:.74rem;font-weight:730}.wa-metric strong{font-size:clamp(1.45rem,2.7vw,2rem);font-variant-numeric:tabular-nums;letter-spacing:-.04em;line-height:1.1}.wa-metric small{color:var(--muted);font-size:.7rem;line-height:1.35}
.wa-health,.wa-section{min-width:0;padding:18px 20px;border:1px solid var(--line);border-radius:15px;background:var(--surface)}.wa-section{display:grid;gap:14px}.wa-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.wa-section-heading h2{margin:0;font-size:1rem;letter-spacing:-.015em}.wa-section-heading p{margin:5px 0 0;color:var(--muted);font-size:.77rem;line-height:1.4}.wa-health-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:17px}.wa-health-count{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:9px;row-gap:3px;min-width:0;padding:11px 12px;border-left:1px solid var(--line)}.wa-health-count:first-child{border-left:0}.wa-health-count .wa-status{grid-column:1/-1}.wa-health-count>strong{font-size:1.3rem;font-variant-numeric:tabular-nums}.wa-health-count>span:last-child{color:var(--muted);font-size:.72rem}
.wa-status{display:inline-flex;align-items:center;gap:7px;width:max-content;max-width:100%;color:var(--muted);font-size:.73rem;font-weight:720;white-space:nowrap}.wa-status i{display:grid;place-items:center;width:18px;height:18px;border:1px solid currentColor;border-radius:50%;font-size:.62rem;font-style:normal;line-height:1}.wa-status.is-connected{color:var(--success)}.wa-status.is-error,.wa-status.is-disconnected{color:var(--danger)}.wa-status.is-not_configured{color:var(--muted)}
.wa-secondary-grid{display:grid;grid-template-columns:1.12fr .88fr;align-items:start;gap:14px}.wa-ai-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 22px}.wa-ai-stats>div{display:grid;gap:5px}.wa-ai-stats>div>strong{font-size:1.04rem;font-variant-numeric:tabular-nums}.wa-note{margin:0;color:var(--muted);font-size:.72rem;line-height:1.45}.wa-total{color:var(--muted);font-size:.75rem;white-space:nowrap}
.wa-filters{display:grid;grid-template-columns:minmax(180px,1fr) minmax(160px,.45fr) minmax(180px,.55fr) auto;align-items:end;gap:10px}.wa-filters input,.wa-filters select{width:100%;padding:8px 10px}.wa-filters .secondary-button,.wa-pagination .secondary-button,.wa-custom-range .secondary-button{width:auto;min-height:42px;margin:0;padding:0 14px;white-space:nowrap}.wa-establishment-list{display:grid}.wa-establishment-row{display:grid;grid-template-columns:minmax(170px,1.4fr) minmax(128px,.9fr) repeat(4,minmax(75px,.55fr)) auto;align-items:center;gap:12px;min-height:70px;padding:11px 8px;border-top:1px solid var(--line);color:inherit;text-decoration:none;transition:background .16s ease}.wa-establishment-row:hover{background:color-mix(in srgb,var(--accent) 7%,var(--surface))}.wa-establishment-row:focus-visible{position:relative;z-index:1;border-radius:9px;outline:2px solid var(--accent);outline-offset:-2px}.wa-establishment-row:active{background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.wa-establishment-row.has-issue{box-shadow:inset 2px 0 0 color-mix(in srgb,var(--danger) 65%,transparent)}.wa-establishment-name,.wa-row-metric{display:grid;gap:4px;min-width:0}.wa-establishment-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.86rem}.wa-establishment-name small,.wa-row-metric small{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.68rem}.wa-row-metric strong{font-size:.83rem;font-variant-numeric:tabular-nums}.wa-row-open{display:inline-flex;align-items:center;justify-content:flex-end;gap:7px;min-height:44px;padding-left:8px;color:var(--accent);font-size:.72rem;font-weight:700;white-space:nowrap}.wa-row-open svg{width:17px;height:17px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7;transition:transform .16s ease}.wa-establishment-row:hover .wa-row-open svg{transform:translateX(2px)}.wa-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:4px;color:var(--muted);font-size:.74rem}.wa-pagination>div{display:flex;gap:8px}.wa-pagination button:disabled{opacity:.45;cursor:not-allowed}
.wa-tool-list{display:grid}.wa-tool-row{display:grid;grid-template-columns:minmax(125px,1.25fr) repeat(3,minmax(72px,.72fr));align-items:center;gap:9px;width:100%;min-height:48px;margin:0;padding:8px;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;color:var(--text);box-shadow:none;text-align:left;cursor:pointer}.wa-tool-row:hover{background:color-mix(in srgb,var(--accent) 5%,var(--surface))}.wa-tool-row strong{overflow-wrap:anywhere;font-size:.76rem}.wa-tool-row span{color:var(--muted);font-size:.69rem;font-variant-numeric:tabular-nums}.wa-tool-row small{grid-column:1/-1;color:var(--danger);font-size:.67rem}.wa-tool-row:not(:has(small)){grid-template-columns:minmax(125px,1.25fr) repeat(3,minmax(72px,.72fr))}.wa-errors{display:grid;gap:0;margin:0;padding:0;list-style:none}.wa-errors li+li{border-top:1px solid var(--line)}.wa-errors button{display:grid;grid-template-columns:110px minmax(0,1fr) 18px;align-items:center;gap:12px;width:100%;min-height:60px;margin:0;padding:9px 5px;border:0;border-radius:0;background:transparent;color:var(--text);box-shadow:none;text-align:left;cursor:pointer}.wa-errors button:hover{background:color-mix(in srgb,var(--accent) 5%,var(--surface))}.wa-errors time{color:var(--muted);font-size:.72rem;font-variant-numeric:tabular-nums}.wa-errors button>span:nth-child(2){display:grid;gap:4px;min-width:0}.wa-errors strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.77rem}.wa-errors small{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.69rem}.wa-errors button>span:last-child{color:var(--muted);font-size:1.1rem}.wa-empty,.wa-state{display:flex;align-items:flex-start;gap:12px;padding:15px;border:1px dashed var(--line);border-radius:11px;background:var(--bg-soft)}.wa-empty{display:grid;gap:4px}.wa-empty strong{font-size:.8rem}.wa-empty span{color:var(--muted);font-size:.72rem;line-height:1.45}.wa-state{align-items:center;padding:22px}.wa-state>span{display:grid;place-items:center;width:32px;height:32px;flex:0 0 auto;border-radius:50%;background:color-mix(in srgb,var(--danger) 12%,var(--surface));color:var(--danger);font-weight:800}.wa-state h2{margin:0 0 4px;font-size:.95rem}.wa-state p{margin:0 0 12px;color:var(--muted);font-size:.8rem}.wa-state button{width:auto;min-height:40px;margin:0;padding-inline:14px}.wa-loading{margin:0;color:var(--muted);font-size:.78rem}.wa-skeleton{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.wa-skeleton i{height:116px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(100deg,var(--surface) 20%,var(--bg-soft) 40%,var(--surface) 60%);background-size:200% 100%;animation:wa-shimmer 1.5s ease-in-out infinite}@keyframes wa-shimmer{to{background-position:-200% 0}}
.wa-back{width:max-content;color:var(--accent);font-size:.78rem;text-decoration:none}.wa-back:hover{text-decoration:underline}.wa-detail-health .wa-section-heading{align-items:center}.wa-detail-health>p{margin:13px 0 0;color:var(--muted);font-size:.8rem;line-height:1.5}.wa-dialog{width:min(900px,calc(100vw - 32px));max-height:min(88vh,860px);overflow:auto;padding:20px;border:1px solid var(--line-strong);border-radius:17px;background:var(--surface);color:var(--text);box-shadow:0 24px 70px rgba(0,0,0,.42)}.wa-establishment-dialog{display:grid;gap:14px}.wa-establishment-dialog[open]{margin:auto}.wa-establishment-dialog .wa-dialog-subtitle{margin:6px 0 0;color:var(--muted);font-size:.8rem}.wa-dialog-period{display:grid;gap:6px;color:var(--muted);font-size:.72rem;font-weight:750}.wa-dialog-period select{min-height:42px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg-soft);color:var(--text)}.wa-dialog .wa-health,.wa-dialog .wa-section{padding:14px}.wa-dialog .wa-health h3,.wa-dialog .wa-section h3{margin:0;font-size:.95rem}.wa-dialog .wa-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.wa-dialog .wa-metric{padding:14px}.wa-dialog .wa-secondary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.wa-establishment-row{appearance:none;width:100%;margin:0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.wa-dialog::backdrop{background:rgba(0,0,0,.62);backdrop-filter:blur(4px)}.wa-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:15px}.wa-dialog>header .eyebrow{margin:0 0 5px;color:var(--accent);font-size:.66rem;font-weight:800;letter-spacing:.1em}.wa-dialog h2{margin:0;font-size:1.15rem;overflow-wrap:anywhere}.wa-dialog-close{display:grid;place-items:center;width:40px;min-height:40px;margin:0;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--text);box-shadow:none;font-size:1.4rem}.wa-dialog>p{color:var(--muted);font-size:.79rem;line-height:1.5}.wa-dialog dl{display:grid;gap:0;margin:16px 0}.wa-dialog dl>div{display:grid;grid-template-columns:minmax(115px,.7fr) 1.3fr;gap:12px;padding:11px 0;border-top:1px solid var(--line)}.wa-dialog dt{color:var(--muted);font-size:.75rem}.wa-dialog dd{margin:0;overflow-wrap:anywhere;font-size:.78rem;font-weight:650;font-variant-numeric:tabular-nums}.wa-dialog .wa-errors button{grid-template-columns:94px minmax(0,1fr) 18px}
@media(max-width:980px){.wa-establishment-row{grid-template-columns:minmax(150px,1.2fr) minmax(120px,.85fr) repeat(2,minmax(70px,.55fr)) auto}.wa-establishment-row .wa-row-metric:nth-of-type(5),.wa-establishment-row .wa-row-metric:nth-of-type(6){display:none}.wa-secondary-grid{grid-template-columns:1fr}.wa-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.wa-filters .wa-search{grid-column:1/-1}.wa-tool-row{grid-template-columns:minmax(125px,1.2fr) repeat(3,minmax(80px,.7fr))}}
@media(max-width:640px){.wa-central{gap:16px}.wa-heading-row{align-items:stretch;flex-direction:column;gap:14px}.wa-period{width:100%}.wa-custom-range{display:grid;grid-template-columns:1fr 1fr}.wa-custom-range .secondary-button{grid-column:1/-1;width:100%}.wa-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.wa-metric{padding:13px}.wa-metric>span{font-size:.68rem}.wa-metric strong{font-size:1.45rem}.wa-health,.wa-section{padding:15px 13px;border-radius:13px}.wa-health-counts{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:12px}.wa-health-count{padding:9px 7px;border-left:0}.wa-health-count:nth-child(even){border-left:1px solid var(--line)}.wa-health-count .wa-status{font-size:.68rem}.wa-health-count>strong{font-size:1.15rem}.wa-filters{grid-template-columns:1fr}.wa-filters .wa-search{grid-column:auto}.wa-filters>.secondary-button{width:100%}.wa-establishment-row{grid-template-columns:minmax(0,1fr) auto;gap:7px 10px;padding:13px 5px}.wa-establishment-row .wa-establishment-name{grid-column:1/3}.wa-establishment-row>.wa-status{grid-column:1/3;grid-row:2}.wa-establishment-row .wa-row-metric:nth-of-type(4),.wa-establishment-row .wa-row-metric:nth-of-type(5){display:grid;grid-row:3}.wa-establishment-row .wa-row-metric:nth-of-type(4){grid-column:1}.wa-establishment-row .wa-row-metric:nth-of-type(5){grid-column:2}.wa-row-open{grid-column:1/-1;grid-row:4;justify-content:flex-start;padding-left:0}.wa-row-metric small{font-size:.65rem}.wa-pagination{align-items:flex-start;flex-direction:column}.wa-pagination>div{width:100%}.wa-pagination button{flex:1}.wa-tool-row{grid-template-columns:minmax(0,1fr) auto;gap:5px 9px;padding:10px 6px}.wa-tool-row span{font-size:.67rem}.wa-tool-row span:nth-of-type(1){grid-column:1;grid-row:2}.wa-tool-row span:nth-of-type(2){grid-column:2;grid-row:2}.wa-tool-row span:nth-of-type(3){grid-column:1;grid-row:3}.wa-tool-row small{grid-column:2;grid-row:3;text-align:right}.wa-errors button{grid-template-columns:82px minmax(0,1fr) 14px;gap:8px}.wa-errors time{font-size:.65rem}.wa-ai-stats{gap:13px}.wa-ai-stats>div>strong{font-size:.92rem}.wa-dialog{padding:16px}.wa-dialog .wa-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.wa-dialog .wa-secondary-grid{grid-template-columns:1fr}.wa-dialog dl>div{grid-template-columns:1fr;gap:4px}}
@media(prefers-reduced-motion:reduce){.wa-central *,.wa-central *::before,.wa-central *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
.establishment-professional-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.establishment-detail > .establishments-heading { align-items: center; margin-bottom: 18px; }
.establishment-detail > .establishments-heading > div:first-child { min-width: 0; }
.establishment-detail .establishment-professional-actions { width: auto; flex: 0 0 auto; justify-content: flex-end; }
.establishment-detail .establishment-professional-actions button { width: auto; min-width: 168px; min-height: 44px; margin: 0; padding: 0 16px; }
.establishment-detail-summary { margin: 0 0 18px; font-size: .92rem; }
.establishment-overview { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 0; border: 0; background: transparent; }
.establishment-overview p { display: grid; align-content: center; gap: 7px; min-height: 92px; margin: 0; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); color: var(--muted); }
.establishment-overview p strong { color: var(--text); font-size: .76rem; letter-spacing: .04em; text-transform: uppercase; }
.establishment-tabs { margin: 18px 0 14px; }
.establishment-tabs button { width: 100%; }
.professional-registration-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
.professional-registration-form label { margin: 0; }
.professional-registration-form label:nth-child(1), .professional-registration-form label:nth-child(2), .professional-registration-form label:nth-child(7), .professional-registration-form label:nth-child(8), .professional-registration-form > [role="alert"], .professional-registration-form footer { grid-column: 1 / -1; }
.professional-manager-choice { display: flex; align-items: center; gap: 9px; min-height: 44px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg-soft); }
.professional-manager-choice input { width: 18px; min-height: 18px; margin: 0; }
@media (max-width: 700px) { .establishment-professional-actions { display: grid; width: 100%; }.establishment-professional-actions button { width: 100%; }.establishment-detail > .establishments-heading { align-items: stretch; }.establishment-detail .establishment-professional-actions { width: 100%; }.establishment-overview { grid-template-columns: 1fr; }.establishment-overview p { min-height: 70px; }.professional-registration-form { grid-template-columns: 1fr; }.professional-registration-form label:nth-child(1), .professional-registration-form label:nth-child(2), .professional-registration-form label:nth-child(7), .professional-registration-form label:nth-child(8), .professional-registration-form > [role="alert"], .professional-registration-form footer { grid-column: auto; } }
.master-users-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.master-users-heading-actions { display: flex; align-items: center; gap: 12px; }
.master-users-heading-actions > button { width: auto; min-width: 144px; }
.master-users-count { display: inline-flex; align-items: center; gap: 5px; min-height: 36px; padding: 0 11px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: .78rem; white-space: nowrap; }
.master-users-count strong { color: var(--text); font-size: .95rem; }
.master-users-heading h1 { margin: 2px 0 6px; }
.master-users-heading p:last-child { max-width: 620px; margin: 0; color: var(--muted); }
.master-users-search { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 12px; padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); }
.master-users-search label { margin: 0; }
.master-users-search-label { display: block; margin-bottom: 5px; color: var(--muted); font-size: .78rem; font-weight: 700; }
.master-users-search-field { position: relative; display: flex; align-items: center; }
.master-users-search-field > span:first-child { position: absolute; left: 13px; color: var(--muted); font-size: 1.25rem; pointer-events: none; }
.master-users-search input { width: 100%; min-height: 44px; margin: 0; padding-left: 38px; padding-right: 42px; background: var(--bg-soft); }
.master-users-clear { position: absolute; right: 5px; display: grid; place-items: center; width: 34px; min-height: 34px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--muted); box-shadow: none; }
.master-users-clear:hover { background: var(--surface-raised); color: var(--text); transform: none; }
.master-users-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); }
.master-users-table { width: 100%; min-width: 0; table-layout: fixed; border-collapse: collapse; }
.master-users-table th:nth-child(1) { width: 32%; }
.master-users-table th:nth-child(2) { width: 20%; }
.master-users-table th:nth-child(3) { width: 13%; }
.master-users-table th:nth-child(4) { width: 12%; }
.master-users-table th:nth-child(5) { width: 23%; }
.master-users-table th, .master-users-table td { padding: 15px 16px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.master-users-table th { color: var(--muted); font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
.master-users-table tbody tr:last-child td { border-bottom: 0; }
.master-users-table td:first-child { display: table-cell; }
.master-users-table td:first-child strong, .master-users-table td:first-child small { display: block; }
.master-users-table td small { color: var(--muted); }
.master-users-table td:last-child { white-space: normal; }
.master-users-table td:last-child button { width: calc(50% - 5px); min-width: 0; padding-inline: 8px; }
.master-users-table td:last-child button + button { margin-left: 6px; }
.master-user-status { display: inline-flex; min-height: 28px; align-items: center; padding: 0 9px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: .76rem; }
.master-user-status.active { border-color: color-mix(in srgb, var(--success) 35%, var(--line)); color: var(--success); }
.master-user-status.inactive { border-color: color-mix(in srgb, var(--danger) 35%, var(--line)); color: var(--danger); }
.master-users-empty { height: 150px; color: var(--muted); text-align: center !important; }
.master-users-pagination { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 2px; padding: 4px; }
.master-users-pagination button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-width: 108px; min-height: 44px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); color: var(--text); font-weight: 700; box-shadow: none; transition: background var(--ease-standard), border-color var(--ease-standard), transform var(--ease-standard), opacity var(--ease-standard); }
.master-users-pagination button:first-child::before { content: '←'; font-size: 1.05rem; }
.master-users-pagination button:last-child::after { content: '→'; font-size: 1.05rem; }
.master-users-pagination button:hover:not(:disabled) { border-color: var(--accent); background: var(--surface-raised); transform: translateY(-1px); }
.master-users-pagination button:active:not(:disabled) { transform: translateY(0) scale(.98); }
.master-users-pagination button:disabled { border-color: color-mix(in srgb, var(--line) 65%, transparent); background: transparent; color: color-mix(in srgb, var(--muted) 58%, transparent); opacity: .62; }
.master-users-pagination span { min-width: 110px; color: var(--muted); font-size: .82rem; text-align: center; }
.master-users-modal { width: min(100% - 32px, 620px); }
.master-users-modal form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
.master-users-modal form > label, .master-users-modal form > [data-form-error] { margin: 0; }
.master-users-modal form > label:nth-child(1), .master-users-modal form > label:nth-child(2), .master-users-modal form > label:nth-child(5), .master-users-modal form > footer { grid-column: 1 / -1; }
.master-users-modal form input, .master-users-modal form select { margin-top: 5px; }
.master-user-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 20px 0; }
.master-user-details div { padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg-soft); }
.master-user-details dt { color: var(--muted); font-size: .74rem; font-weight: 700; }
.master-user-details dd { margin: 4px 0 0; overflow-wrap: anywhere; }
@media (max-width: 700px) { .master-users-heading { display: grid; }.master-users-heading-actions { align-items: stretch; flex-direction: column; }.master-users-heading-actions > button, .master-users-search button { width: 100%; }.master-users-count { justify-content: center; }.master-users-search { grid-template-columns: 1fr; padding: 15px; }.master-users-table-wrap { border: 0; background: transparent; overflow: visible; }.master-users-table { min-width: 0; border-collapse: separate; border-spacing: 0 10px; }.master-users-table thead { display: none; }.master-users-table tbody, .master-users-table tr, .master-users-table td { display: block; width: 100%; }.master-users-table tr { padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); box-shadow: var(--surface-shadow); }.master-users-table td { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 10px; padding: 7px 0; border: 0; }.master-users-table td::before { content: attr(data-label); color: var(--muted); font-size: .7rem; font-weight: 700; text-transform: uppercase; }.master-users-table td:first-child { display: grid; }.master-users-table td:last-child { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 12px; border-top: 1px solid var(--line); }.master-users-table td:last-child::before { width: 100%; }.master-users-table td:last-child button { width: auto; }.master-users-table td:last-child button + button { margin-left: 0; }.master-users-pagination { gap: 8px; }.master-users-pagination button { min-width: 0; flex: 1; }.master-users-pagination span { min-width: 86px; }.master-users-modal { width: min(100% - 24px, 620px); }.master-users-modal form { grid-template-columns: 1fr; }.master-users-modal form > label, .master-users-modal form > [data-form-error], .master-users-modal form > footer { grid-column: auto; }.master-user-details { grid-template-columns: 1fr; } }

/* Team appointments: dense professional columns with an adaptive mobile focus view. */
.employee-report-page .employee-report-tabs button.active,
.employee-report-page .employee-report-periods button.active {
  border: 1px solid var(--accent);
}
.employee-report-page .employee-report-tabs button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.employee-report-page .employee-report-tab-icon { display: inline-grid; place-items: center; width: 20px; height: 20px; flex: 0 0 20px; color: currentColor; }
.employee-report-page .employee-report-tab-icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.analytics-page .analytics-tabs button.active {
  border: 1px solid var(--accent);
}
.analytics-page .analytics-tabs button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.analytics-page .analytics-tab-icon { display: inline-grid; place-items: center; width: 20px; height: 20px; flex: 0 0 20px; color: currentColor; }
.analytics-page .analytics-tab-icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.commission-page .commission-tab-icon { display: inline-grid; place-items: center; width: 20px !important; height: 20px !important; flex: 0 0 20px; color: currentColor; line-height: 0; }
.commission-page .commission-tab-icon svg { display: block; width: 18px !important; height: 18px !important; fill: none !important; stroke: currentColor !important; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.commission-page .commission-tabs button { align-items: center; line-height: 1; }
.commission-page .commission-tabs button .commission-tab-icon { align-self: center; vertical-align: middle; }
.commission-page .commission-tabs button { display: inline-flex; min-height: 44px; padding: 0 16px; gap: 8px; align-items: center; justify-content: center; line-height: 1.2; }
.commission-page .commission-tabs button .commission-tab-icon { display: inline-grid; place-items: center; width: 20px; height: 20px; flex: 0 0 20px; }
.financial-page .financial-tabs button { display: inline-flex; min-height: 44px; padding: 0 16px; gap: 8px; align-items: center; justify-content: center; line-height: 1.2; }
.financial-page .financial-tab-icon { display: inline-grid; place-items: center; width: 20px; height: 20px; flex: 0 0 20px; color: currentColor; line-height: 0; }
.financial-page .financial-tab-icon svg { display: block; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.combos-page .combo-tabs button { display: inline-flex; min-height: 44px; padding: 0 16px; gap: 8px; align-items: center; justify-content: center; line-height: 1.2; }
.combos-page .combo-tab-icon { display: inline-grid; place-items: center; width: 20px; height: 20px; flex: 0 0 20px; color: currentColor; line-height: 0; }
.combos-page .combo-tab-icon svg { display: block; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.team-appointments-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-top:18px}.team-appointments-toolbar .appointment-filters{flex:1;margin-bottom:0}.team-professional-filter{display:grid;gap:5px;min-width:210px;margin:0}.team-professional-filter span{color:var(--muted);font-size:.72rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.team-professional-filter select{min-height:42px}.team-professional-switcher{display:none}.team-appointments-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(280px,320px);align-items:start;gap:12px;width:100%;margin-top:14px;padding:0 0 12px;overflow-x:auto;overflow-y:clip;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:thin}.team-professional-column{min-width:0;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);scroll-snap-align:start}.team-professional-column>header{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:11px;min-height:76px;padding:12px 14px;border-bottom:1px solid var(--line);border-radius:var(--radius-md) var(--radius-md) 0 0;background:color-mix(in srgb,var(--surface) 94%,var(--bg));backdrop-filter:blur(14px)}.team-professional-avatar{display:grid;place-items:center;width:44px;height:44px;overflow:hidden;border:1px solid var(--line-strong);border-radius:50%;background:var(--surface-raised);color:var(--accent);font-size:.75rem;font-weight:800}.team-professional-avatar img{width:100%;height:100%;object-fit:cover}.team-professional-column h2{margin:0;overflow:hidden;color:var(--text);font-size:.95rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.team-professional-column header p{margin:4px 0 0;color:var(--muted);font-size:.75rem}.team-professional-schedule{display:grid}.team-appointment-item{position:relative;display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:8px 10px;min-height:92px;padding:13px 12px;border-bottom:1px solid var(--line);transition:background var(--ease-standard)}.team-appointment-item:last-child{border-bottom:0}.team-appointment-item:hover{background:var(--surface-raised)}.team-appointment-time{display:grid;align-content:start;gap:3px}.team-appointment-time strong{font-size:.95rem;font-variant-numeric:tabular-nums}.team-appointment-time span{color:var(--muted);font-size:.68rem}.team-appointment-copy{display:grid;align-content:start;gap:4px;min-width:0}.team-appointment-copy>strong,.team-appointment-copy>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-appointment-copy>strong{font-size:.88rem}.team-appointment-copy>span{color:var(--muted);font-size:.76rem}.team-appointment-copy small{color:var(--accent);font-size:.68rem;font-weight:750}.team-appointment-status{align-self:start;padding:4px 7px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.64rem;font-weight:750}.team-appointment-item.status-completed .team-appointment-status{color:#5caa81;border-color:color-mix(in srgb,#5caa81 45%,var(--line))}.team-appointment-item.status-cancelled{opacity:.68}.team-appointment-item.status-cancelled .team-appointment-copy>strong,.team-appointment-item.status-cancelled .team-appointment-time strong{text-decoration:line-through}.team-appointment-item.is-current{box-shadow:inset 3px 0 0 var(--accent);background:var(--surface-raised)}.team-appointment-item.is-next{box-shadow:inset 3px 0 0 #5caa81}.appointment-team-actions{grid-column:2/4;display:flex;align-items:center;justify-content:flex-end;gap:6px}.appointment-team-actions .icon-action,.team-status-action{width:auto;min-height:32px;margin:0;padding:0 9px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--muted);box-shadow:none;font-size:.7rem}.appointment-team-actions .icon-action{width:34px;padding:7px}.appointment-team-actions .icon-action svg{width:16px;height:16px}.appointment-team-actions .icon-action:hover,.team-status-action:hover{border-color:var(--line-strong);background:var(--surface-raised);color:var(--text)}.team-appointments-empty{margin:0;padding:28px 16px;color:var(--muted);font-size:.82rem;text-align:center}
@media(max-width:700px){.team-appointments-toolbar{display:grid;gap:12px}.team-professional-filter{display:none}.team-professional-switcher{display:flex;gap:7px;width:calc(100% + 18px);margin:14px -18px 0;padding:2px 18px 10px;overflow-x:auto;scrollbar-width:none}.team-professional-switcher button{flex:0 0 auto;width:auto;min-height:42px;padding:0 15px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);box-shadow:none}.team-professional-switcher button.active{border-color:var(--accent);background:var(--badge-soft);color:var(--text)}.team-appointments-board{display:block;margin-top:4px;padding:0;overflow:visible}.team-professional-column{display:none;width:100%;border-radius:10px}.team-professional-column.is-mobile-active{display:block}.team-professional-column>header{position:relative;min-height:72px;border-radius:10px 10px 0 0}.team-appointment-item{grid-template-columns:54px minmax(0,1fr) auto;padding:14px 12px}.team-appointment-copy>strong,.team-appointment-copy>span{white-space:normal}.appointment-team-actions .icon-action,.team-status-action{min-height:40px}.team-appointments-toolbar .appointment-filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}}
.service-modal.establishment-modal { width: min(70vw, 1100px); }
.establishment-registration-form .establishment-form-grid > label { align-content: start; }
.establishment-registration-form .establishment-form-grid > label > input,
.establishment-registration-form .establishment-form-grid > label > textarea { width: 100%; box-sizing: border-box; }
.service-modal.establishment-health-modal { display: grid; gap: 14px; width: min(calc(100vw - 32px), 680px); max-height: min(820px, calc(100dvh - 32px)); overflow: auto; }
.establishment-health-modal-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.establishment-health-modal-header h2,.establishment-health-modal-header p { margin: 0; }
.establishment-health-modal-header .eyebrow { margin-bottom: 5px; }
.establishment-health-modal-header p:last-child { margin-top: 5px; color: var(--muted); }
.establishment-health-modal-header .modal-close { flex: 0 0 40px; width: 40px; min-height: 40px; margin: 0; border: 1px solid var(--line); border-radius: 50%; }
.establishment-health-modal-body { min-width: 0; }
.establishment-health-modal-body .establishment-health { margin: 0; padding: 0; border: 0; background: transparent; }
.establishment-health-modal-body .establishment-health-modal-loading { display: grid; min-height: 120px; place-items: center; color: var(--muted); }
.establishment-health-modal > footer { display: flex; justify-content: flex-end; padding-top: 12px; border-top: 1px solid var(--line); }
@media (max-width: 700px) { .service-modal.establishment-modal { width: 100%; } }
@media (max-width: 700px) { .service-modal.establishment-health-modal { width: calc(100vw - 24px); max-height: calc(100dvh - 24px); padding: 20px 16px; } }

.support-mode-banner { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 66px; padding: 10px clamp(16px, 3vw, 32px); border-bottom: 1px solid var(--line-strong); background: var(--surface); box-shadow: 0 8px 24px rgba(0,0,0,.18); }
.support-mode-indicator { display: flex; align-items: center; gap: 12px; min-width: 0; }
.support-mode-dot { flex: 0 0 10px; width: 10px; height: 10px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 16%, transparent); }
.support-mode-indicator > div { display: grid; gap: 2px; min-width: 0; }
.support-mode-indicator strong { color: var(--accent); font-size: .72rem; letter-spacing: .1em; }
.support-mode-indicator span:not(.support-mode-dot) { color: var(--text); font-size: .86rem; overflow-wrap: anywhere; }
.support-mode-warning { padding: 5px 9px; border: 1px solid var(--line-strong); border-radius: 999px; color: var(--text); font-size: .76rem; }
.support-mode-banner > button { flex: 0 0 auto; width: auto; min-height: 44px; padding: 0 16px; border: 1px solid var(--line-strong); background: transparent; color: var(--text); box-shadow: none; }
.support-mode-banner > button:hover { border-color: var(--accent); color: var(--accent); }
.support-mode-banner > button:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.support-confirm-note { padding: 12px 14px; border-left: 3px solid var(--accent); background: var(--surface-raised); color: var(--muted); }
@media (max-width: 700px) { .support-mode-banner { align-items: flex-start; gap: 10px; padding: 10px 14px; } .support-mode-indicator { gap: 9px; } .support-mode-indicator span:not(.support-mode-dot) { font-size: .76rem; } .support-mode-warning { display: none; } .support-mode-banner > button { min-height: 44px; padding-inline: 10px; font-size: .78rem; } }

/* Conversões & Atendimento */
.conversion-page { display:grid; gap:24px; width:min(100%,1440px); margin:0 auto; padding-bottom:36px; }
.conversion-header,.conversion-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
.conversion-header h1 { margin:0; font-size:clamp(1.7rem,3vw,2.4rem); letter-spacing:-.035em; }
.conversion-header p:not(.eyebrow),.conversion-date-range,.conversion-note { color:var(--muted); }
.conversion-header p:not(.eyebrow) { margin:8px 0 0; }
.conversion-period,.conversion-recent .conversion-section-heading label { display:grid; gap:6px; min-width:160px; color:var(--muted); font-size:.76rem; }
.conversion-period select,.conversion-recent select { min-height:44px; }
.conversion-date-range { margin:-14px 0 0; font-size:.78rem; }
.conversion-custom-range { display:flex; align-items:end; gap:12px; flex-wrap:wrap; }.conversion-custom-range label { display:grid; gap:5px; color:var(--muted); font-size:.75rem; }.conversion-custom-range input { min-height:42px; }.conversion-custom-range button { width:auto; min-height:42px; padding-inline:14px; }
.conversion-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.conversion-kpis article,.conversion-panel { min-width:0; padding:20px; border:1px solid var(--line); border-radius:14px; background:var(--surface); box-shadow:var(--surface-shadow); }
.conversion-kpis article { display:grid; gap:9px; min-height:132px; align-content:start; }
.conversion-kpis article>span { color:var(--muted); font-size:.78rem; font-weight:650; }
.conversion-kpis article>strong { font-size:clamp(1.55rem,2.8vw,2.15rem); line-height:1.1; font-variant-numeric:tabular-nums; }
.conversion-kpis article>small { color:var(--muted); font-size:.73rem; }
.conversion-section { display:grid; gap:14px; }
.conversion-section-heading { align-items:center; }
.conversion-section-heading h2 { margin:0; font-size:1.08rem; letter-spacing:-.015em; }
.conversion-section-heading .eyebrow { margin:0 0 5px; }
.conversion-channel-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.conversion-channel { display:grid; justify-items:start; gap:9px; min-width:0; min-height:160px; padding:18px; border:1px solid var(--line); border-radius:14px; background:var(--surface); color:var(--text); text-align:left; box-shadow:none; cursor:pointer; transition:border-color .16s ease,background .16s ease,transform .16s ease; }
.conversion-channel:hover { border-color:var(--line-strong); transform:translateY(-1px); }
.conversion-channel.is-selected { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 7%,var(--surface)); box-shadow:inset 0 0 0 1px var(--accent); }
.conversion-channel:focus-visible,.conversion-pagination button:focus-visible,.conversion-clear-filter:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.conversion-channel-top,.conversion-legend span { display:flex; align-items:center; gap:9px; }
.conversion-channel-top i,.conversion-legend i { width:10px; height:10px; flex:0 0 auto; border-radius:50%; background:var(--channel-color); }
.conversion-channel>span:not(.conversion-channel-top) { color:var(--muted); font-size:.78rem; }
.conversion-channel>span b { color:var(--text); font-variant-numeric:tabular-nums; }
.conversion-channel .conversion-rate { color:var(--text); font-weight:650; }
.conversion-clear-filter { width:auto; min-height:38px; padding:6px 12px; border:1px solid var(--line-strong); border-radius:9px; background:transparent; color:var(--text); box-shadow:none; font-size:.76rem; }
.conversion-lower-grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(280px,.9fr); gap:14px; }
.conversion-panel { display:grid; align-content:start; gap:16px; }
.conversion-legend { display:flex; flex-wrap:wrap; gap:16px; color:var(--muted); font-size:.74rem; }
.conversion-legend span { gap:7px; }
.conversion-chart-scroll { width:100%; min-width:0; overflow:hidden; }
.conversion-line-chart { display:block; width:100%; min-width:0; height:auto; overflow:visible; }
.conversion-line-chart text { fill:var(--muted); font-size:11px; }
.conversion-line-chart .conversion-point-label { fill:var(--text,#fff); font-size:12px; font-weight:700; paint-order:stroke; stroke:var(--surface,#111); stroke-width:3px; stroke-linejoin:round; }
.conversion-axis { stroke:var(--line); stroke-width:1; }
.conversion-empty { display:grid; place-items:center; min-height:112px; padding:18px; border:1px dashed var(--line); border-radius:10px; color:var(--muted); text-align:center; font-size:.84rem; }
.conversion-funnel { display:grid; gap:8px; margin:0; padding:0; list-style:none; }
.conversion-funnel li { display:grid; grid-template-columns:30px minmax(0,1fr) 18px; align-items:center; gap:10px; min-height:55px; }
.conversion-funnel li>span { display:grid; place-items:center; width:28px; height:28px; border:1px solid var(--line-strong); border-radius:50%; color:var(--accent); font-size:.75rem; font-weight:700; }
.conversion-funnel li>div { display:flex; align-items:baseline; justify-content:space-between; gap:8px; padding:10px 12px; border-radius:8px; background:var(--bg-soft); }
.conversion-funnel li strong { font-size:1rem; font-variant-numeric:tabular-nums; }
.conversion-funnel li small { color:var(--muted); }
.conversion-funnel li>i { color:var(--muted); font-style:normal; }
.conversion-source-list { display:grid; gap:15px; }
.conversion-source { display:grid; grid-template-columns:minmax(94px,auto) minmax(50px,1fr) 38px; align-items:center; gap:12px; font-size:.78rem; }
.conversion-source>div { height:7px; overflow:hidden; border-radius:9px; background:var(--bg-soft); }
.conversion-source>div i { display:block; height:100%; min-width:3px; border-radius:inherit; background:var(--accent); }
.conversion-source>strong { text-align:right; font-variant-numeric:tabular-nums; }
.conversion-health,.conversion-conversation-list { display:grid; margin:0; padding:0; list-style:none; }
.conversion-health li { display:grid; grid-template-columns:10px minmax(0,1fr) auto; align-items:center; gap:10px; min-height:48px; border-bottom:1px solid var(--line); font-size:.8rem; }
.conversion-health li:last-child { border-bottom:0; }
.conversion-health li strong { color:var(--muted); font-size:.73rem; font-weight:600; }
.conversion-health-dot { width:8px; height:8px; border-radius:50%; background:var(--muted); }
.conversion-health-dot.is-ok { background:#4ca978; }.conversion-health-dot.is-warning { background:#d59c36; }.conversion-health-dot.is-error { background:#d45d5d; }
.conversion-recent { gap:12px; }
.conversion-recent .conversion-section-heading { align-items:flex-end; }
.conversion-conversation-list li { display:grid; grid-template-columns:38px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:65px; border-bottom:1px solid var(--line); }
.conversion-avatar { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:color-mix(in srgb,var(--accent) 18%,var(--surface)); color:var(--accent); font-weight:700; }
.conversion-conversation-list li>div { display:grid; gap:4px; min-width:0; }.conversion-conversation-list small,.conversion-conversation-list time { color:var(--muted); font-size:.74rem; }.conversion-conversation-list time { text-align:right; }
.conversion-pagination { display:flex; align-items:center; justify-content:flex-end; gap:12px; color:var(--muted); font-size:.77rem; }
.conversion-pagination button { width:auto; min-height:40px; padding:7px 13px; border:1px solid var(--line-strong); border-radius:8px; background:transparent; color:var(--text); box-shadow:none; }
.conversion-pagination button:disabled { opacity:.45; cursor:not-allowed; }
.conversion-note { margin:0; font-size:.75rem; line-height:1.5; }
.conversion-error { padding:18px; border:1px solid color-mix(in srgb,#d45d5d 45%,var(--line)); border-radius:12px; background:var(--surface); }
.conversion-error p { color:var(--muted); }.conversion-error button { width:auto; min-height:40px; }
.conversion-skeleton { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.conversion-skeleton i,.conversion-skeleton div { height:135px; border:1px solid var(--line); border-radius:14px; background:linear-gradient(100deg,var(--surface) 25%,var(--bg-soft) 45%,var(--surface) 65%); background-size:250% 100%; animation:conversion-shimmer 1.4s linear infinite; }
.conversion-skeleton div { grid-column:1/-1; height:300px; }
@keyframes conversion-shimmer { to { background-position:-200% 0; } }
@media(max-width:900px) { .conversion-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }.conversion-lower-grid { grid-template-columns:1fr; } }
@media(max-width:620px) { .conversion-page { gap:18px; }.conversion-header { align-items:stretch; flex-direction:column; gap:14px; }.conversion-period { width:100%; }.conversion-custom-range { align-items:stretch; flex-direction:column; }.conversion-custom-range label,.conversion-custom-range button { width:100%; }.conversion-kpis { gap:9px; }.conversion-kpis article { min-height:122px; padding:14px; }.conversion-kpis article>small { font-size:.68rem; }.conversion-channel-grid { grid-template-columns:1fr; }.conversion-channel { min-height:0; }.conversion-section-heading { align-items:flex-start; flex-direction:column; }.conversion-lower-grid { gap:10px; }.conversion-panel { padding:16px; }.conversion-recent .conversion-section-heading { display:grid; }.conversion-source { grid-template-columns:minmax(90px,auto) minmax(40px,1fr) 34px; gap:8px; }.conversion-conversation-list li { grid-template-columns:34px minmax(0,1fr); }.conversion-conversation-list time { grid-column:2; text-align:left; }.conversion-skeleton { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }.conversion-skeleton i { height:120px; }.conversion-skeleton div { height:240px; } }
@media(prefers-reduced-motion:reduce) { .conversion-channel,.conversion-skeleton i,.conversion-skeleton div { animation:none; transition:none; } }

/* WhatsApp AI establishment diagnostic dialog */
.wa-establishment-dialog{gap:16px;padding:24px}
.wa-establishment-dialog>header{position:sticky;top:-24px;z-index:2;align-items:center;margin:-4px 0 0;padding:4px 0 14px;border-bottom:1px solid var(--line);background:var(--surface)}
.wa-establishment-dialog>header>div{min-width:0}
.wa-establishment-dialog h2{font-size:clamp(1.25rem,2vw,1.55rem);letter-spacing:-.025em}
.wa-establishment-dialog .wa-dialog-subtitle{line-height:1.5}
.wa-establishment-dialog .wa-dialog-close{width:44px;min-width:44px;min-height:44px;flex:0 0 auto}
.wa-establishment-dialog .wa-dialog-period{width:min(100%,260px)}
.wa-establishment-dialog .wa-detail-health{padding:17px 18px;border-color:color-mix(in srgb,var(--accent) 28%,var(--line));background:color-mix(in srgb,var(--accent) 3%,var(--surface))}
.wa-establishment-dialog .wa-detail-health .wa-section-heading{align-items:center}
.wa-establishment-dialog .wa-detail-health>p{margin:9px 0 0;line-height:1.55}
.wa-establishment-dialog .wa-metrics{gap:12px}
.wa-establishment-dialog .wa-metric{min-height:104px;align-content:center;padding:16px;border-radius:12px}
.wa-establishment-dialog .wa-metric:nth-child(3){border-color:color-mix(in srgb,var(--accent) 36%,var(--line))}
.wa-establishment-dialog .wa-secondary-grid{align-items:stretch}
.wa-establishment-dialog .wa-secondary-grid>.wa-section{align-content:start}
.wa-establishment-dialog .wa-section-heading{align-items:flex-start}
.wa-establishment-dialog .wa-errors button{min-height:56px}
.wa-establishment-dialog .wa-dialog-close:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
@media(max-width:640px){
  .wa-establishment-dialog[open]{align-self:end;width:100vw;max-width:none;max-height:92vh;margin:auto 0 0;padding:20px 16px calc(16px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0}
  .wa-establishment-dialog>header{top:-20px}
  .wa-establishment-dialog .wa-dialog-period{width:100%}
  .wa-establishment-dialog .wa-detail-health{padding:14px}
  .wa-establishment-dialog .wa-metrics{gap:8px}
  .wa-establishment-dialog .wa-metric{min-height:92px;padding:13px}
}
@media(prefers-reduced-transparency:reduce){.wa-dialog::backdrop{background:rgba(0,0,0,.82);backdrop-filter:none}}

.wa-filters>button[type="submit"]{grid-column:1/-1;justify-self:center;width:min(100%,180px)}

/* WhatsApp & IA: clearer hierarchy, legibility and responsive density */
.wa-heading{gap:20px}
.wa-heading .eyebrow{font-size:.74rem}
.wa-heading h1{font-size:clamp(2rem,3.4vw,2.55rem);letter-spacing:-.04em}
.wa-heading-row>div>p:last-child{max-width:680px;line-height:1.55}
.wa-central>.wa-health,.wa-central>.wa-section{padding:20px 22px;border-radius:16px}
.wa-central .wa-section-heading h2{font-size:1.05rem}
.wa-central .wa-section-heading p{font-size:.8rem;line-height:1.5}
.wa-central .wa-metric{padding:18px 19px;border-radius:15px}
.wa-central .wa-ai-stats>div>span{font-size:.78rem}
.wa-central>.wa-metrics .wa-metric:nth-child(3){border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:color-mix(in srgb,var(--accent) 4%,var(--surface))}
.wa-central .wa-status{min-height:28px;padding:3px 9px;border:1px solid color-mix(in srgb,currentColor 28%,transparent);border-radius:999px;background:color-mix(in srgb,currentColor 7%,var(--surface));font-size:.75rem}
.wa-central .wa-status i{width:17px;height:17px}
.wa-central .wa-establishment-name small,.wa-central .wa-row-metric small{font-size:.72rem}
.wa-central .wa-row-open{font-size:.76rem}
.wa-central .wa-tool-row strong,.wa-central .wa-errors strong{font-size:.8rem}
.wa-central .wa-tool-row span,.wa-central .wa-tool-row small,.wa-central .wa-errors small{font-size:.73rem}
.wa-central .wa-empty span,.wa-central .wa-note{font-size:.76rem;line-height:1.5}
.wa-central .wa-total{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 11px;border:1px solid var(--line);border-radius:999px;background:var(--bg-soft)}
.wa-central .wa-total strong{color:var(--text);font-variant-numeric:tabular-nums}
@media(max-width:980px){.wa-central>.wa-metrics,.wa-central>.wa-health .wa-health-counts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.wa-heading h1{font-size:1.85rem}.wa-central>.wa-health,.wa-central>.wa-section{padding:16px 14px}.wa-central .wa-section-heading{align-items:flex-start}.wa-central .wa-metric{padding:14px}.wa-central .wa-establishment-name small,.wa-central .wa-row-metric small{font-size:.7rem}.wa-central .wa-tool-row span,.wa-central .wa-tool-row small,.wa-central .wa-errors small{font-size:.7rem}.wa-central .wa-health-count{padding:10px 8px}}

/* Master: institutional WhatsApp operations, with technical settings kept secondary. */
.master-settings-page.platform-whatsapp-page{width:min(100%,960px);gap:clamp(22px,3vw,34px)}
.platform-page-heading{display:grid;gap:7px}
.platform-page-heading .eyebrow,.platform-page-heading h1,.platform-page-heading>p:last-child{margin:0}
.platform-page-heading h1{font-size:clamp(2rem,4vw,2.65rem);letter-spacing:-.045em}
.platform-page-heading>p:last-child{color:var(--muted);line-height:1.5}
.platform-connection-card{position:relative;display:grid;gap:16px;padding:clamp(22px,4vw,36px);border:1px solid color-mix(in srgb,var(--line) 86%,transparent);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 96%,var(--bg));box-shadow:var(--surface-shadow)}
.platform-connection-card.is-connected{border-color:color-mix(in srgb,var(--success) 25%,var(--line));background:linear-gradient(118deg,color-mix(in srgb,var(--success) 5%,var(--surface)),var(--surface) 48%)}
.platform-connection-card.is-error,.platform-connection-card.is-disconnected{border-color:color-mix(in srgb,var(--line) 84%,transparent)}
.platform-connection-card.is-disconnected{grid-template-columns:minmax(0,1fr) auto;gap:7px 22px;padding:17px 20px}
.platform-card-topline{display:flex;align-items:center;justify-content:space-between;gap:16px}
.platform-connection-card.is-disconnected .platform-card-topline{grid-column:1/-1}
.platform-channel-label{color:var(--muted);font-size:.78rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase}
.platform-connection-card h2{margin:4px 0 0;font-size:clamp(1.5rem,3vw,2rem);letter-spacing:-.035em}
.platform-connection-card.is-disconnected h2{grid-column:1;margin:0;font-size:1.2rem;letter-spacing:-.025em}
.platform-connection-description{max-width:62ch;margin:0;color:var(--muted);line-height:1.55}
.platform-connection-card.is-disconnected .platform-connection-description{grid-column:1;max-width:70ch;font-size:.86rem;line-height:1.4}
.platform-main-number{margin:2px 0 0;color:var(--text);font-size:clamp(1.75rem,4vw,2.55rem);font-weight:720;letter-spacing:-.035em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.platform-connection-card.is-disconnected .platform-main-number{grid-column:1;margin:0;font-size:1.2rem;letter-spacing:-.02em}
.platform-purpose-list{display:flex;flex-wrap:wrap;gap:8px;color:var(--muted);font-size:.82rem}
.platform-connection-card.is-disconnected .platform-purpose-list{grid-column:1;gap:6px;font-size:.74rem}
.platform-connection-card.is-disconnected .platform-purpose-list span{padding:3px 9px}
.platform-purpose-list span{padding:5px 10px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--surface-raised) 54%,transparent)}
.whatsapp-platform-status{min-height:36px;display:inline-flex;align-items:center;gap:8px;padding:5px 11px;border:1px solid color-mix(in srgb,currentColor 36%,var(--line));border-radius:999px;color:var(--muted);background:color-mix(in srgb,currentColor 5%,var(--surface));font-size:.78rem;font-weight:700;white-space:nowrap}
.whatsapp-platform-status::before{width:8px;height:8px;border-radius:50%;background:currentColor;content:""}
.whatsapp-platform-status.is-connected{color:var(--success);border-color:color-mix(in srgb,var(--success) 32%,var(--line));background:color-mix(in srgb,var(--success) 8%,var(--surface))}
.whatsapp-platform-status.is-pending{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 32%,var(--line))}
.whatsapp-platform-status.is-error{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 32%,var(--line));background:color-mix(in srgb,var(--danger) 5%,var(--surface))}
.platform-primary-actions{display:flex;align-items:center;gap:10px;margin-top:4px}
.platform-connection-card.is-disconnected .platform-primary-actions{grid-column:2;grid-row:2/6;align-self:center;margin:0}
.platform-primary-actions>button{width:auto;min-width:168px;padding-inline:20px}
.platform-more-actions{position:relative}
.platform-more-actions>summary{min-width:48px;min-height:44px;display:grid;place-items:center;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text);font-size:1.2rem;font-weight:800;letter-spacing:.12em;cursor:pointer;list-style:none}
.platform-more-actions>summary::-webkit-details-marker{display:none}
.platform-more-actions>summary:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.platform-more-actions-menu{position:absolute;z-index:6;top:calc(100% + 8px);right:0;width:220px;display:grid;gap:3px;padding:6px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--menu-bg);box-shadow:var(--surface-shadow-raised)}
.platform-more-actions-menu button{min-height:42px;padding:8px 10px;background:transparent;color:var(--text);text-align:left;box-shadow:none}
.platform-more-actions-menu button:hover{background:var(--surface-raised)}
.platform-more-actions-menu button.is-destructive{color:var(--danger)}
.platform-action-feedback{min-height:0;margin:0;color:var(--muted);line-height:1.45}
.platform-action-feedback:empty{display:none}
.platform-error-detail summary{width:max-content;min-height:36px;padding:7px 0;color:var(--muted);font-size:.86rem;cursor:pointer}
.platform-error-detail code{display:block;width:max-content;max-width:100%;padding:8px 10px;border-radius:var(--radius-sm);background:var(--bg-soft);color:var(--muted);overflow-wrap:anywhere}
.platform-scope-note{display:grid;gap:7px;padding:2px 0 2px 16px;border-left:2px solid color-mix(in srgb,var(--accent) 48%,var(--line))}
.platform-scope-note strong{color:var(--text);font-size:.9rem}
.platform-scope-note p{max-width:74ch;margin:0;color:var(--muted);font-size:.88rem;line-height:1.55}
.platform-scope-note p strong{font-size:inherit}
.platform-health{display:grid;gap:14px}
.platform-health h2{margin:0;font-size:1.08rem;letter-spacing:-.015em}
.platform-health-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.platform-health-row>span{min-width:0;display:grid;align-content:start;gap:7px;padding:15px 14px;border-right:1px solid var(--line)}
.platform-health-row>span:first-child{padding-left:0}
.platform-health-row>span:last-child{border-right:0}
.platform-health-row small{color:var(--muted);font-size:.76rem}
.platform-health-row strong{display:flex;align-items:center;gap:7px;font-size:.84rem;line-height:1.4;overflow-wrap:anywhere}
.platform-health-indicator{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:var(--muted)}
.platform-health-indicator.is-healthy{background:var(--success)}
.platform-health-summary{margin:0;color:var(--success);font-size:.86rem;font-weight:650}
.platform-connect-methods{display:grid;gap:14px;padding:18px 0;border-block:1px solid var(--line)}
.platform-connect-methods[hidden]{display:none}
.platform-connect-methods h3,.platform-connect-methods p{margin:0}
.platform-connect-methods h3{font-size:1rem}
.platform-connect-methods>p{color:var(--muted);font-size:.88rem}
.platform-connect-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.platform-connect-heading>div{display:grid;gap:5px}
.platform-connect-heading .text-button{width:auto;min-width:80px}
.platform-pairing-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:14px}
.platform-pairing-actions>button{width:100%;min-height:46px;align-self:end;margin:0;border:1px solid color-mix(in srgb,var(--accent) 54%,var(--line));background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--text);font-weight:700;box-shadow:none}
.platform-pairing-actions>button:hover:not(:disabled){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 17%,var(--surface));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 12%,transparent)}
.platform-pairing-actions form{min-width:0;display:grid;grid-template-rows:auto 46px;gap:7px}
.platform-pairing-actions form>label{align-self:end;font-size:.84rem;font-weight:650}
.platform-code-control,.platform-copy-control{display:flex;align-items:center;gap:8px}
.platform-code-control input,.platform-copy-control input{min-width:0;flex:1}
.platform-code-control button,.platform-copy-control button{width:auto;min-width:126px;min-height:46px}
.platform-code-control button{margin:0}
.platform-pairing-actions form button{border-color:var(--accent);background:var(--accent);color:var(--accent-ink);font-weight:750;box-shadow:var(--button-shadow)}
.platform-pairing-actions form button:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}
.platform-advanced,.platform-whatsapp-log{border-top:1px solid var(--line)}
.platform-advanced>summary,.platform-whatsapp-log>summary{min-height:50px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 2px;color:var(--text);font-weight:650;cursor:pointer}
.platform-advanced>summary::after,.platform-whatsapp-log>summary::after{content:"⌄";margin-left:auto;color:var(--muted);font-size:1.05rem;transition:transform 160ms ease}
.platform-advanced[open]>summary::after,.platform-whatsapp-log[open]>summary::after{transform:rotate(180deg)}
.platform-advanced>summary:focus-visible,.platform-whatsapp-log>summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-sm)}
.platform-advanced>.platform-section-help{margin:0 0 16px;color:var(--muted);font-size:.86rem}
.platform-whatsapp-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px;align-items:start}
.platform-whatsapp-form>label{min-width:0;display:grid;align-content:start;gap:7px;font-size:.86rem;font-weight:650}
.platform-whatsapp-form>label:not(.platform-token-field):not(.platform-webhook-field){grid-column:1/-1;grid-template-columns:minmax(150px,.42fr) minmax(0,1fr);align-items:center;column-gap:18px}
.platform-whatsapp-form>label:not(.platform-token-field):not(.platform-webhook-field)>input{grid-column:2}
.platform-whatsapp-form>label:not(.platform-token-field):not(.platform-webhook-field)>small{grid-column:2}
.platform-whatsapp-form>.platform-webhook-field{grid-template-columns:minmax(150px,.42fr) minmax(0,1fr);align-items:center;column-gap:18px}
.platform-whatsapp-form>.platform-webhook-field>.platform-copy-control,.platform-whatsapp-form>.platform-webhook-field>small{grid-column:2}
.platform-whatsapp-form input{width:100%;min-width:0}
.platform-whatsapp-form label small,.platform-saved-secret small{color:var(--muted);font-size:.78rem;font-weight:400;line-height:1.45}
.platform-token-field,.platform-webhook-field,.platform-whatsapp-form>.form-message,.platform-whatsapp-form>.platform-advanced-actions{grid-column:1/-1}
.platform-token-field[hidden]{display:none}
.platform-saved-secret{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface-raised) 42%,transparent)}
.platform-saved-secret>div{display:grid;gap:4px}
.platform-saved-secret strong{font-size:.86rem}
.platform-saved-secret code{color:var(--muted);font-size:.95rem;letter-spacing:.13em}
.platform-saved-secret button{width:auto;min-width:132px}
.platform-advanced-actions{display:grid;grid-template-columns:minmax(150px,.42fr) minmax(0,1fr);grid-column:1/-1;padding-top:2px}
.platform-advanced-actions button{grid-column:2;justify-self:start;width:auto;min-width:168px}
.platform-whatsapp-form .form-message:empty{display:none}
.platform-whatsapp-log>summary span{min-width:26px;padding:2px 8px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.78rem;text-align:center}
.platform-whatsapp-log ol{display:grid;gap:0;margin:0;padding:0;list-style:none}
.platform-whatsapp-log li{display:grid;grid-template-columns:54px minmax(0,1fr);gap:4px 12px;padding:12px 4px;border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent)}
.platform-whatsapp-log li time{grid-row:span 2;color:var(--muted);font-size:.8rem;font-variant-numeric:tabular-nums}
.platform-whatsapp-log li span{font-size:.86rem;font-weight:600;text-transform:capitalize}
.platform-whatsapp-log li small,.platform-whatsapp-log>p{color:var(--muted);font-size:.78rem}
.platform-whatsapp-log>p{margin:2px 0 14px}
.platform-pairing-modal[hidden],.platform-disconnect-modal[hidden]{display:none}
.platform-pairing-dialog{width:min(100%,480px);max-height:min(90vh,720px);overflow:auto}
.platform-pairing-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
.platform-pairing-dialog>header h2{margin:0}
.platform-pairing-modal-content{min-height:165px;display:grid;place-content:center;gap:16px;color:var(--muted);text-align:center}
.platform-pairing-modal-content[role=alert]{color:var(--danger)}
.platform-pairing-modal-footer{display:flex;justify-content:flex-end;margin-top:12px}
.platform-pairing-modal-footer button{width:auto;min-width:96px}
.platform-pairing-qr{display:grid;justify-items:center;gap:12px;margin:0}
.platform-pairing-qr .platform-whatsapp-qr{width:min(100%,280px);margin:0}
.platform-pairing-qr figcaption{display:grid;gap:5px;max-width:38ch;line-height:1.45}
.platform-pairing-qr figcaption strong{color:var(--text)}
.platform-pairing-waiting{display:flex;align-items:center;justify-content:center;gap:8px;margin:0;color:var(--muted);font-size:.86rem}
.platform-pairing-waiting i{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:platform-status-pulse 1.5s ease-in-out infinite}
.platform-pairing-code{display:grid;justify-items:center;gap:14px;padding:20px;border:1px solid var(--line);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-raised) 45%,transparent)}
.platform-pairing-code p,.platform-pairing-code small{margin:0;line-height:1.5}
.platform-pairing-code strong{color:var(--text);font-size:clamp(2.4rem,12vw,3.5rem);font-variant-numeric:tabular-nums;letter-spacing:.18em;overflow-wrap:anywhere}
.platform-pairing-code button{width:auto;min-width:150px}
.platform-pairing-success{display:grid;justify-items:center;gap:7px}
.platform-pairing-success>span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:color-mix(in srgb,var(--success) 12%,var(--surface));color:var(--success);font-size:1.3rem}
.platform-pairing-success h3,.platform-pairing-success p{margin:0}
.platform-pairing-success p{max-width:38ch;color:var(--muted);line-height:1.5}
.platform-disconnect-modal .danger-button{border:1px solid color-mix(in srgb,var(--danger) 62%,var(--line));background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger);box-shadow:none}
.platform-disconnect-modal .danger-button:hover{background:color-mix(in srgb,var(--danger) 17%,var(--surface))}
.nav-group{display:grid;gap:3px;min-width:0}
.nav-group+.nav-group{margin-top:12px;padding-top:0}
.nav-group-label{padding:2px 12px 5px;color:var(--muted);font-size:.66rem;font-weight:650;letter-spacing:.1em;text-transform:uppercase;opacity:.78}
.dashboard-layout .nav-item.active{border-color:transparent;background:color-mix(in srgb,var(--accent) 7%,var(--surface-raised));box-shadow:none}
.dashboard-layout .nav-item.active::before{left:0;top:11px;bottom:11px;width:2px;background:color-mix(in srgb,var(--accent) 72%,var(--muted))}
.dashboard-layout.sidebar-collapsed .nav-group-label{display:none}
.dashboard-layout.sidebar-collapsed .nav-group+.nav-group{margin-top:8px;padding-top:0}
@keyframes platform-status-pulse{50%{opacity:.45;transform:scale(.84)}}
@media(max-width:760px){
  .master-settings-page.platform-whatsapp-page{gap:22px}
  .platform-connection-card{gap:14px;padding:21px}
  .platform-connection-card.is-disconnected{grid-template-columns:minmax(0,1fr);gap:8px;padding:14px 16px}
  .platform-connection-card.is-disconnected .platform-primary-actions{grid-column:1;grid-row:auto;align-self:start;margin-top:1px}
  .platform-health-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .platform-health-row>span:nth-child(2){border-right:0}
  .platform-health-row>span:nth-child(3){padding-left:0}
  .platform-health-row>span:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .platform-pairing-actions{grid-template-columns:minmax(0,1fr)}
  .platform-pairing-actions>button{width:100%}
  .platform-pairing-actions form{width:100%}
}
@media(max-width:520px){
  .platform-card-topline{align-items:flex-start;flex-direction:column-reverse}
  .platform-main-number{font-size:1.75rem}
  .platform-primary-actions{align-items:stretch}
  .platform-primary-actions>button{flex:1;width:auto;min-width:0}
  .platform-whatsapp-form{grid-template-columns:minmax(0,1fr)}
  .platform-whatsapp-form>label:not(.platform-token-field):not(.platform-webhook-field){grid-column:auto;grid-template-columns:minmax(0,1fr);gap:7px}
  .platform-whatsapp-form>label:not(.platform-token-field):not(.platform-webhook-field)>input,.platform-whatsapp-form>label:not(.platform-token-field):not(.platform-webhook-field)>small{grid-column:1}
  .platform-whatsapp-form>.platform-webhook-field{grid-column:auto;grid-template-columns:minmax(0,1fr);gap:7px}
  .platform-whatsapp-form>.platform-webhook-field>.platform-copy-control,.platform-whatsapp-form>.platform-webhook-field>small{grid-column:1}
  .platform-token-field,.platform-webhook-field,.platform-whatsapp-form>.form-message,.platform-whatsapp-form>.platform-advanced-actions{grid-column:auto}
  .platform-advanced-actions{grid-template-columns:minmax(0,1fr)}
  .platform-health-row>span{padding:13px 9px}
  .platform-code-control{align-items:stretch;flex-direction:column;gap:9px}
  .platform-code-control button{width:100%;min-width:0;margin:0}
  .platform-pairing-actions form{grid-template-rows:auto auto;gap:7px}
  .platform-saved-secret{align-items:flex-start;flex-direction:column}
  .platform-saved-secret button{width:100%}
  .platform-advanced-actions button{grid-column:1;width:100%}
}
@media(prefers-reduced-motion:reduce){
  .platform-pairing-waiting i{animation:none}
  .platform-connection-card,.platform-more-actions-menu,.platform-whatsapp-page button{transition:none}
  .platform-pairing-actions form button:hover:not(:disabled){transform:none}
  .platform-whatsapp-page button:hover:not(:disabled){transform:none}
  .platform-advanced>summary::after,.platform-whatsapp-log>summary::after{transition:none}
}

/* Institutional WhatsApp: clearer status-first hierarchy and calmer diagnostics. */
.master-settings-page.platform-whatsapp-page{width:min(100%,1000px);gap:20px}
.platform-page-heading{gap:8px;margin-bottom:2px}
.platform-page-heading .eyebrow{color:var(--accent)}
.platform-page-heading h1{font-size:clamp(1.85rem,3.5vw,2.35rem);letter-spacing:-.04em;line-height:1.12}
.platform-page-heading>p:last-child{max-width:58ch;font-size:.95rem}
.platform-connection-card{--platform-state:var(--accent);gap:15px;padding:clamp(22px,3.5vw,32px);overflow:hidden;border-color:color-mix(in srgb,var(--platform-state) 24%,var(--line));border-radius:16px;background:var(--surface);box-shadow:var(--surface-shadow)}
.platform-connection-card::before{position:absolute;inset:0 auto 0 0;width:4px;background:var(--platform-state);content:""}
.platform-connection-card.is-connected{--platform-state:var(--success);background:linear-gradient(112deg,color-mix(in srgb,var(--success) 4%,var(--surface)),var(--surface) 55%)}
.platform-connection-card.is-error{--platform-state:var(--danger)}
.platform-connection-card.is-pending{--platform-state:var(--accent)}
.platform-connection-card.is-disconnected,.platform-connection-card.is-neutral{grid-template-columns:minmax(0,1fr);gap:15px;padding:clamp(22px,3.5vw,32px)}
.platform-connection-card.is-disconnected .platform-card-topline,.platform-connection-card.is-disconnected h2,.platform-connection-card.is-disconnected .platform-connection-description,.platform-connection-card.is-disconnected .platform-number-block,.platform-connection-card.is-disconnected .platform-purpose-list,.platform-connection-card.is-disconnected .platform-primary-actions{grid-column:1;grid-row:auto;align-self:initial;margin:0}
.platform-connection-card.is-disconnected h2{font-size:clamp(1.5rem,3vw,1.9rem)}
.platform-card-topline{min-height:36px}
.platform-channel-label{font-size:.72rem;letter-spacing:.12em}
.platform-connection-card h2{margin:0;font-size:clamp(1.55rem,3vw,1.9rem);line-height:1.18}
.platform-connection-description{max-width:58ch;font-size:.94rem;line-height:1.55}
.platform-number-block{display:grid;gap:3px;margin-top:1px}
.platform-number-block>span{color:var(--muted);font-size:.78rem;font-weight:650}
.platform-main-number,.platform-connection-card.is-disconnected .platform-main-number{margin:0;font-size:clamp(1.45rem,3.2vw,2rem);font-weight:750;line-height:1.2;letter-spacing:-.03em}
.platform-purpose-list,.platform-connection-card.is-disconnected .platform-purpose-list{gap:7px;font-size:.79rem}
.platform-purpose-list span,.platform-connection-card.is-disconnected .platform-purpose-list span{padding:5px 10px;border-color:color-mix(in srgb,var(--line) 80%,transparent);background:color-mix(in srgb,var(--surface-raised) 70%,var(--surface))}
.whatsapp-platform-status{min-height:34px;padding-inline:12px}
.platform-primary-actions,.platform-connection-card.is-disconnected .platform-primary-actions{grid-column:1;grid-row:auto;align-self:initial;margin:2px 0 0}
.platform-primary-actions>button{min-height:46px}
.platform-more-actions>summary{min-width:46px;min-height:46px}
.platform-scope-note{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2px 14px;padding:14px 18px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:12px;background:color-mix(in srgb,var(--surface-raised) 60%,var(--surface))}
.platform-scope-note strong{font-size:.86rem}
.platform-scope-note p{grid-column:2;max-width:unset;font-size:.84rem;line-height:1.45}
.platform-health{gap:12px;padding:2px 0}
.platform-health .platform-section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:0}
.platform-health .platform-section-heading>div{display:grid;gap:4px}
.platform-health .platform-section-heading .eyebrow,.platform-health .platform-section-heading h2{margin:0}
.platform-health .platform-section-heading .eyebrow{font-size:.72rem}
.platform-health .platform-section-heading h2{font-size:1.08rem}
.platform-health-row{gap:10px;border:0}
.platform-health-row>span,.platform-health-row>span:first-child,.platform-health-row>span:last-child{min-height:78px;gap:8px;padding:13px 14px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}
.platform-health-row small{font-size:.74rem;line-height:1.35}
.platform-health-row strong{font-size:.83rem}
.platform-health-summary{padding-left:2px;font-size:.82rem}
.platform-error-detail summary{min-height:44px;display:flex;align-items:center}
.platform-connect-methods{gap:16px;padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.platform-connect-heading h3{font-size:1.04rem}
.platform-connect-heading p{color:var(--muted);font-size:.85rem;line-height:1.45}
.platform-advanced,.platform-whatsapp-log{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:var(--surface)}
.platform-advanced>summary,.platform-whatsapp-log>summary{min-height:56px;padding:10px 16px;font-size:.9rem}
.platform-advanced>summary:hover,.platform-whatsapp-log>summary:hover{background:color-mix(in srgb,var(--surface-raised) 58%,var(--surface))}
.platform-advanced[open]>summary,.platform-whatsapp-log[open]>summary{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface-raised) 58%,var(--surface))}
.platform-advanced>.platform-section-help{margin:16px 18px 18px;font-size:.84rem;line-height:1.5}
.platform-whatsapp-form{padding:0 18px 18px;gap:17px 22px}
.platform-whatsapp-log ol{padding:0 16px 10px}
.platform-whatsapp-log>p{padding:14px 16px 16px}
.platform-whatsapp-log li{grid-template-columns:64px minmax(0,1fr);gap:4px 14px;padding:13px 2px}
.platform-whatsapp-log li span{line-height:1.4}
.platform-advanced>summary:focus-visible,.platform-whatsapp-log>summary:focus-visible,.platform-connect-methods :focus-visible{outline:2px solid var(--focus);outline-offset:-3px}
.platform-connection-card :focus-visible,.platform-scope-note :focus-visible{outline:2px solid var(--focus);outline-offset:3px}
@media(max-width:760px){
  .master-settings-page.platform-whatsapp-page{gap:17px}
  .platform-connection-card,.platform-connection-card.is-disconnected,.platform-connection-card.is-neutral{grid-template-columns:minmax(0,1fr);gap:14px;padding:22px 20px 22px 23px}
  .platform-connection-card.is-disconnected .platform-primary-actions{grid-column:1;grid-row:auto}
  .platform-health-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .platform-health-row>span,.platform-health-row>span:first-child,.platform-health-row>span:last-child{min-height:72px;padding:12px}
  .platform-connect-methods{padding:17px}
}
@media(max-width:520px){
  .platform-page-heading h1{font-size:1.8rem}
  .platform-card-topline{align-items:center;flex-direction:row}
  .platform-main-number,.platform-connection-card.is-disconnected .platform-main-number{font-size:1.4rem}
  .platform-purpose-list{gap:6px}
  .platform-purpose-list span{padding:5px 8px}
  .platform-primary-actions{width:100%}
  .platform-primary-actions>button{min-height:48px}
  .platform-health .platform-section-heading{align-items:flex-start;flex-direction:column;gap:4px}
  .platform-health-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .platform-health-row>span,.platform-health-row>span:first-child,.platform-health-row>span:last-child{min-height:76px;padding:10px}
  .platform-scope-note{grid-template-columns:minmax(0,1fr);gap:4px;padding:13px 14px}
  .platform-scope-note p{grid-column:1}
  .platform-whatsapp-form{padding-inline:14px}
  .platform-advanced>.platform-section-help{margin-inline:14px}
  .platform-advanced>summary,.platform-whatsapp-log>summary{padding-inline:14px}
}
@media(max-width:360px){
  .platform-card-topline{align-items:flex-start;flex-direction:column-reverse}
  .platform-health-row{grid-template-columns:minmax(0,1fr)}
  .platform-health-row>span,.platform-health-row>span:first-child,.platform-health-row>span:last-child{min-height:62px}
}
@media(prefers-reduced-motion:reduce){
  .platform-advanced>summary::after,.platform-whatsapp-log>summary::after{transition:none}
}

.corte-page{display:grid;gap:22px;max-width:1180px;margin:0 auto}.corte-page .page-intro{max-width:680px;color:var(--muted)}.corte-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line)}.corte-tabs button{min-height:44px;padding:0 18px}.corte-section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:4px 0 16px}.corte-section-heading h2{margin:0}.corte-section-heading p{margin:6px 0 0;color:var(--muted)}.corte-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px}.corte-plan-card,.corte-subscription-card{padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.04)}.corte-plan-card header,.corte-subscription-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.corte-plan-card h2,.corte-subscription-card h3{margin:0;font-size:1.1rem}.corte-plan-card header p,.corte-subscription-card header p{margin:5px 0 0;color:var(--muted)}.corte-plan-card dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px 0;margin:14px 0;border-block:1px solid var(--line)}.corte-plan-card dt{font-size:.75rem;color:var(--muted)}.corte-plan-card dd{margin:4px 0 0;font-weight:600}.corte-professionals{color:var(--muted);font-size:.88rem}.corte-plan-card footer,.corte-subscription-card footer{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.corte-status{display:inline-flex;align-items:center;min-height:28px;padding:3px 10px;border-radius:999px;background:var(--bg-soft);font-size:.78rem;font-weight:650;white-space:nowrap}.corte-status.active{color:#17663c;background:#e7f5ec}.corte-status.inactive,.corte-status.cancelled,.corte-status.expired{color:#715b5b;background:#f2eeee}.corte-status.pending_payment{color:#805500;background:#fff3d5}.corte-status.upcoming{color:#31527e;background:#edf3fc}.corte-subscription-list{display:grid;gap:14px}.corte-period{padding:10px 0;margin:0;color:var(--muted)}.corte-period-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.corte-period-row span:first-child{flex:1}.corte-detail{margin-top:18px;padding:16px;border-radius:10px;background:var(--bg-soft)}.corte-detail h4{margin:12px 0 6px}.corte-detail ul{padding-left:20px}.corte-modal{width:min(760px,calc(100vw - 24px));max-height:calc(100vh - 32px);overflow:auto}.corte-modal>header{display:flex;justify-content:space-between;align-items:center;gap:14px}.corte-modal>header h2{margin:0}.corte-form{display:grid;gap:16px;padding-top:16px}.corte-form label{display:grid;gap:6px}.corte-form small{color:var(--muted)}.corte-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.corte-person-row{display:grid;grid-template-columns:minmax(150px,1.3fr) minmax(130px,1fr) minmax(110px,.7fr);align-items:end;gap:12px;padding:12px;margin:8px 0;border:1px solid var(--line);border-radius:10px}.corte-person-row .corte-person-check{display:flex;align-items:center;gap:9px;min-height:44px}.corte-person-check input{width:18px;height:18px}.corte-form footer{display:flex;justify-content:flex-end;gap:10px;padding-top:14px;border-top:1px solid var(--line)}.corte-form [role=alert]{color:var(--danger)}.corte-page button:focus-visible,.corte-page input:focus-visible,.corte-page select:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
@media(max-width:700px){.corte-page{gap:16px}.corte-section-heading{align-items:stretch;flex-direction:column}.corte-plan-card,.corte-subscription-card{padding:16px}.corte-plan-card dl{grid-template-columns:1fr 1fr}.corte-period-row{align-items:flex-start;flex-wrap:wrap}.corte-period-row span:first-child{flex-basis:100%}.corte-person-row{grid-template-columns:1fr 1fr}.corte-person-row .corte-person-check{grid-column:1/-1}.corte-form footer{flex-wrap:wrap}.corte-form footer button{flex:1}.corte-modal{padding:20px!important}}

/* Corte Ilimitado: barber-inspired dashboard surface, with hierarchy built for quick scanning. */
.corte-page{gap:26px}
.corte-hero{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:176px;overflow:hidden;padding:30px 36px;border-radius:18px;background:#171717;color:#fff}
.corte-hero:after{position:absolute;right:10%;bottom:-122px;width:310px;height:210px;border:1px solid rgba(206,170,111,.28);border-radius:50%;content:"";transform:rotate(-28deg)}
.corte-hero .eyebrow{margin:0 0 10px;color:#d0ad76;font-size:.72rem;font-weight:750;letter-spacing:.14em}
.corte-hero h1{margin:0;font-size:clamp(1.8rem,3vw,2.5rem);letter-spacing:-.035em}
.corte-hero .page-intro{margin:9px 0 0;color:#c4c2be}
.corte-hero-mark{position:relative;z-index:1;display:grid;place-items:center;width:86px;height:86px;border:1px solid rgba(208,173,118,.55);border-radius:50%;color:#d0ad76;font-family:Georgia,serif;font-size:1.25rem;letter-spacing:.08em}
.corte-hero-mark span{position:absolute;right:-5px;bottom:0;display:grid;place-items:center;width:30px;height:30px;border:3px solid #171717;border-radius:50%;background:#d0ad76;color:#171717;font-family:system-ui,sans-serif;font-size:.85rem}
.corte-tabs{gap:22px}
.corte-tabs button{display:inline-flex;align-items:center;gap:8px;padding-inline:4px;font-size:.94rem}
.corte-tabs button span{display:inline-grid;place-items:center;min-width:23px;height:23px;padding:0 6px;border-radius:99px;background:var(--bg-soft);color:var(--muted);font-size:.75rem;font-weight:650}
.corte-tabs button.active span{background:#ece5d9;color:#5c4829}
.corte-section-heading{margin:0 0 18px}
.corte-section-heading h2{font-size:1.35rem;letter-spacing:-.02em}
.corte-plan-grid,.corte-subscription-list{gap:18px}
.corte-plan-card,.corte-subscription-card{padding:22px;border-radius:16px;box-shadow:0 3px 14px rgba(20,18,15,.045);transition:box-shadow .18s ease,transform .18s ease}
.corte-plan-card:hover,.corte-subscription-card:hover{box-shadow:0 8px 24px rgba(20,18,15,.09);transform:translateY(-1px)}
.corte-plan-card h2,.corte-subscription-card h3{font-size:1.16rem;letter-spacing:-.015em}
.corte-plan-card dl{margin:18px 0 14px;padding:16px 0}
.corte-plan-card dt,.corte-subscription-summary span{font-size:.78rem;letter-spacing:.01em}
.corte-plan-card dd{font-size:.95rem}
.corte-professionals{line-height:1.65}
.corte-status{border:1px solid transparent;font-size:.76rem}
.corte-status.active{border-color:#cce7d4;background:#edf8f0;color:#185c38}
.corte-status.inactive,.corte-status.cancelled,.corte-status.expired{border-color:#e7e1de;background:#f5f3f2;color:#625a57}
.corte-status.pending_payment{border-color:#f0dfb8;background:#fff8e8;color:#765000}
.corte-status.upcoming{border-color:#d8e2ef;background:#f1f6fb;color:#31527e}
.corte-subscription-summary{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(120px,.7fr);gap:16px;padding:14px 0;margin:0 0 10px;border-bottom:1px solid var(--line)}
.corte-subscription-summary>div{display:grid;gap:5px}.corte-subscription-summary span{color:var(--muted)}.corte-subscription-summary strong{font-size:.91rem;font-weight:650}
.corte-periods h4{display:flex;align-items:center;gap:8px;margin:14px 0 5px;font-size:.86rem}
.corte-periods h4 span{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:99px;background:var(--bg-soft);color:var(--muted);font-size:.7rem}
.corte-period-row{min-height:46px;padding:9px 0}
.corte-payment-state{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:.83rem}
.corte-payment-state i{width:8px;height:8px;border-radius:50%;background:#b98223}
.corte-payment-state.paid i{background:#378154}
.corte-subscription-card footer{padding-top:14px;border-top:1px solid var(--line)}
.corte-subscription-card footer button[aria-expanded=true]{border-color:#b99b68;color:#674e25}
.corte-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.corte-metrics>div{display:grid;gap:7px;padding:15px 17px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}
.corte-metrics span{color:var(--muted);font-size:.79rem}
.corte-metrics strong{font-size:1.55rem;line-height:1;font-variant-numeric:tabular-nums}
.corte-search{display:grid;gap:7px;max-width:440px;font-size:.82rem;font-weight:600}
.corte-search input{width:100%;min-height:44px;padding:0 13px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text)}
.corte-search input::placeholder{color:var(--muted)}
.corte-empty{display:grid;justify-items:center;gap:8px;min-height:210px;align-content:center;padding:28px;border:1px dashed var(--line);border-radius:16px;background:var(--surface);text-align:center}
.corte-empty>span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#f2ede5;color:#72592f;font-size:1.35rem}
.corte-empty h3,.corte-empty p{margin:0}.corte-empty h3{font-size:1.02rem}.corte-empty p{max-width:430px;color:var(--muted);line-height:1.5}
.corte-empty button{margin-top:8px}
.corte-detail{padding:18px;border:1px solid var(--line);background:var(--bg-soft);line-height:1.6}
.corte-detail h4:first-child{margin-top:0}
.corte-page :is(button,input,select):focus-visible{outline:3px solid color-mix(in srgb,var(--focus) 70%,white);outline-offset:2px}
@media(max-width:700px){.corte-page{gap:18px}.corte-hero{min-height:154px;padding:24px 20px}.corte-hero-mark{width:62px;height:62px;font-size:1rem}.corte-hero-mark span{width:25px;height:25px}.corte-tabs{gap:18px}.corte-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.corte-metrics>div{padding:13px}.corte-subscription-summary{grid-template-columns:1fr}.corte-period-row{gap:10px}.corte-period-row .secondary-button{width:100%}.corte-plan-card:hover,.corte-subscription-card:hover{transform:none}}
@media(max-width:380px){.corte-hero-mark{display:none}.corte-tabs{gap:12px}.corte-tabs button{font-size:.87rem}.corte-metrics span{font-size:.74rem}}
@media(prefers-reduced-motion:reduce){.corte-plan-card,.corte-subscription-card{transition:none}.corte-plan-card:hover,.corte-subscription-card:hover{transform:none}}

/* Corte Ilimitado modal: one focused task, with an explicit section order and persistent actions. */
.corte-modal{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(100%,760px);max-height:min(90dvh,840px);padding:0;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:var(--modal-bg)}
.corte-modal>.corte-dialog-heading{position:relative;top:auto;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:26px 30px 20px;border-bottom:1px solid var(--line);background:var(--modal-bg)}
.corte-dialog-heading>div{min-width:0}.corte-dialog-heading .eyebrow{margin:0 0 7px;color:#927344;font-size:.68rem;font-weight:800;letter-spacing:.12em}
.corte-dialog-heading h2{margin:0;font-size:1.4rem;letter-spacing:-.025em}.corte-dialog-heading p:last-child{margin:7px 0 0;color:var(--muted);line-height:1.45}
.corte-dialog-heading .modal-close{flex:0 0 44px;width:44px;height:44px;min-height:44px;border:1px solid var(--line);border-radius:50%;background:var(--surface);font-size:1.35rem}
.corte-modal .corte-form{gap:0;min-height:0;padding:0;overflow:auto;overscroll-behavior:contain}
.corte-modal-section{display:grid;gap:16px;padding:22px 30px;border-bottom:1px solid var(--line)}
.corte-modal-section-heading{display:flex;align-items:flex-start;gap:12px}.corte-modal-section-heading>span{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:9px;background:#f1ece3;color:#70572e;font-size:.72rem;font-weight:750;font-variant-numeric:tabular-nums}
.corte-modal-section-heading h3{margin:1px 0 3px;font-size:.98rem}.corte-modal-section-heading p{margin:0;color:var(--muted);font-size:.83rem;line-height:1.4}
.corte-modal .corte-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 18px}
.corte-modal .corte-fields.corte-booking-rules{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.corte-booking-rules label{min-width:0}.corte-booking-rules label>span{min-height:2.5em;line-height:1.25}.corte-booking-rules label>input{min-width:0}.corte-booking-rules label>small{min-height:1.4em}
.corte-modal .corte-fields label,.corte-modal .corte-form>label{align-content:start;gap:7px;margin:0;color:var(--text);font-size:.85rem;font-weight:650}
.corte-modal .corte-fields input,.corte-modal .corte-fields select,.corte-modal .corte-form>label input,.corte-modal .corte-form>label select{box-sizing:border-box;width:100%;min-height:46px;padding:0 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;font-weight:450}
.corte-modal .corte-fields input:focus,.corte-modal .corte-fields select:focus,.corte-modal .corte-form>label input:focus,.corte-modal .corte-form>label select:focus{border-color:var(--focus);outline:3px solid color-mix(in srgb,var(--focus) 22%,transparent);outline-offset:1px}
.corte-modal .corte-fields small,.corte-modal .corte-form>label small{color:var(--muted);font-size:.77rem;font-weight:400;line-height:1.4}
.corte-field-error{display:block;min-height:1.1em;color:var(--danger)!important;font-size:.77rem;font-weight:500!important}.corte-field-error:empty{min-height:0}
.corte-modal :is(input,select)[aria-invalid=true]{border-color:var(--danger)!important;outline-color:color-mix(in srgb,var(--danger) 28%,transparent)!important}
.corte-customer-picker{position:relative;display:grid;gap:7px}.corte-customer-picker>label{font-size:.85rem;font-weight:650}.corte-customer-input{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.corte-customer-input input{box-sizing:border-box;width:100%;min-height:46px;padding:0 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--text);font:inherit}.corte-customer-input button{min-height:46px;margin:0;padding:0 14px}.corte-selected-customer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border:1px solid #cce7d4;border-radius:10px;background:#edf8f0;color:#185c38}.corte-selected-customer>span:first-child{display:grid;gap:2px}.corte-selected-customer strong{font-size:.86rem}.corte-selected-customer small{color:#397456!important}.corte-customer-results{display:grid;max-height:210px;overflow:auto;border:1px solid var(--line-strong);border-radius:11px;background:var(--surface);box-shadow:0 12px 28px rgba(20,18,15,.12)}.corte-customer-results button{display:grid;gap:3px;width:100%;min-height:52px;padding:9px 12px;border:0;border-radius:0;background:transparent;color:var(--text);text-align:left}.corte-customer-results button+button{border-top:1px solid var(--line)}.corte-customer-results button:is(:hover,[aria-selected=true]){background:var(--bg-soft)}.corte-customer-results strong{font-size:.86rem}.corte-customer-results span{color:var(--muted);font-size:.76rem}
.corte-field-wide{grid-column:1/-1}.corte-field-unit{color:var(--muted);font-size:.77rem;font-weight:450}
.corte-professional-list{display:grid;gap:9px;margin:0;padding:0;border:0}
.corte-professional-list .corte-person-row{grid-template-columns:minmax(0,1fr) minmax(145px,.8fr) minmax(120px,.65fr);gap:14px;align-items:center;margin:0;padding:14px;border-color:var(--line);border-radius:12px;background:var(--surface)}
.corte-professional-list .corte-person-check{min-height:44px;font-size:.88rem;font-weight:650}.corte-professional-list .corte-person-check input{width:20px;height:20px;accent-color:#80633a}
.corte-professional-list .corte-person-row label:not(.corte-person-check){gap:6px;color:var(--muted);font-size:.75rem;font-weight:600}
.corte-professional-list .corte-person-row select,.corte-professional-list .corte-person-row input:not([type=checkbox]){width:100%;min-height:42px;padding:0 10px;border:1px solid var(--line-strong);border-radius:9px;background:var(--surface);color:var(--text);font:inherit;font-size:.85rem}
.corte-modal-hint{margin:0;color:var(--muted);font-size:.85rem;line-height:1.5}
.corte-modal .corte-form>[role=alert]{min-height:0;margin:0;padding:0 30px;color:var(--danger);font-size:.86rem}.corte-modal .corte-form>[role=alert]:not(:empty){padding-top:14px}
.corte-modal .corte-form>footer{position:sticky;bottom:0;z-index:2;display:flex;justify-content:flex-end;gap:10px;margin:0;padding:16px 30px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--modal-bg)}
.corte-modal .corte-form>footer button{width:auto;min-width:130px;min-height:46px;margin:0;border-radius:10px}
.corte-modal .corte-form>footer button[type=submit]{background:#26231f;color:#fff}
.corte-modal .corte-form>footer button[type=submit]:hover{background:#41382b}
.corte-modal .corte-form>footer button:disabled{cursor:wait;opacity:.65}
.corte-discard-prompt{position:sticky;bottom:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 30px;border-top:1px solid #e4d4b5;background:#fff9ed;box-shadow:0 -8px 24px rgba(0,0,0,.08)}
.corte-discard-prompt p{display:grid;gap:3px;margin:0;font-size:.86rem}.corte-discard-prompt p span{color:var(--muted);font-size:.78rem}.corte-discard-prompt>div{display:flex;gap:8px}.corte-discard-prompt button{min-height:40px;padding:0 12px}.corte-discard-action{border:1px solid #8b492f;border-radius:9px;background:#8b492f;color:#fff}
.corte-modal :is(button,input,select):focus-visible{outline:3px solid color-mix(in srgb,var(--focus) 65%,white);outline-offset:2px}
@media(max-width:700px){.corte-modal{width:100%;max-height:calc(100dvh - 12px);align-self:end;border-radius:20px 20px 12px 12px}.modal-backdrop:has(.corte-modal){align-items:end;padding:6px}.corte-modal>.corte-dialog-heading{padding:22px 20px 17px}.corte-modal-section{gap:14px;padding:19px 20px}.corte-modal .corte-fields,.corte-modal .corte-fields.corte-booking-rules{grid-template-columns:1fr;gap:13px}.corte-modal .corte-fields .corte-field-wide{grid-column:auto}.corte-customer-input{grid-template-columns:1fr}.corte-customer-input button{justify-self:start}.corte-customer-results{max-height:168px}.corte-professional-list .corte-person-row{grid-template-columns:minmax(0,1fr) minmax(115px,.8fr);gap:10px;padding:12px}.corte-professional-list .corte-person-check{grid-column:1/-1}.corte-modal .corte-form>footer{padding:13px 20px calc(13px + env(safe-area-inset-bottom))}.corte-modal .corte-form>footer button{flex:1;min-width:0}.corte-modal .corte-form>[role=alert]{padding-right:20px;padding-left:20px}.corte-discard-prompt{align-items:stretch;flex-direction:column;padding:14px 20px calc(14px + env(safe-area-inset-bottom))}.corte-discard-prompt>div{display:grid;grid-template-columns:1fr 1fr}.corte-discard-prompt button{padding:0 8px}}
@media(max-width:390px){.corte-professional-list .corte-person-row{grid-template-columns:1fr}.corte-professional-list .corte-person-check{grid-column:auto}.corte-dialog-heading h2{font-size:1.23rem}}
@media(prefers-reduced-motion:reduce){.corte-modal *{scroll-behavior:auto}}

.corte-modal .corte-decline-form textarea{width:100%;min-height:110px;padding:12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;resize:vertical}
.corte-request-list{display:grid;gap:14px}.corte-request-card{display:grid;gap:15px;padding:20px;border:1px solid var(--line);border-radius:15px;background:var(--surface)}
.corte-request-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.corte-request-card h3{margin:0;font-size:1.02rem}.corte-request-card header p{margin:5px 0 0;color:var(--muted);font-size:.83rem}
.corte-request-terms{display:grid;gap:5px;padding:13px 15px;border-radius:11px;background:var(--bg-soft);font-size:.83rem;line-height:1.45}.corte-request-terms strong{margin-bottom:2px}.corte-request-terms span{color:var(--muted)}
.corte-request-card footer{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}.corte-request-next{margin:0;color:var(--muted);font-size:.84rem}
.corte-status.declined{border-color:#edd3cb;background:#fbefec;color:#793b2a}
@media(max-width:600px){.corte-request-card{padding:16px}.corte-request-card header{align-items:flex-start;flex-direction:column}.corte-request-card footer{display:grid;grid-template-columns:1fr 1fr}.corte-request-card footer button{min-height:44px;padding:0 8px}}

.public-corte-section{padding-top:clamp(56px,8vw,112px);padding-bottom:clamp(56px,8vw,112px)}
.public-corte-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),380px));gap:18px;margin-top:28px}
.public-corte-plan{display:grid;gap:13px;padding:24px;border:1px solid color-mix(in srgb,var(--public-text,#24211d) 15%,transparent);border-radius:18px;background:var(--public-surface,#fff);color:var(--public-text,#24211d);box-shadow:0 10px 30px rgba(0,0,0,.06)}
.public-corte-plan-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;color:var(--public-muted,#777)}.public-corte-plan-top>span{padding:6px 9px;border-radius:99px;background:color-mix(in srgb,var(--public-accent,#a87f46) 13%,transparent);color:var(--public-accent,#8b6533);font-size:.72rem;font-weight:700}
.public-corte-plan-top>strong{color:var(--public-text,#24211d);font-size:1.45rem;font-variant-numeric:tabular-nums}.public-corte-plan-top>strong small{font-size:.72rem;font-weight:500;color:var(--public-muted,#777)}
.public-corte-plan h3{margin:1px 0 0;font-size:1.22rem}.public-corte-service{margin:-10px 0 0;color:var(--public-muted,#777)}
.public-corte-plan dl{display:grid;gap:0;margin:0;border-top:1px solid color-mix(in srgb,var(--public-text,#24211d) 11%,transparent)}.public-corte-plan dl>div{display:grid;grid-template-columns:minmax(120px,.85fr) minmax(0,1.15fr);gap:12px;padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--public-text,#24211d) 9%,transparent)}
.public-corte-plan dt{color:var(--public-muted,#777);font-size:.8rem}.public-corte-plan dd{margin:0;text-align:right;font-size:.82rem;font-weight:600}
.public-corte-plan-note{margin:0;color:var(--public-muted,#777);font-size:.8rem;line-height:1.45}
.public-corte-plan>button,.public-plan-request-success>button{min-height:48px;border:0;border-radius:11px;background:var(--public-accent,#27231f);color:var(--public-accent-contrast,#fff);font:inherit;font-weight:700;cursor:pointer}
.public-plan-request-open{overflow:hidden}.public-plan-request-backdrop{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:20px;background:rgba(12,12,12,.62);backdrop-filter:blur(5px)}
.public-plan-request{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(100%,660px);max-height:min(92dvh,900px);overflow:hidden;border:1px solid color-mix(in srgb,var(--public-text,#24211d) 12%,transparent);border-radius:20px;background:var(--public-surface,#fff);color:var(--public-text,#24211d);box-shadow:0 28px 90px rgba(0,0,0,.26)}
.public-plan-request>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:24px 28px 18px;border-bottom:1px solid color-mix(in srgb,var(--public-text,#24211d) 10%,transparent)}
.public-plan-request>header .eyebrow{margin:0 0 7px;color:var(--public-accent,#8b6533);font-size:.67rem;font-weight:800;letter-spacing:.12em}.public-plan-request>header h2{margin:0;font-size:1.35rem}.public-plan-request>header p:last-child{margin:7px 0 0;color:var(--public-muted,#777);font-size:.88rem;line-height:1.45}
.public-plan-request-close{flex:0 0 42px;width:42px;height:42px;border:1px solid color-mix(in srgb,var(--public-text,#24211d) 17%,transparent);border-radius:50%;background:transparent;color:inherit;font-size:1.45rem;cursor:pointer}
.public-plan-request-content{overflow:auto;padding:22px 28px 28px}.public-plan-request-price{display:flex;justify-content:space-between;gap:18px;padding:17px;border-radius:13px;background:color-mix(in srgb,var(--public-accent,#a87f46) 9%,var(--public-surface,#fff))}.public-plan-request-price>div{display:grid;gap:5px}.public-plan-request-price>div>span{font-size:.86rem;font-weight:650}.public-plan-request-price strong{font-size:1.45rem;font-variant-numeric:tabular-nums}.public-plan-request-price strong small{font-size:.78rem;font-weight:500}.public-plan-request-price p{max-width:210px;margin:0;color:var(--public-muted,#777);font-size:.78rem;line-height:1.45}
.public-plan-request-content>h3{margin:22px 0 9px;font-size:.94rem}.public-plan-request-rules{display:grid;gap:0;margin:0}.public-plan-request-rules>div{display:grid;grid-template-columns:minmax(140px,.85fr) minmax(0,1.15fr);gap:12px;padding:9px 0;border-bottom:1px solid color-mix(in srgb,var(--public-text,#24211d) 9%,transparent)}.public-plan-request-rules dt{color:var(--public-muted,#777);font-size:.81rem}.public-plan-request-rules dd{margin:0;text-align:right;font-size:.82rem;font-weight:600}
.public-plan-request-identity{margin-top:20px}.public-plan-request-identity .public-identity-options{margin-bottom:15px}.public-plan-request-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.public-plan-request-form>label{display:grid;align-content:start;gap:6px;font-size:.8rem;font-weight:650}.public-plan-request-form>label input:not([type=checkbox]){box-sizing:border-box;width:100%;min-height:44px;padding:0 11px;border:1px solid color-mix(in srgb,var(--public-text,#24211d) 22%,transparent);border-radius:9px;background:var(--public-surface,#fff);color:var(--public-text,#24211d);font:inherit;font-weight:450}
.public-plan-request-consent{grid-column:1/-1;display:flex!important;align-items:flex-start;gap:10px!important;padding:12px;border:1px solid color-mix(in srgb,var(--public-text,#24211d) 13%,transparent);border-radius:10px;font-weight:500!important;line-height:1.45}.public-plan-request-consent input{flex:0 0 19px;width:19px;height:19px;margin:1px 0 0;accent-color:var(--public-accent,#70532c)}
.public-plan-request-error{grid-column:1/-1;min-height:0;margin:0;color:#a33124;font-size:.84rem}.public-plan-request-form>button,.public-plan-request-success>button{grid-column:1/-1;min-height:48px;border:0;border-radius:10px;background:var(--public-accent,#27231f);color:var(--public-accent-contrast,#fff);font:inherit;font-weight:700;cursor:pointer}.public-plan-request-form>button:disabled{cursor:wait;opacity:.65}
.public-plan-request-success{display:grid;justify-items:center;align-content:center;gap:10px;overflow:auto;padding:35px;text-align:center}.public-plan-request-success>span{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#eaf5ed;color:#23663a;font-size:1.5rem}.public-plan-request-success h3,.public-plan-request-success p{margin:0}.public-plan-request-success p{max-width:430px;color:var(--public-muted,#777);line-height:1.5}.public-plan-request-success>button{width:min(100%,280px);margin-top:10px;padding:0 20px}
.public-plan-request :is(button,input):focus-visible{outline:3px solid color-mix(in srgb,var(--public-accent,#9a743e) 55%,white);outline-offset:2px}
@media(max-width:700px){.public-corte-plan-grid{grid-template-columns:1fr}.public-plan-request-backdrop{align-items:end;padding:6px}.public-plan-request{width:100%;max-height:calc(100dvh - 12px);border-radius:20px 20px 12px 12px}.public-plan-request>header{padding:20px 19px 15px}.public-plan-request-content{padding:18px 19px calc(22px + env(safe-area-inset-bottom))}.public-plan-request-form{grid-template-columns:1fr;gap:11px}.public-plan-request-form .public-plan-request-consent,.public-plan-request-form .public-plan-request-error,.public-plan-request-form>button{grid-column:auto}.public-plan-request-price{flex-direction:column;gap:9px}.public-plan-request-price p{max-width:none}.public-plan-request-rules>div{grid-template-columns:minmax(120px,.9fr) minmax(0,1.1fr)}}
@media(max-width:380px){.public-plan-request>header h2{font-size:1.18rem}.public-plan-request-rules dt,.public-plan-request-rules dd{font-size:.76rem}.public-corte-plan dl>div{grid-template-columns:minmax(100px,.8fr) minmax(0,1.2fr)}}
@media(prefers-reduced-motion:reduce){.public-plan-request-backdrop{scroll-behavior:auto}}

/* Corte Ilimitado follows the same surfaces, controls, and interaction states as Combos. */
.corte-page{gap:20px;max-width:none;width:100%}
.corte-page .corte-hero{min-height:0;padding:0;overflow:visible;border-radius:0;background:transparent;color:var(--text)}
.corte-page .corte-hero:after,.corte-page .corte-hero-mark{display:none}
.corte-page .corte-hero .eyebrow{margin:0 0 7px;color:var(--muted);font-size:.72rem;letter-spacing:.06em}
.corte-page .corte-hero h1{font-size:clamp(1.65rem,3vw,2rem);letter-spacing:-.025em}
.corte-page .corte-hero .page-intro{margin:7px 0 0;color:var(--muted);line-height:1.5}
.corte-page .corte-tabs{gap:5px;margin:0;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft);overflow-x:auto;scrollbar-width:none}
.corte-page .corte-tabs button{min-height:44px;padding:0 15px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);transition:background var(--ease-standard),border-color var(--ease-standard),color var(--ease-standard)}
.corte-page .corte-tabs button:hover{background:var(--surface-raised);color:var(--text)}
.corte-page .corte-tabs button.active{border-color:var(--accent);background:var(--surface);color:var(--text);box-shadow:0 1px 5px rgba(0,0,0,.1)}
.corte-page .corte-tabs button span,.corte-page .corte-tabs button.active span{background:var(--badge-soft);color:var(--text)}
.corte-page .corte-section-heading{margin:0 0 16px}
.corte-page .corte-section-heading h2{font-size:1.2rem;letter-spacing:-.015em}
.corte-page .corte-plan-grid,.corte-page .corte-subscription-list,.corte-page .corte-request-list{gap:14px}
.corte-page :is(.corte-plan-card,.corte-subscription-card,.corte-request-card,.corte-metrics>div){padding:20px;border-radius:15px;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.04);transition:border-color var(--ease-standard),box-shadow var(--ease-standard)}
.corte-page :is(.corte-plan-card,.corte-subscription-card,.corte-request-card,.corte-metrics>div):hover{border-color:var(--line-strong);box-shadow:0 4px 14px rgba(0,0,0,.08)}
.corte-page .corte-plan-card h2,.corte-page .corte-subscription-card h3{font-size:1.05rem;letter-spacing:-.015em}
.corte-page .corte-status.active{border-color:color-mix(in srgb,var(--success) 35%,var(--line));background:color-mix(in srgb,var(--success) 13%,var(--surface));color:var(--success)}
.corte-page .corte-status.inactive,.corte-page .corte-status.cancelled,.corte-page .corte-status.expired{border-color:var(--line);background:var(--bg-soft);color:var(--muted)}
.corte-page .corte-status.pending_payment{border-color:color-mix(in srgb,var(--warning) 38%,var(--line));background:color-mix(in srgb,var(--warning) 12%,var(--surface));color:var(--warning)}
.corte-page .corte-status.upcoming{border-color:color-mix(in srgb,var(--focus) 30%,var(--line));background:var(--surface-raised);color:var(--text)}
.corte-page .corte-status.declined{border-color:color-mix(in srgb,var(--danger) 35%,var(--line));background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger)}
.corte-page .corte-search input,.corte-modal .corte-fields input,.corte-modal .corte-fields select,.corte-modal .corte-form>label input,.corte-modal .corte-form>label select,.corte-modal .corte-customer-input input,.corte-modal .corte-professional-list .corte-person-row select,.corte-modal .corte-professional-list .corte-person-row input:not([type=checkbox]),.corte-modal .corte-decline-form textarea{border-color:var(--line);border-radius:9px;background:var(--bg-soft);color:var(--text);transition:border-color var(--ease-standard),background var(--ease-standard),box-shadow var(--ease-standard)}
.corte-page :is(input,select,textarea):hover:not(:disabled),.corte-modal :is(input,select,textarea):hover:not(:disabled){border-color:var(--line-strong)}
.corte-modal :is(input,select,textarea):focus{border-color:var(--focus);background:var(--input-focus-bg);outline:3px solid color-mix(in srgb,var(--focus) 22%,transparent);outline-offset:1px}
.corte-page button:not(.modal-close),.corte-modal button:not(.modal-close):not([role=option]){border-radius:9px;transition:background var(--ease-standard),border-color var(--ease-standard),color var(--ease-standard),box-shadow var(--ease-standard),transform var(--ease-standard)}
.corte-page button:not(:disabled):hover,.corte-modal button:not(:disabled):not(.modal-close):not([role=option]):hover{border-color:var(--accent);box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 14%,transparent);transform:translateY(-1px)}
.corte-page button:not(:disabled):active,.corte-modal button:not(:disabled):not(.modal-close):not([role=option]):active{transform:translateY(0) scale(.99)}
.corte-modal .corte-form>footer button[type=submit]{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}
.corte-modal .corte-form>footer button[type=submit]:hover{border-color:var(--accent-hover);background:var(--accent-hover)}
.corte-modal .corte-customer-results button:hover,.corte-modal .corte-customer-results button[aria-selected=true]{border-color:transparent;background:var(--surface-raised);box-shadow:none;transform:none}
.corte-modal .corte-selected-customer{border-color:color-mix(in srgb,var(--success) 35%,var(--line));background:color-mix(in srgb,var(--success) 13%,var(--surface));color:var(--text)}
.corte-modal .corte-selected-customer small{color:var(--muted)!important}
.corte-page .corte-empty>span,.corte-modal .corte-modal-section-heading>span{background:var(--badge-soft);color:var(--accent)}
.corte-modal .corte-dialog-heading .eyebrow{color:var(--muted)}
.corte-modal .corte-form>footer{border-color:var(--line)}
.corte-page :is(button,input,select,textarea):focus-visible,.corte-modal :is(button,input,select,textarea):focus-visible{outline:2px solid var(--focus);outline-offset:2px}
@media(max-width:700px){.corte-page{gap:16px}.corte-page .corte-plan-card,.corte-page .corte-subscription-card,.corte-page .corte-request-card{padding:16px}.corte-page .corte-tabs button{padding-inline:12px}.corte-page .corte-plan-card:hover,.corte-page .corte-subscription-card:hover,.corte-page .corte-request-card:hover{box-shadow:0 1px 3px rgba(0,0,0,.04)}}
@media(prefers-reduced-motion:reduce){.corte-page :is(button,input,select,textarea,.corte-plan-card,.corte-subscription-card,.corte-request-card),.corte-modal :is(button,input,select,textarea){transition:none}.corte-page button:not(:disabled):hover,.corte-page button:not(:disabled):active,.corte-modal button:not(:disabled):hover,.corte-modal button:not(:disabled):active{transform:none}}
.corte-service-list{min-width:0;margin:0;padding:13px;border:1px solid var(--line);border-radius:11px;background:var(--bg-soft)}
.corte-service-list legend{padding:0 5px;font-size:.85rem;font-weight:700}
.corte-service-list>p{margin:0 0 10px;color:var(--muted);font-size:.78rem}
.corte-service-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.corte-service-options label{display:flex!important;align-items:center;gap:10px;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);cursor:pointer;transition:border-color var(--ease-standard),background var(--ease-standard)}
.corte-service-options label:hover{border-color:var(--line-strong);background:var(--surface-raised)}
.corte-service-options input{flex:0 0 18px;width:18px;height:18px;margin:0;accent-color:var(--accent)}
.corte-service-options label>span{display:grid;gap:2px;min-width:0}.corte-service-options strong{font-size:.82rem}.corte-service-options small{color:var(--muted);font-size:.74rem}
.corte-service-list :focus-visible{outline:2px solid var(--focus);outline-offset:2px}
@media(max-width:700px){.corte-service-list{padding:12px}.corte-service-options{grid-template-columns:1fr}}

/* Customer home: a visit-led overview that follows the establishment theme. */
.customer-home{display:grid;gap:26px;max-width:1120px;margin:0 auto;padding:8px 0 40px}
.customer-home-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.86fr);align-items:center;gap:clamp(24px,5vw,64px);padding:clamp(24px,4vw,48px);border:1px solid var(--line);border-radius:22px;background:linear-gradient(125deg,color-mix(in srgb,var(--accent) 11%,var(--surface)) 0%,var(--surface) 72%);box-shadow:0 16px 40px color-mix(in srgb,var(--text) 7%,transparent)}
.customer-home-intro .eyebrow,.customer-home-section .eyebrow{margin:0 0 9px;color:var(--muted);font-size:.72rem;font-weight:750;letter-spacing:.12em}
.customer-home-intro h1{margin:0;font-size:clamp(2rem,4.4vw,3.35rem);line-height:1.06;letter-spacing:-.045em;overflow-wrap:anywhere}
.customer-home-intro>p:not(.eyebrow){max-width:46ch;margin:14px 0 22px;color:var(--muted);font-size:1rem;line-height:1.6}
.customer-home .customer-heading-actions{gap:10px}
.customer-home .customer-primary-link,.customer-home .customer-secondary-link{min-height:48px;padding:0 18px;border-radius:12px;transition:transform .18s ease,filter .18s ease,background-color .18s ease}
.customer-home .customer-primary-link:hover{filter:brightness(1.08);transform:translateY(-1px)}
.customer-home .customer-secondary-link{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--surface);color:var(--text);font-weight:650;text-decoration:none}
.customer-home .customer-secondary-link:hover{background:var(--surface-raised)}
.customer-next-visit{display:grid;grid-template-columns:84px minmax(0,1fr);align-items:center;gap:17px;padding:19px;border:1px solid var(--line);border-radius:17px;background:var(--surface);box-shadow:0 8px 24px color-mix(in srgb,var(--text) 6%,transparent)}
.customer-next-date{display:grid;place-content:center;min-height:88px;border-radius:13px;background:color-mix(in srgb,var(--accent) 15%,var(--surface));color:var(--text);text-align:center}
.customer-next-date span{font-size:.76rem;font-weight:750;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.customer-next-date strong{font-size:2rem;line-height:1.08;font-variant-numeric:tabular-nums}
.customer-next-details{display:grid;gap:5px;min-width:0}
.customer-next-label{color:var(--muted);font-size:.68rem;font-weight:750;letter-spacing:.12em}
.customer-next-details>strong{font-size:1.06rem;overflow-wrap:anywhere}
.customer-next-details>span:not(.customer-next-label){color:var(--muted);font-size:.84rem;line-height:1.45}
.customer-next-details .customer-next-time{color:var(--text)!important;font-weight:650}
.customer-next-empty{display:grid;align-content:center;justify-items:start;gap:8px;min-height:185px;padding:23px;border:1px dashed var(--line);border-radius:17px;background:color-mix(in srgb,var(--surface) 72%,transparent)}
.customer-next-empty>strong{font-size:1.2rem}.customer-next-empty>span:not(.customer-next-label){max-width:32ch;color:var(--muted);line-height:1.5}.customer-next-empty .customer-primary-link{margin-top:7px}
.customer-home-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0}
.customer-home-summary>div{min-height:100px;justify-content:center;gap:7px;padding:18px 21px;border-radius:15px;background:var(--surface)}
.customer-home-summary span{font-size:.84rem}.customer-home-summary strong{font-size:1.8rem;line-height:1;font-variant-numeric:tabular-nums}
.customer-home-section.dashboard-appointments{display:grid;gap:14px;margin:0;padding:22px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}
.customer-home-section .customer-section-heading{align-items:center;margin-bottom:2px}
.customer-home-section .customer-section-heading h2{font-size:1.25rem;letter-spacing:-.02em}
.customer-home-section .customer-section-heading a,.customer-agenda-empty a{color:var(--accent);font-weight:700;text-decoration:none}
.customer-home-section .customer-section-heading a:hover,.customer-agenda-empty a:hover{text-decoration:underline;text-underline-offset:3px}
.customer-home-section .customer-appointment{margin:0;border-radius:12px;background:var(--bg);padding:15px 17px}

.customer-booking { width: min(100%, 900px); margin-inline: auto; }
.customer-booking-heading { margin-bottom: 30px; }
.customer-booking-heading .eyebrow { margin: 0 0 8px; color: var(--accent); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.customer-booking-heading h1 { margin: 0 0 8px; }
.customer-booking-heading > p:last-child { max-width: 560px; margin: 0; color: var(--muted); line-height: 1.55; }
.customer-booking-step-count { display: flex; align-items: baseline; gap: 8px; margin-bottom: 8px; color: var(--muted); font-size: .8rem; }
.customer-booking-step-count strong { color: var(--text); font-size: .9rem; }
.customer-booking-progress { gap: 6px; padding-bottom: 18px; margin-bottom: 22px; }
.customer-booking-progress li button { min-height: 46px; border-radius: 8px; }
.customer-booking-progress li span { width: 28px; height: 28px; }
.customer-booking-progress li.active small { color: var(--text); font-weight: 750; }
.customer-booking-stage { min-height: 230px; }
.customer-booking .public-stage-heading { align-items: center; margin-bottom: 20px; }
.customer-booking .public-stage-heading h2 { font-size: clamp(1.2rem, 2vw, 1.45rem); }
.customer-booking .public-choice { border-radius: 10px; transition: transform .16s ease, border-color .16s ease, background .16s ease; }
.customer-booking .public-choice:hover:not(:disabled) { transform: translateY(-1px); }
.customer-booking :is(.public-choice, .public-time-grid button, .public-calendar-day, .public-date-options button):focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.customer-booking-summary { padding: 6px 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.customer-booking-summary > div { align-items: baseline; padding: 15px 0; }
.customer-booking-summary dt { font-size: .9rem; }
.customer-booking-summary dd { max-width: 65%; font-weight: 650; line-height: 1.45; }
.customer-booking .combo-payment-choice { margin: 14px 0 0; }
.customer-booking .combo-payment-choice select { min-height: 46px; }
.customer-booking-actions { margin-top: 24px; }
.customer-booking-actions :is(a, button) { min-height: 48px; border-radius: 9px; }
.customer-booking-actions button:disabled { cursor: wait; opacity: .65; }
@media (max-width: 700px) {
  .customer-booking-heading { margin-bottom: 24px; }
  .customer-booking-progress { grid-template-columns: repeat(6, minmax(32px, 1fr)); gap: 2px; padding-bottom: 14px; margin-bottom: 18px; }
  .customer-booking-progress li button { min-height: 42px; justify-content: center; padding: 0; }
  .customer-booking-progress li small { display: none; }
  .customer-booking-progress li.active small { display: block; position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
  .customer-booking-progress li span { width: 30px; height: 30px; }
  .customer-booking-stage { min-height: 260px; }
  .customer-booking .public-choice-grid { grid-template-columns: 1fr; }
  .customer-booking-summary { padding-inline: 14px; }
  .customer-booking-summary > div { gap: 5px; }
  .customer-booking-summary dd { max-width: 100%; text-align: left; }
  .customer-booking-actions { display: grid; grid-template-columns: 1fr; }
  .customer-booking-actions > * { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .customer-booking .public-choice { transition: none; } .customer-booking .public-choice:hover:not(:disabled) { transform: none; } }

.customer-appointments-page { max-width: 980px; margin-inline: auto; }
.customer-appointments-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.customer-appointments-heading .eyebrow { margin: 0 0 8px; color: var(--accent); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.customer-appointments-heading h1 { margin-bottom: 8px; }
.customer-appointments-heading p:last-child { max-width: 540px; margin: 0; color: var(--muted); line-height: 1.55; }
.customer-appointments-heading > .customer-primary-link { flex: 0 0 auto; }
.customer-appointment-tabs { gap: 8px; margin-bottom: 16px; }
.customer-appointment-tabs button { display: inline-flex; align-items: center; gap: 8px; }
.customer-appointment-tabs button span { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 5px; border-radius: 999px; background: var(--surface-raised); color: var(--muted); font-size: .72rem; font-variant-numeric: tabular-nums; }
.customer-appointment-tabs button.active span { color: var(--accent); }
.customer-appointment-card { display: grid; gap: 14px; margin: 0 0 10px; padding: 16px; border-radius: 10px; background: var(--surface); transition: border-color .16s ease, background .16s ease, transform .16s ease; }
.customer-appointment-card:hover { transform: translateY(-1px); border-color: var(--line-strong); background: var(--surface-raised); }
.customer-appointment-info { display: grid; grid-template-columns: minmax(124px, .65fr) minmax(0, 1.7fr) auto; align-items: center; gap: 16px; }
.customer-appointment-date { display: grid; gap: 4px; }
.customer-appointment-date strong { font-size: .95rem; }
.customer-appointment-date span { color: var(--accent); font-size: 1.1rem; font-weight: 750; font-variant-numeric: tabular-nums; }
.customer-appointment-copy { display: grid; min-width: 0; gap: 4px; }
.customer-appointment-copy > strong { color: var(--text); }
.customer-appointment-copy > span { overflow: hidden; color: var(--muted); font-size: .88rem; text-overflow: ellipsis; white-space: nowrap; }
.customer-appointment-status { justify-self: end; padding: 6px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: .76rem; font-weight: 700; white-space: nowrap; }
.customer-appointment-status.status-completed { border-color: color-mix(in srgb, var(--success) 48%, var(--line)); color: var(--success); background: color-mix(in srgb, var(--success) 9%, transparent); }
.customer-appointment-status.status-cancelled, .customer-appointment-status.status-no_show { border-color: color-mix(in srgb, var(--danger) 42%, var(--line)); color: var(--danger-soft-text); background: color-mix(in srgb, var(--danger) 8%, transparent); }
.customer-appointment-actions { justify-content: flex-end; }
.customer-appointments-empty { display: grid; justify-items: center; gap: 9px; padding: 38px 20px; border: 1px dashed var(--line-strong); border-radius: 12px; background: var(--surface); text-align: center; }
.customer-appointments-empty-mark { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 4px; border-radius: 50%; background: var(--surface-raised); color: var(--accent); font-size: 1.35rem; }
.customer-appointments-empty h2 { margin: 0; font-size: 1.05rem; }
.customer-appointments-empty p { max-width: 380px; margin: 0 0 8px; color: var(--muted); line-height: 1.5; }
.customer-appointments-page .appointment-review-form { width: 100%; margin-top: 4px; }
@media (max-width: 700px) {
  .customer-appointments-heading { align-items: stretch; flex-direction: column; gap: 16px; margin-bottom: 22px; }
  .customer-appointments-heading > .customer-primary-link { width: 100%; }
  .customer-appointment-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .customer-appointment-tabs button { flex: 1 0 auto; justify-content: center; }
  .customer-appointment-info { grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 12px; }
  .customer-appointment-date { grid-column: 1; grid-row: 1; }
  .customer-appointment-status { grid-column: 2; grid-row: 1; }
  .customer-appointment-copy { grid-column: 1 / -1; grid-row: 2; }
  .customer-appointment-copy > span { white-space: normal; }
  .customer-appointment-card .customer-appointment-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .customer-appointment-card .customer-appointment-actions > * { width: 100%; }
}
.customer-agenda-empty{display:flex;align-items:center;gap:13px;padding:15px 0 3px}
.customer-agenda-empty>span{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:50%;background:color-mix(in srgb,var(--accent) 13%,var(--surface));color:var(--accent);font-size:1.2rem}
.customer-agenda-empty p{flex:1;margin:0;color:var(--muted);line-height:1.5}
.customer-home .customer-place-list{margin-top:0}.customer-home .customer-place-list a{min-height:54px;align-items:center;border-radius:12px;background:var(--bg);transition:border-color .18s ease,transform .18s ease}.customer-home .customer-place-list a:hover{border-color:var(--accent);transform:translateY(-1px)}
.customer-home :is(a,button,select,textarea):focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.customer-home .review-form{border-radius:13px}
@media(max-width:760px){.customer-home{gap:17px;padding-top:0}.customer-home-hero{grid-template-columns:1fr;gap:22px;padding:24px 20px;border-radius:18px}.customer-home-intro h1{font-size:clamp(1.9rem,9vw,2.55rem)}.customer-home-summary>div{min-height:86px;padding:14px}.customer-home-section.dashboard-appointments{padding:18px 16px;border-radius:15px}.customer-agenda-empty{align-items:flex-start;flex-wrap:wrap}.customer-agenda-empty p{flex-basis:calc(100% - 56px)}.customer-agenda-empty a{margin-left:53px}}
@media(max-width:420px){.customer-home .customer-heading-actions{display:grid;grid-template-columns:1fr;width:100%}.customer-home .customer-heading-actions>*{width:100%}.customer-next-visit{grid-template-columns:68px minmax(0,1fr);gap:12px;padding:14px}.customer-next-date{min-height:76px}.customer-next-date strong{font-size:1.75rem}.customer-home-summary{gap:9px}.customer-home-summary>div{padding:12px}.customer-home-summary span{font-size:.76rem}.customer-home-section .customer-section-heading{align-items:flex-start;flex-direction:column}.customer-agenda-empty a{margin-left:0}}
@media(prefers-reduced-motion:reduce){.customer-home *{scroll-behavior:auto!important;transition:none!important}}

.customer-plans-redesign{max-width:940px;margin:0 auto;padding:8px 0 40px}
.customer-plans-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:24px}
.customer-plans-heading .eyebrow{margin:0 0 8px;color:var(--muted);font-size:.72rem;font-weight:750;letter-spacing:.12em}
.customer-plans-heading h1{margin:0;font-size:clamp(2rem,4vw,2.8rem);letter-spacing:-.04em;line-height:1.08}
.customer-plans-heading>div>p:last-child{margin:10px 0 0;color:var(--muted);line-height:1.55}
.customer-plans-redesign .customer-secondary-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 15px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--text);font-weight:650;text-decoration:none;white-space:nowrap;transition:background-color .18s ease,border-color .18s ease}
.customer-plans-redesign .customer-secondary-link:hover{border-color:var(--accent);background:var(--surface-raised)}
.customer-plan-card-redesign{gap:0;overflow:hidden;padding:0;border:1px solid var(--line);border-radius:19px;background:var(--surface);box-shadow:0 12px 34px color-mix(in srgb,var(--text) 7%,transparent)}
.customer-plan-card-redesign>header{align-items:center;gap:16px;padding:22px 24px;border-bottom:1px solid var(--line)}
.customer-plan-card-redesign>header .eyebrow{margin:0 0 5px;color:var(--muted);font-size:.69rem;font-weight:750;letter-spacing:.11em;overflow-wrap:anywhere}
.customer-plan-card-redesign>header h2{margin:0;font-size:clamp(1.25rem,2.5vw,1.65rem);letter-spacing:-.025em;overflow-wrap:anywhere}
.customer-plan-card-redesign .customer-plan-status{flex:none;max-width:48%;padding:7px 11px;border:1px solid transparent;border-radius:99px;font-size:.77rem;line-height:1.3;text-align:center}
.customer-plan-status-pending_approval,.customer-plan-status-pending_payment,.customer-plan-status-scheduled{border-color:#e8d5a5!important;background:#fff5d9!important;color:#654300!important}
.customer-plan-status-active{border-color:#b8dfc2!important;background:#e8f5eb!important;color:#185b2c!important}
.customer-plan-status-expired,.customer-plan-status-declined,.customer-plan-status-cancelled{border-color:#edc8c2!important;background:#f9e9e7!important;color:#772c25!important}
.customer-plan-overview{display:flex;align-items:baseline;gap:14px;padding:20px 24px 4px}
.customer-plan-price{display:flex;align-items:baseline;gap:7px;white-space:nowrap}
.customer-plan-price strong{font-size:clamp(1.5rem,3vw,2rem);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.customer-plan-price span{color:var(--muted);font-size:.83rem}
.customer-plan-overview>p{margin:0;color:var(--muted);line-height:1.5;overflow-wrap:anywhere}
.customer-plan-state-copy{margin:12px 24px 18px;color:var(--muted);font-size:.92rem;line-height:1.6}
.customer-plan-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 24px 18px}
.customer-plan-fact{display:grid;gap:5px;align-content:start;min-width:0;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.customer-plan-fact>span{color:var(--muted);font-size:.74rem;font-weight:650;letter-spacing:.02em}
.customer-plan-fact>strong{font-size:.9rem;line-height:1.4;overflow-wrap:anywhere}
.customer-plan-fact>small{color:var(--muted);font-size:.76rem;line-height:1.45}
.customer-plan-detail{margin:0 24px;padding:16px 0;border-top:1px solid var(--line)}
.customer-plan-detail h3{margin:0 0 10px;font-size:.96rem}
.customer-plan-detail ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 22px;margin:0;padding:0;list-style:none}
.customer-plan-detail li{display:grid;gap:3px;min-width:0}
.customer-plan-detail li span{color:var(--muted);font-size:.76rem}
.customer-plan-detail li strong{font-size:.84rem;line-height:1.45;overflow-wrap:anywhere}
.customer-plan-reason{margin:0 24px 17px;padding:13px 15px;border-left:3px solid #a43b32;border-radius:0 10px 10px 0;background:color-mix(in srgb,#a43b32 9%,var(--surface))}
.customer-plan-reason strong{font-size:.82rem}.customer-plan-reason p{margin:5px 0 0;line-height:1.5;overflow-wrap:anywhere}
.customer-plan-history-list{display:grid;gap:0;margin:0 24px;border-top:1px solid var(--line)}
.customer-plan-history{border-bottom:1px solid var(--line)}
.customer-plan-history summary{display:flex;align-items:center;justify-content:flex-start;gap:9px;min-height:48px;cursor:pointer;font-size:.86rem;font-weight:650;list-style:none}
.customer-plan-history summary::-webkit-details-marker{display:none}
.customer-plan-history summary::after{content:'+';color:var(--accent);font-size:1.2rem;font-weight:500}
.customer-plan-history[open] summary::after{content:'−'}
.customer-plan-history-count{display:grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:99px;background:color-mix(in srgb,var(--accent) 13%,var(--surface));font-size:.73rem;line-height:1}
.customer-plan-history summary::after{margin-left:auto}
.customer-plan-history ul{display:grid;gap:0;margin:0;padding:0 0 8px;list-style:none}
.customer-plan-history li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;font-size:.81rem;line-height:1.45}
.customer-plan-history li+li{border-top:1px solid var(--line)}.customer-plan-history li span{color:var(--muted)}.customer-plan-history li strong{text-align:right}
.customer-plan-booking{align-self:flex-start;min-height:46px;margin:18px 24px 22px;padding:0 17px;border-radius:11px;text-decoration:none;transition:filter .18s ease,transform .18s ease}
.customer-plan-booking:hover{filter:brightness(1.08);transform:translateY(-1px)}
.customer-plan-empty{display:grid;justify-items:start;gap:10px;padding:clamp(22px,5vw,38px);border:1px solid var(--line);border-radius:18px;background:var(--surface)}
.customer-plan-empty-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent);font-size:1.35rem}
.customer-plan-empty h2{margin:2px 0 0;font-size:1.25rem}.customer-plan-empty p{max-width:52ch;margin:0 0 5px;color:var(--muted);line-height:1.6}
.customer-plans-redesign :is(a,summary):focus-visible{outline:3px solid var(--focus);outline-offset:3px}
@media(max-width:640px){.customer-plans-redesign{padding-top:0}.customer-plans-heading{align-items:flex-start;flex-direction:column;gap:15px;margin-bottom:17px}.customer-plans-heading>.customer-secondary-link{align-self:flex-start}.customer-plan-card-redesign>header{align-items:flex-start;flex-direction:column;padding:19px 18px}.customer-plan-card-redesign .customer-plan-status{max-width:100%}.customer-plan-overview{align-items:flex-start;flex-direction:column;gap:5px;padding:18px 18px 0}.customer-plan-state-copy{margin:11px 18px 16px}.customer-plan-facts{grid-template-columns:1fr;padding:0 18px 16px}.customer-plan-detail{margin:0 18px;padding:14px 0}.customer-plan-detail ul{grid-template-columns:1fr;gap:10px}.customer-plan-reason{margin:0 18px 15px}.customer-plan-history-list{margin:0 18px}.customer-plan-booking{width:calc(100% - 36px);margin:16px 18px 19px}.customer-plan-history li{align-items:flex-start;flex-direction:column;gap:3px}.customer-plan-history li strong{text-align:left}}
@media(prefers-reduced-motion:reduce){.customer-plans-redesign *{scroll-behavior:auto!important;transition:none!important}}

.pending-review-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0;padding:14px 17px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--text)}
.pending-review-banner[hidden]{display:none}.pending-review-banner strong{font-size:1.05rem}.pending-review-banner a{min-height:44px;display:inline-flex;align-items:center;padding:0 13px;border-radius:9px;background:var(--accent);color:var(--accent-text);font-weight:700;text-decoration:none;white-space:nowrap}
.appointment-review-reminder,.appointment-review-dialog{width:min(100% - 32px,540px);padding:clamp(22px,5vw,34px);border-radius:18px;background:var(--surface);color:var(--text)}
.appointment-review-reminder .eyebrow{margin:0 0 9px;color:var(--muted);font-size:.72rem;font-weight:750;letter-spacing:.12em}
.appointment-review-reminder h2,.appointment-review-dialog h2{margin:0 0 12px;font-size:clamp(1.2rem,4vw,1.55rem);line-height:1.3;letter-spacing:-.025em}
.appointment-review-reminder>p:not(.eyebrow),.appointment-review-dialog form>p{color:var(--muted);line-height:1.6}
.appointment-review-reminder footer,.appointment-review-dialog footer{display:flex;justify-content:flex-end;gap:10px;margin-top:21px}
.appointment-review-reminder button,.appointment-review-dialog button{min-height:44px;padding:0 16px;border-radius:10px}
.appointment-review-dialog form{display:grid;gap:13px}.appointment-review-dialog label{display:grid;gap:6px;font-weight:650}.appointment-review-dialog :is(select,textarea,input){width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:9px;background:var(--bg);color:var(--text);font:inherit}.appointment-review-dialog textarea{min-height:80px;resize:vertical}
.pending-review-page{display:grid;gap:18px;max-width:1120px;margin:0 auto;padding:4px 0 40px}
.pending-review-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.pending-review-heading .eyebrow{margin:0 0 7px;color:var(--muted);font-size:.72rem;font-weight:750;letter-spacing:.12em}.pending-review-heading h1{margin:0;font-size:clamp(1.8rem,4vw,2.55rem);letter-spacing:-.04em}.pending-review-heading p:not(.eyebrow){max-width:65ch;margin:9px 0 0;color:var(--muted);line-height:1.55}.pending-review-heading>a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;color:var(--text);font-weight:650;text-decoration:none}
.pending-review-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.pending-review-toolbar>p{margin:0;color:var(--muted)}.pending-review-toolbar>p strong{color:var(--text);font-size:1.18rem}.pending-review-toolbar form{display:flex;align-items:flex-end;gap:9px;flex-wrap:wrap}.pending-review-toolbar label{display:grid;gap:4px;color:var(--muted);font-size:.78rem}.pending-review-toolbar :is(input,select){min-width:150px;min-height:42px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);font:inherit}.pending-review-toolbar button,.pending-review-actions button,.pending-review-bulk button,.pending-review-history button,.pending-review-error button{min-height:42px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:var(--accent);color:var(--accent-text);font-weight:700;cursor:pointer}.pending-review-toolbar .secondary-button{background:var(--surface);color:var(--text)}
.pending-review-feedback{margin:0;padding:11px 14px;border-radius:10px;background:color-mix(in srgb,var(--success) 12%,var(--surface));color:var(--text)}.pending-review-feedback.is-error{background:color-mix(in srgb,#a43b32 10%,var(--surface));color:var(--text)}
.pending-review-bulk{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 15px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.pending-review-bulk>span{color:var(--muted)}.pending-review-bulk>span strong{color:var(--text)}.pending-review-bulk button:disabled{opacity:.5;cursor:not-allowed}
.pending-review-list{display:grid;gap:10px}.pending-review-item{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.pending-review-select{display:grid;place-items:center;width:40px;height:44px;cursor:pointer}.pending-review-select input{width:20px;height:20px;accent-color:var(--accent)}
.pending-review-copy{display:grid;grid-template-columns:minmax(145px,.55fr) minmax(0,1fr);align-items:center;gap:16px;min-width:0}.pending-review-date{display:grid;gap:3px}.pending-review-date strong{font-size:.9rem}.pending-review-date span,.pending-review-copy p,.pending-review-copy small{color:var(--muted);font-size:.81rem}.pending-review-copy h3{margin:0;font-size:.95rem;overflow-wrap:anywhere}.pending-review-copy p{margin:4px 0;line-height:1.45}.pending-review-copy small{display:block}.pending-review-actions{display:grid;grid-template-columns:repeat(3,auto);gap:6px}.pending-review-actions button{font-size:.78rem}.pending-review-actions .secondary-button{background:var(--bg);color:var(--text)}
.pending-review-empty,.pending-review-error{display:grid;justify-items:start;gap:8px;padding:24px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.pending-review-empty>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:color-mix(in srgb,var(--success) 16%,var(--surface));color:var(--success);font-size:1.2rem}.pending-review-empty h2,.pending-review-error h2{margin:0;font-size:1.15rem}.pending-review-empty p,.pending-review-error p{margin:0;color:var(--muted);line-height:1.5}
.pending-review-history{padding:14px 17px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}.pending-review-history>details>summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;cursor:pointer;font-weight:700}.pending-review-history>details>summary span{color:var(--muted);font-size:.78rem;font-weight:500}.pending-review-history-list{display:grid}.pending-review-history-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.pending-review-history-list article>div{display:grid;gap:4px;min-width:0}.pending-review-history-list article>div strong{font-size:.85rem}.pending-review-history-list article>div span,.pending-review-history-list article>div small{color:var(--muted);font-size:.76rem;overflow-wrap:anywhere}.pending-review-current-status{font-size:.8rem;font-weight:650}.pending-review-history button{min-height:38px;background:var(--bg);color:var(--text)}
.pending-review-page :is(a,button,input,select,textarea,summary):focus-visible,.appointment-review-reminder :focus-visible,.appointment-review-dialog :focus-visible{outline:3px solid var(--focus);outline-offset:3px}
@media(max-width:860px){.pending-review-toolbar{align-items:flex-start;flex-direction:column}.pending-review-toolbar form{width:100%}.pending-review-toolbar label{flex:1;min-width:150px}.pending-review-toolbar :is(input,select){width:100%}.pending-review-item{grid-template-columns:34px minmax(0,1fr)}.pending-review-copy{grid-template-columns:1fr 1.3fr}.pending-review-actions{grid-column:2;grid-template-columns:repeat(3,minmax(0,1fr))}.pending-review-actions button{padding:0 8px}}
@media(max-width:600px){.pending-review-banner{align-items:flex-start;flex-direction:column}.pending-review-banner a{width:100%;justify-content:center}.pending-review-heading{align-items:flex-start;flex-direction:column}.pending-review-heading>a{align-self:flex-start}.pending-review-toolbar form{display:grid;grid-template-columns:1fr 1fr}.pending-review-toolbar label{min-width:0}.pending-review-toolbar form button{width:100%}.pending-review-item{align-items:start;gap:8px;padding:13px 11px}.pending-review-copy{grid-template-columns:1fr;gap:7px}.pending-review-actions{grid-column:2;grid-template-columns:1fr}.pending-review-actions button{width:100%}.pending-review-history-list article{grid-template-columns:minmax(0,1fr) auto}.pending-review-history-list article>button{grid-column:1/-1}.appointment-review-reminder footer,.appointment-review-dialog footer{display:grid;grid-template-columns:1fr}.appointment-review-reminder footer button,.appointment-review-dialog footer button{width:100%}}
@media(prefers-reduced-motion:reduce){.pending-review-page *,.pending-review-banner *{scroll-behavior:auto!important;transition:none!important}}
.pending-review-bulk{justify-content:flex-start;flex-wrap:wrap}.pending-review-select-all{display:inline-flex;align-items:center;gap:9px;min-height:42px;margin-right:auto;color:var(--text);font-size:.88rem;font-weight:650;cursor:pointer}.pending-review-select-all input{width:19px;height:19px;accent-color:var(--accent)}.pending-review-bulk-status,.pending-review-bulk-reason{display:grid;gap:4px;color:var(--muted);font-size:.76rem}.pending-review-bulk :is(select){min-width:170px;min-height:42px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);font:inherit}.pending-review-bulk-reason[hidden]{display:none}.pending-review-undo{justify-self:start;min-height:42px;padding:0 14px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text);font-weight:700;cursor:pointer}.pending-review-undo:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.pending-review-page :is(.pending-review-select-all,.pending-review-bulk-status,.pending-review-bulk-reason,.pending-review-undo):focus-within{outline:3px solid var(--focus);outline-offset:3px;border-radius:8px}
@media(max-width:600px){.pending-review-select-all{width:100%;margin:0}.pending-review-bulk-status,.pending-review-bulk-reason,.pending-review-bulk-status select,.pending-review-bulk-reason select,.pending-review-bulk>[data-bulk-action]{width:100%}.pending-review-bulk>span{width:100%}.pending-review-undo{width:100%}}.dashboard-layout .brand>strong{color:var(--text);font-size:.94rem;font-weight:800;letter-spacing:-.035em}.dashboard-layout .brand>strong span{color:var(--accent)}.dashboard-layout.sidebar-collapsed .brand>strong{display:none}

/* Appearance model gallery opens from the second configuration step. */
.appearance-page .appearance-model-modal{box-sizing:border-box;width:90vw;height:90dvh;max-width:none;max-height:none;margin:auto;padding:0;overflow:hidden;border:1px solid var(--line-strong);border-radius:16px;background:#111;color:var(--text)}
.appearance-page .appearance-model-modal::backdrop{background:rgba(0,0,0,.78);backdrop-filter:blur(4px)}
.appearance-page .appearance-model-surface{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;height:100%;min-height:0}
.appearance-page .appearance-model-surface>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 24px 16px;border-bottom:1px solid var(--line)}
.appearance-page .appearance-model-surface>header h2{margin:4px 0;font-size:clamp(1.4rem,2.5vw,1.9rem)}
.appearance-page .appearance-model-surface>header p:last-child{margin:0;color:#c1c1c8;line-height:1.5}
.appearance-page .appearance-model-summary{display:flex;align-items:center;gap:10px 24px;flex-wrap:wrap;padding:12px 24px;border-bottom:1px solid var(--line);color:#c1c1c8;font-size:.87rem}
.appearance-page .appearance-model-summary strong{color:var(--text)}
.appearance-page .appearance-model-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-content:start;gap:14px;min-height:0;overflow-y:auto;padding:20px 24px;overscroll-behavior:contain}
.appearance-page .appearance-model-gallery>.appearance-public-model-card{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr auto;gap:12px;min-width:0;padding:12px;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:#171717}
.appearance-page .appearance-model-gallery>.appearance-public-model-card.is-selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px rgba(197,160,89,.25)}
.appearance-page .appearance-model-gallery>.appearance-public-model-card .public-site-model-preview{min-height:145px;margin:0}
.appearance-page .appearance-model-gallery .appearance-model-card-copy{min-height:0}
.appearance-page .appearance-model-gallery .appearance-public-model-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.appearance-page .appearance-model-gallery .appearance-public-model-actions>button,.appearance-page .appearance-model-gallery .appearance-model-selected{width:100%;min-height:44px;margin:0;padding:8px;font-size:.8rem}
.appearance-page .appearance-model-gallery .appearance-public-model-actions .secondary-button{background:transparent;color:var(--text)}
.appearance-page .appearance-model-surface>footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;border-top:1px solid var(--line)}
.appearance-page .appearance-model-footer-actions{display:flex;gap:8px;flex-shrink:0}
.appearance-page .appearance-model-footer-actions button{width:auto;min-height:44px;margin:0;padding-inline:16px}
.appearance-page .appearance-model-footer-actions .secondary-button{background:transparent;color:var(--text)}
.appearance-page .appearance-model-feedback{margin:0;color:#c1c1c8;line-height:1.45}
.appearance-page .appearance-model-modal :is(button,a):focus-visible{outline:3px solid var(--focus);outline-offset:2px}
@media(max-width:1100px){.appearance-page .appearance-model-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.appearance-page .appearance-model-modal{width:100vw;height:100dvh;border-radius:0}.appearance-page .appearance-model-surface>header{padding:16px}.appearance-page .appearance-model-summary{padding:10px 16px}.appearance-page .appearance-model-gallery{grid-template-columns:1fr;padding:14px 16px}.appearance-page .appearance-model-surface>footer{align-items:stretch;flex-direction:column;padding:12px 16px}.appearance-page .appearance-model-footer-actions{display:grid;grid-template-columns:1fr 1fr}.appearance-page .appearance-model-footer-actions button{width:100%;padding-inline:8px}}

/* Keep the pending theme action beside the gallery and inside site preview. */
.appearance-page .appearance-theme-section .appearance-theme-save{position:sticky;bottom:12px;z-index:6;inset-inline:auto;padding:12px 16px;border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:#1b1915;box-shadow:0 12px 34px rgba(0,0,0,.42)}
.appearance-page .appearance-theme-save>div{display:flex;align-items:center;gap:10px;min-width:0}
.appearance-page .appearance-theme-save p{display:grid;gap:2px}
.appearance-page .appearance-theme-save strong{color:#fff}
.appearance-page .appearance-theme-save p span{color:#c9c9d0}
.appearance-page .appearance-theme-save button{font-weight:750}
.appearance-page .appearance-preview-surface>footer{justify-content:space-between;gap:18px;background:#151515}
.appearance-page .appearance-preview-save-status{min-width:0;margin:0;color:#c9c9d0;font-size:.85rem;line-height:1.4}
.appearance-page .appearance-preview-footer-actions{display:flex;justify-content:flex-end;gap:8px;flex-shrink:0}
.appearance-page .appearance-preview-footer-actions button{width:auto;min-height:44px;margin:0;padding-inline:16px}
@media(max-width:640px){.appearance-page .appearance-theme-section .appearance-theme-save{bottom:8px;gap:10px;padding:11px}.appearance-page .appearance-preview-surface>footer{align-items:stretch;flex-direction:column;gap:8px}.appearance-page .appearance-preview-footer-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.appearance-page .appearance-preview-footer-actions button{width:100%;padding-inline:8px}}

/* Sidebar navigation keeps its DOM order and scrolls independently of the page. */
.dashboard-layout .sidebar nav{display:grid;align-content:start;grid-auto-rows:max-content;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scroll-behavior:auto;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;box-shadow:none}
.dashboard-layout .sidebar nav::-webkit-scrollbar{display:block;width:6px;height:0}
.dashboard-layout .sidebar nav::-webkit-scrollbar-thumb{border-radius:999px;background:var(--line-strong)}
.dashboard-layout .sidebar .nav-group{align-content:start;gap:4px}
.dashboard-layout .sidebar .nav-group+.nav-group{margin-top:12px;padding-top:10px;border-top:1px solid color-mix(in srgb,currentColor 12%,transparent)}
.dashboard-layout .sidebar .nav-group-label{padding:3px 12px 7px;opacity:.8}
.dashboard-layout .sidebar .nav-item.active{border:1px solid color-mix(in srgb,currentColor 30%,transparent);background:color-mix(in srgb,currentColor 12%,transparent);box-shadow:none;font-weight:750}
.dashboard-layout .sidebar .nav-item.active::before{top:9px;bottom:9px;width:3px;background:var(--accent)}
.dashboard-layout .sidebar .nav-item.active svg{opacity:1}
.dashboard-layout .sidebar .nav-item:not(.active):hover{background:color-mix(in srgb,currentColor 8%,transparent);transform:none}
.dashboard-layout .sidebar .nav-item:focus-visible{outline:2px solid currentColor;outline-offset:2px}
@media(max-width:700px){.dashboard-layout .sidebar nav{touch-action:pan-y;overscroll-behavior-y:contain}}

/* Appearance media cards follow the active light or dark theme. */
.appearance-page .appearance-public-media .appearance-step-heading>p:last-child{color:var(--muted);font-size:.9rem;line-height:1.55}
.appearance-page .public-media-field{grid-template-rows:180px minmax(0,1fr);border-color:var(--line);background:var(--surface);color:var(--text)}
.appearance-page .public-media-art{height:180px;background:var(--bg-soft)}
.appearance-page .public-media-field-copy{gap:12px}
.appearance-page .public-media-field label{color:var(--text);font-size:.95rem;line-height:1.4}
.appearance-page .public-media-purpose{min-height:0;color:var(--muted);font-size:.86rem;font-weight:500;line-height:1.5}
.appearance-page .public-media-field input[type="file"]{color:var(--text);border-color:var(--line-strong);background:var(--input-bg);font-size:.84rem}
.appearance-page .public-media-field input[type="file"]::file-selector-button{color:var(--text);border-color:var(--line-strong);background:var(--surface-raised)}
.appearance-page .public-media-field input[type="file"]::file-selector-button:hover{background:var(--soft-hover)}
.appearance-page .public-media-field small{color:var(--muted);font-size:.8rem;line-height:1.45}
.appearance-page .public-media-pending{color:var(--text);font-size:.84rem}
.appearance-page .public-media-field-actions button{min-height:44px;color:var(--text);border-color:var(--line-strong);font-size:.84rem}
.appearance-page .public-media-field-actions button:hover{color:var(--danger);border-color:var(--danger);background:var(--soft-hover)}
.appearance-page .public-media-field :is(input,button):focus-visible{outline:3px solid var(--focus);outline-offset:2px}
@media(max-width:700px){.appearance-page .public-media-field{grid-template-rows:190px minmax(0,1fr)}.appearance-page .public-media-art{height:190px}}

/* Own-password form: override full-width global button styles locally. */
.password-change-page { max-width: 560px; }
.password-change-page .profile-header { margin-bottom: 24px; }
.password-change-page .profile-header h1 { margin: 0 0 8px; font-size: 1.75rem; line-height: 1.25; }
.password-change-page .profile-section { margin-top: 0; padding: 28px; gap: 22px; border-radius: 14px; }
.password-change-field { display: grid; gap: 8px; min-width: 0; }
.password-change-field > label { margin: 0; font-size: .9375rem; line-height: 1.4; font-weight: 650; }
.password-change-input { position: relative; min-width: 0; }
.password-change-page .password-change-input input { display: block; box-sizing: border-box; width: 100%; min-width: 0; min-height: 52px; padding: 12px 6rem 12px 14px; font-size: 1rem; border-color: var(--line-strong); border-radius: 9px; }
.password-change-page .password-change-input button { position: absolute; inset-inline-end: 4px; top: 4px; width: 5.25rem; min-height: 44px; margin: 0; padding: 0 8px; border: 0; border-radius: 6px; background: transparent; color: var(--text); font-size: .875rem; font-weight: 600; box-shadow: none; transform: none; }
.password-change-page .password-change-input button:hover { background: var(--soft-hover); box-shadow: none; transform: none; }
.password-change-page :is(input, button, a):focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; box-shadow: none; }
.password-change-page .field-error { min-height: 0; font-size: .875rem; line-height: 1.45; color: var(--danger); }
.password-change-page .field-error:empty { display: none; }
.password-change-hint, .password-change-session { margin: 0; color: var(--muted); font-size: .875rem; line-height: 1.5; }
.password-change-page .profile-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 0; padding-top: 20px; border-top: 1px solid var(--line); }
.password-change-page .profile-actions button { width: auto; min-height: 48px; padding: 12px 20px; box-shadow: none; }
.password-change-page .profile-actions a { display: inline-flex; align-items: center; min-height: 44px; color: var(--text); font-size: .875rem; }
.password-change-page .form-message { margin: 0; min-height: 0; line-height: 1.5; overflow-wrap: anywhere; }
.password-change-page .form-message:empty { display: none; }
.password-change-page .password-change-input input[aria-invalid="true"] { border-color: var(--danger); }
@media (max-width: 600px) {
  .password-change-page .profile-section { padding: 20px 16px; gap: 20px; }
  .password-change-page .profile-actions { flex-direction: column; align-items: stretch; }
  .password-change-page .profile-actions button { width: 100%; }
  .password-change-page .profile-actions a { justify-content: center; }
}

.channel-email-help { margin: 0; color: var(--muted); font-size: .875rem; line-height: 1.5; }
.channel-email-help:empty { display: none; }
#channel-smtp .notification-actions .secondary-button { margin-top: 0; }
#channel-smtp :is(input, select):disabled { opacity: .6; }

.public-information-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 16px; }
.public-information-grid label { display: flex; flex-direction: column; gap: 8px; }
.public-information-grid input { width: 100%; min-width: 0; box-sizing: border-box; }
.public-location-section h2, .public-location-section p, .public-location-actions a { overflow-wrap: anywhere; }
.public-location-actions { display: flex; flex-wrap: wrap; gap: 12px; }

.public-location-before-footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  width: calc(100% - 48px);
  max-width: 1200px;
  margin: 48px auto;
  padding: 32px 0 0;
  box-sizing: border-box;
}
.public-location-map {
  grid-column: 1 / -1;
  display: block;
  width: 100%;
  height: 360px;
  border: 0;
  border-radius: 16px;
  background: var(--surface);
}
@media (max-width: 640px) {
  .public-location-before-footer { grid-template-columns: minmax(0, 1fr); width: calc(100% - 32px); margin: 32px auto; gap: 16px; }
  .public-location-map { height: 280px; }
}

/* Catálogo de produtos: cores herdadas do tema do estabelecimento. */
.products-manager { display: grid; gap: 24px; }
.products-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.products-manager #sales-whatsapp-form { display: grid; gap: 12px; max-width: 520px; }
.products-manager #sales-whatsapp-form label, .product-editor label { display: grid; gap: 8px; }
.product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.product-manager-card { min-width: 0; }
.product-manager-card > img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 12px; }
.product-manager-card h2 { overflow-wrap: anywhere; }
.public-products-section { width: calc(100% - 48px); max-width: 1200px; margin: 56px auto; color: var(--text); }
.public-products-section > header { margin-bottom: 28px; }
.public-products-section h2 { font-size: clamp(1.8rem, 4vw, 2.8rem); margin: 8px 0 12px; }
.public-products-section > header > p:last-child { color: var(--muted); }
.public-product-card { display: block; width: 100%; min-width: 0; padding: 0; text-align: left; overflow: hidden; background: var(--surface); color: var(--text); border: 1px solid var(--line); border-radius: 16px; cursor: pointer; transition: transform .2s ease, border-color .2s ease; }
.public-product-card:hover { transform: translateY(-3px); border-color: var(--accent); background: var(--surface); }
.public-product-card:focus-visible, .product-gallery-thumbnails button:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.product-card-image { display: block; aspect-ratio: 1; overflow: hidden; background: var(--bg); }
.product-card-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.product-card-copy { display: grid; gap: 10px; padding: 20px; }
.product-card-copy strong { font-size: 1.15rem; overflow-wrap: anywhere; }
.product-card-price { font-weight: 700; font-size: 1.1rem; }
.product-card-details { display: flex; justify-content: space-between; color: var(--accent); font-size: .9rem; }
.product-dialog { padding: 24px; width: min(940px, calc(100% - 32px)); max-height: calc(100dvh - 32px); box-sizing: border-box; overflow-y: auto; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); color: var(--text); }
.product-dialog::backdrop { background: rgb(0 0 0 / .7); }
.product-dialog > header { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 20px; }
.product-dialog > header button { min-width: 44px; min-height: 44px; font-size: 1.6rem; }
.public-product-detail { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; }
.product-gallery { min-width: 0; }
.product-gallery > img { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; background: var(--bg); border-radius: 12px; }
.product-gallery-controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; }
.product-gallery-controls[hidden] { display: none; }
.product-gallery-controls button { min-width: 44px; min-height: 44px; }
.product-gallery-thumbnails { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.product-gallery-thumbnails button { padding: 3px; width: 64px; height: 64px; background: var(--bg); border: 2px solid transparent; border-radius: 8px; }
.product-gallery-thumbnails button[aria-pressed="true"] { border-color: var(--accent); }
.product-gallery-thumbnails img { width: 100%; height: 100%; object-fit: cover; border-radius: 4px; }
.product-detail-copy h2 { margin-top: 0; overflow-wrap: anywhere; }
.product-detail-price { font-size: 1.6rem; font-weight: 700; }
.product-description { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.7; }
.product-buy-button { display: inline-flex; justify-content: center; align-items: center; gap: 12px; min-height: 48px; padding: 12px 20px; border-radius: 10px; background: var(--accent); color: var(--accent-text); font-weight: 700; text-decoration: none; margin-top: 16px; }
.product-unavailable { color: var(--muted); line-height: 1.6; }
.product-editor { max-width: 720px; }
.product-editor form { display: grid; gap: 16px; }
.product-editor input, .product-editor textarea, .product-editor select { width: 100%; box-sizing: border-box; }
.product-editor fieldset { min-width: 0; border: 1px solid var(--line); border-radius: 12px; padding: 16px; }
.product-editor-images { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.product-editor-images > div { display: grid; gap: 8px; min-width: 0; }
.product-editor-images img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 8px; }
.product-editor-images button { padding: 8px; min-height: 44px; }
@media (max-width: 1000px) { .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }
@media (max-width: 640px) {
  .public-products-section { width: calc(100% - 32px); margin: 36px auto; }
  .product-card-copy { padding: 14px; gap: 8px; }
  .product-card-copy strong { font-size: 1rem; }
  .product-dialog { padding: 16px; }
  .public-product-detail { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .product-buy-button { display: flex; }
  .product-editor-images { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 380px) { .product-grid { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { .public-product-card { transition: none; } }
.public-products-section { scroll-margin-top: 100px; }

.appointment-filter-count { font-variant-numeric: tabular-nums; opacity: .75; }

/* Primary appointment actions remain visible on every screen size. */
.appointment-agenda-row { grid-template-columns: 120px minmax(0, 1fr) auto; }
.appointment-row-actions { grid-column: 1 / -1; display: flex; justify-content: flex-end; align-items: center; gap: 8px; }
.appointment-inline-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.appointment-inline-actions:empty { display: none; }
.appointment-inline-actions button { width: auto; min-height: 44px; margin: 0; padding: 8px 12px; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--surface-raised); color: var(--text); box-shadow: none; font-size: .8rem; font-weight: 700; }
.appointment-inline-actions [data-quick-status="COMPLETED"] { border-color: var(--accent); background: var(--badge-soft); color: var(--text); }
.appointment-inline-actions [data-quick-status="CANCELLED"] { border-color: var(--danger); color: var(--danger); background: transparent; }
.appointment-inline-actions button:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.appointment-team-actions { flex-wrap: wrap; }
@media (max-width: 700px) {
  .appointment-agenda-row { grid-template-columns: minmax(0, 1fr) auto; }
  .appointment-agenda-row > strong { grid-column: 1 / -1; }
  .appointment-agenda-row > .appointment-row-actions { grid-column: 1 / -1; grid-row: auto; }
}

/* Shared reading hierarchy for personal and team appointments. */
.appointment-agenda-row, .team-appointment-item {
  --appointment-time-ink: color-mix(in srgb, var(--accent) 82%, var(--text));
  --appointment-professional-ink: color-mix(in srgb, var(--muted) 40%, var(--text));
  --appointment-secondary-ink: color-mix(in srgb, var(--muted) 80%, var(--text));
  --appointment-status-ink: color-mix(in srgb, var(--warning) 75%, var(--text));
  align-items: start; gap: 14px 18px; padding: 18px; background: var(--surface);
}
.appointment-agenda-row { grid-template-columns: 106px minmax(0, 1fr) auto; }
.appointment-card-time { display: grid; align-content: start; gap: 3px; min-width: 0; }
.appointment-card-label { color: var(--appointment-secondary-ink); font-size: .75rem; font-weight: 650; }
.appointment-card-time > strong { color: var(--appointment-time-ink); font-size: 1.8rem; font-weight: 800; line-height: 1.1; letter-spacing: -.025em; font-variant-numeric: tabular-nums; }
.appointment-card-end { color: var(--appointment-secondary-ink); font-size: .8rem; font-variant-numeric: tabular-nums; }
.appointment-card-copy { display: grid; gap: 10px; min-width: 0; }
.appointment-card-client { color: var(--text); font-size: 1.1rem; font-weight: 750; line-height: 1.4; overflow-wrap: anywhere; }
.appointment-card-professional { display: flex; align-items: center; gap: 9px; min-width: 0; color: var(--appointment-professional-ink); }
.appointment-card-professional > svg { flex: none; width: 20px; height: 20px; }
.appointment-card-professional > span { display: grid; gap: 2px; min-width: 0; }
.appointment-card-professional small { color: inherit; font-size: .75rem; line-height: 1.3; }
.appointment-card-professional strong { color: inherit; font-size: .9rem; font-weight: 650; line-height: 1.4; overflow-wrap: anywhere; }
.appointment-card-service { color: var(--appointment-secondary-ink); font-size: .85rem; line-height: 1.45; overflow-wrap: anywhere; }
.appointment-card-status { display: inline-flex; align-items: center; align-self: start; justify-self: end; gap: 6px; max-width: 100%; padding: 6px 9px; border: 1px solid color-mix(in srgb, var(--appointment-status-ink) 45%, var(--line)); border-radius: 999px; background: color-mix(in srgb, var(--appointment-status-ink) 8%, var(--surface)); color: var(--appointment-status-ink); font-size: .8rem; font-weight: 700; line-height: 1.4; }
.appointment-card-status.status-completed { --appointment-status-ink: color-mix(in srgb, var(--success) 85%, var(--text)); }
.appointment-card-status:is(.status-cancelled, .status-no_show) { --appointment-status-ink: color-mix(in srgb, var(--danger) 85%, var(--text)); }
.appointment-status-dot { flex: none; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.appointment-agenda-row.is-cancelled, .team-appointment-item.status-cancelled { opacity: 1; }
.appointment-row-actions { padding-top: 12px; border-top: 1px solid var(--line); }
.team-appointment-item { grid-template-columns: minmax(0, 1fr) auto; }
.team-appointment-item .appointment-card-time { grid-column: 1; grid-row: 1; }
.team-appointment-item .appointment-card-status { grid-column: 2; grid-row: 1; }
.team-appointment-item .appointment-card-copy { grid-column: 1 / -1; grid-row: 2; }
.team-appointment-item .appointment-team-actions { grid-column: 1 / -1; padding-top: 12px; border-top: 1px solid var(--line); }
@media (max-width: 700px) {
  .appointment-agenda-row { grid-template-columns: minmax(0, 1fr) auto; padding: 16px; gap: 14px; }
  .appointment-agenda-row .appointment-card-time { grid-column: 1; grid-row: 1; }
  .appointment-agenda-row .appointment-card-status { grid-column: 2; grid-row: 1; }
  .appointment-agenda-row .appointment-card-copy { grid-column: 1 / -1; grid-row: 2; }
  .appointment-row-actions { flex-wrap: wrap; }
}

.appointment-card-time .appointment-time-label { color: var(--appointment-professional-ink); }
.appointment-inline-actions [data-quick-status="CANCELLED"] { color: color-mix(in srgb, var(--danger) 85%, var(--text)); }
/* Let enlarged text move the status to another line instead of overlapping. */
.team-appointment-item { display: flex; flex-wrap: wrap; }
.team-appointment-item .appointment-card-time { order: 1; flex: 1 1 106px; min-width: min-content; }
.team-appointment-item .appointment-card-status { order: 2; }
.team-appointment-item .appointment-card-copy { order: 3; flex: 1 0 100%; }
.team-appointment-item .appointment-team-actions { order: 4; flex: 1 0 100%; }
@media (max-width: 700px) {
  .appointment-agenda-row { display: flex; flex-wrap: wrap; }
  .appointment-agenda-row .appointment-card-time { order: 1; flex: 1 1 106px; min-width: min-content; }
  .appointment-agenda-row .appointment-card-status { order: 2; }
  .appointment-agenda-row .appointment-card-copy { order: 3; flex: 1 0 100%; }
  .appointment-agenda-row .appointment-row-actions { order: 4; flex: 1 0 100%; }
}

.professional-avatar img { width: 100%; height: 100%; object-fit: cover; }
.professional-avatar img[hidden], .professional-avatar [data-photo-initials][hidden] { display: none; }
/* Editing keeps the existing reservation beside a short, prefilled form. */
.appointment-editor-backdrop { padding: 20px; }
.service-modal.appointment-editor { --editor-muted: color-mix(in srgb, var(--muted) 80%, var(--text)); display: flex; flex-direction: column; width: min(100%, 860px); max-height: calc(100dvh - 40px); padding: 0; overflow: hidden; border-radius: var(--radius-md); }
.appointment-edit-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 22px 24px 18px; border-bottom: 1px solid var(--line); }
.appointment-edit-heading h2 { margin: 4px 0 8px; font-size: 1.4rem; }
.appointment-edit-heading p { margin: 0; color: var(--editor-muted); line-height: 1.45; }
.appointment-edit-heading .eyebrow { color: color-mix(in srgb, var(--accent) 70%, var(--text)); font-size: .75rem; }
.appointment-edit-heading .modal-close { flex: none; width: 44px; min-height: 44px; margin: 0; }
.appointment-edit-body { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.4fr); min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.appointment-edit-context { padding: 24px; border-right: 1px solid var(--line); background: var(--bg-soft); }
.appointment-edit-context .eyebrow { margin: 0 0 14px; color: var(--editor-muted); font-size: .7rem; }
.appointment-edit-original-time { display: block; color: color-mix(in srgb, var(--accent) 82%, var(--text)); font-size: 1.75rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.appointment-edit-original-time span { color: var(--editor-muted); font-size: .9rem; font-weight: 500; white-space: nowrap; }
.appointment-edit-context > p { color: var(--editor-muted); font-size: .85rem; line-height: 1.5; }
.appointment-edit-context h3 { margin: 18px 0; color: var(--text); font-size: 1.05rem; line-height: 1.4; overflow-wrap: anywhere; }
.appointment-edit-context dl { display: grid; gap: 14px; margin: 0; }
.appointment-edit-context dt { color: var(--editor-muted); font-size: .75rem; }
.appointment-edit-context dd { margin: 4px 0 0; color: var(--text); font-size: .9rem; line-height: 1.4; overflow-wrap: anywhere; }
.appointment-edit-context .appointment-edit-context-note { margin: 24px 0 0; padding-top: 16px; border-top: 1px solid var(--line); font-size: .8rem; }
.appointment-edit-main { min-width: 0; padding: 24px; }
.appointment-edit-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 14px; }
.appointment-edit-fields > label { display: grid; align-content: start; gap: 7px; margin: 0; color: var(--text); font-size: .85rem; font-weight: 600; }
.appointment-edit-fields :is(input,select) { width: 100%; min-width: 0; min-height: 46px; margin: 0; font-size: 1rem; color: var(--text); background: var(--input-bg); }
.appointment-edit-fields input[type=date] { min-width: 0; }
.appointment-edit-fields > label[for=appointment-edit-professional], .appointment-edit-fields > label[for=appointment-edit-service], .appointment-edit-wide, .appointment-edit-customer { grid-column: 1 / -1; }
.appointment-edit-customer { display: grid; gap: 7px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.appointment-edit-label { color: var(--editor-muted); font-size: .8rem; }
.appointment-edit-customer > strong { font-size: 1.05rem; overflow-wrap: anywhere; }
.appointment-edit-customer summary { display: inline-flex; align-items: center; min-height: 44px; color: color-mix(in srgb, var(--accent) 70%, var(--text)); cursor: pointer; font-size: .85rem; text-decoration: underline; text-underline-offset: 3px; }
.appointment-edit-customer details label { display: grid; gap: 7px; margin: 8px 0; color: var(--text); font-size: .85rem; }
#appointment-edit-results { display: grid; gap: 7px; max-height: 200px; overflow-y: auto; }
#appointment-edit-results small { overflow-wrap: anywhere; }
.appointment-edit-loading, .appointment-edit-notice { margin: 16px 0 0; color: var(--editor-muted); font-size: .85rem; line-height: 1.5; }
.appointment-edit-notice { padding: 12px; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); color: var(--text); background: var(--badge-soft); }
.appointment-edit-initial { grid-column: 1 / -1; display: grid; place-content: center; gap: 14px; min-height: 260px; padding: 24px; color: var(--editor-muted); }
.appointment-edit-review h3 { margin: 0; font-size: 1.1rem; }
.appointment-edit-review > p { color: var(--editor-muted); font-size: .85rem; line-height: 1.5; }
.appointment-edit-review .appointment-summary > div { display: grid; grid-template-columns: minmax(90px, .65fr) minmax(0, 1fr); }
.appointment-edit-review .appointment-summary dd { overflow-wrap: anywhere; }
.appointment-editor > .appointment-edit-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 0; padding: 16px 24px; border-top: 1px solid var(--line); background: var(--modal-bg); }
.appointment-edit-footer > span { color: var(--editor-muted); font-size: .78rem; }
.appointment-edit-footer > div, .appointment-edit-discard > div { display: flex; flex-wrap: wrap; gap: 8px; }
.appointment-edit-footer button, .appointment-edit-discard button { width: auto; min-height: 44px; margin: 0; padding: 10px 16px; }
.appointment-editor :is(button,input,select,summary):focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.appointment-editor button:disabled { cursor: default; opacity: .55; }
.appointment-edit-discard { padding: 16px 24px; border-top: 1px solid var(--line-strong); background: var(--bg-soft); }
.appointment-edit-discard p { margin: 0 0 12px; line-height: 1.5; }
@media(max-width:700px) {
  .appointment-editor-backdrop { padding: 8px; }
  .service-modal.appointment-editor { max-height: calc(100dvh - 16px); }
  .appointment-edit-heading { padding: 18px; }
  .appointment-edit-body { grid-template-columns: minmax(0, 1fr); }
  .appointment-edit-context { padding: 18px; border-right: 0; border-bottom: 1px solid var(--line); }
  .appointment-edit-context .eyebrow { margin-bottom: 8px; }
  .appointment-edit-context h3 { margin: 10px 0; }
  .appointment-edit-context dl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .appointment-edit-context .appointment-edit-context-note { margin-top: 14px; padding-top: 10px; }
  .appointment-edit-main { padding: 18px; }
  .appointment-editor > .appointment-edit-footer { padding: 14px 18px calc(14px + env(safe-area-inset-bottom)); }
  .appointment-edit-footer > div { width: 100%; }
  .appointment-edit-footer button { flex: 1; }
}
@media(max-width:380px) { .appointment-edit-fields { grid-template-columns: minmax(0, 1fr); } .appointment-edit-context dl { grid-template-columns: minmax(0, 1fr); } }

.appointment-editor:focus { outline: none; }
.appointment-edit-original-details > summary { display: flex; align-items: center; gap: 8px; min-height: 44px; margin: 0 0 10px; color: var(--text); font-size: .8rem; cursor: pointer; list-style: none; }
.appointment-edit-original-details > summary::before { content: '›'; color: var(--editor-muted); font-size: 1.1rem; transform: rotate(0); }
.appointment-edit-original-details[open] > summary::before { transform: rotate(90deg); }
@media(max-width:700px) { .appointment-edit-original-details > summary { margin-bottom: 0; } .appointment-edit-context > p { margin: 7px 0; } }

/* Floating menus leave card dimensions and agenda scrolling unchanged. */
.appointment-actions-menu.appointment-floating-menu { position: fixed; z-index: 90; top: 0; left: 0; right: auto; margin: 0; box-sizing: border-box; overflow-y: auto; overscroll-behavior: contain; padding: 6px; border-radius: var(--radius-sm); background: var(--menu-bg); }
.appointment-floating-menu button { min-height: 44px; margin: 0; padding: 10px 12px; line-height: 1.4; font-size: .9rem; }
.appointment-floating-menu button:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; background: var(--surface-raised); }
.appointment-floating-menu .danger-option { color: color-mix(in srgb, var(--danger) 85%, var(--text)); }

/* Daily report: the first screen answers how the day went before exposing audit detail. */
.daily-report-page { --report-panel:var(--surface); --report-ink:var(--text); --report-subtle:var(--muted); --report-rule:var(--line); --report-mark:var(--accent); display:grid; gap:22px; width:100%; max-width:1160px; min-width:0; margin-inline:auto; padding-bottom:40px; color:var(--report-ink); }
.daily-report-page > a:first-child { width:fit-content; min-height:40px; display:inline-flex; align-items:center; color:var(--report-subtle); text-decoration:none; }
.daily-report-page h1,.daily-report-page h2,.daily-report-page h3,.daily-report-page p { margin-top:0; }
.daily-report-page h1 { margin-bottom:8px; font-size:clamp(1.8rem,3.4vw,2.65rem); line-height:1.08; letter-spacing:-.04em; }
.daily-report-page h2 { margin-bottom:0; font-size:1.2rem; line-height:1.25; letter-spacing:-.02em; }
.daily-report-page h3 { font-size:1rem; }
.daily-report-page p,.daily-report-page li,.daily-report-page dt { overflow-wrap:anywhere; }
.daily-report-page .eyebrow { margin:0 0 8px; color:var(--report-mark); font-size:.72rem; font-weight:750; letter-spacing:.12em; }
.daily-report-notice:empty { display:none; }
.daily-report-header { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:8px 0 0; }
.daily-report-heading-copy { min-width:0; }
.daily-report-meta { display:flex; flex-wrap:wrap; gap:5px 9px; margin:0; color:var(--report-subtle); font-size:.84rem; line-height:1.5; }
.daily-report-delivery { flex:0 0 auto; padding-top:4px; }
.daily-report-status { display:inline-flex; align-items:center; min-height:30px; padding:5px 11px; border:1px solid currentColor; border-radius:999px; background:transparent; color:var(--report-subtle); font-size:.76rem; font-weight:700; }
.daily-report-status-SENT { color:var(--success); }
.daily-report-status-FAILED { color:var(--danger); }
.daily-report-status-PENDING { color:var(--warning); }
.daily-report-status-QUEUED { color:var(--warning); }
.daily-report-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.daily-report-actions > .daily-report-secondary-action { width:auto; flex:0 0 auto; margin:0; box-shadow:none; }
.daily-report-download,.daily-report-secondary-action { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 16px; border:1px solid var(--report-rule); border-radius:9px; background:transparent; color:var(--report-ink); text-decoration:none; font:inherit; font-size:.88rem; font-weight:650; cursor:pointer; }
.daily-report-download { border-color:var(--report-mark); background:var(--report-mark); color:var(--accent-text); }
.daily-report-download:hover,.daily-report-download:focus-visible { filter:brightness(1.08); }
.daily-report-secondary-action:hover { border-color:var(--report-mark); box-shadow:none; transform:translateY(-1px); }
.daily-report-secondary-action:active { box-shadow:none; transform:translateY(0); }
.daily-report-dashboard { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:14px; align-items:stretch; }
.daily-report-overview,.daily-report-close { min-width:0; padding:22px 24px; border:1px solid var(--report-rule); border-radius:14px; background:var(--report-panel); }
.daily-report-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:22px; }
.daily-report-section-heading .eyebrow { margin-bottom:6px; }
.daily-report-total,.daily-report-date-short,.daily-report-note { color:var(--report-subtle); font-size:.8rem; }
.daily-report-completed { display:flex; align-items:baseline; gap:12px; margin:8px 0 22px; }
.daily-report-completed strong { color:var(--report-ink); font-size:clamp(2.6rem,5vw,4rem); font-variant-numeric:tabular-nums; letter-spacing:-.065em; line-height:.95; }
.daily-report-completed span { color:var(--report-subtle); font-size:.92rem; }
.daily-report-outcome-bar { display:flex; width:100%; height:9px; gap:2px; overflow:hidden; border-radius:99px; background:var(--bg-soft); }
.daily-report-segment { flex:0 0 var(--segment); min-width:3px; height:100%; }
.daily-report-segment-done { background:var(--success); }
.daily-report-segment-cancelled { background:var(--warning); }
.daily-report-segment-noshow { background:var(--danger); }
.daily-report-segment-pending { background:var(--report-mark); }
.daily-report-segment-future { background:var(--placeholder); }
.daily-report-empty-bar { width:100%; }
.daily-report-outcomes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 22px; margin:13px 0 0; }
.daily-report-outcomes > div { display:flex; align-items:center; justify-content:space-between; gap:10px; min-width:0; padding:8px 0; border-bottom:1px solid var(--report-rule); }
.daily-report-outcomes dt { display:flex; align-items:center; gap:8px; color:var(--report-subtle); font-size:.82rem; }
.daily-report-outcomes dd { margin:0; font-size:.9rem; font-weight:700; font-variant-numeric:tabular-nums; }
.daily-report-key { width:8px; height:8px; flex:0 0 8px; border:1px solid currentColor; border-radius:2px; }
.daily-report-key-done { background:var(--success); color:var(--success); }.daily-report-key-cancelled { background:var(--warning); color:var(--warning); }.daily-report-key-noshow { background:var(--danger); color:var(--danger); }.daily-report-key-pending { background:var(--report-mark); color:var(--report-mark); }.daily-report-key-future { background:var(--placeholder); color:var(--placeholder); }
.daily-report-close { border-color:var(--line-strong); background:var(--sidebar-bg,#111); }
.daily-report-close .eyebrow { color:var(--report-mark); }
.daily-report-money-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 22px; margin:0; }
.daily-report-page .daily-report-money-grid > div { display:flex; align-items:baseline; justify-content:space-between; gap:8px; }
.daily-report-money-grid > div { display:grid; gap:9px; min-width:0; padding:13px 0; border-bottom:1px solid var(--report-rule); }
.daily-report-money-grid dt { color:var(--report-subtle); font-size:.81rem; }
.daily-report-page .daily-report-money-grid dd { flex:0 0 auto; margin:0; white-space:nowrap; font-size:clamp(1rem,1.55vw,1.3rem); font-weight:700; font-variant-numeric:tabular-nums; }
.daily-report-page .daily-report-money-grid .daily-report-net { grid-column:1/-1; border-bottom:0; }
.daily-report-page .daily-report-money-grid .daily-report-net dd { color:var(--report-mark); font-size:clamp(1.45rem,2.3vw,1.8rem); }
.daily-report-calc-note { max-width:55ch; margin:4px 0 0; color:var(--report-subtle); font-size:.78rem; line-height:1.5; }
.daily-report-attention { display:grid; grid-template-columns:1fr; padding:18px 20px; border:1px solid color-mix(in srgb,var(--warning) 55%,var(--report-rule)); border-left:4px solid var(--warning); border-radius:10px; background:color-mix(in srgb,var(--warning) 7%,var(--report-panel)); }
.daily-report-attention .eyebrow { color:var(--warning); }
.daily-report-attention h2 { margin-bottom:10px; }
.daily-report-attention ul { display:grid; gap:8px; margin:0; padding-left:19px; }
.daily-report-attention li { padding-left:2px; }
.daily-report-attention a { margin-left:5px; color:var(--report-mark); font-size:.85rem; font-weight:650; text-decoration:none; }
.daily-report-attention a:hover { text-decoration:underline; text-underline-offset:3px; }
.daily-report-all-clear { display:flex; align-items:center; gap:10px; margin:0; padding:13px 16px; border:1px solid var(--report-rule); border-radius:10px; color:var(--report-subtle); font-size:.88rem; }
.daily-report-all-clear span { display:grid; width:23px; height:23px; place-items:center; border:1px solid var(--success); border-radius:50%; color:var(--success); font-weight:800; }
.daily-report-section { min-width:0; margin:0; padding:0; border:0; background:transparent; }
.daily-report-team-section,.daily-report-services-section { padding-top:5px; }
.daily-report-team { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:10px; }
.daily-report-person { min-width:0; padding:17px 19px; border:1px solid var(--report-rule); border-radius:11px; background:var(--report-panel); }
.daily-report-person h3 { margin:0 0 5px; font-size:1rem; }
.daily-report-person header p { margin:0 0 12px; color:var(--report-subtle); font-size:.78rem; }
.daily-report-person dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0; }
.daily-report-person dl > div { min-width:0; }
.daily-report-person dt { color:var(--report-subtle); font-size:.73rem; line-height:1.35; }
.daily-report-person dd { margin:4px 0 0; text-align:left; font-size:.95rem; font-weight:700; font-variant-numeric:tabular-nums; }
.daily-report-person details { margin-top:12px; border-top:1px solid var(--report-rule); }
.daily-report-person details summary { padding-block:11px 0; }
.daily-report-services { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:0 28px; margin:0; padding:0; list-style:none; counter-reset:service; }
.daily-report-services li { display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:10px; min-width:0; min-height:55px; border-bottom:1px solid var(--report-rule); }
.daily-report-service-rank { color:var(--report-mark); font-size:.74rem; font-variant-numeric:tabular-nums; }
.daily-report-services li strong { font-size:.88rem; overflow-wrap:anywhere; }
.daily-report-services li > span:last-child { color:var(--report-subtle); font-size:.78rem; text-align:right; }
.daily-report-empty { color:var(--report-subtle); }
.daily-report-more { padding:0 17px; border:1px solid var(--report-rule); border-radius:10px; background:var(--report-panel); }
.daily-report-more > summary { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:50px; padding:4px 0; cursor:pointer; font-size:.9rem; font-weight:650; list-style:none; }
.daily-report-more > summary::-webkit-details-marker,.daily-report-person summary::-webkit-details-marker { display:none; }
.daily-report-more > summary::after,.daily-report-person summary::after { content:'+'; color:var(--report-mark); font-size:1.15rem; font-weight:500; }
.daily-report-more[open] > summary::after,.daily-report-person details[open] summary::after { content:'−'; }
.daily-report-more > summary span { margin-left:auto; color:var(--report-subtle); font-size:.76rem; font-weight:500; }
.daily-report-more[open] > :not(summary) { margin-block:12px; }
.daily-report-columns { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr)); gap:18px; }
.daily-report-page dl { margin:0; }
.daily-report-page dl > div { display:flex; justify-content:space-between; gap:16px; padding-block:10px; border-bottom:1px solid var(--report-rule); }
.daily-report-page dd { margin:0; text-align:right; font-weight:600; }
.daily-report-breakdown { margin:0; }
.daily-report-attendances { display:grid; gap:12px; }
.daily-report-attendances > article,.daily-report-transaction { min-width:0; margin-block:10px; padding:16px; border:1px solid var(--report-rule); border-radius:10px; }
.daily-report-attendances header,.daily-report-transaction header { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; }
.daily-report-attendances header strong { font-size:1rem; }
.daily-report-attendances dl { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:0 20px; }
.daily-report-ledger-group { padding-block:10px; border-top:1px solid var(--report-rule); }
.daily-report-ledger-group > summary { display:flex; gap:16px; justify-content:space-between; }
.daily-report-history,.daily-report-services { list-style:none; padding:0; }
.daily-report-history li { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; padding-block:16px; border-bottom:1px solid var(--report-rule); }
.daily-report-history small { display:block; margin-top:3px; color:var(--report-subtle); }
.daily-report-page pre { white-space:pre-wrap; overflow-wrap:anywhere; font-size:.85rem; }
.daily-report-page a:focus-visible,.daily-report-page summary:focus-visible,.daily-report-page button:focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
.daily-report-page button:disabled { cursor:wait; opacity:.6; }
.daily-report-page form,.daily-report-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.daily-report-page label { display:flex; flex-direction:column; gap:8px; min-width:0; }
.daily-report-page label:has(input[type=checkbox]) { flex-direction:row; align-items:center; }
.daily-report-page input,.daily-report-page select,.daily-report-page button { min-height:44px; max-width:100%; }
.daily-report-confirm-dialog { max-width:min(520px,calc(100vw - 32px)); max-height:90dvh; overflow:auto; padding:24px; border:1px solid var(--report-rule); border-radius:14px; background:var(--modal-bg); color:var(--report-ink); }
.daily-report-confirm-dialog::backdrop { background:#0009; }
.daily-report-confirm-dialog form,.daily-report-confirm-dialog label { display:grid; gap:12px; }
.daily-report-confirm-dialog footer { display:flex; flex-wrap:wrap; gap:12px; margin-top:16px; }
@media(max-width:760px) { .daily-report-dashboard { grid-template-columns:1fr; } }
@media(max-width:600px) {
 .daily-report-page { gap:17px; }
 .daily-report-header { display:grid; grid-template-columns:minmax(0,1fr); gap:11px; }
 .daily-report-delivery { padding:0; }
 .daily-report-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
 .daily-report-actions > :first-child { grid-column:1/-1; }
 .daily-report-actions > * { width:100%; min-width:0; padding-inline:9px; font-size:.8rem; }
 .daily-report-overview,.daily-report-close { padding:17px 16px; border-radius:12px; }
 .daily-report-section-heading { align-items:flex-start; margin-bottom:17px; }
 .daily-report-outcomes { gap:0 14px; }
 .daily-report-outcomes dt { gap:6px; font-size:.76rem; }
 .daily-report-money-grid { gap:0 14px; }
 .daily-report-money-grid dt { font-size:.75rem; }
 .daily-report-money-grid dd { font-size:1.08rem; }
 .daily-report-money-grid .daily-report-net dd { font-size:1.4rem; }
 .daily-report-team { grid-template-columns:minmax(0,1fr); }
 .daily-report-person { padding:15px; }
 .daily-report-services { grid-template-columns:minmax(0,1fr); }
 .daily-report-more { padding-inline:13px; }
 .daily-report-more > summary { min-height:48px; font-size:.84rem; }
 .daily-report-page form > label { flex:1 1 100%; }
 .daily-report-page form > button { flex:1 1 auto; }
 .daily-report-attendances dl { grid-template-columns:1fr; }
 .daily-report-attendances > article,.daily-report-transaction { padding:12px; }
}
.appointment-receipt { border:1px solid var(--line); border-radius:12px; padding:14px; margin-block:16px; }
.appointment-receipt label:has(input[type=checkbox]) { display:flex; align-items:center; gap:12px; }
.appointment-receipt input[type=checkbox] { width:20px; height:20px; }
.appointment-receipt [data-payment-fields]:not([hidden]) { display:grid; gap:12px; margin-block:12px; }
@media(max-width:600px) { .daily-report-attendances dl { grid-template-columns:1fr; } .daily-report-attendances > article,.daily-report-transaction { padding:12px; } }

/* Daily report index: make search, primary action and saved reports read as a clear workflow. */
.daily-report-page-heading { display:grid; gap:0; max-width:780px; padding:8px 0 4px; }
.daily-report-page-heading .eyebrow { margin-bottom:10px; }
.daily-report-page-heading h1 { margin-bottom:10px; }
.daily-report-page-heading > p:not(.eyebrow) { max-width:62ch; margin:0; color:var(--report-subtle); font-size:.96rem; line-height:1.55; }
.daily-report-page-establishment { width:fit-content; margin-top:12px; padding:5px 9px; border:1px solid var(--report-rule); border-radius:7px; color:var(--report-subtle); font-size:.75rem; font-weight:650; }
.daily-report-list-tools { display:grid; grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr); gap:28px; align-items:center; padding:24px 26px; border:1px solid var(--report-rule); border-radius:15px; background:var(--report-panel); }
.daily-report-list-tools-copy { max-width:34ch; }
.daily-report-list-tools-copy .eyebrow { margin-bottom:8px; }
.daily-report-list-tools-copy h2 { margin-bottom:8px; }
.daily-report-list-tools-copy > p:last-child { margin:0; color:var(--report-subtle); font-size:.88rem; line-height:1.5; }
.daily-report-page .daily-report-filter { display:grid; align-items:stretch; gap:12px; min-width:0; }
.daily-report-filter label { gap:7px; color:var(--report-subtle); font-size:.8rem; font-weight:650; }
.daily-report-filter input { width:100%; min-height:46px; padding:0 12px; border:1px solid var(--report-rule); border-radius:9px; background:var(--input-bg); color:var(--report-ink); font:inherit; color-scheme:inherit; }
.daily-report-filter input:focus-visible,.daily-report-settings-form select:focus-visible { outline:3px solid var(--focus); outline-offset:2px; }
.daily-report-filter-actions { display:grid; grid-template-columns:1fr 1.15fr; gap:8px; }
.daily-report-list-primary,.daily-report-list-secondary,.daily-report-list-quiet { display:inline-flex; min-height:44px; align-items:center; justify-content:center; padding:0 13px; border:1px solid var(--report-rule); border-radius:9px; font:inherit; font-size:.84rem; font-weight:700; text-align:center; text-decoration:none; cursor:pointer; transition:background var(--ease-standard),border-color var(--ease-standard),transform var(--ease-standard); }
.daily-report-list-primary { grid-column:2; grid-row:1; border-color:var(--report-mark); background:var(--report-mark); color:var(--accent-text); }
.daily-report-list-secondary { background:var(--surface-raised); color:var(--report-ink); }
.daily-report-list-quiet { grid-column:1/-1; min-height:38px; border-color:transparent; background:transparent; color:var(--report-subtle); font-size:.79rem; }
.daily-report-list-primary:hover,.daily-report-list-secondary:hover { border-color:var(--accent-hover); transform:translateY(-1px); }
.daily-report-list-quiet:hover { background:var(--surface-raised); color:var(--report-ink); }
.daily-report-filter-hint { margin:0; color:var(--report-subtle); font-size:.74rem; line-height:1.45; }
.daily-report-list-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:12px; }
.daily-report-list-section-heading .eyebrow { margin-bottom:7px; }
.daily-report-list-section-heading h2 { margin-bottom:5px; }
.daily-report-list-section-heading p:last-child { margin:0; color:var(--report-subtle); font-size:.84rem; line-height:1.45; }
.daily-report-history-count { flex:0 0 auto; padding:6px 10px; border:1px solid var(--report-rule); border-radius:999px; color:var(--report-subtle); font-size:.75rem; font-variant-numeric:tabular-nums; }
.daily-report-history { display:grid; gap:9px; margin:0; padding:0; list-style:none; }
.daily-report-history > .daily-report-history-item { display:block; min-width:0; margin:0; padding:0; border:1px solid var(--report-rule); border-bottom:1px solid var(--report-rule); border-radius:12px; background:var(--report-panel); transition:border-color var(--ease-standard),background var(--ease-standard),transform var(--ease-standard); }
.daily-report-history-item.is-latest { border-color:color-mix(in srgb,var(--report-mark) 58%,var(--report-rule)); background:linear-gradient(110deg,var(--surface-raised),var(--report-panel) 48%); }
.daily-report-history-link { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px; align-items:center; min-height:82px; padding:15px 18px; color:var(--report-ink); text-decoration:none; }
.daily-report-history-item:hover { border-color:var(--report-mark); transform:translateY(-1px); }
.daily-report-history-link:focus-visible { border-radius:12px; outline:3px solid var(--focus); outline-offset:2px; }
.daily-report-history-copy { display:grid; gap:7px; min-width:0; }
.daily-report-history-primary { display:flex; flex-wrap:wrap; align-items:center; gap:8px 11px; min-width:0; }
.daily-report-history-primary strong { font-size:1rem; font-variant-numeric:tabular-nums; }
.daily-report-history-version { color:var(--report-subtle); font-size:.8rem; }
.daily-report-latest { padding:4px 8px; border-radius:999px; background:var(--badge-soft); color:var(--report-mark); font-size:.7rem; font-weight:750; }
.daily-report-history-meta { display:flex; flex-wrap:wrap; gap:5px 8px; color:var(--report-subtle); font-size:.77rem; line-height:1.4; }
.daily-report-history-trailing { display:flex; align-items:center; gap:14px; }
.daily-report-history-trailing .daily-report-status { white-space:nowrap; }
.daily-report-history-arrow { color:var(--report-mark); font-size:1.2rem; line-height:1; transition:transform var(--ease-standard); }
.daily-report-history-item:hover .daily-report-history-arrow { transform:translateX(3px); }
.daily-report-list-empty { display:grid; justify-items:center; gap:9px; padding:36px 22px; border:1px dashed var(--report-rule); border-radius:12px; background:var(--report-panel); text-align:center; }
.daily-report-list-empty > span { display:grid; width:42px; height:42px; place-items:center; border:1px solid var(--report-rule); border-radius:50%; color:var(--report-mark); font-size:1.25rem; }
.daily-report-list-empty h3 { margin:3px 0 0; }
.daily-report-list-empty p { max-width:55ch; margin:0; color:var(--report-subtle); font-size:.86rem; line-height:1.5; }
.daily-report-settings-copy p { margin:0 0 12px; color:var(--report-subtle); font-size:.85rem; line-height:1.5; }
.daily-report-page .daily-report-settings-form { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,.65fr) auto; gap:15px; align-items:end; padding-bottom:15px; }
.daily-report-settings-form .daily-report-settings-toggle { display:flex; flex-direction:row; align-items:flex-start; gap:11px; padding:10px 0; }
.daily-report-settings-toggle input { width:18px; height:18px; flex:0 0 auto; margin:2px 0 0; accent-color:var(--report-mark); }
.daily-report-settings-toggle span { display:grid; gap:4px; }
.daily-report-settings-toggle strong { font-size:.85rem; }
.daily-report-settings-toggle small { color:var(--report-subtle); font-size:.75rem; line-height:1.4; }
.daily-report-settings-form > label:not(.daily-report-settings-toggle) { gap:7px; color:var(--report-subtle); font-size:.78rem; }
.daily-report-settings-form select { width:100%; min-height:44px; padding:0 10px; border:1px solid var(--report-rule); border-radius:9px; background:var(--input-bg); color:var(--report-ink); font:inherit; }
.daily-report-settings-form > p { grid-column:1/3; grid-row:2; margin:0; color:var(--report-subtle); font-size:.77rem; line-height:1.45; }
.daily-report-settings-form > p a { color:var(--report-mark); }
.daily-report-settings-form > button { grid-column:3; grid-row:1/3; align-self:center; }
/* Scheduled delivery settings stay visible before the report archive. */
.daily-report-schedule-panel { display:grid; gap:20px; padding:22px 24px; border:1px solid var(--report-rule); border-radius:15px; background:var(--report-panel); }
.daily-report-schedule-panel > header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.daily-report-schedule-panel > header .eyebrow { margin-bottom:6px; }
.daily-report-schedule-panel > header h2 { margin:0 0 5px; }
.daily-report-schedule-panel > header p:last-child { margin:0; color:var(--report-subtle); font-size:.85rem; line-height:1.45; }
.daily-report-schedule-state,.daily-report-channel-state { display:inline-flex; width:max-content; align-items:center; padding:5px 9px; border:1px solid var(--report-rule); border-radius:999px; color:var(--report-subtle); font-size:.75rem; font-weight:750; white-space:nowrap; }
.daily-report-schedule-state.is-enabled,.daily-report-channel-state.is-ready { border-color:color-mix(in srgb,#3b9b69 42%,var(--report-rule)); background:color-mix(in srgb,#3b9b69 12%,transparent); color:#348c60; }
.daily-report-schedule-state.is-disabled { background:var(--surface-raised); }
.daily-report-settings-form { display:grid; gap:18px; padding:0!important; }
.daily-report-settings-form .daily-report-settings-toggle { width:fit-content; margin:0; padding:0; }
.daily-report-channel-options,.daily-report-time-options { display:grid; gap:10px; min-width:0; margin:0; padding:0; border:0; }
.daily-report-channel-options legend,.daily-report-time-options legend { margin-bottom:2px; color:var(--report-ink); font-size:.82rem; font-weight:750; }
.daily-report-channel-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
.daily-report-channel-options legend { grid-column:1/-1; }
.daily-report-channel-card { position:relative; display:grid!important; grid-template-columns:auto minmax(0,1fr) auto; gap:10px!important; align-items:center; min-width:0; margin:0!important; padding:13px 14px; border:1px solid var(--report-rule); border-radius:11px; background:var(--surface-raised); cursor:pointer; }
.daily-report-channel-card input { width:18px; height:18px; margin:0; accent-color:var(--report-mark); }
.daily-report-channel-card input:disabled { cursor:not-allowed; }
.daily-report-channel-card-copy { display:grid; gap:3px; min-width:0; }
.daily-report-channel-card-copy strong { color:var(--report-ink); font-size:.84rem; }
.daily-report-channel-card-copy small { overflow-wrap:anywhere; color:var(--report-subtle); font-size:.73rem; line-height:1.35; }
.daily-report-channel-state.is-missing,.daily-report-channel-state.is-failed { border-color:color-mix(in srgb,#c34e45 38%,var(--report-rule)); background:color-mix(in srgb,#c34e45 9%,transparent); color:#ad463e; }
.daily-report-channel-reason { grid-column:2/-1; margin-top:-3px; color:var(--report-subtle); font-size:.72rem; line-height:1.4; }
.daily-report-channel-reason a { color:var(--report-mark); font-weight:700; }
.daily-report-time-options { grid-template-columns:minmax(0,1fr); align-items:start; }
.daily-report-time-options legend,.daily-report-schedule-preview { grid-column:1/-1; }
.daily-report-time-options #daily-report-time-list { display:flex; flex-wrap:wrap; gap:9px; }
.daily-report-time-row { display:flex; align-items:end; gap:6px; }
.daily-report-time-row label { display:grid!important; gap:5px!important; margin:0!important; color:var(--report-subtle); font-size:.72rem; }
.daily-report-time-row input { width:122px; min-height:40px; padding:0 9px; border:1px solid var(--report-rule); border-radius:8px; background:var(--input-bg); color:var(--report-ink); font:inherit; color-scheme:inherit; }
.daily-report-remove-time { min-height:40px; padding:0 9px; border:1px solid var(--report-rule); border-radius:8px; background:transparent; color:var(--report-subtle); font:inherit; font-size:.72rem; cursor:pointer; }
.daily-report-remove-time:disabled { opacity:.45; cursor:not-allowed; }
.daily-report-time-options > .daily-report-list-quiet { grid-column:1; grid-row:auto; justify-self:start; width:auto; min-height:44px; padding-inline:12px; border-color:var(--report-rule); }
.daily-report-schedule-preview { margin:0; color:var(--report-subtle); font-size:.78rem; line-height:1.45; }
.daily-report-schedule-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:14px; border-top:1px solid var(--report-rule); }
.daily-report-schedule-footer > p { margin:0; color:var(--report-subtle); font-size:.75rem; }
.daily-report-schedule-footer > p strong { color:var(--report-ink); }
.daily-report-schedule-footer > div { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.daily-report-schedule-footer > div > button { width:auto; }
.daily-report-schedule-footer .daily-report-list-quiet { min-height:42px; padding:0 11px; border:1px solid var(--report-rule); border-radius:9px; }
.daily-report-schedule-footer .daily-report-list-primary { grid-column:auto; grid-row:auto; }
.daily-report-schedule-panel button:disabled { opacity:.5; cursor:not-allowed; }
.daily-report-page .daily-report-settings-form { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:18px 22px; }
.daily-report-page .daily-report-settings-form > * { min-width:0; }
.daily-report-page .daily-report-settings-form > .daily-report-settings-toggle,.daily-report-page .daily-report-settings-form > .daily-report-schedule-footer { grid-column:1/-1; }
.daily-report-channel-options { grid-template-columns:minmax(0,1fr); align-content:start; }
.daily-report-channel-options legend { grid-column:1; }
.daily-report-channel-card { grid-template-columns:auto minmax(0,1fr) auto; min-height:68px; }
.daily-report-channel-card-copy small { overflow-wrap:anywhere; }
.daily-report-schedule-panel { gap:18px; }
.daily-report-time-row input,.daily-report-remove-time,.daily-report-schedule-footer .daily-report-list-quiet { min-height:44px; }
.daily-report-channel-card:focus-within { border-color:var(--focus); box-shadow:0 0 0 2px color-mix(in srgb,var(--focus) 22%,transparent); }
.daily-report-settings-form input:focus-visible,.daily-report-settings-form button:focus-visible { outline:3px solid var(--focus); outline-offset:2px; }
.daily-report-page .daily-report-list-primary,.daily-report-page .daily-report-download { border-color:var(--accent); background:var(--accent); color:var(--accent-text); }
.daily-report-page .daily-report-list-primary:hover,.daily-report-page .daily-report-download:hover { border-color:var(--accent-hover); background:var(--accent-hover); color:var(--accent-text); box-shadow:var(--button-hover-shadow); filter:none; }
.daily-report-page .daily-report-remove-time { width:auto; min-width:82px; flex:0 0 auto; padding-inline:11px; white-space:nowrap; }
.daily-report-page .daily-report-remove-time:hover { border-color:var(--report-rule); background:var(--surface-raised); color:var(--report-ink); box-shadow:none; transform:none; }
.daily-report-version-list { margin:0 16px 12px; border-top:1px solid var(--report-rule); }
.daily-report-version-list > summary { display:flex; width:fit-content; min-height:44px; align-items:center; padding:4px 2px; color:var(--report-mark); font-size:.78rem; font-weight:700; cursor:pointer; }
.daily-report-version-list > ul { display:grid; gap:6px; margin:10px 0 0; padding:0; list-style:none; }
.daily-report-version-list > ul > li { display:block; min-width:0; margin:0; padding:0; border:1px solid var(--report-rule); border-radius:8px; background:var(--surface-raised); }
.daily-report-version-link { display:grid; grid-template-columns:minmax(80px,.35fr) minmax(0,1fr) auto; gap:10px; align-items:center; min-height:42px; padding:8px 10px; color:var(--report-ink); font-size:.76rem; text-decoration:none; }
.daily-report-version-link > span:first-child { display:grid; gap:2px; }
.daily-report-version-link small { margin:0; color:var(--report-subtle); font-size:.75rem; }
.daily-report-version-link > span:nth-child(2) { color:var(--report-subtle); }
.daily-report-version-link:focus-visible,.daily-report-version-list > summary:focus-visible { border-radius:5px; outline:3px solid var(--focus); outline-offset:2px; }
@media(max-width:900px) {
 .daily-report-list-tools { grid-template-columns:minmax(0,1fr); gap:18px; }
 .daily-report-list-tools-copy { max-width:54ch; }
 .daily-report-page .daily-report-settings-form { grid-template-columns:minmax(0,1fr); gap:15px; }
 .daily-report-page .daily-report-settings-form > .daily-report-settings-toggle,.daily-report-page .daily-report-settings-form > .daily-report-schedule-footer { grid-column:1; }
 .daily-report-settings-form > p { grid-column:1/-1; grid-row:auto; }
 .daily-report-settings-form > button { grid-column:1/-1; grid-row:auto; justify-self:start; }
 .daily-report-schedule-panel { padding:19px; }
}
@media(max-width:600px) {
 .daily-report-page-heading { padding-top:0; }
 .daily-report-page-heading h1 { font-size:1.85rem; }
 .daily-report-list-tools { gap:16px; padding:18px 16px; border-radius:12px; }
 .daily-report-filter-actions { grid-template-columns:1fr 1fr; }
 .daily-report-list-primary { grid-column:2; grid-row:1; }
 .daily-report-list-secondary { grid-column:1; grid-row:1; }
 .daily-report-list-quiet { grid-column:1/-1; }
 .daily-report-list-section-heading { align-items:flex-start; }
 .daily-report-history-count { margin-top:24px; }
 .daily-report-history-link { grid-template-columns:minmax(0,1fr); gap:11px; min-height:0; padding:14px; }
 .daily-report-history-trailing { justify-content:space-between; }
 .daily-report-page .daily-report-settings-form { grid-template-columns:minmax(0,1fr); gap:12px; }
 .daily-report-settings-form > p,.daily-report-settings-form > button { grid-column:1; grid-row:auto; }
 .daily-report-settings-form > button { justify-self:stretch; }
 .daily-report-schedule-panel { gap:17px; padding:16px 14px; }
 .daily-report-schedule-panel > header { flex-direction:column; }
 .daily-report-channel-options { grid-template-columns:minmax(0,1fr); }
 .daily-report-channel-options { grid-template-columns:minmax(0,1fr); }
 .daily-report-channel-options legend { grid-column:1; }
 .daily-report-time-options { grid-template-columns:minmax(0,1fr); }
 .daily-report-time-options > .daily-report-list-quiet { grid-column:1; grid-row:auto; justify-self:start; }
 .daily-report-schedule-footer { align-items:stretch; flex-direction:column; }
 .daily-report-schedule-footer > div { display:grid; grid-template-columns:minmax(0,1fr); }
 .daily-report-version-list { margin-inline:12px; }
 .daily-report-version-link { grid-template-columns:minmax(0,1fr) auto; gap:6px; }
 .daily-report-version-link > span:nth-child(2) { grid-column:1; grid-row:2; }
 .daily-report-version-link > .daily-report-status { grid-column:2; grid-row:1/3; }
}

.financial-receipts-review { padding:20px; border:1px solid var(--line); border-radius:15px; background:var(--surface); min-width:0; }
.financial-receipt-review { padding:16px 0; border-top:1px solid var(--line); overflow-wrap:anywhere; }
.financial-receipt-review form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.financial-receipt-review label { display:grid; gap:6px; min-width:0; }
.financial-receipt-review input,.financial-receipt-review select { width:100%; min-width:0; min-height:44px; }
.financial-receipt-review label:has(input[type="checkbox"]) { grid-column:1/-1; display:flex; align-items:center; gap:10px; }
.financial-receipt-review input[type="checkbox"] { width:20px; min-width:20px; min-height:20px; }
.financial-receipt-review [role="alert"] { grid-column:1/-1; }
@media(max-width:600px) { .financial-receipts-review { padding:16px; } .financial-receipt-review form { grid-template-columns:1fr; } }

/* Commission screen: neutral period shortcuts and a clear two-value financial hierarchy. */
.commission-page .commission-filter-panel,
.commission-page .commission-list-section {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface);
}
.commission-page .commission-filter-panel { display: grid; gap: 16px; padding: 18px; }
.commission-page .commission-period-heading,
.commission-page .commission-list-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.commission-page .commission-section-kicker {
  color: var(--accent);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .1em;
}
.commission-page .commission-period-heading p {
  margin: 4px 0 0;
  color: var(--text);
  font-size: .95rem;
  font-weight: 700;
}
.commission-page .commission-period-context {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: flex-end;
  gap: 5px 8px;
  color: var(--muted);
  font-size: .8rem;
  text-align: right;
}
.commission-page .commission-period-context strong { color: var(--text); font-weight: 650; }
.commission-page .commission-period-context small { flex-basis: 100%; font-size: .72rem; }
.commission-page .commission-period-shortcuts { display: flex; flex-wrap: wrap; gap: 8px; }
.commission-page .commission-period-shortcuts button {
  width: auto;
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: transparent;
  color: var(--text);
  box-shadow: none;
  font-size: .84rem;
  font-weight: 650;
}
.commission-page .commission-period-shortcuts button:hover {
  border-color: var(--line-strong);
  background: var(--surface-raised);
  box-shadow: none;
}
.commission-page .commission-period-shortcuts button.is-active,
.commission-page .commission-period-shortcuts button.is-active:hover {
  border-color: var(--accent);
  background: var(--accent);
  color: var(--accent-text);
  box-shadow: none;
}
.commission-page .commission-period-shortcuts button:focus-visible,
.commission-page .commission-filter-options button:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 2px;
}
.commission-page .commission-filter-options {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 12px;
  margin: 0;
}
.commission-page .commission-filter-options > label { min-width: 180px; flex: 1 1 180px; }
.commission-page .commission-date-range { display: grid; grid-template-columns: repeat(2,minmax(160px,1fr)); gap: 12px; flex: 1 1 360px; }
.commission-page .commission-date-range label { display: grid; gap: 6px; color: var(--muted); font-size: .76rem; font-weight: 700; }
.commission-page .commission-filter-options input,
.commission-page .commission-filter-options select {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  margin-top: 5px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--bg-soft);
  color: var(--text);
}
.commission-page .commission-filter-options .commission-apply-filters { width: auto; min-height: 44px; padding: 0 16px; }
.commission-page .commission-overview { display: grid; gap: 12px; }
.commission-page .commission-primary-metrics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.commission-page .commission-primary-metric {
  display: grid;
  align-content: start;
  gap: 9px;
  min-width: 0;
  min-height: 148px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface);
}
.commission-page .commission-primary-metric--service { border-inline-start: 3px solid var(--accent); }
.commission-page .commission-primary-metric span { color: var(--muted); font-size: .8rem; font-weight: 700; }
.commission-page .commission-primary-metric strong { color: var(--text); font-size: clamp(1.55rem,2.2vw,2rem); line-height: 1.1; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.commission-page .commission-primary-metric small { max-width: 52ch; color: var(--muted); font-size: .78rem; line-height: 1.45; }
.commission-page .commission-status-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.commission-page .commission-status-metrics > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; min-width: 0; padding: 13px 16px; }
.commission-page .commission-status-metrics > div + div { border-inline-start: 1px solid var(--line); }
.commission-page .commission-status-metrics span { color: var(--muted); font-size: .78rem; }
.commission-page .commission-status-metrics strong { font-size: .9rem; font-variant-numeric: tabular-nums; }
.commission-page .commission-list-section { overflow: hidden; }
.commission-page .commission-list-heading { padding: 18px 20px 14px; }
.commission-page .commission-list-heading h2 { margin: 4px 0 0; font-size: 1.05rem; }
.commission-page .commission-list-heading > span { color: var(--muted); font-size: .78rem; }
.commission-page .commission-list-section .services-table-wrap { overflow-x: auto; border: 0; border-top: 1px solid var(--line); border-radius: 0; box-shadow: none; }
.commission-page .commission-list-section .services-table { min-width: 760px; }
.commission-page .commission-list-section .empty-cell { padding: 28px 16px; color: var(--muted); text-align: center; }
@media (max-width: 760px) {
  .commission-page .commission-filter-panel { gap: 14px; padding: 16px; }
  .commission-page .commission-period-heading { align-items: flex-start; flex-direction: column; gap: 8px; }
  .commission-page .commission-period-context { justify-content: flex-start; text-align: left; }
  .commission-page .commission-period-context small { flex-basis: auto; }
  .commission-page .commission-period-shortcuts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .commission-page .commission-period-shortcuts button { width: 100%; padding-inline: 8px; }
  .commission-page .commission-filter-options { display: grid; grid-template-columns: minmax(0,1fr); width: 100%; }
  .commission-page .commission-filter-options > label,
  .commission-page .commission-date-range { min-width: 0; width: 100%; }
  .commission-page .commission-date-range { grid-template-columns: minmax(0,1fr); }
  .commission-page .commission-filter-options .commission-apply-filters { width: 100%; }
  .commission-page .commission-primary-metrics { grid-template-columns: minmax(0,1fr); gap: 10px; }
  .commission-page .commission-primary-metric { min-height: 0; padding: 17px; }
  .commission-page .commission-status-metrics { grid-template-columns: minmax(0,1fr); }
  .commission-page .commission-status-metrics > div + div { border-top: 1px solid var(--line); border-inline-start: 0; }
  .commission-page .commission-list-heading { padding: 16px; }
  .commission-page .commission-list-section .services-table-wrap { overflow: visible; }
  .commission-page .commission-list-section .services-table { min-width: 0; }
}
.commission-page .services-heading p { margin: 6px 0 0; color: var(--muted); font-size: .88rem; }
.commission-page .commission-error-state { display: grid; justify-items: start; gap: 12px; padding: 20px; border: 1px solid var(--line-strong); border-radius: 12px; background: var(--surface); }
.commission-page .commission-error-state p { margin: 0; color: var(--text); }
.commission-page .commission-error-state button { width: auto; min-height: 42px; padding: 0 16px; }
@media (max-width: 760px) {
  .commission-page .commission-status-metrics > div { padding: 12px 14px; }
  .commission-page .commission-error-state { padding: 16px; }
  .commission-page .commission-error-state button { width: 100%; }
}

.commission-page .commission-professional-filter { display: grid; gap: 10px; min-width: 0; }
.commission-page .commission-professional-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.commission-page .commission-professional-context { color: var(--muted); font-size: .8rem; }
.commission-page .commission-professional-context strong { color: var(--text); font-weight: 650; }
.commission-page .commission-professional-cards { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; }
.commission-page .commission-professional-card {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  width: auto;
  min-width: 142px;
  min-height: 58px;
  padding: 8px 13px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: var(--surface);
  color: var(--text);
  box-shadow: none;
  text-align: left;
}
.commission-page .commission-professional-card:hover { border-color: var(--line-strong); background: var(--surface-raised); box-shadow: none; }
.commission-page .commission-professional-card.is-active,
.commission-page .commission-professional-card.is-active:hover {
  border-color: var(--accent);
  background: var(--surface-raised);
  box-shadow: inset 0 0 0 1px var(--line-strong);
}
.commission-page .commission-professional-card:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.commission-page .commission-professional-card > span:last-child { overflow: hidden; max-width: 180px; font-size: .84rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.commission-page .commission-avatar {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
  background: var(--surface-raised);
  color: var(--accent);
}
.commission-page .commission-avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
.commission-page .commission-avatar img[data-professional-photo][hidden] { display: none; }
.commission-page .commission-avatar [data-photo-initials] { display: grid; width: 100%; height: 100%; place-items: center; font-size: .78rem; font-weight: 800; letter-spacing: .02em; }
.commission-page .commission-avatar [data-photo-initials][hidden] { display: none; }
.commission-page .commission-avatar-fallback { font-size: .78rem; font-weight: 800; letter-spacing: .02em; }
.commission-page .commission-avatar-fallback[hidden] { display: none; }
.commission-page .commission-avatar--all svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 700px) {
  .commission-page .commission-professional-heading { align-items: flex-start; flex-direction: column; gap: 3px; }
  .commission-page .commission-professional-cards { flex-wrap: nowrap; overflow-x: auto; padding: 2px 2px 8px; scroll-snap-type: x proximity; scrollbar-width: thin; overscroll-behavior-inline: contain; }
  .commission-page .commission-professional-card { flex: 0 0 auto; min-width: 150px; scroll-snap-align: start; }
}
