/* FG Reservierung – Frontend */
.fg_res-calendar{max-width:960px;margin:0 auto;padding:1rem}
.fg_res-cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}
.fg_res-grid{display:grid;gap:.25rem;grid-template-columns:repeat(7,1fr)}
.fg_res-weekdays{font-weight:600;color:#555}
.fg_res-weekday{padding:.5rem;text-align:center}
.fg_res-day{border:1px solid #e5e5e5;background:#fff;border-radius:.5rem;padding:.75rem;min-height:3rem;text-align:right;cursor:pointer}
.fg_res-day.is-empty{background:transparent;border:none}
.fg_res-day.is-blocked{background:#ffecec;color:#a00;border-color:#f5b0b0;cursor:not-allowed}
.fg_res-daynum{font-weight:600}
.fg_res-day-panel{margin-top:1rem;border-top:2px solid #eee;padding-top:1rem}
.fg_res-day-head{font-size:1.125rem;margin:.5rem 0}
.fg_res-durations{display:flex;gap:.5rem;flex-wrap:wrap;margin:.5rem 0}
.fg_res-duration{border:1px solid #ccc;background:#fff;border-radius:999px;padding:.4rem .9rem;cursor:pointer}
.fg_res-duration.is-active,.fg_res-duration:focus{outline:2px solid #333}
.fg_res-times{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin:1rem 0}
@media(min-width:640px){.fg_res-times{grid-template-columns:repeat(4,1fr)}}
.fg_res-time{border:1px solid #ccc;background:#fff;border-radius:.5rem;padding:.6rem;cursor:pointer;text-align:center}
.fg_res-time[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
.fg_res-form{display:grid;gap:.75rem;max-width:520px}
.fg_res-form-row{display:flex;flex-direction:column;gap:.25rem}
.fg_res-actions{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}
.fg_res-submit{background:#0a5fff;color:#fff;border:none;padding:.7rem 1rem;border-radius:.5rem;cursor:pointer}
.fg_res-submit[disabled]{opacity:.5;cursor:not-allowed}
.fg_res-status{min-height:1.5rem;color:#0b7a00}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}

.fg_res-nav{padding:.55rem;border:1px solid #bbb;background:white;border-radius:.3rem;cursor:pointer}.fg_res-nav:disabled{opacity:.35;cursor:default}.fg_res-time.is-reserved{background:#fff2b3;color:#6c5100;border-color:#e1bb4a;opacity:1;cursor:not-allowed}.fg_res-time.is-active{outline:3px solid #1457b5}.fg_res-day.is-blocked{display:flex;align-items:center;justify-content:center;cursor:default}.fg_res-day-panel input{max-width:100%}@media(max-width:480px){.fg_res-cal-header{gap:.5rem}.fg_res-cal-header h2{font-size:1.1rem}.fg_res-day{padding:.4rem;min-height:2.5rem}}

.fg_res-time.is-blocked{background:#fff2b3;color:#6c5100;border-color:#e1bb4a;opacity:1;cursor:not-allowed}
.fg_res-time.is-reserved{background:#fce8e6;color:#9b1c1c;border-color:#e4a5a0;opacity:1;cursor:not-allowed}

/* v1.3.8: compact slot legend and refined form controls */
.fg_res-legend{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:1rem 0 .5rem}
.fg_res-pill{display:inline-flex;align-items:center;border-radius:999px;padding:.28rem .8rem;font-size:.85rem;font-weight:600;line-height:1.5;border:1px solid transparent}
.fg_res-pill-blocked{background:#fff2b3;color:#725000;border-color:#e1bb4a}
.fg_res-pill-reserved{background:#fce8e6;color:#9b1c1c;border-color:#e4a5a0}
.fg_res-time{font-variant-numeric:tabular-nums;font-weight:600;min-height:44px;transition:border-color .15s,box-shadow .15s}
.fg_res-time:focus-visible,.fg_res-duration:focus-visible,.fg_res-submit:focus-visible{outline:3px solid #1463bd;outline-offset:2px}
.fg_res-form{margin-top:1.5rem;gap:1rem}
.fg_res-form-row label{font-weight:600;font-size:.95rem}
.fg_res-form-row input:not([type=hidden]){box-sizing:border-box;width:100%;min-height:46px;padding:.7rem .85rem;border:1px solid #aeb6c2;border-radius:8px;background:#fff;color:#20242b;font:inherit;line-height:1.4;box-shadow:none}
.fg_res-form-row input:focus{border-color:#1463bd;outline:2px solid #1463bd;outline-offset:1px}
.fg_res-form-row input:disabled{opacity:.65;background:#f2f3f5}
.fg_res-submit{min-height:46px;font:inherit;font-weight:600}
@media(max-width:480px){.fg_res-form{max-width:100%}.fg_res-legend{gap:.4rem}}


/* v1.3.10 – mobile layout and accessible fields */
.fg_res-calendar,.fg_res-day-panel{box-sizing:border-box;width:100%;max-width:100%}
.fg_res-form,.fg_res-form-row{min-width:0}
.fg_res-form-row input,.fg_res-form-row textarea{box-sizing:border-box;display:block;width:100%;max-width:100%;min-height:44px;padding:11px 13px;border:1px solid #9ca3af;border-radius:8px;background:#fff;color:#171717;font:inherit}
.fg_res-form-row textarea{min-height:104px;resize:vertical}
.fg_res-form-row input:focus-visible,.fg_res-form-row textarea:focus-visible{outline:3px solid #2563eb;outline-offset:2px}
@media(max-width:600px){
 .fg_res-calendar{padding:8px 0}
 .fg_res-grid{gap:3px}
 .fg_res-day{min-width:0;min-height:42px;padding:6px 2px;text-align:center;font-size:13px}
 .fg_res-weekday{padding:5px 0;font-size:12px}
 .fg_res-cal-header{gap:8px;flex-wrap:wrap}
 .fg_res-cal-header h2{font-size:1.15rem}
 .fg_res-day-panel{padding:12px 0}
 .fg_res-times{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .fg_res-time{min-width:0;min-height:44px}
 .fg_res-durations{gap:6px}
 .fg_res-duration{min-height:44px}
 .fg_res-submit{width:100%;min-height:48px}
 .fg_res-form{width:100%;max-width:100%}
}

/* v1.3.11 – consistent calendar typography and explicit form errors */
.fg_res-calendar .fg_res-day,.fg_res-calendar button.fg_res-day,.fg_res-calendar span.fg_res-day{font-family:inherit;font-size:14px;font-weight:400;line-height:1.35;font-style:normal;letter-spacing:normal;box-sizing:border-box}
.fg_res-calendar .fg_res-day.is-blocked{font-size:14px;font-weight:400}
.fg_res-legend{margin:.3rem 0 1rem}
.fg_res-form-row :is(input,textarea):user-invalid,.fg_res-form-row :is(input,textarea)[aria-invalid="true"]{border-color:#b42318;background:#fff8f7;box-shadow:0 0 0 1px #b42318}
.fg_res-form-row .fg_res-field-error{color:#b42318;font-size:.875rem;line-height:1.4}
.fg_res-status[data-error="true"]{color:#b42318}
@media(max-width:600px){.fg_res-calendar .fg_res-day,.fg_res-calendar button.fg_res-day,.fg_res-calendar span.fg_res-day{font-size:14px;min-height:32px;padding:6px 2px;text-align:center}}

@media(max-width:600px){
.fg_res-cal-header{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:6px}
.fg_res-cal-header h2{text-align:center;margin:0;min-width:0}
.fg_res-nav{min-width:44px;min-height:44px;padding:6px;font-size:20px;line-height:1}
.fg_res-nav-label{display:none}
}
