@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=PT+Serif:wght@400;700&display=swap";:root{--bg: #f3f4f7;--surface: #ffffff;--surface-strong: #0f1f36;--text: #1c2738;--text-soft: #5a667a;--line: #d3dae5;--accent: #183968;--accent-soft: #2e5a97;--positive: #1d6a53;--danger: #9a2e33;--warning: #a1772e;--shadow: 0 12px 40px rgba(16, 30, 53, .08)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:IBM Plex Sans,Segoe UI,sans-serif;color:var(--text);background:radial-gradient(circle at 10% 10%,rgba(24,57,104,.14),transparent 32%),radial-gradient(circle at 90% 20%,rgba(122,138,164,.15),transparent 36%),linear-gradient(180deg,#f8f9fb,#eff2f7)}.shell{max-width:860px;margin:0 auto;padding:28px 16px 40px}.appear{animation:fade-up .42s ease both}.hero{background:linear-gradient(135deg,#142946,#1f3f6d);color:#fff;border-radius:20px;padding:24px;box-shadow:var(--shadow)}.eyebrow{margin:0;letter-spacing:.12em;font-size:12px;text-transform:uppercase;opacity:.8}.hero h1{margin:12px 0;font-family:"PT Serif",Georgia,serif;font-size:30px;line-height:1.2}.hero-text{margin:0;opacity:.92}.tabs{display:flex;gap:10px;margin-top:18px}.tab{border:1px solid var(--line);background:#fff;color:var(--text);border-radius:999px;padding:10px 14px;font-weight:600;cursor:pointer}.tab.active{border-color:var(--accent);color:#fff;background:var(--accent)}.panel{margin-top:14px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:var(--shadow)}.panel h2{margin-top:0;margin-bottom:16px;font-family:"PT Serif",Georgia,serif;font-size:24px}.multiline{white-space:pre-line;color:var(--text-soft)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.choice,.slot-btn{border:1px solid var(--line);background:#fff;padding:12px;border-radius:12px;text-align:left;cursor:pointer;color:var(--text);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.choice:hover,.slot-btn:hover{transform:translateY(-1px);border-color:var(--accent-soft)}.choice.active,.slot-btn.active{border-color:var(--accent);box-shadow:0 0 0 2px #1839681f}.actions{margin-top:18px;display:flex;gap:10px;flex-wrap:wrap}.primary-btn,.ghost-btn{border-radius:10px;font-weight:600;padding:11px 14px;cursor:pointer;border:1px solid transparent}.primary-btn{background:var(--accent);color:#fff}.primary-btn:disabled{opacity:.55;cursor:not-allowed}.ghost-btn{border-color:var(--line);background:#fff;color:var(--text)}.day-group{margin-bottom:14px;animation:fade-up .3s ease both}.day-group h3{margin:8px 0;color:var(--text-soft);font-size:14px}.slots{display:grid;gap:10px}.field{display:block;margin-bottom:14px}.field span{display:block;margin-bottom:7px;color:var(--text-soft)}.field input,.field textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px;font:inherit}.notice{background:#f6f8fb;border:1px solid #d8e0ee;border-radius:10px;padding:12px;color:#435067}.summary{display:grid;grid-template-columns:140px 1fr;gap:10px 12px;margin:0}.summary dt{color:var(--text-soft)}.summary dd{margin:0}.success-meta{margin-top:6px;color:var(--positive);font-weight:600}.appointment-card{border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:12px;background:#fff;animation:fade-up .32s ease both}.appointment-card header{display:flex;justify-content:space-between;gap:8px;align-items:center}.status-chip{font-size:12px;font-weight:700;border-radius:999px;padding:4px 9px;border:1px solid transparent}.status-new,.status-confirmed,.status-rescheduled{color:var(--positive);border-color:#1d6a533d;background:#1d6a5317}.status-rejected,.status-canceled_by_client{color:var(--danger);border-color:#9a2e333d;background:#9a2e3317}.status-no_show,.status-expired{color:var(--warning);border-color:#a1772e3d;background:#a1772e1f}.reschedule-zone{margin-top:10px;border-top:1px dashed var(--line);padding-top:12px}.fallback-card{background:var(--surface);border-radius:18px;border:1px solid var(--line);box-shadow:var(--shadow);padding:26px 20px;margin-top:12vh}.error-banner{margin-top:14px;border:1px solid rgba(154,46,51,.25);color:#7e1f25;background:#9a2e3314;border-radius:10px;padding:10px 12px}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.hero h1{font-size:25px}.summary{grid-template-columns:1fr;gap:3px}}
