:root{--bg:#f4f6fb;--card:#fff;--text:#0f172a;--muted:#64748b;--border:#e2e8f0;--accent:#4f46e5;--accent2:#7c3aed;--booking-lime:#c8e635;--booking-lime-soft:#f3f9e4;--booking-ring:#0f172a}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text)}.booking-shell-grid{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);width:100%;max-width:min(1240px,calc(100vw - clamp(24px, 5vw, 72px)));margin:0 auto;grid-gap:0;gap:0;border-radius:28px;overflow:hidden;border:1px solid #dfe4d8;box-shadow:0 16px 48px rgba(15,23,42,.07);background:#f8faf4}.booking-main-row{display:grid;grid-template-columns:minmax(300px,1.25fr) minmax(260px,420px);grid-gap:clamp(20px,3.5vw,44px);gap:clamp(20px,3.5vw,44px);align-items:start}@keyframes booking-times-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes booking-details-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.booking-motion-times{animation:booking-times-in .38s cubic-bezier(.22,1,.36,1) both}.booking-motion-details{animation:booking-details-in .38s cubic-bezier(.22,1,.36,1) both}.booking-day-btn{transition:background-color .2s ease,border-color .2s ease,transform .16s ease,box-shadow .2s ease}.booking-day-btn:not(:disabled):hover{border-color:#94a3b8}.booking-day-btn:not(:disabled):active{transform:scale(.97)}.booking-structured-page{min-height:100vh;background:linear-gradient(180deg,#f8fafc,#eef2f7);padding:clamp(16px,3vw,32px) clamp(12px,3vw,24px) 40px}.booking-structured-card{width:100%;max-width:640px;margin:0 auto;background:var(--card);border:1px solid var(--border);border-radius:20px;box-shadow:0 1px 2px rgba(15,23,42,.04),0 12px 40px rgba(15,23,42,.08);overflow:hidden}.booking-structured-header{display:flex;align-items:center;gap:14px;padding:20px 22px 16px;border-bottom:1px solid #f1f5f9}.booking-structured-avatar{width:44px;height:44px;border-radius:12px;background:var(--booking-lime);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;color:var(--booking-ring);flex-shrink:0}.booking-structured-brand{min-width:0}.booking-structured-brand h1{margin:0;font-size:17px;font-weight:700;line-height:1.25;letter-spacing:-.02em}.booking-structured-brand p{margin:3px 0 0;font-size:13px;color:var(--muted)}.booking-structured-body{padding:18px 22px 24px;display:flex;flex-direction:column;gap:20px}.booking-selection-block{display:flex;flex-direction:column;gap:14px}.booking-selection-label{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#475569;margin:0 0 8px}.booking-chip-row{display:flex;flex-wrap:wrap;gap:8px}.booking-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:#fff;color:var(--text);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:600;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease}.booking-chip:hover:not(:disabled){border-color:#94a3b8}.booking-chip--active{background:var(--booking-lime-soft);border-color:var(--booking-ring);box-shadow:inset 0 0 0 1px rgba(15,23,42,.06)}.booking-chip:disabled{opacity:.45;cursor:not-allowed}.booking-summary-strip{display:flex;flex-wrap:wrap;gap:8px;padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;font-size:13px;color:#334155}.booking-summary-strip span{display:inline-flex;align-items:center;gap:6px}.booking-summary-strip strong{font-weight:700;color:var(--text)}.booking-calendar-section{display:flex;flex-direction:column;gap:12px}.booking-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.booking-calendar-toolbar h2{margin:0;font-size:16px;font-weight:700;letter-spacing:-.01em}.booking-month-nav{display:flex;align-items:center;gap:6px}.booking-icon-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:36px;height:36px;border-radius:10px;border:1px solid var(--border);background:#fff;color:#334155;font-size:16px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:border-color .18s ease,background-color .18s ease}.booking-icon-btn:hover{border-color:#94a3b8;background:#f8fafc}.booking-month-label{min-width:132px;text-align:center;font-size:14px;font-weight:600;color:#475569}.booking-weekdays{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px;font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em}.booking-weekdays div{text-align:center;padding:4px 0}.booking-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px}.booking-calendar-day{aspect-ratio:1;min-height:40px;border-radius:12px;border:1px solid transparent;background:transparent;color:#cbd5e1;font-size:14px;font-weight:600;cursor:not-allowed}.booking-calendar-day--available{border-color:#e2e8f0;background:#fff;color:var(--text);cursor:pointer}.booking-calendar-day--available:hover{border-color:#94a3b8;background:#f8fafc}.booking-calendar-day--selected{border-color:var(--booking-ring)!important;background:var(--booking-lime)!important;color:var(--booking-ring);font-weight:800;box-shadow:0 2px 8px rgba(15,23,42,.12)}.booking-hint{margin:0;font-size:13px;color:var(--muted);line-height:1.45}.booking-times-section{padding-top:4px;border-top:1px solid #f1f5f9}.booking-times-section h3{margin:0 0 4px;font-size:16px;font-weight:700}.booking-times-meta{margin:0 0 12px;font-size:12px;color:var(--muted)}.booking-times-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));grid-gap:8px;gap:8px}.booking-time-slot{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:#fff;color:var(--text);border-radius:12px;padding:11px 10px;font-size:14px;font-weight:600;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.booking-time-slot:hover{border-color:#94a3b8}.booking-time-slot--active{background:var(--booking-ring);border-color:var(--booking-ring);color:#fff}.booking-details-section{padding-top:18px;border-top:1px solid #f1f5f9}.booking-field{display:block;margin-bottom:14px}.booking-field span{display:block;font-size:13px;font-weight:600;color:#334155;margin-bottom:6px}.booking-input{width:100%;padding:11px 13px;border-radius:12px;border:1px solid var(--border);font-size:15px;font-family:inherit;background:#fff;transition:border-color .18s ease,box-shadow .18s ease}.booking-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.15)}.booking-submit-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;border:none;border-radius:12px;background:var(--booking-ring);color:#fff;font-size:15px;font-weight:700;padding:14px 20px;cursor:pointer;transition:opacity .18s ease,transform .16s ease}.booking-submit-btn:hover:not(:disabled){opacity:.92}.booking-submit-btn:disabled{opacity:.55;cursor:not-allowed}.booking-error{color:#b91c1c;font-size:13px;margin:8px 0 0}.booking-success-page{min-height:100vh;background:linear-gradient(180deg,#f8fafc,#eef2f7);display:flex;align-items:center;justify-content:center;padding:24px}.booking-success-card{max-width:420px;width:100%;text-align:center;background:var(--card);border-radius:20px;padding:36px 28px;border:1px solid var(--border);box-shadow:0 12px 40px rgba(15,23,42,.08)}.booking-success-card h1{margin:0 0 8px;font-size:22px}.booking-success-card p{margin:0;color:var(--muted);line-height:1.55;font-size:15px}@media (max-width:720px){.booking-shell-grid{grid-template-columns:1fr;max-width:min(560px,calc(100vw - 24px))}.booking-main-row{grid-template-columns:1fr!important}.booking-times-col--active{border-left:none!important;padding-left:0!important;border-top:1px solid #e2e8dc;padding-top:20px;margin-top:12px}.booking-structured-body{padding:16px 16px 20px}.booking-structured-header{padding:16px 16px 14px}.booking-times-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.booking-calendar-day,.booking-chip,.booking-day-btn,.booking-motion-details,.booking-motion-times,.booking-time-slot{animation:none!important;transition:none!important}.booking-motion-details,.booking-motion-times{opacity:1;transform:none}}