/* ============================================================================
   16f-dodawanie-na-osi.css — „+” (nowe zadanie) w nagłówkach wierszy osi, znacznik przytrzymania, przycisk „Nowe zadanie” w Pulpicie → Działy
   (28.10.2026, zadania/dodawanie-na-osi.js). Przycisk to .icon-button.mini.primary (jak inne małe przyciski-ikony); tu tylko położenie i widoczność.
   Mysz: „+” pojawia się po najechaniu wiersza i przy fokusie klawiatury; dotyk (tablet, telefon): widoczny zawsze, cel 44 px (--h-ikona na dotyku = 44).
   Tylko tokeny, jasny i ciemny motyw bez osobnych reguł.
   ============================================================================ */
.dod-plus { position: absolute; top: 50%; right: var(--s-2); z-index: 4; transform: translateY(-50%); }
.dod-plus .icon { width: 16px; height: 16px; }
/* Timeline: nagłówek osoby stoi u góry wiersza (wiersz może mieć kilka torów) — „+” przy nazwisku, nie pośrodku wysokiego wiersza. */
.dod-plus-osoba { top: var(--s-2); transform: none; }
/* Miejsce na „+”: nazwa i druga linia nie wchodzą pod przycisk. */
.zo-panel .zo-w .zo-n:has(> .dod-plus) { padding-right: calc(var(--h-ikona) + var(--s-3)); }

/* Dotyk, wiersz projektu w Gancie: kolumna nazw ma 210 px (telefon pionowo 150) i bez „+” jest już pełna (strzałka, numer, „NN %”, licznik) — węższe odstępy,
   „+” 44 px przy prawej krawędzi, licznik zostaje. */
:root:not([data-ui="desktop"]) .zo-panel .zo-w .zg-projekt:has(> .dod-plus) { gap: 2px; padding-inline: var(--s-1) calc(var(--h-ikona) + 2px); }
:root:not([data-ui="desktop"]) .zo-panel .zo-w .zg-projekt:has(> .dod-plus) .zg-strzalka { width: 16px; }
:root:not([data-ui="desktop"]) .zo-panel .zo-w .zg-projekt:has(> .dod-plus) .zl-licznik { min-width: 20px; height: 20px; padding: 0 3px; }
:root:not([data-ui="desktop"]) .zo-panel .zo-w .zg-projekt:has(> .dod-plus) { padding-inline: var(--s-1) var(--h-ikona); }
:root:not([data-ui="desktop"]) .dod-plus { right: 1px; }
/* Telefon pionowo: kolumna nazw Gantta ma 184 px (zadania-os-czasu.js), więc obok numeru, „NN %” i „+” mieści się także licznik pozycji. */

/* Komputer: ukryty do najechania wiersza / fokusu. Dostępny dla czytników i klawiatury (opacity, nie display). */
:root[data-ui="desktop"] .dod-plus { opacity: 0; transition: opacity 0.12s ease; }
:root[data-ui="desktop"] .zo-w:hover .dod-plus, :root[data-ui="desktop"] .dod-plus:focus-visible, :root[data-ui="desktop"] .zo-w:focus-within .dod-plus { opacity: 1; }
@media (hover: none) { :root[data-ui="desktop"] .dod-plus { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { :root[data-ui="desktop"] .dod-plus { transition: none; } }

/* Telefon pionowo (lista „kto · co · kiedy”): „+” w głowie osoby, w rzędzie z licznikiem — nie pływa w rogu. */
.zo-tel-glowa .dod-plus { position: static; flex: none; transform: none; }

/* Przytrzymanie na dotyku: podświetlona kolumna dnia, który stanie się początkiem i terminem. */
.dod-dzien { position: absolute; top: 0; bottom: 0; z-index: 1; border-radius: var(--r-sm); background: color-mix(in srgb, var(--accent) 14%, transparent); box-shadow: inset 0 0 0 2px var(--accent); pointer-events: none; animation: dod-dzien-wejscie 0.55s ease-out both; }
@keyframes dod-dzien-wejscie { from { opacity: 0; } 35% { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .dod-dzien { animation: none; } }
/* Wolne pole wiersza osoby: przytrzymanie nie zaznacza tekstu ani nie otwiera menu systemowego (iOS, Android). */
.zo-os[data-os-wiersz^="osoba:"] { -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; }

/* Pulpit → Działy: „Nowe zadanie” w rzędzie widoków, po prawej — przycisk główny jak w Zadaniach (.zh-nowe). */
.pd-nowe { flex: none; margin-left: var(--s-2); }
/* Telefon pionowo: dwa rzędy przewijane poziomo — „Nowe zadanie” stoi z prawej strony rzędu działów (tam jest wolne miejsce), a nie na końcu przewijanego rzędu widoków. */
:root[data-ui="mobile"]:not([data-telefon-poziomo]) .pm-filtry.pd-dzialy-filtry { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: var(--s-2); }
:root[data-ui="mobile"]:not([data-telefon-poziomo]) .pd-dzialy-filtry .pm-filtry-lewo { grid-column: 1; grid-row: 1; }
:root[data-ui="mobile"]:not([data-telefon-poziomo]) .pd-dzialy-filtry .pd-nowe { grid-column: 2; grid-row: 1; margin-left: 0; }
:root[data-ui="mobile"]:not([data-telefon-poziomo]) .pd-dzialy-filtry .pd-dzialy-prawo { grid-column: 1 / -1; grid-row: 2; }
.zn-poczatek { color: var(--text-muted); font-size: var(--t-xs); }
