/* Les fenêtres qui s'ouvrent par-dessus la page, et le formulaire qu'elles
   contiennent : inscription à une table ronde, fiche entreprise, créneau. */

@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.modal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:1.5rem}
.modal.is-open{display:flex;animation:fade .3s var(--ease)}
.modal-backdrop{position:absolute;inset:0;background:rgba(19,81,54,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.modal-panel{position:relative;background:var(--paper);color:var(--ink);width:min(100%,480px);
  padding:2rem;border-radius:1.5rem;box-shadow:var(--shadow-lg);animation:pop .4s var(--ease)}
@keyframes pop{from{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}
.modal-close{position:absolute;top:.6rem;right:.9rem;font-size:1.8rem;line-height:1;color:var(--muted)}
.modal-panel h3{font-family:var(--font-display);text-transform:uppercase;color:var(--bark);
  font-size:1.4rem;margin-bottom:.6rem;padding-right:2rem}
.modal-panel .form{background:var(--cream);padding:1rem;border:1px solid var(--line);margin-top:1rem}
.modal-panel .field label{color:var(--bark)}
.modal-panel .field input,.modal-panel .field select{background:var(--paper);color:var(--ink);border:1px solid var(--line)}
.modal-panel .field input:focus,.modal-panel .field select:focus{border-color:var(--moss);background:#fff}
.modal-panel .err{color:#b3341c}

/* Sur téléphone, les rembourrages de la modale, du panneau et du formulaire
   s'additionnent : on les resserre pour garder des champs utilisables. */
@media (max-width:560px){
  .modal{padding:1rem}
  .modal-panel{padding:1.2rem}
  .modal-panel h3{font-size:1.15rem}
  .modal-panel .form{padding:.85rem;margin-top:.8rem}
  .modal-panel .btn{font-size:.82rem;padding-inline:1rem}
}

/* ---------- Formulaire ---------- */
.form{display:grid;gap:1rem;background:rgba(255,255,255,.05);padding:1.8rem;border-radius:var(--radius);border:1px solid rgba(255,255,255,.1)}
.field{display:grid;gap:.35rem}
.field label{font-size:.85rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--sand)}
.field input,.field select,.field textarea{background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.15);
  color:var(--cream);padding:.85rem 1rem;border-radius:.9rem;font:inherit;transition:border-color .2s,background .2s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--olive);background:rgba(0,0,0,.35);outline:none}
.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:#ff8b8b}
.err{min-height:1rem;font-size:.78rem;color:#ffcccc}

