:root{
  --bg:#eef3f8;
  --panel:#ffffff;
  --panel-2:#f7f9fc;
  --text:#0f172a;
  --muted:#64748b;
  --line:#d9e2ef;
  --primary:#3b82f6;
  --primary-2:#6366f1;
  --accent:#8b5cf6;
  --success:#10b981;
  --danger:#ef4444;
  --shadow:0 14px 40px rgba(15,23,42,.12);
  --overlay:rgba(15,23,42,.28);
  --left-open:360px;
  --left-closed:76px;
  --right-w:420px;
  --chip-bg:#eef4ff;
  --chip-text:#3056d3;
}
html[data-theme="dark"]{
  --bg:#07111f;
  --panel:#0f172a;
  --panel-2:#111c31;
  --text:#e5eefb;
  --muted:#9fb0c8;
  --line:#22304a;
  --primary:#60a5fa;
  --primary-2:#818cf8;
  --accent:#a78bfa;
  --success:#34d399;
  --danger:#f87171;
  --shadow:0 18px 50px rgba(0,0,0,.42);
  --overlay:rgba(2,6,23,.55);
  --chip-bg:#10243f;
  --chip-text:#9ec5ff;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--text)}
button,select,input{font:inherit}
.app{height:100dvh; overflow:hidden; position:relative; background:var(--bg)}
#map{position:absolute; inset:0; z-index:1}
.topbar{
  position:absolute; top:16px; left:92px; right:16px; z-index:900;
  display:flex; justify-content:space-between; align-items:center; gap:12px; pointer-events:none;
  transition:left .25s ease;
}
body.left-open .topbar{left:376px}
.topbar > *{pointer-events:auto}
.brand{
  display:flex; align-items:center; gap:12px;
  background:color-mix(in srgb, var(--panel) 88%, transparent);
  border:1px solid color-mix(in srgb, var(--line) 85%, transparent);
  box-shadow:var(--shadow); backdrop-filter:blur(12px);
  border-radius:22px; padding:12px 16px;
}
.logo{
  width:40px;height:40px;border-radius:14px;display:grid;place-items:center;color:#fff;font-weight:800;
  background:linear-gradient(135deg,var(--primary),var(--accent));
}
.brand-title{font-size:15px;font-weight:800;line-height:1.2}
.brand-sub{font-size:12px;color:var(--muted)}
.fab{
  width:48px;height:48px;border-radius:16px;border:1px solid color-mix(in srgb, var(--line) 85%, transparent);
  background:color-mix(in srgb, var(--panel) 88%, transparent); color:var(--text);
  box-shadow:var(--shadow); backdrop-filter:blur(12px); cursor:pointer;
  display:grid; place-items:center;
}
.fab:hover{transform:translateY(-1px)}
.bars{width:20px;height:14px;position:relative}
.bars::before,.bars::after,.bars span{
  content:"";position:absolute;left:0;right:0;height:2.5px;border-radius:3px;background:currentColor;
}
.bars::before{top:0}.bars span{top:5.75px}.bars::after{bottom:0}

.left-panel,.right-panel{
  position:absolute; top:0; bottom:0; z-index:1200;
  background:color-mix(in srgb, var(--panel) 96%, transparent);
  backdrop-filter:blur(16px); box-shadow:var(--shadow); display:flex; flex-direction:column;
}
.left-panel{
  left:0; width:var(--left-open); border-right:1px solid color-mix(in srgb, var(--line) 88%, transparent);
  transition:width .25s ease;
}
.left-panel.collapsed{width:var(--left-closed)}
.right-panel{
  right:0; width:var(--right-w); border-left:1px solid color-mix(in srgb, var(--line) 88%, transparent);
  transform:translateX(100%); transition:transform .28s ease;
}
.right-panel.open{transform:translateX(0)}
.overlay{
  position:absolute; inset:0; z-index:1150; background:var(--overlay); display:none;
}
.overlay.show{display:block}

.panel-header{
  padding:18px 14px 14px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:10px;
  min-height:78px;
}
.panel-title-wrap{display:flex; align-items:center; gap:12px; min-width:0}
.panel-mark{
  width:46px;height:46px;border-radius:16px;display:grid;place-items:center;color:#fff;font-weight:800; flex:0 0 auto;
  background:linear-gradient(135deg,var(--primary),var(--accent));
}
.panel-title{font-size:18px;font-weight:800;white-space:nowrap}
.panel-sub{font-size:12px;color:var(--muted);white-space:nowrap}
.left-panel.collapsed .panel-title-wrap .panel-title,
.left-panel.collapsed .panel-title-wrap .panel-sub{display:none}
.left-panel.collapsed .panel-header{justify-content:center; padding-left:10px; padding-right:10px}
.left-panel.collapsed .panel-mark{display:none}

.panel-toggle{
  width:44px;height:44px;border-radius:16px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);cursor:pointer;
  display:grid; place-items:center; flex:0 0 auto;
}
.panel-toggle .arrow{font-size:22px; line-height:1; transition:transform .2s ease}
.left-panel.collapsed .panel-toggle .arrow{transform:rotate(180deg)}
.left-panel.collapsed .panel-toggle{width:52px; height:52px}

.panel-body{padding:14px; overflow:auto; display:flex; flex-direction:column; gap:12px}
.left-panel.collapsed .panel-body{padding:12px 10px; overflow:hidden}

.accordion{display:flex; flex-direction:column; gap:12px}
.acc-item{
  border:1px solid var(--line); border-radius:20px; background:var(--panel); overflow:hidden; box-shadow:var(--shadow);
}
.left-panel.collapsed .acc-item{
  border-radius:18px; box-shadow:none; background:transparent; border-color:transparent; overflow:visible;
}
.acc-trigger{
  width:100%; border:none; background:transparent; color:var(--text); cursor:pointer;
  display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px 14px;
}
.left-panel.collapsed .acc-trigger{
  padding:0; width:56px; height:56px; justify-content:center; margin:0 auto;
  background:var(--panel-2); border:1px solid var(--line); border-radius:18px;
}
.left-panel.collapsed .acc-trigger:hover{background:linear-gradient(135deg,var(--primary),var(--accent)); color:#fff}
.acc-left{display:flex; align-items:center; gap:12px; min-width:0}
.acc-icon{
  width:44px;height:44px;border-radius:14px;display:grid;place-items:center;color:#fff;font-size:18px;
  background:linear-gradient(135deg,var(--primary),var(--accent)); flex:0 0 auto;
}
.left-panel.collapsed .acc-icon{background:transparent; color:inherit; width:auto; height:auto; font-size:22px}
.acc-titles{min-width:0; text-align:left}
.acc-name{font-size:15px;font-weight:800}
.acc-desc{font-size:12px;color:var(--muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acc-caret{
  width:34px;height:34px;border-radius:12px;border:1px solid var(--line);background:var(--panel-2);
  display:grid;place-items:center;font-size:16px;flex:0 0 auto; transition:transform .2s ease;
}
.acc-caret::before{content:"▾"}
.acc-item.open .acc-caret{transform:rotate(180deg)}
.acc-content{display:none; padding:0 16px 16px}
.acc-item.open .acc-content{display:block}
.left-panel.collapsed .acc-titles,
.left-panel.collapsed .acc-caret,
.left-panel.collapsed .acc-content{display:none!important}

.card{
  background:var(--panel-2); border:1px solid var(--line); border-radius:18px; padding:12px;
}
.row{display:grid; grid-template-columns:1fr 1fr; gap:10px}
.stat-label{font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted)}
.stat-value{font-size:22px; font-weight:800; margin-top:4px}
.stat-note{font-size:12px; color:var(--muted); margin-top:4px}
.alert{
  display:flex; align-items:flex-start; gap:10px;
  background:var(--panel-2); border:1px solid var(--line); border-radius:18px; padding:12px;
}
.dot{width:10px;height:10px;border-radius:50%;background:var(--success);margin-top:6px;flex:0 0 auto}
.control-label{display:block;font-size:12px;font-weight:800;color:var(--muted);margin-bottom:6px}
.select{
  width:100%; padding:12px 13px; border:1px solid var(--line); border-radius:14px;
  background:var(--panel-2); color:var(--text);
}
.theme-grid,.base-grid,.mini-actions{display:grid; grid-template-columns:1fr 1fr; gap:8px}
.btn, .option-btn{
  border:1px solid var(--line); border-radius:14px; background:var(--panel-2); color:var(--text);
  cursor:pointer; padding:12px; font-weight:700;
}
.option-btn.active, .btn.primary{background:linear-gradient(135deg,var(--primary),var(--accent)); color:white; border-color:transparent}
.range-row{display:grid; grid-template-columns:44px 1fr 62px 44px; gap:8px; align-items:center}
.range-pill{text-align:center; padding:10px 8px; border-radius:14px; background:var(--chip-bg); color:var(--chip-text); font-weight:800; border:1px solid var(--line)}
.icon-btn{width:44px;height:44px;border-radius:14px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);cursor:pointer}
.chips{display:flex; flex-wrap:wrap; gap:8px; max-height:240px; overflow:auto; padding-right:4px}
.chip{
  border:none; border-radius:999px; padding:10px 12px; background:var(--chip-bg); color:var(--chip-text);
  font-size:12px; font-weight:700; cursor:pointer;
}
.chip.active{background:linear-gradient(135deg,var(--primary),var(--accent)); color:#fff}
.small{font-size:12px;color:var(--muted)}

.legend{
  position:absolute; left:92px; bottom:16px; z-index:1000; width:min(320px, calc(100vw - 108px));
  background:color-mix(in srgb, var(--panel) 92%, transparent); border:1px solid color-mix(in srgb, var(--line) 88%, transparent);
  box-shadow:var(--shadow); backdrop-filter:blur(12px); border-radius:18px; padding:12px 14px;
  transition:left .25s ease;
}
body.left-open .legend{left:376px}
.legend-title{font-size:13px;font-weight:800}
.legend-sub{font-size:12px;color:var(--muted)}
.legend-scale{display:flex;height:12px;border-radius:999px;overflow:hidden;margin:8px 0}
.legend-scale div{flex:1}
.legend-bins{font-size:11px;color:var(--muted);display:grid;gap:4px}

.right-empty{padding:18px; border:1px dashed var(--line); border-radius:18px; background:var(--panel-2); color:var(--muted)}
.country-header{display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px}
.country-name{font-size:22px;font-weight:900;line-height:1.2}
.country-sub{font-size:12px;color:var(--muted);margin-top:5px}
.close-btn{width:40px;height:40px;border-radius:14px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);cursor:pointer}
.details-stack{display:flex; flex-direction:column; gap:12px}
details.chart-box{border:1px solid var(--line); border-radius:18px; background:var(--panel); overflow:hidden}
details.chart-box summary{
  list-style:none; cursor:pointer; padding:14px 16px; display:flex; align-items:center; justify-content:space-between; gap:10px;
}
details.chart-box summary::-webkit-details-marker{display:none}
.sum-title{font-weight:800}.sum-meta{font-size:12px;color:var(--muted);margin-top:4px}
.chart-content{padding:0 16px 16px}.chart-stats{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px}.chart-wrap{height:220px}
.loader{display:flex; align-items:center; gap:10px}
.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--primary);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* v44 — dymek państwa dopasowany do jasnego i ciemnego motywu */
.leaflet-tooltip.country-tooltip{
  background:color-mix(in srgb, var(--panel) 94%, transparent);
  color:var(--text);
  border:1px solid color-mix(in srgb, var(--primary) 34%, var(--line));
  box-shadow:0 14px 34px color-mix(in srgb, #0f172a 18%, transparent);
  border-radius:15px;
  padding:10px 12px;
  line-height:1.35;
  font-size:12px;
  font-weight:700;
  backdrop-filter:blur(12px);
}
.leaflet-tooltip.country-tooltip b{
  display:block;
  color:var(--text);
  font-size:13px;
  font-weight:900;
  margin-bottom:3px;
}
.leaflet-tooltip.country-tooltip::before{filter:drop-shadow(0 3px 4px rgba(15,23,42,.14))}
.leaflet-tooltip-top.country-tooltip::before{border-top-color:color-mix(in srgb, var(--panel) 94%, transparent)}
.leaflet-tooltip-bottom.country-tooltip::before{border-bottom-color:color-mix(in srgb, var(--panel) 94%, transparent)}
.leaflet-tooltip-left.country-tooltip::before{border-left-color:color-mix(in srgb, var(--panel) 94%, transparent)}
.leaflet-tooltip-right.country-tooltip::before{border-right-color:color-mix(in srgb, var(--panel) 94%, transparent)}
html[data-theme="light"] .leaflet-tooltip.country-tooltip{
  background:linear-gradient(135deg, rgba(255,255,255,.96), rgba(239,246,255,.96));
  color:#0f172a;
  border-color:#bfdbfe;
}
html[data-theme="light"] .leaflet-tooltip-top.country-tooltip::before{border-top-color:#f8fbff}
html[data-theme="light"] .leaflet-tooltip-bottom.country-tooltip::before{border-bottom-color:#f8fbff}
html[data-theme="light"] .leaflet-tooltip-left.country-tooltip::before{border-left-color:#f8fbff}
html[data-theme="light"] .leaflet-tooltip-right.country-tooltip::before{border-right-color:#f8fbff}
html[data-theme="dark"] .leaflet-tooltip.country-tooltip{
  background:linear-gradient(135deg, rgba(15,23,42,.96), rgba(30,41,69,.96));
  color:#e5eefb;
  border-color:rgba(96,165,250,.42);
  box-shadow:0 18px 42px rgba(0,0,0,.44);
}
html[data-theme="dark"] .leaflet-tooltip.country-tooltip b{color:#f8fbff}
html[data-theme="dark"] .leaflet-tooltip-top.country-tooltip::before{border-top-color:#101a2e}
html[data-theme="dark"] .leaflet-tooltip-bottom.country-tooltip::before{border-bottom-color:#101a2e}
html[data-theme="dark"] .leaflet-tooltip-left.country-tooltip::before{border-left-color:#101a2e}
html[data-theme="dark"] .leaflet-tooltip-right.country-tooltip::before{border-right-color:#101a2e}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--panel); color:var(--text)}






.data-block{
  display:grid;
  gap:10px;
}
.data-block h4{
  margin:0 0 4px;
  font-size:13px;
  color:var(--text);
}
.data-block p{
  margin:0;
  font-size:12px;
  line-height:1.5;
  color:var(--muted);
}
.data-list{
  margin:0;
  padding-left:18px;
  color:var(--muted);
  font-size:12px;
  line-height:1.5;
}
.source-tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  background:linear-gradient(135deg,var(--primary),var(--accent));
  color:#fff;
  font-size:11px;
  font-weight:900;
  margin:3px 4px 3px 0;
}


/* v8 — komunikat startowy oraz polityka prywatności */
.start-notice{
  position:absolute;
  inset:0;
  z-index:3000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:22px;
  background:rgba(15,23,42,.36);
  backdrop-filter:blur(8px);
}
.start-notice.show{display:flex}
.start-notice-card{
  width:min(720px, 100%);
  max-height:min(86vh, 760px);
  overflow:auto;
  border-radius:28px;
  background:var(--panel);
  color:var(--text);
  border:1px solid var(--line);
  box-shadow:0 28px 80px rgba(2,6,23,.35);
  padding:22px;
}
.start-notice-top{
  display:flex;
  gap:14px;
  align-items:flex-start;
  margin-bottom:14px;
}
.start-notice-icon{
  width:54px;
  height:54px;
  border-radius:18px;
  display:grid;
  place-items:center;
  font-size:24px;
  color:#fff;
  background:linear-gradient(135deg,var(--primary),var(--accent));
  flex:0 0 auto;
}
.start-notice-title{
  font-size:22px;
  line-height:1.2;
  font-weight:900;
}
.start-notice-sub{
  color:var(--muted);
  font-size:13px;
  margin-top:5px;
}
.start-notice-body{
  display:grid;
  gap:10px;
}
.start-notice-body p{
  margin:0;
  color:var(--muted);
  line-height:1.55;
  font-size:14px;
}
.start-notice-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:18px;
  flex-wrap:wrap;
}
code{
  background:color-mix(in srgb, var(--primary) 10%, var(--panel-2));
  border:1px solid color-mix(in srgb, var(--primary) 20%, var(--line));
  border-radius:8px;
  padding:2px 5px;
  color:var(--text);
}
@media (max-width:640px){
  .start-notice{padding:12px;align-items:flex-end}
  .start-notice-card{border-radius:22px;max-height:88vh}
  .start-notice-actions{display:grid;grid-template-columns:1fr}
}


/* v18 — pojedyncze przestępstwo w panelu państwa */
#rightCrimeSelect{font-weight:800;}
.acc-content .card p{
  margin:0;
  font-size:12px;
  line-height:1.55;
  color:var(--muted);
}
.acc-content .card h4{
  margin:0 0 6px;
  font-size:13px;
  line-height:1.25;
  color:var(--text);
  font-weight:900;
}

/* v6 — lepsza legenda i kolejność modułów */
.legend{
  padding:14px 16px;
  border-radius:22px;
  overflow:hidden;
}
.legend::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 15% 0%, rgba(59,130,246,.16), transparent 36%),
    radial-gradient(circle at 92% 15%, rgba(139,92,246,.12), transparent 34%);
}
.legend > *{position:relative}
.legend-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  margin-bottom:8px;
}
.legend-kicker{
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--muted);
  font-weight:900;
}
.legend-title{
  font-size:16px;
  font-weight:900;
  margin-top:2px;
}
.legend-badge{
  font-size:11px;
  font-weight:900;
  color:#fff;
  padding:7px 10px;
  border-radius:999px;
  background:linear-gradient(135deg,var(--primary),var(--accent));
  white-space:nowrap;
}
.legend-sub{
  font-size:12px;
  line-height:1.35;
  color:var(--muted);
  margin-bottom:10px;
}
.legend-gradient{
  height:16px;
  border-radius:999px;
  background:linear-gradient(90deg,#f7fbff,#deebf7,#c6dbef,#9ecae1,#6baed6,#3182bd,#08519c);
  border:1px solid color-mix(in srgb, var(--line) 80%, transparent);
  box-shadow:inset 0 1px 2px rgba(15,23,42,.15);
}
.legend-axis{
  display:flex;
  justify-content:space-between;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  margin:6px 2px 10px;
}
.legend-bins{
  display:grid;
  grid-template-columns:1fr;
  gap:5px;
  font-size:11px;
  color:var(--muted);
}
.legend-bins div{
  display:flex;
  align-items:center;
  gap:7px;
}
.legend-bins div::before{
  content:"";
  width:10px;
  height:10px;
  border-radius:3px;
  background:var(--swatch,#cbd5e1);
  border:1px solid rgba(15,23,42,.12);
  flex:0 0 auto;
}

/* v5 — widoczny bieżący rok/przestępstwo na mapie i przesuwanie górnego panelu */
.map-view-card{
  position:absolute;
  top:88px;
  left:92px;
  z-index:950;
  min-width:280px;
  max-width:420px;
  background:color-mix(in srgb, var(--panel) 92%, transparent);
  border:1px solid color-mix(in srgb, var(--line) 88%, transparent);
  box-shadow:var(--shadow);
  backdrop-filter:blur(12px);
  border-radius:18px;
  padding:12px 14px;
  transition:left .25s ease, right .25s ease, transform .25s ease;
}
body.left-open .map-view-card{left:376px}
body.right-open .topbar{right:436px}
body.right-open .map-view-card{right:436px}
.map-view-label{
  font-size:11px;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.06em;
  font-weight:900;
}
.map-view-main{
  font-size:18px;
  line-height:1.2;
  font-weight:900;
  margin-top:4px;
  color:var(--text);
}
.map-view-sub{
  font-size:12px;
  color:var(--muted);
  margin-top:4px;
}
@media (max-width:1024px){
  body.right-open .topbar{right:16px}
  body.right-open .map-view-card{right:auto}
  .map-view-card{left:16px; top:86px; max-width:calc(100vw - 32px)}
  body.left-open .map-view-card{left:16px}
}
@media (max-width:640px){
  .map-view-card{top:76px; left:12px; right:12px; min-width:0; max-width:none}
}

/* v33 - suwaki desktop dopasowane do motywu UI: granat/niebieski/fiolet, bez skali legendy mapy */
input[type="range"]{
  -webkit-appearance:none;
  appearance:none;
  width:100%;
  height:28px;
  border-radius:999px;
  background:transparent;
  outline:none;
  cursor:pointer;
  accent-color:var(--primary);
  --range-fill:100%;
  --range-track:color-mix(in srgb, var(--primary) 10%, var(--panel-2));
  --range-border:color-mix(in srgb, var(--primary) 24%, var(--line));
}
input[type="range"]::-webkit-slider-runnable-track{
  height:12px;
  border-radius:999px;
  background:
    linear-gradient(90deg,
      var(--primary) 0%,
      var(--accent) var(--range-fill),
      var(--range-track) var(--range-fill),
      var(--range-track) 100%);
  border:1px solid var(--range-border);
  box-shadow:inset 0 1px 2px rgba(15,23,42,.14);
}
input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none;
  appearance:none;
  width:24px;
  height:24px;
  margin-top:-7px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--primary),var(--accent));
  border:4px solid var(--panel);
  box-shadow:0 5px 14px rgba(15,23,42,.30), 0 0 0 1px color-mix(in srgb, var(--accent) 45%, transparent);
}
input[type="range"]::-webkit-slider-thumb:hover{transform:scale(1.04)}
input[type="range"]::-moz-range-track{
  height:12px;
  border-radius:999px;
  background:var(--range-track);
  border:1px solid var(--range-border);
  box-shadow:inset 0 1px 2px rgba(15,23,42,.14);
}
input[type="range"]::-moz-range-progress{
  height:12px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--primary),var(--accent));
}
input[type="range"]::-moz-range-thumb{
  width:24px;
  height:24px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--primary),var(--accent));
  border:4px solid var(--panel);
  box-shadow:0 5px 14px rgba(15,23,42,.30), 0 0 0 1px color-mix(in srgb, var(--accent) 45%, transparent);
}
input[type="range"]:focus-visible::-webkit-slider-thumb{
  box-shadow:0 5px 14px rgba(15,23,42,.30), 0 0 0 4px color-mix(in srgb, var(--primary) 24%, transparent);
}
input[type="range"]:focus-visible::-moz-range-thumb{
  box-shadow:0 5px 14px rgba(15,23,42,.30), 0 0 0 4px color-mix(in srgb, var(--primary) 24%, transparent);
}
.select{
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--primary) 8%, var(--panel-2)), color-mix(in srgb, var(--accent) 7%, var(--panel-2)));
  border-color:color-mix(in srgb, var(--primary) 22%, var(--line));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.icon-btn,.btn,.option-btn,.panel-toggle,.close-btn{
  border-color:color-mix(in srgb, var(--primary) 20%, var(--line));
}
.range-pill{
  background:linear-gradient(135deg,var(--primary),var(--accent));
  color:#fff;
  border-color:transparent;
}
.chips{
  display:flex;
  flex-direction:column;
  flex-wrap:nowrap;
  gap:8px;
  max-height:340px;
  overflow:auto;
  padding-right:6px;
}
.chip{
  width:100%;
  text-align:left;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  line-height:1.25;
}
.chip::after{
  content:"›";
  opacity:.55;
  font-weight:900;
}
.chip.active::after{
  opacity:.95;
}
.right-year-control{
  margin:12px 0;
  display:grid;
  grid-template-columns:1fr 120px;
  gap:10px;
  align-items:end;
}
@media (max-width:640px){
  .right-year-control{grid-template-columns:1fr}
}

@media (max-width: 1024px){
  :root{--left-open:min(88vw,360px); --right-w:min(94vw,420px)}
  .left-panel{width:var(--left-open); transform:translateX(-100%); transition:transform .25s ease}
  .left-panel.open{transform:translateX(0)}
  .left-panel.collapsed{width:var(--left-open); transform:translateX(-100%)}
  .left-panel.collapsed .panel-title-wrap .panel-title,
  .left-panel.collapsed .panel-title-wrap .panel-sub{display:block}
  .left-panel.collapsed .panel-mark{display:grid}
  .left-panel.collapsed .panel-body{padding:14px; overflow:auto}
  .left-panel.collapsed .acc-trigger{padding:14px; width:100%; height:auto; justify-content:space-between; margin:0; background:transparent; border:none; border-radius:0}
  .left-panel.collapsed .acc-icon{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;font-size:18px}
  .left-panel.collapsed .acc-titles,.left-panel.collapsed .acc-caret{display:block!important}
  .left-panel.collapsed .acc-content{display:none!important}
  .topbar{left:16px}
  body.left-open .topbar{left:16px}
  .legend{left:16px; width:min(320px, calc(100vw - 32px))}
  body.left-open .legend{left:16px}
}
@media (max-width: 640px){
  .brand{padding:10px 12px}
  .brand-title{font-size:13px}.brand-sub{display:none}
  .row,.theme-grid,.base-grid,.mini-actions,.chart-stats{grid-template-columns:1fr}
  .range-row{grid-template-columns:44px 1fr 62px}.range-row .icon-btn:last-child{display:none}
  .legend{left:12px; right:12px; bottom:12px; width:auto}
  .right-panel{width:100vw}
}

/* v19 — poprawki mobile i legenda mobilna */
.mobile-controls{
  display:none;
}
@media (max-width:1024px){
  .topbar{
    display:none;
  }
  .mobile-controls{
    position:absolute;
    left:12px;
    top:12px;
    z-index:1300;
    display:flex;
    flex-direction:column;
    gap:10px;
  }
  .mobile-fab{
    width:48px;
    height:48px;
    border-radius:16px;
    border:1px solid color-mix(in srgb, var(--line) 85%, transparent);
    background:color-mix(in srgb, var(--panel) 90%, transparent);
    color:var(--text);
    box-shadow:var(--shadow);
    backdrop-filter:blur(12px);
    cursor:pointer;
    display:grid;
    place-items:center;
    font-size:19px;
    font-weight:900;
  }
  .map-view-card{
    display:none!important;
  }
  .legend{
    left:72px!important;
    right:auto!important;
    top:12px!important;
    bottom:auto!important;
    width:min(320px, calc(100vw - 92px))!important;
    max-height:calc(100vh - 24px);
    overflow:auto;
    transform:translateY(-140%);
    opacity:0;
    pointer-events:none;
    transition:transform .22s ease, opacity .22s ease;
  }
  .legend.mobile-open{
    transform:translateY(0);
    opacity:1;
    pointer-events:auto;
  }
  .left-panel{
    z-index:1400;
  }
  .right-panel{
    z-index:1400;
  }
  .overlay{
    z-index:1350;
  }
}
@media (max-width:640px){
  .legend{
    left:72px!important;
    right:12px!important;
    width:auto!important;
  }
}


/* v20 — zwijana atrybucja na mobile */
@media (max-width:1024px){
  .leaflet-control-attribution{
    max-width:calc(100vw - 24px);
    border-radius:14px!important;
    box-shadow:var(--shadow);
    background:color-mix(in srgb, var(--panel) 92%, transparent)!important;
    color:var(--text)!important;
    border:1px solid color-mix(in srgb, var(--line) 85%, transparent);
    backdrop-filter:blur(12px);
    padding:8px 10px!important;
    line-height:1.35;
  }
  .leaflet-control-attribution.mobile-compact{
    cursor:pointer;
    font-size:0!important;
    min-width:86px;
    max-width:86px;
    overflow:hidden;
    white-space:nowrap;
    text-align:center;
  }
  .leaflet-control-attribution.mobile-compact::before{
    content:"ⓘ Źródła";
    font-size:12px;
    font-weight:900;
    color:var(--text);
  }
  .leaflet-control-attribution.mobile-expanded{
    cursor:pointer;
    font-size:11px!important;
    max-width:calc(100vw - 24px);
    white-space:normal;
  }
  .leaflet-control-attribution.mobile-expanded::before{
    content:"Źródła i atrybucja";
    display:block;
    font-size:11px;
    font-weight:900;
    color:var(--text);
    margin-bottom:4px;
  }
  .leaflet-control-attribution a{
    color:var(--primary)!important;
  }
}


/* v21 — zoom, start Europy i mobilny nagłówek */
.desktop-map-actions{
  display:flex;
  gap:10px;
  align-items:center;
}
#zoomInBtn,#zoomOutBtn{
  font-size:24px;
  font-weight:900;
}
.mobile-titlebar,
.mobile-menu-control{
  display:none;
}
@media (max-width:1024px){
  .mobile-titlebar{
    position:absolute;
    left:12px;
    right:12px;
    top:12px;
    z-index:1280;
    display:block;
    padding:11px 14px;
    border-radius:18px;
    background:color-mix(in srgb, var(--panel) 92%, transparent);
    border:1px solid color-mix(in srgb, var(--line) 85%, transparent);
    box-shadow:var(--shadow);
    backdrop-filter:blur(12px);
  }
  .mobile-title-main{
    font-size:15px;
    line-height:1.15;
    font-weight:900;
    color:var(--text);
  }
  .mobile-title-sub{
    font-size:11px;
    color:var(--muted);
    margin-top:3px;
    font-weight:700;
  }
  .mobile-menu-control{
    position:absolute;
    left:12px;
    top:82px;
    z-index:1300;
    display:block;
  }
  .mobile-controls{
    right:12px;
    left:auto;
    top:82px;
    z-index:1300;
    display:flex;
    flex-direction:column;
    gap:10px;
  }
  .mobile-fab{
    font-size:21px;
  }
  .legend{
    left:auto!important;
    right:72px!important;
    top:82px!important;
    width:min(320px, calc(100vw - 144px))!important;
  }
  .right-panel .row .card{
    background:
      linear-gradient(135deg, color-mix(in srgb, var(--primary) 10%, var(--panel-2)), color-mix(in srgb, var(--accent) 7%, var(--panel-2)));
    border-color:color-mix(in srgb, var(--primary) 24%, var(--line));
  }
  .right-panel .stat-value{
    color:var(--primary);
  }
  .right-panel .right-year-control .select,
  .right-panel #rightCrimeSelect{
    font-weight:900;
    border-color:color-mix(in srgb, var(--primary) 35%, var(--line));
    background:
      linear-gradient(135deg, color-mix(in srgb, var(--primary) 12%, var(--panel-2)), color-mix(in srgb, var(--accent) 10%, var(--panel-2)));
  }
}
@media (max-width:640px){
  .mobile-titlebar{
    left:10px;
    right:10px;
    top:10px;
    padding:10px 12px;
  }
  .mobile-menu-control{
    left:10px;
    top:78px;
  }
  .mobile-controls{
    right:10px;
    top:78px;
  }
  .legend{
    right:68px!important;
    left:68px!important;
    top:78px!important;
    width:auto!important;
  }
  .right-panel .row{
    grid-template-columns:1fr;
  }
}


/* v32 — GLOBI-MAP jako ikonka z popoverem na desktopie i mobile */
.author-badge,
.copyright-note{
  display:none!important;
}
.author-fab{
  position:absolute;
  right:16px;
  bottom:46px;
  z-index:1050;
  width:54px;
  height:54px;
  border-radius:18px;
  border:1px solid color-mix(in srgb, var(--line) 88%, transparent);
  background:color-mix(in srgb, var(--panel) 92%, transparent);
  box-shadow:var(--shadow);
  backdrop-filter:blur(12px);
  cursor:pointer;
  display:grid;
  place-items:center;
  padding:7px;
}
.author-fab:hover{
  transform:translateY(-1px);
}
.author-fab img{
  width:38px;
  height:38px;
  object-fit:contain;
  border-radius:10px;
  background:rgba(255,255,255,.75);
}
body.right-open .author-fab{
  right:436px;
}
.author-popover{
  position:absolute;
  right:16px;
  bottom:108px;
  z-index:1320;
  width:330px;
  display:none;
}
.author-popover.open{
  display:block;
}
.author-card{
  border-radius:22px;
  background:color-mix(in srgb, var(--panel) 94%, transparent);
  border:1px solid color-mix(in srgb, var(--line) 85%, transparent);
  box-shadow:var(--shadow);
  backdrop-filter:blur(14px);
  padding:14px;
  color:var(--text);
}
.author-head{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
}
.author-head img{
  width:44px;
  height:44px;
  object-fit:contain;
  border-radius:12px;
  background:rgba(255,255,255,.75);
}
.author-head b{
  display:block;
  font-size:14px;
  font-weight:900;
}
.author-head span{
  display:block;
  font-size:11px;
  color:var(--muted);
  margin-top:3px;
}
.author-card p{
  margin:0;
  font-size:12px;
  line-height:1.45;
  color:var(--muted);
}
.author-card a{
  display:inline-flex;
  margin-top:12px;
  padding:9px 11px;
  border-radius:999px;
  background:linear-gradient(135deg,var(--primary),var(--accent));
  color:#fff;
  text-decoration:none;
  font-size:12px;
  font-weight:900;
}
body.right-open .author-popover{
  right:436px;
}
.mobile-author-fab img{
  width:30px;
  height:30px;
  object-fit:contain;
  border-radius:8px;
  background:rgba(255,255,255,.75);
}
@media (max-width:1024px){
  .author-fab{
    display:none;
  }
  .author-popover{
    right:72px;
    top:300px;
    bottom:auto;
    width:min(310px, calc(100vw - 92px));
  }
  body.right-open .author-popover{
    right:72px;
  }
}
@media (max-width:640px){
  .author-popover{
    right:68px;
    top:296px;
    width:calc(100vw - 86px);
  }
  body.right-open .author-popover{
    right:68px;
  }
}


/* v33 — regres fix: mobile menu, banner, legend icon, author popover */
.mobile-panel-menu{display:none}
@media (max-width:1024px){
  .mobile-titlebar{
    left:0!important;
    right:0!important;
    top:0!important;
    width:100%!important;
    border-radius:0!important;
    padding:12px 76px 12px 14px!important;
    border-left:none!important;
    border-right:none!important;
    border-top:none!important;
  }
  .mobile-menu-control{
    position:absolute!important;
    left:10px!important;
    top:76px!important;
    z-index:1320!important;
    display:block!important;
  }
  .mobile-controls{
    position:absolute!important;
    right:10px!important;
    left:auto!important;
    top:76px!important;
    z-index:1320!important;
    display:flex!important;
    flex-direction:column!important;
    gap:10px!important;
  }
  .mobile-module-sheet,.mobile-module-rail{display:none!important}
  .left-panel.mobile-menu-mode .mobile-panel-menu{
    display:flex!important;
    flex-direction:column;
    gap:10px;
  }
  .left-panel.mobile-menu-mode .accordion{display:none!important}
  .left-panel.mobile-single .mobile-panel-menu{display:none!important}
  .left-panel.mobile-single .accordion{display:flex!important}
  .left-panel.mobile-single .acc-item{display:none!important}
  .left-panel.mobile-single .acc-item.mobile-active{display:block!important}
  .left-panel.mobile-single .acc-item.mobile-active .acc-content{display:block!important}
  .left-panel.mobile-single .acc-item.mobile-active .acc-trigger{pointer-events:none}
  .mobile-panel-option{
    width:100%;
    border:none;
    border-radius:18px;
    padding:13px 14px;
    display:flex;
    align-items:center;
    gap:12px;
    background:var(--panel-2);
    color:var(--text);
    cursor:pointer;
    text-align:left;
    border:1px solid color-mix(in srgb, var(--primary) 16%, var(--line));
    box-shadow:0 7px 18px rgba(15,23,42,.08);
  }
  .mobile-panel-option:hover,.mobile-panel-option.active{
    background:linear-gradient(135deg,var(--primary),var(--accent));
    color:#fff;
    border-color:transparent;
  }
  .mobile-panel-icon{
    width:42px;height:42px;border-radius:14px;display:grid;place-items:center;
    background:color-mix(in srgb, var(--primary) 12%, var(--panel));
    flex:0 0 auto;font-size:20px;
  }
  .mobile-panel-option:hover .mobile-panel-icon,.mobile-panel-option.active .mobile-panel-icon{background:rgba(255,255,255,.18)}
  .mobile-panel-name{font-size:15px;font-weight:900;line-height:1.2}
  .mobile-legend-fab svg{width:22px;height:22px;display:block}
  .mobile-legend-fab svg path{fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  .mobile-author-fab img{width:30px;height:30px;object-fit:contain;border-radius:8px;background:rgba(255,255,255,.75)}
  .legend{top:76px!important}
}
@media (max-width:640px){
  .mobile-titlebar{padding:11px 70px 11px 12px!important}
  .mobile-menu-control{left:8px!important;top:72px!important}
  .mobile-controls{right:8px!important;top:72px!important}
  .legend{top:72px!important}
}
.author-badge,.copyright-note{display:none!important}
.author-fab{
  position:absolute;right:16px;bottom:46px;z-index:1050;width:54px;height:54px;border-radius:18px;
  border:1px solid color-mix(in srgb, var(--line) 88%, transparent);
  background:color-mix(in srgb, var(--panel) 92%, transparent);
  box-shadow:var(--shadow);backdrop-filter:blur(12px);cursor:pointer;display:grid;place-items:center;padding:7px;
}
.author-fab img{width:38px;height:38px;object-fit:contain;border-radius:10px;background:rgba(255,255,255,.75)}
body.right-open .author-fab{right:436px}
.author-popover{position:absolute;right:16px;bottom:108px;z-index:1320;width:330px;display:none}
.author-popover.open{display:block}
.author-card{
  border-radius:22px;background:color-mix(in srgb, var(--panel) 94%, transparent);
  border:1px solid color-mix(in srgb, var(--line) 85%, transparent);
  box-shadow:var(--shadow);backdrop-filter:blur(14px);padding:14px;color:var(--text);
}
.author-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.author-head img{width:44px;height:44px;object-fit:contain;border-radius:12px;background:rgba(255,255,255,.75)}
.author-head b{display:block;font-size:14px;font-weight:900}
.author-head span{display:block;font-size:11px;color:var(--muted);margin-top:3px}
.author-card p{margin:0;font-size:12px;line-height:1.45;color:var(--muted)}
.author-card a{display:inline-flex;margin-top:12px;padding:9px 11px;border-radius:999px;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;text-decoration:none;font-size:12px;font-weight:900}
body.right-open .author-popover{right:436px}
@media (max-width:1024px){
  .author-fab{display:none}
  .author-popover{right:72px;top:300px;bottom:auto;width:min(310px, calc(100vw - 92px))}
  body.right-open .author-popover{right:72px}
}
@media (max-width:640px){
  .author-popover{right:68px;top:296px;width:calc(100vw - 86px)}
  body.right-open .author-popover{right:68px}
}


/* v34 — finalny fix regresu: mobile menu + nazwy + logo + baner */
.author-badge,.copyright-note{display:none!important}
.mobile-panel-menu{display:none}
.mobile-module-rail,.mobile-module-sheet{display:none!important}

@media (max-width:1024px){
  .mobile-titlebar{
    position:absolute!important;
    left:0!important;
    right:0!important;
    top:0!important;
    width:100%!important;
    border-radius:0!important;
    padding:12px 76px 12px 14px!important;
    border-left:none!important;
    border-right:none!important;
    border-top:none!important;
    z-index:1280!important;
  }
  .mobile-menu-control{
    position:absolute!important;
    left:10px!important;
    top:76px!important;
    z-index:1320!important;
    display:block!important;
  }
  .mobile-controls{
    position:absolute!important;
    right:10px!important;
    left:auto!important;
    top:76px!important;
    z-index:1320!important;
    display:flex!important;
    flex-direction:column!important;
    gap:10px!important;
  }
  .left-panel.mobile-menu-mode .mobile-panel-menu{
    display:flex!important;
    flex-direction:column!important;
    gap:10px!important;
  }
  .left-panel.mobile-menu-mode .accordion{display:none!important}
  .left-panel.mobile-single .mobile-panel-menu{display:none!important}
  .left-panel.mobile-single .accordion{display:flex!important}
  .left-panel.mobile-single .acc-item{display:none!important}
  .left-panel.mobile-single .acc-item.mobile-active{display:block!important}
  .left-panel.mobile-single .acc-item.mobile-active .acc-content{display:block!important}
  .left-panel.mobile-single .acc-item.mobile-active .acc-trigger{pointer-events:none!important}
  .mobile-panel-option{
    width:100%!important;border:none;border-radius:18px;padding:13px 14px;
    display:flex!important;align-items:center;gap:12px;background:var(--panel-2);
    color:var(--text);cursor:pointer;text-align:left;
    border:1px solid color-mix(in srgb, var(--primary) 16%, var(--line));
    box-shadow:0 7px 18px rgba(15,23,42,.08);
  }
  .mobile-panel-option:hover,.mobile-panel-option.active{
    background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;border-color:transparent;
  }
  .mobile-panel-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb, var(--primary) 12%, var(--panel));flex:0 0 auto;font-size:20px}
  .mobile-panel-option:hover .mobile-panel-icon,.mobile-panel-option.active .mobile-panel-icon{background:rgba(255,255,255,.18)}
  .mobile-panel-name{font-size:15px;font-weight:900;line-height:1.2}
  .mobile-legend-fab svg{width:22px;height:22px;display:block}
  .mobile-legend-fab svg path{fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  .mobile-author-fab img{width:30px;height:30px;object-fit:contain;border-radius:8px;background:rgba(255,255,255,.75)}
  .legend{top:76px!important}
}
@media (max-width:640px){
  .mobile-titlebar{padding:11px 70px 11px 12px!important}
  .mobile-menu-control{left:8px!important;top:72px!important}
  .mobile-controls{right:8px!important;top:72px!important}
  .legend{top:72px!important}
}

.author-fab{
  position:absolute;right:16px;bottom:46px;z-index:1050;width:54px;height:54px;border-radius:18px;
  border:1px solid color-mix(in srgb, var(--line) 88%, transparent);
  background:color-mix(in srgb, var(--panel) 92%, transparent);
  box-shadow:var(--shadow);backdrop-filter:blur(12px);cursor:pointer;display:grid;place-items:center;padding:7px;
}
.author-fab img{width:38px;height:38px;object-fit:contain;border-radius:10px;background:rgba(255,255,255,.75)}
body.right-open .author-fab{right:436px}
.author-popover{position:absolute;right:16px;bottom:108px;z-index:1320;width:330px;display:none}
.author-popover.open{display:block}
.author-card{border-radius:22px;background:color-mix(in srgb, var(--panel) 94%, transparent);border:1px solid color-mix(in srgb, var(--line) 85%, transparent);box-shadow:var(--shadow);backdrop-filter:blur(14px);padding:14px;color:var(--text)}
.author-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.author-head img{width:44px;height:44px;object-fit:contain;border-radius:12px;background:rgba(255,255,255,.75)}
.author-head b{display:block;font-size:14px;font-weight:900}
.author-head span{display:block;font-size:11px;color:var(--muted);margin-top:3px}
.author-card p{margin:0;font-size:12px;line-height:1.45;color:var(--muted)}
.author-card a{display:inline-flex;margin-top:12px;padding:9px 11px;border-radius:999px;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;text-decoration:none;font-size:12px;font-weight:900}
body.right-open .author-popover{right:436px}
@media (max-width:1024px){
  .author-fab{display:none!important}
  .author-popover{right:72px;top:300px;bottom:auto;width:min(310px, calc(100vw - 92px))}
  body.right-open .author-popover{right:72px}
}
@media (max-width:640px){
  .author-popover{right:68px;top:296px;width:calc(100vw - 86px)}
  body.right-open .author-popover{right:68px}
}


/* v35b — hard fix hamburger mobile */
@media (max-width:1024px){
  #mobileMenuControl,
  #mobileMenuBtn{
    pointer-events:auto!important;
  }
  #mobileMenuControl{
    z-index:5000!important;
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
  }
  #mobileMenuBtn{
    display:grid!important;
    visibility:visible!important;
    opacity:1!important;
  }
  .left-panel.mobile-menu-mode{
    z-index:4900!important;
  }
  .mobile-panel-menu{
    pointer-events:auto!important;
  }
  aside.left-panel.open.mobile-menu-mode .panel-body > .mobile-panel-menu{
    display:flex!important;
  }
  aside.left-panel.open.mobile-menu-mode .panel-body > .accordion{
    display:none!important;
  }
  aside.left-panel.open.mobile-single .panel-body > .mobile-panel-menu{
    display:none!important;
  }
  aside.left-panel.open.mobile-single .panel-body > .accordion{
    display:flex!important;
  }
}


/* v31 — desktop: baner tytułu dopasowany kształtem do reszty UI */
@media (min-width:1025px){
  .brand{
    border-radius:22px!important;
  }
}



/* v35 - poprawka czytelności list rozwijalnych w panelu szczegółów państwa, motyw ciemny */
@media (min-width:641px){
  html[data-theme="dark"] .right-panel .select,
  html[data-theme="dark"] .right-panel select.select,
  html[data-theme="dark"] .right-panel .right-year-control .select,
  html[data-theme="dark"] .right-panel #rightYearSelect,
  html[data-theme="dark"] .right-panel #rightCrimeSelect{
    color:#e5eefb !important;
    -webkit-text-fill-color:#e5eefb;
    background-color:#111c31;
    border-color:color-mix(in srgb, var(--primary) 35%, var(--line));
  }
  html[data-theme="dark"] .right-panel select.select option,
  html[data-theme="dark"] .right-panel #rightYearSelect option,
  html[data-theme="dark"] .right-panel #rightCrimeSelect option{
    color:#e5eefb;
    background:#0f172a;
  }
  html[data-theme="dark"] .right-panel select.select:focus,
  html[data-theme="dark"] .right-panel #rightYearSelect:focus,
  html[data-theme="dark"] .right-panel #rightCrimeSelect:focus{
    color:#ffffff !important;
    -webkit-text-fill-color:#ffffff;
    outline:none;
    border-color:#60a5fa;
    box-shadow:0 0 0 3px rgba(96,165,250,.20);
  }
}


/* v36 - ciemny motyw: dopasowane suwaki przewijania i input range do kolorystyki UI */
html[data-theme="dark"]{
  scrollbar-color: color-mix(in srgb, var(--primary) 55%, var(--accent)) color-mix(in srgb, var(--panel-2) 88%, #020617);
}
html[data-theme="dark"] .panel-body,
html[data-theme="dark"] .chips,
html[data-theme="dark"] .right-panel,
html[data-theme="dark"] .legend,
html[data-theme="dark"] .modal-body{
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--primary) 58%, var(--accent)) color-mix(in srgb, var(--panel-2) 88%, #020617);
}
html[data-theme="dark"] .panel-body::-webkit-scrollbar,
html[data-theme="dark"] .chips::-webkit-scrollbar,
html[data-theme="dark"] .right-panel::-webkit-scrollbar,
html[data-theme="dark"] .legend::-webkit-scrollbar,
html[data-theme="dark"] .modal-body::-webkit-scrollbar{
  width:10px;
  height:10px;
}
html[data-theme="dark"] .panel-body::-webkit-scrollbar-track,
html[data-theme="dark"] .chips::-webkit-scrollbar-track,
html[data-theme="dark"] .right-panel::-webkit-scrollbar-track,
html[data-theme="dark"] .legend::-webkit-scrollbar-track,
html[data-theme="dark"] .modal-body::-webkit-scrollbar-track{
  background:color-mix(in srgb, var(--panel-2) 88%, #020617);
  border-radius:999px;
}
html[data-theme="dark"] .panel-body::-webkit-scrollbar-thumb,
html[data-theme="dark"] .chips::-webkit-scrollbar-thumb,
html[data-theme="dark"] .right-panel::-webkit-scrollbar-thumb,
html[data-theme="dark"] .legend::-webkit-scrollbar-thumb,
html[data-theme="dark"] .modal-body::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,var(--primary),var(--accent));
  border:2px solid color-mix(in srgb, var(--panel-2) 88%, #020617);
  border-radius:999px;
}
html[data-theme="dark"] .panel-body::-webkit-scrollbar-thumb:hover,
html[data-theme="dark"] .chips::-webkit-scrollbar-thumb:hover,
html[data-theme="dark"] .right-panel::-webkit-scrollbar-thumb:hover,
html[data-theme="dark"] .legend::-webkit-scrollbar-thumb:hover,
html[data-theme="dark"] .modal-body::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 78%, #fff), color-mix(in srgb,var(--accent) 82%, #fff));
}
html[data-theme="dark"] input[type="range"]{
  accent-color:var(--accent);
  --range-track:color-mix(in srgb, var(--panel-2) 74%, #020617);
  --range-border:color-mix(in srgb, var(--primary) 42%, var(--line));
}
html[data-theme="dark"] input[type="range"]::-webkit-slider-runnable-track{
  box-shadow:inset 0 1px 2px rgba(0,0,0,.38), 0 0 0 1px rgba(96,165,250,.08);
}
html[data-theme="dark"] input[type="range"]::-moz-range-track{
  box-shadow:inset 0 1px 2px rgba(0,0,0,.38), 0 0 0 1px rgba(96,165,250,.08);
}
html[data-theme="dark"] input[type="range"]::-webkit-slider-thumb{
  border-color:#0f172a;
  box-shadow:0 6px 16px rgba(0,0,0,.45), 0 0 0 1px color-mix(in srgb, var(--accent) 68%, transparent);
}
html[data-theme="dark"] input[type="range"]::-moz-range-thumb{
  border-color:#0f172a;
  box-shadow:0 6px 16px rgba(0,0,0,.45), 0 0 0 1px color-mix(in srgb, var(--accent) 68%, transparent);
}

/* v37 - niestandardowa lista przestępstw w szczegółach państwa: kolorowy suwak w ciemnym motywie */
.right-crime-select-native{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
}
.custom-crime-select{position:relative; width:100%;}
.custom-crime-select__button{
  width:100%; min-height:46px; display:flex; align-items:center; justify-content:space-between; gap:10px;
  border:1px solid var(--line); border-radius:14px; padding:11px 14px;
  background:var(--panel-2); color:var(--text); font-weight:800; cursor:pointer; text-align:left;
  box-shadow:var(--shadow-soft);
}
.custom-crime-select__button:focus-visible{
  outline:none; border-color:#60a5fa; box-shadow:0 0 0 3px rgba(96,165,250,.20);
}
.custom-crime-select__chevron{opacity:.75; font-size:12px; flex:0 0 auto;}
.custom-crime-select__menu{
  display:none; position:absolute; z-index:9999; left:0; right:0; top:calc(100% + 6px);
  max-height:245px; overflow:auto; padding:6px; border:1px solid var(--line); border-radius:16px;
  background:var(--panel); box-shadow:0 18px 45px rgba(0,0,0,.22);
}
.custom-crime-select.open .custom-crime-select__menu{display:block;}
.custom-crime-select__option{
  width:100%; border:0; border-radius:12px; padding:10px 11px; background:transparent;
  color:var(--text); font:inherit; font-weight:750; cursor:pointer; text-align:left;
}
.custom-crime-select__option:hover,
.custom-crime-select__option[aria-selected="true"]{
  background:linear-gradient(135deg, color-mix(in srgb,var(--primary) 17%, transparent), color-mix(in srgb,var(--accent) 14%, transparent));
  color:var(--text);
}
html[data-theme="dark"] .custom-crime-select__button{
  color:#e5eefb; background:#111c31; border-color:color-mix(in srgb, var(--primary) 35%, var(--line));
}
html[data-theme="dark"] .custom-crime-select__menu{
  background:#0f172a; border-color:color-mix(in srgb, var(--primary) 35%, var(--line));
  scrollbar-width:thin;
  scrollbar-color: color-mix(in srgb, var(--primary) 58%, var(--accent)) color-mix(in srgb, #111c31 88%, #020617);
}
html[data-theme="dark"] .custom-crime-select__menu::-webkit-scrollbar{width:10px;height:10px;}
html[data-theme="dark"] .custom-crime-select__menu::-webkit-scrollbar-track{
  background:color-mix(in srgb, #111c31 88%, #020617); border-radius:999px;
}
html[data-theme="dark"] .custom-crime-select__menu::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,var(--primary),var(--accent));
  border:2px solid color-mix(in srgb, #111c31 88%, #020617);
  border-radius:999px;
}
html[data-theme="dark"] .custom-crime-select__menu::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 78%, #fff), color-mix(in srgb,var(--accent) 82%, #fff));
}
html[data-theme="dark"] .custom-crime-select__option{color:#e5eefb;}
html[data-theme="dark"] .custom-crime-select__option:hover,
html[data-theme="dark"] .custom-crime-select__option[aria-selected="true"]{
  color:#fff; background:linear-gradient(135deg, rgba(37,99,235,.34), rgba(124,58,237,.30));
}


/* v38 - jasny motyw: kolorowe suwaki przewijania i range dopasowane do UI */
html[data-theme="light"]{
  scrollbar-color: color-mix(in srgb, var(--primary) 58%, var(--accent)) color-mix(in srgb, var(--panel-2) 82%, #ffffff);
}
html[data-theme="light"] .panel-body,
html[data-theme="light"] .chips,
html[data-theme="light"] .right-panel,
html[data-theme="light"] .legend,
html[data-theme="light"] .modal-body,
html[data-theme="light"] .custom-crime-select__menu{
  scrollbar-width:thin;
  scrollbar-color: color-mix(in srgb, var(--primary) 58%, var(--accent)) color-mix(in srgb, var(--panel-2) 84%, #ffffff);
}
html[data-theme="light"] .panel-body::-webkit-scrollbar,
html[data-theme="light"] .chips::-webkit-scrollbar,
html[data-theme="light"] .right-panel::-webkit-scrollbar,
html[data-theme="light"] .legend::-webkit-scrollbar,
html[data-theme="light"] .modal-body::-webkit-scrollbar,
html[data-theme="light"] .custom-crime-select__menu::-webkit-scrollbar{
  width:10px;
  height:10px;
}
html[data-theme="light"] .panel-body::-webkit-scrollbar-track,
html[data-theme="light"] .chips::-webkit-scrollbar-track,
html[data-theme="light"] .right-panel::-webkit-scrollbar-track,
html[data-theme="light"] .legend::-webkit-scrollbar-track,
html[data-theme="light"] .modal-body::-webkit-scrollbar-track,
html[data-theme="light"] .custom-crime-select__menu::-webkit-scrollbar-track{
  background:color-mix(in srgb, var(--panel-2) 84%, #ffffff);
  border-radius:999px;
}
html[data-theme="light"] .panel-body::-webkit-scrollbar-thumb,
html[data-theme="light"] .chips::-webkit-scrollbar-thumb,
html[data-theme="light"] .right-panel::-webkit-scrollbar-thumb,
html[data-theme="light"] .legend::-webkit-scrollbar-thumb,
html[data-theme="light"] .modal-body::-webkit-scrollbar-thumb,
html[data-theme="light"] .custom-crime-select__menu::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,var(--primary),var(--accent));
  border:2px solid color-mix(in srgb, var(--panel-2) 84%, #ffffff);
  border-radius:999px;
}
html[data-theme="light"] .panel-body::-webkit-scrollbar-thumb:hover,
html[data-theme="light"] .chips::-webkit-scrollbar-thumb:hover,
html[data-theme="light"] .right-panel::-webkit-scrollbar-thumb:hover,
html[data-theme="light"] .legend::-webkit-scrollbar-thumb:hover,
html[data-theme="light"] .modal-body::-webkit-scrollbar-thumb:hover,
html[data-theme="light"] .custom-crime-select__menu::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 78%, #0f172a), color-mix(in srgb,var(--accent) 82%, #0f172a));
}
html[data-theme="light"] input[type="range"]{
  accent-color:var(--primary);
  --range-track:color-mix(in srgb, var(--primary) 9%, #ffffff);
  --range-border:color-mix(in srgb, var(--primary) 26%, var(--line));
}
html[data-theme="light"] input[type="range"]::-webkit-slider-runnable-track{
  box-shadow:inset 0 1px 2px rgba(15,23,42,.12), 0 0 0 1px rgba(59,130,246,.05);
}
html[data-theme="light"] input[type="range"]::-moz-range-track{
  box-shadow:inset 0 1px 2px rgba(15,23,42,.12), 0 0 0 1px rgba(59,130,246,.05);
}
html[data-theme="light"] input[type="range"]::-webkit-slider-thumb{
  border-color:#ffffff;
  box-shadow:0 6px 16px rgba(15,23,42,.24), 0 0 0 1px color-mix(in srgb, var(--accent) 46%, transparent);
}
html[data-theme="light"] input[type="range"]::-moz-range-thumb{
  border-color:#ffffff;
  box-shadow:0 6px 16px rgba(15,23,42,.24), 0 0 0 1px color-mix(in srgb, var(--accent) 46%, transparent);
}
html[data-theme="light"] .custom-crime-select__menu{
  background:#ffffff;
  border-color:color-mix(in srgb, var(--primary) 24%, var(--line));
}

/* v48 — logo jako dodatek, opis mapy i źródło zostają w banerze desktopowym */
.map-brand{
  padding:10px 16px!important;
  min-height:58px;
  border-radius:22px!important;
  background:color-mix(in srgb, var(--panel) 90%, transparent)!important;
  border:1px solid color-mix(in srgb, var(--line) 85%, transparent)!important;
  box-shadow:var(--shadow)!important;
}
html[data-theme="dark"] .map-brand{
  background:color-mix(in srgb, var(--panel) 90%, transparent)!important;
  border-color:color-mix(in srgb, var(--line) 85%, transparent)!important;
  box-shadow:var(--shadow)!important;
}
.brand-logo-mark{
  display:block;
  width:44px;
  height:44px;
  object-fit:contain;
  flex:0 0 auto;
  border-radius:14px;
  background:rgba(255,255,255,.76);
  box-shadow:0 8px 20px rgba(15,23,42,.10);
}
html[data-theme="dark"] .brand-logo-mark{
  background:rgba(255,255,255,.88);
}
.mobile-titlebar{
  align-items:center;
  gap:10px;
}
.mobile-title-icon{
  width:42px;
  height:42px;
  object-fit:contain;
  flex:0 0 auto;
  border-radius:12px;
  background:rgba(255,255,255,.82);
  box-shadow:0 8px 20px rgba(15,23,42,.10);
}
.mobile-title-text{min-width:0}
@media (max-width:1024px){
  .mobile-titlebar{
    display:flex!important;
    align-items:center!important;
    gap:10px!important;
  }
  .mobile-title-main{font-size:16px!important;letter-spacing:.1px}
  .mobile-title-sub{font-size:11px!important}
}
@media (max-width:640px){
  .mobile-title-icon{width:38px;height:38px;border-radius:11px}
  .mobile-title-main{font-size:15px!important}
  .mobile-title-sub{font-size:10.5px!important}
}


/* v49 — language selector */
.language-select{
  height:48px;
  min-width:84px;
  border-radius:16px;
  border:1px solid color-mix(in srgb, var(--line) 85%, transparent);
  background:color-mix(in srgb, var(--panel) 88%, transparent);
  color:var(--text);
  box-shadow:var(--shadow);
  backdrop-filter:blur(12px);
  cursor:pointer;
  font-weight:900;
  padding:0 12px;
  outline:none;
}
.language-select:focus,
.mobile-language-select:focus{
  border-color:color-mix(in srgb, var(--primary) 70%, var(--line));
  box-shadow:0 0 0 4px color-mix(in srgb, var(--primary) 16%, transparent), var(--shadow);
}
.language-select option,
.mobile-language-select option{
  color:var(--text);
  background:var(--panel);
}
.mobile-language-select{
  width:48px;
  height:48px;
  border-radius:16px;
  border:1px solid color-mix(in srgb, var(--line) 85%, transparent);
  background:color-mix(in srgb, var(--panel) 90%, transparent);
  color:var(--text);
  box-shadow:var(--shadow);
  backdrop-filter:blur(12px);
  cursor:pointer;
  font-size:12px;
  font-weight:900;
  text-align:center;
  text-align-last:center;
  padding:0 3px;
  outline:none;
}
[data-theme="dark"] .language-select,
[data-theme="dark"] .mobile-language-select{
  background:color-mix(in srgb, var(--panel) 92%, transparent);
  border-color:color-mix(in srgb, var(--primary) 25%, var(--line));
}

/* v53 — licznik wejść: kontrast i ukrycie na mobile */
.visit-counter-card{
  position:absolute;
  left:24px;
  bottom:34px;
  z-index:620;
  display:flex;
  align-items:center;
  gap:10px;
  min-width:156px;
  padding:10px 12px;
  border:1px solid color-mix(in srgb, var(--line) 88%, transparent);
  border-radius:18px;
  background:color-mix(in srgb, var(--panel) 92%, transparent);
  color:var(--text);
  box-shadow:0 18px 44px rgba(15,23,42,.14);
  backdrop-filter:blur(14px);
}
html[data-theme="dark"] .visit-counter-card{
  background:color-mix(in srgb, var(--panel) 94%, transparent);
  border-color:color-mix(in srgb, var(--primary) 28%, var(--line));
  box-shadow:0 18px 44px rgba(0,0,0,.34);
}
.visit-counter-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:linear-gradient(135deg,var(--primary),var(--accent));
  color:#fff;
  box-shadow:0 10px 24px rgba(37,99,235,.22);
}
.visit-counter-label{font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.07em}
.visit-counter-main{font-size:16px;font-weight:900;line-height:1.15;color:var(--text)}
.visit-counter-main span{color:var(--text)}
.visit-counter-sub{font-size:12px;color:var(--muted);line-height:1.2;margin-top:2px;max-width:132px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.visitor-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}
.visitor-stats-grid div{
  border:1px solid color-mix(in srgb, var(--line) 88%, transparent);
  border-radius:14px;
  padding:10px;
  background:color-mix(in srgb, var(--panel-2) 82%, var(--panel));
}
html[data-theme="dark"] .visitor-stats-grid div{
  background:color-mix(in srgb, var(--panel-2) 88%, var(--panel));
  border-color:color-mix(in srgb, var(--primary) 22%, var(--line));
}
.visitor-stats-grid span{
  display:block;
  font-size:20px;
  font-weight:900;
  color:var(--text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
}
.visitor-stats-grid small{display:block;margin-top:3px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.privacy-counter-note{font-size:12px;color:var(--muted);margin-top:8px}
body.left-open .visit-counter-card{display:none}
@media(max-width:1024px){
  .visit-counter-card{display:none !important}
  .visitor-stats-grid{grid-template-columns:1fr}
}
