/* PEŁNY EKRAN OSI (29.10.2026) — Timeline i Gantt na całym oknie przeglądarki (zadania/os-pelny-ekran.js). Okno klikniętej pozycji na komputerze jako panel boczny: 3-komponenty/20-okna-polozenie.css. */
.zo-pelny { flex: none; }
.zo-pelny-tytul { display: none; }
.zo-panel.is-pelny { position: fixed; inset: 0; z-index: var(--z-os-pelny); display: flex; flex-direction: column; border: 0; border-radius: 0; background: var(--surface); padding: env(safe-area-inset-top) 0 env(safe-area-inset-bottom); }
/* WYSPA / KAMERA (zgłoszenie 29.10.2026): tło — pasek u góry, siatka, linie wierszy — sięga do samej krawędzi ekranu, także pod wyspą; PRZYCISKI i INFORMACJE (nazwy projektów, daty, kafle) stoją w bezpiecznym polu, margines tylko po stronie wycięcia (--bezp-lewo / --bezp-prawo, 04-uklad.css). */
:root[data-ui] .zo-panel.is-pelny .zo-pasek-osi { display: flex; flex: none; padding-left: calc(var(--s-3) + var(--bezp-lewo)); padding-right: calc(var(--s-3) + var(--bezp-prawo)); }
.zo-panel.is-pelny .zo-pelny-tytul { display: inline-block; margin-right: var(--s-2); font-size: var(--t-base); font-weight: var(--w-strong); }
.zo-panel.is-pelny .zo-rog-ster { display: none; }
.zo-panel.is-pelny .zo-przewijak { flex: 1 1 auto; min-height: 0; overflow-x: hidden; overflow-y: auto; border-radius: 0; overscroll-behavior: contain; box-sizing: border-box; padding-inline: var(--bezp-lewo) var(--bezp-prawo); }
.zo-panel.is-pelny .zo-w:not(.zo-glowa) { position: relative; }
.zo-panel.is-pelny .zo-w::before, .zo-panel.is-pelny .zo-w::after { content: ""; position: absolute; bottom: -1px; height: 1px; background: var(--line-soft); }   /* linie wierszy sięgają pod wyspę */
.zo-panel.is-pelny .zo-w::before { right: 100%; width: var(--bezp-lewo); }
.zo-panel.is-pelny .zo-w::after { left: 100%; width: var(--bezp-prawo); }
.zo-panel.is-pelny .zo-glowa::before, .zo-panel.is-pelny .zo-glowa::after { background: var(--line); }
.zo-panel.is-pelny .zo-glowa { position: sticky; top: 0; z-index: 4; }
:root[data-ui] .zo-panel.is-pelny .zo-legenda, .zo-panel.is-pelny .zo-notka { flex: none; padding-left: calc(var(--s-3) + var(--bezp-lewo)); padding-right: calc(var(--s-3) + var(--bezp-prawo)); }
/* Pasek „Niezatwierdzone zmiany Designu” ma być pod ręką także w pełnym ekranie (przy dolnej krawędzi, nad osią). */
:root[data-os-pelny] .pr-zmiany { position: fixed; right: var(--s-3); bottom: var(--s-3); left: var(--s-3); z-index: calc(var(--z-os-pelny) + 1); margin: 0; }
/* Obciążenie i Kalendarz na pełnym ekranie: ten sam przycisk i ta sama zasada (stały pasek u góry, treść przewijana w środku). */
.zo-panel.zb-obciazenie.is-pelny .zb-pasek { flex: none; }
.zo-panel.zb-obciazenie.is-pelny .zb-tabela { flex: 1 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain; }
.zh-cialo .zt-kalendarz.is-pelny { position: fixed; inset: 0; z-index: var(--z-os-pelny); display: flex; flex-direction: column; gap: var(--s-2); overflow: auto; overscroll-behavior: contain; background: var(--surface); padding: max(var(--s-3), env(safe-area-inset-top)) max(var(--s-3), var(--bezp-prawo)) max(var(--s-3), env(safe-area-inset-bottom)) max(var(--s-3), var(--bezp-lewo)); }
.zh-cialo .zt-kalendarz.is-pelny .zt-kal-pasek { flex: none; }
.zh-cialo .zt-kalendarz.is-pelny .zt-kal-siatka { flex: 1 1 auto; min-height: 0; }
/* Telefon: w pełnym ekranie narożnik z sortowaniem mieści się w nagłówku (przyciski 32 px, nie 44), a poziomo legenda i notka nie zabierają miejsca osi. */
:root[data-ui="mobile"] .zo-panel.is-pelny .pd-sort { min-height: calc(var(--h-control-sm) - var(--s-2)); }   /* dwa przyciski „Osoba / Data” jeden nad drugim mieszczą się w nagłówku 52 px */
:root[data-ui="mobile"] .zo-panel.is-pelny .pd-sortowanie { gap: 0; }
:root .zo-panel.is-pelny .zo-pasek-osi { flex-wrap: wrap; overflow: visible; }   /* przyciski zawijają się do drugiego rzędu (pion), nie uciekają za krawędź */
/* Telefon: legenda i notka „Poza tym okresem…” pod osią są zwinięte; pokazuje je przycisk „?” w pasku osi (klasa is-legenda na panelu). */
.zo-legenda-przycisk { display: none; }
:root[data-ui="mobile"] .zo-legenda-przycisk { display: inline-flex; flex: none; }
:root[data-ui="mobile"] .zo-panel:is(.zo-timeline, .zo-gantt):not(.is-legenda) :is(.zo-legenda, .zo-notka) { display: none; }
:root[data-ui="mobile"]:not([data-telefon-poziomo]) .zo-panel.is-pelny .zo-notka { display: none; }
/* Telefon POZIOMO (zgłoszenie 29.10.2026): legenda, wyjście z pełnego ekranu i „+” stoją razem po PRAWEJ stronie paska osi (lista zakresu zostaje szeroka po lewej); legenda pod osią jest zwinięta. */
:root[data-telefon-poziomo] .zo-pasek-osi > .zo-legenda-przycisk { order: 98; margin-left: auto; }
:root[data-telefon-poziomo] .zo-pasek-osi > .zo-pelny { order: 99; }
:root[data-ui][data-telefon-poziomo] .zo-panel .zo-pasek-osi > .button.pd-nowe-pasek { order: 100; margin-left: 0; }   /* waga ponad regułą „+” z 16f (margin-left: auto) */
/* Pełny ekran: dokument nie przewija się i nie „odbija” — przeciągnięcie palcem w dół nie wysuwa paska adresu przeglądarki (zgłoszenie 29.10.2026: „full screen to full screen”). */
:root[data-os-pelny], :root[data-os-pelny] body { overflow: hidden; overscroll-behavior: none; }
/* Telefon, pełny ekran (zgłoszenie 29.10.2026): legenda, wyjście i „+” stoją w PASKU osi — poziomo w jednym rzędzie po prawej, w pionie zawijają się same do DRUGIEGO rzędu nagłówka (bez przełączania układu atrybutem
   obrotu, żeby przy obrocie nic nie stało „w starym miejscu” i nie przeskakiwało). Legenda, gdy ją otworzysz, stoi pod osią. */
:root[data-ui] .zo-panel.is-pelny .zo-pasek-osi > .zo-legenda-przycisk { order: 98; margin-left: auto; }
:root[data-ui] .zo-panel.is-pelny .zo-pasek-osi > .zo-pelny { order: 99; margin-left: 0; }   /* legenda · wyjście · „+” razem po prawej, w pionie w drugim rzędzie */
:root[data-ui] .zo-panel.is-pelny .zo-pasek-osi > .button.pd-nowe-pasek { order: 100; margin-left: 0; }
:root[data-ui="mobile"] .zo-panel.is-pelny .zo-notka { display: none; }
:root[data-ui="mobile"] .zo-panel.is-pelny .zo-pasek-osi .zo-zakres-lista { min-width: calc(var(--s-6) * 5); }   /* lista zakresu zajmuje resztę pierwszego rzędu; legenda, wyjście i „+” lądują w drugim */
