/* Biuletyn KRZ - portal (konto.analizy.io, biuletyn.analizy.io/, /w/<token>)
   Jeden plik CSS. System „Kartoteka × Urząd” (wspólny z MSiG dziennik).
   Fonty: self-hosted woff2 w /static/fonts/ (Public Sans 400/600/700/400i, IBM Plex Mono 400/500, subset latin-ext). */

@font-face{font-family:"Public Sans";src:url(fonts/PublicSans-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Public Sans";src:url(fonts/PublicSans-Italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Public Sans";src:url(fonts/PublicSans-SemiBold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Public Sans";src:url(fonts/PublicSans-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url(fonts/IBMPlexMono-Regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url(fonts/IBMPlexMono-Medium.woff2) format("woff2");font-weight:500;font-display:swap}

:root{
  --bg:#f3f2f1; --paper:#fff; --ink:#0b0c0c; --ink-2:#505a5f;
  --rule:#b1b4b6; --rule-2:#e3e4e5; --accent-bg:#f3f2f1;
  --mark:#ffdd00; --focus:#ffdd00; --row-hover:#fff7c2;
  --hdr:#0b0c0c; --hdr-ink:#fff; --hdr-line:#6f777b;
  --th-bg:#0b0c0c; --th-ink:#fff;
  --cat-upadlosc:#d4351c; --cat-restr:#1d70b8;
  --ok:#00703c; --warn:#b55a1a; --err:#d4351c; --info:#1d70b8;
  --sans:"Public Sans",Arial,sans-serif; --mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
}
:root[data-theme="dark"]{
  --bg:#0b0c0c; --paper:#141515; --ink:#f3f2f1; --ink-2:#b1b4b6;
  --rule:#505a5f; --rule-2:#2a2d2e; --accent-bg:#2a2d2e; --row-hover:#2e2a10;
  --hdr:#000; --hdr-line:#505a5f; --th-bg:#f3f2f1; --th-ink:#0b0c0c;
  --cat-upadlosc:#f08a76; --cat-restr:#5694ca; --ok:#4fb07a; --warn:#f0a060; --err:#f08a76;
}

@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0b0c0c; --paper:#141515; --ink:#f3f2f1; --ink-2:#b1b4b6;
  --rule:#505a5f; --rule-2:#2a2d2e; --accent-bg:#2a2d2e; --row-hover:#2e2a10;
  --hdr:#000; --hdr-line:#505a5f; --th-bg:#f3f2f1; --th-ink:#0b0c0c;
  --cat-upadlosc:#f08a76; --cat-restr:#5694ca; --ok:#4fb07a; --warn:#f0a060; --err:#f08a76;
}}

*,*::before,*::after{box-sizing:border-box}
html{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}
body{margin:0;min-height:100vh;display:flex;flex-direction:column}
main{flex:1}
a{color:var(--ink);text-decoration:underline;text-underline-offset:.15em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:3px}
:focus-visible{outline:3px solid var(--focus);outline-offset:0;box-shadow:inset 0 -4px 0 #0b0c0c}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Nagłówek */
.hdr{background:var(--hdr);color:var(--hdr-ink);height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px;border-bottom:1px solid var(--hdr-line)}
.hdr a{color:var(--hdr-ink)}
.brand{display:flex;align-items:baseline;gap:6px;text-decoration:none}
.brand__code{font:500 13px/1 var(--mono);letter-spacing:.04em}
.brand__name{font:italic 400 21px/1 var(--sans)}
.brand__pro{font:500 11px var(--mono);border:1px solid currentColor;padding:2px 6px;margin-left:6px}
.hdr__login{font-size:14px;padding:12px 0;white-space:nowrap}
.userbar{background:var(--paper);border-bottom:1px solid var(--rule);padding:10px 16px;font:12px var(--mono);color:var(--ink-2);word-break:break-all}
@media (min-width:900px){
  .hdr{height:58px;padding:0 24px}
  .brand__code{font-size:14px} .brand__name{font-size:23px}
  .hdr__login{padding:7px 13px;border:1px solid var(--hdr-line);text-decoration:none}
}

/* Układ */
.wrap{padding:28px 18px 40px;display:flex;flex-direction:column;gap:18px;max-width:1060px;margin:0 auto}
.wrap--narrow{max-width:480px}
@media (min-width:900px){.wrap{padding:56px 44px}}

/* Typografia */
.eyebrow{font:400 11.5px var(--mono);color:var(--ink-2);text-transform:uppercase}
.label{font:500 10.5px/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.h1{margin:0;font:400 34px/1.04 var(--sans);letter-spacing:-.01em;text-wrap:balance}
.h1--hero{font-size:30px;line-height:1.08}
@media (min-width:900px){.h1--hero,.h1--page{font-size:46px;line-height:1.06}}
.h2{margin:12px 0 0;font:700 21px/1.3 var(--sans)}
.lead{margin:0;font:16px/1.6 var(--sans);color:var(--ink-2);text-wrap:pretty}
@media (min-width:900px){.lead{font-size:17.5px}}
.help{font:13.5px/1.5 var(--sans);color:var(--ink-2)}
.id{font:11.5px var(--mono);white-space:nowrap}
.id-chip{font:13px var(--mono);background:var(--rule-2);padding:2px 6px;border-radius:3px}

/* Formularze */
.field{display:flex;flex-direction:column;gap:6px}
.field__label{font:700 15px var(--sans)}
.field__error{font:700 14px/1.4 var(--sans);color:var(--err)}
.input{height:48px;padding:0 12px;border:2px solid var(--ink);border-radius:0;background:var(--paper);color:var(--ink);font:18px var(--sans);width:100%}
.input--code{height:64px;font:500 32px var(--mono);letter-spacing:.4em;text-align:center}
.field--error{padding-left:14px;border-left:4px solid var(--err)}
/* pole-pułapka dla botów: poza ekranem, nie display:none (część botów to pomija) */
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.field--error .input{border-color:var(--err)}
.inline-form{display:flex;align-items:stretch}
.inline-form .input{border-right:0;height:46px}
.check{display:flex;gap:10px;align-items:flex-start;font:14px/1.5 var(--sans);cursor:pointer}
.check input{width:24px;height:24px;margin:0;flex-shrink:0;accent-color:var(--ink)}

/* Przyciski */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;height:48px;padding:0 20px;border:0;border-radius:0;background:var(--ink);color:var(--paper);font:700 16px var(--sans);text-decoration:none;cursor:pointer}
.btn--secondary{height:44px;background:transparent;color:var(--ink);border:1px solid var(--ink);font-weight:400;font-size:15px}
.btn--quiet{height:44px;background:transparent;color:var(--ink);border:1px solid var(--rule);font-weight:400;font-size:15px}
.btn--block{width:100%}
.btn:disabled{opacity:.35;cursor:default}

/* Komunikaty */
.alert{padding:14px 16px;display:flex;flex-direction:column;gap:6px;background:var(--paper)}
.alert__title{font:700 17px var(--sans)}
.alert--error{border:3px solid var(--err)}
.alert--pending{border:3px solid var(--warn)}
.alert--success{background:var(--ok);color:#fff}
.alert--large .alert__title{font-size:24px;line-height:1.2}

/* Pigułki, kategorie */
.pill{display:inline-block;white-space:nowrap;border:1px solid currentColor;border-radius:999px;padding:2px 9px;font-size:11.5px}
.pill--ok{color:var(--ok)} .pill--warn{color:var(--warn)} .pill--err{color:var(--err)} .pill--off{color:var(--ink-2)}
.cat{display:inline-block;width:8px;height:8px;border-radius:2px;flex-shrink:0;background:var(--cat-upadlosc)}
.cat--restr{background:var(--cat-restr)}

/* Karta subskrypcji */
.sub{background:var(--paper);border:1px solid var(--rule)}
.sub__head{padding:16px 16px 14px;display:flex;flex-direction:column;gap:8px;border-bottom:1px solid var(--rule-2)}
.sub__row{display:flex;justify-content:space-between;align-items:center;gap:8px}
.sub__title{font:700 19px/1.3 var(--sans);display:flex;gap:8px;align-items:baseline}
.sub__body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:14px}
.sub__meta{padding:12px 16px;border-bottom:1px solid var(--rule-2);background:var(--accent-bg);display:flex;justify-content:space-between;align-items:center;gap:8px}
.sub--unknown{border-style:dashed}
.ext{border:1px dashed var(--rule);padding:14px 16px;display:flex;flex-direction:column;gap:6px}

/* Tabela (grid) - ustaw --cols na .table */
.table{background:var(--paper);border:1px solid var(--rule);overflow-x:auto}
.table__inner{min-width:680px}
.table__head,.table__row{display:grid;grid-template-columns:var(--cols);gap:10px}
.table__head{padding:9px 14px;background:var(--th-bg);color:var(--th-ink);font:600 12.5px var(--sans)}
.table__row{padding:10px 14px;border-bottom:1px solid var(--rule-2);font:13.5px/1.35 var(--sans);align-items:start;font-variant-numeric:tabular-nums}
.table__row:hover{background:var(--row-hover)}
.table__subject{font-weight:700;text-decoration:underline;text-underline-offset:.15em}
.table__snippet{display:block;margin-top:5px;font-size:12.5px;line-height:1.5;color:var(--ink-2)}
.ext-data{font-style:italic;color:var(--ink-2)}
.ext-data::after{content:"*"}
.table__more{padding:12px 14px;font:italic 15px var(--sans);color:var(--ink-2)}
/* Próbka na landingu: poniżej 700px rekordy jako karty */
@media (max-width:699px){.table--cards .table__inner{min-width:0}.table--cards .table__head{display:none}.table--cards .table__row{display:flex;flex-direction:column;gap:4px}}

/* Zakładki */
.tabs{display:flex;border-bottom:1px solid var(--rule);overflow-x:auto;scrollbar-width:none}
.tab{display:flex;gap:7px;align-items:center;white-space:nowrap;padding:10px 14px;margin-bottom:-1px;border-bottom:2px solid transparent;color:var(--ink-2);text-decoration:none;font-size:14px}
.tab[aria-current="true"]{color:var(--ink);border-bottom-color:var(--ink)}
.tab small{font:11.5px var(--mono)}

/* Fakty (landing) */
.facts{display:grid;grid-template-columns:1fr;gap:20px;background:var(--paper);border-block:1px solid var(--rule);padding:28px 18px}
@media (min-width:900px){.facts{grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;padding:40px 44px}}

/* Strony prawne */
.legal{display:grid;grid-template-columns:1fr}
.toc{border-bottom:1px solid var(--rule);padding:20px 0}
.toc a{display:grid;grid-template-columns:28px 1fr;padding:8px 18px 8px 17px;border-left:3px solid transparent;text-decoration:none;color:var(--ink-2);font-size:14px}
.toc a[aria-current="true"]{border-left-color:var(--ink);background:var(--paper);color:var(--ink)}
.prose{background:var(--paper);padding:28px 18px 56px;font:17.5px/1.72 var(--sans);text-wrap:pretty;display:flex;flex-direction:column;gap:16px}
.prose h2{margin:12px 0 0;font:700 21px/1.3 var(--sans);padding-bottom:6px;border-bottom:1px solid var(--rule-2)}
.prose p,.prose ol,.prose ul{margin:0}
.prose ol{padding-left:28px}
@media (min-width:900px){.legal{grid-template-columns:232px minmax(0,700px);justify-content:center}.toc{border-bottom:0;border-right:1px solid var(--rule);padding:40px 0;position:sticky;top:0;align-self:start}.prose{padding:40px 44px 72px}}

/* Stopka */
.ftr{background:var(--paper);border-top:1px solid var(--rule);padding:16px 18px;display:flex;flex-direction:column;gap:6px;font:13px/1.5 var(--sans);color:var(--ink-2)}
.ftr nav{display:flex;flex-wrap:wrap;gap:4px 14px}
@media (min-width:900px){.ftr{flex-direction:row;justify-content:space-between;padding:24px 44px;font-size:13.5px}}

/* Baner cookies */
.cookies{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--paper);border-top:2px solid var(--ink);padding:16px 18px;display:flex;flex-direction:column;gap:12px;font:14px/1.5 var(--sans)}
.cookies[hidden]{display:none}
@media (min-width:900px){.cookies{flex-direction:row;align-items:center;justify-content:space-between;padding:16px 44px}.cookies .btn{height:40px}}

/* ---- Uzupełnienia wdrożeniowe (portal Flask, 2026-10-06) ---- */
body{padding-bottom:0}
body.has-cookies{padding-bottom:180px}
@media (min-width:900px){body.has-cookies{padding-bottom:80px}}
.hdr__right{display:flex;align-items:center;gap:14px}
.hdr__who{display:none;font:13px var(--mono);color:#b1b4b6}
.hdr form{margin:0}
.hdr__logout{background:none;border:0;color:var(--hdr-ink);font:14px var(--sans);text-decoration:underline;text-underline-offset:.15em;cursor:pointer;padding:12px 0}
@media (min-width:900px){.hdr__who{display:inline}.userbar{display:none}}
.stack{display:flex;flex-direction:column;gap:18px}
.stack--tight{gap:10px}
.form{display:flex;flex-direction:column;gap:16px}
.rule{border:0;border-top:1px solid var(--rule);margin:8px 0}
.muted{color:var(--ink-2)}
.small{font-size:14px;line-height:1.5}
.alert p{margin:0;font:15px/1.55 var(--sans)}
.alert--success a{color:#fff}
.alert ul{margin:0;padding:0;list-style:none}
.alert--error a{color:var(--err);font-weight:700}
.field__error{margin:0}
details.hint summary{cursor:pointer;text-decoration:underline;text-underline-offset:.15em;font:15px var(--sans)}
details.hint p{margin:12px 0 0;padding-left:14px;border-left:4px solid var(--rule);font:15px/1.6 var(--sans);color:var(--ink-2)}
.sub__body p{margin:0;font:15px/1.6 var(--sans)}
.sub--unknown .sub__title{color:var(--ink-2)}
.status-unknown{font:italic 15px var(--sans);color:var(--ink-2);margin:0}
.ext__row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.ext__title{font:700 17px/1.3 var(--sans)}
.ext p{margin:0;font:15px/1.5 var(--sans);color:var(--ink-2)}
/* Formularz landingu: na telefonie przycisk pod polem, na desktopie sklejony */
@media (max-width:699px){.inline-form{flex-direction:column;gap:12px}.inline-form .input{border-right:2px solid var(--ink)}.field--error .inline-form .input{border-color:var(--err)}.inline-form .btn{width:100%}}
@media (min-width:700px){.inline-form{max-width:640px}.inline-form .btn{height:46px}}
/* Landing */
.hero{display:flex;flex-direction:column;gap:18px;max-width:720px}
.sample{display:flex;flex-direction:column;gap:10px}
.sample__head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.sample__title{margin:4px 0 0;font:700 19px/1.3 var(--sans)}
@media (min-width:900px){.sample__title{font-size:21px}}
.sample__tag{font:11.5px var(--mono);color:var(--ink-2);border:1px dashed var(--rule);padding:2px 8px;white-space:nowrap}
.sample__bar{display:none}
.table__pos{display:flex;gap:8px;align-items:center;font:11.5px var(--mono)}
.table__ids{display:flex;flex-direction:column;gap:2px}
@media (max-width:699px){
  .sample__title{display:none}
  .sample__bar{display:flex;justify-content:space-between;gap:10px;background:var(--th-bg);color:var(--th-ink);padding:10px 14px;font:700 15px var(--sans)}
  .sample__bar span:last-child{font:500 13px var(--mono)}
  .table--cards .table__pos span:last-child{display:none}
  .table--cards .table__row{display:grid;grid-template-columns:14px 1fr;gap:4px 8px}
  .table--cards .table__row>*{grid-column:2}
  .table--cards .table__row>.table__pos{grid-column:1;grid-row:1;padding-top:6px}
  .table--cards .table__subject{font-size:16px}
  .table--cards .table__ids{flex-direction:row;flex-wrap:wrap;gap:4px 10px}
}
.facts__item{display:flex;flex-direction:column;gap:8px;font:16px/1.45 var(--sans)}
.band{background:var(--paper);border-bottom:1px solid var(--rule)}
.band .wrap{padding-top:28px;padding-bottom:28px}
@media (min-width:900px){.band .wrap{padding-top:40px;padding-bottom:40px}}
.pro-teaser{display:grid;grid-template-columns:1fr;gap:20px}
.pro-teaser .ext{background:transparent}
@media (min-width:900px){.pro-teaser{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}}
/* Strony prawne */
.toc__label{padding:0 18px 10px}
.toc ol{list-style:none;margin:0;padding:0}
.toc__num{font:12px var(--mono)}
.prose .meta{font:11.5px var(--mono);color:var(--ink-2);text-transform:uppercase}
.prose h1{margin:0}
.prose h2{scroll-margin-top:16px}
.prose li+li{margin-top:6px}
.prose table{border-collapse:collapse;width:100%;font:14px/1.45 var(--sans)}
.prose th,.prose td{border:1px solid var(--rule);padding:6px 8px;text-align:left;vertical-align:top}
.prose th{background:var(--th-bg);color:var(--th-ink);font-weight:600}
/* Liczby kodu: miejsce na zera wiodące, bez strzałek */
.input--code::placeholder{color:var(--rule);letter-spacing:.4em}
.meta-mono{font:13px/1.4 var(--mono);color:var(--ink-2)}
.band .facts{padding:0;border:0;background:none}
.pro-teaser .h2{margin:0}
.pro-teaser .help{font-size:15px;line-height:1.6;margin:0}
.sample__syndyk{display:none}
.m-only{display:none}
@media (max-width:699px){.d-only{display:none}.m-only{display:inline}.table--cards .sample__syndyk{display:inline}.table--cards .table__row>span:last-child{color:var(--ink-2)}}
.stack--narrow{max-width:640px}
.toc a{grid-template-columns:40px 1fr}
.toc__num{white-space:nowrap}
@media (min-width:900px){.hero{margin-bottom:36px}}

/* Kody zaproszenia do Plus + panel admina (2026-10-16) */
.input--invite{font:500 20px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.btn[disabled]{background:var(--rule-2);color:var(--ink-2);cursor:not-allowed}
.wrap--admin{max-width:1060px}
.mono{font-family:var(--mono);font-size:13px}
.kody-nowe{margin:8px 0;padding:10px 12px;background:var(--paper);border:1px solid var(--rule);font:500 16px/1.6 var(--mono);user-select:all;white-space:pre}
.admin-form{display:grid;grid-template-columns:1fr;gap:8px;background:var(--paper);border:1px solid var(--rule);padding:16px}
@media (min-width:700px){.admin-form{grid-template-columns:auto 90px auto 1fr auto;align-items:center}.admin-form .input{height:44px}.admin-form .btn{height:44px}}
.admin-scroll{overflow-x:auto;background:var(--paper);border:1px solid var(--rule)}
.admin-table{width:100%;border-collapse:collapse;font:14px/1.4 var(--sans)}
.admin-table th{text-align:left;font:500 10.5px/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);padding:10px 12px;border-bottom:1px solid var(--rule)}
.admin-table td{padding:8px 12px;border-bottom:1px solid var(--rule-2);vertical-align:middle;white-space:nowrap}
.admin-table .btn--quiet{height:34px;padding:0 12px;font-size:13px}
.admin-akcje{display:flex;gap:6px}