.rc-repas { scroll-margin-top:2rem; min-width:0; margin:2rem 0; padding:clamp(1rem,3vw,1.8rem); border:1px solid #cbd9d0; border-radius:14px; background:#fff; color:#263b31; }
.rc-repas [hidden] { display:none !important; }
.rc-repas h2,.rc-repas h3 { color:#315945; }
.rc-repas p { line-height:1.6; }
.rc-repas fieldset { min-width:0; margin:1.25rem 0; padding:1rem; border:1px solid #cbd9d0; border-radius:10px; background:#f7faf8; }
.rc-repas legend { padding:0 .4rem; font-weight:700; font-size:1.1rem; }
.rc-repas-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.rc-repas label { display:block; margin-bottom:.35rem; font-weight:600; }
.rc-repas input,.rc-repas select { box-sizing:border-box; width:100%; max-width:100%; min-height:46px; padding:.6rem; border:1px solid #82998b; border-radius:6px; background:#fff; color:#213f2d; font:inherit; }
.rc-repas button { min-height:44px; max-width:100%; white-space:normal; padding:.65rem 1rem; margin:.5rem .25rem .5rem 0; border:1px solid #315945; border-radius:7px; background:#315945; color:#fff; font:inherit; font-weight:600; cursor:pointer; }
.rc-repas button.rc-repas-secondary { background:#fff; color:#315945; }
.rc-repas button:disabled { opacity:.55; cursor:wait; }
.rc-repas :focus-visible { outline:3px solid #a6510b; outline-offset:3px; }
.rc-repas-total { font-size:1.2rem; }
.rc-repas-message:not(:empty) { padding:1rem; margin:1rem 0; background:#e6f3eb; border-left:4px solid #315945; }
.rc-repas-message.rc-repas-error { background:#fff0ed; border-color:#9c3523; color:#842714; }
.rc-repas-booking,.rc-repas-organisation { margin-top:1.5rem; padding-top:1rem; border-top:1px solid #cbd9d0; }
.rc-repas-menu-count { display:inline-block; margin:.2rem .5rem .2rem 0; padding:.25rem .5rem; border-radius:5px; background:#edf4ef; }
.rc-repas-table-scroll { overflow-x:auto; max-width:100%; }
.rc-repas table { width:100%; border-collapse:collapse; font-size:.9rem; }
.rc-repas th,.rc-repas td { padding:.6rem; text-align:left; vertical-align:top; border-bottom:1px solid #d7e1da; }
.rc-repas th { background:#edf4ef; }
.rc-repas caption { text-align:left; padding:.5rem 0; }
@media(max-width:600px) { .rc-repas-fields { grid-template-columns:1fr; } .rc-repas { padding:1rem; } }
