.reservation-submit{font-family:var(--f-body);color:var(--text);font-size:16px;line-height:24px}
.reservation-submit h2{margin:0 0 20px;font-family:var(--f-body);font-size:24px;line-height:32px;font-weight:500}
.reservation-submit__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.reservation-submit__field{display:grid;gap:8px}
.reservation-submit__grid+.reservation-submit__field{margin-top:20px}
.reservation-submit__field+.reservation-submit__field{margin-top:20px}
.reservation-submit__grid .reservation-submit__field+.reservation-submit__field{margin-top:0}
.reservation-submit__label,.reservation-submit__hint{font-size:14px;line-height:20px}
.reservation-submit__hint{color:var(--muted)}
.reservation-submit__input{width:100%;min-height:48px;padding:11px 12px;border:1px solid var(--border);border-radius:0;background:var(--bg);color:var(--text);font:inherit;font-size:16px;line-height:24px}
.reservation-submit__textarea{min-height:120px;resize:vertical}
.reservation-submit__input:focus-visible,.reservation-submit button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.reservation-submit__security{display:grid;gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}
.reservation-submit__security-status{min-height:20px;margin:0;color:var(--muted);font-size:14px;line-height:20px}
.reservation-submit__turnstile{min-height:0;max-width:100%}
.reservation-submit__retry{justify-self:start;min-height:48px;padding:11px 16px;border:1px solid var(--text);border-radius:0;background:var(--bg);color:var(--text);font:inherit;font-size:16px;line-height:24px}
.reservation-submit__request-status:empty{display:none}
.reservation-submit__message{margin-top:20px;padding:16px;border:1px solid var(--border);font-size:16px;line-height:24px}
.reservation-submit__message p{margin:0}
.reservation-submit__message p+p{margin-top:8px}
.reservation-submit__message--pending{border-color:var(--accent)}
.reservation-submit__action{display:flex;justify-content:flex-end;margin-top:20px}
.reservation-submit__primary{min-height:52px;padding:14px 20px;border:1px solid var(--accent);border-radius:0;background:var(--accent);color:var(--bg);font:inherit;font-size:16px;line-height:24px}
.reservation-submit__primary:disabled{border-color:var(--border);background:var(--bg);color:var(--muted)}
@media (max-width:860px){.reservation-submit__grid{grid-template-columns:1fr}.reservation-submit__action{display:block}.reservation-submit__primary{width:100%}}
@media (max-width:860px){
  html:has(#reservation-app),html:has(#reservation-app) body{max-width:100%;overflow-x:clip}
  .rv-dialog:has(.reservation-submit){box-sizing:border-box;width:calc(100% - 32px);max-width:calc(100% - 32px);padding:16px;overflow:hidden;touch-action:pan-y}
  .rv-dialog:has(.reservation-submit) header{margin-bottom:12px}
  .reservation-submit{display:flex;flex-direction:column;max-height:calc(100dvh - 144px);min-width:0}
  .reservation-submit__fields{min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:3px;margin:-3px;scroll-padding-block:8px}
  .reservation-submit__grid{grid-template-columns:minmax(0,1fr) 100px;gap:10px 12px}
  .reservation-submit__grid .reservation-submit__field:nth-child(n+3){grid-column:1/-1}
  .reservation-submit__field{min-width:0;gap:4px}
  .reservation-submit__grid+.reservation-submit__field{margin-top:10px}
  .reservation-submit__input{min-width:0;max-width:100%;height:44px;min-height:44px;padding:9px 12px}
  .reservation-submit__textarea{height:44px;min-height:44px;max-height:44px;resize:none;overflow-y:auto}
  .reservation-submit__security{margin-top:10px;padding-top:10px;gap:8px}
  .reservation-submit__security-status[data-complete="true"]{display:none}
  .reservation-submit__security:has([data-complete="true"]){margin:0;padding:0;border:0;gap:0}
  .reservation-submit__message{margin-top:10px;overflow-wrap:anywhere}
  .reservation-submit__action{flex-shrink:0;margin-top:12px;padding-top:0;background:var(--bg)}
  .reservation-submit__primary{height:48px;min-height:48px;padding:11px 16px}
}
