:root{
  /* Brand */
  --color-primary:#4DADE6;        /* base błękit */
  --color-primary-100:#EAF6FE;    /* jasny */
  --color-primary-200:#BEE3F9;
  --color-primary-600:#3C9CD7;    /* ciemniejszy */
  --color-primary-700:#2F87BF;    /* mocny akcent */

  --color-secondary:#6B7FD2;      /* chłodny niebiesko-fioletowy, spójny z primary */
  --color-secondary-100:#EEF1FB;  /* jasny */
  --color-secondary-200:#D7DFF7;
  --color-secondary-600:#5A6DC0;  /* ciemniejszy */
  --color-secondary-700:#495AA8;  /* mocny akcent */

  --color-accent:#6BA76B;
  --color-accent-100:#E8F3E8;

  /* Base */
  --color-text:#1F2937;
  --color-muted:#6B7280;
  --color-bg:#F8FAFC;             /* bardzo jasne tło */
  --radius:14px;                   /* lekko większe zaokrąglenia */
  /* Surfaces */
  --surface:#ffffff;
  --border:#edf2f7;
}

html,body{ height:100%; }
body { scroll-behavior: smooth; color:var(--color-text); background:var(--color-bg); font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 'Liberation Sans', sans-serif; min-height:100vh; display:flex; flex-direction:column;
  background-image: radial-gradient(var(--color-primary-100) 1px, transparent 1px), radial-gradient(var(--color-secondary-100) 1px, transparent 1px);
  background-position: 0 0, 25px 25px;
  background-size: 50px 50px; }
.content p { margin-bottom: .6rem; }

/* Navbar */
.navbar { background: var(--surface) !important; box-shadow: 0 10px 30px rgba(0,0,0,.05); }
.navbar::after{ content:""; display:block; height:3px; background: linear-gradient(90deg,var(--color-secondary) 0%, var(--color-secondary-600) 100%); }
.navbar .navbar-brand { font-weight: 800; letter-spacing:.2px; color: var(--color-primary-700); }
.navbar .nav-link { color: var(--color-text); font-weight:600; padding: .6rem .8rem; border-bottom: 2px solid transparent; }
.navbar .nav-link:hover { color: var(--color-primary-700); border-bottom-color: var(--color-secondary); }
.navbar .nav-link .icon{ transition: transform .18s ease, opacity .18s ease; opacity:.9; }
.navbar .nav-link:hover .icon{ transform: translateY(-1px); opacity:1; }
.navbar .nav-link:focus, .navbar .nav-link.active { color: var(--color-primary-700); border-bottom-color: var(--color-secondary-600); }
.dropdown-item:hover, .dropdown-item:focus { background: var(--color-secondary-100); color: var(--color-primary-700); }
.dropdown-item .icon{ transition: transform .18s ease, opacity .18s ease; opacity:.9; }
.dropdown-item:hover .icon, .dropdown-item:focus .icon{ transform: translateX(2px); opacity:1; }
.navbar .dropdown-menu { font-size: 0.95rem; border-radius: var(--radius); border:1px solid var(--border); background: var(--surface); color: var(--color-text); box-shadow: 0 12px 30px rgba(0,0,0,.08); }

/* Buttons */
.btn { border-radius: 999px; padding:.55rem 1rem; font-weight:600; }
.btn-primary { background: linear-gradient(135deg,var(--color-primary) 0%, var(--color-primary-600) 100%); border-color: var(--color-primary-600); }
.btn-primary:hover { background: linear-gradient(135deg,var(--color-primary-600), var(--color-primary-700)); border-color: var(--color-primary-700); transform: translateY(-1px); }
.btn-outline-primary { color: var(--color-primary); border-color: var(--color-primary); }
.btn-outline-primary:hover { background: var(--color-primary); color:#fff; }
.btn-secondary { background: linear-gradient(135deg,var(--color-secondary) 0%, var(--color-secondary-600) 100%); border-color: var(--color-secondary-600); color:#fff; }
.btn-outline-secondary { color: var(--color-secondary-700); border-color: var(--color-secondary); }
.btn-outline-secondary:hover { background: var(--color-secondary); color:#fff; }

/* Sections */
.section-title { font-size:1.2rem; font-weight:800; color: var(--color-text); border-left:6px solid var(--color-secondary-700); padding-left:.6rem; margin-bottom:.8rem; letter-spacing:.2px; }
[data-theme="dark"] .section-title { border-left-color: var(--color-secondary-600); }
.section-title .section-link{ color: inherit; text-decoration: none; }
.section-title .section-link:hover{ text-decoration: underline; }

/* Lists */
.list-group-item { border:1px solid var(--border); background: var(--surface); color: var(--color-text); border-left:4px solid transparent; transition: all .2s ease; border-radius: 10px; margin-bottom:.4rem; }
.list-group-item:hover { border-left-color: var(--color-secondary); background: var(--color-secondary-100); transform: translateY(-1px); }
.list-group-item.has-www { border-left-color: var(--color-primary-700); background: var(--color-primary-100); }
[data-theme="dark"] .list-group-item.has-www { background:#1B2A3A; border-left-color:#2F87BF; }

/* Companies list alignment */
.list-group-item.company-item{ display:flex; align-items:center; justify-content:space-between; gap:.75rem; }
.list-group-item.company-item .company-left{ min-width:0; }
.list-group-item.company-item .company-left .text-muted{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.list-group-item.company-item .badges span{ margin-left:.25rem; }

/* Cards */
.card { border:1px solid var(--border); background: var(--surface); color: var(--color-text); border-radius: var(--radius); box-shadow: 0 12px 36px rgba(0,0,0,.06); }
.card .card-body { border-radius: var(--radius); }
.alert.themed-box { border-color: var(--color-secondary); background: var(--color-secondary-100); color: var(--color-secondary-700); }

/* Footer */
footer { background: #ffffff; border-top:3px solid var(--color-secondary); }
.footer-nav .footer-link{ color: var(--color-text); text-decoration: none; }
.footer-nav .footer-link:hover{ text-decoration: underline; }
.footer-nav .footer-link:after{ content:''; display:inline-block; width:1px; height:12px; background: var(--border); margin-left: .75rem; vertical-align: middle; }
.footer-nav .footer-link:last-child:after{ display:none; }
[data-theme="dark"] footer{ background:#0B1222; border-top-color:#495AA8; }
[data-theme="dark"] .footer-nav .footer-link{ color: var(--color-text); }
.site-main{ flex:1 0 auto; }

/* Links */
a { color: var(--color-primary); }
a:hover { color:#3c9cd7; }

/* Subtle page background graphic on non-home pages */
body.is-sub{ position: relative; }
body.is-sub::after{
  content: "";
  position: fixed; bottom: 0; left: 0;
  width: clamp(140px, 20vw, 260px); height: clamp(140px, 20vw, 260px);
  background-image: image-set(url('/static/images/tur-left.png.webp') type('image/webp'), url('/static/images/tur-left.svg') type('image/svg+xml'));
  background-repeat: no-repeat; background-size: contain; background-position: left bottom;
  opacity: .22; pointer-events: none; z-index: 5;
}

/* Icons */
.icon{ width: 1.05rem; height: 1.05rem; fill: currentColor; vertical-align: -.2rem; margin-right: .35rem; }

/* Hero gradient section */
.gradient { background-image: radial-gradient(1200px 400px at -5% -10%, var(--color-primary-200) 0%, transparent 60%), linear-gradient(135deg, var(--color-primary), var(--color-secondary)); }
.hero { box-shadow: 0 20px 60px rgba(0,0,0,.12); }
.text-white-50 { color: rgba(255,255,255,.75) !important; }
/* Hero visuals */
.hero { overflow: visible; padding: .6rem 1rem; }
@media (min-width: 992px){ .hero{ padding: .8rem 1.5rem; } }
.hero-herb{ height: clamp(40px, 5vw, 72px); width:auto; opacity:.95; filter: drop-shadow(0 4px 12px rgba(0,0,0,.12)); }
.hero-visual{ position: relative; }
.hero-mascot{ width:200px; max-width:200px; height:auto; margin-top:-10px; transform: rotate(-2deg); filter: drop-shadow(0 20px 40px rgba(0,0,0,.25)); }
@media (min-width: 992px){ .hero-mascot{ margin-bottom:-56px; } }
/* Tighten hero text spacing */
.hero .display-6{ margin-bottom: .15rem !important; }
.hero .lead{ margin-bottom: .4rem; }
@media (max-width: 991.98px){ .hero-mascot{ width:160px; max-width:160px; transform:none; margin-top:0; margin-bottom:0; } }

/* Forms */
.form-control, .form-select { border-radius: 12px; border-color: var(--border); background: var(--surface); color: var(--color-text); }
.form-control:focus, .form-select:focus { border-color: var(--color-primary); box-shadow: 0 0 0 .2rem rgba(77,173,230,.15); }

/* Breadcrumbs */
.breadcrumb { --bs-breadcrumb-divider-color: var(--color-muted); }
.breadcrumb .breadcrumb-item a{ color: var(--color-primary-700); font-weight:600; }
.breadcrumb .breadcrumb-item.active{ color: var(--color-muted); }

/* Chips/Badges */
.badge-soft-primary { background: var(--color-primary-100); color: var(--color-primary-700); border-radius: 999px; padding:.35rem .6rem; font-weight:600; }
.badge-soft-secondary { background: var(--color-secondary-100); color:#3b2c0b; border-radius: 999px; padding:.35rem .6rem; font-weight:600; }
.badge-soft-primary, .badge-soft-secondary { text-decoration:none; }
[data-theme="dark"] .badge-soft-primary { background: var(--color-primary-100); color:#b1dcf5; }
[data-theme="dark"] .badge-soft-secondary { background:#161b33; color:#dbe3ff; }

/* Weather widget */
.weather-widget { min-height: 80px; }
.weather-widget .weather-emoji{ font-size: 2rem; line-height:1; }
.weather-days > div{ min-width: 64px; background: var(--surface); border:1px solid var(--border); border-radius: 10px; padding:.25rem .4rem; }
[data-theme="dark"] .weather-days > div{ background: var(--surface); border-color: var(--border); }
[data-theme="dark"] .weather-widget{ color: var(--color-text); }
[data-theme="dark"] .weather-widget .text-muted{ color: var(--color-muted) !important; }

/* Stats list */
.stat-list{ list-style:none; padding-left:0; }
.stat-list li{ display:flex; align-items:flex-start; gap:.6rem; margin:.45rem 0; }
.stat-icon{ width:28px; height:28px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background: var(--color-secondary-100); color: var(--color-secondary-700); font-size:14px; flex:0 0 auto; }
[data-theme="dark"] .stat-icon{ background:#161b33; color:#dbe3ff; }

/* Dark mode */
[data-theme="dark"]{
  --color-text:#E5E7EB;
  --color-muted:#9CA3AF;
  --color-bg:#0F172A;
  --color-primary-100:#1B2A3A;
  --color-secondary-100:#2C2616;
  --surface:#0B1222;
  --border:#1F2A44;
}
[data-theme="dark"] body{ background-color: var(--color-bg); }
[data-theme="dark"] body{ background-image: radial-gradient(rgba(77,173,230,.08) 1px, transparent 1px), radial-gradient(rgba(224,192,104,.08) 1px, transparent 1px); }
[data-theme="dark"] .navbar{ background: var(--surface) !important; box-shadow: 0 10px 30px rgba(0,0,0,.4); }
[data-theme="dark"] .navbar .nav-link{ color: var(--color-text); }
[data-theme="dark"] .navbar .nav-link:hover{ color: var(--color-primary); }
[data-theme="dark"] .text-muted{ color: var(--color-muted) !important; }
[data-theme="dark"] .dropdown-menu{ background: var(--surface); color:var(--color-text); border-color: var(--border); }
[data-theme="dark"] .card{ background: var(--surface); border-color: var(--border); box-shadow: 0 12px 36px rgba(0,0,0,.5); }
[data-theme="dark"] .list-group-item{ background: var(--surface); border-color: var(--border); }
[data-theme="dark"] .alert.themed-box{ background:#161b33; color:#dbe3ff; border-color:#495AA8; }
[data-theme="dark"] .dropdown-item:hover, [data-theme="dark"] .dropdown-item:focus{ background:#161b33; color:#dbe3ff; }
[data-theme="dark"] footer{ background:#0B1222; border-top-color:#B9913A; }
[data-theme="dark"] a{ color: #8cc7ee; }
[data-theme="dark"] a:hover{ color:#b1dcf5; }
[data-theme="dark"] .alert.themed-box{ background:#161b33; color:#dbe3ff; border-color:#495AA8; }

/* News detail layout */
.news-detail{ display:grid; grid-template-columns: 1fr; gap: 1rem 1.25rem; align-items:start; }
.news-detail .news-header{ grid-column: 1 / -1; }
@media (min-width: 992px){
  .news-detail.has-image{ grid-template-columns: minmax(300px, 42%) 1fr; }
}

/* News image: show full image (contain) without cropping */
.news-media{ background:#f3f4f6; border-radius: var(--radius); padding:.5rem; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.news-media img{ max-width:100%; max-height:70vh; width:auto; height:auto; object-fit:contain; display:block; }
.thumb{ width:64px; height:64px; border-radius:10px; object-fit:cover; background:#f3f4f6; display:flex; align-items:center; justify-content:center; font-size:1.25rem; }
.thumb.thumb-placeholder{ color: var(--color-muted); border:1px solid var(--border); }
.min-w-0{ min-width:0; }

/* Info box (highlighted box for key info) */
.info-box{ border:1px solid var(--color-secondary-200); background: var(--color-secondary-100); color: var(--color-text); border-left:6px solid var(--color-secondary-700); border-radius: var(--radius); }
.info-box a{ color: var(--color-secondary-700); }
.info-box a:hover{ color: var(--color-secondary); }
[data-theme="dark"] .info-box{ background:#0B1222; border-color:#1F2A44; border-left-color:#495AA8; }
[data-theme="dark"] .info-box a{ color:#b9c6ff; }
[data-theme="dark"] .info-box a:hover{ color:#dbe3ff; }

/* Navbar dark buttons */
[data-theme="dark"] .navbar .btn-primary{ background: linear-gradient(135deg, var(--color-primary-600), var(--color-primary-700)); border-color: var(--color-primary-700); color:#fff; box-shadow: 0 0 0 2px rgba(47,135,191,.25); }
[data-theme="dark"] .navbar .btn-primary:hover{ box-shadow: 0 0 0 2px rgba(47,135,191,.35); }
[data-theme="dark"] .navbar .btn-outline-primary{ color:#b1dcf5; border-color:#8cc7ee; }
[data-theme="dark"] .navbar .btn-outline-primary:hover{ background:#1B2A3A; color:#fff; }

/* Form card tweaks */
.form-card .form-label{ font-weight:600; }
.form-card input[type="file"].form-control{ padding:.45rem .75rem; }
.form-card .form-text{ color: var(--color-muted); }

/* Drag & drop */
.dropzone{ border:2px dashed var(--border); border-radius: var(--radius); padding:1rem; background: var(--surface); cursor:pointer; }
.dropzone.dragover{ background: var(--color-secondary-100); border-color: var(--color-secondary-600); }
[data-theme="dark"] .dropzone.dragover{ background:#161b33; border-color:#495AA8; }
