/* aplikacje/wspolne/uklad-aplikacji.css - portal rodzica i aplikacja lektora (PR 28.10.2026, decyzja Kacpra).
   Telefon i tablet (do 1023 px): bez zmian, dolny pasek; w nagłówku logo szkoły obok nazwy.
   Komputer (od 1024 px): menu boczne po lewej jak w panelu biura (248 px, logo i nazwa szkoły na górze, osoba na dole),
   dolny pasek ukryty, treść do 1320 px, sekcje w dwóch kolumnach tam, gdzie to ma sens (.kol-2 > .kol). Klasa body.z-bokiem
   (menuBoczne() w uklad-aplikacji.js) ogranicza te reguły do tych dwóch aplikacji: panel biura ma swoje .bok w panel/index.html. */

/* nagłówek na telefonie: logo i nazwa szkoły po lewej, osoba (Konto / Ja) po prawej */
.szkola-znak{display:inline-flex;align-items:center;gap:8px;min-width:0;max-width:100%}
.szkola-znak .szkola-logo{height:28px;width:auto;max-width:110px;object-fit:contain;display:block;flex-shrink:0}
.szkola-znak .szkola-nazwa{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* DK 28.10: logo z nazwą szkoły w środku (ustawienie logo_z_nazwa): bez napisu obok, logo może być szersze */
.szkola-znak.logo-z-nazwa .szkola-logo{height:32px;max-width:180px}
.gora{gap:10px}
.gora > .kto{min-width:0;flex:1 1 auto;display:flex}
.gora-prawo{display:flex;align-items:center;gap:2px;flex-shrink:0}
.ja-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 4px 0 6px;border-radius:22px;color:var(--tekst2);font-size:14px;font-weight:600;text-decoration:none}
.ja-link:hover{text-decoration:none;color:var(--tekst-mocny)}
.ja-link.wl{color:var(--akcent-tekst)}
.ja-link.wl .avatar{box-shadow:0 0 0 2px var(--akcent-pelny)}
.ja-link:focus-visible{outline:2px solid var(--akcent);outline-offset:2px}

/* obszary dla nowych pozycji menu (docs/design.md zasada 11): Nauka = zajęcia, Dokumenty = zapisy (umowy) */
.dol a[data-s=nauka],.app-bok a.poz:is([data-s=zajecia],[data-s=nauka]){--o:var(--o-zajecia)}
.dol a[data-s=dokumenty],.app-bok a.poz[data-s=dokumenty]{--o:var(--o-zapisy)}

.app-bok{display:none}
.kol-2 > .kol{min-width:0}

/* Start portalu: najbliższe zajęcia i zadanie domowe (telefon jedno pod drugim) */
.start-para{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-top:20px}
.start-para > .najblizsze{margin-top:0}
.najblizsze .nb-lektor{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;margin-top:12px}
.najblizsze .nb-osoba{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px}
.karta-zadania .zad-tresc{font-size:18px;font-weight:600;margin-top:6px;white-space:pre-line;overflow-wrap:anywhere;color:var(--tekst-mocny)}
.karta-zadania.pusta .gdzie{margin-top:6px}

@media (min-width:1024px){
  body.z-bokiem{--bok:248px}
  body.z-bokiem .app-uklad{display:grid;grid-template-columns:var(--bok) minmax(0,1fr);min-height:100vh;min-height:100dvh}
  body.z-bokiem .dol{display:none}
  body.z-bokiem .gora{display:none}
  body.z-bokiem .app-uklad > main{max-width:1320px;width:100%;margin:0;padding:34px 44px 64px;min-width:0}
  body.z-bokiem .app-uklad > main.waska{max-width:900px}
  body.z-bokiem.z-pisaniem .app-uklad > main{padding-bottom:150px}

  /* menu boczne: te same wymiary i wagi co panel biura (panel/index.html .bok) */
  body.z-bokiem .app-bok{display:flex;flex-direction:column;gap:4px;background:var(--pow);border-right:1px solid var(--linia);padding:18px 12px;position:sticky;top:0;height:100vh;height:100dvh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
  body.z-bokiem .app-bok > *{flex-shrink:0}
  .app-bok .szkola{display:flex;align-items:center;padding:4px 8px 16px;font-weight:700;font-size:16px;color:var(--tekst-mocny);text-decoration:none;min-width:0}
  .app-bok .szkola:hover{text-decoration:none}
  .app-bok .szkola .szkola-znak{flex-direction:column;align-items:flex-start;gap:8px}
  .app-bok .szkola .szkola-logo{height:40px;max-width:200px}
  .app-bok .szkola .szkola-nazwa{white-space:normal;line-height:1.25}
  .app-bok .app-menu{display:flex;flex-direction:column;gap:2px}
  .app-bok a.poz{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:10px;color:var(--tekst2);font-weight:600;font-size:15px;min-height:42px;position:relative}
  .app-bok a.poz:hover{background:var(--hover);color:var(--tekst-mocny);text-decoration:none}
  .app-bok a.poz.wl{background:var(--akcent-pelny);color:var(--akcent-napis,#fff);font-weight:700}
  .app-bok a.poz svg{width:20px;height:20px;flex-shrink:0}
  .app-bok a.poz:not(.wl) svg{color:var(--o,currentColor)}
  .app-bok a.poz .licznik,.app-bok a.poz .licznik-dol{position:static;margin-left:auto;min-width:22px;height:20px;padding:0 7px;border-radius:99px;background:var(--zle);color:#fff;font-size:12px;font-weight:700;line-height:20px;text-align:center}
  .app-bok .app-osoba{margin-top:auto;padding-top:12px;border-top:1px solid var(--linia);display:flex;flex-direction:column;gap:4px}
  .app-bok .app-osoba .ja{display:flex;align-items:center;gap:10px;padding:8px;border-radius:10px;color:inherit;text-decoration:none;min-width:0}
  .app-bok .app-osoba .ja:hover{background:var(--hover)}
  .app-bok .app-osoba .ja.wl{background:var(--akcent-tlo,var(--pow2))}
  .app-bok .app-osoba .kto{flex:1;min-width:0;font-size:13px;display:flex;flex-direction:column}
  .app-bok .app-osoba .kto b{font-weight:600;font-size:14px;color:var(--tekst-mocny);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .app-bok .app-osoba .btn-tekst{justify-content:flex-start;padding:6px 8px;min-height:36px}

  /* dwie kolumny treści */
  body.z-bokiem .kol-2{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);column-gap:28px;align-items:start}
  body.z-bokiem .kol-2.rowne{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  body.z-bokiem .kol-2{margin-top:32px}
  /* obie kolumny zaczynają się na tej samej wysokości (design.md zasada 12): pierwszy widoczny klocek kolumny bez górnego marginesu */
  body.z-bokiem .kol-2 > .kol > :first-child,body.z-bokiem .kol-2 > .kol > :is([hidden],:empty):first-child + *,
  body.z-bokiem .kol-2 > .kol > :first-child > :first-child,body.z-bokiem .kol-2 > .kol > :is([hidden],:empty):first-child + * > :first-child{margin-top:0}
  body.z-bokiem .start-para{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px 28px}   /* 29.10: te same kolumny co .kol-2 pod spodem (krawędzie kart w jednej linii) */
  /* 29.10 (Kacper): przełącznik dzieci w portalu rodzica w wierszu tytułu, po prawej i mały (pełna szerokość wyglądała jak podział strony na dzieci) */
  body.z-bokiem :has(> .dzieci.segmenty){position:relative}
  body.z-bokiem :has(> .dzieci.segmenty) > .tytul{padding-right:300px}
  body.z-bokiem .dzieci.segmenty{position:absolute;top:2px;right:0;width:auto;max-width:300px;margin-top:0;display:inline-flex}
  body.z-bokiem .dzieci.segmenty button{flex:none;min-height:36px!important;padding:6px 18px}

  /* pole pisania i przyciski przyklejone na dole: bez dolnego paska stoją przy krawędzi okna */
  body.z-bokiem .pisz{left:var(--bok);bottom:0;padding:12px 44px 16px}
  body.z-bokiem .pisz form{max-width:812px;margin:0}
  body.z-bokiem .pisz-lektor{bottom:0;margin-left:0;margin-right:0}
  body.z-bokiem .obec-stopka{bottom:0}
  body.z-bokiem .toast{left:calc(50% + var(--bok) / 2)}

  /* lista obecności lektora: lista kursantów po lewej, panel szczegółów (tematyka, na próbę, zadanie) po prawej */
  body.z-bokiem .obec-uklad{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);grid-template-rows:auto auto auto 1fr;column-gap:28px;align-items:start}
  body.z-bokiem .obec-uklad > .obec-lista-sek{grid-column:1;grid-row:1 / 5}
  body.z-bokiem .obec-uklad > :not(.obec-lista-sek){grid-column:2}
  body.z-bokiem .obec-uklad > .sekcja{margin-top:24px}
}
