:root{--color-primary:#1f4e79;--color-primary-light:#5f8fb8;--color-primary-dark:#163a5b;--color-primary-subtle:#1f4e791a;--color-brand-accent:#66b2cc;--color-background:#f4f7f8;--color-surface:#fff;--color-text:#173042;--color-text-secondary:#5c6f7c;--color-divider:#dbe4e8;--color-success:#2e7d5a;--color-warning:#c58a2b;--color-error:#c94b4b;--radius:12px;--shadow:0 2px 8px #1730420d;color:var(--color-text);background:var(--color-background);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{min-height:100%}body{min-width:320px;min-height:100svh;margin:0}button,textarea{font:inherit}button,a,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,textarea:focus-visible,a:focus-visible,[tabindex="-1"]:focus-visible{outline:3px solid var(--color-primary-light);outline-offset:3px}a{color:inherit}p{margin:0}#root{min-height:100svh}.publicPage{background:var(--color-background);min-height:100svh;padding:24px 16px 40px}.publicShell{width:min(800px,100%);margin:0 auto}.compactShell{width:min(680px,100%)}.brandHeader{border-bottom:1px solid var(--color-divider);justify-content:space-between;align-items:center;gap:20px;min-height:74px;margin-bottom:24px;padding-bottom:18px;display:flex}.brandLogo{width:min(330px,68vw);height:auto;display:block}.brandContext{color:var(--color-text-secondary);white-space:nowrap;font-size:.875rem;font-weight:700}.appointmentSummary,.contentCard,.stateCard,.successCard{border:1px solid var(--color-divider);border-radius:var(--radius);background:var(--color-surface);box-shadow:var(--shadow)}.appointmentSummary{border-top:5px solid var(--color-brand-accent);padding:clamp(22px,5vw,40px)}.summaryHeading,.stepLabel{color:var(--color-primary);letter-spacing:.06em;text-transform:uppercase;margin:0 0 8px;font-size:.8125rem;font-weight:700}.appointmentSummary h1,.appointmentSummary h2,.stateCard h1,.successCard h1,.confirmationCard h1{color:var(--color-text);margin:0;font-size:clamp(1.55rem,5vw,2.25rem);line-height:1.15}.dateBlock{gap:4px;margin-top:26px;font-style:normal;display:grid}.appointmentDate{color:var(--color-text);text-transform:capitalize;font-size:clamp(1.2rem,4vw,1.55rem);font-weight:700}.appointmentTime{color:var(--color-primary);font-size:clamp(2rem,8vw,3rem);font-weight:700;line-height:1.1}.appointmentDetails{border-top:1px solid var(--color-divider);grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:28px 0 0;padding-top:20px;display:grid}.appointmentDetails div{min-width:0}.appointmentDetails dt{color:var(--color-text-secondary);margin-bottom:4px;font-size:.8125rem;font-weight:700}.appointmentDetails dd{color:var(--color-text);overflow-wrap:anywhere;margin:0;font-weight:600}.compactSummary{padding:22px 26px}.compactSummary h1,.compactSummary h2{font-size:1.25rem}.compactSummary .dateBlock{margin-top:14px}.compactSummary .appointmentDate{font-size:1rem}.compactSummary .appointmentTime{font-size:1.55rem}.compactSummary .appointmentDetails{margin-top:16px;padding-top:14px}.primaryAction,.contentCard{margin-top:20px;padding:clamp(20px,4vw,28px)}.primaryAction{border-left:4px solid var(--color-primary);background:var(--color-surface);justify-content:space-between;align-items:center;gap:24px;display:flex}.primaryAction h2,.sectionIntro h2,.comparisonItem h2{color:var(--color-text);margin:0;font-size:1.25rem;line-height:1.25}.primaryAction p,.sectionIntro p,.successCard>p:last-child{color:var(--color-text-secondary);margin:7px 0 0}.sectionIntro{margin-bottom:24px}.sectionIntro .stepLabel{margin-bottom:6px}.primaryButton,.secondaryButton{min-height:48px;font:inherit;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;padding:11px 18px;font-weight:700;display:inline-flex}.primaryButton{border:1px solid var(--color-primary);background:var(--color-primary);color:#fff}.secondaryButton{border:1px solid var(--color-primary);color:var(--color-primary);background:#fff}.primaryButton:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.secondaryButton:hover{background:var(--color-primary-subtle)}.primaryButton:disabled,.secondaryButton:disabled{cursor:not-allowed;opacity:.55}.buttonRow{justify-content:flex-end;gap:12px;margin-top:28px;display:flex}.standaloneButton{margin-top:20px}.slotGroups{gap:26px;display:grid}.slotGroup h3{color:var(--color-text);text-transform:capitalize;margin:0 0 10px;font-size:1rem}.slotList{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.slotOption{border:1px solid var(--color-divider);min-height:76px;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:#fff;border-radius:10px;grid-template-columns:1fr auto;align-items:center;gap:3px 12px;padding:13px 14px;display:grid}.slotOption:hover{border-color:var(--color-primary-light);background:var(--color-primary-subtle)}.selectedSlot{border:2px solid var(--color-primary);background:var(--color-primary-subtle)}.slotTime{font-size:1.2rem;font-weight:700}.slotDuration{color:var(--color-text-secondary);font-size:.875rem}.selectionIndicator{color:var(--color-primary);grid-area:1/2/span 2;font-size:.8125rem;font-weight:700}.comparisonGrid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.comparisonItem{border:1px solid var(--color-divider);border-radius:10px;gap:7px;padding:20px;display:grid}.comparisonItem h2{color:var(--color-text-secondary);font-size:.875rem}.comparisonItem strong{text-transform:capitalize;font-size:1.05rem}.comparisonItem span{color:var(--color-primary);font-size:1.5rem;font-weight:700}.newAppointment{border:2px solid var(--color-primary);background:var(--color-primary-subtle)}.previousAppointment{background:var(--color-background)}.messageCard form{display:grid}.messageCard label{color:var(--color-text);margin-bottom:7px;font-weight:700}.messageCard textarea{resize:vertical;border:1px solid var(--color-divider);width:100%;min-height:112px;color:var(--color-text);font:inherit;background:#fff;border-radius:10px;padding:12px 14px}.messageCard .secondaryButton{justify-self:start;margin-top:14px}.fieldHelp,.fieldError,.fieldSuccess{margin:7px 0 0;font-size:.875rem}.fieldHelp{color:var(--color-text-secondary)}.fieldError{color:var(--color-error);font-weight:600}.fieldSuccess{color:var(--color-success);font-weight:700}.notice{border:1px solid;border-radius:10px;padding:16px 18px}.notice strong{display:block}.notice p{margin:5px 0 0}.notice .secondaryButton{margin-top:14px}.infoNotice{border-color:var(--color-divider);background:var(--color-background);color:var(--color-text)}.errorNotice{border-color:var(--color-error);color:var(--color-text);background:#fff}.inlineStatus{min-height:80px;color:var(--color-text-secondary);align-items:center;gap:10px;font-weight:600;display:flex}.spinner{border:3px solid var(--color-divider);border-top-color:var(--color-primary);border-radius:50%;flex:none;width:22px;height:22px;animation:.8s linear infinite spin}.largeSpinner{width:34px;height:34px}@keyframes spin{to{transform:rotate(360deg)}}.stateCard,.successCard{justify-items:start;gap:10px;padding:clamp(26px,6vw,44px);display:grid}.stateCard{align-content:center;min-height:260px}.stateCard p{color:var(--color-text-secondary);margin:0}.stateCard .secondaryButton{margin-top:8px}.successCard{border-top:5px solid var(--color-success);margin-bottom:20px}.successMark{background:var(--color-success);color:#fff;border-radius:50%;place-items:center;width:42px;height:42px;margin-bottom:4px;font-size:1.4rem;font-weight:700;display:grid}.publicFooter{border-top:1px solid var(--color-divider);color:var(--color-text-secondary);justify-content:space-between;gap:16px;margin-top:32px;padding-top:18px;font-size:.875rem;display:flex}.publicFooter a{color:var(--color-primary);font-weight:700}@media (width<=540px){.publicPage{padding:14px 16px 28px}.brandHeader{align-items:flex-end;gap:10px;min-height:64px;margin-bottom:16px;padding-bottom:14px}.brandLogo{width:min(220px,60vw)}.brandContext{font-size:.75rem}.appointmentDetails,.slotList,.comparisonGrid{grid-template-columns:1fr}.primaryAction{display:grid}.primaryAction .primaryButton,.buttonRow .primaryButton,.buttonRow .secondaryButton{width:100%}.buttonRow{flex-direction:column-reverse}.slotOption{min-height:72px}.compactSummary .appointmentDetails{display:none}.publicFooter{display:grid}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}}
