:root {
/* Central theme overrides inspired by landing */
    --primary-color: #0056b3;
    --secondary-color: #007bff;
    --dark-blue: #003366;
    --success-color: #198754;
    --light-bg: #f8f9fa;
    --light-gray: #e9ecef;
    --text-color: #212529;
    --text-muted: #6c757d;
    --white-color: #ffffff;
    --border-color: #dee2e6;
}

/* Self-hosted Montserrat (place .woff2 files under /public/libs/fonts/montserrat) */
@font-face {
    font-family: 'Montserrat';
    src: local('Montserrat Light'), local('Montserrat-Light'), url('../libs/fonts/montserrat/Montserrat-Light.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Montserrat';
    src: url('../libs/fonts/montserrat/Montserrat-Regular.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

/* Self-hosted Open Sans for UI (body text, buttons, controls) */
@font-face {
    font-family: 'Open Sans';
    src: local('Open Sans Regular'), local('OpenSans-Regular'), url('../libs/fonts/opensans/OpenSans-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Open Sans';
    src: local('Open Sans Semibold'), local('OpenSans-SemiBold'), url('../libs/fonts/opensans/OpenSans-SemiBold.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Montserrat';
    src: url('../libs/fonts/montserrat/Montserrat-SemiBold.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Montserrat';
    src: url('../libs/fonts/montserrat/Montserrat-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

body {
    color: var(--text-color);
    background-color: var(--white-color);
    font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    font-size: 1rem;
    line-height: 1.6;
}

/* Landing typography - szare, delikatne nagłówki (zgodnie z oczekiwaniem) */
.landing h1 {
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-weight: 300;
    font-size: 2.25rem;
    line-height: 1.25;
    color: #6c757d;
    letter-spacing: .1px;
    margin-bottom: 1rem;
}

.landing h2 {
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-weight: 300;
    font-size: 1.75rem;
    line-height: 1.35;
    color: #6c757d;
    letter-spacing: .1px;
    margin-bottom: .75rem;
}

.landing h3 {
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-weight: 300;
    font-size: 1.25rem;
    line-height: 1.4;
    color: #495057;
}

.landing h4 {
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-weight: 300;
    font-size: 1.125rem;
    line-height: 1.4;
    color: #495057;
}

/* Mniejsze tytuły (karty, kafelki, h5) – delikatniejsze, szare */
.landing .card-title,
.landing .card-title a,
.landing h3.h5,
.landing .h5 {
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-weight: 400;
    color: #6c757d;
    letter-spacing: .1px;
}
.landing .card-title a:hover {
    color: #0d6efd;
}

.landing p {
    font-size: 1rem;
    line-height: 1.6;
    color: #6c757d;
}

.landing .text-lg {
    font-size: 1.125rem;
    line-height: 1.6;
}

.landing .fs-lg {
    font-size: 1.0625rem;
    line-height: 1.6;
}

.landing .text-muted {
    color: #6c757d !important;
}

/* Delikatne nagłówki wymuszane klasą (stosujemy w public views) */
.heading-muted {
    color: #6c757d;
    font-weight: 300;
    letter-spacing: .1px;
}

/* Hero cover (landing) */
.hero.hero-cover {
    padding: 5rem 0 4rem;
    color: #eaf1ff;
    background-color: #0b1b3a;
    background-image: radial-gradient(24px 24px at 20% 20%, rgba(255,255,255,.06) 12%, transparent 13%),
                      radial-gradient(28px 28px at 80% 30%, rgba(255,255,255,.05) 12%, transparent 13%),
                      radial-gradient(22px 22px at 30% 70%, rgba(255,255,255,.05) 12%, transparent 13%),
                      radial-gradient(26px 26px at 70% 80%, rgba(255,255,255,.04) 12%, transparent 13%);
}
.hero.hero-cover h1 { margin-bottom: .5rem; color:#ffffff; }
.hero.hero-cover h2 { margin-bottom: 1rem; color: #c7d2fe; font-size: 1.15rem; }
.hero.hero-cover .btn.btn-primary { box-shadow: 0 6px 20px rgba(47,111,235,.25); }
.hero.hero-cover .trust-bar { margin-top: 1rem; display: flex; gap: .75rem; justify-content: center; color: #9fb2e6; }
.hero.hero-cover .scroll-down { margin-top: 1rem; color: #9fb2e6; }

/* Ikony + podpisy w listach zalet – subtelne tytuły */
.landing .feature-list h4,
.landing .feature-list .title,
.landing .benefit-title {
    color: #6c757d;
    font-weight: 400;
}

/* Album (latest posts) – spójne miniatury */
#latest-posts .card-img-top { height: 160px; object-fit: cover; }
/* Tytuły postów lżejsze */
.landing #latest-posts .card .card-title a {
    color: #495057;
    font-weight: 400;
}
.landing #latest-posts .card .card-title a:hover {
    color: #0d6efd;
}

/* Subtelne flagi w przełączniku języków (emoji, bez zewnętrznych assetów) */
.lang-bar .lang-switch { display:flex; flex-wrap:nowrap; gap:.35rem; }
.lang-bar .lang-item { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; padding:0; border-radius:50%; color:#ffffff; text-decoration:none; font-size:.7em; position:relative; overflow:hidden; }
.lang-bar .lang-item { margin:0; }
.lang-bar .lang-item::before { content:''; position:absolute; inset:1px; border-radius:inherit; opacity:1; background-size: 100% 100%; background-position:center; background-repeat:no-repeat; z-index:0; }
.lang-bar .lang-item { z-index:1; }
.lang-bar .lang-item.active { box-shadow: 0 0 0 2px rgba(47,111,235,.15) inset; border:1px solid #e0e7ff; }
.lang-bar .lang-item:hover { box-shadow: 0 0 0 2px rgba(47,111,235,.12) inset; }

/* Mapowanie tła flag do klas językowych – emoji jako image via SVG data-uri (lekkościowo) */
.lang-bar .lang-item.flag-pl::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12'%3E%3Crect width='18' height='6' fill='%23ffffff'/%3E%3Crect y='6' width='18' height='6' fill='%23dc143c'/%3E%3C/svg%3E"); }
.lang-bar .lang-item.flag-en::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 30'%3E%3CclipPath id='t'%3E%3Cpath d='M0,0 v30 h60 v-30 z'/%3E%3C/clipPath%3E%3Cpath d='M0,0 v30 h60 v-30 z' fill='%23012a87'/%3E%3Cpath d='M0,0 L60,30 M60,0 L0,30' stroke='%23fff' stroke-width='6' clip-path='url(%23t)'/%3E%3Cpath d='M0,0 L60,30 M60,0 L0,30' stroke='%23c8102e' stroke-width='4' clip-path='url(%23t)'/%3E%3Cpath d='M30,0 v30 M0,15 h60' stroke='%23fff' stroke-width='10'/%3E%3Cpath d='M30,0 v30 M0,15 h60' stroke='%23c8102e' stroke-width='6'/%3E%3C/svg%3E"); }
.lang-bar .lang-item.flag-de::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12'%3E%3Crect width='18' height='12' fill='%23000000'/%3E%3Crect y='4' width='18' height='8' fill='%23dd0000'/%3E%3Crect y='8' width='18' height='4' fill='%23ffce00'/%3E%3C/svg%3E"); }
.lang-bar .lang-item.flag-fr::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12'%3E%3Crect width='6' height='12' fill='%23005ea5'/%3E%3Crect x='6' width='6' height='12' fill='%23ffffff'/%3E%3Crect x='12' width='6' height='12' fill='%23ef3340'/%3E%3C/svg%3E"); }
.lang-bar .lang-item.flag-it::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12'%3E%3Crect width='6' height='12' fill='%2300892b'/%3E%3Crect x='6' width='6' height='12' fill='%23ffffff'/%3E%3Crect x='12' width='6' height='12' fill='%23cf2b37'/%3E%3C/svg%3E"); }
.lang-bar .lang-item.flag-es::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12'%3E%3Crect width='18' height='12' fill='%23c60b1e'/%3E%3Crect y='3' width='18' height='6' fill='%23ffc400'/%3E%3C/svg%3E"); }
.lang-bar .lang-item.flag-pt::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12'%3E%3Crect width='7' height='12' fill='%2300602b'/%3E%3Crect x='7' width='11' height='12' fill='%23ff0000'/%3E%3C/svg%3E"); }
.lang-bar .lang-item.flag-nl::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12'%3E%3Crect width='18' height='4' fill='%23ae1c28'/%3E%3Crect y='4' width='18' height='4' fill='%23ffffff'/%3E%3Crect y='8' width='18' height='4' fill='%2312147a'/%3E%3C/svg%3E"); }
.lang-bar .lang-item.flag-cs::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12'%3E%3Crect width='18' height='6' fill='%23ffffff'/%3E%3Crect y='6' width='18' height='6' fill='%23d7141a'/%3E%3Cpolygon points='0,0 8,6 0,12' fill='%230114a0'/%3E%3C/svg%3E"); }
.lang-bar .lang-item.flag-sk::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12'%3E%3Crect width='18' height='4' fill='%23ffffff'/%3E%3Crect y='4' width='18' height='4' fill='%230b4ea2'/%3E%3Crect y='8' width='18' height='4' fill='%23ee1c25'/%3E%3Cpath d='M4 3h4v4a3 3 0 0 1-4 0z' fill='%23ee1c25'/%3E%3Crect x='5.5' y='3' width='1' height='4' fill='%23ffffff'/%3E%3Crect x='4.5' y='4.5' width='3' height='1' fill='%23ffffff'/%3E%3C/svg%3E"); }
.lang-bar .lang-item.flag-hu::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12'%3E%3Crect width='18' height='4' fill='%23ce2939'/%3E%3Crect y='4' width='18' height='4' fill='%23ffffff'/%3E%3Crect y='8' width='18' height='4' fill='%2300773d'/%3E%3C/svg%3E"); }
.lang-bar .lang-item.flag-ro::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12'%3E%3Crect width='6' height='12' fill='%23003f87'/%3E%3Crect x='6' width='6' height='12' fill='%23ffd700'/%3E%3Crect x='12' width='6' height='12' fill='%23c60b1e'/%3E%3C/svg%3E"); }
.lang-bar .lang-item.flag-bg::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12'%3E%3Crect width='18' height='4' fill='%23ffffff'/%3E%3Crect y='4' width='18' height='4' fill='%232fc400'/%3E%3Crect y='8' width='18' height='4' fill='%23d62612'/%3E%3C/svg%3E"); }
.lang-bar .lang-item.flag-hr::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12'%3E%3Crect width='18' height='4' fill='%23ff0000'/%3E%3Crect y='4' width='18' height='4' fill='%23ffffff'/%3E%3Crect y='8' width='18' height='4' fill='%23005eb8'/%3E%3Crect x='6' y='3' width='6' height='6' fill='%23ffffff'/%3E%3Crect x='6' y='3' width='2' height='2' fill='%23ff0000'/%3E%3Crect x='8' y='3' width='2' height='2' fill='%23ffffff'/%3E%3Crect x='10' y='3' width='2' height='2' fill='%23ff0000'/%3E%3Crect x='6' y='5' width='2' height='2' fill='%23ffffff'/%3E%3Crect x='8' y='5' width='2' height='2' fill='%23ff0000'/%3E%3Crect x='10' y='5' width='2' height='2' fill='%23ffffff'/%3E%3C/svg%3E"); }
.lang-bar .lang-item.flag-sl::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12'%3E%3Crect width='18' height='4' fill='%23ffffff'/%3E%3Crect y='4' width='18' height='4' fill='%23005ce6'/%3E%3Crect y='8' width='18' height='4' fill='%23d50000'/%3E%3Cpath d='M3 2h4v4a3 3 0 0 1-4 0z' fill='%23005ce6'/%3E%3Cpolygon points='5,3 4,5 6,5' fill='%23ffffff'/%3E%3Ccircle cx='5' cy='3' r='0.6' fill='%23ffd700'/%3E%3C/svg%3E"); }
.lang-bar .lang-item.flag-lt::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12'%3E%3Crect width='18' height='4' fill='%23fdb913'/%3E%3Crect y='4' width='18' height='4' fill='%23006a44'/%3E%3Crect y='8' width='18' height='4' fill='%23c1272d'/%3E%3C/svg%3E"); }
.lang-bar .lang-item.flag-lv::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12'%3E%3Crect width='18' height='12' fill='%23a4343a'/%3E%3Crect y='5' width='18' height='2' fill='%23ffffff'/%3E%3C/svg%3E"); }
.lang-bar .lang-item.flag-et::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12'%3E%3Crect width='18' height='4' fill='%23007ac1'/%3E%3Crect y='4' width='18' height='4' fill='%23000000'/%3E%3Crect y='8' width='18' height='4' fill='%23ffffff'/%3E%3C/svg%3E"); }
.lang-bar .lang-item.flag-da::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 37 28'%3E%3Crect width='37' height='28' fill='%23c60c30'/%3E%3Crect x='14' width='3' height='28' fill='%23fff'/%3E%3Crect y='12' width='37' height='4' fill='%23fff'/%3E%3C/svg%3E"); }
.lang-bar .lang-item.flag-sv::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10'%3E%3Crect width='16' height='10' fill='%23006aa7'/%3E%3Crect x='5' width='2' height='10' fill='%23fecc00'/%3E%3Crect y='4' width='16' height='2' fill='%23fecc00'/%3E%3C/svg%3E"); }
.lang-bar .lang-item.flag-fi::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 12'%3E%3Crect width='18' height='12' fill='%23fff'/%3E%3Crect x='5' width='3' height='12' fill='%230059b3'/%3E%3Crect y='5' width='18' height='3' fill='%230059b3'/%3E%3C/svg%3E"); }
.lang-bar .lang-item.flag-el::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 12'%3E%3Crect width='18' height='12' fill='%230056b3'/%3E%3Crect y='2' width='18' height='1' fill='%23fff'/%3E%3Crect y='4' width='18' height='1' fill='%23fff'/%3E%3Crect y='6' width='18' height='1' fill='%23fff'/%3E%3Crect y='8' width='18' height='1' fill='%23fff'/%3E%3Crect y='10' width='18' height='1' fill='%23fff'/%3E%3Crect width='6' height='6' fill='%230056b3'/%3E%3Crect x='2' width='1' height='6' fill='%23fff'/%3E%3Crect y='2' width='6' height='1' fill='%23fff'/%3E%3C/svg%3E"); }

/* Emoji per lang – używamy pseudo-obrazków via content */
.flag.flag-pl::before { content:'🇵🇱'; }
.flag.flag-en::before { content:'🇬🇧'; }
.flag.flag-de::before { content:'🇩🇪'; }
.flag.flag-fr::before { content:'🇫🇷'; }
.flag.flag-it::before { content:'🇮🇹'; }
.flag.flag-es::before { content:'🇪🇸'; }
.flag.flag-pt::before { content:'🇵🇹'; }
.flag.flag-nl::before { content:'🇳🇱'; }
.flag.flag-cs::before { content:'🇨🇿'; }
.flag.flag-sk::before { content:'🇸🇰'; }
.flag.flag-hu::before { content:'🇭🇺'; }
.flag.flag-ro::before { content:'🇷🇴'; }
.flag.flag-bg::before { content:'🇧🇬'; }
.flag.flag-hr::before { content:'🇭🇷'; }
.flag.flag-sl::before { content:'🇸🇮'; }
.flag.flag-lt::before { content:'🇱🇹'; }
.flag.flag-lv::before { content:'🇱🇻'; }
.flag.flag-et::before { content:'🇪🇪'; }
.flag.flag-da::before { content:'🇩🇰'; }
.flag.flag-sv::before { content:'🇸🇪'; }
.flag.flag-fi::before { content:'🇫🇮'; }
.flag.flag-el::before { content:'🇬🇷'; }

/* Typography for content pages (panel) – landing ma własny scope .landing */
p.lead { color: var(--text-muted); font-size: 1.05rem; }

/* Links */
a { color: var(--primary-color); }
a:hover, a:focus { color: var(--secondary-color); }

/* Navbar */
.navbar { border-bottom: 1px solid var(--border-color); }
.navbar-dark .navbar-brand { font-weight: 700; font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; }
/* Keep existing markup, restyle dark navbar to light theme */
.navbar-dark.bg-dark { background-color: var(--white-color) !important; }
.navbar-dark .navbar-brand { color: var(--dark-blue) !important; }
.navbar-dark .navbar-nav .nav-link { color: var(--dark-blue) !important; font-weight: 600; letter-spacing: .1px; }
.navbar-dark .navbar-nav .nav-link.active,
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus { color: var(--secondary-color) !important; }
.navbar-text { color: var(--dark-blue) !important; }

/* Buttons */
/* Base modern look */
.btn {
    font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-weight: 600;
    border-radius: 6px;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
    box-shadow: none;
}
.btn:hover { filter: brightness(0.98); }
.btn:active { filter: brightness(0.95); }
.btn:focus-visible { outline: 2px solid var(--secondary-color); outline-offset: 1px; }

/* Comfortable sizing for small buttons (tables/actions) */
.btn-sm { font-size: .875rem; padding: .25rem .6rem; line-height: 1.2; }

/* Spacing between action buttons in tables */
.table td .btn { margin: 0 .125rem; }

.btn .bi { margin-right: .35rem; font-size: 1rem; line-height: 1; vertical-align: -.125em; }
.btn svg, .btn i.bi { width: 1em; height: 1em; fill: currentColor; }
.btn-sm .bi, .btn-sm svg { font-size: .95rem; }
.navbar .nav-link .bi { margin-right: .25rem; vertical-align: -.15em; }
.table .btn .bi { margin-right: .25rem; }
/* Align standalone bootstrap icons in tables/action links */
.table td a .bi { vertical-align: -.125em; display: inline-block; }
.action-link { display:inline-flex; align-items:center; }
.action-link .bi { margin-right: .35rem; }
.action-link.icon-only .bi, a.action-link .bi:only-child { margin-right: 0; }
.btn-icon-only { padding: .375rem .5rem; }
.btn-icon-only .bi { margin-right: 0; }

/* Primary */
.btn-primary { background-color: var(--primary-color); border-color: var(--primary-color); }
.btn-primary:hover, .btn-primary:focus { background-color: var(--secondary-color); border-color: var(--secondary-color); }

/* Secondary styled like landing (outline invert) */
.btn-secondary { background-color: transparent; color: var(--dark-blue); border-color: var(--dark-blue); }
.btn-secondary:hover, .btn-secondary:focus { background-color: var(--dark-blue); color: #fff; }

/* Outlines */
.btn-outline-primary { color: var(--primary-color); border-color: var(--primary-color); }
.btn-outline-primary:hover { background-color: var(--primary-color); color: #fff; }
.btn-outline-info { color: var(--secondary-color); border-color: var(--secondary-color); }
.btn-outline-info:hover { background-color: var(--secondary-color); color: #fff; }
.btn-outline-danger:hover { color: #fff; }
/* Softer success outline (used by "+ Dodaj Sytuację") */
.btn-outline-success { color: #166534; border-color: #bfe7ce; }
.btn-outline-success:hover, .btn-outline-success:focus { background-color: #e9f9ef; color: #166534; border-color: #bfe7ce; }

/* CTA variant for prominent actions */
.btn-cta { padding: .9rem 1.25rem; font-size: 1.05rem; border-radius: 8px; }

/* Link-style actions (no real buttons) */
.action-link { display:inline-flex; align-items:center; gap:.4rem; padding:.4rem .5rem; border-radius:6px; text-decoration:none; color:var(--primary-color); border:1px solid transparent; }
.action-link { background: transparent; }
.action-link:focus { outline: none; }
button.action-link { background: transparent; border: 1px solid transparent; }
.action-link:hover { background-color:#f1f5ff; border-color:#e0e7ff; color:var(--secondary-color); }
.action-link .bi { font-size:1rem; }

/* Subtelniejsze ikony tooltipów */
.tooltip-icon,
i.bi-info-circle,
i.bi-info-circle-fill {
    color: #9aa3b2; /* delikatny szary */
}

.action-icon { display:inline-flex; justify-content:center; align-items:center; width:36px; height:36px; border-radius:8px; border:1px solid var(--border-color); background:#fff; color:var(--dark-blue); text-decoration:none; }
.action-icon:hover { background:#f8fbff; color:var(--secondary-color); border-color:#d6e4ff; }

/* Cards / tables */
.card { border-color: var(--border-color); }
.card { box-shadow: 0 1px 3px rgba(0,0,0,.06); border-radius: 10px; }
.card-header { background-color: var(--light-bg); color: var(--dark-blue); font-weight: 600; border-top-left-radius: 8px; border-top-right-radius: 8px; }
.content-body-header h2 { font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; font-weight: 400; }
/* Ensure card titles in dashboard boxes use Montserrat to match prototype */
.card-title { font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; font-weight: 400; letter-spacing: .2px; }
/* Interactive cards */
.card { transition: transform .2s ease, box-shadow .2s ease; }
.card.interactive:hover { transform: translateY(-4px); box-shadow: 0 10px 26px rgba(0,0,0,.12); }
.table thead th { background-color: transparent !important; color: #b7becb !important; border-color: var(--border-color); font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; font-weight: 400; }
.table thead th small { font-weight: 400; color: #b7becb; }
.table > :not(caption) > * > * { border-color: var(--border-color); }
.table-hover tbody tr:hover { background-color: #f5f8ff; }
.table td, .table th { padding: .65rem .75rem; }
/* Disable zebra striping globally (keep hover only) */
.table-striped tbody tr:nth-of-type(odd) { background-color: transparent; }

/* Interactive list items */
.list-group-item-action { transition: transform .15s ease, background-color .15s ease, box-shadow .15s ease; border-radius: 8px; }
.list-group-item-action:hover { transform: translateX(2px); background-color: #f8fbff; box-shadow: 0 4px 12px rgba(0,0,0,.06); }

/* Headings */
h1, h2, h3, h4, h5, h6 { color: var(--dark-blue); }

/* Utility */
.text-muted { color: var(--text-muted); }
.bd-eee { border-color: var(--border-color) !important; }

/* Badges & pagination */
.badge { font-weight: 600; border-radius: 6px; }
.badge-soft-success { background: #e9f9ef; color: #166534; border: 1px solid #d5f0df; }
.badge-soft-secondary { background: #f3f4f6; color: #4b5563; border: 1px solid #eceef2; }
.badge-soft-warning { background: #fff7e6; color: #92400e; border: 1px solid #ffe4b5; }
.badge-soft-danger { background: #ffe8e8; color: #8b1c1c; border: 1px solid #ffd0d0; }
.badge-soft-dark { background: #e5e7eb; color: #1f2937; border: 1px solid #d1d5db; }
/* Subtle primary/info for badges (accessible on white) */
.badge-soft-primary { background: #e1eaff !important; color: #1e3a8a !important; border: 1px solid #c7d2fe !important; }
/* Info stays gentle blue-gray; avoid too saturated blue */
.badge-soft-info { background: #eef2f7 !important; color: #445b78 !important; border: 1px solid #e2e8f0 !important; }

/* Map klasy Bootstrapowe na nasze soft-odpowiedniki, żeby wszędzie wyglądało spójnie */
.badge-success { background: #e9f9ef; color: #166534; border: 1px solid #d5f0df; }
.badge-secondary { background: #f3f4f6; color: #4b5563; border: 1px solid #eceef2; }
.badge-warning { background: #fff7e6; color: #92400e; border: 1px solid #ffe4b5; }
.badge-danger { background: #ffe8e8; color: #8b1c1c; border: 1px solid #ffd0d0; }
.text-bg-success { background: #e9f9ef !important; color: #166534 !important; border: 1px solid #d5f0df; }
.text-bg-secondary { background: #f3f4f6 !important; color: #4b5563 !important; border: 1px solid #eceef2; }
.text-bg-warning { background: #fff7e6 !important; color: #92400e !important; border: 1px solid #ffe4b5; }
.text-bg-danger { background: #ffe8e8 !important; color: #8b1c1c !important; border: 1px solid #ffd0d0; }

/* Table refinements for hazards */
.table-info { background-color: #f5f8ff !important; }
.table td, .table th { vertical-align: middle; }

/* Subtle backgrounds (Bootstrap 5.3-like) */
.bg-warning-subtle { background-color: #fff9ed !important; color: #6f4a00 !important; }
.bg-success-subtle { background-color: #f4fbf7 !important; color: #0f5132 !important; }
.text-success-emphasis { color: #0f5132 !important; }

/* Accordion – cleaner look */
.accordion-button { background-color: #fff; box-shadow: none; }
.accordion-button:not(.collapsed) { background-color: #f8fbff; color: var(--dark-blue); }
.accordion-button:focus { box-shadow: 0 0 0 0.15rem rgba(47,111,235,.15); }
.accordion-item { border: 1px solid var(--border-color); border-radius: 8px; overflow: hidden; }

/* Card state borders */
.card.border-success { border-color: #dfeee6 !important; }
.card.border-warning { border-color: #fff1dd !important; }
.card.border-secondary { border-color: #eef2f7 !important; }

/* Alert link subtle color */
.alert-link { color: var(--secondary-color); text-decoration: underline; }

/* Breadcrumbs */
.breadcrumb { --bs-breadcrumb-divider: '›'; background: transparent; padding: 0; margin-bottom: 1rem; font-size: .875rem; }
.breadcrumb .breadcrumb-item + .breadcrumb-item::before { content: var(--bs-breadcrumb-divider, '/'); }

/* Subtle action link */
.link-view { color: #6b5bd2; text-decoration: none; font-weight: 400; }
.link-view:hover { color: #5a49c8; text-decoration: underline; }

/* Quick stats cards */
.stat-card { display:flex; align-items:center; gap:12px; padding:16px; border:1px solid var(--border-color); border-radius:12px; background:#fff; }
.stat-card .stat-icon { width:40px; height:40px; border-radius:8px; display:flex; align-items:center; justify-content:center; background:#f5f7ff; color:var(--primary-color); }
.stat-card .stat-meta { display:flex; flex-direction:column; line-height:1.2; }
.stat-card .stat-label { font-size:.8rem; color:var(--text-muted); }
.stat-card .stat-value { font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; font-size:1.25rem; font-weight:700; color: var(--dark-blue); }
.pagination { --pg-bg: #ffffff; --pg-active-bg: #2f6feb; --pg-active-text: #ffffff; --pg-text: #2f3a4d; }
.pagination .page-link { color: var(--pg-text); border-color: var(--border-color); background: var(--pg-bg); }
.pagination .page-link:hover { background: #f5f8ff; color: var(--secondary-color); border-color: #d6e4ff; }
.pagination .page-item.active .page-link { background-color: var(--pg-active-bg); border-color: var(--pg-active-bg); color: var(--pg-active-text); box-shadow: 0 0 0 3px rgba(47,111,235,.15); }
.pagination .page-item.disabled .page-link { color: #9aa3b2; background: #f3f4f6; border-color: var(--border-color); }

/* Przyciski – miękkie warianty zgodne ze stylem "action-link"/soft */
.btn-success {
    background-color: #e9f9ef;
    color: #166534;
    border-color: #bfe7ce;
}
.btn-success:hover, .btn-success:focus {
    background-color: #dff2ea;
    color: #166534;
    border-color: #bfe7ce;
}
.btn-warning {
    background-color: #fff7e6;
    color: #92400e;
    border-color: #ffe4b5;
}
.btn-warning:hover, .btn-warning:focus {
    background-color: #ffefcf;
    color: #7c370c;
    border-color: #ffdca1;
}
.btn-danger {
    background-color: #ffe8e8;
    color: #8b1c1c;
    border-color: #ffd0d0;
}
.btn-danger:hover, .btn-danger:focus { background-color: #ffdede; color: #7a1616; border-color: #ffc2c2; }

/* Drobne dostosowania rozmiaru i zaokrągleń pod nasz styl */
.btn { border-width: 1px; }



