:root { --bg:#f5f4ef; --surface:#fff; --text:#20221f; --muted:#72766f; --line:#e5e4de; --accent:#315c45; --accent2:#e8f0eb; --danger:#a53f3f; --shadow:0 14px 45px rgba(30,35,31,.08); font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:var(--text); background:var(--bg); }
* { box-sizing:border-box; }
body { min-height:100vh; margin:0; }
.shell { width:min(1100px,calc(100% - 32px)); margin:0 auto; padding:28px 0 64px; }
.shell-narrow { width:min(680px,calc(100% - 28px)); }
.brand { display:flex; align-items:baseline; gap:10px; margin:0 4px 28px; }
.brand a { color:var(--accent); font:700 28px Georgia,serif; text-decoration:none; }
.brand span,.muted { color:var(--muted); }.brand span,.small { font-size:13px; }
.card { margin-bottom:16px; padding:26px; background:var(--surface); border:1px solid var(--line); border-radius:22px; box-shadow:var(--shadow); }
.hero { padding:34px; }.hero h1,.success-card h1 { margin:6px 0 10px; font:700 36px/1.12 Georgia,serif; }
.eyebrow { margin:0; color:var(--accent); font-size:11px; font-weight:750; letter-spacing:.12em; text-transform:uppercase; }
.center { padding:70px 20px; text-align:center; }.hidden { display:none!important; }.disabled { pointer-events:none; opacity:.5; }
.spinner { width:32px; height:32px; margin:auto; border:3px solid var(--line); border-top-color:var(--accent); border-radius:50%; animation:spin .8s linear infinite; } @keyframes spin { to { transform:rotate(360deg); } }
.step-title { display:flex; align-items:center; gap:12px; margin-bottom:20px; }.step-title span { display:grid; width:30px; height:30px; place-items:center; color:var(--accent); font-weight:700; background:var(--accent2); border-radius:50%; }.step-title h2,h2 { margin:0; font-size:20px; }
.choice-list { display:grid; gap:10px; }.choice { display:flex; justify-content:space-between; gap:16px; padding:16px; color:var(--text); text-align:left; cursor:pointer; background:#fff; border:1px solid var(--line); border-radius:14px; }.choice:hover,.choice.selected { background:var(--accent2); border-color:var(--accent); }.choice strong { display:block; font-size:16px; }.choice small { display:block; margin-top:5px; color:var(--muted); }.price { font-weight:700; white-space:nowrap; }
label { display:block; margin:15px 0 7px; font-size:13px; font-weight:650; } label small { color:var(--muted); font-weight:400; }
input,textarea,select { display:block; width:100%; margin-top:7px; padding:12px 13px; color:inherit; font:inherit; background:#fff; border:1px solid #d5d6d0; border-radius:11px; outline:none; } input:focus,textarea:focus,select:focus { border-color:var(--accent); box-shadow:0 0 0 3px rgba(49,92,69,.11); }
.slots { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }.slot { padding:10px 14px; font-weight:650; cursor:pointer; background:#fff; border:1px solid var(--line); border-radius:10px; }.slot:hover,.slot.selected { color:#fff; background:var(--accent); border-color:var(--accent); }
.summary { margin:20px 0; padding:15px; line-height:1.6; background:#f6f7f4; border-radius:13px; }.button { display:inline-block; padding:12px 18px; font:650 14px/1 inherit; text-align:center; text-decoration:none; cursor:pointer; border:0; border-radius:11px; }.button:disabled { cursor:not-allowed; opacity:.45; }.primary { color:#fff; background:var(--accent); }.secondary { color:var(--accent); background:var(--accent2); }.danger { color:var(--danger); background:#faecec; }.wide { width:100%; }.privacy { color:var(--muted); font-size:11px; text-align:center; }
.success-card { padding:40px; text-align:center; }.success-icon { display:grid; width:58px; height:58px; margin:0 auto 18px; place-items:center; color:white; font-size:28px; background:var(--accent); border-radius:50%; }.badge { display:inline-flex; padding:6px 10px; color:var(--accent); font-size:12px; font-weight:700; background:var(--accent2); border-radius:99px; }.details { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.detail span { display:block; margin-bottom:4px; color:var(--muted); font-size:12px; }.actions,.inline-actions { display:flex; flex-wrap:wrap; gap:10px; }.actions { margin-top:24px; }.notice { padding:18px; }.error { color:#8d2929; background:#fff1f0; border-color:#f0c9c6; }.toast { position:fixed; z-index:10; bottom:24px; left:50%; padding:12px 18px; color:#fff; background:#222; border-radius:10px; box-shadow:var(--shadow); transform:translateX(-50%); }
.app-layout { display:grid; grid-template-columns:230px 1fr; gap:24px; }.sidebar { position:sticky; top:20px; height:max-content; }.nav button { display:block; width:100%; padding:11px; color:var(--text); text-align:left; cursor:pointer; background:transparent; border:0; border-radius:9px; }.nav button.active { color:var(--accent); font-weight:700; background:var(--accent2); }.page-title { margin:0 0 22px; font:700 32px Georgia,serif; }.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; }.toolbar,.row-between { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; }.toolbar { align-items:center; margin-bottom:18px; }.service-row,.booking-row { margin-top:10px; padding:16px; border:1px solid var(--line); border-radius:14px; }.day-row { display:grid; grid-template-columns:120px 1fr 1fr; gap:12px; align-items:center; margin:10px 0; }.auth-wrap { width:min(430px,calc(100% - 28px)); margin:8vh auto; }.auth-tabs { display:flex; padding:3px; background:#efeee8; border-radius:10px; }.auth-tabs button { flex:1; padding:9px; background:transparent; border:0; border-radius:8px; }.auth-tabs button.active { background:#fff; box-shadow:0 2px 8px #00000012; }.empty { padding:35px 10px; color:var(--muted); text-align:center; }.status-pending { color:#80601a; background:#fff3d7; }.status-confirmed { color:#315c45; background:#e8f0eb; }.status-cancelled_by_customer,.status-cancelled_by_specialist { color:#785858; background:#f3eeee; }.status-completed { color:#405780; background:#e9eef8; }.status-no_show { color:#8b4646; background:#f4e9e9; }

.calendar-picker { position:relative; margin-top:7px; }.calendar-trigger { display:flex; width:100%; align-items:center; gap:10px; padding:12px 13px; color:var(--text); font:inherit; text-align:left; cursor:pointer; background:#fff; border:1px solid #d5d6d0; border-radius:11px; }.calendar-trigger:hover,.calendar-trigger[aria-expanded="true"] { border-color:var(--accent); box-shadow:0 0 0 3px rgba(49,92,69,.11); }.calendar-icon { display:grid; width:23px; height:23px; place-items:center; color:var(--accent); font-size:18px; line-height:1; background:var(--accent2); border-radius:6px; }.calendar-popover { position:absolute; z-index:5; top:calc(100% + 8px); left:0; width:min(348px,calc(100vw - 56px)); padding:15px; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:0 20px 45px rgba(30,35,31,.18); }.calendar-header { display:grid; grid-template-columns:34px 1fr 34px; align-items:center; margin-bottom:12px; text-align:center; text-transform:capitalize; }.calendar-nav { width:34px; height:34px; color:var(--accent); font-size:26px; line-height:1; cursor:pointer; background:var(--accent2); border:0; border-radius:9px; }.calendar-nav:hover { background:#dbe8df; }.calendar-nav:disabled { cursor:not-allowed; opacity:.35; }.calendar-weekdays,.calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; text-align:center; }.calendar-weekdays { margin-bottom:5px; color:var(--muted); font-size:11px; font-weight:700; }.calendar-day { aspect-ratio:1; color:var(--text); font:600 13px/1 inherit; cursor:pointer; background:transparent; border:0; border-radius:9px; }.calendar-day:hover { color:var(--accent); background:var(--accent2); }.calendar-day.today { outline:1px solid #acc4b4; }.calendar-day.selected { color:#fff; background:var(--accent); outline:none; }.calendar-day:disabled { color:#b6b8b3; cursor:not-allowed; }.calendar-day:disabled:hover { background:transparent; }.calendar-empty { aspect-ratio:1; }

@media (max-width:760px) { .app-layout { display:block; }.sidebar { position:static; margin-bottom:16px; }.nav { display:flex; overflow:auto; }.nav button { white-space:nowrap; }.grid-2,.details { grid-template-columns:1fr; }.card { padding:20px; }.hero { padding:27px; }.hero h1 { font-size:30px; }.day-row { grid-template-columns:1fr 1fr; }.day-row strong { grid-column:1/-1; }.actions { flex-direction:column; } }
.booking-day { margin-top:24px; }
.booking-day:first-child { margin-top:0; }
.booking-day h3 { margin:0 0 10px; text-transform:capitalize; }
.success-card > .button + .button { margin-top:10px; }
.email-save { margin-top:18px; padding-top:18px; border-top:1px solid var(--line); text-align:left; }
.booking-row { padding:20px; margin-top:12px; background:#fff; border-radius:16px; }
.booking-main { display:grid; gap:10px; }
.booking-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.booking-service { margin-top:5px; color:var(--muted); font-size:14px; }
.booking-date { color:var(--accent); font-size:14px; font-weight:650; }
.booking-comment { margin:0; padding:10px 12px; color:var(--text); background:#f6f7f4; border-radius:10px; line-height:1.45; }
.booking-comment span { color:var(--muted); font-weight:650; }
.status-pending,.status-confirmed,.status-cancelled_by_customer,.status-cancelled_by_specialist,.status-completed,.status-no_show { border:1px solid currentColor; }
#bookings-status { margin-bottom:20px; }
.booking-row .inline-actions { margin-top:15px; }
