/* C1260: portal NEXUS - ciemny jak aplikacja hali, czytelny na telefonie i komputerze */
:root { --tlo: #161a20; --karta: #1f242c; --linia: #2c333d; --pole: #14181e; --tekst: #e8ebef; --blady: #9aa3ae; --niebieski: #2f6fb8; --niebieski-ciemny: #1e3a5f; --zolty: #f59e0b; --zielony: #2f9e57; --czerwony: #e05252; }
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: var(--tlo); color: var(--tekst); font-family: system-ui, 'Segoe UI', sans-serif; font-size: 15px; }
a, .link { color: #8fb8e8; background: none; border: 0; padding: 0; font: inherit; cursor: pointer; text-decoration: underline; }
.aplikacja { min-height: 100vh; }
.maly { font-size: 12px; color: var(--blady); margin: 0; }
.karta { background: var(--karta); border: 1px solid var(--linia); border-radius: 12px; padding: 16px; }
.btn { min-height: 44px; border-radius: 10px; border: 1px solid var(--linia); background: var(--karta); color: var(--tekst); font: inherit; font-weight: 600; padding: 0 16px; cursor: pointer; }
.btn--glowny { background: var(--niebieski); border-color: var(--niebieski); color: #fff; }
.btn--zielony { background: var(--zielony); border-color: var(--zielony); color: #fff; }
.btn--duzy { min-height: 72px; font-size: 16px; background: var(--niebieski-ciemny); border-color: #2f5d93; color: #fff; }
.btn:disabled { opacity: .55; }
input, select, textarea { height: 42px; border-radius: 8px; border: 1px solid #3a424e; background: var(--pole); color: var(--tekst); padding: 0 10px; font: inherit; }
textarea { height: auto; padding: 8px 10px; }
label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: #b6bec9; }

.start { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 26px; padding: 32px 16px; }
.start__logo { width: min(300px, 70vw); height: auto; }
.start__firmy { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 18px; }
.start__raffa { height: 52px; width: auto; }
.start__kreska { width: 1px; height: 36px; background: #333a45; }
.start__firma { font-weight: 600; letter-spacing: .08em; color: #d5dae1; }
.logowanie { width: min(380px, 100%); display: flex; flex-direction: column; gap: 14px; }
.logowanie h1 { margin: 0; font-size: 20px; font-weight: 600; }

.pasek { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding: 14px 20px; border-bottom: 1px solid var(--linia); }
.pasek__logo { height: 28px; width: auto; }
.pasek__firma { font-size: 17px; font-weight: 600; }
.pasek__prawo { margin-left: auto; font-size: 13px; color: var(--blady); }
.znacznik { font-size: 12px; background: #2a3340; color: #b6bec9; border-radius: 999px; padding: 4px 10px; }
.zakladki { display: flex; flex-wrap: wrap; gap: 4px; padding: 0 20px; border-bottom: 1px solid var(--linia); }
.zakladki button { border: 0; border-bottom: 3px solid transparent; background: none; color: var(--blady); font: inherit; padding: 12px 14px; cursor: pointer; }
.zakladki button.aktywna { color: #fff; font-weight: 600; border-bottom-color: var(--niebieski); }
.tresc { padding: 16px 20px 40px; max-width: 1280px; margin: 0 auto; display: flex; flex-direction: column; gap: 14px; }
.ostrzezenie { background: var(--zolty); color: #1b1300; border-radius: 10px; padding: 10px 12px; font-weight: 700; }
.siatka2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.siatka3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 640px) { .siatka3 { grid-template-columns: 1fr; } .tresc { padding: 12px; } .pasek { padding: 12px; } .zakladki { padding: 0 8px; } }
.liczba { font-size: 22px; font-weight: 700; }
.narzedzia { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.narzedzia input[type=search] { width: min(320px, 100%); }
.tabela-ramka { overflow-x: auto; background: var(--karta); border: 1px solid var(--linia); border-radius: 10px; }
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { padding: 9px 12px; text-align: center; border-bottom: 1px solid #262c35; white-space: nowrap; }
th { color: var(--blady); font-weight: 500; }
td.lewo, th.lewo { text-align: left; white-space: normal; }
tfoot td { font-weight: 700; background: #1b2028; border-top: 1px solid var(--linia); border-bottom: 0; }
.po-terminie { color: #f5c46b; }
.pusto { color: var(--blady); padding: 18px; text-align: center; }
.poz { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 10px; background: rgba(22,163,74,.18); }
.lista { display: flex; flex-direction: column; gap: 8px; }
.kamera { position: relative; background: #000; border-radius: 12px; overflow: hidden; }
.kamera video { width: 100%; max-height: 320px; display: block; object-fit: cover; }
.wydaj { width: 90px; height: 34px; text-align: center; }
.komunikat { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); max-width: min(520px, 92vw); padding: 12px 16px; border-radius: 10px; background: #14532d; color: #fff; font-weight: 600; box-shadow: 0 6px 20px rgba(0,0,0,.4); z-index: 10; }
.komunikat--blad { background: #7f1d1d; }
