/* MedMigrant Labs — kurs „Diagnostyka laboratoryjna”. Kolory interfejsu z palety wtyczki/motywu (--mq-*), tryb nocny
   i dzienny. Wydruk wyniku ma zawsze własne, jasne kolory papieru (jak prawdziwe sprawozdanie z laboratorium). */
.mcqp-lab, .lab-app, .lab-pop, .mcqp-lab-guest, .lab-home, .lab-print-root { --lab-r: 14px; --lab-paper: #fffdf8; --lab-ink: #1d2430; --lab-ink2: #4a5568; --lab-rule: #dfe3ea; --lab-amber: #f0a500; --lab-navy: #17263d; --lab-red: #c0262d; --lab-blue: #1d5fbf; }
.mcqp-lab { container: labapp / inline-size; max-width: 1280px; margin: 0 auto 32px; color: var(--mq-text); font-family: var(--mq-font); font-size: .9375rem; line-height: 1.55; }
.mcqp-lab *, .mcqp-lab *::before, .mcqp-lab *::after, .lab-pop *, .lab-home * { box-sizing: border-box; }
.mcqp-lab-lead { margin: 0 0 18px; color: var(--mq-soft); max-width: 780px; font-size: 1.02rem; }
.lab-loading { padding: 40px 20px; text-align: center; color: var(--mq-muted); background: var(--mq-card); border: 1px solid var(--mq-line); border-radius: var(--lab-r); }
.lab-error { padding: 12px 14px; background: var(--mq-bad-bg); color: var(--mq-bad-text); border-radius: 10px; margin: 10px 0 0; }
.lab-empty { padding: 22px; text-align: center; color: var(--mq-muted); background: var(--mq-card); border: 1px dashed var(--mq-line); border-radius: 12px; }
.lab-ico { display: inline-flex; flex: 0 0 auto; }
.lab-ico svg { display: block; }
.lab-muted { color: var(--mq-muted); }
.lab-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.lab-link { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border: 0; border-radius: 8px; background: none; color: var(--mq-ptext); font: inherit; font-size: .8438rem; font-weight: 650; cursor: pointer; text-decoration: none; }
.lab-link:hover { background: var(--mq-hover); }
.lab-chip { display: inline-flex; align-items: center; gap: 4px; padding: 2px 9px; border-radius: 999px; background: var(--mq-card2); color: var(--mq-soft); font-size: .75rem; font-weight: 650; white-space: nowrap; }
.lab-chip.is-ok { background: var(--mq-ok-bg); color: var(--mq-ok); }
.lab-chip.is-bad { background: var(--mq-bad-bg); color: var(--mq-bad-text); }
.lab-input { height: 38px; padding: 0 12px; border: 1px solid var(--mq-line); border-radius: 10px; background: var(--mq-bg); color: var(--mq-text); font: inherit; min-width: 0; }
.lab-app button:focus-visible, .lab-app a:focus-visible, .lab-app input:focus-visible, .lab-app select:focus-visible, .lab-pop button:focus-visible, .lab-home button:focus-visible { outline: 2px solid var(--mq-primary); outline-offset: 2px; }
.lab-app .mcqp-btn { display: inline-flex; align-items: center; gap: 8px; }

/* ---- pasek: zakładki i ustawienia ---- */
.lab-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 18px; }
.lab-tabs { display: flex; gap: 4px; padding: 5px; background: var(--mq-card); border: 1px solid var(--mq-line); border-radius: 14px; max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.lab-tab { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border-radius: 10px; color: var(--mq-soft); font-weight: 650; text-decoration: none; white-space: nowrap; transition: background-color .15s, color .15s; }
.lab-tab:hover { color: var(--mq-strong); background: var(--mq-hover); }
.lab-tab[aria-current="page"] { background: var(--mq-primary); color: var(--mq-on-primary); }
.lab-prefs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.lab-switch { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px; border: 1px solid var(--mq-line); border-radius: 12px; background: var(--mq-card); color: var(--mq-text); font: inherit; font-size: .875rem; cursor: pointer; }
.lab-switch b { color: var(--mq-strong); }
.lab-knob { position: relative; width: 34px; height: 20px; border-radius: 999px; background: var(--mq-track); transition: background-color .2s; }
.lab-knob::after { content: ""; position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; border-radius: 50%; background: #fff; transition: transform .2s; }
.lab-switch[aria-pressed="true"] .lab-knob { background: var(--mq-primary); }
.lab-switch[aria-pressed="true"] .lab-knob::after { transform: translateX(14px); }
.lab-switch[aria-pressed="false"] { border-color: var(--mq-primary); }
.lab-seg { display: inline-flex; gap: 2px; padding: 3px; border: 1px solid var(--mq-line); border-radius: 12px; background: var(--mq-card); }
.lab-seg button { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 0 11px; border: 0; border-radius: 9px; background: transparent; color: var(--mq-soft); font: inherit; font-size: .8125rem; font-weight: 650; cursor: pointer; white-space: nowrap; }
.lab-seg button:hover { color: var(--mq-strong); background: var(--mq-hover); }
.lab-seg button[aria-checked="true"], .lab-seg button[aria-pressed="true"] { background: var(--mq-primary-bg); color: var(--mq-ptext); }

/* ---- start: podsumowanie i moduły ---- */
.lab-hero { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 22px; padding: 20px 24px; margin: 0 0 18px; background: linear-gradient(120deg, var(--mq-card), var(--mq-card2)); border: 1px solid var(--mq-line); border-radius: 18px; }
.lab-hero h2 { margin: 0 0 8px; font-size: 1.3rem; color: var(--mq-strong); }
.lab-kpi { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 0; padding: 0; list-style: none; }
.lab-kpi li { display: grid; }
.lab-kpi strong { font-size: 1.25rem; color: var(--mq-strong); font-variant-numeric: tabular-nums; }
.lab-kpi span { font-size: .8125rem; color: var(--mq-muted); }
.lab-hero-act { display: flex; flex-direction: column; gap: 8px; }
.lab-ring .lr-bg { fill: none; stroke: var(--mq-track); stroke-width: 7; }
.lab-ring .lr-fg { fill: none; stroke: var(--mq-primary); stroke-width: 7; stroke-linecap: round; transition: stroke-dasharray .5s; }
.lab-ring text { fill: var(--mq-strong); font-size: 15px; font-weight: 750; font-family: var(--mq-font); }
.lab-mods { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.lab-mod { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 18px; background: var(--mq-card); border: 1px solid var(--mq-line); border-radius: 16px; color: var(--mq-text); text-decoration: none; transition: transform .15s, border-color .15s, box-shadow .15s; }
.lab-mod:hover { transform: translateY(-2px); border-color: var(--mq-primary); box-shadow: 0 10px 26px rgba(0, 0, 0, .18); }
.lab-mod-ico { display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 13px; background: var(--mq-primary-bg); color: var(--mq-ptext); flex: 0 0 auto; }
.lab-mod-t { margin-top: 4px; font-size: 1.06rem; font-weight: 750; color: var(--mq-strong); }
.lab-mod-d { color: var(--mq-soft); font-size: .8438rem; line-height: 1.45; flex: 1; }
.lab-mod-bar, .lab-prow-bar { display: block; height: 6px; border-radius: 999px; background: var(--mq-track); overflow: hidden; margin-top: 6px; }
.lab-mod-bar i, .lab-prow-bar i { display: block; width: var(--p); height: 100%; background: var(--mq-primary); border-radius: inherit; transition: width .4s; }
.lab-mod-s { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: .8125rem; color: var(--mq-muted); }

/* ---- moduł: lista przypadków ---- */
.lab-crumbs { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; font-size: .875rem; }
.lab-crumbs a { display: inline-flex; align-items: center; gap: 6px; color: var(--mq-ptext); font-weight: 650; text-decoration: none; }
.lab-crumb-n { color: var(--mq-muted); }
.lab-crumb-nav { margin-left: auto; display: flex; gap: 4px; }
.lab-crumb-nav a { display: inline-grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--mq-line); border-radius: 10px; color: var(--mq-strong); font-size: 1.3rem; line-height: 1; }
.lab-crumb-nav a:hover { border-color: var(--mq-primary); }
.lab-mhead { display: flex; align-items: center; gap: 16px; margin: 0 0 14px; }
.lab-mhead h2 { margin: 0; color: var(--mq-strong); font-size: 1.4rem; }
.lab-mhead p { margin: 2px 0 0; color: var(--mq-soft); }
.lab-mhead-r { margin-left: auto; }
.lab-lesson-cta { display: flex; align-items: center; gap: 14px; padding: 14px 18px; margin: 0 0 16px; border: 1px dashed var(--mq-primary); border-radius: 14px; background: var(--mq-primary-bg); color: var(--mq-text); text-decoration: none; }
.lab-lesson-cta > .lab-ico { color: var(--mq-ptext); }
.lab-lesson-cta span { display: grid; flex: 1; min-width: 0; }
.lab-lesson-cta strong { color: var(--mq-strong); }
.lab-lesson-cta small { color: var(--mq-soft); font-size: .8125rem; }
.lab-lesson-cta em { font-style: normal; color: var(--mq-ptext); font-weight: 700; white-space: nowrap; }
.lab-clist { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.lab-ccard { display: flex; align-items: center; gap: 12px; padding: 12px 16px; background: var(--mq-card); border: 1px solid var(--mq-line); border-radius: 12px; color: var(--mq-text); text-decoration: none; transition: border-color .15s, background-color .15s; }
.lab-ccard:hover { border-color: var(--mq-primary); background: var(--mq-card2); }
.lab-cn { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: var(--mq-card2); color: var(--mq-strong); font-weight: 750; font-size: .8125rem; flex: 0 0 auto; }
.lab-ct { flex: 1; min-width: 0; font-weight: 650; color: var(--mq-strong); }
.lab-pt { display: inline-flex; align-items: center; gap: 5px; padding: 2px 9px; border-radius: 999px; background: var(--mq-card2); color: var(--mq-soft); font-size: .75rem; font-weight: 650; white-space: nowrap; }
.lab-pt.is-ped { background: rgba(56, 152, 236, .16); color: #59a9f0; }

/* ---- przypadek ---- */
.lab-case { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); grid-template-areas: "l h" "l r"; grid-template-rows: auto 1fr; column-gap: 22px; align-items: start; }
.lab-case-h { grid-area: h; min-width: 0; }
.lab-case-r { grid-area: r; }
.lab-case-l { grid-area: l; position: sticky; top: 16px; max-height: calc(100vh - 32px); overflow: auto; overscroll-behavior: contain; border-radius: 12px; scrollbar-width: thin; }
.admin-bar .lab-case-l { top: 48px; max-height: calc(100vh - 64px); }
.lab-paper-bar { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0 0 8px; font-size: .8125rem; }
.lab-paper-bar .lab-muted { display: inline-flex; align-items: center; gap: 6px; }
.lab-case-r { min-width: 0; }
.lab-steps { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; padding: 0; list-style: none; counter-reset: s; }
.lab-steps li { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px 4px 4px; border-radius: 999px; background: var(--mq-card); border: 1px solid var(--mq-line); color: var(--mq-muted); font-size: .75rem; font-weight: 650; }
.lab-steps li span { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--mq-card2); color: var(--mq-soft); font-size: .6875rem; }
.lab-steps li.is-done { color: var(--mq-ok); border-color: color-mix(in srgb, var(--mq-ok) 40%, transparent); }
.lab-steps li.is-done span { background: var(--mq-ok); color: #fff; }
.lab-case-t { margin: 0 0 6px; font-size: 1.35rem; line-height: 1.3; color: var(--mq-strong); }
.lab-case-meta { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.lab-story { margin: 0 0 14px; padding: 12px 14px; background: var(--mq-card); border: 1px solid var(--mq-line); border-left: 4px solid var(--mq-primary); border-radius: 10px; color: var(--mq-text); }
.lab-markbox { margin: 0 0 14px; padding: 14px; border-radius: 12px; background: var(--mq-primary-bg); border: 1px solid color-mix(in srgb, var(--mq-primary) 50%, transparent); }
.lab-markbox p { margin: 0 0 10px; }
.lab-markbox-a { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.lab-marksum { margin: 0 0 14px; padding: 10px 14px; border-radius: 10px; background: var(--mq-card2); font-size: .875rem; }
.lab-marksum strong { color: var(--mq-strong); }
.lab-q { margin: 0 0 12px; }
.lab-qt { margin: 0 0 10px; font-size: 1.04rem; font-weight: 700; color: var(--mq-strong); }
.lab-opts { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.lab-opt { display: flex; align-items: flex-start; gap: 12px; width: 100%; padding: 12px 14px; border: 1.5px solid var(--mq-line); border-radius: 12px; background: var(--mq-card); color: var(--mq-text); font: inherit; text-align: left; cursor: pointer; transition: border-color .15s, background-color .15s, transform .1s; }
.lab-opt:hover:not([disabled]) { border-color: var(--mq-primary); background: var(--mq-card2); }
.lab-opt:active:not([disabled]) { transform: scale(.995); }
.lab-opt[disabled] { cursor: default; }
.lab-ol { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; background: var(--mq-card2); color: var(--mq-strong); font-weight: 800; flex: 0 0 auto; }
.lab-ot { flex: 1; padding-top: 3px; }
.lab-opt > .lab-ico { margin-top: 4px; }
.lab-opt.is-ok { border-color: var(--mq-ok); background: var(--mq-ok-bg); }
.lab-opt.is-ok .lab-ol { background: var(--mq-ok); color: #fff; }
.lab-opt.is-ok > .lab-ico { color: var(--mq-ok); }
.lab-opt.is-bad { border-color: var(--mq-bad); background: var(--mq-bad-bg); }
.lab-opt.is-bad .lab-ol { background: var(--mq-bad); color: #fff; }
.lab-opt.is-bad > .lab-ico { color: var(--mq-bad); }
.lab-opt.is-off { opacity: .72; }
.lab-opt.is-wait { border-color: var(--mq-primary); animation: lab-pulse 1s infinite; }
@keyframes lab-pulse { 50% { background: var(--mq-primary-bg); } }
.lab-why { margin: 4px 0 2px 54px; color: var(--mq-soft); font-size: .8438rem; }
.lab-kbd { margin: 8px 0 0; font-size: .75rem; }
.lab-verdict { display: flex; align-items: center; gap: 12px; padding: 12px 16px; margin: 4px 0 14px; border-radius: 12px; animation: lab-in .35s ease-out; }
.lab-verdict div { display: grid; }
.lab-verdict strong { font-size: 1.06rem; }
.lab-verdict.is-ok { background: var(--mq-ok-bg); color: var(--mq-ok); }
.lab-verdict.is-bad { background: var(--mq-bad-bg); color: var(--mq-bad-text); }
.lab-verdict span { color: var(--mq-text); font-size: .875rem; }
@keyframes lab-in { from { opacity: 0; transform: translateY(6px); } }
.lab-expl h3, .lab-calcs h3 { display: flex; align-items: center; gap: 8px; margin: 18px 0 8px; font-size: 1.04rem; color: var(--mq-strong); }
.lab-expl p { margin: 0; }
.lab-calcs > p { margin: 0 0 10px; font-size: .8125rem; }
.lab-calcs-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 12px; }
.lab-calc { padding: 14px; background: var(--mq-card); border: 1px solid var(--mq-line); border-radius: 14px; }
.lab-calc-h { display: flex; align-items: center; gap: 8px; color: var(--mq-strong); }
.lab-calc-h .lab-ico { color: var(--mq-ptext); }
.lab-calc-f { margin: 4px 0 10px; color: var(--mq-muted); font-size: .75rem; }
.lab-calc-in { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px; }
.lab-cf { display: grid; gap: 3px; font-size: .75rem; color: var(--mq-soft); }
.lab-cf em { font-style: normal; color: var(--mq-muted); }
.lab-cf input, .lab-cf select { width: 100%; height: 34px; padding: 0 8px; border: 1px solid var(--mq-line); border-radius: 8px; background: var(--mq-bg); color: var(--mq-strong); font: inherit; font-size: .875rem; font-variant-numeric: tabular-nums; }
.lab-calc-out { margin-top: 12px; }
.lab-calc-res { display: flex; align-items: baseline; gap: 6px; }
.lab-calc-v { font-size: 1.7rem; font-weight: 800; font-variant-numeric: tabular-nums; line-height: 1.1; }
.lab-calc-u { color: var(--mq-soft); font-size: .8125rem; }
.lab-calc-res.is-ok .lab-calc-v { color: var(--mq-ok); }
.lab-calc-res.is-warn .lab-calc-v { color: var(--mq-warn); }
.lab-calc-res.is-bad .lab-calc-v { color: var(--mq-bad); }
.lab-calc-parts { margin: 8px 0 0; padding: 0; list-style: none; display: grid; gap: 2px; font-size: .8125rem; }
.lab-calc-parts li { display: flex; justify-content: space-between; gap: 10px; border-bottom: 1px dashed var(--mq-line); padding: 2px 0; }
.lab-calc-parts strong { color: var(--mq-strong); font-variant-numeric: tabular-nums; white-space: nowrap; }
.lab-calc-txt { margin: 8px 0 0; font-size: .8438rem; }
.lab-pearl, .lab-warnbox { display: flex; gap: 12px; margin: 16px 0; padding: 14px 16px; border-radius: 12px; background: var(--mq-primary-bg); border: 1px solid color-mix(in srgb, var(--mq-primary) 35%, transparent); }
.lab-pearl > .lab-ico { color: var(--mq-ptext); margin-top: 2px; }
.lab-pearl strong, .lab-warnbox strong { color: var(--mq-strong); }
.lab-pearl p, .lab-warnbox p { margin: 2px 0 0; }
.lab-warnbox { background: var(--mq-warn-bg); border-color: color-mix(in srgb, var(--mq-warn) 40%, transparent); }
.lab-warnbox > .lab-ico { color: var(--mq-warn); margin-top: 2px; }
.lab-srcbox { margin: 12px 0; padding: 10px 14px; background: var(--mq-card); border: 1px solid var(--mq-line); border-radius: 12px; font-size: .8438rem; }
.lab-srcbox summary { display: flex; align-items: center; gap: 8px; cursor: pointer; font-weight: 650; color: var(--mq-strong); }
.lab-src { margin: 10px 0 6px; padding-left: 20px; }
.lab-src li { margin: 0 0 4px; }
.lab-src a { color: var(--mq-ptext); }
.lab-nextbar { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 0; padding-top: 14px; border-top: 1px solid var(--mq-line); }

/* ---- wydruk wyniku (MedMigrant Labs) ---- */
.lab-paper { position: relative; padding: 22px 24px 16px; background: var(--lab-paper); color: var(--lab-ink); border-radius: 6px; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 14px 34px rgba(0, 0, 0, .22); font-family: "Inter", "Segoe UI", Roboto, Arial, sans-serif; font-size: .8125rem; line-height: 1.4; overflow: hidden; }
.lab-paper::before { content: ""; position: absolute; inset: 0 0 auto; height: 5px; background: linear-gradient(90deg, var(--lab-amber), #e08c00 60%, var(--lab-navy)); }
.lab-paper::after { content: "MedMigrant Labs"; position: absolute; left: 50%; top: 52%; transform: translate(-50%, -50%) rotate(-24deg); font-size: 4rem; font-weight: 800; color: rgba(23, 38, 61, .028); pointer-events: none; white-space: nowrap; }
.lp-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; padding-bottom: 12px; border-bottom: 2px solid var(--lab-navy); }
.lp-brand { display: flex; align-items: center; gap: 10px; }
.lp-mark { width: 44px; height: 44px; flex: 0 0 auto; }
.lp-brand div { display: grid; }
.lp-name { font-size: 1.22rem; font-weight: 800; letter-spacing: -.01em; color: var(--lab-navy); line-height: 1.1; }
.lp-name span { color: #d08a00; }
.lp-brand small { color: var(--lab-ink2); font-size: .6875rem; letter-spacing: .02em; }
.lp-meta { display: grid; gap: 1px; margin: 0; font-size: .6875rem; text-align: right; }
.lp-meta div { display: flex; justify-content: flex-end; gap: 6px; }
.lp-meta dt { color: var(--lab-ink2); }
.lp-meta dd { margin: 0; font-weight: 650; font-variant-numeric: tabular-nums; }
.lp-title { margin: 12px 0 8px; font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--lab-navy); }
.lp-pt { display: grid; grid-template-columns: repeat(4, auto); justify-content: start; gap: 4px 20px; margin: 0 0 10px; padding: 8px 10px; background: #f3f5f8; border-radius: 6px; font-size: .75rem; }
.lp-pt div { display: grid; }
.lp-pt dt { color: var(--lab-ink2); font-size: .625rem; text-transform: uppercase; letter-spacing: .05em; }
.lp-pt dd { margin: 0; font-weight: 650; }
.lp-pesel { letter-spacing: .1em; color: #8a94a3; }
.lp-pedtag { display: inline-flex; align-items: center; gap: 5px; margin: 0 0 8px; padding: 2px 9px; border-radius: 999px; background: #e3f0fd; color: var(--lab-blue); font-size: .6875rem; font-weight: 700; }
.lp-panel { margin: 0 0 12px; }
.lp-panel h4 { margin: 0 0 4px; padding: 4px 0; border-bottom: 1px solid var(--lab-rule); font-size: .8125rem; font-weight: 800; color: var(--lab-navy); }
.lp-panel h4 small { margin-left: 6px; font-weight: 500; color: var(--lab-ink2); font-size: .6875rem; }
.lp-t { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; table-layout: fixed; }
.lp-t thead th:first-child { width: auto; }
.lp-t thead .lp-num { width: 74px; }
.lp-t thead .lp-flag { width: 62px; }
.lp-t.has-mk thead .lp-flag { width: 82px; }
.lp-t thead th:nth-last-child(2) { width: 68px; }
.lp-t thead .lp-ref { width: 104px; }
.lp-t.is-series thead .lp-num { width: 76px; }
.lp-t.is-series thead .lp-tr { width: 112px; }
.lp-t th[scope=row] { overflow-wrap: anywhere; }
.lp-t th, .lp-t td { padding: 4px 6px; border-bottom: 1px solid #eef0f4; text-align: left; vertical-align: middle; }
.lp-t thead th { color: var(--lab-ink2); font-size: .625rem; font-weight: 650; text-transform: uppercase; letter-spacing: .05em; border-bottom: 1px solid var(--lab-rule); }
.lp-t tbody tr:hover { background: #f7f9fc; }
.lp-t .lp-num { text-align: right; white-space: nowrap; }
.lp-t td.lp-num { font-weight: 600; }
.lp-t td.is-H, .lp-t td.is-L { color: var(--lab-red); font-weight: 800; }
.lp-flag { width: 66px; white-space: nowrap; }
.lp-f { font-weight: 800; color: var(--lab-red); font-size: .75rem; }
.lp-f.is-H, .lp-f.is-L { display: inline-block; padding: 0 5px; border-radius: 4px; background: #fde8e8; }
td .lp-f { margin-left: 3px; }
.lp-u { color: var(--lab-ink2); font-size: .75rem; line-height: 1.25; }
.lp-ref { color: var(--lab-ink2); white-space: nowrap; font-size: .75rem; }
.lp-ref sup { color: var(--lab-blue); font-weight: 800; }
.lp-ru { display: none; }
.lp-hid { display: inline-block; width: 64px; height: 9px; border-radius: 3px; background: repeating-linear-gradient(45deg, #e6e9ef, #e6e9ef 4px, #f2f4f7 4px, #f2f4f7 8px); color: transparent; font-size: 0; vertical-align: middle; }
.lp-tr { white-space: nowrap; }
.lp-an { padding: 0; border: 0; background: none; color: var(--lab-ink); font: inherit; font-weight: 600; text-align: left; cursor: pointer; text-decoration: underline dotted #9aa4b2; text-underline-offset: 3px; }
.lp-an:hover { color: var(--lab-blue); text-decoration-color: currentColor; }
.lp-mk { display: inline-grid; place-items: center; width: 26px; height: 26px; margin-left: 4px; border: 1.5px dashed #b5bfcc; border-radius: 7px; background: #fff; color: #8a94a3; font: inherit; font-weight: 800; cursor: pointer; vertical-align: middle; transition: transform .1s; }
.lp-mk:hover { border-color: var(--lab-amber); color: var(--lab-ink); transform: scale(1.06); }
.lp-mk.is-H, .lp-mk.is-L { border-style: solid; border-color: var(--lab-red); background: #fde8e8; color: var(--lab-red); }
.lp-mr { display: inline-grid; place-items: center; min-width: 22px; height: 22px; margin-left: 4px; padding: 0 4px; border-radius: 6px; font-size: .6875rem; font-weight: 800; vertical-align: middle; }
.lp-mr.is-ok { background: #e3f6ea; color: #13803f; }
.lp-mr.is-bad { background: #fde8e8; color: var(--lab-red); }
.lp-row.is-miss { background: #fff6e5; }
.lab-spark { vertical-align: middle; }
.lab-spark .sp-band { fill: #e5f2e9; }
.lab-spark .sp-line { fill: none; stroke: #607089; stroke-width: 1.4; }
.lab-spark .sp-ok { fill: #607089; }
.lab-spark .sp-bad { fill: var(--lab-red); }
.lp-notes { margin: 4px 0 10px; padding: 8px 10px; border-left: 3px solid var(--lab-amber); background: #fff8e8; border-radius: 0 6px 6px 0; }
.lp-notes h4 { margin: 0 0 2px; font-size: .6875rem; text-transform: uppercase; letter-spacing: .06em; color: #9a6a00; }
.lp-notes p { margin: 0; }
.lp-foot { display: grid; gap: 4px; margin-top: 14px; padding-top: 8px; border-top: 1px solid var(--lab-rule); }
.lp-auth { display: flex; align-items: center; justify-content: flex-end; gap: 10px; color: var(--lab-ink2); font-size: .6875rem; }
.lp-sign { width: 110px; height: 30px; color: var(--lab-blue); }
.lp-legal { margin: 0; color: #8a94a3; font-size: .625rem; }
.lab-paper.is-compact { padding: 16px 16px 10px; font-size: .75rem; }
.lab-paper.is-compact .lp-pt { grid-template-columns: repeat(3, auto); }
.lab-paper.is-compact .lp-meta div:last-child { display: none; }
.lab-paper { container: lp / inline-size; }
@container lp (max-width: 540px) {
	.lp-head { flex-direction: column; gap: 8px; }
	.lp-meta { display: flex; flex-wrap: wrap; gap: 2px 14px; text-align: left; }
	.lp-meta div { justify-content: flex-start; white-space: nowrap; }
	.lp-t thead .lp-num { width: 60px; }
	.lp-t:not(.has-mk) thead .lp-flag { width: 46px; }
	.lp-t.has-mk thead .lp-flag { width: 72px; }
	.lp-t thead th:nth-last-child(2) { width: 54px; }
	.lp-t thead .lp-ref { width: 88px; }
	.lp-t.is-series thead .lp-num { width: 62px; }
	.lp-t.is-series:not(.has-mk) thead .lp-tr { width: 76px; }
	.lp-t th, .lp-t td { padding: 4px 4px; }
}

/* ---- dymek badania ---- */
.lab-pop { position: fixed; z-index: 100000; width: min(380px, calc(100vw - 24px)); max-height: min(70vh, 560px); overflow: auto; padding: 16px 18px; background: var(--mq-card, #2c2f34); color: var(--mq-text, #ddd); border: 1px solid var(--mq-line, #45505e); border-radius: 14px; box-shadow: 0 18px 50px rgba(0, 0, 0, .35); font-family: var(--mq-font); font-size: .8438rem; line-height: 1.5; animation: lab-in .18s ease-out; }
.lab-pop.is-sheet { left: 0 !important; right: 0; bottom: 0; top: auto !important; width: 100%; max-height: 72vh; border-radius: 18px 18px 0 0; }
.lab-pop h4 { margin: 0 0 6px; padding-right: 28px; font-size: 1rem; color: var(--mq-strong); }
.lab-pop p { margin: 0 0 8px; }
.lab-pop-k { margin: 0 0 2px !important; color: var(--mq-muted); font-size: .75rem; font-weight: 650; }
.lab-pop-x { position: absolute; top: 10px; right: 10px; display: inline-grid; place-items: center; width: 30px; height: 30px; border: 0; border-radius: 8px; background: var(--mq-card2); color: var(--mq-soft); cursor: pointer; }
.lab-pop-norm { display: grid; gap: 1px; padding: 8px 10px; border-radius: 10px; background: var(--mq-primary-bg); }
.lab-pop-norm span { color: var(--mq-soft); font-size: .75rem; }
.lab-pop-norm strong { color: var(--mq-strong); font-size: .9375rem; font-variant-numeric: tabular-nums; }
.lab-pop-norm em { font-style: normal; color: #59a9f0; font-size: .75rem; }
.lab-pop-norm small { color: var(--mq-muted); font-size: .6875rem; line-height: 1.35; }
.lab-pop-norm.is-off { background: var(--mq-card2); }
.lab-pop-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; }
.lab-pop-l h5 { margin: 4px 0 4px; font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; }
.lab-pop-l.is-up h5 { color: var(--mq-bad); }
.lab-pop-l.is-down h5 { color: #59a9f0; }
.lab-pop-l ul { margin: 0; padding-left: 16px; }
.lab-pop-l li { margin: 0 0 3px; }

/* ---- lekcje ---- */
.lab-sechead { margin: 0 0 16px; max-width: 860px; }
.lab-sechead h2 { margin: 0 0 4px; color: var(--mq-strong); font-size: 1.4rem; }
.lab-sechead p { margin: 0; color: var(--mq-soft); }
.lab-lessons { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.lab-lcard { position: relative; display: grid; grid-template-columns: auto 1fr; grid-template-areas: "i t" "i d" "i m"; gap: 2px 14px; padding: 18px; background: var(--mq-card); border: 1px solid var(--mq-line); border-radius: 16px; color: var(--mq-text); text-decoration: none; transition: transform .15s, border-color .15s; }
.lab-lcard:hover { transform: translateY(-2px); border-color: var(--mq-primary); }
.lab-lcard .lab-mod-ico { grid-area: i; }
.lab-lcard-n { position: absolute; top: 12px; right: 14px; color: var(--mq-muted); font-weight: 800; font-size: .8125rem; }
.lab-lcard-t { grid-area: t; font-weight: 750; color: var(--mq-strong); padding-right: 18px; }
.lab-lcard-d { grid-area: d; color: var(--mq-soft); font-size: .8438rem; }
.lab-lcard-m { grid-area: m; display: inline-flex; align-items: center; gap: 4px; margin-top: 6px; color: var(--mq-muted); font-size: .75rem; }
.lab-lcard.is-done { border-color: color-mix(in srgb, var(--mq-ok) 50%, transparent); }
.lab-lcard.is-done .lab-lcard-m { color: var(--mq-ok); }
.lab-lesson { max-width: 900px; }
.lab-lesson > header h2 { margin: 0 0 6px; font-size: 1.6rem; line-height: 1.25; color: var(--mq-strong); }
.lab-lead { margin: 0 0 18px; font-size: 1.04rem; color: var(--mq-soft); }
.lab-lbody h3 { margin: 26px 0 10px; font-size: 1.15rem; color: var(--mq-strong); }
.lab-lbody > p { margin: 0 0 12px; }
.lab-lbody strong { color: var(--mq-strong); }
.lab-llist { margin: 0 0 12px; padding-left: 20px; }
.lab-llist li { margin: 0 0 6px; }
.lab-lsteps { margin: 0 0 12px; padding: 0; list-style: none; counter-reset: st; display: grid; gap: 8px; }
.lab-lsteps li { position: relative; padding: 10px 14px 10px 50px; background: var(--mq-card); border: 1px solid var(--mq-line); border-radius: 12px; counter-increment: st; }
.lab-lsteps li::before { content: counter(st); position: absolute; left: 12px; top: 10px; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--mq-primary); color: var(--mq-on-primary); font-weight: 800; font-size: .8125rem; }
.lab-tscroll { overflow-x: auto; margin: 0 0 14px; }
.lab-ltab { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--mq-card); border: 1px solid var(--mq-line); border-radius: 12px; overflow: hidden; font-size: .875rem; }
.lab-ltab th, .lab-ltab td { padding: 9px 12px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--mq-line); }
.lab-ltab thead th { background: var(--mq-card2); color: var(--mq-strong); font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; }
.lab-ltab tbody th { color: var(--mq-strong); font-weight: 700; white-space: nowrap; }
.lab-ltab tr:last-child > * { border-bottom: 0; }
.lab-lcases { margin: 26px 0 0; }
.lab-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; }
.lab-cchip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1.5px solid var(--mq-line); border-radius: 999px; background: var(--mq-card); color: var(--mq-text); font: inherit; font-size: .8125rem; font-weight: 600; cursor: pointer; text-align: left; }
.lab-cchip:hover { border-color: var(--mq-primary); color: var(--mq-strong); }
.lab-cchip[aria-pressed="true"] { border-color: var(--mq-primary); background: var(--mq-primary-bg); color: var(--mq-ptext); }
.lab-cchip.is-ok > .lab-ico { color: var(--mq-ok); }
.lab-cchip.is-bad > .lab-ico { color: var(--mq-bad); }
.lab-lfoot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 28px 0 0; padding-top: 16px; border-top: 1px solid var(--mq-line); }

/* algorytm */
.lab-algo { margin: 6px 0 16px; padding: 14px; background: var(--mq-card); border: 1px solid var(--mq-line); border-radius: 14px; }
.lab-ahead { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; color: var(--mq-muted); font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.lab-ahead .lab-link { margin-left: auto; text-transform: none; letter-spacing: 0; }
.lab-anode { position: relative; margin: 0 0 10px calc(min(var(--lvl), 4) * 18px); padding: 10px 12px; border-left: 3px solid var(--mq-primary); background: var(--mq-bg); border-radius: 0 10px 10px 0; animation: lab-in .25s ease-out; }
.lab-aq { margin: 0 0 8px; font-weight: 700; color: var(--mq-strong); }
.lab-aopts { display: flex; flex-wrap: wrap; gap: 6px; }
.lab-aopt { padding: 7px 12px; border: 1.5px solid var(--mq-line); border-radius: 10px; background: var(--mq-card); color: var(--mq-text); font: inherit; font-size: .8438rem; font-weight: 600; cursor: pointer; }
.lab-aopt:hover { border-color: var(--mq-primary); }
.lab-aopt[aria-pressed="true"] { border-color: var(--mq-primary); background: var(--mq-primary); color: var(--mq-on-primary); }
.lab-ares { display: flex; gap: 10px; margin: 0 0 4px; padding: 12px 14px; border-radius: 12px; background: var(--mq-ok-bg); border: 1px solid color-mix(in srgb, var(--mq-ok) 35%, transparent); animation: lab-in .25s ease-out; }
.lab-ares > .lab-ico { color: var(--mq-ok); margin-top: 3px; }
.lab-ares p { margin: 0; }

/* widżety */
.lab-w { margin: 8px 0 18px; padding: 16px; background: var(--mq-card); border: 1px solid var(--mq-line); border-radius: 16px; }
.lw-grid { display: grid; grid-template-columns: minmax(220px, 300px) minmax(0, 1fr); gap: 18px; align-items: start; }
.lw-ctrl { display: grid; gap: 12px; }
.lab-sl { display: grid; gap: 4px; }
.lab-sl > span { display: flex; align-items: baseline; gap: 6px; font-size: .8438rem; }
.lab-sl b { flex: 1; color: var(--mq-text); }
.lab-sl output { color: var(--mq-strong); font-weight: 800; font-variant-numeric: tabular-nums; }
.lab-sl em { font-style: normal; color: var(--mq-muted); font-size: .75rem; }
.lab-sl input[type=range], .lab-nage input[type=range] { width: 100%; accent-color: var(--mq-primary); height: 22px; }
.lw-out { min-width: 0; }
.lw-res { margin-top: 10px; }
.lw-res p { margin: 0 0 6px; }
.lw-scale { position: relative; margin: 6px 0 14px; padding-top: 6px; }
.lw-zones { display: grid; grid-template-columns: 25fr 20fr 30fr; border-radius: 10px; overflow: hidden; font-size: .6875rem; font-weight: 700; text-align: center; }
.lw-zones span { padding: 8px 2px; }
.lw-zones span:nth-child(1) { background: rgba(240, 82, 79, .18); color: var(--mq-bad-text); }
.lw-zones span:nth-child(2) { background: var(--mq-ok-bg); color: var(--mq-ok); }
.lw-zones span:nth-child(3) { background: rgba(56, 152, 236, .18); color: #59a9f0; }
.lw-mark { position: absolute; top: 0; width: 3px; height: calc(100% + 4px); margin-left: -1.5px; background: var(--mq-strong); border-radius: 2px; transition: left .15s; }
.lw-cells svg { width: 100%; max-width: 260px; height: auto; display: block; }
.lw-cells text { fill: var(--mq-muted); font-size: 9px; font-family: var(--mq-font); }
.lw-cells circle { transition: r .15s; }
.lw-plot { width: 100%; height: auto; display: block; }
.lw-plot .pl-bg { fill: var(--mq-bg); }
.lw-plot .pl-low { fill: rgba(240, 82, 79, .1); }
.lw-plot .pl-hi { fill: rgba(56, 152, 236, .12); }
.lw-plot .pl-norm { fill: var(--mq-ok-bg); stroke: var(--mq-ok); stroke-dasharray: 3 3; }
.lw-plot .pl-cut { stroke: var(--mq-primary); stroke-width: 1.5; stroke-dasharray: 5 4; }
.lw-plot .pl-iso { fill: none; stroke: var(--mq-line); stroke-width: 1.2; }
.lw-plot .pl-t { fill: var(--mq-muted); font-size: 10px; font-family: var(--mq-font); }
.lw-plot .pl-ax { fill: var(--mq-soft); font-weight: 650; }
.lw-plot .pl-z { fill: var(--mq-soft); font-size: 10px; }
.lw-plot .pl-pt { fill: var(--mq-primary); stroke: #fff; stroke-width: 2; transition: cx .15s, cy .15s; filter: drop-shadow(0 2px 4px rgba(0, 0, 0, .35)); }
.cg-wrap { display: grid; grid-template-columns: minmax(260px, 340px) minmax(0, 1fr); gap: 18px; align-items: start; }
.cg-grid { display: grid; grid-template-columns: auto 1fr 1fr; gap: 6px; align-items: center; }
.cg-h { color: var(--mq-muted); font-size: .75rem; font-weight: 700; text-align: center; }
.cg-v { text-align: right; padding-right: 4px; }
.cg-c { aspect-ratio: 1.3; border: 2px solid var(--mq-line); border-radius: 14px; background: var(--mq-bg); color: var(--mq-strong); font: inherit; font-size: 1.1rem; font-weight: 800; cursor: pointer; transition: border-color .15s, background-color .15s, transform .1s; }
.cg-c:hover { border-color: var(--mq-primary); transform: scale(1.02); }
.cg-c[aria-pressed="true"] { border-color: var(--mq-primary); background: var(--mq-primary-bg); color: var(--mq-ptext); }
.cg-info h4 { margin: 0 0 6px; color: var(--mq-strong); }
.cg-info p { margin: 0 0 10px; }
.cg-mix { padding: 10px 12px; border-radius: 12px; background: var(--mq-bg); }
.cg-mix > span { display: block; margin: 0 0 6px; font-size: .8125rem; color: var(--mq-soft); font-weight: 650; }
.cg-mix p { margin: 8px 0 0; }
.eg-big { display: flex; align-items: baseline; gap: 8px; margin: 0 0 10px; }
.eg-big strong { font-size: 2.4rem; line-height: 1; color: var(--mq-strong); font-variant-numeric: tabular-nums; }
.eg-big span { color: var(--mq-muted); font-size: .8125rem; }
.kd { border-collapse: separate; border-spacing: 3px; font-size: .75rem; }
.kd th { color: var(--mq-soft); font-weight: 700; text-align: center; padding: 2px 6px; }
.kd th small { display: block; color: var(--mq-muted); font-weight: 500; font-size: .625rem; }
.kd tbody th { text-align: right; }
.kd td { width: 56px; height: 30px; border-radius: 6px; transition: box-shadow .15s, transform .15s; }
.kd .kd-r0 { background: #2f9e5b; }
.kd .kd-r1 { background: #e3c13b; }
.kd .kd-r2 { background: #ec8a2f; }
.kd .kd-r3 { background: #d6403a; }
.kd td.is-on { box-shadow: 0 0 0 3px var(--mq-strong); transform: scale(1.08); }
.kd-wrap { overflow-x: auto; }
.kd-wrap p { margin: 4px 0 0; font-size: .75rem; }
.hn-vol { display: grid; gap: 4px; font-size: .8125rem; color: var(--mq-soft); }
.hn-vol .lab-seg { flex-wrap: wrap; }
.hn-steps { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.hn-steps li { display: grid; gap: 1px; padding: 8px 12px; border-radius: 10px; background: var(--mq-bg); border-left: 3px solid var(--mq-line); font-size: .8438rem; animation: lab-in .2s ease-out; }
.hn-steps li strong { color: var(--mq-strong); font-size: .8125rem; }
.hn-steps li.is-ok { border-left-color: var(--mq-ok); }
.hn-steps li.is-bad { border-left-color: var(--mq-bad); }
.hn-steps li.is-stop { border-left-color: var(--mq-primary); background: var(--mq-primary-bg); }
.gs-pre { margin: 0 0 12px; }
.gs-ph { display: flex; align-items: baseline; flex-wrap: wrap; gap: 10px; margin: 0 0 8px; }
.gs-ph span { color: var(--mq-muted); font-weight: 700; }
.gs-ph strong { font-size: 2.2rem; line-height: 1; font-variant-numeric: tabular-nums; }
.gs-ph strong.is-ok { color: var(--mq-ok); }
.gs-ph strong.is-bad { color: var(--mq-bad); }
.gs-ph em { font-style: normal; color: var(--mq-strong); font-weight: 700; }
.lab-w--gas .hn-steps { margin-top: 10px; }
.sm-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }
.sm-tabs button { padding: 6px 12px; border: 1.5px solid var(--mq-line); border-radius: 999px; background: transparent; color: var(--mq-soft); font: inherit; font-size: .8125rem; font-weight: 650; cursor: pointer; }
.sm-tabs button[aria-selected="true"] { border-color: var(--mq-primary); background: var(--mq-primary-bg); color: var(--mq-ptext); }
.sm-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(220px, 1fr); gap: 16px; align-items: start; }
.sm-view { border-radius: 14px; overflow: hidden; background: #14171c; }
.sm-svg { display: block; width: 100%; height: auto; }
.sm-c { cursor: pointer; outline: none; }
.sm-c:hover, .sm-c:focus-visible { filter: brightness(1.08) drop-shadow(0 0 3px rgba(240, 165, 0, .9)); }
.sm-c.is-sel { filter: drop-shadow(0 0 2px #f0a500) drop-shadow(0 0 5px #f0a500); }
.sm-info { padding: 14px; border-radius: 12px; background: var(--mq-bg); min-height: 140px; }
.sm-info h4 { margin: 0 0 6px; color: var(--mq-strong); }
.sm-info p { margin: 0 0 8px; }
.sm-q { font-size: 1rem; }
.sm-verdict { display: flex; align-items: center; gap: 6px; font-weight: 700; }
.sm-verdict.is-ok { color: var(--mq-ok); }
.sm-verdict.is-bad { color: var(--mq-bad); }
.sm-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin: 10px 0 0; font-size: .75rem; }

/* ---- Normy ---- */
.lab-nctl { position: sticky; top: 0; z-index: 3; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0 0 14px; padding: 12px 14px; background: var(--mq-card); border: 1px solid var(--mq-line); border-radius: 14px; }
.admin-bar .lab-nctl { top: 32px; }
.lab-nage { display: grid; gap: 2px; flex: 1 1 280px; font-size: .875rem; }
.lab-nage strong { color: var(--mq-ptext); }
.lab-nctl .lab-input { flex: 0 1 220px; }
.lab-ntab { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 520px), 1fr)); gap: 12px; }
.lab-ntab .lp-panel { padding: 12px 14px; margin: 0; background: var(--lab-paper); color: var(--lab-ink); border-radius: 10px; }
.lab-ntab .lp-t.lab-nt { table-layout: auto; }
.lab-ntab .lab-nt thead th { width: auto !important; }
.lab-ntab .lab-nt .lp-num { padding-right: 10px; }
.lab-nt tr.is-diff { background: #fff4d6; }
.lab-nt tr.is-diff td.lp-num:first-of-type { color: #9a5b00; font-weight: 800; }
.lab-nsrc { color: var(--lab-ink2); font-size: .6875rem; }
.lab-nnote { grid-column: 1 / -1; font-size: .75rem; }

/* ---- Postępy ---- */
.lab-pgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; margin: 0 0 18px; }
.lab-pcard { display: flex; align-items: center; gap: 14px; padding: 14px; background: var(--mq-card); border: 1px solid var(--mq-line); border-radius: 14px; }
.lab-pcard div { display: grid; }
.lab-pcard strong { color: var(--mq-strong); font-size: 1.2rem; }
.lab-pcard span { color: var(--mq-soft); font-size: .8125rem; }
.lab-pmods { margin: 0 0 18px; }
.lab-pmods h3 { margin: 0 0 10px; color: var(--mq-strong); font-size: 1.06rem; }
.lab-prow { display: grid; grid-template-columns: auto minmax(120px, 1fr) minmax(80px, 2fr) auto auto; align-items: center; gap: 12px; padding: 10px 14px; margin: 0 0 6px; background: var(--mq-card); border: 1px solid var(--mq-line); border-radius: 12px; color: var(--mq-text); text-decoration: none; }
.lab-prow .lab-mod-ico { width: 36px; height: 36px; border-radius: 10px; }
.lab-prow:hover { border-color: var(--mq-primary); }
.lab-prow-t { font-weight: 700; color: var(--mq-strong); }
.lab-prow-bar { margin: 0; }
.lab-prow-n { font-size: .8125rem; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ---- strona dla gości ---- */
.mcqp-lab-guest { max-width: 1240px; margin: 0 auto 32px; color: var(--mq-text); font-family: var(--mq-font); }
.lab-g-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 28px; align-items: start; margin: 0 0 24px; }
.lab-g-hero-cta .mcqp-paywall { margin: 0; max-width: none; }
.lab-g-lead { margin: 0 0 14px; font-size: 1.1rem; color: var(--mq-soft); }
.lab-g-stats { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; padding: 0; list-style: none; }
.lab-g-stats li { padding: 8px 14px; border-radius: 12px; background: var(--mq-card); border: 1px solid var(--mq-line); color: var(--mq-soft); font-size: .875rem; }
.lab-g-stats strong { color: var(--mq-strong); font-size: 1.05rem; margin-right: 4px; }
.lab-g-cta { padding: 16px 18px; border-radius: 16px; background: var(--mq-card); border: 1px solid var(--mq-line); }
.lab-g-cta p { margin: 0 0 12px; }
.lab-g-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.lab-g-demo .mcqp-lab { margin: 0; max-width: none; }
.lab-g-cap { margin: 8px 0 0; color: var(--mq-muted); font-size: .8125rem; }
.lab-g-demo { min-width: 0; margin: 0 0 30px; padding: 18px 20px 20px; border: 1px solid var(--mq-line); border-radius: 20px; background: radial-gradient(120% 120% at 100% 0%, var(--mq-primary-bg) 0%, var(--mq-card) 60%); }
.lab-g-demo-t { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; color: var(--mq-ptext); font-size: .8125rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.lab-g-steps { display: grid; gap: 8px; margin: 18px 0 0; padding: 0; list-style: none; }
.lab-g-steps li { display: flex; align-items: flex-start; gap: 10px; color: var(--mq-soft); font-size: .9rem; }
.lab-g-steps span { display: inline-grid; place-items: center; flex: 0 0 auto; width: 24px; height: 24px; border-radius: 50%; background: var(--mq-primary); color: var(--mq-on-primary); font-size: .75rem; font-weight: 800; }
.lab-g-src { margin: 0 0 30px; padding: 18px 20px; border: 1px solid var(--mq-line); border-radius: 16px; background: var(--mq-card); }
.lab-g-src h2 { display: flex; align-items: center; gap: 10px; margin: 0 0 8px; color: var(--mq-strong); font-size: 1.15rem; }
.lab-g-src h2 .lab-ico { color: var(--mq-ptext); }
.lab-g-src p { margin: 0 0 8px; color: var(--mq-soft); font-size: .9rem; }
.lab-g-src .lab-g-note { margin: 0; color: var(--mq-muted); font-size: .8125rem; }
.lab-g-mods li > .lab-ico { color: var(--mq-ptext); margin-top: 2px; }
.lab-g-mods li em { display: block; margin-top: 4px; color: var(--mq-muted); font-size: .75rem; font-style: normal; }
.lab-g-feats { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; margin: 0 0 30px; }
.lab-g-feat { padding: 18px; background: var(--mq-card); border: 1px solid var(--mq-line); border-radius: 16px; }
.lab-g-feat h2 { display: flex; align-items: center; gap: 10px; margin: 0 0 8px; font-size: 1.06rem; color: var(--mq-strong); }
.lab-g-feat h2 .lab-ico { color: var(--mq-ptext); }
.lab-g-feat p { margin: 0 0 8px; color: var(--mq-soft); font-size: .9rem; }
.lab-g-feat ul { margin: 0; padding-left: 18px; font-size: .875rem; }
.lab-g-shot { margin: 0 0 12px; border-radius: 12px; overflow: hidden; border: 1px solid var(--mq-line); }
.lab-g-shot img { display: block; width: 100%; height: auto; }
.lab-g-mods h2, .lab-g-who h2 { margin: 0 0 12px; color: var(--mq-strong); font-size: 1.3rem; }
.lab-g-mods { margin: 0 0 30px; }
.lab-g-mods ol { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.lab-g-mods li { display: flex; gap: 12px; padding: 14px; background: var(--mq-card); border: 1px solid var(--mq-line); border-radius: 14px; }
.lab-g-mods li strong { display: block; color: var(--mq-strong); }
.lab-g-mods li span { color: var(--mq-soft); font-size: .8438rem; }
.lab-g-who { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 0 0 30px; }
.lab-g-who > div { padding: 18px; background: var(--mq-card); border: 1px solid var(--mq-line); border-radius: 16px; }
.lab-g-who p { margin: 0; color: var(--mq-soft); }
.lab-g-final { text-align: center; }
.lab-g-final .lab-g-actions { justify-content: center; }

/* ---- blok na stronie głównej (motyw: .spotlight--lab) ---- */
.lab-home { position: relative; max-width: 600px; margin: 0 auto; color: var(--mq-text); font-family: var(--mq-font); font-size: .875rem; line-height: 1.5; text-align: left; }
.lab-home .lab-home-bar { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin: 0 0 10px; }
.lab-home .lab-home-k { display: inline-flex; align-items: center; gap: 6px; color: var(--mq-soft); font-size: .8125rem; font-weight: 650; }
.lab-home .lab-home-k .lab-ico { color: var(--mq-ptext); }
.lab-home .lab-switch { height: 36px; }
.lab-home .lab-switch[disabled] { cursor: default; opacity: .75; }
.lab-home .lab-home-story { margin: 0 0 12px; color: var(--mq-soft); font-size: .875rem; line-height: 1.5; }
.lab-home .lab-home-story strong { color: var(--mq-strong); }
.lab-home .lab-home-paper .lab-paper { transform: rotate(-.5deg); transition: transform .3s; box-shadow: 0 18px 40px rgba(0, 0, 0, .3); }
.lab-home .lab-home-paper .lab-paper:hover { transform: none; }
.lab-home .lab-paper .lp-notes p { margin: 0; color: var(--lab-ink); font-size: inherit; }
.lab-home .lab-paper .lp-legal { margin: 0; color: #8a94a3; font-size: .625rem; }
.lab-home .lab-paper { padding-bottom: 24px; }
.lab-home .lab-home-q { position: relative; z-index: 2; margin: -14px 10px 0 18px; padding: 14px 16px; background: var(--mq-card); border: 1px solid var(--mq-line); border-radius: 16px; box-shadow: 0 16px 40px rgba(0, 0, 0, .28); }
.lab-home .lab-home-qt { margin: 0 0 8px; color: var(--mq-strong); font-size: .9375rem; font-weight: 700; }
.lab-home-opts { display: grid; gap: 6px; }
.lab-home-opts button { display: flex; align-items: flex-start; gap: 10px; width: 100%; padding: 8px 10px; border: 1.5px solid var(--mq-line); border-radius: 10px; background: var(--mq-bg); color: var(--mq-text); font: inherit; font-size: .8438rem; line-height: 1.4; text-align: left; cursor: pointer; transition: border-color .15s, background-color .15s; }
.lab-home-opts button:hover:not([disabled]) { border-color: var(--mq-primary); }
.lab-home-opts button[disabled] { cursor: default; }
.lab-home-opts button b { display: inline-grid; place-items: center; flex: 0 0 auto; min-width: 22px; height: 22px; border-radius: 6px; background: var(--mq-card2); color: var(--mq-strong); font-size: .75rem; }
.lab-home-opts button.is-ok { border-color: var(--mq-ok); background: var(--mq-ok-bg); }
.lab-home-opts button.is-ok b { background: var(--mq-ok); color: #fff; }
.lab-home-opts button.is-bad { border-color: var(--mq-bad); background: var(--mq-bad-bg); }
.lab-home-opts button.is-bad b { background: var(--mq-bad); color: #fff; }
.lab-home .lab-home-res { margin: 12px 0 0; padding: 12px 0 0; border-top: 1px solid var(--mq-line); }
.lab-home .lab-home-res p { margin: 0 0 8px; color: var(--mq-text); font-size: .8438rem; line-height: 1.5; }
.lab-home .lab-home-res .lab-home-v { display: flex; align-items: center; gap: 6px; font-size: .9375rem; }
.lab-home .lab-home-v.is-ok { color: var(--mq-ok); }
.lab-home .lab-home-v.is-bad { color: var(--mq-bad-text); }
.lab-home .lab-home-v strong { color: inherit; }
.lab-home .lab-home-res .lab-home-cmp { padding: 8px 10px; border-radius: 10px; background: var(--mq-primary-bg); }
.lab-home .lab-home-cmp span { white-space: nowrap; font-weight: 650; color: var(--mq-strong); }
.lab-home .lab-home-cmp small { color: var(--mq-soft); font-weight: 400; }
.lab-home .lab-home-res .lab-home-go { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 10px 0 0; }
.lab-home .lab-home-tip { margin: 10px 0 0; color: var(--mq-muted); font-size: .75rem; }
.lab-home .lab-switch.is-pulse { animation: lab-pulse 2s ease-out infinite; }
@keyframes lab-pulse { 0% { box-shadow: 0 0 0 0 rgba(240, 165, 0, .55); } 70% { box-shadow: 0 0 0 10px rgba(240, 165, 0, 0); } 100% { box-shadow: 0 0 0 0 rgba(240, 165, 0, 0); } }

@container labapp (max-width: 900px) {
	.lab-case { grid-template-columns: minmax(0, 1fr); grid-template-areas: "h" "l" "r"; grid-template-rows: auto; }
	.lab-case-l { position: static; max-height: none; overflow: visible; margin-bottom: 16px; }
}

/* ---- telefon i tablet ---- */
@media (max-width: 1020px) {
	.lab-case { grid-template-columns: minmax(0, 1fr); grid-template-areas: "h" "l" "r"; grid-template-rows: auto; }
	.lab-case-l { position: static; max-height: none; overflow: visible; margin-bottom: 16px; }
	.lab-g-hero { grid-template-columns: 1fr; }
}
@media (max-width: 780px) {
	.lab-hero { grid-template-columns: auto 1fr; padding: 16px; }
	.lab-hero-act { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; }
	.lw-grid, .cg-wrap, .sm-grid { grid-template-columns: 1fr; }
	.lab-g-who { grid-template-columns: 1fr; }
	.lab-prow { grid-template-columns: auto 1fr auto; }
	.lab-prow-bar, .lab-prow-n.lab-muted { display: none; }
}
@media (max-width: 600px) {
	.lab-top { flex-direction: column; align-items: stretch; }
	.lab-tabs { width: 100%; }
	.lab-tab { flex: 1 1 0; flex-direction: column; justify-content: center; gap: 2px; padding: 7px 2px; min-width: 0; }
	.lab-tab span { font-size: .6875rem; }
	.lp-t, .lp-t.is-series { table-layout: auto; }
	.lp-t thead th { width: auto !important; }
	.lp-t th[scope=row] { overflow-wrap: normal; word-break: normal; hyphens: auto; min-width: 96px; }
	.lp-t .lp-u, .lp-t thead th:nth-last-child(2) { display: none; }
	.lab-nt .lp-u, .lab-nt thead th:nth-last-child(2) { display: table-cell; }
	.lp-ru { display: block; color: #8a94a3; font-size: .625rem; }
	.lp-flag { width: auto; }
	.lp-f.is-H, .lp-f.is-L { padding: 0 3px; }
	.lp-tr .lab-spark, .lp-trt { display: none; }
	.lp-t.is-series:not(.has-mk) .lp-tr { display: none; }
	.lp-ref { white-space: normal; text-align: right; }
	.lab-prefs { justify-content: space-between; }
	.lab-seg button .lab-seg-t { display: none; }
	.lab-seg button[aria-checked="true"] .lab-seg-t { display: inline; }
	.lab-paper { padding: 16px 12px 12px; font-size: .75rem; }
	.lp-head { flex-direction: column; }
	.lp-meta { text-align: left; }
	.lp-meta div { justify-content: flex-start; }
	.lp-pt { grid-template-columns: repeat(2, auto); }
	.lp-t th, .lp-t td { padding: 4px 3px; }
	.lp-u { font-size: .6875rem; }
	.lab-why { margin-left: 10px; }
	.lab-mhead-r { display: none; }
	.lab-ccard { flex-wrap: wrap; }
	.lab-ct { flex-basis: calc(100% - 44px); }
}
@media (prefers-reduced-motion: reduce) {
	.lab-app *, .lab-home * { animation: none !important; transition: none !important; }
}

/* ---- druk: tylko wydruk wyniku ---- */
/* Druk: lab-app.js kopiuje kartkę do .lab-print-root na końcu <body> i dodaje body.lab-printing — drukuje się tylko wynik,
   bez nagłówka, stopki i pustych stron motywu. */
.lab-print-root { display: none; }
@media print {
	html.lab-printing { color-scheme: light; }
	html.lab-printing, body.lab-printing { background: #fff !important; }
	body.lab-printing > :not(.lab-print-root) { display: none !important; }
	body.lab-printing > .lab-print-root { display: block !important; margin: 0; padding: 0; }
	.lab-print-root .lab-paper { margin: 0; max-width: none; width: auto; box-shadow: none; border-radius: 0; transform: none; }
	.lab-print-root .lp-an { cursor: auto; text-decoration: none; }
	.lab-print-root tr:hover { background: none; }
	.lab-print-root .lp-row, .lab-print-root .lp-panel h4 { break-inside: avoid; }
	.lp-mk { display: none; }
}
