/* Moduł "admin": panel admina. Klasy z prefiksem .admin-. Wartości ze zmiennych tokens.css. */
.admin { min-width: 0; }

/* ---------- pasek trybu administratora ---------- */
.admin-tryb {
  display: flex; align-items: center; justify-content: space-between; gap: var(--o-3); flex-wrap: wrap;
  background: var(--tekst); color: #fff; border-radius: var(--r-m); padding: var(--o-2) var(--o-4); margin-bottom: var(--o-4);
  font-size: var(--t-s);
}
.admin-tryb__nazwa { display: inline-flex; align-items: center; gap: var(--o-2); font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; font-size: var(--t-xs); }
.admin-tryb__kropka { width: 10px; height: 10px; border-radius: 50%; background: var(--akcent); }
.admin-tryb a { color: #ffd2a3; }
.admin-tryb a:hover { color: #fff; }

/* ---------- układ: menu boczne + treść ---------- */
.admin-uklad { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: var(--o-5); align-items: start; }
.admin-menu { position: sticky; top: calc(var(--wysokosc-naglowka) + var(--o-3)); background: var(--karta); border: 1px solid var(--ramka); border-radius: var(--r-l); padding: var(--o-2); display: grid; gap: 2px; }
.admin-menu a { display: block; padding: 10px 14px; border-radius: var(--r-m); text-decoration: none; color: var(--tekst-2); font-weight: 600; font-size: var(--t-s); }
.admin-menu a:hover { background: var(--karta-2); color: var(--tekst); }
.admin-menu a[aria-current="page"] { background: var(--akcent-tlo); color: var(--tekst); box-shadow: inset 3px 0 0 var(--akcent); }
.admin-tresc { min-width: 0; }

/* ---------- nagłówek sekcji ---------- */
.admin-naglowek { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--o-4); flex-wrap: wrap; margin-bottom: var(--o-5); }
.admin-naglowek h1 { margin-bottom: var(--o-1); }
.admin-naglowek p { color: var(--tekst-2); max-width: 70ch; margin: 0; }
.admin-naglowek__akcje { display: flex; gap: var(--o-2); flex-wrap: wrap; }

/* ---------- narzędzia nad tabelą ---------- */
.admin-narzedzia { display: flex; gap: var(--o-3); flex-wrap: wrap; align-items: flex-end; margin-bottom: var(--o-4); }
.admin-narzedzia .k-pole { margin: 0; min-width: 0; }
.admin-narzedzia .k-pole--szeroki { flex: 1 1 220px; }
.admin-narzedzia .k-pole select, .admin-narzedzia .k-pole input { min-height: 40px; padding: 8px 12px; }
.admin-licznik { color: var(--tekst-2); font-size: var(--t-s); margin: var(--o-3) 0 0; }
.admin-strony { display: flex; gap: var(--o-3); align-items: center; flex-wrap: wrap; margin-top: var(--o-3); }
.admin-pusto { color: var(--tekst-2); text-align: center; padding: var(--o-5) var(--o-3); margin: 0; }
.admin-blad-okna:not(:empty) { margin-top: var(--o-3); }
.admin-blad-okna .k-komunikat { margin-bottom: 0; }

/* ---------- tabele ---------- */
.admin-tabela { max-width: 100%; }
.admin-tabela:focus-visible { outline: 3px solid var(--akcent); outline-offset: 2px; }
.admin-tabela .k-tabela { min-width: 640px; }
.admin-tabela td { vertical-align: middle; }
.admin-tabela .admin-akcje { display: flex; gap: var(--o-1); flex-wrap: wrap; }
.admin-sortuj { background: none; border: 0; padding: 0; font: inherit; font-weight: 700; cursor: pointer; display: inline-flex; gap: 6px; align-items: center; color: inherit; border-radius: var(--r-s); }
.admin-sortuj:hover { color: var(--akcent-tekst); }
.admin-sortuj__strzalka { font-size: 0.7em; color: var(--akcent-tekst); min-width: 0.8em; }
.admin-osoba { display: grid; line-height: 1.3; max-width: 260px; overflow-wrap: anywhere; }
.admin-tabela th { white-space: normal; }
.admin-osoba small { color: var(--tekst-2); overflow-wrap: anywhere; }
.admin-tekst-blad { color: var(--blad); font-weight: 700; }
.admin-tekst-cichy { color: var(--tekst-2); }
.admin-kod { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: var(--t-xs); overflow-wrap: anywhere; }

/* ---------- formularze i okna ---------- */
.admin-modal--szeroki { width: min(860px, 100%); }
.admin-formularz .k-pole { margin-bottom: var(--o-3); }
.admin-formularz .k-pole select { width: 100%; min-height: 44px; padding: 10px 14px; background: #fff; border: 1px solid var(--ramka-mocna); border-radius: var(--r-m); }
.admin-pole-tak label { display: flex; gap: var(--o-2); align-items: center; font-weight: 600; cursor: pointer; margin: 0; }
.admin-pole-tak input { width: 20px; height: 20px; min-height: 0; accent-color: var(--akcent); flex: none; }
.admin-siatka-pol { display: grid; gap: 0 var(--o-4); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.admin-md { width: 100%; padding: 10px 14px; background: #fff; border: 1px solid var(--ramka-mocna); border-radius: var(--r-m); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: var(--t-s); resize: vertical; }
.admin-md:focus { outline: 3px solid var(--akcent); outline-offset: 0; border-color: var(--akcent); }
.admin-md-glowa { display: flex; justify-content: space-between; align-items: center; gap: var(--o-3); flex-wrap: wrap; margin-bottom: 6px; }
.admin-md-glowa label { margin: 0; }
.admin-podglad { background: var(--karta-2); border: 1px dashed var(--ramka-mocna); border-radius: var(--r-m); padding: var(--o-3) var(--o-4); max-height: 320px; overflow: auto; }
.admin-skutki { margin: 0 0 var(--o-3); padding-left: 1.2em; color: var(--tekst-2); }
.admin-haslo-wiersz { display: flex; gap: var(--o-2); align-items: center; flex-wrap: wrap; margin: var(--o-3) 0; }
.admin-haslo { flex: 1 1 200px; min-width: 0; min-height: 44px; padding: 10px 14px; border: 2px solid var(--akcent); border-radius: var(--r-m); background: var(--akcent-tlo); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: var(--t-l); font-weight: 700; }
.admin-sekcja-okna { border-top: 1px solid var(--ramka); padding-top: var(--o-4); margin-top: var(--o-4); }
.admin-sekcja-okna h3 { font-size: var(--t-m); margin-bottom: var(--o-2); }
.admin-wiersz-akcji { display: flex; gap: var(--o-2); flex-wrap: wrap; align-items: center; }
.admin-niebezpieczna { border-color: #f1c0bc; background: var(--blad-tlo); border-radius: var(--r-m); padding: var(--o-3) var(--o-4); }

/* ---------- pulpit ---------- */
.admin-kafle { display: grid; gap: var(--o-4); grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); margin-bottom: var(--o-5); }
.admin-kafel { display: grid; gap: var(--o-1); align-content: start; }
.admin-kafel__liczba { font-size: var(--t-3xl); font-weight: 800; line-height: 1.05; }
.admin-kafel__opis { color: var(--tekst-2); font-size: var(--t-s); }
.admin-kafel--uwaga { border-color: #ffd2a3; background: var(--akcent-tlo); }
.admin-kafel h2 { font-size: var(--t-s); text-transform: uppercase; letter-spacing: 0.05em; color: var(--tekst-2); margin: 0 0 var(--o-1); }
.admin-dwie { display: grid; gap: var(--o-4); grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: var(--o-5); }
.admin-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--o-2); }
.admin-lista li { display: flex; justify-content: space-between; gap: var(--o-3); align-items: center; padding: var(--o-2) 0; border-bottom: 1px solid var(--ramka); flex-wrap: wrap; }
.admin-lista li:last-child { border-bottom: 0; }
.admin-lista--dziennik time { color: var(--tekst-2); font-size: var(--t-xs); white-space: nowrap; }
.admin-pierscienie { display: flex; gap: var(--o-5); flex-wrap: wrap; align-items: center; }
.admin-pierscienie figure { margin: 0; display: grid; justify-items: center; gap: var(--o-2); text-align: center; font-size: var(--t-s); color: var(--tekst-2); }

/* ---------- lista z przenoszeniem ---------- */
.admin-sort { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--o-2); }
.admin-sort__pozycja { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--o-3); align-items: center; background: var(--karta); border: 1px solid var(--ramka); border-radius: var(--r-m); padding: var(--o-2) var(--o-3); }
.admin-sort__pozycja--przeciagana { opacity: 0.45; border-style: dashed; }
.admin-sort__ruch { display: flex; gap: 4px; align-items: center; }
.admin-sort__ruch button { width: 34px; height: 34px; border-radius: var(--r-s); border: 1px solid var(--ramka-mocna); background: var(--karta-2); cursor: pointer; display: grid; place-items: center; padding: 0; font-weight: 700; }
.admin-sort__ruch button:hover:not(:disabled) { background: var(--akcent-tlo); border-color: var(--akcent); }
.admin-sort__ruch button:disabled { opacity: 0.35; cursor: not-allowed; }
.admin-sort__uchwyt { cursor: grab; letter-spacing: -2px; color: var(--tekst-2); }
.admin-sort__tresc { min-width: 0; }
.admin-sort__pozycja .admin-sort__pozycja { background: var(--karta-2); }
.admin-pozycja { display: flex; gap: var(--o-3); align-items: center; justify-content: space-between; flex-wrap: wrap; }
.admin-pozycja__opis { min-width: 0; display: grid; gap: 2px; flex: 1 1 220px; }
.admin-pozycja__opis strong { overflow-wrap: anywhere; }
.admin-pozycja__opis small { color: var(--tekst-2); }
.admin-pozycja__akcje { display: flex; gap: var(--o-1); flex-wrap: wrap; align-items: center; }
.admin-zaznacz { display: inline-flex; align-items: center; gap: 6px; font-size: var(--t-s); cursor: pointer; }
.admin-zaznacz input { width: 20px; height: 20px; accent-color: var(--akcent); }
.admin-masowe { display: flex; gap: var(--o-2); align-items: center; flex-wrap: wrap; background: var(--akcent-tlo); border: 1px solid #ffd2a3; border-radius: var(--r-m); padding: var(--o-2) var(--o-3); margin-bottom: var(--o-3); font-size: var(--t-s); }
.admin-okruszki { font-size: var(--t-s); margin-bottom: var(--o-3); }
.admin-blok { margin-bottom: var(--o-5); }
.admin-blok > h2 { font-size: var(--t-l); }
.admin-etap { background: var(--karta); border: 1px solid var(--ramka); border-radius: var(--r-l); padding: var(--o-4); }
.admin-etap__glowa { display: flex; gap: var(--o-3); justify-content: space-between; align-items: center; flex-wrap: wrap; margin-bottom: var(--o-3); }
.admin-etap__tytul { display: flex; gap: var(--o-2); align-items: center; flex-wrap: wrap; min-width: 0; }
.admin-etap__tytul h3 { margin: 0; overflow-wrap: anywhere; }

/* ---------- Q&A: dwie kolumny ---------- */
.admin-qa { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: var(--o-4); align-items: start; }
.admin-kategorie { display: grid; gap: var(--o-1); }
.admin-kategoria { display: flex; align-items: center; justify-content: space-between; gap: var(--o-2); border-radius: var(--r-m); padding: 6px 8px; }
.admin-kategoria button.admin-kategoria__nazwa { flex: 1; text-align: left; background: none; border: 0; cursor: pointer; padding: 6px; border-radius: var(--r-s); font-weight: 600; overflow-wrap: anywhere; }
.admin-kategoria--wybrana { background: var(--akcent-tlo); box-shadow: inset 3px 0 0 var(--akcent); }
.admin-kategoria--pod { margin-left: var(--o-4); }

/* ---------- import ---------- */
.admin-wybory { display: grid; gap: var(--o-2); margin: 0 0 var(--o-3); padding: 0; border: 0; }
.admin-wybory legend { font-weight: 700; font-size: var(--t-s); margin-bottom: var(--o-2); padding: 0; }
.admin-opcja { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--o-3); align-items: start; padding: var(--o-3); border: 1px solid var(--ramka); border-radius: var(--r-m); background: var(--karta); cursor: pointer; }
.admin-opcja:has(input:checked) { border-color: var(--akcent); background: var(--akcent-tlo); }
.admin-opcja input { margin-top: 4px; width: 18px; height: 18px; accent-color: var(--akcent); }
.admin-opcja small { display: block; color: var(--tekst-2); }
.admin-raport-tabela .k-tabela { min-width: 560px; }
.admin-raport-tabela td.admin-liczba, .admin-raport-tabela th.admin-liczba { text-align: right; }
.admin-bledy { margin: 0 0 var(--o-3); padding-left: 1.3em; }
.admin-bledy li { margin-bottom: 4px; overflow-wrap: anywhere; }
.admin-podsumowanie { display: flex; gap: var(--o-2); flex-wrap: wrap; margin: var(--o-3) 0; }

/* ---------- ustawienia, dziennik ---------- */
.admin-ustawienie { padding-bottom: var(--o-3); }
.admin-powtarzacz { display: grid; gap: var(--o-2); margin-bottom: var(--o-3); }
.admin-powtarzacz__wiersz { display: grid; gap: var(--o-2); grid-template-columns: repeat(3, minmax(0, 1fr)); padding: var(--o-2); background: var(--karta-2); border-radius: var(--r-m); }
.admin-powtarzacz__wiersz input { min-height: 40px; padding: 8px 12px; background: #fff; border: 1px solid var(--ramka-mocna); border-radius: var(--r-m); width: 100%; }
.admin-powtarzacz__wiersz--jedno { grid-template-columns: minmax(0, 1fr); }
.admin-szczegoly { max-width: 360px; }
.admin-szczegoly summary { cursor: pointer; color: var(--akcent-tekst); font-size: var(--t-xs); font-weight: 700; }
.admin-szczegoly pre { margin: 6px 0 0; white-space: pre-wrap; overflow-wrap: anywhere; font-size: var(--t-xs); background: var(--karta-2); padding: 8px; border-radius: var(--r-s); }

/* ---------- responsywność ---------- */
@media (max-width: 960px) {
  .admin-uklad { grid-template-columns: minmax(0, 1fr); gap: var(--o-3); }
  .admin-menu { position: static; display: flex; overflow-x: auto; gap: var(--o-1); padding: var(--o-2); scrollbar-width: thin; }
  .admin-menu a { white-space: nowrap; }
  .admin-menu a[aria-current="page"] { box-shadow: inset 0 -3px 0 var(--akcent); }
  .admin-qa { grid-template-columns: minmax(0, 1fr); }
  .admin-dwie { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .admin-siatka-pol { grid-template-columns: minmax(0, 1fr); }
  .admin-powtarzacz__wiersz { grid-template-columns: minmax(0, 1fr); }
  .admin-naglowek { align-items: flex-start; }
  .admin-sort__pozycja { grid-template-columns: minmax(0, 1fr); }
  .admin-sort__ruch { justify-content: flex-start; }
  .admin-modal--szeroki { padding: var(--o-4); }
  .admin-tryb { padding: var(--o-2) var(--o-3); }
}

.admin-pigulki { display: grid; gap: 4px; justify-items: start; }
.admin-tabela .admin-akcje { min-width: 110px; }
.admin-sort__pozycja { align-items: start; }
.admin-sort__ruch { padding-top: 2px; }
.admin-kategoria { flex-wrap: wrap; }
@media (max-width: 600px) {
  .admin-kategoria button.admin-kategoria__nazwa { flex: 1 1 100%; }
  .admin-kategoria--pod { margin-left: 0; }
}
