/* MZW RODO 2.5.46 — przejrzystość całej aplikacji (etapy 1–5 analizy z 28.10.2026).
   Osobny plik: wycofanie = usunięcie linku w index.html. Wszystko w @media screen. */
@media screen {
/* ── Okna formularzy: „Zapisz” zawsze widoczny (pasek przycisków przyklejony do dołu okna) ── */
#modal .modal-content .mf-actions,
#modal .modal-content .mf-footer {
  position: sticky; bottom: -24px; z-index: 6;
  margin: 16px -28px -24px; padding: 12px 28px;
  background: var(--cream2, #f3eee4); border-top: 1px solid var(--border, #e7e5e4);
  box-shadow: 0 -6px 14px rgba(0,0,0,.06);
}
[data-theme="dark"] #modal .modal-content .mf-actions,
[data-theme="dark"] #modal .modal-content .mf-footer { background: var(--surface, #162436); }
#modal .modal-content .mf-footer { display: flex; gap: 8px; align-items: center; justify-content: flex-end; flex-wrap: wrap; }
#modal .modal-content .ux-cancel { margin-left: auto; }
#modal .modal-content .mf-actions .ux-cancel + .mf-spacer { display: none; }
/* przycisk ✖ zamykania widoczny przy przewijaniu */
#modal .modal-content > .close { position: sticky; float: right; top: 0; margin: -14px -18px 0 0; }
}
@media screen and (max-width: 600px) {
  #modal .modal-content .mf-actions, #modal .modal-content .mf-footer { bottom: -16px; margin: 12px -16px -16px; padding: 10px 16px; }
  /* zwarta stopka: dwa przyciski w rzędzie, długi przycisk dodatkowy w osobnym wierszu nad nimi */
  #modal .modal-content .mf-footer { gap: 8px; }
  #modal .modal-content .mf-footer .mf-btn { flex: 1 1 calc(50% - 4px); min-height: 44px; padding: 10px 12px; margin: 0; }
  #modal .modal-content .mf-footer .ux-cancel { margin-left: 0; }
  #modal .modal-content .mf-footer #qi_full { flex-basis: 100%; order: -1; }
  #modal .modal-content .mf-actions { display: flex !important; flex-direction: row !important; flex-wrap: wrap; gap: 8px; }
  #modal .modal-content .mf-actions > button, #modal .modal-content .mf-footer .mf-btn { flex: 1 1 calc(50% - 4px); min-width: 0; min-height: 44px; width: auto !important; margin: 0 !important; white-space: normal; line-height: 1.2; padding: 8px 10px; justify-content: center; text-align: center; }
  #modal .modal-content .mf-actions > .mf-spacer { display: none; }
  #modal .modal-content .mf-actions > .mf-hint { display: none; }
}
/* telefon/tablet: dolny pasek nawigacji (z-index 9999) i pływający ✖ (99999, prawy dolny róg)
   zasłaniały przyklejony „Zapisz”. Okno nad paskiem; pływający ✖ zbędny — jest przyklejony ✖ u góry i „Anuluj”. */
@media screen and (max-width: 768px) {
  body:has(#modal:not(.hidden)) #mzwBottomBar,
  body:has(#modal:not(.hidden)) #mobileBottomNav { display: none !important; }
  #modalCloseFab { display: none !important; }
}
/* style.css (≤480 px) odsuwał pasek akcji o 54 px od dołu, żeby nie wchodził pod dolny pasek nawigacji —
   pasek jest teraz schowany na czas okna, więc stopka wraca na sam dół okna */
@media screen and (max-width: 480px) {
  #modal .modal-content .mf-actions { bottom: -16px !important; margin: 12px -16px -16px !important; }
}
@media screen and (min-width: 769px) { .ux-hide-desk { display: none !important; } }
/* paski narzędzi: podpisane pola (Okres, Rodzaj…) */
.toolbar .tb-lbl { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--text2, #44403c); }
.toolbar .tb-lbl select, .toolbar .tb-lbl input { font-weight: 400; }
.act-more { display: flex; align-items: center; gap: 12px; justify-content: center; padding: 12px 0; font-size: 13px; color: var(--text3, #5f5a55); }
@media screen and (max-width: 768px) { .rhm-table-wrap { overflow-x: auto; max-width: 100%; -webkit-overflow-scrolling: touch; } }
/* przełącznik widoków (segmenty) — Terminy, Ryzyko, Kalendarz… */
.ux-seg { display: inline-flex; border: 1px solid var(--border2, #d6d3d1); border-radius: 8px; overflow: hidden; background: var(--surface, #fff); }
.ux-seg button { font-size: 13px; font-weight: 600; padding: 7px 12px; min-height: 34px; border: 0; background: transparent; color: var(--text2, #44403c); cursor: pointer; border-right: 1px solid var(--border, #e7e5e4); border-radius: 0; }
.ux-seg button:last-child { border-right: 0; }
.ux-seg button:hover:not(:disabled) { background: var(--surface2, #ede6d8); }
.ux-seg button.is-on { background: var(--navy, #0D1B2A); color: #fff; }
[data-theme="dark"] .ux-seg button.is-on { background: var(--gold, #B8962A); color: #0D1B2A; }
/* pasek narzędzi: przycisk dodawania wyróżniony, menu eksportu */
.toolbar > button.ux-primary { background: var(--navy, #0D1B2A); color: #fff; border-color: var(--navy, #0D1B2A); font-weight: 700; }
[data-theme="dark"] .toolbar > button.ux-primary { background: var(--gold, #B8962A); color: #0D1B2A; border-color: var(--gold, #B8962A); }
.ux-exp { position: relative; display: inline-block; }
.ux-exp-menu { position: absolute; top: calc(100% + 4px); right: 0; z-index: 50; min-width: 220px; background: var(--surface, #fff); border: 1px solid var(--border2, #d6d3d1); border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,.15); padding: 4px; display: flex; flex-direction: column; }
.ux-exp-menu[hidden] { display: none; }
.ux-exp-menu .ux-exp-item { display: block; width: 100%; text-align: left; background: transparent !important; color: var(--text, #1c1917) !important; border: 0 !important; padding: 9px 12px !important; border-radius: 6px; font-size: 13.5px; font-weight: 500; white-space: nowrap; }
.ux-exp-menu .ux-exp-item:hover { background: var(--surface2, #ede6d8) !important; }
@media screen and (max-width: 768px) { .ux-exp-menu { right: auto; left: 0; } }
/* wybór czynności (DPIA / SoA) */
#modalBody .ux-pick { display: flex; justify-content: space-between; align-items: center; gap: 10px; width: 100%; text-align: left; background: transparent; border: 0; border-radius: 6px; padding: 8px 10px; font-size: 14px; color: var(--text, #1c1917); cursor: pointer; }
#modalBody .ux-pick:hover { background: var(--surface2, #f5f0e6); }
#modalBody .ux-pick[hidden] { display: none; }
.ux-pick-st { font-size: 12px; color: var(--text3, #5f5a55); white-space: nowrap; }
/* lista kontrolna: grupy zwijane */
#checklistBody .cl-group-hdr[data-cl-key] { cursor: pointer; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; user-select: none; }
#checklistBody .cl-group-hdr[data-cl-key]:focus-visible { outline: 2px solid var(--gold, #B8962A); outline-offset: -2px; }
#checklistBody .cl-chev { display: inline-block; width: 0; height: 0; border-left: 6px solid currentColor; border-top: 5px solid transparent; border-bottom: 5px solid transparent; transition: transform .15s; }
#checklistBody .cl-group:not(.cl-collapsed) .cl-chev { transform: rotate(90deg); }
#checklistBody .cl-collapsed > :not(.cl-group-hdr) { display: none !important; }
#checklistBody .cl-hdr-info { font-size: 12.5px; font-weight: 600; color: var(--text3, #5f5a55); margin-left: auto; }
#checklistBody .cl-hdr-info.has-conf { color: #166534; }
[data-theme="dark"] #checklistBody .cl-hdr-info.has-conf { color: #86efac; }
#checklistBody .cl-hdr-info + .cl-group-prog { margin-left: 8px; }
.cl-expand-bar { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: 0 0 10px; }
.cl-expand-hint { font-size: 12.5px; color: var(--text3, #5f5a55); }
/* tryb inspekcji: sekcje zwijane + spis */
#inspectionContent .insp-section-title[data-insp-key] { cursor: pointer; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
#inspectionContent .insp-section-title[data-insp-key]::before { content: ''; border-left: 6px solid currentColor; border-top: 5px solid transparent; border-bottom: 5px solid transparent; transition: transform .15s; }
#inspectionContent .insp-section:not(.insp-collapsed) .insp-section-title[data-insp-key]::before { transform: rotate(90deg); }
#inspectionContent .insp-collapsed > :not(.insp-section-title) { display: none !important; }
.insp-st { font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 10px; margin-left: auto; }
.insp-st-ok { background: #dcfce7; color: #14532d; } .insp-st-warn { background: #fef3c7; color: #78350f; } .insp-st-bad { background: #fee2e2; color: #7f1d1d; }
.insp-toc { background: var(--surface, #fff); border: 1px solid var(--border, #e7e5e4); border-radius: 8px; padding: 10px 14px; margin: 0 0 14px; }
.insp-toc-h { font-weight: 700; font-size: 14px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 6px; }
.insp-toc-h button { font-size: 12px; padding: 4px 10px; }
.insp-toc ol { margin: 0; padding-left: 22px; columns: 2; column-gap: 28px; font-size: 13.5px; line-height: 1.9; }
.insp-toc li { break-inside: avoid; }
.insp-toc .insp-st { margin-left: 4px; font-size: 11.5px; }
@media screen and (max-width: 768px) { .insp-toc ol { columns: 1; } }
#retSeg, #tmSeg { margin: 0 0 10px; }
@media print { .cl-expand-bar, .insp-toc, #retSeg, #tmSeg { display: none !important; } #checklistBody .cl-collapsed > *, #inspectionContent .insp-collapsed > * { display: revert !important; } }
/* szybkie zgłoszenie naruszenia */
.qi-err { color: #991b1b; font-weight: 600; font-size: 13.5px; min-height: 18px; margin-top: 4px; }
[data-theme="dark"] .qi-err { color: #fca5a5; }
#modalBody label.qi-pref { display: flex; flex-direction: row; align-items: center; gap: 8px; font-size: 13px; font-weight: 400; text-transform: none; letter-spacing: normal; color: var(--text3, #5f5a55); margin-top: 10px; }
#modalBody label.qi-pref input { width: 16px; height: 16px; }
.qi-done p, .qi-done ol { font-size: 14px; line-height: 1.6; margin: 0 0 8px; }

/* [2.5.46] przypomnienie o kopii zapasowej (prawy dolny róg, z-index nad oknami) zasłaniało
   przyklejony przycisk „Zapisz” — chowamy je na czas otwartego okna, wraca po zamknięciu */
#modal:not(.hidden) ~ #backupToast { display: none !important; }
/* spis sekcji protokołu — linki w obu motywach (domyślny niebieski przeglądarki ginął na ciemnym tle) */
.insp-toc a { color: #1d4ed8; text-decoration: none; }
.insp-toc a:hover { text-decoration: underline; }
[data-theme="dark"] .insp-toc a { color: #e3c466; }

/* [2.5.49] Rola „pracownik”: tylko własne dane — elementy zbiorcze ukryte (funkcje także zablokowane w app-role-scope.js) */
body[data-mzw-role="pracownik"] #auths > .toolbar > button,
body[data-mzw-role="pracownik"] #auths > .toolbar > .ux-exp,
body[data-mzw-role="pracownik"] #btnAddTraining,
body[data-mzw-role="pracownik"] #btnOnbLinkTr,
body[data-mzw-role="pracownik"] #onbTrCard,
body[data-mzw-role="pracownik"] #trainings > .toolbar > .ux-exp,
body[data-mzw-role="pracownik"] #trainings > .toolbar > button[onclick*="exportTrainingsExcel"],
body[data-mzw-role="pracownik"] #doc_confirm > .toolbar button[onclick*="exportCSV"],
body[data-mzw-role="pracownik"] #doc_confirm > .toolbar > .ux-exp,
body[data-mzw-role="pracownik"] #dash-score { display: none !important; }

/* [2.5.50] pulpit pracownika: zgłoszenie naruszenia + moje zgłoszenia */
.qi-emp-card { padding: 14px 16px; margin: 0 0 14px; border-left: 4px solid #b91c1c; }
.qi-emp-hd { display: flex; gap: 14px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.qi-emp-sub { font-size: 13px; color: var(--text2, #44403c); margin-top: 3px; }
.qi-emp-lh { font-weight: 700; font-size: 13px; margin: 14px 0 6px; }
.qi-emp-list .table td { font-size: 13px; }

/* [v2.5.51] Portal pracownika — okno zarządzania */
.onbl-box.ptl-box { max-width: 880px; }
.ptl-meta { font-size: 12px; color: var(--text3, #78716c); }
.ptl-acts { white-space: nowrap; text-align: right; }
.ptl-acts .mf-btn, .mf-btn.ptl-sm { padding: 5px 10px; font-size: 12px; margin: 2px 0 2px 4px; display: inline-block; text-decoration: none; }
.mf-btn.ptl-danger { color: #991b1b; border-color: #fecaca; }
[data-theme="dark"] .mf-btn.ptl-danger { color: #fca5a5; border-color: #7f1d1d; }
.ptl-tab td { vertical-align: middle; }
.ptl-new { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; font-size: 13px; margin: 2px 0 6px; }
.ptl-new select { width: auto; padding: 4px 8px; margin-left: 6px; }
.ptl-pin { margin: 6px 0; padding: 8px 10px; border-radius: 7px; background: #fefce8; border: 1px solid #fde68a; color: #713f12; font-size: 13px; word-break: normal; }
.ptl-pin b { font-size: 18px; letter-spacing: .12em; }
.ptl-qs { display: flex; flex-direction: column; gap: 8px; margin-bottom: 8px; }
.ptl-q { border: 1px solid var(--border, #e7e5e4); border-radius: 8px; padding: 9px 11px; font-size: 13px; }
.ptl-q.is-done { opacity: .75; }
.ptl-qh { font-size: 12px; color: var(--text3, #78716c); margin-bottom: 3px; }
.ptl-qt { white-space: pre-wrap; }
.ptl-qa { margin-top: 6px; padding-top: 6px; border-top: 1px dashed var(--border, #e7e5e4); color: #166534; white-space: pre-wrap; }
[data-theme="dark"] .ptl-qa { color: #86efac; }
.ptl-ans { width: 100%; box-sizing: border-box; margin-top: 6px; padding: 7px 9px; border: 1px solid var(--border2, #d6d3d1); border-radius: 7px; font: inherit; background: var(--surface, #fff); color: var(--text, #1c1917); }
.ptl-ansb { margin-top: 6px; padding: 5px 12px; font-size: 12px; }
@media (max-width: 640px) { .ptl-acts { white-space: normal; text-align: left; } }

/* [v2.5.51] Sejf IOD */
.onbl-box.vlt-box { max-width: 720px; }
.vlt-big { min-height: 220px; font-family: inherit; resize: vertical; }
.vlt-list { display: flex; flex-direction: column; gap: 6px; margin-bottom: 6px; }
.vlt-item { text-align: left; border: 1px solid var(--border, #e7e5e4); border-radius: 8px; padding: 8px 11px; background: var(--surface2, #fafaf9); color: inherit; font: inherit; cursor: pointer; }
.vlt-item.is-static { cursor: default; }
.vlt-item:not(.is-static):hover { border-color: var(--gold, #ca8a04); }
.vlt-item b { display: block; font-size: 13px; }
.vlt-item span { display: block; font-size: 12px; color: var(--text3, #78716c); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vlt-panel { border: 1px dashed #a16207; border-radius: 8px; padding: 10px 12px !important; margin: 10px 0; background: #fffbeb; }
[data-theme="dark"] .vlt-panel { background: rgba(161,98,7,.12); }
.vlt-hd { font-size: 13px; margin-bottom: 6px; }
.vlt-tag { font-size: 11px; color: #92400e; background: #fef3c7; border-radius: 9px; padding: 1px 7px; margin-left: 4px; }
.vlt-sub { font-size: 12px; color: var(--text2, #57534e); margin-bottom: 6px; line-height: 1.45; }
.vlt-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 6px; }
.vlt-row .vlt-pass { flex: 1 1 200px; padding: 7px 9px; border: 1px solid var(--border2, #d6d3d1); border-radius: 7px; }
.vlt-ta { width: 100%; box-sizing: border-box; padding: 8px 10px; border: 1px solid var(--border2, #d6d3d1); border-radius: 7px; font: inherit; background: var(--surface, #fff); color: var(--text, #1c1917); }
.vlt-meta { font-size: 12px; color: var(--text3, #78716c); flex: 1; }
.vlt-err { color: #991b1b; font-size: 12px; min-height: 0; }
.ptl-new label { text-transform: none; letter-spacing: normal; font-weight: 500; }

/* [v2.5.52] Pola wyboru w oknach: etykieta przy polu (nie nagłówek), pole w naturalnym rozmiarze.
   Wcześniej ogólne reguły dla etykiet/pól formularza (wielkie litery, szerokość 100%) trafiały też
   w etykiety pól wyboru — np. „Zarządzanie użytkownikami” (pole rozciągnięte na całą szerokość,
   tekst nad nim) i „Kalkulator kar” (opis czynników wielkimi literami, w trybie ciemnym nieczytelny). */
#modalBody label:has(> input[type="checkbox"]):not(.mf-label),
#modalBody label:has(> input[type="radio"]):not(.mf-label) {
  display: flex !important; flex-direction: row !important; align-items: flex-start; gap: 8px;
  text-transform: none !important; letter-spacing: normal !important;
  font-weight: 400 !important; font-size: 13px !important; line-height: 1.45;
  color: var(--text, #1c1917) !important; cursor: pointer;
}
#modalBody label:has(> input[type="checkbox"]) > span,
#modalBody label:has(> input[type="radio"]) > span { color: inherit !important; text-transform: none !important; letter-spacing: normal !important; }
#modalBody input[type="checkbox"], #modalBody input[type="radio"] {
  width: auto !important; min-width: 0 !important; height: auto !important; padding: 0 !important;
  margin: 2px 0 0 0 !important; box-shadow: none !important; flex: 0 0 auto; border: initial;
}
[data-theme="dark"] #modalBody label:has(> input[type="checkbox"]):not(.mf-label),
[data-theme="dark"] #modalBody label:has(> input[type="radio"]):not(.mf-label) { color: var(--text, #e7e5e4) !important; border-color: var(--border2, #334155) !important; }
/* style.css: „[data-theme=dark] #modalBody input[type=checkbox] + *” i „.modal-content label” → var(--border2)
   (#3A5070 na #162436 = 1,9:1, nieczytelne) — opis przy polu wyboru w kolorze tekstu */
html[data-theme="dark"] body #modalBody input[type="checkbox"] + *,
html[data-theme="dark"] body #modalBody input[type="radio"] + *,
html[data-theme="dark"] body .modal-content label:has(> input[type="checkbox"]),
html[data-theme="dark"] body .modal-content label:has(> input[type="radio"]) { color: #dbe3ee !important; }
/* [v2.5.52] ✖ zamykania okna: półprzezroczysty biały był niewidoczny po przewinięciu (nad jasną treścią) */
#modal .modal-content > .close { background: #1e3a5f !important; border-color: #1e3a5f !important; color: #fff !important; box-shadow: 0 1px 4px rgba(0,0,0,.25); }
#modal .modal-content > .close:hover { background: var(--red, #b91c1c) !important; border-color: var(--red, #b91c1c) !important; }
[data-theme="dark"] #modal .modal-content > .close { background: #334155 !important; border-color: #475569 !important; }
/* [v2.5.52] wybór czynności (DPIA/SoA): ogólna reguła przycisków w oknie robiła z każdej pozycji granatowy blok
   (szary status na granatowym 2,5:1) — pozycje jako lista */
html body #modalBody button.ux-pick { display: flex !important; background: transparent !important; color: var(--text, #1c1917) !important; border: 0 !important; border-bottom: 1px solid var(--border, #e7e5e4) !important; border-radius: 6px !important; padding: 9px 10px !important; font-weight: 500 !important; white-space: normal !important; }
html body #modalBody button.ux-pick:hover, html body #modalBody button.ux-pick:focus-visible { background: var(--surface2, #f5f0e6) !important; }
html body #modalBody button.ux-pick[hidden] { display: none !important; }
html[data-theme="dark"] body #modalBody button.ux-pick { color: #e2e8f0 !important; border-bottom-color: #2a3f58 !important; }
html[data-theme="dark"] body #modalBody button.ux-pick:hover { background: rgba(255,255,255,.06) !important; }
html[data-theme="dark"] .ux-pick-st { color: #94a3b8; }
/* [v2.5.52] numery kroków w Instrukcjach: biały na złotym 2,8:1 → granatowy na złotym */
.mth-step-num { color: #0d1b2a !important; }
/* Kopie serwerowe: czerwony komunikat błędu na granatowym tle (3,2:1) */
[data-theme="dark"] #srvSnapList[style*="220, 38, 38"], [data-theme="dark"] #srvSnapList[style*="dc2626"] { color: #fca5a5 !important; }
/* linki w oknach w motywie ciemnym (domyślny niebieski 1,7:1) */
[data-theme="dark"] #modalBody a:not(.mf-btn):not([class*="btn"]) { color: #93c5fd; }
/* kalendarz miesiąca: dzień dzisiejszy miał w motywie ciemnym jasne tło i jasnoniebieską cyfrę (1,7:1) */
[data-theme="dark"] #calGrid td.cal-today { background: rgba(59,130,246,.22) !important; }
[data-theme="dark"] #calGrid td.cal-today > div:first-child { color: #bfdbfe !important; }
/* [v2.5.52] okna linków / portalu / sejfu: pasek przycisków przyklejony do dołu (wcześniej „Wygeneruj link” był poza ekranem) */
.onbl-box > .onbl-act:last-child { position: sticky; bottom: -20px; margin: 12px -22px -20px; padding: 10px 22px; background: var(--surface, #fff); border-top: 1px solid var(--border, #e7e5e4); z-index: 2; }
[data-theme="dark"] .onbl-box > .onbl-act:last-child { background: var(--surface, #162436); }
/* [v2.5.52] Hierarchia przycisków w paskach zakładek: gdy pasek ma działanie główne (ux-primary), pozostałe
   przyciski bez klasy (np. „Eksport Excel”, „Drukuj cały RCP”) wyglądały jak drugie działanie główne
   (jasny motyw), a w ciemnym — granat na granacie bez ramki, czyli jak zwykły tekst. Teraz: obrysowane. */
.tab > .toolbar:has(> .ux-primary) > button:not([class]),
.tab > .toolbar:has(> .ux-primary) > button.ux-exp-btn:not(.secondary) { background: transparent !important; color: var(--navy, #0d1b2a) !important; border: 1.5px solid var(--navy2, #162436) !important; }
.tab > .toolbar:has(> .ux-primary) > button:not([class]):hover { background: var(--navy, #0d1b2a) !important; color: #fff !important; }
[data-theme="dark"] .tab > .toolbar:has(> .ux-primary) > button:not([class]) { color: #e2e8f0 !important; border-color: #64748b !important; }
[data-theme="dark"] .tab > .toolbar:has(> .ux-primary) > button:not([class]):hover { background: rgba(255,255,255,.08) !important; }
/* pasek bez działania głównego (Odśwież, Generuj raport…): w ciemnym motywie widoczna ramka */
[data-theme="dark"] .tab > .toolbar > button:not([class]) { border: 1px solid #64748b !important; }
/* [v2.5.52] Lista kontrolna na telefonie: nazwa grupy była dosunięta do prawej (margines „auto” opisu) */
@media (max-width: 600px) {
  #checklistBody .cl-group-hdr[data-cl-key] { justify-content: flex-start; text-align: left; }
  #checklistBody .cl-group-hdr[data-cl-key] .cl-hdr-info { margin-left: 18px !important; flex-basis: calc(100% - 18px); text-align: left; }
  #checklistBody .cl-group-hdr[data-cl-key] .cl-group-prog { margin-left: 18px !important; }
}


/* ════════════════════════════════════════════════════════════════════════════
   [v2.5.55] Okna komunikatów (mzwAlert / mzwConfirm) i powiadomienia (showToast)
   Kolory z tokenów motywu — wcześniej style inline: w trybie ciemnym jasny tekst na białym tle (1,2:1).
   ════════════════════════════════════════════════════════════════════════════ */
.mzw-dlg-scrim{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1000050;display:flex;align-items:center;justify-content:center;padding:20px}
.mzw-dlg{--dlg-accent:#f59e0b;background:#fff;color:#1c1917;border-radius:14px;padding:24px 28px;max-width:380px;width:100%;
  max-height:calc(100vh - 40px);display:flex;flex-direction:column;box-sizing:border-box;
  box-shadow:0 8px 40px rgba(0,0,0,.35);border-top:4px solid var(--dlg-accent);font-family:Arial,sans-serif}
.mzw-dlg-wide{max-width:560px}
.mzw-dlg-center{text-align:center}
.mzw-dlg-info{--dlg-accent:#3b82f6}.mzw-dlg-ok{--dlg-accent:#10b981}.mzw-dlg-warn{--dlg-accent:#f59e0b}.mzw-dlg-err{--dlg-accent:#ef4444}
.mzw-dlg-icon{font-size:28px;margin-bottom:10px}
.mzw-dlg-msg{font-size:14px;line-height:1.6;margin-bottom:20px;white-space:pre-wrap;color:inherit;overflow-wrap:anywhere}
.mzw-dlg-scroll{overflow:auto;min-height:0;flex:1 1 auto}
.mzw-dlg-act{display:flex;gap:10px;flex:none}
.mzw-dlg-btn{flex:1;padding:10px 16px;border-radius:8px;cursor:pointer;font-size:14px;font-family:inherit;border:1px solid transparent}
.mzw-dlg-btn.mzw-dlg-ok{background:#0d1b2a;color:#fff;font-weight:700}
.mzw-dlg-btn.mzw-dlg-sec{background:#f1f5f9;color:#1e293b;border-color:#cbd5e1}
.mzw-dlg-btn:focus-visible{outline:3px solid #B8962A;outline-offset:2px}
[data-theme="dark"] .mzw-dlg{background:#162436;color:#F5F0E8;box-shadow:0 8px 40px rgba(0,0,0,.7);outline:1px solid #2A3F58}
[data-theme="dark"] .mzw-dlg-btn.mzw-dlg-ok{background:#C9A84C;color:#0D1B2A}
[data-theme="dark"] .mzw-dlg-btn.mzw-dlg-sec{background:#1E3050;color:#F5F0E8;border-color:#3A5070}

.mzw-toasts{position:fixed;right:20px;bottom:48px;z-index:1000060;display:flex;flex-direction:column;gap:8px;max-width:min(400px,calc(100vw - 32px));pointer-events:none}
.mzw-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:10px;font-size:13px;line-height:1.5;
  border:1px solid;border-left-width:4px;box-shadow:0 4px 20px rgba(0,0,0,.18);animation:mzwToastIn .25s ease}
.mzw-toast-body{flex:1;min-width:0;overflow-wrap:anywhere}
.mzw-toast-x{background:none;border:none;cursor:pointer;font-size:18px;line-height:1;color:inherit;padding:0 2px;opacity:.8}
.mzw-toast-x:hover{opacity:1}
.mzw-toast-info{background:#eff6ff;color:#1e3a8a;border-color:#93c5fd}
.mzw-toast-ok{background:#f0fdf4;color:#14532d;border-color:#86efac}
.mzw-toast-warn{background:#fffbeb;color:#78350f;border-color:#fcd34d}
.mzw-toast-err{background:#fef2f2;color:#7f1d1d;border-color:#fca5a5}
[data-theme="dark"] .mzw-toast{box-shadow:0 4px 20px rgba(0,0,0,.6)}
[data-theme="dark"] .mzw-toast-info{background:#14263d;color:#dbeafe;border-color:#3b82f6}
[data-theme="dark"] .mzw-toast-ok{background:#0f2a1f;color:#d1fae5;border-color:#10b981}
[data-theme="dark"] .mzw-toast-warn{background:#2d2210;color:#fef3c7;border-color:#f59e0b}
[data-theme="dark"] .mzw-toast-err{background:#2d1414;color:#fee2e2;border-color:#ef4444}
@keyframes mzwToastIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){.mzw-toast{animation:none}}

/* [v2.5.55] okno „Sesja wygasła” (app-auth-core.js) */
.mzw-dlg-reauth{--dlg-accent:#B8962A}
.mzw-dlg-input{width:100%;box-sizing:border-box;padding:10px 12px;font-size:15px;border:1px solid #a8a29e;border-radius:8px;background:#fff;color:#1c1917}
.mzw-dlg-err-txt{min-height:20px;margin:6px 0 4px;font-size:13px;color:#991b1b}
[data-theme="dark"] .mzw-dlg-input{background:#1E3050;color:#F5F0E8;border-color:#3A5070}
[data-theme="dark"] .mzw-dlg-err-txt{color:#fca5a5}

/* [v2.5.55] Okna nakładkowe z białym tłem wpisanym w kodzie (zmiana hasła, „O zabezpieczeniu”, 2FA, kolorystyka,
   synchronizacja, stara wyszukiwarka): wariant ciemny. Kod QR zostaje na białym tle (czytelność dla aparatu). */
[data-theme="dark"] .mzw-pop{background:#162436 !important;color:#F5F0E8 !important;outline:1px solid #2A3F58}
[data-theme="dark"] .mzw-pop [style*="background:#fff" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background: #fff" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color:#fff" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color: #fff" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background:#ffffff" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background: #ffffff" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color:#ffffff" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color: #ffffff" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background:white" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background: white" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color:white" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color: white" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background:#f8fafc" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background: #f8fafc" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color:#f8fafc" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color: #f8fafc" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background:#f1f5f9" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background: #f1f5f9" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color:#f1f5f9" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color: #f1f5f9" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background:#f5f0e8" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background: #f5f0e8" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color:#f5f0e8" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color: #f5f0e8" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background:#fafaf9" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background: #fafaf9" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color:#fafaf9" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color: #fafaf9" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background:#f5f5f4" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background: #f5f5f4" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color:#f5f5f4" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color: #f5f5f4" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background:#fafafa" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background: #fafafa" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color:#fafafa" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color: #fafafa" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background:#f9fafb" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background: #f9fafb" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color:#f9fafb" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color: #f9fafb" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background:#f3f4f6" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background: #f3f4f6" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color:#f3f4f6" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color: #f3f4f6" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background:#e2e8f0" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background: #e2e8f0" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color:#e2e8f0" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color: #e2e8f0" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background:#f0f4f8" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background: #f0f4f8" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color:#f0f4f8" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color: #f0f4f8" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background:#edf2f7" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background: #edf2f7" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color:#edf2f7" i]:not([role="img"]),
[data-theme="dark"] .mzw-pop [style*="background-color: #edf2f7" i]:not([role="img"]){background:#1E3050 !important}
[data-theme="dark"] .mzw-pop [style*="background:#fef3c7" i]{background:#2d2210 !important}
[data-theme="dark"] .mzw-pop [style*="background:#fffbeb" i]{background:#2d2210 !important}
[data-theme="dark"] .mzw-pop [style*="background:#fef2f2" i]{background:#2d1414 !important}
[data-theme="dark"] .mzw-pop [style*="background:#fee2e2" i]{background:#2d1414 !important}
[data-theme="dark"] .mzw-pop [style*="background:#f0fdf4" i]{background:#0f2a1f !important}
[data-theme="dark"] .mzw-pop [style*="background:#dcfce7" i]{background:#0f2a1f !important}
[data-theme="dark"] .mzw-pop [style*="background:#eff6ff" i]{background:#14263d !important}
[data-theme="dark"] .mzw-pop [style*="background:#e0f2fe" i]{background:#14263d !important}
[data-theme="dark"] .mzw-pop [style*="background:#dbeafe" i]{background:#14263d !important}
[data-theme="dark"] .mzw-pop button[style*="background:none" i]{color:inherit}
[data-theme="dark"] .mzw-pop input:not([type=checkbox]):not([type=radio]),[data-theme="dark"] .mzw-pop textarea,[data-theme="dark"] .mzw-pop select{background:#1E3050 !important;color:#F5F0E8 !important;border-color:#3A5070 !important}
[data-theme="dark"] .mzw-pop button[style*="background:#0D1B2A" i],[data-theme="dark"] .mzw-pop button[style*="background:#0d1b2a" i],[data-theme="dark"] .mzw-pop button[style*="background:var(--navy" i]{background:#C9A84C !important;color:#0D1B2A !important}

/* [v2.5.55] tryb jasny: przyciski bez koloru tekstu w oknach mzw-pop dziedziczyły biały tekst (Anuluj, wybór kolorystyki) */
:root:not([data-theme="dark"]) .mzw-pop button[style*="background:#fff" i],
:root:not([data-theme="dark"]) .mzw-pop button[style*="background:#f1f5f9" i],
:root:not([data-theme="dark"]) .mzw-pop button[style*="background:#f8fafc" i]{color:#1e293b}

/* ════════════════════════════════════════════════════════════════════════════
   [v2.5.60] Tryb ciemny — rozwijane wiersze tabel (xrPair: szkolenia, pracownicy, upoważnienia, wnioski,
   naruszenia, RCP, procesory …). Rozwinięty wiersz miał stałe tło #eff6ff przy jasnym tekście (1,0:1), a wartości
   w szczegółach kolor var(--cream2), który w ciemnym motywie oznacza ciemny granat (1,2:1).
   ════════════════════════════════════════════════════════════════════════════ */
[data-theme="dark"] tr.xr-main.xr-open,
[data-theme="dark"] tr.xr-main.xr-open td { background: #1E3050 !important; color: #F5F0E8; }
[data-theme="dark"] tr.xr-main.xr-open td:first-child { box-shadow: inset 3px 0 0 #C9A84C; }
[data-theme="dark"] tr.xr-main.xr-open .xr-chev { color: #C9A84C; }
[data-theme="dark"] .xr-val, [data-theme="dark"] .xr-val *:not(.kpill):not(.kpill *):not(button):not(button *):not(a) { color: #F5F0E8 !important; }
[data-theme="dark"] .xr-lbl { color: #C9B99A !important; }
[data-theme="dark"] tr.xr-main.auth-row-soon td,
[data-theme="dark"] tr.xr-main.auth-row-soon.xr-open td { background: #2d2210 !important; }
[data-theme="dark"] tr.xr-main.auth-row-expired td,
[data-theme="dark"] tr.xr-main.auth-row-expired.xr-open td { background: #2d1414 !important; }
[data-theme="dark"] tr.xr-main.auth-row-revoked td { background: #162436 !important; color: #a3b1c2; }
/* Aktywność — liczba błędów technicznych (#9a3412 na ciemnym tle) */
[data-theme="dark"] [style*="color:#9a3412" i] { color: #fb923c !important; }

/* [v2.5.60] tryb jasny: strzałka rozwijania wierszy (2,4:1 → 4,8:1) */
:root:not([data-theme="dark"]) .xr-chev { color: #64748b; }
