#booking-dialog{width:min(720px,calc(100% - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:32px;border:1px solid var(--line);border-radius:4px;background:var(--stone);color:var(--ink);overflow:auto;overscroll-behavior:contain;}
#booking-dialog::backdrop{background:rgba(0,0,0,.6);backdrop-filter:blur(4px);}
#booking-dialog h2{font-size:1.7rem;margin:0 40px 24px 0;}
#booking-dialog .booking-close{position:absolute;right:16px;top:12px;background:none;border:0;color:var(--ink);font-size:2rem;cursor:pointer;padding:4px 10px;}
#booking-form{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
#booking-form .booking-wide{grid-column:1/-1;}
#booking-form label{display:block;font-size:.95rem;margin-bottom:6px;}
#booking-form input:not([type=checkbox]),#booking-form select,#booking-form textarea{width:100%;min-height:44px;padding:11px 12px;border:1px solid var(--line);border-radius:2px;font:inherit;font-size:1rem;background:var(--stone);color:var(--ink);}
#booking-form textarea{min-height:100px;resize:vertical;}
#booking-selected-course{font-size:.9rem;margin-top:8px;overflow-wrap:anywhere;}
#booking-form .booking-consent{display:flex;align-items:flex-start;gap:12px;}
#booking-form input[type=checkbox]{width:20px;height:20px;flex-shrink:0;margin-top:4px;accent-color:var(--terracotta);}
#booking-dialog :focus-visible{outline:2px solid var(--terracotta);outline-offset:3px;}
#booking-form [aria-invalid=true]{border-color:var(--brick);}
#booking-form .field-error{color:var(--brick);font-size:.9rem;margin-top:5px;}
#booking-form .field-error:empty{display:none;}
#booking-dialog .booking-status{grid-column:1/-1;}
#booking-dialog .booking-status:empty{display:none;}
#booking-form .booking-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;}
#booking-dialog [hidden]{display:none !important;}
#booking-submit:disabled{opacity:.7;cursor:wait;}
#booking-success p{margin-bottom:24px;}
@media(max-width:600px){#booking-dialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px);padding:24px 18px;}#booking-form{grid-template-columns:1fr;}#booking-form>div{grid-column:1;}#booking-dialog h2{font-size:1.45rem;}}
