:root{--bg: #f3e6ec;--bg-elevated: #fffafb;--bg-soft: #f8eef3;--line: rgba(92, 42, 62, .12);--line-strong: rgba(92, 42, 62, .22);--text: #3b2430;--text-secondary: #5c3a48;--text-muted: #8a6574;--accent: #c45c7a;--accent-strong: #d47893;--accent-dim: rgba(196, 92, 122, .14);--danger: #c45c5c;--danger-dim: rgba(196, 92, 92, .1);--success: #5d9a78;--success-dim: rgba(93, 154, 120, .14);--radius: 22px;--radius-sm: 14px;--shadow: 0 16px 40px rgba(92, 42, 62, .08);--font-sans: "Outfit", system-ui, sans-serif;--font-display: "Cormorant Garamond", Georgia, serif;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px)}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-sans);color:var(--text);background:radial-gradient(900px 480px at 8% -8%,rgba(212,120,147,.22),transparent 55%),radial-gradient(700px 420px at 100% 0%,rgba(196,92,122,.12),transparent 50%),linear-gradient(180deg,#fbeff4 0%,var(--bg) 42%,#efe0e7 100%);background-attachment:fixed;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none;color:inherit}.app-shell{width:min(100%,480px);margin:0 auto;min-height:100dvh;padding:calc(16px + var(--safe-top)) 16px calc(28px + var(--safe-bottom));display:flex;flex-direction:column}.page{display:flex;flex-direction:column;gap:20px;flex:1;animation:riseIn .32s ease both}@keyframes riseIn{0%{transform:translateY(8px)}to{transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.page,.success-hero .check{animation:none}}.brand{font-family:var(--font-display);font-size:2.7rem;line-height:.95;letter-spacing:.01em;margin:0;color:var(--text);font-weight:600}.eyebrow{margin:0;color:var(--accent);font-size:.74rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.lead{margin:0;color:var(--text-muted);line-height:1.5;font-size:.98rem}.section-title{margin:0;font-size:1.05rem;font-weight:600;color:var(--text)}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 20px;border-radius:999px;font-weight:600;transition:transform .15s ease,background .15s ease,border-color .15s ease,color .15s ease}.btn:active:not(:disabled){transform:scale(.98)}.btn-primary{background:linear-gradient(135deg,var(--accent-strong),var(--accent));color:#fff;box-shadow:0 10px 24px #c45c7a47}.btn-primary:disabled{background:#e4d0d7;color:#9b7d87;box-shadow:none;cursor:not-allowed}.btn-secondary{background:#ffffffb3;border:1px solid var(--line-strong);color:var(--text)}.btn-ghost{color:var(--text-muted);min-height:44px;padding:0 8px}.btn-danger{color:var(--danger);border:1px solid rgba(196,92,92,.35);background:var(--danger-dim);border-radius:999px;min-height:44px;padding:0 16px;font-weight:600}.btn-block{width:100%}.service-card,.master-card,.appointment-card,.summary-card,.admin-card,.visit-card{background:linear-gradient(180deg,rgba(255,255,255,.9),transparent 48%),var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.service-card{text-align:left;width:100%;position:relative}.service-card.selected{border-color:#c45c7a8c;background:linear-gradient(180deg,var(--accent-dim),var(--bg-elevated));box-shadow:0 0 0 1px #c45c7a1f}.service-card h3{margin:0 0 6px;font-size:1.05rem}.service-card p{margin:0;color:var(--text-muted);font-size:.9rem;line-height:1.45}.check-mark{position:absolute;top:14px;right:14px;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line-strong);display:grid;place-items:center;font-size:.75rem;color:transparent}.service-card.selected .check-mark{background:var(--accent);border-color:var(--accent);color:#fff}.meta{display:flex;gap:12px;margin-top:14px;color:var(--accent);font-weight:700;font-size:.95rem}.category-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.category-tabs::-webkit-scrollbar{display:none}.category-chip{flex:0 0 auto;min-height:38px;padding:0 14px;border-radius:999px;border:1px solid var(--line-strong);background:#ffffffb3;color:var(--text-muted);font-weight:600;font-size:.88rem}.category-chip.is-active{background:var(--accent);border-color:transparent;color:#fff}.master-card{display:flex;align-items:flex-start;gap:14px;text-align:left;width:100%}.master-card.selected,.master-card:hover{border-color:#c45c7a80}.master-avatar{flex:0 0 48px;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--accent-dim);border:1px solid rgba(196,92,122,.35);color:var(--accent);font-weight:700}.master-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.master-role{color:var(--accent);font-size:.82rem;font-weight:600}.master-desc{color:var(--text-muted);font-size:.9rem;line-height:1.4}.date-picker{position:relative}.date-hint{margin:0 0 10px;font-size:.8rem;color:var(--text-muted)}.date-scroller{display:flex;gap:10px;overflow-x:auto;padding:2px 8px 10px 2px}.date-chip{flex:0 0 auto;width:74px;min-height:88px;border-radius:16px;border:1px solid var(--line-strong);background:var(--bg-elevated);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.date-chip .dow{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.date-chip .dom{font-size:1.3rem;font-weight:700}.date-chip.selected{border-color:var(--accent);background:var(--accent-dim)}.date-chip:disabled .dow,.date-chip:disabled .dom{color:#c3a8b2}.page-with-sticky{padding-bottom:108px}.sticky-cta{position:sticky;bottom:calc(8px + var(--safe-bottom));margin-top:auto;padding-top:12px;background:linear-gradient(180deg,transparent,rgba(243,230,236,.92) 28%,rgba(243,230,236,.98));z-index:2}.booking-summary{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;padding:12px 14px;border-radius:16px;background:#ffffffc7;border:1px solid var(--line);font-size:.92rem;font-weight:600}.slots-scroll{flex:1;min-height:0;max-height:calc(100dvh - 260px);overflow-y:auto}.slots-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.slot-btn{min-height:48px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--bg-elevated);font-weight:600}.slot-btn.selected{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.empty-state,.loading,.error-box,.warn-box{padding:20px;border-radius:var(--radius);border:1px dashed var(--line-strong);color:var(--text-muted);text-align:center}.error-box,.warn-box{border-style:solid;text-align:left}.error-box{border-color:#c45c5c66;color:#8a3a3a;background:var(--danger-dim)}.warn-box{border-color:#c45c7a59;color:var(--text-secondary);background:var(--accent-dim)}.demo-banner{align-self:flex-start;font-size:.72rem;color:var(--text-muted);background:#ffffffa6;border:1px solid var(--line);border-radius:999px;padding:6px 10px}.demo-chrome{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin-bottom:4px}.demo-badge{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:var(--accent-dim);border:1px solid rgba(196,92,122,.28);border-radius:999px;padding:5px 10px}.demo-chrome-link{font-size:.82rem;font-weight:600;color:var(--text-secondary);min-height:32px;padding:0;background:none;border:none}.demo-chrome-link:hover{color:var(--accent)}.demo-admin-banner{margin-bottom:16px;padding:10px 14px;border-radius:14px;background:var(--accent-dim);border:1px solid rgba(196,92,122,.22);color:var(--text-secondary);font-size:.9rem}.demo-tour-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;pointer-events:none}.demo-tour-spotlight{position:fixed;border-radius:18px;box-shadow:0 0 0 9999px #3b243085;outline:2px solid var(--accent);pointer-events:none;transition:top .2s ease,left .2s ease,width .2s ease,height .2s ease}.demo-tour-tooltip{position:fixed;z-index:81;pointer-events:auto;padding:14px 16px 12px;border-radius:18px;background:var(--bg-elevated);border:1px solid var(--line);box-shadow:var(--shadow)}.demo-tour-progress{margin:0 0 6px;color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.demo-tour-tooltip h2{margin:0 0 6px;font-size:1.05rem}.demo-tour-tooltip p{margin:0;color:var(--text-muted);font-size:.92rem;line-height:1.45}.demo-tour-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:14px}.demo-tour-nav{display:flex;gap:8px}.demo-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#3b243075;display:flex;align-items:flex-end;justify-content:center}.demo-sheet{width:min(100%,480px);max-height:min(88dvh,640px);overflow:auto;padding:22px 18px calc(18px + var(--safe-bottom));border-radius:24px 24px 0 0;background:var(--bg-elevated);box-shadow:var(--shadow)}.demo-sheet h2{margin:8px 0 10px;font-family:var(--font-display);font-size:2rem;line-height:1.05}.demo-sheet-list,.demo-sheet-checks{margin:14px 0 18px;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.demo-sheet-list li,.demo-sheet-checks li{color:var(--text-secondary);line-height:1.4}.demo-sheet-list li:before{content:"— ";color:var(--accent)}.demo-sheet-actions{display:flex;flex-direction:column;gap:8px}@media(min-width:720px){.demo-sheet-backdrop{align-items:center}.demo-sheet{border-radius:var(--radius);padding:28px 24px 24px}}@media(prefers-reduced-motion:reduce){.demo-tour-spotlight{transition:none}}.success-hero{text-align:center;padding:28px 12px 8px}.success-hero .check{width:72px;height:72px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:var(--success-dim);border:1px solid rgba(93,154,120,.4);color:var(--success);font-size:2rem;animation:pop .45s ease both}@keyframes pop{0%{transform:scale(.85)}to{transform:scale(1)}}.summary-row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}.summary-row:last-child{border-bottom:none}.summary-row span:first-child{color:var(--text-secondary)}.summary-row span:last-child{font-weight:600;text-align:right}.item-list{margin:0;padding:0;list-style:none}.item-list li{padding:8px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px}.item-list li:last-child{border-bottom:none}.topbar{display:flex;align-items:center;gap:8px;min-height:40px}.topbar h1{margin:0;font-size:1.2rem;font-weight:650}.appointment-price{color:var(--accent);font-weight:700}.admin-layout{width:min(100%,1080px);margin:0 auto;padding:24px 16px 40px}.admin-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elevated)}.admin-table{width:100%;border-collapse:collapse;min-width:760px}.admin-table th,.admin-table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);font-size:.9rem;vertical-align:top}.admin-table th{color:var(--text-muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}.admin-cards{display:none;margin-top:16px}.admin-tabs,.admin-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.admin-tab{min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--line);color:var(--text-muted);background:#ffffffb3}.admin-tab.is-active{color:#fff;background:var(--accent);border-color:transparent}.admin-filters input,.admin-filters select,.admin-card input,.admin-card select,.admin-card textarea{min-height:44px;padding:0 12px;border-radius:12px;border:1px solid var(--line-strong);background:var(--bg-elevated);color:var(--text)}.checkbox-grid{display:flex;flex-wrap:wrap;gap:8px}.checkbox-grid label{display:flex;align-items:center;gap:6px;font-size:.88rem}.status-pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:.78rem;font-weight:600}.status-pill.confirmed{background:var(--accent-dim);color:var(--accent)}.status-pill.completed{background:var(--success-dim);color:var(--success)}.status-pill.cancelled{background:var(--danger-dim);color:var(--danger)}.footer-nav{margin-top:auto;padding-top:24px;display:flex;gap:8px}.hero-block{padding:12px 0 4px;display:flex;flex-direction:column;gap:14px}.muted{color:var(--text-muted)}.detail-drawer{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}@media(min-width:768px){.app-shell{padding-top:32px}}@media(max-width:720px){.admin-table-wrap{display:none}.admin-cards{display:flex;flex-direction:column;gap:12px}}
