/* Czerwona teczka - formatka NEW PROJECT z bordowym akcentem teczki (bazuje na app.css Łańcucha GUGiK) (wariant B: czcionki z własnego serwera).
   Bloki przeniesione bez zmian z app.css portali SZP; dodatki portalu na końcu pliku. */

@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/inter-latin-ext-v1.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/inter-latin-v1.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('../fonts/instrument-sans-latin-ext-v4.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('../fonts/instrument-sans-latin-v4.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

:root {
  --bg:#f4f3ed; --surface:#ffffff; --surface-2:#faf9f3;
  --text:#262625; --text-2:#67655e; --text-3:#82807a;
  --line:#e5e3dc; --line-2:#eceae3;
  --clay:#8b1e24; --przycisk:#8b1e24; --bordo-tlo:#f6e9e8;
  --mineral:#4f7d6d; --plum:#6d68a4; --sky:#3f74a8; --gold:#a5762a; --sea:#3f8f86;
  --zle:#b03426; --dobrze:#3d6b53; --tlo-zle:#fdf1ef; --tlo-dobrze:#eff5f1;
  --uwaga:#9a5a12; --tlo-uwaga:#f9efdd;
  --dot:rgba(0,0,0,.045);
  --cien:0 1px 2px #0000000a, 0 12px 26px -16px #0000002e;
  --r:6px;
  --serif:'Instrument Sans','Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif; /* naglowki i duze liczby (nazwa zmiennej z formatki NP) */
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --mono:ui-monospace,'Cascadia Code','SF Mono',Consolas,monospace;
  --topbar:58px;
  --dolna:64px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg:#262625; --surface:#2d2d2b; --surface-2:#34332e;
    --text:#f2f0e9; --text-2:#a09e94; --text-3:#87857c;
    --line:rgba(255,255,255,.10); --line-2:rgba(255,255,255,.055);
    --clay:#e27a72; --przycisk:#a3323a; --bordo-tlo:#3a2526;
    --mineral:#7bb0a0; --plum:#a9a4de; --sky:#8fb8dd; --gold:#d8b25a; --sea:#79c3b7;
    --zle:#e0785f; --dobrze:#7bb0a0; --tlo-zle:#3a2b28; --tlo-dobrze:#2b352f;
    --uwaga:#e6b46a; --tlo-uwaga:#2e2413;
    --dot:rgba(255,255,255,.05);
    --cien:0 1px 2px #0000000d, 0 10px 24px -14px #00000073;
  }
}
:root[data-theme="dark"] {
  --bg:#262625; --surface:#2d2d2b; --surface-2:#34332e;
  --text:#f2f0e9; --text-2:#a09e94; --text-3:#87857c;
  --line:rgba(255,255,255,.10); --line-2:rgba(255,255,255,.055);
  --clay:#e27a72; --przycisk:#a3323a; --bordo-tlo:#3a2526;
  --mineral:#7bb0a0; --plum:#a9a4de; --sky:#8fb8dd; --gold:#d8b25a; --sea:#79c3b7;
  --zle:#e0785f; --dobrze:#7bb0a0; --tlo-zle:#3a2b28; --tlo-dobrze:#2b352f;
  --uwaga:#e6b46a; --tlo-uwaga:#2e2413;
  --dot:rgba(255,255,255,.05);
  --cien:0 1px 2px #0000000d, 0 10px 24px -14px #00000073;
}

* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-padding-top:calc(var(--topbar) + 12px); }
body {
  margin:0; background:var(--bg);
  background-image:radial-gradient(var(--dot) 1px, transparent 1px);
  background-size:22px 22px;
  color:var(--text); font-family:var(--sans); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
body.app { padding-bottom:calc(var(--dolna) + env(safe-area-inset-bottom)); }
a { color:var(--clay); }
img { max-width:100%; }
h1, h2, h3 { color:var(--text); }
.pomin { position:absolute; left:-999px; top:8px; background:var(--surface); padding:8px 12px; border:1px solid var(--line); border-radius:var(--r); z-index:100; }
.pomin:focus { left:8px; }

/* ---------- pasek gorny ---------- */
.topbar { position:sticky; top:0; z-index:40; background:color-mix(in srgb, var(--surface) 92%, transparent); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); }
.topbar-w { max-width:1280px; margin:0 auto; padding:0 14px; min-height:var(--topbar); display:flex; align-items:center; gap:14px; }
.topbar-marka { display:flex; flex-direction:column; justify-content:center; flex:0 1 auto; min-width:0; max-width:42%; }
.marka { font-family:var(--mono); font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color:var(--text-2); text-decoration:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tytul-app { display:block; min-width:0; overflow:hidden; text-decoration:none; color:var(--text); font-family:var(--serif); font-weight:400; font-size:1.05rem; line-height:1.15; white-space:nowrap; }
.tytul-app b { display:block; overflow:hidden; text-overflow:ellipsis; font-weight:500; }
.tytul-app span { display:block; overflow:hidden; text-overflow:ellipsis; font-family:var(--sans); font-size:.68rem; color:var(--text-3); letter-spacing:.02em; }
.nav { display:none; gap:2px; margin-left:auto; }
.nav a { display:inline-flex; align-items:center; gap:6px; padding:7px 10px; border-radius:10px; text-decoration:none; color:var(--text-2); font-size:.86rem; white-space:nowrap; }
.nav a svg { width:16px; height:16px; }
.nav a:hover { color:var(--text); background:var(--surface-2); }
.nav a.aktywny { color:var(--text); background:var(--surface-2); box-shadow:inset 0 -2px 0 var(--clay); }
.topbar-prawa { margin-left:auto; display:flex; align-items:center; gap:8px; }
.nav ~ .topbar-prawa { margin-left:0; }
.chip-uzytkownik { display:none; align-items:center; gap:8px; padding:4px 10px 4px 6px; border:1px solid var(--line); border-radius:10px; text-decoration:none; color:var(--text); background:var(--surface); line-height:1.1; }
.chip-uzytkownik svg { width:18px; height:18px; color:var(--text-2); }
.chip-nazwa { font-size:.82rem; }
.chip-rola { display:block; font-size:.66rem; color:var(--text-3); }
.wyloguj-form { margin:0; }
.wyloguj { display:inline-flex; align-items:center; gap:6px; background:transparent; border:1px solid var(--line); border-radius:10px; padding:6px 10px; color:var(--text-2); cursor:pointer; font-size:.82rem; font-family:var(--sans); }
.wyloguj svg { width:16px; height:16px; }
.wyloguj span { display:none; }
.wyloguj:hover { color:var(--text); border-color:var(--text-3); }
.topbar-motyw { display:flex; align-items:center; gap:10px; }
.topbar-motyw .zegar { display:none; width:38px; height:38px; }
.motyw { display:inline-flex; gap:2px; padding:3px; border:1px solid var(--line); border-radius:10px; background:var(--surface); }
.motyw button { display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; padding:0; border:0; border-radius:10px; background:transparent; color:var(--text-2); cursor:pointer; transition:color .15s, background-color .15s; }
.motyw button:hover { color:var(--text); }
.motyw button[aria-pressed="true"] { background:var(--surface-2); color:var(--text); }
.motyw svg { width:14px; height:14px; }
.zegar svg { display:block; width:100%; height:100%; overflow:visible; }

@media (min-width: 900px) {
  .nav { display:flex; }
  .chip-uzytkownik { display:inline-flex; }
  .topbar-motyw .zegar { display:block; }
  body.app { padding-bottom:0; }
  .dolna { display:none !important; }
  /* Nawigacja na desktopie tylko ikonami; podpis pokazuje sam aktywny punkt.
     Dziewiec pozycji admina nie miesci sie z pelnymi podpisami nawet w kontenerze 1280 px. */
  .nav a span { display:none; }
  .nav a.aktywny span { display:inline; }
  .chip-nazwa, .chip-rola, .wyloguj span { display:none; }
}
/* Gdy jest miejsce: podpis konta (nazwisko + rola) i przycisku wylogowania. */
@media (min-width: 1180px) {
  .chip-nazwa, .chip-rola { display:block; }
  .wyloguj span { display:inline; }
}

/* menu mobilne: nawigacja jako arkusz od dolu */
body.menu-otwarte .nav { display:flex; flex-direction:column; position:fixed; left:0; right:0; bottom:calc(var(--dolna) + env(safe-area-inset-bottom)); background:var(--surface); border-top:1px solid var(--line); padding:10px 12px 14px; z-index:45; box-shadow:0 -12px 30px -12px #00000040; max-height:70vh; overflow:auto; }
body.menu-otwarte .nav a { padding:12px 10px; font-size:1rem; border-radius:var(--r); }
body.menu-otwarte .nav a svg { width:20px; height:20px; }
body.menu-otwarte .zaslona-menu { position:fixed; inset:0; background:#00000055; z-index:44; }

/* ---------- nawigacja dolna (telefon) ---------- */
.dolna { position:fixed; left:0; right:0; bottom:0; z-index:46; display:grid; grid-template-columns:repeat(5, 1fr); background:var(--surface); border-top:1px solid var(--line); padding-bottom:env(safe-area-inset-bottom); min-height:var(--dolna); }
.dolna a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; padding:8px 4px 6px; text-decoration:none; color:var(--text-2); font-size:.66rem; letter-spacing:.01em; }
.dolna a svg { width:22px; height:22px; }
.dolna a.aktywny { color:var(--clay); }
.dolna .dolna-plus svg { width:34px; height:34px; color:var(--przycisk); }
.dolna .dolna-plus span { color:var(--przycisk); font-weight:600; }

/* ---------- uklad ---------- */
.kontener { position:relative; max-width:1040px; margin:0 auto; padding:18px 14px 40px; }
.kontener.szeroka { max-width:1280px; }
.strona-glowa { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:12px 18px; margin:6px 0 18px; }
/* Tytul podstrony: Instrument Sans 500, 1,5 rem, staly rozmiar (decyzja wlasciciela 25.09.2026, formatka-np-codex.md 4.4). */
.strona-glowa h1 { font-family:var(--serif); font-weight:500; font-size:1.5rem; line-height:1.25; letter-spacing:-.02em; margin:0; text-wrap:balance; }
.podtytul { margin:6px 0 0; color:var(--text-2); font-size:.95rem; max-width:70ch; }
.akcje { display:flex; flex-wrap:wrap; gap:8px; }
.stopka { max-width:1040px; margin:40px auto 0; padding:22px 14px 30px; border-top:1px solid var(--line); color:var(--text-3); font-size:.8rem; }
.stopka a { color:var(--clay); text-decoration:none; }
.stopka a:hover { text-decoration:underline; }
.adres-kanoniczny { font-family:var(--mono); font-size:.7rem; }
body.app .stopka { padding-bottom:36px; }

/* strona prosta (logowanie, reset) */
.kontener-prosta { max-width:1040px; padding:34px 24px 88px; }
.gora { position:absolute; top:34px; right:24px; z-index:5; }
.naglowek-prosty { position:relative; margin-bottom:8px; }
.naglowek-prosty .marka { display:block; margin:0 0 16px; font-size:.72rem; letter-spacing:.18em; }
.naglowek-prosty h1 { font-family:var(--serif); font-weight:300; font-size:clamp(2.2rem,6vw,3.4rem); line-height:1.05; letter-spacing:-.02em; margin:0 0 14px; }
.naglowek-prosty h1 .firma { display:block; font-size:.42em; color:var(--text-2); letter-spacing:0; margin-top:8px; font-weight:300; }
.lead { font-family:var(--serif); font-weight:300; font-size:clamp(1.05rem,2.4vw,1.3rem); color:var(--text-2); margin:0; max-width:46ch; line-height:1.5; }
.zegar-blok { position:absolute; right:0; top:52px; }
.zegar-blok .zegar { width:clamp(104px,11vw,150px); height:clamp(104px,11vw,150px); }
@media (max-width:720px) { .zegar-blok { display:none; } }
.logowanie { max-width:420px; margin-top:44px; }

/* ---------- karty, sekcje ---------- */
.karta { background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:16px; }
.karta + .karta { margin-top:14px; }
section { margin-top:28px; }
section:first-child { margin-top:0; }
.sekcja-glowa { display:flex; align-items:baseline; gap:12px; padding-bottom:10px; margin-bottom:14px; border-bottom:1px solid var(--line); }
.sekcja-glowa h2 { font-family:var(--serif); font-weight:400; font-size:1.3rem; letter-spacing:-.01em; margin:0; }
.sekcja-glowa .liczba { font-family:var(--mono); font-size:.76rem; color:var(--text-3); margin-left:auto; white-space:nowrap; }
.sekcja-glowa .akcje { margin-left:auto; }
.kropka { width:9px; height:9px; border-radius:50%; flex:0 0 auto; align-self:center; background:var(--clay); }
.kolor-I .kropka, .kropka.I { background:var(--sky); }
.kolor-L .kropka, .kropka.L { background:var(--sea); }
.kolor-M .kropka, .kropka.M { background:var(--mineral); }
.kolor-S .kropka, .kropka.S { background:var(--gold); }
.kolor-P .kropka, .kropka.P { background:var(--plum); }
.kolor-sky { --akc:var(--sky); } .kolor-sea { --akc:var(--sea); } .kolor-mineral { --akc:var(--mineral); } .kolor-gold { --akc:var(--gold); } .kolor-plum { --akc:var(--plum); } .kolor-clay { --akc:var(--clay); }

.siatka { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr)); gap:12px; }
.kafel { position:relative; display:flex; flex-direction:column; gap:8px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:16px 16px 14px; min-height:110px; text-decoration:none; color:inherit; transition:transform .16s cubic-bezier(0,0,.2,1), border-color .16s, background-color .16s; }
.kafel::before { content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--akc,var(--clay)); opacity:.9; border-top-left-radius:var(--r); border-bottom-left-radius:var(--r); }
a.kafel:hover, a.kafel:focus-visible { transform:translateY(-2px); border-color:color-mix(in srgb, var(--akc,var(--clay)) 55%, var(--line)); background:var(--surface-2); outline:none; }
.kafel h3 { font-family:var(--sans); font-weight:560; font-size:1rem; letter-spacing:-.01em; margin:0; }
.kafel p { margin:0; color:var(--text-2); font-size:.88rem; line-height:1.5; }
.kafel .adres, .mono { font-family:var(--mono); font-size:.74rem; color:var(--text-3); }
.kafel .meta { display:flex; flex-wrap:wrap; gap:6px 10px; align-items:center; margin-top:auto; padding-top:6px; font-size:.78rem; color:var(--text-3); }

/* KPI */
.kpi-siatka { display:grid; grid-template-columns:repeat(2, 1fr); gap:10px; }
@media (min-width:700px) { .kpi-siatka { grid-template-columns:repeat(4, 1fr); } }
.kpi { background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:14px 14px 12px; text-decoration:none; color:inherit; display:block; }
.kpi-wartosc { font-family:var(--serif); font-weight:300; font-size:2rem; line-height:1; letter-spacing:-.02em; }
.kpi-wartosc small { font-size:.5em; color:var(--text-3); }
.kpi-etykieta { color:var(--text-2); font-size:.82rem; margin-top:6px; }
.kpi-dopisek { color:var(--text-3); font-size:.74rem; margin-top:2px; }
.kpi.zle .kpi-wartosc { color:var(--zle); }
.kpi.ok .kpi-wartosc { color:var(--dobrze); }
.kpi.uwaga .kpi-wartosc { color:var(--uwaga); }

/* ---------- proza ---------- */
.proza { max-width:96ch; color:var(--text-2); font-size:.95rem; line-height:1.65; text-align:left; }
.proza h3 { font-family:var(--sans); font-weight:560; font-size:1.02rem; color:var(--text); margin:18px 0 8px; }
.proza p { margin:0 0 12px; }
.proza ul, .proza ol { margin:0 0 12px; padding-left:20px; }
.proza li { margin:0 0 5px; }
.proza b { color:var(--text); font-weight:600; }
.proza code, code { font-family:var(--mono); font-size:.85em; background:var(--surface-2); border:1px solid var(--line-2); border-radius:4px; padding:1px 5px; }
.proza.drobna { font-size:.84rem; color:var(--text-3); }
.tekst-2 { color:var(--text-2); }
.tekst-3 { color:var(--text-3); }
.drobny { font-size:.82rem; }
.nowrap { white-space:nowrap; }
.prawo { text-align:right; }
.srodek { text-align:center; }
.ukryty { display:none !important; }
.wiersz { display:flex; flex-wrap:wrap; gap:8px 14px; align-items:center; }
.odstep { margin-top:14px; }
.odstep-duzy { margin-top:24px; }

/* ---------- przyciski ---------- */
.glowny, .drugi, .niebezpieczny { display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:var(--sans); font-size:.9rem; border-radius:10px; padding:9px 18px; cursor:pointer; text-decoration:none; line-height:1.2; min-height:40px; }
.glowny { color:#fff; background:var(--przycisk); border:1px solid var(--przycisk); transition:filter .15s; }
.glowny:hover { filter:brightness(1.08); }
.drugi { color:var(--text-2); background:var(--surface); border:1px solid var(--line); transition:color .15s, border-color .15s; }
.drugi:hover { color:var(--text); border-color:var(--text-3); }
.niebezpieczny { color:var(--zle); background:var(--surface); border:1px solid var(--zle); }
.niebezpieczny:hover { background:var(--tlo-zle); }
.glowny svg, .drugi svg, .niebezpieczny svg { width:16px; height:16px; }
.maly { padding:5px 12px; font-size:.8rem; min-height:32px; }
.glowny:disabled, .drugi:disabled, button[disabled] { opacity:.55; cursor:not-allowed; }
.przyciski { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:8px; }
.przycisk-ikona { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--text-2); cursor:pointer; padding:0; }
.przycisk-ikona svg { width:16px; height:16px; }
.przycisk-ikona:hover { color:var(--text); border-color:var(--text-3); }

/* ---------- formularze ---------- */
.pole { margin-bottom:14px; }
.pole label, .etykieta { display:block; font-size:.82rem; color:var(--text-2); margin-bottom:5px; }
.pole .podpowiedz { display:block; font-size:.76rem; color:var(--text-3); margin-top:5px; line-height:1.5; }
input[type="text"], input[type="email"], input[type="password"], input[type="date"], input[type="time"], input[type="number"], input[type="search"], select, textarea {
  width:100%; padding:10px 12px; font-family:var(--sans); font-size:.95rem; color:var(--text); background:var(--surface);
  border:1px solid var(--line); border-radius:var(--r); transition:border-color .15s; min-height:42px;
}
textarea { min-height:84px; resize:vertical; line-height:1.5; }
input:focus, select:focus, textarea:focus { outline:none; border-color:var(--clay); box-shadow:0 0 0 3px color-mix(in srgb, var(--clay) 18%, transparent); }
select { appearance:none; background-image:linear-gradient(45deg, transparent 50%, var(--text-3) 50%), linear-gradient(135deg, var(--text-3) 50%, transparent 50%); background-position:calc(100% - 18px) 50%, calc(100% - 12px) 50%; background-size:6px 6px, 6px 6px; background-repeat:no-repeat; padding-right:34px; }
.pole-z-okiem { position:relative; display:block; }
.pole-z-okiem input { padding-right:74px; }
.oko { position:absolute; top:50%; right:6px; transform:translateY(-50%); font-family:var(--sans); font-size:.76rem; color:var(--text-2); background:var(--surface-2); border:1px solid var(--line); border-radius:10px; padding:5px 12px; cursor:pointer; }
.oko:hover, .oko[aria-pressed="true"] { color:var(--text); border-color:var(--text-3); }
.oko:focus-visible { outline:2px solid var(--clay); outline-offset:1px; }
.pole-wybor { display:flex; align-items:flex-start; gap:10px; font-size:.9rem; color:var(--text-2); margin:0 0 14px; cursor:pointer; }
.pole-wybor input { width:18px; height:18px; margin-top:3px; accent-color:var(--przycisk); }
.siatka-pol { display:grid; grid-template-columns:1fr; gap:0 14px; }
@media (min-width:640px) { .siatka-pol { grid-template-columns:1fr 1fr; } .siatka-pol .pelna { grid-column:1 / -1; } }
@media (min-width:900px) { .siatka-pol.trzy { grid-template-columns:1fr 1fr 1fr; } }
.filtry { display:flex; flex-wrap:wrap; gap:8px; align-items:flex-end; margin-bottom:14px; }
.filtry .pole { margin:0; flex:1 1 140px; }
.filtry .pole.szerokie { flex:2 1 220px; }
.filtry select, .filtry input { min-height:38px; padding:7px 10px; font-size:.88rem; }
.filtry .glowny, .filtry .drugi { min-height:38px; }
.komunikat { margin:0 0 16px; padding:12px 16px; border-radius:var(--r); border:1px solid var(--line); font-size:.92rem; background:var(--surface); }
.komunikat.dobry { border-color:var(--dobrze); background:var(--tlo-dobrze); }
.komunikat.zly { border-color:var(--zle); background:var(--tlo-zle); }
.komunikat.uwaga { border-color:var(--uwaga); background:var(--tlo-uwaga); }
.komunikat.info { border-color:var(--sky); }

/* ---------- plakietki, paski ---------- */
.plakietka { display:inline-block; font-size:.72rem; line-height:1.2; padding:3px 9px; border-radius:10px; border:1px solid var(--line); background:var(--surface-2); color:var(--text-2); white-space:nowrap; vertical-align:middle; }
.plakietka.ok { color:var(--dobrze); border-color:color-mix(in srgb, var(--dobrze) 50%, var(--line)); background:var(--tlo-dobrze); }
.plakietka.ok-slabo { color:var(--dobrze); border-color:var(--line); background:var(--tlo-dobrze); border-style:dashed; }
.plakietka.zle { color:var(--zle); border-color:color-mix(in srgb, var(--zle) 50%, var(--line)); background:var(--tlo-zle); }
.plakietka.uwaga { color:var(--uwaga); border-color:color-mix(in srgb, var(--uwaga) 50%, var(--line)); background:var(--tlo-uwaga); }
.plakietka.info { color:var(--sky); border-color:color-mix(in srgb, var(--sky) 50%, var(--line)); }
.plakietka.szara { color:var(--text-3); }
.plakietka.neutralna { color:var(--text-2); }
.plakietka.warstwa { color:#fff; border-color:transparent; background:var(--akc, var(--text-3)); }
:root[data-theme="dark"] .plakietka.warstwa, :root:not([data-theme="light"]) .plakietka.warstwa { color:#1d1c19; }
@media (prefers-color-scheme: light) { :root:not([data-theme="dark"]) .plakietka.warstwa { color:#fff; } }
:root[data-theme="light"] .plakietka.warstwa { color:#fff; }
.pasek { display:inline-block; width:100%; height:8px; background:var(--line-2); border-radius:10px; overflow:hidden; vertical-align:middle; }
.pasek span { display:block; height:100%; background:var(--dobrze); border-radius:10px; transition:width .3s; }
.pasek.zle span { background:var(--zle); }
.pasek.uwaga span { background:var(--uwaga); }
.pasek.clay span { background:var(--clay); }

/* ---------- tabele ---------- */
.tabela-w { overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--line); border-radius:var(--r); background:var(--surface); }
table.tabela { width:100%; border-collapse:collapse; font-size:.88rem; }
.tabela th, .tabela td { padding:9px 10px; text-align:left; vertical-align:top; border-bottom:1px solid var(--line-2); }
.tabela th { font-size:.74rem; text-transform:uppercase; letter-spacing:.06em; color:var(--text-3); font-weight:500; background:var(--surface-2); position:sticky; top:0; white-space:nowrap; }
.tabela tbody tr:hover { background:var(--surface-2); }
.tabela tbody tr:last-child td { border-bottom:0; }
.tabela td.liczba, .tabela th.liczba { text-align:right; font-variant-numeric:tabular-nums; }
.tabela .waska { width:1%; white-space:nowrap; }
.tabela a.wiersz-link { color:inherit; text-decoration:none; font-weight:560; }
.tabela a.wiersz-link:hover { color:var(--clay); }
.tabela tr.przeterminowane td:first-child { box-shadow:inset 3px 0 0 var(--zle); }
.pusty { padding:28px 16px; text-align:center; color:var(--text-3); font-size:.92rem; }
.lista-kart { display:grid; gap:10px; }
.wiersz-karta { display:grid; grid-template-columns:auto 1fr auto; gap:6px 12px; align-items:center; background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:12px 14px; text-decoration:none; color:inherit; }
.wiersz-karta:hover { background:var(--surface-2); }
.wiersz-karta .data { font-family:var(--mono); font-size:.78rem; color:var(--text-3); white-space:nowrap; }
.wiersz-karta .tytul { font-weight:560; font-size:.95rem; }
.wiersz-karta .opis { grid-column:1 / -1; color:var(--text-2); font-size:.86rem; }

/* ---------- okno dialogowe ---------- */
dialog.okno { border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--text); padding:0; width:min(560px, calc(100% - 24px)); max-height:calc(100vh - 40px); box-shadow:var(--cien); }
dialog.okno::backdrop { background:#00000066; backdrop-filter:blur(2px); }
dialog.okno .okno-glowa { display:flex; align-items:center; justify-content:space-between; padding:14px 16px; border-bottom:1px solid var(--line); }
dialog.okno .okno-glowa h2 { margin:0; font-family:var(--serif); font-weight:400; font-size:1.2rem; }
dialog.okno .okno-tresc { padding:16px; overflow:auto; max-height:calc(100vh - 160px); }
dialog.okno .okno-stopka { padding:12px 16px; border-top:1px solid var(--line); display:flex; gap:8px; justify-content:flex-end; flex-wrap:wrap; }
.zamknij-okno { border:0; background:transparent; color:var(--text-2); font-size:1.4rem; cursor:pointer; line-height:1; padding:4px 8px; }

/* ---------- toasty ---------- */
.toasty { position:fixed; left:50%; transform:translateX(-50%); bottom:calc(var(--dolna) + 12px + env(safe-area-inset-bottom)); z-index:60; display:flex; flex-direction:column; gap:8px; pointer-events:none; width:min(92vw, 420px); }
@media (min-width:900px) { .toasty { bottom:20px; } }
.toast { background:var(--text); color:var(--bg); padding:10px 14px; border-radius:var(--r); font-size:.88rem; box-shadow:var(--cien); animation:toast-in .2s ease-out; pointer-events:auto; }
.toast.zly { background:var(--zle); color:#fff; }
.toast.dobry { background:var(--dobrze); color:#fff; }
@keyframes toast-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
.offline-pasek { position:fixed; top:var(--topbar); left:0; right:0; z-index:39; background:var(--uwaga); color:#fff; text-align:center; font-size:.8rem; padding:5px 10px; }

/* ---------- wykresy SVG ---------- */
.wykres { width:100%; height:auto; display:block; overflow:visible; }
.wykres text { font-family:var(--sans); font-size:11px; fill:var(--text-2); }
.wykres .os { stroke:var(--line); }
.wykres .slupek { fill:var(--clay); }
.wykres .slupek.ok { fill:var(--dobrze); }
.wykres .slupek.zle { fill:var(--zle); }
.wykres .slupek.szary { fill:var(--text-3); }
.wykres .linia { fill:none; stroke:var(--clay); stroke-width:2; }
.wykres .cel { stroke:var(--dobrze); stroke-dasharray:4 4; }
.pareto-wiersz { display:grid; grid-template-columns:1fr auto; gap:4px 12px; align-items:center; padding:8px 0; border-bottom:1px solid var(--line-2); font-size:.88rem; }
.pareto-wiersz .pasek { grid-column:1 / -1; height:6px; }
.pareto-wiersz b { font-family:var(--mono); font-weight:500; }

/* ---------- druk ---------- */
@media print {
  .topbar, .dolna, .stopka .adres-kanoniczny, .akcje, .toasty, .postep, .pasek-dolny, .nie-drukuj, .motyw, .zegar { display:none !important; }
  body { background:#fff; color:#000; font-size:11pt; padding:0; }
  .kontener { max-width:none; padding:0; }
  .karta, .tabela-w, .pytanie { border-color:#999; break-inside:avoid; }
  a { color:inherit; text-decoration:none; }
  .protokol-odp.T { color:#1c5a3a; } .protokol-odp.N { color:#a02010; }
  .stopka { margin-top:20px; font-size:9pt; color:#555; }
}

/* ================= SZP Incoming Transfers (wspolne z Company Dashboard) ================= */
.topbar-w > .tytul-app { flex:0 1 auto; min-width:0; max-width:46%; }
.chip-tekst { display:block; }
.dolna { grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:1fr; }
form.inline { display:inline; margin:0; }
.blok { display:block; }
.mocna { font-weight:600; }
tfoot td { font-weight:600; border-top:1px solid var(--line); background:var(--surface-2); padding:9px 10px; }
.wzrost { color:var(--dobrze); font-weight:600; }
.spadek { color:var(--zle); font-weight:600; }


/* sprzedaz: filtry */
.filtry.karta { display:block; margin-bottom:18px; }
.szybkie { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:14px; }
.pigulka { display:inline-flex; align-items:center; padding:6px 12px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--text-2); font-size:.82rem; text-decoration:none; white-space:nowrap; }
.pigulka:hover { color:var(--text); border-color:var(--text-3); }
.pigulka.aktywna { color:#fff; background:var(--przycisk); border-color:var(--przycisk); }
.filtry-pola { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; align-items:end; }
.filtry-pola .pole { margin:0; min-width:0; }
.filtry-pola .pole.szerokie { grid-column:1 / -1; }
.filtry-pola .przycisk .glowny { width:100%; }
@media (min-width:900px) {
  .filtry-pola { grid-template-columns:150px 150px minmax(0, 2.4fr) minmax(0, 1fr) minmax(0, 1fr) auto; }
  .filtry-pola .pole.szerokie { grid-column:auto; }
}

.kpi-siatka { grid-template-columns:repeat(2, minmax(0, 1fr)); }
@media (min-width:700px) { .kpi-siatka { grid-template-columns:repeat(4, minmax(0, 1fr)); } }
.kpi { min-width:0; }
.kpi-wartosc { overflow-wrap:anywhere; }

.sekcja-glowa .liczba { overflow:hidden; text-overflow:ellipsis; max-width:60%; }
.sekcja-glowa .liczba .drugi { vertical-align:middle; }

.tabela-w { min-width:0; }

/* hasla i tokeny pokazywane raz */
.haslo-raz { border:1px dashed var(--uwaga); background:var(--tlo-uwaga); border-radius:var(--r); padding:12px 16px; margin:0 0 16px; }
.haslo-raz p { margin:4px 0; }
.duzy-kod { font-size:1.05rem; padding:3px 8px; user-select:all; overflow-wrap:anywhere; }
@media (max-width:560px) {
  .topbar-w { gap:8px; padding:0 10px; }
  .topbar-w > .tytul-app { max-width:none; flex:1 1 auto; font-size:.95rem; }
  .motyw button { width:26px; height:26px; }
}

@media (max-width:640px) {
  .sekcja-glowa { flex-wrap:wrap; row-gap:6px; }
  .sekcja-glowa .liczba { max-width:100%; overflow:visible; white-space:normal; }
}

/* --- Typografia: Instrument Sans (naglowki, duze liczby) + Inter (tresc, tabele), 23.09.2026 ---
   Instrument Sans ma grubosci 400-700: dawne 300 z Fraunces podnosimy do spokojnego 500. */
.naglowek-prosty h1 { font-weight:500; letter-spacing:-.025em; }
.naglowek-prosty h1 .firma, .lead { font-weight:400; }
.tytul-app { font-weight:600; letter-spacing:-.01em; }
.sekcja-glowa h2, .kafel-glowa h3, dialog.okno .okno-glowa h2, .waluta-karta b { font-weight:500; letter-spacing:-.015em; }
.kpi-wartosc, .kafel-liczby .wartosc { font-weight:500; letter-spacing:-.03em; font-variant-numeric:tabular-nums; }
.kpi-wartosc small { font-family:var(--sans); font-weight:500; letter-spacing:0; }
.tabela .liczba, .tabela td.nowrap { font-variant-numeric:tabular-nums; }

/* --- Naleznosci: kafle jako linki i lista z sortowaniem --- */
a.kpi-link { transition:border-color .15s, box-shadow .15s, transform .15s; }
a.kpi-link:hover, a.kpi-link:focus-visible { border-color:var(--clay); box-shadow:var(--cien); transform:translateY(-1px); }
.kpi-strzalka svg { width:13px; height:13px; vertical-align:-2px; color:var(--text-3); }
a.kpi-link:hover .kpi-strzalka svg { color:var(--clay); }
.szybkie { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 14px; }
.szybkie .pigulka { text-decoration:none; }

/*
 * Strony bez nawigacji (logowanie, hasla, Pomoc), decyzja wlasciciela 25.09.2026:
 * nazwa systemu 1,5 rem / 600 jak w naglowku portalu, firma i opis zwyklym tekstem,
 * zegar w osobnej kolumnie (nigdy na tekscie) i widoczny takze na telefonie,
 * w gornym wierszu przycisk Pomocy obok przelacznika motywu.
 */
.gora { position:static; display:flex; justify-content:flex-end; align-items:center; flex-wrap:wrap; gap:8px; margin:0 0 14px; }
.pomoc-przycisk { display:inline-flex; align-items:center; gap:6px; min-height:36px; padding:0 14px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--text-2); font-size:.85rem; font-weight:500; text-decoration:none; transition:color .15s, border-color .15s; }
.pomoc-przycisk:hover { color:var(--text); border-color:var(--line-2); }
.pomoc-przycisk svg { width:16px; height:16px; }
.naglowek-prosty { position:static; display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:28px; align-items:start; margin-bottom:22px; }
.naglowek-prosty > :not(.zegar-blok) { grid-column:1; }
.naglowek-prosty h1 { font-family:var(--serif); font-weight:600; font-size:1.5rem; line-height:1.25; letter-spacing:-.01em; margin:0 0 10px; }
.naglowek-prosty h1 .firma { display:block; font-family:var(--sans); font-size:.85rem; font-weight:400; color:var(--text-2); letter-spacing:0; margin-top:2px; }
.naglowek-prosty .lead { font-family:var(--sans); font-weight:400; font-size:1rem; line-height:1.6; color:var(--text-2); max-width:none; margin:0; }
.zegar-blok { position:static; grid-column:2; grid-row:1 / span 2; }
.zegar-blok .zegar { width:104px; height:104px; }
@media (max-width:720px) {
  .zegar-blok { display:block; }
  .zegar-blok .zegar { width:72px; height:72px; }
  .naglowek-prosty { column-gap:16px; }
}
/* Proza bez zawezania kolumny (wypelnia karte), zasada wlasciciela z 25.09.2026. */
.proza { max-width:none; }

/*
 * Zegar (decyzja wlasciciela 26.09.2026): po najechaniu tarcza sie powieksza, po zjechaniu
 * szybko wraca. Tlo i cien, zeby powiekszona tarcza byla czytelna nad trescia.
 */
.zegar { position:relative; border-radius:50%; transform-origin:top right; transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease; }
.zegar:hover { z-index:60; transform:scale(3); background:var(--surface); box-shadow:0 10px 30px -10px rgba(0,0,0,.35); transition-duration:.25s; }
.zegar-blok .zegar:hover { transform:scale(1.9); }
@media (prefers-reduced-motion: reduce) { .zegar { transition:none; } }


/* ================= Archiwum umów: dodatki ================= */
.kropka.mineral { background:var(--mineral); } .kropka.plum { background:var(--plum); } .kropka.sky { background:var(--sky); }
.kropka.gold { background:var(--gold); } .kropka.zle { background:var(--zle); } .kropka.uwaga { background:var(--uwaga); }
.kropka.dobrze { background:var(--dobrze); }
.kpi.aktywny { border-color:var(--clay); }
@media (min-width:900px) { .filtry-pola.filtry-umowy { grid-template-columns:minmax(0, 2.4fr) minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 1fr) auto; } }
.lista-umow .fragment { margin-top:4px; font-size:.82rem; color:var(--text-2); line-height:1.5; max-width:78ch; }
mark.traf { background:color-mix(in srgb, var(--clay) 22%, transparent); color:inherit; border-radius:3px; padding:0 2px; }
.blok-odstep { display:inline-block; margin-top:4px; }
.stronicowanie { display:flex; flex-wrap:wrap; gap:6px; align-items:center; justify-content:center; margin-top:14px; font-size:.86rem; color:var(--text-2); }

/* karta umowy: formularz z lewej, podpisy i plik z prawej */
.uklad-karty { display:grid; grid-template-columns:minmax(0, 1fr); gap:16px; align-items:start; }
@media (min-width:1100px) { .uklad-karty { grid-template-columns:minmax(0, 1.65fr) minmax(0, 1fr); } }
.uklad-karty > aside { display:grid; gap:14px; }
.uklad-karty .karta + .karta { margin-top:0; }
.siatka-pol .pole.dwa { grid-column:1 / -1; }
@media (min-width:900px) { .siatka-pol.trzy .pole.dwa { grid-column:span 2; } }
fieldset.pola { border:0; padding:0; margin:0; min-width:0; }
fieldset.pola[disabled] input, fieldset.pola[disabled] select, fieldset.pola[disabled] textarea { color:var(--text); background:var(--surface-2); }
.pewnosc { display:inline-block; margin-left:6px; font-size:.68rem; line-height:1.2; padding:1px 7px; border-radius:10px; border:1px solid var(--line); color:var(--text-2); background:var(--surface-2); vertical-align:1px; }
.pewnosc.wysoka { color:var(--dobrze); border-color:color-mix(in srgb, var(--dobrze) 45%, var(--line)); }
.pewnosc.srednia { color:var(--uwaga); border-color:color-mix(in srgb, var(--uwaga) 45%, var(--line)); }
.pewnosc.niska { color:var(--zle); border-color:color-mix(in srgb, var(--zle) 45%, var(--line)); }
.blad-pola { display:block; margin-top:5px; font-size:.78rem; color:var(--zle); font-weight:500; }
.pole-wybor.w-siatce { margin:31px 0 14px; }
details.wiecej { margin-top:4px; border-top:1px solid var(--line-2); padding-top:10px; }
details.wiecej > summary { cursor:pointer; color:var(--clay); font-size:.88rem; width:fit-content; margin-bottom:10px; }
.podpis { padding:10px 0; border-bottom:1px solid var(--line-2); }
.podpis:first-of-type { padding-top:0; }
.podpis:last-child { border-bottom:0; padding-bottom:0; }
.podpis b { font-weight:600; }
.podpis .wiersz { margin-top:4px; gap:6px; }
.podpis .opis { font-size:.8rem; color:var(--text-2); margin-top:4px; line-height:1.5; }
.dowody { list-style:none; margin:0; padding:0; }
.dowody li { padding:8px 0; border-bottom:1px solid var(--line-2); font-size:.84rem; }
.dowody li:first-child { padding-top:0; }
.dowody li:last-child { border-bottom:0; padding-bottom:0; }
.dowody .co { color:var(--text-2); font-size:.76rem; }
.dowody .cytat { display:block; color:var(--text-2); margin-top:2px; overflow-wrap:anywhere; }
dl.dane { display:grid; grid-template-columns:max-content minmax(0, 1fr); gap:6px 14px; margin:0; font-size:.86rem; }
dl.dane dt { color:var(--text-2); }
dl.dane dd { margin:0; overflow-wrap:anywhere; }
.skrot { font-family:var(--mono); font-size:.72rem; word-break:break-all; }
.historia { list-style:none; margin:0; padding:0; font-size:.82rem; }
.historia li { display:grid; grid-template-columns:auto minmax(0, 1fr); gap:2px 10px; padding:6px 0; border-bottom:1px solid var(--line-2); }
.historia li:last-child { border-bottom:0; }
.historia .data { font-family:var(--mono); font-size:.72rem; color:var(--text-3); white-space:nowrap; }

/* dodawanie plików */
.strefa-upuszczania { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center; padding:34px 18px; border:2px dashed var(--line); border-radius:10px; background:var(--surface-2); cursor:pointer; transition:border-color .15s, background-color .15s; }
.strefa-upuszczania svg { width:34px; height:34px; color:var(--clay); }
.strefa-upuszczania:hover, .strefa-upuszczania.nad { border-color:var(--clay); background:color-mix(in srgb, var(--clay) 6%, var(--surface)); }
.strefa-tytul { font-family:var(--serif); font-weight:500; font-size:1.15rem; color:var(--text); }
.strefa-opis { font-size:.84rem; color:var(--text-2); }
.strefa-upuszczania input[type=file] { max-width:100%; font-size:.84rem; color:var(--text-2); }
.wybrane { font-size:.84rem; color:var(--text); font-weight:500; }

/* tekst dokumentu */
.tekst-dokumentu { white-space:pre-wrap; font-size:.9rem; line-height:1.6; color:var(--text); overflow-wrap:anywhere; }

/* panel serwera */
.klucz-odzyskiwania { display:block; font-family:var(--mono); font-size:clamp(.95rem, 2.4vw, 1.25rem); letter-spacing:.04em; line-height:1.8; padding:14px 18px; border:1px dashed var(--uwaga); background:var(--tlo-uwaga); border-radius:var(--r); user-select:all; overflow-wrap:anywhere; color:var(--text); }
.logowanie.szeroka { max-width:680px; }
/* Podtytuł bez zawężania kolumny (zasada właściciela: proza, podtytuł i lead bez max-width). */
.podtytul { max-width:none; }
details.zrodla > summary { list-style:none; cursor:pointer; }
details.zrodla > summary::-webkit-details-marker { display:none; }
details.zrodla:not([open]) > summary { margin-bottom:0; padding-bottom:0; border-bottom:0; }
details.zrodla > summary h2::after { content:" ▾"; font-size:.8em; color:var(--text-3); }
details.zrodla:not([open]) > summary h2::after { content:" ▸"; }

/* 0.2: karta zmian (jak w Audytach warstwowych), komunikat „Co nowego” (jak w Monitorze OEE), historia logowań */
.zakladki { display:flex; gap:4px; flex-wrap:wrap; border-bottom:1px solid var(--line); margin-bottom:14px; }
.zakladki a { padding:8px 14px; border-bottom:2px solid transparent; color:var(--text-2); font-size:.9rem; text-decoration:none; margin-bottom:-1px; }
.zakladki a:hover { color:var(--text); }
.zakladki a.aktywna { color:var(--text); border-bottom-color:var(--clay); }
.os-zmian { list-style:none; margin:18px 0 0; padding:0 0 0 22px; border-left:2px solid var(--line); display:grid; gap:18px; }
.wersja-zmian { position:relative; background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:14px 16px 12px; }
.wersja-zmian::before { content:""; position:absolute; left:-30px; top:18px; width:12px; height:12px; border-radius:50%; background:var(--surface); border:2px solid var(--text-3); }
.wersja-zmian.najnowsza::before { background:var(--clay); border-color:var(--clay); box-shadow:0 0 0 4px color-mix(in srgb, var(--clay) 22%, transparent); }
.wersja-glowa { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 12px; margin-bottom:8px; }
.wersja-nr { font-family:var(--serif); font-weight:500; font-size:1.35rem; letter-spacing:-.01em; }
.wersja-glowa time, .co-nowego h3 time { font-family:var(--mono); font-size:.78rem; color:var(--text-3); font-weight:400; }
.lista-zmian { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.lista-zmian li { display:grid; grid-template-columns:auto minmax(0, 1fr); gap:10px; align-items:baseline; line-height:1.5; }
.lista-zmian li .plakietka { min-width:76px; text-align:center; }
@media (max-width:479px) { .lista-zmian li { grid-template-columns:minmax(0, 1fr); gap:4px; } .lista-zmian li .plakietka { justify-self:start; min-width:0; } }
.karta-zmian-link { white-space:nowrap; }
.karta-zmian-link .mono { color:inherit; }
.karta-zmian-link .kropka-nowa { display:none; width:7px; height:7px; border-radius:50%; background:var(--clay); margin-right:5px; vertical-align:1px; }
.karta-zmian-link.nowa .kropka-nowa { display:inline-block; }
.co-nowego { border:2px solid var(--clay); background:var(--surface); border-radius:var(--r); padding:16px 18px; margin:0 0 18px; box-shadow:var(--cien); }
.co-nowego h2 { font-family:var(--serif); font-weight:500; font-size:1.25rem; letter-spacing:-.01em; margin:0 0 4px; }
.co-nowego .omowienie { margin:0 0 12px; color:var(--text-2); }
.co-nowego-wersje { max-height:55vh; overflow-y:auto; display:grid; gap:14px; padding-right:4px; }
.co-nowego h3 { display:flex; flex-wrap:wrap; gap:4px 12px; align-items:baseline; font-size:1rem; font-weight:500; margin:0 0 8px; }
.co-nowego .przyciski { margin-top:14px; }
.co-nowego .proza.drobna { margin:8px 0 0; }
.filtry-pola.filtry-logowan .pole-wybor { margin:0 0 10px; }
@media (min-width:700px) { .filtry-pola.filtry-logowan { grid-template-columns:minmax(0, 1fr) auto auto; } }

/* ================= Lancuch GUGiK ================= */
/* Strony bez nawigacji: nazwa systemu 1,5 rem / 600, lead krojem tekstu bez max-width (25.09.2026). */
.naglowek-prosty h1 { font-family:var(--serif); font-weight:600; font-size:1.5rem; line-height:1.25; letter-spacing:-.01em; margin:0 0 8px; padding-right:130px; }
.naglowek-prosty .lead { font-family:var(--sans); font-weight:400; font-size:1rem; max-width:none; padding-right:130px; }
@media (max-width:720px) { .naglowek-prosty h1, .naglowek-prosty .lead { padding-right:0; } }
.tytul-app b { font-weight:600; }
.pomoc-przycisk { display:inline-flex; align-items:center; gap:6px; margin-right:8px; padding:6px 12px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--text-2); text-decoration:none; font-size:.82rem; vertical-align:middle; }
.pomoc-przycisk svg { width:15px; height:15px; }
.pomoc-przycisk:hover { color:var(--text); border-color:var(--text-3); }
.gora { display:flex; align-items:center; }

.uklad-mapy { display:grid; grid-template-columns:1fr; gap:14px; align-items:start; }
@media (min-width:980px) { .uklad-mapy { grid-template-columns:330px minmax(0,1fr); } }
.panel-mapy .pole { margin-bottom:12px; }
.mapa-ramka { position:relative; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; background:var(--surface-2); }
.mapa { width:100%; height:62vh; min-height:380px; }
.mapa-analizy .mapa { height:60vh; }
.mapa.celownik, .mapa.celownik .leaflet-interactive { cursor:crosshair; }
.pole-z-przyciskiem { display:flex; gap:6px; }
.pole-z-przyciskiem input { flex:1 1 auto; min-width:0; }
.przelacznik { display:flex; flex-wrap:wrap; gap:6px; }
.przelacznik .pigulka { cursor:pointer; font-family:var(--sans); }
.obszar-info { margin:0 0 12px; font-size:.86rem; color:var(--text-2); }
.obszar-info.zle { color:var(--zle); }
.leaflet-container { font-family:var(--sans); background:var(--surface-2); }
.leaflet-popup-content { font-size:.85rem; line-height:1.45; }
.leaflet-control-attribution { font-size:.66rem; }

.legenda { position:absolute; left:10px; bottom:30px; z-index:500; display:flex; flex-wrap:wrap; gap:4px 10px; max-width:calc(100% - 20px); padding:6px 10px; background:color-mix(in srgb, var(--surface) 92%, transparent); border:1px solid var(--line); border-radius:var(--r); font-size:.74rem; color:var(--text-2); }
.legenda span { display:inline-flex; align-items:center; gap:5px; white-space:nowrap; }
.leg { display:inline-block; width:14px; height:10px; border-radius:2px; border:2px solid; }
.leg-egib { border-color:#1f8fe6; }
.leg-lidar { border-color:#f2d21b; }
.leg.kat-NOWY { border-color:#d43c2c; background:#d43c2c55; }
.leg.kat-ROZBUDOWA { border-color:#e0841a; background:#e0841a55; }
.leg.kat-BRAK { border-color:#8e4fc4; background:#8e4fc455; }
.leg.kat-ZMNIEJSZENIE { border-color:#2f9a6a; background:#2f9a6a55; }

.podsumowanie { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:0 0 12px; }
.kat-filtr { display:inline-flex; align-items:center; gap:7px; padding:6px 12px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--text-3); font-family:var(--sans); font-size:.84rem; cursor:pointer; }
.kat-filtr b { font-family:var(--serif); font-weight:500; font-size:1.05rem; color:var(--text-3); }
.kat-filtr.aktywny { color:var(--text); border-color:var(--text-3); }
.kat-filtr.aktywny b { color:var(--text); }
.kat-znak { width:12px; height:12px; border-radius:3px; opacity:.35; }
.kat-filtr.aktywny .kat-znak { opacity:1; }
.kat-znak.kat-NOWY { background:#d43c2c; } .kat-znak.kat-ROZBUDOWA { background:#e0841a; }
.kat-znak.kat-BRAK { background:#8e4fc4; } .kat-znak.kat-ZMNIEJSZENIE { background:#2f9a6a; }
.podsumowanie-info { margin-left:auto; font-size:.8rem; color:var(--text-3); }
.plakietka.kat-p { font-family:var(--mono); font-size:.68rem; letter-spacing:.02em; }
.plakietka.kat-NOWY { color:#b0311f; border-color:#d43c2c66; background:#d43c2c14; }
.plakietka.kat-ROZBUDOWA { color:#9a5a12; border-color:#e0841a66; background:#e0841a14; }
.plakietka.kat-BRAK { color:#6f3aa0; border-color:#8e4fc466; background:#8e4fc414; }
.plakietka.kat-ZMNIEJSZENIE { color:#23704f; border-color:#2f9a6a66; background:#2f9a6a14; }
:root[data-theme="dark"] .plakietka.kat-NOWY { color:#ef8a7c; } :root[data-theme="dark"] .plakietka.kat-ROZBUDOWA { color:#f0b46a; }
:root[data-theme="dark"] .plakietka.kat-BRAK { color:#c4a2ea; } :root[data-theme="dark"] .plakietka.kat-ZMNIEJSZENIE { color:#7fcfa9; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .plakietka.kat-NOWY { color:#ef8a7c; } :root:not([data-theme="light"]) .plakietka.kat-ROZBUDOWA { color:#f0b46a; }
  :root:not([data-theme="light"]) .plakietka.kat-BRAK { color:#c4a2ea; } :root:not([data-theme="light"]) .plakietka.kat-ZMNIEJSZENIE { color:#7fcfa9; }
}
.filtry-statusu { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
.filtry-statusu .pigulka { cursor:pointer; font-family:var(--sans); }
.tabela-zmian tbody tr { cursor:pointer; }
.tabela-zmian tbody tr.wybrany td { background:color-mix(in srgb, var(--clay) 10%, var(--surface)); }
.tabela-zmian tbody tr.zapisuje { opacity:.6; }
.tabela-zmian tbody tr.zapisane td:last-child { box-shadow:inset -3px 0 0 var(--dobrze); }
.tabela-zmian .id-egib { max-width:240px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.maly-select, .maly-input { min-height:32px !important; padding:4px 8px !important; font-size:.82rem !important; }
.maly-select { padding-right:30px !important; min-width:140px; }
.maly-input { min-width:160px; }
.postep-karta { margin-bottom:14px; }
.pasek-ruchomy { height:6px; }
.pasek-ruchomy span { width:30%; animation:przesuw 1.4s ease-in-out infinite; }
@keyframes przesuw { from { transform:translateX(-100%); } to { transform:translateX(340%); } }
@media (prefers-reduced-motion: reduce) { .pasek-ruchomy span { animation:none; width:100%; opacity:.5; } }
.uklad-konto { display:grid; grid-template-columns:1fr; gap:14px; align-items:start; }
@media (min-width:980px) { .uklad-konto { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); } }
.uklad-konto .karta + .karta { margin-top:0; }
.duzy-kod { font-size:1.1rem; letter-spacing:.06em; }

/* ---- 1.1: gorna linia bez ramek (konto, wyloguj, PL / EN, motyw w jednym rzedzie) ---- */
.topbar-prawa { gap:14px; }
.chip-uzytkownik { border:0; background:transparent; padding:2px 0; }
.wyloguj { border:0; padding:4px 0; background:transparent; }
.wyloguj:hover { border:0; }
.motyw { border:0; background:transparent; padding:0; gap:0; }
.motyw button[aria-pressed="true"] { background:transparent; color:var(--clay); }
.pomoc-przycisk { border:0; background:transparent; padding:0 4px; min-height:32px; }
.pomoc-przycisk:hover { border:0; }
.gora { gap:14px; }
.jezyk { display:inline-flex; align-items:center; gap:10px; font-size:.8rem; font-weight:600; letter-spacing:.04em; }
.jezyk a { color:var(--text-3); text-decoration:none; padding:4px 0; border-bottom:2px solid transparent; line-height:1; }
.jezyk a:hover { color:var(--text); }
.jezyk a[aria-current="true"] { color:var(--text); border-bottom-color:var(--clay); }
@media print { .jezyk { display:none !important; } }

/* ---- 1.1: wizytowka ---- */
.formularz-wizytowki .siatka-pol .szerokie { grid-column:1 / -1; }
@media (min-width:900px) { .formularz-wizytowki .siatka-pol .dwie { grid-column:span 2; }
  .zakresy { display:grid; grid-template-columns:1fr 1fr; column-gap:18px; } .zakresy legend { grid-column:1 / -1; } }
.zakresy { border:0; margin:0 0 14px; padding:0; }
.zakresy legend { font-size:.82rem; color:var(--text-2); margin-bottom:6px; padding:0; }
.wybor { display:flex; gap:8px; align-items:flex-start; font-size:.86rem; line-height:1.45; padding:4px 0; cursor:pointer; }
.wybor input { margin-top:3px; accent-color:var(--clay); }
.wybor b { display:inline-block; min-width:1.2em; }

/* ---- 1.1: historia zmian, karta zmian ---- */
.tabela-historii td.zmiana-przed { color:var(--text-2); }
.tabela-historii td.zmiana-przed, .tabela-historii td.zmiana-po { max-width:28ch; overflow-wrap:anywhere; font-size:.82rem; }
.karta-zmian .wersja + .wersja { margin-top:26px; }
.karta-zmian h2 { display:flex; align-items:baseline; gap:12px; font-size:1.15rem; }
.karta-zmian h2 .data { font-size:.8rem; color:var(--text-3); font-weight:400; }
.karta-zmian li + li { margin-top:6px; }

/* ================= Czerwona teczka 1.0 ================= */
/* gorna linia: konto jako tekst (nazwisko nad rola), bez ramek */
.konto-linia { display:none; flex-direction:column; line-height:1.1; text-decoration:none; color:var(--text); text-align:right; }
.konto-linia .chip-nazwa { display:block; font-size:.82rem; }
.konto-linia .chip-rola { display:block; font-size:.66rem; color:var(--text-3); }
@media (min-width:900px) { .konto-linia { display:flex; } }
.nav a.aktywny { background:transparent; box-shadow:inset 0 -2px 0 var(--clay); color:var(--text); }
.nav a:hover { background:transparent; }

/* telefon: cztery pierwsze pozycje + Wiecej */
.dolna-wiecej { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; padding:8px 4px 6px; border:0; background:transparent; color:var(--text-2); font:inherit; font-size:.66rem; cursor:pointer; }
.dolna-wiecej svg { width:22px; height:22px; }
.menu-wiecej { position:fixed; left:0; right:0; bottom:calc(var(--dolna) + env(safe-area-inset-bottom)); z-index:45; background:var(--surface); border-top:1px solid var(--line); padding:8px 12px 12px; box-shadow:0 -12px 30px -12px #00000040; display:grid; gap:2px; }
.menu-wiecej[hidden] { display:none; }
.menu-wiecej a { display:flex; align-items:center; gap:10px; padding:11px 8px; color:var(--text); text-decoration:none; border-radius:var(--r); }
.menu-wiecej a svg { width:20px; height:20px; color:var(--text-2); }
.menu-wiecej a.aktywny { color:var(--clay); }
@media (min-width:900px) { .menu-wiecej { display:none !important; } }

.podmenu { display:flex; flex-wrap:wrap; gap:4px 18px; margin:0 0 16px; font-size:.9rem; }
.podmenu a { color:var(--text-2); text-decoration:none; padding:4px 0; border-bottom:2px solid transparent; }
.podmenu a[aria-current="page"] { color:var(--text); border-bottom-color:var(--clay); }
.akcje { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.akcje svg, .przyciski svg { width:16px; height:16px; }
.waska { max-width:640px; }
.wyszarzone td { color:var(--text-3); }
.kropka.ok { background:var(--dobrze); } .kropka.zla { background:var(--zle); } .kropka.uwaga { background:var(--uwaga); }
.sekcja-glowa > svg { width:20px; height:20px; color:var(--clay); flex:0 0 auto; }
.plakietka svg { width:12px; height:12px; vertical-align:-1px; margin-right:3px; }

/* przeglad teczki */
.uklad-pulpit { display:grid; grid-template-columns:1fr; gap:14px; align-items:start; }
@media (min-width:980px) { .uklad-pulpit { grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); } }
.uklad-pulpit .karta + .karta, .kolumna-boczna .karta + .karta { margin-top:14px; }
.uklad-pulpit > .karta, .kolumna-boczna > .karta:first-child { margin-top:0; }
.karta.alarm { border-color:var(--zle); background:var(--tlo-zle); }
progress.pasek-postepu { width:100%; height:8px; appearance:none; -webkit-appearance:none; border:0; border-radius:10px; background:var(--line-2); overflow:hidden; margin:4px 0 14px; }
progress.pasek-postepu::-webkit-progress-bar { background:var(--line-2); border-radius:10px; }
progress.pasek-postepu::-webkit-progress-value { background:var(--clay); border-radius:10px; }
progress.pasek-postepu::-moz-progress-bar { background:var(--clay); border-radius:10px; }
.lista-kategorii { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:2px 18px; }
.lista-kategorii a { display:flex; align-items:center; gap:10px; padding:7px 0; text-decoration:none; color:var(--text); border-bottom:1px solid var(--line-2); }
.lista-kategorii a svg { width:18px; height:18px; color:var(--text-2); flex:0 0 auto; }
.lista-kategorii a span:first-of-type { flex:1; }
.liczba-kat { font-family:var(--mono); font-size:.8rem; color:var(--text-3); }
.liczba-kat.pelna { color:var(--dobrze); }
.lista-liczb, .lista-terminow, .lista-dok { list-style:none; margin:0; padding:0; }
.lista-liczb li, .lista-terminow li { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; padding:6px 0; border-bottom:1px solid var(--line-2); }
.lista-liczb li a, .lista-terminow li a { flex:1; }
.lista-liczb b { font-family:var(--mono); font-weight:500; }
.lista-terminow li.po-terminie .mono { color:var(--zle); font-weight:600; }
.lista-dok li { padding:5px 0; }

/* checklista */
.spis-kategorii { display:flex; flex-wrap:wrap; gap:4px 14px; margin:0 0 14px; font-size:.86rem; }
.spis-kategorii a { color:var(--text-2); text-decoration:none; }
.spis-kategorii a:hover { color:var(--clay); }
.checklista { list-style:none; margin:0; padding:0; }
.checklista .poz { display:grid; grid-template-columns:140px minmax(0,1fr); gap:6px 14px; padding:10px 0; border-bottom:1px solid var(--line-2); align-items:start; }
.checklista .poz:last-child { border-bottom:0; }
.poz-status select { width:100%; min-height:32px; padding:4px 26px 4px 8px; font-size:.82rem; }
.poz-tytul { font-weight:500; color:var(--text); text-decoration:none; }
.poz-tytul:hover { color:var(--clay); text-decoration:underline; }
.poz-meta { display:flex; flex-wrap:wrap; gap:4px 8px; margin-top:3px; align-items:center; }
.poz-opis { margin:4px 0 0; font-size:.86rem; color:var(--text-2); line-height:1.5; }
.poz.status-gotowe .poz-tytul { color:var(--text-2); }
.poz.status-gotowe .poz-status select { color:var(--dobrze); border-color:var(--dobrze); }
.poz.status-w-toku .poz-status select { color:var(--uwaga); }
.poz.status-nie-dotyczy { opacity:.6; }
.poz.zapisane .poz-status select { box-shadow:0 0 0 2px color-mix(in srgb, var(--dobrze) 40%, transparent); }
@media (max-width:640px) { .checklista .poz { grid-template-columns:1fr; } .poz-status { order:2; max-width:220px; } }
.plakietka.status-gotowe { color:var(--dobrze); } .plakietka.status-w-toku { color:var(--uwaga); }
.opis-pol { display:grid; grid-template-columns:max-content 1fr; gap:6px 16px; margin:0; }
.opis-pol dt { color:var(--text-2); font-size:.86rem; }
.opis-pol dd { margin:0; }
.notatka { white-space:pre-line; }

/* dokument */
.uklad-dokument { display:grid; grid-template-columns:1fr; gap:14px; align-items:start; }
@media (min-width:980px) { .uklad-dokument { grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); } }
.uklad-dokument > .karta { margin-top:0; }
.podglad-karta { padding:0; overflow:hidden; }
iframe.podglad { display:block; width:100%; height:72vh; min-height:420px; border:0; background:#fff; }
pre.ocr { white-space:pre-wrap; overflow-wrap:anywhere; max-height:420px; overflow:auto; font-size:.8rem; background:var(--surface-2); padding:10px; border-radius:var(--r); }
td.zle { color:var(--zle); font-weight:600; }

/* kontakty, listy */
.kontakty .kafel h3 { margin-bottom:4px; }
.kontakty .kafel p { margin:2px 0; }
.list .sekcja-glowa { flex-wrap:wrap; }
.tresc-listu { white-space:pre-line; font-size:1.02rem; line-height:1.75; padding:6px 0 4px; }

/* zakres osoby zaufanej */
.tabela.zakres td, .tabela.zakres th { vertical-align:middle; }
.tabela.zakres td svg { width:16px; height:16px; vertical-align:-3px; color:var(--text-2); margin-right:6px; }
.tabela.zakres input[type=checkbox] { width:18px; height:18px; accent-color:var(--clay); }
.tabela tr.wyroznione td { background:var(--bordo-tlo); }

/* logowanie dwuskladnikowe */
.pole-kodu { font-family:var(--mono); font-size:1.3rem !important; letter-spacing:.2em; max-width:260px; }
.uklad-2fa { display:grid; grid-template-columns:1fr; gap:18px; align-items:start; }
@media (min-width:760px) { .uklad-2fa { grid-template-columns:minmax(0,1fr) 240px; } }
img.qr { display:block; width:220px; height:220px; background:#fff; padding:6px; border-radius:var(--r); }
.kroki li + li { margin-top:6px; }
.kody-lista { columns:2; font-size:1.15rem; letter-spacing:.08em; padding-left:1.6em; }
.kody-lista li { margin:4px 0; }

/* sejf */
.pasek-sejfu { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:0 0 14px; }
.pasek-sejfu input[type=search] { flex:1 1 220px; }
.kat-naglowek { font-size:.95rem; margin:18px 0 8px; color:var(--text-2); font-weight:500; }
.wpisy { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:12px; }
.wpis { background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:12px 14px; }
.wpis-glowa { display:flex; flex-direction:column; gap:2px; margin-bottom:6px; }
.wpis-pole { display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; padding:3px 0; }
.wpis-pole > span:first-child { font-size:.75rem; min-width:100%; }
.wpis-pole code { font-size:.9rem; overflow-wrap:anywhere; }
.wpis-notatka { white-space:pre-line; font-size:.86rem; color:var(--text-2); margin:6px 0 0; }
.wpis .przyciski { margin-top:8px; }
.karta.wyrozniona { border-color:var(--clay); }
.formularz-wpisu { margin-bottom:14px; }
.karta-kodu { border:2px dashed var(--clay); }
.karta-druk h2 { margin:6px 0 2px; }
.karta-marka { font-size:.8rem; color:var(--text-3); margin:0; }
.karta-dla { margin:0 0 8px; color:var(--text-2); }
.karta-kod { font-size:1.45rem; letter-spacing:.08em; font-weight:600; margin:10px 0; overflow-wrap:anywhere; }
.tylko-druk { display:none; }

/* szukaj, przewodnik */
.szukaj-form { display:flex; gap:8px; margin-bottom:16px; }
.szukaj-form input { flex:1; }
.wyniki { list-style:none; padding:0; margin:0; }
.wyniki li { padding:10px 0; border-bottom:1px solid var(--line-2); }
.wyniki a { text-decoration:none; color:var(--text); }
.wyniki a:hover b { color:var(--clay); }
.fragment { margin:4px 0 0; font-size:.86rem; color:var(--text-2); }
.fragment mark { background:var(--bordo-tlo); color:var(--text); padding:0 2px; border-radius:3px; }
.przewodnik-tematy { display:flex; flex-wrap:wrap; gap:4px 18px; margin:0 0 18px; font-size:.9rem; }
.przewodnik-tematy a { color:var(--text-2); text-decoration:none; padding:3px 0; border-bottom:2px solid transparent; }
.przewodnik-tematy a[aria-current="page"] { color:var(--text); border-bottom-color:var(--clay); }
.przewodnik h2 { font-family:var(--serif); font-weight:500; font-size:1.3rem; margin:28px 0 8px; }
.przewodnik h3 { font-size:1.05rem; margin:20px 0 6px; }
.przewodnik table { font-size:.88rem; }
.przewodnik li + li { margin-top:4px; }

/* druk: karta do koperty, wydruk sejfu, kody zapasowe */
@media print {
  .menu-wiecej, .bez-druku, .podmenu, .strona-glowa .akcje, .stopka { display:none !important; }
  body.druk-karty main > *:not(#karta-kodu) { display:none !important; }
  body.druk-karty #karta-kodu > *:not(.karta-druk) { display:none !important; }
  body.druk-karty #karta-kodu { border:2px dashed #000; max-width:150mm; }
  body.druk-sejfu main > *:not(#druk-sejfu) { display:none !important; }
  body.druk-sejfu #druk-sejfu { display:block !important; }
  #druk-sejfu table { width:100%; border-collapse:collapse; font-size:9pt; }
  #druk-sejfu td { border-bottom:1px solid #999; padding:3px 4px; vertical-align:top; overflow-wrap:anywhere; }
  .karta-do-druku { border:1px solid #000; }
}

/* 1.0: poprawki po ogladzie */
form.filtry { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:0 0 14px; }
form.filtry select { width:auto; min-width:200px; flex:0 1 auto; min-height:40px; }
form.filtry .drugi, form.filtry .glowny { min-height:40px; }
.nav a.aktywny { border-radius:0; }
.karta-kod { color:var(--text); }
