/**
 * Narzędzia kliniczne — kalkulatory i tabela MCID.
 *
 * Warstwa oparta o tokeny fe-design-system (auto-adaptacja dark mode).
 * Zakres: .fe-ct-* na stronach /narzedzia/.
 */

/* Tło strony narzędzi i kalkulatorów */
body.fe-clinical-tools-page {
    --font-sans: "Plus Jakarta Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-mono: var(--font-sans);
    --page: #faf9f6;
    --section: #f8f5f0;
    --surface: #fffdf9;
    --sunken: #efeeeb;
    --hover: #f8eee8;
    --ink: #1a1c1a;
    --text: #584237;
    --muted: #475569;
    --border: rgba(224, 192, 177, .58);
    --border-soft: rgba(224, 192, 177, .4);
    --shadow-md: 0 10px 28px rgba(88, 34, 0, .06);
    --shadow-lg: 0 24px 48px rgba(0, 83, 166, .10), 0 8px 16px rgba(0, 83, 166, .06);
    --r-sm: 10px;
    --r-card: 16px;
    --r-pill: 999px;
    --wrap: 1240px;
    --acc-orange: #d96722;
    --acc-strong: #b85217;
    --acc-ink: #8f3c0c;
    --acc-tint: #fff1e8;
    --acc-card-bg: #142b4a;
    --acc-ok: #047857;
    --acc-ok-bg: #e6f5ed;
    --acc-warn: #b45309;
    --acc-warn-bg: rgba(245, 158, 11, .1);
}

body.fe-clinical-tools-page .site-content {
    background: var(--page, #faf9f6) !important;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page {
    --page: #111310;
    --section: #151714;
    --surface: #1a1c18;
    --sunken: #141613;
    --hover: #22231f;
    --ink: #f2efe9;
    --text: #ded9d2;
    --muted: #aaa099;
    --border: rgba(190, 145, 120, .3);
    --border-soft: rgba(190, 145, 120, .2);
    --shadow-md: 0 10px 28px rgba(0, 0, 0, .32);
    --shadow-lg: 0 24px 48px rgba(0, 0, 0, .4);
    --acc-orange: #e8a06a;
    --acc-ink: #e8a06a;
    --acc-tint: rgba(232, 160, 106, .12);
    --acc-card-bg: #1d2530;
    --acc-ok: #7fd6a8;
    --acc-ok-bg: rgba(23, 99, 68, .18);
    --acc-warn: #f0b463;
    --acc-warn-bg: rgba(217, 119, 6, .14);
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .site-content {
    background: #111310 !important;
}

body.fe-clinical-tools-page #content > .ast-container,
body.fe-clinical-tools-page #primary,
body.fe-clinical-tools-page .site-main {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
}

.fe-ct-shell {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--wrap, 1240px);
    margin-inline: auto;
    padding-inline: clamp(20px, 4vw, 40px);
    padding-top: clamp(24px, 3.5vw, 40px);
    padding-bottom: clamp(48px, 6vw, 72px);
    font-family: var(--font-sans);
    color: var(--text);
    -webkit-font-smoothing: antialiased;
}

.fe-ct-shell--wide,
.fe-ct-shell--calculator,
.fe-ct-shell--tool,
.fe-ct-shell--mcid {
    max-width: var(--wrap, 1240px);
}

.fe-ct-shell button,
.fe-ct-shell input,
.fe-ct-shell select,
.fe-ct-shell textarea {
    font-family: inherit;
}

.fe-ct-shell :where(h1, h2, h3, h4, p, a, span, strong, small, label, legend, summary) {
    font-family: inherit;
}

/* Okruszki */
.fe-ct-crumbs {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    font-family: var(--font-mono);
    font-size: .76rem;
    font-weight: 600;
    color: var(--muted);
    margin-bottom: 20px;
}

.fe-ct-crumbs a {
    color: var(--muted);
    text-decoration: none;
    transition: color .15s ease;
}

.fe-ct-crumbs a:hover {
    color: var(--acc-strong);
}

html[data-fe-theme="dark"] .fe-ct-crumbs a:hover {
    color: var(--acc-orange);
}

.fe-ct-crumbs .sep {
    opacity: .6;
}

.fe-ct-crumbs .current {
    color: var(--ink);
}

/* Pasek nawigacyjny pojedynczego narzędzia (Wróć + Chipy) */
.fe-ct-top-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

.fe-ct-back-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: .88rem;
    font-weight: 700;
    color: var(--acc-ink);
    text-decoration: none;
    padding: 7px 14px;
    border-radius: var(--r-pill);
    background: var(--acc-tint);
    border: 1px solid var(--border-soft);
    transition: background .15s ease, color .15s ease, transform .15s ease;
}

html[data-fe-theme="dark"] .fe-ct-back-link {
    color: var(--acc-orange);
}

.fe-ct-back-link:hover {
    background: var(--hover);
    transform: translateX(-2px);
}

.fe-ct-back-link i[data-lucide],
.fe-ct-back-link svg,
.fe-ct-back-link .lucide {
    width: 16px;
    height: 16px;
}

.fe-ct-top-tags {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

/* ---------------------------------------------------------------- */
/* Nagłówek strony                                                   */
/* ---------------------------------------------------------------- */

.fe-ct-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--acc-ink);
}

html[data-fe-theme="dark"] .fe-ct-eyebrow {
    color: var(--acc-orange);
}

.fe-ct-head h1 {
    margin: 0 0 10px;
    font-size: clamp(1.9rem, 3.8vw, 2.7rem);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: var(--ink);
}

.fe-ct-full-name {
    margin: -6px 0 10px;
    font-size: 14px;
    color: var(--muted);
}

.fe-ct-lead {
    margin: 0;
    font-size: 1rem;
    line-height: 1.65;
    color: var(--text);
    max-width: 62ch;
}

.fe-ct-back {
    margin: 0 0 18px;
    font-size: 13px;
}

.fe-ct-back a {
    color: var(--acc-strong);
    text-decoration: none;
}

.fe-ct-back a:hover { text-decoration: underline; }

.fe-ct-section {
    margin-top: clamp(28px, 4vw, 40px);
}

.fe-ct-section > h2 {
    margin: 0 0 16px;
    font-size: clamp(1.3rem, 2.4vw, 1.7rem);
    font-weight: 800;
    letter-spacing: -.015em;
    color: var(--ink);
}

.fe-ct-filters {
    display: flex;
    overflow-x: auto;
    gap: 8px;
    padding-bottom: 6px;
    margin-bottom: 20px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.fe-ct-filters::-webkit-scrollbar {
    display: none;
}

.fe-ct-filter-chip {
    appearance: none;
    cursor: pointer;
    flex-shrink: 0;
    border: 1px solid var(--border);
    border-radius: var(--r-pill);
    background: var(--surface);
    color: var(--text);
    padding: 8px 15px;
    font-size: .85rem;
    font-weight: 600;
    line-height: 1.25;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.fe-ct-filter-chip:hover {
    background: var(--hover);
    color: var(--ink);
}

.fe-ct-filter-chip.is-active {
    background: var(--acc-tint);
    border-color: var(--acc-orange);
    color: var(--acc-ink);
    font-weight: 800;
}

html[data-fe-theme="dark"] .fe-ct-filter-chip.is-active {
    color: var(--acc-orange);
}

/* ---------------------------------------------------------------- */
/* Badge walidacji + metryki                                         */
/* ---------------------------------------------------------------- */

.fe-ct-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.fe-ct-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 4px 12px;
    border-radius: var(--r-pill, 999px);
    font-size: .74rem;
    font-weight: 800;
    line-height: 1.25;
    white-space: nowrap;
    max-width: 100%;
}

.fe-ct-badge--validated,
.fe-ct-badge--ok {
    background: var(--acc-ok-bg);
    color: var(--acc-ok);
    border: 1px solid color-mix(in srgb, var(--acc-ok) 25%, transparent);
}

.fe-ct-badge--internal,
.fe-ct-badge--warn {
    background: var(--acc-warn-bg);
    color: var(--acc-warn);
    border: 1px solid color-mix(in srgb, var(--acc-warn) 25%, transparent);
}

.fe-ct-badge--derivation,
.fe-ct-badge--muted {
    background: var(--sunken);
    color: var(--muted);
    border: 1px solid var(--border-soft);
}

.fe-ct-metric {
    font-size: 12.5px;
    color: var(--fe-muted, #64748b);
}

.fe-ct-metric strong { color: var(--fe-text, #374151); }

/* ---------------------------------------------------------------- */
/* Karty narzędzi                                                    */
/* ---------------------------------------------------------------- */

.fe-ct-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center; /* ostatni, niepełny rząd też wygląda dobrze */
    gap: 14px;
}

.fe-ct-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    flex: 1 1 280px;
    max-width: 430px;
    padding: 20px;
    background: var(--fe-surface, #ffffff);
    border: 1px solid var(--fe-line, #e2e8f0);
    border-radius: var(--fe-radius, 14px);
    box-shadow: var(--fe-shadow-xs, none);
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.fe-ct-card:hover {
    transform: translateY(-3px);
    border-color: var(--fe-brand-primary-strong, #b07a00);
    box-shadow: var(--fe-shadow-sm, none);
}

.fe-ct-card:focus-visible {
    outline: 2px solid var(--fe-brand-primary-strong, #b07a00);
    outline-offset: 2px;
}

.fe-ct-card--wide { flex: 1 1 100%; max-width: 100%; }

.fe-ct-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.fe-ct-card__meta .fe-chip {
    font-size: 11px;
}

.fe-ct-card h3 {
    margin: 0;
    font-size: 1.12rem;
    line-height: 1.35;
    letter-spacing: -.01em;
    color: var(--fe-ink, #0f172a);
}

.fe-ct-card__sub {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--fe-text, #374151);
}

/* Stopka karty: badge walidacji + strzalka; cala karta jest linkiem,
   wiec osobny przycisk "otworz" jest zbedny. */
.fe-ct-card__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: auto;
    padding-top: 8px;
    width: 100%;
}

.fe-ct-card__go {
    width: 30px;
    height: 30px;
    border-radius: var(--fe-radius-pill, 999px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--fe-bg-soft, #f5f4f1);
    color: var(--fe-brand-primary-strong, #b07a00);
    font-size: 15px;
    opacity: .55;
    transform: translateX(-3px);
    transition: opacity .15s ease, transform .15s ease, background .15s ease;
}

.fe-ct-card:hover .fe-ct-card__go {
    opacity: 1;
    transform: translateX(0);
    background: var(--fe-brand-primary-soft, #f5ead9);
}

/* ---------------------------------------------------------------- */
/* Formularz kalkulatora                                             */
/* ---------------------------------------------------------------- */

.fe-ct-app-wrap {
    background: var(--fe-surface-soft, var(--fe-bg-soft, #f5f4f1));
    border: 1px solid var(--fe-line-soft, #f1f5f9);
    border-radius: var(--fe-radius, 14px);
    padding: clamp(14px, 2.5vw, 22px);
}

#fe-ct-app:empty::before,
#fe-ct-mcid-app:empty::before {
    content: "Ładowanie formularza…";
    color: var(--fe-muted, #64748b);
    font-size: 14px;
}

.fe-ct-fieldset {
    border: 0;
    padding: 0;
    margin: 0;
    min-width: 0;
}

.fe-ct-fieldset legend {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--fe-muted, #64748b);
    margin-bottom: 12px;
    padding: 0;
}

.fe-ct-item {
    display: block;
    margin-bottom: 10px;
}

.fe-ct-check {
    display: flex;
    min-height: 44px;
    gap: 10px;
    align-items: center;
    min-height: 44px;
    padding: 10px 14px;
    background: var(--fe-surface-input, var(--fe-surface, #fff));
    border: 1px solid var(--fe-line, #e2e8f0);
    border-radius: var(--fe-radius-sm, 10px);
    cursor: pointer;
    transition: border-color .12s ease, background .12s ease;
}

.fe-ct-check:hover { border-color: var(--fe-brand-primary, #c08552); }

.fe-ct-check input {
    margin-top: 3px;
    accent-color: var(--fe-brand-primary, #b07a00);
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
}

.fe-ct-hint {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    line-height: 1.5;
    color: var(--fe-muted, #64748b);
}

/* Pytania radio (STarT Back) — pełna szerokość z opcjami w rzędzie */

.fe-ct-item--wide {
    padding: 10px 12px;
    background: var(--fe-surface-input, var(--fe-surface, #fff));
    border: 1px solid var(--fe-line, #e2e8f0);
    border-radius: var(--fe-radius-sm, 10px);
}

.fe-ct-q {
    margin: 0 0 8px;
    font-size: 14px;
    font-weight: 600;
    color: var(--fe-ink, #0f172a);
}

.fe-ct-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.fe-ct-opt {
    display: inline-flex;
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 44px;
    padding: 10px 16px;
    border: 1px solid var(--fe-line, #e2e8f0);
    border-radius: var(--fe-radius-pill, 999px);
    font-size: 14px;
    cursor: pointer;
    transition: border-color .12s ease;
}

.fe-ct-opt:hover { border-color: var(--fe-brand-primary, #c08552); }

.fe-ct-opt input {
    accent-color: var(--fe-brand-primary, #b07a00);
    width: 14px;
    height: 14px;
    margin: 0;
}

.fe-ct-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 14px;
}

.fe-ct-btn {
    appearance: none;
    border: 1px solid transparent;
    border-radius: var(--fe-radius-pill, 999px);
    padding: 8px 18px;
    font-size: 13.5px;
    font-weight: 700;
    cursor: pointer;
}

.fe-ct-btn--ghost {
    background: transparent;
    border-color: var(--fe-line, #e2e8f0);
    color: var(--fe-text, #374151);
}

.fe-ct-btn--ghost:hover { border-color: var(--fe-brand-primary, #c08552); }

/* ---------------------------------------------------------------- */
/* Wynik                                                             */
/* ---------------------------------------------------------------- */

.fe-ct-result { margin-top: 14px; }

.fe-ct-result__hint {
    margin: 0;
    font-size: 13.5px;
    color: var(--fe-muted, #64748b);
}

.fe-ct-outcome {
    background: var(--fe-surface, #fff);
    border: 1px solid var(--fe-line, #e2e8f0);
    border-left-width: 4px;
    border-radius: var(--fe-radius-sm, 10px);
    padding: 14px 16px;
}

.fe-ct-outcome + .fe-ct-outcome { margin-top: 10px; }

.fe-ct-outcome--negative {
    border-color: var(--fe-success-border, #86efac);
    background: var(--fe-success-bg, #f0fdf4);
}

.fe-ct-outcome--positive {
    border-color: var(--fe-error-border, #fecaca);
    background: var(--fe-error-bg, #fef2f2);
}

.fe-ct-outcome--moderate {
    border-color: var(--fe-warning-border, #fde68a);
    background: var(--fe-warning-bg, #fffbeb);
}

.fe-ct-outcome--neutral {
    border-color: var(--fe-info-border, #bfdbfe);
    background: var(--fe-info-bg, #eff6ff);
}

.fe-ct-outcome h3 {
    margin: 0 0 6px;
    font-size: 15px;
    color: var(--fe-ink, #0f172a);
}

.fe-ct-outcome p {
    margin: 0 0 6px;
    font-size: 14px;
    line-height: 1.6;
    color: var(--fe-text, #374151);
}

.fe-ct-outcome p:last-child { margin-bottom: 0; }

.fe-ct-score {
    font-size: 13px;
    letter-spacing: .01em;
    color: var(--fe-muted, #64748b);
}

.fe-ct-score strong { color: var(--fe-ink, #0f172a); font-size: 15px; }

.fe-ct-outcome__next { font-size: 13.5px; }

/* ---------------------------------------------------------------- */
/* Interpretator MCID                                                */
/* ---------------------------------------------------------------- */

.fe-ct-mcid__title {
    margin: 0 0 12px;
    font-weight: 700;
    color: var(--fe-ink, #0f172a);
}

.fe-ct-mcid .fe-ct-row,
.fe-ct-mcid__form .fe-ct-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    margin-bottom: 12px;
}

.fe-ct-field label {
    display: block;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--fe-muted, #64748b);
    margin-bottom: 5px;
}

.fe-ct-field select,
.fe-ct-field input {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid var(--fe-line, #cbd5e1);
    border-radius: var(--fe-radius-sm, 10px);
    background: var(--fe-surface-input, #fff);
    color: var(--fe-ink, #0f172a);
    font-size: 15px;
}

.fe-ct-mcid__out:empty { display: none; }

/* ---------------------------------------------------------------- */
/* Podpowiedz wybranej skali + sekcja "Co mierzy kazde narzedzie"     */
/* ---------------------------------------------------------------- */

.fe-ct-scale-hint {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
}

.fe-ct-hint-chip {
    font-size: 12px;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: var(--fe-radius-pill, 999px);
    background: var(--fe-bg-soft, #f5f4f1);
    color: var(--fe-muted, #64748b);
}

.fe-ct-hint-chip--mcid {
    background: var(--fe-brand-primary-soft, #f5ead9);
    color: var(--fe-brand-primary-strong, #7a5200);
}

.fe-ct-explain {
    border: 1px solid var(--fe-line, #e2e8f0);
    border-radius: var(--fe-radius-sm, 10px);
    background: var(--fe-surface, #fff);
    margin-bottom: 10px;
    overflow: hidden;
}

.fe-ct-explain summary {
    display: flex;
    align-items: baseline;
    gap: 12px;
    padding: 12px 16px;
    cursor: pointer;
    list-style: none;
}

.fe-ct-explain summary::-webkit-details-marker { display: none; }

.fe-ct-explain summary::after {
    content: '+';
    margin-left: auto;
    font-size: 18px;
    line-height: 1;
    color: var(--fe-muted, #64748b);
}

.fe-ct-explain[open] summary::after { content: '–'; }

.fe-ct-explain summary:hover { background: var(--fe-bg-soft, #fafaf9); }

.fe-ct-explain__abbrev {
    flex-shrink: 0;
    min-width: 64px;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: .02em;
    color: var(--fe-brand-primary-strong, #7a5200);
}

.fe-ct-explain__what {
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--fe-text, #374151);
}

.fe-ct-explain__body {
    padding: 2px 16px 14px 92px;
    border-top: 1px solid var(--fe-line-soft, #f1f5f9);
}

.fe-ct-explain__body p {
    margin: 10px 0 0;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--fe-text, #374151);
}

.fe-ct-explain__body strong { color: var(--fe-ink, #0f172a); }

.fe-ct-explain__example {
    background: var(--fe-success-bg, #f0fdf4);
    border-left: 3px solid var(--fe-success-border, #86efac);
    border-radius: 0 var(--fe-radius-sm, 8px) var(--fe-radius-sm, 0);
    padding: 8px 12px !important;
}

.fe-ct-explain__meta,
.fe-ct-explain__sources {
    font-size: 12px !important;
    color: var(--fe-muted, #64748b) !important;
}

@media (max-width: 640px) {
    .fe-ct-explain summary { flex-direction: column; gap: 4px; }
    .fe-ct-explain__body { padding-left: 16px; }
}

/* ---------------------------------------------------------------- */
/* Tabela MCID                                                       */
/* ---------------------------------------------------------------- */

.fe-ct-filter {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}

.fe-ct-filter label {
    font-size: 13px;
    font-weight: 600;
    color: var(--fe-muted, #64748b);
    white-space: nowrap;
}

.fe-ct-filter input {
    flex: 1;
    max-width: 320px;
    padding: 8px 12px;
    border: 1px solid var(--fe-line, #cbd5e1);
    border-radius: var(--fe-radius-pill, 999px);
    background: var(--fe-surface-input, #fff);
    color: var(--fe-ink, #0f172a);
    font-size: 14px;
}

.fe-ct-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--fe-line, #e2e8f0);
    border-radius: var(--fe-radius, 14px);
    background: var(--fe-surface, #fff);
}

.fe-ct-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 720px;
    font-size: 14px;
}

.fe-ct-table th,
.fe-ct-table td {
    text-align: left;
    padding: 12px 14px;
    vertical-align: top;
    border-bottom: 1px solid var(--fe-line-soft, #f1f5f9);
}

.fe-ct-table thead th {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--fe-muted, #64748b);
    background: var(--fe-bg-soft, #fafaf9);
}

.fe-ct-table tbody tr:last-child td { border-bottom: 0; }

.fe-ct-table td strong {
    font-size: 15px;
    color: var(--fe-ink, #0f172a);
}

.fe-ct-table__sub {
    display: block;
    font-size: 12px;
    color: var(--fe-muted, #64748b);
    margin-top: 2px;
}

.fe-ct-license {
    font-style: italic;
}

/* Mobile: tabela jako karty */
@media (max-width: 760px) {
    .fe-ct-table-wrap {
        border: 0;
        background: transparent;
        overflow: visible;
    }

    .fe-ct-table {
        min-width: 0;
        display: block;
    }

    .fe-ct-table thead { display: none; }

    .fe-ct-table,
    .fe-ct-table tbody,
    .fe-ct-table tr,
    .fe-ct-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }

    .fe-ct-table tr {
        margin-bottom: 12px;
        border: 1px solid var(--fe-line, #e2e8f0);
        border-radius: var(--fe-radius, 14px);
        background: var(--fe-surface, #fff);
        padding: 6px 0;
    }

    .fe-ct-table td {
        padding: 8px 14px;
        border-bottom: 1px dashed var(--fe-line-soft, #f1f5f9);
    }

    .fe-ct-table td:last-child { border-bottom: 0; }

    .fe-ct-table td[data-label]::before {
        content: attr(data-label);
        display: block;
        font-size: 11px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: .07em;
        color: var(--fe-muted, #64748b);
        margin-bottom: 2px;
    }
}

/* ---------------------------------------------------------------- */
/* Noty, cytowania, stopka                                           */
/* ---------------------------------------------------------------- */

.fe-ct-list li { margin-bottom: 8px; line-height: 1.6; }

.fe-ct-note {
    border: 1px solid var(--fe-line, #e2e8f0);
    border-left-width: 4px;
    border-radius: 0 var(--fe-radius-sm, 10px) var(--fe-radius-sm, 0);
    padding: 12px 16px;
    font-size: 13.5px;
    line-height: 1.6;
}

.fe-ct-note h2 {
    margin: 0 0 8px;
    font-size: 15px;
    color: var(--fe-ink, #0f172a);
}

.fe-ct-note ul { margin: 0 0 8px; padding-left: 1.2em; }
.fe-ct-note li { margin-bottom: 4px; }
.fe-ct-note p:last-child { margin-bottom: 0; }

.fe-ct-note--info {
    border-color: var(--fe-info-border, #bfdbfe);
    background: var(--fe-info-bg, #eff6ff);
}

.fe-ct-note--warn {
    border-color: var(--fe-warning-border, #fde68a);
    background: var(--fe-warning-bg, #fffbeb);
    margin-top: 12px;
}

.fe-ct-intro {
    font-size: 15px;
    line-height: 1.65;
}

.fe-ct-citation {
    margin: 0;
    padding: 12px 16px;
    border-left: 3px solid var(--fe-brand-primary, #b07a00);
    background: var(--fe-bg-soft, #fafaf9);
    border-radius: 0 8px 8px 0;
    font-size: 13px;
    line-height: 1.6;
    color: var(--fe-muted, #64748b);
}

.fe-ct-foot {
    margin-top: clamp(28px, 5vw, 44px);
    padding-top: 16px;
    border-top: 1px solid var(--fe-line-soft, #f1f5f9);
}

.fe-ct-foot p {
    margin: 0;
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--fe-faint, #94a3b8);
}

/* ---------------------------------------------------------------- */
/* v2: landing search, wizard, tool page                             */
/* ---------------------------------------------------------------- */

.fe-ct-search { margin: 18px 0 14px; }
.fe-ct-search input {
    width: 100%; padding: 12px 16px;
    border: 1px solid var(--fe-line, #cbd5e1);
    border-radius: var(--fe-radius-pill, 999px);
    background: var(--fe-surface, #fff);
    font-size: 15px;
}
.fe-ct-search__label { position: absolute; left: -9999px; }
.fe-ct-wizard { background: var(--fe-bg-soft, #f6f7f7); border: 1px dashed var(--fe-line, #e2e8f0); border-radius: var(--fe-radius, 14px); padding: 16px; }
.fe-ct-wizard__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.fe-ct-muted { font-size: 12.5px; color: var(--fe-muted, #64748b); }

/* Tool page */
.fe-ct-mode { display: inline-flex; gap: 6px; margin-top: 14px; border: 1px solid var(--fe-line, #e2e8f0); border-radius: var(--fe-radius-pill, 999px); padding: 4px; background: var(--fe-surface, #fff); }
.fe-ct-mode__btn { appearance: none; border: 0; background: transparent; padding: 6px 14px; border-radius: var(--fe-radius-pill, 999px); font-size: 13px; font-weight: 700; cursor: pointer; color: var(--fe-muted, #64748b); }
.fe-ct-mode__btn.is-active {
    background: var(--fe-brand-primary, #c08552);
    color: #1a1c1a;
}
html[data-fe-theme="dark"] .fe-ct-mode__btn.is-active {
    background: var(--fe-brand-primary, #e39a67);
    color: #1a1c1a;
}
.fe-ct-big { font-size: clamp(2rem, 6vw, 3rem); font-weight: 800; color: var(--fe-ink, #0f172a); letter-spacing: -.02em; }
.fe-ct-big__value small { font-size: 1rem; font-weight: 400; color: var(--fe-muted, #64748b); }
.fe-ct-steps { margin: 0; padding-left: 1.2em; }
.fe-ct-steps li { margin-bottom: 6px; line-height: 1.6; }
.fe-ct-result-card { border: 1px solid var(--fe-line, #e2e8f0); border-radius: var(--fe-radius, 14px); padding: 16px; margin-bottom: 12px; background: var(--fe-surface, #fff); }
.fe-ct-result-card h4 { margin: 0 0 8px; font-size: 1rem; }
.fe-ct-field { display: block; margin-bottom: 12px; }
.fe-ct-field__label { display: block; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--fe-muted, #64748b); margin-bottom: 4px; }
.fe-ct-field__hint { display: block; font-size: 12px; color: var(--fe-muted, #64748b); margin-top: 2px; }
.fe-ct-field__error { display: block; font-size: 12px; color: var(--fe-error-text, #991b1b); min-height: 1.2em; }
.fe-ct-input { width: 100%; padding: 10px 12px; border: 1px solid var(--fe-line, #cbd5e1); border-radius: var(--fe-radius-sm, 10px); background: var(--fe-surface-input, #fff); font-size: 15px; }
.fe-ct-details { border: 1px solid var(--fe-line-soft, #f1f5f9); border-radius: var(--fe-radius-sm, 10px); padding: 10px 14px; margin-top: 10px; background: var(--fe-bg-soft, #fafaf9); }
.fe-ct-details summary { cursor: pointer; font-weight: 700; font-size: 13px; }
.fe-ct-evidence li { margin-bottom: 6px; font-size: 13px; line-height: 1.5; }
.fe-ct-rights { font-size: 12px; color: var(--fe-muted, #64748b); font-style: italic; margin-top: 12px; }
.fe-ct-warn { background: var(--fe-warning-bg, #fffbeb); border: 1px solid var(--fe-warning-border, #fde68a); border-radius: 8px; padding: 8px 12px; font-size: 13px; margin-top: 8px; }

/* Questionnaire + tabs */
.fe-ct-tabs { display: flex; gap: 8px; margin: 14px 0 12px; border-bottom: 1px solid var(--fe-line, #e2e8f0); padding-bottom: 8px; }
.fe-ct-tab { appearance: none; border: 1px solid var(--fe-line, #e2e8f0); background: var(--fe-surface, #fff); padding: 6px 14px; border-radius: var(--fe-radius-pill, 999px); font-size: 13px; font-weight: 700; cursor: pointer; color: var(--fe-muted, #64748b); }
.fe-ct-tab.is-active {
    background: var(--fe-brand-primary, #c08552);
    border-color: var(--fe-brand-primary, #c08552);
    color: #1a1c1a;
}
html[data-fe-theme="dark"] .fe-ct-tab:not(.is-active) {
    background: var(--fe-surface-raised, #1f2520);
    border-color: var(--fe-border, #3d473f);
    color: var(--fe-brand-muted, #c8bdb4);
}
html[data-fe-theme="dark"] .fe-ct-tab:not(.is-active):is(:hover, :focus-visible) {
    color: var(--fe-text-strong, #f2efe9);
    border-color: var(--fe-brand-primary, #e39a67);
}
html[data-fe-theme="dark"] .fe-ct-tab.is-active {
    background: var(--fe-brand-primary, #e39a67);
    border-color: var(--fe-brand-primary, #e39a67);
    color: #1a1c1a;
}
html[data-fe-theme="dark"] .fe-ct-workbench__switch {
    background: #141714;
    border-color: #554439;
}
html[data-fe-theme="dark"] .fe-ct-workbench__switch .fe-ct-tab {
    border: 0;
    border-radius: 10px;
    background: transparent !important;
    color: #c8bdb4 !important;
}
html[data-fe-theme="dark"] .fe-ct-workbench__switch .fe-ct-tab:is(:hover, :focus-visible) {
    color: #f2efe9 !important;
}
html[data-fe-theme="dark"] .fe-ct-workbench__switch .fe-ct-tab.is-active {
    background: #e39a67 !important;
    color: #1a1c1a !important;
    font-weight: 700;
}
.fe-ct-tabpanel { display: none; }
.fe-ct-tabpanel.is-active { display: block; }
.fe-ct-progress { height: 6px; background: var(--fe-line-soft, #f1f5f9); border-radius: 999px; overflow: hidden; margin-bottom: 6px; }
.fe-ct-progress__bar { height: 100%; width: 0; background: var(--fe-brand-primary, #c08552); transition: width .2s; }
.fe-ct-progress__label { font-size: 12px; color: var(--fe-muted, #64748b); margin-bottom: 10px; }
.fe-ct-qrow { display: flex; gap: 10px; align-items: flex-start; padding: 10px; border: 1px solid var(--fe-line-soft, #f1f5f9); border-radius: 8px; margin-bottom: 8px; background: var(--fe-surface, #fff); }
.fe-ct-qrow__legend {
    display: flex;
    align-items: baseline;
    gap: 8px;
    width: auto;
    max-width: calc(100% - 20px);
    padding: 0 4px;
}
.fe-ct-qrow__num {
    display: inline-block;
    flex: 0 0 auto;
    min-width: 1.75em;
    margin-right: 2px;
    font-weight: 700;
    color: var(--fe-muted, #64748b);
}
.fe-ct-qrow__text { flex: 1; min-width: 0; font-size: 14px; line-height: 1.5; }
.fe-ct-qopts { display: flex; flex-wrap: wrap; gap: 6px; margin-left: 8px; }
.fe-ct-qopt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 44px;
    min-height: 44px;
    padding: 8px 12px;
    font-size: 14px;
    border: 1px solid var(--fe-line, #e2e8f0);
    border-radius: 10px;
    cursor: pointer;
    background: var(--fe-surface-input, #fff);
}

.fe-ct-hub { display: flex; flex-wrap: wrap; gap: 8px; }
.fe-ct-hub__link {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 8px 14px; border-radius: var(--fe-radius-pill, 999px);
    background: var(--fe-bg-soft, #f5f4f1); border: 1px solid var(--fe-line, #e2e8f0);
    text-decoration: none; color: var(--fe-ink, #0f172a); font-size: 13.5px; font-weight: 600;
    transition: border-color .15s ease, transform .15s ease;
}
.fe-ct-hub__link:hover { border-color: var(--fe-brand-primary-strong, #b07a00); transform: translateY(-1px); }
.fe-ct-synthesis { margin-top: 14px; }

/* ---------------------------------------------------------------- */
/* v2.1 — landing: sidebar kategorii, featured, lista, guidance      */
/* ---------------------------------------------------------------- */

.fe-ct-shell--wide { max-width: var(--wrap, 1240px); }

.fe-ct-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
    align-items: start;
    padding-block: clamp(16px, 2.5vw, 24px) clamp(48px, 6vw, 72px);
}

/* Sidebar kategorii — ukryty na mobile, widoczny na desktop */
.fe-ct-cats {
    display: none;
}

.fe-ct-search {
    position: relative;
    max-width: 640px;
    margin-top: clamp(20px, 3vw, 28px);
    margin-bottom: 24px;
}

.fe-ct-search > svg,
.fe-ct-search .lucide,
.fe-ct-search i[data-lucide] {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 19px;
    height: 19px;
    color: var(--muted);
    pointer-events: none;
}

.fe-ct-search input {
    width: 100%;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 14px 16px 14px 48px;
    box-shadow: var(--shadow-md);
    font-family: inherit;
    font-size: 1rem;
    font-weight: 500;
    color: var(--ink);
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.fe-ct-search input::placeholder {
    color: var(--muted);
}

.fe-ct-search input:focus {
    outline: none;
    background: var(--surface);
    border-color: var(--acc-orange);
    box-shadow: 0 0 0 4px rgba(217, 103, 34, .13);
}

/* Featured cards */
.fe-ct-featured {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}

@media (max-width: 1023px) {
    .fe-ct-featured {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .fe-ct-featured {
        grid-template-columns: 1fr;
    }
}

.fe-ct-fcard {
    display: flex;
    flex-direction: column;
    background: var(--surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--r-card);
    padding: 20px;
    text-decoration: none;
    box-shadow: none;
    transition: transform .2s ease, box-shadow .25s ease, border-color .2s ease;
}

.fe-ct-fcard:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-lg);
    border-color: var(--border);
}

.fe-ct-fcard:focus-visible {
    outline: 2px solid var(--acc-strong);
    outline-offset: 2px;
}

.fe-ct-fcard__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 14px;
}

.fe-ct-fcard__identity {
    display: flex;
    align-items: center;
    gap: 10px;
}

.fe-ct-fcard__icon {
    width: 38px;
    height: 38px;
    border-radius: 11px;
    display: grid;
    place-items: center;
    background: var(--acc-tint);
    color: var(--acc-ink);
    flex-shrink: 0;
}

html[data-fe-theme="dark"] .fe-ct-fcard__icon {
    color: var(--acc-orange);
}

.fe-ct-fcard__icon i[data-lucide],
.fe-ct-fcard__icon svg,
.fe-ct-fcard__icon .lucide {
    width: 18px;
    height: 18px;
}

.fe-ct-kind {
    font-family: var(--font-mono);
    font-size: .66rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--muted);
    background: transparent;
    padding: 2px 6px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    line-height: 1.2;
    white-space: nowrap;
}

.fe-ct-time {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-mono);
    font-size: .72rem;
    font-weight: 600;
    color: var(--muted);
}

.fe-ct-time svg,
.fe-ct-time .lucide,
.fe-ct-time i[data-lucide] {
    width: 13px;
    height: 13px;
}

.fe-ct-fcard h3 {
    margin: 0 0 6px;
    font-size: 1.02rem;
    font-weight: 700;
    letter-spacing: -.01em;
    color: var(--ink);
    line-height: 1.35;
    transition: color .15s ease;
}

.fe-ct-fcard h3 small {
    font-weight: 600;
    color: var(--muted);
    font-size: .86em;
}

.fe-ct-fcard:hover h3 {
    color: var(--acc-strong);
}

html[data-fe-theme="dark"] .fe-ct-fcard:hover h3 {
    color: var(--acc-orange);
}

.fe-ct-fcard__sub {
    margin: 0 0 16px;
    font-size: .86rem;
    line-height: 1.55;
    color: var(--muted);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.fe-ct-fcard__foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px solid var(--border-soft);
}

.fe-ct-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: .72rem;
    font-weight: 800;
    line-height: 1.25;
    border-radius: var(--r-pill);
    padding: 4px 11px;
    white-space: nowrap;
    max-width: 100%;
}

.fe-ct-pill svg,
.fe-ct-pill .lucide,
.fe-ct-pill i[data-lucide] {
    width: 13px;
    height: 13px;
}

.fe-ct-pill--ok    { color: var(--acc-ok); background: var(--acc-ok-bg); }
.fe-ct-pill--warn  { color: var(--acc-warn); background: var(--acc-warn-bg); }
.fe-ct-pill--muted { color: var(--muted); background: var(--sunken); }

.fe-ct-fcard__go {
    color: var(--muted);
    transition: transform .2s ease, color .2s ease;
    width: 18px;
    height: 18px;
}

.fe-ct-fcard:hover .fe-ct-fcard__go {
    transform: translateX(3px);
    color: var(--acc-strong);
}

html[data-fe-theme="dark"] .fe-ct-fcard:hover .fe-ct-fcard__go {
    color: var(--acc-orange);
}

/* Lista wszystkich narzędzi */
.fe-ct-allhead {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}

.fe-ct-allhead h2 {
    margin: 0;
    font-size: clamp(1.3rem, 2.4vw, 1.7rem);
    font-weight: 800;
    letter-spacing: -.015em;
    color: var(--ink);
}

.fe-ct-count {
    font-family: var(--font-mono);
    font-size: .76rem;
    font-weight: 600;
    color: var(--muted);
}

.fe-ct-list {
    display: grid;
    gap: 8px;
}

.fe-ct-row {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--border-soft);
    border-radius: 14px;
    background: var(--surface);
    padding: 12px 16px;
    text-align: left;
    text-decoration: none;
    transition: background .15s ease, border-color .15s ease, transform .15s ease;
}

.fe-ct-row:hover {
    background: var(--hover);
    border-color: var(--border);
    transform: translateY(-1px);
}

.fe-ct-row.is-hidden {
    display: none !important;
}

.fe-ct-list.is-expanded .fe-ct-row.is-hidden {
    display: flex !important;
}

.fe-ct-row__icon {
    width: 38px;
    height: 38px;
    border-radius: 11px;
    display: grid;
    place-items: center;
    background: var(--sunken);
    color: var(--muted);
    flex-shrink: 0;
}

.fe-ct-row__icon svg,
.fe-ct-row__icon .lucide,
.fe-ct-row__icon i[data-lucide] {
    width: 17px;
    height: 17px;
}

.fe-ct-row__body {
    flex: 1;
    min-width: 0;
    display: grid;
    gap: 2px;
}

.fe-ct-row__name {
    font-size: .93rem;
    font-weight: 700;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fe-ct-row:hover .fe-ct-row__name {
    color: var(--acc-strong);
}

html[data-fe-theme="dark"] .fe-ct-row:hover .fe-ct-row__name {
    color: var(--acc-orange);
}

.fe-ct-row__name .abbr {
    font-family: var(--font-mono);
    font-size: .74rem;
    font-weight: 600;
    color: var(--acc-ink);
    margin-left: 7px;
}

html[data-fe-theme="dark"] .fe-ct-row__name .abbr {
    color: var(--acc-orange);
}

.fe-ct-row__sub {
    font-size: .8rem;
    color: var(--muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin: 0;
}

.fe-ct-row__chev,
.fe-ct-row > i[data-lucide="chevron-right"],
.fe-ct-row > svg,
.fe-ct-row > .lucide {
    color: var(--muted);
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    margin-left: auto;
}

.fe-ct-dotwarn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    margin-left: 4px;
    background: var(--acc-warn-bg);
    color: var(--acc-warn);
    font-size: 11px;
    font-weight: 800;
    font-style: normal;
    vertical-align: middle;
}

.fe-ct-empty {
    display: none;
    padding: 26px;
    text-align: center;
    font-size: .9rem;
    color: var(--muted);
    border: 1px dashed var(--border);
    border-radius: var(--r-card);
}

.fe-ct-empty:not([hidden]) {
    display: block;
}

.fe-ct-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 16px auto 0;
    padding: 10px 22px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--r-pill);
    font-size: .88rem;
    font-weight: 700;
    color: var(--ink);
    cursor: pointer;
    box-shadow: var(--shadow-md);
    transition: background .15s ease, border-color .15s ease, transform .15s ease;
}

.fe-ct-more:hover {
    background: var(--hover);
    border-color: var(--acc-orange);
    transform: translateY(-1px);
}

.fe-ct-more[hidden] {
    display: none !important;
}

/* Guidance */
.fe-ct-guide {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 20px;
    align-items: center;
    background: var(--acc-card-bg);
    border-radius: var(--r-card);
    padding: clamp(18px, 2.6vw, 26px) clamp(20px, 3vw, 30px);
    box-shadow: 0 18px 40px rgba(20, 43, 74, .24);
    margin-top: 26px;
}

@media (max-width: 768px) {
    .fe-ct-guide {
        grid-template-columns: 1fr;
    }
    .fe-ct-guide__chips {
        justify-content: flex-start;
        max-width: none;
    }
}

.fe-ct-guide__text {
    display: grid;
    gap: 6px;
}

.fe-ct-guide__text h2 {
    color: #fff;
    font-size: 1.15rem;
    font-weight: 800;
    margin: 0;
}

.fe-ct-guide__text p {
    color: #c3cedf;
    font-size: .9rem;
    line-height: 1.55;
    margin: 0;
}

.fe-ct-guide__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    max-width: 360px;
    justify-content: flex-end;
}

.fe-ct-guide__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, .28);
    background: rgba(255, 255, 255, .08);
    color: #fff;
    border-radius: var(--r-pill);
    font-size: .84rem;
    font-weight: 700;
    line-height: 1.25;
    white-space: nowrap;
    padding: 8px 16px;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease;
}

.fe-ct-guide__btn:hover {
    background: rgba(255, 255, 255, .18);
    border-color: var(--acc-orange);
}

/* Note details */
.fe-ct-note {
    margin-top: 22px;
    background: var(--surface);
    border: 1px solid var(--border-soft);
    border-radius: 14px;
    padding: 14px 18px;
}

.fe-ct-note summary {
    font-size: .88rem;
    font-weight: 700;
    color: var(--ink);
    cursor: pointer;
}

.fe-ct-note ul {
    margin: 10px 0 4px;
    padding-left: 18px;
    font-size: .86rem;
    color: var(--muted);
    display: grid;
    gap: 6px;
}

/* Desktop: dwie kolumny (sticky sidebar + main content) */
@media (min-width: 1024px) {
    .fe-ct-filters {
        display: none;
    }

    .fe-ct-layout {
        grid-template-columns: 284px minmax(0, 1fr);
        gap: clamp(20px, 3vw, 34px);
    }

    .fe-ct-cats {
        display: block;
        position: sticky;
        top: 84px;
        max-height: calc(100vh - 108px);
        overflow-y: auto;
        background: var(--surface);
        border: 1px solid var(--border-soft);
        border-radius: var(--r-card);
        padding: 18px 12px 14px;
        box-shadow: var(--shadow-md);
    }

    .fe-ct-cats::-webkit-scrollbar {
        width: 4px;
    }

    .fe-ct-cats::-webkit-scrollbar-thumb {
        background: var(--border-soft);
        border-radius: 4px;
    }

    .fe-ct-cats__title {
        font-size: .78rem;
        font-weight: 800;
        letter-spacing: .07em;
        text-transform: uppercase;
        color: var(--ink);
        padding: 0 8px 12px;
        margin: 0;
    }

    .fe-ct-cats__nav {
        display: grid;
        gap: 3px;
    }

    .fe-ct-cat {
        display: flex;
        align-items: center;
        gap: 10px;
        width: 100%;
        border: 0;
        background: transparent;
        border-radius: 11px;
        padding: 10px 12px;
        font-size: .9rem;
        font-weight: 600;
        color: var(--text);
        text-align: left;
        cursor: pointer;
        transition: background .15s ease, color .15s ease;
    }

    .fe-ct-cat svg,
    .fe-ct-cat .lucide,
    .fe-ct-cat i[data-lucide] {
        width: 16px;
        height: 16px;
        flex: 0 0 auto;
        color: var(--muted);
    }

    .fe-ct-cat span {
        flex: 1;
    }

    .fe-ct-cat em {
        margin-left: auto;
        font-style: normal;
        font-family: var(--font-mono);
        font-size: .72rem;
        font-weight: 600;
        line-height: 1.2;
        color: var(--muted);
        background: var(--sunken);
        border-radius: 7px;
        padding: 2px 8px;
        flex-shrink: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        white-space: nowrap;
        transition: background .15s ease, color .15s ease;
    }

    .fe-ct-cat:hover {
        background: var(--hover);
        color: var(--ink);
    }

    .fe-ct-cat.is-active,
    .fe-ct-cat.has-active-child {
        background: var(--acc-tint);
        color: var(--acc-ink);
        font-weight: 800;
    }

    html[data-fe-theme="dark"] .fe-ct-cat.is-active,
    html[data-fe-theme="dark"] .fe-ct-cat.has-active-child {
        color: var(--acc-orange);
    }

    .fe-ct-cat.is-active em,
    .fe-ct-cat.has-active-child em {
        background: var(--acc-strong);
        color: #fff;
    }

    html[data-fe-theme="dark"] .fe-ct-cat.is-active em,
    html[data-fe-theme="dark"] .fe-ct-cat.has-active-child em {
        background: var(--acc-orange);
        color: #111310;
    }

    /* Zakładki (grupy) + podkategorie w panelu kategorii */
    .fe-ct-cats__group {
        display: grid;
        gap: 2px;
        margin-top: 8px;
    }

    .fe-ct-cats__group:first-of-type {
        margin-top: 4px;
    }

    .fe-ct-cat--tab {
        font-weight: 800;
        color: var(--ink);
        border-radius: 11px;
    }

    .fe-ct-cat--tab em {
        font-weight: 700;
    }

    .fe-ct-cats__sub {
        display: grid;
        gap: 2px;
        padding: 2px 0 6px 14px;
    }

    .fe-ct-cat--sub {
        padding: 7px 12px;
        font-size: .84rem;
        border-left: 2px solid var(--border-soft);
        border-radius: 0 9px 9px 0;
    }

    .fe-ct-cat--sub em {
        font-size: .68rem;
    }

    .fe-ct-cat--sub.is-active {
        border-left-color: var(--acc-orange);
        background: var(--acc-tint);
        color: var(--acc-ink);
        font-weight: 800;
    }

    html[data-fe-theme="dark"] .fe-ct-cat--sub.is-active {
        color: var(--acc-orange);
    }
}

/* ---------------------------------------------------------------- */
/* Kontrast dark mode — scope tylko stron /narzedzia/                */
/* Podnosi czytelność tekstu wtórnego i badge'ów na ciemnym tle.      */
/* ---------------------------------------------------------------- */

.fe-ct-longdesc { margin-top: 24px; }
.fe-ct-longdesc h2.fe-ct-md-h1 { font-size: 1.4em; margin: 1.5em 0 0.5em; color: var(--fe-ink, #0f172a); }
.fe-ct-longdesc h3.fe-ct-md-h2 { font-size: 1.15em; margin: 1.2em 0 0.4em; color: var(--fe-ink, #0f172a); }
.fe-ct-longdesc p { margin: 0.8em 0; line-height: 1.65; }
.fe-ct-longdesc ul, .fe-ct-longdesc ol { margin: 0.8em 0; padding-left: 1.5em; }
.fe-ct-longdesc li { margin-bottom: 0.4em; line-height: 1.6; }
.fe-ct-longdesc blockquote { border-left: 3px solid var(--fe-line, #cbd5e1); padding: 8px 12px; margin: 1em 0; background: var(--fe-bg-soft, #f5f4f1); border-radius: 0 8px 8px 0; color: var(--fe-muted, #64748b); }
.fe-ct-longdesc hr { border: none; border-top: 1px solid var(--fe-line-soft, #f1f5f9); margin: 1.5em 0; }
.fe-ct-longdesc code { background: var(--fe-bg-soft, #f5f4f1); padding: 2px 6px; border-radius: 4px; font-size: 0.9em; font-family: inherit; }
.fe-ct-longdesc table { width: 100%; border-collapse: collapse; margin: 1em 0; font-size: 14px; }
.fe-ct-longdesc th, .fe-ct-longdesc td { border: 1px solid var(--fe-line, #e2e8f0); padding: 8px 12px; text-align: left; vertical-align: top; }
.fe-ct-longdesc th { background: var(--fe-bg-soft, #f5f4f1); font-weight: 600; }

html[data-fe-theme="dark"] .fe-clinical-tools-page {
    --fe-muted: #b3aba2;
    --fe-faint: #9a928a;
    --fe-line: #45403a;
    --fe-line-soft: #38342f;
    --fe-bg-soft: #1d1f1c;
    --fe-surface: #22231f;
    --fe-surface-input: #262824;
}

html[data-fe-theme="dark"] .fe-ct-kind {
    color: #f0b88e;
    background: rgba(227, 154, 103, 0.16);
}

html[data-fe-theme="dark"] .fe-ct-pill--muted {
    color: #c9c1b8;
    background: #33352f;
}

html[data-fe-theme="dark"] .fe-ct-fcard,
html[data-fe-theme="dark"] .fe-ct-cats {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
}

html[data-fe-theme="dark"] .fe-ct-cat--tab {
    color: #e8e2da;
}

html[data-fe-theme="dark"] .fe-ct-cats__sub {
    border-left-color: color-mix(in srgb, #e39a67 30%, transparent);
}

html[data-fe-theme="dark"] .fe-ct-row {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

html[data-fe-theme="dark"] .fe-ct-guide {
    background: color-mix(in srgb, #ad91ff 9%, #1d1f1c);
    border-color: color-mix(in srgb, #ad91ff 26%, transparent);
}

/* Dock dolny na stronach /narzedzia/ — odstęp treści nad pływającym paskiem. */
.fe-clinical-tools-page .fe-ct-shell {
    padding-bottom: 130px;
}
.fe-clinical-tools-page .fe-ct-foot {
    margin-bottom: 0;
}


/* Mobile: kategorie są jedną przewijaną listą zakładek zamiast chmury chipów. */
@media (max-width: 700px) {
    .fe-ct-filters {
        flex-wrap: nowrap;
        gap: 8px;
        margin-inline: calc(-1 * var(--fe-page-padding-x-mobile, 16px));
        padding: 2px var(--fe-page-padding-x-mobile, 16px) 10px;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .fe-ct-filters::-webkit-scrollbar { display: none; }

    .fe-ct-filter-chip {
        flex: 0 0 auto;
        min-height: 42px;
        padding: 8px 14px;
        white-space: nowrap;
        scroll-snap-align: start;
    }
}


/* ═══════════════════════════════════════════════════════════════════════════
   STITCH CLINICAL TOOLS DESIGN UPGRADE (V3)
   Oprawa graficzna kalkulatorów, formularzy i wyjaśnień klinicznych
   ═══════════════════════════════════════════════════════════════════════════ */

/* 1. Pasek górny (Nawigacja powrotu + Tagi) */
.fe-ct-top-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 20px;
}

.fe-ct-back-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: .88rem;
    font-weight: 700;
    color: var(--acc-ink);
    text-decoration: none;
    padding: 7px 14px;
    border-radius: var(--r-pill);
    background: var(--acc-tint);
    border: 1px solid var(--border-soft);
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

html[data-fe-theme="dark"] .fe-ct-back-link {
    color: var(--acc-orange);
}

.fe-ct-back-link:hover {
    background: var(--hover);
    transform: translateX(-2px);
}

.fe-ct-top-tags {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.fe-chip,
.fe-chip--category,
.fe-chip--region,
.fe-ct-kind-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    background: var(--sunken) !important;
    color: var(--muted) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    border: 1px solid var(--border-soft) !important;
    border-radius: var(--r-pill) !important;
    padding: 4px 12px !important;
    white-space: nowrap !important;
    max-width: 100% !important;
}

/* 2. Nagłówek narzędzia Stitch */
.fe-ct-head--stitch {
    margin-bottom: 22px;
}

.fe-ct-meta-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 8px;
}

.fe-ct-tool-id {
    font-family: var(--font-mono);
    font-size: .76rem;
    font-weight: 600;
    color: var(--muted);
}

.fe-ct-head--stitch h1 {
    margin: 4px 0 6px;
    font-size: clamp(1.8rem, 3.5vw, 2.5rem);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -.02em;
    color: var(--ink);
}

.fe-ct-subtitle {
    margin: 0 0 8px;
    font-size: 15px;
    font-weight: 700;
    color: var(--acc-strong);
}

html[data-fe-theme="dark"] .fe-ct-subtitle {
    color: var(--acc-orange);
}

/* 3. Kafelki statystyk / metryk diagnostycznych */
.fe-ct-metrics-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-top: clamp(18px, 3vw, 26px);
    margin-bottom: 24px;
}

@media (max-width: 768px) {
    .fe-ct-metrics-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .fe-ct-metrics-grid {
        grid-template-columns: 1fr;
    }
}

.fe-ct-metric-card {
    background: var(--surface);
    border: 1px solid var(--border-soft);
    border-radius: 14px;
    padding: 14px 16px;
    box-shadow: var(--shadow-md);
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.fe-ct-metric-card__label {
    font-size: .74rem;
    font-weight: 600;
    color: var(--muted);
    letter-spacing: .02em;
    text-transform: uppercase;
}

.fe-ct-metric-card__val {
    font-family: var(--font-mono);
    font-weight: 600;
    font-size: 1.15rem;
    color: var(--acc-strong);
    letter-spacing: -.01em;
    line-height: 1.2;
}

html[data-fe-theme="dark"] .fe-ct-metric-card__val {
    color: var(--acc-orange);
}

.fe-ct-metric-card__val--teal {
    color: var(--acc-ok);
}

.fe-ct-metric-card__val--terracotta {
    color: var(--acc-warn);
}

.fe-ct-metric-card__val--study {
    color: var(--ink);
    font-size: 1rem;
}

.fe-ct-metric-card__sub {
    font-size: .72rem;
    color: var(--muted);
    margin-top: 2px;
}

/* 4. Krótkie wyjaśnienie (Alert intro) nad formularzem */
.fe-ct-alert-intro {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 20px;
    background: var(--surface);
    border: 1px solid var(--border-soft);
    border-radius: 14px;
    margin-bottom: 24px;
    box-shadow: var(--shadow-md);
}

.fe-ct-alert-intro .fe-ct-svg-icon {
    color: var(--acc-strong);
    flex-shrink: 0;
    margin-top: 2px;
}

html[data-fe-theme="dark"] .fe-ct-alert-intro .fe-ct-svg-icon {
    color: var(--acc-orange);
}

.fe-ct-alert-intro__text p {
    margin: 0;
    font-size: .95rem;
    line-height: 1.6;
    color: var(--ink);
}

.fe-ct-alert-intro__text p + p {
    margin-top: 8px;
}

/* 5. Formularz kalkulatora (Workbench / Stitch form) */
.fe-ct-workbench--rule,
.fe-ct-form--stitch {
    background: var(--surface);
    border-radius: var(--r-card);
    padding: clamp(20px, 3.5vw, 28px);
    box-shadow: var(--shadow-md);
    border: 1px solid var(--border-soft);
}

.fe-ct-form-card__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 22px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--border-soft);
}

.fe-ct-form-card__title {
    margin: 0 0 4px;
    font-size: clamp(1.15rem, 2vw, 1.35rem);
    font-weight: 700;
    color: var(--ink);
}

.fe-ct-form-card__sub {
    margin: 0;
    font-size: .84rem;
    color: var(--muted);
}

.fe-ct-btn--reset {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border-radius: var(--r-pill);
    background: var(--sunken);
    border: 1px solid var(--border-soft);
    font-size: .82rem;
    font-weight: 600;
    color: var(--muted);
    cursor: pointer;
    transition: all 0.15s ease;
}

.fe-ct-btn--reset:hover {
    background: var(--hover);
    color: var(--ink);
    border-color: var(--border);
}

.fe-ct-btn--reset:active {
    transform: scale(0.97);
}

/* Pytania / Kryteria kalkulatora */
.fe-ct-questions-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.fe-ct-qcard {
    background: var(--sunken);
    border: 1px solid var(--border-soft);
    border-radius: 12px;
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.fe-ct-qcard:hover {
    border-color: var(--border);
}

.fe-ct-qcard__main {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.fe-ct-qcard__num {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--acc-tint);
    color: var(--acc-ink);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 700;
    flex-shrink: 0;
    margin-top: 1px;
}

html[data-fe-theme="dark"] .fe-ct-qcard__num {
    color: var(--acc-orange);
}

.fe-ct-qcard__text {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.fe-ct-qcard__label {
    font-size: .92rem;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.4;
}

.fe-ct-qcard__hint {
    font-size: .8rem;
    color: var(--muted);
    line-height: 1.5;
}

.fe-ct-qcard__options {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    padding-left: 38px;
}

.fe-ct-qcard__options--multi {
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
}

@media (max-width: 600px) {
    .fe-ct-qcard__options {
        padding-left: 0;
    }
}

/* Przyciski wyboru (Toggle buttons) */
.fe-ct-criteria-btn {
    appearance: none;
    border: 1px solid var(--border-soft);
    padding: 10px 14px;
    border-radius: 10px;
    font-size: .86rem;
    font-weight: 600;
    text-align: center;
    cursor: pointer;
    transition: all 0.18s ease;
    background: var(--surface);
    color: var(--text);
    user-select: none;
    -webkit-user-select: none;
}

.fe-ct-criteria-btn:hover {
    background: var(--hover);
    border-color: var(--acc-orange);
}

.fe-ct-criteria-btn.is-selected.is-yes {
    background: var(--acc-ok) !important;
    color: #ffffff !important;
    border-color: var(--acc-ok) !important;
    box-shadow: 0 2px 8px rgba(4, 120, 87, 0.28);
}

.fe-ct-criteria-btn.is-selected.is-no {
    background: var(--acc-strong) !important;
    color: #ffffff !important;
    border-color: var(--acc-strong) !important;
    box-shadow: 0 2px 8px rgba(184, 82, 23, 0.28);
}

.fe-ct-criteria-btn.is-selected:not(.is-yes):not(.is-no) {
    background: var(--ink) !important;
    color: var(--surface) !important;
}

/* 6. Karta wyniku kalkulatora (Result card) */
.fe-ct-result-container {
    margin-top: 22px;
}

.fe-ct-result-card {
    background: var(--surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--r-card, 16px);
    padding: 22px 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    box-shadow: var(--shadow-md);
    transition: all 0.2s ease;
}

.fe-ct-result-card--pending {
    background: var(--sunken);
    border: 1px solid var(--border-soft);
    box-shadow: none;
}

.fe-ct-result-card--safe {
    background: var(--acc-ok-bg);
    border: 1px solid color-mix(in srgb, var(--acc-ok) 35%, transparent);
    box-shadow: 0 4px 14px rgba(4, 120, 87, 0.08);
}

.fe-ct-result-card--safe .fe-ct-result-card__title {
    color: var(--acc-ok);
}

.fe-ct-result-card--danger {
    background: var(--acc-warn-bg);
    border: 1px solid color-mix(in srgb, var(--acc-warn) 40%, transparent);
    box-shadow: 0 4px 14px rgba(184, 82, 23, 0.08);
}

.fe-ct-result-card--danger .fe-ct-result-card__title {
    color: var(--acc-warn);
}

.fe-ct-result-card--warn {
    background: var(--acc-warn-bg);
    border: 1px solid color-mix(in srgb, var(--acc-warn) 35%, transparent);
}

.fe-ct-result-card__header {
    display: flex;
    align-items: center;
    gap: 10px;
}

.fe-ct-result-card__head {
    display: flex;
    flex-direction: column;
    gap: 8px;
    border-bottom: 1px solid var(--border-soft);
    padding-bottom: 12px;
}

.fe-ct-result-card__meta {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

/* Badges klasyfikacji metodologicznej */
.fe-ct-result-type-badge {
    display: inline-flex;
    align-items: center;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    padding: 4px 10px;
    border-radius: var(--r-pill, 999px);
    background: #e2e8f0;
    color: #334155;
    border: 1px solid rgba(0, 0, 0, .06);
}

.fe-ct-result-type-badge--direct_measurement {
    background: #e0f2fe;
    color: #0369a1;
    border-color: #bae6fd;
}

.fe-ct-result-type-badge--formula {
    background: #ede9fe;
    color: #6d28d9;
    border-color: #ddd6fe;
}

.fe-ct-result-type-badge--questionnaire {
    background: #fef3c7;
    color: #b45309;
    border-color: #fde68a;
}

.fe-ct-result-type-badge--decision_rule {
    background: #fee2e2;
    color: #b91c1c;
    border-color: #fecaca;
}

.fe-ct-result-type-badge--composite {
    background: #e0f7fa;
    color: #00695c;
    border-color: #b2dfdb;
}

.fe-ct-result-type-badge--protocol {
    background: #e8f5e9;
    color: #2e7d32;
    border-color: #c8e6c9;
}

.fe-ct-result-dir-badge {
    display: inline-flex;
    align-items: center;
    font-size: 11px;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 6px;
    background: var(--sunken, #efeeeb);
    color: var(--muted, #64748b);
    border: 1px solid var(--border-soft);
}

.fe-ct-result-card__title {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--muted, #64748b);
    margin: 0;
}

.fe-ct-result-card__desc {
    margin: 0;
    font-size: .92rem;
    line-height: 1.6;
    color: var(--ink);
}

.fe-ct-result-card__score {
    font-size: .92rem;
    font-weight: 600;
    color: var(--ink);
}

.fe-ct-result-card__next {
    font-size: .84rem;
    line-height: 1.55;
    background: var(--surface);
    border: 1px solid var(--border-soft);
    padding: 10px 14px;
    border-radius: 10px;
    margin-top: 4px;
    color: var(--text);
}

/* Duży wynik liczbowy (Hero) */
.fe-ct-result-hero {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin: 4px 0;
}

.fe-ct-result-hero .fe-ct-big__value {
    font-size: clamp(2.4rem, 5vw, 3.4rem);
    font-weight: 800;
    color: var(--ink);
    letter-spacing: -.03em;
    line-height: 1.1;
}

.fe-ct-result-hero .fe-ct-big__unit {
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--muted);
}

/* Pasmo interpretacji klinicznej */
.fe-ct-result-interp {
    background: var(--hover, #f8eee8);
    border-left: 4px solid var(--acc-orange, #d96722);
    border-radius: 8px;
    padding: 12px 16px;
    margin-top: 4px;
}

.fe-ct-interp-badge {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--acc-strong, #b85217);
    margin-bottom: 2px;
}

.fe-ct-interp-text {
    font-size: 15px;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.5;
}

/* Ślad audytowy danych wejściowych */
.fe-ct-result-inputs {
    padding-top: 8px;
    border-top: 1px dashed var(--border-soft);
}

.fe-ct-result-inputs__label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--muted);
    margin-bottom: 6px;
}

.fe-ct-result-inputs__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.fe-ct-input-chip {
    font-size: 12px;
    font-weight: 500;
    padding: 3px 10px;
    border-radius: var(--r-pill, 999px);
    background: var(--sunken, #efeeeb);
    color: var(--text);
    border: 1px solid var(--border-soft);
}

/* Siatka metryk dodatkowych */
.fe-ct-extra-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
    margin-top: 6px;
}

.fe-ct-extra-card {
    background: var(--surface);
    border: 1px solid var(--border-soft);
    border-radius: 10px;
    padding: 10px 14px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.fe-ct-extra-card__label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--muted);
}

.fe-ct-extra-card__val {
    font-size: 16px;
    font-weight: 700;
    color: var(--ink);
}

/* Ostrzeżenia i ograniczenia metody */
.fe-ct-result-caution {
    background: var(--acc-warn-bg, rgba(245, 158, 11, .1));
    border: 1px solid color-mix(in srgb, var(--acc-warn) 35%, transparent);
    border-radius: 10px;
    padding: 12px 16px;
    margin-top: 6px;
}

.fe-ct-result-caution__head {
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--acc-warn);
    margin-bottom: 4px;
}

.fe-ct-result-caution__list {
    margin: 0;
    padding-left: 18px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--ink);
}

.fe-ct-result-caution__list li {
    margin-bottom: 4px;
}

.fe-ct-result-caution__list li:last-child {
    margin-bottom: 0;
}

/* Błąd walidacji / brak danych */
.fe-ct-result--error {
    background: rgba(239, 68, 68, .08);
    border: 1px solid rgba(239, 68, 68, .3);
    border-radius: var(--r-card, 16px);
    padding: 16px 20px;
    margin-top: 14px;
}

.fe-ct-error-badge {
    display: inline-block;
    background: #fee2e2;
    color: #b91c1c;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    padding: 3px 8px;
    border-radius: 6px;
}

.fe-ct-error-text {
    font-size: 14px;
    font-weight: 600;
    color: #991b1b;
    margin: 8px 0 0;
    line-height: 1.5;
}

.fe-ct-result-card__formula-wrap {
    padding-top: 4px;
}

.fe-ct-result-card__formula {
    background: var(--surface);
    border: 1px solid var(--border-soft);
    border-radius: 10px;
    padding: 10px 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: .82rem;
    color: var(--muted);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}

.fe-ct-result-card__formula strong {
    color: var(--ink);
}

/* 7. Bogate karty wyjaśnienia klinicznego (Pod formularzem) */
.fe-ct-guide-section {
    margin-top: 36px;
}

.fe-ct-guide-grid {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.fe-ct-cards-2col {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

@media (max-width: 768px) {
    .fe-ct-cards-2col {
        grid-template-columns: 1fr;
    }
}

.fe-ct-guide-card {
    background: var(--surface);
    border-radius: var(--r-card);
    padding: 22px 26px;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--border-soft);
}

.fe-ct-guide-card--purpose,
.fe-ct-guide-card--what-not {
    background: var(--section);
    border: 1px solid var(--border-soft);
    box-shadow: none;
}

.fe-ct-guide-card__head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}

.fe-ct-guide-card__head h3 {
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0;
    color: var(--ink);
}

.fe-ct-guide-card__head--success .fe-ct-svg-icon {
    color: var(--acc-ok);
}

.fe-ct-guide-card__head--error .fe-ct-svg-icon {
    color: var(--acc-warn);
}

.fe-ct-guide-card__body p {
    margin: 0 0 12px;
    font-size: .92rem;
    line-height: 1.6;
    color: var(--text);
}

.fe-ct-guide-card__body p:last-child {
    margin-bottom: 0;
}

/* Lista Czego nie robi (z czerwonymi krzyżykami) */
.fe-ct-what-not-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.fe-ct-what-not-list li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 14.5px;
    line-height: 1.5;
    color: var(--fe-text, #374151);
}

.fe-ct-icon-error {
    color: #ba1a1a;
    flex-shrink: 0;
}

.fe-ct-icon-success {
    color: #0d9488;
    flex-shrink: 0;
}

.fe-ct-icon-primary {
    color: #9d4300;
    flex-shrink: 0;
}

.fe-ct-icon-muted {
    color: #64748b;
    flex-shrink: 0;
}

/* Lista krok po kroku z numerowanymi badge'ami */
.fe-ct-steps-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 8px;
}

.fe-ct-step-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.fe-ct-step-badge {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #9d4300;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13.5px;
    font-weight: 700;
    flex-shrink: 0;
    margin-top: 1px;
}

.fe-ct-step-content {
    font-size: 15px;
    line-height: 1.6;
    color: var(--fe-text, #374151);
}

/* Siatka czynników utrudniających / tagów */
.fe-ct-obstacles-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin-top: 10px;
}

@media (max-width: 600px) {
    .fe-ct-obstacles-grid {
        grid-template-columns: 1fr;
    }
}

.fe-ct-obstacle-pill {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: #f4f3f1;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 500;
    color: var(--fe-text, #374151);
}

/* Karta ostrzegawcza (Alert czerwony) */
.fe-ct-guide-card--alert {
    background: rgba(255, 218, 214, 0.45);
    border: 1px solid rgba(186, 26, 26, 0.25);
    padding: 22px 26px;
}

.fe-ct-guide-card__alert-wrap {
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

.fe-ct-alert-icon {
    color: #ba1a1a;
    flex-shrink: 0;
    margin-top: 2px;
}

.fe-ct-guide-card__alert-content h4 {
    font-size: 1.2rem;
    font-weight: 700;
    margin: 0 0 6px;
    color: #93000a;
}

.fe-ct-guide-card__alert-content p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: #93000a;
}

/* Karta źródeł naukowych */
.fe-ct-sources-list {
    list-style: none;
    padding: 0;
    margin: 0 0 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.fe-ct-sources-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    line-height: 1.55;
    color: var(--fe-text, #374151);
}

.fe-ct-sources-list li strong {
    color: var(--fe-ink, #0f172a);
}

.fe-ct-sources-note {
    font-size: 13.5px;
    color: var(--fe-muted, #64748b);
    line-height: 1.5;
    margin: 10px 0 0;
}

.fe-ct-disclaimer-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    background: #f4f3f1;
    border-radius: 10px;
    font-size: 12.5px;
    color: var(--fe-muted, #64748b);
    font-weight: 500;
    margin-top: 14px;
}

/* Stopka */
.fe-ct-foot {
    margin-top: 28px;
    padding-top: 16px;
    border-top: 1px solid var(--fe-line, #e2e8f0);
    font-size: 12.5px;
    color: var(--fe-muted, #64748b);
    line-height: 1.5;
}

/* Final dark-theme guard for the late Stitch V3 component layer. */
html[data-fe-theme="dark"] body.fe-clinical-tools-page {
    --fe-ink: #f2efe9;
    --fe-text: #ded9d2;
    --fe-muted: #b9b0a8;
    --fe-faint: #aaa099;
    --fe-line: #4b4640;
    --fe-line-soft: #393631;
    --fe-bg-soft: #181a17;
    --fe-surface: #22231f;
    --fe-surface-soft: #1d1f1c;
    --fe-surface-input: #292b27;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page :is(
    .fe-ct-metrics-grid,
    .fe-ct-alert-intro,
    .fe-ct-qcard,
    .fe-ct-result-card--pending,
    .fe-ct-obstacle-pill,
    .fe-ct-disclaimer-bar
) {
    background: var(--fe-bg-soft);
    border-color: var(--fe-line-soft);
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page :is(
    .fe-ct-metric-card,
    .fe-ct-workbench--rule,
    .fe-ct-form--stitch,
    .fe-ct-result-card__formula,
    .fe-ct-guide-card
) {
    background: var(--fe-surface);
    border-color: var(--fe-line);
    box-shadow: 0 4px 20px rgba(0, 0, 0, .24);
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page :is(
    .fe-ct-guide-card--purpose,
    .fe-ct-guide-card--what-not
) {
    background: var(--fe-surface-soft);
    border: 1px solid var(--fe-line-soft);
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-form-card__head {
    border-bottom-color: var(--fe-line-soft);
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page :is(
    .fe-chip--category,
    .fe-chip--region,
    .fe-ct-btn--reset,
    .fe-ct-criteria-btn:not(.is-selected)
) {
    background: var(--fe-surface-input) !important;
    border: 1px solid var(--fe-line) !important;
    color: var(--fe-text) !important;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-criteria-btn:not(.is-selected):hover {
    background: #392319 !important;
    border-color: #a9673f !important;
    color: #f0b88e !important;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-result-card--safe {
    background: rgba(13, 148, 136, .14);
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-result-card--danger,
html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-guide-card--alert {
    background: rgba(186, 26, 26, .14);
    border-color: rgba(255, 180, 171, .38);
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-result-card--warn {
    background: rgba(217, 119, 6, .14);
    border-color: rgba(255, 183, 77, .38);
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-result-card__next {
    background: rgba(255, 255, 255, .06);
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page :is(
    .fe-ct-alert-intro .fe-ct-svg-icon,
    .fe-ct-icon-primary
) {
    color: #f0b88e;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page :is(
    .fe-ct-guide-card__alert-content h4,
    .fe-ct-guide-card__alert-content p,
    .fe-ct-alert-icon,
    .fe-ct-icon-error
) {
    color: #ffb4ab;
}

/* Adaptacja ciemnego motywu dla nowoczesnej karty wyniku */
html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-result-type-badge--direct_measurement {
    background: rgba(3, 105, 161, .22);
    color: #7dd3fc;
    border-color: rgba(125, 211, 252, .35);
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-result-type-badge--formula {
    background: rgba(109, 40, 217, .22);
    color: #c4b5fd;
    border-color: rgba(196, 181, 253, .35);
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-result-type-badge--questionnaire {
    background: rgba(180, 83, 9, .22);
    color: #fcd34d;
    border-color: rgba(252, 211, 77, .35);
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-result-type-badge--decision_rule {
    background: rgba(185, 28, 28, .22);
    color: #fca5a5;
    border-color: rgba(252, 165, 165, .35);
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-result-type-badge--composite {
    background: rgba(0, 105, 92, .22);
    color: #80cbc4;
    border-color: rgba(128, 203, 196, .35);
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-result-type-badge--protocol {
    background: rgba(46, 125, 50, .22);
    color: #a5d6a7;
    border-color: rgba(165, 214, 167, .35);
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-result-dir-badge {
    background: var(--fe-surface-input);
    border-color: var(--fe-line);
    color: var(--fe-muted);
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-result-interp {
    background: rgba(232, 160, 106, .12);
    border-left-color: #e8a06a;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-interp-badge {
    color: #f0b88e;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-input-chip {
    background: var(--fe-surface-input);
    border-color: var(--fe-line);
    color: var(--fe-text);
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-extra-card {
    background: var(--fe-surface-soft);
    border-color: var(--fe-line-soft);
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-result-caution {
    background: rgba(217, 119, 6, .14);
    border-color: rgba(255, 183, 77, .38);
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-result-caution__head {
    color: #f0b463;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-result--error {
    background: rgba(186, 26, 26, .14);
    border-color: rgba(255, 180, 171, .38);
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-error-badge {
    background: rgba(186, 26, 26, .35);
    color: #ffb4ab;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-error-text {
    color: #ffb4ab;
}

/* ==========================================================================
   Wysoki kontrast tekstu i kart w trybie ciemnym (Dark Mode) dla /narzedzia/
   ========================================================================== */

/* Karty przewodnika klinicznego (Guide Cards & Markdown) */
html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-guide-card {
    background: #1a1c18 !important;
    border-color: rgba(190, 145, 120, 0.25) !important;
    color: #ded9d2 !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, .3) !important;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page :is(.fe-ct-guide-card--purpose, .fe-ct-guide-card--what-not) {
    background: #171915 !important;
    border-color: rgba(190, 145, 120, 0.25) !important;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-guide-card :is(h1, h2, h3, h4, h5, .fe-ct-md-h1, .fe-ct-md-h2, .fe-ct-guide-card__head h3) {
    color: #f2efe9 !important;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-guide-card :is(p, li, span:not(.material-symbols-outlined):not(.fe-ct-svg-icon), td, th, .fe-ct-step-content, .fe-ct-guide-card__body p) {
    color: #ded9d2 !important;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-guide-card strong {
    color: #ffffff !important;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-guide-card code {
    background: #262824 !important;
    color: #f0b88e !important;
    border: 1px solid rgba(190, 145, 120, 0.25) !important;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-guide-card blockquote {
    border-left-color: #e8a06a !important;
    background: #141613 !important;
    color: #ded9d2 !important;
}

/* Długi opis Markdown (.fe-ct-longdesc) */
html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-longdesc {
    color: #ded9d2 !important;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-longdesc :is(h1, h2, h3, h4, .fe-ct-md-h1, .fe-ct-md-h2) {
    color: #f2efe9 !important;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-longdesc :is(p, li, span, td, th) {
    color: #ded9d2 !important;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-longdesc strong {
    color: #ffffff !important;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-longdesc code {
    background: #262824 !important;
    color: #f0b88e !important;
    border: 1px solid rgba(190, 145, 120, 0.25) !important;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-longdesc blockquote {
    border-left-color: #e8a06a !important;
    background: #141613 !important;
    color: #ded9d2 !important;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-longdesc table th {
    background: #22231f !important;
    color: #f2efe9 !important;
    border-color: rgba(190, 145, 120, 0.25) !important;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-longdesc table td {
    border-color: rgba(190, 145, 120, 0.2) !important;
}

/* Karta oczekująca na wypełnienie (.fe-ct-result-card--pending) */
html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-result-card--pending {
    background: #171915 !important;
    border-color: rgba(190, 145, 120, 0.25) !important;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-result-card--pending .fe-ct-result-card__title {
    color: #f2efe9 !important;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-result-card--pending .fe-ct-result-card__desc {
    color: #ded9d2 !important;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-result-card--pending .fe-ct-result-card__formula {
    background: #1a1c18 !important;
    border-color: rgba(190, 145, 120, 0.25) !important;
    color: #c8bdb4 !important;
}

html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-result-card--pending .fe-ct-result-card__formula strong {
    color: #f2efe9 !important;
}
/* Selection describes an answer, not a clinical verdict. */
body.fe-clinical-tools-page .fe-ct-criteria-btn { min-height: 44px; }
body.fe-clinical-tools-page .fe-ct-criteria-btn::before { content: ''; display: inline-block; width: 1em; margin-right: .4em; }
body.fe-clinical-tools-page .fe-ct-criteria-btn.is-selected {
    background: #173f68 !important;
    color: #fff !important;
    border-color: #173f68 !important;
    box-shadow: inset 0 0 0 2px #fff !important;
    font-weight: 800;
}
body.fe-clinical-tools-page .fe-ct-criteria-btn.is-selected::before { content: '✓'; }
html[data-fe-theme="dark"] body.fe-clinical-tools-page .fe-ct-criteria-btn.is-selected {
    background: #b9d9ff !important;
    color: #102436 !important;
    border-color: #b9d9ff !important;
    box-shadow: inset 0 0 0 2px #102436 !important;
}
body.fe-clinical-tools-page .fe-ct-criteria-btn:focus-visible { outline: 3px solid #b45309; outline-offset: 3px; }
body.fe-clinical-tools-page .fe-ct-result-card--neutral { background: var(--surface); border-color: var(--border-soft); }
.fe-ct-result-card--neutral .fe-ct-result-card__title { color: var(--text); }
.fe-ct-result-card__info { font-size: 24px; color: var(--text); }
.fe-ct-score-profile { display: grid; gap: .8rem; margin: 1rem 0; }
.fe-ct-score-profile__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(60px, 2fr) auto; align-items: center; gap: .6rem; }
.fe-ct-score-profile__row meter { width: 100%; min-width: 0; height: 1.4rem; }
