.appt-page{--appt-surface:#ffffff;--appt-border:#cfd9e8;--appt-text:#101c2b;--appt-muted:#4e5d72;--appt-brand:#194d80;--appt-brand-soft:#e5eef9;min-height:100vh;background:radial-gradient(circle at 12% 2%,rgba(17,58,97,.11),transparent 42%),radial-gradient(circle at 92% 100%,rgba(22,126,66,.1),transparent 34%),#f3f6fb;padding-bottom:7.8rem;overflow-x:clip}.appt-hero{position:relative;isolation:isolate;background:linear-gradient(130deg,#0f2f52,#1d4d7a 45%,#25689a);color:#f7fbff;text-align:center;padding:clamp(2.7rem,6vw,4.4rem) 1.2rem clamp(4.4rem,8vw,6.2rem)}.appt-hero:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(120% 95% at 50% -10%,rgba(255,255,255,.22),transparent 60%),linear-gradient(0deg,rgba(7,24,44,.2),rgba(7,24,44,.2))}.appt-hero:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:clamp(58px,8vw,96px);background:linear-gradient(180deg,rgba(243,246,251,0),#eff4fa 82%);pointer-events:none}.appt-hero h1{margin:0;font-size:clamp(1.7rem,1.2rem + 2.15vw,2.85rem);line-height:1.14;font-weight:820;color:#ffffff;letter-spacing:.01em;text-shadow:0 2px 16px rgba(7,24,44,.42)}.appt-hero p{margin:1rem auto 0;max-width:68ch;font-size:clamp(1rem,.88rem + .52vw,1.18rem);line-height:1.58;color:rgba(242,248,255,.96)}.appt-layout{width:min(1120px,calc(100% - 2rem));margin:clamp(1rem,2.4vw,1.9rem) auto 0;padding:clamp(.55rem,1.4vw,.9rem);border-radius:24px;border:1px solid #d9e4f2;background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(247,251,255,.9));box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 16px 36px rgba(16,35,60,.08);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(.9rem,2vw,1.35rem);align-items:start}.appt-calendar-section,.appt-form-section,.appt-slots-section{min-width:0;background:#ffffff;border:1px solid #d8e3f1;border-radius:18px;box-shadow:0 16px 34px rgba(12,28,49,.08),0 2px 10px rgba(12,28,49,.05);padding:clamp(.9rem,2vw,1.4rem)}.appt-calendar-section,.appt-slots-section{border-radius:20px;border-color:#d4e1f1;box-shadow:0 26px 52px rgba(12,28,49,.14),0 6px 16px rgba(12,28,49,.08)}.appt-form-section{grid-column:1/-1;display:grid;gap:.92rem;grid-template-columns:repeat(2,minmax(0,1fr))}.appt-calendar-section h2,.appt-form-section h2,.appt-slots-section h2{margin:0 0 .9rem;color:var(--appt-text);font-size:clamp(1.03rem,.92rem + .5vw,1.3rem);font-weight:780;letter-spacing:.01em;line-height:1.3}.appt-form-section h2{grid-column:1/-1}.appt-calendar{display:grid;gap:.78rem}.appt-cal-nav{display:grid;grid-template-columns:2.2rem minmax(0,1fr) 2.2rem;align-items:center;column-gap:.65rem}.appt-cal-arrow{width:2.2rem;aspect-ratio:1;border:1px solid #c8d3e2;border-radius:10px;background:#f8fbff;color:#2b4d73;font-size:1.2rem;line-height:1;cursor:pointer;transition:transform .2s ease,border-color .2s ease,background-color .2s ease}.appt-cal-arrow:hover:not(:disabled){transform:translateY(-1px);border-color:#91afd3;background:#edf4fd}.appt-cal-arrow:disabled{opacity:.4;cursor:default}.appt-cal-title{text-align:center;font-size:clamp(.98rem,.9rem + .35vw,1.14rem);font-weight:760;color:#162b44;text-transform:capitalize}.appt-cal-grid{--day-size:clamp(2.05rem,3.9vw,2.5rem);display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(.2rem,.7vw,.4rem);align-items:center}.appt-cal-day-name{text-align:center;color:#56657c;font-size:clamp(.68rem,.63rem + .22vw,.78rem);font-weight:760;letter-spacing:.04em;text-transform:uppercase;padding-bottom:.2rem}.appt-cal-day{width:var(--day-size);height:var(--day-size);margin:0 auto;border:1px solid transparent;border-radius:999px;background:transparent;color:#14263d;font-size:clamp(.8rem,.76rem + .18vw,.9rem);font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .18s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease}.appt-cal-day:hover:not(:disabled):not(.appt-cal-empty){transform:translateY(-1px);box-shadow:0 9px 20px rgba(13,36,63,.2);border-color:#8daed4}.appt-cal-empty{visibility:hidden;pointer-events:none}.appt-cal-available{background:#e7f8ef;border-color:#85cda7;color:#0f4d2a}.appt-cal-low{background:#fff1de;border-color:#efb977;color:#8c300f}.appt-cal-full{background:#fde8ea;border-color:#e49aa2;color:#8d1534}.appt-cal-blocked,.appt-cal-closed{background:#edf1f6;border-color:#c9d3e1;color:#7c899c}.appt-cal-blocked{cursor:not-allowed;transform:none;box-shadow:none}.appt-cal-selected{background:var(--appt-brand)!important;border-color:var(--appt-brand)!important;color:#fff!important;box-shadow:0 12px 22px rgba(25,77,128,.34)}.appt-cal-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem .7rem;margin-top:.35rem;color:#5b6779;font-size:.79rem}.appt-cal-legend span{display:inline-flex;align-items:center;gap:.4rem}.appt-dot{width:.55rem;aspect-ratio:1;border-radius:50%;display:inline-block}.appt-dot-available{background:#22a060}.appt-dot-low{background:#f08a28}.appt-dot-full{background:#dc4c56}.appt-dot-closed{background:#a4b0bf}.appt-slots-blocked,.appt-slots-hint{margin:0;padding:.72rem .78rem;border-radius:10px;font-size:.93rem;line-height:1.45}.appt-slots-hint{background:#edf2f9;color:#3f5168}.appt-slots-blocked{background:#fff1f1;color:#a21d31;border:1px solid #f8c8ce}.appt-slots-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:.6rem}.appt-slot-btn{min-height:2.6rem;border-radius:11px;border:1px solid #c5d4e6;background:#f7faff;color:#172c45;font-size:.9rem;font-weight:700;padding:.55rem .75rem;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;transition:all .2s ease}.appt-slot-open:hover{background:#e7effa;border-color:#7d9fc9;transform:translateY(-1px)}.appt-slot-selected{background:var(--appt-brand);border-color:var(--appt-brand);color:#fff;box-shadow:0 10px 18px rgba(25,77,128,.3)}.appt-slot-full{opacity:.72;background:#edf2f8;color:#5a677b;cursor:not-allowed}.appt-slot-tag{font-size:.69rem;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:.18rem .45rem;border:1px solid #c5cfde;background:#f7f9fc;color:#5a6a81}.appt-form-group{display:grid;gap:.38rem}.appt-form-group-full{grid-column:1/-1}.appt-form-group label{color:#2b3d54;font-size:.84rem;font-weight:760;letter-spacing:.01em}.appt-form-group input,.appt-form-group select,.appt-form-group textarea{width:100%;min-width:0;border:1px solid #c2d0e2;border-radius:11px;background:#fff;color:#17283f;font-size:.95rem;padding:.68rem .82rem;line-height:1.3;transition:border-color .2s ease,box-shadow .2s ease}.appt-form-group textarea{resize:vertical;min-height:118px}.appt-form-group input:focus,.appt-form-group select:focus,.appt-form-group textarea:focus{outline:none;border-color:#5989bd;box-shadow:0 0 0 3px rgba(33,93,158,.24)}.appt-btn-primary:focus-visible,.appt-cal-arrow:focus-visible,.appt-cal-day:focus-visible,.appt-call-btn:focus-visible,.appt-form-group input:focus-visible,.appt-form-group select:focus-visible,.appt-form-group textarea:focus-visible,.appt-photo-remove:focus-visible,.appt-photo-zone:focus-visible,.appt-slot-btn:focus-visible{outline:2px solid #0e4a82;outline-offset:2px}.appt-photo-zone{border:1.5px dashed #b7c8dd;border-radius:12px;background:#f8fbff;color:#385374;min-height:2.8rem;display:inline-flex;align-items:center;justify-content:center;padding:.55rem .85rem;cursor:pointer;transition:border-color .2s ease,background-color .2s ease}.appt-photo-zone:hover{border-color:#7ea6d5;background:#eef5fd}.appt-photo-previews{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:.48rem}.appt-photo-thumb{position:relative;aspect-ratio:1}.appt-photo-thumb img{width:100%;height:100%;object-fit:cover;border:1px solid #d1d9e5;border-radius:10px}.appt-photo-remove{position:absolute;top:-6px;right:-6px;border:0;width:1.25rem;aspect-ratio:1;border-radius:50%;background:#d93f4f;color:#fff;font-size:.78rem;font-weight:700;cursor:pointer}.appt-recap{grid-column:1/-1;border-radius:12px;border:1px solid #cfe0f4;background:#eef5fe;color:#173a60;padding:.72rem .86rem;font-size:.9rem;line-height:1.5}.appt-recap p{margin:.2rem 0 0}.appt-error{grid-column:1/-1;margin:0;border-radius:11px;border:1px solid #f0b8bd;background:#fff2f2;color:#a32032;padding:.72rem .8rem;font-size:.91rem;font-weight:620}.appt-btn-primary{grid-column:1/-1;border:0;border-radius:12px;background:linear-gradient(135deg,#1f4f7f,#2f6fa8);color:#fff;min-height:2.9rem;padding:.7rem 1rem;font-size:.97rem;font-weight:740;letter-spacing:.01em;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}.appt-btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 18px rgba(31,79,127,.28)}.appt-btn-primary:disabled{opacity:.64;cursor:not-allowed}.appt-disclaimer{grid-column:1/-1;margin:.05rem 0 0;color:#45556c;font-size:.82rem;line-height:1.45}.appt-call-btn{grid-column:1/-1;justify-self:start;display:inline-flex;align-items:center;gap:.45rem;border-radius:12px;border:1px solid #b7d7c5;background:#e8f8ee;color:#176238;font-weight:700;font-size:.9rem;text-decoration:none;min-height:2.5rem;padding:.5rem .95rem;transition:all .2s ease}.appt-call-btn:hover{background:#daf2e4;border-color:#8bc6a4}.appt-success{width:min(620px,calc(100% - 2rem));margin:2rem auto}.appt-success-card{background:#fff;border:1px solid var(--appt-border);border-radius:18px;text-align:center;box-shadow:0 14px 30px rgba(16,24,40,.1);padding:1.3rem 1.1rem}.appt-success-icon{color:#1f8a4a;font-size:2.6rem;line-height:1}.appt-success h2{margin:.35rem 0 .5rem;color:#152538}.appt-success p{color:#4f5e72;line-height:1.5;margin:0 0 .9rem}@media (max-width:920px){.appt-layout{width:min(980px,calc(100% - 1.1rem));margin-top:.5rem;padding:.55rem}.appt-form-section,.appt-layout{grid-template-columns:1fr}.appt-cal-grid{--day-size:clamp(1.9rem,7.2vw,2.35rem)}.appt-cal-legend{grid-template-columns:1fr 1fr}}@media (max-width:560px){.appt-page{padding-bottom:8.8rem}.appt-hero{padding-bottom:clamp(4.8rem,10vw,5.8rem)}.appt-layout{width:calc(100% - .7rem);margin-top:.55rem;padding:.4rem;gap:.78rem;border-radius:18px}.appt-calendar-section,.appt-form-section,.appt-slots-section{border-radius:14px;padding:.78rem}.appt-cal-nav{grid-template-columns:1.95rem minmax(0,1fr) 1.95rem;column-gap:.45rem}.appt-cal-arrow{width:1.95rem;border-radius:8px;font-size:1rem}.appt-cal-grid{--day-size:clamp(1.75rem,10vw,2.05rem);gap:.17rem}.appt-cal-legend{grid-template-columns:1fr;gap:.28rem;font-size:.76rem}.appt-slots-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}