/* ============================================================
   Przełom · Ewidencja czasu — public/css/app.css (moduł A5)
   Część 1: CSS przeniesiony 1:1 z makiety scratchpad/makieta/panel-dnia.html
   (linie 12–768), jedyna zmiana: atrybuty motywu data-theme="light"/"dark"
   → "jasny"/"ciemny" (spec 5.1). Tokeny jasny/ciemny, drawer, userbar, appbar,
   wskaźniki, kafelki, tory, oś doby, siatka malowania, karty, przyciski,
   pigułki, formularze.
   Część 2 (na końcu): warstwa A5 — mobile-first, tabbar, sheet, toasty,
   pionowa siatka doby, logowanie, onboarding.
   Runda 2 (B5, makieta-v2/panel-dnia.html, CSS 6–996): opis → karta materiału
   (.o-opr), raport na sesję (.pdf-pasek, .kartka-a4, .a4-*, @media print),
   onboarding 8 kroków (.onb*), .switch, drawer gęsty + a.poz/.zew, kafelek
   (.lbl min-height, .bar 4 px z segmentami, .badge-op, .z-badge), karta dnia
   (.task flex + .zr .z-md .wraca .prop .martwe .task-czemu .task-hd .del.ok,
   .dwa-taski, .suk-zad*, .z-gw, .rz.z-taska, .slot-edit) + ich warstwa mobile.
   ============================================================ */

:root{
  --bg:#f5f2f3; --surface:#ffffff; --surface-2:#f2eef0; --sunken:#e9e3e6;
  --ink:#191317; --ink-2:#574c53; --muted:#8a7d84; --line:#e3dade; --line-2:#cec2c8;
  --accent:#a8365f; --accent-soft:#f6eaef; --accent-ink:#7d2445;
  --good:#2f8f6b; --warn:#b06a12; --alarm:#b3382f; --over:#c47a1e;

  --sen:#4a5568; --praca:#3d6fb8; --dom:#8a8189; --dzieci:#c47a1e;
  --milosc:#b5406b; --pianino:#7d4fc0; --ksiazki:#2f8f6b; --szum:#a89ea5;

  --budget-tekst:#fff;                         /* napisy na pasku budżetu: biel na nasyconych segmentach jasnego motywu */
  --shadow:0 1px 2px rgba(25,19,23,.06);
  --shadow-lg:0 8px 28px rgba(25,19,23,.09);
  --display:"Fraunces","Iowan Old Style",Georgia,serif;
  --body:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --page:min(100% - 2rem, 94rem);
  --side:13.5rem;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="jasny"]){
    --bg:#141013; --surface:#1e191c; --surface-2:#251f23; --sunken:#171316;
    --ink:#efe8ec; --ink-2:#b9adb4; --muted:#8d8189; --line:#322a2f; --line-2:#453a41;
    --accent:#e0739a; --accent-soft:#33212a; --accent-ink:#f0a2bd;
    --good:#3faa80; --warn:#d69a4c; --alarm:#e0736a; --over:#d69a4c;
    --sen:#8896b0; --praca:#5e8fd6; --dom:#9b9098; --dzieci:#bd8036;
    --milosc:#cc5f87; --pianino:#9a7ae0; --ksiazki:#3faa80; --szum:#7d7379;
    --budget-tekst:#1e191c;                    /* segmenty w ciemnym są rozjaśnione — ciemny tekst czyta się na nich */
    --shadow:0 1px 2px rgba(0,0,0,.4); --shadow-lg:0 8px 28px rgba(0,0,0,.5);
  }
}
:root[data-theme="ciemny"]{
  --bg:#141013; --surface:#1e191c; --surface-2:#251f23; --sunken:#171316;
  --ink:#efe8ec; --ink-2:#b9adb4; --muted:#8d8189; --line:#322a2f; --line-2:#453a41;
  --accent:#e0739a; --accent-soft:#33212a; --accent-ink:#f0a2bd;
  --good:#3faa80; --warn:#d69a4c; --alarm:#e0736a; --over:#d69a4c;
  --sen:#8896b0; --praca:#5e8fd6; --dom:#9b9098; --dzieci:#bd8036;
  --milosc:#cc5f87; --pianino:#9a7ae0; --ksiazki:#3faa80; --szum:#7d7379;
  --budget-tekst:#1e191c;
  --shadow:0 1px 2px rgba(0,0,0,.4); --shadow-lg:0 8px 28px rgba(0,0,0,.5);
}

*{ box-sizing:border-box; }
body{ margin:0; background:var(--bg); color:var(--ink); font-family:var(--body);
      font-size:15px; line-height:1.55; -webkit-font-smoothing:antialiased; }
.page{ width:var(--page); margin:0 auto; padding-block:.8rem 2rem; }
h1,h2{ font-family:var(--display); margin:0; letter-spacing:-.02em; text-wrap:balance; }
h1{ font-size:1.9rem; font-weight:700; line-height:1.1; }
h2{ font-size:1.05rem; font-weight:600; font-family:var(--body); letter-spacing:-.005em; }
p{ margin:0; }
.num{ font-family:var(--mono); font-variant-numeric:tabular-nums; }
.eyebrow{ font-family:var(--mono); font-size:.68rem; letter-spacing:.15em; text-transform:uppercase; color:var(--muted); }

/* ---------- pasek użytkownika ---------- */
.userbar{
  display:flex; flex-wrap:wrap; align-items:center; gap:.5rem .9rem;
  padding:.35rem .7rem; margin-bottom:.6rem;
  background:var(--surface); border:1px solid var(--line); border-radius:11px; box-shadow:var(--shadow);
}
.avatar{
  width:28px; height:28px; border-radius:50%; flex:none; display:flex; align-items:center;
  justify-content:center; font-family:var(--mono); font-size:.78rem; font-weight:600;
  color:#fff; background:var(--accent); letter-spacing:.02em;
}
:root[data-theme="ciemny"] .avatar, :root:not([data-theme="jasny"]) .avatar{ color:#1a1013; }
.userbar .u-name{ font-weight:600; font-size:.95rem; line-height:1.2; }
.userbar .u-sub{ font-size:.75rem; color:var(--muted); }
.badges{ display:flex; flex-wrap:wrap; gap:.35rem; margin-left:auto; }
.userbar .nawi, .userbar .daynav{ flex:none; }
#tytulPasek{ align-items:baseline; gap:.6rem; }
#tytulPasek[hidden]{ display:none !important; }
.userbar .burger{ padding:.32rem .5rem; }
.badge{
  display:flex; align-items:center; gap:.35rem; font-size:.76rem; color:var(--ink-2);
  background:var(--surface-2); border:1px solid var(--line); border-radius:999px; padding:.2rem .6rem;
}
.badge b{ font-family:var(--mono); font-weight:600; color:var(--ink); }
.badge.hot{ border-color:var(--over); color:var(--over); }
.badge.hot b{ color:var(--over); }

/* ---------- popover ze wzorem ---------- */
.metric{ position:relative; }
.pop{
  position:absolute; z-index:30; left:0; top:calc(100% - .4rem);
  background:var(--surface); border:1px solid var(--line-2); border-radius:11px;
  box-shadow:var(--shadow-lg); padding:.55rem .65rem; width:max-content; max-width:19rem;
  opacity:0; pointer-events:none; transform:translateY(-4px); transition:opacity .13s, transform .13s;
}
.metric:hover .pop, .metric:focus-visible .pop{ opacity:1; transform:none; }
.metric:nth-child(n+4) .pop{ left:auto; right:0; }
.pop .p-title{ font-size:.7rem; font-weight:600; color:var(--accent-ink); margin-bottom:.35rem; }
.pop .p-row{ display:flex; flex-wrap:wrap; align-items:center; gap:.2rem; }
.chip{
  display:inline-flex; flex-direction:column; align-items:center; gap:.05rem;
  border:1px solid var(--c, var(--line-2)); border-radius:7px; padding:.12rem .35rem;
  background:color-mix(in srgb, var(--c, var(--line-2)) 12%, transparent);
}
.chip b{ font-family:var(--mono); font-size:.72rem; font-weight:600; color:var(--ink); line-height:1.1; }
.chip span{ font-size:.55rem; color:var(--muted); letter-spacing:.02em; white-space:nowrap; }
.op{ font-family:var(--mono); font-size:.82rem; color:var(--muted); }
.op.eq{ color:var(--ink-2); font-weight:600; }
.chip.wynik{ --c:var(--accent); }
.chip.wynik b{ color:var(--accent-ink); }
.ptab{ width:100%; border-collapse:collapse; font-size:.68rem; margin-top:.1rem; }
.ptab th{
  font-family:var(--mono); font-size:.58rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--muted); font-weight:500; text-align:right; padding:0 .3rem .18rem; border-bottom:1px solid var(--line);
}
.ptab th:first-child{ text-align:left; }
.ptab td{ padding:.16rem .3rem; font-family:var(--mono); text-align:right; color:var(--ink-2); }
.ptab td:first-child{ text-align:left; font-family:var(--body); color:var(--ink-2); display:flex; align-items:center; gap:.3rem; }
.ptab td.wynik{ color:var(--ink); font-weight:600; }
.ptab td.zero{ color:var(--alarm); }
.ptab tr.suma td{ border-top:1px solid var(--line); padding-top:.25rem; color:var(--accent-ink); font-weight:600; }
.ptab .kropka{ width:7px; height:7px; border-radius:2px; flex:none; }
.pop .p-note{ font-size:.68rem; color:var(--muted); margin-top:.4rem; line-height:1.35; }

/* ---------- opis wskaźnika (po kliknięciu) ---------- */
.opis{
  background:var(--accent-soft); border:1px solid var(--line); border-radius:12px;
  padding:.9rem 1.1rem; margin:-1rem 0 1.6rem; box-shadow:var(--shadow);
}
.opis h3{ margin:0 0 .35rem; font-size:1rem; color:var(--accent-ink); font-family:var(--body); font-weight:600; }
.opis p{ font-size:.88rem; color:var(--ink-2); }
.opis .o-lbl{
  font-family:var(--mono); font-size:.62rem; letter-spacing:.13em; text-transform:uppercase;
  color:var(--muted); margin:.9rem 0 .3rem;
}
.opis .o-box{
  background:var(--surface); border:1px solid var(--line); border-radius:9px;
  padding:.6rem .75rem; font-size:.84rem; color:var(--ink-2);
}
.opis .o-box .lin{ display:flex; flex-wrap:wrap; align-items:baseline; gap:.35rem; padding:.12rem 0; }
.opis .o-box .lin b{ font-family:var(--mono); font-size:.82rem; color:var(--ink); font-weight:600; }
.opis .o-box .lin i{ width:8px; height:8px; border-radius:2px; flex:none; }
.opis .o-box .wynik{ border-top:1px solid var(--line); margin-top:.35rem; padding-top:.35rem; color:var(--accent-ink); font-weight:600; }
.opis .o-box .wynik b{ color:var(--accent-ink); }
/* karta materiału z biblioteki na końcu opisu (Skupienie, Przełączenia) */
.opis .o-opr{
  display:flex; align-items:center; gap:.6rem; margin-top:.9rem; text-decoration:none;
  background:var(--surface); border:1px solid var(--line-2); border-radius:9px;
  padding:.55rem .7rem; color:var(--ink-2); font-size:.82rem; line-height:1.4;
}
.opis .o-opr:hover{ border-color:var(--accent); }
.opis .o-opr .ic3{ font-size:1.1rem; flex:none; }
.opis .o-opr b{ color:var(--ink); }
.opis .o-opr .ld{ color:var(--muted); font-size:.78rem; }
.opis .o-opr .meta3{
  font-family:var(--mono); font-size:.62rem; letter-spacing:.06em; color:var(--muted);
}
.opis .o-opr .zew{ margin-left:auto; font-family:var(--mono); font-size:.66rem;
  color:var(--accent-ink); white-space:nowrap; flex:none; }
.opis .zamknij{
  float:right; font:inherit; font-size:.74rem; cursor:pointer; background:none;
  border:1px solid var(--line-2); border-radius:6px; padding:.08rem .5rem; color:var(--muted);
}
.opis .zamknij:hover{ color:var(--accent-ink); border-color:var(--accent); }
.metric[aria-expanded="true"]{ background:var(--accent-soft); }
.metric.bez{ cursor:default; }
.metric.bez:hover{ background:var(--surface); }
.opis-slot:empty{ display:none; }

/* ---------- raport na sesję ---------- */
.pdf-pasek{
  display:flex; align-items:center; gap:.4rem; margin-bottom:.9rem; flex-wrap:wrap;
  padding:.5rem .7rem; background:var(--surface); border:1px solid var(--line);
  border-radius:10px; box-shadow:var(--shadow);
}
.pdf-info{ font-size:.82rem; color:var(--muted); }
/* kartka jest zawsze jasna (tak drukuje się PDF) — kolory wewnątrz są stałe, nie z tokenów motywu */
.kartka-a4{
  background:#fff; color:#191317; width:min(100%, 52rem); margin:0 auto 1.2rem;
  padding:2.2rem 2.4rem; border:1px solid var(--line); border-radius:6px; box-shadow:var(--shadow-lg);
}
:root[data-theme="ciemny"] .kartka-a4{ background:#fbfafa; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="jasny"]) .kartka-a4{ background:#fbfafa; } }
.kartka-a4 *{ color:inherit; }
.a4-hd{ display:flex; align-items:flex-end; gap:.8rem; border-bottom:2px solid #191317; padding-bottom:.5rem; margin-bottom:1.1rem; }
.a4-hd .marka{ font-family:var(--display); font-weight:700; font-size:1.25rem; letter-spacing:-.02em; }
.a4-hd .kto{ font-size:.85rem; color:#574c53; }
.a4-hd .kiedy{ margin-left:auto; font-family:var(--mono); font-size:.72rem; color:#574c53; text-align:right; }
.a4-h2{
  font-family:var(--mono); font-size:.63rem; letter-spacing:.16em; text-transform:uppercase;
  color:#8a7d84; margin:1.3rem 0 .5rem; padding-bottom:.2rem; border-bottom:1px solid #e3dade;
}
.a4-h2:first-of-type{ margin-top:0; }
.a4-kafle{ display:grid; grid-template-columns:repeat(4,1fr); gap:.6rem; }
.a4-kafel{ border:1px solid #e3dade; border-radius:8px; padding:.5rem .6rem; }
.a4-kafel .l{ font-family:var(--mono); font-size:.55rem; letter-spacing:.1em; text-transform:uppercase; color:#8a7d84; display:block; line-height:1.3; min-height:2.2em; }
.a4-kafel .v{ font-family:var(--display); font-weight:700; font-size:1.35rem; line-height:1.1; display:block; letter-spacing:-.02em; }
.a4-kafel .s{ font-size:.68rem; color:#574c53; display:block; line-height:1.3; margin-top:.1rem; }
.a4-lead{ font-size:.9rem; line-height:1.5; color:#3a3238; background:#f6eaef; border-left:2px solid #a8365f; padding:.6rem .8rem; border-radius:0 6px 6px 0; }
.a4-lead b{ color:#7d2445; }
.a4-kal{ display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.a4-kal .dz{ font-family:var(--mono); font-size:.52rem; color:#8a7d84; text-align:center; padding-bottom:.15rem; }
.a4-kal i{ height:23px; border-radius:3px; position:relative; display:block; }
.a4-kal i b{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family:var(--mono); font-size:.5rem; font-weight:500; color:rgba(25,19,23,.55); }
.a4-leg{ display:flex; gap:.9rem; flex-wrap:wrap; font-size:.66rem; color:#574c53; margin-top:.4rem; }
.a4-leg span{ display:flex; align-items:center; gap:.3rem; }
.a4-leg i{ width:9px; height:9px; border-radius:2px; }
.a4-tor{ display:grid; grid-template-columns:7rem 1fr 7.5rem; gap:.4rem .7rem; align-items:center; padding:.28rem 0; font-size:.78rem; }
.a4-tor .pas{ height:13px; background:#efeaec; border-radius:3px; position:relative; overflow:hidden; }
.a4-tor .pas u{ position:absolute; inset-block:0; left:0; display:block; }
.a4-tor .pas s{ position:absolute; inset-block:0; border-left:1px dashed #8a7d84; }
.a4-tor .lb{ display:flex; align-items:center; gap:.35rem; }
.a4-tor .lb i{ width:8px; height:8px; border-radius:2px; flex:none; }
.a4-tor .rd{ font-family:var(--mono); font-size:.66rem; color:#574c53; text-align:right; }
.a4-dwa{ display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; }
.a4-lin{ display:flex; align-items:baseline; gap:.5rem; font-size:.8rem; padding:.22rem 0; border-bottom:1px solid #f0eaed; }
.a4-lin b{ margin-left:auto; font-family:var(--mono); font-size:.76rem; }
.a4-md{ display:flex; gap:2px; flex-wrap:wrap; margin-bottom:.35rem; }
.a4-md i{ width:11px; height:11px; border-radius:2px; }
.a4-wpis{ font-size:.78rem; color:#3a3238; padding:.2rem 0 .2rem .6rem; border-left:2px solid #cec2c8; margin-bottom:.15rem; line-height:1.4; }
.a4-wpis .d{ font-family:var(--mono); font-size:.6rem; color:#8a7d84; margin-right:.4rem; }
.a4-temat{ display:flex; gap:.6rem; align-items:flex-start; font-size:.85rem; line-height:1.45; padding:.45rem 0; border-bottom:1px solid #f0eaed; }
.a4-temat .nr{ font-family:var(--display); font-weight:700; font-size:1rem; color:#a8365f; flex:none; width:1.2rem; }
.a4-stopka{ margin-top:1.4rem; padding-top:.5rem; border-top:1px solid #e3dade; font-size:.66rem; color:#8a7d84; display:flex; }
.a4-stopka span:last-child{ margin-left:auto; }
.a4-d{ font-family:var(--mono); font-size:.6rem; white-space:nowrap; }
.a4-d.up{ color:#2f8f6b; } .a4-d.dn{ color:#b3382f; } .a4-d.eq{ color:#8a7d84; }
.a4-kafel .por{ display:flex; gap:.45rem; flex-wrap:wrap; margin-top:.2rem; }
.a4-krzywa{ display:flex; align-items:flex-end; gap:3px; height:110px; padding-top:.4rem; position:relative; }
.a4-krzywa .kol{ flex:1; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; height:100%; position:relative; }
.a4-krzywa .kol u{ width:100%; border-radius:3px 3px 0 0; display:block; }
.a4-krzywa .kol b{ font-family:var(--mono); font-size:.55rem; color:#574c53; margin-bottom:2px; }
.a4-krzywa .kol .ses{ position:absolute; top:-.55rem; font-size:.6rem; color:#a8365f; }
.a4-krzywa .kol.teraz u{ outline:1.5px solid #191317; outline-offset:1px; }
.a4-osx{ display:flex; gap:3px; margin-top:.2rem; }
.a4-osx span{ flex:1; text-align:center; font-family:var(--mono); font-size:.52rem; color:#8a7d84; }
.a4-profil{ display:flex; gap:2px; height:74px; align-items:flex-end; }
.a4-profil .g{ flex:1; height:100%; display:flex; flex-direction:column-reverse; border-radius:2px; overflow:hidden; }
.a4-profil .g i{ display:block; width:100%; }
.a4-analityk{
  border:1px solid #cec2c8; border-radius:8px; padding:.7rem .85rem; background:#faf7f8;
}
.a4-analityk .hd2{ display:flex; align-items:center; gap:.45rem; margin-bottom:.4rem; }
.a4-analityk .hd2 .tag{
  font-family:var(--mono); font-size:.55rem; letter-spacing:.1em; text-transform:uppercase;
  color:#7d2445; background:#f6eaef; border-radius:4px; padding:.1rem .35rem;
}
.a4-analityk p{ font-size:.82rem; line-height:1.5; color:#3a3238; margin-bottom:.4rem; }
.a4-analityk p:last-child{ margin-bottom:0; }
.a4-ust{ display:grid; grid-template-columns:auto 1fr auto; gap:.5rem .7rem; align-items:baseline;
  padding:.5rem 0; border-bottom:1px solid #f0eaed; font-size:.84rem; }
.a4-ust .zn{ font-size:.9rem; }
.a4-ust .ef{ font-family:var(--mono); font-size:.66rem; color:#574c53; text-align:right; }
.a4-ust .dt{ grid-column:2; font-family:var(--mono); font-size:.6rem; color:#8a7d84; margin-top:-.25rem; }
.a4-duze{ font-family:var(--display); font-size:1.15rem; line-height:1.45; letter-spacing:-.01em; color:#191317; }
.a4-box{ border:1px solid #e3dade; border-radius:8px; padding:.7rem .85rem; }

@media print{
  @page{ size:A4; margin:12mm; }
  body{ background:#fff; padding:0 !important; }
  .drawer, .drawer-bg, .userbar, #tytulPasek, footer, .pdf-pasek, .burger, .tabbar, .toasty, .sheet-tlo{ display:none !important; }
  .page{ width:auto; max-width:none; padding:0; }
  .widok{ min-height:0; }
  .kartka-a4{ width:auto; margin:0; padding:0; border:0; border-radius:0; box-shadow:none;
              page-break-after:always; break-after:page; }
  .kartka-a4:last-child{ page-break-after:auto; break-after:auto; }
  /* przy zoom 1 kartka „Plan wobec wykonania” wychodzi o kilka wierszy poza A4 (PDF ma 8 stron zamiast 7) */
  .pdf-arkusz .kartka-a4{ zoom:.92; }
  .a4-h2, .a4-tor, .a4-temat, .a4-wpis{ break-inside:avoid; }
}

/* ---------- onboarding (8 kroków) ---------- */
.onb{ max-width:52rem; margin:0 auto; }
.onb-pasek{ display:flex; gap:3px; margin-bottom:1.1rem; }
.onb-pasek i{ flex:1; height:3px; border-radius:2px; background:var(--sunken); position:relative; }
.onb-pasek i.zrobiony{ background:var(--accent); }
.onb-pasek i.teraz{ background:var(--accent); box-shadow:0 0 0 2px var(--accent-soft); }
.onb-scena{
  background:var(--surface); border:1px solid var(--line); border-radius:14px;
  padding:1.5rem 1.6rem; box-shadow:var(--shadow-lg); min-height:22rem;
}
.onb-scena .eyebrow{ display:block; margin-bottom:.35rem; }
.onb-scena h2{ font-family:var(--display); font-size:1.6rem; letter-spacing:-.02em; margin-bottom:.4rem; }
.onb-scena .lead{ font-size:.95rem; color:var(--ink-2); line-height:1.5; max-width:38rem; }
.onb-scena .nota{ font-size:.82rem; color:var(--muted); line-height:1.45; margin-top:.9rem; }
.onb-stopka{ display:flex; align-items:center; gap:.5rem; margin-top:1rem; }
.onb-lic{ font-family:var(--mono); font-size:.7rem; color:var(--muted); }
.onb-blok{ margin-top:1.2rem; }
.onb-blok + .onb-blok{ margin-top:1.1rem; }
.onb-suwak{ display:flex; align-items:center; gap:.8rem; }
.onb-suwak input[type=range]{ flex:1; }
.onb-suwak .wart{
  font-family:var(--display); font-weight:700; font-size:1.5rem; min-width:5.5rem;
  text-align:right; font-variant-numeric:tabular-nums; letter-spacing:-.02em;
}
.onb-przel{
  display:flex; align-items:center; gap:.6rem; padding:.55rem .7rem;
  border:1px solid var(--line); border-radius:10px; background:var(--surface-2);
}
.onb-przel .tt{ font-weight:600; font-size:.9rem; }
.onb-przel .ds{ font-size:.78rem; color:var(--muted); }
.onb-karty{ display:grid; grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr)); gap:.5rem; margin-top:.7rem; }
.onb-karta{
  font:inherit; cursor:pointer; text-align:left; display:flex; align-items:center; gap:.45rem;
  background:var(--surface); border:1px solid var(--line-2); border-radius:10px;
  padding:.55rem .65rem; color:var(--ink); font-size:.86rem;
}
.onb-karta:hover{ border-color:var(--accent); }
.onb-karta[aria-pressed="true"]{ border-color:var(--accent); background:var(--accent-soft); font-weight:600; }
.onb-karta .em{ font-size:1.05rem; }
.onb-karta .zn{ margin-left:auto; color:var(--accent-ink); font-size:.8rem; }
.onb-podsum{ display:grid; gap:.5rem; margin-top:1rem; }
.onb-pod-row{
  display:flex; align-items:baseline; gap:.6rem; font-size:.88rem;
  padding:.35rem 0; border-bottom:1px solid var(--line);
}
.onb-pod-row b{ margin-left:auto; font-family:var(--mono); font-size:.85rem; }
.onb-blad{ font-size:.82rem; color:var(--alarm); margin-top:.5rem; }
/* przełącznik z makiety (aria-pressed); .przelacznik (aria-checked, role=switch) z v1 zostaje równolegle */
.switch{
  font:inherit; cursor:pointer; margin-left:auto; flex:none;
  width:38px; height:21px; border-radius:11px; border:1px solid var(--line-2);
  background:var(--sunken); position:relative; transition:background .15s,border-color .15s; padding:0;
}
.switch::after{
  content:''; position:absolute; top:2px; left:2px; width:15px; height:15px; border-radius:50%;
  background:var(--surface); box-shadow:var(--shadow); transition:transform .15s;
}
.switch::before{ content:''; position:absolute; inset:-12px -8px; }   /* pole dotyku ≥ 44 px, wygląd bez zmian */
.switch[aria-pressed="true"]{ background:var(--accent); border-color:var(--accent); }
.switch[aria-pressed="true"]::after{ transform:translateX(17px); }

/* ---------- menu ---------- */
.appbar{
  display:flex; flex-wrap:wrap; align-items:center; gap:.45rem .8rem; padding:.4rem 0 .55rem;
  border-bottom:1px solid var(--line); margin-bottom:.8rem;
}
#tytulPasek h1{ font-size:clamp(1.05rem,2vw,1.3rem); }
#tytulPasek .eyebrow{ font-size:.6rem; }
.burger{
  font:inherit; cursor:pointer; background:var(--surface); color:var(--ink);
  border:1px solid var(--line-2); border-radius:9px; padding:.4rem .6rem;
  display:flex; flex-direction:column; gap:3px; line-height:0;
}
.burger i{ display:block; width:16px; height:1.5px; background:currentColor; border-radius:1px; }
.burger:hover{ border-color:var(--accent); color:var(--accent-ink); }
.appbar .spacer{ flex:1; }

.drawer-bg{
  position:fixed; inset:0; background:rgba(20,16,19,.4); backdrop-filter:blur(2px);
  opacity:0; pointer-events:none; transition:opacity .18s; z-index:40;
}
.drawer-bg.on{ opacity:1; pointer-events:auto; }
.drawer{
  position:fixed; top:0; left:0; bottom:0; width:min(15rem, 84vw); z-index:41;
  background:var(--surface); border-right:1px solid var(--line); box-shadow:var(--shadow-lg);
  transform:translateX(-102%); transition:transform .2s cubic-bezier(.2,.7,.3,1);
  display:flex; flex-direction:column; padding:.85rem .8rem; overflow-y:auto;   /* gęsty drawer (v2): 13 pozycji + biblioteka */
}
.drawer.on{ transform:none; }
.drawer .d-brand{ display:flex; align-items:center; gap:.5rem; margin-bottom:.7rem; flex:none; }
.drawer .d-brand b{ font-family:var(--display); font-size:.98rem; }
.drawer .d-brand small{ display:block; color:var(--muted); font-size:.75rem; font-weight:400; }
.drawer nav{ display:flex; flex-direction:column; gap:0; }
.drawer nav button{
  font:inherit; font-size:.83rem; text-align:left; cursor:pointer;
  background:none; border:0; border-radius:6px; padding:.26rem .5rem; color:var(--ink-2);
  display:flex; align-items:center; gap:.5rem; line-height:1.35;
}
.drawer nav button span{ font-size:.88rem; width:1.05rem; text-align:center; flex:none; }
.drawer nav .grupa{
  font-family:var(--mono); font-size:.56rem; letter-spacing:.13em; text-transform:uppercase;
  color:var(--muted); margin:.6rem 0 .15rem .5rem;
}
.drawer nav .grupa:first-child{ margin-top:0; }
.drawer nav button:hover{ background:var(--surface-2); color:var(--ink); }
.drawer nav button[aria-current="page"]{ background:var(--accent-soft); color:var(--accent-ink); font-weight:600; }
.drawer nav button.soon{ opacity:.45; cursor:default; }
.drawer nav button.soon:hover{ background:none; color:var(--ink-2); }
.drawer .d-foot{ margin-top:auto; padding-top:.7rem; border-top:1px solid var(--line);
  font-size:.72rem; color:var(--muted); flex:none; }

/* ---------- nagłówek dnia ---------- */
.daynav{ display:flex; gap:.35rem; }
.daynav button{
  font:inherit; font-size:.82rem; cursor:pointer; color:var(--ink-2);
  background:var(--surface); border:1px solid var(--line-2); border-radius:7px; padding:.32rem .7rem;
}
.daynav button:hover{ border-color:var(--accent); color:var(--accent-ink); }
.daynav button[aria-pressed="true"]{ background:var(--accent); border-color:var(--accent); color:#fff; }
:root[data-theme="ciemny"] .daynav button[aria-pressed="true"],
:root:not([data-theme="jasny"]) .daynav button[aria-pressed="true"]{ color:#1a1013; }

.verdict{
  display:flex; gap:.75rem; align-items:flex-start; background:var(--accent-soft);
  border-left:2px solid var(--accent); border-radius:0 9px 9px 0;
  padding:.6rem .95rem; margin-bottom:.8rem; font-size:.92rem; color:var(--ink-2);
}
.verdict b{ color:var(--accent-ink); font-weight:600; }
.verdict .ic{ font-size:1.05rem; line-height:1.4; flex:none; }

/* ---------- wskaźniki ---------- */
.metrics{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(8.4rem,1fr)); gap:1px;
  background:var(--line); border:1px solid var(--line); border-radius:12px;
  box-shadow:var(--shadow); margin-bottom:.85rem;
}
.metric:first-child{ border-radius:11px 0 0 11px; }
.metric:last-child{ border-radius:0 11px 11px 0; }
@media (max-width:900px){ .metric:first-child, .metric:last-child{ border-radius:0; } }
.metric{ background:var(--surface); padding:.6rem .85rem .7rem; }
.metric .lbl{ font-family:var(--mono); font-size:.63rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--muted); display:block; line-height:1.25; min-height:1.6em; }   /* dwuwierszowe etykiety („Mistrzowskie decyzje”) wyrównują liczby */
.metric .val{ font-family:var(--display); font-weight:700; font-size:1.6rem; line-height:1.08; display:block; margin-top:.08rem; font-variant-numeric:tabular-nums; letter-spacing:-.025em; }
.metric .sub{ font-size:.73rem; color:var(--muted); display:block; margin-top:.08rem; line-height:1.3; }
/* pasek 4 px; flex + gap, bo bywa dzielony na segmenty (Plan wykonany, Zadania) */
.metric .bar{ height:4px; background:var(--sunken); border-radius:2px; margin-top:.4rem; overflow:hidden; display:flex; gap:1px; }
.metric .bar i{ display:block; height:100%; border-radius:2px; }

.section{ margin-bottom:.75rem; }
.sec-head{ display:flex; flex-wrap:wrap; align-items:baseline; gap:.25rem .9rem; margin-bottom:.35rem; }
.sec-head .hint{ font-size:.8rem; color:var(--muted); margin-left:auto; }
.card{ background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:.8rem .95rem; box-shadow:var(--shadow); }

/* ---------- budżet doby ---------- */
.budget{ display:flex; height:30px; border-radius:7px; overflow:hidden; border:1px solid var(--line); background:var(--sunken); }
.budget div{
  display:flex; align-items:center; justify-content:center; font-family:var(--mono);
  font-size:.7rem; font-weight:500; color:var(--budget-tekst); text-shadow:0 1px 1px rgba(0,0,0,.25);
  overflow:hidden; white-space:nowrap; min-width:0;
}
.budget-legend{ display:flex; flex-wrap:wrap; gap:.3rem 1.1rem; margin-top:.45rem; font-size:.76rem; color:var(--muted); }
.budget-legend span{ display:flex; align-items:center; gap:.4rem; }
.sw{ width:11px; height:11px; border-radius:3px; flex:none; }

/* ---------- kafelki ---------- */
.group-label{ font-family:var(--mono); font-size:.63rem; letter-spacing:.13em; text-transform:uppercase; color:var(--muted); margin:.1rem 0 .4rem; }
.group-label:not(:first-child){ margin-top:.75rem; }
.tiles{ display:grid; grid-template-columns:repeat(auto-fit,minmax(9.6rem,1fr)); gap:.45rem; }
.tile{ border:1px solid var(--line); border-radius:10px; padding:.5rem .65rem; background:var(--surface-2);
       display:flex; flex-direction:column; gap:.1rem; border-left:3px solid var(--c); }
.tile .t-name{ display:flex; align-items:center; gap:.35rem; font-size:.82rem; color:var(--ink-2); }
.tile .t-val{ font-family:var(--display); font-weight:700; font-size:1.3rem; line-height:1.15; font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
.tile .t-plan{ font-family:var(--mono); font-size:.68rem; color:var(--muted); }
.tile .t-delta{ font-family:var(--mono); font-size:.68rem; margin-top:.15rem; }
.t-delta.over{ color:var(--over); } .t-delta.under{ color:var(--praca); }
.t-delta.ok{ color:var(--good); } .t-delta.miss{ color:var(--alarm); }
.tile .t-bar{ height:3px; background:var(--sunken); border-radius:2px; margin-top:.4rem; overflow:hidden; position:relative; }
.tile .t-bar i{ display:block; height:100%; border-radius:2px; background:var(--c); }

/* ---------- oś doby ---------- */
.tl-slots{ display:flex; gap:1px; height:36px; border-radius:6px; overflow:hidden; background:var(--sunken); }
.tl-slots i{ flex:1 0 auto; min-width:0; }
.tl-hours{ display:flex; margin-top:.3rem; }
.tl-hours span{ flex:1 0 auto; font-family:var(--mono); font-size:.62rem; color:var(--muted);
                border-left:1px solid var(--line-2); padding-left:.2rem; line-height:1; }
.tl-hours span:first-child{ border-left:0; padding-left:0; }
.legend{ display:flex; flex-wrap:wrap; gap:.3rem .95rem; margin-top:.6rem; font-size:.75rem; color:var(--muted); }
.legend span{ display:flex; align-items:center; gap:.35rem; }

/* ---------- plan / wykonanie ---------- */
.track{ display:grid; grid-template-columns:8rem 1fr; gap:.3rem .9rem; align-items:center; padding:.45rem 0; border-bottom:1px solid var(--line); }
.track:last-child{ border-bottom:0; }
.track-name{ display:flex; align-items:center; gap:.4rem; font-size:.88rem; font-weight:500; }
.track-bar{ position:relative; height:20px; background:var(--sunken); border-radius:5px; overflow:hidden; }
.plan-frame{ position:absolute; inset-block:0; left:0; border:1.5px dashed var(--line-2); border-radius:5px; }
.fill-match,.fill-over,.fill-gap{ position:absolute; inset-block:3px; border-radius:3px; }
.fill-match{ left:0; }
.fill-over{ background:var(--over); }
.fill-gap{ background:repeating-linear-gradient(135deg,var(--praca) 0 2px,transparent 2px 6px); opacity:.45; }
.track-read{ grid-column:2; display:flex; flex-wrap:wrap; gap:.25rem .85rem; font-family:var(--mono); font-size:.71rem; color:var(--muted); }
.track-read .d.over{ color:var(--over); } .track-read .d.under{ color:var(--praca); } .track-read .d.ok{ color:var(--good); }
.dot{ width:8px; height:8px; border-radius:2px; flex:none; }

/* ---------- harmonogram ---------- */
.hm-days{ display:flex; flex-wrap:wrap; gap:.4rem; }
.hm-day{
  font:inherit; font-size:.86rem; cursor:pointer; min-width:3.1rem; text-align:center;
  background:var(--surface); color:var(--ink-2); border:1px solid var(--line-2);
  border-radius:9px; padding:.4rem .5rem; line-height:1.2;
}
.hm-day small{ display:block; font-family:var(--mono); font-size:.6rem; color:var(--muted); margin-top:.1rem; }
.hm-day:hover{ border-color:var(--accent); }
.hm-day[aria-pressed="true"]{ background:var(--accent); border-color:var(--accent); color:#fff; }
.hm-day[aria-pressed="true"] small{ color:rgba(255,255,255,.75); }
:root[data-theme="ciemny"] .hm-day[aria-pressed="true"], :root:not([data-theme="jasny"]) .hm-day[aria-pressed="true"]{ color:#1a1013; }
:root[data-theme="ciemny"] .hm-day[aria-pressed="true"] small, :root:not([data-theme="jasny"]) .hm-day[aria-pressed="true"] small{ color:rgba(26,16,19,.7); }

.hm-quick{ display:flex; flex-wrap:wrap; gap:.35rem; align-items:center; margin-top:.6rem; }
.hm-quick span{ font-family:var(--mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-right:.2rem; }
.hm-quick button{
  font:inherit; font-size:.78rem; cursor:pointer; background:var(--surface-2); color:var(--ink-2);
  border:1px solid var(--line); border-radius:999px; padding:.2rem .65rem;
}
.hm-quick button:hover{ border-color:var(--accent); color:var(--accent-ink); }

.hm-block{ display:grid; grid-template-columns:9rem 1fr 5rem auto; gap:.6rem; align-items:center; padding:.4rem 0; border-bottom:1px solid var(--line); }
.hm-block:last-of-type{ border-bottom:0; }
.hm-block .nm{ display:flex; align-items:center; gap:.4rem; font-size:.88rem; }
.hm-block .mn{ font-family:var(--mono); font-size:.78rem; text-align:right; color:var(--ink); }
.hm-block .del{ font:inherit; font-size:.8rem; cursor:pointer; background:none; border:0; color:var(--muted); padding:0 .2rem; }
.hm-block .del:hover{ color:var(--alarm); }
.hm-block .lock{ font-family:var(--mono); font-size:.62rem; color:var(--muted); border:1px solid var(--line-2); border-radius:4px; padding:.05rem .35rem; }

.hm-free{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:.5rem 1rem; margin-top:.9rem;
  padding-top:.8rem; border-top:1px solid var(--line); font-size:.88rem; color:var(--ink-2);
}
.hm-free b{ font-family:var(--display); font-size:1.35rem; color:var(--accent-ink); }
.hm-add{ display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.8rem; align-items:center; }
.hm-add span{ font-size:.78rem; color:var(--muted); margin-right:.2rem; }
.hm-add button{
  font:inherit; font-size:.78rem; cursor:pointer; background:var(--surface-2); color:var(--ink-2);
  border:1px dashed var(--line-2); border-radius:8px; padding:.22rem .6rem;
}
.hm-add button:hover{ border-color:var(--accent); color:var(--accent-ink); border-style:solid; }

.hm-preview{ display:flex; flex-direction:column; gap:.3rem; margin-top:.2rem; }
.hm-prow{ display:grid; grid-template-columns:2.6rem 1fr 4.6rem; gap:.6rem; align-items:center; font-size:.8rem; }
.hm-prow .pd{ font-family:var(--mono); color:var(--muted); }
.hm-pbar{ display:flex; height:16px; border-radius:4px; overflow:hidden; background:var(--sunken); }
.hm-pbar i{ height:100%; }
.hm-prow .pf{ font-family:var(--mono); font-size:.76rem; text-align:right; color:var(--accent-ink); font-weight:600; }

/* ---------- formularz bloku ---------- */
.hm-form{
  background:var(--surface-2); border:1px solid var(--line); border-radius:11px;
  padding:.9rem 1rem; margin-top:.8rem;
}
.hm-form .fr{ display:grid; grid-template-columns:6.2rem 1fr; gap:.5rem .7rem; align-items:center; margin-bottom:.5rem; }
.hm-form label{ font-size:.8rem; color:var(--muted); }
.hm-form input[type=text]{
  font:inherit; font-size:.88rem; color:var(--ink); background:var(--surface);
  border:1px solid var(--line-2); border-radius:7px; padding:.32rem .55rem; width:100%;
}
.hm-form input[type=text]:focus{ outline:2px solid var(--accent); outline-offset:-1px; }
.emo{ display:flex; flex-wrap:wrap; gap:.25rem; }
.emo button{
  font-size:1rem; line-height:1; cursor:pointer; background:var(--surface);
  border:1px solid var(--line-2); border-radius:7px; padding:.24rem .34rem;
}
.emo button[aria-pressed="true"]{ border-color:var(--accent); background:var(--accent-soft); }
.seg{ display:flex; flex-wrap:wrap; gap:.25rem; }
.seg button{
  font:inherit; font-size:.78rem; cursor:pointer; background:var(--surface); color:var(--ink-2);
  border:1px solid var(--line-2); border-radius:7px; padding:.24rem .6rem;
}
.seg button[aria-pressed="true"]{ background:var(--accent); border-color:var(--accent); color:#fff; }
:root[data-theme="ciemny"] .seg button[aria-pressed="true"], :root:not([data-theme="jasny"]) .seg button[aria-pressed="true"]{ color:#1a1013; }
/* v4: pasek zakładek panelu /admin — linki stylizowane jak przyciski segmentu */
.seg.admin-glowne{ margin:.2rem 0 .9rem; }
.seg.admin-glowne a{
  font:inherit; font-size:.78rem; text-decoration:none; background:var(--surface); color:var(--ink-2);
  border:1px solid var(--line-2); border-radius:7px; padding:.24rem .6rem; white-space:nowrap;
}
.seg.admin-glowne a[aria-pressed="true"]{ background:var(--accent); border-color:var(--accent); color:#fff; }
:root[data-theme="ciemny"] .seg.admin-glowne a[aria-pressed="true"], :root:not([data-theme="jasny"]) .seg.admin-glowne a[aria-pressed="true"]{ color:#1a1013; }
.admin-tresc > section + section{ margin-top:1rem; }
/* 0.6.1: wiersz „razem” (tfoot) w tabelach zestawienia — wyraźnie podsumowanie: podwójna linia, tło, pogrubienie, etykieta */
.admin-tabela tfoot td{ border-top:3px double var(--line-2); border-bottom:1px solid var(--line-2); background:var(--accent-soft); padding-top:.65rem; padding-bottom:.65rem; font-weight:600; }
.admin-tabela tfoot td.nazwa{ position:relative; }
.admin-tabela tfoot td.nazwa::before{ content:'podsumowanie'; display:block; font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-ink, var(--accent)); font-weight:600; margin-bottom:.1rem; }
.admin-tabela tfoot td small{ display:block; font-weight:400; color:var(--muted); margin-top:.2rem; }
/* v5: przewodnik „?” w appbarze — okrągły przycisk po prawej, nie rusza układu tytułu */
.appbar{ position:relative; padding-right:3rem; }
.appbar .pomoc-btn{ position:absolute; right:.2rem; top:50%; transform:translateY(-50%); width:36px; height:36px; padding:0; border-radius:999px; font-weight:700; font-size:1rem; line-height:1; }
.appbar:empty .pomoc-btn, .appbar[hidden] .pomoc-btn{ display:none; }
/* 0.4.1: „Agenci ▾” obok imienia — menu z trzema rolami, zawsze w tym samym miejscu (SPEC-v6 §2.5) */
.agenci{ position:relative; margin-left:.4rem; }
.agenci-btn{ white-space:nowrap; font-size:.8rem; padding:.3rem .6rem; }
.agenci-menu{ position:absolute; right:0; top:calc(100% + .3rem); z-index:40; min-width:15rem; background:var(--surface); border:1px solid var(--line-2); border-radius:10px; box-shadow:0 10px 30px rgba(0,0,0,.14); padding:.3rem; display:flex; flex-direction:column; gap:.1rem; }
.agenci-menu button{ display:flex; align-items:baseline; gap:.4rem; width:100%; text-align:left; font:inherit; font-size:.86rem; background:none; border:0; border-radius:7px; padding:.45rem .6rem; color:var(--ink); cursor:pointer; }
.agenci-menu button:hover, .agenci-menu button:focus-visible{ background:var(--accent-soft); outline:none; }
.agenci-menu button small{ margin-left:auto; color:var(--muted); font-size:.72rem; white-space:nowrap; }
@media (max-width:560px){ .agenci-btn span{ display:none; } .agenci-menu{ min-width:13rem; } .agenci-menu button small{ display:none; } }
.hm-form .akcje{ display:flex; gap:.4rem; margin-top:.7rem; }
.btn-main{
  font:inherit; font-size:.82rem; cursor:pointer; background:var(--accent); color:#fff;
  border:1px solid var(--accent); border-radius:8px; padding:.32rem .8rem; font-weight:500;
}
:root[data-theme="ciemny"] .btn-main, :root:not([data-theme="jasny"]) .btn-main{ color:#1a1013; }
.btn-main:disabled{ opacity:.45; cursor:default; }

.rzadkie{ display:flex; flex-direction:column; gap:.4rem; }
.rz-row{
  display:grid; grid-template-columns:auto 1fr auto auto; gap:.6rem; align-items:center;
  padding:.45rem .6rem; background:var(--surface-2); border:1px solid var(--line);
  border-left:3px solid var(--c); border-radius:9px; font-size:.86rem;
}
.rz-row .kiedy{ font-family:var(--mono); font-size:.72rem; color:var(--muted); }
.rz-row .czas{ font-family:var(--mono); font-size:.78rem; color:var(--ink); }

/* ---------- widok tygodnia ---------- */
.wk-row{
  display:grid; grid-template-columns:3.4rem 1fr 4.2rem; gap:.7rem; align-items:center;
  padding:.4rem 0; cursor:pointer; border-radius:8px;
}
.wk-row:hover{ background:var(--surface-2); }
.wk-row .wk-day{ font-size:.85rem; color:var(--ink-2); }
.wk-row .wk-day small{ display:block; font-family:var(--mono); font-size:.6rem; color:var(--muted); }
.wk-bar{ display:flex; gap:1px; height:22px; border-radius:4px; overflow:hidden; background:var(--sunken); }
.wk-bar i{ flex:1 0 auto; min-width:0; }
.wk-val{ font-family:var(--mono); font-size:.8rem; text-align:right; font-weight:600; }

.wk-trend{ display:flex; align-items:flex-end; gap:.5rem; height:120px; padding-top:.5rem; }
.wk-col{ flex:1; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; gap:.3rem; min-width:0; }
.wk-col .kol{ width:100%; border-radius:4px 4px 0 0; background:var(--c); position:relative; }
.wk-col .kol b{
  position:absolute; top:-1.05rem; left:0; right:0; text-align:center;
  font-family:var(--mono); font-size:.66rem; color:var(--ink-2); font-weight:600;
}
.wk-col .pod{ font-family:var(--mono); font-size:.66rem; color:var(--muted); }
.wk-goal{ position:relative; height:0; }
.wk-goal i{ position:absolute; left:0; right:0; border-top:1px dashed var(--line-2); }
.wk-goal span{ position:absolute; right:0; top:-.9rem; font-family:var(--mono); font-size:.6rem; color:var(--muted); }

/* ---------- moje obszary ---------- */
.ob-row{
  display:grid; grid-template-columns:1.7rem auto 1fr auto auto auto; gap:.6rem;
  align-items:center; padding:.55rem 0; border-bottom:1px solid var(--line);
}
.ob-row:last-of-type{ border-bottom:0; }
.ob-poz{ font-family:var(--mono); font-size:.8rem; color:var(--accent); font-weight:600; text-align:center; }
.ob-mv{ display:flex; flex-direction:column; gap:2px; }
.ob-mv button{
  font:inherit; font-size:.58rem; line-height:1; cursor:pointer; padding:.14rem .28rem;
  border:1px solid var(--line-2); background:var(--surface); color:var(--ink-2); border-radius:3px;
}
.ob-mv button:hover:not(:disabled){ border-color:var(--accent); color:var(--accent-ink); }
.ob-mv button:disabled{ opacity:.3; cursor:default; }
.ob-nazwa{ display:flex; align-items:center; gap:.45rem; font-size:.92rem; }
.ob-zet{ font-family:var(--mono); font-size:.8rem; color:var(--ink); white-space:nowrap; }
.ob-godz{ font-family:var(--mono); font-size:.74rem; color:var(--muted); white-space:nowrap; min-width:8.5rem; text-align:right; }
.ob-del{ font:inherit; font-size:.8rem; cursor:pointer; background:none; border:0; color:var(--line-2); padding:0 .2rem; }
.ob-del:hover{ color:var(--alarm); }

.krzywa{ display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; margin-bottom:1rem; }
.krzywa .lbl2{ font-family:var(--mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.krzywa button{
  font:inherit; font-size:.79rem; cursor:pointer; background:var(--surface); color:var(--ink-2);
  border:1px solid var(--line-2); border-radius:7px; padding:.24rem .6rem;
}
.krzywa button[aria-pressed="true"]{ background:var(--accent-soft); border-color:var(--accent); color:var(--accent-ink); font-weight:500; }

/* ---------- rok ---------- */
.rok{ display:grid; grid-template-columns:repeat(auto-fit,minmax(11rem,1fr)); gap:.9rem; }
.rok-m{ border:1px solid var(--line); border-radius:10px; padding:.6rem .7rem; background:var(--surface); cursor:pointer; }
.rok-m:hover{ border-color:var(--accent); }
.rok-m .hd{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:.4rem; }
.rok-m .nm{ font-size:.85rem; font-weight:600; }
.rok-m .vl{ font-family:var(--mono); font-size:.8rem; font-weight:600; }
.rok-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.rok-grid i{ aspect-ratio:1; border-radius:2px; background:var(--sunken); }
.rok-m .sub2{ font-size:.68rem; color:var(--muted); margin-top:.4rem; }

/* ---------- ustawienia ---------- */
.set-row{
  display:grid; grid-template-columns:auto 1fr auto; gap:.8rem; align-items:center;
  padding:.7rem 0; border-bottom:1px solid var(--line);
}
.set-row:last-child{ border-bottom:0; }
.set-row .ic2{ font-size:1.2rem; }
.set-row .tt{ font-size:.9rem; font-weight:500; }
.set-row .ds{ font-size:.78rem; color:var(--muted); }
.pill-on{ font-family:var(--mono); font-size:.68rem; color:var(--good); border:1px solid currentColor; border-radius:999px; padding:.1rem .5rem; }
.pill-off{ font-family:var(--mono); font-size:.68rem; color:var(--muted); border:1px solid var(--line-2); border-radius:999px; padding:.1rem .5rem; }

/* ---------- strzałki nawigacji ---------- */
.nawi{ display:flex; align-items:center; gap:.2rem; }
.nawi button{
  font:inherit; font-size:.9rem; line-height:1; cursor:pointer; color:var(--ink-2);
  background:var(--surface); border:1px solid var(--line-2); border-radius:7px;
  padding:.3rem .55rem;
}
.nawi button:hover{ border-color:var(--accent); color:var(--accent-ink); }
.nawi .dzis{ font-size:.78rem; padding:.3rem .6rem; }

/* ---------- decyzje i rytuały ---------- */
.md30{ display:flex; flex-wrap:wrap; gap:3px; }
.md30 i{ width:15px; height:15px; border-radius:3px; flex:none; }
.md30 i.wyk{ background:var(--good); }
.md30 i.nie{ background:var(--alarm); }
.md30 i.pom{ background:var(--sunken); border:1px solid var(--line-2); }
.md-leg{ display:flex; flex-wrap:wrap; gap:.4rem 1rem; margin-top:.7rem; font-size:.75rem; color:var(--muted); }
.md-leg span{ display:flex; align-items:center; gap:.35rem; }
.md-leg i{ width:11px; height:11px; border-radius:3px; }
.md-sum{ display:flex; flex-wrap:wrap; gap:.5rem 1.6rem; margin-top:.9rem; padding-top:.8rem; border-top:1px solid var(--line); }
.md-sum div{ font-size:.8rem; color:var(--muted); }
.md-sum b{ display:block; font-family:var(--display); font-size:1.35rem; font-weight:700; color:var(--ink); line-height:1.1; }

/* ---------- widok miesiąca ---------- */
.cal{ display:grid; grid-template-columns:repeat(7,1fr); gap:.35rem; }
.cal-hd{
  font-family:var(--mono); font-size:.62rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--muted); text-align:center; padding-bottom:.2rem;
}
.cal-cell{
  aspect-ratio:1/.92; border:1px solid var(--line); border-radius:9px; padding:.3rem .35rem;
  display:flex; flex-direction:column; gap:.15rem; background:var(--surface); cursor:pointer;
  position:relative; overflow:hidden; min-height:3.6rem;
}
.cal-cell:hover{ border-color:var(--accent); }
.cal-cell.pusta{ background:transparent; border-color:transparent; cursor:default; }
.cal-cell.dzis{ box-shadow:inset 0 0 0 1.5px var(--accent); }
.cal-cell .nr{ font-family:var(--mono); font-size:.68rem; color:var(--muted); }
.cal-cell .snr{ font-family:var(--display); font-weight:700; font-size:1rem; line-height:1; letter-spacing:-.02em; }
.cal-cell .pas{ display:flex; gap:1px; height:5px; border-radius:3px; overflow:hidden; margin-top:auto; background:var(--sunken); }
.cal-cell .pas i{ flex:1 0 auto; }
.cal-cell .evs{ display:flex; gap:.15rem; font-size:.62rem; line-height:1; }
.cal-cell.wolne .nr{ color:var(--accent-ink); }

.mo-legend{ display:flex; flex-wrap:wrap; gap:.4rem 1rem; margin-top:.8rem; font-size:.74rem; color:var(--muted); }
.mo-legend i{ width:11px; height:11px; border-radius:3px; }

.ev-row{
  display:grid; grid-template-columns:3.6rem auto 1fr auto auto; gap:.6rem; align-items:center;
  padding:.45rem .6rem; background:var(--surface-2); border:1px solid var(--line);
  border-left:3px solid var(--c); border-radius:9px; font-size:.86rem;
}
.ev-row .data{ font-family:var(--mono); font-size:.74rem; color:var(--accent-ink); font-weight:600; }
.ev-row .kiedy{ font-family:var(--mono); font-size:.72rem; color:var(--muted); }
.ev-row .czas{ font-family:var(--mono); font-size:.78rem; }

/* ---------- karta dnia ---------- */
.dwa{ display:grid; grid-template-columns:1fr 1fr; gap:.7rem; align-items:start; }
@media (max-width:760px){ .dwa{ grid-template-columns:1fr; } }
.mini-hd{ font-size:.78rem; font-weight:500; color:var(--ink-2); margin:.65rem 0 .3rem; }
.mini-hd:first-of-type{ margin-top:0; }
details.zwij > summary{
  cursor:pointer; list-style:none; display:flex; align-items:baseline; gap:.5rem;
  font-size:.88rem; font-weight:600;
}
details.zwij > summary::-webkit-details-marker{ display:none; }
details.zwij > summary::after{ content:'▾'; margin-left:auto; color:var(--muted); font-size:.75rem; }
details.zwij[open] > summary::after{ content:'▴'; }
.ryt-row{ display:flex; align-items:center; gap:.5rem; font-size:.82rem; padding:.2rem 0; }
.ryt-row .zn{ font-size:.9rem; }
.md7{ display:flex; gap:3px; margin-top:.4rem; }
.md7 i{ flex:1; height:14px; border-radius:3px; }
.karta{ display:grid; grid-template-columns:14rem minmax(0,1fr) 15.5rem; gap:.7rem; align-items:start; }
/* przy węższym ekranie obie kolumny boczne idą na lewo, jedna pod drugą,
   a środek rozciąga się na oba wiersze — inaczej prawa szpalta spadała pod całość */
@media (max-width:1240px){
  .karta{ grid-template-columns:14rem minmax(0,1fr); }
  .karta > div:nth-child(2){ grid-row:1 / span 2; grid-column:2; }
  .karta > div:nth-child(3){ grid-row:2; grid-column:1; }
}
@media (max-width:1080px){
  .karta{ grid-template-columns:minmax(0,1fr); }   /* minmax(0,…): goły 1fr = minmax(auto,1fr) i szeroka treść (paleta nowrap) rozpychała kolumnę poza ekran */
  .karta > div:nth-child(2), .karta > div:nth-child(3){ grid-row:auto; grid-column:auto; }
}
.kol-bok{ display:flex; flex-direction:column; gap:.7rem; position:sticky; top:.6rem; }
@media (max-width:1080px){ .kol-bok{ position:static; } }

/* siatka doby: 12 wierszy po 12 kwadracików = 144 pola */
.doba{ display:grid; grid-template-columns:repeat(24,1fr); gap:3px; }
.doba-godz{ display:grid; grid-template-columns:repeat(24,1fr); gap:3px; margin-top:.3rem; }
.doba-godz span{ font-family:var(--mono); font-size:.58rem; color:var(--muted); text-align:center; }
.doba-godz span.pusty{ color:var(--line-2); }
.kol-godz{ display:grid; grid-template-rows:repeat(6,18px); gap:2px; }
.pasek-doby{ padding:.7rem .8rem .6rem; }
.kw{
  border-radius:3px; background:var(--sunken); cursor:pointer;
  border:1px solid transparent; position:relative; transition:transform .07s;
}
.kw:hover{ transform:scale(1.22); border-color:var(--ink-2); z-index:2; }
.kw.on{ background:var(--c); }
.kw.ma-opis::after{
  content:''; position:absolute; right:1px; bottom:1px; width:3px; height:3px;
  border-radius:50%; background:#fff; box-shadow:0 0 0 1px rgba(0,0,0,.25);
}
.doba-pol{ display:none; }

/* dymek z opisem pola */
.kw-tip{
  position:fixed; z-index:60; pointer-events:none; opacity:0; transition:opacity .1s;
  background:var(--surface); border:1px solid var(--line-2); border-radius:8px;
  box-shadow:var(--shadow-lg); padding:.4rem .6rem; max-width:16rem;
}
.kw-tip.on{ opacity:1; }
.kw-tip .t1{ font-family:var(--mono); font-size:.7rem; color:var(--accent-ink); font-weight:600; }
.kw-tip .t2{ font-size:.8rem; color:var(--ink-2); margin-top:.1rem; }

.kartka{
  display:flex; align-items:stretch;
  background:var(--surface); border:1px solid var(--line); border-radius:11px;
  overflow:hidden; box-shadow:var(--shadow); margin-bottom:.7rem;
}
.kartka .data{
  background:var(--accent); color:#fff; padding:.5rem .9rem .6rem; text-align:center;
  display:flex; flex-direction:column; justify-content:center; min-width:7.5rem;
}
:root[data-theme="ciemny"] .kartka .data, :root:not([data-theme="jasny"]) .kartka .data{ color:#1a1013; }
.kartka .data .dz{ font-family:var(--display); font-size:2rem; font-weight:700; line-height:.95; letter-spacing:-.03em; }
.kartka .data .tyg{ font-size:.78rem; opacity:.85; margin-top:.15rem; }
.kartka .data .msc{ font-family:var(--mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; opacity:.75; margin-top:.2rem; }
.kartka .cyt{ flex:1; padding:.6rem .9rem; display:flex; flex-direction:column; justify-content:center; }
.kartka .cyt .txt{ font-family:var(--display); font-size:.95rem; font-weight:600; line-height:1.35; letter-spacing:-.01em; }
.kartka .cyt .aut{ font-size:.78rem; color:var(--muted); margin-top:.3rem; }

.blok{ background:var(--surface); border:1px solid var(--line); border-radius:11px; padding:.7rem .85rem; box-shadow:var(--shadow); margin-bottom:.7rem; }
.blok-hd{ display:flex; flex-wrap:wrap; align-items:baseline; gap:.3rem .7rem; margin-bottom:.45rem; }
.blok-hd h3{ font-size:.88rem; font-weight:600; }
.blok-hd .pod{ font-size:.72rem; color:var(--muted); margin-left:auto; }

.energia{ display:grid; grid-template-columns:1fr 4rem; gap:.7rem; align-items:center; }
.energia .val2{ font-family:var(--display); font-size:1.4rem; font-weight:700; text-align:right; line-height:1; }
.pola3{ display:grid; gap:.3rem; }
.pola3 .rz{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.25rem; align-items:center; }
.btn-plus{
  border:1px solid var(--line-2); background:transparent; color:var(--muted);
  border-radius:5px; width:1.05rem; height:1.05rem; line-height:1; font-size:.78rem;
  cursor:pointer; margin-left:.3rem; padding:0;
}
.btn-plus:hover{ border-color:var(--accent); color:var(--accent-ink); }
.btn-x{
  border:none; background:transparent; color:var(--muted); cursor:pointer;   /* --line-2 dawało 1,6:1 — na telefonie (bez hover) ikona była niewidoczna */
  font-size:.85rem; line-height:1; padding:.1rem .2rem; border-radius:4px;
}
.btn-x:hover{ color:var(--alarm); background:var(--sunken); }
.md-row{ display:flex; gap:.3rem; align-items:center; flex-wrap:wrap; margin-bottom:.35rem; }
.md-row .tx{ flex:1; min-width:7rem; font-size:.84rem; }
.md-row .z-gw{ color:var(--over); font-size:.8rem; }                  /* ★ — decyzja powstała z zadania */
/* sukces automatyczny z odhaczonego zadania (Dziennik sukcesów) */
.suk-zad{
  display:flex; align-items:baseline; gap:.4rem; font-size:.82rem; color:var(--ink-2);
  padding:.22rem .5rem; margin-bottom:.25rem; border-radius:7px;
  background:color-mix(in srgb, var(--good) 9%, transparent);
  border-left:2px solid var(--good);
}
.suk-zad .zn{ color:var(--good); font-weight:600; }
.suk-zad .skad{ margin-left:auto; font-family:var(--mono); font-size:.6rem; color:var(--muted); white-space:nowrap; }
.pola3 .rz.z-taska input{ border-left:2px solid var(--over); padding-left:.45rem; }   /* decyzja powiązana z zadaniem */
.wpis-gr{ margin-bottom:.6rem; }
.wpis-gr:last-child{ margin-bottom:0; }
.wpis-h{
  display:block; font-family:var(--mono); font-size:.6rem; letter-spacing:.13em;
  text-transform:uppercase; color:var(--muted); margin-bottom:.2rem;
}
.wpis{
  font-size:.85rem; color:var(--ink-2); padding:.18rem 0 .18rem .7rem;
  border-left:2px solid var(--line-2); margin-bottom:.15rem;
}
.notka{
  display:grid; grid-template-columns:5.2rem minmax(0,1fr); gap:.6rem;
  padding:.4rem 0; border-bottom:1px solid var(--line); align-items:baseline;
}
.notka:last-child{ border-bottom:none; }
.notka .kiedy{ font-family:var(--mono); font-size:.66rem; letter-spacing:.06em; color:var(--muted); }
.notka .tresc{ font-size:.88rem; color:var(--ink-2); line-height:1.45; }
.pola3 input, .pole1{
  font:inherit; font-size:.83rem; color:var(--ink); background:var(--surface-2);
  border:1px solid var(--line); border-radius:7px; padding:.3rem .5rem; width:100%;
}
.pola3 input:focus, .pole1:focus{ outline:2px solid var(--accent); outline-offset:-1px; }

.md-box{ display:flex; flex-direction:column; gap:.5rem; }
.md-wpis{ display:flex; gap:.5rem; align-items:center; }
.md-wpis .pole1{ flex:1; }
.md-stan{ display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; font-size:.82rem; }
.md-seria{ font-family:var(--mono); font-size:.76rem; color:var(--over); border:1px solid currentColor; border-radius:999px; padding:.1rem .5rem; }

.prio{ display:flex; flex-direction:column; gap:.3rem; }
.prio-row{ display:grid; grid-template-columns:auto 1fr auto; gap:.45rem; align-items:center; }
.prio-row input{
  font:inherit; font-size:.84rem; color:var(--ink); background:none;
  border:0; border-bottom:1px solid transparent; padding:.15rem 0; width:100%;
}
.prio-row input:focus{ outline:none; border-bottom-color:var(--accent); }
.prio-row .kb{ font-family:var(--mono); font-size:.66rem; color:var(--muted); }
.prio-row.akt input{ font-weight:600; }
.prio-row.akt{ background:var(--accent-soft); border-radius:7px; padding:.15rem .35rem; margin:0 -.35rem; }

.licznik{ display:flex; flex-direction:column; gap:.5rem; }
.lic-row{ display:flex; align-items:baseline; gap:.5rem; font-size:.84rem; }
.lic-row b{ font-family:var(--display); font-size:1.25rem; font-weight:700; margin-left:auto; }
.lic-bar{ display:flex; height:8px; border-radius:4px; overflow:hidden; background:var(--sunken); }
.lic-bar i{ height:100%; }
.rozklad{ display:flex; flex-direction:column; gap:.25rem; margin-top:.3rem; }
.roz-row{ display:grid; grid-template-columns:auto 1fr auto; gap:.4rem; align-items:center; font-size:.78rem; }
.roz-bar{ height:6px; border-radius:3px; background:var(--sunken); overflow:hidden; }
.roz-bar i{ display:block; height:100%; border-radius:3px; }

.raport{ background:var(--sunken); margin-top:.5rem; border:1px solid var(--line); border-radius:9px; padding:.8rem .9rem;
  font-family:var(--mono); font-size:.76rem; line-height:1.65; white-space:pre-wrap; color:var(--ink-2); max-height:15rem; overflow:auto; }

/* ---------- malowanie ---------- */
.paint{ display:grid; grid-template-columns:13rem 1fr; gap:1.2rem; align-items:start; }
@media (max-width:820px){ .paint{ grid-template-columns:1fr; } }

.palette{ position:sticky; top:1rem; display:flex; flex-direction:column; gap:.3rem; }
.pal-btn{
  font:inherit; font-size:.86rem; cursor:pointer; text-align:left;
  background:var(--surface); border:1px solid var(--line); border-left:3px solid var(--c);
  border-radius:8px; padding:.42rem .6rem; color:var(--ink-2);
  display:flex; align-items:center; gap:.5rem;
}
.pal-btn:hover{ border-color:var(--line-2); color:var(--ink); }
.pal-btn[aria-pressed="true"]{ background:var(--accent-soft); border-color:var(--accent); color:var(--ink); font-weight:600; }
.pal-btn .kbd{ margin-left:auto; font-family:var(--mono); font-size:.66rem; color:var(--muted); }
.pal-sep{ height:1px; background:var(--line); margin:.4rem 0; }

.grid-wrap{ background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:.9rem 1rem 1rem; box-shadow:var(--shadow); }
/* kolumnami, żeby lewa strona to były godziny 00–11, a prawa 12–23,
   a nie naprzemiennie co drugą godzinę */
.hours{ display:grid; grid-template-rows:repeat(12,auto); grid-auto-flow:column; gap:.2rem 1.4rem; }
@media (max-width:560px){ .hours{ grid-auto-flow:row; grid-template-rows:none; grid-template-columns:1fr; } }
.hour-row{ display:grid; grid-template-columns:2.4rem 1fr; gap:.5rem; align-items:center; }
.hour-lbl{ font-family:var(--mono); font-size:.68rem; color:var(--muted); text-align:right; }
.hour-slots{ display:flex; gap:2px; }
.slot{
  flex:1; height:19px; border-radius:3px; background:var(--sunken);
  border:1px solid transparent; cursor:pointer; transition:transform .08s;
}
.slot:hover{ transform:scaleY(1.25); border-color:var(--ink-2); }
.slot.on{ background:var(--c); }
.paint-foot{ display:flex; flex-wrap:wrap; gap:.5rem 1.2rem; align-items:center; margin-top:.9rem; padding-top:.8rem; border-top:1px solid var(--line); font-size:.8rem; color:var(--muted); }
.paint-foot .live{ font-family:var(--mono); }
.paint-foot .live b{ color:var(--ink); font-weight:600; }
.btn-ghost{ font:inherit; font-size:.8rem; cursor:pointer; background:none; border:1px solid var(--line-2); border-radius:7px; padding:.25rem .6rem; color:var(--ink-2); }
.btn-ghost:hover{ border-color:var(--accent); color:var(--accent-ink); }

/* ---------- panel wyjaśnienia wskaźnika ---------- */
.metric{ position:relative; cursor:help; }
/* badge 📖 w prawym górnym rogu kafelka — link do materiału z biblioteki (nie otwiera opisu) */
.badge-op{
  position:absolute; top:.35rem; right:.4rem; z-index:3;
  font-family:var(--mono); font-size:.72rem; letter-spacing:.04em; white-space:nowrap;
  text-decoration:none; color:var(--accent-ink); background:var(--accent-soft);
  border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);
  border-radius:5px; padding:.05rem .28rem; line-height:1.45;
}
.badge-op:hover{ background:var(--accent); color:#fff; border-color:var(--accent); }
:root[data-theme="ciemny"] .badge-op:hover{ color:#1a1013; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="jasny"]) .badge-op:hover{ color:#1a1013; } }
.metric.z-badge .lbl{ padding-right:1.9rem; }
.metric:hover{ background:var(--surface-2); }


/* ---------- opis slotu, zadania, notatka ---------- */
.slot-edit{
  display:flex; flex-wrap:wrap; gap:.5rem; align-items:center;
  margin-top:.65rem; padding:.5rem .65rem;
  background:var(--accent-soft); border:1px solid var(--accent); border-radius:9px;
}
.slot-edit .pora{
  font-family:var(--mono); font-size:.78rem; color:var(--accent-ink); white-space:nowrap;
  font-weight:600;
}
.slot-edit input{
  flex:1; min-width:11rem; font:inherit; font-size:.86rem; color:var(--ink);
  background:var(--surface); border:1px solid var(--line-2); border-radius:7px; padding:.35rem .6rem;
}
.slot-edit input:focus{ outline:2px solid var(--accent); outline-offset:-1px; border-color:var(--accent); }

.side{ display:grid; grid-template-columns:repeat(auto-fit,minmax(17rem,1fr)); gap:1rem; margin-top:1.2rem; }
/* wiersz zadania (v2): flex zamiast siatki — chipów i akcji jest zmienna liczba (stan × źródło) */
.task{ display:flex; gap:.3rem; align-items:center; padding:.2rem 0; }
.task input[type=text]{ flex:1; font:inherit; font-size:.82rem; min-width:0; color:var(--ink); background:none; border:0; border-bottom:1px solid transparent; padding:.15rem 0; }
.task input[type=text]:focus{ outline:none; border-bottom-color:var(--accent); }
.task.done input[type=text]{ text-decoration:line-through; color:var(--muted); }
.task .est{ font-family:var(--mono); font-size:.68rem; color:var(--muted); text-align:right; white-space:nowrap; }
.task .del{ font:inherit; font-size:.75rem; cursor:pointer; background:none; border:0; color:var(--muted); padding:0 .12rem; line-height:1; }
.task .del:hover{ color:var(--alarm); }
.task .del.ok:hover{ color:var(--good); }                                  /* ✓ przyjmij propozycję */
/* .dwa-taski (od 1.4.1: Notatka | Raport dnia, po równo) — reguły w bloku „1.4.1 karta” na końcu pliku */
.task .zr{ font-size:.8rem; width:1rem; text-align:center; }              /* ikona źródła (🤖 przy propozycji) */
.task .z-md{
  font-family:var(--mono); font-size:.6rem; white-space:nowrap; color:var(--over);
  background:color-mix(in srgb, var(--over) 12%, transparent);
  border-radius:5px; padding:.05rem .3rem;
}
.task .wraca{
  font-family:var(--mono); font-size:.6rem; white-space:nowrap; color:var(--over);
  background:color-mix(in srgb, var(--over) 12%, transparent);
  border-radius:5px; padding:.05rem .3rem;
}
.task.prop{ opacity:.9; }
.task.prop input[type=text]{ border-bottom:1px dashed var(--pianino); }
.task.martwe input[type=text]{ color:var(--muted); text-decoration:line-through; opacity:.7; }   /* odpuszczone / nie wyszło */
.task-czemu{
  font-size:.72rem; color:var(--muted); padding:0 0 .3rem 1.4rem; line-height:1.35; margin-top:-.15rem;
}
.task-hd{
  font-family:var(--mono); font-size:.6rem; letter-spacing:.13em; text-transform:uppercase;
  color:var(--muted); margin:.6rem 0 .25rem; padding-top:.45rem; border-top:1px solid var(--line);
}
.empty{ font-size:.85rem; color:var(--muted); padding:.4rem 0; }
textarea.note{
  width:100%; min-height:5.5rem; font:inherit; font-size:.88rem; color:var(--ink); resize:vertical;
  background:var(--surface-2); border:1px solid var(--line); border-radius:9px; padding:.55rem .7rem;
}
textarea.note:focus{ outline:2px solid var(--accent); outline-offset:-1px; }

/* ---------- hasło dnia ---------- */
.motto{ border-left:2px solid var(--accent); padding-left:1.1rem; }
.motto .m-body{ min-width:0; }
.motto .m-text{
  font-family:var(--display); font-size:clamp(1.15rem,2.4vw,1.5rem); font-weight:600;
  line-height:1.3; letter-spacing:-.015em; color:var(--ink); text-wrap:balance;
}
.motto .m-sign{
  display:flex; flex-wrap:wrap; align-items:center; gap:.4rem .7rem;
  margin-top:.7rem; font-size:.82rem; color:var(--muted);
}
.motto .m-sign b{ color:var(--accent-ink); font-weight:600; }
.motto .m-sign .kropka{ width:3px; height:3px; border-radius:50%; background:var(--line-2); }

footer{ margin-top:2rem; padding-top:1.2rem; border-top:1px solid var(--line);
        display:flex; flex-wrap:wrap; gap:.6rem 1.2rem; align-items:center; font-size:.82rem; color:var(--muted); }
footer .flower{ font-size:1.1rem; }
[hidden]{ display:none !important; }

@media (max-width:640px){
  .track{ grid-template-columns:1fr; }
  .track-read{ grid-column:1; }
  .tl-hours span:nth-child(even){ color:transparent; }
}
@media (min-width:1080px){
  body:not(.menu-off){ padding-left:var(--side); }
  .page{ width:min(100% - 2.5rem, 82rem); }
  body.szeroko .page{ width:calc(100% - 2.5rem); max-width:none; }
  body:not(.menu-off) .drawer{ transform:none; width:var(--side); box-shadow:none; border-right:1px solid var(--line); }
  body:not(.menu-off) .drawer-bg{ display:none; }
  body:not(.menu-off) .burger{ display:none; }
}
@media (prefers-reduced-motion:reduce){ *{ transition:none !important; } }

/* ============================================================
   WARSTWA A5 — powłoka PWA, mobile-first
   Progi: <720 px telefon (dolny pasek zakładek, drawer ukryty),
   720–1079 px tablet (drawer wysuwany), ≥1080 px drawer stały 13,5 rem.
   Kolory obszarów: --ob-<klucz> ustawiane inline na #app przez app.js
   jako color-mix(in srgb, <kolor> var(--ob-mix), white); w jasnym motywie
   --ob-mix = 100% (czysty kolor z bazy), w ciemnym 70% (rozjaśnione).
   Surowy hex dostępny równolegle jako --ob-<klucz>-hex.
   ============================================================ */

:root{
  --ob-mix:100%;
  --tabbar-h:3.6rem;
  --safe-b:env(safe-area-inset-bottom, 0px);
  --safe-l:env(safe-area-inset-left, 0px);
  --safe-r:env(safe-area-inset-right, 0px);
  --safe-t:env(safe-area-inset-top, 0px);
  color-scheme:light dark;
}
:root[data-theme="jasny"]{ color-scheme:light; }
:root[data-theme="ciemny"]{ color-scheme:dark; --ob-mix:70%; }
@media (prefers-color-scheme: dark){
  :root:not([data-theme="jasny"]){ --ob-mix:70%; }
}

html{ -webkit-text-size-adjust:100%; height:100%; }
body{ min-height:100%; overscroll-behavior-y:none; }
#app{ min-height:100vh; min-height:100dvh; }
.page{ padding-inline:max(0px, calc(var(--safe-l) - 1rem)) max(0px, calc(var(--safe-r) - 1rem)); }
.widok{ display:block; min-height:40vh; }
button, input, select, textarea{ font-family:inherit; }
button{ touch-action:manipulation; }
a{ color:var(--accent-ink); }
:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* ---------- ikony inline (ui.ikona) ---------- */
.ikona{ width:1.1em; height:1.1em; vertical-align:-.18em; flex:none; }
.ikona-duza{ width:1.5em; height:1.5em; }

/* ---------- splash przed startem modułu ---------- */
.splash{
  min-height:100vh; min-height:100dvh; display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:.6rem; color:var(--muted); font-size:.85rem;
}
.splash .pierscien{
  width:44px; height:44px; border-radius:50%; border:6px solid var(--accent-soft);
  border-top-color:var(--accent); animation:obrot 1.1s linear infinite;
}
@keyframes obrot{ to{ transform:rotate(360deg); } }
.splash noscript{ color:var(--alarm); }

/* ---------- drawer: przycisk zwijania (tylko desktop) ---------- */
.drawer .zwin{
  display:none; position:absolute; top:.7rem; right:.6rem; font:inherit; font-size:.8rem; cursor:pointer;
  background:none; border:1px solid var(--line-2); border-radius:6px; padding:.1rem .45rem; color:var(--muted);
}
.drawer .zwin:hover{ border-color:var(--accent); color:var(--accent-ink); }
.drawer nav a{
  font:inherit; font-size:.83rem; text-align:left; cursor:pointer; text-decoration:none;
  background:none; border:0; border-radius:6px; padding:.26rem .5rem; color:var(--ink-2);
  display:flex; align-items:center; gap:.5rem; line-height:1.35; min-height:1.9rem;
}
.drawer nav a span{ font-size:.88rem; width:1.05rem; text-align:center; flex:none; }
.drawer nav a:hover{ background:var(--surface-2); color:var(--ink); }
.drawer nav a[aria-current="page"]{ background:var(--accent-soft); color:var(--accent-ink); font-weight:600; }
/* pozycja biblioteki: tytuł z wielokropkiem, ↗ przy prawej krawędzi, nowe okno */
.drawer nav a.poz{ min-width:0; }
.drawer nav a.poz b{ font-weight:400; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.drawer nav a.poz:hover{ background:var(--surface-2); color:var(--accent-ink); }
.drawer nav a.poz .zew{ margin-left:auto; font-size:.62rem; color:var(--muted); flex:none; width:auto; }
.drawer .d-foot{ display:flex; flex-direction:column; gap:.4rem; }
.drawer .d-foot .btn-ghost{ align-self:flex-start; }
.drawer .d-brand img{ width:28px; height:28px; border-radius:8px; }

/* ---------- userbar: uzupełnienia ---------- */
.userbar .u-tekst{ min-width:0; }
.userbar .u-name{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.userbar .nawi{ margin-left:auto; }
.userbar .badges + .nawi{ margin-left:0; }
.badge.puste{ display:none; }
.nawi button{ min-width:2.4rem; }
.nawi button[aria-pressed="true"]{ background:var(--accent-soft); border-color:var(--accent); color:var(--accent-ink); }

/* ---------- stopka ---------- */
footer #footNote{ flex:1 1 14rem; }

/* ---------- appbar ---------- */
.appbar .eyebrow:empty{ display:none; }
.appbar .a-akcje{ margin-left:auto; display:flex; gap:.35rem; flex-wrap:wrap; }

/* ---------- dolny pasek zakładek (telefon) ---------- */
.tabbar{
  display:none; position:fixed; left:0; right:0; bottom:0; z-index:35;
  height:calc(var(--tabbar-h) + var(--safe-b)); padding-bottom:var(--safe-b);
  background:var(--surface); border-top:1px solid var(--line);
  box-shadow:0 -4px 18px rgba(25,19,23,.06);
}
.tabbar a{
  flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.15rem;
  min-height:44px; padding:.3rem 0; text-decoration:none; color:var(--muted);
  font-size:.66rem; font-weight:500; letter-spacing:.01em; border:0; background:none; cursor:pointer; font-family:inherit;
}
.tabbar a .ikona{ width:22px; height:22px; }
.tabbar a[aria-current="page"]{ color:var(--accent-ink); }
.tabbar a[aria-current="page"] .ikona{ color:var(--accent); }
.tabbar a:active{ background:var(--surface-2); }

/* ---------- dolny arkusz / modal (ui.sheet) ---------- */
.sheet-tlo{
  position:fixed; inset:0; z-index:70; background:rgba(20,16,19,.45); backdrop-filter:blur(2px);
  display:flex; align-items:flex-end; justify-content:center; animation:pojaw .15s ease-out;
}
@keyframes pojaw{ from{ opacity:0; } }
@keyframes wjazd{ from{ transform:translateY(24px); opacity:.6; } }
.sheet{
  width:100%; max-height:calc(92dvh - var(--safe-t)); overflow:auto; overscroll-behavior:contain;
  background:var(--surface); border:1px solid var(--line); border-bottom:0;
  border-radius:18px 18px 0 0; box-shadow:var(--shadow-lg);
  padding:.4rem 1rem calc(1rem + var(--safe-b)); animation:wjazd .2s cubic-bezier(.2,.7,.3,1);
  transition:transform .12s;
}
.sheet-uchwyt{
  width:44px; height:5px; border-radius:3px; background:var(--line-2); margin:.35rem auto .7rem;
  cursor:grab; touch-action:none;
}
.sheet-hd{ display:flex; align-items:center; gap:.6rem; margin-bottom:.6rem; }
.sheet-hd h2{ font-family:var(--display); font-size:1.15rem; font-weight:600; flex:1; }
.sheet-x{ font-size:1.1rem; min-width:44px; min-height:44px; display:flex; align-items:center; justify-content:center; }
.sheet-tresc{ font-size:.92rem; }
.sheet-akcje{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1rem; justify-content:flex-end; }
.sheet-akcje button{ min-height:44px; }
body.sheet-otwarty{ overflow:hidden; }
@media (min-width:720px){
  .sheet-tlo{ align-items:center; padding:1.5rem; }
  .sheet{
    width:min(34rem, 100%); max-height:calc(100vh - 3rem); border-radius:16px; border-bottom:1px solid var(--line);
    padding:1rem 1.25rem 1.25rem; animation:pojaw .15s;
  }
  .sheet-uchwyt{ display:none; }
}

/* ---------- toasty ---------- */
.toasty{
  position:fixed; left:50%; transform:translateX(-50%); z-index:80; display:flex; flex-direction:column; gap:.4rem;
  bottom:calc(1rem + var(--safe-b)); width:min(24rem, calc(100% - 2rem)); pointer-events:none;
}
.toast{
  background:var(--ink); color:var(--bg); font-size:.85rem; padding:.6rem .9rem; border-radius:10px;
  box-shadow:var(--shadow-lg); animation:wjazd .18s ease-out; pointer-events:auto; display:flex; gap:.5rem; align-items:flex-start;
}
.toast.ok{ background:var(--good); color:#fff; }
.toast.blad{ background:var(--alarm); color:#fff; }
.toast.znika{ opacity:0; transition:opacity .3s; }

/* ---------- oś doby: stany pól (wspólne dla siatki poziomej i pionowej) ---------- */
.kw.deklaracja, .slot.deklaracja{
  opacity:.5;
  background-image:repeating-linear-gradient(135deg, rgba(255,255,255,.55) 0 2px, transparent 2px 6px);
}
.kw.zdarzenie::before, .slot.zdarzenie::before{
  content:''; position:absolute; left:2px; top:2px; width:4px; height:4px; border-radius:50%;
  background:#fff; box-shadow:0 0 0 1px rgba(0,0,0,.25);
}
.kw.szum, .slot.szum{
  background-image:repeating-linear-gradient(45deg, rgba(255,255,255,.45) 0 2px, transparent 2px 6px);
}
.kw.luka, .slot.luka{ border:1.5px dashed var(--warn); background:color-mix(in srgb, var(--warn) 10%, var(--sunken)); }
.kw.przyszlosc, .slot.przyszlosc{ background:color-mix(in srgb, var(--sunken) 45%, var(--surface)); border-color:transparent; cursor:default; }
.kw.przyszlosc:hover{ transform:none; }
.kw.teraz, .slot.teraz{ box-shadow:inset 0 0 0 2px var(--accent); }
.slot{ position:relative; }

/* ---------- oś doby pionowa (telefon): 24 wiersze × 6 pól, pola ≥ 40 px ---------- */
.doba-pion{ display:grid; grid-template-columns:2.2rem 1fr auto; gap:3px .5rem; touch-action:none; user-select:none; -webkit-user-select:none; }
.doba-pion .godz{ font-family:var(--mono); font-size:.72rem; color:var(--muted); align-self:center; text-align:right; }
.doba-pion .pola{ display:grid; grid-template-columns:repeat(6, minmax(40px, 1fr)); gap:3px; }
.doba-pion .kw{ min-height:40px; min-width:40px; border-radius:6px; }
.doba-pion .kw:hover{ transform:none; }
.doba-pion .suma{ font-family:var(--mono); font-size:.68rem; color:var(--muted); align-self:center; min-width:2.6rem; text-align:right; }
.doba-pion .wiersz-luka .godz{ color:var(--warn); }

/* paleta pędzli przyklejona nad dolnym paskiem, przewijana poziomo */
.paleta-pas{
  position:sticky; bottom:calc(var(--tabbar-h) + var(--safe-b) + .4rem); z-index:20;
  display:flex; gap:.4rem; overflow-x:auto; padding:.5rem .6rem; margin:.6rem -.2rem 0;
  background:color-mix(in srgb, var(--surface) 92%, transparent); backdrop-filter:blur(8px);
  border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow-lg); scrollbar-width:none;
}
.paleta-pas::-webkit-scrollbar{ display:none; }
.paleta-pas .pal-btn{ flex:none; min-height:44px; white-space:nowrap; padding-inline:.7rem; }
@media (min-width:720px){ .paleta-pas{ bottom:.5rem; } }

/* ---------- lista obszarów jako duże przyciski (arkusz edycji zakresu) ---------- */
.ob-przyciski{ display:grid; grid-template-columns:repeat(auto-fill, minmax(9rem, 1fr)); gap:.4rem; }
.ob-przyciski .pal-btn{ min-height:44px; }

/* ---------- karta „w budowie” / błąd / offline ---------- */
.w-budowie{ text-align:center; padding:2.2rem 1rem; }
.w-budowie .duzy{ font-size:2rem; }
.w-budowie h2{ font-family:var(--display); font-size:1.25rem; margin:.4rem 0 .3rem; }
.w-budowie p{ color:var(--muted); font-size:.9rem; }
.w-budowie .akcje{ display:flex; gap:.5rem; justify-content:center; flex-wrap:wrap; margin-top:1rem; }
.blad-karta{ border-left:3px solid var(--alarm); }
.blad-karta code{ font-family:var(--mono); font-size:.78rem; color:var(--alarm); word-break:break-word; }

/* ---------- przyciski: uzupełnienia ---------- */
.btn-main, .btn-ghost{ display:inline-flex; align-items:center; justify-content:center; gap:.4rem; }
.btn-main.duzy, .btn-ghost.duzy{ font-size:.95rem; padding:.6rem 1.2rem; min-height:48px; border-radius:10px; }
.btn-main.pelny, .btn-ghost.pelny{ width:100%; }
.btn-ghost:disabled, .btn-main:disabled{ opacity:.45; cursor:default; }
.btn-ghost.alarm{ color:var(--alarm); border-color:var(--alarm); }
.btn-ghost.alarm:hover{ background:color-mix(in srgb, var(--alarm) 10%, transparent); }
.przelacznik{
  --w:2.6rem; position:relative; width:var(--w); height:1.5rem; border-radius:999px; border:0; cursor:pointer;
  background:var(--line-2); transition:background .15s; flex:none; padding:0;
}
.przelacznik::after{
  content:''; position:absolute; top:2px; left:2px; width:calc(1.5rem - 4px); height:calc(1.5rem - 4px);
  border-radius:50%; background:#fff; transition:transform .15s; box-shadow:0 1px 2px rgba(0,0,0,.25);
}
/* niewidoczne pole dotyku 44 px wokół przełącznika (wygląd zostaje 42×24) */
.przelacznik::before{ content:''; position:absolute; inset:-10px -6px; }
.przelacznik[aria-checked="true"]{ background:var(--accent); }
.przelacznik[aria-checked="true"]::after{ transform:translateX(calc(var(--w) - 1.5rem)); }

/* ---------- formularze: uzupełnienia ---------- */
.pole-lbl{ display:block; font-size:.8rem; color:var(--muted); margin:.7rem 0 .25rem; }
.pole-lbl:first-child{ margin-top:0; }
.pole-rzad{ display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; }
.pole-rzad .pole1{ width:auto; flex:1; min-width:8rem; }
input[type=time].pole1, input[type=number].pole1{ width:auto; min-width:6.5rem; font-family:var(--mono); }
input[type=color]{ width:44px; height:36px; border:1px solid var(--line-2); border-radius:7px; background:var(--surface); padding:2px; cursor:pointer; }
input[type=range]{ width:100%; accent-color:var(--accent); min-height:28px; }
.suwak{ display:grid; grid-template-columns:1fr 6.2rem; gap:.6rem; align-items:center; }
.suwak .odczyt{ font-family:var(--mono); font-size:.85rem; text-align:right; color:var(--ink); white-space:nowrap; }
.podpowiedz{ font-size:.78rem; color:var(--muted); margin-top:.25rem; }
.komunikat{ font-size:.88rem; padding:.6rem .8rem; border-radius:9px; background:var(--accent-soft); color:var(--accent-ink); margin-top:.7rem; }
.komunikat.blad{ background:color-mix(in srgb, var(--alarm) 12%, transparent); color:var(--alarm); }
.komunikat.ok{ background:color-mix(in srgb, var(--good) 12%, transparent); color:var(--good); }
.komunikat a{ word-break:break-all; }

/* ---------- tryb gościnny (logowanie, zaproszenie) i onboarding ---------- */
#app.gosc .drawer, #app.gosc .drawer-bg, #app.gosc .tabbar, #app.gosc .userbar, #app.gosc .appbar,
#app.onboarding .drawer, #app.onboarding .drawer-bg, #app.onboarding .tabbar, #app.onboarding .userbar{ display:none !important; }
body.gosc, body.onboarding{ padding-left:0 !important; padding-bottom:0 !important; }
#app.gosc .page{ width:min(100% - 2rem, 26rem); padding-top:max(8vh, 2rem); }
#app.gosc footer{ display:none; }
#app.onboarding .page{ width:min(100% - 2rem, 54rem); }    /* .onb z makiety ma 52 rem */
.marka{ display:flex; align-items:center; gap:.6rem; margin-bottom:1.2rem; }
.marka img{ width:40px; height:40px; border-radius:11px; }
.marka b{ font-family:var(--display); font-size:1.15rem; display:block; line-height:1.15; }
.marka small{ color:var(--muted); font-size:.78rem; }
.logowanie h1{ font-size:1.5rem; margin-bottom:.35rem; }
.logowanie p.wstep{ color:var(--ink-2); font-size:.9rem; margin-bottom:1rem; }
.logowanie form{ display:flex; flex-direction:column; gap:.6rem; }
.logowanie .pole1{ font-size:1rem; padding:.6rem .75rem; }
.logowanie .demo{ margin-top:1.2rem; padding-top:1rem; border-top:1px solid var(--line); }

/* onboarding: kroki */
.kroki{ display:flex; gap:.4rem; align-items:center; margin:.4rem 0 1rem; }
.kroki i{ flex:1; height:4px; border-radius:2px; background:var(--sunken); }
.kroki i.byl{ background:var(--accent-soft); }
.kroki i.jest{ background:var(--accent); }
.kroki span{ font-family:var(--mono); font-size:.66rem; color:var(--muted); letter-spacing:.08em; }
.krok h1{ font-size:1.55rem; margin-bottom:.4rem; }
.krok .lead{ color:var(--ink-2); font-size:.95rem; line-height:1.55; margin-bottom:1rem; }
.krok .lead + .lead{ margin-top:-.5rem; }
.krok .akcje{ display:flex; gap:.5rem; justify-content:space-between; flex-wrap:wrap; margin-top:1.2rem; }
.krok .akcje .btn-main{ margin-left:auto; }
.ob-edycja{ display:flex; flex-direction:column; gap:.4rem; }
.ob-edycja .ob-row{ grid-template-columns:1.5rem auto 3.4rem 1fr auto auto; padding:.35rem 0; }
.ob-edycja input[type=text]{ font:inherit; font-size:.95rem; color:var(--ink); background:var(--surface-2); border:1px solid var(--line); border-radius:7px; padding:.4rem .55rem; width:100%; min-width:0; }
.ob-edycja input.emoji-pole{ text-align:center; font-size:1.1rem; padding:.3rem .1rem; }
.ob-edycja .ob-mv button{ min-width:28px; min-height:20px; }
.podpowiedzi{ display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.7rem; }
.podpowiedzi button{
  font:inherit; font-size:.82rem; cursor:pointer; background:var(--surface-2); color:var(--ink-2);
  border:1px dashed var(--line-2); border-radius:999px; padding:.3rem .7rem; min-height:36px;
}
.podpowiedzi button:hover{ border-color:var(--accent); color:var(--accent-ink); border-style:solid; }
.dni-wybor{ display:flex; flex-wrap:wrap; gap:.35rem; }
.budzet-podglad + .budzet-podglad{ margin-top:1rem; }
.budzet-podglad .tyt{ font-size:.85rem; font-weight:600; margin-bottom:.35rem; display:flex; justify-content:space-between; gap:.5rem; }
.budzet-podglad .tyt span{ font-family:var(--mono); font-weight:500; color:var(--accent-ink); }

/* ---------- telefon (<720 px) ---------- */
@media (max-width:719px){
  body{ padding-bottom:calc(var(--tabbar-h) + var(--safe-b) + .5rem); font-size:15px; }
  body:not(.gosc):not(.onboarding) .page{ width:calc(100% - 1.6rem); padding-top:max(.6rem, var(--safe-t)); }
  .tabbar{ display:flex; }
  .drawer{ width:min(18rem, 86vw); padding-top:max(1.1rem, var(--safe-t)); }
  .userbar{ gap:.35rem .6rem; padding:.4rem .6rem; }
  .userbar .burger{ display:none; }
  .userbar .u-sub{ font-size:.7rem; }
  .userbar .badges{ order:5; flex-basis:100%; margin-left:0; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; padding-bottom:.1rem; }
  .userbar .badges::-webkit-scrollbar{ display:none; }
  .userbar .badges:empty{ display:none; }
  .badge{ flex:none; font-size:.72rem; }
  .userbar .nawi{ margin-left:auto; }
  .nawi button{ min-height:40px; min-width:40px; }
  .appbar{ padding:.3rem 0 .5rem; }
  #tytulPasek h1{ font-size:1.25rem; }
  h1{ font-size:1.5rem; }
  .metrics{ grid-template-columns:1fr 1fr; }
  .metrics > .metric:last-child:nth-child(odd){ grid-column:1 / -1; }   /* 9 kafelków w 2 kolumnach: ostatni na całą szerokość, bez pustego pola */
  .metric{ border-radius:0 !important; padding:.55rem .7rem .6rem; }
  .metric .val{ font-size:1.4rem; }
  .metric .pop{ display:none; }
  .metric:hover{ background:var(--surface); }
  .tiles{ grid-template-columns:1fr 1fr; }
  .card, .blok{ padding:.75rem .8rem; }
  .karta{ grid-template-columns:minmax(0,1fr); }
  .kol-bok{ position:static; }
  .paint{ grid-template-columns:minmax(0,1fr); }
  .palette{ position:static; }
  .doba{ display:none; }                       /* poziomą siatkę zastępuje pionowa .doba-pion */
  .doba-godz{ display:none; }
  .kartka .data{ min-width:5.5rem; padding:.45rem .6rem; }
  .kartka .data .dz{ font-size:1.6rem; }
  .btn-main, .btn-ghost, .daynav button, .pal-btn, .hm-day, .seg button, .krzywa button, .hm-add button, .hm-quick button{
    min-height:44px; padding-block:.5rem;
  }
  .btn-plus, .btn-x, .ob-mv button, .task .del, .ob-del, .hm-block .del{ min-width:40px; min-height:40px; }
  .sheet-x{ min-width:44px; min-height:44px; }   /* po .btn-x, żeby kaskada nie cofała 44 px z .sheet-x */
  input, select, textarea, .pole1, .pola3 input{ font-size:16px; }   /* iOS nie powiększa strony przy fokusie */
  .pola3 input, .pole1, .slot-edit input, .hm-form input[type=text]{ padding:.5rem .65rem; min-height:44px; }
  .prio-row input, .task input[type=text]{ min-height:40px; }
  input[type=range]{ min-height:44px; }
  .track{ grid-template-columns:1fr; }
  .track-read{ grid-column:1; }
  .hm-block{ grid-template-columns:1fr auto auto; }      /* wiersz 1: nazwa; wiersz 2: suwak · minuty · ✕/„stały” */
  .hm-block .nm{ grid-column:1 / -1; }
  .hm-block .mn{ grid-column:auto; }
  .hm-block .lock{ justify-self:end; }
  .ob-row{ grid-template-columns:1.5rem auto 1fr auto; }
  .ob-godz{ display:none; }
  .ob-edycja .ob-row{ grid-template-columns:1.3rem auto 3.2rem 1fr auto auto; }
  .set-row{ grid-template-columns:auto 1fr auto; }
  .cal{ gap:.2rem; }
  .cal-cell{ min-height:3rem; padding:.2rem .25rem; border-radius:6px; }
  .cal-cell .snr{ font-size:.85rem; }
  .rok{ grid-template-columns:1fr 1fr; gap:.5rem; }
  .wk-row{ grid-template-columns:2.6rem 1fr 3.4rem; }
  footer{ margin-top:1.4rem; font-size:.78rem; }
  .raport{ max-height:20rem; }
  .userbar .avatar{ width:32px; height:32px; }
  /* v2: drawer na dotyk zostaje wyższy niż gęsty desktopowy */
  .drawer nav a, .drawer nav button{ min-height:2.4rem; padding-block:.35rem; }
  .badge-op{ padding:.15rem .4rem; font-size:.8rem; }
  /* raport na sesję: kartka na całą szerokość, przewijana pionowo; szersze wiersze przewijają się w poziomie */
  .kartka-a4{ width:100%; padding:1.1rem .9rem; overflow-x:auto; border-radius:8px; }
  .a4-kafle{ grid-template-columns:1fr 1fr; }
  .a4-dwa{ grid-template-columns:1fr; gap:.9rem; }
  .a4-tor{ grid-template-columns:5.5rem 1fr 5.5rem; gap:.3rem .5rem; }
  .a4-hd{ flex-wrap:wrap; }
  .a4-hd .kiedy{ margin-left:0; text-align:left; flex-basis:100%; }
  .pdf-pasek{ gap:.35rem; }
  .pdf-pasek .pdf-info{ flex-basis:100%; }
  /* onboarding: karty obszarów w dwóch kolumnach, scena bez sztucznej wysokości */
  .onb-karty{ grid-template-columns:1fr 1fr; }
  .onb-karta{ min-height:44px; }
  .onb-scena{ padding:1rem .9rem; min-height:0; }
  .onb-scena h2{ font-size:1.35rem; }
  .onb-stopka{ flex-wrap:wrap; }
  .onb-przel{ flex-wrap:wrap; }
  .switch{ width:44px; height:24px; }
  .switch::after{ width:18px; height:18px; }
  .switch[aria-pressed="true"]::after{ transform:translateX(20px); }
  /* zadania: tekst na całą szerokość, chipy i akcje zawijają się do drugiego wiersza */
  .task{ flex-wrap:wrap; row-gap:.1rem; }
  .task input[type=text]{ flex:1 1 11rem; }
  .task .est{ margin-left:auto; }
  .task-czemu{ padding-left:.2rem; }
  .dwa-taski{ grid-template-columns:1fr; }
}

/* 9 kafelków (tydzień/miesiąc) od tabletu w górę: 3×3 zamiast 7+2 z pustymi polami */
@media (min-width:720px){ .metrics:has(> .metric:nth-child(9)){ grid-template-columns:repeat(3,1fr); } }

/* ---------- tablet (720–1079 px): drawer wysuwany burgerem ---------- */
@media (min-width:720px) and (max-width:1079px){
  .page{ width:min(100% - 2rem, 94rem); }
  .userbar .burger{ display:flex; }
}

/* ---------- desktop (≥1080 px) ---------- */
@media (min-width:1080px){
  .drawer .zwin{ display:block; }
  body.menu-off .drawer .zwin{ display:none; }
}

/* ============================================================
   C2 (v3): panel ustawień aplikacji (/admin, tylko coach) — klasy .admin*
   Tabela ról (Modele) na telefonie zamienia się w karty (td z data-etykieta).
   ============================================================ */
.admin-klucze{ display:flex; flex-wrap:wrap; gap:.4rem .7rem; align-items:center; font-size:.82rem; color:var(--ink-2); margin-bottom:.7rem; }
.admin-klucze .ds{ font-size:.76rem; color:var(--muted); flex-basis:100%; }
.admin-przewijak{ overflow-x:auto; }
.admin-tabela{ width:100%; border-collapse:collapse; font-size:.84rem; }
.admin-tabela th{
  font-family:var(--mono); font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted);
  font-weight:500; text-align:left; padding:.3rem .4rem; border-bottom:1px solid var(--line); white-space:nowrap;
}
.admin-tabela td{ padding:.5rem .4rem; border-bottom:1px solid var(--line); vertical-align:middle; }
.admin-tabela tr:last-child td{ border-bottom:0; }
.admin-tabela td.rola b{ display:block; font-weight:600; white-space:nowrap; }
.admin-tabela td.rola small{ display:block; color:var(--muted); font-size:.72rem; line-height:1.3; max-width:11rem; }
.admin-tabela .pole1{ width:auto; min-width:6.5rem; }
.admin-tabela td.model .pole1{ min-width:11rem; font-family:var(--mono); font-size:.8rem; }
.admin-tabela td.wl .switch{ margin-left:0; }
.admin-tabela td.test{ min-width:11rem; }
.admin-wynik{ font-size:.76rem; line-height:1.35; margin-top:.3rem; color:var(--ink-2); max-width:18rem; }
.admin-wynik.ok{ color:var(--good); }
.admin-wynik.blad{ color:var(--alarm); }
.admin-akcje{ display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin-top:.8rem; }
.admin-akcje .stan{ font-family:var(--mono); font-size:.68rem; color:var(--muted); margin-left:auto; }
.admin-zakladki{ margin-bottom:.6rem; }
.admin-prompt{
  width:100%; min-height:26rem; font-family:var(--mono); font-size:.8rem; line-height:1.5; color:var(--ink);
  background:var(--surface-2); border:1px solid var(--line); border-radius:9px; padding:.6rem .7rem; resize:vertical; tab-size:2;
}
.admin-prompt:focus{ outline:2px solid var(--accent); outline-offset:-1px; }
.admin-licznik{ display:flex; flex-wrap:wrap; gap:.3rem 1rem; font-family:var(--mono); font-size:.68rem; color:var(--muted); margin-top:.35rem; }
.admin-licznik .znacznik{ color:var(--accent-ink); }
.admin-licznik .niezapisane{ color:var(--warn); }
.admin-limity{ display:grid; grid-template-columns:repeat(auto-fit,minmax(13rem,1fr)); gap:.8rem; }
.admin-pole{ display:flex; flex-direction:column; gap:.25rem; }
.admin-pole .tt{ font-size:.86rem; font-weight:500; }
.admin-pole .ds{ font-size:.74rem; color:var(--muted); line-height:1.35; }
.admin-pole input[type=number].pole1{ width:100%; min-width:0; }
.admin-prawa{ display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; justify-content:flex-end; }
.admin-prawa code{ font-family:var(--mono); font-size:.8rem; }
.admin-tylko{ border-left:3px solid var(--accent); }
@media (max-width:719px){
  .admin-klucze .ds{ flex-basis:auto; }
  .admin-tabela, .admin-tabela tbody, .admin-tabela tr, .admin-tabela td{ display:block; width:100%; }
  .admin-tabela thead{ display:none; }
  .admin-tabela tr{ border:1px solid var(--line); border-radius:10px; padding:.55rem .65rem; margin-bottom:.6rem; background:var(--surface-2); }
  .admin-tabela tr:last-child{ margin-bottom:0; }
  .admin-tabela td{ border:0; padding:.3rem 0; }
  .admin-tabela td[data-etykieta]::before{
    content:attr(data-etykieta); display:block; font-family:var(--mono); font-size:.58rem; letter-spacing:.12em;
    text-transform:uppercase; color:var(--muted); margin-bottom:.15rem;
  }
  .admin-tabela td.rola::before{ display:none; }
  .admin-tabela td.rola small{ max-width:none; }
  .admin-tabela .pole1, .admin-tabela td.model .pole1{ width:100%; min-width:0; }
  .admin-tabela td.wl{ display:flex; align-items:center; justify-content:space-between; }
  .admin-tabela td.wl::before{ margin-bottom:0; }
  .admin-wynik{ max-width:none; }
  .admin-prompt{ min-height:18rem; font-size:16px; }
  .admin-akcje .stan{ margin-left:0; flex-basis:100%; }
}

/* ==== 0.8.0 A: onboarding ==== */
/* (J1) Pierwsze kroki: karta „Kroki” obok sceny (spis: ✓ zrobione · › bieżący · · przyszłe · – pominięty), na węższym kontenerze pod stopką,
   na telefonie zwijana; segment „etat / własny biznes” przy Pracy; lista obszarów z paskami udziału i legenda w kroku „Gotowe”;
   klocek ui.info (ikonka „i” z dymkiem); chmurka czatu w prawym dolnym rogu. */
#app.onboarding .page{ width:min(100% - 2rem, 70rem); }
.onb{ max-width:68rem; container-type:inline-size; }
.onb-siatka{ display:grid; grid-template-columns:minmax(0,1fr) 15.5rem; gap:1rem 1.1rem; align-items:start; }
.onb-lewa{ min-width:0; }
.onb-kroki{ background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:.85rem 1rem .95rem; box-shadow:var(--shadow); position:sticky; top:1rem; }
.onb-kroki-glowa{ display:flex; flex-wrap:wrap; align-items:baseline; gap:.15rem .5rem; width:100%; background:none; border:0; padding:0; font:inherit; color:inherit; text-align:left; }
.onb-kroki-glowa h3{ font-family:var(--display); font-size:1.05rem; margin:0; letter-spacing:-.01em; }
.onb-kroki-glowa .onb-hint{ flex-basis:100%; font-family:var(--mono); font-size:.64rem; color:var(--muted); letter-spacing:.04em; }
.onb-kroki-glowa .zwijak{ display:none; margin-left:auto; color:var(--muted); font-size:.8rem; }
.onb-kroki-lista{ display:flex; flex-direction:column; margin-top:.45rem; }
.onb-krok-poz{
  display:flex; align-items:center; gap:.5rem; width:100%; min-height:36px; padding:.35rem 0;
  border:0; border-bottom:1px solid var(--line); background:none; text-align:left; font:inherit; font-size:.86rem; color:var(--ink-2); cursor:pointer;
}
.onb-krok-poz:last-child{ border-bottom:0; }
.onb-krok-poz .znak{ font-family:var(--mono); font-size:.74rem; width:.8rem; flex:none; text-align:center; }
.onb-krok-poz .nr{ font-family:var(--mono); font-size:.72rem; color:var(--muted); width:1.1rem; flex:none; }
.onb-krok-poz .nazwa{ flex:1; min-width:0; }
.onb-krok-poz .onb-hint{ font-size:.66rem; color:var(--muted); white-space:nowrap; }
.onb-krok-poz.zrobiony{ color:var(--ink); }
.onb-krok-poz.zrobiony .znak{ color:var(--good); }
.onb-krok-poz.teraz{ color:var(--accent-ink); font-weight:600; }
.onb-krok-poz.teraz .znak{ color:var(--accent); }
.onb-krok-poz.pominiety .nazwa{ text-decoration:line-through; color:var(--muted); }
.onb-krok-poz:disabled{ cursor:default; }
.onb-krok-poz:not(:disabled):hover .nazwa{ color:var(--accent-ink); }
.onb-kroki-nota{ font-size:.76rem; line-height:1.45; color:var(--muted); margin-top:.7rem; }
@container (max-width: 52rem){
  .onb-siatka{ grid-template-columns:1fr; }
  .onb-kroki{ position:static; order:2; }
}
@media (max-width:899px){
  .onb-kroki-glowa{ cursor:pointer; }
  .onb-kroki-glowa .zwijak{ display:inline; }
  .onb-kroki.zwinieta .onb-kroki-lista, .onb-kroki.zwinieta .onb-kroki-nota{ display:none; }
}
/* segment „etat / własny biznes” pod przełącznikiem Pracy (uwaga A Nati) */
.onb-etat{ display:flex; flex-wrap:wrap; align-items:center; gap:.45rem .7rem; margin-top:.55rem; font-size:.8rem; color:var(--muted); }
.onb-etat .segm{ display:inline-flex; border:1px solid var(--line-2); border-radius:999px; overflow:hidden; background:var(--surface); }
.onb-etat .segm button{ font:inherit; font-size:.8rem; padding:.35rem .85rem; border:0; background:none; color:var(--ink-2); cursor:pointer; min-height:34px; }
.onb-etat .segm button + button{ border-left:1px solid var(--line-2); }
.onb-etat .segm button[aria-pressed="true"]{ background:var(--accent); color:#fff; font-weight:600; }
.onb-etat .opis{ flex-basis:100%; font-size:.76rem; line-height:1.4; }
/* krok „Gotowe”: lista obszarów z paskami udziału (kolejność priorytetów) + legenda kolorów (uwaga G Nati) */
.onb-obszary-tytul{ font-family:var(--mono); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin:1rem 0 .15rem; display:flex; justify-content:space-between; gap:.5rem; }
.onb-obszary{ display:flex; flex-direction:column; }
.onb-obszar{
  display:grid; grid-template-columns:1rem minmax(0,1fr) auto 3rem; align-items:center; column-gap:.55rem; row-gap:.25rem;
  padding:.4rem 0; border-bottom:1px solid var(--line); font-size:.86rem;
}
.onb-obszar:last-child{ border-bottom:0; }
.onb-obszar .sw{ width:12px; height:12px; border-radius:3px; display:inline-block; flex:none; }
.onb-obszar .nazwa{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.onb-obszar .nazwa small{ color:var(--muted); font-size:.74rem; margin-left:.3rem; }
.onb-obszar .czas{ font-family:var(--mono); font-size:.8rem; white-space:nowrap; text-align:right; }
.onb-obszar .proc{ font-family:var(--mono); font-size:.7rem; color:var(--muted); text-align:right; }
.onb-obszar .pasek{ grid-column:2 / -1; height:6px; border-radius:3px; background:var(--sunken); overflow:hidden; }
.onb-obszar .pasek i{ display:block; height:100%; border-radius:3px; }
.onb-obszar.rama{ color:var(--ink-2); }
.onb-obszar.rama .pasek{ opacity:.55; }
.onb-legenda{ display:flex; flex-wrap:wrap; gap:.3rem .9rem; margin-top:.5rem; font-size:.74rem; color:var(--muted); }
.onb-legenda span{ display:inline-flex; align-items:center; gap:.35rem; }
.onb-legenda .sw{ width:10px; height:10px; border-radius:3px; display:inline-block; }
/* klocek ui.info: ikonka „i” + dymek (desktop: najechanie / fokus; telefon: klik, dymek przypięty u dołu ekranu) */
.info{ position:relative; display:inline-flex; align-items:center; vertical-align:middle; margin-left:.4rem; font-weight:400; letter-spacing:0; }
.info-btn{
  position:relative; width:20px; height:20px; padding:0; border-radius:50%; border:1px solid var(--line-2); background:var(--surface-2);
  color:var(--accent-ink); font:600 .72rem/1 var(--mono); cursor:pointer; display:inline-flex; align-items:center; justify-content:center;
}
.info-btn::before{ content:''; position:absolute; inset:-10px; }   /* pole dotyku ≥ 40 px */
.info-btn:hover, .info-btn:focus-visible, .info.otwarty .info-btn{ border-color:var(--accent); background:var(--accent-soft); }
.info-dymek{
  display:none; position:absolute; z-index:45; left:50%; top:calc(100% + .5rem); transform:translateX(-50%);
  width:min(22rem, 86vw); padding:.6rem .75rem; background:var(--surface); color:var(--ink); border:1px solid var(--line-2); border-radius:10px;
  box-shadow:var(--shadow-lg); font-family:var(--body); font-size:.8rem; line-height:1.45; font-weight:400;
  letter-spacing:0; text-align:left; white-space:normal; text-transform:none;
}
@media (hover:hover){ .info:hover .info-dymek{ display:block; } }
.info-btn:focus-visible + .info-dymek, .info.otwarty .info-dymek{ display:block; }
@media (max-width:719px){
  .info-dymek{ position:fixed; left:.75rem; right:.75rem; top:auto; bottom:calc(var(--safe-b, 0px) + 1rem); width:auto; transform:none; z-index:75; }
  body.onboarding .info-dymek{ bottom:calc(var(--safe-b, 0px) + 4.8rem); }   /* nad przyklejonym paskiem „Zapytaj przewodnika” */
}
/* chmurka czatu — stały przycisk w prawym dolnym rogu (uwaga H Nati); znika, gdy panel czatu / arkusz jest otwarty, w logowaniu i onboardingu */
.czat-chmurka{
  position:fixed; right:max(1rem, var(--safe-r, 0px)); bottom:calc(1rem + var(--safe-b, 0px)); z-index:34;
  display:inline-flex; align-items:center; gap:.5rem; min-height:52px; padding:0 1.15rem 0 .95rem; border:0; border-radius:999px;
  background:var(--accent); color:#fff; font:600 .9rem/1 var(--body); cursor:pointer;
  box-shadow:0 10px 28px rgba(25,19,23,.28); transition:transform .15s, box-shadow .15s;
}
.czat-chmurka .ikona{ width:24px; height:24px; flex:none; }
.czat-chmurka:hover{ transform:translateY(-1px); box-shadow:0 14px 32px rgba(25,19,23,.32); }
.czat-chmurka:focus-visible{ outline:2px solid var(--accent-ink); outline-offset:3px; }
.czat-chmurka[hidden]{ display:none; }
body.czat-otwarty .czat-chmurka, body.sheet-otwarty .czat-chmurka, #app.gosc .czat-chmurka, #app.onboarding .czat-chmurka{ display:none; }
@media (max-width:719px){
  .czat-chmurka{ bottom:calc(var(--tabbar-h) + var(--safe-b) + .7rem); right:.8rem; min-height:48px; padding:0 .95rem 0 .8rem; font-size:.84rem; }
  body:has(.paleta-pas) .czat-chmurka{ bottom:calc(var(--tabbar-h) + var(--safe-b) + 4.6rem); }   /* nad paletą pędzli w karcie dnia */
}
@media print{ .czat-chmurka, .info-dymek{ display:none !important; } }

/* ==== 0.8.0 D: ustawienia ==== */
/* poziome menu sekcji Ustawień (pomysł z public/nowy/: „Wszystkie · Źródła · Skróty na iPhonie · …”; klik filtruje do jednej sekcji, hash #sekcja) */
.ust-zakladki{ display:flex; flex-wrap:wrap; gap:.3rem; margin:0 0 .9rem; }
.ust-zakladki button{
  font:inherit; font-size:.8rem; cursor:pointer; background:var(--surface); color:var(--ink-2); white-space:nowrap;
  border:1px solid var(--line-2); border-radius:999px; padding:.3rem .75rem; min-height:34px;
}
.ust-zakladki button:hover{ border-color:var(--accent); color:var(--accent-ink); }
.ust-zakladki button[aria-pressed="true"]{ background:var(--accent); border-color:var(--accent); color:#fff; font-weight:600; }
:root[data-theme="ciemny"] .ust-zakladki button[aria-pressed="true"], :root:not([data-theme="jasny"]) .ust-zakladki button[aria-pressed="true"]{ color:#1a1013; }
.section[hidden]{ display:none; }
@media (max-width:719px){
  .ust-zakladki{ flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; margin:0 -1rem .8rem; padding:0 1rem .35rem; }
  .ust-zakladki::-webkit-scrollbar{ display:none; }
  .ust-zakladki button{ flex:none; min-height:40px; }
}
/* rama dnia (okna snu/pracy/domu, dni robocze) z cementem */
.ust-rama-dni{ display:flex; flex-wrap:wrap; gap:.3rem; }
.ust-rama-dni button{
  font:inherit; font-size:.76rem; font-family:var(--mono); cursor:pointer; background:var(--surface); color:var(--ink-2);
  border:1px solid var(--line-2); border-radius:7px; padding:.28rem .55rem; min-width:2.6rem; min-height:34px;
}
.ust-rama-dni button[aria-pressed="true"]{ background:var(--accent); border-color:var(--accent); color:#fff; }
:root[data-theme="ciemny"] .ust-rama-dni button[aria-pressed="true"], :root:not([data-theme="jasny"]) .ust-rama-dni button[aria-pressed="true"]{ color:#1a1013; }
.ust-rama-dni button:disabled, .ust-rama input:disabled, .ust-rama select:disabled{ opacity:.55; cursor:not-allowed; }
.ust-rama-cement{ display:flex; flex-wrap:wrap; align-items:center; gap:.4rem .7rem; font-size:.84rem; color:var(--ink-2); margin-bottom:.6rem; padding:.5rem .7rem; border-radius:9px; background:var(--surface-2); border:1px solid var(--line); }
.ust-rama-cement[data-scementowana="true"]{ border-color:var(--warn); color:var(--ink); }
.ust-rama-cement .num{ color:var(--warn); }
.ust-rama .pole-godzin{ display:flex; align-items:center; gap:.35rem; flex-wrap:wrap; }
.ust-rama .pole-godzin input[type=time]{ min-width:6rem; }
/* przypomnienia: pory, częstotliwość, zgoda na powiadomienia */
.ust-przyp-rzad{ display:flex; flex-wrap:wrap; align-items:center; gap:.35rem .6rem; font-size:.84rem; color:var(--ink-2); margin:.35rem 0 0 2.6rem; }
.ust-przyp-rzad .pole1{ width:auto; min-width:0; }
.ust-przyp-rzad input[type=time]{ min-width:6rem; }
.ust-przyp-zgoda{ font-size:.78rem; color:var(--muted); }
.przyp-toast a{ color:inherit; text-decoration:underline; margin-left:.25rem; }
@media (max-width:719px){ .ust-przyp-rzad{ margin-left:0; } }
/* badge limitu wiadomości: w panelu czatu i przy wejściu do czatu (zakładka „Asystentka”, menu) */
.czat-badge-limit{
  display:flex; flex-wrap:wrap; align-items:center; gap:.35rem .7rem; padding:.45rem .85rem; flex:none;
  font-size:.8rem; color:var(--ink); background:var(--accent-soft); border-bottom:1px solid var(--line);
}
.czat-badge-limit .btn-ghost{ min-height:32px; padding:.15rem .6rem; font-size:.76rem; margin-left:auto; }
.czat-limit b{ font-size:.9rem; }
.tabbar a{ position:relative; }
.tab-licznik{
  position:absolute; top:.3rem; left:calc(50% + .35rem); font-family:var(--mono); font-size:.58rem; font-weight:600; line-height:1;
  color:#fff; background:var(--warn); border-radius:999px; padding:.14rem .34rem; min-width:1.1rem; text-align:center; pointer-events:none;
}
.tab-licznik.zero{ background:var(--alarm); }
.drawer nav a .tab-licznik{ position:static; width:auto; flex:none; margin-left:auto; font-size:.58rem; }   /* .drawer nav a span ma sztywne 1.05rem — licznik szerszy */
/* badge cementu ramy w stopce menu */
.rama-badge{ display:inline-block; margin-top:.15rem; }
.rama-badge.scementowana{ color:var(--warn); }

/* ==== 0.8.0 B: kafelki ==== */
/* Uwagi Nati (Tydzień 3.A): zaznaczony kafelek i jego opis były mało widoczne. Zaznaczenie = obramowanie w kolorze akcentu + tło + pogrubiona
   etykieta + strzałka w dół do opisu; opis = biała karta z grubą lewą krawędzią akcentu i cieniem; hover na kafelku z opisem = jaśniejsza ramka.
   Dotyczy siatek .metrics (panel dnia, tydzień, miesiąc, rok) — struktura .kafelki > .metrics > .metric + .opis-slot bez zmian. */
.metric[data-metric]{ cursor:pointer; transition:background .15s, box-shadow .15s; }
.metric[data-metric]:hover{
  background:var(--surface-2);
  box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--accent) 45%, transparent);
  z-index:2;
}
.metric[data-metric]:hover .lbl{ color:var(--accent-ink); }
.metric[aria-expanded="true"]{
  background:color-mix(in srgb, var(--accent) 14%, var(--surface));
  box-shadow:inset 0 0 0 3px var(--accent), 0 6px 16px -8px color-mix(in srgb, var(--accent) 70%, transparent);
  z-index:3;
}
.metric[aria-expanded="true"] .lbl{ color:var(--accent-ink); font-weight:700; }
.metric[aria-expanded="true"] .lbl::after{ content:' ▾'; letter-spacing:0; }
/* strzałka pod zaznaczonym kafelkiem — wskazuje opis, który otwiera się pod siatką */
.metric[aria-expanded="true"]::after{
  content:''; position:absolute; left:50%; bottom:-.62rem; width:1.1rem; height:1.1rem; z-index:4;
  transform:translateX(-50%) rotate(45deg); background:var(--accent); border-radius:2px;
}
/* opis: kontrastowa karta zamiast bladego tła */
.opis{
  background:var(--surface); border:2px solid var(--accent); border-left-width:8px; border-radius:12px;
  box-shadow:0 10px 26px -12px color-mix(in srgb, var(--accent) 60%, transparent), var(--shadow);
  margin-top:.55rem; padding:1rem 1.2rem 1.1rem;
}
.opis h3{ font-size:1.12rem; color:var(--accent-ink); }
.opis h3::before{ content:'ⓘ'; margin-right:.4rem; font-weight:400; }
.opis > p{ color:var(--ink); font-size:.92rem; line-height:1.55; }
.opis .o-lbl{ color:var(--accent-ink); font-weight:600; }
.opis .o-box{ border-color:color-mix(in srgb, var(--accent) 35%, var(--line)); }
.opis .zamknij{ color:var(--accent-ink); border-color:var(--accent); font-weight:600; background:var(--accent-soft); }
.opis .zamknij:hover{ background:var(--accent); color:#fff; }
/* ramka „Koszt oderwania” (Nati 3.I): zdanie zachęcające na początku */
.opis .o-opr .zach{ display:block; color:var(--accent-ink); font-weight:600; font-size:.86rem; margin-bottom:.2rem; }
/* dymek „i” przy praktykach (tekst wieloliniowy: zdanie ogólne + cztery praktyki) */
.info-dymek{ white-space:pre-line; }
.info-praktyki .info-dymek{ max-width:min(32rem, 90vw); text-align:left; }
.md-sum .info{ margin-left:.15rem; }
/* laptop 16:10 (1280×800, 1440×900): opis kafelka nie może wypaść poza kolumnę treści, a wzór na hover — poza kafelek z prawej */
.opis-slot{ min-width:0; }
.opis{ max-width:100%; overflow-wrap:anywhere; }
.metric:nth-child(n+4) .pop{ max-width:min(19rem, calc(100vw - 20rem)); }
@media (max-width:719px){
  .metric[aria-expanded="true"]::after{ display:none; }
  .metric[aria-expanded="true"]{ box-shadow:inset 0 0 0 3px var(--accent); }
  .opis{ border-left-width:6px; padding:.85rem .9rem 1rem; }
}

/* ==== 0.8.0 C: karta ==== */
/* Nagłówek karty dnia (uwagi Nati C/9, E, F, I): kafelek z datą + hasło dnia, pod nimi pełnej szerokości pasek Mistrzowskiej Decyzji;
   podpowiedź pod siatką; badge blokady decyzji (licznik okna 2 h / scementowana / brak decyzji). Cytat zniknął z nagłówka. */
.kartka{ flex-wrap:wrap; }
.kartka .haslo{ flex:1 1 12rem; min-width:0; padding:.55rem .9rem; display:flex; flex-direction:column; justify-content:center; }
.kartka .haslo .txt{ font-family:var(--display); font-size:.95rem; font-weight:600; line-height:1.35; letter-spacing:-.01em; }
.kartka .haslo .aut{ font-family:var(--mono); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-top:.3rem; }
.kartka .md-pas{ flex:1 1 100%; border-top:1px solid var(--line); padding:.55rem .9rem .6rem; background:var(--surface-2); }
.md-pas-hd{ display:flex; flex-wrap:wrap; align-items:baseline; gap:.25rem 1rem; margin-bottom:.35rem; }
.md-pas .md-eyebrow{ font-family:var(--mono); font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-ink); font-weight:700; white-space:nowrap; }
.md-pas .md-pod{ font-size:.72rem; color:var(--muted); margin-left:auto; text-align:right; }
@media (max-width:1180px){
  .md-pas .md-pod{ flex-basis:100%; margin-left:0; text-align:left; }   /* ciasno (1280 z menu): podpis w osobnym wierszu pod etykietą */
  .md-wiersz .md-tekst{ flex-basis:100%; }                                /* treść w całym wierszu, ✓/✕/badge pod nią */
  .md-akcje{ margin-left:0; }
}
.md-wiersz{ display:flex; flex-wrap:wrap; align-items:center; gap:.35rem .6rem; padding:.2rem 0; }
.md-wiersz + .md-wiersz{ border-top:1px dashed var(--line); margin-top:.15rem; padding-top:.4rem; }
.md-wiersz .md-tekst{
  flex:1 1 14rem; min-width:0; text-align:left; font:inherit; font-family:var(--display); font-size:1.05rem; font-weight:700; line-height:1.3;
  letter-spacing:-.01em; color:var(--ink); background:none; border:1px solid transparent; border-radius:8px; padding:.25rem .4rem; cursor:text;
  overflow-wrap:anywhere;
}
.md-wiersz .md-tekst:hover{ border-color:var(--line-2); background:var(--surface); }
.md-wiersz.wyk .md-tekst{ color:var(--good); }
.md-wiersz.nie .md-tekst{ color:var(--alarm); text-decoration:line-through; text-decoration-thickness:1px; }
.md-wiersz.cement .md-tekst{ cursor:default; }
.md-wiersz .z-gw{ color:var(--over); font-size:.9rem; }
.md-wiersz .md-input{ flex:1 1 14rem; min-width:0; }
.md-wiersz.pusta .md-input{ flex:1 1 16rem; }
.md-edycja{ flex:1 1 100%; display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; }
.md-edycja.cement .md-input{ flex-basis:100%; }   /* zablokowana treść w całym wierszu, pod nią kod + „Odblokuj” */
.md-edycja .md-kod{ flex:0 1 10rem; min-width:7rem; font-family:var(--mono); letter-spacing:.12em; text-transform:uppercase; }
.md-edycja .md-kod-info{ font-size:.78rem; color:var(--alarm); }
.md-akcje{ display:flex; flex-wrap:wrap; align-items:center; gap:.3rem; margin-left:auto; }
.md-akcje .md-stan{ min-width:2.3rem; padding:.2rem .5rem; }
.badge.md-blokada{ font-family:var(--mono); font-size:.68rem; white-space:nowrap; }
.badge.md-blokada.okno{ border-color:var(--good); color:var(--good); }
.badge.md-blokada.cement{ border-color:var(--line-2); color:var(--muted); background:var(--sunken); }
.badge.alarm{ border-color:var(--alarm); color:var(--alarm); background:color-mix(in srgb, var(--alarm) 10%, transparent); font-weight:600; }
.doba-hint{ font-size:.76rem; color:var(--muted); margin-top:.45rem; }
.doba-pion + .doba-hint{ margin-top:.3rem; }
.zakres-wybor .btn-ghost{ font-size:.78rem; padding:.3rem .55rem; min-height:34px; }
.pola3 .rz.cement input:disabled{ color:var(--muted); background:var(--sunken); cursor:not-allowed; }
.pola3 .rz.cement .btn-x:disabled{ opacity:.35; cursor:not-allowed; }
@media (max-width:719px){
  .kartka .haslo{ flex-basis:100%; padding:.5rem .7rem; }
  .kartka .haslo .txt{ font-size:.88rem; }
  .kartka .md-pas{ padding:.5rem .7rem .55rem; }
  .md-wiersz .md-tekst{ flex-basis:100%; font-size:1rem; }
  .md-akcje{ margin-left:0; width:100%; }
  .md-akcje .md-stan{ min-height:40px; min-width:2.8rem; }
  .md-akcje .btn-x{ min-width:40px; min-height:40px; }
  .md-wiersz.pusta .md-input{ flex-basis:100%; }
}

/* ==== 0.9.0 G2 ==== */
/* Ustawienia → Rama dnia: przełącznik „etat / własny biznes” (seg z makiety); Agent i przypomnienia: godzina domykania doby */
.ust-praca-tryb button{ min-height:34px; }
.ust-domykanie{ display:inline-flex; align-items:center; gap:.45rem; flex-wrap:wrap; }
.ust-domykanie .ds{ font-size:.78rem; color:var(--muted); }
@media (max-width:719px){
  .ust-praca-tryb button{ min-height:40px; }
}

/* ==== 0.9.0 G3 ==== kody rejestracyjne programu Przełom: zakładka /admin → Kody, karta kodu klientki, chip w panelu coacha */
.kody-form{ display:grid; grid-template-columns:repeat(auto-fit, minmax(13rem, 1fr)); gap:.55rem .8rem; }
.kody-form .kody-pole{ display:flex; flex-direction:column; gap:.2rem; }
.kody-form .kody-pole.szeroka{ grid-column:1 / -1; }
.kody-form .kody-pole .ds{ font-size:.72rem; color:var(--muted); }
.kody-form .kody-pole input,.kody-form .kody-pole select{ width:100%; }
.kody-form .pole-rzad{ display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; }
.kody-form .pole-rzad .kody-kod-input{ flex:1 1 12rem; }
.kody-kod-input,.kody-kod{ font-family:var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.kody-kod{ font-size:.86rem; background:var(--sunken); border:1px solid var(--line); border-radius:6px; padding:.08rem .4rem; white-space:nowrap; }
.kody-tabela tr.kody-nieaktywny td{ color:var(--muted); }
.kody-tabela tr.kody-nieaktywny .kody-kod{ text-decoration:line-through; text-decoration-thickness:1px; }
.kody-uzycia{ font-size:.76rem; margin-top:.15rem; }
.kody-uzycia summary{ cursor:pointer; color:var(--ink-2); }
.kody-uzycia ul{ list-style:none; margin:.2rem 0 0; padding:0; display:grid; gap:.1rem; text-align:left; }
.pk-kod{ display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; }
.pk-kod input{ flex:1 1 11rem; min-width:0; font-family:var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.pk-kod .btn-main{ min-height:40px; }
.pk-kod-blad{ color:var(--alarm); font-size:.78rem; margin-top:.35rem; }
.pk-kod-ok{ display:flex; flex-wrap:wrap; gap:.3rem .6rem; align-items:center; font-size:.86rem; }
.onb-kod{ margin-top:.5rem; padding:.55rem .7rem; border:1px dashed var(--line-2); border-radius:10px; font-size:.84rem; }
.onb-kod .pk-kod{ margin-top:.35rem; }
.coach-chip.coach-chip-przelom{ border-color:var(--accent); color:var(--accent); font-weight:600; }
@media (max-width:719px){ .kody-form{ grid-template-columns:1fr; } .pk-kod input{ flex-basis:100%; } .pk-kod .btn-main{ width:100%; } }

/* ==== 1.0.0 H3 ==== */
/* Podobszary — „Co dokładnie robiłaś” (panel dnia), „Praca w szczegółach” (tydzień, miesiąc): obszar → opisy przy żetonach z paskiem udziału;
   „bez opisu” i „pozostałe opisy” szarym. Raport: strona „Praca w podobszarach” (.a4-podob na .a4-tor). */
.podob{ padding:.45rem 0; border-bottom:1px solid var(--line); }
.podob:last-of-type{ border-bottom:0; }
.podob-head{ display:flex; align-items:center; gap:.4rem; font-size:.88rem; font-weight:500; margin-bottom:.25rem; }
.podob-head .podob-razem{ margin-left:auto; font-family:var(--mono); font-size:.74rem; color:var(--ink-2); font-weight:400; }
.podob-row{ display:grid; grid-template-columns:minmax(6rem, 11rem) 1fr auto; gap:.3rem .7rem; align-items:center; padding:.16rem 0; font-size:.82rem; }
.podob-row .podob-opis{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.podob-row .podob-bar{ position:relative; display:block; height:10px; background:var(--sunken); border-radius:4px; overflow:hidden; }
.podob-row .podob-bar i{ position:absolute; inset-block:0; left:0; display:block; border-radius:4px; background:var(--c, var(--accent)); }
.podob-row .podob-min{ font-family:var(--mono); font-size:.7rem; color:var(--muted); white-space:nowrap; font-variant-numeric:tabular-nums; }
.podob-row.bez-opisu,.podob-row.inne{ color:var(--muted); }
.podob-row.bez-opisu .podob-bar i{ background:repeating-linear-gradient(135deg,var(--line-2) 0 3px,transparent 3px 7px); }
.podob-row.inne .podob-bar i{ background:var(--line-2); }
.podob-zacheta{ margin-top:.55rem; padding:.45rem .65rem; border-left:3px solid var(--warn); background:var(--surface-2); border-radius:0 8px 8px 0; font-size:.84rem; color:var(--ink-2); }
.a4-tor.a4-podob .lb .a4-podob-opis{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.a4-tor.a4-podob.bez-opisu,.a4-tor.a4-podob.inne{ color:#8a7d84; }
.a4-tor.a4-podob.bez-opisu .pas u{ background:repeating-linear-gradient(135deg,#cec2c8 0 3px,transparent 3px 7px); }
.a4-podob-zdanie{ font-size:1.02rem; line-height:1.5; }
@media (max-width:719px){
  .podob-row{ grid-template-columns:1fr auto; }
  .podob-row .podob-bar{ grid-column:1 / -1; order:3; }
}

/* ==== 1.0.0 H2 ==== zrównoleglanie: znacznik żetonu z dodatkowym obszarem, chipy w arkuszu zakresu, kafelek „Zrównoleglenie” w karcie, zakładka „Pary obszarów” */
.kw.on.dodatk, .doba-pion .kw.on.dodatk{ background-image:linear-gradient(to top, var(--c2, var(--ink-2)) 0 34%, transparent 34%); }
.zr-dodatkowe{ margin-top:.75rem; }
.zr-dodatkowe .pole-lbl{ display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.zr-dodatkowe .pole-lbl .btn-ghost{ font-size:.78rem; padding:.3rem .55rem; min-height:34px; }
.zr-dodatkowe .pole-lbl .pod{ font-size:.74rem; color:var(--muted); }
.zr-chipy{ display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.4rem; }
.zr-chip{ font:inherit; font-size:.8rem; cursor:pointer; background:var(--surface); border:1px solid var(--line); border-left:3px solid var(--c, var(--line)); border-radius:999px; padding:.25rem .65rem .25rem .5rem; color:var(--ink-2); display:inline-flex; align-items:center; gap:.35rem; min-height:34px; }
.zr-chip[aria-pressed="true"]{ background:var(--accent-soft); border-color:var(--accent); border-left-color:var(--c, var(--accent)); color:var(--ink); font-weight:600; }
.zr-chip:disabled{ opacity:.45; cursor:not-allowed; }
.zr-ostrzez{ font-size:.78rem; color:var(--alarm); margin-top:.4rem; }
.zr-ostrzez.polowa{ color:var(--warn); }
.zr-info{ font-size:.74rem; color:var(--muted); margin-top:.35rem; }
.licznik.zrown .lic-row b{ font-size:1.05rem; }
.licznik.zrown .zr-proc b{ font-size:1.3rem; }
.zrown .zr-pary{ font-size:.76rem; color:var(--ink-2); margin-top:.4rem; display:grid; gap:.15rem; }
.zrown .zr-pary span{ display:flex; gap:.4rem; align-items:baseline; }
.zrown .zr-pary span b{ margin-left:auto; font-family:var(--mono); font-weight:500; font-size:.72rem; }
.zrown .zr-uwaga{ font-size:.72rem; color:var(--muted); margin-top:.45rem; line-height:1.35; }
.pary-form{ display:grid; grid-template-columns:repeat(auto-fit, minmax(12rem, 1fr)); gap:.55rem .8rem; align-items:end; }
.pary-form .admin-pole{ display:flex; flex-direction:column; gap:.25rem; }
.pary-form .admin-pole .ds{ font-size:.72rem; color:var(--muted); }
.pary-form select,.pary-form input{ width:100%; }
.pary-form .szeroka{ grid-column:1 / -1; }
.pary-ocena{ display:inline-flex; gap:.3rem; flex-wrap:wrap; }
.pary-ocena button{ font:inherit; font-size:.78rem; cursor:pointer; border:1px solid var(--line); background:var(--surface); border-radius:999px; padding:.25rem .6rem; min-height:32px; color:var(--ink-2); }
.pary-ocena button[aria-pressed="true"]{ border-color:var(--accent); background:var(--accent-soft); color:var(--ink); font-weight:600; }
.pary-ocena button[data-ocena="nie_lacz"][aria-pressed="true"]{ border-color:var(--alarm); background:color-mix(in srgb, var(--alarm) 12%, var(--surface)); }
.pary-ocena button[data-ocena="polowa"][aria-pressed="true"]{ border-color:var(--warn); background:color-mix(in srgb, var(--warn) 14%, var(--surface)); }
.pary-ocena button:disabled{ opacity:.5; cursor:not-allowed; }
.pary-tabela td.pary-uwagi input{ width:100%; min-width:11rem; }
.pary-tabela .ds{ font-size:.72rem; color:var(--muted); }
.pary-szukaj{ display:flex; gap:.6rem; align-items:center; flex-wrap:wrap; margin-bottom:.6rem; }
.pary-szukaj input{ flex:1 1 14rem; }
.pary-pill{ font-family:var(--mono); font-size:.68rem; border-radius:999px; padding:.1rem .5rem; border:1px solid currentColor; white-space:nowrap; }
.pary-pill.nie_lacz{ color:var(--alarm); } .pary-pill.polowa{ color:var(--warn); } .pary-pill.pelny{ color:var(--good); }
.a4-zrown b{ color:#a8365f; }
@media (max-width:719px){ .pary-form{ grid-template-columns:1fr; } .zr-chip{ min-height:40px; } .zr-dodatkowe .pole-lbl .btn-ghost{ min-height:40px; } }

/* ==== 1.1.0 P3 ==== nazwy Nati (obszary niezbędne / priorytety): paleta „Obszary” z podpisami grup, chip typu dnia na karcie, wybór ikony (ui.wyborIkony),
   chip typu dnia w podglądzie planu, „Zmiany priorytetów w tym okresie” (tydzień, miesiąc, raport) */
.pal-grupa{ font-family:var(--mono); font-size:.62rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin:.15rem 0 .05rem .2rem; }
.badge.typ-dnia{ font:inherit; font-size:.72rem; cursor:pointer; line-height:1.6; }
.badge.typ-dnia:hover:not(:disabled){ border-color:var(--accent); color:var(--ink); }
.badge.typ-dnia.reczny{ border-color:var(--over); color:var(--over); }
.badge.typ-dnia:disabled{ opacity:.6; cursor:not-allowed; }
.typ-dnia-wybor{ display:grid; gap:.45rem; }
.typ-dnia-wybor .typ-opcja{ display:flex; flex-direction:column; align-items:flex-start; gap:.1rem; min-height:48px; text-align:left; padding:.45rem .7rem; }
.typ-dnia-wybor .typ-nazwa{ font-weight:600; }
.typ-dnia-wybor .typ-opis, .typ-dnia-wybor .typ-dom{ font-size:.74rem; color:var(--muted); font-weight:400; }
.hm-prow.z-typem{ grid-template-columns:2.6rem 4.6rem 1fr 4.6rem; }
.typ-chip{ font-family:var(--mono); font-size:.62rem; border:1px solid var(--line); border-radius:999px; padding:.05rem .45rem; color:var(--muted); text-align:center; white-space:nowrap; }
.typ-chip.roboczy{ border-color:color-mix(in srgb, var(--praca) 50%, transparent); color:var(--praca); }
.typ-chip.weekend{ border-color:color-mix(in srgb, var(--good) 50%, transparent); color:var(--good); }
.plan-czasy-link{ margin-top:.7rem; }
.wybor-ikony{ display:flex; flex-direction:column; gap:.4rem; min-width:0; }
.wi-biezaca{ display:inline-flex; align-items:center; gap:.5rem; font:inherit; cursor:pointer; border:1px solid var(--line); background:var(--surface-2); border-radius:8px; padding:.25rem .6rem .25rem .35rem; min-height:40px; color:var(--ink-2); width:max-content; }
.wi-biezaca:hover{ border-color:var(--accent); color:var(--ink); }
.wi-biezaca[aria-expanded="true"]{ border-color:var(--accent); background:var(--accent-soft); }
.wi-emoji{ font-size:1.35rem; line-height:1; }
.wi-lbl{ font-size:.78rem; }
.wi-panel{ border:1px solid var(--line); border-radius:10px; background:var(--surface); padding:.5rem; display:grid; gap:.45rem; }
.wi-szukaj{ font:inherit; font-size:.9rem; color:var(--ink); background:var(--surface-2); border:1px solid var(--line); border-radius:8px; padding:.4rem .6rem; min-height:40px; width:100%; box-sizing:border-box; }
.wi-siatka{ max-height:16rem; overflow:auto; display:grid; gap:.35rem; }
.wi-grupa-nazwa{ font-family:var(--mono); font-size:.62rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin:.25rem 0 .15rem; }
.wi-ikony{ display:flex; flex-wrap:wrap; gap:.25rem; }
.wi-ikona{ font:inherit; font-size:1.2rem; line-height:1; width:2.2rem; height:2.2rem; border:1px solid var(--line); border-radius:8px; background:var(--surface-2); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; padding:0; }
.wi-ikona:hover{ border-color:var(--accent); }
.wi-ikona[aria-pressed="true"]{ border-color:var(--accent); background:var(--accent-soft); box-shadow:0 0 0 1px var(--accent) inset; }
.wi-pusto{ font-size:.8rem; color:var(--muted); padding:.3rem 0; }
.wi-wlasna{ justify-self:start; }
.sheet-ikony .wi-panel{ border:0; padding:0; }
.sheet-ikony .wi-siatka{ max-height:60vh; }
.zmiany-prior .zmiana-prior{ font-size:.88rem; padding:.35rem 0; border-bottom:1px solid var(--line); }
.zmiany-prior .zmiana-prior:last-child{ border-bottom:0; }
.a4-zmiany-prior{ margin-bottom:.6rem; }
.a4-zmiana-prior{ font-size:.82rem; }
@media (max-width:719px){
  .wi-ikona{ width:2.6rem; height:2.6rem; font-size:1.35rem; }
  .hm-prow.z-typem{ grid-template-columns:2.2rem 4.2rem 1fr 4rem; gap:.4rem; }
  .badge.typ-dnia{ min-height:32px; }
  .typ-dnia-wybor .typ-opcja{ min-height:56px; }
}

/* ==== 1.1.0 P2 ==== */
/* Edytor priorytetów (public/js/priorytety-edytor.js) — Pierwsze kroki → „Priorytety” i Ustawienia → „Rama dnia”: zakładki typu dnia
   (przewijane na telefonie), obszary niezbędne z edycją w miejscu, „Twój czas”, lista priorytetów (kolor · nazwa · h:mm ±10 · propozycja ·
   Akceptuj / 🔒 · ▲▼), komunikat o kolejności, karta puli („Masz do dyspozycji …” / „Brakuje …” / „zostaje wolne”). */
.pe{ display:flex; flex-direction:column; gap:.9rem; margin-top:.8rem; }
.pe-zakladki{ display:flex; gap:.3rem; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; padding-bottom:.1rem; }
.pe-zakladki::-webkit-scrollbar{ display:none; }
.pe-zakladka{
  font:inherit; font-size:.82rem; white-space:nowrap; cursor:pointer; min-height:36px; padding:.35rem .85rem;
  border:1px solid var(--line-2); border-radius:999px; background:var(--surface); color:var(--ink-2);
}
.pe-zakladka:hover{ border-color:var(--accent); color:var(--accent-ink); }
.pe-zakladka[aria-selected="true"]{ background:var(--accent); border-color:var(--accent); color:#fff; font-weight:600; }
:root[data-theme="ciemny"] .pe-zakladka[aria-selected="true"], :root:not([data-theme="jasny"]) .pe-zakladka[aria-selected="true"]{ color:#1a1013; }
.pe-zakladka:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.pe-cement{ margin-bottom:0; flex-wrap:nowrap; align-items:flex-start; }
.pe-cement .pe-cement-tekst{ flex:1 1 auto; min-width:0; }
.pe-tytul{ display:flex; flex-wrap:wrap; align-items:baseline; gap:.2rem .6rem; margin-bottom:.35rem; }
.pe-tytul h3{ font-family:var(--display); font-size:1.02rem; font-weight:600; margin:0; letter-spacing:-.01em; }
.pe-tytul .ds{ font-size:.76rem; color:var(--muted); }
.pe-niezbedne, .pe-priorytety{ border:1px solid var(--line); border-radius:12px; padding:.7rem .85rem; background:var(--surface); }
.pe-onboarding .pe-niezbedne, .pe-onboarding .pe-priorytety{ background:var(--surface-2); }
.pe-wiersz{
  display:grid; grid-template-columns:1.6rem minmax(7rem,1fr) auto auto; align-items:center; gap:.35rem .6rem;
  padding:.45rem 0; border-bottom:1px solid var(--line);
}
.pe-wiersz:last-child{ border-bottom:0; }
.pe-ikona{ display:inline-flex; align-items:center; gap:.25rem; font-size:1.05rem; }
.pe-ikona .sw{ width:12px; height:12px; border-radius:3px; display:inline-block; flex:none; }
.pe-nazwa{ min-width:0; display:flex; flex-direction:column; gap:.05rem; }
.pe-nazwa .tt{ font-size:.9rem; font-weight:500; }
.pe-nazwa .ds{ font-size:.74rem; color:var(--muted); line-height:1.35; }
.pe-wart{ font-size:.86rem; white-space:nowrap; text-align:right; }
.pe-edycja{ display:flex; flex-wrap:wrap; align-items:center; gap:.35rem .6rem; justify-content:flex-end; }
.pe-edycja > .ds{ font-size:.76rem; color:var(--muted); }
.pe-okno{ display:flex; flex-wrap:wrap; align-items:center; gap:.35rem .7rem; justify-content:flex-end; }
.pe .pole-godzin{ display:flex; align-items:center; gap:.35rem; flex-wrap:wrap; }
.pe .pole-godzin input[type=time]{ min-width:6rem; }
.pe .ust-rama-dni{ flex-basis:100%; justify-content:flex-end; }
.pe-czas-pole{ display:inline-flex; align-items:center; gap:.2rem; }
.pe-czas{
  width:4.2rem; text-align:center; font:inherit; font-family:var(--mono); font-size:.86rem; font-variant-numeric:tabular-nums;
  padding:.3rem .35rem; border:1px solid var(--line-2); border-radius:7px; background:var(--surface); color:var(--ink); min-height:34px;
}
.pe-czas:focus-visible{ outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent); }
.pe-krok{
  font:inherit; font-family:var(--mono); font-size:.72rem; cursor:pointer; min-width:2.4rem; min-height:34px; padding:.2rem .35rem;
  border:1px solid var(--line-2); border-radius:7px; background:var(--surface); color:var(--ink-2);
}
.pe-krok:hover:not(:disabled){ border-color:var(--accent); color:var(--accent-ink); }
.pe-krok:disabled, .pe-czas:disabled, .pe input:disabled, .pe .ust-rama-dni button:disabled{ opacity:.55; cursor:not-allowed; }
.pe-twoj-czas{ display:flex; flex-wrap:wrap; align-items:baseline; gap:.2rem .5rem; margin-top:.6rem; padding-top:.5rem; border-top:1px dashed var(--line-2); }
.pe-twoj-czas .tt{ font-size:.92rem; font-weight:600; }
.pe-twoj-czas .tt b{ color:var(--accent-ink); font-size:1.02rem; }
.pe-twoj-czas .ds{ font-size:.76rem; color:var(--muted); }
.pe-komunikat{ font-size:.82rem; color:var(--ink-2); padding:.4rem .6rem; border-left:3px solid var(--accent); background:var(--accent-soft); border-radius:0 8px 8px 0; margin-bottom:.4rem; }
.pe-jak-weekend{ font-size:.8rem; color:var(--ink-2); padding:.35rem .55rem; border:1px dashed var(--line-2); border-radius:8px; margin-bottom:.45rem; display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; }
.pe-jak-weekend .pe-jak-weekend-btn{ font-size:.76rem; padding:.2rem .5rem; }
.pe-lista{ display:flex; flex-direction:column; }
.pe-poz{ grid-template-columns:1.3rem auto minmax(6rem,1fr) auto auto; }
.pe-poz-nr{ font-size:.76rem; color:var(--accent); font-weight:600; text-align:center; }
.pe-poz.zablokowany .pe-czas{ border-color:var(--warn); }
.pe-poz.zablokowany .pe-poz-nr{ color:var(--warn); }
.pe-nazwa-pole{
  width:100%; min-width:6rem; font:inherit; font-size:.9rem; font-weight:500; padding:.3rem .45rem; border:1px solid transparent; border-radius:7px;
  background:transparent; color:var(--ink); min-height:34px;
}
.pe-nazwa-pole:hover{ border-color:var(--line-2); }
.pe-nazwa-pole:focus-visible{ outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent); background:var(--surface); }
.pe-propozycja{ font-size:.72rem; color:var(--muted); white-space:nowrap; }
button.pe-propozycja{ font:inherit; font-size:.72rem; cursor:pointer; background:none; border:1px dashed var(--line-2); border-radius:999px; padding:.15rem .5rem; color:var(--ink-2); min-height:28px; }
button.pe-propozycja:hover{ border-color:var(--accent); color:var(--accent-ink); }
.pe-akcje{ display:flex; align-items:center; gap:.45rem; justify-content:flex-end; }
.pe-akceptuj{ min-height:34px; font-size:.78rem; }
.pe-klodka{ font:inherit; font-size:.95rem; cursor:pointer; min-width:2.6rem; min-height:34px; padding:.2rem .45rem; border:1px solid var(--warn); border-radius:7px; background:color-mix(in srgb, var(--warn) 12%, var(--surface)); }
.pe-klodka:hover{ border-color:var(--accent); }
.pe .ob-mv button{ min-width:1.6rem; min-height:16px; }
.pe-pula{ margin-top:.7rem; padding:.6rem .75rem; border-radius:10px; border:1px solid var(--line); background:var(--surface-2); font-size:.84rem; color:var(--ink-2); }
.pe-pula[data-pula="nadwyzka"]{ border-color:var(--good); }
.pe-pula[data-pula="brak"]{ border-color:var(--alarm); }
.pe-pula[data-pula="wolne"]{ border-style:dashed; }
.pe-pula[data-pula="zero"]{ background:transparent; border-color:var(--line); }
.pe-pula-tytul{ font-size:.95rem; font-weight:600; color:var(--ink); }
.pe-pula[data-pula="brak"] .pe-pula-tytul{ color:var(--alarm); }
.pe-pula[data-pula="nadwyzka"] .pe-pula-tytul{ color:var(--good); }
.pe-pula .ds{ font-size:.78rem; color:var(--muted); margin-top:.15rem; }
.pe-pula-akcje{ display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.5rem; }
.pe-pula-akcje .btn-main, .pe-pula-akcje .btn-ghost{ min-height:36px; }
.onb-krzywa .lbl2{ margin-right:.2rem; }
@media (max-width:719px){
  .pe-wiersz{ grid-template-columns:1.6rem minmax(0,1fr) auto; }
  .pe-wiersz .pe-edycja, .pe-wiersz .pe-okno{ grid-column:1 / -1; justify-content:flex-start; }
  .pe .ust-rama-dni{ justify-content:flex-start; }
  .pe-poz{ grid-template-columns:1.3rem auto minmax(0,1fr); }
  .pe-poz .pe-akcje{ grid-column:1 / -1; justify-content:space-between; }
  .pe-poz .ob-mv{ flex-direction:row; }
  .pe-poz .ob-mv button{ min-width:40px; min-height:34px; font-size:.7rem; }
  .pe-czas, .pe-krok, .pe-akceptuj, .pe-klodka, .pe-zakladka, .pe-nazwa-pole{ min-height:40px; }
  .pe-krok{ min-width:2.8rem; }
}

/* ==== 1.2.0 Q1 ==== */
/* Uwagi Macieja po 1.1.0 (edytor priorytetów, Pierwsze kroki, Ustawienia → Rama dnia): Pierwsze kroki na całą szerokość okna (karta „Kroki” zostaje
   po prawej); okienko puli nad oboma blokami; stałe tory wiersza priorytetu (nr · ikona+kolor · nazwa · czas · akcje; pasek udziału i podpis
   „propozycja …” w drugim wierszu siatki — długość podpisu nie rusza kolumny czasu, tabular-nums); paski udziału i pasek doby z legendą;
   ikona (ui.wyborIkony kompakt, panel pod przyciskiem) i paleta kolorów pod wierszem; wiersz „Niezaalokowany”; pytanie przy 0 min;
   przełączniki Praca etatowa / Dom; blok „Propozycja czasu (krzywa)”; dodawanie priorytetu; sekcje dodatkowe (hook Q2). */
#app.onboarding .page{ width:min(100% - 2rem, 82rem); }
@media (min-width:1080px){ #app.onboarding .page{ width:min(100% - 2.5rem, 82rem); } }
.onb{ max-width:none; }
.onb-scena .lead{ max-width:56rem; }
.onb-wlasny .wybor-ikony{ position:relative; }
.onb-wlasny .wybor-ikony .wi-panel{ position:absolute; left:0; top:calc(100% + .3rem); z-index:40; width:min(26rem, 92vw); box-shadow:var(--shadow-lg); }
/* okienko puli nad blokami */
.pe > .pe-pula{ margin-top:0; order:0; }
.pe-pula-tytul .pe-pula-typ{ font-weight:400; font-size:.78rem; color:var(--muted); }
/* obszary niezbędne: stała kolumna wartości + kolumna przełącznika */
.pe-niezbedny{ grid-template-columns:1.6rem minmax(7rem,1fr) 6.8rem auto 2.8rem; }
.pe-niezbedny .pe-wart{ min-width:6.8rem; font-family:var(--mono); font-variant-numeric:tabular-nums; }
.pe-przel{ display:flex; justify-content:flex-end; align-items:center; min-height:1.4rem; }
.pe-przel .switch{ margin-left:0; }
.pe-przelacznik:disabled{ opacity:.5; cursor:not-allowed; }
.pe-ocena{ white-space:normal; }
.pe-ocena-alarm{ color:var(--alarm); }
.pe-ocena-warn{ color:var(--warn); }
.pe-ocena-good{ color:var(--good); }
/* wiersz priorytetu: siatka ze stałymi torami */
.pe-poz, .pe-poz-wolne{ grid-template-columns:1.3rem 4.4rem minmax(5rem,1fr) 10.9rem 8.9rem; grid-auto-rows:auto; gap:.2rem .6rem; align-items:center; }
.pe-poz > .pe-poz-nr, .pe-poz-wolne > .pe-poz-nr{ grid-row:1; grid-column:1; }
.pe-poz > .pe-ikona, .pe-poz-wolne > .pe-ikona{ grid-row:1; grid-column:2; min-width:0; }
.pe-poz > .pe-nazwa, .pe-poz-wolne > .pe-nazwa{ grid-row:1; grid-column:3; }
.pe-poz > .pe-czas-pole, .pe-poz-wolne > .pe-wart{ grid-row:1; grid-column:4; justify-self:end; }
.pe-poz > .pe-akcje, .pe-poz-wolne > .pe-akcje{ grid-row:1; grid-column:5; min-width:0; }
.pe-poz > .pe-udzial, .pe-poz-wolne > .pe-udzial{ grid-row:2; grid-column:3; }
.pe-poz > .pe-propozycja, .pe-poz-wolne > .pe-propozycja{ grid-row:2; grid-column:4; justify-self:end; max-width:100%; overflow:hidden; text-overflow:ellipsis; }
.pe-poz > .pe-kolory, .pe-poz > .pe-zero{ grid-row:3; grid-column:1 / -1; }
.pe-czas{ width:4.6rem; flex:none; }
.pe-krok{ width:2.7rem; min-width:2.7rem; flex:none; padding-inline:0; }
.pe-czas-pole{ gap:.25rem; flex:none; }
.pe-akcje{ min-width:8.9rem; }
.pe-poz-wolne .pe-wart{ font-family:var(--mono); font-variant-numeric:tabular-nums; font-size:.9rem; color:var(--ink-2); }
.pe-poz-wolne .pe-nazwa .tt{ color:var(--ink-2); }
.pe-poz-wolne .pe-poz-nr{ color:var(--muted); }
.pe-sw-wolne{ width:12px; height:12px; border-radius:3px; background:var(--muted); opacity:.55; }
/* ikona (kompakt) i kolor w wierszu */
.pe-ikona{ gap:.3rem; }
.pe .wybor-ikony{ position:relative; }
.pe .wybor-ikony.wi-kompakt .wi-biezaca{ min-height:34px; min-width:2.4rem; padding:.1rem .3rem; border-radius:7px; justify-content:center; }
.pe .wybor-ikony.wi-kompakt .wi-emoji{ font-size:1.15rem; }
.pe .wybor-ikony .wi-panel{ position:absolute; left:0; top:calc(100% + .3rem); z-index:40; width:min(26rem, 92vw); box-shadow:var(--shadow-lg); }
.pe-kolor-btn{ width:16px; height:16px; border-radius:4px; border:1px solid rgba(0,0,0,.18); padding:0; cursor:pointer; flex:none; }
.pe-kolor-btn::before{ content:''; position:absolute; inset:-10px; }
.pe-kolor-btn{ position:relative; }
.pe-kolor-btn:hover, .pe-kolor-btn[aria-expanded="true"]{ outline:2px solid var(--accent); outline-offset:2px; }
.pe-kolory{ display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; padding:.45rem .6rem; border:1px dashed var(--line-2); border-radius:8px; background:var(--surface); }
.pe-kolor-opcja{ width:1.7rem; height:1.7rem; border-radius:50%; border:2px solid transparent; cursor:pointer; padding:0; box-shadow:0 0 0 1px rgba(0,0,0,.12); }
.pe-kolor-opcja:hover{ border-color:var(--ink-2); }
.pe-kolor-opcja[aria-pressed="true"]{ border-color:var(--ink); box-shadow:0 0 0 2px var(--surface) inset, 0 0 0 1px rgba(0,0,0,.12); }
.pe-kolor-wlasny{ width:2.2rem; height:1.9rem; padding:0; border:1px solid var(--line-2); border-radius:6px; background:var(--surface); cursor:pointer; }
/* pasek udziału przy priorytecie */
.pe-udzial{ display:flex; align-items:center; gap:.45rem; min-width:0; }
.pe-udzial-tor{ flex:1; height:6px; border-radius:3px; background:var(--sunken); overflow:hidden; display:block; }
.pe-udzial-tor i{ display:block; height:100%; border-radius:3px; }
.pe-udzial-proc{ font-size:.68rem; color:var(--muted); min-width:2.6rem; text-align:right; }
/* pytanie przy 0 min */
.pe-zero{ display:flex; flex-wrap:wrap; align-items:center; gap:.4rem .6rem; padding:.45rem .6rem; border-left:3px solid var(--warn); background:color-mix(in srgb, var(--warn) 10%, var(--surface)); border-radius:0 8px 8px 0; font-size:.84rem; }
.pe-zero .btn-main, .pe-zero .btn-ghost{ min-height:34px; font-size:.8rem; }
.pe-poz.zero .pe-czas{ border-color:var(--warn); }
/* pasek doby z legendą */
.pe-doba{ margin-top:.85rem; }
.pe-doba-pasek{ height:24px; }
.pe-doba-pasek .pe-seg-wolne{ background-image:repeating-linear-gradient(135deg, transparent 0 4px, rgba(0,0,0,.08) 4px 8px); }
.pe-doba-legenda small{ color:var(--muted); font-size:.7rem; }
.pe-doba-brak{ color:var(--alarm); font-weight:600; }
/* propozycja czasu (krzywa) */
.pe-krzywa{ margin:.1rem 0 .7rem; padding:.5rem .65rem; border:1px dashed var(--line-2); border-radius:10px; gap:.4rem .5rem; }
.pe-krzywa .lbl2{ margin-right:.2rem; }
.pe-ostrosc-blok{ display:flex; align-items:center; gap:.5rem; flex:1; min-width:11rem; }
.pe-ostrosc{ flex:1; min-width:6rem; }
.pe-ostrosc-odczyt{ font-size:.76rem; width:2.4rem; }
.pe-zastosuj{ font-size:.78rem; min-height:34px; }
.pe-krzywa-opis{ flex-basis:100%; font-size:.74rem; color:var(--muted); line-height:1.4; }
/* dodawanie priorytetu */
.pe-dodaj{ margin-top:.7rem; }
.pe-dodaj-btn{ min-height:36px; }
.pe-dodaj-limit{ margin-left:.5rem; font-size:.76rem; color:var(--muted); }
.pe-dodaj-panel{ border:1px dashed var(--line-2); border-radius:10px; padding:.6rem .75rem; background:var(--surface); }
.pe-propozycje{ display:flex; flex-wrap:wrap; gap:.35rem; margin:.4rem 0 .6rem; }
.pe-propozycja-btn{ font:inherit; font-size:.82rem; cursor:pointer; background:var(--surface-2); color:var(--ink); border:1px solid var(--line-2); border-radius:999px; padding:.3rem .7rem; min-height:34px; }
.pe-propozycja-btn:hover{ border-color:var(--accent); background:var(--accent-soft); }
.pe-dodaj-wlasny{ display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; }
.pe-dodaj-nazwa{ flex:1; min-width:10rem; font:inherit; font-size:.9rem; padding:.4rem .6rem; border:1px solid var(--line-2); border-radius:8px; background:var(--surface); color:var(--ink); min-height:38px; }
.pe-dodaj-wlasny .btn-main, .pe-dodaj-wlasny .btn-ghost{ min-height:36px; }
/* sekcje dodatkowe (Q2) */
.pe-dodatkowe{ display:flex; flex-direction:column; gap:.9rem; }
.pe-dodatkowe[hidden]{ display:none; }
.pe-dodatkowa{ border:1px solid var(--line); border-radius:12px; padding:.7rem .85rem; background:var(--surface); }
.pe-onboarding .pe-dodatkowa{ background:var(--surface-2); }
@media (max-width:719px){
  .pe-niezbedny{ grid-template-columns:1.6rem minmax(0,1fr) auto 2.8rem; }
  .pe-niezbedny .pe-wart{ min-width:0; }
  .pe-niezbedny > .pe-ikona{ grid-row:1; grid-column:1; }
  .pe-niezbedny > .pe-nazwa{ grid-row:1; grid-column:2; }
  .pe-niezbedny > .pe-wart{ grid-row:1; grid-column:3; }
  .pe-niezbedny > .pe-przel{ grid-row:1; grid-column:4; }
  .pe-niezbedny > .pe-edycja, .pe-niezbedny .pe-okno{ grid-row:2; grid-column:1 / -1; }
  .pe-poz, .pe-poz-wolne{ grid-template-columns:1.3rem 4.4rem minmax(0,1fr); }
  .pe-poz > .pe-czas-pole, .pe-poz-wolne > .pe-wart{ grid-row:2; grid-column:1 / -1; justify-self:start; }
  .pe-poz > .pe-propozycja, .pe-poz-wolne > .pe-propozycja{ grid-row:3; grid-column:1 / -1; justify-self:start; }
  .pe-poz > .pe-udzial, .pe-poz-wolne > .pe-udzial{ grid-row:4; grid-column:1 / -1; }
  .pe-poz > .pe-akcje, .pe-poz-wolne > .pe-akcje{ grid-row:5; grid-column:1 / -1; justify-content:space-between; min-width:0; }
  .pe-poz > .pe-kolory, .pe-poz > .pe-zero{ grid-row:6; grid-column:1 / -1; }
  .pe-czas, .pe-krok{ min-height:40px; }
  .pe .wybor-ikony .wi-panel, .onb-wlasny .wybor-ikony .wi-panel{ position:static; width:auto; box-shadow:none; }
  .pe .wybor-ikony.wi-kompakt .wi-biezaca{ min-height:40px; }
  .pe-kolor-btn{ width:20px; height:20px; }
  .pe-kolor-opcja{ width:2.2rem; height:2.2rem; }
  .pe-zero .btn-main, .pe-zero .btn-ghost{ min-height:40px; }
}

/* ==== 1.2.0 Q3 ==== powłoka po 1.1.0 (uwagi Macieja): „Bilans dnia”, zwijana kolumna „Obszary” w karcie dnia (ciaśniejsze kafelki), centrum powiadomień 🔔,
   sekcja „Zmiany priorytetów” zawsze obecna (zwijana, „pokaż całą historię”), zrównoleglanie widoczne (zdanie pod siatką, chipy w arkuszu od razu,
   podpis „+ Dzieci, Miłość”), legenda „★ = Mistrzowska Decyzja” pod zadaniami. Blok stoi PRZED 0.9.0 G1 (test k1: G1 na końcu pliku). */
/* kolumna „Obszary”: nagłówek klikalny, pasek z wybranym obszarem, klik rozwija; stan pamięta localStorage (karta.obszary) */
.blok-paleta .pal-hd{ cursor:pointer; align-items:center; user-select:none; -webkit-user-select:none; }
.blok-paleta .pal-hd h3{ flex:none; }
.blok-paleta .pal-hd .pod{ order:3; flex-basis:100%; margin-left:0; }
.blok-paleta.zwinieta .pal-hd{ margin-bottom:0; }
.blok-paleta.zwinieta .pal-hd .pod{ display:none; }
.pal-toggle{
  display:inline-flex; align-items:center; gap:.4rem; margin-left:auto; max-width:100%; min-width:0; font:inherit; font-size:.78rem; color:var(--ink-2);
  background:var(--surface-2); border:1px solid var(--line); border-radius:8px; padding:.15rem .45rem .15rem .35rem; cursor:pointer;
}
.pal-toggle:hover{ border-color:var(--accent); color:var(--ink); }
.pal-toggle .pal-wybrany{ display:inline-flex; align-items:center; gap:.35rem; min-width:0; }
.pal-toggle .pal-wybrany-nazwa{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:8rem; }
.pal-toggle .pal-wybrany .kbd{ font-family:var(--mono); font-size:.62rem; color:var(--muted); }
.pal-toggle .pal-strzalka{ color:var(--muted); font-size:.75rem; transition:transform .15s; }
.blok-paleta:not(.zwinieta) .pal-strzalka{ transform:rotate(180deg); }
.blok-paleta .pal-tresc[hidden]{ display:none; }
.blok-paleta .palette{ position:static; gap:.18rem; margin-top:.2rem; }
.blok-paleta .pal-btn{ padding:.22rem .5rem; font-size:.8rem; min-height:30px; gap:.4rem; }
.blok-paleta .pal-btn .dot{ width:.5rem; height:.5rem; }
.blok-paleta .pal-sep{ margin:.25rem 0; }
.blok-paleta .pal-grupa{ margin:.1rem 0 0 .2rem; }
.blok-paleta .pal-stopka{ font-size:.7rem; color:var(--muted); margin-top:.5rem; }
/* zrównoleglanie widoczne: zdanie pod siatką z linkiem do opisu; arkusz kratki — chipy od razu, „+ dodatkowy obszar”, podpis „+ Dzieci, Miłość” */
.doba-hint-zr{ font-size:.76rem; color:var(--muted); margin-top:.2rem; }
.doba-hint-zr a{ color:var(--accent-ink); text-decoration:underline; text-underline-offset:2px; }
.zr-podpis{ font-size:.82rem; color:var(--ink-2); margin-top:.35rem; }
.zr-podpis b{ color:var(--accent-ink); }
.zr-dodatkowe .pole-lbl .btn-ghost:disabled{ opacity:.45; cursor:not-allowed; }
.opis-zr{ font-size:.9rem; line-height:1.5; }
.opis-zr .o-lbl{ font-family:var(--mono); font-size:.64rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin:.7rem 0 .25rem; }
.opis-zr .o-box{ background:var(--surface-2); border:1px solid var(--line); border-radius:9px; padding:.5rem .7rem; font-size:.86rem; }
.opis-zr .o-box .lin{ display:flex; flex-wrap:wrap; align-items:baseline; gap:.35rem; padding:.12rem 0; }
.opis-zr .o-box .lin b{ font-family:var(--mono); font-size:.82rem; color:var(--ink); font-weight:600; }
.opis-zr .hint{ font-size:.8rem; color:var(--muted); margin-top:.7rem; }
/* ★ przy zadaniu = Mistrzowska Decyzja: gwiazdka wyraźniejsza, legenda pod listą */
.task .del[data-pole="md"]{ font-size:1rem; line-height:1; }
.task .del[data-pole="md"][aria-pressed="true"]{ color:var(--over); }
.task-legenda{ font-size:.72rem; color:var(--muted); margin-top:.4rem; }
/* centrum powiadomień: dzwonek z licznikiem w userbarze (obok „Agenci ▾”), arkusz z listą */
.pow-btn{ position:relative; margin-left:.3rem; padding:.3rem .5rem; font-size:.95rem; line-height:1; white-space:nowrap; flex:none; }
.pow-btn .pow-licznik{
  position:absolute; top:-.35rem; right:-.35rem; min-width:1.15rem; height:1.15rem; padding:0 .25rem; border-radius:999px; background:var(--alarm); color:#fff;
  font-family:var(--mono); font-size:.6rem; font-weight:700; display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
}
.pow-btn .pow-licznik[hidden]{ display:none; }
.pow-btn.sa-nowe{ border-color:var(--accent); }
#app.gosc .pow-btn, #app.onboarding .pow-btn{ display:none; }
.pow-centrum{ display:grid; gap:.1rem; max-height:min(60vh, 32rem); overflow:auto; }
.pow-dzien{ font-family:var(--mono); font-size:.64rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin:.5rem 0 .15rem; }
.pow-dzien:first-child{ margin-top:0; }
.pow-wpis{ display:grid; grid-template-columns:2.9rem 1.4rem minmax(0,1fr); gap:.4rem; align-items:baseline; padding:.4rem 0; border-bottom:1px solid var(--line); font-size:.86rem; }
.pow-wpis:last-of-type{ border-bottom:0; }
.pow-wpis.nowy .pow-tresc{ font-weight:600; }
.pow-wpis.nowy .pow-czas{ color:var(--accent-ink); font-weight:700; }
.pow-wpis.blad .pow-zrodlo{ filter:saturate(1.4); }
.pow-wpis.blad .pow-tresc{ color:var(--alarm); }
.pow-czas{ font-family:var(--mono); font-size:.72rem; color:var(--muted); white-space:nowrap; }
.pow-zrodlo{ text-align:center; font-size:.9rem; }
.pow-tresc{ min-width:0; overflow-wrap:anywhere; }
.pow-tresc a{ margin-left:.4rem; font-size:.78rem; color:var(--accent-ink); white-space:nowrap; }
.pow-pusto{ color:var(--muted); font-size:.86rem; padding:.6rem 0; }
.pow-nota{ font-size:.72rem; color:var(--muted); margin-top:.6rem; }
.sheet-powiadomienia .sheet-akcje{ justify-content:space-between; }
/* sekcja „Zmiany priorytetów w tym okresie” zawsze obecna — zwijana (details.zwij), h2 w summary jak nagłówek sekcji, „pokaż całą historię” */
.sekcja-historia-prior details.zwij > summary{ flex-wrap:wrap; align-items:baseline; gap:.25rem .9rem; margin-bottom:.35rem; }
.sekcja-historia-prior .hp-tytul{ font-size:1.05rem; }
.sekcja-historia-prior .hp-hint{ font-size:.8rem; font-weight:400; color:var(--muted); margin-left:0; }   /* .sec-head .hint ma margin-left:auto — tu podpis zaraz za tytułem, strzałka summary na końcu */
.sekcja-historia-prior details.zwij > summary.sec-head{ margin-bottom:.35rem; }
.sekcja-historia-prior .hp-brak{ color:var(--ink-2); }
.sekcja-historia-prior .hp-akcje{ margin-top:.5rem; }
.sekcja-historia-prior .hp-cala-btn{ font-size:.8rem; padding:.3rem .6rem; min-height:34px; }
.sekcja-historia-prior .hp-cala{ margin-top:.5rem; border-top:1px dashed var(--line); padding-top:.4rem; }
.sekcja-historia-prior .hp-wiecej{ font-size:.76rem; color:var(--muted); margin-top:.35rem; }
.sekcja-historia-prior.hp-pelna details.zwij > summary::after{ content:none; }
.sheet-historia-prior .section{ margin-bottom:0; }
.sheet-historia-prior .card{ box-shadow:none; }
.a4-brak-zmian span{ color:#8a7d84; }
.hp-link{ margin-top:.6rem; }
@media (max-width:719px){
  .pow-btn{ min-height:40px; padding:.3rem .45rem; }
  .pow-wpis{ grid-template-columns:2.6rem 1.2rem minmax(0,1fr); }
  .pal-toggle .pal-wybrany-nazwa{ max-width:6rem; }
}

/* ==== 1.3.0 R1 ==== Plan tygodnia jako PODGLĄD tygodnia w układzie nowego frontu (/nowy/plan): dwie kolumny kart (3+1 i 3), dni tygodnia z typem
   dnia, obszary niezbędne wybranego dnia (wyjątki dnia: pole h:mm ±10 z edytora — .pe-czas / .pe-krok), bloki rzadkie tygodnia, okna, słupki
   siedmiu dób (niezbędne · priorytety · niezaalokowany), priorytety dnia z paskiem udziału (.pe-udzial), tabela podziału tygodnia, rozwijany
   edytor „Ustawienia ramy i priorytetów”. Na telefonie jedna kolumna. Blok stoi PRZED 0.9.0 G1 (test k1: G1 na końcu pliku). */
.plan-wstep{ display:flex; flex-wrap:wrap; gap:.3rem .8rem; align-items:baseline; margin-bottom:.6rem; }
.plan-wstep-tekst{ flex:1 1 30rem; min-width:0; }
.plan-wstep a{ color:var(--accent-ink); text-decoration:underline; text-underline-offset:2px; }
.plan-status{ font-size:.72rem; color:var(--muted); margin-left:auto; }
.plan-siatka{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 .9rem; align-items:start; }
.plan-kolumna{ min-width:0; }
.plan-nota{ margin-top:.55rem; font-size:.78rem; }
.plan-nota .plan-reczne{ color:var(--accent-ink); }
.plan-nota .plan-brak-tygodnia{ color:var(--warn); }
.plan-lista{ display:flex; flex-direction:column; }
.plan-suma{ display:flex; flex-wrap:wrap; align-items:center; gap:.3rem .7rem; margin-top:.6rem; padding-top:.5rem; border-top:1px solid var(--line); font-size:.84rem; }
.plan-suma .ds{ font-size:.74rem; color:var(--muted); flex:1 1 14rem; }
.plan-zmien{ font-size:.76rem; padding:.25rem .6rem; min-height:32px; margin-left:auto; white-space:nowrap; }
.plan-akcje-sekcji{ display:flex; justify-content:flex-end; margin-top:.5rem; }
/* 1. dni tygodnia: siedem przycisków (typ dnia, twój czas), dziś podkreślone, „ustawiony ręcznie” z akcentem */
.plan-dni{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.3rem; }
.plan-dzien{ min-width:0; padding:.4rem .2rem; display:flex; flex-direction:column; align-items:center; gap:.15rem; }
.plan-dzien b{ font-weight:600; }
.plan-dzien small{ margin-top:0; }
.plan-dzien .plan-dzien-czas{ color:var(--accent-ink); font-weight:600; font-size:.64rem; }
.plan-dzien .typ-chip{ font-size:.56rem; padding:.02rem .35rem; max-width:100%; overflow:hidden; text-overflow:ellipsis; }
.plan-dzien.dzis{ box-shadow:inset 0 -3px 0 var(--accent); }
.plan-dzien.reczny .typ-chip{ border-style:dashed; }
.plan-dzien[aria-pressed="true"] small, .plan-dzien[aria-pressed="true"] .plan-dzien-czas, .plan-dzien[aria-pressed="true"] .typ-chip{ color:inherit; border-color:currentColor; }
.typ-chip.wolny{ border-color:color-mix(in srgb, var(--warn) 55%, transparent); color:var(--warn); }
.typ-chip.reczny{ border-style:dashed; }
/* 2. obszary niezbędne dnia / 5. priorytety dnia — wiersz: ikona · nazwa + podpis · wartość · edycja · akcje */
.plan-wiersz{ display:grid; grid-template-columns:2.4rem minmax(0,1fr) auto auto auto; gap:.25rem .6rem; align-items:center; padding:.45rem 0; border-bottom:1px solid var(--line); }
.plan-wiersz:last-child{ border-bottom:0; }
.plan-ikona{ display:inline-flex; align-items:center; gap:.3rem; font-size:1rem; }
.plan-nazwa{ min-width:0; display:flex; flex-direction:column; gap:.05rem; }
.plan-nazwa .tt{ font-size:.9rem; font-weight:500; display:flex; flex-wrap:wrap; align-items:baseline; gap:.35rem; }
.plan-nazwa .ds{ font-size:.73rem; color:var(--muted); line-height:1.35; }
.plan-tag{ font-family:var(--mono); font-size:.58rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); border:1px solid var(--line-2); border-radius:999px; padding:.02rem .4rem; white-space:nowrap; }
.plan-tag-poza{ color:var(--warn); border-color:color-mix(in srgb, var(--warn) 55%, transparent); }
.plan-tag-prio{ color:var(--accent-ink); border-color:color-mix(in srgb, var(--accent) 55%, transparent); }
.plan-wart{ display:flex; flex-direction:column; align-items:flex-end; line-height:1.15; white-space:nowrap; }
.plan-wart b{ font-size:.88rem; }
.plan-wart small{ font-size:.62rem; color:var(--muted); }
.plan-edycja{ display:flex; justify-content:flex-end; align-items:center; }
.plan-edycja > .ds{ font-size:.72rem; color:var(--muted); white-space:nowrap; }
.plan-akcje, .plan-akcje-w{ display:flex; gap:.15rem; align-items:center; justify-content:flex-end; }
.plan-wiersz.plan-bez .plan-wart, .plan-wiersz.plan-bez .plan-ikona{ opacity:.55; }
.plan-wiersz.plan-sygnal .plan-wart b{ color:var(--accent-ink); }
.plan-dodaj{ margin-top:.5rem; }
/* 5. priorytety: numer · ikona · nazwa · wartość, pod spodem pasek udziału na całą szerokość */
.plan-prio{ grid-template-columns:1.3rem 2.4rem minmax(0,1fr) auto; }
.plan-prio .pe-udzial{ grid-column:1 / -1; }
.plan-nr{ font-size:.76rem; color:var(--accent); font-weight:600; text-align:center; }
.plan-prio.zablokowany .plan-nr{ color:var(--warn); }
.plan-prio.poza-cyklem .plan-wart b, .plan-prio.poza-cyklem .plan-ikona{ opacity:.55; }
.plan-prio.poza-cyklem .plan-nazwa .tt{ color:var(--ink-2); }
.plan-wolne .plan-nazwa .tt, .plan-wolne .plan-wart b{ color:var(--muted); }
.plan-brakuje .plan-nazwa .tt, .plan-brakuje .plan-wart b{ color:var(--alarm); }
/* 3. bloki rzadkie tygodnia: data · nazwa · kiedy · czas */
.plan-rzadki{ grid-template-columns:5.6rem minmax(0,1fr) auto; row-gap:.15rem; }
.plan-rzadki .plan-rzadki-data{ grid-row:1; grid-column:1; }
.plan-rzadki > span:nth-child(2){ grid-row:1; grid-column:2; min-width:0; }
.plan-rzadki .kiedy{ grid-row:2; grid-column:2 / -1; white-space:normal; line-height:1.35; }
.plan-rzadki .czas{ grid-row:1; grid-column:3; }
.plan-rzadki-data{ font-size:.74rem; color:var(--accent-ink); font-weight:600; white-space:nowrap; }
.plan-rzadki.plan-sygnal .czas{ color:var(--accent-ink); }
.plan-rzadkie-poza{ margin-top:.5rem; font-size:.74rem; color:var(--muted); }
/* okna snu i pracy (podgląd) */
.plan-okno{ grid-template-columns:2.4rem minmax(0,1fr); }
.plan-dni-pracy-rzad{ display:flex; flex-wrap:wrap; align-items:center; gap:.3rem .6rem; margin-top:.5rem; }
.plan-dni-pracy-rzad .pole-lbl{ margin:0; }
.plan-dni-pracy{ display:flex; flex-wrap:wrap; gap:.25rem; }
.plan-dni-pracy .hm-day{ min-width:2.4rem; padding:.2rem .35rem; font-size:.74rem; cursor:default; }
/* 4. słupki siedmiu dób (jak w nowym froncie: 168 px, segmenty od dołu, obrys) */
.plan-slupki{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.35rem; align-items:end; }
.plan-slupek{ font:inherit; background:none; border:0; padding:0; cursor:pointer; display:flex; flex-direction:column; align-items:center; gap:.2rem; min-width:0; border-radius:8px; }
.plan-slupek:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.plan-slupek-kolumna{ width:100%; height:168px; display:flex; flex-direction:column-reverse; border:1px solid var(--line); border-radius:6px; background:var(--surface); overflow:hidden; box-sizing:border-box; }
.plan-slupek.wybrany .plan-slupek-kolumna{ border-color:var(--accent); box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 35%, transparent); }
.plan-slupek.dzis .plan-slupek-dzien{ text-decoration:underline; text-underline-offset:3px; color:var(--accent-ink); }
.plan-seg{ display:block; flex:none; width:100%; }
.plan-seg-priorytet{ opacity:.9; }
.plan-seg-wolne{ background-image:repeating-linear-gradient(135deg, transparent 0 4px, color-mix(in srgb, var(--muted) 25%, transparent) 4px 6px); }
.plan-slupek-dzien{ font-size:.66rem; color:var(--muted); }
.plan-slupek .typ-chip{ font-size:.54rem; padding:.02rem .3rem; max-width:100%; overflow:hidden; text-overflow:ellipsis; }
.plan-slupek-twoj{ font-size:.76rem; font-weight:600; color:var(--accent-ink); }
.plan-slupek-za-duzo{ font-family:var(--mono); font-size:.6rem; color:var(--alarm); }
.plan-legenda{ margin-top:.6rem; }
.plan-legenda .plan-legenda-opis{ flex-basis:100%; font-size:.72rem; }
/* 6. tabela podziału tygodnia: obszar · tydzień (plan) · plan dób domkniętych · realnie · różnica */
.plan-tabela{ display:flex; flex-direction:column; }
.plan-tabela-glowa, .plan-tabela-wiersz{ display:grid; grid-template-columns:minmax(0,1fr) 5.6rem 5.6rem 5.6rem 5.4rem; gap:.4rem; align-items:end; }
.plan-tabela-glowa{ padding-bottom:.35rem; border-bottom:1px solid var(--ink); font-family:var(--mono); font-size:.56rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); line-height:1.25; }
.plan-tabela-glowa > div:not(:first-child){ text-align:right; white-space:normal; }
.plan-tabela-wiersz{ align-items:center; }
.plan-tabela-wiersz > div:not(:first-child){ text-align:right; font-size:.78rem; white-space:nowrap; }
.plan-tabela-wiersz{ padding:.35rem 0; border-bottom:1px solid var(--line); }
.plan-tabela-nazwa{ display:flex; align-items:center; gap:.4rem; min-width:0; font-size:.86rem; }
.plan-tabela-nazwa span{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.plan-tabela-wolne .plan-tabela-nazwa, .plan-tabela-wolne > div{ color:var(--muted); }
.plan-tabela-razem{ border-top:3px double var(--line-2); border-bottom:0; background:var(--surface-2); margin-top:.15rem; padding:.45rem .2rem; font-weight:600; }
.plan-plus{ color:var(--over, var(--alarm)); }
.plan-minus{ color:var(--muted); }
/* edytor ramy i priorytetów (rozwijany) — ten sam klocek, co Ustawienia → Rama dnia */
.plan-edytor-sekcja{ margin-top:.4rem; }
.plan-edytor > summary{ flex-wrap:wrap; align-items:baseline; gap:.25rem .9rem; margin-bottom:.35rem; }
.plan-edytor > summary h2{ margin:0; }
.plan-edytor > summary .hint{ margin-left:0; font-weight:400; }
.plan-edytor > summary .hint a{ color:var(--accent-ink); text-decoration:underline; text-underline-offset:2px; }
.plan-edytor:not([open]) > summary{ padding:.6rem .9rem; border:1px dashed var(--line-2); border-radius:12px; }
.plan-edytor-slot:empty{ display:none; }
@media (max-width:899px){
  .plan-siatka{ grid-template-columns:minmax(0,1fr); }
  .plan-tabela-glowa, .plan-tabela-wiersz{ grid-template-columns:minmax(0,1fr) 4.9rem 4.9rem 4.9rem; gap:.3rem; }
  .plan-tabela-wiersz > div:not(:first-child){ font-size:.72rem; }
  .plan-kol-domk{ display:none; }
  .plan-slupek-kolumna{ height:120px; }
}
@media (max-width:719px){
  .plan-dni{ gap:.2rem; }
  .plan-dzien{ padding:.35rem .1rem; }
  .plan-dzien .plan-dzien-data{ display:none; }
  .plan-dzien .typ-chip{ display:none; }
  .plan-dzien{ border-top:3px solid var(--line-2); }
  .plan-dzien[data-typ-dnia="roboczy"]{ border-top-color:var(--praca); }
  .plan-dzien[data-typ-dnia="weekend"]{ border-top-color:var(--good); }
  .plan-dzien[data-typ-dnia="wolny"]{ border-top-color:var(--warn); }
  .plan-dzien.reczny{ border-top-style:dashed; }
  .plan-tabela .plan-tag{ display:none; }
  .plan-rzadki{ grid-template-columns:auto minmax(0,1fr) auto; }
  .plan-wiersz{ grid-template-columns:2.2rem minmax(0,1fr) auto; }
  .plan-wiersz .plan-edycja, .plan-wiersz .plan-akcje{ grid-column:2 / -1; justify-content:flex-start; }
  .plan-wiersz .plan-akcje:empty, .plan-wiersz .plan-edycja:empty{ display:none; }
  .plan-prio{ grid-template-columns:1.3rem 2.2rem minmax(0,1fr) auto; }
  .plan-rzadki{ grid-template-columns:minmax(0,1fr) auto; }
  .plan-rzadki .kiedy{ grid-column:1 / -1; }
  .plan-slupek .typ-chip{ display:none; }
  .plan-zmien{ margin-left:0; width:100%; }
  .pe-krok{ min-width:2.6rem; }
}

/* ==== 1.3.0 R2 ==== dodatkowe obszary w wykonaniu obszaru (zgłoszenie Macieja „bieżnia w pracy”): minuty, w których obszar był dodatkowy
   w żetonie, wchodzą do „ile poszło na obszar” jako CZĘŚĆ KRESKOWANA z podpisem „w tym N min w parach” — tory „Plan wobec wykonania”
   (bilans dnia, tydzień), kafelki „Na co poszła doba”, „Rozkład doby” w karcie, tory raportu; oś „Doba godzina po godzinie” dostaje rąbek
   drugiego obszaru jak siatka karty (.kw.on.dodatk). Kreskowanie zawsze w kolorze obszaru (--c), przez przezroczyste paski widać podkład
   (szary = w planie, pomarańcz = ponad plan). */
.fill-dod{ position:absolute; inset-block:3px; border-radius:0 3px 3px 0; background:repeating-linear-gradient(135deg, var(--c, var(--accent)) 0 3px, transparent 3px 6px); }
.track-read .w-parach{ color:var(--muted); }
.tile .t-dod{ font-family:var(--mono); font-size:.66rem; color:var(--muted); }
.tile .t-bar i.dod{ position:absolute; top:0; bottom:0; border-radius:0 2px 2px 0; background:repeating-linear-gradient(135deg, var(--c) 0 2px, transparent 2px 4px); }
.tl-slots i.dodatk{ background-image:linear-gradient(to top, var(--c2, var(--ink-2)) 0 30%, transparent 30%); }
.roz-bar{ position:relative; }
.roz-bar i.dod{ position:absolute; top:0; bottom:0; border-radius:0 3px 3px 0; background:repeating-linear-gradient(135deg, var(--c) 0 2px, transparent 2px 4px); }
.roz-bar s{ position:absolute; top:0; bottom:0; border-left:1px dashed var(--ink-2); opacity:.7; }
.ptab .w-parach{ color:var(--muted); font-size:.68rem; }
.a4-tor .pas u.dod{ background:repeating-linear-gradient(135deg, var(--c, #a8365f) 0 3px, transparent 3px 6px); }
.a4-tor .rd .w-parach{ display:block; color:#8a7d84; font-size:.6rem; }
.a4-w-parach{ color:#574c53; }

/* ==== 1.4.0 E ==== powłoka po uwagach Nati: klik w powiadomienie prowadzi do konkretnego miejsca (wiersz centrum klikalny w całości,
   podświetlenie celu po przejściu), Ustawienia pogrupowane (nagłówki grup + zakładki po grupach), przełącznik „tylko gdy jest po co” */
.pow-wpis[data-pow-href]{ cursor:pointer; border-radius:8px; margin:0 -.3rem; padding-left:.3rem; padding-right:.3rem; transition:background .12s; }
.pow-wpis[data-pow-href]:hover{ background:var(--sunken); }
.pow-wpis[data-pow-href]:focus-visible{ outline:2px solid var(--accent); outline-offset:-2px; }
.pow-wpis[data-pow-href] .pow-tresc a{ pointer-events:none; }
.cel-podswietlony{ outline:2px solid var(--accent); outline-offset:4px; border-radius:10px; animation:cel-blysk 2.4s ease-out forwards; }
@keyframes cel-blysk{ 0%{ box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 35%, transparent); } 100%{ box-shadow:0 0 0 0 transparent; outline-color:transparent; } }
.ust-grupa{ display:flex; align-items:baseline; gap:.6rem; flex-wrap:wrap; margin:1.4rem 0 .6rem; padding-bottom:.35rem; border-bottom:2px solid var(--line-2); }
.ust-grupa:first-of-type{ margin-top:.2rem; }
.ust-zakladki + .ust-grupa{ margin-top:.2rem; }
.ust-grupa h2{ margin:0; font-size:1.02rem; letter-spacing:.01em; }
.ust-grupa .hint{ font-size:.78rem; color:var(--muted); }
.ust-grupa[hidden]{ display:none; }
.set-row.ust-przyp-luka{ margin-left:2.2rem; padding-top:.2rem; }
.set-row.ust-przyp-luka .ds{ font-size:.8rem; color:var(--ink-2); }
@media (max-width:719px){ .set-row.ust-przyp-luka{ margin-left:0; } }
@media (max-width:719px){
  .pow-wpis[data-pow-href]{ min-height:44px; align-content:center; }
  .ust-grupa{ margin-top:1.1rem; }
}

/* ==== 1.4.0 D ==== pakiety jako 3 karty (style kart w <style> views/pakiet.js), admin: odznaka ★ przy wyróżnionym pakiecie i nazwa programu w tabeli kodów,
   panel coacha: karta „Program klientki”. Blok stoi PRZED 0.9.0 G1 (test k1: G1 na końcu pliku). */
.admin-tabela .pk-adm-odznaka{ margin-left:.35rem; font-size:.66rem; padding:.05rem .4rem; }
.admin-tabela .kody-program{ font-family:var(--display); font-size:.95rem; }
.coach-root [data-program] .set-row .tt{ font-family:var(--display); font-size:1rem; }
.pk-twoje-wiadomosci .mini-hd{ margin-bottom:.1rem; }
/* panel coacha: historia użyć kodów odblokowania (views/coach.js kartaKodow) — wiersz „kod · kiedy · doba · treść” i nota bez wglądu */
.coach-uzycia{ display:grid; gap:.1rem; }
.coach-uzycie{ display:flex; flex-wrap:wrap; align-items:baseline; gap:.2rem .6rem; padding:.28rem 0; border-bottom:1px solid var(--line); font-size:.86rem; }
.coach-uzycie:last-of-type{ border-bottom:0; }
.coach-uzycie .kod{ font-family:var(--mono); letter-spacing:.08em; }
.coach-uzycie .kiedy{ color:var(--ink-2); }
.coach-uzycia [data-uzycia-bez-wgladu]{ font-size:.78rem; color:var(--muted); margin-top:.4rem; }

/* ==== 1.4.0 C ==== */
/* Pary obszarów: reguła Natalii + przykłady dozwolone / niewskazane (views/admin/pary.js) */
.pary-regula .pary-regula-glowna { margin: 0 0 .5rem; line-height: 1.5; }
.pary-przyklady { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: .9rem 1.4rem; margin-top: .8rem; }
.pary-przyklady h4 { margin: 0 0 .35rem; font-size: .92rem; }
.pary-przyklady-lista { margin: 0; padding-left: 1.1rem; line-height: 1.5; }
.pary-przyklady-lista li[data-przyklad="nie"] b { color: var(--zle, #b23a3a); }
/* Czat: jeden licznik wiadomości (w górę) i karta wyczerpanej puli w każdej roli (czat.js) */
.czat-podpis .limit { white-space: normal; }
.czat-limit[data-limit="wyczerpany"] span { display: block; margin: .2rem 0 .5rem; }

/* ==== 1.4.0 B ==== Plan tygodnia: JEDEN edytor ramy i priorytetów w miejscu dawnych sekcji 2–5 (sekcja 3, ten sam klocek .pe, co Ustawienia →
   Rama dnia; „Wyjątki wybranego dnia” jako sekcja .pe-dodatkowa na początku), sekcja 1 z nawigacją tygodni, zaznaczaniem kilku dni (shift / ⌘)
   i panelem „Typ dnia” (sześć typów: roboczy · weekend · wolny · wakacje · choroba · specjalny + zakres od–do), typy wakacje / choroba /
   specjalny oznaczone kolorem krawędzi w dniach i słupkach. Blok stoi PRZED 0.9.0 G1 (test k1: G1 na końcu pliku). */
.plan-nawigacja{ display:flex; flex-wrap:wrap; align-items:center; gap:.3rem .5rem; margin-bottom:.6rem; }
.plan-tydzien-btn{ font-size:.76rem; padding:.25rem .6rem; min-height:32px; white-space:nowrap; }
.plan-tydzien-btn[aria-pressed="true"]{ background:var(--accent-soft); border-color:var(--accent); color:var(--accent-ink); }
.plan-tydzien-zakres{ font-size:.78rem; color:var(--muted); margin-left:auto; white-space:nowrap; }
/* 1. dni: zaznaczone (kilka) obrys akcentu, wybrany (edytor) wypełnienie, poza rachunkiem — kreskowana krawędź */
.plan-dzien.zaznaczony{ box-shadow:inset 0 0 0 2px var(--accent); }
.plan-dzien.zaznaczony.dzis{ box-shadow:inset 0 0 0 2px var(--accent), inset 0 -3px 0 var(--accent); }
.plan-dzien.wybrany{ background:var(--accent-soft); color:var(--accent-ink); }
.plan-dzien.poza{ border-style:dashed; }
.typ-chip.wakacje{ border-color:color-mix(in srgb, var(--good) 60%, transparent); color:var(--good); }
.typ-chip.choroba{ border-color:color-mix(in srgb, var(--alarm) 60%, transparent); color:var(--alarm); }
.typ-chip.specjalny{ border-color:color-mix(in srgb, var(--accent) 65%, transparent); color:var(--accent-ink); background:color-mix(in srgb, var(--accent) 10%, transparent); }
.typ-chip.poza{ border-style:dashed; }
.plan-nota .plan-poza-rachunkiem{ color:var(--warn); }
/* panel „Typ dnia” pod dniami */
.plan-typy{ margin-top:.7rem; padding-top:.6rem; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:.45rem; }
.plan-typy-cel{ display:flex; flex-wrap:wrap; align-items:center; gap:.3rem .5rem; font-size:.8rem; }
.plan-typy-cel .lbl2{ margin:0; }
.plan-typy-tryb{ font-size:.74rem; padding:.2rem .55rem; min-height:30px; }
.plan-typy-tryb[aria-pressed="true"]{ background:var(--accent-soft); border-color:var(--accent); color:var(--accent-ink); }
.plan-zakres{ display:inline-flex; align-items:center; gap:.3rem; flex-wrap:wrap; }
.plan-zakres-pole{ width:auto; min-width:8.6rem; padding:.2rem .4rem; font-size:.78rem; }
.plan-typy-opis{ flex-basis:100%; font-size:.72rem; }
.plan-typy-przyciski{ display:flex; flex-wrap:wrap; align-items:center; gap:.3rem .35rem; }
.plan-typ-btn{ font-size:.76rem; padding:.25rem .6rem; min-height:32px; border-left:3px solid var(--line-2); white-space:nowrap; }
.plan-typ-btn[aria-pressed="true"]{ background:var(--accent-soft); border-color:var(--accent); color:var(--accent-ink); }
.plan-typ-btn:disabled{ opacity:.5; cursor:default; }
.plan-typ-roboczy{ border-left-color:var(--praca); }
.plan-typ-weekend{ border-left-color:var(--good); }
.plan-typ-wolny{ border-left-color:var(--warn); }
.plan-typ-wakacje{ border-left-color:var(--good); border-left-style:dashed; }
.plan-typ-choroba{ border-left-color:var(--alarm); border-left-style:dashed; }
.plan-typ-specjalny{ border-left-color:var(--accent); }
.plan-typ-specjalny{ display:inline-flex; align-items:center; gap:.3rem; flex-wrap:wrap; }
.plan-specjalny-obszar{ width:auto; min-width:8rem; padding:.2rem .4rem; font-size:.78rem; }
.plan-typy-nota{ font-size:.72rem; line-height:1.4; }
.plan-typy-nota .plan-typy-domkniete{ color:var(--warn); }
/* 2. słupki: dni poza rachunkiem kreskowane, dzień specjalny z akcentem */
.plan-slupek.poza .plan-slupek-kolumna{ border-style:dashed; opacity:.85; }
.plan-slupek-specjalny .plan-slupek-kolumna{ border-color:var(--accent); }
.plan-slupek-choroba .plan-slupek-kolumna{ border-color:var(--alarm); }
.plan-slupek-wakacje .plan-slupek-kolumna{ border-color:var(--good); }
/* 3. edytor jako zwykła sekcja (bez <details>) + sekcja „Wyjątki wybranego dnia” wewnątrz .pe */
.plan-edytor-sekcja > .sec-head{ flex-wrap:wrap; align-items:baseline; gap:.25rem .9rem; }
.plan-edytor-sekcja > .sec-head .hint{ margin-left:0; font-weight:400; }
.plan-edytor-sekcja > .sec-head .hint a{ color:var(--accent-ink); text-decoration:underline; text-underline-offset:2px; }
.plan-wyjatki .pe-tytul{ margin-bottom:.35rem; }
.plan-wyjatki .plan-wiersz:first-child{ padding-top:.2rem; }
.plan-wyjatki .plan-suma{ margin-top:.5rem; }
.plan-wyjatki .plan-suma .ds{ flex-basis:100%; }
@media (max-width:719px){
  .plan-dzien[data-typ-dnia="wakacje"]{ border-top-color:var(--good); border-top-style:dotted; }
  .plan-dzien[data-typ-dnia="choroba"]{ border-top-color:var(--alarm); border-top-style:dashed; }
  .plan-dzien[data-typ-dnia="specjalny"]{ border-top-color:var(--accent); }
  .plan-tydzien-zakres{ flex-basis:100%; margin-left:0; }
  .plan-typ-btn{ flex:1 1 40%; }
  .plan-typ-specjalny{ flex-basis:100%; }
}
/* 1.4.0 B (po przeglądzie): jak w Tygodniu — choroba poza rachunkiem (kreskowana, .poza), wakacje bez oczekiwań (kropkowana, .bez-oczekiwan);
   nota „bez oczekiwań” w sekcjach 1 i 4; zakres od–do dłuższy niż 92 dni (limit serwera) na alarm, przyciski typów wtedy nieaktywne */
.plan-dzien.bez-oczekiwan{ border-style:dotted; }
.typ-chip.bez-oczekiwan{ border-style:dotted; }
.plan-slupek.bez-oczekiwan .plan-slupek-kolumna{ border-style:dotted; }
.plan-nota .plan-bez-oczekiwan{ color:var(--good); }
.plan-zakres-za-duzy{ color:var(--alarm); }

/* ==== 1.4.0 A ==== typy dnia (wakacje / choroba / dzień specjalny z wyborem priorytetu), zamrożenie starszych dób (pasek nad siatką, siatka i pola tylko
   do odczytu, podgląd kratki), praca przy wyłączonym etacie (paleta bez pracy — serwer nie daje `praca` w RAMA) */
.pasek-zamrozenia{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .6rem;margin:0 0 .6rem;padding:.5rem .7rem;border:1px solid var(--warn);border-radius:9px;background:color-mix(in srgb,var(--warn) 12%,var(--surface));font-size:.85rem}
.pasek-zamrozenia .zn{font-size:1rem}
.pasek-zamrozenia small{flex-basis:100%;color:var(--muted)}
.pasek-zamrozenia.odblokowana{border-color:var(--good);background:color-mix(in srgb,var(--good) 12%,var(--surface))}
.widok-karta.zamrozona .doba i,.widok-karta.zamrozona .doba-pion .pola i{cursor:default}
.widok-karta.zamrozona .pal-btn[disabled]{opacity:.55;cursor:default}
.widok-karta.zamrozona .rz input[disabled],.widok-karta.zamrozona .note[disabled],.widok-karta.zamrozona .task input[disabled]{background:var(--sunken);color:var(--ink-2)}
.badge.zamrozona{border-color:var(--warn);color:var(--warn)}
.badge.typ-dnia.specjalny{border-color:var(--accent);color:var(--accent-ink);font-weight:600}
.badge.typ-dnia.choroba{border-color:var(--alarm);color:var(--alarm)}
.badge.typ-dnia.wakacje{border-color:var(--good);color:var(--good)}
.typ-dnia-wybor .typ-opcja .typ-dom{color:var(--muted)}
.typ-spec-lista .typ-opcja{display:flex;align-items:center;gap:.5rem}
.podglad-kratki .podglad-wiersz{display:flex;align-items:center;gap:.4rem;padding:.35rem 0;border-bottom:1px solid var(--line);font-size:.9rem}
.podglad-kratki .podglad-wiersz:last-child{border-bottom:0}
.podglad-kratki .pole-lbl{margin:0;color:var(--muted)}

/* 1.4.1 karta */
/* (blok PRZED „0.9.0 G1”, bo testy k1 / n3-powloka / p-d pilnują, żeby G1 był ostatni w pliku — jak przy Q3 i 1.4.0 D)
   „Zadania na dziś” (.blok-taski) stoją bezpośrednio pod kafelkiem z datą i paskiem Mistrzowskiej Decyzji (uwaga Nati 05/09: gwiazdka ★ = MD,
   wpisana MD = zadanie), przed chipami i siatką doby — blok ma być zwięzły, żeby nie spychał siatki: ciaśniejsze wiersze, przyciski w jednym
   rzędzie, a sekcje „Agent proponuje” i „Zaległe” to zwijane <details class="task-zwij"> z nagłówkiem <summary class="task-hd">.
   Notatka i Raport dnia dzielą teraz parę .dwa-taski po równo (zadania już nie są w tej parze). */
.blok-taski{ margin-top:-.15rem; }                                   /* dosunięty do kartki z MD — czytają się jako jedna całość */
.blok-taski .blok-hd{ margin-bottom:.3rem; }
.blok-taski .task{ padding:.12rem 0; }
.blok-taski .task-czemu{ padding-bottom:.2rem; }
.blok-taski .empty{ padding:.25rem 0; }
.blok-taski .task-przyciski{ display:flex; flex-wrap:wrap; align-items:center; gap:.3rem .4rem; margin-top:.4rem; }
.blok-taski .task-legenda{ margin-top:.3rem; }
.task-zwij{ margin-top:.35rem; }
details.task-zwij > summary.task-hd{
  font-family:var(--mono); font-size:.6rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase; color:var(--muted);
  margin:0; padding:.45rem 0 .2rem; border-top:1px solid var(--line); align-items:center;
}
details.task-zwij > summary.task-hd:hover{ color:var(--ink-2); }
details.task-zwij > summary.task-hd::after{ font-size:.7rem; }
details.task-zwij[open] > summary.task-hd{ margin-bottom:.15rem; }
.task-zwij .task-agent{ margin-top:.3rem; }
.dwa-taski{ grid-template-columns:1fr 1fr; }                         /* Notatka | Raport dnia — po równo (dawne 1.75fr 1fr było dla zadań) */
@media (max-width:1100px){ .dwa-taski{ grid-template-columns:1fr; } }   /* węższy ekran wraca do jednej kolumny (dawna reguła 1.75fr 1fr sprzed 1.4.1 usunięta) */
@media (max-width:719px){
  .blok-taski{ margin-top:0; }
  details.task-zwij > summary.task-hd{ min-height:40px; padding-block:.5rem .3rem; }   /* nagłówek sekcji to teraz cel dotyku */
}

/* 1.4.1 onboarding — cement */
/* (blok PRZED „0.9.0 G1” — testy k1 / n3-powloka / p-d pilnują, żeby G1 był ostatni w pliku.)
   Pierwsze kroki po scementowaniu obszarów niezbędnych: suwak snu, przełączniki i suwaki pracy / domu oraz dni robocze są `disabled`
   (onboarding.js, tor A) — bez tych reguł wyglądały jak aktywne. Ten sam wygląd co wyłączone pola w Ustawieniach → Rama dnia (.ust-rama). */
.switch:disabled{ opacity:.5; cursor:not-allowed; }
.onb-suwak.wylaczony input:disabled{ opacity:.55; cursor:not-allowed; }
.hm-day:disabled{ opacity:.55; cursor:not-allowed; }
.onb-cement{ margin:.6rem 0 .4rem; }

/* ==== 0.9.0 G1 ==== */
/* Pasek Mistrzowskiej Decyzji na telefonie (uwaga Macieja): „×” lądował w osobnym wierszu pod badge'em. Teraz ✓ ✕ [badge] × stoją
   w JEDNYM wierszu: badge licznika jest elastyczny (skraca się wielokropkiem zamiast spychać × niżej), × dociśnięty do prawej. */
@media (max-width:719px){
  .md-wiersz:not(.pusta) .md-akcje{ flex-wrap:nowrap; }
  .md-akcje .badge.md-blokada{ display:block; flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; text-align:center; line-height:1.6; }
  .md-akcje .btn-x{ flex:0 0 auto; margin-left:auto; }
  .md-wiersz.pusta .md-akcje .badge.md-blokada{ flex:1 1 100%; }   /* „brak Mistrzowskiej Decyzji” pod „Podejmij” — jak dotąd */
  .md-edycja .md-input{ flex-basis:100%; }                           /* edycja treści: pole w całym wierszu, „Zapisz” / „anuluj” pod nim (jak przy kodzie) */
}
