/* ==========================================================================
   Design tokens

   Pierwsza warstwa wspólnego systemu wizualnego. Stare krótkie zmienne
   pozostają aktywne dla kompatybilności, a nowe nazwy semantyczne są
   punktem odniesienia dla kolejnych refaktorów komponentów.
   ========================================================================== */
:root{
    /* Legacy palette — nie usuwać do czasu migracji wszystkich modułów. */
    --bg:#f6f7f9;
    --card:#fff;
    --text:#17191d;
    --muted:#6c727f;
    --line:#e4e7ec;
    --accent:#b32025;
    --accent2:#8f171c;
    --soft:#f1f2f5;
    --success:#176b3a;
    --danger:#a61b1b;
    --shadow:0 8px 24px rgba(15,23,42,.06);

    /* Typography */
    --font-sans:Geist,"Segoe UI Variable Text","Segoe UI",ui-sans-serif,system-ui,sans-serif;
    --font-display:Geist,"Segoe UI Variable Display","Segoe UI",ui-sans-serif,system-ui,sans-serif;
    --font-size-eyebrow-default:12px;
    --font-size-eyebrow-primary:11px;
    --font-size-eyebrow-section:11px;
    --font-size-heading-page:46px;
    --font-size-heading-page-mobile:38px;
    --font-size-heading-feature-section:clamp(29px,3vw,38px);
    --font-size-heading-directory-section:28px;
    --font-size-heading-directory-section-mobile:24px;
    --font-size-heading-panel:24px;
    --font-size-heading-panel-mobile:22px;
    --font-weight-heading-page:750;
    --font-weight-heading-section:730;
    --font-weight-heading-panel:720;
    --letter-spacing-heading-page:-.035em;
    --letter-spacing-heading-section:-.035em;
    --letter-spacing-heading-panel:-.022em;

    /* Semantic colors */
    --color-text-primary:var(--text);
    --color-text-secondary:#555d68;
    --color-text-muted:var(--muted);
    --color-text-kicker:#737a84;
    --color-surface-page:var(--bg);
    --color-surface-card:var(--card);
    --color-surface-soft:var(--soft);
    --color-surface-hover:#fafbfc;
    --color-surface-subtle:#fbfbfb;
    --color-neutral-soft:#eef0f3;
    --color-neutral-soft-strong:#e9edf0;
    --color-accent-soft:#f9e9ea;
    --color-accent-soft-hover:#f3d7d9;
    --color-accent-border:#f1d4d6;
    --color-success-soft:#e8f5ed;
    --color-success-border:#cce4d5;
    --color-warning-soft:#fff1d8;
    --color-danger-soft:#fae9e9;
    --color-border-default:var(--line);
    --color-border-subtle:#dfe3e8;
    --color-border-hover:#d4d8df;
    --color-accent:var(--accent);
    --color-accent-hover:var(--accent2);

    /* Shape */
    --radius-field:8px;
    --radius-control:9px;
    --radius-control-large:10px;
    --radius-box:12px;
    --radius-card:14px;
    --radius-panel:16px;
    --radius-feature:18px;
    --radius-pill:999px;

    /* Elevation and focus */
    --shadow-card:var(--shadow); /* legacy compatibility */
    --shadow-surface-card:0 8px 22px rgba(15,23,42,.04);
    --shadow-surface-card-hover:0 12px 28px rgba(15,23,42,.08);
    --shadow-surface-panel:0 6px 20px rgba(15,23,42,.045);
    --shadow-surface-feature:0 14px 36px rgba(15,23,42,.08);
    --shadow-surface-popover:0 14px 34px rgba(15,23,42,.14);
    --shadow-surface-subtle:0 5px 18px rgba(15,23,42,.025);
    --shadow-control-raised:0 1px 3px rgba(15,23,42,.08);
    --focus-ring-neutral:0 0 0 3px rgba(15,23,42,.05);
    --focus-ring-accent:0 0 0 3px rgba(179,32,37,.10);

    /* Form controls */
    --control-height-compact:38px;
    --control-height-default:43px;
    --control-height-large:48px;
    --control-border-color:#cfd4dc;
    --control-border-hover:#b9c0ca;
    --control-border-focus:rgba(179,32,37,.55);
    --control-background:var(--color-surface-card);
    --control-focus-ring:var(--focus-ring-accent);
    --control-transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;

    /* Spacing scale */
    --space-1:4px;
    --space-2:8px;
    --space-3:12px;
    --space-4:16px;
    --space-5:20px;
    --space-6:24px;
    --space-7:32px;
    --space-8:40px;
    --space-9:48px;
    --space-10:56px;
    --space-11:64px;
    --space-12:72px;
    --space-13:80px;

    /* Section rhythm — page families may intentionally stay distinct. */
    --section-space-base:54px;
    --section-space-detail:var(--space-12);
    --section-space-feature:76px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);line-height:1.55}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}img{max-width:100%}.container{width:min(1180px,calc(100% - 32px));margin:0 auto}.narrow{width:min(820px,calc(100% - 32px));margin:0 auto}.site-header,.admin-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.nav-wrap{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-weight:800;letter-spacing:-.02em}.nav{display:flex;align-items:center;gap:22px;font-size:14px}.button{border:0;border-radius:var(--radius-control);padding:11px 16px;background:var(--accent);color:#fff!important;font:inherit;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.button:hover{background:var(--color-accent-hover)}.button:focus-visible{outline:3px solid rgba(179,32,37,.14);outline-offset:2px}.button:disabled{cursor:not-allowed;opacity:.58}.button-small{padding:8px 11px;font-size:13px}.button-large{min-height:var(--control-height-large);padding:11px 18px}.button-outline{background:#fff;color:var(--text)!important;border:1px solid var(--line)}.button-outline:hover{background:var(--soft);color:var(--text)}.full{width:100%}
/* Shared public form controls. Apply these classes to interactive public fields
   instead of recreating border/radius/focus rules in page modules. */
.ui-control{width:100%;min-width:0;border:1px solid var(--control-border-color);background:var(--control-background);color:var(--color-text-primary);font:inherit;transition:var(--control-transition)}
.ui-control:hover{border-color:var(--control-border-hover)}
.ui-control::placeholder{color:#7f8792;opacity:1}
.ui-control:disabled{background:var(--color-surface-soft);color:var(--color-text-muted);cursor:not-allowed}
.ui-control:focus{outline:none;border-color:var(--control-border-focus);box-shadow:var(--control-focus-ring)}
.ui-control[aria-invalid="true"]{border-color:var(--danger)}
.ui-control--compact{height:var(--control-height-compact);padding:8px 10px;border-radius:var(--radius-field)}
.ui-control--default{height:var(--control-height-default);padding:9px 11px;border-radius:var(--radius-control)}
.ui-control--large{height:var(--control-height-large);padding:11px 14px;border-radius:var(--radius-control-large)}
.ui-control--select{padding-right:32px;cursor:pointer}
.ui-control--textarea{min-height:138px;padding:13px 14px;border-radius:var(--radius-control-large);resize:vertical}
.hero{padding:84px 0 66px;background:linear-gradient(180deg,#fff 0%,var(--bg) 100%);border-bottom:1px solid var(--line)}.hero-inner{max-width:900px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:var(--font-size-eyebrow-default);font-weight:800;color:var(--color-accent)}
.eyebrow-primary{color:var(--color-accent);font-size:var(--font-size-eyebrow-primary);font-weight:760;letter-spacing:.105em;text-transform:uppercase}
.eyebrow-section{color:var(--color-text-kicker);font-size:var(--font-size-eyebrow-section);font-weight:680;letter-spacing:.055em;text-transform:none}h1,h2,h3{color:var(--color-text-primary);font-family:var(--font-display);line-height:1.15;letter-spacing:-.025em;margin-top:0;text-wrap:balance}h1{font-size:clamp(36px,5vw,64px);margin:10px 0 20px}h2{font-size:28px}h3{font-size:19px}.hero p,.lead{font-size:19px;color:#444b56;max-width:760px}.hero-search{display:flex;gap:10px;margin-top:28px;max-width:680px}.hero-search input{flex:1}.stats{display:flex;gap:36px;margin-top:36px}.stats div{display:flex;flex-direction:column}.stats strong{font-size:25px}.stats span{font-size:13px;color:var(--muted)}.section{padding:var(--section-space-base) 0}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:30px}.section-head h2{margin:5px 0 0;font-size:var(--font-size-heading-feature-section);font-weight:var(--font-weight-heading-section);line-height:1.12;letter-spacing:var(--letter-spacing-heading-section)}.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.case-card,.list-card,.form-card,.admin-panel,.report-box,.statement,.person-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.case-card,.list-card{padding:24px}.case-card h3,.list-card h2,.list-card h3{margin:8px 0 10px}.case-card p,.list-card p{color:#555d68;margin:0 0 16px}.case-meta,.case-footer,.source-meta,.small-muted,.muted-text,.help{font-size:13px;color:var(--muted)}.case-meta{display:flex;justify-content:space-between;gap:12px}.page-head{padding:58px 0 34px;background:#fff;border-bottom:1px solid var(--line)}.page-head h1{font-size:46px;margin-bottom:12px}.back{display:inline-block;color:var(--muted);font-size:14px;margin-bottom:18px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:28px}.detail-grid>div{padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);display:flex;flex-direction:column}.detail-grid span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.chip{padding:7px 10px;border-radius:999px;background:#f9e9ea;color:#7f181d;font-weight:700;font-size:13px}.chip.muted{background:#edf0f4;color:#4b5563}.filter-bar{display:grid;grid-template-columns:2fr 1fr 1fr .7fr auto;gap:10px;margin-bottom:20px}.filter-bar.simple{grid-template-columns:1fr auto;max-width:640px}.filter-bar input,.filter-bar select,.form-card input,.form-card textarea,.form-card select,.inline-edit input,.inline-edit textarea,.inline-edit select,.inline-form select,.form-grid input,.form-grid textarea,.form-grid select{width:100%;padding:11px 12px;border:1px solid #cfd4dc;border-radius:var(--radius-field);background:#fff;color:var(--text);font:inherit}.form-card label,.form-grid label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:700}.form-card{padding:26px}.form-narrow{max-width:680px}.list-stack{display:flex;flex-direction:column;gap:14px}.timeline{position:relative}.timeline-item{display:grid;grid-template-columns:120px 1fr;gap:24px;padding:22px 0;border-bottom:1px solid var(--line)}.timeline-date{color:var(--muted);font-size:14px}.timeline-item h3{margin:0 0 8px}.statement-list{display:flex;flex-direction:column;gap:14px}.statement{padding:22px}.statement-head{display:flex;justify-content:space-between;gap:16px}.statement-head span{font-size:13px;color:var(--muted)}hr{border:0;border-top:1px solid var(--line);margin:42px 0}.changelog summary{font-weight:800;cursor:pointer}.change-list{margin-top:16px}.change-list>div{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.change-list time{color:var(--muted)}.report-box{margin-top:42px;padding:24px}.report-box p{color:var(--muted)}.people-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.person-card{display:flex;align-items:center;gap:14px;padding:16px}.person-card img,.avatar-placeholder{width:52px;height:52px;border-radius:50%;object-fit:cover;background:#e9edf2;display:flex;align-items:center;justify-content:center;font-weight:800}.person-card div:last-child{display:flex;flex-direction:column}.person-card span{font-size:13px;color:var(--muted)}.profile-head{display:flex;gap:24px;align-items:flex-start}.profile-photo{width:110px;height:110px;border-radius:14px;object-fit:cover}.affiliations{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.affiliations>div{display:flex;justify-content:space-between;gap:16px;padding:8px 0}.affiliations span{color:var(--muted);font-size:13px}.count-badge{font-size:13px;padding:4px 8px;border-radius:999px;background:var(--soft);color:var(--muted);vertical-align:middle}.empty{padding:26px;border:1px dashed #cfd4dc;border-radius:12px;color:var(--muted);background:#fff}.pagination{display:flex;gap:6px;margin-top:24px}.pagination a{min-width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#fff;border-radius:8px}.pagination a.active{background:var(--text);color:#fff}.flash-stack{margin-top:14px}.flash{padding:12px 14px;border-radius:9px;margin-bottom:10px;background:#eef2f7}.flash.success{background:#e8f5ed;color:#165c33}.flash.error{background:#fae9e9;color:#8a1717}.flash.info{background:#eef3fb;color:#2d4c7c}
/* Admin */.admin-body{background:#f3f5f7}.admin-header{position:sticky}.admin-shell{display:grid;grid-template-columns:190px 1fr;gap:24px;padding-top:26px;padding-bottom:50px}.admin-sidebar{display:flex;flex-direction:column;gap:5px;position:sticky;top:94px;height:max-content}.admin-sidebar a{padding:9px 11px;border-radius:8px;color:#48505b;font-size:14px}.admin-sidebar a:hover{background:#fff;color:var(--text)}.admin-content{min-width:0}.admin-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:20px}.admin-title h1{font-size:34px;margin:4px 0 0}.admin-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:20px}.admin-stats>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}.admin-stats strong{display:block;font-size:27px}.admin-stats span{font-size:12px;color:var(--muted)}.admin-panel{padding:22px;margin-bottom:18px}.admin-panel h2{font-size:21px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.badge{display:inline-block;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;background:#eceff3}.badge.published,.badge.used{background:#e6f4ea;color:#1f6d3b}.badge.draft,.badge.new{background:#fff1d8;color:#875a00}.badge.rejected{background:#f9e5e5;color:#8d2020}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid.compact{margin-top:12px}.span-2{grid-column:span 2}.checkbox{flex-direction:row!important;align-items:center!important;font-weight:600!important}.checkbox input{width:auto!important}.inline-edit{display:grid;gap:8px;min-width:420px;padding:12px 0}.danger-link{background:none;border:0;color:var(--danger);cursor:pointer;padding:5px 0}.admin-item{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}.admin-item>div{max-width:75%}.admin-changes>div{grid-template-columns:145px 1fr auto}.align-end{display:flex;align-items:end}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:30px}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px;box-shadow:var(--shadow)}.login-card h1{font-size:28px}.form-card.bare{border:0;box-shadow:none;padding:0;margin-top:22px}.submission-list{display:flex;flex-direction:column;gap:12px}.submission{margin-bottom:0}.inline-form{display:flex;gap:8px;align-items:center}.inline-form select{max-width:200px}.admin-panel details summary{cursor:pointer;color:var(--accent);font-size:13px}.admin-panel details[open]{min-width:440px}.admin-panel details[open] summary{margin-bottom:8px}
@media(max-width:900px){.card-grid,.people-grid{grid-template-columns:1fr 1fr}.filter-bar{grid-template-columns:1fr 1fr}.filter-bar .button{grid-column:span 2}.admin-shell{grid-template-columns:1fr}.admin-sidebar{position:static;flex-direction:row;overflow:auto}}@media(max-width:650px){.container,.narrow{width:min(100% - 22px,1180px)}.section-head{margin-bottom:24px}.section-head h2{font-size:29px}.nav-wrap{align-items:center;padding:14px 0;flex-direction:column}.nav{gap:12px;flex-wrap:wrap}.hero{padding:52px 0}.hero-search{flex-direction:column}.stats{gap:18px}.card-grid,.people-grid,.detail-grid,.form-grid,.filter-bar,.filter-bar.simple{grid-template-columns:1fr}.filter-bar .button,.span-2{grid-column:span 1}.timeline-item{grid-template-columns:1fr;gap:6px}.profile-head{flex-direction:column}.admin-stats{grid-template-columns:1fr 1fr}.change-list>div,.admin-changes>div{grid-template-columns:1fr}.admin-title{align-items:flex-start;flex-direction:column}.admin-panel{padding:15px}.inline-edit{min-width:260px}.admin-panel details[open]{min-width:0}}

/* Uwierzytelnianie dwuetapowe administratorów */
.login-card .form-card button{margin-top:14px}.login-secondary-link{margin:20px 0 0;text-align:center;font-size:13px;color:var(--muted)}.mfa-status-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.mfa-status-row h2{margin:5px 0 0}.security-form-narrow{display:grid;gap:14px;max-width:520px;margin-top:20px}.security-form-narrow label,.mfa-inline-form label,.mfa-action-card label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:700}.security-form-narrow input,.mfa-inline-form input,.mfa-action-card input{width:100%;padding:11px 12px;border:1px solid #cfd4dc;border-radius:8px;background:#fff;color:var(--text);font:inherit}.mfa-setup-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:28px;align-items:start;margin-top:20px}.mfa-qr{display:flex;justify-content:center;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff}.mfa-qr svg{width:min(260px,100%);height:auto}.mfa-secret{display:block;max-width:100%;padding:10px;margin:10px 0;overflow-wrap:anywhere;background:var(--soft);border-radius:8px;letter-spacing:.08em}.mfa-inline-form{display:grid;grid-template-columns:minmax(200px,320px) auto;align-items:end;gap:10px;margin:12px 0}.mfa-actions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}.mfa-action-card{display:flex;flex-direction:column;gap:12px;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.mfa-action-card h3,.mfa-action-card p{margin:0}.mfa-action-card .button{align-self:flex-start;margin-top:auto}.mfa-action-card.danger-zone{grid-column:span 2;border-color:#e8b9b9;background:#fff8f8}.button-danger{background:var(--danger)}.button-danger:hover{background:#7f1515}.recovery-codes-panel{border-color:#d7b55b;background:#fffdf5}.recovery-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 28px;max-width:620px;padding-left:28px}.recovery-codes code{font-size:16px;font-weight:800;letter-spacing:.06em}.mfa-panel code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}

@media(max-width:750px){.mfa-setup-grid,.mfa-actions-grid{grid-template-columns:1fr}.mfa-action-card.danger-zone{grid-column:span 1}.mfa-inline-form{grid-template-columns:1fr}.recovery-codes{grid-template-columns:1fr}}

@media print{.admin-header,.admin-sidebar,.admin-title,.admin-panel:not(.recovery-codes-panel),.flash-stack,.recovery-codes-panel .button{display:none!important}.admin-shell{display:block}.recovery-codes-panel{border:0;box-shadow:none}.recovery-codes{grid-template-columns:repeat(2,1fr)}}

.hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.site-logo{display:block;max-width:220px;max-height:42px;width:auto;height:auto}.source-lead{margin:0 0 10px;color:#4b535e;line-height:1.6}.upload-preview{display:flex;align-items:center;gap:12px;margin:6px 0 4px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);font-size:12px;color:var(--muted);font-weight:600}.upload-preview img{width:64px;height:64px;border-radius:8px;object-fit:cover;background:#fff;border:1px solid var(--line)}.upload-preview.logo-preview img{width:100px;object-fit:contain}.seo-settings{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.seo-settings fieldset{border:1px solid var(--line);border-radius:12px;padding:16px;margin:0;display:flex;flex-direction:column;gap:12px}.seo-settings legend{padding:0 6px;font-weight:800}.seo-settings label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:700}@media(max-width:760px){.seo-settings{grid-template-columns:1fr}.site-logo{max-width:180px;max-height:38px}}

/* ==========================================================================
   Public UI primitives

   Małe, powtarzalne elementy publicznego interfejsu. Komponenty domenowe
   mogą dodawać układ, ale nie powinny ponownie definiować podstawowego
   języka badge/chip/tab/action.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Badges — krótka informacja/status/licznik
   -------------------------------------------------------------------------- */

.ui-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: max-content;
    max-width: 100%;
    padding: 4px 8px;
    border: 1px solid transparent;
    border-radius: var(--radius-pill);
    background: var(--color-neutral-soft);
    color: var(--color-text-secondary);
    font-size: 10px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: .035em;
    white-space: nowrap;
}

.ui-badge--neutral {
    background: var(--color-neutral-soft);
    color: #5b6470;
}

.ui-badge--accent {
    background: var(--color-accent-soft);
    border-color: var(--color-accent-border);
    color: #861b20;
}

.ui-badge--success {
    background: var(--color-success-soft);
    color: var(--success);
}

.ui-badge--warning {
    background: var(--color-warning-soft);
    color: #875a00;
}

.ui-badge--danger {
    background: var(--color-danger-soft);
    color: var(--danger);
}

.ui-badge--count {
    padding: 4px 8px;
    background: var(--color-neutral-soft-strong);
    color: #68717d;
    font-size: 12px;
    letter-spacing: 0;
    vertical-align: middle;
}

.ui-badge--uppercase {
    text-transform: uppercase;
}

/* --------------------------------------------------------------------------
   Chips — encje i aktywne filtry
   -------------------------------------------------------------------------- */

.ui-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: max-content;
    max-width: 100%;
    min-height: 27px;
    padding: 5px 9px;
    border: 0;
    border-radius: var(--radius-pill);
    background: var(--color-neutral-soft);
    color: #505965;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}

.ui-chip--accent {
    background: var(--color-accent-soft);
    color: #7f181d;
}

.ui-chip--muted {
    background: #edf0f4;
    color: var(--color-text-muted);
}

.ui-chip--interactive {
    cursor: pointer;
    transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}

.ui-chip--interactive:hover {
    background: var(--color-accent-soft-hover);
    color: var(--color-accent-hover);
}

.ui-chip--interactive:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring-accent);
}

/* --------------------------------------------------------------------------
   Tabs — dwa warianty: segment oraz pill
   -------------------------------------------------------------------------- */

.ui-tablist {
    display: flex;
    align-items: center;
}

.ui-tab {
    flex-shrink: 0;
    border: 1px solid transparent;
    background: transparent;
    color: #5f6772;
    font: inherit;
    font-size: 12px;
    font-weight: 750;
    line-height: 1.2;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}

.ui-tab:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring-accent);
}

.ui-tab--segment {
    padding: 8px 11px;
    border-radius: var(--radius-field);
}

.ui-tab--segment:hover,
.ui-tab--segment.is-active {
    background: var(--color-surface-card);
    color: var(--color-text-primary);
    box-shadow: var(--shadow-control-raised);
}

.ui-tab--pill {
    padding: 8px 12px;
    border-color: var(--color-border-default);
    border-radius: var(--radius-pill);
    background: var(--color-surface-card);
    color: var(--color-text-secondary);
}

.ui-tab--pill:hover {
    border-color: var(--color-border-hover);
    background: var(--color-surface-hover);
    color: var(--color-text-primary);
}

.ui-tab--pill.is-active {
    border-color: var(--color-text-primary);
    background: var(--color-text-primary);
    color: #fff;
}

/* --------------------------------------------------------------------------
   Small actions — kompaktowe akcje poza główną hierarchią CTA
   -------------------------------------------------------------------------- */

.ui-action {
    min-height: 33px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 7px 11px;
    border: 1px solid var(--color-border-default);
    border-radius: var(--radius-control);
    background: var(--color-surface-card);
    color: var(--color-text-secondary);
    font: inherit;
    font-size: 12px;
    font-weight: 750;
    line-height: 1;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}

.ui-action:hover {
    border-color: var(--color-border-hover);
    background: var(--color-surface-soft);
    color: var(--color-text-primary);
}

.ui-action:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring-accent);
}

.ui-action:disabled {
    cursor: default;
    opacity: .55;
}

.ui-action--pill {
    border-radius: var(--radius-pill);
}

.ui-action--accent {
    border-color: #e3b9bc;
    color: var(--color-accent);
}

.ui-action--accent:hover:not(:disabled) {
    border-color: #d99a9e;
    background: #fdf5f5;
    color: var(--color-accent-hover);
}

.ui-action--success {
    border-color: var(--color-success-border);
    background: #f4faf6;
    color: var(--success);
}

.ui-action--danger:hover:not(:disabled) {
    border-color: #efd3d3;
    background: var(--color-danger-soft);
    color: var(--danger);
}

/* ==========================================================================
   Publiczny nagłówek serwisu
   ========================================================================== */

.site-header {
    z-index: 50;
}

.site-header-main {
    position: relative;
    min-height: 76px;
    display: flex;
    align-items: center;
    gap: 30px;
}

.site-brand {
    flex: 0 0 auto;
    min-width: 205px;
    display: inline-flex;
    align-items: center;
    color: var(--text);
}

.site-brand:hover {
    color: var(--text);
}

.site-brand .site-logo {
    max-width: 205px;
    max-height: 39px;
}

.site-brand-name {
    font-size: 24px;
}

.site-navigation {
    min-width: 0;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.site-navigation-primary,
.site-navigation-actions {
    display: flex;
    align-items: center;
}

.site-navigation-primary {
    gap: 27px;
}

.site-navigation-primary a {
    position: relative;
    padding: 27px 0 25px;
    color: #464d57;
    font-size: 14px;
    font-weight: 700;
}

.site-navigation-primary a::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 2px;
    background: var(--accent);
    transform: scaleX(0);
    transition: transform .16s ease;
}

.site-navigation-primary a:hover,
.site-navigation-primary a.is-active {
    color: var(--text);
}

.site-navigation-primary a:hover::after,
.site-navigation-primary a.is-active::after {
    transform: scaleX(1);
}

.site-navigation-actions {
    gap: 10px;
}

.site-header-icon-button {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    background: transparent;
    color: #4e5560;
    border: 1px solid transparent;
    border-radius: 50%;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}

.site-header-icon-button:hover,
.site-header-icon-button[aria-expanded="true"] {
    background: var(--soft);
    border-color: var(--line);
    color: var(--text);
}

.site-header-icon-button svg,
.site-utility-link svg,
.site-header-inline-search-form > svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Desktopowa wyszukiwarka jest pełnoprawną akcją nagłówka, a nie samotną ikoną. */
.site-header-inline-search {
    position: relative;
    width: 210px;
    flex: 0 1 210px;
}

.site-header-inline-search-form {
    height: 40px;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 11px;
    background: #f6f7f9;
    color: #747b86;
    border: 1px solid #e0e3e8;
    border-radius: 9px;
    transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.site-header-inline-search-form:hover {
    background: #f2f4f6;
    border-color: #d7dbe1;
}

.site-header-inline-search-form:focus-within {
    background: #fff;
    border-color: #b7bdc6;
    box-shadow: 0 0 0 3px rgba(15, 23, 42, .045);
}

.site-header-inline-search-form > svg {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
}

.site-header-inline-search-form input {
    min-width: 0;
    width: 100%;
    padding: 0;
    background: transparent;
    color: var(--text);
    border: 0;
    outline: 0;
    font: inherit;
    font-size: 13px;
    line-height: 1;
}

.site-header-inline-search-form input::placeholder {
    color: #7a818b;
    opacity: 1;
}

.site-header-inline-search-form input::-webkit-search-cancel-button {
    cursor: pointer;
}


/* Powiadomienia i Wesprzyj korzystają ze wspólnego języka utility actions. */
.site-utility-link {
    position: relative;
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 0 9px;
    color: #4e5560;
    border: 1px solid transparent;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 750;
    line-height: 1;
    white-space: nowrap;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}

.site-utility-link:hover {
    background: var(--soft);
    border-color: var(--line);
    color: var(--text);
}

.site-utility-link.is-active {
    color: var(--accent);
}

.site-utility-link svg {
    flex: 0 0 20px;
}

.site-report-button {
    min-height: 40px;
    padding-right: 14px;
    padding-left: 14px;
    white-space: nowrap;
}

.site-menu-toggle,
.site-mobile-actions {
    display: none;
}

/* Rozwijany panel pozostaje mobilnym wariantem wyszukiwarki. */
.site-header-search {
    background: rgba(255, 255, 255, .98);
    border-top: 1px solid var(--line);
    box-shadow: var(--shadow-surface-card);
}

.site-header-search-shell {
    position: relative;
}

.site-header-search-form {
    min-height: 66px;
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr) auto 34px;
    align-items: center;
    gap: 12px;
}

.site-header-search-shell .site-header-search-suggestions {
    top: calc(100% + 4px);
    width: min(680px, 100%);
}

.site-header-inline-search .site-header-inline-search-suggestions {
    top: calc(100% + 8px);
    right: 0;
    left: auto;
    width: min(430px, calc(100vw - 32px));
}

.site-header-search-form > svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: #7a818c;
    stroke-width: 1.8;
    stroke-linecap: round;
}

.site-header-search-form input {
    width: 100%;
    padding: 11px 0;
    background: transparent;
    color: var(--text);
    border: 0;
    outline: 0;
    font: inherit;
    font-size: 16px;
}

.site-header-search-close {
    width: 34px;
    height: 34px;
    padding: 0;
    background: transparent;
    color: #737a85;
    border: 0;
    border-radius: 50%;
    font: inherit;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
}

.site-header-search-close:hover {
    background: var(--soft);
    color: var(--text);
}


@media (min-width: 901px) {
    .site-header-search {
        display: none !important;
    }
}

/* Przy mniejszym desktopie obie akcje tekstowe zwijają się symetrycznie do ikon. */
@media (max-width: 1120px) {
    .site-header-main {
        gap: 20px;
    }

    .site-brand {
        min-width: 190px;
    }

    .site-brand .site-logo {
        max-width: 180px;
    }

    .site-navigation {
        gap: 18px;
    }

    .site-navigation-primary {
        gap: 18px;
    }

    .site-navigation-actions {
        gap: 8px;
    }

    .site-header-inline-search {
        width: 180px;
        flex-basis: 180px;
    }

    .site-utility-link {
        width: 40px;
        min-width: 40px;
        padding: 0;
    }

    .site-utility-link span {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
}

@media (max-width: 980px) {
    .site-header-inline-search {
        width: 150px;
        flex-basis: 150px;
    }

    .site-header-inline-search-form {
        padding-right: 9px;
        padding-left: 9px;
    }
}

@media (max-width: 900px) {
    .site-header-main {
        min-height: 66px;
        gap: 9px;
    }

    .site-brand {
        min-width: 0;
        margin-right: auto;
    }

    .site-brand .site-logo {
        max-width: 178px;
        max-height: 37px;
    }

    .site-mobile-actions {
        display: flex;
        align-items: center;
        gap: 1px;
    }

    .site-menu-toggle {
        width: 40px;
        height: 40px;
        flex: 0 0 40px;
        display: inline-flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 5px;
        padding: 0;
        background: transparent;
        border: 1px solid transparent;
        border-radius: 50%;
        cursor: pointer;
    }

    .site-menu-toggle:hover,
    .site-header.is-menu-open .site-menu-toggle {
        background: var(--soft);
        border-color: var(--line);
    }

    .site-menu-toggle span {
        width: 19px;
        height: 2px;
        background: var(--text);
        border-radius: 2px;
        transition: transform .16s ease, opacity .16s ease;
    }

    .site-header.is-menu-open .site-menu-toggle span:first-child {
        transform: translateY(7px) rotate(45deg);
    }

    .site-header.is-menu-open .site-menu-toggle span:nth-child(2) {
        opacity: 0;
    }

    .site-header.is-menu-open .site-menu-toggle span:last-child {
        transform: translateY(-7px) rotate(-45deg);
    }

    .site-navigation {
        position: absolute;
        top: 100%;
        right: -16px;
        left: -16px;
        display: none;
        padding: 12px 16px 18px;
        background: #fff;
        border-top: 1px solid var(--line);
        border-bottom: 1px solid var(--line);
        box-shadow: var(--shadow-surface-popover);
    }

    .site-header.is-menu-open .site-navigation {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }

    .site-navigation-primary,
    .site-navigation-actions {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }

    .site-navigation-primary {
        padding-bottom: 8px;
        border-bottom: 1px solid var(--line);
    }

    .site-navigation-primary a,
    .site-utility-link {
        width: auto;
        min-width: 0;
        justify-content: flex-start;
        padding: 11px 8px;
        border-radius: 8px;
    }

    .site-navigation-primary a::after,
    .site-header-inline-search {
        display: none;
    }

    .site-utility-link span {
        position: static;
        width: auto;
        height: auto;
        margin: 0;
        overflow: visible;
        clip: auto;
        white-space: nowrap;
    }

    .site-report-button {
        margin-top: 8px;
    }
}

@media (max-width: 520px) {
    .site-brand .site-logo {
        max-width: 148px;
    }

    .site-header-icon-button {
        width: 36px;
        height: 36px;
        flex-basis: 36px;
    }

    .site-header-search-form {
        grid-template-columns: 20px minmax(0, 1fr) 32px;
        gap: 8px;
        padding-top: 10px;
        padding-bottom: 10px;
    }

    .site-header-search-form .button {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .site-header-search-close {
        grid-column: 3;
        grid-row: 1;
    }
}

/* ==========================================================================
   Publiczna stopka serwisu
   ========================================================================== */

.footer {
    border-top: 1px solid var(--line);
    background: #fff;
    color: var(--muted);
    font-size: 13px;
}

.footer-support-wrap {
    padding-top: 34px;
}

.footer-support {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    padding: 22px 24px;
    border: 1px solid #edd9da;
    border-radius: var(--radius-card);
    background: #fff8f8;
}

.footer-support-copy {
    min-width: 0;
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.footer-support-icon {
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e8c7c9;
    border-radius: 10px;
    background: #fff;
    color: var(--accent);
}

.footer-support-icon svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.footer-support-copy strong {
    display: block;
    margin: 0 0 3px;
    color: var(--text);
    font-size: 16px;
    line-height: 1.35;
}

.footer-support-copy p {
    max-width: 720px;
    margin: 0;
    color: #626a75;
    font-size: 13px;
    line-height: 1.6;
}

.footer-support-button {
    flex: 0 0 auto;
    min-height: 38px;
    white-space: nowrap;
}

.footer-main {
    display: grid;
    grid-template-columns: minmax(250px, 1.05fr) minmax(0, 1.95fr);
    gap: clamp(54px, 7vw, 96px);
    padding-top: 52px;
    padding-bottom: 48px;
}

.footer-brand-block {
    min-width: 0;
    max-width: 390px;
}

.footer-brand {
    width: fit-content;
    display: inline-flex;
    align-items: center;
    margin-bottom: 18px;
    color: var(--text);
}

.footer-brand:hover {
    color: var(--text);
}

.footer-logo {
    display: block;
    width: auto;
    max-width: 184px;
    max-height: 36px;
}

.footer-brand-name {
    font-size: 23px;
    font-weight: 800;
    letter-spacing: -.02em;
}

.footer-description {
    margin: 0;
    color: #4f5762;
    font-size: 14px;
    line-height: 1.65;
}

.footer-note {
    margin: 9px 0 0;
    color: #7a828d;
    font-size: 12px;
    line-height: 1.55;
}

.footer-contact {
    display: inline-block;
    margin-top: 17px;
    color: #4d5560;
    font-weight: 700;
}

.footer-contact:hover {
    color: var(--accent);
}

.footer-nav-grid {
    min-width: 0;
    display: grid;
    grid-template-columns: .8fr 1.15fr 1fr;
    gap: clamp(28px, 4vw, 54px);
}

.footer-nav {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.footer-nav-title {
    margin-bottom: 3px;
    color: #858c96;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .09em;
    line-height: 1.35;
    text-transform: uppercase;
}

.footer-nav a {
    color: #565e69;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.45;
}

.footer-nav a:hover {
    color: var(--accent);
}

.footer-legal {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding-top: 19px;
    padding-bottom: 24px;
    border-top: 1px solid var(--line);
    color: #858c96;
    font-size: 11.5px;
    line-height: 1.55;
}

.footer-business {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 3px 8px;
    text-align: right;
}

.footer-business span:not(:last-child)::after {
    content: "·";
    margin-left: 8px;
    color: #b0b5bd;
}

@media (max-width: 900px) {
    .footer-support {
        align-items: flex-start;
    }

    .footer-main {
        grid-template-columns: 1fr;
        gap: 38px;
        padding-top: 44px;
        padding-bottom: 42px;
    }

    .footer-brand-block {
        max-width: 620px;
    }

    .footer-nav-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .footer-legal {
        flex-direction: column;
        gap: 8px;
    }

    .footer-business {
        justify-content: flex-start;
        text-align: left;
    }
}

@media (max-width: 650px) {
    .footer-support-wrap {
        padding-top: 22px;
    }

    .footer-support {
        flex-direction: column;
        gap: 18px;
        padding: 20px;
    }

    .footer-support-copy {
        gap: 12px;
    }

    .footer-support-icon {
        width: 34px;
        height: 34px;
    }

    .footer-support-button {
        width: 100%;
    }

    .footer-main {
        gap: 32px;
        padding-top: 38px;
        padding-bottom: 36px;
    }

    .footer-brand {
        margin-bottom: 15px;
    }

    .footer-logo {
        max-width: 172px;
        max-height: 34px;
    }

    .footer-description {
        font-size: 13.5px;
    }

    .footer-nav-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 30px 24px;
    }

    .footer-nav:last-child {
        grid-column: 1 / -1;
    }

    .footer-legal {
        padding-top: 17px;
        padding-bottom: 21px;
    }

    .footer-business {
        display: grid;
        gap: 2px;
    }

    .footer-business span:not(:last-child)::after {
        content: none;
    }
}

@media (max-width: 420px) {
    .footer-nav-grid {
        grid-template-columns: 1fr;
        gap: 26px;
    }

    .footer-nav:last-child {
        grid-column: auto;
    }
}

/* ==========================================================================
   Homepage – dodatkowe sekcje
   ========================================================================== */

/* --------------------------------------------------------------------------
   Hero – statystyki bazy
   -------------------------------------------------------------------------- */

   .hero-database-stats {
    max-width: 680px;

    margin-top: 28px;
}

.admin-stats{grid-template-columns:repeat(6,1fr)}
.filter-bar.archive-filter{grid-template-columns:2fr 1fr 1fr auto}
.badge.archived{background:#e8e9ed;color:#474b55}
.archive-summary h3{margin-top:24px;margin-bottom:8px}
.archive-panel{border-color:#e8c9c9}
.archive-audit-list>div{grid-template-columns:145px 1fr}

@media(max-width:900px){.admin-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.filter-bar.archive-filter{grid-template-columns:1fr}.archive-audit-list>div{grid-template-columns:1fr}}


.hero-database-stats-label {
    display: block;

    margin-bottom: 9px;

    color: var(--muted);

    font-size: 10px;
    font-weight: 800;
    line-height: 1.2;

    letter-spacing: .1em;
    text-transform: uppercase;
}


.hero-database-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    overflow: hidden;

    background: #fff;

    border: 1px solid var(--line);
    border-radius: 12px;

    box-shadow:
        0 5px 18px rgba(15, 23, 42, .045);
}


.hero-database-stat {
    position: relative;

    min-width: 0;

    display: flex;
    flex-direction: column;
    align-items: flex-start;

    padding: 17px 20px;

    transition:
        background .15s ease,
        color .15s ease;
}


.hero-database-stat + .hero-database-stat {
    border-left: 1px solid var(--line);
}


.hero-database-stat:hover {
    background: #fafbfc;
    color: var(--text);
}


.hero-database-stat strong {
    display: block;

    margin-bottom: 2px;

    color: var(--text);

    font-size: 28px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.03em;
}


.hero-database-stat span {
    display: block;

    margin-top: 5px;

    color: #3f4650;

    font-size: 13px;
    font-weight: 750;
    line-height: 1.25;
}


.hero-database-stat small {
    display: block;

    margin-top: 2px;

    color: var(--muted);

    font-size: 10px;
    font-weight: 500;
    line-height: 1.3;
}


/* --------------------------------------------------------------------------
   Hero – statystyki mobile
   -------------------------------------------------------------------------- */

@media (max-width: 650px) {

    .hero-database-stats {
        max-width: none;

        margin-top: 24px;
    }


    .hero-database-stats-label {
        margin-bottom: 8px;
    }


    .hero-database-stat {
        padding: 14px 12px;
    }


    .hero-database-stat strong {
        font-size: 24px;
    }


    .hero-database-stat span {
        font-size: 11px;
    }


    .hero-database-stat small {
        font-size: 9px;
    }

}


/* ==========================================================================
   Skrócony układ strony głównej
   ========================================================================== */

.home-recent-section .card-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.home-recent-section .case-card {
    min-width: 0;
    padding: 20px;
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-surface-card);
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.home-recent-section .case-card:hover {
    border-color: var(--color-border-hover);
    box-shadow: var(--shadow-surface-card-hover);
    transform: translateY(-1px);
}

.home-recent-section .case-card h3 {
    font-size: 17px;
}

.case-activity-label {
    align-self: flex-start;
    margin-bottom: 2px;
    color: var(--accent);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.home-recent-section .case-activity-description {
    display: -webkit-box;
    margin: -2px 0 14px;
    overflow: hidden;
    font-size: 13px;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.home-signals-head {
    align-items: flex-start;
}

.home-signals-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.home-signal-card {
    min-width: 0;
    overflow: hidden;
    background: var(--color-surface-card);
    border: 1px solid var(--color-border-default);
    border-radius: var(--radius-panel);
    box-shadow: var(--shadow-surface-panel);
}

.home-signal-card-head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px 20px;
    border-bottom: 1px solid var(--line);
}

.home-signal-card-head > span:last-child {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.home-signal-card-head h3 {
    margin: 0;
    font-size: 18px;
}

.home-signal-card-head small {
    color: var(--muted);
    font-size: 11px;
}

.home-signal-icon {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #f9e9ea;
    color: var(--accent);
    border-radius: 10px;
    font-size: 13px;
    font-weight: 850;
}

.home-signal-icon-read {
    background: var(--soft);
    color: #59616c;
}

.home-signal-icon svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.home-signal-list {
    display: flex;
    flex-direction: column;
}

.home-signal-item {
    min-width: 0;
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) 16px;
    align-items: center;
    gap: 11px;
    min-height: 66px;
    padding: 11px 18px;
    border-bottom: 1px solid var(--line);
}

.home-signal-item:hover {
    background: #fafbfc;
    color: var(--text);
}

.home-signal-position {
    color: #a3a9b1;
    font-size: 17px;
    font-weight: 800;
}

.home-signal-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.home-signal-main strong {
    display: -webkit-box;
    overflow: hidden;
    font-size: 14px;
    line-height: 1.35;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.home-signal-main small,
.home-signal-note {
    color: var(--muted);
    font-size: 10px;
    line-height: 1.4;
}

.home-signal-arrow {
    color: #a3a9b1;
    transition: color .15s ease, transform .15s ease;
}

.home-signal-item:hover .home-signal-arrow {
    color: var(--accent);
    transform: translateX(2px);
}

.home-signal-note {
    margin: 0;
    padding: 11px 18px 13px;
    background: #fafbfc;
}

.home-entities-head {
    margin-bottom: 20px;
}

.home-entity-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px;
}

.home-entity-column {
    min-width: 0;
}

.home-entity-column .subsection-head {
    align-items: flex-end;
    min-height: 44px;
}

.home-entity-column .subsection-head > span {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.home-entity-column .subsection-head h3 {
    font-size: 17px;
    font-weight: 600;
}

.home-entity-column .subsection-head small {
    color: var(--muted);
    font-size: 10px;
}

.home-entity-column .subsection-head > a {
    flex: 0 0 auto;
    color: var(--muted);
    font-size: 12px;
    font-weight: 750;
}

.home-entity-column .subsection-head > a:hover {
    color: var(--accent);
}

.home-entity-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.home-entity-card {
    min-width: 0;
    min-height: 88px;
    gap: 12px;
    padding: 12px;
    box-shadow: var(--shadow-surface-card);
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.home-entity-card:hover {
    border-color: var(--color-border-hover);
    box-shadow: var(--shadow-surface-card-hover);
    transform: translateY(-1px);
    color: var(--text);
}

.home-entity-card .person-photo,
.home-entity-card .party-logo {
    width: 48px;
    height: 48px;
    flex-basis: 48px;
}

.home-entity-card .party-logo {
    padding: 6px;
}

.home-entity-card .person-info strong,
.home-entity-card .party-info strong {
    font-size: 13px;
}

.home-entity-card .person-info > span,
.home-entity-card .party-info > span {
    font-size: 10px;
}

.home-entity-card .person-info small,
.home-entity-card .party-info small {
    margin-top: 3px;
    font-size: 10px;
}

@media (max-width: 1050px) {
    .home-recent-section .card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-entity-columns {
        grid-template-columns: 1fr;
        gap: 34px;
    }
}

@media (max-width: 760px) {
    .home-signals-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 650px) {
    .home-recent-section .card-grid,
    .home-entity-list {
        grid-template-columns: 1fr;
    }

    .home-signal-card-head {
        padding: 16px;
    }

    .home-signal-item {
        padding-right: 14px;
        padding-left: 14px;
    }

    .home-entity-column .subsection-head {
        align-items: flex-start;
    }
}


/* ==========================================================================
   Nowy hero strony głównej
   ========================================================================== */

.home-hero {
    padding: 58px 0 38px;
    background:
        radial-gradient(circle at 89% 12%, rgba(179, 32, 37, .055), transparent 29%),
        linear-gradient(180deg, #fff 0%, #f7f8fa 100%);
}

.home-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(350px, .88fr);
    align-items: center;
    gap: clamp(38px, 5vw, 70px);
}

.home-hero-copy {
    min-width: 0;
}

.home-hero h1 {
    max-width: 700px;
    margin: 10px 0 18px;
    font-size: clamp(42px, 5vw, 64px);
}

.home-hero .home-hero-intro {
    max-width: 690px;
    margin: 0;
    color: #484f5a;
    font-size: 18px;
    line-height: 1.65;
}

.home-hero .hero-search-shell {
    max-width: 690px;
    margin-top: 29px;
}

.home-hero .hero-search {
    max-width: none;
    margin-top: 0;
}

.home-featured-update {
    position: relative;
    min-width: 0;
    padding: 26px 28px 24px;
    overflow: hidden;
    background: rgba(255, 255, 255, .96);
    border: 1px solid var(--color-border-subtle);
    border-radius: var(--radius-feature);
    box-shadow: var(--shadow-surface-feature);
}

.home-featured-update::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 3px;
    background: var(--accent);
}

.home-featured-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
}

.home-featured-topline time {
    color: var(--muted);
    font-size: 12px;
    font-weight: 650;
    white-space: nowrap;
}

.home-featured-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--accent);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.home-featured-badge svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.home-featured-period {
    display: block;
    margin-bottom: 8px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.home-featured-update h2 {
    margin: 0;
    font-size: clamp(23px, 2.3vw, 31px);
    line-height: 1.16;
}

.home-featured-update h2 a:hover {
    color: var(--accent);
}

.home-hero .home-featured-summary {
    display: -webkit-box;
    margin: 14px 0 0;
    overflow: hidden;
    color: #545c67;
    font-size: 14px;
    line-height: 1.62;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}

.home-featured-activity {
    margin: 14px 0 0;
    padding: 11px 13px;
    background: #f7f8fa;
    border-radius: 9px;
    color: #59616d;
    font-size: 12px;
    line-height: 1.5;
}

.home-featured-activity strong {
    color: var(--accent);
}


/* ==========================================================================
   Materiały dodane do archiwum
   ========================================================================== */

.home-archive-section {
    padding-top: 0;
}

.home-archive-head {
    align-items: flex-start;
}

.home-archive-head p {
    margin: 8px 0 0;
    color: var(--muted);
    font-size: 14px;
}

.home-archive-list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-surface-card);
}

.home-archive-item {
    display: flex;
    min-width: 0;
    min-height: 185px;
    flex-direction: column;
    padding: 20px;
    border-right: 1px solid var(--line);
}

.home-archive-item:last-child {
    border-right: 0;
}

.home-archive-date {
    margin-bottom: 9px;
    color: var(--accent);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.home-archive-item strong {
    font-size: 16px;
    line-height: 1.3;
}

.home-archive-description {
    display: -webkit-box;
    margin-top: 9px;
    overflow: hidden;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.home-archive-added {
    margin-top: auto;
    padding-top: 16px;
    color: #656d79;
    font-size: 11px;
    font-weight: 700;
}

.home-archive-item:hover {
    background: #fafafb;
}

@media (max-width: 900px) {
    .home-archive-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-archive-item:nth-child(2n) {
        border-right: 0;
    }

    .home-archive-item:nth-child(-n + 2) {
        border-bottom: 1px solid var(--line);
    }
}

@media (max-width: 650px) {
    .home-archive-list {
        grid-template-columns: 1fr;
    }

    .home-archive-item {
        min-height: 0;
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .home-archive-item:last-child {
        border-bottom: 0;
    }
}

.home-featured-entities {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: 7px;
    margin: 12px 0 16px;
}

.home-featured-entities .case-entities-label {
    width: 100%;
    padding-top: 0;
    color: #727a85;
    font-size: 10px;
    font-weight: 750;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.home-featured-entities .case-entities-list {
    gap: 8px;
}

.home-featured-entities .case-entity-visual {
    gap: 9px;
    padding: 4px 10px 4px 4px;
    font-size: 12px;
}

.home-featured-entities .case-entity-media {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
    font-size: 11px;
}

.home-featured-entities .case-entity-name {
    max-width: 135px;
}

.home-featured-entities .case-entity-more {
    min-height: 48px;
    padding-right: 10px;
    padding-left: 10px;
}

.home-featured-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 24px;
    padding-top: 17px;
    border-top: 1px solid var(--line);
    font-size: 13px;
}

.home-featured-footer > span {
    color: var(--muted);
}

.home-featured-footer a,
.home-featured-empty-link {
    color: var(--accent);
    font-weight: 800;
}

.home-featured-footer a span {
    display: inline-block;
    margin-left: 5px;
    transition: transform .15s ease;
}

.home-featured-footer a:hover span {
    transform: translateX(3px);
}

.home-featured-empty h2 {
    margin-top: 20px;
}

.home-featured-empty-link {
    display: inline-block;
    margin-top: 20px;
}

.home-hero .home-hero-stats {
    max-width: none;
    margin-top: 36px;
}

.home-hero .hero-database-stats-grid {
    width: 100%;
}

.home-hero .hero-database-stat {
    padding: 14px 18px;
}

.home-hero .hero-database-stat strong {
    font-size: 24px;
}


/* ==========================================================================
   Moduł obserwowania na stronie głównej
   ========================================================================== */

.home-follow-section {
    padding-top: 0;
}

.home-follow-panel {
    display: grid;
    grid-template-columns: minmax(0, .93fr) minmax(390px, 1.07fr);
    gap: clamp(30px, 5vw, 66px);
    padding: clamp(28px, 4vw, 48px);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-panel);
    box-shadow: var(--shadow-surface-panel);
}

.home-follow-intro h2 {
    margin: 10px 0 12px;
    font-size: clamp(28px, 3vw, 38px);
}

.home-follow-intro > p {
    max-width: 520px;
    margin: 0;
    color: #555d68;
    font-size: 15px;
    line-height: 1.65;
}

.home-follow-kicker {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: var(--accent);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.home-follow-bell {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #f9e9ea;
    border-radius: 50%;
}

.home-follow-bell svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.home-follow-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 17px;
    margin-top: 24px;
}

.home-follow-manage {
    color: #555d68;
    font-size: 13px;
    font-weight: 750;
}

.home-follow-options {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.home-follow-option {
    min-width: 0;
    display: grid;
    grid-template-columns: 43px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 14px 8px;
    border-bottom: 0;
}

.home-follow-option + .home-follow-option {
    border-top: 1px solid var(--line);
}

.home-follow-option:hover {
    color: var(--text);
}

.home-follow-option-icon {
    width: 43px;
    height: 43px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--soft);
    color: #535b66;
    border-radius: 11px;
    transition: background .15s ease, color .15s ease;
}

.home-follow-option:hover .home-follow-option-icon {
    background: #f9e9ea;
    color: var(--accent);
}

.home-follow-option-icon svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.home-follow-option > span:nth-child(2) {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.home-follow-option strong {
    font-size: 14px;
}

.home-follow-option small {
    margin-top: 2px;
    color: var(--muted);
    font-size: 12px;
}

.home-follow-arrow {
    color: #9399a2;
    font-size: 18px;
    transition: color .15s ease, transform .15s ease;
}

.home-follow-option:hover .home-follow-arrow {
    color: var(--accent);
    transform: translateX(3px);
}

.home-follow-note {
    margin: 12px 4px 0;
    color: var(--muted);
    font-size: 11px;
    text-align: right;
}


@media (max-width: 900px) {
    .home-hero {
        padding-top: 48px;
    }

    .home-hero-grid,
    .home-follow-panel {
        grid-template-columns: 1fr;
    }

    .home-featured-update {
        max-width: 690px;
    }

    .home-follow-panel {
        gap: 30px;
    }
}

@media (max-width: 650px) {
    .home-hero {
        padding: 38px 0 30px;
    }

    .home-hero h1 {
        font-size: clamp(37px, 11vw, 48px);
    }

    .home-hero .home-hero-intro {
        font-size: 16px;
    }

    .home-hero .hero-search {
        flex-direction: column;
    }

    .home-featured-update {
        padding: 22px 20px 20px;
    }

    .home-featured-topline {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
        margin-bottom: 18px;
    }

    .home-featured-footer {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .home-hero .hero-database-stat {
        padding: 13px 11px;
    }

    .home-hero .hero-database-stat strong {
        font-size: 22px;
    }

    .home-follow-panel {
        padding: 24px 18px;
    }

    .home-follow-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .home-follow-actions .button {
        width: 100%;
    }

    .home-follow-manage {
        text-align: center;
    }

    .home-follow-option {
        grid-template-columns: 39px minmax(0, 1fr) auto;
        gap: 11px;
        padding-right: 2px;
        padding-left: 2px;
    }

    .home-follow-option-icon {
        width: 39px;
        height: 39px;
    }

    .home-follow-note {
        text-align: left;
    }
}

/* --------------------------------------------------------------------------
   Sekcje
   -------------------------------------------------------------------------- */

   .section-muted {
    background: #fff;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.section-description {
    margin: 8px 0 0;
    max-width: 620px;
    color: var(--muted);
    font-size: 14px;
}

.section-head > a {
    flex-shrink: 0;
    color: var(--muted);
    font-size: 14px;
    font-weight: 700;
}

.section-head > a:hover {
    color: var(--accent);
}

/* --------------------------------------------------------------------------
   Najczęściej podbijane – ranking społeczności
   -------------------------------------------------------------------------- */

   .home-boosted-head {
    align-items: flex-start;

    margin-bottom: 20px;
}




/*
 * Jedna wspólna karta rankingu zamiast
 * pięciu niezależnych dużych kart.
 */
.home-boosted-ranking {

    overflow: hidden;

    background: var(--color-surface-card);

    border: 1px solid var(--color-border-default);
    border-radius: var(--radius-panel);

    box-shadow: var(--shadow-surface-panel);
}


/* --------------------------------------------------------------------------
   Pojedynczy wiersz
   -------------------------------------------------------------------------- */

.home-boosted-item {
    display: grid;

    grid-template-columns:
        34px
        minmax(0, 1fr)
        auto
        18px;

    align-items: center;

    gap: 14px;

    min-height: 66px;

    padding: 14px 18px;

    color: var(--text);

    border-bottom: 1px solid var(--line);

    transition:
        background .15s ease,
        color .15s ease;
}


.home-boosted-item:last-child {
    border-bottom: 0;
}


.home-boosted-item:hover {
    background: #fafbfc;

    color: var(--text);
}


/* --------------------------------------------------------------------------
   Pozycja
   -------------------------------------------------------------------------- */

.home-boosted-position {
    width: 30px;
    height: 30px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    background: var(--soft);

    border-radius: 8px;

    color: #656c76;

    font-size: 12px;
    font-weight: 800;
    line-height: 1;
}


/*
 * TOP 3 delikatnie wyróżniamy,
 * ale bez robienia z rankingu konkursu.
 */
.home-boosted-item:nth-child(-n+3)
.home-boosted-position {
    background: #f9e9ea;

    color: #861b20;
}


/* --------------------------------------------------------------------------
   Tytuł sprawy
   -------------------------------------------------------------------------- */

.home-boosted-main {
    min-width: 0;
}


.home-boosted-title {
    display: block;

    color: var(--text);

    font-size: 15px;
    font-weight: 750;
    line-height: 1.35;

    letter-spacing: -.01em;
}


.home-boosted-item:hover
.home-boosted-title {
    color: var(--accent);
}


/* --------------------------------------------------------------------------
   Liczba podbić
   -------------------------------------------------------------------------- */

.home-boosted-score {
    display: inline-flex;
    align-items: baseline;
    justify-content: flex-end;

    gap: 4px;

    min-width: 105px;

    color: var(--muted);

    font-size: 12px;
    line-height: 1.2;

    white-space: nowrap;
}


.home-boosted-score::before {
    content: "▲";

    margin-right: 2px;

    color: var(--accent);

    font-size: 8px;
}


.home-boosted-score strong {
    color: #454c56;

    font-size: 13px;
    font-weight: 800;
}


/* --------------------------------------------------------------------------
   Strzałka
   -------------------------------------------------------------------------- */

.home-boosted-arrow {
    color: #a3a8b0;

    font-size: 15px;
    line-height: 1;

    transition:
        color .15s ease,
        transform .15s ease;
}


.home-boosted-item:hover
.home-boosted-arrow {
    color: var(--accent);

    transform: translateX(2px);
}


/* --------------------------------------------------------------------------
   Wyjaśnienie znaczenia podbicia
   -------------------------------------------------------------------------- */

.home-boosted-note {

    margin:
        12px
        0
        0;

    color: var(--muted);

    font-size: 12px;
    line-height: 1.55;
}

/* --------------------------------------------------------------------------
   Politycy – dwie kolumny
   -------------------------------------------------------------------------- */

.home-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.home-column {
    min-width: 0;
}

.subsection-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
}

.subsection-head h3 {
    margin: 0;
    font-size: 18px;
}

.subsection-head > span {
    color: var(--muted);
    font-size: 12px;
}


/* --------------------------------------------------------------------------
   Lista polityków
   -------------------------------------------------------------------------- */

.people-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.home-columns .person-card {
    display: flex;
    align-items: center;
    gap: 14px;

    min-height: 88px;
    padding: 14px 16px;

    transition:
        border-color .15s ease,
        box-shadow .15s ease,
        transform .15s ease;
}

.home-columns .person-card:hover {
    border-color: var(--color-border-hover);
    box-shadow: var(--shadow-surface-card-hover);
    transform: translateY(-1px);
    color: var(--text);
}


/* --------------------------------------------------------------------------
   Zdjęcie polityka
   -------------------------------------------------------------------------- */

.person-photo {
    width: 58px;
    height: 58px;

    flex: 0 0 58px;

    border-radius: 50%;
    overflow: hidden;

    background: var(--soft);
    border: 1px solid var(--line);

    display: flex;
    align-items: center;
    justify-content: center;
}

.home-columns .person-photo img {
    width: 100%;
    height: 100%;

    border-radius: 0;
    object-fit: cover;

    background: transparent;
}

.person-photo > span {
    color: #555d68;
    font-size: 19px;
    font-weight: 800;
}


/* --------------------------------------------------------------------------
   Dane polityka
   -------------------------------------------------------------------------- */

.person-info {
    min-width: 0;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.person-info strong {
    display: block;

    color: var(--text);
    font-size: 15px;
    line-height: 1.3;
}

.person-info > span {
    display: block;

    margin-top: 3px;

    color: var(--muted);
    font-size: 12px;
    line-height: 1.35;
}

.person-info small {
    display: block;

    margin-top: 5px;

    color: var(--muted);
    font-size: 11px;
}

.small-empty {
    padding: 18px;
    font-size: 13px;
}


/* --------------------------------------------------------------------------
   Partie polityczne
   -------------------------------------------------------------------------- */

.party-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.party-card {
    min-width: 0;
    min-height: 116px;

    display: flex;
    align-items: center;
    gap: 16px;

    padding: 18px;

    background: var(--color-surface-card);
    border: 1px solid var(--color-border-default);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-surface-card);

    transition:
        border-color .15s ease,
        box-shadow .15s ease,
        transform .15s ease;
}

.party-card:hover {
    border-color: var(--color-border-hover);
    box-shadow: var(--shadow-surface-card-hover);
    transform: translateY(-1px);
    color: var(--text);
}


/* --------------------------------------------------------------------------
   Logo partii
   -------------------------------------------------------------------------- */

.party-logo {
    width: 64px;
    height: 64px;

    flex: 0 0 64px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 8px;

    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
}

.party-logo img {
    width: 100%;
    height: 100%;

    object-fit: contain;
}

.party-logo span {
    color: #555d68;
    font-size: 16px;
    font-weight: 800;
}


/* --------------------------------------------------------------------------
   Dane partii
   -------------------------------------------------------------------------- */

.party-info {
    min-width: 0;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.party-info strong {
    color: var(--text);
    font-size: 14px;
    line-height: 1.3;
}

.party-info > span {
    margin-top: 3px;

    color: var(--muted);
    font-size: 12px;
}

.party-info small {
    margin-top: 6px;

    color: var(--muted);
    font-size: 11px;
}


/* --------------------------------------------------------------------------
   Responsywność
   -------------------------------------------------------------------------- */

@media (max-width: 900px) {

    .home-columns {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .party-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}


@media (max-width: 650px) {

    .section {
        padding: 42px 0;
    }

    .section-head {
        align-items: flex-start;
    }

    .section-head > a {
        font-size: 13px;
    }

    .subsection-head {
        align-items: center;
    }

    .home-columns .person-card {
        min-height: 82px;
        padding: 12px;
    }

    .person-photo {
        width: 54px;
        height: 54px;
        flex-basis: 54px;
    }

    .party-grid {
        grid-template-columns: 1fr;
    }

    .party-card {
        min-height: 100px;
        padding: 14px;
    }

    .party-logo {
        width: 58px;
        height: 58px;
        flex-basis: 58px;
    }

}


/* Kaskada końcowa dla nowych, kompaktowych kart podmiotów. */
.home-entity-card.party-card,
.home-entity-card.person-card {
    height: 104px;
    min-height: 104px;
    gap: 12px;
    padding: 12px;
    overflow: hidden;
}

.home-entity-card .person-photo,
.home-entity-card .party-logo {
    width: 56px;
    height: 56px;
    flex-basis: 56px;
}

.home-entity-card .person-info,
.home-entity-card .party-info {
    min-width: 0;
    justify-content: center;
}

.home-entity-card .person-info strong,
.home-entity-card .party-info strong {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.home-entity-card .person-info > span,
.home-entity-card .party-info > span {
    overflow: hidden;
    max-width: 100%;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 650px) {
    .home-entity-card.party-card,
    .home-entity-card.person-card {
        height: 100px;
        min-height: 100px;
        padding: 11px;
    }
}

/* ==========================================================================
   Źródła – przypisanie do konkretnych polityków / partii
   ========================================================================== */

   .source-scope {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;

    margin: 0 0 10px;
}

.source-scope-label {
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
}

.source-scope-entities {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.source-entity {
    display: inline-flex;
    align-items: center;

    padding: 4px 8px;

    border-radius: 999px;
    background: #f9e9ea;
    color: #7f181d;

    font-size: 12px;
    font-weight: 700;
    line-height: 1.25;

    transition:
        background .15s ease,
        color .15s ease;
}

.source-entity:hover {
    background: #f3d7d9;
    color: var(--accent2);
}

.source-entity-party {
    background: #edf0f4;
    color: #4b5563;
}

.source-entity-party:hover {
    background: #e2e6eb;
    color: var(--text);
}


/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 650px) {

    .source-scope {
        align-items: flex-start;
        gap: 5px;
    }

    .source-scope-label {
        padding-top: 3px;
    }

    .source-entity {
        font-size: 11px;
    }

}

/* ==========================================================================
   Karty spraw – kompaktowy widok z podmiotami
   ========================================================================== */

   .case-card {
    display: flex;
    flex-direction: column;
}

.case-card h3 {
    margin: 8px 0 14px;
}


/* --------------------------------------------------------------------------
   Podmioty sprawy
   -------------------------------------------------------------------------- */

.case-entities {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 8px;

    margin: 0 0 18px;
}

.case-entities-label {
    flex-shrink: 0;

    padding-top: 4px;

    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
}

.case-entities-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}


/* Polityk */

.case-entity {
    display: inline-flex;
    align-items: center;

    padding: 4px 8px;

    border-radius: 999px;

    background: #f9e9ea;
    color: #7f181d;

    font-size: 12px;
    font-weight: 700;
    line-height: 1.25;

    transition:
        background .15s ease,
        color .15s ease;
}

.case-entity:hover {
    background: #f3d7d9;
    color: var(--accent2);
}

.case-entity-visual {
    min-width: 0;
    gap: 7px;
    padding: 3px 9px 3px 3px;
}

.case-entity-media {
    display: inline-grid;
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    place-items: center;
    overflow: hidden;
    background: #dfe3e8;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 50%;
    color: #59616d;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .02em;
}

.case-entity-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.case-entity-name {
    min-width: 0;
    max-width: 145px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}


/* Partia */

.case-entity-party {
    background: #edf0f4;
    border-radius: 0;
    color: #4b5563;
}

.case-entity-party:hover {
    background: #e2e6eb;
    color: var(--text);
}

.case-entity-party .case-entity-media {
    padding: 2px;
    background: #fff;
    border-radius: 0;
}

.case-entity-party .case-entity-media img {
    border-radius: 0;
    clip-path: none;
    object-fit: contain;
}

.case-entity-party .case-entity-name {
    max-width: none;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
}


/* Liczba pozostałych podmiotów */

.case-entity-more {
    display: inline-flex;
    align-items: center;

    padding: 4px 8px;

    border-radius: 999px;

    background: var(--soft);
    color: var(--muted);

    font-size: 12px;
    font-weight: 700;
    line-height: 1.25;
}


/* --------------------------------------------------------------------------
   Stopka karty
   -------------------------------------------------------------------------- */

.case-card .case-footer {
    margin-top: auto;
}


/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 650px) {

    .case-card {
        padding: 20px;
    }

    .case-card h3 {
        margin-bottom: 12px;
    }

    .case-entities {
        gap: 6px;
        margin-bottom: 15px;
    }

    .case-entities-label {
        width: 100%;
        padding-top: 0;
    }

    .case-entity,
    .case-entity-more {
        font-size: 11px;
    }

    .case-entity-name {
        max-width: min(170px, 52vw);
    }

}

/* ==========================================================================
   Listing spraw – /sprawy
   ========================================================================== */

   .case-list-card {
    padding: 22px 24px;
}

.case-list-card h2 {
    margin: 8px 0 9px;
    font-size: 21px;
    line-height: 1.18;
}


/* --------------------------------------------------------------------------
   Opis – maksymalnie 2 linie
   -------------------------------------------------------------------------- */

.case-list-card .case-summary-clamp {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;

    overflow: hidden;

    margin: 0 0 13px;

    color: #555d68;
    font-size: 14px;
    line-height: 1.55;
}


/* --------------------------------------------------------------------------
   Podmioty
   -------------------------------------------------------------------------- */

.case-list-card .case-entities {
    margin-bottom: 13px;
}


/* --------------------------------------------------------------------------
   Stopka
   -------------------------------------------------------------------------- */

.case-list-card .case-footer {
    margin-top: 2px;
}


/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 650px) {

    .case-list-card {
        padding: 18px;
    }

    .case-list-card h2 {
        font-size: 19px;
    }

    .case-list-card .case-summary-clamp {
        font-size: 13px;
        line-height: 1.5;
    }

}

/* ==========================================================================
   Listing spraw – siatka
   ========================================================================== */

   .cases-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.cases-grid .case-list-card {
    min-width: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.cases-grid .case-list-card h2 {
    font-size: 19px;
    line-height: 1.2;
}

.cases-grid .case-footer {
    margin-top: auto;
    padding-top: 4px;
}

@media (max-width: 900px) {

    .cases-grid {
        grid-template-columns: 1fr;
    }

}

/* ==========================================================================
   Powiązane sprawy – profile polityków i partii
   ========================================================================== */

   .related-cases-list {
    gap: 10px;
}

.related-case-card {
    padding: 18px 20px;
}

.related-case-card h3 {
    margin: 7px 0 10px;
    font-size: 17px;
    line-height: 1.25;
}

.related-case-card .case-meta {
    font-size: 12px;
}

.related-case-card .case-footer {
    margin-top: 0;
    font-size: 12px;
}


/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 650px) {

    .related-case-card {
        padding: 16px;
    }

    .related-case-card h3 {
        font-size: 16px;
    }

}

/* ==========================================================================
   Public directory system — /sprawy, /politycy, /partie

   Wspólna warstwa strukturalna i typograficzna trzech katalogów publicznych.
   Moduły 35–37 powinny zawierać wyłącznie różnice wynikające z typu danych:
   układ kart, specjalne kontrolki i treść radaru.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Nagłówek strony i hierarchia sekcji
   -------------------------------------------------------------------------- */

.directory-page-head {
    padding: 56px 0 44px;
}

.directory-page-head h1 {
    margin-bottom: 14px;
    font-size: var(--font-size-heading-page);
    font-weight: var(--font-weight-heading-page);
    line-height: 1.08;
    letter-spacing: var(--letter-spacing-heading-page);
}

.directory-page-intro {
    max-width: 780px;
    margin: 0;
    color: var(--color-text-secondary);
    font-size: 18px;
    line-height: 1.6;
}

.directory-panel-head h2 {
    font-size: var(--font-size-heading-panel);
    font-weight: var(--font-weight-heading-panel);
    line-height: 1.2;
    letter-spacing: var(--letter-spacing-heading-panel);
}

.directory-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
}

.directory-section-head h2 {
    font-size: var(--font-size-heading-directory-section);
    font-weight: var(--font-weight-heading-section);
    line-height: 1.16;
    letter-spacing: var(--letter-spacing-heading-section);
}

.directory-main-section {
    padding-top: 34px;
}

.directory-grid {
    display: grid;
    gap: 16px;
}

/* --------------------------------------------------------------------------
   Powierzchnie katalogów
   -------------------------------------------------------------------------- */

.directory-panel {
    border: 1px solid var(--color-border-default);
    border-radius: var(--radius-panel);
    background: var(--color-surface-card);
    box-shadow: var(--shadow-surface-panel);
}

.directory-card {
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--color-border-default);
    border-radius: var(--radius-card);
    background: var(--color-surface-card);
    color: inherit;
    box-shadow: var(--shadow-surface-card);
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.directory-card:hover {
    border-color: var(--color-border-hover);
    color: inherit;
    box-shadow: var(--shadow-surface-card-hover);
    transform: translateY(-1px);
}

/* --------------------------------------------------------------------------
   Radar — wspólna rama dla spraw i polityków
   -------------------------------------------------------------------------- */

.directory-radar-section {
    padding: 28px 0 0;
}

.directory-radar {
    overflow: hidden;
}

.directory-radar-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    padding: 24px 26px 20px;
    border-bottom: 1px solid var(--color-border-default);
}

.directory-radar-head h2 {
    margin: 5px 0 6px;
}

.directory-radar-head p {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 13px;
}

.directory-radar-list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.directory-radar-list[hidden] {
    display: none;
}

.directory-radar-item {
    min-width: 0;
    display: grid;
    border-right: 1px solid var(--color-border-default);
    transition: background .15s ease;
}

.directory-radar-item:last-child {
    border-right: 0;
}

.directory-radar-item:hover {
    background: var(--color-surface-hover);
    color: inherit;
}

.directory-radar-position {
    color: #b1b6bf;
    font-weight: 850;
    letter-spacing: .04em;
}

.directory-radar-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.directory-radar-copy strong {
    overflow: hidden;
    color: var(--color-text-primary);
    font-size: 14px;
}

.directory-radar-arrow {
    color: #9aa1ab;
    transition: transform .15s ease, color .15s ease;
}

.directory-radar-item:hover .directory-radar-arrow {
    transform: translateX(2px);
    color: var(--color-accent);
}

/* --------------------------------------------------------------------------
   Panel przeglądania, wyszukiwarka i filtry
   -------------------------------------------------------------------------- */

.directory-browse-panel {
    padding: 24px;
}

.directory-browse-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
    margin-bottom: 18px;
}

.directory-browse-head h2 {
    margin: 5px 0 0;
}

.directory-browse-head p {
    max-width: 470px;
    margin: 0;
    color: var(--color-text-muted);
    font-size: 13px;
    line-height: 1.5;
    text-align: right;
}

.directory-filter-form {
    position: relative;
}

.directory-search-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
}

.directory-search-field {
    position: relative;
    display: block;
}

.directory-search-field input {
    padding-left: 43px;
}

.directory-search-icon {
    position: absolute;
    z-index: 1;
    top: 50%;
    left: 14px;
    width: 18px;
    height: 18px;
    color: #747c87;
    transform: translateY(-50%);
    pointer-events: none;
}

.directory-search-icon svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.directory-search-button {
    min-width: 98px;
}

.directory-filter-row {
    display: grid;
    gap: 10px;
    align-items: end;
    margin-top: 14px;
}

.directory-filter-row--cases {
    grid-template-columns: minmax(190px, 1.25fr) minmax(150px, .9fr) minmax(150px, .9fr) minmax(130px, .7fr) auto;
}

.directory-filter-row--politicians {
    grid-template-columns: minmax(190px, 1fr) minmax(230px, 1fr) auto;
}

.directory-filter-field {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    color: #626a76;
    font-size: 12px;
    font-weight: 750;
}

.directory-filter-field select {
    font-size: 14px;
}

.directory-filter-button {
    min-height: 43px;
    white-space: nowrap;
}

.directory-active-filters {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 16px;
    padding-top: 15px;
    border-top: 1px solid var(--color-border-default);
}

.directory-active-filters-label {
    margin-right: 2px;
    color: var(--color-text-muted);
    font-size: 12px;
    font-weight: 700;
}


.directory-clear-filters {
    margin-left: auto;
    color: var(--color-text-muted);
    font-size: 12px;
    font-weight: 700;
}

/* --------------------------------------------------------------------------
   Wyniki, sortowanie, empty state i paginacja
   -------------------------------------------------------------------------- */

.directory-results-head {
    margin: 34px 0 16px;
}

.directory-results-head h2 {
    margin: 4px 0;
}

.directory-results-head p {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 13px;
}

.directory-sort-form label {
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--color-text-muted);
    font-size: 12px;
    font-weight: 700;
}

.directory-sort-form select {
    min-width: 210px;
    font-size: 13px;
}

.directory-empty {
    grid-column: 1 / -1;
    min-height: 190px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 7px;
}

.directory-empty strong {
    color: var(--color-text-primary);
    font-size: 17px;
}

.directory-empty span {
    font-size: 13px;
}

.directory-empty a {
    margin-top: 3px;
    color: var(--color-accent);
    font-size: 13px;
    font-weight: 750;
}

.directory-pagination {
    align-items: center;
    justify-content: center;
    margin-top: 28px;
}

.directory-pagination .pagination-gap {
    min-width: 26px;
    color: var(--color-text-muted);
    text-align: center;
}

.directory-pagination .pagination-direction {
    font-weight: 800;
}

/* --------------------------------------------------------------------------
   Grupy katalogu — obecnie używane przez /partie
   -------------------------------------------------------------------------- */

.directory-group-head {
    margin-bottom: 22px;
}

.directory-group-head h2 {
    margin: 5px 0 0;
}

.directory-count-badge {
    flex-shrink: 0;
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1040px) {
    .directory-radar-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .directory-radar-item:nth-child(2) {
        border-right: 0;
    }

    .directory-radar-item:nth-child(-n + 2) {
        border-bottom: 1px solid var(--color-border-default);
    }
}

@media (max-width: 760px) {
    .directory-panel-head,
    .directory-section-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .directory-browse-head p {
        max-width: none;
        text-align: left;
    }

    .directory-search-row,
    .directory-filter-row {
        grid-template-columns: 1fr;
    }

    .directory-search-button,
    .directory-filter-button,
    .directory-sort-form,
    .directory-sort-form label,
    .directory-sort-form select {
        width: 100%;
    }

    .directory-sort-form label {
        align-items: stretch;
        flex-direction: column;
    }
}

@media (max-width: 720px) {
    .directory-page-head {
        padding: 42px 0 34px;
    }

    .directory-page-head h1 {
        font-size: var(--font-size-heading-page-mobile);
    }

    .directory-page-intro {
        font-size: 16px;
    }

    .directory-panel-head h2 {
        font-size: var(--font-size-heading-panel-mobile);
    }

    .directory-section-head h2 {
        font-size: var(--font-size-heading-directory-section-mobile);
    }
}

@media (max-width: 580px) {
    .directory-radar-section {
        padding-top: 20px;
    }

    .directory-radar-head,
    .directory-browse-panel {
        padding: 19px;
    }

    .directory-radar-list {
        grid-template-columns: 1fr;
    }

    .directory-radar-item,
    .directory-radar-item:nth-child(2) {
        border-right: 0;
        border-bottom: 1px solid var(--color-border-default);
    }

    .directory-radar-item:last-child {
        border-bottom: 0;
    }

    .directory-active-filters {
        align-items: flex-start;
    }

    .directory-clear-filters {
        width: 100%;
        margin: 4px 0 0;
    }

    .directory-card {
        padding: 18px;
    }
}

/* ==========================================================================
   Katalog spraw – /sprawy

   Tylko różnice specyficzne dla spraw. Wspólny szkielet katalogów znajduje
   się w 34-directory-system.css.
   ========================================================================== */

.cases-database-stats {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 24px;
    color: var(--muted);
    font-size: 14px;
}

.cases-database-stats strong {
    color: var(--text);
    font-size: 15px;
}

.cases-radar-tabs {
    display: inline-flex;
    flex-shrink: 0;
    gap: 4px;
    padding: 4px;
    border: 1px solid var(--line);
    border-radius: var(--radius-control-large);
    background: var(--soft);
}


.cases-radar-item {
    grid-template-columns: auto 1fr auto;
    gap: 12px;
    align-items: start;
    padding: 20px 18px;
}

.cases-radar-position {
    font-size: 12px;
}

.cases-radar-copy {
    gap: 7px;
}

.cases-radar-copy strong {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-height: 1.35;
}

.cases-radar-copy small {
    color: var(--muted);
    font-size: 11px;
    line-height: 1.4;
}

.cases-radar-arrow {
    line-height: 1.2;
}

.cases-combobox-shell input {
    font-size: 14px;
}

.cases-politician-picker {
    position: relative;
}

.cases-combobox-shell {
    position: relative;
}

.cases-combobox-shell input {
    padding-right: 34px;
}

.cases-combobox-chevron {
    position: absolute;
    top: 50%;
    right: 12px;
    color: #7b838e;
    font-size: 16px;
    transform: translateY(-56%);
    pointer-events: none;
}

.cases-combobox-options {
    position: absolute;
    z-index: 30;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    max-height: 290px;
    overflow: auto;
    padding: 5px;
    border: 1px solid var(--line);
    border-radius: var(--radius-control-large);
    background: var(--color-surface-card);
    box-shadow: var(--shadow-surface-popover);
}

.cases-combobox-options[hidden] {
    display: none;
}

.cases-combobox-options button {
    width: 100%;
    display: block;
    padding: 9px 10px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--text);
    font: inherit;
    font-size: 13px;
    text-align: left;
    cursor: pointer;
}

.cases-combobox-options button:hover,
.cases-combobox-options button:focus {
    outline: none;
    background: var(--soft);
}

.cases-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 470px), 1fr));
}

.cases-grid .case-list-card {
    min-height: 248px;
    height: 100%;
    display: flex;
    flex-direction: column;
}


.cases-grid .case-list-card .case-meta {
    font-size: 12px;
}

.cases-grid .case-list-card h2 {
    margin: 9px 0 10px;
    font-size: 20px;
    line-height: 1.23;
}

.cases-grid .case-list-card h2 a:hover {
    color: var(--accent);
}

.cases-grid .case-list-card .case-summary-clamp {
    -webkit-line-clamp: 3;
    margin-bottom: 15px;
    color: #545c67;
    font-size: 13.5px;
    line-height: 1.55;
}

.cases-grid .case-list-card .case-entities {
    margin-top: auto;
    margin-bottom: 14px;
    padding-top: 2px;
}

.cases-grid .case-list-card .case-entity-visual {
    min-height: 30px;
}

.cases-grid .case-list-card .case-entity-media {
    width: 26px;
    height: 26px;
    flex-basis: 26px;
}

.case-list-footer {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 0 !important;
    padding-top: 13px !important;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 11.5px;
}

@media (max-width: 560px) {
    .cases-database-stats {
        gap: 6px 8px;
        font-size: 12px;
    }


    .cases-grid .case-list-card {
        min-height: 0;
    }

    .cases-grid .case-list-card h2 {
        font-size: 19px;
    }
}

@media (max-width: 980px) {
    .directory-filter-row--cases {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .directory-filter-row--cases .directory-filter-button {
        width: 100%;
    }
}

@media (max-width: 760px) {
    .directory-filter-row--cases {
        grid-template-columns: 1fr;
    }

    .cases-radar-tabs {
        width: 100%;
    }

    .cases-radar-tab {
        flex: 1;
    }
}

@media (max-width: 580px) {
    .cases-radar-tabs {
        flex-direction: column;
    }
}

/* ==========================================================================
   Katalog polityków – /politycy

   Tylko różnice specyficzne dla polityków. Wspólny szkielet katalogów
   znajduje się w 34-directory-system.css.
   ========================================================================== */

.politicians-radar-period {
    flex-shrink: 0;
    padding: 6px 9px;
    border-radius: 999px;
    background: var(--soft);
    color: #68717d;
    font-size: 11px;
    font-weight: 750;
}

.politicians-radar-item {
    grid-template-columns: auto 48px minmax(0, 1fr) auto;
    gap: 11px;
    align-items: center;
    padding: 18px 16px;
}

.politicians-radar-position {
    align-self: flex-start;
    padding-top: 2px;
    font-size: 11px;
}

.politicians-radar-photo {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 1px solid #e0e3e8;
    border-radius: 50%;
    background: #f1f3f5;
    color: #68717d;
    font-size: 13px;
    font-weight: 850;
}

.politicians-radar-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.politicians-radar-copy {
    gap: 4px;
}

.politicians-radar-copy strong {
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.politicians-radar-office {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    color: #4f5864;
    font-size: 11.5px;
    line-height: 1.4;
}

.politicians-radar-affiliation {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 5px;
    color: var(--muted);
    font-size: 10.5px;
    line-height: 1.35;
}

.politicians-radar-affiliation > span:last-child {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.politicians-party-mini-logo {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 1px solid #e1e4e8;
    border-radius: 5px;
    background: #fff;
}

.politicians-party-mini-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.politicians-radar-arrow {
    font-size: 15px;
}

.politicians-directory-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.politician-directory-card {
    position: relative;
    min-height: 184px;
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr) auto;
    gap: 18px;
    align-items: start;
}


.politician-directory-photo {
    width: 92px;
    height: 92px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 1px solid #e0e3e8;
    border-radius: 50%;
    background: #f1f3f5;
    color: #68717d;
    font-size: 22px;
    font-weight: 850;
}

.politician-directory-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.politician-directory-content {
    min-width: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.politician-directory-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.politician-directory-name {
    display: block;
    margin: 0 0 4px;
    color: var(--text);
    font-size: 19px;
    line-height: 1.25;
}

.politician-directory-card:hover .politician-directory-name {
    color: var(--accent);
}

.politician-directory-office {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    color: #424b57;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.45;
}

.politician-directory-affiliation {
    min-width: 0;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 6px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.35;
}

.politician-directory-affiliation > span:last-child {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.politician-directory-party-logo {
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 1px solid #e1e4e8;
    border-radius: 6px;
    background: #fff;
}

.politician-directory-party-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.politician-directory-description {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    margin-top: 12px;
    color: #59616d;
    font-size: 12.5px;
    line-height: 1.5;
}

.politician-directory-footer {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: auto;
    padding-top: 14px;
    color: var(--muted);
    font-size: 11.5px;
    line-height: 1.4;
}

.politician-directory-arrow {
    align-self: center;
    color: #9aa1ab;
    font-size: 17px;
    transition: transform .15s ease, color .15s ease;
}

.politician-directory-card:hover .politician-directory-arrow {
    transform: translateX(2px);
    color: var(--accent);
}

@media (max-width: 1040px) {
    .politicians-directory-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 580px) {
    .politician-directory-card {
        min-height: 0;
        grid-template-columns: 70px minmax(0, 1fr);
        gap: 14px;
    }

    .politician-directory-photo {
        width: 70px;
        height: 70px;
        font-size: 18px;
    }

    .politician-directory-name {
        font-size: 18px;
    }

    .politician-directory-arrow {
        display: none;
    }

    .politician-directory-description,
    .politician-directory-footer {
        grid-column: 1 / -1;
    }
}

/* ==========================================================================
   Katalog partii – /partie

   Karty i grupowanie specyficzne dla partii. Wspólny szkielet katalogów
   znajduje się w 34-directory-system.css.
   ========================================================================== */

.parties-directory-section {
    padding-bottom: 74px;
}

.parties-directory-group + .parties-directory-group {
    margin-top: 58px;
    padding-top: 52px;
    border-top: 1px solid var(--line);
}

.parties-directory-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.party-directory-card {
    display: flex;
    flex-direction: column;
    min-height: 270px;
}


.party-directory-card-top {
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr);
    gap: 19px;
    align-items: center;
}

.party-directory-logo-link {
    display: block;
}

.party-directory-logo {
    width: 86px;
    height: 86px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 11px;
    object-fit: contain;
    border: 1px solid #e0e4e8;
    border-radius: 17px;
    background: #f7f9fa;
}

.party-directory-logo-placeholder {
    color: #37677f;
    font-size: 27px;
    font-weight: 850;
}

.party-directory-identity {
    min-width: 0;
}

.party-directory-title-row {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 8px 10px;
}

.party-directory-title-row h3 {
    min-width: 0;
    margin: 0;
    font-size: 21px;
    line-height: 1.25;
    letter-spacing: -.015em;
}

.party-directory-title-row h3 a {
    color: var(--text);
}

.party-directory-title-row h3 a:hover,
.party-directory-profile-link:hover {
    color: var(--accent);
}

.party-directory-status-dissolved {
    background: #f3eded;
    color: #87565a;
}

.party-directory-short-name {
    margin-top: 7px;
}

.party-directory-leader {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 5px;
    margin: 10px 0 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.4;
}

.party-directory-leader span::after {
    content: ":";
}

.party-directory-leader strong {
    color: #4a525d;
    font-weight: 750;
}

.party-directory-description {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    min-height: 43px;
    margin: 19px 0 0;
    color: #555e69;
    font-size: 13px;
    line-height: 1.62;
}

.party-directory-footer {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-top: auto;
    padding-top: 20px;
    border-top: 1px solid var(--line);
}

.party-directory-members {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 11px;
}

.party-directory-avatar-stack {
    display: flex;
    flex-shrink: 0;
    padding-left: 6px;
}

.party-directory-avatar {
    position: relative;
    z-index: 1;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: -7px;
    overflow: hidden;
    border: 2px solid #fff;
    border-radius: 50%;
    background: #edf1f4;
    color: #68717d;
    font-size: 10px;
    font-weight: 850;
    box-shadow: 0 0 0 1px rgba(15, 23, 42, .08);
    transition: transform .15s ease, z-index .15s ease;
}

.party-directory-avatar:hover {
    z-index: 3;
    transform: translateY(-2px);
}

.party-directory-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.party-directory-avatar-more {
    z-index: 0;
    background: #e9edf0;
    color: #5e6671;
}

.party-directory-members-count {
    color: #5c6570;
    font-size: 11px;
    font-weight: 750;
    line-height: 1.35;
}

.party-directory-card-actions {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 7px;
    text-align: right;
}

.party-directory-case-count {
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
}

.party-directory-profile-link {
    color: var(--text);
    font-size: 12px;
    font-weight: 800;
}

.party-directory-profile-link span {
    display: inline-block;
    margin-left: 3px;
    transition: transform .15s ease;
}

.party-directory-profile-link:hover span {
    transform: translateX(2px);
}

.parties-directory-historical .party-directory-card {
    background: var(--color-surface-subtle);
}

@media (max-width: 860px) {
    .parties-directory-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .parties-directory-section {
        padding-bottom: 54px;
    }

    .party-directory-card {
        min-height: 0;
    }

    .party-directory-card-top {
        grid-template-columns: 70px minmax(0, 1fr);
        gap: 14px;
    }

    .party-directory-logo {
        width: 70px;
        height: 70px;
        border-radius: 14px;
    }

    .party-directory-title-row h3 {
        font-size: 19px;
    }

    .party-directory-description {
        min-height: 0;
    }

    .party-directory-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .party-directory-card-actions {
        width: 100%;
        align-items: flex-start;
        flex-direction: row;
        justify-content: space-between;
        text-align: left;
    }
}

/* Publiczne breadcrumbs: jedna warstwa wizualna dla spraw, polityków i partii. */
.seo-breadcrumbs {
    margin: 0 0 18px;
    font-size: 13px;
    line-height: 1.45;
    color: var(--muted);
}

.seo-breadcrumbs ol {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.seo-breadcrumbs li {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.seo-breadcrumbs a {
    color: inherit;
    text-decoration: none;
}

.seo-breadcrumbs a:hover,
.seo-breadcrumbs a:focus-visible {
    color: var(--text);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.seo-breadcrumbs [aria-current="page"] {
    display: block;
    max-width: min(62vw, 520px);
    overflow: hidden;
    color: var(--text);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.seo-breadcrumbs-separator {
    color: var(--border-strong, var(--muted));
}

@media (max-width: 700px) {
    .seo-breadcrumbs {
        margin-bottom: 14px;
    }

    .seo-breadcrumbs [aria-current="page"] {
        max-width: 54vw;
    }
}

/* ==========================================================================
   Tematy – katalog, landing tematu i powiązania na kartach/sprawach
   ========================================================================== */

.topics-page-head,
.topic-page-head {
    padding-bottom: 42px;
}

.topics-page-intro,
.topic-page-description {
    max-width: 820px;
}

.topics-directory-stats,
.topic-page-stats {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 20px;
    color: var(--muted);
    font-size: 13px;
}

.topics-directory-stats strong,
.topic-page-stats strong {
    color: var(--text);
    font-weight: 850;
}

.topics-directory-section,
.topic-cases-section {
    padding-bottom: 74px;
}

.topics-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.topic-card {
    min-width: 0;
    display: flex;
    flex-direction: column;
    min-height: 245px;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 26px rgba(15, 23, 42, .035);
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.topic-card:hover {
    border-color: #d4dbe2;
    box-shadow: 0 14px 34px rgba(15, 23, 42, .07);
    transform: translateY(-1px);
}

.topic-card-topline {
    min-height: 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 18px;
}

.topic-card-count {
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
}

.topic-card h2 {
    margin: 0;
    font-size: 22px;
    line-height: 1.25;
    letter-spacing: -.018em;
}

.topic-card h2 a {
    color: var(--text);
}

.topic-card h2 a:hover,
.topic-card-link:hover {
    color: var(--accent);
}

.topic-card p {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    margin: 13px 0 22px;
    color: #59626d;
    font-size: 13px;
    line-height: 1.65;
}

.topic-card-link {
    margin-top: auto;
    color: var(--text);
    font-size: 12px;
    font-weight: 850;
}

.topic-card-link span {
    display: inline-block;
    margin-left: 3px;
    transition: transform .15s ease;
}

.topic-card-link:hover span {
    transform: translateX(2px);
}

.topic-results-head {
    margin-bottom: 20px;
}

.topic-cases-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.case-topic-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 14px 0 0;
}

.case-topic-chip {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 9px;
    border: 1px solid #dfe4e8;
    border-radius: 999px;
    background: #f8fafb;
    color: #53616d;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
}

.case-topic-chip:hover,
.case-topic-chip.is-current {
    border-color: #cbd7de;
    background: #eef4f6;
    color: var(--text);
}

/* Globalne wyszukiwanie – wynik typu Temat. */
.search-topics-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.search-topic-card {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding: 17px 18px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: #fff;
    color: var(--text);
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.search-topic-card:hover {
    border-color: #d5d9e0;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .07);
    transform: translateY(-1px);
    color: var(--text);
}

.search-topic-card strong {
    font-size: 15px;
    line-height: 1.3;
}

.search-topic-card span {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    color: #5d6671;
    font-size: 12px;
    line-height: 1.5;
}

.search-topic-card small {
    margin-top: auto;
    color: var(--muted);
    font-size: 11px;
    font-weight: 750;
}

@media (max-width: 820px) {
    .topics-grid,
    .topic-cases-grid,
    .search-topics-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .topics-directory-section,
    .topic-cases-section {
        padding-bottom: 54px;
    }

    .topic-card {
        min-height: 0;
        padding: 20px;
    }

    .topic-card-topline {
        align-items: flex-start;
        flex-direction: column;
        gap: 7px;
    }

    .topic-card h2 {
        font-size: 20px;
    }

}

/* ==========================================================================
   Obserwowanie – wspólny box na sprawach, profilach polityków i partii
   ========================================================================== */

.follow-box {
    margin-top: 24px;
    padding: 20px;

    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-surface-card);
}

.follow-box strong {
    display: block;
    margin-bottom: 4px;

    font-size: 16px;
    line-height: 1.3;
}

.follow-box p {
    margin: 0;

    color: var(--muted);
    font-size: 13px;
    line-height: 1.55;
}


/* --------------------------------------------------------------------------
   Kompaktowy wariant używany na stronach encji
   -------------------------------------------------------------------------- */

.follow-box-compact {
    width: 100%;
    max-width: 720px;
    margin: 30px 0 0;
    padding: 18px 20px;

    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-surface-card);
}

.follow-box-compact strong {
    margin-bottom: 3px;
    font-size: 14px;
}

.follow-box-compact p {
    color: #626a75;
    font-size: 12px;
    line-height: 1.48;
}

.follow-box-compact .follow-box-content,
.follow-box-compact .follow-box-status-content,
.follow-box-compact .follow-form-main {
    display: grid;
    grid-template-columns: minmax(170px, .8fr) minmax(300px, 1.2fr);
    align-items: center;
    gap: 7px 22px;
}


/* --------------------------------------------------------------------------
   Pierwszy zapis – e-mail, wyraźna zgoda i DOI
   -------------------------------------------------------------------------- */

.follow-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
    max-width: 680px;
}

.follow-box-compact .follow-form {
    max-width: none;
    margin: 0;
}

.follow-form-row {
    display: flex;
    gap: 8px;
    width: 100%;
    max-width: 520px;
}

.follow-box-compact .follow-form-row {
    max-width: none;
}

.follow-form input[type="email"] {
    flex: 1;
}

.follow-box-compact .follow-form input[type="email"] {
    padding: 10px 11px;
    font-size: 12px;
}

.follow-consent-panel {
    width: 100%;
    padding: 11px 12px 10px;

    background: #f8f9fb;
    border: 1px solid #e4e7ec;
    border-radius: 10px;
}

.follow-consent {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    width: 100%;

    color: #5e6672;
    font-size: 12.5px;
    line-height: 1.5;
    cursor: pointer;
}

.follow-consent input[type="checkbox"] {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    margin: 1px 0 0;
    padding: 0;

    accent-color: var(--accent);
    cursor: pointer;
}

.follow-consent input[type="checkbox"]:focus-visible {
    outline: 2px solid rgba(179, 32, 37, .3);
    outline-offset: 2px;
}

.follow-consent span {
    display: block;
}

.follow-consent-support {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 5px 18px;
    margin-top: 7px;
    padding-left: 28px;
}

.follow-consent-links {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;

    color: #626a75;
    font-size: 11.5px;
    line-height: 1.4;
}

.follow-consent-links a {
    color: inherit;
    font-weight: 750;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.follow-consent-links a:hover {
    color: var(--text);
}

.follow-box .follow-confirmation-note {
    color: #737b86;
    font-size: 11.5px;
    line-height: 1.4;
}

.follow-box-compact .follow-form .button,
.follow-box-compact .follow-box-action .button,
.follow-box-compact .follow-box-status-content .button {
    padding: 9px 12px;
    font-size: 11px;
}

.follow-box-action {
    margin-top: 2px;
}

.follow-box-compact .follow-box-action {
    margin: 0;
}


/* --------------------------------------------------------------------------
   Obserwuje
   -------------------------------------------------------------------------- */

.follow-box-status {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.follow-box-check {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;
    background: #e8f5ed;
    color: var(--success);

    font-size: 15px;
    font-weight: 800;
}

.follow-box-compact .follow-box-check {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    font-size: 12px;
}

.follow-box-status-content {
    flex: 1;
    min-width: 0;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.follow-box-status-content form {
    flex-shrink: 0;
}

.follow-box-status-content .button {
    padding: 8px 11px;
    font-size: 12px;
}

/* ==========================================================================
   /obserwowane – konto
   ========================================================================== */

.following-account {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;

    margin-bottom: 30px;
    padding: 15px 18px;

    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
}

.following-account span {
    color: var(--muted);
    font-size: 13px;
}

.following-account strong {
    font-size: 13px;
}


/* ==========================================================================
   /obserwowane – sekcje
   ========================================================================== */

.following-section {
    margin-top: 32px;
}

.following-section:first-of-type {
    margin-top: 0;
}

.following-section > h2 {
    display: flex;
    align-items: center;
    gap: 8px;

    margin-bottom: 14px;

    font-size: 22px;
}

.following-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}


/* ==========================================================================
   /obserwowane – pojedynczy obserwowany element
   ========================================================================== */

.following-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;

    padding: 18px 20px;

    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-surface-card);
}

.following-item-main {
    flex: 1;
    min-width: 0;
}

.following-item .case-meta {
    font-size: 12px;
}

.following-item h3 {
    margin: 7px 0 9px;

    font-size: 17px;
    line-height: 1.25;
}

.following-item .case-footer {
    font-size: 12px;
}

.following-item > form {
    flex-shrink: 0;
}

.following-item > form .button {
    padding: 8px 11px;

    font-size: 12px;
    white-space: nowrap;
}


/* ==========================================================================
   Obserwowani politycy / partie
   ========================================================================== */

.following-person {
    flex: 1;
    min-width: 0;

    display: flex;
    align-items: center;
    gap: 14px;
}

.following-person h3 {
    margin: 0 0 4px;
}

.following-avatar {
    width: 52px;
    height: 52px;
    flex: 0 0 52px;

    object-fit: contain;

    padding: 3px;

    background: #fff;
    border: 1px solid var(--line);
    border-radius: 10px;
}


/* ==========================================================================
   Wylogowanie
   ========================================================================== */

.following-account-actions {
    margin-top: 36px;
    padding-top: 22px;

    border-top: 1px solid var(--line);
}

.following-account-actions .button {
    font-size: 13px;
}


/* ==========================================================================
   Logowanie do /obserwowane
   ========================================================================== */

.follow-manage-login {
    max-width: 620px;

    padding: 26px;

    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-surface-card);
}

.follow-manage-login h2 {
    margin-bottom: 8px;
    font-size: 22px;
}

.follow-manage-login > p {
    margin: 0 0 20px;

    color: var(--muted);
    font-size: 14px;
}

/* ==========================================================================
   Accessibility
   ========================================================================== */

.sr-only {
    position: absolute;

    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;

    overflow: hidden;
    clip: rect(0, 0, 0, 0);

    white-space: nowrap;
    border: 0;
}


/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 650px) {

    .follow-box {
        padding: 17px;
    }

    .follow-box-compact {
        padding: 16px;
    }

    .follow-box-compact .follow-form-main,
    .follow-box-compact .follow-box-content,
    .follow-box-compact .follow-box-status-content {
        grid-template-columns: 1fr;
        align-items: stretch;
        gap: 12px;
    }

    .follow-form-row {
        flex-direction: column;
    }

    .follow-form-row .button,
    .follow-box-compact .follow-box-action .button,
    .follow-box-compact .follow-box-status-content .button {
        width: 100%;
    }

    .follow-consent-panel {
        padding: 11px;
    }

    .follow-consent-support {
        display: block;
        padding-left: 28px;
    }

    .follow-box .follow-confirmation-note {
        margin-top: 5px;
    }

    .follow-box-status-content {
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
    }


    .following-account {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }

    .following-section {
        margin-top: 28px;
    }

    .following-section > h2 {
        font-size: 20px;
    }

    .following-item {
        align-items: stretch;
        flex-direction: column;
        gap: 14px;

        padding: 16px;
    }

    .following-item > form .button {
        width: 100%;
    }

    .following-person {
        width: 100%;
    }

    .follow-manage-login {
        padding: 20px;
    }

}


/* ==========================================================================
   /obserwowane – centrum powiadomień
   ========================================================================== */

.notifications-hero {
    background: #fff;
    border-bottom: 1px solid var(--line);
}

.notifications-hero-guest {
    padding: clamp(54px, 7vw, 86px) 0;
}

.notifications-guest-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr);
    align-items: center;
    gap: clamp(42px, 7vw, 88px);
}

.notifications-guest-copy h1 {
    max-width: 720px;
    margin: 10px 0 18px;
    font-size: clamp(42px, 5vw, 62px);
}

.notifications-hero-lead {
    max-width: 680px;
    margin: 0;
    color: #4d5561;
    font-size: 18px;
    line-height: 1.65;
}

.notifications-hero-options {
    max-width: 690px;
    margin-top: 32px;
    border-top: 1px solid var(--line);
}

.notifications-hero-option {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 14px 2px;
    border-bottom: 1px solid var(--line);
}

.notifications-hero-option:hover {
    color: var(--text);
}

.notifications-option-icon {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--soft);
    color: #535b66;
    border-radius: 11px;
    transition: background .15s ease, color .15s ease;
}

.notifications-option-icon svg,
.notifications-login-icon svg,
.notifications-history-marker svg,
.notifications-history-empty-icon svg,
.notifications-empty-icon svg,
.notifications-following-media svg,
.notifications-recommendation-media svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.notifications-hero-option:hover .notifications-option-icon {
    background: #f9e9ea;
    color: var(--accent);
}

.notifications-hero-option > span:nth-child(2) {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.notifications-hero-option strong {
    font-size: 14px;
}

.notifications-hero-option small {
    margin-top: 2px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.45;
}

.notifications-option-arrow {
    color: #959ba4;
    font-size: 19px;
    transition: color .15s ease, transform .15s ease;
}

.notifications-hero-option:hover .notifications-option-arrow {
    color: var(--accent);
    transform: translateX(3px);
}

.notifications-login-card {
    padding: clamp(26px, 4vw, 36px);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-feature);
    box-shadow: var(--shadow-surface-feature);
}

.notifications-login-icon {
    width: 46px;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    background: #f9e9ea;
    color: var(--accent);
    border-radius: 50%;
}

.notifications-login-icon svg {
    width: 23px;
    height: 23px;
}

.notifications-login-card h2 {
    margin-bottom: 10px;
    font-size: 27px;
}

.notifications-login-card > p {
    margin: 0;
    color: #5b626d;
    font-size: 14px;
    line-height: 1.65;
}

.notifications-login-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 9px;
    margin-top: 22px;
}


.notifications-login-note {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 13px;
    color: var(--muted);
    font-size: 11px;
}

.notifications-login-note span {
    color: var(--success);
    font-weight: 800;
}


/* --------------------------------------------------------------------------
   Jak to działa
   -------------------------------------------------------------------------- */

.notifications-how-section {
    background: var(--bg);
}

.notifications-section-head {
    align-items: flex-end;
}

.notifications-section-head .section-description {
    max-width: 720px;
}

.notifications-how-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.notifications-how-card {
    position: relative;
    min-height: 190px;
    padding: 26px;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-surface-card);
}

.notifications-step-number {
    display: inline-block;
    margin-bottom: 28px;
    color: var(--accent);
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .1em;
}

.notifications-how-card h3 {
    margin-bottom: 8px;
    font-size: 21px;
}

.notifications-how-card p {
    max-width: 330px;
    margin: 0;
    color: #5b626d;
    font-size: 14px;
    line-height: 1.6;
}


/* --------------------------------------------------------------------------
   Nagłówek zalogowanego centrum
   -------------------------------------------------------------------------- */

.notifications-page-head {
    padding: 54px 0 38px;
}

.notifications-dashboard-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 40px;
}

.notifications-dashboard-heading h1 {
    max-width: 760px;
}

.notifications-dashboard-heading .lead {
    max-width: 800px;
    margin-bottom: 0;
}

.notifications-dashboard-status {
    min-width: 270px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    padding-bottom: 4px;
}

.notifications-dashboard-status span {
    color: var(--muted);
    font-size: 11px;
}

.notifications-dashboard-status strong {
    margin-top: 3px;
    font-size: 13px;
}


/* --------------------------------------------------------------------------
   Historia powiadomień
   -------------------------------------------------------------------------- */

.notifications-dashboard-section {
    padding-bottom: 30px;
}

.notifications-history-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.notifications-history-card {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 18px;
    padding: 22px 24px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-surface-card);
}

.notifications-history-marker {
    width: 46px;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #f9e9ea;
    color: var(--accent);
    border-radius: 50%;
}

.notifications-history-content {
    min-width: 0;
}

.notifications-history-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 7px;
}

.notifications-history-kind {
    color: var(--accent);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.notifications-history-topline time {
    color: var(--muted);
    font-size: 11px;
    white-space: nowrap;
}

.notifications-history-card h3 {
    margin: 0;
    font-size: 20px;
}

.notifications-history-card h3 a:hover {
    color: var(--accent);
}

.notifications-history-events {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.notifications-history-event {
    min-width: min(250px, 100%);
    display: flex;
    flex-direction: column;
    padding: 10px 12px;
    background: var(--bg);
    border-radius: 10px;
}

.notifications-history-event > span {
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.notifications-history-event strong {
    margin-top: 2px;
    font-size: 12px;
    line-height: 1.4;
}

.notifications-history-event small {
    margin-top: 2px;
    color: var(--muted);
    font-size: 10px;
}

.notifications-history-more {
    align-self: center;
    color: var(--muted);
    font-size: 11px;
}

.notifications-history-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 16px;
    padding-top: 13px;
    border-top: 1px solid var(--line);
}

.notifications-history-reason {
    min-width: 0;
    color: var(--muted);
    font-size: 11px;
}

.notifications-history-footer > a {
    flex-shrink: 0;
    color: var(--text);
    font-size: 12px;
    font-weight: 800;
}

.notifications-history-footer > a:hover {
    color: var(--accent);
}

.notifications-history-empty,
.notifications-empty-state {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 25px;
    background: #fff;
    border: 1px dashed #cfd4dc;
    border-radius: var(--radius-card);
}

.notifications-history-empty-icon,
.notifications-empty-icon {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--soft);
    color: #69717c;
    border-radius: 50%;
}

.notifications-history-empty h3,
.notifications-empty-state h3 {
    margin: 0 0 5px;
    font-size: 18px;
}

.notifications-history-empty p,
.notifications-empty-state p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
}

.notifications-empty-state .button {
    margin-top: 14px;
}


/* --------------------------------------------------------------------------
   Obserwowane
   -------------------------------------------------------------------------- */

.notifications-following-section {
    padding-top: 38px;
    background: #fff;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.notifications-following-head {
    margin-bottom: 18px;
}

.notifications-following-head h2 {
    display: flex;
    align-items: center;
    gap: 8px;
}

.notifications-filter-tabs,
.notifications-recommendation-tabs {
    gap: 7px;
    overflow-x: auto;
    padding-bottom: 2px;
    margin-bottom: 16px;
    scrollbar-width: none;
}

.notifications-filter-tabs::-webkit-scrollbar,
.notifications-recommendation-tabs::-webkit-scrollbar {
    display: none;
}


.notifications-filter-tabs button span {
    margin-left: 4px;
    color: #8b919a;
    font-size: 11px;
}


.notifications-filter-tabs button.is-active span {
    color: rgba(255, 255, 255, .72);
}

.notifications-following-list {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.notifications-following-card {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) auto;
    align-items: center;
    gap: 15px;
    padding: 15px 17px;
    background: var(--bg);
    border: 1px solid var(--line);
    border-radius: var(--radius-box);
}

.notifications-following-card[hidden],
.notifications-recommendation-grid[hidden] {
    display: none !important;
}

.notifications-following-media,
.notifications-recommendation-media {
    width: 52px;
    height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #fff;
    color: #59616c;
    border: 1px solid var(--line);
    border-radius: 11px;
}

.notifications-following-media img,
.notifications-recommendation-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.notifications-following-media-party img,
.notifications-recommendation-media.is-party img {
    object-fit: contain;
    padding: 4px;
}

.notifications-following-media > span,
.notifications-recommendation-media > span {
    font-size: 13px;
    font-weight: 850;
}

.notifications-following-media-case,
.notifications-recommendation-media.is-case {
    background: #f9e9ea;
    color: var(--accent);
    border-color: transparent;
}

.notifications-following-copy {
    min-width: 0;
}

.notifications-following-type {
    display: block;
    margin-bottom: 2px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.notifications-following-copy h3 {
    margin: 0;
    font-size: 15px;
    line-height: 1.3;
}

.notifications-following-copy h3 small {
    color: var(--muted);
    font-size: .84em;
}

.notifications-following-copy p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: 11px;
}

.notifications-following-actions {
    display: flex;
    align-items: center;
    gap: 13px;
}

.notifications-following-view {
    color: #555d68;
    font-size: 11px;
    font-weight: 750;
}

.notifications-following-view:hover {
    color: var(--accent);
}



/* --------------------------------------------------------------------------
   Rekomendacje
   -------------------------------------------------------------------------- */

.notifications-recommendations-section {
    background: var(--bg);
}

.notifications-recommendations-auth {
    border-bottom: 1px solid var(--line);
}

.notifications-recommendations-head {
    margin-bottom: 18px;
}

.notifications-recommendation-tabs {
    margin-bottom: 18px;
}

.notifications-recommendation-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.notifications-recommendation-card {
    min-width: 0;
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr) auto;
    align-items: center;
    gap: 15px;
    padding: 17px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-surface-card);
}

.notifications-recommendation-media {
    width: 56px;
    height: 56px;
}

.notifications-recommendation-copy {
    min-width: 0;
}

.notifications-recommendation-reason {
    display: block;
    margin-bottom: 3px;
    color: var(--accent);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.notifications-recommendation-copy h3 {
    margin: 0;
    font-size: 15px;
    line-height: 1.32;
}

.notifications-recommendation-copy p {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: 11px;
}

.notifications-recommendation-action {
    flex-shrink: 0;
}

.notifications-recommendation-action .button {
    padding: 8px 11px;
    font-size: 11px;
}

.notifications-recommendation-link {
    color: #555d68;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.notifications-recommendation-link:hover {
    color: var(--accent);
}


/* --------------------------------------------------------------------------
   Sekcja zaufania
   -------------------------------------------------------------------------- */

.notifications-trust-section {
    padding-top: 0;
    background: var(--bg);
}

.notifications-trust-panel {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: clamp(30px, 6vw, 70px);
    padding: clamp(28px, 4vw, 44px);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-panel);
}

.notifications-trust-intro h2 {
    margin: 8px 0 10px;
    font-size: 30px;
}

.notifications-trust-intro p {
    margin: 0;
    color: #5b626d;
    font-size: 14px;
    line-height: 1.65;
}

.notifications-trust-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 26px;
}

.notifications-trust-grid > div {
    display: flex;
    flex-direction: column;
    padding: 16px 0;
    border-bottom: 1px solid var(--line);
}

.notifications-trust-grid > div:nth-last-child(-n + 2) {
    border-bottom: 0;
}

.notifications-trust-grid strong {
    font-size: 13px;
}

.notifications-trust-grid span {
    margin-top: 4px;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.5;
}


/* --------------------------------------------------------------------------
   Konto i wsparcie
   -------------------------------------------------------------------------- */

.notifications-support-section {
    padding-top: 0;
}

.notifications-account-footer {
    padding: 0 0 54px;
    background: var(--bg);
}

.notifications-account-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding-top: 22px;
    border-top: 1px solid var(--line);
}

.notifications-account-bar > div {
    display: flex;
    flex-direction: column;
}

.notifications-account-bar span {
    color: var(--muted);
    font-size: 11px;
}

.notifications-account-bar strong {
    margin-top: 2px;
    font-size: 12px;
}

.notifications-account-bar .button {
    padding: 8px 11px;
    font-size: 11px;
}

.notifications-account-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

.notifications-disable-all {
    border: 0;
    padding: 8px 2px;
    background: transparent;
    color: var(--danger);
    font: inherit;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
}

.notifications-disable-all:hover {
    text-decoration: underline;
}


@media (max-width: 900px) {
    .notifications-guest-grid,
    .notifications-dashboard-heading,
    .notifications-trust-panel {
        grid-template-columns: 1fr;
    }

    .notifications-login-card {
        max-width: 700px;
    }

    .notifications-dashboard-status {
        min-width: 0;
        align-items: flex-start;
    }

    .notifications-recommendation-grid {
        grid-template-columns: 1fr;
    }
}


@media (max-width: 700px) {
    .notifications-how-grid {
        grid-template-columns: 1fr;
    }

    .notifications-how-card {
        min-height: 0;
    }

    .notifications-step-number {
        margin-bottom: 18px;
    }
}


@media (max-width: 650px) {
    .notifications-hero-guest {
        padding: 42px 0 48px;
    }

    .notifications-guest-grid {
        gap: 34px;
    }

    .notifications-guest-copy h1 {
        font-size: clamp(37px, 11vw, 48px);
    }

    .notifications-hero-lead {
        font-size: 16px;
    }

    .notifications-hero-option {
        grid-template-columns: 39px minmax(0, 1fr) auto;
        gap: 11px;
    }

    .notifications-option-icon {
        width: 39px;
        height: 39px;
    }

    .notifications-login-card {
        padding: 23px 19px;
    }

    .notifications-login-form {
        grid-template-columns: 1fr;
    }

    .notifications-login-form .button {
        width: 100%;
    }

    .notifications-page-head {
        padding: 42px 0 30px;
    }

    .notifications-history-card {
        grid-template-columns: 1fr;
        padding: 19px 17px;
    }

    .notifications-history-marker {
        width: 40px;
        height: 40px;
    }

    .notifications-history-topline,
    .notifications-history-footer {
        align-items: flex-start;
        flex-direction: column;
        gap: 7px;
    }

    .notifications-history-events {
        flex-direction: column;
    }

    .notifications-history-event {
        width: 100%;
    }

    .notifications-following-card,
    .notifications-recommendation-card {
        grid-template-columns: 48px minmax(0, 1fr);
        gap: 12px;
    }

    .notifications-following-media {
        width: 48px;
        height: 48px;
    }

    .notifications-following-actions,
    .notifications-recommendation-action {
        grid-column: 1 / -1;
        justify-content: flex-end;
        padding-top: 10px;
        border-top: 1px solid var(--line);
    }

    .notifications-recommendation-action .button,
    .notifications-recommendation-action form {
        width: 100%;
    }

    .notifications-recommendation-action .button {
        width: 100%;
    }

    .notifications-recommendation-link {
        display: block;
        width: 100%;
        text-align: right;
    }

    .notifications-trust-grid {
        grid-template-columns: 1fr;
    }

    .notifications-trust-grid > div,
    .notifications-trust-grid > div:nth-last-child(-n + 2) {
        border-bottom: 1px solid var(--line);
    }

    .notifications-trust-grid > div:last-child {
        border-bottom: 0;
    }

    .notifications-account-bar {
        align-items: flex-start;
        flex-direction: column;
    }

    .notifications-account-bar .button {
        width: 100%;
    }

    .notifications-account-bar form {
        width: 100%;
    }

    .notifications-account-actions {
        width: 100%;
        align-items: stretch;
        flex-direction: column;
    }

    .notifications-disable-all {
        width: 100%;
        text-align: center;
    }
}

/* ==========================================================================
   Aktualizacje + roczne archiwa spraw
   ========================================================================== */

.public-hub-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-top: 26px;
}

.public-hub-links a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #4f5762;
    font-size: 13px;
    font-weight: 750;
}

.public-hub-links a:hover {
    color: var(--accent);
}

/* /sprawy — wejścia do hubów */

.cases-explore-section {
    padding: 24px 0;
    background: #fff;
}

.cases-explore-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.cases-explore-card {
    position: relative;
    min-width: 0;
    padding: 18px 46px 18px 19px;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    background: #fff;
    color: var(--text);
    transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}

.cases-explore-card:hover {
    color: var(--text);
    border-color: #d8b6b8;
    box-shadow: 0 8px 24px rgba(20, 24, 31, .05);
    transform: translateY(-1px);
}

.cases-explore-kicker {
    display: block;
    margin-bottom: 5px;
    color: var(--accent);
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.cases-explore-card strong {
    display: block;
    margin-bottom: 4px;
    font-size: 16px;
    line-height: 1.3;
}

.cases-explore-card small {
    display: block;
    color: #69717c;
    font-size: 12.5px;
    line-height: 1.5;
}

.cases-explore-card > span:last-child {
    position: absolute;
    top: 50%;
    right: 18px;
    color: #a54a4f;
    font-size: 18px;
    transform: translateY(-50%);
}

/* /aktualizacje */

.updates-page-head {
    padding-bottom: 38px;
}

.updates-page-intro {
    max-width: 760px;
}

.updates-page-stats,
.case-archive-stats {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 22px;
    color: #727a85;
    font-size: 13px;
}

.updates-page-stats strong,
.case-archive-stats strong {
    color: var(--text);
}

.updates-stream-section {
    background: #f6f7f9;
}

.updates-stream-container {
    max-width: 930px;
}

.updates-stream {
    position: relative;
}

.updates-date-divider {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 28px 0 12px;
    color: #8a919b;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.updates-date-divider:first-child {
    margin-top: 0;
}

.updates-date-divider::after {
    content: "";
    height: 1px;
    flex: 1;
    background: #dde1e6;
}

.update-card {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 14px;
    margin-bottom: 12px;
}

.update-card-rail {
    position: relative;
}

.update-card-rail::before {
    content: "";
    position: absolute;
    top: 18px;
    bottom: -30px;
    left: 8px;
    width: 1px;
    background: #d9dde3;
}

.update-card:last-child .update-card-rail::before {
    bottom: 18px;
}

.update-card-rail span {
    position: absolute;
    top: 20px;
    left: 4px;
    width: 9px;
    height: 9px;
    border: 2px solid #fff;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 0 1px #d7b4b6;
}

.update-card-body {
    min-width: 0;
    padding: 20px 22px 18px;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    background: #fff;
    box-shadow: var(--shadow-card);
}

.update-card-topline {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}

.update-card-topline time {
    color: #9298a1;
    font-size: 11.5px;
    font-variant-numeric: tabular-nums;
}

.update-type-badge {
    display: inline-flex;
    align-items: center;
    min-height: 23px;
    padding: 4px 8px;
    border-radius: 999px;
    background: #f8e9ea;
    color: #921d24;
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .035em;
    line-height: 1;
    text-transform: uppercase;
}

.update-type-source-published {
    background: #eef3f8;
    color: #45596d;
}

.update-type-statement-published {
    background: #f3eef8;
    color: #675077;
}

.update-type-case-updated {
    background: #f5f2e9;
    color: #6d6240;
}

.update-card h2 {
    margin: 0 0 8px;
    font-size: clamp(19px, 2.2vw, 23px);
    line-height: 1.28;
    letter-spacing: -.018em;
}

.update-card h2 a {
    color: var(--text);
}

.update-card h2 a:hover {
    color: var(--accent);
}

.update-card-description {
    max-width: 760px;
    margin: 0;
    color: #555e69;
    font-size: 14px;
    line-height: 1.65;
}

.update-card-occurred {
    margin: 9px 0 0;
    color: #858c95;
    font-size: 11.5px;
}

.update-card-occurred strong {
    color: #68717c;
}

.update-card-entities {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    margin-top: 14px;
}

.update-card-entities > span:first-child {
    color: #878e98;
    font-size: 11.5px;
    font-weight: 700;
}

.update-card-topics {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 10px;
}

.update-card-topics a {
    color: #7d5558;
    font-size: 11.5px;
    font-weight: 700;
}

.update-card-topics a:hover {
    color: var(--accent);
}

.update-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin-top: 16px;
    padding-top: 13px;
    border-top: 1px solid #edf0f3;
    color: #8a919a;
    font-size: 11.5px;
}

.update-card-footer a {
    color: var(--accent);
    font-weight: 800;
}

/* Roczne archiwa */

.case-archive-page-intro {
    max-width: 830px;
}

.case-archive-years-bar {
    border-bottom: 1px solid var(--line);
    background: #fff;
}

.case-archive-years-bar .container {
    display: flex;
    align-items: center;
    gap: 16px;
    padding-top: 15px;
    padding-bottom: 15px;
}

.case-archive-years-label {
    flex: 0 0 auto;
    color: #8a919b;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.case-archive-years-list {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.case-archive-year-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 9px;
    border: 1px solid #dfe3e7;
    border-radius: 999px;
    background: #fff;
    color: #515a65;
    font-size: 12px;
    font-weight: 800;
}

.case-archive-year-chip small {
    color: #9a9fa7;
    font-size: 10px;
}

.case-archive-year-chip:hover,
.case-archive-year-chip.is-current {
    border-color: #e1bfc1;
    background: #fff6f6;
    color: var(--accent);
}

.case-archive-year-chip.is-current small {
    color: #aa6c70;
}

.case-archive-cases-section {
    background: #f6f7f9;
}

.case-archive-results-head {
    margin-bottom: 24px;
}

.case-archive-results-head p {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: 13px;
}

.cases-year-archive-section {
    padding-top: 0;
    background: #f6f7f9;
}

.cases-year-archive-panel {
    padding: 26px;
}

.cases-year-archive-head {
    margin-bottom: 20px;
}

.cases-year-archive-head p {
    max-width: 650px;
}

.cases-year-archive-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
}

.cases-year-archive-link {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 10px;
    padding: 13px 14px;
    border: 1px solid #e1e4e8;
    border-radius: 10px;
    background: #fff;
    color: var(--text);
}

.cases-year-archive-link:hover {
    border-color: #debabd;
    color: var(--accent);
}

.cases-year-archive-link strong {
    font-size: 18px;
    font-variant-numeric: tabular-nums;
}

.cases-year-archive-link > span:not(.cases-year-archive-arrow) {
    color: #808791;
    font-size: 11.5px;
}

.cases-year-archive-arrow {
    color: #b26468;
}

@media (max-width: 900px) {
    .cases-explore-grid {
        grid-template-columns: 1fr;
    }

    .cases-year-archive-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 650px) {
    .public-hub-links {
        display: grid;
        gap: 8px;
        margin-top: 22px;
    }

    .cases-explore-section {
        padding-top: 16px;
    }

    .cases-explore-card {
        padding: 16px 42px 16px 16px;
    }

    .updates-stream-section,
    .case-archive-cases-section {
        padding-top: 30px;
        padding-bottom: 36px;
    }

    .update-card {
        grid-template-columns: 12px minmax(0, 1fr);
        gap: 9px;
    }

    .update-card-rail::before {
        left: 5px;
    }

    .update-card-rail span {
        left: 1px;
    }

    .update-card-body {
        padding: 17px 16px 15px;
    }

    .update-card-footer {
        align-items: flex-start;
        flex-direction: column;
        gap: 7px;
    }

    .case-archive-years-bar .container {
        align-items: flex-start;
        flex-direction: column;
        gap: 9px;
    }

    .cases-year-archive-panel {
        padding: 20px 16px;
    }

    .cases-year-archive-grid {
        grid-template-columns: 1fr;
    }
}

/* ================================================================
   Strony wypisywania z powiadomień
   ================================================================ */

   .page-shell {
    width: min(100% - 32px, 760px);
    margin: 48px auto 72px;
}

.content-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-panel);
    padding: 32px;
    box-shadow: var(--shadow-surface-panel);
}

.content-card .eyebrow {
    display: block;
    margin-bottom: 10px;
}

.content-card h1 {
    margin: 0 0 20px;
    font-size: clamp(32px, 5vw, 46px);
    line-height: 1.08;
    letter-spacing: -0.025em;
}

.content-card p {
    max-width: 660px;
    margin: 0 0 16px;
    font-size: 16px;
    line-height: 1.65;
}

.content-card .form-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 26px;
}

.content-card .form-actions a:not(.button) {
    color: var(--muted);
}

@media (max-width: 650px) {
    .page-shell {
        width: min(100% - 22px, 760px);
        margin: 28px auto 50px;
    }

    .content-card {
        padding: 22px;
    }

    .content-card h1 {
        font-size: 32px;
    }
}

/* Statusy systemu powiadomień */

.badge.sent,
.badge.active {
    background: #e6f4ea;
    color: #1f6d3b;
}

.badge.queued,
.badge.pending {
    background: #fff1d8;
    color: #875a00;
}

.badge.sending {
    background: #eef3fb;
    color: #2d4c7c;
}

.badge.failed,
.badge.unsubscribed,
.badge.suppressed {
    background: #f9e5e5;
    color: #8d2020;
}

.badge.partial {
    background: #fff1d8;
    color: #875a00;
}

.badge.skipped,
.badge.cancelled {
    background: #eceff3;
    color: #5f6670;
}

/* ==========================================================================
   Źródła – hierarchia, wyróżnienia i sortowanie
   ========================================================================== */


/* --------------------------------------------------------------------------
   Nagłówek sekcji
   -------------------------------------------------------------------------- */

   .source-section-head {
    align-items: baseline;
    margin-bottom: 8px;
}

.source-section-head h2 {
    display: flex;
    align-items: baseline;
    gap: 7px;
}

.source-count {
    color: var(--muted);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0;
}


/* --------------------------------------------------------------------------
   Grupy źródeł
   -------------------------------------------------------------------------- */

.source-group {
    margin-top: 30px;
}

.source-group-title {
    margin: 0 0 12px;

    color: var(--text);
    font-size: 17px;
    font-weight: 800;
    letter-spacing: -.015em;
}


/*
 * Każda grupa staje się jedną spójną kartą,
 * zamiast szeregu niezależnych ramek.
 */
.source-origin-list,
.source-context-list,
.source-continuation-list,
.source-featured-list,
.source-latest-list,
#all-sources-list {
    overflow: hidden;

    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
}


/*
 * Początek sprawy i najważniejsze materiały otrzymują
 * subtelne wyróżnienie kolorem Aferoteki.
 */
.source-origin-list,
.source-featured-list {
    border-left: 3px solid var(--accent);
    box-shadow: var(--shadow-surface-card);
}


/*
 * Najnowsze są ważne, ale nie konkurują
 * wizualnie z rekomendowanymi.
 */
.source-latest-list {
    background: #fff;
}


/* --------------------------------------------------------------------------
   Pojedyncze źródło
   -------------------------------------------------------------------------- */

.source-origin-list .timeline-item,
.source-context-list .timeline-item,
.source-continuation-list .timeline-item,
.source-featured-list .timeline-item,
.source-latest-list .timeline-item,
#all-sources-list .timeline-item {
    padding: 20px 22px;
    border-bottom: 1px solid var(--line);
}


/*
 * Nie potrzebujemy kreski pod ostatnim
 * elementem karty.
 */
.source-origin-list .timeline-item:last-child,
.source-context-list .timeline-item:last-child,
.source-continuation-list .timeline-item:last-child,
.source-featured-list .timeline-item:last-child,
.source-latest-list .timeline-item:last-child,
#all-sources-list .timeline-item:last-child {
    border-bottom: 0;
}


.source-card {
    transition:
        background .15s ease;
}


.source-card:hover {
    background: #fafbfc;
}


.source-card-content {
    min-width: 0;
}


.source-card h3 {
    margin: 0 0 9px;

    font-size: 18px;
    line-height: 1.32;
    letter-spacing: -.015em;
}


.source-card h3 a {
    color: var(--text);

    transition:
        color .15s ease;
}


.source-card h3 a:hover {
    color: var(--accent);
}


/*
 * Data pozostaje informacją pomocniczą,
 * a nie konkurencją dla tytułu publikacji.
 */
.source-card .timeline-date {
    padding-top: 2px;

    color: var(--muted);
    font-size: 13px;
    line-height: 1.4;
}


/* --------------------------------------------------------------------------
   Badge źródeł
   -------------------------------------------------------------------------- */

.source-badges {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;

    margin: 0 0 9px;
}




/* --------------------------------------------------------------------------
   Lead i metadata
   -------------------------------------------------------------------------- */

   .source-card .source-lead {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;

    overflow: hidden;

    margin: 10px 0;

    color: #4b535e;
    font-size: 14px;
    line-height: 1.62;
}


/* --------------------------------------------------------------------------
   Wydawca i autorzy źródła
   -------------------------------------------------------------------------- */

   .source-credit {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 14px;

    margin-top: 12px;

    color: var(--muted);
    font-size: 12px;
    line-height: 1.35;
}


/* Wydawca */

.source-publisher {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    min-width: 0;
}

.source-publisher-logo {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 3px;

    overflow: hidden;

    background: #fff;
    border: 1px solid var(--line);
    border-radius: 7px;
}

.source-publisher-logo img {
    width: 100%;
    height: 100%;

    object-fit: contain;
}

.source-publisher-name {
    color: #555d68;
    font-weight: 700;
}


/* Autorzy */

.source-authors {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 12px;
}

.source-publisher + .source-authors::before {
    content: "";

    width: 1px;
    height: 22px;

    margin-right: 2px;

    background: var(--line);
}

.source-author {
    display: inline-flex;
    align-items: center;
    gap: 7px;

    min-width: 0;
}

.source-author-avatar {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;

    display: flex;
    align-items: center;
    justify-content: center;

    overflow: hidden;

    background: #eef0f3;
    border: 1px solid var(--line);
    border-radius: 50%;
}

.source-author-avatar img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}

.source-author-initials {
    color: #555d68;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .02em;
}

.source-author-name {
    color: #666d78;
    font-weight: 600;
}

.source-author-legacy .source-author-name {
    font-weight: 500;
}

/* --------------------------------------------------------------------------
   Kompaktowy wariant w "Pozostałych źródłach"
   -------------------------------------------------------------------------- */

   #all-sources-list .source-credit {
    gap: 8px 11px;
    margin-top: 9px;
}

#all-sources-list .source-publisher {
    gap: 6px;
}

#all-sources-list .source-publisher-logo {
    width: 24px;
    height: 24px;
    flex-basis: 24px;

    border-radius: 6px;
}

#all-sources-list .source-authors {
    gap: 6px 10px;
}

#all-sources-list .source-author {
    gap: 5px;
}

#all-sources-list .source-author-avatar {
    width: 24px;
    height: 24px;
    flex-basis: 24px;
}

#all-sources-list .source-author-initials {
    font-size: 9px;
}

#all-sources-list .source-publisher + .source-authors::before {
    height: 18px;
}


/* --------------------------------------------------------------------------
   Przycisk "Pokaż wszystkie"
   -------------------------------------------------------------------------- */

.source-show-all {
    display: flex;
    justify-content: center;

    margin-top: 30px;
}


.source-show-all .button {
    min-width: 230px;
}


/* --------------------------------------------------------------------------
   Pełna lista źródeł
   -------------------------------------------------------------------------- */

.source-all-panel {
    margin-top: 36px;

    scroll-margin-top: 90px;
}


.source-all-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    margin-bottom: 14px;
}


.source-all-head h3 {
    margin: 0;

    font-size: 20px;
}


#all-sources-list {
    box-shadow: var(--shadow-surface-card);
}


/* --------------------------------------------------------------------------
   Sortowanie
   -------------------------------------------------------------------------- */

.source-sort {
    display: flex;
    align-items: center;
    gap: 8px;

    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
}


.source-sort select {
    min-width: 190px;
    padding-right: 34px;
    font-size: 13px;
}


/* ==========================================================================
   Źródła – mobile
   ========================================================================== */

@media (max-width: 650px) {

    .source-section-head h2 {
        gap: 6px;
    }


    .source-count {
        font-size: 12px;
    }


    .source-group {
        margin-top: 26px;
    }


    .source-group-title {
        font-size: 16px;
    }


    .source-origin-list .timeline-item,
    .source-context-list .timeline-item,
    .source-continuation-list .timeline-item,
    .source-featured-list .timeline-item,
    .source-latest-list .timeline-item,
    #all-sources-list .timeline-item {
        padding: 17px;
    }


    .source-card h3 {
        font-size: 17px;
    }


    .source-card .timeline-date {
        padding-top: 0;
        font-size: 12px;
    }


    .source-badges {
        margin-bottom: 8px;
    }


    .source-badges .badge {
        font-size: 9px;
    }


    .source-card .source-lead {
        font-size: 13px;
        line-height: 1.58;
        -webkit-line-clamp: 2;
    }

    .source-credit {
        align-items: flex-start;
        gap: 8px 10px;
    
        margin-top: 10px;
    }
    
    .source-publisher {
        gap: 7px;
    }
    
    .source-publisher-logo {
        width: 26px;
        height: 26px;
        flex-basis: 26px;
    }
    
    .source-authors {
        gap: 7px 10px;
    }
    
    .source-author-avatar {
        width: 27px;
        height: 27px;
        flex-basis: 27px;
    }
    
    .source-publisher + .source-authors::before {
        display: none;
    }
    
    .source-publisher-name,
    .source-author-name {
        font-size: 11px;
    }
    
    #all-sources-list .source-publisher-logo,
    #all-sources-list .source-author-avatar {
        width: 23px;
        height: 23px;
        flex-basis: 23px;
    }


    .source-show-all {
        margin-top: 24px;
    }


    .source-show-all .button {
        width: 100%;
    }


    .source-all-panel {
        margin-top: 30px;

        scroll-margin-top: 120px;
    }


    .source-all-head {
        align-items: stretch;
        flex-direction: column;
        gap: 10px;
    }


    .source-all-head h3 {
        font-size: 18px;
    }


    .source-sort {
        align-items: stretch;
        flex-direction: column;
        gap: 5px;
    }


    .source-sort select {
        width: 100%;
        min-width: 0;
    }

}

/* ==========================================================================
   Monity wsparcia / Patronite
   ========================================================================== */


/* --------------------------------------------------------------------------
   Sekcja
   -------------------------------------------------------------------------- */

   .support-prompt-section {
    padding-top: 22px;
    padding-bottom: 22px;
}


/* --------------------------------------------------------------------------
   Główna karta
   -------------------------------------------------------------------------- */

.support-prompt {
    position: relative;

    overflow: hidden;

    padding: 34px 36px;

    background:
        linear-gradient(
            135deg,
            #ffffff 0%,
            #fbf4f4 100%
        );

    border: 1px solid #eadbdd;
    border-left: 4px solid var(--accent);
    border-radius: var(--radius-panel);

    box-shadow: var(--shadow-surface-panel);
}


/*
 * Delikatny element dekoracyjny.
 * Nie konkuruje z treścią i CTA.
 */
.support-prompt::after {
    content: "";

    position: absolute;
    top: -100px;
    right: -80px;

    width: 280px;
    height: 280px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(179, 32, 37, .07) 0%,
            rgba(179, 32, 37, 0) 70%
        );

    pointer-events: none;
}


/* --------------------------------------------------------------------------
   Treść
   -------------------------------------------------------------------------- */

.support-prompt-content {
    position: relative;
    z-index: 1;

    max-width: 850px;
}


.support-prompt .eyebrow {
    display: block;

    margin-bottom: 9px;
}


.support-prompt h2 {
    max-width: 780px;

    margin: 0 0 16px;

    font-size: clamp(
        26px,
        3vw,
        34px
    );

    line-height: 1.12;
    letter-spacing: -.03em;
}


.support-prompt-body {
    max-width: 820px;
}


.support-prompt-body p {
    margin: 0 0 12px;

    color: #4d535d;

    font-size: 15px;
    line-height: 1.68;
}


.support-prompt-body p:last-child {
    margin-bottom: 0;
}


/* --------------------------------------------------------------------------
   CTA
   -------------------------------------------------------------------------- */

.support-prompt-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;

    margin-top: 22px;
}


.support-prompt-actions .button {
    min-height: 44px;

    padding-left: 18px;
    padding-right: 18px;

    box-shadow:
        0 6px 16px rgba(179, 32, 37, .16);

    transition:
        background .15s ease,
        box-shadow .15s ease,
        transform .15s ease;
}


.support-prompt-actions .button:hover {
    transform: translateY(-1px);

    box-shadow:
        0 8px 20px rgba(179, 32, 37, .22);
}


/* --------------------------------------------------------------------------
   Zamknięcie
   -------------------------------------------------------------------------- */

.support-prompt-dismiss {
    position: absolute;
    z-index: 3;

    top: 14px;
    right: 14px;

    width: 30px;
    height: 30px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0;

    background: rgba(255, 255, 255, .78);

    border: 1px solid #dedfe3;
    border-radius: 8px;

    color: #777e88;

    font-family: inherit;
    font-size: 18px;
    line-height: 1;

    cursor: pointer;

    transition:
        color .15s ease,
        background .15s ease,
        border-color .15s ease;
}


.support-prompt-dismiss:hover {
    background: #fff;
    border-color: #cfd3d9;

    color: var(--text);
}


.support-prompt-dismiss:focus-visible {
    outline: 3px solid rgba(179, 32, 37, .14);
    outline-offset: 2px;
}


/* --------------------------------------------------------------------------
   Ukrycie przez JavaScript
   -------------------------------------------------------------------------- */

.support-prompt[hidden] {
    display: none !important;
}


/* ==========================================================================
   Monity wsparcia – tablet
   ========================================================================== */

@media (max-width: 900px) {

    .support-prompt {
        padding:
            30px
            32px;
    }

}


/* ==========================================================================
   Monity wsparcia – mobile
   ========================================================================== */

@media (max-width: 650px) {

    .support-prompt-section {
        padding-top: 12px;
        padding-bottom: 12px;
    }


    .support-prompt {
        padding:
            26px
            20px
            22px;

        border-left-width: 3px;
        border-radius: var(--radius-card);
    }


    .support-prompt-content {
        padding-top: 8px;
    }


    .support-prompt .eyebrow {
        margin-bottom: 8px;

        font-size: 10px;
    }


    .support-prompt h2 {
        padding-right: 26px;

        margin-bottom: 14px;

        font-size: 25px;
        line-height: 1.16;
    }


    .support-prompt-body p {
        font-size: 14px;
        line-height: 1.62;
    }


    .support-prompt-actions {
        margin-top: 19px;
    }


    .support-prompt-actions .button {
        width: 100%;
    }


    .support-prompt-dismiss {
        top: 10px;
        right: 10px;

        width: 28px;
        height: 28px;

        font-size: 17px;
    }

}

/* ==========================================================================
   /wesprzyj
   ========================================================================== */


/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */

   .support-page-hero {
    padding-top: 64px;
    padding-bottom: 48px;
}

.support-page-hero h1 {
    max-width: 760px;
}

.support-page-hero .lead {
    max-width: 720px;
}

.support-page-hero-actions {
    margin-top: 24px;
}


/* --------------------------------------------------------------------------
   Trzy zasady – bez paywalla / reklam / płatnych funkcji
   -------------------------------------------------------------------------- */

.support-page-principles {
    padding-top: 48px;
    padding-bottom: 58px;
}

.support-page-principles-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.support-page-principle {
    position: relative;

    min-width: 0;
    padding: 24px;

    box-shadow: none;
}

.support-page-principle::before {
    content: "✓";

    width: 30px;
    height: 30px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin-bottom: 18px;

    background: #e8f5ed;
    border-radius: 50%;

    color: var(--success);
    font-size: 14px;
    font-weight: 800;
}

.support-page-principle h3 {
    margin: 0 0 8px;

    font-size: 17px;
}

.support-page-principle p {
    margin: 0;

    font-size: 13px;
    line-height: 1.6;
}


/* --------------------------------------------------------------------------
   Główne wyjaśnienie modelu Patronite
   -------------------------------------------------------------------------- */

.support-page-explainer {
    background: #fff;

    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.support-page-explainer .section-head {
    margin-bottom: 20px;
}

.support-page-statement {
    max-width: 720px;

    margin: 0 0 28px;

    color: var(--text);

    font-size: clamp(24px, 3vw, 32px);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -.025em;
}

.support-page-explainer > .container > p:not(.support-page-statement) {
    max-width: 760px;

    margin: 0 0 15px;

    color: #555d68;

    font-size: 15px;
    line-height: 1.7;
}

.support-page-explainer > .container > p:last-child {
    margin-bottom: 0;
}


/* --------------------------------------------------------------------------
   Na co przeznaczane jest wsparcie
   -------------------------------------------------------------------------- */

.support-page-costs {
    padding-top: 60px;
    padding-bottom: 64px;
}

.support-page-costs-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.support-page-cost {
    min-width: 0;
    height: 100%;

    padding: 24px;

    border-top: 3px solid var(--accent);

    box-shadow: none;
}

.support-page-cost h3 {
    margin: 0 0 9px;

    font-size: 17px;
}

.support-page-cost p {
    margin: 0;

    font-size: 13px;
    line-height: 1.6;
}


/* --------------------------------------------------------------------------
   Końcowe CTA
   -------------------------------------------------------------------------- */

.support-page-final {
    padding-top: 18px;
    padding-bottom: 64px;
}

.support-page-final-box {
    margin-top: 0;

    padding: 32px 34px;

    background:
        linear-gradient(
            135deg,
            #ffffff 0%,
            #fbf4f4 100%
        );

    border-color: #eadbdd;
    border-left: 4px solid var(--accent);

    box-shadow:
        0 10px 32px rgba(15, 23, 42, .065);
}

.support-page-final-box strong {
    display: block;

    margin-bottom: 9px;

    font-size: 21px;
    line-height: 1.25;
    letter-spacing: -.02em;
}

.support-page-final-box p {
    max-width: 650px;

    margin: 0 0 20px;

    font-size: 14px;
    line-height: 1.65;
}

.support-page-final-box .button {
    margin-top: 2px;
}


/* ==========================================================================
   /wesprzyj – tablet
   ========================================================================== */

@media (max-width: 900px) {

    .support-page-principles-grid,
    .support-page-costs-grid {
        grid-template-columns: 1fr;
    }

    .support-page-principle,
    .support-page-cost {
        padding: 22px;
    }

}


/* ==========================================================================
   /wesprzyj – mobile
   ========================================================================== */

@media (max-width: 650px) {

    .support-page-hero {
        padding-top: 44px;
        padding-bottom: 38px;
    }

    .support-page-hero h1 {
        font-size: 36px;
    }

    .support-page-hero .lead {
        font-size: 17px;
    }

    .support-page-hero-actions .button {
        width: 100%;
    }


    .support-page-principles {
        padding-top: 38px;
        padding-bottom: 44px;
    }

    .support-page-principle {
        padding: 20px;
    }

    .support-page-principle::before {
        margin-bottom: 14px;
    }


    .support-page-statement {
        margin-bottom: 22px;

        font-size: 24px;
    }

    .support-page-explainer > .container > p:not(.support-page-statement) {
        font-size: 14px;
    }


    .support-page-costs {
        padding-top: 44px;
        padding-bottom: 46px;
    }

    .support-page-cost {
        padding: 20px;
    }


    .support-page-final {
        padding-top: 10px;
        padding-bottom: 46px;
    }

    .support-page-final-box {
        padding: 24px 20px;

        border-left-width: 3px;
    }

    .support-page-final-box strong {
        font-size: 19px;
    }

    .support-page-final-box .button {
        width: 100%;
    }

}

/* ==========================================================================
   Publiczny formularz zgłoszeń
   ========================================================================== */

.submission-page-head {
    padding: 64px 0 42px;
}

.submission-page-head-copy {
    max-width: 860px;
}

.submission-page-head h1 {
    max-width: 820px;
    margin-top: 12px;
}

.submission-page-head .lead {
    margin-bottom: 0;
    max-width: 780px;
}

.submission-page-section {
    padding-top: 42px;
    padding-bottom: 72px;
}

.submission-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 310px;
    gap: 28px;
    align-items: start;
}

.submission-main {
    min-width: 0;
}

.submission-form,
.submission-success {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-feature);
    box-shadow: var(--shadow-surface-feature);
}

.submission-form {
    overflow: hidden;
}

.submission-form [hidden],
.submission-sidebar [hidden] {
    display: none !important;
}

.submission-errors {
    margin: 0 0 18px;
    padding: 16px 18px;
}

.submission-errors strong {
    display: block;
    margin-bottom: 6px;
}

.submission-errors ul {
    margin: 0;
    padding-left: 20px;
}

.submission-form-section {
    padding: 30px 32px 32px;
    border-bottom: 1px solid var(--line);
}

.submission-form-section:last-of-type {
    border-bottom: 0;
}

.submission-section-heading {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    margin-bottom: 22px;
}

.submission-section-heading h2 {
    margin: 1px 0 5px;
    font-size: 23px;
}

.submission-section-heading p {
    margin: 0;
    max-width: 680px;
    color: var(--muted);
    font-size: 14px;
}

.submission-step {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #f6e9ea;
    color: var(--accent);
    font-size: 13px;
    font-weight: 800;
}

.submission-type-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.submission-type-card {
    position: relative;
    display: block;
    min-width: 0;
    cursor: pointer;
}

.submission-type-card > input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.submission-type-card-inner {
    min-height: 128px;
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) 24px;
    gap: 13px;
    align-items: start;
    padding: 18px;
    border: 1px solid #dfe3e9;
    border-radius: var(--radius-box);
    background: #fff;
    transition: border-color .16s ease, box-shadow .16s ease, background .16s ease, transform .16s ease;
}

.submission-type-card:hover .submission-type-card-inner {
    border-color: #c9ced6;
    background: #fcfcfd;
    transform: translateY(-1px);
}

.submission-type-card > input:focus-visible + .submission-type-card-inner {
    outline: 3px solid rgba(179, 32, 37, .14);
    outline-offset: 2px;
}

.submission-type-card > input:checked + .submission-type-card-inner {
    border-color: rgba(179, 32, 37, .55);
    background: #fffafa;
    box-shadow: 0 0 0 1px rgba(179, 32, 37, .08);
}

.submission-type-icon {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: #f2f4f7;
    color: #4d5562;
}

.submission-type-card > input:checked + .submission-type-card-inner .submission-type-icon {
    background: #f7e7e8;
    color: var(--accent);
}

.submission-type-icon svg,
.submission-type-check svg,
.submission-search-input-wrap svg,
.submission-source-input-wrap svg,
.submission-selected-entity-icon svg,
.submission-submit-button svg,
.submission-trust-card svg,
.submission-success-icon svg {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.submission-type-icon svg {
    width: 21px;
    height: 21px;
}

.submission-type-copy {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.submission-type-copy strong {
    color: var(--text);
    font-size: 15px;
}

.submission-type-copy > span {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.45;
}

.submission-type-check {
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #d7dbe2;
    border-radius: 50%;
    color: transparent;
    background: #fff;
}

.submission-type-check svg {
    width: 14px;
    height: 14px;
    stroke-width: 2.4;
}

.submission-type-card > input:checked + .submission-type-card-inner .submission-type-check {
    border-color: var(--accent);
    background: var(--accent);
    color: #fff;
}

.submission-context-panel {
    margin-left: 46px;
}

.submission-field,
.submission-context-panel {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.submission-field + .submission-field {
    margin-top: 24px;
}

.submission-field-head {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-start;
}

.submission-field-head > div {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.submission-field-label {
    display: block;
    color: var(--text);
    font-size: 14px;
    font-weight: 800;
}

.submission-field-help,
.submission-field-optional,
.submission-picker-hint,
.submission-source-limit {
    color: var(--muted);
    font-size: 12px;
}

.submission-field-optional {
    flex: 0 0 auto;
    padding-top: 2px;
}


.submission-entity-picker {
    position: relative;
    margin-top: 6px;
}

.submission-picker-search {
    position: relative;
}

.submission-search-input-wrap,
.submission-source-input-wrap {
    position: relative;
}

.submission-search-input-wrap svg,
.submission-source-input-wrap svg {
    position: absolute;
    left: 13px;
    top: 50%;
    width: 18px;
    height: 18px;
    transform: translateY(-50%);
    color: #7a828e;
    pointer-events: none;
}

.submission-search-input-wrap input,
.submission-source-input-wrap input {
    padding-left: 41px !important;
}

.submission-picker-results {
    position: absolute;
    z-index: 8;
    top: calc(100% + 7px);
    left: 0;
    right: 0;
    overflow: hidden;
    max-height: 340px;
    overflow-y: auto;
    border: 1px solid #d8dde4;
    border-radius: 12px;
    background: #fff;
    box-shadow: var(--shadow-surface-popover);
}

.submission-picker-result {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 13px 15px;
    border: 0;
    border-bottom: 1px solid #edf0f3;
    background: #fff;
    color: var(--text);
    text-align: left;
    cursor: pointer;
    font: inherit;
}

.submission-picker-result:last-child {
    border-bottom: 0;
}

.submission-picker-result:hover,
.submission-picker-result:focus-visible {
    background: #f8f9fb;
    outline: none;
}

.submission-picker-result-copy {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.submission-picker-result-copy strong {
    font-size: 14px;
    line-height: 1.35;
}

.submission-picker-result-copy span {
    color: var(--muted);
    font-size: 12px;
}

.submission-picker-result-arrow {
    flex: 0 0 auto;
    color: var(--muted);
}

.submission-picker-empty {
    padding: 15px;
    color: var(--muted);
    font-size: 13px;
}

.submission-picker-hint {
    margin: 6px 0 0;
}

.submission-picker-hint[data-state="error"] {
    color: var(--danger);
}

.submission-selected-entity {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    gap: 13px;
    align-items: center;
    padding: 13px 14px;
    border: 1px solid #d9dee5;
    border-radius: 11px;
    background: #f9fafb;
}

.submission-selected-entity-icon {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: #fff;
    border: 1px solid #e1e5ea;
    color: #59616d;
}

.submission-selected-entity-icon svg {
    width: 20px;
    height: 20px;
}

.submission-selected-entity-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.submission-selected-entity-copy strong {
    font-size: 14px;
    overflow-wrap: anywhere;
}

.submission-selected-entity-meta {
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.submission-change-entity,
.submission-add-source,
.submission-source-remove {
    border: 0;
    background: transparent;
    font: inherit;
    cursor: pointer;
}

.submission-change-entity {
    padding: 7px 8px;
    color: var(--accent);
    font-size: 12px;
    font-weight: 800;
}

.submission-change-entity:hover {
    text-decoration: underline;
}

.submission-source-list {
    display: flex;
    flex-direction: column;
    gap: 9px;
    margin-top: 3px;
}

.submission-source-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 38px;
    gap: 7px;
    align-items: center;
}

.submission-source-remove {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    color: #7b838e;
    font-size: 23px;
    line-height: 1;
}

.submission-source-remove:hover {
    background: #f3f4f6;
    color: var(--danger);
}

.submission-add-source {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 0;
    color: var(--accent);
    font-size: 13px;
    font-weight: 800;
}

.submission-add-source span {
    width: 19px;
    height: 19px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #f6e9ea;
    font-size: 16px;
}

.submission-add-source:hover {
    color: var(--accent2);
}

.submission-source-limit {
    margin: -2px 0 0;
}

.submission-contact-section {
    background: #fcfcfd;
}

.submission-submit-row {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 24px 32px 28px;
    background: #fff;
}

.submission-submit-row p {
    margin: 0;
    max-width: 420px;
    color: var(--muted);
    font-size: 12px;
}

.submission-submit-button {
    flex: 0 0 auto;
    padding-left: 19px;
    padding-right: 17px;
}

.submission-submit-button svg {
    width: 18px;
    height: 18px;
}

.submission-sidebar {
    position: sticky;
    top: 104px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.submission-side-card {
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: var(--radius-panel);
    background: #fff;
}

.submission-how-card .eyebrow {
    display: block;
    margin-bottom: 18px;
}

.submission-steps-list {
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.submission-steps-list li {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 11px;
    align-items: start;
}

.submission-steps-list li > span {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #f1f3f6;
    color: #59616c;
    font-size: 11px;
    font-weight: 800;
}

.submission-steps-list strong {
    display: block;
    margin-bottom: 3px;
    font-size: 13px;
}

.submission-steps-list p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.5;
}

.submission-trust-card {
    background: #f8f9fb;
}

.submission-trust-card h3 {
    margin: 0 0 15px;
    font-size: 16px;
}

.submission-trust-card ul {
    display: flex;
    flex-direction: column;
    gap: 13px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.submission-trust-card li {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 9px;
    color: #5e6672;
    font-size: 12px;
    line-height: 1.5;
}

.submission-trust-card li strong {
    color: #343a43;
}

.submission-trust-card svg {
    width: 18px;
    height: 18px;
    margin-top: 1px;
    color: var(--success);
    stroke-width: 2.2;
}

.submission-success {
    min-height: 490px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 54px;
}

.submission-success-icon {
    width: 54px;
    height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 22px;
    border-radius: 50%;
    background: #e8f5ed;
    color: var(--success);
}

.submission-success-icon svg {
    width: 28px;
    height: 28px;
    stroke-width: 2.2;
}

.submission-success h2 {
    margin: 8px 0 10px;
    font-size: 32px;
}

.submission-success p {
    max-width: 600px;
    margin: 0;
    color: #565e69;
    font-size: 16px;
}

.submission-success-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 26px;
}

/* Admin: lista wielu źródeł w jednym zgłoszeniu */
.submission-source-links {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin: 7px 0 16px;
    padding-left: 21px;
}

.submission-source-links a {
    overflow-wrap: anywhere;
}

@media (max-width: 980px) {
    .submission-layout {
        grid-template-columns: minmax(0, 1fr) 270px;
        gap: 20px;
    }

    .submission-form-section {
        padding-left: 26px;
        padding-right: 26px;
    }

    .submission-submit-row {
        padding-left: 26px;
        padding-right: 26px;
    }
}

@media (max-width: 820px) {
    .submission-layout {
        grid-template-columns: 1fr;
    }

    .submission-sidebar {
        position: static;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 650px) {
    .submission-page-head {
        padding: 44px 0 30px;
    }

    .submission-page-head h1 {
        font-size: 36px;
    }

    .submission-page-head .lead {
        font-size: 17px;
    }

    .submission-page-section {
        padding-top: 24px;
        padding-bottom: 48px;
    }

    .submission-form,
    .submission-success {
        border-radius: var(--radius-feature);
    }

    .submission-form-section {
        padding: 23px 18px 25px;
    }

    .submission-section-heading {
        grid-template-columns: 29px minmax(0, 1fr);
        gap: 10px;
        margin-bottom: 18px;
    }

    .submission-step {
        width: 29px;
        height: 29px;
    }

    .submission-section-heading h2 {
        font-size: 20px;
    }

    .submission-type-grid {
        grid-template-columns: 1fr;
        gap: 9px;
    }

    .submission-type-card-inner {
        min-height: 0;
        grid-template-columns: 38px minmax(0, 1fr) 22px;
        padding: 15px;
    }

    .submission-type-icon {
        width: 38px;
        height: 38px;
    }

    .submission-context-panel {
        margin-left: 0;
    }

    .submission-selected-entity {
        grid-template-columns: 38px minmax(0, 1fr);
    }

    .submission-selected-entity-icon {
        width: 38px;
        height: 38px;
    }

    .submission-change-entity {
        grid-column: 2;
        justify-self: start;
        padding-left: 0;
    }

    .submission-source-row {
        grid-template-columns: minmax(0, 1fr) 34px;
    }

    .submission-source-remove {
        width: 34px;
        height: 34px;
    }

    .submission-submit-row {
        align-items: stretch;
        flex-direction: column;
        padding: 20px 18px 23px;
    }

    .submission-submit-button {
        width: 100%;
    }

    .submission-sidebar {
        grid-template-columns: 1fr;
    }

    .submission-success {
        min-height: 0;
        padding: 36px 24px;
    }

    .submission-success h2 {
        font-size: 27px;
    }

    .submission-success-actions {
        width: 100%;
        flex-direction: column;
    }

    .submission-success-actions .button {
        width: 100%;
    }
}

/* ===========================================================================
   Strona sprawy – szeroki układ redakcyjny
   ========================================================================== */

.case-page-head {
    padding: 46px 0 42px;
    background:
        radial-gradient(circle at 85% 12%, rgba(179, 32, 37, .055), transparent 28%),
        #fff;
}

.case-page-head-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(330px, 380px);
    gap: 0 52px;
    align-items: start;
}

.case-page-head .back,
.case-page-head .seo-breadcrumbs {
    grid-column: 1 / -1;
}

.case-page-head .back {
    margin: 0 0 22px;
}

.case-page-head-copy {
    min-width: 0;
    padding: 8px 0 12px;
}

.case-page-head-copy h1 {
    max-width: 760px;
    margin: 0 0 18px;
    font-size: clamp(42px, 4.4vw, 60px);
    line-height: 1.03;
    letter-spacing: -.045em;
}

.case-page-head-copy .lead {
    max-width: 720px;
    margin: 0;
    color: #4b535e;
    font-size: 18px;
    line-height: 1.65;
}


/* --------------------------------------------------------------------------
   Podbijanie i udostępnianie
   -------------------------------------------------------------------------- */

.case-boost {
    margin: 0 0 22px;
}

.case-boost-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 11px;
}

.case-boost-form {
    margin: 0;
}


.case-share-button {
    margin-left: 3px;
}

.case-boost-button-icon {
    min-width: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
}


.case-boost-button.is-boosted:disabled {
    opacity: 1;
}


.case-boost-button.is-loading {
    cursor: wait;
}

.case-boost-count {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    color: var(--muted);
    font-size: 12px;
    white-space: nowrap;
}

.case-boost-count strong {
    color: #454c56;
    font-size: 12px;
}

.case-boost-help {
    position: relative;
    z-index: 4;
    color: var(--muted);
    font-size: 11px;
}

.case-boost-help summary {
    display: inline-flex;
    align-items: center;
    color: var(--muted);
    cursor: pointer;
    list-style: none;
}

.case-boost-help summary::-webkit-details-marker {
    display: none;
}

.case-boost-help summary::before {
    content: "•";
    margin-right: 11px;
    color: #c0c5cc;
}

.case-boost-help[open] summary {
    color: var(--accent);
}

.case-boost-tooltip {
    position: absolute;
    top: calc(100% + 11px);
    left: 50%;
    width: min(360px, calc(100vw - 30px));
    padding: 15px 16px;
    transform: translateX(-45%);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 11px;
    box-shadow: var(--shadow-surface-popover);
    color: #626974;
}

.case-boost-tooltip::before {
    content: "";
    position: absolute;
    bottom: 100%;
    left: 43%;
    width: 10px;
    height: 10px;
    transform: translate(-50%, 6px) rotate(45deg);
    background: #fff;
    border-top: 1px solid var(--line);
    border-left: 1px solid var(--line);
}

.case-boost-tooltip strong {
    display: block;
    margin-bottom: 5px;
    color: #343a43;
    font-size: 12px;
}

.case-boost-tooltip p {
    margin: 0;
    font-size: 11px;
    line-height: 1.55;
}

.case-boost-status {
    margin: 7px 0 0;
    color: var(--muted);
    font-size: 11px;
}

.case-boost-status:empty {
    display: none;
}


.case-topic-chips-hero {
    margin-bottom: 18px;
}

/* --------------------------------------------------------------------------
   Najważniejsze ustalenia i pełny opis sprawy
   -------------------------------------------------------------------------- */

.case-key-points {
    max-width: 720px;
    margin-top: 2px;
}

.case-key-points-title {
    margin: 0 0 11px;
    color: var(--accent);
    font-family: inherit;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.case-key-points-list {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.case-key-points-list li {
    position: relative;
    margin: 0;
    padding-left: 21px;
    color: #424a55;
    font-size: 16px;
    line-height: 1.52;
}

.case-key-points-list li::before {
    content: "";
    position: absolute;
    top: .65em;
    left: 2px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--accent);
}

.case-summary-details {
    max-width: 720px;
    margin-top: 14px;
}

.case-summary-details summary {
    width: max-content;
    display: flex;
    align-items: center;
    gap: 6px;
    color: #626a75;
    font-size: 12px;
    font-weight: 750;
    cursor: pointer;
    list-style: none;
}

.case-summary-details summary::-webkit-details-marker {
    display: none;
}

.case-summary-details summary::after {
    content: "↓";
    color: #9299a3;
    font-size: 11px;
}

.case-summary-details[open] summary {
    color: var(--accent);
}

.case-summary-details[open] summary::after {
    content: "↑";
}

.case-summary-full {
    max-width: 720px;
    margin: 12px 0 0;
    color: #525a65;
    font-size: 14px;
    line-height: 1.65;
}

/* Fallback dla starszych spraw bez uzupełnionych najważniejszych ustaleń. */
.case-summary-text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 5;
    overflow: hidden;
}

.case-summary-text.is-expanded {
    display: block;
    overflow: visible;
    -webkit-line-clamp: unset;
}

.case-summary-toggle {
    margin-top: 8px;
    padding: 0;
    background: none;
    border: 0;
    color: var(--accent);
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

.case-summary-toggle[hidden] {
    display: none;
}


/* --------------------------------------------------------------------------
   Panel „Informacje o sprawie”
   -------------------------------------------------------------------------- */

.case-head-panel {
    padding: 24px;
    background: rgba(247, 248, 250, .94);
    border: 1px solid var(--line);
    border-radius: var(--radius-panel);
    box-shadow: var(--shadow-surface-panel);
}

.case-head-panel-title,
.case-aside-label {
    margin: 0 0 15px;
    color: var(--accent);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.case-head-meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
}

.case-head-meta-item {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.case-head-meta-label {
    color: var(--muted);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.case-head-meta strong {
    color: #343a43;
    font-size: 13px;
}

.case-last-activity {
    position: relative;
    margin-top: 20px;
    padding: 16px 17px 16px 20px;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
}

.case-last-activity::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: var(--accent);
}

.case-last-activity-label {
    display: block;
    margin-bottom: 6px;
    color: var(--accent);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.case-last-activity strong {
    display: block;
    margin-bottom: 4px;
    font-size: 14px;
}

.case-last-activity p {
    margin: 0;
    color: #59616c;
    font-size: 12px;
    line-height: 1.5;
}

.case-last-activity time {
    display: block;
    margin-top: 8px;
    color: var(--muted);
    font-size: 11px;
}

.case-head-entities {
    margin: 20px 0 0;
    padding-top: 18px;
    border-top: 1px solid var(--line);
}

.case-head-entities-label {
    margin: 0 0 9px;
    color: var(--muted);
    font-family: inherit;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    line-height: 1.2;
    text-transform: uppercase;
}

.case-head-entity-list {
    display: grid;
    gap: 7px;
}

.case-head-entity {
    min-width: 0;
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) auto;
    gap: 11px;
    align-items: center;
    padding: 8px;
    background: #fff;
    border: 1px solid #e3e6ea;
    border-radius: 11px;
    color: var(--text);
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.case-head-entity:hover {
    border-color: #d5d9df;
    box-shadow: 0 5px 16px rgba(15, 23, 42, .045);
    color: var(--text);
    transform: translateY(-1px);
}

.case-head-entity-media {
    width: 46px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #e9edf2;
    border: 1px solid var(--line);
    border-radius: 50%;
    color: #59616c;
    font-size: 13px;
    font-weight: 800;
}

.case-head-entity-logo {
    padding: 4px;
    background: #fff;
    border-radius: 10px;
}

.case-head-entity-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.case-head-entity-logo img {
    object-fit: contain;
}

.case-head-entity-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.case-head-entity-copy strong,
.case-head-entity-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.case-head-entity-copy strong {
    color: #343a43;
    font-size: 12px;
}

.case-head-entity-copy small {
    color: var(--muted);
    font-size: 10px;
}

.case-head-entity-arrow {
    color: #9ca3ad;
    font-size: 13px;
}


/* ===========================================================================
   Główna część strony
   ========================================================================== */

.case-content-section {
    padding-top: 60px;
}

.case-content-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 48px;
    align-items: start;
}

.case-main-column {
    min-width: 0;
}

.case-content-aside {
    position: sticky;
    top: 92px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.case-on-page,
.case-related-entities {
    padding: 20px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-surface-card);
}

.case-on-page {
    display: flex;
    flex-direction: column;
}

.case-on-page a {
    position: relative;
    padding: 9px 20px 9px 0;
    border-bottom: 1px solid #eef0f3;
    color: #555d68;
    font-size: 13px;
    font-weight: 650;
}

.case-on-page a:last-child {
    border-bottom: 0;
}

.case-on-page a::after {
    content: "→";
    position: absolute;
    right: 0;
    color: #9ca3ad;
}

.case-on-page a:hover {
    color: var(--accent);
}

.case-related-entities h2 {
    margin: 0 0 14px;
    font-size: 17px;
}

.case-related-entity-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.case-related-entity {
    min-width: 0;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) auto;
    gap: 11px;
    align-items: center;
    padding: 9px;
    background: #f8f9fb;
    border: 1px solid transparent;
    border-radius: 11px;
    transition: background .15s ease, border-color .15s ease;
}

.case-related-entity:hover {
    background: #fff;
    border-color: #e0e3e8;
    color: var(--text);
}

.case-related-entity-media {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #eceff3;
    border: 1px solid var(--line);
    border-radius: 50%;
    color: #5a626d;
    font-size: 13px;
    font-weight: 800;
}

.case-related-entity-logo {
    padding: 4px;
    background: #fff;
    border-radius: 10px;
}

.case-related-entity-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.case-related-entity-logo img {
    object-fit: contain;
}

.case-related-entity > span:nth-child(2) {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.case-related-entity strong {
    overflow: hidden;
    color: #333943;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.case-related-entity small {
    overflow: hidden;
    color: var(--muted);
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.case-related-entity-arrow {
    color: #a0a6af;
    font-size: 13px;
}

#zrodla,
#poczatek-sprawy,
#wczesniejszy-kontekst,
#dalszy-rozwoj,
#najwazniejsze-zrodla,
#ostatnie-materialy,
#pozostale-zrodla,
#stanowiska,
#historia-zmian,
#powiazane-sprawy {
    scroll-margin-top: 96px;
}


/* --------------------------------------------------------------------------
   Hierarchia źródeł
   -------------------------------------------------------------------------- */

.case-main-column .source-section-head {
    margin-bottom: 8px;
}

.case-main-column .source-group {
    margin-top: 38px;
}

.case-main-column .source-origin-group {
    margin-top: 24px;
}

.case-main-column .source-origin-list {
    overflow: visible;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.case-main-column .source-origin-list .timeline-item {
    display: block;
    padding: 25px;
    background: #fff;
    border: 1px solid var(--line);
    border-left: 3px solid var(--accent);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-surface-card);
}

.case-main-column .source-origin-list .timeline-date {
    margin-bottom: 10px;
    padding: 0;
}

.case-main-column .source-origin-list h3 {
    font-size: 22px;
}

.case-main-column .source-context-list .timeline-item,
.case-main-column .source-continuation-list .timeline-item {
    grid-template-columns: 104px minmax(0, 1fr);
    padding: 18px 20px;
}

.case-main-column .source-context-list .source-lead,
.case-main-column .source-continuation-list .source-lead {
    -webkit-line-clamp: 2;
}

.case-main-column .source-featured-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    overflow: visible;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.case-main-column .source-featured-list .timeline-item {
    display: block;
    padding: 20px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-surface-card);
}

.case-main-column .source-featured-count-3 .timeline-item:first-child {
    grid-column: 1 / -1;
    padding: 25px;
    border-left: 3px solid var(--accent);
}

.case-main-column .source-featured-count-3 .timeline-item:not(:first-child) {
    box-shadow: var(--shadow-surface-card);
}

.case-main-column .source-featured-list .timeline-date {
    margin-bottom: 10px;
    padding: 0;
}

.case-main-column .source-featured-list .timeline-item:first-child h3 {
    font-size: 22px;
}

.case-main-column .source-featured-count-3 .timeline-item:not(:first-child) h3 {
    font-size: 16px;
}

.case-main-column .source-featured-count-3 .timeline-item:not(:first-child) .source-lead {
    -webkit-line-clamp: 2;
    font-size: 12px;
}

.case-main-column .source-featured-count-1 {
    grid-template-columns: 1fr;
}

.case-main-column .source-featured-count-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.case-main-column .source-latest-list .timeline-item {
    grid-template-columns: 104px minmax(0, 1fr);
    padding: 18px 20px;
}

.case-main-column .source-latest-list .source-lead {
    -webkit-line-clamp: 2;
}

.source-all-section {
    margin-top: 38px;
}

.source-all-section .source-all-head {
    margin: 0;
    padding: 20px 0;
    border-top: 1px solid var(--line);
}

.source-show-all-button {
    min-width: 166px;
    padding: 9px 13px;
    font-size: 12px;
}

.source-all-panel {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
}

.source-all-tools {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 12px;
}


/* --------------------------------------------------------------------------
   Stanowiska i historia zmian
   -------------------------------------------------------------------------- */

.case-subsection {
    margin-top: 20px;
    padding-top: 46px;
    border-top: 1px solid var(--line);
}

.case-subsection-head {
    margin-bottom: 20px;
}

.case-subsection-head h2 {
    margin: 6px 0 0;
}

.statement-rich {
    position: relative;
    overflow: hidden;
    padding: 25px 27px 25px 30px;
}

.statement-rich::before {
    content: "“";
    position: absolute;
    top: -22px;
    right: 18px;
    color: rgba(179, 32, 37, .07);
    font-family: Georgia, serif;
    font-size: 128px;
    line-height: 1;
}

.statement-rich .statement-head {
    position: relative;
    z-index: 1;
    justify-content: flex-start;
    align-items: center;
    gap: 13px;
}

.statement-author-avatar {
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #eef0f3;
    border: 1px solid var(--line);
    border-radius: 50%;
    color: #58606b;
    font-weight: 800;
}

.statement-author-logo {
    padding: 5px;
    background: #fff;
    border-radius: 12px;
}

.statement-author-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.statement-author-logo img {
    object-fit: contain;
}

.statement-author-copy {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.statement-author-copy strong {
    font-size: 14px;
}

.statement-author-copy time {
    color: var(--muted);
    font-size: 11px;
}

.statement-rich blockquote {
    position: relative;
    z-index: 1;
    margin: 20px 0 17px;
    padding-left: 19px;
    border-left: 3px solid #eccacd;
}

.statement-rich blockquote p {
    margin: 0;
    color: #353b44;
    font-size: 15px;
    line-height: 1.75;
}

.statement-rich > a {
    position: relative;
    z-index: 1;
    color: var(--accent);
    font-size: 12px;
    font-weight: 750;
}

.case-changelog {
    padding: 18px 20px;
    background: rgba(255, 255, 255, .65);
    border: 1px solid var(--line);
    border-radius: 12px;
}

.case-changelog summary {
    list-style: none;
}

.case-changelog summary::-webkit-details-marker {
    display: none;
}

.case-changelog summary::before {
    content: "+";
    display: inline-flex;
    width: 22px;
    height: 22px;
    align-items: center;
    justify-content: center;
    margin-right: 9px;
    background: var(--soft);
    border-radius: 50%;
}

.case-changelog[open] summary::before {
    content: "−";
}

.case-main-column .report-box {
    margin-top: 42px;
}


/* ===========================================================================
   Powiązane sprawy
   ========================================================================== */

.case-related-cases-section {
    background: #fff;
    border-top: 1px solid var(--line);
}

.case-related-cases-head {
    align-items: end;
}

.case-related-cases-head h2 {
    margin: 7px 0 6px;
}

.case-related-cases-head p {
    margin: 0;
    color: var(--muted);
    font-size: 14px;
}

.case-related-cases-head > a {
    color: #5e6671;
    font-size: 13px;
    font-weight: 750;
}

.case-related-cases-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
}

.case-related-card {
    min-width: 0;
    display: flex;
    flex-direction: column;
    padding: 22px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-surface-card);
}

.case-related-card-meta {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    color: var(--muted);
    font-size: 11px;
}

.case-related-card h3 {
    margin: 12px 0 10px;
    font-size: 18px;
    line-height: 1.28;
}

.case-related-card > p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    margin: 0 0 16px;
    color: #59616c;
    font-size: 13px;
    line-height: 1.55;
}

.case-related-card-entities {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: auto;
    padding-top: 6px;
}

.case-related-card-entities span {
    padding: 4px 7px;
    background: #f9e9ea;
    border-radius: 999px;
    color: #7f181d;
    font-size: 10px;
    font-weight: 700;
}

.case-related-card-entities .is-party {
    background: #edf0f4;
    color: #4b5563;
}

.case-related-card-link {
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
    color: var(--accent);
    font-size: 12px;
    font-weight: 800;
}


/* ===========================================================================
   Tablet
   ========================================================================== */

@media (max-width: 1020px) {

    .case-page-head-inner {
        grid-template-columns: minmax(0, 1fr) minmax(300px, 340px);
        gap: 0 34px;
    }

    .case-page-head-copy h1 {
        font-size: 46px;
    }

    .case-content-shell {
        grid-template-columns: minmax(0, 1fr) 260px;
        gap: 30px;
    }

    .case-related-entity {
        grid-template-columns: 38px minmax(0, 1fr) auto;
    }

    .case-related-entity-media {
        width: 38px;
        height: 38px;
    }

}


@media (max-width: 900px) {

    .case-page-head-inner,
    .case-content-shell {
        grid-template-columns: 1fr;
    }

    .case-page-head-copy {
        padding-bottom: 28px;
    }

    .case-head-panel {
        display: grid;
        grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
        gap: 0 24px;
    }

    .case-head-panel-title,
    .case-head-meta {
        grid-column: 1;
    }

    .case-last-activity {
        grid-column: 1;
    }

    .case-head-entities {
        grid-column: 2;
    }

    .case-head-entities {
        grid-row: 1 / span 2;
        margin-top: 0;
        padding-top: 0;
        border-top: 0;
    }

    .case-content-aside {
        position: static;
        display: grid;
        grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
        margin-top: 38px;
    }

    .case-related-cases-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}


/* --------------------------------------------------------------------------
   Deep-link z powiadomienia
   -------------------------------------------------------------------------- */

/*
 * Wszystkie elementy otwierane z maila używają jednego wzorca highlightu:
 * delikatne tło + ring odsunięty do środka o 6 px. Ring jest osobnym
 * pseudo-elementem z własnym border-radius, więc wygląda identycznie na
 * samodzielnej karcie, stanowisku i wierszu należącym do wspólnej karty-listy.
 * Nie opiera się na geometrii zewnętrznego bordera elementu i nie może zostać
 * ucięty przez overflow:hidden rodzica.
 */
.source-card.mail-focus-target,
.statement-rich.mail-focus-target {
    position: relative;
    outline: none;
    background: #f8fbff;
    box-shadow: none;
    animation: case-mail-focus-background 1.8s ease-out;
}

.source-card.mail-focus-target:focus,
.statement-rich.mail-focus-target:focus {
    outline: none;
}

.source-card.mail-focus-target::after,
.statement-rich.mail-focus-target::after {
    content: "";
    position: absolute;
    inset: 6px;
    z-index: 2;
    pointer-events: none;
    border: 1px solid rgba(37, 99, 235, .28);
    border-radius: 10px;
    animation: case-mail-focus-ring 1.8s ease-out;
}

@keyframes case-mail-focus-background {
    0%, 32% {
        background: #eef6ff;
    }

    100% {
        background: #f8fbff;
    }
}

@keyframes case-mail-focus-ring {
    0%, 32% {
        border-color: rgba(37, 99, 235, .78);
        border-width: 2px;
    }

    100% {
        border-color: rgba(37, 99, 235, .28);
        border-width: 1px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .source-card.mail-focus-target,
    .statement-rich.mail-focus-target,
    .source-card.mail-focus-target::after,
    .statement-rich.mail-focus-target::after {
        animation: none;
    }
}


/* ===========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 650px) {

    .case-page-head {
        padding: 30px 0 28px;
    }

    .case-page-head .back {
        margin-bottom: 16px;
        font-size: 13px;
    }

    .case-page-head-copy {
        padding-top: 2px;
        padding-bottom: 24px;
    }

    .case-page-head-copy h1 {
        margin-bottom: 14px;
        font-size: 34px;
        line-height: 1.07;
    }

    .case-page-head-copy .lead {
        font-size: 15px;
        line-height: 1.58;
    }

    .case-key-points-list {
        gap: 9px;
    }

    .case-key-points-list li {
        padding-left: 19px;
        font-size: 15px;
        line-height: 1.5;
    }

    .case-summary-full {
        font-size: 13px;
        line-height: 1.62;
    }

    .case-boost {
        margin-bottom: 18px;
    }

    .case-boost-row {
        gap: 7px 9px;
    }

    .case-share-button {
        margin-left: 0;
    }

    .case-head-panel {
        display: block;
        padding: 19px;
        border-radius: var(--radius-panel);
    }

    .case-head-meta {
        gap: 7px;
    }

    .case-head-meta-label {
        font-size: 9px;
    }

    .case-head-meta strong {
        font-size: 11px;
    }

    .case-head-entities {
        margin-top: 18px;
        padding-top: 16px;
        border-top: 1px solid var(--line);
    }

    .case-head-entity {
        grid-template-columns: 42px minmax(0, 1fr) auto;
    }

    .case-head-entity-media {
        width: 42px;
        height: 42px;
    }

    .case-content-section {
        padding-top: 42px;
    }

    .case-main-column .source-group {
        margin-top: 31px;
    }

    .case-main-column .source-featured-list,
    .case-main-column .source-featured-count-2 {
        grid-template-columns: 1fr;
    }

    .case-main-column .source-featured-count-3 .timeline-item:first-child {
        grid-column: auto;
        padding: 20px;
    }

    .case-main-column .source-featured-list .timeline-item:first-child h3,
    .case-main-column .source-featured-count-3 .timeline-item:not(:first-child) h3 {
        font-size: 17px;
    }

    .case-main-column .source-origin-list .timeline-item {
        padding: 20px;
    }

    .case-main-column .source-origin-list h3 {
        font-size: 17px;
    }

    .case-main-column .source-context-list .timeline-item,
    .case-main-column .source-continuation-list .timeline-item,
    .case-main-column .source-latest-list .timeline-item {
        grid-template-columns: 1fr;
        gap: 7px;
        padding: 17px;
    }

    .source-all-section .source-all-head {
        align-items: stretch;
        flex-direction: column;
        gap: 13px;
    }

    .source-show-all-button {
        width: 100%;
    }

    .source-all-tools,
    .source-sort {
        align-items: stretch;
        flex-direction: column;
    }

    .source-sort select {
        width: 100%;
    }

    .case-subsection {
        margin-top: 18px;
        padding-top: 36px;
    }

    .statement-rich {
        padding: 20px;
    }

    .statement-author-avatar {
        width: 46px;
        height: 46px;
        flex-basis: 46px;
    }

    .statement-rich blockquote {
        margin-top: 17px;
        padding-left: 14px;
    }

    .statement-rich blockquote p {
        font-size: 14px;
        line-height: 1.68;
    }

    .case-content-aside {
        display: flex;
    }

    .case-on-page {
        display: none;
    }

    .case-related-entities {
        padding: 18px;
    }

    .case-related-cases-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .case-related-cases-grid {
        grid-template-columns: 1fr;
    }

    .case-related-card {
        padding: 19px;
    }

}

/* ========================================================================== 
   Profil polityka
   ========================================================================== */

.politician-page-head {
    padding: 42px 0 38px;
    background:
        radial-gradient(circle at 82% 10%, rgba(179, 32, 37, .075), transparent 28%),
        #fff;
}

.politician-page-head .back {
    margin-bottom: 24px;
}

.politician-hero-grid {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr) 280px;
    gap: 34px;
    align-items: start;
}

.politician-hero-left {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
}

.politician-portrait-wrap {
    position: relative;
    width: 176px;
    margin: 0 auto;
}

.politician-portrait-wrap::after {
    position: absolute;
    inset: 10px -10px -10px 10px;
    z-index: 0;
    content: '';
    border: 1px solid #e5c9ca;
    border-radius: 21px;
}

.politician-portrait {
    position: relative;
    z-index: 1;
    display: block;
    width: 176px;
    height: 220px;
    object-fit: cover;
    border: 1px solid var(--line);
    border-radius: 20px;
    background: #edf0f4;
    box-shadow: var(--shadow-surface-card);
}

.politician-portrait-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #9b282d;
    font-size: 64px;
    font-weight: 800;
}

.politician-hero-copy {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    padding-top: 5px;
}

.politician-hero-copy h1 {
    margin: 9px 0 12px;
    font-size: clamp(40px, 4.5vw, 58px);
    line-height: 1.03;
}

.politician-hero-copy .lead {
    max-width: 610px;
    margin: 20px 0 0;
    font-size: 17px;
    line-height: 1.63;
}

.politician-identity-line {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px 12px;
    color: #424852;
    font-size: 14px;
}

.politician-identity-line > strong:not(:last-child)::after {
    margin-left: 12px;
    color: #c2c7ce;
    content: '•';
}


.politician-profile-stats span {
    display: block;
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .065em;
    line-height: 1.3;
    text-transform: uppercase;
}

.politician-hero-aside {
    grid-column: 3;
    grid-row: 1 / span 2;
    padding: 23px;
    border: 1px solid var(--line);
    border-radius: var(--radius-panel);
    background: rgba(247, 248, 250, .94);
    box-shadow: var(--shadow-surface-panel);
}

.politician-head-panel-title {
    margin: 0 0 17px;
    color: var(--accent);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.politician-profile-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px 18px;
}

.politician-profile-stats > div {
    min-width: 0;
}

.politician-profile-stats > div:last-child {
    grid-column: span 2;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}

.politician-profile-stats strong {
    display: block;
    margin-bottom: 5px;
    color: #303640;
    font-size: 27px;
    line-height: 1.1;
}

.politician-profile-stats > div:last-child strong {
    font-size: 15px;
}

.politician-follow-box {
    grid-column: 1 / 3;
    grid-row: 2;
    width: 100%;
    max-width: none;
    margin: 0;
}

.politician-head-latest {
    position: relative;
    margin-top: 21px;
    padding: 16px 16px 15px 19px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
}

.politician-head-latest::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    content: '';
    background: var(--accent);
}

.politician-head-latest > span {
    display: block;
    margin-bottom: 6px;
    color: var(--accent);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.politician-head-latest strong {
    display: block;
    font-size: 14px;
    line-height: 1.4;
}

.politician-head-latest a {
    display: block;
    margin-top: 6px;
    color: #555d68;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.45;
}

.politician-head-latest time {
    display: block;
    margin-top: 8px;
    color: var(--muted);
    font-size: 10px;
}

.politician-verified {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 3px 5px;
    margin: 15px 2px 0;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.5;
}

.politician-verified > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-right: 2px;
    border-radius: 50%;
    background: #e8f5ed;
    color: var(--success);
    font-size: 10px;
    font-weight: 800;
}

.politician-verified strong {
    color: #4c535d;
}

/* Nawigacja sekcji */

.politician-anchor-nav {
    position: sticky;
    top: 68px;
    z-index: 12;
    border-bottom: 1px solid var(--line);
    background: rgba(255, 255, 255, .94);
    backdrop-filter: blur(14px);
}

.politician-anchor-nav .container {
    display: flex;
    gap: 27px;
    overflow-x: auto;
}

.politician-anchor-nav a {
    flex-shrink: 0;
    padding: 14px 0 12px;
    border-bottom: 2px solid transparent;
    color: #555d68;
    font-size: 13px;
    font-weight: 750;
}

.politician-anchor-nav a:hover {
    border-bottom-color: var(--accent);
    color: var(--accent);
}

.politician-anchor-nav a span {
    margin-left: 3px;
    color: var(--muted);
}

/* Główna treść */

.politician-content-section {
    padding-top: 58px;
}

.politician-content-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 50px;
    align-items: start;
}

.politician-main-column,
.politician-sidebar {
    min-width: 0;
}

.politician-section-block {
    scroll-margin-top: 135px;
}

.politician-section-block + .politician-section-block {
    margin-top: 64px;
    padding-top: 58px;
    border-top: 1px solid var(--line);
}

.politician-section-head {
    align-items: center;
    margin-bottom: 24px;
}

.politician-section-head h2 {
    margin-top: 7px;
    font-size: 31px;
}

/* Karty spraw */

.politician-featured-case,
.politician-case-card {
    border: 1px solid var(--line);
    background: #fff;
    box-shadow: var(--shadow-surface-card);
}

.politician-featured-case {
    position: relative;
    overflow: hidden;
    padding: 30px;
    border-radius: var(--radius-feature);
}

.politician-featured-case::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    content: '';
    background: var(--accent);
}

.politician-case-kicker {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.politician-featured-case h3 {
    max-width: 720px;
    margin: 12px 0 13px;
    font-size: 27px;
}

.politician-case-summary {
    margin: 0;
    color: #555d68;
    font-size: 14px;
    line-height: 1.65;
}

.politician-featured-case .politician-case-summary {
    max-width: 740px;
    font-size: 15px;
}

.politician-case-relation {
    margin-top: 20px;
    padding: 15px 17px;
    border-left: 3px solid #d9a5a8;
    border-radius: 0 10px 10px 0;
    background: #fbf3f3;
}

.politician-case-relation span,
.politician-case-latest span {
    display: block;
    margin-bottom: 3px;
    color: #8b4448;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.politician-case-relation p {
    margin: 0;
    color: #4c393b;
    font-size: 13px;
    line-height: 1.55;
}

.politician-case-latest {
    display: flex;
    align-items: baseline;
    gap: 9px;
    margin-top: 17px;
    font-size: 12px;
}

.politician-case-latest span {
    margin: 0;
    color: var(--muted);
}

.politician-case-footer {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-top: 22px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 11px;
}

.politician-case-footer a {
    margin-left: auto;
    color: var(--accent);
    font-weight: 800;
}

.politician-cases-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 14px;
}

.politician-case-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 21px;
    border-radius: var(--radius-card);
}

.politician-case-card h3 {
    margin: 10px 0 11px;
    font-size: 18px;
    line-height: 1.25;
}

.politician-case-card .politician-case-summary {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    font-size: 13px;
}

.politician-case-relation-compact {
    margin: 16px 0 0;
    padding-top: 14px;
    border-top: 1px dashed var(--line);
    color: #606773;
    font-size: 12px;
    line-height: 1.55;
}

.politician-case-card .politician-case-footer {
    margin-top: auto;
}

/* Aktywność */

.politician-activity-list {
    position: relative;
}

.politician-activity-list::before {
    position: absolute;
    top: 10px;
    bottom: 18px;
    left: 110px;
    width: 1px;
    content: '';
    background: var(--line);
}

.politician-activity-item {
    position: relative;
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 40px;
    padding: 0 0 26px;
}

.politician-activity-item::before {
    position: absolute;
    top: 7px;
    left: 106px;
    width: 9px;
    height: 9px;
    content: '';
    border: 2px solid #fff;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 0 1px #d7b5b7;
}

.politician-activity-item time {
    padding-top: 3px;
    color: var(--muted);
    font-size: 12px;
    text-align: right;
}

.politician-activity-type {
    color: var(--accent);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.politician-activity-item h3 {
    margin: 5px 0 6px;
    font-size: 17px;
}

.politician-activity-item p {
    margin: 0 0 7px;
    color: #555d68;
    font-size: 13px;
}

.politician-activity-item a {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

/* Boczna kolumna */

.politician-sidebar {
    position: sticky;
    top: 135px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.politician-info-card {
    scroll-margin-top: 135px;
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    background: #fff;
    box-shadow: var(--shadow-surface-card);
}

.politician-info-card h2 {
    margin: 6px 0 17px;
    font-size: 20px;
}

.politician-facts-list {
    margin: 0;
}

.politician-facts-list > div {
    padding: 13px 0;
    border-top: 1px solid var(--line);
}

.politician-facts-list > div:first-child {
    padding-top: 0;
    border-top: 0;
}

.politician-facts-list dt {
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.politician-facts-list dd {
    margin: 4px 0 0;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.5;
}

.politician-facts-list a,
.politician-fact-source,
.politician-timeline a:not(:first-child) {
    display: inline-block;
    margin-top: 5px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 600;
}

.politician-official-links {
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}

.politician-official-links a {
    color: var(--accent);
    font-size: 12px;
    font-weight: 750;
}

.politician-timeline {
    position: relative;
    padding-left: 16px;
}

.politician-timeline::before {
    position: absolute;
    top: 6px;
    bottom: 7px;
    left: 3px;
    width: 1px;
    content: '';
    background: #d9dde3;
}

.politician-timeline > div {
    position: relative;
    padding: 0 0 18px;
}

.politician-timeline > div:last-child {
    padding-bottom: 0;
}

.politician-timeline > div::before {
    position: absolute;
    top: 5px;
    left: -16px;
    width: 7px;
    height: 7px;
    content: '';
    border-radius: 50%;
    background: var(--accent);
}

.politician-timeline strong,
.politician-timeline span {
    display: block;
}

.politician-timeline strong {
    font-size: 13px;
    line-height: 1.4;
}

.politician-timeline span {
    margin-top: 3px;
    color: var(--muted);
    font-size: 11px;
}

.politician-correction-link {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 18px 20px;
    border: 1px dashed #c7cbd2;
    border-radius: var(--radius-card);
    background: rgba(255, 255, 255, .55);
}

.politician-correction-link span {
    color: var(--muted);
    font-size: 11px;
}

.politician-correction-link strong {
    font-size: 13px;
}

.politician-follow-success {
    padding-bottom: 0;
}

/* Panel administracyjny */

.admin-form-section-heading {
    margin-top: 4px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
}

.admin-form-section-heading h2,
.admin-form-section-heading p {
    margin: 0;
}

.admin-form-section-heading h2 {
    margin-bottom: 5px;
    font-size: 19px;
}

.admin-profile-fact {
    padding: 12px 0;
    border-top: 1px solid var(--line);
}

.admin-profile-fact summary {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.admin-profile-fact summary span {
    overflow: hidden;
    color: var(--muted);
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-profile-fact .form-grid {
    margin: 16px 0 8px;
}

.admin-profile-fact-actions {
    display: flex;
    justify-content: flex-start;
}

.admin-case-relationship {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: end;
    padding: 14px 0;
    border-top: 1px solid var(--line);
}

.admin-case-relationship label {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.admin-case-relationship textarea {
    width: 100%;
    padding: 10px 11px;
    border: 1px solid #cfd4dc;
    border-radius: 8px;
    font: inherit;
}

/* Breakpoint pośredni */

@media (max-width: 1050px) {
    .politician-hero-grid {
        grid-template-columns: 200px minmax(0, 1fr);
    }

    .politician-portrait-wrap {
        width: 156px;
    }

    .politician-portrait {
        width: 156px;
        height: 195px;
    }

    .politician-hero-aside {
        grid-column: 1 / -1;
        grid-row: 3;
        display: grid;
        grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
        gap: 0 24px;
    }

    .politician-head-panel-title,
    .politician-profile-stats,
    .politician-verified {
        grid-column: 1;
    }

    .politician-profile-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .politician-profile-stats > div:last-child {
        grid-column: auto;
        padding-top: 0;
        border-top: 0;
    }

    .politician-head-latest {
        grid-column: 2;
        grid-row: 1 / span 3;
        margin-top: 0;
    }

    .politician-verified {
        margin-top: 12px;
    }

    .politician-follow-box {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .politician-content-grid {
        grid-template-columns: minmax(0, 1fr) 280px;
        gap: 28px;
    }
}

@media (max-width: 800px) {
    .politician-content-grid {
        grid-template-columns: 1fr;
    }

    .politician-sidebar {
        position: static;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .politician-correction-link {
        grid-column: 1 / -1;
    }
}

/* Mobile */

@media (max-width: 650px) {
    .politician-page-head {
        padding: 28px 0 26px;
    }

    .politician-page-head .back {
        margin-bottom: 15px;
    }

    .politician-hero-grid {
        grid-template-columns: 104px minmax(0, 1fr);
        column-gap: 18px;
        row-gap: 6px;
    }

    .politician-portrait-wrap::after {
        inset: 7px -7px -7px 7px;
        border-radius: var(--radius-card);
    }

    .politician-portrait {
        width: 104px;
        height: 132px;
        border-radius: 14px;
    }

    .politician-hero-copy {
        display: contents;
    }

    .politician-portrait-wrap {
        width: 104px;
        margin: 0;
    }

    .politician-hero-left {
        grid-column: 1;
        grid-row: 1 / span 3;
    }

    .politician-hero-copy > .eyebrow,
    .politician-hero-copy > h1,
    .politician-hero-copy > .politician-identity-line {
        grid-column: 2;
    }

    .politician-hero-copy > .eyebrow {
        grid-row: 1;
    }

    .politician-hero-copy > h1 {
        grid-row: 2;
    }

    .politician-hero-copy > .politician-identity-line {
        grid-row: 3;
    }

    .politician-hero-copy h1 {
        margin: 6px 0 9px;
        font-size: 32px;
    }

    .politician-identity-line {
        font-size: 12px;
    }

    .politician-identity-line > strong:not(:last-child)::after {
        display: none;
    }

    .politician-hero-copy .lead,
    .politician-hero-aside {
        grid-column: 1 / -1;
    }

    .politician-hero-copy .lead {
        grid-row: 4;
        margin-top: 15px;
        font-size: 14px;
    }

    .politician-follow-box {
        grid-column: 1 / -1;
        grid-row: 5;
        margin-top: 12px;
    }

    .politician-hero-aside {
        grid-row: 6;
        margin-top: 8px;
        display: block;
        padding: 13px;
    }

    .politician-profile-stats strong {
        font-size: 18px;
    }

    .politician-profile-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .politician-profile-stats > div:last-child {
        grid-column: span 2;
        padding-top: 12px;
        border-top: 1px solid var(--line);
    }

    .politician-head-latest {
        margin-top: 17px;
    }

    .politician-anchor-nav {
        top: 64px;
    }

    .politician-anchor-nav .container {
        gap: 21px;
    }

    .politician-content-section {
        padding-top: 40px;
    }

    .politician-section-head h2 {
        font-size: 25px;
    }

    .politician-featured-case {
        padding: 22px 20px;
    }

    .politician-featured-case h3 {
        font-size: 22px;
    }

    .politician-case-latest {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }

    .politician-case-footer {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
    }

    .politician-case-footer a {
        margin: 5px 0 0;
    }

    .politician-cases-grid,
    .politician-sidebar {
        grid-template-columns: 1fr;
    }

    .politician-section-block + .politician-section-block {
        margin-top: 46px;
        padding-top: 42px;
    }

    .politician-activity-list::before {
        left: 5px;
    }

    .politician-activity-item {
        display: block;
        padding: 0 0 25px 27px;
    }

    .politician-activity-item::before {
        left: 1px;
    }

    .politician-activity-item time {
        display: block;
        margin-bottom: 4px;
        text-align: left;
    }

    .admin-case-relationship {
        grid-template-columns: 1fr;
    }
}

.politician-fact-detail {
    display: block;
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.45;
}

.politician-official-link {
    color: var(--accent);
    font-weight: 750;
}

/* ========================================================================== 
   Profil partii
   ========================================================================== */

.party-profile-page-head {
    padding: 42px 0 38px;
    overflow: hidden;
    background:
        radial-gradient(circle at 8% 0, rgba(71, 122, 151, .1), transparent 29%),
        radial-gradient(circle at 88% 8%, rgba(179, 32, 37, .07), transparent 28%),
        #fff;
}

.party-profile-page-head .back {
    margin-bottom: 24px;
}

.party-profile-hero-grid {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr) 280px;
    gap: 34px;
    align-items: start;
}

.party-profile-logo-wrap {
    position: relative;
    grid-column: 1;
    grid-row: 1;
    width: 176px;
    margin: 0 auto;
}

.party-profile-logo-wrap::after {
    position: absolute;
    inset: 10px -10px -10px 10px;
    z-index: 0;
    content: '';
    border: 1px solid #cbdce5;
    border-radius: 24px;
}

.party-profile-logo {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 176px;
    height: 176px;
    padding: 22px;
    object-fit: contain;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: #f3f7f9;
    box-shadow: var(--shadow-surface-card);
}

.party-profile-logo-placeholder {
    color: #37677f;
    font-size: 50px;
    font-weight: 850;
}

.party-profile-hero-copy {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    padding-top: 5px;
}

.party-profile-hero-copy h1 {
    max-width: 780px;
    margin: 9px 0 14px;
    font-family: "Geist", var(--font-sans, sans-serif);
    font-size: clamp(38px, 4.3vw, 57px);
    line-height: 1.02;
    letter-spacing: -.035em;
}

.party-profile-hero-copy h1 small {
    display: block;
    margin-top: 10px;
    color: #69727e;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: .08em;
}

.party-profile-hero-copy .lead {
    max-width: 650px;
    margin: 20px 0 0;
    color: #505761;
    font-size: 17px;
    line-height: 1.63;
}

.party-profile-follow-box {
    grid-column: 1 / 3;
    grid-row: 2;
    width: 100%;
    max-width: none;
    margin: 0;
}

.party-profile-hero-aside {
    grid-column: 3;
    grid-row: 1 / span 2;
    padding: 23px;
    border: 1px solid var(--line);
    border-radius: var(--radius-panel);
    background: rgba(247, 249, 250, .95);
    box-shadow: var(--shadow-surface-panel);
}

.party-profile-panel-title {
    margin: 0 0 17px;
    color: var(--accent);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.party-profile-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px 18px;
}

.party-profile-stats > div {
    min-width: 0;
}

.party-profile-stats > div:last-child {
    grid-column: span 2;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}

.party-profile-stats strong,
.party-profile-stats span {
    display: block;
}

.party-profile-stats strong {
    margin-bottom: 5px;
    color: #303640;
    font-size: 27px;
    line-height: 1.1;
}

.party-profile-stats > div:last-child strong {
    font-size: 15px;
}

.party-profile-stats span {
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .065em;
    line-height: 1.3;
    text-transform: uppercase;
}

.party-profile-head-latest {
    position: relative;
    margin-top: 21px;
    padding: 16px 16px 15px 19px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
}

.party-profile-head-latest::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    content: '';
    background: var(--accent);
}

.party-profile-head-latest > span,
.party-case-relation > span,
.party-case-latest > span {
    display: block;
    margin-bottom: 6px;
    color: var(--accent);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.party-profile-head-latest strong {
    display: block;
    font-size: 14px;
    line-height: 1.4;
}

.party-profile-head-latest a,
.party-profile-head-latest time {
    display: block;
    margin-top: 6px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.45;
}

.party-profile-anchor-nav {
    position: sticky;
    top: 68px;
    z-index: 12;
    border-bottom: 1px solid var(--line);
    background: rgba(255, 255, 255, .94);
    backdrop-filter: blur(14px);
}

.party-profile-anchor-nav .container {
    display: flex;
    gap: 27px;
    overflow-x: auto;
    scrollbar-width: none;
}

.party-profile-anchor-nav .container::-webkit-scrollbar {
    display: none;
}

.party-profile-anchor-nav a {
    flex-shrink: 0;
    padding: 14px 0 12px;
    border-bottom: 2px solid transparent;
    color: #555d68;
    font-size: 13px;
    font-weight: 750;
}

.party-profile-anchor-nav a:hover {
    border-bottom-color: var(--accent);
    color: var(--accent);
}

.party-profile-anchor-nav a span {
    margin-left: 3px;
    color: var(--muted);
}

.party-profile-members-section {
    padding-top: 62px;
    background: linear-gradient(180deg, #f7f9fa 0, #fff 100%);
}

.party-profile-section-block {
    scroll-margin-top: 135px;
}

.party-profile-section-block + .party-profile-section-block {
    margin-top: 64px;
    padding-top: 58px;
    border-top: 1px solid var(--line);
}

.party-profile-section-head {
    align-items: center;
    margin-bottom: 25px;
}

.party-profile-section-head h2 {
    max-width: 860px;
    margin-top: 7px;
    font-size: 31px;
}

.party-member-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(330px, 100%), 1fr));
    grid-auto-flow: dense;
    gap: 14px;
}

.party-member-card {
    position: relative;
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr) auto;
    gap: 15px;
    align-items: center;
    min-width: 0;
    padding: 17px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius-panel);
    background: #fff;
    box-shadow: var(--shadow-surface-card);
    transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}

.party-member-card:hover {
    transform: translateY(-4px);
    border-color: #d9a5a8;
    box-shadow: var(--shadow-surface-card-hover);
}

.party-member-photo-wrap {
    display: block;
    overflow: hidden;
    border-radius: 13px;
}

.party-member-photo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 74px;
    height: 88px;
    object-fit: cover;
    background: #edf1f4;
    transition: transform .7s ease-out;
}

.party-member-card:hover .party-member-photo {
    transform: scale(1.055);
}

.party-member-placeholder {
    color: #8f292e;
    font-size: 27px;
    font-weight: 850;
}

.party-member-copy,
.party-member-copy strong,
.party-member-copy span,
.party-member-copy small {
    display: block;
}

.party-member-copy {
    min-width: 0;
}

.party-member-copy strong {
    font-size: 17px;
    line-height: 1.28;
}

.party-member-copy span {
    margin-top: 6px;
    color: #555d68;
    font-size: 12px;
    line-height: 1.4;
}

.party-member-copy small {
    margin-top: 9px;
    color: var(--muted);
    font-size: 10px;
    line-height: 1.45;
}

.party-member-arrow {
    color: var(--accent);
    font-size: 18px;
    transition: transform .25s ease;
}

.party-member-card:hover .party-member-arrow {
    transform: translateX(3px);
}

.party-former-members details {
    border: 1px solid var(--line);
    border-radius: var(--radius-panel);
    background: rgba(255, 255, 255, .7);
}

.party-former-members summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 21px 23px;
    cursor: pointer;
    list-style: none;
}

.party-former-members summary::-webkit-details-marker {
    display: none;
}

.party-former-members summary > span:first-child > span,
.party-former-members summary > span:first-child > strong {
    display: block;
}

.party-former-members summary strong {
    margin-top: 5px;
    font-size: 21px;
}

.party-former-member-list {
    border-top: 1px solid var(--line);
}

.party-former-member-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 24px;
    gap: 18px;
    align-items: center;
    padding: 15px 23px;
    border-top: 1px solid var(--line);
    color: #555d68;
    font-size: 12px;
}

.party-former-member-row:first-child {
    border-top: 0;
}

.party-former-member-row strong {
    color: #303640;
    font-size: 14px;
}

.party-former-member-row:hover strong,
.party-former-member-row:hover > span:last-child {
    color: var(--accent);
}

.party-profile-content-section {
    padding-top: 66px;
}

.party-profile-content-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 50px;
    align-items: start;
}

.party-profile-main-column,
.party-profile-sidebar {
    min-width: 0;
}

.party-featured-case,
.party-case-card {
    border: 1px solid var(--line);
    background: #fff;
    box-shadow: var(--shadow-surface-card);
}

.party-featured-case {
    position: relative;
    top: auto;
    z-index: 1;
    padding: 30px;
    overflow: hidden;
    border-radius: var(--radius-feature);
}

.party-featured-case::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    content: '';
    background: var(--accent);
}

.party-case-kicker {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.party-featured-case h3 {
    max-width: 720px;
    margin: 12px 0 13px;
    font-size: 27px;
}

.party-case-summary {
    margin: 0;
    color: #555d68;
    font-size: 14px;
    line-height: 1.65;
}

.party-case-relation {
    margin-top: 20px;
    padding: 15px 17px;
    border-left: 3px solid #9cbaca;
    border-radius: 0 10px 10px 0;
    background: #f1f7fa;
}

.party-case-relation > span {
    color: #37677f;
}

.party-case-relation p {
    margin: 0;
    color: #394e59;
    font-size: 13px;
    line-height: 1.55;
}

.party-case-latest {
    display: flex;
    align-items: baseline;
    gap: 9px;
    margin-top: 17px;
    font-size: 12px;
}

.party-case-latest > span {
    margin: 0;
    color: var(--muted);
}

.party-case-footer {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-top: 22px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 11px;
}

.party-case-footer a {
    margin-left: auto;
    color: var(--accent);
    font-weight: 800;
}

.party-cases-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 14px;
    padding-top: 1px;
    background: #fff;
}

.party-case-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 21px;
    border-radius: var(--radius-card);
    transition: transform .3s ease, box-shadow .3s ease;
}

.party-case-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-surface-card-hover);
}

.party-case-card h3 {
    margin: 10px 0 11px;
    font-size: 18px;
    line-height: 1.25;
}

.party-case-card .party-case-summary {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    font-size: 13px;
}

.party-case-relation-compact {
    margin: 16px 0 0;
    padding-top: 14px;
    border-top: 1px dashed var(--line);
    color: #606773;
    font-size: 12px;
    line-height: 1.55;
}

.party-case-card .party-case-footer {
    margin-top: auto;
}

.party-profile-sidebar {
    position: sticky;
    top: 135px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.party-info-card {
    scroll-margin-top: 135px;
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    background: #fff;
    box-shadow: var(--shadow-surface-card);
}

.party-info-card h2 {
    margin: 6px 0 17px;
    font-size: 20px;
}

.party-facts-list {
    margin: 0;
}

.party-facts-list > div {
    padding: 13px 0;
    border-top: 1px solid var(--line);
}

.party-facts-list > div:first-child {
    padding-top: 0;
    border-top: 0;
}

.party-facts-list dt {
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.party-facts-list dd {
    margin: 4px 0 0;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.5;
}

.party-website-link {
    display: block;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
    color: var(--accent);
    font-size: 12px;
    font-weight: 750;
}

.party-correction-link {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 18px 20px;
    border: 1px dashed #c7cbd2;
    border-radius: var(--radius-card);
    background: rgba(255, 255, 255, .55);
}

.party-correction-link span {
    color: var(--muted);
    font-size: 11px;
}

.party-correction-link strong {
    font-size: 13px;
}

.party-activity-list {
    position: relative;
}

.party-activity-list::before {
    position: absolute;
    top: 10px;
    bottom: 18px;
    left: 110px;
    width: 1px;
    content: '';
    background: var(--line);
}

.party-activity-item {
    position: relative;
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 40px;
    padding: 0 0 26px;
}

.party-activity-item::before {
    position: absolute;
    top: 7px;
    left: 106px;
    width: 9px;
    height: 9px;
    content: '';
    border: 2px solid #fff;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 0 1px #d7b5b7;
}

.party-activity-item time {
    padding-top: 3px;
    color: var(--muted);
    font-size: 12px;
    text-align: right;
}

.party-activity-type {
    color: var(--accent);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.party-activity-item h3 {
    margin: 5px 0 6px;
    font-size: 17px;
}

.party-activity-item p {
    margin: 0 0 7px;
    color: #555d68;
    font-size: 13px;
}

.party-activity-item a {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.party-profile-follow-success {
    padding-bottom: 0;
}

.admin-party-case-links {
    margin-top: 22px;
}

.party-motion-ready [data-party-reveal] {
    opacity: 0;
    transform: translateY(18px) scale(.99);
    transition: opacity .65s ease, transform .75s cubic-bezier(.2, .8, .2, 1);
}

.party-motion-ready [data-party-reveal].is-visible {
    opacity: 1;
    transform: none;
}

@media (max-width: 1050px) {
    .party-profile-hero-grid {
        grid-template-columns: 200px minmax(0, 1fr);
    }

    .party-profile-logo-wrap,
    .party-profile-logo {
        width: 156px;
    }

    .party-profile-logo {
        height: 156px;
    }

    .party-profile-follow-box {
        grid-column: 1 / -1;
    }

    .party-profile-hero-aside {
        grid-column: 1 / -1;
        grid-row: 3;
        display: grid;
        grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
        gap: 0 24px;
    }

    .party-profile-panel-title,
    .party-profile-stats {
        grid-column: 1;
    }

    .party-profile-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .party-profile-head-latest {
        grid-column: 2;
        grid-row: 1 / span 2;
        margin-top: 0;
    }

    .party-profile-content-grid {
        grid-template-columns: minmax(0, 1fr) 280px;
        gap: 28px;
    }

    .party-member-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 800px) {
    .party-profile-content-grid {
        grid-template-columns: 1fr;
    }

    .party-profile-sidebar {
        position: static;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 650px) {
    .party-profile-page-head {
        padding: 28px 0 26px;
    }

    .party-profile-page-head .back {
        margin-bottom: 15px;
    }

    .party-profile-hero-grid {
        grid-template-columns: 96px minmax(0, 1fr);
        column-gap: 17px;
        row-gap: 7px;
    }

    .party-profile-logo-wrap,
    .party-profile-logo {
        width: 96px;
    }

    .party-profile-logo-wrap {
        grid-row: 1 / span 3;
        margin: 0;
    }

    .party-profile-logo-wrap::after {
        inset: 7px -7px -7px 7px;
        border-radius: var(--radius-panel);
    }

    .party-profile-logo {
        height: 96px;
        padding: 12px;
        border-radius: var(--radius-card);
    }

    .party-profile-logo-placeholder {
        font-size: 28px;
    }

    .party-profile-hero-copy {
        display: contents;
    }

    .party-profile-hero-copy > .eyebrow,
    .party-profile-hero-copy > h1 {
        grid-column: 2;
    }

    .party-profile-hero-copy > .eyebrow {
        grid-row: 1;
    }

    .party-profile-hero-copy > h1 {
        grid-row: 2 / span 2;
        margin: 5px 0 0;
        font-size: 29px;
    }

    .party-profile-hero-copy h1 small {
        margin-top: 7px;
        font-size: 11px;
    }

    .party-profile-hero-copy .lead,
    .party-profile-follow-box,
    .party-profile-hero-aside {
        grid-column: 1 / -1;
    }

    .party-profile-hero-copy .lead {
        grid-row: 4;
        margin-top: 15px;
        font-size: 14px;
    }

    .party-profile-follow-box {
        grid-row: 5;
        margin-top: 12px;
    }

    .party-profile-hero-aside {
        grid-row: 6;
        display: block;
        margin-top: 8px;
        padding: 15px;
    }

    .party-profile-head-latest {
        margin-top: 17px;
    }

    .party-profile-anchor-nav {
        top: 64px;
    }

    .party-profile-anchor-nav .container {
        gap: 21px;
    }

    .party-profile-members-section,
    .party-profile-content-section {
        padding-top: 42px;
    }

    .party-profile-section-head h2 {
        font-size: 25px;
    }

    .party-member-grid,
    .party-cases-grid,
    .party-profile-sidebar {
        grid-template-columns: 1fr;
    }

    .party-member-card {
        grid-template-columns: 64px minmax(0, 1fr) auto;
        padding: 14px;
    }

    .party-member-photo {
        width: 64px;
        height: 76px;
    }

    .party-former-member-row {
        grid-template-columns: minmax(0, 1fr) 20px;
        gap: 6px 12px;
    }

    .party-former-member-row > span:nth-child(2) {
        grid-column: 1;
        grid-row: 2;
    }

    .party-former-member-row > span:last-child {
        grid-column: 2;
        grid-row: 1 / span 2;
    }

    .party-profile-section-block + .party-profile-section-block {
        margin-top: 46px;
        padding-top: 42px;
    }

    .party-featured-case {
        position: relative;
        top: auto;
        padding: 22px 20px;
    }

    .party-featured-case h3 {
        font-size: 22px;
    }

    .party-case-latest,
    .party-case-footer {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }

    .party-case-footer a {
        margin: 5px 0 0;
    }

    .party-activity-list::before {
        left: 5px;
    }

    .party-activity-item {
        display: block;
        padding: 0 0 25px 27px;
    }

    .party-activity-item::before {
        left: 1px;
    }

    .party-activity-item time {
        display: block;
        margin-bottom: 4px;
        text-align: left;
    }
}

@media (prefers-reduced-motion: reduce) {
    .party-motion-ready [data-party-reveal],
    .party-member-card,
    .party-member-photo,
    .party-case-card {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* ==========================================================================
   Globalne wyszukiwanie – /szukaj
   ========================================================================== */


/* --------------------------------------------------------------------------
   Nagłówek i formularz
   -------------------------------------------------------------------------- */

   .search-page-head {
    padding-bottom: 42px;
}


.search-page-head h1 {
    max-width: 900px;
}


.search-page-head .lead {
    margin-bottom: 0;
}


.search-page-form {
    max-width: 760px;
    margin-top: 26px;
}


.search-page-form input {
    font-size: 15px;
}


/* --------------------------------------------------------------------------
   Obszar wyników
   -------------------------------------------------------------------------- */

.search-results-section {
    min-height: 360px;
}


.search-results-summary {
    margin-bottom: 32px;

    color: var(--muted);

    font-size: 14px;
}


.search-results-summary strong {
    color: var(--text);

    font-weight: 800;
}


/* --------------------------------------------------------------------------
   Grupy wyników
   -------------------------------------------------------------------------- */

.search-result-group {
    margin-top: 46px;
}


.search-result-group:first-of-type {
    margin-top: 0;
}


.search-result-group + .search-result-group {
    padding-top: 46px;

    border-top: 1px solid var(--line);
}


.search-result-group .section-head {
    align-items: flex-end;

    margin-bottom: 16px;
}


.search-result-count {
    min-width: 28px;
    height: 28px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 0 9px;

    background: var(--soft);

    border-radius: 999px;

    color: var(--muted);

    font-size: 12px;
    font-weight: 800;
    line-height: 1;
}


/* --------------------------------------------------------------------------
   Politycy
   -------------------------------------------------------------------------- */

.search-politicians-grid {
    gap: 12px;
}


.search-person-card {
    min-width: 0;
    min-height: 88px;

    padding: 14px 16px;

    transition:
        border-color .15s ease,
        box-shadow .15s ease,
        transform .15s ease;
}


.search-person-card:hover {
    border-color: #d5d9e0;

    box-shadow:
        0 10px 28px rgba(15, 23, 42, .09);

    transform: translateY(-1px);

    color: var(--text);
}


.search-person-card .person-photo {
    width: 58px;
    height: 58px;

    flex: 0 0 58px;
}


.search-person-card .person-photo img {
    width: 100%;
    height: 100%;

    border-radius: 0;

    object-fit: cover;

    background: transparent;
}


/* --------------------------------------------------------------------------
   Sprawy
   -------------------------------------------------------------------------- */

.search-cases-list {
    gap: 10px;
}


.search-case-card {
    padding: 20px 22px;

    transition:
        border-color .15s ease,
        box-shadow .15s ease;
}


.search-case-card:hover {
    border-color: #d5d9e0;

    box-shadow:
        0 10px 28px rgba(15, 23, 42, .08);
}


.search-case-card h3 {
    margin:
        7px
        0
        9px;

    font-size: 18px;
    line-height: 1.3;
}


.search-case-card h3 a {
    color: var(--text);

    transition:
        color .15s ease;
}


.search-case-card h3 a:hover {
    color: var(--accent);
}


.search-case-summary {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;

    overflow: hidden;

    margin:
        0
        0
        11px !important;

    color: #555d68;

    font-size: 13px;
    line-height: 1.55;
}


.search-case-card .case-meta {
    font-size: 12px;
}


.search-case-card .case-footer {
    margin-top: 3px;

    font-size: 12px;
}


/* --------------------------------------------------------------------------
   Partie
   -------------------------------------------------------------------------- */

.search-parties-grid {
    gap: 12px;
}


/* --------------------------------------------------------------------------
   Brak wyników
   -------------------------------------------------------------------------- */

.search-empty {
    max-width: 760px;

    padding: 30px;

    font-size: 14px;
}


/* ==========================================================================
   Globalne wyszukiwanie – tablet
   ========================================================================== */

@media (max-width: 900px) {

    .search-result-group {
        margin-top: 40px;
    }


    .search-result-group + .search-result-group {
        padding-top: 40px;
    }

}


/* ==========================================================================
   Globalne wyszukiwanie – mobile
   ========================================================================== */

@media (max-width: 650px) {

    .search-page-head {
        padding:
            42px
            0
            30px;
    }


    .search-page-head h1 {
        font-size: 34px;
    }


    .search-page-head .lead {
        font-size: 16px;
    }


    .search-page-form {
        width: 100%;

        margin-top: 22px;
    }


    .search-page-form .button {
        width: 100%;
    }


    .search-results-section {
        min-height: 260px;
    }


    .search-results-summary {
        margin-bottom: 26px;

        font-size: 13px;
    }


    .search-result-group {
        margin-top: 34px;
    }


    .search-result-group + .search-result-group {
        padding-top: 34px;
    }


    .search-result-group .section-head {
        align-items: flex-end;
        flex-direction: row;

        margin-bottom: 13px;
    }


    .search-result-group .section-head h2 {
        font-size: 23px;
    }


    .search-result-count {
        min-width: 26px;
        height: 26px;

        font-size: 11px;
    }


    .search-person-card {
        min-height: 82px;

        padding: 12px;
    }


    .search-person-card .person-photo {
        width: 54px;
        height: 54px;

        flex-basis: 54px;
    }


    .search-case-card {
        padding: 17px;
    }


    .search-case-card h3 {
        font-size: 16px;
    }


    .search-case-summary {
        font-size: 12px;
        line-height: 1.5;
    }


    .search-empty {
        padding: 22px;
    }

}

/* ==========================================================================
   Homepage – globalna wyszukiwarka live
   ========================================================================== */


/* --------------------------------------------------------------------------
   Kontener
   -------------------------------------------------------------------------- */

   .hero-search-shell {
    position: relative;

    max-width: 680px;

    margin-top: 28px;
}


/*
 * Margin przenosimy na shell, bo formularz
 * znajduje się teraz wewnątrz kontenera autocomplete.
 */
.hero-search-shell .hero-search {
    max-width: none;

    margin-top: 0;
}


/* --------------------------------------------------------------------------
   Pole wyszukiwania
   -------------------------------------------------------------------------- */

.hero-search-shell .hero-search input {
    font-size: 15px;
}


/* --------------------------------------------------------------------------
   Dropdown
   -------------------------------------------------------------------------- */

.hero-search-suggestions {
    position: absolute;

    z-index: 30;

    top: calc(100% + 8px);
    left: 0;

    width: 100%;
    max-height: 520px;

    overflow-x: hidden;
    overflow-y: auto;

    background: #fff;

    border: 1px solid #d9dde3;
    border-radius: 12px;

    box-shadow: var(--shadow-surface-popover);
}


.hero-search-suggestions[hidden] {
    display: none;
}


/* --------------------------------------------------------------------------
   Grupy
   -------------------------------------------------------------------------- */

.hero-search-group {
    padding:
        8px
        0;
}


.hero-search-group + .hero-search-group {
    border-top: 1px solid var(--line);
}


.hero-search-group-label {
    padding:
        7px
        14px
        6px;

    color: var(--muted);

    font-size: 10px;
    font-weight: 800;
    line-height: 1.2;

    letter-spacing: .09em;
    text-transform: uppercase;
}


/* --------------------------------------------------------------------------
   Pojedynczy wynik
   -------------------------------------------------------------------------- */

.hero-search-result {
    width: 100%;

    display: flex;
    align-items: center;

    gap: 11px;

    min-height: 54px;

    padding:
        9px
        14px;

    color: var(--text);

    transition:
        background .12s ease,
        color .12s ease;
}


.hero-search-result:hover,
.hero-search-result.is-active {
    background: #f6f7f9;

    color: var(--text);
}


/* --------------------------------------------------------------------------
   Zdjęcie / logo
   -------------------------------------------------------------------------- */

.hero-search-result-visual {
    width: 38px;
    height: 38px;

    flex: 0 0 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    overflow: hidden;

    background: var(--soft);

    border: 1px solid var(--line);
    border-radius: 50%;
}


.hero-search-result-visual img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}


.hero-search-result-visual > span {
    color: #555d68;

    font-size: 12px;
    font-weight: 800;
}


/*
 * Partie mają logo, więc zamiast okrągłego
 * avatara używamy małego kwadratu.
 */
.hero-search-result-visual-party {
    padding: 4px;

    background: #fff;

    border-radius: 8px;
}


.hero-search-result-visual-party img {
    object-fit: contain;
}


/* --------------------------------------------------------------------------
   Treść wyniku
   -------------------------------------------------------------------------- */

.hero-search-result-content {
    flex: 1;
    min-width: 0;

    display: flex;
    flex-direction: column;

    gap: 2px;
}


.hero-search-result-title {
    display: block;

    overflow: hidden;

    color: var(--text);

    font-size: 13px;
    font-weight: 750;
    line-height: 1.35;

    text-overflow: ellipsis;
    white-space: nowrap;
}


.hero-search-result-meta {
    display: block;

    overflow: hidden;

    color: var(--muted);

    font-size: 11px;
    font-weight: 500;
    line-height: 1.35;

    text-overflow: ellipsis;
    white-space: nowrap;
}


.hero-search-result:hover
.hero-search-result-title,
.hero-search-result.is-active
.hero-search-result-title {
    color: var(--accent);
}


/* --------------------------------------------------------------------------
   Strzałka
   -------------------------------------------------------------------------- */

.hero-search-result-arrow {
    flex-shrink: 0;

    color: #a3a8b0;

    font-size: 14px;
    line-height: 1;

    transition:
        color .12s ease,
        transform .12s ease;
}


.hero-search-result:hover
.hero-search-result-arrow,
.hero-search-result.is-active
.hero-search-result-arrow {
    color: var(--accent);

    transform: translateX(2px);
}


/* --------------------------------------------------------------------------
   Brak wyników
   -------------------------------------------------------------------------- */

.hero-search-empty {
    padding: 18px 14px;

    color: var(--muted);

    font-size: 13px;
}


/* --------------------------------------------------------------------------
   Wszystkie wyniki
   -------------------------------------------------------------------------- */

.hero-search-all {
    display: flex;
    align-items: center;
    justify-content: center;

    min-height: 44px;

    padding:
        10px
        14px;

    background: #fafbfc;

    border-top: 1px solid var(--line);

    color: #555d68;

    font-size: 12px;
    font-weight: 750;

    transition:
        background .12s ease,
        color .12s ease;
}


.hero-search-all:hover {
    background: #f4f5f7;

    color: var(--accent);
}


/* ==========================================================================
   Homepage – globalna wyszukiwarka live mobile
   ========================================================================== */

@media (max-width: 650px) {

    .hero-search-shell {
        width: 100%;
        max-width: none;

        margin-top: 24px;
    }


    .hero-search-shell .hero-search {
        width: 100%;
    }


    .hero-search-shell .hero-search input {
        width: 100%;
    }


    .hero-search-suggestions {
        top: calc(100% + 7px);

        max-height: 440px;

        border-radius: 10px;
    }


    .hero-search-result {
        min-height: 52px;

        padding:
            9px
            12px;
    }


    .hero-search-group-label {
        padding-left: 12px;
        padding-right: 12px;
    }


    .hero-search-result-visual {
        width: 36px;
        height: 36px;

        flex-basis: 36px;
    }


    .hero-search-result-title {
        font-size: 12px;
    }


    .hero-search-result-meta {
        font-size: 10px;
    }

}

.hero-search-result-case
.hero-search-result-title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;

    overflow: hidden;

    white-space: normal;
    text-overflow: unset;
}

.hero-search-result-case {
    padding-top: 11px;
    padding-bottom: 11px;
}

/* ==========================================================================
   Spokojniejsza hierarchia strony głównej

   Warstwa celowo nie zmienia kolejności ani struktury komponentów. Porządkuje
   wyłącznie typografię, odstępy, tła i użycie koloru akcentowego.
   ========================================================================== */

:root {
    --home-section-space: var(--section-space-feature);
    --home-section-space-mobile: 52px;
    --home-section-tint: #f3f4f6;
    --home-section-warm: #faf9f7;
}

/* --------------------------------------------------------------------------
   Hero — jedyny główny czerwony eyebrow
   -------------------------------------------------------------------------- */

.home-hero {
    padding-top: 72px;
    padding-bottom: 64px;
}

.home-hero h1 {
    max-width: 690px;
    margin-top: 11px;
    margin-bottom: 20px;
    font-size: clamp(48px, 5.3vw, 68px);
    font-weight: 760;
    line-height: 1.04;
    letter-spacing: -.043em;
    text-wrap: normal;
}

.home-hero .home-hero-intro {
    max-width: 690px;
    color: #555d68;
    font-size: 18px;
    line-height: 1.62;
}

.home-featured-update h2 {
    font-size: clamp(25px, 2.45vw, 33px);
    font-weight: 740;
    line-height: 1.14;
    letter-spacing: -.032em;
}

.home-featured-kicker,
.home-featured-topline > time {
    font-size: 10px;
    letter-spacing: .085em;
}

/* --------------------------------------------------------------------------
   Rytm sekcji
   -------------------------------------------------------------------------- */

.home-recent-section,
.home-archive-section,
.home-follow-section,
.home-signals-section,
.home-entities-section,
.support-prompt-section {
    padding-top: var(--home-section-space);
    padding-bottom: var(--home-section-space);
}

.home-recent-section {
    background: #f5f6f8;
    border-top: 1px solid var(--line);
}

.home-archive-section {
    background: #fff;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.home-follow-section {
    background: var(--home-section-warm);
}

.home-signals-section {
    background: #fff;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.home-entities-section {
    background: var(--home-section-tint);
}

.support-prompt-section {
    background: #fff;
    border-top: 1px solid var(--line);
}

.home-signals-head,
.home-entities-head,
.home-archive-head {
    margin-bottom: 30px;
}

.home-follow-intro h2,
.support-prompt h2 {
    margin-top: 5px;
    margin-bottom: 0;
    font-size: var(--font-size-heading-feature-section);
    font-weight: var(--font-weight-heading-section);
    line-height: 1.12;
    letter-spacing: -.035em;
}

.section-description,
.home-archive-head p {
    max-width: 670px;
    margin-top: 10px;
    color: #69717c;
    font-size: 14px;
    line-height: 1.58;
}

/* --------------------------------------------------------------------------
   Eyebrowy i etykiety drugiego poziomu
   -------------------------------------------------------------------------- */

.home-follow-kicker {
    color: var(--color-text-kicker);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .055em;
}

.home-follow-bell {
    color: #69717c;
    background: #eef0f3;
}

#ostatnie-aktualizacje,
#nowe-w-archiwum,
#obserwuj {
    scroll-margin-top: 78px;
}

.case-activity-label {
    color: #8d272c;
    font-size: 10px;
    font-weight: 760;
    letter-spacing: .075em;
}

.home-archive-date {
    color: #717985;
    font-weight: 700;
    letter-spacing: .045em;
}

/* Podmioty są nawigacją, nie czerwonym statusem. */
.case-entity {
    background: #eef0f3;
    color: #4f5864;
}

.case-entity:hover {
    background: #e2e6eb;
    color: var(--text);
}

.case-entity-party {
    background: #e8ebef;
    color: #4f5864;
}

/* --------------------------------------------------------------------------
   Hierarchia kart i podsekcji
   -------------------------------------------------------------------------- */

.home-recent-section .case-card h3 {
    font-size: 18px;
    font-weight: 720;
    line-height: 1.24;
    letter-spacing: -.022em;
}

.home-signal-card-head h3,
.home-entity-column .subsection-head h3 {
    font-size: 18px;
    font-weight: 720;
    line-height: 1.25;
    letter-spacing: -.018em;
}

.home-signal-card-head small,
.home-entity-column .subsection-head small {
    color: #777f89;
    font-weight: 500;
}

.section-head > a,
.subsection-head > a,
.home-follow-manage {
    color: #5f6772;
    font-weight: 680;
}

.section-head > a:hover,
.subsection-head > a:hover,
.home-follow-manage:hover {
    color: var(--accent);
}

/* --------------------------------------------------------------------------
   Mobile
   -------------------------------------------------------------------------- */

@media (max-width: 650px) {
    .home-hero {
        padding-top: 42px;
        padding-bottom: 38px;
    }

    .home-hero h1 {
        font-size: clamp(39px, 11vw, 50px);
        line-height: 1.04;
    }

    .home-hero .home-hero-intro {
        font-size: 16px;
    }

    .home-recent-section,
    .home-archive-section,
    .home-follow-section,
    .home-signals-section,
    .home-entities-section,
    .support-prompt-section {
        padding-top: var(--home-section-space-mobile);
        padding-bottom: var(--home-section-space-mobile);
    }

    .home-signals-head,
    .home-entities-head,
    .home-archive-head {
        margin-bottom: 24px;
    }

    .home-follow-intro h2,
    .support-prompt h2 {
        font-size: 29px;
    }

    #ostatnie-aktualizacje,
    #nowe-w-archiwum,
    #obserwuj {
        scroll-margin-top: 64px;
    }
}

/* ========================================================================== 
   Spójna hierarchia stron szczegółowych

   Warstwa nie zmienia kolejności ani struktury istniejących komponentów.
   Ujednolica typografię, rytm sekcji, powierzchnie i semantykę czerwieni.
   ========================================================================== */

:root {
    --detail-section-space: var(--section-space-detail);
    --detail-section-space-mobile: 50px;
    --detail-kicker: #737b86;
    --detail-surface: #f5f6f8;
    --detail-soft-border: var(--color-border-subtle);
    --detail-card-shadow: var(--shadow-surface-card);
    --detail-card-shadow-hover: var(--shadow-surface-card-hover);
}

/* --------------------------------------------------------------------------
   Wspólny hero
   -------------------------------------------------------------------------- */

.case-page-head,
.politician-page-head,
.party-profile-page-head {
    background:
        radial-gradient(circle at 88% 8%, rgba(179, 32, 37, .035), transparent 25%),
        linear-gradient(180deg, #fff 0%, #fbfbfc 100%);
    border-bottom: 1px solid var(--detail-soft-border);
}

.case-page-head {
    padding-top: 48px;
    padding-bottom: 48px;
}

.politician-page-head,
.party-profile-page-head {
    padding-top: 44px;
    padding-bottom: 44px;
}

.case-page-head-copy h1,
.politician-hero-copy h1,
.party-profile-hero-copy h1 {
    color: #17191d;
    font-family: var(--font-display);
    font-weight: 750;
    line-height: 1.04;
    letter-spacing: -.042em;
    text-wrap: balance;
}

.case-page-head-copy h1 {
    max-width: 820px;
    font-size: clamp(43px, 4.35vw, 58px);
}

.politician-hero-copy h1,
.party-profile-hero-copy h1 {
    max-width: 780px;
    font-size: clamp(42px, 4.1vw, 55px);
}

.case-page-head-copy .lead,
.politician-hero-copy .lead,
.party-profile-hero-copy .lead {
    color: #59616c;
    font-size: 17px;
    line-height: 1.64;
}



.party-profile-hero-copy h1 small {
    color: #626b76;
    font-size: 14px;
    letter-spacing: .06em;
}

.politician-portrait-wrap::after,
.party-profile-logo-wrap::after {
    border-color: #d8dde3;
}

.politician-portrait,
.party-profile-logo {
    box-shadow: var(--detail-card-shadow);
}

.party-profile-logo {
    background: #f2f4f6;
}

/* --------------------------------------------------------------------------
   Panele podsumowania i nawigacja sekcji
   -------------------------------------------------------------------------- */

.case-head-panel,
.politician-hero-aside,
.party-profile-hero-aside {
    background: #f5f6f8;
    border-color: var(--detail-soft-border);
    border-radius: var(--radius-panel);
    box-shadow: var(--shadow-surface-panel);
}

.case-head-panel-title,
.case-aside-label,
.politician-head-panel-title,
.party-profile-panel-title {
    color: #656e79;
    font-size: 12px;
    font-weight: 720;
    letter-spacing: .025em;
    text-transform: none;
}

.case-head-meta-label,
.case-head-entities-label,
.politician-profile-stats span,
.party-profile-stats span {
    color: #747c87;
    font-weight: 700;
    letter-spacing: .045em;
}


.case-last-activity,
.politician-head-latest,
.party-profile-head-latest {
    border-color: var(--detail-soft-border);
    box-shadow: none;
}

.case-last-activity-label,
.politician-head-latest > span,
.party-profile-head-latest > span {
    font-weight: 750;
    letter-spacing: .065em;
}

.politician-anchor-nav,
.party-profile-anchor-nav {
    border-bottom-color: var(--detail-soft-border);
    box-shadow: var(--shadow-surface-subtle);
}

.politician-anchor-nav a,
.party-profile-anchor-nav a {
    color: #5f6772;
    font-weight: 680;
}

/* --------------------------------------------------------------------------
   Rytm i hierarchia sekcji
   -------------------------------------------------------------------------- */

.case-content-section,
.politician-content-section,
.party-profile-members-section,
.party-profile-content-section,
.case-related-cases-section {
    padding-top: var(--detail-section-space);
    padding-bottom: var(--detail-section-space);
}

.case-content-section,
.politician-content-section,
.party-profile-members-section {
    background: var(--detail-surface);
    border-top: 0;
    border-bottom: 1px solid var(--detail-soft-border);
}

.party-profile-members-section {
    background: var(--detail-surface);
}

.party-profile-content-section,
.case-related-cases-section {
    background: #fff;
}

.case-main-column .source-section-head,
.politician-section-head,
.party-profile-section-head,
.case-related-cases-head {
    margin-bottom: 28px;
}

.case-main-column .source-section-head h2,
.case-subsection-head h2,
.politician-section-head h2,
.party-profile-section-head h2,
.case-related-cases-head h2 {
    margin-top: 5px;
    color: #17191d;
    font-size: clamp(29px, 2.8vw, 36px);
    font-weight: 730;
    line-height: 1.13;
    letter-spacing: -.032em;
}

.source-group-title,
.party-former-members summary strong {
    color: #22252a;
    font-size: 21px;
    font-weight: 710;
    line-height: 1.25;
    letter-spacing: -.018em;
}


.politician-section-block + .politician-section-block,
.party-profile-section-block + .party-profile-section-block {
    margin-top: 68px;
    padding-top: 62px;
    border-top-color: var(--detail-soft-border);
}

.case-subsection {
    margin-top: 26px;
    padding-top: 58px;
    border-top-color: var(--detail-soft-border);
}

/* --------------------------------------------------------------------------
   Karty i informacje drugiego poziomu
   -------------------------------------------------------------------------- */

.case-main-column .source-origin-list .timeline-item,
.case-main-column .source-featured-list .timeline-item,
.case-on-page,
.case-related-entities,
.case-related-card,
.statement-rich,
.politician-featured-case,
.politician-case-card,
.politician-info-card,
.party-member-card,
.party-featured-case,
.party-case-card,
.party-info-card,
.party-former-members details {
    border-color: var(--detail-soft-border);
    box-shadow: var(--detail-card-shadow);
}

.case-related-card,
.politician-case-card,
.party-case-card,
.party-member-card {
    border-radius: var(--radius-card);
}

.case-on-page,
.case-related-entities,
.politician-info-card,
.party-info-card,
.party-former-members details,
.statement-rich {
    border-radius: var(--radius-panel);
    box-shadow: var(--shadow-surface-panel);
}

.politician-featured-case,
.party-featured-case {
    border-radius: var(--radius-feature);
    box-shadow: var(--shadow-surface-feature);
}

.politician-case-card:hover,
.party-case-card:hover,
.party-member-card:hover,
.case-related-card:hover {
    transform: translateY(-1px);
    border-color: var(--color-border-hover);
    box-shadow: var(--detail-card-shadow-hover);
}

.politician-featured-case h3,
.party-featured-case h3 {
    font-size: clamp(23px, 2.15vw, 28px);
    font-weight: 720;
    line-height: 1.18;
    letter-spacing: -.025em;
}

.politician-case-card h3,
.party-case-card h3,
.case-related-card h3,
.case-main-column .source-origin-list .timeline-item h3,
.case-main-column .source-featured-list .timeline-item h3 {
    font-weight: 710;
    letter-spacing: -.015em;
}

.politician-case-kicker,
.party-case-kicker,
.case-related-card-meta {
    color: #747c87;
    font-weight: 680;
    letter-spacing: .035em;
    text-transform: none;
}

.politician-case-relation,
.party-case-relation {
    background: #f2f4f6;
    border-left-color: #c7ccd3;
}

.politician-case-relation span,
.party-case-relation > span,
.politician-case-latest span,
.party-case-latest > span,
.politician-activity-type {
    color: #6b7480;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: none;
}

.politician-case-relation p,
.party-case-relation p {
    color: #525b66;
}

.politician-info-card h2,
.party-info-card h2,
.case-related-entities h2 {
    color: #22252a;
    font-size: 20px;
    font-weight: 720;
    line-height: 1.2;
    letter-spacing: -.018em;
}

.politician-facts-list dt,
.party-facts-list dt {
    color: #747c87;
    font-weight: 690;
    letter-spacing: .035em;
    text-transform: none;
}

.case-related-card-entities span,
.case-related-card-entities .is-party {
    background: #eceff2;
    color: #505965;
}

/* --------------------------------------------------------------------------
   Mobile
   -------------------------------------------------------------------------- */

@media (max-width: 760px) {
    .case-page-head,
    .politician-page-head,
    .party-profile-page-head {
        padding-top: 34px;
        padding-bottom: 38px;
    }

    .case-page-head-copy h1,
    .politician-hero-copy h1,
    .party-profile-hero-copy h1 {
        font-size: clamp(34px, 10.2vw, 43px);
        line-height: 1.06;
        letter-spacing: -.038em;
    }

    .case-page-head-copy .lead,
    .politician-hero-copy .lead,
    .party-profile-hero-copy .lead {
        font-size: 16px;
        line-height: 1.6;
    }

    .case-content-section,
    .politician-content-section,
    .party-profile-members-section,
    .party-profile-content-section,
    .case-related-cases-section {
        padding-top: var(--detail-section-space-mobile);
        padding-bottom: var(--detail-section-space-mobile);
    }

    .case-main-column .source-section-head,
    .politician-section-head,
    .party-profile-section-head,
    .case-related-cases-head {
        margin-bottom: 23px;
    }

    .case-main-column .source-section-head h2,
    .case-subsection-head h2,
    .politician-section-head h2,
    .party-profile-section-head h2,
    .case-related-cases-head h2 {
        font-size: 29px;
    }

    .politician-section-block + .politician-section-block,
    .party-profile-section-block + .party-profile-section-block,
    .case-subsection {
        margin-top: 52px;
        padding-top: 48px;
    }
}

/* ========================================================================== 
   Fundraising / Patronite v2
   ========================================================================== */

:root {
    --support-section-space: var(--section-space-detail);
    --support-section-space-mobile: var(--section-space-base);
}

.support-prompt-supporter {
    min-height: 44px;
    padding: 0 4px;
    border: 0;
    background: transparent;
    color: #68717d;
    font: inherit;
    font-size: 13px;
    font-weight: 680;
    cursor: pointer;
    text-decoration: underline;
    text-decoration-color: #c9ced5;
    text-underline-offset: 3px;
}

.support-prompt-supporter:hover {
    color: var(--text);
    text-decoration-color: #929aa5;
}

.support-prompt-supporter:focus-visible {
    outline: 3px solid rgba(179, 32, 37, .14);
    outline-offset: 3px;
    border-radius: 4px;
}

.support-prompt-supporter:disabled {
    opacity: .55;
    cursor: default;
}

.case-notification-support {
    padding-top: 12px;
}

/* /wesprzyj — pełna szerokość i hierarchia fundraisingowa */
.support-page-hero {
    padding: 74px 0 68px;
    background: #fff;
}

.support-page-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(340px, .75fr);
    gap: clamp(54px, 7vw, 96px);
    align-items: center;
}

.support-page-hero-copy {
    max-width: 760px;
}

.support-page-hero h1 {
    max-width: 760px;
    margin-top: 12px;
    font-size: clamp(44px, 5vw, 66px);
    line-height: 1.035;
    letter-spacing: -.045em;
}

.support-page-hero .lead {
    max-width: 720px;
    margin-top: 22px;
    font-size: 18px;
    line-height: 1.62;
}

.support-page-hero-note {
    max-width: 690px;
    margin: 18px 0 0;
    color: #6a727d;
    font-size: 14px;
    line-height: 1.65;
}

.support-page-hero-actions {
    margin-top: 28px;
}

.support-page-stats-card {
    padding: 30px;
    background: #f5f6f8;
    border: 1px solid var(--line);
    border-radius: var(--radius-feature);
    box-shadow: var(--shadow-surface-panel);
}

.support-page-stats-kicker {
    display: block;
    margin-bottom: 20px;
    color: #6b737e;
    font-size: 11px;
    font-weight: 760;
    letter-spacing: .075em;
    text-transform: uppercase;
}

.support-page-stats-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.support-page-stat {
    min-width: 0;
    padding: 18px;
    background: #fff;
    border: 1px solid #e4e7eb;
    border-radius: 12px;
}

.support-page-stat strong {
    display: block;
    margin-bottom: 5px;
    font-size: clamp(26px, 3vw, 36px);
    line-height: 1;
    letter-spacing: -.035em;
}

.support-page-stat span {
    display: block;
    color: #68717d;
    font-size: 12px;
    line-height: 1.45;
}

.support-page-stats-card > p {
    margin: 18px 2px 0;
    color: #7a828d;
    font-size: 12px;
    line-height: 1.55;
}

.support-page-section-head {
    max-width: 800px;
}

.support-page-section-head > div > p {
    max-width: 720px;
    margin: 12px 0 0;
    color: #666f7a;
    font-size: 15px;
    line-height: 1.65;
}

.support-page-principles {
    padding: var(--support-section-space) 0;
    background: #f5f6f8;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.support-page-principles-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.support-page-principle {
    min-width: 0;
    padding: 26px;
    background: #fff;
    box-shadow: none;
}

.support-page-principle::before {
    width: 31px;
    height: 31px;
    margin-bottom: 18px;
}

.support-page-principle h3 {
    font-size: 18px;
}

.support-page-principle p {
    color: #646c77;
    font-size: 14px;
    line-height: 1.62;
}

.support-page-impact {
    padding: var(--support-section-space) 0;
    background: #fff;
}

.support-page-impact-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.support-page-impact-card {
    padding: 28px;
    border: 1px solid var(--line);
    border-top: 3px solid var(--accent);
    border-radius: var(--radius-card);
}

.support-page-impact-number {
    display: block;
    margin-bottom: 34px;
    color: #9aa1aa;
    font-size: 12px;
    font-weight: 760;
    letter-spacing: .08em;
}

.support-page-impact-card h3 {
    margin: 0 0 10px;
    font-size: 20px;
    line-height: 1.2;
    letter-spacing: -.02em;
}

.support-page-impact-card p {
    margin: 0;
    color: #626b76;
    font-size: 14px;
    line-height: 1.65;
}

.support-page-cost-note {
    max-width: 760px;
    margin: 24px 0 0;
    color: #737b86;
    font-size: 13px;
    line-height: 1.6;
}

.support-page-independence {
    padding: var(--support-section-space) 0;
    background: #151a22;
    color: #fff;
}

.support-page-independence-grid {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: clamp(42px, 7vw, 92px);
    align-items: start;
}

.support-page-independence .eyebrow {
    color: #dba5a8;
}

.support-page-independence h2 {
    max-width: 520px;
    margin: 10px 0 0;
    color: #fff;
    font-size: clamp(32px, 4vw, 46px);
    line-height: 1.08;
    letter-spacing: -.035em;
}

.support-page-independence-copy {
    padding-top: 8px;
}

.support-page-independence-copy p {
    max-width: 650px;
    margin: 0 0 17px;
    color: #c8cdd4;
    font-size: 16px;
    line-height: 1.72;
}

.support-page-independence-copy p:last-child {
    margin-bottom: 0;
}

.support-page-process {
    padding: var(--support-section-space) 0;
    background: #f5f6f8;
    border-bottom: 1px solid var(--line);
}

.support-page-process-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.support-page-process-step {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 16px;
    padding: 25px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
}

.support-page-process-step > strong {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f8e9ea;
    border-radius: 50%;
    color: var(--accent);
    font-size: 13px;
}

.support-page-process-step h3 {
    margin: 2px 0 8px;
    font-size: 18px;
    line-height: 1.2;
}

.support-page-process-step p {
    margin: 0;
    color: #646d78;
    font-size: 13px;
    line-height: 1.62;
}

.support-page-final {
    padding: var(--support-section-space) 0;
    background: #fff;
}

.support-page-final-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    padding: 36px 40px;
    background: linear-gradient(135deg, #fff 0%, #fbf4f4 100%);
    border: 1px solid #eadbdd;
    border-left: 4px solid var(--accent);
    border-radius: var(--radius-panel);
    box-shadow: var(--shadow-surface-panel);
}

.support-page-final-box h2 {
    margin: 8px 0 10px;
    font-size: clamp(28px, 3vw, 38px);
    line-height: 1.12;
    letter-spacing: -.03em;
}

.support-page-final-box p {
    max-width: 700px;
    margin: 0;
    color: #5e6772;
    font-size: 14px;
    line-height: 1.66;
}

.support-page-final-box > .button {
    flex: 0 0 auto;
    white-space: nowrap;
}

@media (max-width: 980px) {
    .support-page-hero-grid,
    .support-page-independence-grid {
        grid-template-columns: 1fr;
        gap: 38px;
    }

    .support-page-stats-card {
        max-width: 760px;
    }

    .support-page-impact-grid,
    .support-page-process-grid {
        grid-template-columns: 1fr;
    }

    .support-page-impact-number {
        margin-bottom: 22px;
    }

    .support-page-final-box {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 760px) {
    .support-page-principles-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 650px) {
    .support-prompt-actions {
        align-items: stretch;
    }

    .support-prompt-supporter {
        width: 100%;
        min-height: 38px;
        text-align: center;
    }

    .support-page-hero {
        padding: 48px 0 46px;
    }

    .support-page-hero h1 {
        font-size: clamp(38px, 11vw, 48px);
    }

    .support-page-hero .lead {
        font-size: 16px;
    }

    .support-page-hero-note {
        font-size: 13px;
    }

    .support-page-hero-actions .button,
    .support-page-final-box > .button {
        width: 100%;
    }

    .support-page-stats-card {
        padding: 20px;
        border-radius: var(--radius-card);
    }

    .support-page-stats-grid {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }

    .support-page-stat {
        padding: 15px;
    }

    .support-page-stat strong {
        font-size: 28px;
    }

    .support-page-principles,
    .support-page-impact,
    .support-page-process,
    .support-page-final,
    .support-page-independence {
        padding-top: var(--support-section-space-mobile);
        padding-bottom: var(--support-section-space-mobile);
    }

    .support-page-principle,
    .support-page-impact-card,
    .support-page-process-step {
        padding: 21px;
    }


    .support-page-independence h2 {
        font-size: 34px;
    }

    .support-page-independence-copy p {
        font-size: 15px;
    }

    .support-page-final-box {
        gap: 24px;
        padding: 26px 22px;
        border-left-width: 3px;
    }
}

/* Panel wsparcia — metryki fundraisingowe */
.admin-support-page-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.admin-support-page-stat {
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding: 18px;
    background: #f7f8fa;
    border: 1px solid var(--line);
    border-radius: 12px;
}

.admin-support-page-stat strong {
    font-size: 15px;
}

.admin-support-page-stat span {
    color: #68717d;
    font-size: 13px;
}

.admin-support-prompt-stats-periods > div {
    min-width: 118px;
}

.admin-support-prompt-stats-periods small {
    display: block;
    margin-top: 3px;
    color: #8a929d;
    font-size: 10px;
    font-weight: 600;
}

@media (max-width: 720px) {
    .admin-support-page-stats {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   Kontekst redakcyjny / objaśnienia prawne
   ========================================================================== */

.editorial-context-note {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin: 18px 0 0;
    color: #69717c;
    font-size: 12px;
    line-height: 1.55;
}

.editorial-context-icon {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-top: 1px;
    border: 1px solid #d8dde3;
    border-radius: 50%;
    background: #fff;
    color: #747c87;
    font-size: 10px;
    font-weight: 800;
    font-style: normal;
    line-height: 1;
}

.editorial-context-note-compact {
    padding-top: 14px;
    border-top: 1px solid var(--line);
    font-size: 11px;
}

.case-editorial-context {
    max-width: 720px;
    margin-top: 15px;
}

@media (max-width: 700px) {
    .case-editorial-context {
        margin-top: 13px;
    }
}

.editorial-context-link {
    display: inline-block;
    margin-left: 4px;
    color: #555d68;
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: #c9ced5;
    text-underline-offset: 2px;
}

.editorial-context-link:hover {
    color: var(--accent);
    text-decoration-color: currentColor;
}

/* ==========================================================================
   O Aferotece – podstawowe objaśnienie pojęcia „sprawa”
   ========================================================================== */

.about-page-head {
    padding: 58px 0 48px;
}

.about-page-head-inner {
    max-width: 820px;
}

.about-page-head h1 {
    margin: 7px 0 18px;
    font-size: clamp(42px, 5vw, 62px);
    line-height: 1.02;
    letter-spacing: -.045em;
}

.about-page-head .lead {
    max-width: 760px;
    margin: 0;
    color: #505864;
    font-size: 18px;
    line-height: 1.65;
}

.about-explainer-section {
    border-top: 1px solid var(--line);
    background: #f8f9fb;
}

.about-explainer-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
    gap: 48px;
    align-items: start;
}

.about-explainer-main {
    max-width: 760px;
}

.about-explainer-main h2 {
    margin: 7px 0 20px;
    font-size: clamp(30px, 3.2vw, 42px);
    line-height: 1.1;
    letter-spacing: -.03em;
}

.about-explainer-main p,
.about-explainer-aside p {
    color: #555d68;
    line-height: 1.72;
}

.about-explainer-main p {
    margin: 0 0 18px;
    font-size: 15px;
}

.about-explainer-aside {
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: var(--radius-panel);
    background: #fff;
}

.about-explainer-aside strong {
    display: block;
    margin-bottom: 9px;
    color: #343a43;
    font-size: 14px;
}

.about-explainer-aside p {
    margin: 0;
    font-size: 13px;
}

@media (max-width: 820px) {
    .about-explainer-grid {
        grid-template-columns: 1fr;
        gap: 26px;
    }
}


/* Sprint 2: redakcyjne przypomnienie prawne przy źródłach */
.source-editor-legal-reminder {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin: 0 0 18px;
    padding: 14px 16px;
    border: 1px solid rgba(180, 125, 28, 0.28);
    border-radius: 12px;
    background: rgba(180, 125, 28, 0.07);
}

.source-editor-legal-reminder-mark {
    display: grid;
    place-items: center;
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    border: 1px solid currentColor;
    border-radius: 999px;
    font-weight: 800;
    line-height: 1;
}

.source-editor-legal-reminder strong {
    display: block;
    margin-bottom: 4px;
}

.source-editor-legal-reminder p {
    margin: 0;
    font-size: 13px;
    line-height: 1.55;
    color: var(--muted);
}


/* ==========================================================================
   Sprint 3: publiczne zasady redakcyjne i regulamin
   ========================================================================== */

.follow-box-note a,
.submission-submit-row a {
    color: inherit;
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: #c4cad2;
    text-underline-offset: 2px;
}

.follow-box-note a:hover,
.submission-submit-row a:hover {
    color: var(--accent);
    text-decoration-color: currentColor;
}

.legal-page-head {
    padding: 62px 0 48px;
}

.legal-page-head h1 {
    margin: 8px 0 17px;
    font-size: clamp(42px, 5vw, 62px);
    line-height: 1.03;
    letter-spacing: -.045em;
}

.legal-page-head .lead {
    max-width: none;
    margin: 0;
    color: #505864;
    font-size: 18px;
    line-height: 1.65;
}

.legal-page-version {
    margin: 16px 0 0;
    color: #858c96;
    font-size: 12px;
}

.legal-page-section {
    border-top: 1px solid var(--line);
    background: #f8f9fb;
}

.legal-page-layout {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    gap: 54px;
    align-items: start;
}

.legal-page-toc {
    position: sticky;
    top: 96px;
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 17px;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    background: #fff;
}

.legal-page-toc strong {
    margin: 0 0 8px;
    padding: 0 7px;
    color: #30363f;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.legal-page-toc a {
    padding: 7px;
    border-radius: 7px;
    color: #666e79;
    font-size: 12px;
    line-height: 1.35;
}

.legal-page-toc a:hover {
    background: var(--soft);
    color: var(--text);
}

.legal-page-content {
    min-width: 0;
}

.legal-page-content > section {
    scroll-margin-top: 96px;
    padding: 0 0 40px;
    margin: 0 0 40px;
    border-bottom: 1px solid var(--line);
}

.legal-page-content > section:last-of-type {
    margin-bottom: 28px;
}

.legal-section-number {
    display: block;
    margin-bottom: 7px;
    color: var(--accent);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.legal-page-content h2 {
    margin: 0 0 17px;
    font-size: clamp(26px, 3vw, 34px);
    letter-spacing: -.035em;
}

.legal-page-content p,
.legal-page-content li {
    color: #505864;
    font-size: 15px;
    line-height: 1.76;
}

.legal-page-content p {
    margin: 0 0 16px;
}

.legal-page-content a:not(.button) {
    color: #39414b;
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: #c8cdd4;
    text-underline-offset: 3px;
}

.legal-page-content a:not(.button):hover {
    color: var(--accent);
    text-decoration-color: currentColor;
}

.legal-page-content ol,
.legal-page-content ul {
    margin: 0;
    padding-left: 22px;
}

.legal-page-content ol > li,
.legal-page-content ul > li {
    margin-bottom: 10px;
    padding-left: 4px;
}

.legal-page-content li > ul,
.legal-page-content li > ol {
    margin-top: 9px;
}

.legal-callout,
.legal-page-final {
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    background: #fff;
}

.legal-callout {
    margin-top: 25px;
}

.legal-callout strong,
.legal-page-final strong {
    display: block;
    margin-bottom: 7px;
    color: #30363f;
}

.legal-callout p,
.legal-page-final p {
    margin-bottom: 15px;
    font-size: 14px;
}

.legal-callout .button {
    margin-top: 2px;
}

.legal-page-final {
    border-left: 3px solid var(--accent);
}

.legal-page-final p:last-child {
    margin-bottom: 0;
}

.legal-terms strong {
    color: #30363f;
}

@media (max-width: 900px) {
   .legal-page-layout {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .legal-page-toc {
        position: static;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .legal-page-toc strong {
        grid-column: 1 / -1;
    }

}

@media (max-width: 650px) {
    .legal-page-head {
        padding: 44px 0 36px;
    }

    .legal-page-head h1 {
        font-size: 38px;
    }

    .legal-page-head .lead {
        font-size: 16px;
    }

    .legal-page-section {
        padding-top: 38px;
    }

    .legal-page-toc {
        grid-template-columns: 1fr;
        padding: 14px;
    }

    .legal-page-content > section {
        padding-bottom: 30px;
        margin-bottom: 30px;
    }

    .legal-page-content p,
    .legal-page-content li {
        font-size: 14px;
    }

    .legal-callout,
    .legal-page-final {
        padding: 18px;
    }
}

/* Sprint 7: rejestr pochodzenia i praw do zdjęć/logotypów */

.media-rights-fields {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
}

.media-rights-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.media-rights-heading > div {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.media-rights-grid {
    margin-top: 0;
}

.media-attribution-checkbox {
    align-self: end;
    min-height: 44px;
}

.admin-editor-save-panel .media-rights-fields {
    margin-top: 18px;
}

.admin-editor-save-panel .media-rights-heading {
    flex-direction: column;
}

.admin-editor-save-panel .media-rights-grid {
    grid-template-columns: 1fr;
}

.admin-editor-save-panel .media-rights-grid .span-2 {
    grid-column: auto;
}

.filter-bar.media-rights-filter {
    grid-template-columns: 2fr 1.2fr auto;
    max-width: 820px;
}

.media-attribution {
    margin: -4px 0 14px;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.45;
}

.media-attribution a {
    text-decoration: underline;
    text-decoration-color: #cfd4dc;
    text-underline-offset: 2px;
}

.source-media-attribution {
    margin: 8px 0 0;
}

@media (max-width: 650px) {
    .filter-bar.media-rights-filter,
    .media-rights-grid {
        grid-template-columns: 1fr;
    }

    .media-rights-grid .span-2 {
        grid-column: auto;
    }

    .media-rights-heading {
        flex-direction: column;
    }
}
