/* nb-a11y.css (P2, 22.10.2026) — accesibilitate de baza: skip-link, zone de atingere >=44px, inputuri >=16px pe telefon.
   Regula: nu schimba aspectul. Zonele de atingere se maresc cu ::before (invizibil, fara impact pe layout). */

/* ── skip-link: ascuns pana primeste focus (zero diferenta vizuala) ── */
.nb-skip-link {
  position: fixed; top: 8px; left: 8px; z-index: 2147483000;
  transform: translateY(-200%);
  background: #0b0b0c; color: #fff; border: 2px solid #FFD700; border-radius: 10px;
  padding: 10px 16px; min-height: 44px; display: inline-flex; align-items: center; box-sizing: border-box; font: 600 14px/1.2 Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
  text-decoration: none; white-space: nowrap;
}
.nb-skip-link:focus, .nb-skip-link:focus-visible { transform: none; outline: 3px solid #FFD700; outline-offset: 2px; }
.nb-skip-target:focus { outline: none; }

/* ── zone de atingere >=44px (hit-area extinsa; dimensiunea vizuala ramane) ── */
.mc-header-btn, .mc-modal-close, .m-sheet__close, .m-section__link, .m-te-section__link, .m-package-banner__btn,
.m-header__avatar, .m-cu-hdr__theme, .m-te-hdr__theme, .m-tr-hdr__theme, .m-cu-hdr__brand, .m-te-hdr__brand, .m-tr-hdr__brand,
.m-bwl__link, .nb-role-btn, .nb-login__forgot, .mc-btn { position: relative; }
.mc-day-nav::before, .mc-header-btn::before, .mc-modal-close::before, .m-cu-hdr__theme::before, .m-te-hdr__theme::before, .m-tr-hdr__theme::before,
.nb-theme-toggle-fab::before, #booking-close::before { content: ""; position: absolute; inset: -8px; }
.m-sheet__close::before { content: ""; position: absolute; inset: -14px -18px; }
.m-section__link::before, .m-te-section__link::before, .m-bwl__link::before, .nb-login__forgot::before { content: ""; position: absolute; inset: -15px -6px; }
.m-package-banner__btn::before, .m-cu-hdr__brand::before, .m-te-hdr__brand::before, .m-tr-hdr__brand::before, .nb-role-btn::before { content: ""; position: absolute; inset: -8px 0; }
.mc-btn-primary::before { content: ""; position: absolute; inset: -4px 0; }
.mc-btn-secondary::before { content: ""; position: absolute; inset: -4px -3px; }
.m-header__avatar::before, .nb-theme-toggle::before { content: ""; position: absolute; inset: -4px; }
.trainer-chip { position: relative; }
@media (pointer: coarse) { .trainer-chip::before { content: ""; position: absolute; inset: -7px 0; } }
/* Detalii / rezumate care se deschid: padding + margin negativ = aceeasi pozitie, hit-area 44px */
.m-te-azi__people > summary, .nbsc details > summary, .nbsc__help > summary { padding-block: 15px; margin-block: -15px; }
/* casute de bifat din cererea de ajutor (13px): eticheta intreaga e tinta */
.nbsc__help label { display: flex; align-items: center; gap: 8px; min-height: 46px; }
.nbsc__help label > input[type="checkbox"], .nbsc__help label > input[type="radio"] { width: 22px; height: 22px; flex: none; margin: 0; }

/* ── mobil: inputuri la 16px (iOS nu mai face zoom la focus); desktop neatins ──
   1) regula generala (specificitate mica: nu bate reguli de clasa ale paginilor);  2) regula pentru paginile din cerinta (login/inregistrare/resetare,
   calendar mobil client, calendar+panou mobil admin, modalul de rezervare) cu specificitate mai mare, DOAR acolo. */
@media (max-width: 767.98px) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="image"]):not([type="hidden"]),
  select, textarea { font-size: 16px; }
  :is(.nb-login, .nb-register, .nb-reset, .nb-resetreq, .m-te-page, .m-sheet, .mc-filter-bar, .mc-modal, #booking-popup, .nbsc)
    :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="image"]):not([type="hidden"]), select, textarea) { font-size: 16px; }
}
