.appointment-dialog{box-sizing:border-box;width:min(640px,calc(100vw - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:0;border:1px solid #d5e8f2;border-radius:24px;background:#fff;color:#112f4b;box-shadow:0 28px 90px #0b233755;font-family:"Avenir Next","Segoe UI",Arial,sans-serif;overflow:auto;overscroll-behavior:contain}
.appointment-dialog::backdrop{background:rgba(11,35,55,.66);backdrop-filter:blur(4px)}
.appointment-dialog *{box-sizing:border-box}
.appointment-dialog [hidden]{display:none!important}
.appointment-shell{padding:30px 32px}
.appointment-close{position:absolute;right:16px;top:16px;width:44px;height:44px;border:0;border-radius:50%;background:#edf5fa;color:#112f4b;font-size:28px;cursor:pointer}
.appointment-kicker{display:flex;align-items:center;gap:10px;padding-right:40px;color:#1767c9;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.appointment-kicker img{width:27px;height:27px;object-fit:contain}
.appointment-dialog h2{margin:15px 40px 10px 0;font-size:32px;line-height:1.15;letter-spacing:-.025em}
.appointment-intro{margin:0 0 20px;color:#536879;font-size:16px;line-height:1.6}
.appointment-dialog fieldset{min-width:0;margin:0;padding:0;border:0}
.appointment-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.appointment-field{display:grid;gap:7px;min-width:0;font-size:14px;font-weight:700}
.appointment-field-wide{grid-column:1/-1}
.appointment-dialog input:not([type=checkbox]){width:100%;min-width:0;min-height:48px;padding:11px 12px;border:1px solid #bccfdd;border-radius:10px;background:#fff;color:#112f4b;font:400 16px "Avenir Next","Segoe UI",Arial,sans-serif}
.appointment-dialog :focus-visible,.appointment-trigger:focus-visible{outline:3px solid #1767c9;outline-offset:3px}
.appointment-dialog input:disabled{background:#f6f8fa;color:#627483}
.appointment-hint{margin:14px 0;color:#536879;font-size:14px;line-height:1.55}
.appointment-consent{display:flex;align-items:flex-start;gap:10px;margin:18px 0;font-size:14px;line-height:1.55;color:#365166}
.appointment-consent input{flex:0 0 18px;width:18px;height:18px;margin:3px 0 0;accent-color:#1767c9}
.appointment-submit,.appointment-done{display:inline-flex;align-items:center;justify-content:center;min-height:50px;width:100%;padding:12px 20px;border:0;border-radius:12px;background:#1767c9;color:#fff;font:700 16px "Avenir Next","Segoe UI",Arial,sans-serif;cursor:pointer}
.appointment-submit:hover:not(:disabled),.appointment-done:hover{background:#1054a6}
.appointment-submit:disabled{background:#dbe5ed;color:#52677a;cursor:not-allowed}
.appointment-status{margin:0 0 18px;padding:14px 16px;border:1px solid #e7cd95;border-radius:12px;background:#fff8e8;color:#624c24;font-size:14px;line-height:1.6}
.appointment-status[data-state=error]{border-color:#edb8b0;background:#fff2f0;color:#8c2c23}
.appointment-status[data-state=loading]{border-color:#d5e8f2;background:#f3f8fc;color:#365166}
.appointment-fallback{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 20px;margin:18px 0 0;font-size:14px;line-height:1.5}
.appointment-fallback a{color:#1767c9;text-decoration:underline;text-underline-offset:3px}
.appointment-success{padding:16px 0 4px;font-size:16px;line-height:1.7}
.appointment-success h3{margin:0 0 12px;font-size:26px;line-height:1.2}
.appointment-success .appointment-done{margin-top:18px}
.appointment-trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.panel .appointment-trigger{display:block;width:100%;padding:12px 13px;border:0;border-radius:12px;background:#1767c9;color:#fff;text-align:left;font:800 14px "Avenir Next","Segoe UI",Arial,sans-serif;cursor:pointer}
.panel:has(.appointment-trigger){max-height:calc(100dvh - 165px);overflow:auto;overscroll-behavior:contain}
.contact-actions .appointment-trigger{border:0;cursor:pointer;font-family:inherit}
html.appointment-open{overflow:hidden}
@media(max-width:560px){.appointment-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);border-radius:18px}.appointment-shell{padding:24px 20px}.appointment-fields{grid-template-columns:1fr}.appointment-field-wide{grid-column:auto}.appointment-dialog h2{font-size:28px}.appointment-fallback{flex-direction:column;text-align:center}}
