/* panel.css — wspólny styl panelu RoasLens (strony za logowaniem).
   Achromatyczny, dwumotywowy (jasny/ciemny). Nadzbiór tokenów obu dialektów panelu
   (--panel/--txt/--muted ORAZ --card/--tx/--mut) + statusy, date-picker, layout.
   Kolory statusu (--ok/--bad/--warn/--info) ZOSTAJĄ — w panelu z danymi niosą znaczenie. */

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

/* Natywne kontrolki (pola dat, scrollbary, listy) idą za motywem. */
:root{color-scheme:dark}
:root[data-theme="light"]{color-scheme:light}
:root[data-theme="dark"]{color-scheme:dark}

/* ── CIEMNY (domyślny) ── */
:root{
  --bg:#101210; --field:#12140E;
  --panel:#1C201B; --panel2:#171A16; --panel3:#22271F;
  --card:#1C201B; --card2:#171A16;
  --line:#2B302A; --line2:#3A4034; --line-strong:#4A5147;
  --txt:#E9ECE4; --tx:#E9ECE4; --tx2:#B6BDB0;
  --muted:#889181; --mut:#889181; --muted2:#828B7B;
  --acc:#E9ECE4; --acc2:#B6BDB0; --acc-ink:#101210;
  --ok:#6DBB9F; --ok-bg:rgba(109,187,159,.14); --ok-bd:rgba(109,187,159,.42); --ok-line:#2C4A3D;
  --bad:#E0604E; --bad-bg:rgba(224,96,78,.14); --bad-bd:rgba(224,96,78,.42); --bad-line:#5A2A24;
  --warn:#CBAB5E; --warn-bg:rgba(203,171,94,.14); --warn-bd:rgba(203,171,94,.42); --warn-line:#4A3F1E;
  --info:#8FA9B2; --info-bg:rgba(143,169,178,.14); --info-bd:rgba(143,169,178,.42);
  --prep:#ABA48E; --prep-bg:rgba(171,164,142,.14); --prep-bd:rgba(171,164,142,.42);
  --radius:8px; --shadow:0 10px 34px -20px rgba(0,0,0,.6);
  --dp-bg:var(--panel); --dp-bg-soft:var(--panel2); --dp-border:var(--line); --dp-border-focus:var(--acc);
  --dp-text:var(--txt); --dp-text-muted:var(--muted); --dp-accent:var(--acc); --dp-accent-hover:var(--acc2);
  --dp-error:var(--bad); --dp-radius:6px;
  --serif:'Source Serif 4','Iowan Old Style',Georgia,serif;
  --sans:'IBM Plex Sans',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
/* ── JASNY (z systemu lub ręcznie) ── */
/* auto-jasny-z-systemu wyłączony — domyślnie ciemny, jasny przez przełącznik */
:root[data-theme="light"]{
  --bg:#F4F2EA; --field:#FFFFFF;
  --panel:#FCFBF6; --panel2:#EAE7DD; --panel3:#E1DED1;
  --card:#FCFBF6; --card2:#EAE7DD;
  --line:#DEDBCF; --line2:#CBC8BA; --line-strong:#B4B1A2;
  --txt:#1A1C16; --tx:#1A1C16; --tx2:#454A3E;
  --muted:#616555; --mut:#616555; --muted2:#5D6150;
  --acc:#1A1C16; --acc2:#454A3E; --acc-ink:#FCFBF6;
  --ok:#297049; --ok-bg:rgba(46,125,91,.12); --ok-bd:rgba(46,125,91,.4); --ok-line:#BFD8C8;
  --bad:#B23A2A; --bad-bg:rgba(178,58,42,.12); --bad-bd:rgba(178,58,42,.4); --bad-line:#E2BDB4;
  --warn:#7A611A; --warn-bg:rgba(122,97,26,.12); --warn-bd:rgba(122,97,26,.4); --warn-line:#D9CDA2;
  --info:#45636C; --info-bg:rgba(69,99,108,.12); --info-bd:rgba(69,99,108,.4);
  --prep:#6E6752; --prep-bg:rgba(110,103,82,.12); --prep-bd:rgba(110,103,82,.4);
  --shadow:0 10px 34px -22px rgba(60,58,44,.35);
}
:root[data-theme="dark"]{
  --bg:#101210; --field:#12140E;
  --panel:#1C201B; --panel2:#171A16; --panel3:#22271F;
  --card:#1C201B; --card2:#171A16;
  --line:#2B302A; --line2:#3A4034; --line-strong:#4A5147;
  --txt:#E9ECE4; --tx:#E9ECE4; --tx2:#B6BDB0;
  --muted:#889181; --mut:#889181; --muted2:#828B7B;
  --acc:#E9ECE4; --acc2:#B6BDB0; --acc-ink:#101210;
  --ok:#6DBB9F; --ok-bg:rgba(109,187,159,.14); --ok-bd:rgba(109,187,159,.42); --ok-line:#2C4A3D;
  --bad:#E0604E; --bad-bg:rgba(224,96,78,.14); --bad-bd:rgba(224,96,78,.42); --bad-line:#5A2A24;
  --warn:#CBAB5E; --warn-bg:rgba(203,171,94,.14); --warn-bd:rgba(203,171,94,.42); --warn-line:#4A3F1E;
  --info:#8FA9B2; --info-bg:rgba(143,169,178,.14); --info-bd:rgba(143,169,178,.42);
  --prep:#ABA48E; --prep-bg:rgba(171,164,142,.14); --prep-bd:rgba(171,164,142,.42);
  --shadow:0 10px 34px -20px rgba(0,0,0,.6);
}

/* ── Baza dostępności — wspólna ── */
:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:1px}
.skiplink{position:absolute;left:8px;top:-48px;z-index:1000;background:var(--acc);color:var(--acc-ink);
  padding:10px 16px;border-radius:2px;font-weight:600;text-decoration:none;transition:top .12s}
.skiplink:focus{top:8px}
.themebtn{background:transparent;border:1px solid var(--line-strong);color:var(--tx);border-radius:2px;
  width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:15px;line-height:1;flex:none}
.themebtn:hover{background:var(--card2)}
@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

/* ── JUSTOWANIE TEKSTU — ZASADA GLOBALNA ────────────────────────────────────
   Teksty akapitowe justujemy WSZĘDZIE. Reguła jest tutaj, a nie przy każdym
   akapicie z osobna, bo wpisywanie text-align:justify ręcznie zawsze gdzieś
   przecieka — nowa strona ma justować się sama, bez pamiętania o tym.
   Bezpieczne z natury: justowanie zmienia tylko linie, które się ZAWIJAJĄ
   (ostatnia linia i teksty jednoliniowe zostają bez zmian), więc krótkie
   etykiety, przyciski i liczby wyglądają identycznie jak dotąd.
   hyphens:auto + lang="pl" dzieli wyrazy, inaczej justowanie robi „rzeki”. */
p, li, dd, blockquote, .lead, .sub, .answer, .desc, .mut, .hint, .note, .empty-note {
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}
/* Wyjątków nie wypisujemy: style inline (text-align:center) i tak mają pierwszeństwo,
   a komórki tabel, przyciski i etykiety nie są objęte regułą wyżej. */

