/* Plan 110 - formatka NP (grafit, glinka, Instrument Sans + Inter), wersja aplikacji z menu.
   Zasady właściciela: zaokrąglenia najwyżej 10 px, mało kolorów, bez ramek w ramkach,
   ikony bez podkładek (wybrane = glinka), przyciski w rzędzie tej samej wysokości,
   proza bez wąskiej kolumny, tekst stłumiony min. 4,5:1. */

@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:#bd5b39; --clay-tekst:#a94e2c; --mineral:#4f7d6d; --przycisk:#a94e2c;
  --dot:rgba(0,0,0,.045);
  --zle:#b03426; --tlo-zle:#fdf1ef; --dobrze:#3d6b53; --tlo-dobrze:#eff5f1;
  --uwaga:#8a5a0f; --tlo-uwaga:#fbf4e6;
  --wyk-1:#b0532f; --wyk-2:#2f6db0;
  --cien:0 1px 2px #0000000a, 0 12px 26px -16px #0000002e;
  --serif:'Instrument Sans','Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --mono:ui-monospace,'Cascadia Code','SF Mono',Consolas,monospace;
  --r:8px;
  color-scheme:light;
}
@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:#d97757; --clay-tekst:#e08a6c; --mineral:#7bb0a0; --przycisk:#b85838;
    --dot:rgba(255,255,255,.05);
    --zle:#e0785f; --tlo-zle:#3a2b28; --dobrze:#7bb0a0; --tlo-dobrze:#2b352f;
    --uwaga:#e0b25e; --tlo-uwaga:#3a3324;
    --wyk-1:#d0663f; --wyk-2:#4f8fd6;
    --cien:0 1px 2px #0000000d, 0 10px 24px -14px #00000073;
    color-scheme:dark;
  }
}
: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:#d97757; --clay-tekst:#e08a6c; --mineral:#7bb0a0; --przycisk:#b85838;
  --dot:rgba(255,255,255,.05);
  --zle:#e0785f; --tlo-zle:#3a2b28; --dobrze:#7bb0a0; --tlo-dobrze:#2b352f;
  --uwaga:#e0b25e; --tlo-uwaga:#3a3324;
  --wyk-1:#d0663f; --wyk-2:#4f8fd6;
  --cien:0 1px 2px #0000000d, 0 10px 24px -14px #00000073;
  color-scheme:dark;
}

* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
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.55;
  -webkit-font-smoothing:antialiased;
}
a { color:var(--clay-tekst); }
.kontener { position:relative; max-width:1120px; margin:0 auto; padding:0 24px 72px; }

/* ---------- Nagłówek: jeden zwarty pasek, przyklejony u góry, z rozmyciem tła ---------- */
.pasek { position:sticky; top:0; z-index:30; border-bottom:1px solid var(--line);
  background:color-mix(in srgb, var(--bg) 82%, transparent);
  -webkit-backdrop-filter:saturate(1.4) blur(14px); backdrop-filter:saturate(1.4) blur(14px); }
.pasek-srodek { max-width:1120px; margin:0 auto; padding:0 24px; }
.pasek-wiersz { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:60px; }
.marka-blok { display:flex; align-items:baseline; gap:10px; min-width:0; }
.nazwa { font-family:var(--serif); font-weight:650; font-size:1.4rem; letter-spacing:-.03em; line-height:1;
  color:var(--text); text-decoration:none; white-space:nowrap; }
.nazwa span { color:var(--clay); }
.wersja { font-family:var(--mono); font-size:.7rem; color:var(--text-3); text-decoration:none; }
.wersja:hover { color:var(--clay-tekst); }
.podpis { font-size:.88rem; color:var(--text-2); padding-left:12px; border-left:1px solid var(--line);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.narzedzia { display:flex; align-items:center; gap:14px; flex:0 0 auto; }
.konto { font-size:.86rem; color:var(--text-2); white-space:nowrap; }
.konto a { color:var(--text); text-decoration:none; font-weight:560; }
.konto a:hover { color:var(--clay-tekst); }
.wyloguj { display:inline; margin:0; }
.wyloguj button { font:inherit; font-size:.86rem; color:var(--text-2); background:none; border:0; padding:0; cursor:pointer; }
.wyloguj button:hover { color:var(--clay-tekst); text-decoration:underline; }
.instaluj { display:inline-flex; align-items:center; gap:6px; height:32px; padding:0 12px; font-family:var(--sans);
  font-size:.84rem; color:var(--clay-tekst); background:transparent; border:1px solid color-mix(in srgb, var(--clay) 45%, var(--line));
  border-radius:var(--r); cursor:pointer; white-space:nowrap; }
.instaluj:hover { border-color:var(--clay); }
.instaluj svg { width:15px; height:15px; }
.motyw { display:inline-flex; gap:2px; }
.motyw button {
  display:inline-flex; align-items:center; justify-content:center;
  width:32px; height:32px; padding:0; border:0; border-radius:var(--r);
  background:transparent; color:var(--text-3); cursor:pointer;
}
.motyw button:hover { color:var(--text); }
.motyw button[aria-pressed="true"] { color:var(--clay); }
.motyw svg { width:16px; height:16px; }
.zegar { width:40px; height:40px; flex:0 0 auto; }
.zegar svg { display:block; width:100%; height:100%; overflow:visible; }

.menu { display:flex; gap:0 24px; overflow-x:auto; scrollbar-width:none; }
.menu::-webkit-scrollbar { display:none; }
.menu a { color:var(--text-2); text-decoration:none; font-size:.93rem; padding:9px 0 10px; margin-bottom:-1px;
  border-bottom:2px solid transparent; white-space:nowrap; }
.menu a:hover { color:var(--text); }
.menu a[aria-current="page"] { color:var(--clay-tekst); font-weight:600; border-bottom-color:var(--clay); }

main { margin-top:24px; }
h1 { font-family:var(--serif); font-weight:500; font-size:1.5rem; line-height:1.25; letter-spacing:-.02em; margin:0 0 6px; }
h2 { font-family:var(--serif); font-weight:500; font-size:1.25rem; line-height:1.3; letter-spacing:-.01em; margin:0 0 12px; }
h3 { font-family:var(--sans); font-weight:600; font-size:1rem; margin:0 0 6px; }
.lead { color:var(--text-2); margin:0 0 18px; font-size:1rem; }
.stlumiony { color:var(--text-2); }
.drobny { font-size:.84rem; color:var(--text-2); }
.mono { font-family:var(--mono); }
section { margin-top:34px; }
section:first-child { margin-top:0; }

/* ---------- Karty i siatki ---------- */
.karta { background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:18px 20px; }
.karta + .karta { margin-top:14px; }
.dwie { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); gap:22px; align-items:start; }
.siatka-kart { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr)); gap:14px; }

/* ---------- Komunikaty ---------- */
.komunikat { margin:0 0 14px; padding:12px 16px; border-radius:var(--r); border:1px solid var(--line); background:var(--surface); font-size:.95rem; }
.komunikat.dobry { border-color:var(--dobrze); background:var(--tlo-dobrze); }
.komunikat.zly, .komunikat.pilne { border-color:var(--zle); background:var(--tlo-zle); }
.komunikat.uwaga { border-color:var(--uwaga); background:var(--tlo-uwaga); }
.komunikat.info { border-color:var(--line); }
.komunikat b { font-weight:600; }
.znacznik { font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; margin-right:8px; }
.komunikat.pilne .znacznik, .komunikat.zly .znacznik { color:var(--zle); }
.komunikat.uwaga .znacznik { color:var(--uwaga); }

/* ---------- Przyciski i pola ---------- */
.przyciski { display:flex; flex-wrap:wrap; gap:10px; align-items:stretch; }
button.glowny, a.glowny, button.drugi, a.drugi {
  display:inline-flex; align-items:center; justify-content:center; gap:8px; height:40px;
  font-family:var(--sans); font-size:.92rem; line-height:1; padding:0 18px; border-radius:var(--r);
  cursor:pointer; text-decoration:none; white-space:nowrap;
}
button.glowny, a.glowny { color:#fff; background:var(--przycisk); border:1px solid var(--przycisk); }
button.glowny:hover, a.glowny:hover { filter:brightness(1.08); }
button.drugi, a.drugi { color:var(--text); background:var(--surface); border:1px solid var(--line); }
button.drugi:hover, a.drugi:hover { border-color:var(--text-3); }
button.maly, a.maly { height:32px; padding:0 12px; font-size:.84rem; }
button:disabled { opacity:.55; cursor:default; }

label { font-size:.86rem; color:var(--text-2); }
.pole { margin-bottom:14px; }
.pole label { display:block; margin-bottom:5px; }
.pole .podpowiedz { display:block; font-size:.8rem; color:var(--text-2); margin-top:5px; }
input[type="text"], input[type="email"], input[type="password"], input[type="date"], input[type="time"],
input[type="number"], select, textarea {
  width:100%; height:40px; padding:0 12px; font-family:var(--sans); font-size:.95rem;
  color:var(--text); background:var(--surface); border:1px solid var(--line); border-radius:var(--r);
}
textarea { height:auto; min-height:70px; padding:9px 12px; resize:vertical; }
input:focus, select:focus, textarea:focus { outline:none; border-color:var(--clay); }
input[type="checkbox"], input[type="radio"] { accent-color:var(--clay); width:18px; height:18px; margin:0; }
.pole-z-okiem { position:relative; display:block; }
.pole-z-okiem input { padding-right:84px; }
.oko { position:absolute; top:50%; right:6px; transform:translateY(-50%); height:28px; font-family:var(--sans);
  font-size:.78rem; color:var(--text-2); background:var(--surface-2); border:1px solid var(--line);
  border-radius:6px; padding:0 10px; cursor:pointer; }
.oko:hover, .oko[aria-pressed="true"] { color:var(--text); border-color:var(--text-3); }
.wiersz-pol { display:grid; grid-template-columns:repeat(auto-fit, minmax(140px,1fr)); gap:12px; }
.zaznacz { display:flex; align-items:center; gap:10px; padding:6px 0; color:var(--text); font-size:.95rem; }

/* ---------- Dziś ---------- */
.dzien-nav { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; flex-wrap:wrap; }
.dzien-nav .strzalki { display:flex; gap:8px; }
.harmonogram { list-style:none; margin:0; padding:0; }
.poz { display:grid; grid-template-columns:58px 1fr; gap:14px; padding:12px 14px 12px 12px; border-left:3px solid transparent;
  border-bottom:1px solid var(--line-2); }
.poz:last-child { border-bottom:0; }
.poz .godz { font-family:var(--mono); font-size:.86rem; color:var(--text-2); padding-top:2px; }
.poz .tytul { font-weight:600; }
.poz .opis { margin:2px 0 0; color:var(--text-2); font-size:.92rem; }
.poz .opis a { color:var(--text); text-decoration:none; border-bottom:1px solid var(--line); }
.poz .opis a:hover { color:var(--clay-tekst); border-bottom-color:var(--clay); }
.poz .kcal { font-family:var(--mono); font-size:.78rem; color:var(--text-2); white-space:nowrap; }
.poz.teraz { border-left-color:var(--clay); background:var(--surface-2); }
.poz.teraz .godz { color:var(--clay-tekst); font-weight:600; }
.poz.minelo .tytul, .poz.minelo .godz { color:var(--text-2); }
.poz.kuchnia .tytul::before { content:"Kuchnia · "; font-weight:500; color:var(--text-2); }
.zrobione { font-family:var(--mono); font-size:.72rem; color:var(--dobrze); margin-left:8px; white-space:nowrap; }
.wpisz { font-size:.84rem; margin-left:8px; }
.karta.harm { padding:4px 0; }

.cel-liczby { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; font-family:var(--serif); }
.cel-liczby .duza { font-size:2rem; font-weight:500; letter-spacing:-.02em; line-height:1.1; }
.cel-liczby .jedn { color:var(--text-2); font-size:1rem; }
.pasek-postepu { height:8px; background:var(--line-2); border-radius:4px; overflow:hidden; margin:12px 0 8px; }
.pasek-postepu span { display:block; height:100%; background:var(--clay); border-radius:4px; }
.statystyki { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px 16px; margin:12px 0 0; }
.statystyki dt { font-size:.8rem; color:var(--text-2); }
.statystyki dd { margin:0; font-family:var(--serif); font-size:1.15rem; font-weight:500; }
.tabela-bilans { width:100%; border-collapse:collapse; font-size:.92rem; }
.tabela-bilans td { padding:5px 0; border-bottom:1px solid var(--line-2); }
.tabela-bilans td:last-child { text-align:right; font-family:var(--mono); font-size:.86rem; white-space:nowrap; }
.tabela-bilans tr:last-child td { border-bottom:0; }
.podpowiedz-dnia .nr { font-family:var(--mono); font-size:.72rem; color:var(--text-3); letter-spacing:.06em; text-transform:uppercase; }
.podpowiedz-dnia h3 { margin:4px 0 6px; font-family:var(--serif); font-weight:500; font-size:1.1rem; }
.podpowiedz-dnia p { margin:0; color:var(--text-2); }

/* ---------- Jadłospis ---------- */
.tydzien-przelacz { display:flex; gap:22px; margin:0 0 16px; border-bottom:1px solid var(--line); }
.tydzien-przelacz a { color:var(--text-2); text-decoration:none; padding:6px 0; border-bottom:2px solid transparent; margin-bottom:-1px; }
.tydzien-przelacz a[aria-current="page"] { color:var(--clay-tekst); font-weight:600; border-bottom-color:var(--clay); }
.jadl { width:100%; border-collapse:collapse; background:var(--surface); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
.jadl th, .jadl td { text-align:left; vertical-align:top; padding:10px 12px; border-bottom:1px solid var(--line-2); font-size:.9rem; }
.jadl th { font-size:.78rem; font-weight:600; color:var(--text-2); background:var(--surface-2); }
.jadl tr:last-child td { border-bottom:0; }
.jadl td.dzien { white-space:nowrap; }
.jadl td.dzien b { display:block; font-weight:600; }
.jadl td.dzien span { font-family:var(--mono); font-size:.76rem; color:var(--text-2); }
.jadl a { color:var(--text); text-decoration:none; }
.jadl a:hover { color:var(--clay-tekst); text-decoration:underline; }
.jadl tr.dzis td { background:var(--surface-2); }
.jadl tr.dzis td.dzien b { color:var(--clay-tekst); }
.jadl td.kcal { font-family:var(--mono); font-size:.8rem; white-space:nowrap; text-align:right; }
.jadl tr.przed td { opacity:.6; }
.etykieta-slotu { display:none; }
.zamienione { font-family:var(--mono); font-size:.7rem; color:var(--clay-tekst); }

/* ---------- Przepis ---------- */
.meta { display:flex; flex-wrap:wrap; gap:6px 18px; color:var(--text-2); font-size:.9rem; margin:4px 0 18px; }
.meta b { color:var(--text); font-weight:600; }
.tabela { width:100%; border-collapse:collapse; font-size:.92rem; }
.tabela th, .tabela td { text-align:left; padding:8px 10px; border-bottom:1px solid var(--line-2); vertical-align:top; }
.tabela th { font-size:.78rem; font-weight:600; color:var(--text-2); }
.tabela tr:last-child td { border-bottom:0; }
.tabela td.num, .tabela th.num { text-align:right; white-space:nowrap; }
.kroki { margin:0; padding-left:22px; }
.kroki li { margin:0 0 10px; padding-left:4px; }
.wskazowka { border-left:3px solid var(--clay); padding:2px 0 2px 14px; color:var(--text-2); margin:16px 0 0; }

/* ---------- Zakupy ---------- */
.zakupy-dzial { margin-top:22px; }
.zakupy-dzial h2 { font-size:1.05rem; margin-bottom:6px; }
.zakup { display:grid; grid-template-columns:24px 1fr auto; gap:10px; align-items:center; padding:9px 2px; border-bottom:1px solid var(--line-2); cursor:pointer; }
.zakup .ile { font-family:var(--mono); font-size:.82rem; color:var(--text-2); text-align:right; }
.zakup.kupione .nazwa-z { text-decoration:line-through; color:var(--text-3); }

/* ---------- Dziennik ---------- */
.formularz-dnia { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px 22px; }
.pomiar { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:8px; }
.pomiar + .pomiar { margin-top:8px; }
.pomiar input { text-align:center; }
.grupa h3 { margin-bottom:8px; }
.segment { display:inline-flex; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
.segment label { display:inline-flex; align-items:center; height:36px; padding:0 12px; cursor:pointer; color:var(--text-2); font-size:.86rem; border-left:1px solid var(--line); }
.segment label:first-child { border-left:0; }
.segment input { position:absolute; opacity:0; width:1px; height:1px; }
.segment input:checked + span { color:var(--clay-tekst); font-weight:600; }
.segment label:has(input:checked) { background:var(--surface-2); color:var(--clay-tekst); }
.segment input:focus-visible + span { outline:2px solid var(--clay); outline-offset:2px; }
.posilek-wiersz { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:6px 0; border-bottom:1px solid var(--line-2); flex-wrap:wrap; }
.posilek-wiersz:last-child { border-bottom:0; }
.zapis-gora { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:14px; flex-wrap:wrap; }

/* ---------- Postęp ---------- */
.kafle-liczb { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px,1fr)); gap:12px; }
.kafel-liczba { background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:14px 16px; }
.kafel-liczba dt { font-size:.8rem; color:var(--text-2); }
.kafel-liczba dd { margin:4px 0 0; font-family:var(--serif); font-size:1.5rem; font-weight:500; letter-spacing:-.01em; }
.kafel-liczba dd small { font-size:.85rem; color:var(--text-2); font-weight:400; }
.wykres-pole { position:relative; }
.wykres { width:100%; height:auto; display:block; touch-action:pan-y; }
.wykres .w-siatka { stroke:var(--line-2); stroke-width:1; }
.wykres .w-os { fill:var(--text-2); font-family:var(--mono); font-size:11px; }
.wykres .w-plan { stroke:var(--text-3); stroke-width:1.5; stroke-dasharray:5 5; fill:none; }
.wykres .w-cel { stroke:var(--text-3); stroke-width:1; stroke-dasharray:2 4; }
.wykres .w-etykieta-pom { fill:var(--text-2); font-family:var(--sans); font-size:12px; }
.wykres .w-etykieta { fill:var(--text); font-family:var(--sans); font-size:13px; font-weight:600; }
.wykres .w-punkt-1 { fill:var(--wyk-1); opacity:.35; }
.wykres .w-linia-1 { stroke:var(--wyk-1); stroke-width:2; fill:none; stroke-linejoin:round; stroke-linecap:round; }
.wykres .w-linia-2 { stroke:var(--wyk-2); stroke-width:2; fill:none; stroke-linejoin:round; stroke-linecap:round; }
.wykres .w-koniec-1 { fill:var(--wyk-1); stroke:var(--surface); stroke-width:2; }
.wykres .w-koniec-2 { fill:var(--wyk-2); stroke:var(--surface); stroke-width:2; }
.wykres .w-krzyz { stroke:var(--text-3); stroke-width:1; }
.dymek { position:absolute; top:6px; pointer-events:none; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--r); box-shadow:var(--cien); padding:8px 10px; font-size:.82rem; min-width:150px; z-index:5; }
.dymek b { display:block; font-family:var(--mono); font-size:.76rem; color:var(--text-2); font-weight:500; margin-bottom:3px; }
.dymek .w { display:flex; justify-content:space-between; gap:12px; }
.dymek .w span:last-child { font-family:var(--mono); }
.legenda { display:flex; gap:18px; flex-wrap:wrap; font-size:.86rem; color:var(--text-2); margin:0 0 6px; }
.legenda span::before { content:""; display:inline-block; width:14px; height:3px; border-radius:2px; vertical-align:middle; margin-right:6px; background:var(--k); }
.przewijana { overflow-x:auto; }

/* ---------- Porady ---------- */
.lista { margin:0; padding-left:20px; }
.lista li { margin:0 0 6px; }
details.zwijana { border-bottom:1px solid var(--line-2); padding:10px 0; }
details.zwijana summary { cursor:pointer; list-style:none; display:flex; gap:10px; align-items:baseline; }
details.zwijana summary::-webkit-details-marker { display:none; }
details.zwijana summary::before { content:"+"; font-family:var(--mono); color:var(--clay); width:12px; }
details.zwijana[open] summary::before { content:"\2212"; }
details.zwijana p { margin:8px 0 0 22px; color:var(--text-2); }
details.zwijana .nr { font-family:var(--mono); font-size:.76rem; color:var(--text-3); min-width:28px; }
details.zwijana.dzisiejsza summary { color:var(--clay-tekst); font-weight:600; }

/* ---------- Proza (pomoc, karta zmian) ---------- */
.proza { color:var(--text-2); font-size:.97rem; line-height:1.65; }
.proza h2 { color:var(--text); margin-top:28px; }
.proza h3 { color:var(--text); margin-top:18px; }
.proza p { margin:0 0 12px; }
.proza ul, .proza ol { margin:0 0 12px; padding-left:22px; }
.proza li { margin:0 0 5px; }
.proza b { color:var(--text); font-weight:600; }
.rzad { display:flex; gap:20px; align-items:baseline; padding:10px 0; border-bottom:1px solid var(--line-2); }
.rzad .data { flex:0 0 130px; font-family:var(--mono); font-size:.78rem; color:var(--text-3); }

/* ---------- Więcej (telefon) ---------- */
.lista-linkow { list-style:none; margin:0; padding:0; }
.lista-linkow li { border-bottom:1px solid var(--line-2); }
.lista-linkow a, .lista-linkow button { display:flex; justify-content:space-between; align-items:center; width:100%; padding:14px 4px;
  color:var(--text); text-decoration:none; font:inherit; background:none; border:0; cursor:pointer; text-align:left; }
.lista-linkow a::after, .lista-linkow button::after { content:"\203A"; color:var(--text-3); font-size:1.2rem; }

/* ---------- Strona prosta (logowanie) ---------- */
.prosta { max-width:440px; }

/* ---------- Stopka ---------- */
footer { margin-top:56px; padding-top:20px; border-top:1px solid var(--line); color:var(--text-2); font-size:.82rem; }
footer a { color:var(--clay-tekst); text-decoration:none; }
footer a:hover { text-decoration:underline; }
footer .adres-kan { font-family:var(--mono); font-size:.74rem; }
footer .linki { margin-top:6px; display:flex; gap:16px; flex-wrap:wrap; }
.ostrzezenie-med { margin-top:6px; }

/* ---------- Okno "Co nowego" ---------- */
dialog.okno { border:1px solid var(--line); border-radius:var(--r); background:var(--surface); color:var(--text);
  padding:22px 24px; width:min(520px, calc(100vw - 32px)); box-shadow:var(--cien); }
dialog.okno::backdrop { background:rgba(20,20,18,.35); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
dialog.okno h2 { margin-bottom:6px; }
dialog.okno ul { padding-left:20px; color:var(--text-2); }
dialog.okno .przyciski { margin-top:16px; }

/* ---------- Notes jedzenia ---------- */
.kafle-male .kafel-liczba { padding:10px 14px; }
.kafle-male .kafel-liczba dd { font-size:1.25rem; }
.plan-wiersz { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid var(--line-2); }
.plan-wiersz:last-child { border-bottom:0; }
.plan-wiersz .kcal, .notes-lista .kcal { font-size:.78rem; color:var(--text-2); white-space:nowrap; }
.notes-lista { list-style:none; margin:0; padding:0; }
.notes-lista li { display:grid; grid-template-columns:48px minmax(0,1fr) auto auto; gap:10px; align-items:start; padding:10px 0;
  border-bottom:1px solid var(--line-2); }
.notes-lista li:last-child { border-bottom:0; }
.notes-lista .godz { font-size:.84rem; color:var(--text-2); padding-top:1px; }
.notes-lista .slot { font-size:.76rem; color:var(--text-2); }
.notes-lista li.plan .slot { color:var(--dobrze); }
.notes-lista li.poza .slot { color:var(--uwaga); }
.notes-lista p { margin:1px 0 0; }
.notes-lista form { margin:0; }
.usun { font:inherit; font-size:.78rem; color:var(--text-2); background:none; border:0; padding:2px 0; cursor:pointer; }
.usun:hover { color:var(--zle); text-decoration:underline; }
.tylko-telefon { display:none; }

/* ---------- Dolne menu (telefon) ---------- */
.dolne-menu { display:none; }

@media (max-width:900px) {
  .dwie { grid-template-columns:minmax(0,1fr); }
  .podpis { display:none; }
}
@media (max-width:720px) {
  .kontener { padding:0 16px calc(84px + env(safe-area-inset-bottom)); }
  .pasek { position:relative; }
  .pasek-srodek { padding:0 16px; }
  .pasek-wiersz { min-height:54px; gap:10px; }
  .menu, .zegar, .konto, .wyloguj { display:none; }
  .narzedzia { gap:6px; }
  .motyw button { width:30px; }
  main { margin-top:16px; }
  .dolne-menu {
    display:grid; grid-template-columns:repeat(5, 1fr); position:fixed; left:0; right:0; bottom:0; z-index:20;
    background:var(--surface); border-top:1px solid var(--line); padding:6px 4px calc(6px + env(safe-area-inset-bottom));
  }
  .dolne-menu a { display:flex; flex-direction:column; align-items:center; gap:3px; color:var(--text-2); text-decoration:none;
    font-size:.7rem; padding:4px 0; min-height:48px; justify-content:center; }
  .dolne-menu a svg { width:22px; height:22px; }
  .dolne-menu a[aria-current="page"] { color:var(--clay-tekst); font-weight:600; }
  .formularz-dnia { grid-template-columns:1fr; }
  .tylko-telefon { display:inline; }
  .notes-lista li { grid-template-columns:44px minmax(0,1fr) auto; }
  .notes-lista li form { grid-column:2 / -1; }
  .poz { grid-template-columns:50px 1fr; gap:10px; padding:11px 10px 11px 8px; }
  .jadl thead { display:none; }
  .jadl, .jadl tbody, .jadl tr, .jadl td { display:block; width:100%; }
  .jadl tr { border-bottom:1px solid var(--line); padding:8px 0; }
  .jadl td { border:0; padding:3px 12px; }
  .jadl td.dzien { display:flex; justify-content:space-between; padding-top:6px; }
  .jadl td.dzien b { display:inline; }
  .jadl td.kcal { text-align:left; }
  .etykieta-slotu { display:block; font-size:.74rem; color:var(--text-2); margin-top:4px; }
  .rzad { flex-direction:column; gap:4px; }
  .rzad .data { flex:none; }
  .statystyki { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .tabela th, .tabela td { padding:7px 4px; font-size:.84rem; }
  .karta { padding:16px 14px; }
}

@media print {
  body { background:#fff; color:#000; }
  .pasek, .dolne-menu, footer .linki, .bez-druku, .przyciski, dialog { display:none !important; }
  .karta { border:0; padding:0; }
  .kontener { padding:0; max-width:none; }
  a { color:#000; text-decoration:none; }
}
