/* Czcionki z własnego serwera (vendor/ui-fonts, instaluje je instaluj-czcionki.php). Bez nich działają czcionki systemowe. */
@font-face { font-family: 'Saira Condensed'; font-style: normal; font-weight: 600; font-display: swap; src: url('../vendor/ui-fonts/saira-condensed-latin-ext-600-normal.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: 'Saira Condensed'; font-style: normal; font-weight: 600; font-display: swap; src: url('../vendor/ui-fonts/saira-condensed-latin-600-normal.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: 'Saira Condensed'; font-style: normal; font-weight: 700; font-display: swap; src: url('../vendor/ui-fonts/saira-condensed-latin-ext-700-normal.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: 'Saira Condensed'; font-style: normal; font-weight: 700; font-display: swap; src: url('../vendor/ui-fonts/saira-condensed-latin-700-normal.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('../vendor/ui-fonts/ibm-plex-sans-latin-ext-400-normal.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('../vendor/ui-fonts/ibm-plex-sans-latin-400-normal.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: 500; font-display: swap; src: url('../vendor/ui-fonts/ibm-plex-sans-latin-ext-500-normal.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: 500; font-display: swap; src: url('../vendor/ui-fonts/ibm-plex-sans-latin-500-normal.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('../vendor/ui-fonts/ibm-plex-sans-latin-ext-600-normal.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('../vendor/ui-fonts/ibm-plex-sans-latin-600-normal.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: italic; font-weight: 400; font-display: swap; src: url('../vendor/ui-fonts/ibm-plex-sans-latin-ext-400-italic.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: italic; font-weight: 400; font-display: swap; src: url('../vendor/ui-fonts/ibm-plex-sans-latin-400-italic.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 Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url('../vendor/ui-fonts/ibm-plex-mono-latin-ext-500-normal.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 Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url('../vendor/ui-fonts/ibm-plex-mono-latin-500-normal.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; }

/* BastionDom
   Układ: niebieski pas obrony cywilnej z pomarańczowym trójkątem, przyklejone zakładki,
   podręcznik w kolumnie do czytania (~70 znaków) z panelem bocznym, narzędzia w siatkach. */
:root {
  --base: 16px;
  --bg: #eef1f4; --surface: #ffffff; --sunk: #e4e9ee; --fg: #14202b; --muted: #566373; --line: #cfd7df;
  --accent: #e8590c; --accent-fg: #ffffff; --link: #1d5c9e;
  --band: #1d3a5f; --band-fg: #f4f7fa; --band-muted: #a9bdd3;
  --ok: #2b7a4b; --warn: #a85f06; --bad: #b42318; --ok-bg: #e3f2e8; --warn-bg: #fbf0dc; --bad-bg: #fbe5e3;
  --mark: #ffe08a;
  --display: "Saira Condensed", "Arial Narrow", Arial, sans-serif;
  --body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #0d141b; --surface: #15202b; --sunk: #1b2834; --fg: #e5ebf1; --muted: #93a2b2; --line: #2a3846;
    --accent: #ff7a33; --accent-fg: #1a0d04; --link: #7db4ec;
    --band: #14304f; --band-fg: #eef3f8; --band-muted: #8fa9c6;
    --ok: #5cc98a; --warn: #f0a63a; --bad: #ff7266; --ok-bg: #132b1f; --warn-bg: #2e2310; --bad-bg: #331816;
    --mark: #6b5310; color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #0d141b; --surface: #15202b; --sunk: #1b2834; --fg: #e5ebf1; --muted: #93a2b2; --line: #2a3846;
  --accent: #ff7a33; --accent-fg: #1a0d04; --link: #7db4ec;
  --band: #14304f; --band-fg: #eef3f8; --band-muted: #8fa9c6;
  --ok: #5cc98a; --warn: #f0a63a; --bad: #ff7266; --ok-bg: #132b1f; --warn-bg: #2e2310; --bad-bg: #331816;
  --mark: #6b5310; color-scheme: dark;
}

* { box-sizing: border-box; }
html { font-size: var(--base); -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--fg); font-family: var(--body); font-size: 1rem; line-height: 1.55; min-height: 100vh; display: flex; flex-direction: column; }
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 30; background: var(--band); }
img { max-width: 100%; }
[hidden] { display: none !important; }
.native .no-native { display: none !important; }
a { color: var(--link); }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -999px; top: 8px; z-index: 50; background: var(--accent); color: var(--accent-fg); padding: 8px 12px; border-radius: 6px; }
.skip:focus { left: 12px; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.wrap { max-width: 1160px; margin: 0 auto; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
.muted { color: var(--muted); }
.small { font-size: .82rem; }
.num { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.label { font-size: .72rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.eyebrow { margin: 0 0 4px; font-size: .74rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--accent); }

/* ---------- nagłówek ---------- */
header.band { background: var(--band); color: var(--band-fg); padding-top: env(safe-area-inset-top, 0px); }
.band-inner { display: flex; align-items: center; gap: 14px; padding-block: 14px; flex-wrap: wrap; }
.brand { display: flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; min-width: 0; }
.mark { width: 40px; height: 40px; flex: none; background: var(--band-fg); border-radius: 50%; display: grid; place-items: center; }
.mark span { width: 0; height: 0; border-left: 14px solid transparent; border-right: 14px solid transparent; border-bottom: 24px solid var(--accent); transform: translateY(-2px); }
.brand-text { display: flex; flex-direction: column; line-height: 1; }
.brand-name { font-family: var(--display); font-weight: 700; font-size: 1.6rem; letter-spacing: .01em; }
.brand-sub { font-size: .78rem; color: var(--band-muted); margin-top: 3px; }
.search { flex: 1; min-width: 200px; display: flex; justify-content: flex-end; }
.search input { width: 100%; max-width: 380px; height: 40px; border-radius: 8px; border: 1px solid transparent; background: rgba(255,255,255,.12); color: var(--band-fg); padding: 0 12px; font: 1rem var(--body); }
.search input::placeholder { color: var(--band-muted); }
.search input:focus { background: var(--surface); color: var(--fg); outline: 2px solid var(--accent); }
.icon-btn { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 8px; color: var(--band-fg); border: 1px solid rgba(255,255,255,.25); }
.icon-btn:hover { border-color: var(--band-fg); }
@media (max-width: 560px) { .search { order: 3; flex-basis: 100%; } .search input { max-width: none; } .brand { flex: 1; } }

/* ---------- nawigacja: lewy panel (komputer), dolny pasek + szuflada (telefon) ---------- */
.shell { display: grid; grid-template-columns: 220px minmax(0, 1fr); flex: 1; width: 100%; max-width: 1440px; margin: 0 auto; }
.side-nav { position: sticky; top: 0; align-self: start; max-height: 100vh; overflow-y: auto; padding: 18px 10px 24px; border-right: 1px solid var(--line); display: grid; gap: 16px; align-content: start; }
.side-head { display: none; }
.nav-g { display: grid; gap: 2px; }
.nav-g-t { font-size: .7rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); padding: 0 12px 4px; }
.side-nav a[data-nav] { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-weight: 600; font-size: .95rem; color: var(--fg); text-decoration: none; padding: 8px 12px; border-radius: 8px; border-left: 3px solid transparent; }
.side-nav a[data-nav]:hover { background: var(--sunk); }
.side-nav a[aria-current="page"] { background: var(--sunk); border-left-color: var(--accent); }
.side-nav a.tab-crisis { color: var(--bad); }
.side-nav a.tab-crisis[aria-current="page"] { border-left-color: var(--bad); }
.nav-lock { font-size: .75rem; opacity: .6; }
.is-full .nav-lock, .is-full .nav-cta { display: none; }
.nav-cta { display: block; text-align: center; margin: 4px 6px 0; padding: 10px 12px; border-radius: 8px; background: var(--accent); color: var(--accent-fg); font-weight: 600; text-decoration: none; font-size: .92rem; }
.nav-scrim { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 55; }
.bottom-bar { display: none; }
@media (max-width: 900px) {
  .shell { grid-template-columns: minmax(0, 1fr); }
  .side-nav { position: fixed; top: 0; bottom: 0; left: 0; width: min(300px, 86vw); max-height: none; z-index: 60; background: var(--surface); border-right: 1px solid var(--line); padding-top: calc(12px + env(safe-area-inset-top, 0px)); padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px)); transform: translateX(-105%); transition: transform .2s ease; box-shadow: 0 0 30px rgba(0,0,0,.3); }
  .side-nav.open { transform: none; }
  .side-head { display: flex; justify-content: space-between; align-items: center; padding: 0 6px 0 12px; font-family: var(--display); font-size: 1.3rem; font-weight: 700; }
  .side-close { width: 40px; height: 40px; border: 0; background: none; color: var(--fg); font-size: 1.6rem; cursor: pointer; }
  .side-nav a[data-nav] { padding: 11px 12px; }
  .bottom-bar { display: grid; grid-template-columns: repeat(5, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; background: var(--surface); border-top: 1px solid var(--line); padding-bottom: env(safe-area-inset-bottom, 0px); }
  .bottom-bar a, .bottom-bar button { display: grid; justify-items: center; gap: 2px; padding: 8px 2px 7px; font: 600 .7rem var(--body); color: var(--muted); text-decoration: none; background: none; border: 0; border-top: 3px solid transparent; cursor: pointer; }
  .bottom-bar .on { color: var(--fg); border-top-color: var(--accent); }
  .bottom-bar .bb-crisis { color: var(--bad); }
  .bottom-bar .bb-crisis.on { border-top-color: var(--bad); }
  body { padding-bottom: calc(62px + env(safe-area-inset-bottom, 0px)); }
  .toast { bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
}

main { flex: 1; outline: none; }
#view { padding-block: 24px 56px; display: grid; gap: 22px; grid-template-columns: minmax(0, 1fr); }
#view > * { min-width: 0; }

h1, h2, h3, h4 { text-wrap: balance; }
.page-h, .hero h1 { font-family: var(--display); font-weight: 700; font-size: clamp(1.9rem, 4.5vw, 2.6rem); line-height: 1.05; margin: 0; }
.lead { color: var(--muted); margin: 6px 0 0; max-width: 68ch; font-size: 1.05rem; }
.sec-h { font-family: var(--display); font-size: 1.4rem; margin: 0 0 10px; }

/* ---------- strona główna ---------- */
.hero { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 24px; align-items: center; }
@media (max-width: 860px) { .hero { grid-template-columns: minmax(0, 1fr); } }
.hero-tools { display: grid; gap: 10px; }
.tile { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; display: grid; gap: 2px; min-width: 0; }
a.tile { text-decoration: none; color: inherit; }
a.tile:hover { border-color: var(--accent); }
.tile-t { font-family: var(--display); font-weight: 600; font-size: 1.3rem; line-height: 1.15; }
.tile .note { font-size: .82rem; color: var(--muted); }
.hero-tile, a.tile.hero-tile { background: var(--band); color: var(--band-fg); border-color: var(--band); }
.hero-tile .label, .hero-tile .note { color: var(--band-muted); }
.emergency { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 860px) { .emergency { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.em { display: grid; gap: 2px; padding: 12px 14px; border-radius: 10px; background: var(--warn-bg); border-left: 4px solid var(--warn); color: var(--fg); text-decoration: none; font-size: .88rem; }
.em.bad { background: var(--bad-bg); border-left-color: var(--bad); }
.em strong { font-family: var(--display); font-size: 1.15rem; }
.em:hover { filter: brightness(1.03); }
.chip-row { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { padding: 6px 12px; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); color: var(--fg); text-decoration: none; font-size: .9rem; }
.chip:hover { border-color: var(--accent); }
.modules { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; align-items: start; }
@media (max-width: 400px) { .modules { grid-template-columns: minmax(0, 1fr); } }
.module { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 18px; display: grid; gap: 12px; }
.module h2 { font-family: var(--display); font-weight: 700; font-size: 1.5rem; line-height: 1.1; margin: 0; }
.module header p.muted { margin: 6px 0 0; font-size: .92rem; }
.chap-list { list-style: none; margin: 0; padding: 0; display: grid; }
.chap-list a { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid var(--line); color: var(--fg); text-decoration: none; }
.chap-list a:hover .chap-t { color: var(--accent); }

/* ---------- rozdział ---------- */
.crumbs { display: flex; gap: 8px; font-size: .85rem; color: var(--muted); flex-wrap: wrap; }
.crumbs a { color: var(--muted); }
.chapter-layout { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 32px; align-items: start; }
@media (max-width: 900px) { .chapter-layout { grid-template-columns: minmax(0, 1fr); } .side { order: -1; } }
.side { position: sticky; top: calc(env(safe-area-inset-top, 0px) + 64px); display: grid; gap: 12px; }
@media (max-width: 900px) { .side { position: static; } .side-box { display: flex; flex-wrap: wrap; align-items: center; } .side-box.toc { display: none; } }
.side-box { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 12px; display: grid; gap: 8px; }
.side-box p { margin: 0; }
.toc a { font-size: .88rem; color: var(--fg); text-decoration: none; padding: 3px 0; }
.toc a:hover { color: var(--accent); }

.prose { max-width: 72ch; min-width: 0; }
.prose h2 { font-family: var(--display); font-weight: 700; font-size: clamp(1.8rem, 4vw, 2.3rem); line-height: 1.08; margin: 0 0 14px; }
.prose h3 { font-family: var(--display); font-weight: 600; font-size: 1.4rem; margin: 30px 0 8px; padding-top: 10px; border-top: 1px solid var(--line); scroll-margin-top: 70px; }
.prose h4 { font-size: 1rem; margin: 20px 0 6px; }
.prose p { margin: 0 0 12px; }
.prose ul, .prose ol { margin: 0 0 14px; padding-left: 1.4em; display: grid; gap: 4px; }
.prose li > ul, .prose li > ol { margin: 4px 0 0; }
.prose ul.tasks { list-style: none; padding-left: 0; gap: 0; }
.prose li.task label { display: flex; gap: 10px; align-items: flex-start; padding: 6px 8px; border-radius: 6px; cursor: pointer; }
.prose li.task label:hover { background: var(--sunk); }
.prose li.task.done span { text-decoration: line-through; color: var(--muted); }
.prose .tbl-wrap { margin: 4px 0 16px; }
.prose strong { font-weight: 600; }
mark { background: var(--mark); color: inherit; border-radius: 2px; padding: 0 1px; }

.callout { border-left: 4px solid var(--warn); background: var(--warn-bg); padding: 10px 14px; border-radius: 0 8px 8px 0; margin: 4px 0 16px; font-size: .95rem; }
.callout.bad { border-left-color: var(--bad); background: var(--bad-bg); }

.pager { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pg { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; color: var(--fg); text-decoration: none; display: grid; gap: 2px; font-weight: 600; }
.pg.next { text-align: right; }
.pg:hover { border-color: var(--accent); }

/* ---------- wyszukiwarka ---------- */
.results { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.results a { display: grid; gap: 4px; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; color: var(--fg); text-decoration: none; }
.results a:hover { border-color: var(--accent); }
.res-mod { font-size: .75rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.res-t { font-family: var(--display); font-weight: 600; font-size: 1.3rem; }
.res-s { color: var(--muted); font-size: .9rem; }

/* ---------- narzędzia ---------- */
.panel { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 18px; display: grid; gap: 16px; min-width: 0; }
.panel h2 { font-family: var(--display); font-size: 1.35rem; margin: 0; }
.panel p { margin: 0; }
.calc { display: grid; grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 20px; align-items: start; }
@media (max-width: 860px) { .calc { grid-template-columns: minmax(0, 1fr); } }
.results-col, .stack { display: grid; gap: 14px; min-width: 0; }
.stack:empty { display: none; }
.group { display: grid; gap: 8px; }
.row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px dashed var(--line); }
.row:last-child { border-bottom: 0; }
.row .name { min-width: 0; }
.row .name small { display: block; color: var(--muted); font-size: .78rem; }
.stepper { display: flex; align-items: center; flex: none; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: var(--sunk); }
.stepper button { width: 36px; height: 36px; border: 0; background: none; color: var(--fg); font: 600 1.1rem var(--body); cursor: pointer; }
.stepper button:hover { background: var(--line); }
.stepper input { width: 46px; height: 36px; border: 0; border-inline: 1px solid var(--line); background: var(--surface); color: var(--fg); text-align: center; font: 500 .95rem var(--mono); -moz-appearance: textfield; }
.stepper input::-webkit-inner-spin-button, .stepper input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.seg { display: flex; flex-wrap: wrap; gap: 6px; }
.seg button { font: 500 .85rem var(--body); color: var(--fg); background: var(--sunk); border: 1px solid var(--line); border-radius: 999px; padding: 6px 12px; cursor: pointer; }
.seg button[aria-pressed="true"] { background: var(--accent); color: var(--accent-fg); border-color: var(--accent); }
.inline { display: flex; align-items: center; gap: 8px; }
.field { height: 38px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--fg); padding: 0 10px; font: 500 .9rem var(--mono); min-width: 0; width: 100%; }
.field.w80 { width: 84px; }
.btn { display: inline-flex; align-items: center; justify-content: center; font: 600 .9rem var(--body); border-radius: 8px; padding: 9px 14px; cursor: pointer; border: 1px solid var(--line); background: var(--surface); color: var(--fg); text-decoration: none; }
.btn:hover { border-color: var(--accent); }
.btn.primary { background: var(--accent); border-color: var(--accent); color: var(--accent-fg); }
.btn.ghost { background: none; color: var(--muted); }
.btn.danger-btn { background: var(--bad); border-color: var(--bad); color: #fff; }
.btn-row { display: flex; gap: 8px; flex-wrap: wrap; }

.tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 1000px) { .tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.tile .big { font-family: var(--display); font-weight: 700; font-size: 2.1rem; line-height: 1.05; font-variant-numeric: tabular-nums; }
.tile .big small { font-size: 1.1rem; font-weight: 600; margin-left: 3px; }

.tbl-wrap { position: relative; overflow-x: auto; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
table { border-collapse: collapse; width: 100%; min-width: 480px; font-size: .92rem; }
th, td { text-align: left; padding: 9px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
th { font-size: .72rem; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; color: var(--muted); background: var(--sunk); }
tr:last-child td { border-bottom: 0; }
td.q { text-align: right; white-space: nowrap; font-family: var(--mono); font-variant-numeric: tabular-nums; }
th.q { text-align: right; }
.w-chk { width: 56px; }
tr.done td { opacity: .55; }
tr.done td.item { text-decoration: line-through; }
tr.sum td { font-weight: 600; background: var(--sunk); }
.chk { width: 20px; height: 20px; accent-color: var(--accent); cursor: pointer; flex: none; }
.pill { display: inline-block; font-size: .72rem; font-weight: 600; padding: 2px 8px; border-radius: 999px; background: var(--sunk); color: var(--muted); font-family: var(--mono); }
.pill.ok { background: var(--ok-bg); color: var(--ok); } .pill.warn { background: var(--warn-bg); color: var(--warn); } .pill.bad { background: var(--bad-bg); color: var(--bad); }

.toolbar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; }
.prog-wrap { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 220px; }
.progress { height: 8px; background: var(--sunk); border-radius: 999px; overflow: hidden; flex: 1; max-width: 320px; }
.progress i { display: block; height: 100%; background: var(--ok); width: 0; transition: width .25s; }
.copybox { width: 100%; height: 160px; font: .82rem var(--mono); background: var(--sunk); color: var(--fg); border: 1px solid var(--line); border-radius: 8px; padding: 10px; }

.dev-table td { padding: 6px 8px; }
.dev-table .num-in { text-align: right; }
.rm { border: 0; background: none; color: var(--muted); font-size: 1.2rem; cursor: pointer; padding: 4px 8px; }
.rm:hover { color: var(--bad); }
.params { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; }
.params label { display: grid; gap: 4px; font-size: .82rem; color: var(--muted); }

.ref-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 14px; }
@media (max-width: 400px) { .ref-grid { grid-template-columns: minmax(0, 1fr); } }
.ref { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 16px; display: grid; gap: 8px; align-content: start; }
.ref h2 { font-family: var(--display); font-weight: 600; font-size: 1.3rem; margin: 0; }
.ref .formula { font-family: var(--mono); font-size: .88rem; background: var(--sunk); padding: 8px 10px; border-radius: 6px; }
.ref ul { margin: 0; padding-left: 18px; display: grid; gap: 3px; font-size: .9rem; }
.ref .tag { color: var(--accent); font-weight: 600; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.ref .more { font-size: .85rem; font-weight: 600; text-decoration: none; }

.check-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.check-list li { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; border-radius: 8px; }
.check-list li:hover { background: var(--sunk); }
.check-list li label { display: flex; gap: 12px; align-items: flex-start; padding: 10px 12px; cursor: pointer; flex: 1; }
.check-list li > a { padding: 10px 12px; white-space: nowrap; }
.check-list li.done label > span { text-decoration: line-through; color: var(--muted); }
.check-list .why { display: block; color: var(--muted); font-size: .8rem; }

.settings { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; align-items: start; }
@media (max-width: 400px) { .settings { grid-template-columns: minmax(0, 1fr); } }
.panel.danger { border-color: var(--bad); }

/* ---------- stopka i powiadomienia ---------- */
.foot-bar { border-top: 1px solid var(--line); background: var(--surface); font-size: .82rem; color: var(--muted); padding-bottom: env(safe-area-inset-bottom, 0px); }
.foot-bar .wrap { padding-block: 16px; display: grid; gap: 4px; }
.foot-bar p { margin: 0; max-width: 90ch; }
.toast { position: fixed; left: 50%; transform: translateX(-50%); bottom: calc(20px + env(safe-area-inset-bottom, 0px)); background: var(--fg); color: var(--bg); padding: 10px 16px; border-radius: 8px; font-weight: 500; z-index: 40; box-shadow: 0 6px 20px rgba(0,0,0,.25); max-width: calc(100% - 32px); }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* ---------- druk ---------- */
@media print {
  :root { --bg: #fff; --surface: #fff; --sunk: #f2f2f2; --fg: #000; --muted: #444; --line: #bbb; --warn-bg: #fff; --bad-bg: #fff; color-scheme: light; }
  html { font-size: 11pt; }
  header.band, .side-nav, .bottom-bar, .nav-scrim, .foot-bar, .side, .pager, .crumbs, .toolbar, .toast, .skip, body::before { display: none !important; }
  .chapter-layout { display: block; }
  .prose { max-width: none; }
  .tbl-wrap { overflow: visible; border: 0; }
  table { min-width: 0; }
  tr, .callout, li { break-inside: avoid; }
  a { color: inherit; text-decoration: none; }
  .callout { border: 1px solid #000; border-left-width: 4px; }
}

/* ---------- magazyn ---------- */
.inv-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; align-items: end; }
.inv-form label { display: grid; gap: 4px; font-size: .82rem; color: var(--muted); min-width: 0; }
.inv-form .f-name { grid-column: span 2; }
.inv-form .f-note { grid-column: span 3; }
.inv-form .f-btns { grid-column: 1 / -1; }
@media (max-width: 760px) { .inv-form { grid-template-columns: repeat(2, minmax(0, 1fr)); } .inv-form .f-name, .inv-form .f-note { grid-column: 1 / -1; } }
.field.txt { font-family: var(--body); font-size: .95rem; }
select.field { padding-right: 6px; }
.inv-filters { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
@media (max-width: 640px) { .inv-filters { grid-template-columns: minmax(0, 1fr); } }
.qty-ctl { display: inline-flex; align-items: center; gap: 6px; }
.qb { width: 28px; height: 28px; border-radius: 6px; border: 1px solid var(--line); background: var(--sunk); color: var(--fg); font: 600 1rem var(--body); cursor: pointer; line-height: 1; }
.qb:hover { border-color: var(--accent); }
.qv { min-width: 64px; text-align: center; }
.acts { white-space: nowrap; text-align: right; }
.btn.sm { padding: 5px 10px; font-size: .8rem; }
.acts .btn + .btn { margin-left: 4px; }
td.empty { padding: 22px 16px; color: var(--muted); white-space: normal; }
tr.editing td { background: var(--warn-bg); }
tr.ok-row td { opacity: .7; }
.have-in { width: 90px; text-align: right; }
.big.t-bad { color: var(--bad); } .big.t-warn { color: var(--warn); }
@media (max-width: 640px) {
  #inv-table { min-width: 0; }
  #inv-table thead { display: none; }
  #inv-table tbody { display: block; }
  #inv-table tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 10px; padding: 12px; border-bottom: 1px solid var(--line); }
  #inv-table tr:last-child { border-bottom: 0; }
  #inv-table td { display: block; padding: 0; border: 0; min-width: 0; }
  #inv-table td.item { grid-column: 1 / -1; font-weight: 600; }
  #inv-table td.q { text-align: left; }
  #inv-table td.acts { grid-column: 1 / -1; text-align: left; }
  #inv-table td.empty { grid-column: 1 / -1; }
  #norm-table, #shop-table { min-width: 0; font-size: .85rem; }
  #norm-table th, #norm-table td, #shop-table th, #shop-table td { padding: 8px 6px; }
  .have-in { width: 68px; }
}
.need-m { display: none; }
@media (max-width: 640px) {
  #shop-table .c-need { display: none; }
  #shop-table .need-m { display: inline; }
}

/* ---------- tryb kryzysowy ---------- */
.crisis-bar { display: grid; gap: 2px; padding: 16px 18px; border-radius: 12px; background: var(--bad); color: #fff; text-decoration: none; }
.crisis-bar strong { font-family: var(--display); font-size: 1.6rem; line-height: 1.1; }
.crisis-bar span { font-size: .9rem; opacity: .92; }
.crisis-bar:hover { filter: brightness(1.06); }
.home-tiles { margin-top: -6px; }
.crisis-head .page-h { color: var(--bad); }
.sc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
@media (max-width: 400px) { .sc-grid { grid-template-columns: minmax(0, 1fr); } }
.sc { display: grid; gap: 4px; align-content: start; padding: 16px; border-radius: 12px; text-decoration: none; color: var(--fg); background: var(--warn-bg); border-left: 6px solid var(--warn); min-height: 96px; }
.sc.bad { background: var(--bad-bg); border-left-color: var(--bad); }
.sc strong { font-family: var(--display); font-size: 1.45rem; line-height: 1.1; }
.sc span { font-size: .88rem; color: var(--muted); }
.sc .pill { justify-self: start; margin-top: 4px; }
.steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.steps li label { display: flex; gap: 14px; align-items: flex-start; padding: 14px 16px; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; cursor: pointer; font-size: 1.12rem; line-height: 1.45; }
.steps li.done label { opacity: .6; }
.steps li.done label > span { text-decoration: line-through; }
.steps .why { display: block; font-size: .8rem; color: var(--ok); text-decoration: none; }
.big-chk { width: 28px; height: 28px; margin-top: 1px; }
.tq { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; padding: 14px 16px; border-radius: 10px; border: 2px dashed var(--bad); background: var(--surface); }
.tq > div { display: grid; gap: 2px; min-width: 0; flex: 1 1 240px; }
.tq .note { font-size: .85rem; color: var(--muted); }
.tq.on { border-style: solid; background: var(--bad-bg); }
.tq-time { font-family: var(--display); font-weight: 700; font-size: 2.4rem; line-height: 1; color: var(--bad); font-variant-numeric: tabular-nums; }
.tq .field { max-width: 200px; }

/* ---------- formularze ogólne ---------- */
.fgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.fgrid label, .mem label { display: grid; gap: 4px; font-size: .82rem; color: var(--muted); min-width: 0; }
.fgrid label.wide { grid-column: 1 / -1; }
.sec-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; }
.sec-row .sec-h, .sec-row h2 { margin: 0; }
.ta { height: 96px; padding: 8px 10px; resize: vertical; }
.mem-list { display: grid; gap: 12px; }
.mem { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 10px; background: var(--sunk); }
.mem label.wide { grid-column: span 3; }
.mem .btn-row { grid-column: 1 / -1; }
@media (max-width: 640px) { .mem { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .mem label.wide { grid-column: 1 / -1; } }
.card-pre { margin: 0; white-space: pre-wrap; font: .85rem/1.55 var(--mono); background: var(--sunk); padding: 12px; border-radius: 8px; overflow-wrap: anywhere; }

/* ---------- narzędzia ---------- */
.tool-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; align-items: start; }
@media (max-width: 400px) { .tool-grid { grid-template-columns: minmax(0, 1fr); } }
.wide-panel { grid-column: 1 / -1; }
.result { background: var(--sunk); border-left: 4px solid var(--accent); padding: 10px 12px; border-radius: 0 8px 8px 0; }
.result p { margin: 6px 0 0; }
table.mini { min-width: 0; }
.metro { display: grid; place-items: center; width: 150px; height: 150px; border-radius: 50%; border: 6px solid var(--line); margin: 4px auto; }
.metro span:first-child { font-family: var(--display); font-weight: 700; font-size: 3rem; line-height: 1; font-variant-numeric: tabular-nums; }
.metro .note { font-size: .75rem; color: var(--muted); margin-top: -28px; }
.metro.on { border-color: var(--bad); }
.metro.pulse { animation: pulse .25s ease-out; }
@keyframes pulse { from { transform: scale(1.08); background: var(--bad-bg); } to { transform: scale(1); background: transparent; } }
.log { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; max-height: 360px; overflow-y: auto; }
.log li { padding: 6px 8px; border-bottom: 1px dashed var(--line); font-size: .9rem; }
.log .num { color: var(--muted); font-size: .8rem; margin-right: 6px; }
.ov { position: fixed; inset: 0; z-index: 60; background: #000; display: grid; }
.sos-screen { position: relative; display: grid; place-items: center; background: #000; color: #555; }
.sos-screen.lit { background: #fff; }
.sos-screen .btn { position: absolute; top: calc(16px + env(safe-area-inset-top, 0px)); right: calc(16px + env(safe-area-inset-right, 0px)); }
.sos-txt { font-family: var(--display); font-size: 3rem; font-weight: 700; color: #444; }
.sos-txt.dark { font-size: 1.2rem; color: #888; }
.photo-ov { display: grid; gap: 12px; place-items: center; align-content: center; padding: 16px; background: rgba(0,0,0,.92); color: #fff; }
.photo-ov img { max-width: 100%; max-height: 75vh; border-radius: 8px; }
.photo-ov .btn { justify-self: end; }

/* ---------- zdjęcia w magazynie ---------- */
.f-photo { grid-column: 1 / -1; display: grid; gap: 4px; }
.label-s { font-size: .82rem; color: var(--muted); }
.photo-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.thumb { width: 72px; height: 72px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line); }
.sm-thumb { width: 44px; height: 44px; float: left; margin: 0 10px 4px 0; cursor: zoom-in; }
.tiles.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 400px) { .tiles.two { grid-template-columns: minmax(0, 1fr); } }



/* ---------- teczka do druku ---------- */
.native-only { display: none; }
.native .native-only { display: block; }
.dossier { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 24px; display: grid; gap: 22px; min-width: 0; }
.ds-head h1 { font-family: var(--display); font-size: 2rem; margin: 0; }
.ds-head p { margin: 4px 0 0; color: var(--muted); }
.ds-sec h2 { font-family: var(--display); font-size: 1.45rem; margin: 0 0 10px; padding-bottom: 6px; border-bottom: 2px solid var(--fg); }
.ds-sec h3 { font-size: 1rem; margin: 12px 0 6px; }
.ds-list { margin: 0; padding-left: 1.2em; display: grid; gap: 6px; }
.ds-sc ol { margin: 0; padding-left: 0; list-style: none; display: grid; gap: 4px; counter-reset: s; }
.ds-sc li { counter-increment: s; display: flex; gap: 8px; align-items: flex-start; font-size: .92rem; }
.ds-sc li::before { content: counter(s) "."; font-weight: 600; min-width: 1.4em; }
.ds-sc .box { order: -1; width: 14px; height: 14px; border: 1.5px solid var(--fg); border-radius: 2px; flex: none; margin-top: 3px; }
.ds-refs { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.ds-refs > div { border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; }
.ds-refs h3 { margin: 0 0 4px; }
.ds-refs p { margin: 0 0 4px; font-size: .9rem; }
.ds-refs ul { margin: 0; padding-left: 1.1em; font-size: .85rem; }
.ds-tbl { width: 100%; min-width: 0; border-collapse: collapse; font-size: .85rem; }
.ds-tbl th, .ds-tbl td { border: 1px solid var(--line); padding: 5px 7px; }
.ds-foot { color: var(--muted); font-size: .8rem; margin: 0; }
.dossier .tbl-wrap { border: 0; }
.share-sets { display: grid; gap: 2px; }
.share-sets label { display: flex; gap: 10px; align-items: center; padding: 8px 4px; cursor: pointer; }
.callout.ok-call { border-left-color: var(--ok); background: var(--ok-bg); }
@media (max-width: 640px) { .dossier { padding: 14px; } .ds-tbl { font-size: .75rem; } }
@media print {
  .crisis-bar, .home-tiles, .tq, .ov, .no-print, .chip-row { display: none !important; }
  .dossier { border: 0; padding: 0; gap: 14px; }
  .ds-break { break-before: page; }
  .ds-sc { break-inside: avoid; }
  .ds-tbl th, .ds-tbl td { border-color: #888; }
  .card-pre { background: #fff; border: 1px solid #888; }
}
.dossier > * { min-width: 0; }
.ds-sec { overflow-x: auto; }
@media print { .ds-sec { overflow: visible; } }
@media print {
  :root, :root:not([data-theme="light"]), :root[data-theme="dark"] {
    --bg: #ffffff; --surface: #ffffff; --sunk: #f2f2f2; --fg: #000000; --muted: #444444; --line: #bbbbbb;
    --link: #000000; --warn-bg: #ffffff; --bad-bg: #ffffff; --ok-bg: #ffffff; color-scheme: light;
  }
  body { background: #fff; color: #000; }
}
@media (max-width: 640px) {
  #g-table, #a-table { min-width: 0; }
  #g-table thead, #a-table thead { display: none; }
  #g-table tbody, #a-table tbody { display: block; }
  #g-table tr, #a-table tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; padding: 12px; border-bottom: 1px solid var(--line); }
  #g-table td, #a-table td { display: block; padding: 0; border: 0; min-width: 0; text-align: left; }
  #g-table td.item, #a-table td.item, #g-table td.acts, #a-table td.acts, #g-table td.empty, #a-table td.empty { grid-column: 1 / -1; }
  #g-table td.item, #a-table td:first-child { font-weight: 600; }
}

/* ---------- biblioteka ---------- */
.lib-cat h3 { margin: 0; font-family: var(--display); font-size: 1.2rem; }
.lib-list { list-style: none; margin: 0; padding: 0; display: grid; }
.lib-list li { display: flex; gap: 10px; align-items: flex-start; justify-content: space-between; padding: 10px 0; border-top: 1px solid var(--line); }
.lib-list li > div { min-width: 0; }
.lib-list p { margin: 4px 0 0; }
.lib-list a, .lib-miss a { white-space: nowrap; }
.steps-plain { margin: 0; padding-left: 1.3em; display: grid; gap: 6px; }

/* ---------- przepisy ---------- */
.rcp-eq button { display: grid; gap: 0; text-align: left; border-radius: 10px; padding: 8px 14px; }
.rcp-eq button span { font-size: .75rem; opacity: .8; }
.rcp-card summary, .rcp summary, .rcp-other summary { cursor: pointer; list-style: none; }
.rcp-card summary::-webkit-details-marker, .rcp summary::-webkit-details-marker { display: none; }
.rcp-card summary h2::after { content: ' ▾'; color: var(--muted); font-size: .9rem; }
.rcp-card[open] summary h2::after { content: ' ▴'; }
.rcp-card .callout { margin: 0; }
.rcp-card .callout p, .rcp-card .callout ul { margin: 6px 0 0; }
.rcp-card .callout ul { padding-left: 1.2em; display: grid; gap: 4px; }
.rcp-filters { display: grid; gap: 10px; margin: 18px 0 6px; }
.rcp-filters .chip { cursor: pointer; font: inherit; font-size: .9rem; }
.rcp-filters .chip[aria-pressed="true"] { background: var(--accent); color: var(--accent-fg); border-color: var(--accent); }
.rcp-list { display: grid; gap: 8px; margin-bottom: 20px; }
.rcp { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; min-width: 0; }
.rcp > summary { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; justify-content: space-between; padding: 12px 14px; }
.rcp[open] > summary { border-bottom: 1px solid var(--line); }
.rcp-t { font-weight: 600; }
.rcp-star { color: var(--warn); }
.rcp-pills { display: flex; flex-wrap: wrap; gap: 4px; }
.rcp-body { padding: 14px; display: grid; gap: 12px; min-width: 0; }
.rcp-body p { margin: 0; }
.rcp-body h3 { font-size: 1rem; margin: 0 0 6px; }
.rcp-body ul, .rcp-body ol { margin: 0; padding-left: 1.3em; display: grid; gap: 4px; }
.rcp-cols { display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 720px) { .rcp-cols { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); } }
.rcp-proc { margin: 0; }
.rcp-proc p { margin-top: 4px; }
.callout.ok { border-left-color: var(--ok); background: var(--ok-bg); }
.rcp .callout { margin: 0; }
.rcp-other summary { color: var(--accent); font-size: .9rem; }
.rcp-other ul { margin-top: 8px; font-size: .9rem; }

/* ---------- mapa offline ---------- */
.mp-reg { display: grid; gap: 10px; }
.mp-reg label { display: grid; gap: 4px; font-size: .9rem; }
.mp-have { margin: 0; padding-left: 1.2em; display: grid; gap: 2px; font-size: .9rem; }
.mp-wrap { position: relative; margin: 18px 0 6px; }
.mp-map { height: 62vh; min-height: 320px; max-height: 720px; border-radius: 12px; border: 1px solid var(--line); background: var(--sunk); overflow: hidden; position: relative; }
.mp-empty { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; padding: 24px; color: var(--muted); font-size: .95rem; z-index: 1; pointer-events: none; }
.mp-empty[hidden] { display: none; }
.mp-tools { position: absolute; left: 10px; top: 10px; display: flex; flex-wrap: wrap; gap: 6px; z-index: 3; max-width: calc(100% - 60px); }
.mp-tools .btn { box-shadow: 0 1px 4px rgba(0,0,0,.25); background: var(--surface); }
.mp-cross { position: absolute; left: 50%; top: 50%; width: 34px; height: 34px; margin: -17px 0 0 -17px; z-index: 3; pointer-events: none; }
.mp-cross::before, .mp-cross::after { content: ''; position: absolute; background: var(--bad); }
.mp-cross::before { left: 16px; top: 0; width: 2px; height: 34px; }
.mp-cross::after { top: 16px; left: 0; height: 2px; width: 34px; }
.mp-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.mp-list > li { display: flex; gap: 12px; align-items: flex-start; padding: 10px; border: 1px solid var(--line); border-radius: 10px; transition: background .3s; }
.mp-list > li.flash { background: var(--warn-bg); }
.mp-dot { flex: none; width: 14px; height: 14px; border-radius: 50%; margin-top: 5px; border: 2px solid #fff; box-shadow: 0 0 0 1px var(--line); }
.mp-li-b { display: grid; gap: 3px; min-width: 0; flex: 1; }
.mp-li-b strong { margin-right: 4px; }
.mp-dist { display: block; color: var(--ok); font-size: .88rem; font-weight: 600; }
.mp-acts { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.mp-list .sm-thumb { width: 52px; height: 52px; object-fit: cover; border-radius: 8px; flex: none; }
.rt-sel { margin: 4px 0 8px; padding-left: 1.4em; display: grid; gap: 4px; }
.rt-sel .rm { margin-left: 6px; }
#rt-add .chip { cursor: pointer; font: inherit; font-size: .85rem; }
.maplibregl-ctrl-attrib { font-size: 11px; }
.mp-li-b .pill { justify-self: start; }

/* ---------- konto i pełna wersja ---------- */
.upsell { display: grid; gap: 8px; justify-items: start; padding: 16px; border-radius: 12px; border: 2px solid var(--accent); background: var(--surface); }
.upsell p { margin: 0; color: var(--muted); font-size: .92rem; }
.up-badge { font: 600 .72rem var(--mono); text-transform: uppercase; letter-spacing: .06em; color: var(--accent); }
.acc-grid { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 760px) { .acc-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.acc-form { display: grid; gap: 10px; }
.acc-form label { display: grid; gap: 4px; font-size: .9rem; }
.acc-form .acc-chk { display: flex; gap: 8px; align-items: flex-start; }
.acc-row { grid-template-columns: minmax(0, 1fr) auto; }
.acc-msg:empty { display: none; }
.acc-status.is-full { border-color: var(--ok); }
.t-ok { color: var(--ok); font-weight: 600; } .t-bad { color: var(--bad); }
table.cmp { width: 100%; border-collapse: collapse; font-size: .92rem; }
table.cmp th, table.cmp td { padding: 8px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
table.cmp td:nth-child(n+2), table.cmp th:nth-child(n+2) { text-align: center; white-space: nowrap; }
table.pay-t { border-collapse: collapse; margin-top: 8px; font-size: .92rem; }
table.pay-t td { padding: 4px 10px 4px 0; vertical-align: middle; word-break: break-all; }
.rcp-locked summary .rcp-t { color: var(--muted); }
.cta-bt { display: grid; gap: 2px; padding: 12px 16px; margin: 8px 0 12px; border-radius: 10px; background: var(--band, #1d3a5f); color: #fff; text-decoration: none; border-left: 6px solid var(--accent); }
.cta-bt span { font-size: .88rem; opacity: .9; }
.tbl-wrap table.cmp { min-width: 0; width: 100%; }
table.cmp th, table.cmp td { white-space: normal; }
table.cmp td:nth-child(n+2), table.cmp th:nth-child(n+2) { white-space: normal; width: 22%; font-size: .85rem; }
.lockq { font-size: 1.2rem; opacity: .7; }
.tier-band { display: grid; gap: 2px; padding: 12px 16px; border-radius: 10px; background: var(--surface); border: 1px solid var(--line); border-left: 6px solid var(--accent); }
.tier-band.t1 { border-left-color: var(--ok); } .tier-band.t2 { border-left-color: #1c7ed6; } .tier-band.t3 { border-left-color: var(--warn); } .tier-band.t4 { border-left-color: var(--bad); }
.wycena { border-color: var(--accent); }
.kit-row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.kc h3 { margin: 10px 0 0; font-size: 1.05rem; }
.kc-t { width: 100%; border-collapse: collapse; }
.kc-t th, .kc-t td { padding: 10px; border-bottom: 1px solid var(--line); vertical-align: top; text-align: left; }
.kc-t th { width: 34%; font-weight: 600; font-size: .9rem; }
.kc-t td { display: grid; gap: 6px; }
.kc-person { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)) auto; gap: 6px; padding-bottom: 8px; border-bottom: 1px dashed var(--line); margin-bottom: 4px; align-items: center; }
.kc-send { display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
.kc-send label { display: grid; gap: 4px; font-size: .9rem; }
@media (max-width: 640px) {
  .kc-t th, .kc-t td { display: block; width: auto; }
  .kc-t th { border-bottom: 0; padding-bottom: 2px; }
  .kc-send { grid-template-columns: minmax(0, 1fr); }
}
.kc-t th { white-space: normal; text-transform: none; letter-spacing: 0; font-size: .92rem; overflow-wrap: anywhere; }
.own-add { display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr) 90px 70px auto; margin-bottom: 10px; }
.own-add .field { min-width: 0; width: 100%; }
#own-list table { min-width: 0; }
@media (max-width: 560px) { .own-add { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; } .own-add .field.txt { grid-column: 1 / -1; } }
.locked-row { cursor: pointer; }
.locked-row td { opacity: .55; }
.locked-row:hover td { opacity: .8; }
header.band .wrap { max-width: 1440px; }
.up-hook, .upsell .up-hook { margin: 0; font-family: var(--display); font-size: 1.25rem; font-weight: 700; line-height: 1.2; color: var(--fg) !important; }
.up-sub { margin: 0; font-size: .82rem !important; font-weight: 600; letter-spacing: .02em; }
.nav-cta { display: grid; gap: 4px; text-align: left; }
.nav-cta strong { font-family: var(--display); font-size: 1.1rem; }
.nav-cta span { font-size: .82rem; font-weight: 500; line-height: 1.3; }
.nav-cta small { font-size: .74rem; opacity: .85; }
.nav-idea { display: block; padding: 8px 12px; font-size: .88rem; color: var(--muted); text-decoration: none; border-radius: 8px; }
.nav-idea:hover { background: var(--sunk); color: var(--fg); }
.idea-box { display: grid; gap: 6px; justify-items: start; margin-top: 14px; padding: 14px; border-radius: 10px; background: var(--sunk); }
.idea-box p { margin: 0; color: var(--muted); font-size: .92rem; }
/* szybki start */
.qs { border: 2px solid var(--accent); }
.qs h2 { margin: 0; }
.qs-list { list-style: none; margin: 10px 0 6px; padding: 0; display: grid; gap: 6px; counter-reset: qs; }
.qs-list li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: center; padding: 10px 12px; border-radius: 10px; background: var(--sunk); counter-increment: qs; }
.qs-list a { display: grid; gap: 2px; color: var(--fg); text-decoration: none; }
.qs-list a strong::before { content: counter(qs) ". "; color: var(--accent); }
.qs-list a span { font-size: .88rem; color: var(--muted); }
.qs-list li.done a strong { text-decoration: line-through; opacity: .7; }
/* co kupić najpierw */
.bf-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; max-width: 900px; }
.bf-step { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 12px 14px; border-radius: 12px; background: var(--surface); border: 1px solid var(--line); color: var(--fg); text-decoration: none; }
.bf-step:hover { border-color: var(--accent); }
.bf-st { display: grid; gap: 2px; min-width: 0; }
.bf-st strong { font-family: var(--display); font-size: 1.35rem; line-height: 1; }
.bf-st small { color: var(--muted); font-size: .78rem; line-height: 1.25; }
.bf-meta { font: 600 .82rem var(--mono); color: var(--muted); }
.bf-step.is-locked { opacity: .7; }
.bf-num { width: 34px; height: 34px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--accent); color: var(--accent-fg); font-weight: 700; }
.is-locked .bf-num { background: var(--sunk); color: var(--muted); }
.is-done .bf-num, .bf-step.is-done .bf-num { background: var(--ok, #2f9e44); color: #fff; }
.bf-wrap { display: grid; gap: 16px; max-width: 900px; }
.bf-card { background: var(--surface); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.bf-head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 16px 18px; border-bottom: 1px solid var(--line); }
.bf-head h2 { margin: 0; font-family: var(--display); font-size: 1.6rem; line-height: 1.05; }
.bf-head p { margin: 2px 0 0; color: var(--muted); font-size: .9rem; }
.bf-prog { display: grid; gap: 4px; justify-items: end; min-width: 130px; font-size: .8rem; color: var(--muted); }
.bf-prog .progress { width: 130px; }
.bf-items { list-style: none; margin: 0; padding: 0; }
.bf-items li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 12px 18px; border-bottom: 1px solid var(--line); }
.bf-items li:last-child { border-bottom: 0; }
.bf-items label { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: start; cursor: pointer; }
.bf-items .chk { margin-top: 2px; }
.bf-n { display: grid; gap: 2px; }
.bf-n small { color: var(--muted); font-size: .85rem; }
.bf-items li.done .bf-n strong { text-decoration: line-through; opacity: .6; }
.bf-price { font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.bf-ch { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; color: var(--muted); text-decoration: none; font-size: 1.2rem; }
.bf-ch:hover { background: var(--sunk); color: var(--fg); }
.bf-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding: 12px 18px; background: var(--sunk); font-size: .9rem; color: var(--muted); }
.bf-foot strong { color: var(--fg); }
.bf-card.is-locked .bf-head { border-bottom: 0; padding-bottom: 6px; }
.bf-names { list-style: none; margin: 0; padding: 4px 18px 16px 66px; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 6px 18px; color: var(--muted); font-size: .92rem; }
.bf-names li::before { content: "•"; margin-right: 8px; color: var(--line); }
.bf-unlock { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; justify-content: space-between; padding: 16px 18px; border-radius: 14px; border: 2px solid var(--accent); background: var(--surface); }
.bf-unlock p { margin: 2px 0 0; color: var(--muted); font-size: .9rem; }
.bf-next { display: flex; flex-wrap: wrap; gap: 14px 24px; align-items: center; justify-content: space-between; padding: 20px; border-radius: 14px; background: var(--band); color: var(--band-fg); }
.bf-next h2 { margin: 0 0 4px; font-family: var(--display); font-size: 1.5rem; }
.bf-next p { margin: 0; max-width: 520px; color: var(--band-muted); font-size: .92rem; }
.bf-next .eyebrow { color: var(--accent); }
@media (max-width: 640px) {
  .bf-steps { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .bf-step { padding: 10px 12px; }
  .bf-head { grid-template-columns: auto minmax(0, 1fr); padding: 14px; }
  .bf-head > .bf-prog, .bf-head > .pill { grid-column: 1 / -1; justify-items: start; }
  .bf-prog .progress { width: 100%; }
  .bf-prog { justify-items: stretch; }
  .bf-items li { padding: 12px 14px; grid-template-columns: minmax(0, 1fr) auto; }
  .bf-ch { display: none; }
  .bf-names { padding: 0 14px 14px; }
  .bf-foot { padding: 10px 14px; }
}
.locked-list li { display: flex; gap: 10px; opacity: .6; }
/* rotacja */
.rot-list { list-style: none; padding: 0; margin: 8px 0; display: grid; gap: 6px; }
.rot-h { margin: 14px 0 6px; font-size: 1.05rem; }
.rot-ideas { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.rot-g { padding: 12px; border-radius: 10px; background: var(--sunk); }
.rot-g ul { margin: 6px 0 0; padding-left: 18px; font-size: .92rem; }
.rot-lock { margin: 10px 0; color: var(--muted); }
.bf-head > .pill { justify-self: start; }
.ph-note { margin: 4px 18px 10px; color: var(--muted); font-size: .92rem; }
.ph-list { list-style: none; margin: 0; padding: 0 18px 18px; display: grid; gap: 12px; }
.ph-list li { display: flex; align-items: center; gap: 12px; }
.ph-list li::before { content: ""; width: 18px; height: 18px; flex: none; border-radius: 4px; background: var(--sunk); }
.ph { display: block; height: 12px; border-radius: 6px; background: linear-gradient(90deg, var(--sunk), var(--line), var(--sunk)); }
#se-body .ph-note, #se-body .ph-list { margin-left: 0; padding-left: 0; }
#se-body .ph-list { margin-bottom: 14px; }
/* co nowego, przypomnienie, serwis BT, profile energii */
#nav-news { position: relative; }
#nav-news.has-new::after { content: "nowe"; margin-left: auto; padding: 1px 7px; border-radius: 10px; background: var(--accent); color: var(--accent-fg); font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.news { display: grid; gap: 14px; max-width: 860px; }
.news-i time { font: 600 .8rem var(--mono); color: var(--accent); }
.news-i h2 { margin: 4px 0 8px; }
.news-i ul { margin: 0; padding-left: 20px; display: grid; gap: 4px; }
.renew { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; justify-content: space-between; padding: 16px 18px; border-radius: 14px; border: 2px solid var(--accent); background: var(--surface); }
.renew p { margin: 4px 0 0; color: var(--muted); font-size: .92rem; max-width: 620px; }
.bt-box { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; justify-content: space-between; background: var(--band); color: var(--band-fg); border: 0; }
.bt-box h2 { margin: 2px 0 6px; }
.bt-box p { margin: 0; color: var(--band-muted); max-width: 640px; font-size: .92rem; }
.bt-pill { background: var(--band); color: var(--band-fg); }
.e-prof { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: end; }
.e-prof label { display: grid; gap: 4px; font-size: .85rem; }
.ep-add { display: inline-flex; gap: 6px; }
.news + .idea-box { max-width: 860px; }
.mark-img { width: 46px; height: 46px; flex: none; border-radius: 12px; object-fit: cover; box-shadow: 0 2px 8px rgba(0,0,0,.35); }
.shop-who { display: grid; gap: 12px; }
.shop-who-h { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; justify-content: space-between; }
.shop-who-h h2 { margin: 0; }
.shop-ppl { display: grid; gap: 6px 18px; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
.shop-ppl .row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.shop-ppl .name { font-weight: 500; }
.shop-per { display: grid; gap: 6px; }
.shop-who p { margin: 0; }
/* wypożyczalnia */
.rent-card { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; justify-content: space-between; padding: 16px 18px; border-radius: 14px; background: var(--band); color: var(--band-fg); }
.rent-card strong { display: block; font-size: 1.1rem; margin: 2px 0 4px; }
.rent-card p { margin: 0; color: var(--band-muted); font-size: .92rem; max-width: 560px; }
.rent-card .eyebrow { color: var(--accent); }
.rent-grid { display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
@media (max-width: 860px) { .rent-grid { grid-template-columns: minmax(0, 1fr); } }
.rent-ul { margin: 0 0 12px; padding-left: 20px; display: grid; gap: 4px; }
.rent-dl { display: grid; gap: 8px; margin: 0 0 14px; }
.rent-dl div { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 10px; }
.rent-dl dt { color: var(--muted); font-size: .88rem; }
.rent-dl dd { margin: 0; font-weight: 600; }
.rent-form { display: grid; gap: 10px; }
.rent-form label { display: grid; gap: 4px; font-size: .9rem; }
.rent-form textarea { min-height: 80px; resize: vertical; }
.rf-dates { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.rent-form .acc-chk { display: flex; gap: 8px; align-items: flex-start; }
/* wydruki list */
#print-area { display: none; }
.chk-inline { display: inline-flex; gap: 6px; align-items: center; font-size: .88rem; color: var(--muted); }
@media print {
  html.printing-doc body > *:not(#print-area) { display: none !important; }
  html.printing-doc #print-area { display: block; color: #000; font: 10.5pt/1.35 var(--body); }
  @page { margin: 14mm 12mm; }
  .pa-head { display: flex; align-items: center; gap: 10px; border-bottom: 2px solid #000; padding-bottom: 6px; margin-bottom: 8px; }
  .pa-head img { width: 34px; height: 34px; border-radius: 6px; }
  .pa-head div { display: grid; flex: 1; }
  .pa-head strong { font-size: 16pt; line-height: 1.1; }
  .pa-head span { font-size: 9pt; color: #444; }
  .pa-head em { font-style: normal; font-size: 9pt; color: #444; }
  .pa-h { font-size: 11.5pt; margin: 12px 0 4px; break-after: avoid; }
  .pa-h small { font-weight: 400; color: #444; }
  .pa-t { width: 100%; border-collapse: collapse; min-width: 0; table-layout: fixed; }
  .pa-t th.pa-wc { width: 24px; } .pa-t th.pa-wq { width: 15%; } .pa-t th.pa-wl { width: 19%; } .pa-t th.pa-ww { width: 34%; }
  .pa-t th.pa-wq { text-align: right; } .pa-t td { overflow-wrap: anywhere; }
  .pa-t th { text-align: left; font-size: 8.5pt; text-transform: uppercase; letter-spacing: .04em; color: #444; border-bottom: 1px solid #000; padding: 3px 6px; }
  .pa-t td { border-bottom: 1px solid #bbb; padding: 5px 6px; vertical-align: top; }
  .pa-t tr { break-inside: avoid; }
  .pa-c { width: 22px; }
  .pa-box { display: inline-block; width: 12px; height: 12px; border: 1.5px solid #000; border-radius: 2px; vertical-align: -1px; }
  .pa-q { white-space: nowrap; text-align: right; }
  .pa-why { font-size: 9pt; color: #333; }
  .pa-line { min-width: 90px; }
  .pa-blank td { height: 22px; }
  .pa-sum { margin: 4px 0 0; font-size: 9.5pt; text-align: right; }
  .pa-rev td.pa-line { width: 18%; }
  .pa-foot { margin-top: 14px; padding-top: 4px; border-top: 1px solid #bbb; font-size: 8pt; color: #555; }
}
.rent-items { width: 100%; border-collapse: collapse; margin: 0 0 14px; min-width: 0; }
.rent-items td { padding: 6px 0; border-bottom: 1px solid var(--line); }
.rent-items td.q { text-align: right; font-weight: 600; white-space: nowrap; }
.rf-items { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; display: grid; gap: 8px; margin: 0; }
.rf-items legend { font-size: .9rem; padding: 0 6px; }
.rf-items label { display: grid; grid-template-columns: minmax(0, 1fr) 90px; align-items: center; gap: 10px; font-size: .92rem; }
.rf-items p { margin: 0; }
.rent-off td { vertical-align: top; }
.rf-off { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; display: grid; gap: 8px; margin: 0; }
.rf-off legend { font-size: .9rem; padding: 0 6px; }
.rf-off label { display: flex !important; gap: 10px; align-items: center; cursor: pointer; }
.rf-calc { padding: 10px 12px; border-radius: 10px; background: var(--sunk); font-size: .95rem; }
.rf-total { font-size: .95rem; }
.rf-total:empty { display: none; }
body:not(.rent-on) .nav-rent { display: none !important; }
.rcp-rent{margin:.6em 0;padding:.55em .8em;border-left:3px solid var(--accent);background:rgba(232,89,12,.07);border-radius:6px;font-size:.92em}
.rcp-rent a{font-weight:600}
@media print{.rcp-rent{display:none}}
.rcp-meth{margin:12px 0}
.rcp-meth h3{font-size:.95rem;margin:0 0 6px}
.rcp-meth table{width:100%;border-collapse:collapse;font-size:.9rem}
.rcp-meth th,.rcp-meth td{text-align:left;vertical-align:top;padding:7px 9px;border-top:1px solid var(--line,rgba(0,0,0,.1))}
.rcp-meth th{width:30%;font-weight:700}
.rcp-meth th span{display:block;font-weight:400;font-size:.8rem;opacity:.7}
.rcp-meth tr.on{background:rgba(232,89,12,.08)}
.rcp-meth tr.on th::after{content:" ← Twój sprzęt";font-weight:400;font-size:.75rem;color:var(--accent)}
.rcp-meth tr.no td{color:var(--bad,#b3261e)}
@media(max-width:600px){.rcp-meth th{width:38%}}
.rent-red{display:block;margin:0 0 18px;padding:16px 18px;border:2px solid var(--bad);border-radius:12px;background:var(--bad-bg);color:var(--fg);text-decoration:none}
.rent-red strong{display:block;color:var(--bad);font-size:1.15rem;margin-bottom:4px}
.rent-red span{display:block;line-height:1.45}
.rent-red .rent-red-btn{display:inline-block;margin-top:10px;padding:7px 14px;border-radius:8px;background:var(--bad);color:#fff;font-weight:700}
.rent-red:hover .rent-red-btn{filter:brightness(1.1)}
@media print{.rent-red{display:none}}
.motto{position:relative;overflow:hidden;margin:0 0 18px;padding:22px 24px 22px 28px;border-radius:14px;background:var(--band);color:var(--band-fg);box-shadow:0 6px 20px rgba(0,0,0,.18)}
.motto::before{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;background:#e03131}
.motto strong{display:block;font-family:var(--display,inherit);font-size:clamp(1.5rem,3.2vw,2.1rem);line-height:1.15;margin-bottom:8px;letter-spacing:-.01em}
.motto strong em{font-style:normal;color:#ff6b5e}
.motto span{display:block;font-size:1.02rem;line-height:1.5;opacity:.92;max-width:62ch}
@media print{.motto{display:none}}
/* narzędzia: lodówka, słońce, kompas */
.fr-tips{margin:12px 0 0;padding-left:1.2em;font-size:.92rem;color:var(--muted)}
.fr-tips li{margin:4px 0}
.fr-head{font-size:1.1rem;margin:0 0 10px}
.fr-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,40%);gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.fr-l strong{display:block}.fr-l span{font-size:.88rem;color:var(--muted)}
.fr-row.warn .fr-l span{color:var(--warn)}.fr-row.bad .fr-l span{color:var(--bad);font-weight:600}
.fr-row.bad .progress i{background:var(--bad)}.fr-row.warn .progress i{background:var(--warn)}
@media(max-width:520px){.fr-row{grid-template-columns:1fr}}
.sun-g{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px}
.sun-g strong{display:block;font-size:1.35rem;font-variant-numeric:tabular-nums}
.cmp-wrap{position:relative;width:190px;height:190px;margin:6px auto 10px}
.cmp-dial{position:absolute;inset:0;border-radius:50%;border:3px solid var(--line);background:radial-gradient(circle,var(--surface) 60%,var(--sunk));transition:transform .15s linear}
.cmp-dial span{position:absolute;font-weight:700;font-size:1.05rem;color:var(--muted)}
.cmp-dial .cmp-n{top:6px;left:50%;transform:translateX(-50%);color:var(--bad)}
.cmp-dial .cmp-s{bottom:6px;left:50%;transform:translateX(-50%)}
.cmp-dial .cmp-e{right:9px;top:50%;transform:translateY(-50%)}
.cmp-dial .cmp-w{left:9px;top:50%;transform:translateY(-50%)}
.cmp-tgt{position:absolute;left:50%;top:0;bottom:50%;width:0;transform-origin:50% 100%}
.cmp-tgt::before{content:"";position:absolute;top:22px;left:-7px;border:7px solid transparent;border-top:12px solid var(--accent)}
.cmp-needle{position:absolute;left:50%;top:32px;bottom:50%;width:4px;margin-left:-2px;background:var(--bad);border-radius:2px}
.cmp-needle::after{content:"";position:absolute;left:-5px;bottom:-7px;width:14px;height:14px;border-radius:50%;background:var(--fg)}
.cmp-read{text-align:center;font-size:1.05rem;margin:0 0 10px}
.ok-t{color:var(--ok)}
/* grupa sąsiedzka */
.gr-meta{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.gr-rules{display:block;margin-top:10px}.gr-rules textarea{width:100%;margin-top:4px;min-height:90px;padding:8px 10px;resize:vertical}
.gr-list{display:grid;gap:10px;margin-bottom:14px}
.gr-m{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface)}
.gr-m p{margin:4px 0 0}
.gr-m-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.gr-m-a{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.gr-check{color:var(--warn)}
.gr-form{border-top:1px solid var(--line);padding-top:12px}
.gr-form h3,.gr-h3{margin:0 0 8px;font-size:1rem}
.gr-h3{margin-top:16px}
.gr-fs{border:0;padding:0;margin:10px 0}
.gr-fs legend{font-weight:600;font-size:.9rem;margin-bottom:6px}
.gr-fs input.field{margin-top:6px;width:100%}
.gr-chips{display:flex;flex-wrap:wrap;gap:6px}
.gr-chip{display:inline-flex}
.gr-chip input{position:absolute;opacity:0;pointer-events:none}
.gr-chip span{padding:5px 10px;border:1px solid var(--line);border-radius:999px;font-size:.85rem;cursor:pointer;background:var(--surface)}
.gr-chip input:checked+span{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.gr-chip input:focus-visible+span{outline:2px solid var(--link);outline-offset:2px}
.gr-idx{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.gr-idx h3{font-size:.95rem;margin:0 0 6px}
.gr-ix{list-style:none;margin:0;padding:0}
.gr-ix li{display:grid;grid-template-columns:minmax(0,45%) minmax(0,1fr);gap:10px;padding:6px 0;border-top:1px solid var(--line);font-size:.92rem}
.gr-ix li strong{font-weight:600}

/* ---------- telefon: większe pola dotyku i tabele bez przewijania w bok ---------- */
@media (pointer: coarse) {
  .btn.sm { min-height: 40px; padding: 8px 12px; font-size: .85rem; }
  .btn { min-height: 44px; }
  .seg button { min-height: 40px; padding: 8px 14px; }
  .chip { min-height: 38px; display: inline-flex; align-items: center; }
  .rm { min-width: 44px; min-height: 44px; }
  .chk { width: 24px; height: 24px; }
  .gr-chip span { padding: 9px 13px; }
  .side-nav a[data-nav] { min-height: 44px; }
  /* iPhone powiększa stronę przy polach z czcionką poniżej 16 px */
  .field, .field.txt, select.field, textarea, .copybox, input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], input[type="search"], input[type="date"], input[type="time"] { font-size: 16px; }
  .field { height: 44px; }
  textarea.field { height: auto; }
}
@media (max-width: 640px) {
  /* lista zakupów: wiersz jako karta */
  #shop-table thead { display: none; }
  #shop-table tbody { display: block; }
  #shop-table tr { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; gap: 6px 10px; align-items: start; padding: 10px 12px; border-bottom: 1px solid var(--line); }
  #shop-table tr:last-child { border-bottom: 0; }
  #shop-table td { display: block; padding: 0; border: 0; min-width: 0; }
  #shop-table td:nth-child(1) { grid-row: 1 / 3; padding-top: 2px; }
  #shop-table td:nth-child(2) { grid-column: 2; grid-row: 1; }
  #shop-table td:nth-child(5) { grid-column: 3; grid-row: 1; text-align: right; }
  #shop-table td:nth-child(4) { grid-column: 2 / 4; grid-row: 2; display: flex; align-items: center; gap: 8px; text-align: left; }
  #shop-table td:nth-child(4)::before { content: "Mam:"; font: 600 .78rem var(--body); color: var(--muted); }
  #shop-table .have-in { width: 96px; }
  /* zasilanie: odbiornik jako karta */
  #dev-table { min-width: 0; }
  #dev-table thead { display: none; }
  #dev-table tbody { display: block; }
  #dev-table tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto auto; gap: 6px 8px; align-items: end; padding: 10px; border-bottom: 1px solid var(--line); }
  #dev-table td { display: block; padding: 0; border: 0; min-width: 0; }
  #dev-table td:nth-child(1) { grid-column: 1 / -1; }
  #dev-table td:nth-child(2)::before, #dev-table td:nth-child(3)::before, #dev-table td:nth-child(4)::before { display: block; font: 600 .7rem var(--body); color: var(--muted); margin-bottom: 3px; }
  #dev-table td:nth-child(2)::before { content: "Moc, W"; }
  #dev-table td:nth-child(3)::before { content: "Godzin na dobę"; }
  #dev-table td:nth-child(4)::before { content: "kWh/dobę"; }
  #dev-table td .field { width: 100%; }
  #dev-table td.q { text-align: left; padding-bottom: 8px; }
  #dev-table tr.sum { grid-template-columns: minmax(0, 1fr) auto auto; background: var(--sunk); }
  #dev-table tr.sum td:nth-child(1) { grid-column: auto; align-self: center; }
  #dev-table tr.sum td:nth-child(2)::before { content: "Szczyt, W"; }
  #dev-table tr.sum td:nth-child(3), #dev-table tr.sum td:nth-child(5) { display: none; }
  /* porównanie wersji */
  table.cmp { font-size: .84rem; }
  table.cmp th, table.cmp td { padding: 7px 6px; overflow-wrap: anywhere; hyphens: auto; }
  table.cmp th { overflow-wrap: normal; letter-spacing: .02em; font-size: .66rem; }
  table.cmp td:first-child, table.cmp th:first-child { width: 40%; }
  table.cmp td:nth-child(n+2), table.cmp th:nth-child(n+2) { width: 30%; font-size: .8rem; }
  /* kafelki z dużymi liczbami */
  .tile .big { font-size: 1.65rem; overflow-wrap: anywhere; }
  .tile .big small { font-size: .85rem; }
}
@media (max-width: 640px) {
  /* tabele w podręczniku: mieszczą się na ekranie; szerokie (5+ kolumn) przewijają się w bok */
  .prose table { min-width: 0; font-size: .86rem; }
  .prose table:has(th:nth-child(5)) { min-width: 560px; }
  .prose th, .prose td { padding: 7px 8px; overflow-wrap: break-word; }
  .prose th { letter-spacing: .03em; }
}
.prose td:empty { height: 2.4em; }
/* odporność domu */
.res-card { border: 2px solid var(--line); }
.res-top { display: flex; gap: 16px; align-items: center; }
.res-top h2 { margin: 2px 0 4px; }
.res-score { flex: none; width: 104px; height: 104px; border-radius: 50%; display: grid; place-content: center; text-align: center; border: 8px solid var(--line); line-height: 1; }
.res-score strong { font-family: var(--display); font-size: 2.4rem; }
.res-score span { font-size: .8rem; color: var(--muted); }
.res-score.ok { border-color: var(--ok); } .res-score.warn { border-color: var(--warn); } .res-score.bad { border-color: var(--bad); }
.res-areas { display: grid; gap: 8px; margin: 16px 0 6px; }
.res-a { display: grid; grid-template-columns: minmax(0, 11em) minmax(0, 1fr) 3.2em; gap: 10px; align-items: center; font-size: .9rem; }
.res-a .progress { max-width: none; height: 10px; }
.res-a b { text-align: right; font-variant-numeric: tabular-nums; }
.res-h { font-size: 1rem; margin: 14px 0 6px; }
.res-todo { margin: 0 0 10px; padding-left: 1.3em; display: grid; gap: 6px; }
.res-todo a { font-weight: 600; }
@media (max-width: 520px) { .res-top { align-items: flex-start; } .res-score { width: 84px; height: 84px; border-width: 7px; } .res-score strong { font-size: 1.9rem; } .res-a { grid-template-columns: minmax(0, 1fr) 3em; } .res-a .progress { grid-column: 1 / -1; grid-row: 2; } }
@media print { .res-card .btn-row { display: none; } }
.bf-price-note { margin: 0 0 14px; padding: 10px 14px; border-left: 4px solid var(--warn); background: var(--warn-bg); border-radius: 8px; font-size: .88rem; line-height: 1.45; }
.pa-note { margin-top: 10pt; font-size: 9pt; color: #333; }
/* powitanie i karty wartości */
.welcome { border: 2px solid var(--accent); }
.welcome h2 { font-family: var(--display); font-size: clamp(1.4rem, 3vw, 1.9rem); line-height: 1.15; margin: 4px 0 8px; }
.wl-q { list-style: none; margin: 14px 0; padding: 0; display: grid; gap: 8px; counter-reset: wq; }
.wl-q li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px 14px; align-items: center; padding: 10px 12px; border-radius: 10px; background: var(--sunk); counter-increment: wq; }
.wl-q li > span::before { content: counter(wq) ". "; font-weight: 700; color: var(--accent); }
.wl-q .seg { flex-wrap: nowrap; }
.wl-q .seg button { min-width: 64px; }
@media (max-width: 520px) { .wl-q li { grid-template-columns: minmax(0, 1fr); } }
.wl-result { margin-bottom: 18px; }
.wl-result .res-card { margin-bottom: 10px; border-color: var(--accent); }
.wl-next { margin-bottom: 4px; }
.value-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 0 0 18px; }
@media (max-width: 860px) { .value-cards { grid-template-columns: minmax(0, 1fr); } }
.vc { display: grid; gap: 6px; align-content: start; padding: 16px 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); color: var(--fg); text-decoration: none; }
a.vc:hover { border-color: var(--accent); }
.vc strong { font-family: var(--display); font-size: 1.2rem; }
.vc span { color: var(--muted); font-size: .92rem; line-height: 1.45; }
.vc em { font-style: normal; font-weight: 600; color: var(--accent); font-size: .9rem; }
.vc .btn { justify-self: start; margin-top: 4px; }
.wl-box { margin: 12px 0; padding: 12px; border-radius: 10px; background: var(--sunk); display: grid; gap: 8px; }
.wl-l { font-weight: 600; }
.wl-ppl { display: flex; gap: 16px; flex-wrap: wrap; }
.wl-ppl label { display: flex; align-items: center; gap: 8px; }
.wl-ppl .field { width: 80px; }
.wl-opts button { background: var(--surface); }
.wl-days { border: 2px solid var(--accent); }
.wl-dg { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 8px 0 10px; }
.wl-dg > div { padding: 12px 14px; border-radius: 10px; background: var(--sunk); border-left: 5px solid var(--line); }
.wl-dg > div.bad { border-left-color: var(--bad); } .wl-dg > div.warn { border-left-color: var(--warn); } .wl-dg > div.ok { border-left-color: var(--ok); }
.wl-dg span { display: block; font-size: .85rem; color: var(--muted); }
.wl-dg strong { font-family: var(--display); font-size: 1.8rem; line-height: 1.1; }
.wl-result .res-card { border-color: var(--line); }
/* strona główna na telefonie: moduły zwijane, krótsze hasło dla powracających */
details.module > summary { list-style: none; cursor: pointer; }
details.module > summary::-webkit-details-marker { display: none; }
.mod-more { display: inline-block; margin-top: 8px; font-size: .85rem; font-weight: 600; color: var(--accent); }
.mod-more::after { content: " ▾"; }
details.module[open] .mod-more::after { content: " ▴"; }
@media (min-width: 701px) { .mod-more { display: none; } }
@media (max-width: 700px) {
  .modules { gap: 10px; }
  .module { padding: 14px 16px; gap: 10px; }
  .module h2 { font-size: 1.25rem; }
  .module header p.muted { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .motto.motto-sm { padding: 12px 16px 12px 20px; margin-bottom: 12px; }
  .motto.motto-sm strong { font-size: 1.15rem; margin: 0; }
  .motto.motto-sm span { display: none; }
  .hero .lead { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
}
@media (max-width: 700px) {
  /* tryb kryzysowy: dwie kolumny sytuacji, więcej widać od razu */
  .sc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .sc { padding: 12px 12px 12px 14px; min-height: 0; }
  .sc strong { font-size: 1.05rem; }
  .sc span { font-size: .8rem; line-height: 1.3; }
  .crisis-head .lead { font-size: .95rem; }
}
/* menu na telefonie: dwie kolumny, wszystko mieści się bez przewijania; przewijanie tylko w menu */
.nav-locked, .nav-locked body { overflow: hidden; }
@media (max-width: 900px) {
  .side-nav { align-self: stretch; height: auto; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; gap: 12px; }
  .side-nav .nav-g { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .side-nav .nav-g-t { grid-column: 1 / -1; padding-top: 2px; }
  .side-nav a[data-nav] { min-height: 44px; padding: 8px 10px; border: 1px solid var(--line); border-left-width: 3px; border-radius: 10px; font-size: .92rem; line-height: 1.2; }
  .side-nav a[aria-current="page"] { border-left-color: var(--accent); }
  .side-nav .nav-idea { grid-column: 1 / -1; padding: 6px 10px; font-size: .88rem; }
  .side-nav .nav-cta { margin: 0; padding: 10px 12px; }
  .side-nav .nav-cta span { display: none; }
}
.band .icon-btn + .icon-btn { margin-left: -6px; }
/* animacje: wynik odporności jako pierścień, odhaczanie, dotyk */
.res-score { --c: var(--muted); border: 0 !important; position: relative; background: radial-gradient(closest-side, var(--surface) 80%, transparent 81% 100%), conic-gradient(var(--c) calc(var(--p, 0) * 1%), var(--sunk) 0); }
.res-score.ok { --c: var(--ok); } .res-score.warn { --c: var(--warn); } .res-score.bad { --c: var(--bad); }
.res-score strong, .res-score span { position: relative; }
.res-plus { position: absolute; right: -6px; top: -4px; font: 800 .85rem var(--body); color: var(--ok); white-space: nowrap; animation: resPlus 1.1s ease-out forwards; pointer-events: none; }
@keyframes resPlus { 0% { opacity: 0; transform: translateY(6px); } 20% { opacity: 1; } 100% { opacity: 0; transform: translateY(-22px); } }
.progress i { transition: width .45s cubic-bezier(.2, .8, .2, 1); }
input.chk.chk-pop { animation: chkPop .42s ease-out; }
@keyframes chkPop { 0% { transform: scale(1); } 40% { transform: scale(1.3); } 100% { transform: scale(1); } }
.btn, .tile.link, .sc, .vc, .em, .bf-step, .chip, .side-nav a[data-nav], .bottom-bar a, .bottom-bar button, .qs-list a { transition: transform .1s ease, background-color .15s, border-color .15s; }
.btn:active, .tile.link:active, .sc:active, a.vc:active, .em:active, .bf-step:active, .chip:active, .side-nav a[data-nav]:active, .qs-list a:active { transform: scale(.97); }
@media (prefers-reduced-motion: reduce) { .res-plus, input.chk.chk-pop { animation: none; } .btn:active, .tile.link:active, .sc:active, a.vc:active, .em:active, .bf-step:active, .chip:active, .side-nav a[data-nav]:active, .qs-list a:active { transform: none; } }
/* większe logo tylko na komputerze */
@media (min-width: 901px) { .mark-img { width: 60px; height: 60px; border-radius: 14px; } .brand { gap: 14px; } .brand-name { font-size: 1.85rem; } .brand-sub { font-size: .85rem; } }

/* zagrożenia w okolicy */
.rk-list { display: grid; gap: 10px; margin: 10px 0 14px; }
.rk { border: 1px solid var(--line); border-left: 5px solid var(--muted); border-radius: 10px; padding: 12px 14px; background: var(--surface); }
.rk.bad { border-left-color: var(--bad); } .rk.warn { border-left-color: var(--warn); } .rk.ok { border-left-color: var(--ok); }
.rk header { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.rk h3 { margin: 0; font-size: 1.05rem; }
.rk p { margin: 6px 0; }
.rk ul { margin: 4px 0 0; padding-left: 1.2em; }
.rk li { margin: 3px 0; }
.rk-q .wl-opts { flex-wrap: wrap; }
.rk-q p.muted { margin: 6px 0 0; }
.rk-sum { margin: 10px 0 0; }
.rk-cta { padding: 10px 12px; border: 1px dashed var(--accent); border-radius: 10px; }
.rk-imp { color: var(--accent); font-weight: 600; }
/* pytania o zagrożenia: zawsze pytanie nad odpowiedziami, bo odpowiedzi są długie */
.wl-q.rk-q li { grid-template-columns: minmax(0, 1fr); align-items: start; }
.wl-q.rk-q li > span { font-weight: 500; }
.wl-q.rk-q .seg { flex-wrap: wrap; justify-content: flex-start; }
/* kalkulator przepisu */
.rc-box { border: 1px solid var(--accent); border-radius: 10px; margin: 10px 0 14px; background: var(--surface); }
.rc-box > summary { cursor: pointer; padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; list-style: none; }
.rc-box > summary::-webkit-details-marker { display: none; }
.rc-box > summary strong::before { content: "⚖ "; }
.rc-box[open] > summary { border-bottom: 1px solid var(--line); }
.rc-grid { padding: 10px 12px 0; display: grid; gap: 10px; }
.rc-row { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: flex-end; }
.rc-row label { display: grid; gap: 4px; font-size: .9rem; font-weight: 600; }
.rc-in { display: inline-flex; align-items: center; gap: 6px; font-weight: 400; }
.rc-in .num-in { width: 6.5em; }
.rc-row select.field { min-width: 11em; }
.rc-pots { flex-basis: 100%; gap: 6px; }
.rc-modes { flex-wrap: wrap; }
.rc-res { padding: 10px 12px 12px; }
.rc-res > p:first-child { margin: 0 0 6px; font-size: 1.02rem; }
.rc-warn { margin: 6px 0; padding: 6px 10px; border-left: 4px solid var(--bad); background: var(--sunk); border-radius: 6px; font-weight: 600; }
.rc-ing b { color: var(--accent); }
.rc-up { margin: 8px 0 0; padding: 8px 10px; border-radius: 8px; background: var(--sunk); font-size: .92rem; }
.rent-red.rent-soon { cursor: default; }
/* etykiety na słoiki i puszki */
.lb-box { border: 1px solid var(--line); border-radius: 10px; margin: 0 0 14px; background: var(--surface); }
.lb-box > summary { cursor: pointer; padding: 10px 12px; list-style: none; display: flex; flex-direction: column; gap: 2px; }
.lb-box > summary::-webkit-details-marker { display: none; }
.lb-box > summary strong::before { content: "🏷 "; }
.lb-box[open] > summary { border-bottom: 1px solid var(--line); }
.lb-grid { display: flex; flex-wrap: wrap; gap: 14px; padding: 12px; align-items: flex-start; }
.lb-form { flex: 1 1 240px; display: grid; gap: 8px; }
.lb-form label { display: grid; gap: 4px; font-size: .9rem; font-weight: 600; }
.lb-form .field { width: 100%; max-width: 20em; }
.lb-form .num-in { max-width: 7em; }
.lb-prev { flex: none; width: calc(105mm * .6); height: calc(99mm * .6); overflow: hidden; }
.lb-prev:has(.tall) { height: calc(148.5mm * .6); }
.lb-prev-in { transform: scale(.6); transform-origin: top left; width: 105mm; }
.lbl { width: 99mm; height: 94mm; margin: 2.5mm 3mm; display: flex; flex-direction: column; border-radius: 4mm; overflow: hidden; border: .9mm solid #1d2914; color: #1a1a14; font-family: var(--body); line-height: 1.2; text-align: left; -webkit-print-color-adjust: exact; print-color-adjust: exact;
  background-color: #ecd9a8; background-image: radial-gradient(ellipse at 50% 45%, rgba(255,248,220,.75) 0%, rgba(255,248,220,0) 62%), radial-gradient(ellipse at 50% 50%, transparent 55%, rgba(110,72,25,.45) 100%); }
.lbl.tall { height: 143.5mm; }
.lbl-top { position: relative; display: flex; align-items: center; gap: 2.5mm; padding: 2.5mm 3.5mm; background: linear-gradient(180deg, #3b4f27, #24331a); min-height: 17mm; }
.lbl-logo { width: 11mm; height: 11mm; border-radius: 2mm; box-shadow: 0 0 0 .5mm #d9b13a; }
.lbl-brand b { display: block; font-family: var(--display); font-weight: 700; font-size: 6.4mm; color: #fff; line-height: 1; }
.lbl-brand span { display: block; font-family: var(--display); font-weight: 700; font-size: 4.1mm; color: #f2c230; text-transform: uppercase; letter-spacing: .2mm; margin-top: .6mm; }
.lbl-stamp { position: absolute; right: 3mm; top: 2.2mm; width: 20mm; height: 20mm; border-radius: 50%; background: radial-gradient(circle at 40% 35%, #d33a2a, #9e1b12); box-shadow: 0 0 0 .7mm #fff, 0 0 0 1.3mm #9e1b12; transform: rotate(-10deg); display: flex; flex-direction: column; align-items: center; justify-content: center; color: #fff; font-family: var(--display); font-weight: 700; text-transform: uppercase; line-height: .95; font-size: 3.6mm; z-index: 3; }
.lbl-stamp.cool { background: radial-gradient(circle at 40% 35%, #3f86c0, #1f5582); box-shadow: 0 0 0 .7mm #fff, 0 0 0 1.3mm #1f5582; font-size: 3.1mm; }
.lbl-stamp .na { font-size: 2.3mm; margin: .4mm 0; letter-spacing: .3mm; }
.lbl-stamp i { font-style: normal; font-size: 1.9mm; color: #f2c230; margin-top: .5mm; letter-spacing: .3mm; }
.lbl-haz { height: 3mm; background: repeating-linear-gradient(-45deg, #f5c518 0 2.6mm, #141410 2.6mm 5.2mm); border-top: .4mm solid #141410; border-bottom: .4mm solid #141410; }
.lbl-body { position: relative; flex: 1; display: flex; align-items: center; gap: 3.5mm; padding: 3mm 3.5mm 1mm; min-height: 0; }
.lbl-forest { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 15mm; }
.lbl-por { position: relative; z-index: 1; flex: none; width: 30mm; text-align: center; }
.lbl-ring { width: 28mm; height: 28mm; margin: 0 auto; border-radius: 50%; padding: .9mm; background: conic-gradient(#d9b13a, #f6dd82, #b8892a, #f6dd82, #d9b13a); }
.lbl-ring img, .lbl-ring svg { width: 100%; height: 100%; border-radius: 50%; display: block; border: .9mm solid #b3261e; background: #1b1d15; object-fit: cover; }
.lbl-rib { position: relative; display: inline-block; margin-top: -3mm; background: #24331a; color: #fff; font-family: var(--display); font-weight: 700; font-size: 3.3mm; text-transform: uppercase; padding: .8mm 3.5mm; clip-path: polygon(0 0, 100% 0, 96% 50%, 100% 100%, 0 100%, 4% 50%); }
.lbl-txt { position: relative; z-index: 1; min-width: 0; padding-bottom: 5mm; }
.lbl h2 { margin: 0 0 1.5mm; font-family: var(--display); font-weight: 700; font-size: 8.8mm; line-height: .95; text-transform: uppercase; color: #1a1a14; }
.lbl-sk, .lbl-pr { margin: 0 0 .8mm; font-size: 2.9mm; line-height: 1.25; color: #1f2318; } .lbl-pr { font-size: 2.6mm; color: #3a3a2a; }
.lbl-srv { margin: 2mm 0 0; font-size: 2.9mm; line-height: 1.3; padding: 1.8mm 2.2mm; border-left: .8mm solid #b3261e; background: rgba(255,248,225,.7); }
.lbl.tall .lbl-body { flex-direction: column; justify-content: center; text-align: center; } .lbl.tall .lbl-por { width: 44mm; } .lbl.tall .lbl-ring { width: 42mm; height: 42mm; } .lbl.tall h2 { font-size: 10.5mm; } .lbl.tall .lbl-txt { padding-bottom: 12mm; }
.lbl-fields { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1.6mm; padding: 1.6mm 3mm 2.6mm; background: linear-gradient(180deg, #3d5426, #26361a); }
.lbl-fields > div { display: flex; align-items: center; gap: 1.4mm; background: #f6edd6; border: .4mm solid #2a361c; border-radius: 1.8mm; padding: 1.2mm 1.6mm; min-width: 0; color: #24331a; }
.lbl-fields svg { width: 5mm; height: 5mm; flex: none; }
.lbl-fields p { margin: 0; min-width: 0; } .lbl-fields span { display: block; font-size: 2mm; font-weight: 700; text-transform: uppercase; letter-spacing: .15mm; color: #4a4a36; } .lbl-fields strong { display: block; font-size: 3.1mm; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #1a1a14; }
.lbl-fields .dk { background: #24331a; color: #f2c230; } .lbl-fields .dk span { color: #d8d0b0; } .lbl-fields .dk strong { color: #fff; }
@media print {
  html.printing-labels #print-area { font: inherit; }
  html.printing-labels .lbl-sheet { width: 210mm; height: 296mm; display: grid; grid-template-columns: repeat(2, 105mm); grid-auto-rows: 99mm; justify-items: center; align-content: start; break-after: page; page-break-after: always; overflow: hidden; }
  html.printing-labels .lbl-sheet.f4 { grid-auto-rows: 148.5mm; }
  html.printing-labels .lbl-sheet:last-child { break-after: auto; page-break-after: auto; }
}
@media print { html.printing-labels, html.printing-labels body { margin: 0 !important; padding: 0 !important; min-height: 0 !important; height: auto !important; } html.printing-labels body::before, html.printing-labels body::after { display: none !important; } }
.rc-main .rc-note{font-size:.85em;opacity:.7;white-space:nowrap}
.rc-taste{font-size:.85em;opacity:.75;margin:8px 0 0;font-style:italic}
