        :root {
            --white: #FEFEFE;
            --grey-olive: #829093;
            --alabaster-grey: #DEE3E5;
            --carbon-black: #16181B;
            --jet-black: #0E3242;
            --mauve-shadow: #5E3749;
            --cotton-rose: #D0B2B4;
            --amaranth: #DD2B4C;
            --ocean-mist: #00B09E;

            --font-head: 'Montserrat', sans-serif;
            --font-body: 'Open Sans', sans-serif;
            --shadow-sm: none;
            --shadow-md: 0 4px 0px rgba(14, 50, 66, 0.08);
            --shadow-lg: 0 6px 0px rgba(14, 50, 66, 0.12);
            --transition: all 0.15s ease-in-out;
        }

        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
            border-radius: 0 !important;
            /* Sharp minimalist frames */
        }

        body {
            font-family: var(--font-body);
            color: var(--carbon-black);
            background-color: #F4F6F7;
            overflow-x: hidden;
            line-height: 1.6;
            display: flex;
            flex-direction: column;
            min-height: 100vh;
        }

        h1,
        h2,
        h3,
        h4,
        .logo-font {
            font-family: var(--font-head);
            text-transform: uppercase;
            letter-spacing: 0.5px;
            color: var(--jet-black);
        }

        header {
            background-color: var(--jet-black);
            color: var(--white);
            position: sticky;
            top: 0;
            z-index: 1000;
            border-bottom: 3px solid var(--ocean-mist);
        }

        .header-container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0.85rem 1rem;
            display: flex;
            flex-direction: column;
            gap: 0.85rem;
        }

        @media (min-width: 900px) {
            .header-container {
                flex-direction: row;
                align-items: center;
                justify-content: space-between;
                padding: 1rem 1.5rem;
                gap: 1.5rem;
            }
        }

        .brand-logo {
            display: flex;
            align-items: center;
            gap: 0.75rem;
            text-decoration: none;
            color: var(--white);
            cursor: pointer;
            flex-shrink: 0;
        }

        .brand-logo svg {
            width: 32px;
            height: 32px;
            fill: var(--ocean-mist);
            flex-shrink: 0;
        }

        .brand-logo img {
            width: 170px;
        }

        .brand-title {
            font-size: 1.1rem;
            font-weight: 800;
            line-height: 1.2;
        }

        .brand-subtitle {
            font-size: 0.65rem;
            color: var(--alabaster-grey);
            text-transform: uppercase;
            letter-spacing: 1px;
            display: block;
        }

        /* Right Section Header Layout */
        .header-right {
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 1rem;
            width: 100%;
        }

        @media (min-width: 900px) {
            .header-right {
                width: auto;
                justify-content: flex-end;
            }
        }

        /* Responsive Text Navigation Links */
        .nav-links {
            display: flex;
            align-items: center;
            gap: 1.25rem;
            flex-wrap: wrap;
        }

        .nav-links ul {
            list-style: none;
            display: flex;
            align-items: center;
            gap: 1.25rem;
            margin: 0;
            padding: 0;
        }

        .nav-links ul li a, .nav-link {
            color: var(--alabaster-grey);
            text-decoration: none;
            font-size: 0.85rem;
            font-weight: 700;
            font-family: var(--font-head);
            text-transform: uppercase;
            letter-spacing: 0.5px;
            cursor: pointer;
            transition: var(--transition);
            border-bottom: 2px solid transparent;
            padding: 0.25rem 0;
        }

        .nav-links ul li a:hover, .nav-link:hover,
        .nav-links ul li.active a, .nav-link.active {
            color: var(--ocean-mist);
            border-bottom-color: var(--ocean-mist);
        }

        /* Global Sticky Search Bar */
        .search-box {
            position: relative;
            display: flex;
            align-items: center;
            flex: 1;
            min-width: 220px;
        }

        @media (min-width: 900px) {
            .search-box {
                flex: none;
                width: 280px;
            }
        }

        .search-input-wrapper {
            position: relative;
            width: 100%;
            display: flex;
            align-items: center;
            justify-content: flex-end;
        }

        .search-input {
            width: 100%;
            padding: 0.6rem 2.5rem 0.6rem 0.85rem;
            font-size: 0.875rem;
            font-family: var(--font-body);
            border: 1px solid var(--alabaster-grey);
            background-color: var(--white);
            color: var(--carbon-black);
            outline: none;
            transition: var(--transition);
        }

        .search-input:focus {
            border-color: var(--ocean-mist);
            box-shadow: none;
        }

        .search-btn {
            position: absolute;
            right: 0;
            top: 0;
            bottom: 0;
            background-color: var(--amaranth);
            color: var(--white);
            border: none;
            width: 38px;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: var(--transition);
        }

        .search-btn:hover {
            background-color: #c0213e;
        }

        .search-btn svg {
            width: 16px;
            height: 16px;
            fill: currentColor;
        }

        main {
            max-width: 1200px;
            width: 100%;
            margin: 0 auto;
            padding: 1.5rem 1rem 3rem;
            flex: 1;
        }

        .breadcrumbs {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            font-size: 0.8rem;
            color: var(--grey-olive);
            margin-bottom: 1.25rem;
        }

        .breadcrumbs a {
            color: var(--jet-black);
            text-decoration: none;
            font-weight: 600;
            cursor: pointer;
        }

        .breadcrumbs a:hover {
            color: var(--ocean-mist);
        }

        .breadcrumbs .separator {
            color: var(--alabaster-grey);
        }

        .hero-banner {
            background-color: var(--jet-black);
            color: var(--white);
            padding: 1.75rem 1.5rem;
            margin-bottom: 1.5rem;
            border-left: 6px solid var(--amaranth);
        }

        .hero-banner h1 {
            color: var(--white);
            font-size: 1.5rem;
            margin-bottom: 0.5rem;
        }

        .hero-banner p {
            color: var(--alabaster-grey);
            font-size: 0.9rem;
            max-width: 800px;
            line-height: 1.5;
        }

        .hero-banner a {
            color: var(--white);
        }

        .hero-banner a:hover {
            color: var(--alabaster-grey);
        }

        .filters-wrapper {
            background-color: var(--white);
            border: 1px solid var(--alabaster-grey);
            padding: 1.25rem;
            margin-bottom: 1.5rem;
            border-top: 3px solid var(--jet-black);
        }

        .filters-title {
            font-size: 0.85rem;
            font-weight: 700;
            color: var(--jet-black);
            margin-bottom: 0.85rem;
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        /* Siatka filtrów */
        .select-filter-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 1rem;
        }

        @media (min-width: 768px) {
            .select-filter-grid {
                grid-template-columns: repeat(3, minmax(0, 1fr));
            }
        }

        /* Pojedynczy filtr */
        .filter-group {
            display: flex;
            flex-direction: column;
            gap: 0.35rem;
            min-width: 0;
        }

        /* Etykiety */
        .filter-label {
            font-size: 0.75rem;
            font-weight: 700;
            text-transform: uppercase;
            color: var(--grey-olive);
            font-family: var(--font-head);
        }

        /* Pola wyboru i pola tekstowe */
        .custom-select,
        .form-input {
            box-sizing: border-box;
            width: 100%;
            min-height: 2.75rem;
            padding: 0.6rem 0.75rem;
            font-size: 0.875rem;
            font-family: var(--font-body);
            color: var(--carbon-black);
            background-color: var(--white);
            border: 1px solid var(--alabaster-grey);
            border-radius: 0;
            outline: none;
            transition: var(--transition);
        }

        .custom-select:focus,
        .form-input:focus {
            border-color: var(--ocean-mist);
        }

        /* Kontener przycisków — pod filtrami, po prawej */
        .select-filter-grid .filter-group.filter-submit {
            grid-column: 1 / -1;
            display: flex;
            flex-direction: row;
            justify-content: flex-end;
            align-items: center;
            flex-wrap: wrap;
            gap: 0.75rem;
            width: 100%;
            margin-top: 0.25rem;
        }

        /* Wspólne style przycisków */
        .filter-submit button {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            box-sizing: border-box;

            min-height: 2.75rem;
            padding: 0.75rem 1.5rem;
            margin: 0;

            border: 1px solid var(--jet-black);
            border-radius: 0;

            font-family: var(--font-head);
            font-size: 0.875rem;
            font-weight: 600;
            line-height: 1.2;
            cursor: pointer;
            white-space: nowrap;

            transition: var(--transition);
        }

        /* Przycisk filtrowania */
        .filter-submit .filter-button {
            background: var(--jet-black);
            color: var(--white);
        }

        .filter-submit .filter-button:hover {
            background: var(--ocean-mist);
            border-color: var(--ocean-mist);
            color: var(--white);
        }

        /* Przycisk resetowania */
        .filter-submit .filter-reset-button {
            background: transparent;
            color: var(--jet-black);
            border-color: var(--alabaster-grey);
        }

        .filter-submit .filter-reset-button:hover {
            background: var(--alabaster-grey);
            border-color: var(--grey-olive);
            color: var(--carbon-black);
        }

        /* Widoczny fokus klawiatury */
        .filter-submit button:focus-visible {
            outline: 2px solid var(--ocean-mist);
            outline-offset: 3px;
        }

        /* Stan podczas sprawdzania wyników */
        .filter-submit button:disabled {
            opacity: 0.65;
            cursor: wait;
        }

        button.no-results:disabled {
            cursor: not-allowed;
        }

        /* Telefony */
        @media (max-width: 767px) {
            .filters-wrapper {
                padding: 1rem;
            }

            .select-filter-grid .filter-group.filter-submit {
                flex-wrap: nowrap;
                gap: 0.5rem;
            }

            .filter-submit button {
                flex: 0 1 auto;
                padding: 0.75rem 1rem;
            }
        }


        .custom-select,
        .form-input {
            width: 100%;
            padding: 0.6rem 0.75rem;
            font-size: 0.875rem;
            font-family: var(--font-body);
            color: var(--carbon-black);
            background-color: var(--white);
            border: 1px solid var(--alabaster-grey);
            outline: none;
            transition: var(--transition);
        }

        .custom-select:focus,
        .form-input:focus {
            border-color: var(--ocean-mist);
        }

        .section-header {
            display: flex;
            align-items: flex-end;
            justify-content: space-between;
            margin-bottom: 1rem;
            padding-bottom: 0.5rem;
            border-bottom: 2px solid var(--alabaster-grey);
            flex-wrap: wrap;
            gap: 0.5rem;
        }

        .section-title {
            font-size: 1.1rem;
            font-weight: 700;
            color: var(--jet-black);
        }

        .results-count {
            font-size: 0.8rem;
            color: var(--grey-olive);
            font-weight: 600;
        }

        .cards-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 1.25rem;
        }

        @media (min-width: 768px) {
            .cards-grid {
                grid-template-columns: repeat(2, 1fr);
            }
        }

        @media (min-width: 1100px) {
            .cards-grid {
                grid-template-columns: repeat(3, 1fr);
            }
        }

        .cards-grid a {
            text-decoration: none;
        }

        .institution-card {
            background-color: var(--white);
            border: 1px solid var(--alabaster-grey);
            padding: 1.25rem;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            transition: var(--transition);
            cursor: pointer;
            position: relative;
        }

        .institution-card:hover {
            border-color: var(--jet-black);
            box-shadow: 0 4px 0px rgba(14, 50, 66, 0.1);
            transform: translateY(-2px);
        }

        .card-badge {
            align-self: flex-start;
            background-color: var(--jet-black);
            color: var(--white);
            font-size: 0.65rem;
            font-family: var(--font-head);
            font-weight: 700;
            text-transform: uppercase;
            padding: 0.25rem 0.5rem;
            letter-spacing: 0.5px;
        }

        .card-title {
            font-size: 1.05rem;
            font-weight: 700;
            margin: 0.75rem 0 0.5rem;
            color: var(--jet-black);
            line-height: 1.3;
        }

        .card-meta {
            margin: 0.75rem 0 1rem;
            padding: 0.75rem;
            background-color: #F8FAFA;
            border: 1px solid #EAEFEF;
            display: flex;
            flex-direction: column;
            gap: 0.4rem;
        }

        .card-meta-item {
            display: flex;
            align-items: flex-start;
            gap: 0.5rem;
            font-size: 0.8rem;
            color: var(--carbon-black);
        }

        .card-meta-item svg {
            width: 14px;
            height: 14px;
            fill: var(--ocean-mist);
            flex-shrink: 0;
            margin-top: 2px;
        }

        .card-footer {
            margin-top: auto;
            padding-top: 0.75rem;
            border-top: 1px solid var(--alabaster-grey);
            display: flex;
            align-items: center;
            justify-content: space-between;
            font-size: 0.75rem;
            color: var(--grey-olive);
            font-weight: 600;
        }

        /* Paginacja */
        .pagination-container {
            display: flex;
            align-items: center;
            justify-content: center;
            flex-wrap: wrap;
            gap: 0.35rem;
            margin-top: 3rem;
        }

        /* Numery stron i nawigacja */
        .pagination-item {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-width: 2.5rem;
            height: 2.5rem;
            padding: 0 0.65rem;

            background: transparent;
            color: var(--jet-black);
            border: 1px solid transparent;
            box-shadow: none;

            font-family: var(--font-head);
            font-size: 0.875rem;
            font-weight: 600;
            line-height: 1;
            text-decoration: none;

            transition: var(--transition);
        }

        /* Hover */
        .pagination-item:hover {
            background: var(--alabaster-grey);
            color: var(--jet-black);
            border-color: var(--alabaster-grey);
            box-shadow: none;
            transform: none;
        }

        /* Aktywna strona */
        .pagination-item.active {
            background: var(--jet-black);
            color: var(--white);
            border-color: var(--jet-black);
            box-shadow: none;
            cursor: default;
            pointer-events: none;
        }

        /* Strzałki */
        .pagination-item:first-child,
        .pagination-item:last-child {
            font-size: 1.1rem;
        }

        /* Wielokropek */
        .pagination-container .font-black {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-width: 1.25rem;

            color: var(--grey-olive);
            font-family: var(--font-head);
            font-size: 0.875rem;
            font-weight: 500;
            letter-spacing: 0.1em;
        }

        /* Dostępność klawiaturowa */
        .pagination-item:focus-visible {
            outline: 2px solid var(--ocean-mist);
            outline-offset: 2px;
            position: relative;
            z-index: 1;
        }

        /* Responsywność */
        @media (max-width: 480px) {
            .pagination-container {
                gap: 0.2rem;
                margin-top: 2rem;
            }

            .pagination-item {
                min-width: 2.2rem;
                height: 2.2rem;
                padding: 0 0.45rem;
                font-size: 0.8rem;
            }
        }

        .view-section {}

        .view-section.active {
            display: block;
            animation: fadeIn 0.15s ease-in-out;
        }

        .tab-pane[hidden] {
            display: none !important;
        }

        @keyframes fadeIn {
            from {
                opacity: 0;
            }

            to {
                opacity: 1;
            }
        }

        /* Detail View Styles */
        .detail-header {
            background-color: var(--white);
            border: 1px solid var(--alabaster-grey);
            padding: 1.5rem;
            margin-bottom: 1.5rem;
            border-left: 5px solid var(--ocean-mist);
        }

        .detail-header-top {
            display: flex;
            flex-direction: column;
            gap: 0.75rem;
        }

        @media (min-width: 768px) {
            .detail-header-top {
                flex-direction: row;
                align-items: flex-start;
                justify-content: space-between;
            }
        }

        .detail-title {
            font-size: 1.4rem;
            font-weight: 800;
            color: var(--jet-black);
            line-height: 1.25;
        }

        .detail-subtitle-pills {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            flex-wrap: wrap;
            margin-top: 0.5rem;
        }

        .pill {
            font-size: 0.7rem;
            font-family: var(--font-head);
            font-weight: 700;
            text-transform: uppercase;
            padding: 0.2rem 0.5rem;
            letter-spacing: 0.5px;
        }

        .pill-category {
            background-color: var(--jet-black);
            color: var(--white);
        }

        .pill-status {
            background-color: #E6F7F5;
            color: var(--ocean-mist);
            border: 1px solid var(--ocean-mist);
        }

        /* Tabs System */
        .tabs-nav {
            display: flex;
            border-bottom: 2px solid var(--alabaster-grey);
            margin-bottom: 1.5rem;
            overflow-x: unset;
            white-space: nowrap;
        }

        .tab-btn {
            background: none;
            border: none;
            padding: 0.75rem 1.25rem;
            font-family: var(--font-head);
            font-size: 0.85rem;
            font-weight: 700;
            text-transform: uppercase;
            color: var(--grey-olive);
            cursor: pointer;
            border-bottom: 3px solid transparent;
            margin-bottom: -2px;
            transition: var(--transition);
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .tab-btn:disabled,
        .tab-btn[disabled] {
            opacity: 0.45;
            cursor: not-allowed;
            pointer-events: none;
            color: var(--grey-olive);
            background-color: #f3f3f0;
            border-color: var(--alabaster-grey);
        }

        .tab-btn svg {
            width: 16px;
            height: 16px;
            fill: currentColor;
        }

        .tab-btn:hover {
            color: var(--jet-black);
        }

        .tab-btn.active {
            color: var(--amaranth);
            border-bottom-color: var(--amaranth);
            background-color: var(--white);
        }

        .tab-pane {
            display: none;
            background-color: var(--white);
            padding: 1.5rem;
            border: 1px solid var(--alabaster-grey);
        }

        .tab-pane.active {
            display: block;
            animation: fadeIn 0.2s ease-in-out;
        }

        .metadata-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 1rem;
        }

        @media (min-width: 768px) {
            .metadata-grid {
                grid-template-columns: repeat(2, 1fr);
            }
        }

        .meta-group {
            background-color: #F8FAFA;
            padding: 1rem;
            border-left: 3px solid var(--ocean-mist);
            border-top: 1px solid var(--alabaster-grey);
            border-right: 1px solid var(--alabaster-grey);
            border-bottom: 1px solid var(--alabaster-grey);
        }

        .meta-label {
            font-size: 0.75rem;
            font-weight: 700;
            text-transform: uppercase;
            color: var(--grey-olive);
            margin-bottom: 0.25rem;
        }

        .meta-value {
            font-size: 0.95rem;
            font-weight: 600;
            color: var(--carbon-black);
            overflow-wrap: anywhere;
        }

        .full-description {
            margin-top: 1.5rem;
            padding-top: 1.25rem;
            border-top: 1px solid var(--alabaster-grey);
            font-size: 0.95rem;
            color: #2D3136;
            line-height: 1.7;
        }

        /* Map Area */
        #map-container {
            width: 100%;
            height: 450px;
            border: 1px solid var(--alabaster-grey);
            z-index: 1;
        }

        .map-address-box {
            margin-top: 1rem;
            background-color: #F8FAFA;
            padding: 1rem;
            border: 1px solid var(--alabaster-grey);
            display: flex;
            align-items: center;
            gap: 0.75rem;
        }

        /* Files List */
        .files-list {
            display: flex;
            flex-direction: column;
            gap: 0.75rem;
        }

        .file-item {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 0.85rem 1rem;
            background-color: #F8FAFA;
            border: 1px solid var(--alabaster-grey);
            transition: var(--transition);
        }

        .file-item:hover {
            border-color: var(--ocean-mist);
            background-color: #F0F9F8;
        }

        .file-info {
            display: flex;
            align-items: center;
            gap: 0.75rem;
        }

        .file-icon {
            width: 36px;
            height: 36px;
            background-color: var(--jet-black);
            color: var(--white);
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            font-weight: 800;
            font-size: 0.75rem;
        }

        .file-name {
            font-weight: 600;
            font-size: 0.9rem;
            color: var(--jet-black);
        }

        .file-meta {
            font-size: 0.75rem;
            color: var(--grey-olive);
        }

        .download-btn {
            background-color: var(--jet-black);
            color: var(--white);
            border: none;
            padding: 0.4rem 0.85rem;
            font-size: 0.8rem;
            font-weight: 600;
            cursor: pointer;
            transition: var(--transition);
            display: flex;
            align-items: center;
            gap: 0.35rem;
            text-decoration: none;
        }

        .download-btn:hover {
            background-color: var(--ocean-mist);
            text-decoration: none;
        }

        /* Timeline / Changelog */
        .changelog-timeline {
            position: relative;
            padding-left: 1.5rem;
        }

        .changelog-timeline::before {
            content: '';
            position: absolute;
            left: 5px;
            top: 6px;
            bottom: 6px;
            width: 2px;
            background-color: var(--alabaster-grey);
        }

        .timeline-item {
            position: relative;
            margin-bottom: 1.5rem;
        }

        .change-text {
            overflow-wrap: anywhere;
        }

        .timeline-item-default .change-text {
            color: inherit;
        }

        .timeline-item-created .change-text {
            color: #2e9d62;
        }

        .timeline-item-updated .change-text {
            color: #3478c9;
        }

        .timeline-item-deleted .change-text {
            color: #d64545;
            text-decoration: line-through;
        }


        .timeline-item:last-child {
            margin-bottom: 0;
        }

        .timeline-dot {
            position: absolute;
            left: -1.5rem;
            top: 4px;
            width: 15px;
            height: 15px;
            border-radius: 50%;
            border: 2px solid var(--alabaster-grey);
        }

        .timeline-item-start .timeline-dot {
            background-color: #000;
            display: none;
        }

        .timeline-dot-added {
            background-color: #2e9d62;
        }

        .timeline-dot-updated {
            background-color: #3478c9;
        }

        .timeline-dot-deleted {
            background-color: #d64545;
        }

        .timeline-dot-default {
            background-color: yellow;
        }

        .timeline-content {
            background-color: #F8FAFA;
            padding: 1rem;
            border: 1px solid var(--alabaster-grey);
        }

        .timeline-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 0.5rem;
            flex-wrap: wrap;
            gap: 0.5rem;
        }

        .timeline-date {
            font-size: 0.8rem;
            font-weight: 700;
            color: var(--mauve-shadow);
        }

        .timeline-author {
            font-size: 0.75rem;
            color: var(--grey-olive);
            background-color: var(--alabaster-grey);
            padding: 0.15rem 0.4rem;
        }

        .timeline-body {
            font-size: 0.875rem;
            color: var(--carbon-black);
        }

        /* Volunteers Leaderboard Styles */
        .stats-summary-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 1rem;
            margin-bottom: 1.5rem;
        }

        @media (min-width: 768px) {
            .stats-summary-grid {
                grid-template-columns: repeat(3, 1fr);
            }
        }

        .stat-card {
            background-color: var(--white);
            border: 1px solid var(--alabaster-grey);
            padding: 1.25rem;
            border-left: 4px solid var(--ocean-mist);
        }

        .stat-value {
            font-family: var(--font-head);
            font-size: 1.8rem;
            font-weight: 800;
            color: var(--jet-black);
        }

        .stat-desc {
            font-size: 0.8rem;
            color: var(--grey-olive);
            text-transform: uppercase;
            font-weight: 700;

        }

        .ranking-table-wrapper {
            background-color: var(--white);
            border: 1px solid var(--alabaster-grey);
            overflow-x: auto;
        }

        .ranking-table {
            width: 100%;
            border-collapse: collapse;
            text-align: left;
            font-size: 0.875rem;
        }

        .ranking-table th {
            background-color: var(--jet-black);
            color: var(--white);
            font-family: var(--font-head);
            font-size: 0.75rem;
            text-transform: uppercase;
            padding: 0.85rem 1rem;
            letter-spacing: 0.5px;
        }

        .ranking-table td {
            padding: 0.85rem 1rem;
            border-bottom: 1px solid var(--alabaster-grey);
        }

        .ranking-table tr:hover {
            background-color: #F8FAFA;
        }

        .badge-podium {
            display: inline-block;
            padding: 0.2rem 0.5rem;
            font-weight: 800;
            font-size: 0.75rem;
            font-family: var(--font-head);
            text-align: center;
            min-width: 24px;
        }

        .podium-1 {
            background-color: #FFD700;
            color: #000;
        }

        .podium-2 {
            background-color: #C0C0C0;
            color: #000;
        }

        .podium-3 {
            background-color: #CD7F32;
            color: #fff;
        }

        .podium-other {
            background-color: var(--alabaster-grey);
            color: var(--carbon-black);
        }

        .tag-btn {
            background-color: var(--white);
            border: 1px solid var(--alabaster-grey);
            padding: 0.4rem 0.85rem;
            font-size: 0.8rem;
            font-family: var(--font-head);
            font-weight: 700;
            cursor: pointer;
            transition: var(--transition);
            display: inline-flex;
            align-items: center;
            gap: 0.35rem;
        }

        .tag-btn:hover {
            border-color: var(--jet-black);
            background-color: #F0F4F5;
        }

        .tag-btn.active-ocean {
            background-color: var(--ocean-mist);
            color: var(--white);
            border-color: var(--ocean-mist);
        }

        .empty-state {
            text-align: center;
            padding: 3rem 1rem;
            background-color: var(--white);
            border: 1px solid var(--alabaster-grey);
        }

        .empty-state svg {
            width: 48px;
            height: 48px;
            fill: var(--grey-olive);
            margin-bottom: 0.5rem;
        }

        footer {
            background-color: var(--alabaster-grey);
            color: var(--carbon-black);
            padding: 2.5rem 1rem;
            margin-top: auto;
            border-top: 3px solid var(--jet-black);
            font-size: 0.85rem;
        }

        .footer-container {
            max-width: 1200px;
            margin: 0 auto;
            display: grid;
            grid-template-columns: 1fr;
            gap: 2rem;
            align-items: center;
        }

        @media (min-width: 768px) {
            .footer-container {
                grid-template-columns: 1fr 1fr;
            }
        }

        .footer-left {
            display: flex;
            flex-direction: column;
            gap: 0.75rem;
        }

        .footer-title {
            color: var(--carbon-black);
            font-weight: 700;
            font-size: 1rem;
        }

        .footer-text {
            color: var(--carbon-black);
            font-size: 0.85rem;
            line-height: 1.5;
        }

        .footer-contact {
            font-size: 0.8rem;
            color: var(--carbon-black);
            line-height: 1.6;
            margin-top: 0.25rem;
        }

        .footer-copy {
            font-size: 0.75rem;
            color: var(--carbon-black);
            margin-top: 0.5rem;
        }

        .footer-right {
            display: flex;
            justify-content: flex-start;
            align-items: center;
        }

        @media (min-width: 768px) {
            .footer-right {
                justify-content: flex-end;
            }
        }

        .footer-logo-box {
            display: flex;
            align-items: center;
            gap: 1rem;
            background-color: rgba(255, 255, 255, 0.05);
            padding: 1rem 1.25rem;
            border: 1px solid rgba(222, 227, 229, 0.15);
        }

        .footer-logo-box svg {
            width: 42px;
            height: 42px;
            fill: var(--ocean-mist);
            flex-shrink: 0;
        }

        .footer-logo-box img {
            width: 150px;
        }

        .footer-logo-box img.grants-logos {
            width: 350px;
        }

        .footer-logo-text {
            display: flex;
            flex-direction: column;
        }

        .footer-logo-brand {
            font-family: var(--font-head);
            font-weight: 800;
            font-size: 1.1rem;
            color: var(--white);
            letter-spacing: 0.5px;
        }

        .footer-logo-sub {
            font-size: 0.7rem;
            color: var(--alabaster-grey);
            text-transform: uppercase;
            line-height: 1.2;
            margin-top: 0.15rem;
        }

        /* Toast Notice */
        .toast {
            position: fixed;
            bottom: 20px;
            right: 20px;
            background-color: var(--jet-black);
            color: var(--white);
            padding: 0.85rem 1.25rem;
            border-left: 4px solid var(--ocean-mist);
            z-index: 9999;
            display: none;
            animation: slideUp 0.2s ease;
        }


        /* Volunteers table */

        .volunteers-table-container {
            width: 100%;
            overflow-x: auto;
            margin-top: 2rem;
            border-top: 3px solid var(--jet-black);
        }

        .volunteers-table {
            width: 100%;
            border-collapse: collapse;
            border-spacing: 0;
            font-family: var(--font-body);
            font-size: 0.95rem;
            text-align: left;
            color: var(--carbon-black);
        }

        .volunteers-table .winner {
            display: block;
            position: absolute;
            width: 80px;
            top: -25px;
            transform: rotate(-20deg);
            transition: transform 0.3s ease-in-out;
        }

        .volunteers-table .winner:hover {
            transform: rotate(20deg) translateY(-4px);
        }

        /* Header */

        .volunteers-table thead {
            background: var(--jet-black);
            color: var(--white);
        }

        .volunteers-table th {
            padding: 1rem 1.25rem;
            font-family: var(--font-head);
            font-size: 0.75rem;
            font-weight: 700;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            white-space: nowrap;
        }

        /* Cells */

        .volunteers-table td {
            padding: 1.1rem 1.25rem;
            border-bottom: 1px solid var(--alabaster-grey);
            vertical-align: middle;
            transition: var(--transition);
            position: relative;
        }

        /* Alternating rows */

        .volunteers-table tbody tr:nth-child(even) {
            background: var(--white);
        }

        .volunteers-table tbody tr:nth-child(odd) {
            background: var(--alabaster-grey);
        }

        /* Hover */

        .volunteers-table tbody tr {
            transition: var(--transition);
        }

        .volunteers-table tbody tr:hover {
            background: var(--white);
            box-shadow: inset 4px 0 0 var(--ocean-mist);
        }

        /* ID */

        .volunteers-table td:first-child {
            width: 1%;
            color: var(--grey-olive);
            font-size: 0.85rem;
            font-variant-numeric: tabular-nums;
        }

        /* Username */

        .volunteers-table td a {
            color: var(--jet-black);
            font-weight: 700;
            text-decoration: underline;
            text-decoration-color: transparent;
            text-underline-offset: 4px;
            transition: var(--transition);
        }

        .volunteers-table td a:hover {
            color: var(--ocean-mist);
            text-decoration-color: currentColor;
        }

        /* Role */

        .volunteers-table td:nth-child(5) {
            color: var(--grey-olive);
            font-size: 0.875rem;
        }

        /* Status */

        .volunteers-table td:last-child {
            white-space: nowrap;
            font-size: 0.875rem;
            font-weight: 700;
        }

        /* Responsive */

        @media (max-width: 768px) {
            .volunteers-table-container {
                margin-top: 1.25rem;
            }

            .volunteers-table {
                font-size: 0.875rem;
            }

            .volunteers-table th,
            .volunteers-table td {
                padding: 0.85rem 1rem;
            }
        }

        .user-activity-bar {
            display: flex;
            width: 100px;
            height: 8px;
            overflow: hidden;
            background: var(--white, #fefefe);
        }

        .user-activity-bar span {
            display: block;
            height: 100%;
            transition: width 0.3s ease;
        }

        .user-activity-bar .create {
            background: var(--ocean-mist);
        }

        .user-activity-bar .update {
            background: #31ec56;
        }

        .user-activity-bar .delete {
            background: var(----amaranth);
        }



        /* ==========================================
   ADVANCED SEARCH FORM — REJESTR INSTYTUCJI
   ========================================== */

        .advanced-form {
            --form-gap: 1rem;

            width: 100%;
            max-width: 100%;
            margin: 0 0 2rem;
            padding: 1.5rem;
            background: var(--white);
            border: 1px solid var(--alabaster-grey);
            border-top: 3px solid var(--jet-black);
            color: var(--carbon-black);
            font-family: var(--font-body);
            font-size: 0.9rem;
            line-height: 1.5;
        }

        /* Reset układu kolumn starego szablonu Omeki */

        .advanced-form>.seven.columns,
        .advanced-form>.three.columns {
            float: none;
            width: 100%;
            max-width: 100%;
            margin: 0;
            padding: 0;
        }

        .advanced-form .columns {
            box-sizing: border-box;
            min-width: 0;
        }

        /* Pojedyncze wiersze formularza */

        .advanced-form .field {
            display: grid;
            grid-template-columns: minmax(180px, 0.8fr) minmax(0, 2fr);
            gap: 1rem;
            align-items: start;
            margin: 0;
            padding: 1.1rem 0;
            border-bottom: 1px solid var(--alabaster-grey);
        }

        .advanced-form .field:last-child {
            border-bottom: 0;
        }

        .advanced-form .field>.two.columns,
        .advanced-form .field>.five.columns {
            float: none;
            width: auto;
            margin: 0;
            padding: 0;
        }

        /* Etykiety */

        .advanced-form label,
        .advanced-form .field>.two.columns>label,
        .advanced-form .field>.two.columns>.label {
            display: block;
            margin: 0 0 0.45rem;
            color: var(--jet-black);
            font-family: var(--font-head);
            font-size: 0.75rem;
            font-weight: 700;
            line-height: 1.5;
            letter-spacing: 0.04em;
            text-transform: uppercase;
        }

        .advanced-form .field>.two.columns.alpha {
            padding-top: 0.55rem;
        }

        /* Pola tekstowe, listy i wybór wielokrotny */

        .advanced-form input[type="text"],
        .advanced-form input[type="search"],
        .advanced-form input[type="number"],
        .advanced-form select,
        .advanced-form textarea {
            display: block;
            box-sizing: border-box;
            width: 100%;
            max-width: 100%;
            min-width: 0;
            min-height: 2.75rem;
            margin: 0;
            padding: 0.65rem 0.75rem;
            border: 1px solid var(--alabaster-grey);
            border-radius: 0;
            background: var(--white);
            color: var(--carbon-black);
            font-family: var(--font-body);
            font-size: 0.875rem;
            line-height: 1.4;
            box-shadow: none;
            transition: var(--transition);
        }

        .advanced-form select {
            cursor: pointer;
        }

        .advanced-form select[multiple] {
            min-height: 12rem;
            padding: 0.25rem;
        }

        .advanced-form select[multiple] option {
            padding: 0.4rem 0.55rem;
        }

        .advanced-form input:focus,
        .advanced-form select:focus,
        .advanced-form textarea:focus {
            outline: 2px solid transparent;
            border-color: var(--ocean-mist);
            box-shadow: inset 3px 0 0 var(--ocean-mist);
        }

        .advanced-form input::placeholder,
        .advanced-form textarea::placeholder {
            color: var(--grey-olive);
            opacity: 1;
        }

        /* Wyszukiwanie w słowach kluczowych */

        .advanced-form #search-keywords input {
            min-height: 3rem;
        }

        /* Wiersze wyszukiwania zaawansowanego */

        .advanced-form #search-narrow-by-fields>.inputs {
            display: flex;
            flex-direction: column;
            gap: 0.75rem;
            min-width: 0;
        }

        .advanced-form .search-entry {
            display: grid;
            grid-template-columns:
                minmax(90px, 0.7fr) minmax(130px, 1fr) minmax(160px, 1.35fr) minmax(140px, 1.2fr) 36px;
            gap: 0.6rem;
            align-items: end;
            min-width: 0;
            padding: 1rem;
            background: #F8FAFA;
            border: 1px solid var(--alabaster-grey);
        }

        .advanced-form .search-entry .input {
            min-width: 0;
            margin: 0;
            padding: 0;
        }

        .advanced-form .search-entry .visible-label {
            display: block;
            margin-bottom: 0.35rem;
            color: var(--grey-olive);
            font-family: var(--font-head);
            font-size: 0.68rem;
            font-weight: 700;
            letter-spacing: 0.04em;
            text-transform: uppercase;
        }

        .advanced-form .search-entry select,
        .advanced-form .search-entry input[type="text"] {
            min-height: 2.65rem;
            font-size: 0.8rem;
        }

        /* Przycisk dodawania pola */

        .advanced-form .add_search {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.4rem;
            min-height: 2.5rem;
            margin-top: 0.75rem;
            padding: 0.55rem 0.8rem;
            border: 1px solid var(--ocean-mist);
            background: var(--white);
            color: var(--jet-black);
            font-family: var(--font-head);
            font-size: 0.75rem;
            font-weight: 700;
            line-height: 1.3;
            cursor: pointer;
            transition: var(--transition);
        }

        .advanced-form .add_search::before {
            content: "+";
            color: var(--ocean-mist);
            font-size: 1.1rem;
            line-height: 1;
        }

        .advanced-form .add_search:hover {
            background: var(--ocean-mist);
            border-color: var(--ocean-mist);
            color: var(--white);
        }

        .advanced-form .add_search:hover::before {
            color: var(--white);
        }

        /* Przycisk usuwania wiersza */

        .advanced-form .remove_search {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 36px;
            min-width: 36px;
            height: 42px;
            padding: 0;
            border: 1px solid var(--alabaster-grey);
            background: var(--white);
            color: var(--mauve-shadow);
            font-family: var(--font-head);
            font-size: 0.8rem;
            font-weight: 700;
            cursor: pointer;
            transition: var(--transition);
        }

        .advanced-form .remove_search:hover:not(:disabled) {
            border-color: var(--amaranth);
            background: var(--amaranth);
            color: var(--white);
        }

        .advanced-form .remove_search:disabled {
            opacity: 0.35;
            cursor: not-allowed;
        }

        /* Pola eksportu */

        .advanced-form .export-form {
            margin-top: 0.5rem;
        }

        .advanced-form .form-help {
            margin-top: 0.5rem;
            color: var(--grey-olive);
            font-size: 0.78rem;
            line-height: 1.5;
        }

        .advanced-form .export-form br {
            display: none;
        }

        .advanced-form .export-form label[for="fields"] {
            margin-top: 1rem;
        }

        /* Przycisk wyszukiwania */

        .advanced-form>input[type="submit"],
        .advanced-form #save input[type="submit"] {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            box-sizing: border-box;
            width: auto;
            max-width: 100%;
            min-height: 3rem;
            margin: 1.25rem 0 0;
            padding: 0.8rem 1.5rem;
            border: 1px solid var(--jet-black);
            border-radius: 0;
            background: var(--jet-black);
            color: var(--white);
            font-family: var(--font-head);
            font-size: 0.85rem;
            font-weight: 700;
            letter-spacing: 0.03em;
            line-height: 1.3;
            text-transform: uppercase;
            cursor: pointer;
            box-shadow: none;
            transition: var(--transition);
        }

        .advanced-form>input[type="submit"]:hover,
        .advanced-form #save input[type="submit"]:hover {
            border-color: var(--ocean-mist);
            background: var(--ocean-mist);
            color: var(--white);
        }

        /* Wariant z przyciskiem w panelu bocznym */

        .advanced-form #save {
            margin: 0;
            padding: 0;
            border: 0;
            background: transparent;
            box-shadow: none;
        }

        .advanced-form #save input[type="submit"] {
            width: 100%;
            white-space: normal;
        }

        /* Widoczny fokus klawiatury */

        .advanced-form button:focus-visible,
        .advanced-form input:focus-visible,
        .advanced-form select:focus-visible {
            outline: 2px solid var(--ocean-mist);
            outline-offset: 2px;
        }

        /* Komunikaty pomocnicze */

        .advanced-form .alerts {
            color: var(--grey-olive);
            font-size: 0.8rem;
        }

        /* Tablet */

        @media (max-width: 1050px) {
            .advanced-form .search-entry {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 0.85rem;
            }

            .advanced-form .search-entry .advanced-search-terms {
                grid-column: 1 / 2;
            }

            .advanced-form .search-entry .remove_search {
                grid-column: 2;
                justify-self: end;
                width: 42px;
            }
        }

        /* Telefony */

        @media (max-width: 767px) {
            .advanced-form {
                padding: 1rem;
            }

            .advanced-form .field {
                grid-template-columns: minmax(0, 1fr);
                gap: 0.5rem;
                padding: 1rem 0;
            }

            .advanced-form .field>.two.columns.alpha {
                padding-top: 0;
            }

            .advanced-form .search-entry {
                grid-template-columns: minmax(0, 1fr);
                gap: 0.75rem;
                padding: 0.85rem;
            }

            .advanced-form .search-entry .advanced-search-terms,
            .advanced-form .search-entry .remove_search {
                grid-column: auto;
            }

            .advanced-form .search-entry .remove_search {
                justify-self: start;
                width: 100%;
                height: 2.5rem;
            }

            .advanced-form>input[type="submit"] {
                width: 100%;
            }
        }

        @media (prefers-reduced-motion: reduce) {

            .advanced-form *,
            .advanced-form *::before,
            .advanced-form *::after {
                transition: none !important;
            }
        }



        /* ==========================================
   KOMUNIKAT EKSPORTU
   ========================================== */

        .export-notice {
            width: 100%;
            margin: 1.5rem 0;
            overflow: hidden;
            border: 0px solid var(--alabaster-grey);
            border-top: 0px solid var(--jet-black);
            color: var(--carbon-black);
            font-family: var(--font-body);
            box-shadow: var(--shadow-sm);
            transition: var(--transition);
        }

        .export-notice:hover {
            border-color: var(--grey-olive);
            border-top-color: var(--jet-black);
        }

        /* Główna zawartość */

        .export-notice__content {
            width: 100%;
            max-width: 1200px;
            margin: 0 auto;
            padding: 1.5rem;
        }

        .export-notice__layout {
            display: flex;
            align-items: flex-start;
            gap: 1.25rem;
        }

        /* Ikona statusu */

        .export-notice__icon {
            display: flex;
            flex: 0 0 3rem;
            align-items: center;
            justify-content: center;
            width: 3rem;
            height: 3rem;
            border: 1px solid var(--alabaster-grey);
            background: #F4F6F7;
        }

        .export-notice__icon svg {
            display: block;
            width: 1.5rem;
            height: 1.5rem;
        }

        .export-notice__icon--success {
            color: var(--ocean-mist);
            border-color: var(--ocean-mist);
            background: #E6F7F5;
        }

        .export-notice__icon--locked {
            color: var(--amaranth);
            border-color: #F0D1D7;
            background: #FBF0F2;
        }

        /* Treść */

        .export-notice__body {
            flex: 1;
            min-width: 0;
        }

        .export-notice__title {
            margin: 0 0 0.5rem;
            color: var(--jet-black);
            font-family: var(--font-head);
            font-size: 1.1rem;
            font-weight: 800;
            line-height: 1.35;
            text-transform: uppercase;
            letter-spacing: 0.025em;
        }

        .export-notice__description {
            margin: 0;
            color: var(--grey-olive);
            font-size: 0.9rem;
            line-height: 1.7;
        }

        .export-notice__description strong {
            color: var(--jet-black);
            font-weight: 800;
            font-variant-numeric: tabular-nums;
        }

        /* Przycisk pobierania */

        .export-notice__actions {
            display: flex;
            flex-wrap: wrap;
            gap: 0.75rem;
            margin-top: 1.25rem;
        }

        .export-notice__download {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.6rem;
            min-height: 2.75rem;
            max-width: 100%;
            padding: 0.7rem 1.1rem;
            border: 1px solid var(--amaranth);
            background: var(--amaranth);
            color: var(--white);
            font-family: var(--font-head);
            font-size: 0.8rem;
            font-weight: 700;
            line-height: 1.4;
            text-decoration: none;
            overflow-wrap: anywhere;
            transition: var(--transition);
        }

        .export-notice__download svg {
            display: block;
            flex: 0 0 1.1rem;
            width: 1.1rem;
            height: 1.1rem;
        }

        .export-notice__download:hover {
            border-color: var(--jet-black);
            background: var(--jet-black);
            color: var(--white);
            text-decoration: none;
        }

        .export-notice__download:focus-visible {
            outline: 2px solid var(--ocean-mist);
            outline-offset: 3px;
        }

        /* Dodatkowy tekst */

        .export-notice__extra {
            margin-top: 1.25rem;
            padding-top: 1rem;
            border-top: 1px solid var(--alabaster-grey);
            color: var(--grey-olive);
            font-size: 0.85rem;
            line-height: 1.7;
        }

        /* Dolny pasek dekoracyjny */

        .export-notice__footer {
            width: 100%;
            height: 4px;
        }

        .export-notice__progress {
            width: 100%;
            height: 100%;
            
        }

        /* Responsywność */

        @media (max-width: 600px) {
            .export-notice {
                margin: 1rem 0;
            }

            .export-notice__content {
                padding: 1rem;
            }

            .export-notice__layout {
                gap: 0.85rem;
            }

            .export-notice__icon {
                flex-basis: 2.5rem;
                width: 2.5rem;
                height: 2.5rem;
            }

            .export-notice__icon svg {
                width: 1.25rem;
                height: 1.25rem;
            }

            .export-notice__title {
                font-size: 0.95rem;
            }

            .export-notice__description {
                font-size: 0.85rem;
            }

            .export-notice__actions {
                flex-direction: column;
                align-items: stretch;
            }

            .export-notice__download {
                width: 100%;
                box-sizing: border-box;
                text-align: center;
            }
        }

        @media (prefers-reduced-motion: reduce) {

            .export-notice,
            .export-notice__download {
                transition: none;
            }
        }


        .page-content {
            max-width: 75%;
            hyphens: auto;
            overflow-wrap: break-word;
        }
        .page-content p {
            margin-bottom: 1rem;
        }

        .page-content p.notes {
            font-size: 0.85rem;
        }

        .page-content .info-widget {
            margin-bottom: 2rem;
            padding: 2rem;
            background-color: var(--alabaster-grey);
        }

        .page-content .info-widget ul {
            margin: 0;
            padding-left: 1rem;
        }

        .page-content .info-widget ul li {
            margin-bottom: 0.5rem;
        }

        .page-content blockquote {
            margin: 1.5rem 0;
            padding: 1rem 1.25rem;
            background-color: var(--alabaster-grey);
            border-left: 4px solid var(--amaranth);
            font-family: monospace, monospace;
        }

        .wplacam-container {
         width: 50%;
        }