:root{--ink: #2a2220;--muted: #7a6c68;--surface: rgba(255, 252, 250, .92);--surface-solid: #fffaf8;--panel: #fff8f5;--accent: #9a4d5c;--accent-deep: #7a3846;--accent-soft: #f3e0e4;--border: #ead9d4;--border-strong: #d9c2bb;--danger: #b42318;--radius: 16px;--radius-sm: 12px;--shadow: 0 12px 40px rgba(74, 48, 42, .08);--font-display: "Fraunces", Georgia, serif;--font-body: "Outfit", system-ui, sans-serif;font-family:var(--font-body);color:var(--ink);background-color:#f4ebe6;background-image:radial-gradient(ellipse 80% 50% at 10% -10%,#f8d9d4 0%,transparent 55%),radial-gradient(ellipse 70% 45% at 100% 0%,#e8d5c8 0%,transparent 50%),linear-gradient(180deg,#f7ece8,#f3e7e1 35%,#efe4de);background-attachment:fixed}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,textarea{font:inherit}button{transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}button:active:not(:disabled){transform:scale(.98)}a{color:inherit;text-decoration:none}.appShell{max-width:720px;margin:0 auto;padding:28px 16px 56px;animation:riseIn .48s ease both}@keyframes riseIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.salonHeader{background:var(--surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.7);border-bottom:none;border-radius:28px 28px 0 0;text-align:center;padding:32px 22px 22px;box-shadow:var(--shadow)}.logoMark{width:64px;height:64px;margin:0 auto 14px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(145deg,#fff,#f6e4e0);border:1px solid var(--border);animation:floatMark 4.5s ease-in-out infinite}@keyframes floatMark{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.logoScript{font-family:var(--font-display);font-size:1.75rem;font-weight:600;color:var(--accent);line-height:1}.brandEyebrow{margin:0 0 6px;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:500}.salonHeader h1{margin:0;font-family:var(--font-display);font-size:clamp(1.85rem,4vw,2.25rem);font-weight:600;letter-spacing:-.02em}.contactLine,.noteLine,.subtitle,.muted,.requiredHint{color:var(--muted)}.contactLine,.noteLine{margin:6px 0 0;font-size:.95rem}.noteLine{font-size:.82rem;margin-top:10px;max-width:32ch;margin-left:auto;margin-right:auto;line-height:1.4}.mainPanel{background:var(--panel);border:1px solid rgba(255,255,255,.65);border-top:1px solid var(--border);border-radius:0 0 28px 28px;padding:20px 16px 24px;min-height:520px;box-shadow:var(--shadow)}.flowPage{display:flex;flex-direction:column;gap:14px;color:var(--ink);animation:fadePanel .32s ease both}@keyframes fadePanel{0%{opacity:0}to{opacity:1}}.tabRow{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:4px;background:#ffffffa6;border:1px solid var(--border);border-radius:var(--radius-sm)}.tab{border-radius:10px;border:none;background:transparent;color:var(--muted);padding:11px 14px;font-weight:600}.tab.active{background:var(--surface-solid);color:var(--ink);box-shadow:0 1px 2px #4a302a0f}.tab:disabled{opacity:.45}.searchField input,.bookForm input,.bookForm textarea{width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;background:var(--surface-solid);color:var(--ink);outline:none}.searchField input:focus,.bookForm input:focus,.bookForm textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.bookForm textarea{resize:vertical;min-height:96px}.groupList{display:flex;flex-direction:column;gap:18px}.serviceGroup{display:flex;flex-direction:column;gap:10px}.groupTitle{margin:0;padding:0 4px;font-family:var(--font-display);font-size:.95rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.accordionList{display:flex;flex-direction:column;gap:10px}.accordion{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface-solid)}.accordionHeader{width:100%;display:flex;justify-content:space-between;align-items:center;padding:16px 18px;background:transparent;border:none;color:var(--ink);cursor:pointer;font-weight:600;font-size:1.02rem}.accordionHeader:hover{background:#9a4d5c0a}.chevron{color:var(--accent);font-size:.85rem;transition:transform .18s ease}.serviceListWrap{padding:0 12px 14px;border-top:1px solid var(--border);animation:expandIn .22s ease both}@keyframes expandIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.choiceHint{margin:12px 4px 8px;color:var(--accent-deep);font-size:.84rem;font-weight:500}.serviceList{list-style:none;margin:0;padding:0}.serviceItem{width:100%;display:flex;justify-content:space-between;gap:12px;text-align:left;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--ink);padding:13px 14px;margin-top:8px;cursor:pointer}.serviceItem:hover{border-color:var(--border-strong);background:var(--accent-soft)}.serviceName{font-weight:500}.serviceMeta{color:var(--muted);white-space:nowrap;font-size:.9rem}.subHeader{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;background:var(--surface-solid);color:var(--ink);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px}.subHeader h2{margin:0;text-align:center;font-family:var(--font-display);font-size:1.15rem;font-weight:600}.backLink,.iconButton{border:none;background:transparent;color:var(--accent);font-size:1.5rem;cursor:pointer;line-height:1}.subtitle{margin:0;font-size:.94rem;line-height:1.45}.stackCards{display:flex;flex-direction:column;gap:10px}.infoCard{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--surface-solid);color:var(--ink);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.infoCard.clickable{cursor:pointer;width:100%;text-align:left}.infoCard.clickable:hover{border-color:var(--border-strong)}.cardTitle{margin:0;font-weight:600}.cardAccent{margin:4px 0 0;color:var(--accent);font-weight:500}.primaryButton,.outlineButton,.textButton{cursor:pointer}.primaryButton{border:none;background:var(--accent);color:#fff;border-radius:var(--radius-sm);padding:13px 22px;font-weight:600}.primaryButton:hover:not(:disabled){background:var(--accent-deep)}.primaryButton:disabled{opacity:.45;cursor:not-allowed}.primaryButton.compact{padding:9px 16px;font-size:.92rem}.primaryButton.wide,.outlineButton.wide{width:100%;text-align:center;display:inline-block}.outlineButton{border:1px solid var(--border-strong);background:var(--surface-solid);color:var(--ink);border-radius:var(--radius-sm);padding:13px 22px;font-weight:600}.outlineButton:hover{border-color:var(--accent);color:var(--accent-deep)}.textButton{border:none;background:transparent;color:var(--accent);font-weight:500}.footerActions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}.footerActions.single{grid-template-columns:1fr}.modalOverlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2a222073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:20px;z-index:40;animation:fadePanel .18s ease both}.modalCard{width:min(560px,100%);background:var(--surface-solid);color:var(--ink);border:1px solid var(--border);border-radius:22px;padding:20px;max-height:80vh;overflow:auto;box-shadow:var(--shadow);animation:riseIn .26s ease both}.modalHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.modalHeader h2{margin:0;font-family:var(--font-display);font-size:1.25rem;font-weight:600}.staffGrid{display:grid;grid-template-columns:1fr;gap:10px}@media(min-width:640px){.staffGrid{grid-template-columns:1fr 1fr}.dateTimeLayout{grid-template-columns:280px 1fr}}.staffRow{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;background:#fff}.staffIdentity{display:flex;align-items:center;gap:10px;font-weight:500}.avatar{width:34px;height:34px;border-radius:50%;background:var(--accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%239a4d5c'%3E%3Cpath d='M12 12a4 4 0 1 0-4-4 4 4 0 0 0 4 4Zm0 2c-4 0-8 2-8 4v1h16v-1c0-2-4-4-8-4Z'/%3E%3C/svg%3E") center / 18px no-repeat}.dateTimeLayout{display:grid;gap:14px}.calendarCard,.slotsPanel{background:var(--surface-solid);color:var(--ink);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.calendarNav{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-family:var(--font-display)}.weekdayRow,.dayGrid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.weekdayRow{color:var(--muted);font-size:.78rem;margin-bottom:6px;font-weight:500}.dayCell{border:none;background:transparent;border-radius:10px;aspect-ratio:1;cursor:pointer;font-weight:500}.dayCell:hover:not(:disabled){background:var(--accent-soft)}.dayCell.outside{color:#c4b5b0}.dayCell.selected{background:var(--accent);color:#fff}.dayCell:disabled{opacity:.35;cursor:not-allowed}.slotGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}.slotButton{border:1px solid var(--border);background:#fff;border-radius:10px;padding:10px 6px;cursor:pointer;font-weight:500}.slotButton:hover:not(:disabled){border-color:var(--border-strong)}.slotButton.selected{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-deep);font-weight:600}.slotButton:disabled{background:#f3ece9;color:#b5a7a2;cursor:not-allowed}.bookForm{display:flex;flex-direction:column;gap:12px}.requiredHint{margin:0;font-size:.85rem}.checkboxRow{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;color:var(--muted);line-height:1.4}.policyNote{margin:4px 0 0;text-align:center;color:var(--muted);font-size:.92rem;line-height:1.45}.cardPanel{background:var(--surface-solid);color:var(--ink);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.cardPanel.muted,.cardPanel.error{margin-top:24px}.cardPanel.error,.errorText{color:var(--danger)}.successBanner{background:var(--accent-soft);color:var(--accent-deep);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px;font-family:var(--font-display);font-weight:600;font-size:1.15rem;text-align:center}.srOnly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.adminShell{max-width:480px;margin:0 auto;padding:48px 16px;min-height:100vh;animation:riseIn .48s ease both}.adminShell.wide{max-width:880px}.adminCard{background:var(--surface);border:1px solid var(--border);border-radius:24px;padding:28px 22px;box-shadow:var(--shadow)}.adminCard h1,.adminTopBar h1{margin:0;font-family:var(--font-display);font-size:1.8rem;font-weight:600}.adminTopBar{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap;margin-bottom:18px}.adminTopActions{display:flex;gap:10px;flex-wrap:wrap}.adminFilters{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.chipButton{border:1px solid var(--border);background:var(--surface-solid);color:var(--muted);border-radius:10px;padding:8px 14px;font-weight:600;cursor:pointer}.chipButton.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-deep)}.adminList{display:flex;flex-direction:column;gap:12px}.adminApptCard{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}.adminApptMain h2{margin:0 0 4px;font-size:1.1rem}.adminApptMain p{margin:4px 0 0}.textButton.danger{color:var(--danger);flex-shrink:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
