:root{
--navy:#0f2942;
--navy-2:#16344f;
--blue:#1a6fb0;
--blue-light:#4a9fd8;
--cyan:#3fb0c9;
--green:#10b981;
--green-dark:#047857;
--bg:#f4f7fa;
--card-bg:#ffffff;
--border:#dbe4ec;
--text:#1b2b3a;
--text-muted:#5c7185;
--shadow:0 2px 10px rgba(15,41,66,0.08);
--shadow-lg:0 8px 28px rgba(15,41,66,0.16);
}
*{box-sizing:border-box;margin:0;padding:0;}
body{
font-family:'Segoe UI',Roboto,Arial,sans-serif;
background:var(--bg);
color:var(--text);
min-height:100vh;
}
.topbar{
background:linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 100%);
color:#fff;
padding:16px 28px;
display:flex;
flex-wrap:wrap;
align-items:center;
gap:18px;
box-shadow:var(--shadow);
position:sticky;
top:0;
z-index:1200;
}
.brand{
display:flex;
align-items:center;
gap:10px;
font-weight:700;
font-size:1.15rem;
letter-spacing:0.3px;
white-space:nowrap;
color:#fff;
text-decoration:none;
cursor:pointer;
}
.brand:hover{opacity:0.88;}
.brand .drop{font-size:1.4rem;}
.search-wrap{flex:1;min-width:220px;max-width:420px;position:relative;}
.search-wrap input{
width:100%;
padding:10px 14px 10px 36px;
border-radius:8px;
border:none;
outline:none;
font-size:0.95rem;
background:rgba(255,255,255,0.12);
color:#fff;
}
.search-wrap input::placeholder{color:rgba(255,255,255,0.6);}
.search-wrap svg{
position:absolute;left:11px;top:50%;transform:translateY(-50%);
width:16px;height:16px;opacity:0.6;
}
.chips{display:flex;gap:8px;flex-wrap:wrap;}
.chip{
padding:8px 14px;
border-radius:20px;
background:rgba(255,255,255,0.1);
border:1px solid rgba(255,255,255,0.25);
color:#fff;
font-size:0.85rem;
cursor:pointer;
transition:all 0.2s;
white-space:nowrap;
user-select:none;
}
.chip:hover{background:rgba(255,255,255,0.22);}
.chip.active{
background:var(--cyan);
border-color:var(--cyan);
color:var(--navy);
font-weight:600;
}
.container{
display:grid;
grid-template-columns:minmax(320px,1fr) minmax(340px,480px);
gap:20px;
padding:12px 24px 24px 24px !important;
margin-top:0 !important;
max-width:1500px;
margin-left:auto;
margin-right:auto;
align-items:start;
}
@media (max-width:900px){
.container{grid-template-columns:1fr;}
}
.map-panel{
background:var(--card-bg);
border-radius:14px;
box-shadow:var(--shadow);
padding:0 18px 18px 18px;
position:sticky;
top:12px;
}
.map-panel-header{
padding-top:18px;
}
.map-panel h2{
font-size:1rem;
color:var(--navy);
margin-bottom:10px;
font-weight:600;
}
#map{
width:100%;
height:640px;
border-radius:10px;
background:#f7fafc;
}
.leaflet-container{
background:#f7fafc;
font-family:inherit;
}
.district-tooltip{
background:var(--navy);
color:#fff;
border:none;
border-radius:6px;
font-size:0.82rem;
padding:6px 10px;
box-shadow:var(--shadow-lg);
}
.district-tooltip b{color:var(--cyan);}
.leaflet-tooltip-top:before{border-top-color:var(--navy);}
.highway-tooltip{
background:#334155;
color:#fff;
border:none;
border-radius:6px;
font-size:0.8rem;
font-weight:600;
padding:5px 9px;
box-shadow:var(--shadow-lg);
}
.legend-hint{
margin-top:12px;
font-size:0.78rem;
color:var(--text-muted);
display:flex;
align-items:center;
gap:6px;
flex-wrap:wrap;
}
.legend-swatch{
width:12px;height:12px;border-radius:3px;background:var(--green);display:inline-block;
}
.legend-swatch-muted{
width:12px;height:12px;border-radius:3px;background:#c9d2d8;display:inline-block;
}
.cards-panel h2{
font-size:1rem;
color:var(--navy);
margin-bottom:0;
font-weight:600;
padding-left:4px;
padding-top:0;
}
.cards-panel-header{
display:flex;
align-items:center;
justify-content:space-between;
gap:10px;
flex-wrap:wrap;
margin-bottom:12px;
padding-left:4px;
position:relative;
}
.cards-list{
display:flex;
flex-direction:column;
gap:12px;
max-height:calc(100vh - 160px);
overflow-y:auto;
padding-right:4px;
}
.card{
background:var(--card-bg);
border:1px solid var(--border);
border-left:6px solid var(--border);
border-radius:12px;
padding:16px 18px;
box-shadow:var(--shadow);
transition:box-shadow 0.2s, border-color 0.2s;
scroll-margin-top:20px;
cursor:pointer;
}
.card.highlighted{
border-color:var(--green);
border-left-color:var(--green-dark);
box-shadow:0 0 0 3px rgba(16,185,129,0.18),var(--shadow-lg);
}
.card-title{
font-weight:700;
font-size:1.02rem;
color:var(--navy);
margin-bottom:0;
display:flex;
align-items:center;
gap:8px;
flex:1;
min-width:0;
}
.card-color-dot{
width:12px;height:12px;border-radius:50%;flex-shrink:0;
}
.card-title .card-color-dot{display:none;}
.btn-web-outline{
display:inline-flex;
align-items:center;
gap:5px;
padding:5px 11px;
border-radius:6px;
font-size:0.76rem;
font-weight:600;
text-decoration:none;
background:transparent;
border:1.5px solid var(--blue);
color:var(--blue);
cursor:pointer;
transition:background 0.15s,color 0.15s;
white-space:nowrap;
margin-left:auto;
}
.btn-web-outline:hover{background:var(--blue);color:#fff;}
.card-title-row{
display:flex;
align-items:center;
justify-content:space-between;
gap:8px;
margin-bottom:6px;
}

.btn-active.btn-combined{
background:linear-gradient(90deg, var(--blue) 0%, #8b4513 100%);
color:#ffffff;
}
.btn-active.btn-combined:hover{background:linear-gradient(90deg, var(--navy) 0%, #6f360f 100%);}

.help-btn{
display:inline-flex;
align-items:center;
gap:6px;
padding:8px 16px;
border-radius:20px;
background:rgba(255,255,255,0.12);
border:1px solid rgba(255,255,255,0.3);
color:#fff;
font-size:0.85rem;
font-weight:600;
text-decoration:none;
cursor:pointer;
transition:background 0.2s;
white-space:nowrap;
}
.help-btn:hover{background:rgba(255,255,255,0.24);}
.help-btn.active{
background:var(--cyan);
border-color:var(--cyan);
color:var(--navy);
font-weight:700;
cursor:default;
}
.help-btn.active:hover{background:var(--cyan);}
.help-btn-group{
display:flex;
align-items:center;
gap:10px;
flex-wrap:wrap;
flex-shrink:0;
}
.header-map-slot{
flex:1;
min-width:220px;
max-width:420px;
display:flex;
align-items:center;
justify-content:flex-end;
}
.help-btn-icon{
display:inline-block;
vertical-align:-3px;
margin-right:6px;
flex-shrink:0;
}
.card-districts{
font-size:0.8rem;
color:var(--text-muted);
margin-bottom:12px;
line-height:1.5;
}
.card-buttons{
display:flex;
flex-wrap:wrap;
gap:8px;
}
.btn{
display:inline-flex;
align-items:center;
gap:6px;
padding:8px 13px;
border-radius:7px;
font-size:0.8rem;
font-weight:600;
text-decoration:none;
border:none;
cursor:pointer;
transition:transform 0.15s, background 0.15s;
}
.btn:active{transform:scale(0.97);}
.btn-active{
background:var(--blue);
color:#fff;
}
.btn-active:hover{background:var(--navy);}
.btn-disabled{
background:#eef1f4;
color:#a8b4bf;
cursor:not-allowed;
}
.btn-water{
background:var(--blue);
color:#ffffff;
}
.btn-water:hover{background:var(--navy);}
.btn-sewer{
background:#8b4513;
color:#ffffff;
}
.btn-sewer:hover{background:#6f360f;}
.btn-rsd{
background:#334155;
color:#ffffff;
}
.btn-rsd:hover{background:#1e293b;}
.btn-icon-svg{
vertical-align:middle;
margin:0 1px;
flex-shrink:0;
}
.card-subrole{
font-size:0.76rem;
color:var(--blue);
font-weight:600;
margin-bottom:4px;
text-transform:uppercase;
letter-spacing:0.3px;
}
.card-provozovatel{
font-size:0.82rem;
color:var(--navy);
background-color:#f1f5f9;
border-radius:8px;
padding:10px 14px;
margin-bottom:10px;
line-height:1.4;
}
.card-ico{
font-size:0.74rem;
color:var(--text-muted);
font-weight:400;
margin-bottom:8px;
margin-top:-4px;
}
.standards-missing{font-size:0.8rem;color:#94a3b8;font-style:normal;padding:4px 2px;}
.show-more-wrap{
display:flex;
justify-content:center;
padding:6px 0 4px;
}
.btn-showmore{
background:var(--card-bg);
border:1.5px dashed var(--blue);
color:var(--blue);
padding:10px 18px;
border-radius:8px;
font-size:0.85rem;
font-weight:600;
cursor:pointer;
transition:background 0.15s;
}
.btn-showmore:hover{background:#eaf3fb;}
.btn-reset-map{
background:#2e7d32;
border:none;
color:#ffffff;
padding:8px 16px;
border-radius:8px;
font-size:0.8rem;
font-weight:700;
cursor:pointer;
transition:background 0.15s, transform 0.1s;
}
.btn-reset-map:hover{background:#27642a;}
.btn-reset-map:active{transform:scale(0.97);}
.legend-panel{
position:absolute;
bottom:14px;
right:14px;
background:rgba(255,255,255,0.96);
border-radius:10px;
box-shadow:var(--shadow-lg);
padding:8px 10px;
max-height:160px;
overflow-y:auto;
font-size:0.7rem;
z-index:1000;
max-width:220px;
}
.legend-panel h4{
font-size:0.78rem;
color:var(--navy);
margin-bottom:6px;
}
.legend-row{
display:flex;
align-items:center;
gap:5px;
margin-bottom:3px;
cursor:pointer;
line-height:1.2;
padding:1px 0;
}
.legend-row:hover{color:var(--blue);}
.legend-row.active-row{font-weight:700;color:var(--green-dark);}
.legend-dot{
width:11px;height:11px;border-radius:3px;flex-shrink:0;
}
.empty-state{
text-align:center;
color:var(--text-muted);
padding:40px 10px;
font-size:0.9rem;
}
::-webkit-scrollbar{width:8px;}
::-webkit-scrollbar-thumb{background:#c9d4dd;border-radius:4px;}
footer{
text-align:center;
padding:20px;
color:var(--text-muted);
font-size:0.78rem;
}
.map-loading{
display:flex;
align-items:center;
justify-content:center;
height:640px;
color:var(--text-muted);
font-size:0.9rem;
text-align:center;
padding:0 20px;
}

/* ===== "Legislativa" - dropdown overlay v pravém panelu ===== */
.legislativa-wrap{
position:relative;
flex-shrink:0;
}
.btn-legislativa{
display:inline-flex;
align-items:center;
gap:6px;
padding:7px 12px;
border-radius:8px;
border:1.5px solid var(--border);
background:#fbfcfd;
color:var(--navy);
font-family:inherit;
font-size:0.8rem;
font-weight:600;
cursor:pointer;
transition:border-color 0.15s, background 0.15s;
white-space:nowrap;
}
.btn-legislativa:hover{border-color:var(--blue);background:#eaf3fb;}
.btn-legislativa[aria-expanded="true"]{
border-color:var(--blue);
background:#eaf3fb;
color:var(--blue);
}
.legislativa-badge{
display:inline-flex;
align-items:center;
justify-content:center;
min-width:19px;
height:19px;
padding:0 5px;
border-radius:10px;
background:var(--blue);
color:#fff;
font-size:0.7rem;
font-weight:700;
line-height:1;
}
.btn-legislativa[aria-expanded="true"] .legislativa-badge{
background:var(--navy);
}
.legislativa-chevron{
transition:transform 0.18s ease;
flex-shrink:0;
}
.btn-legislativa[aria-expanded="true"] .legislativa-chevron{
transform:rotate(180deg);
}

.legislativa-panel{
position:absolute;
top:calc(100% + 8px);
right:0;
width:360px;
max-width:calc(100vw - 48px);
max-height:70vh;
overflow-y:auto;
background:var(--card-bg);
border-radius:14px;
box-shadow:var(--shadow-lg);
border:1px solid var(--border);
padding:10px;
z-index:50;
display:flex;
flex-direction:column;
gap:6px;

opacity:0;
transform:translateY(-6px);
visibility:hidden;
pointer-events:none;
transition:opacity 0.18s ease, transform 0.18s ease;
}
.legislativa-panel.open{
opacity:1;
transform:translateY(0);
visibility:visible;
pointer-events:auto;
}

.legis-item{
display:flex;
align-items:flex-start;
gap:10px;
padding:10px 10px;
border-radius:10px;
transition:background 0.15s;
}
.legis-item:hover{background:#f7fafc;}
.legis-icon{
color:var(--blue);
flex-shrink:0;
width:22px;
display:flex;
align-items:center;
justify-content:center;
margin-top:1px;
}
.legis-info{
flex:1;
min-width:0;
}
.legis-title{
font-size:0.88rem;
font-weight:700;
color:var(--navy);
line-height:1.35;
margin-bottom:2px;
}
.legis-lawnum{
font-size:0.76rem;
color:var(--text-muted);
}
.legis-note{
font-size:0.78rem;
color:var(--text-muted);
line-height:1.5;
margin-top:2px;
}
.legis-note-sup{
font-size:0.575em;
vertical-align:super;
line-height:0;
}
.legis-actions{
display:flex;
align-items:center;
gap:6px;
flex-shrink:0;
margin-top:1px;
}
.btn-icon-web,
.btn-icon-download{
display:inline-flex;
align-items:center;
justify-content:center;
width:28px;
height:28px;
border-radius:7px;
text-decoration:none;
cursor:pointer;
transition:background 0.15s,color 0.15s;
flex-shrink:0;
}
.btn-icon-web{
background:transparent;
border:1.5px solid var(--blue);
color:var(--blue);
}
.btn-icon-web:hover{background:var(--blue);color:#fff;}
.btn-icon-download{
background:var(--blue);
border:1.5px solid var(--blue);
color:#fff;
}
.btn-icon-download:hover{background:var(--navy);border-color:var(--navy);}
.legis-item-note{background:#f7fafc;}
.legis-item-note:hover{background:#f7fafc;}

.legis-item-obsolete{
opacity:0.72;
}
.legis-item-obsolete .legis-icon{
color:#94a3b8;
}
.legis-item-obsolete .legis-title{
text-decoration:line-through;
text-decoration-color:#94a3b8;
color:var(--text-muted);
font-weight:600;
}
.legis-item-obsolete .legis-lawnum{
text-decoration:line-through;
text-decoration-color:#94a3b8;
}
.legis-obsolete-note{
font-size:0.74rem;
color:#b91c1c;
font-weight:600;
margin-top:3px;
}
.legis-item-obsolete .btn-icon-web{
border-color:#94a3b8;
color:#94a3b8;
}
.legis-item-obsolete .btn-icon-web:hover{background:#94a3b8;color:#fff;}

/* Kontextové právní upozornění na konci dropdownu Legislativa - týká se
   výhradně obsahu tohoto seznamu (odkazy na zákony/vyhlášky třetích
   stran), odděleno od zbytku vizuálně jemným orámováním a menším,
   tlumenějším písmem, aby nepůsobilo jako další "položka" seznamu. */
.legis-disclaimer{
margin-top:4px;
padding:10px 12px;
border-top:1px solid var(--border);
font-size:0.72rem;
line-height:1.55;
color:var(--text-muted);
font-style:italic;
}

@media (max-width:520px){
.legislativa-panel{
  right:auto;
  left:0;
  width:calc(100vw - 48px);
}
.cards-panel-header{
  align-items:flex-start;
}
}

/* ===== Podstránky: Kontaktujte nás / Odborné služby ===== */
.page-wrap{
max-width:900px;
margin:0 auto;
padding:32px 24px 48px;
}
.page-card{
background:var(--card-bg);
border-radius:14px;
box-shadow:var(--shadow);
padding:32px 36px;
}
.page-card h1{
font-size:1.55rem;
color:var(--navy);
margin-bottom:14px;
font-weight:700;
}
.page-intro{
color:var(--text-muted);
font-size:0.98rem;
line-height:1.65;
margin-bottom:28px;
max-width:680px;
}

.contact-form{
display:flex;
flex-direction:column;
gap:16px;
max-width:560px;
}
.form-row{display:flex;flex-direction:column;gap:6px;}
.form-row label{font-size:0.85rem;font-weight:600;color:var(--navy);}
.form-optional{font-weight:400;color:var(--text-muted);font-size:0.78rem;}
.form-row input,
.form-row textarea{
padding:10px 12px;
border:1px solid var(--border);
border-radius:8px;
font-family:inherit;
font-size:0.92rem;
color:var(--text);
background:#fff;
outline:none;
transition:border-color 0.15s, box-shadow 0.15s;
}
.form-row input:focus,
.form-row textarea:focus{
border-color:var(--blue);
box-shadow:0 0 0 3px rgba(26,111,176,0.14);
}
.form-row textarea{resize:vertical;min-height:120px;}
.form-honeypot{
position:absolute;
left:-9999px;
width:1px;
height:1px;
overflow:hidden;
}
.btn-submit{
align-self:flex-start;
background:var(--blue);
color:#fff;
border:none;
padding:11px 24px;
border-radius:8px;
font-size:0.92rem;
font-weight:600;
cursor:pointer;
transition:background 0.15s, transform 0.1s;
}
.btn-submit:hover{background:var(--navy);}
.btn-submit:active{transform:scale(0.97);}
.btn-submit:disabled{background:#a8b4bf;cursor:not-allowed;}
.form-status{
font-size:0.88rem;
padding:10px 14px;
border-radius:8px;
display:none;
}
.form-status.visible{display:block;}
.form-status.success{background:#d1fae5;color:var(--green-dark);}
.form-status.error{background:#fee2e2;color:#b91c1c;}

.services-intro{
color:var(--text);
font-size:0.98rem;
line-height:1.7;
margin-bottom:24px;
max-width:720px;
}
.services-groups{
display:flex;
flex-direction:column;
gap:22px;
}
.service-group{
border-left:4px solid var(--blue);
padding:4px 0 4px 16px;
}
.service-group h3{
color:var(--navy);
font-size:1.02rem;
margin-bottom:8px;
font-weight:700;
}
.service-group ul{
margin:0;
padding-left:20px;
color:var(--text-muted);
font-size:0.92rem;
line-height:1.65;
}
.service-group ul li{margin-bottom:4px;}
.services-note{
margin-top:28px;
font-size:0.82rem;
color:var(--text-muted);
font-style:italic;
border-top:1px solid var(--border);
padding-top:16px;
}


/* PATCH: zarovnani mapy a pravého panelu */
.container {
  grid-template-columns: minmax(600px, 1.35fr) minmax(300px, 400px) !important;
  gap: 16px !important;
  max-width: 1520px !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
}

.map-panel {
  min-width: 0;
}

#map,
.map {
  width: 100% !important;
  height: 680px !important;
}

.cards-panel {
  min-width: 0;
}

.cards-list {
  padding-right: 2px !important;
}

@media (max-width: 1100px) {
  .container {
    grid-template-columns: minmax(480px, 1fr) minmax(280px, 360px) !important;
    gap: 12px !important;
  }
}

@media (max-width: 900px) {
  .container {
    grid-template-columns: 1fr !important;
  }

  #map,
  .map {
    height: 600px !important;
  }
}


/* PATCH: posun mapy doleva a zúžení pravého panelu */
.container {
  grid-template-columns: minmax(640px, 1.55fr) minmax(260px, 360px) !important;
  gap: 12px !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 12px !important;
  padding-right: 12px !important;
}

.map-panel {
  min-width: 0;
  padding-right: 12px !important;
}

.cards-panel {
  min-width: 0;
  overflow: hidden;
}

.cards-list {
  max-height: calc(100vh - 170px);
  overflow-y: auto;
  padding-right: 0 !important;
}

#map,
.map {
  width: 100% !important;
  height: 690px !important;
}

@media (max-width: 1100px) {
  .container {
    grid-template-columns: minmax(520px, 1fr) minmax(250px, 330px) !important;
  }
}

@media (max-width: 900px) {
  .container {
    grid-template-columns: 1fr !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  #map,
  .map {
    height: 600px !important;
  }
}


/* PATCH: rozšíření seznamu vodáren a zkrácení spodního přesahu */
.container {
  grid-template-columns: minmax(560px, 1.1fr) minmax(420px, 520px) !important;
  gap: 14px !important;
  max-width: 1560px !important;
  padding-left: 12px !important;
  padding-right: 12px !important;
}

.map-panel {
  min-width: 0;
}

.cards-panel {
  min-width: 0;
  overflow: hidden;
}

.cards-panel h2 {
  margin-bottom: 10px;
}

.cards-list {
  max-height: calc(100vh - 140px) !important;
  overflow-y: auto;
  padding-right: 2px !important;
}

#map,
.map {
  width: 100% !important;
  height: 640px !important;
}

@media (max-width: 1100px) {
  .container {
    grid-template-columns: minmax(500px, 1fr) minmax(320px, 420px) !important;
  }
}

@media (max-width: 900px) {
  .container {
    grid-template-columns: 1fr !important;
  }

  #map,
  .map {
    height: 600px !important;
  }
}


/* PATCH: rozšíření mapy bez úprav pravého panelu */
.container {
  grid-template-columns: minmax(680px, 1.55fr) minmax(420px, 1fr) !important;
  gap: 12px !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 10px !important;
  padding-right: 10px !important;
}

.map-panel {
  min-width: 0;
  padding-right: 10px !important;
}

.cards-panel {
  min-width: 0;
}

#map,
.map {
  width: 100% !important;
  height: 690px !important;
}

.cards-list {
  max-height: calc(100vh - 160px);
  overflow-y: auto;
}

@media (max-width: 1100px) {
  .container {
    grid-template-columns: minmax(520px, 1fr) minmax(360px, 420px) !important;
  }
}

@media (max-width: 900px) {
  .container {
    grid-template-columns: 1fr !important;
  }

  #map,
  .map {
    height: 600px !important;
  }
}


/* OPRAVA: velká mapa a původní šířka pravého panelu */
.container {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 480px !important;
  gap: 16px !important;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 10px !important;
  padding-right: 10px !important;
}

.map-panel {
  width: 100% !important;
  min-width: 0 !important;
}

.cards-panel {
  width: 480px !important;
  min-width: 480px !important;
  max-width: 480px !important;
}

#map,
.map {
  width: 100% !important;
  height: 690px !important;
}

.cards-list {
  max-height: calc(100vh - 160px) !important;
  overflow-y: auto !important;
}

@media (max-width: 900px) {
  .container {
    grid-template-columns: 1fr !important;
  }

  .cards-panel {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  #map,
  .map {
    height: 600px !important;
  }
}


/* PATCH: one-screen-map-layout-v1 */
@media (min-width: 901px) {
  html,
  body {
    height: 100%;
    overflow: hidden;
  }

  .topbar {
    height: 70px;
    min-height: 70px;
    box-sizing: border-box;
  }

  .container {
    height: calc(100vh - 70px);
    min-height: 0;
    box-sizing: border-box;
    overflow: hidden;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
  }

  .map-panel,
  .cards-panel {
    min-height: 0 !important;
  }

  .map-panel {
    height: 100%;
    box-sizing: border-box;
    position: relative;
  }

  .map-panel-header {
    height: 34px;
    min-height: 34px;
    box-sizing: border-box;
  }

  #map,
  .map {
    height: calc(100% - 34px) !important;
    min-height: 0 !important;
  }

  .cards-panel {
    height: 100%;
    box-sizing: border-box;
    overflow: hidden;
  }

  .cards-list {
    height: calc(100% - 42px) !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden;
  }

  footer {
    display: block !important;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    height: 24px;
    box-sizing: border-box;
    padding: 4px 16px;
    background: var(--bg, #f4f7fa);
    z-index: 1100;
    font-size: 0.68rem;
    line-height: 1.2;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }
}

@media (max-width: 900px) {
  html,
  body {
    overflow-x: hidden;
  }
}


/* PATCH: homepage-two-column-layout-v1 */
@media (min-width: 901px) {
  /* Scrollování zůstává zapnuté. Omezení platí pouze pro homepage. */
  html.homepage-document,
  body.homepage-layout {
    height: auto;
    min-height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
  }

  body.homepage-layout .topbar {
    height: 70px;
    min-height: 70px;
    box-sizing: border-box;
  }

  body.homepage-layout .container {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 360px) !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: none !important;
    height: calc(100vh - 105px) !important;
    min-height: 390px;
    box-sizing: border-box;
    overflow: visible !important;
    padding: 8px 6px 6px !important;
  }

  body.homepage-layout .map-panel {
    height: 100%;
    min-height: 0;
    padding: 0 8px 8px !important;
    position: relative;
  }

  body.homepage-layout .map-panel-header {
    height: 28px;
    min-height: 28px;
    margin-bottom: 4px !important;
    padding-top: 0 !important;
  }

  body.homepage-layout #map,
  body.homepage-layout .map {
    width: 100% !important;
    height: calc(100% - 32px) !important;
    min-height: 350px !important;
  }

  body.homepage-layout .cards-panel {
    height: 100%;
    min-height: 0;
    overflow: hidden;
  }

  body.homepage-layout .cards-panel-header {
    height: 28px;
    min-height: 28px;
    margin-bottom: 5px !important;
    padding-left: 2px;
  }

  body.homepage-layout .cards-list {
    height: calc(100% - 33px) !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden;
    padding-right: 3px !important;
  }

  body.homepage-layout .card {
    padding: 9px 10px !important;
    margin-bottom: 6px;
  }

  body.homepage-layout .card-districts {
    margin-bottom: 6px;
    line-height: 1.25;
  }

  body.homepage-layout .card-buttons {
    gap: 4px;
  }

  body.homepage-layout .btn {
    padding: 5px 8px;
    font-size: 0.72rem;
  }

  body.homepage-layout footer {
    position: static !important;
    height: auto !important;
    min-height: 30px;
    box-sizing: border-box;
    padding: 6px 12px !important;
    overflow: visible !important;
    white-space: normal !important;
    text-overflow: clip !important;
    font-size: 0.68rem;
  }

  /* Pokud předchozí patch změnil podstránky, vracíme jim původní scrollování. */
  html:not(.homepage-document),
  body:not(.homepage-layout) {
    height: auto;
    overflow-x: hidden;
    overflow-y: auto;
  }

  body:not(.homepage-layout) .container {
    height: auto !important;
    overflow: visible !important;
  }

  body:not(.homepage-layout) footer {
    position: static !important;
    height: auto !important;
    min-height: 0;
    padding: 20px !important;
    overflow: visible !important;
    white-space: normal !important;
  }
}


/* PATCH: homepage-two-column-layout-v2 */
@media (min-width: 901px) {
  html.homepage-document,
  body.homepage-layout {
    height: auto;
    min-height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
  }

  body.homepage-layout .topbar {
    height: 70px;
    min-height: 70px;
    box-sizing: border-box;
  }

  body.homepage-layout .container {
    display: grid !important;
    grid-template-columns: minmax(0, 1.12fr) minmax(380px, 460px) !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: none !important;
    height: calc(100vh - 105px) !important;
    min-height: 390px;
    box-sizing: border-box;
    overflow: visible !important;
    padding: 8px 8px 6px 6px !important;
  }

  body.homepage-layout .map-panel {
    height: 100%;
    min-height: 0;
    padding: 0 8px 8px !important;
    position: relative;
  }

  body.homepage-layout .map-panel-header {
    height: 28px;
    min-height: 28px;
    margin-bottom: 4px !important;
    padding-top: 0 !important;
  }

  body.homepage-layout #map,
  body.homepage-layout .map {
    width: 100% !important;
    height: calc(100% - 32px) !important;
    min-height: 350px !important;
  }

  body.homepage-layout .cards-panel {
    height: 100%;
    min-height: 0;
    overflow: hidden;
  }

  body.homepage-layout .cards-panel-header {
    height: 28px;
    min-height: 28px;
    margin-bottom: 5px !important;
    padding-left: 2px;
  }

  body.homepage-layout .cards-list {
    height: calc(100% - 33px) !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden;
    padding-right: 3px !important;
  }

  body.homepage-layout .card {
    padding: 9px 10px !important;
    margin-bottom: 6px;
  }

  body.homepage-layout .card-districts {
    margin-bottom: 6px;
    line-height: 1.25;
  }

  body.homepage-layout .card-buttons {
    gap: 4px;
  }

  body.homepage-layout .btn {
    padding: 5px 8px;
    font-size: 0.72rem;
  }

  body.homepage-layout footer {
    position: static !important;
    height: auto !important;
    min-height: 30px;
    box-sizing: border-box;
    padding: 6px 12px !important;
    overflow: visible !important;
    white-space: normal !important;
    text-overflow: clip !important;
    font-size: 0.68rem;
  }

  html:not(.homepage-document),
  body:not(.homepage-layout) {
    height: auto;
    overflow-x: hidden;
    overflow-y: auto;
  }

  body:not(.homepage-layout) .container {
    height: auto !important;
    overflow: visible !important;
  }

  body:not(.homepage-layout) footer {
    position: static !important;
    height: auto !important;
    min-height: 0;
    padding: 20px !important;
    overflow: visible !important;
    white-space: normal !important;
  }
}


/* PATCH: homepage-legislativa-gap-v1 */
@media (min-width: 901px) {
  html.homepage-document,
  body.homepage-layout {
    overflow-x: hidden;
    overflow-y: auto;
  }

  body.homepage-layout .cards-panel-header {
    gap: 14px !important;
  }

  body.homepage-layout .cards-panel-header h2 {
    margin-right: auto;
    padding-right: 8px;
  }

  body.homepage-layout .legislativa-wrap {
    flex-shrink: 0;
    margin-left: 6px;
  }

  body.homepage-layout .btn-legislativa {
    white-space: nowrap;
  }

  body.homepage-layout .cards-list {
    padding-top: 2px;
  }
}


/* PATCH: homepage-cards-right-spacing-v1 */
@media (min-width: 901px) {
  body.homepage-layout .container {
    padding-right: 18px !important;
  }

  body.homepage-layout .cards-panel {
    margin-left: 8px !important;
    margin-right: 2px !important;
    min-width: 0;
    box-sizing: border-box;
  }

  body.homepage-layout .cards-panel-header {
    padding-right: 4px;
  }

  body.homepage-layout .cards-list {
    padding-right: 4px !important;
  }
}


/* PATCH: homepage-cards-right-spacing-v2 */
@media (min-width: 901px) {
  body.homepage-layout .cards-panel {
    margin-left: 38px !important;
    margin-right: 2px !important;
  }

  body.homepage-layout .cards-panel-header {
    padding-right: 4px;
  }

  body.homepage-layout .cards-list {
    padding-right: 4px !important;
  }
}


/* PATCH: homepage-correct-map-shrink-v1 */
@media (min-width: 901px) {
  /* Pravý panel se neposouvá přes mapu; mapa se zmenší a panel zůstane celý uvnitř stránky. */
  body.homepage-layout .container {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 460px !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
    padding-left: 6px !important;
    padding-right: 20px !important;
  }

  body.homepage-layout .map-panel {
    min-width: 0 !important;
    width: 100% !important;
  }

  body.homepage-layout .cards-panel {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    transform: none !important;
  }

  body.homepage-layout .cards-panel-header,
  body.homepage-layout .cards-list {
    width: 100% !important;
    box-sizing: border-box;
  }
}


/* PATCH: homepage-legislativa-legend-up-v1 */
@media (min-width: 901px) {
  /* Legislativa přibližně o 0,3 cm výš. */
  body.homepage-layout .legislativa-wrap {
    transform: translateY(-3px);
  }

  /* Legenda v pravém dolním rohu mapy přibližně o 0,5 cm výš. */
  body.homepage-layout .legend-panel {
    bottom: 33px !important;
  }
}


/* PATCH: hide-leaflet-attribution-logo-v1 */
/* Skrývá pouze malé logo/ikonu Leafletu. Textová atribuce zůstává zachována. */
.leaflet-control-attribution .leaflet-attribution-flag,
.leaflet-control-attribution img {
  display: none !important;
}


/* PATCH: rsd-card-territory-v1 */


/* PATCH: rsd-parenthetical-italic-only-v1 */
.card[data-oblast*="Ředitelství silnic a dálnic"] .card-districts {
  font-size: 0.78rem !important;
  font-style: normal;
  line-height: 1.35;
}

.card[data-oblast*="Ředitelství silnic a dálnic"] .rsd-territory-note {
  font-style: italic;
}
