    *{box-sizing:border-box;margin:0;padding:0}
    body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;height:100vh;display:flex;flex-direction:column;overflow:hidden;background:#f0f2f5}


    /* ── HEADER ── */
    #hdr{background:#1a3c6e;color:#fff;padding:10px 16px;display:flex;align-items:center;gap:12px;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,.35);z-index:1001;position:relative}
    #country-sw{display:flex;background:rgba(255,255,255,.13);border-radius:20px;padding:3px;gap:2px;flex-shrink:0}
    #city-sw{display:flex;background:rgba(255,255,255,.13);border-radius:20px;padding:3px;gap:2px;flex-shrink:0}
    .city-sw-btn{background:transparent;border:none;color:rgba(255,255,255,.65);padding:5px 15px;border-radius:16px;font-size:.8rem;font-weight:700;cursor:pointer;transition:all .15s;white-space:nowrap;font-family:inherit;letter-spacing:.3px}
    .city-sw-btn.active{background:#fff;color:#1a3c6e}
    .city-sw-btn:hover:not(.active){color:#fff;background:rgba(255,255,255,.18)}
    .city-sw-sep{width:1px;background:rgba(255,255,255,.25);margin:4px 3px;flex-shrink:0}
    #hdr h1{font-size:1.05rem;font-weight:800;white-space:nowrap;display:flex;align-items:center;letter-spacing:.3px}
    @media(min-width:700px){#hdr-sub{display:inline!important}}
    /* ── ONBOARDING BAR ── */
    #ob-bar{background:rgba(15,35,85,.97);border-bottom:1px solid rgba(255,255,255,.09);padding:6px 16px;display:flex;align-items:center;gap:10px;flex-shrink:0;flex-wrap:wrap;transition:opacity .2s}
    #ob-bar.ob-hidden{display:none}
    #ob-title{color:rgba(255,255,255,.82);font-size:.8rem;font-weight:700;white-space:nowrap;flex-shrink:0}
    #ob-desc{font-size:.76rem;color:rgba(255,255,255,.46);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    #ob-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex-shrink:0}
    .ob-chips-lbl{font-size:.72rem;color:rgba(255,255,255,.4);white-space:nowrap}
    .ob-chip{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.20);color:rgba(255,255,255,.86);border-radius:14px;padding:3px 12px;font-size:.78rem;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap;font-family:inherit}
    .ob-chip:hover{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.44)}
    #ob-close{background:transparent;border:none;color:rgba(255,255,255,.32);cursor:pointer;font-size:.85rem;padding:3px 7px;border-radius:4px;margin-left:auto;flex-shrink:0;transition:color .15s;font-family:inherit}
    #ob-close:hover{color:#fff}
    @media(max-width:700px){#ob-desc{display:none}#ob-title{display:none}}
    #sw{flex:1;max-width:700px;position:relative}
    #sw-row{position:relative}
    .sw-bar{display:flex;align-items:stretch;background:#fff;border-radius:7px;overflow:visible;box-shadow:0 0 0 1.5px rgba(255,255,255,.18)}
    .sw-seg{position:relative;display:flex;align-items:center;min-width:0}
    .sw-addr{flex:2}
    .sw-ku{flex:1.5}
    .sw-cislo{width:105px;flex-shrink:0}
    .sw-sep{width:1px;background:rgba(26,60,110,.15);align-self:stretch;flex-shrink:0;margin:5px 0}
    .sw-bar.addr-only .sw-ku,.sw-bar.addr-only .sw-cislo,.sw-bar.addr-only .sw-sep{display:none}
    .sw-seg input{width:100%;border:none;outline:none;padding:8px 11px;font-size:.88rem;background:transparent;font-family:inherit;color:#1a2535}
    .sw-seg input::placeholder{color:#9aabbf}
    .sw-seg input:focus{background:rgba(240,165,0,.04)}
    #sb{border:none;border-radius:0 7px 7px 0;background:#f0a500;color:#fff;font-weight:700;padding:0 16px;cursor:pointer;font-size:.85rem;white-space:nowrap;flex-shrink:0;transition:background .15s}
    #sb:hover{background:#d49000}
    #sb:disabled{background:#b8880a;cursor:default}
    .hbtn{padding:7px 13px;border:none;border-radius:5px;font-size:.82rem;font-weight:700;cursor:pointer}
    #hint{font-size:.72rem;opacity:.6;white-space:nowrap}
    #ac{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-radius:0 0 6px 6px;box-shadow:0 4px 14px rgba(0,0,0,.15);z-index:9999;max-height:240px;overflow-y:auto;display:none}
    #ac div{padding:8px 12px;cursor:pointer;font-size:.83rem;border-bottom:1px solid #f0f0f0;color:#1a2535}
    #ac div:hover{background:#eef4ff}#ac div:last-child{border:none}
    #smode{display:flex;gap:0;background:rgba(255,255,255,.15);border-radius:4px;padding:2px;flex-shrink:0}
    .smode-btn{padding:3px 10px;font-size:.72rem;font-weight:700;border:none;border-radius:3px;cursor:pointer;background:transparent;color:rgba(255,255,255,.7);transition:all .15s;white-space:nowrap}
    .smode-btn.active{background:#fff;color:#1a3c6e}

    /* ── PARCEL FIELDS ── */
    #pm-ku-wrap{position:relative;display:flex;align-items:center;width:100%}
    #pm-ku-wrap input{flex:1}
    #pm-ku-ac{position:absolute;top:100%;left:-1px;right:-1px;background:#fff;border:1px solid #ccd6ee;border-radius:0 0 6px 6px;box-shadow:0 4px 14px rgba(0,0,0,.15);z-index:10002;max-height:200px;overflow-y:auto;display:none}
    #pm-ku-ac div{padding:7px 11px;cursor:pointer;font-size:.82rem;color:#1a2535;border-bottom:1px solid #f0f0f0}
    #pm-ku-ac div:hover{background:#eef4ff}#pm-ku-ac div:last-child{border:none}
    #pm-error{font-size:.75rem;color:#c00;margin-top:5px;display:none;padding-left:2px}

    /* ── MAIN ── */
    #main{flex:1;display:flex;overflow:hidden;position:relative}
    #map-area{flex:1;position:relative;overflow:hidden}
    #map3d-base{position:absolute;inset:0;z-index:0;display:none}
    #map{position:absolute;inset:0;z-index:1}
    #map.map-crosshair,#map.map-crosshair .leaflet-container{cursor:crosshair!important}
    #map.map-crosshair .leaflet-interactive{cursor:pointer!important}
    body.mode-3d .leaflet-container{background:transparent!important}

    /* ── PANEL ── */
    #panel{width:520px;flex-shrink:0;background:#fff;border-left:1px solid #dde3ec;display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:500}

    /* tabs */
    #tabs{display:flex;border-bottom:2px solid #dde3ec;flex-shrink:0}
    .tab{flex:1;padding:9px 6px;text-align:center;cursor:pointer;font-size:.8rem;font-weight:600;color:#667;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s;user-select:none}
    .tab.active{color:#1a3c6e;border-bottom-color:#1a3c6e}
    .tab:hover{background:#f5f8ff}

    /* tab panes */
    #pane-info{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}
    #pane-info-inner{flex:1;overflow-y:auto;padding:13px;min-height:0}
    #pane-sel{flex:1;overflow-y:auto;padding:13px;display:none;min-height:0}

    /* placeholder */
    .ph{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:260px;text-align:center;color:#8a9bb5;gap:8px;padding:24px}
    .ph h3{font-size:.9rem;font-weight:600;color:#6b7f9e}
    .ph p{font-size:.76rem;line-height:1.6}

    /* location header */
    .lochdr{background:linear-gradient(135deg,#1a3c6e,#254e99);color:#fff;border-radius:8px;padding:11px 13px;margin-bottom:9px}
    .la{font-size:.92rem;font-weight:700;margin-bottom:2px}
    .lb{font-size:.75rem;opacity:.8;word-break:break-word;line-height:1.4;margin-bottom:3px}
    .lc{font-size:.69rem;opacity:.55;font-family:monospace}

    /* buttons */
    .btn-ext{display:flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;font-weight:700;font-size:.8rem;padding:7px;border-radius:5px;margin-bottom:7px;transition:background .15s}
    .btn-up{background:#2a6099;color:#fff}.btn-up:hover{background:#1a4a7a}

    /* section */
    .sec{border:1px solid #dde7f5;border-radius:7px;margin-bottom:8px;overflow:hidden}
    .sh{background:#eef3fb;padding:8px 12px;font-size:.76rem;font-weight:700;color:#1a3570;display:flex;align-items:center;gap:5px;border-bottom:1px solid #d4e2f5;cursor:pointer;user-select:none}
    .sh .cnt{margin-left:auto;background:#1a3570;color:#fff;font-size:.65rem;border-radius:10px;padding:1px 7px;font-weight:700}
    .sh .ar{font-size:.6rem;margin-left:3px;opacity:.5}
    .sb2{padding:9px 11px}

    /* skládací obal spodní části panelu parcely (od GDV dolů).
       Karty uvnitř zůstávají beze změny – obal jim jen dá hlavičku a schová je pod ni,
       proto nemá vlastní rámeček ani pozadí těla. */
    .dc-fold{margin-bottom:8px}
    .dc-fold>summary{background:#eef3fb;border:1px solid #dde7f5;border-radius:7px;padding:8px 12px;
      font-size:.76rem;font-weight:700;color:#1a3570;display:flex;align-items:center;gap:6px;
      cursor:pointer;user-select:none;list-style:none}
    .dc-fold>summary::-webkit-details-marker{display:none}
    .dc-fold>summary:hover{background:#e4ecf9}
    .dc-fold>summary .dc-res{margin-left:auto;font-size:.74rem;font-weight:800;color:#12325f;
      text-align:right;letter-spacing:-.01em}
    .dc-fold>summary .ar{font-size:.6rem;opacity:.5;flex-shrink:0;transition:transform .15s}
    .dc-fold[open]>summary{border-radius:7px 7px 0 0}
    .dc-fold[open]>summary .ar{transform:rotate(180deg)}
    .dc-fold>.dc-fold-body{padding:7px 0 0}
    /* výsledek, který si sekce určí sama – čte ho jen hlavička, v těle se nezobrazuje */
    .dc-res-src{display:none}
    /* nadpis uvnitř skládačky by zdvojoval hlavičku – tu už nese summary */
    .dc-fold .sec-hdr{display:none}

    /* card */
    .card{background:#f8faff;border:1px solid #dae4f5;border-radius:5px;padding:7px 9px;margin-bottom:5px;font-size:.77rem}
    .card:last-child{margin-bottom:0}
    .ctitle{font-weight:700;color:#1a3c6e;font-size:.8rem;margin-bottom:4px}
    .row{display:flex;gap:5px;margin-bottom:2px}
    .row:last-child{margin-bottom:0}
    .k{color:#788;min-width:128px;flex-shrink:0;font-size:.71rem;padding-top:1px}
    .v{color:#1a2535;font-weight:500;word-break:break-word;font-size:.77rem}
    .vtag{display:inline-block;background:#fffbe0;border:1px solid #e8c400;border-radius:3px;padding:1px 6px;font-weight:700;color:#5a3c00;font-size:.74rem}
    .vred{display:inline-block;background:#fff0f0;border:1px solid #e08080;border-radius:3px;padding:1px 6px;font-weight:700;color:#800000;font-size:.74rem}
    .vgreen{display:inline-block;background:#f0fff4;border:1px solid #60c080;border-radius:3px;padding:1px 6px;font-weight:700;color:#1a5a1a;font-size:.74rem}
    .nd{color:#aab;font-size:.74rem;font-style:italic;padding:2px 0}
    .tip{background:#fffbe0;border:1px solid #e8c040;border-radius:4px;padding:6px 9px;font-size:.73rem;color:#5a3c00;line-height:1.5;margin-top:7px}
    a.lnk{color:#2a5faa;font-size:.74rem;text-decoration:underline}

    /* zone picker */
    .zone-sel{display:flex;flex-wrap:wrap;gap:4px;margin:7px 0}
    .zbtn{padding:3px 8px;border:1px solid #c0cfe8;border-radius:3px;background:#f5f8ff;cursor:pointer;font-size:.72rem;font-weight:700;color:#1a3570;transition:all .15s}
    .zbtn:hover,.zbtn.active{background:#1a3570;color:#fff;border-color:#1a3570}
    .zone-detail{margin-top:0;padding:9px 11px;background:#f5f8ff;border:1px solid #c0d4f0;border-radius:5px;font-size:.76rem;display:none}
    .zone-detail .zt{font-weight:700;color:#1a3570;font-size:.83rem;margin-bottom:6px}
    .zone-detail .zr{display:flex;gap:7px;margin-bottom:3px}
    .zone-detail .zk{color:#778;min-width:130px;font-size:.71rem}
    .zone-detail .zv{font-weight:600;color:#1a2535}

    /* section header */
    .sec-hdr{font-size:.72rem;font-weight:800;color:#1a3570;letter-spacing:.06em;text-transform:uppercase;padding:10px 2px 4px;margin-top:4px;border-top:2px solid #dde7f5}
    .sec-hdr:first-of-type{border-top:none;margin-top:0}

    /* building dim inputs – no spinners */
    .draw-dim-inp::-webkit-outer-spin-button,.draw-dim-inp::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
    .draw-dim-inp{-moz-appearance:textfield}

    /* spinner */
    .loading{text-align:center;padding:20px;color:#8a9bb5;font-size:.82rem}
    .sp{display:inline-block;width:14px;height:14px;border:2px solid #ccd;border-top-color:#2a4a8a;border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle;margin-right:5px}
    @keyframes spin{to{transform:rotate(360deg)}}
    @keyframes acqScroll{from{background-position:0 0}to{background-position:80px 0}}

    /* ── SELECTION PANE ── */
    .sel-summary{background:#1a3c6e;color:#fff;border-radius:8px;padding:11px 13px;margin-bottom:10px}
    .sel-summary .ss-total{font-size:1.1rem;font-weight:700;margin-bottom:3px}
    .sel-summary .ss-count{font-size:.78rem;opacity:.75}
    .sel-btn{padding:6px 12px;border:none;border-radius:5px;cursor:pointer;font-size:.79rem;font-weight:700;transition:background .15s}
    .btn-clear{background:#e05050;color:#fff;margin-right:6px}.btn-clear:hover{background:#c03030}
    .btn-analyze{background:#2a8a50;color:#fff}.btn-analyze:hover{background:#1a6a38}
    .parcel-item{background:#f8faff;border:1px solid #dae4f5;border-radius:5px;padding:7px 9px;margin-bottom:5px;font-size:.77rem;display:flex;align-items:center;gap:8px}
    .parcel-dot{width:14px;height:14px;border-radius:3px;flex-shrink:0}
    .parcel-info{flex:1}
    .parcel-remove{background:none;border:none;cursor:pointer;color:#e05050;font-size:1rem;padding:0 2px;line-height:1}
    .sel-ph{text-align:center;padding:30px;color:#8a9bb5;font-size:.8rem}
    .zone-badge{display:inline-block;background:#1a3570;color:#fff;border-radius:3px;padding:1px 7px;font-size:.7rem;font-weight:700;margin-left:5px;vertical-align:middle}
    .zone-badge.loading{background:#8a9bb5}
    .zone-name{font-size:.69rem;color:#556;margin-top:1px}
    .leaflet-tooltip.zone-tt{background:#1a3570;color:#fff;border:none;border-radius:6px;padding:7px 11px;font-size:.78rem;box-shadow:0 3px 10px rgba(0,0,0,.35);pointer-events:none;line-height:1.45}
    .leaflet-popup.inz-popup .leaflet-popup-content-wrapper{border-radius:10px;box-shadow:0 8px 28px rgba(0,0,0,.25);padding:0;overflow:hidden}
    .leaflet-popup.inz-popup .leaflet-popup-content{margin:14px 16px;min-width:200px}
    .leaflet-tooltip.zone-tt.leaflet-tooltip-top::before{border-top-color:#1a3570}
    .leaflet-tooltip.zone-tt.leaflet-tooltip-bottom::before{border-bottom-color:#1a3570}
    .leaflet-tooltip.zone-label{background:transparent;border:none;box-shadow:none;padding:0;font-size:.65rem;font-weight:700;color:#222;text-shadow:0 0 3px #fff,0 0 3px #fff;pointer-events:none}

    /* ── ZONE CARD (prominent) ── */
    .zone-card{border-radius:8px;margin-bottom:9px;overflow:hidden;border:1px solid #c5d0e8;box-shadow:0 2px 7px rgba(0,0,0,.1)}
    .zc-top{background:linear-gradient(135deg,#0f2a5e,#1a4a8a);color:#fff;padding:7px 12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
    .zc-code{font-size:1rem;font-weight:800;letter-spacing:.5px;line-height:1}
    .zc-name{font-size:.82rem;opacity:.88;font-weight:500}
    .zc-params{display:flex;gap:8px;padding:8px 14px 4px;flex-wrap:wrap;background:#f4f7fd}
    .zc-params span{background:#dce6f7;color:#1a3570;border-radius:12px;padding:3px 11px;font-size:.76rem;font-weight:600}
    .zc-popis{padding:6px 14px 7px;font-size:.73rem;color:#334;line-height:1.5;background:#fff}
    .zc-hpp{margin:0 10px 8px;background:#eef3ff;border:1px solid #b4c6ee;border-left:4px solid #1a3570;border-radius:5px;padding:8px 11px;color:#0f1f4a}
    .zc-hpp-lbl{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;opacity:.65;margin-bottom:3px}
    .zc-hpp-row{display:flex;align-items:baseline;gap:7px;margin-bottom:2px;flex-wrap:wrap}
    .zc-hpp-val{font-size:1.15rem;font-weight:800;color:#1a3570}
    .zc-hpp-sub{font-size:.71rem;color:#445;opacity:.75}
    .zc-permit{margin:0 10px 6px;background:#f2faf5;border:1px solid #a8d8b5;border-left:4px solid #2e9a50;border-radius:5px;padding:7px 10px;font-size:.75rem;line-height:1.5;color:#1a3320}
    .zc-cond{margin:0 10px 6px;background:#fffbf0;border:1px solid #f5d98a;border-left:4px solid #d4900a;border-radius:5px;padding:7px 10px;font-size:.75rem;line-height:1.5;color:#3a2800}
    .zc-forbid{margin:0 10px 6px;background:#fef3f3;border:1px solid #f0b3b3;border-left:4px solid #d32f2f;border-radius:5px;padding:7px 10px;font-size:.75rem;line-height:1.5;color:#3a1010}
    .zc-footer{padding:4px 14px 9px;font-size:.64rem;color:#899;background:#fff}

    /* ── ACQUISITION FILTER ── */
    .acq-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}
    .acq-row label{flex:1;font-size:.77rem;color:#445}
    .acq-input{width:130px;padding:5px 8px;border:1px solid #c5d0e8;border-radius:4px;font-size:.82rem;text-align:right}
    .acq-check{display:flex;align-items:center;gap:7px;margin-bottom:2px;cursor:pointer}
    .acq-check label{font-size:.77rem;color:#445;cursor:pointer}
    .acq-result-item{background:#f0fdf4;border:1px solid #a8d8b5;border-left:4px solid #1a8a40;border-radius:5px;padding:8px 11px;margin-bottom:6px;cursor:pointer;transition:background .15s}
    .acq-result-item:hover{background:#d8f5e4}
    .acq-ri-top{display:flex;align-items:center;gap:8px;margin-bottom:3px;flex-wrap:wrap}
    .acq-cislo{font-weight:700;font-size:.85rem;color:#1a2535}
    .acq-ri-vals{font-size:.74rem;color:#445;display:flex;gap:10px;flex-wrap:wrap}
    .acq-run-btn{width:100%;padding:9px;background:#1a3570;color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:700;cursor:pointer;transition:background .15s;margin-top:4px}
    .acq-run-btn:hover{background:#0f2448}
    .acq-run-btn.running{background:#c03030}
    .acq-progress-bar{background:#e8eef8;border-radius:4px;height:7px;margin-bottom:6px;overflow:hidden}
    .acq-progress-fill{background:#1a3570;height:7px;border-radius:4px;transition:width .25s}
    .acq-section{margin-top:9px;padding-top:8px;border-top:1px solid #dde7f5}
    .acq-section-title{font-size:.7rem;font-weight:800;color:#1a3570;letter-spacing:.05em;text-transform:uppercase;margin-bottom:5px}
    .acq-section-title span{text-transform:none;font-weight:400;color:#889;font-size:.68rem;letter-spacing:0}
    .acq-drop-wrap{position:relative}
    .acq-drop-btn{width:100%;display:flex;align-items:center;justify-content:space-between;padding:5px 9px;border:1px solid #c5d0e8;border-radius:4px;background:#fff;font-size:.8rem;color:#334;cursor:pointer;text-align:left;font-family:inherit;transition:border-color .15s}
    .acq-drop-btn:hover,.acq-drop-wrap.open .acq-drop-btn{border-color:#1a3570}
    .acq-drop-arrow{font-size:.6rem;color:#889;margin-left:6px;flex-shrink:0;transition:transform .15s}
    .acq-drop-wrap.open .acq-drop-arrow{transform:rotate(180deg)}
    .acq-drop-panel{display:none;position:absolute;left:0;right:0;top:calc(100% + 3px);background:#fff;border:1px solid #c5d0e8;border-radius:5px;box-shadow:0 4px 16px rgba(0,0,0,.14);z-index:9999;max-height:210px;overflow-y:auto;padding:3px 0 0}
    .acq-drop-wrap.open .acq-drop-panel{display:block}
    .acq-drop-close{display:block;width:100%;padding:5px 11px;background:#f4f7fd;border:none;border-top:1px solid #e8eef8;font-size:.72rem;color:#1a3570;font-weight:700;cursor:pointer;text-align:center;font-family:inherit;position:sticky;bottom:0}
    .acq-drop-close:hover{background:#e8eef8}
    .acq-drop-item{display:flex;align-items:center;gap:8px;padding:6px 11px;cursor:pointer;font-size:.79rem;color:#334;white-space:nowrap}
    .acq-drop-item:hover{background:#f0f4fc}
    .acq-drop-item input[type=checkbox]{margin:0;accent-color:#1a3570;cursor:pointer;flex-shrink:0}
    .acq-select{width:100%;padding:5px 9px;border:1px solid #c5d0e8;border-radius:4px;font-size:.8rem;font-family:inherit;color:#334;background:#fff;cursor:pointer;-webkit-appearance:auto}
    .acq-note{font-size:.68rem;color:#889;margin-top:3px}

    /* ── IPR export tiles – zakázat browser smoothing ── */
    .ipr-tile{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;image-rendering:pixelated}

    /* ── Wrocław DB data – zelené zbarvení přes CSS filter ── */
    .wr-dbdata img{filter:sepia(1) saturate(6) hue-rotate(70deg) brightness(0.85)}

    /* ── Podlaží budov – NP labely ── */
    .np-label{background:none!important;border:none!important;box-shadow:none!important;font-size:.62rem;font-weight:800;color:#fff;text-shadow:0 0 3px rgba(0,0,0,.8),0 0 6px rgba(0,0,0,.5);pointer-events:none;white-space:nowrap;text-align:center}

    /* ── Základní mapa – lepší kontrast ── */
    .base-tile-light img{}
    .base-tile-dark img{filter:brightness(1)}
    .leaflet-tile-container img:not([src]){ visibility:hidden }
    /* Tmavé pozadí při ortofotu – prosvítající mezery jsou tmavé místo bílé */
    .leaflet-container.orto-active{ background:#111!important }
    /* tmavá mapa – invertovat barvy pro noční/tmavý styl */
    /* ── Bratislava kataster WMS – zčernění čar (ESKN vrací barevné linie) ── */
    .ba-kat-wms-tiles { filter: brightness(0); }

    /* ── BÍLÁ MŘÍŽKA PŘES CELOU MAPU — příčina a oprava ──
       Leaflet 1.9 dal do svého `leaflet.css` (ř. 65) pravidlo `.leaflet-tile{mix-blend-mode:
       plus-lighter}`. Slouží k prolnutí staré a nové dlaždice při animaci, jenže je to
       SČÍTACÍ režim: kde se dvě NEPRŮHLEDNÉ dlaždice byť o pixel překryjí, sečtou se jejich
       barvy a výsledek se ořízne na čistou bílou. Při zoomu prohlížeče, kde okraje dlaždic
       padnou na zlomky pixelu, se sousedky občas o pixel přesahují → bílá mřížka, která se
       při jiném zoomu zase ztratí.
       Změřeno na screenshotu uživatele: čáry přesně 255,255,255, rozestup 192 px při zoomu
       75 % (= 256 × 0,75), a obarvení kontejneru ani vrstev pod dlaždicemi se v nich NEUKÁZALO
       — takže to nejsou mezery, ale kresba navrch.
       Návratem na `normal` se překryv jen přemaluje, nesečte. Prolnutí při animaci tím přijde
       o kosmetiku, což je proti trvalé mřížce zanedbatelná cena. */
    .leaflet-tile { mix-blend-mode: normal !important; }

    /* ── OVERLAYS ── */
    #ovl{position:fixed;bottom:26px;left:calc(50vw - 210px);transform:translateX(-50%);z-index:900;display:inline-block;background:rgba(255,255,255,.97);border-radius:7px;padding:5px 9px;box-shadow:0 2px 8px rgba(0,0,0,.2);font-size:.75rem;max-width:calc(100vw - 450px)}
    #ovl-mob-btn{display:none}
    /* Zalamovat, ne přetékat. Do 2026-08-31 tu bylo `nowrap`: jakmile se řada tlačítek
       nevešla do `max-width` lišty, přetekla ven z okna a poslední vrstvy se nedaly kliknout
       (odhaleno v Bratislavě po přidání vrstev — tlačítko „Nepriepustnosť" bylo mimo viewport).
       S wrapem lišta roste nahoru a nic se neztratí; kde se řada vejde, vypadá stejně jako dřív. */
    .ovl-row{display:flex;gap:4px;align-items:center;flex-wrap:wrap;row-gap:4px}
    .ovl-row+.ovl-row{margin-top:4px}
    .olabel{color:#556;font-weight:700;font-size:.72rem;white-space:nowrap}
    .obtn{padding:3px 9px;border:1px solid #ccd;border-radius:4px;cursor:pointer;background:#f5f7ff;color:#334;font-size:.72rem;white-space:nowrap;transition:all .15s}
    .obtn.on{background:#1a3570;color:#fff;border-color:#1a3570}
    .ph-spin{animation:ph-pulse 1.1s ease-in-out infinite;cursor:wait!important}
    @keyframes ph-pulse{0%,100%{opacity:1}50%{opacity:.38}}
    .ph-err{background:#dc2626!important;color:#fff!important}
    .mup-opt{padding:5px 12px;font-size:.72rem;cursor:pointer;color:#1a3570;font-weight:600;white-space:nowrap}
    .mup-opt:hover{background:#f0f4fb}
    .mup-opt.sel{background:#1a3570;color:#fff}
    #dtm-tooltip{position:absolute;z-index:1500;background:rgba(15,25,55,.94);color:#eef;padding:6px 11px;border-radius:6px;font-size:.71rem;pointer-events:none;display:none;max-width:300px;line-height:1.5;box-shadow:0 2px 10px rgba(0,0,0,.55)}
    #sekm-tooltip{position:absolute;z-index:1500;background:rgba(15,25,55,.94);color:#eef;padding:6px 11px;border-radius:6px;font-size:.71rem;pointer-events:none;display:none;max-width:300px;line-height:1.5;box-shadow:0 2px 10px rgba(0,0,0,.55)}
    #dtm-legend{display:none;margin-top:6px;background:rgba(255,255,255,.97);border-radius:6px;box-shadow:0 2px 10px rgba(0,0,0,.22);border:1px solid #d0d8ea;padding:8px 10px;min-width:175px;font-family:inherit}
    #dtm-legend h4{margin:0 0 6px;font-size:.68rem;font-weight:800;color:#1a3570;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #e0e6f0;padding-bottom:4px}
    .dtm-lr{display:flex;align-items:center;gap:7px;margin-bottom:4px;color:#223}
    .dtm-ll{width:28px;height:4px;border-radius:2px;flex-shrink:0}
    .dtm-op-row{margin-top:7px;border-top:1px solid #e0e6f0;padding-top:6px}
    .dtm-op-lbl{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:.71rem;color:#333;font-weight:600;user-select:none}
    .dtm-op-lbl input[type=checkbox]{accent-color:#1a3570;width:13px;height:13px;cursor:pointer}

    /* Měření – tlačítka aktivní stav (platí na všech rozlišeních) */
    .mbtn{display:flex;align-items:center;justify-content:center;font-size:15px;cursor:pointer;background:#fff;color:#333;transition:background .15s,color .15s;border:none;text-decoration:none;width:26px;height:26px;padding:0}
    .mbtn.on{background:#1a3570!important;color:#fff!important}
    /* ── Kóty parcely (js/koty.js) ──
       Popisek se natáčí podle hrany, takže musí mít vlastní pozadí — na ortofotu by
       samotný text zmizel v obraze a stín jako u .np-label se na natočeném štítku láme. */
    .dc-kota{display:inline-block;font-size:11px;font-weight:700;color:#12306b;background:rgba(255,255,255,.88);border:1px solid rgba(26,53,112,.25);border-radius:3px;padding:0 3px;white-space:nowrap;line-height:1.35;box-shadow:0 1px 2px rgba(0,0,0,.12);pointer-events:none}

    /* Měření – výsledkový panel pod ikonkami */
    #measure-panel{display:none;margin-top:6px;background:#fff;border-radius:6px;box-shadow:0 2px 10px rgba(0,0,0,.22);border:1px solid #d0d8ea;min-width:150px;overflow:hidden;font-family:inherit}
    #measure-panel table{width:100%;border-collapse:collapse;font-size:.72rem}
    #measure-panel th{background:#1a3570;color:#fff;padding:5px 8px;text-align:left;font-size:.71rem;font-weight:700;white-space:nowrap}
    #measure-panel td{padding:4px 8px;border-bottom:1px solid #eef0f5;color:#223;white-space:nowrap}
    #measure-panel td:first-child{color:#667;font-size:.68rem;width:60px}
    #measure-panel tr:last-child td{border-bottom:none}
    #measure-panel .mp-live{color:#1a8a50;font-weight:700}
    #measure-panel .mp-clear{display:block;width:100%;padding:4px 8px;background:none;border:none;border-top:1px solid #eef0f5;color:#c03;font-size:.69rem;cursor:pointer;text-align:left;font-family:inherit}
    #measure-panel .mp-clear:hover{background:#fff5f5}

    /* Legenda – Podlaží budov */
    #np-legend{display:none;margin-top:6px;background:rgba(255,255,255,.97);border-radius:6px;box-shadow:0 2px 10px rgba(0,0,0,.22);border:1px solid #d0d8ea;padding:7px 10px;min-width:130px;font-family:inherit}
    #np-legend .np-title{font-size:.68rem;font-weight:800;color:#1a3570;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px;border-bottom:1px solid #e0e6f0;padding-bottom:4px}
    .np-lr{display:flex;align-items:center;gap:7px;margin-bottom:3px;font-size:.7rem;color:#223}
    .np-lr:last-child{margin-bottom:0}
    .np-lc{width:18px;height:14px;border-radius:3px;flex-shrink:0;border:1px solid rgba(0,0,0,.12)}

    /* Legenda – Development skóre */
    #score-legend,#pscore-legend,#rcn-legend,#rcn-legend-poznan,#pnb-legend{display:none;margin-top:6px;background:rgba(255,255,255,.97);border-radius:6px;box-shadow:0 2px 10px rgba(0,0,0,.22);border:1px solid #d0d8ea;padding:7px 10px;min-width:145px;max-width:196px;font-family:inherit}
    #score-legend .sc-title,#pscore-legend .sc-title,#pnb-legend .sc-title{font-size:.68rem;font-weight:800;color:#1a3570;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px;border-bottom:1px solid #e0e6f0;padding-bottom:4px}
    .sc-lr{display:flex;align-items:center;gap:7px;margin-bottom:3px;font-size:.7rem;color:#223}
    .sc-lr:last-child{margin-bottom:0}
    .sc-lc{width:18px;height:14px;border-radius:3px;flex-shrink:0;border:1px solid rgba(0,0,0,.12)}

    /* Tooltip vrstvy „Nová výstavba“ – názvy záměrů z registru GUNB bývají přes 100 znaků
       („budowa budynków mieszkalnych wielorodzinnych A,B,C z garażami podziemnymi wraz z…“)
       a Leaflet má u tooltipů white-space:nowrap, takže se roztáhly mimo obrazovku. */
    .pnb-tip{width:max-content;max-width:320px;white-space:normal;line-height:1.45}
    .pnb-tip b{display:inline-block;margin-bottom:2px}

    /* selection mode indicator */
    #sel-mode-ind{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:900;background:#2a8a50;color:#fff;border-radius:6px;padding:5px 14px;font-size:.78rem;font-weight:700;display:none;box-shadow:0 2px 8px rgba(0,0,0,.2)}
    /* On-map loading štítek vrstev – horní střed mapy (dvojče #sel-mode-ind, brand modrá) */
    #map-loading-ind{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:901;display:none;align-items:center;gap:8px;background:#1a3570;color:#fff;border-radius:6px;padding:5px 14px;font-size:.78rem;font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.2);opacity:0;transition:opacity .18s ease}
    #map-loading-ind.on{display:flex;opacity:1}
    #map-loading-ind .mli-sp{width:13px;height:13px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}
    /* když běží štítek načítání, posuň indikátor výběru pod něj (nekolidují na top:10px) */
    #map-loading-ind.on ~ #sel-mode-ind{top:46px}
    @media (prefers-reduced-motion: reduce){ #map-loading-ind .mli-sp{animation:none} }
    /* parcel polygons – ensure mouse events work even with near-transparent fill */
    .parcel-poly{pointer-events:all!important;cursor:pointer}
    .leaflet-interactive:focus{outline:none}
    .parcel-tooltip{background:rgba(30,50,100,.85);color:#fff;border:none;border-radius:4px;padding:2px 6px;font-size:.7rem;font-weight:600;box-shadow:none;white-space:nowrap}
    .parcel-num-label{background:transparent;border:none;box-shadow:none;padding:0;font-size:.6rem;font-weight:700;color:#1a3570;text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 3px #fff;pointer-events:none;white-space:nowrap}
    .kt-zone-label{background:transparent;border:none;box-shadow:none;padding:0 2px;font-size:.62rem;font-weight:700;color:#111;text-shadow:0 0 2px rgba(255,255,255,.9),0 0 2px rgba(255,255,255,.9);pointer-events:none;white-space:nowrap}
    .kt-zone-label::before{display:none}
    .zoom-lt16 .kt-zone-label{display:none}
    .parcel-num-label::before{display:none}
    .draw-bld-tip{background:rgba(20,40,90,.88);color:#fff;border:none;border-radius:4px;padding:2px 7px;font-size:.68rem;font-weight:700;box-shadow:none;white-space:nowrap;pointer-events:none}
    .draw-bld-tip::before{display:none}
    /* zoom nudge — hláška "přibližte pro výběr parcely" u místa kliku */
    .zoom-nudge-anchor{display:none!important}
    .zoom-nudge-tt{background:rgba(26,53,112,.93)!important;color:#fff!important;border:none!important;border-radius:6px!important;padding:5px 12px!important;font-size:.76rem!important;font-weight:600!important;box-shadow:0 2px 12px rgba(0,0,0,.45)!important;pointer-events:none!important;white-space:nowrap!important;animation:znFadeIn .13s ease}
    .leaflet-tooltip.zoom-nudge-tt.leaflet-tooltip-top::before{border-top-color:rgba(26,53,112,.93)}
    @keyframes znFadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}

    /* ── HAMBURGER MENU ── */
    #mob-menu-btn{display:none;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:5px;padding:6px 10px;font-size:1.1rem;cursor:pointer;flex-shrink:0;margin-left:auto;line-height:1}
    #mob-menu{display:none;position:absolute;top:100%;right:0;z-index:3000;background:#1a3c6e;border:1px solid rgba(255,255,255,.2);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.35);min-width:180px;overflow:hidden}
    #mob-menu button{display:block;width:100%;background:none;border:none;border-bottom:1px solid rgba(255,255,255,.12);color:#fff;text-align:left;padding:13px 18px;font-size:.88rem;font-weight:600;cursor:pointer}
    #mob-menu button:last-child{border-bottom:none}
    #mob-menu button:active{background:rgba(255,255,255,.15)}

    /* ── MOBILE TOGGLE BUTTON ── */
    #mob-toggle{display:none;position:fixed;bottom:calc(18px + env(safe-area-inset-bottom, 0px));right:16px;z-index:1200;background:#1a3c6e;color:#fff;border:none;border-radius:50px;padding:11px 18px;font-size:.82rem;font-weight:700;box-shadow:0 4px 16px rgba(0,0,0,.35);cursor:pointer;align-items:center;gap:7px;min-height:44px}

    /* ── RESPONSIVE / MOBILE ── */
    /* Tablety na výšku a nemaximalizovaná okna (769–1145 px).
       Mobilní režim začíná až pod 768 px, jenže desktopová hlavička potřebuje 1146 px –
       mezi tím tekla stránka do strany: na 820 px o 325 px, na 1024 px o 121 px.
       Panel vedle mapy tu zůstává (na tabletu je užitečný), jen se hlavička zalomí do dvou
       řádků a panel se zúží na 450 px – při užším se rozsah HPP láme na dva řádky. */
    @media (min-width: 769px) and (max-width: 1145px) {
      #hdr{flex-wrap:wrap;row-gap:6px}
      #hdr::after{content:'';flex-basis:100%;order:5}   /* zlom: co má order 6, spadne na druhý řádek */
      #city-sw,#parcel-finder-link,#country-sw,#auth-btn{order:6}
      #panel{width:450px}
    }

    @media (max-width: 768px) {
      body{overflow:hidden}

      /* Header: kompaktní – logo+státy+hamburger na řádku 1, města na řádku 2, hledání na řádku 3 */
      #hdr{flex-wrap:wrap;padding:6px 12px;gap:2px}
      #hdr h1{font-size:.95rem}
      #hint{display:none}
      #sw{max-width:100%;order:3;flex-basis:100%}
      #si{font-size:.9rem;padding:8px 12px}
      #sb{padding:8px 13px;font-size:.82rem}
      #ac{top:38px}
      /* Schovat header tlačítka – na mobilu jsou v hamburger menu */
      #hdr > button:not(#mob-menu-btn){display:none}
      #mob-menu-btn{display:flex}
      #mob-menu-btn.open + #mob-menu{display:block}

      /* Hlavní layout: flexbox, panel dole – bez hardcoded vh */
      #main{flex-direction:column}
      #map-area{height:45vh;flex:none}
      #panel{width:100%;flex:1;border-left:none;border-top:1px solid #dde3ec;min-height:0;overflow:hidden}

      /* K4 + kompaktní header: city-sw na vlastní řádek 2, country-sw zůstává na řádku 1 s h1 */
      #city-sw{order:2;flex-basis:100%;flex-shrink:1;min-width:0;overflow-x:auto;scrollbar-width:none;padding:2px}
      #city-sw::-webkit-scrollbar{display:none}
      #hdr h1{flex-shrink:0}
      /* Country-sw – kompaktnější tlačítka aby se vešla na řádek 1 vedle h1 a hamburgeru */
      #country-sw{padding:2px}
      #country-sw .city-sw-btn{padding:5px 10px;font-size:.72rem}

      /* Touch targets ≥44px */
      .city-sw-btn{min-height:44px;display:inline-flex;align-items:center}
      #ob-close{min-height:44px;min-width:44px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center}
      #mob-menu-btn{min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center}

      /* Onboarding chipy – povolit smrštění aby nevznikal horizontální overflow */
      #ob-chips{flex-shrink:1;min-width:0}

      /* Tabs: větší pro dotyk */
      .tab{font-size:.75rem;padding:9px 4px;min-height:44px}

      /* Overlay vrstev – skrytý, otevírá se tlačítkem */
      #ovl{display:none;position:fixed;left:8px;right:8px;bottom:auto;top:auto;transform:none;max-width:none;flex-direction:column;gap:0;padding:6px 8px;z-index:1050}
      #ovl.mob-open{display:flex}
      .ovl-row{display:flex;flex-wrap:wrap;gap:3px;align-items:center;padding:4px 0}
      .ovl-row+.ovl-row{border-top:1px solid #e8edf5}
      .obtn{padding:6px 10px;font-size:.70rem;flex-shrink:0}
      .olabel{display:none}
      /* Tlačítko pro otevření – dole vlevo v mapě */
      #ovl-mob-btn{display:flex;position:absolute;top:calc(45vh - 44px);left:8px;z-index:901;background:rgba(255,255,255,.95);border:1px solid #ccd6ee;border-radius:7px;padding:5px 11px;font-size:.75rem;font-weight:700;color:#1a3570;cursor:pointer;box-shadow:0 2px 7px rgba(0,0,0,.18);align-items:center;gap:6px;white-space:nowrap;font-family:inherit}

      /* DTM legenda */
      #dtm-legend{right:4px;top:44px;max-height:40vh;min-width:160px}

      /* Měření */
      .mbtn{display:flex;align-items:center;justify-content:center;font-size:15px;cursor:pointer;background:#fff;color:#333;transition:background .15s;border:none;padding:0;width:26px;height:26px;text-decoration:none}
      .mbtn.on{background:#1a3570;color:#fff}

      /* MPP hover tooltip */
      #mup-hover{position:absolute;z-index:1500;background:rgba(15,25,55,.93);color:#eef;padding:6px 11px;border-radius:6px;font-size:.76rem;pointer-events:none;display:none;max-width:260px;line-height:1.5;box-shadow:0 2px 10px rgba(0,0,0,.5);white-space:pre-wrap}
      .score-tooltip{background:rgba(15,25,55,.92);color:#eef;border:none;border-radius:6px;font-size:.74rem;line-height:1.5;box-shadow:0 2px 8px rgba(0,0,0,.4);padding:5px 10px}

      /* Selection mode indicator */
      #sel-mode-ind{font-size:.7rem;padding:4px 10px;top:6px}
      #map-loading-ind{font-size:.7rem;padding:4px 10px;top:6px}
      #map-loading-ind.on ~ #sel-mode-ind{top:38px}

      /* Panel padding */
      #pane-info-inner,#pane-sel,#pane-acq{padding:10px}

      /* Zone card */
      .zc-code{font-size:1.25rem}
      .zc-name{font-size:.8rem}

      /* Selection tlačítka */
      .sel-btn{padding:8px 14px;font-size:.8rem}

      /* Mobile toggle button */
      #mob-toggle{display:flex}

      /* Jen mapa (panel schovaný) */
      body.mob-maponly #map-area{height:100%;flex:1}
      body.mob-maponly #panel{display:none}

      /* Jen panel (mapa schovaná) */
      body.mob-panelonly #map-area{display:none}
      body.mob-panelonly #panel{flex:1}

      /* Datový panel parcely: 11–12px → 13px pro čitelnost na mobilu */
      .k{font-size:13px}
      .v{font-size:13px}
      .vtag,.vred,.vgreen{font-size:13px}
      .nd,.tip,a.lnk{font-size:13px}
      .sec-hdr{font-size:13px}
      .sh{font-size:13px}
      .card{font-size:13px}
      .lb,.zone-name{font-size:13px}
      .zone-detail .zk{font-size:13px}
      .zc-popis,.zc-hpp-sub{font-size:13px}
      .zc-permit,.zc-cond,.zc-forbid{font-size:13px}
      .lc,.zc-hpp-lbl,.zc-footer{font-size:12px}
      /* JS-generované inline styly v panelu – přebití !important nutné (inline rem) */
      #pane-info-inner [style*="font-size:.7"],#pane-sel [style*="font-size:.7"]{font-size:13px!important}
      #pane-info-inner [style*="font-size:.6"],#pane-sel [style*="font-size:.6"]{font-size:12px!important}
    }

    @media (max-width: 420px) {
      .tab{font-size:.68rem;padding:8px 2px}
      .zc-params span{font-size:.69rem;padding:2px 8px}
      .k{min-width:100px}
    }

    /* iOS Safari auto-zoomuje na input < 16px, což rozbíjí fixed-height layout */
    @media (hover:none) and (pointer:coarse) {
      input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
      textarea,
      select {
        font-size: 16px !important;
      }
    }

    /* ── PORTFOLIO ── */
    .ptab{flex:1;padding:7px 6px;border:1px solid #c5d0e8;border-radius:5px;background:#f5f8ff;font-size:.78rem;font-weight:700;color:#1a3570;cursor:pointer;transition:all .15s;text-align:center}
    .ptab:hover{background:#dce6f7}
    .active-ptab{background:#1a3570;color:#fff;border-color:#1a3570}
    .inz-card{background:#f8faff;border:1px solid #dae4f5;border-radius:7px;padding:9px 11px;margin-bottom:7px;font-size:.77rem}
    .inz-card-top{display:flex;align-items:baseline;gap:8px;margin-bottom:4px;flex-wrap:wrap}
    .inz-cislo{font-weight:700;color:#1a2535;font-size:.85rem}
    .inz-price{font-weight:700;color:#1a8a40;font-size:.85rem}
    .inz-meta{font-size:.72rem;color:#556;display:flex;gap:8px;flex-wrap:wrap;margin-bottom:4px}
    .inz-desc{font-size:.73rem;color:#334;line-height:1.5;margin-bottom:5px}
    .inz-actions{display:flex;gap:6px}
    .inz-btn{padding:4px 11px;border:none;border-radius:4px;font-size:.74rem;font-weight:700;cursor:pointer}
    .inz-btn-edit{background:#dce6f7;color:#1a3570}.inz-btn-edit:hover{background:#b4c6ee}
    .inz-btn-del{background:#fde8e8;color:#c03030}.inz-btn-del:hover{background:#f8c0c0}
    /* ── Inzerce filtr typ toggle ── */
    .inz-ft{padding:3px 8px;border:1.5px solid #ccd6ee;border-radius:12px;background:#fff;font-size:.7rem;font-weight:600;color:#445;cursor:pointer;transition:all .12s;white-space:nowrap}
    .inz-ft:hover{border-color:#1a3570;color:#1a3570}
    .inz-ft.active{background:#1a3570;border-color:#1a3570;color:#fff}
    /* ── Inzerce tooltip (hover) ── */
    .inz-tt{background:#fff;border-radius:10px;box-shadow:0 6px 24px rgba(0,0,0,.22);padding:0;overflow:hidden;min-width:200px;max-width:240px;pointer-events:none;border:none}
    .leaflet-tooltip.inz-tt::before{display:none}
    /* ── Inzerce detail modal ── */
    #inz-detail-modal{display:none;position:fixed;inset:0;z-index:5200;background:rgba(10,20,50,.55);align-items:center;justify-content:center;padding:16px}
    #inz-detail-inner{background:#fff;border-radius:14px;max-width:560px;width:100%;max-height:92vh;overflow-y:auto;box-shadow:0 24px 70px rgba(0,0,0,.45)}
    .inz-gallery{display:flex;gap:4px;overflow-x:auto;padding:0;scrollbar-width:none}
    .inz-gallery::-webkit-scrollbar{display:none}
    .inz-gallery img{height:190px;width:auto;min-width:200px;object-fit:cover;flex-shrink:0}
    .inz-detail-body{padding:20px 22px 24px}
    .proj-card{background:#f8faff;border:1px solid #dae4f5;border-radius:7px;padding:9px 11px;margin-bottom:7px;font-size:.77rem}
    .proj-card-top{display:flex;align-items:baseline;gap:8px;margin-bottom:8px;flex-wrap:wrap}
    .proj-name{font-weight:700;color:#1a2535;font-size:.87rem}
    .proj-meta{font-size:.72rem;color:#556;display:flex;gap:8px;flex-wrap:wrap;margin-bottom:5px}
    .proj-parcely{font-size:.72rem;color:#445;margin-bottom:5px;line-height:1.5}
    .proj-tbl{width:100%;border-collapse:collapse;margin-bottom:7px;font-size:.76rem}
    .proj-tbl td{padding:4px 7px;border-bottom:1px solid #e8eef8;vertical-align:top}
    .proj-tbl td:first-child{color:#556;font-weight:600;white-space:nowrap;width:44%;background:#f0f5ff}
    .proj-tbl td:last-child{color:#223;font-weight:500}
    .proj-tbl tr:last-child td{border-bottom:none}
    .proj-actions{display:flex;gap:6px}
    /* ── HARMONOGRAM MODAL (CZ + BA + PL) ── */
    #harm-modal .harm-inner,#harm-ba-modal .harm-inner,#harm-pl-modal .harm-inner{background:#fff;border-radius:12px;width:92vw;max-width:1100px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 40px rgba(0,0,0,.35)}
    #harm-modal .harm-hdr,#harm-ba-modal .harm-hdr,#harm-pl-modal .harm-hdr{background:linear-gradient(135deg,#162f5e,#2b508d);color:#fff;padding:12px 18px;display:flex;align-items:center;gap:10px;flex-shrink:0}
    #harm-modal .harm-hdr-title,#harm-ba-modal .harm-hdr-title,#harm-pl-modal .harm-hdr-title{font-size:.95rem;font-weight:800;flex:1}
    #harm-modal .harm-hdr-close,#harm-ba-modal .harm-hdr-close,#harm-pl-modal .harm-hdr-close{background:rgba(255,255,255,.2);border:none;color:#fff;border-radius:6px;width:28px;height:28px;cursor:pointer;font-size:1.2rem;line-height:1;display:flex;align-items:center;justify-content:center;font-family:inherit}
    #harm-modal .harm-body,#harm-ba-modal .harm-body,#harm-pl-modal .harm-body{display:flex;flex:1;min-height:0;overflow:hidden}
    #harm-modal .harm-controls,#harm-ba-modal .harm-controls,#harm-pl-modal .harm-controls{width:230px;flex-shrink:0;background:#f5f8ff;border-right:1px solid #dde7f5;overflow-y:auto;padding:14px}
    #harm-modal .harm-main,#harm-ba-modal .harm-main,#harm-pl-modal .harm-main{flex:1;overflow-y:auto;padding:14px;min-width:0;display:flex;flex-direction:column;gap:14px}
    .hctl-label{font-size:.7rem;font-weight:700;color:#1a3570;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}
    .hctl-input{width:100%;padding:6px 9px;border:1.5px solid #c5d0e8;border-radius:6px;font-size:.83rem;font-family:inherit;outline:none;box-sizing:border-box;background:#fff}
    .hctl-input:focus{border-color:#1a3570}
    .hctl-group{margin-bottom:13px}
    #harm-gantt,#harm-ba-gantt,#harm-pl-gantt{overflow-x:auto;min-width:0;font-size:.72rem}
    .hg-header,.hg-row{display:flex;align-items:stretch}
    .hg-header{margin-bottom:2px}
    .hg-label-col{width:175px;flex-shrink:0;font-size:.68rem;color:#334;padding:3px 8px 3px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;line-height:1.3}
    .hg-timeline{flex:1;position:relative;border-left:1px solid #dde7f5;min-height:26px;min-width:400px}
    .hg-row .hg-timeline{border-bottom:1px solid #f0f4fb}
    .hg-row:hover .hg-timeline{background:#f8faff}
    .hg-tick{position:absolute;top:0;height:100%;font-size:.61rem;color:#889;border-left:1px dashed #d0daea;padding:3px 3px;box-sizing:border-box;white-space:nowrap;overflow:hidden}
    .hg-bar{position:absolute;top:4px;height:calc(100% - 8px);border-radius:4px;display:flex;align-items:center;padding:0 5px;box-sizing:border-box;cursor:default;transition:opacity .1s;min-width:4px}
    .hg-bar:hover{opacity:.82;filter:brightness(1.08)}
    .hg-bar-label{color:rgba(255,255,255,.92);font-size:.61rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .hg-summary{display:flex;flex-wrap:wrap;gap:10px;background:#f0f4fb;border:1px solid #dde7f5;border-radius:8px;padding:12px 14px}
    .hg-sum-item{min-width:110px;flex:1}
    .hg-sum-label{font-size:.64rem;color:#667;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}
    .hg-sum-value{font-size:.92rem;font-weight:800;color:#1a3570}
    .hg-sum-highlight{color:#1a6a30}
    .hg-sum-sub{font-size:.64rem;color:#889;margin-top:1px}
    #harm-etap-wrap{margin-top:4px;padding-top:8px;border-top:1px solid #dde7f5}
    .hg-legend{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
    .hg-leg-item{display:flex;align-items:center;gap:4px;font-size:.65rem;color:#445}
    .hg-leg-dot{width:10px;height:10px;border-radius:2px;flex-shrink:0}
    @media(max-width:640px){
      #harm-modal .harm-inner,#harm-ba-modal .harm-inner,#harm-pl-modal .harm-inner{width:100vw;max-width:100vw;max-height:100dvh;border-radius:0}
      #harm-modal .harm-body,#harm-ba-modal .harm-body,#harm-pl-modal .harm-body{flex-direction:column}
      #harm-modal .harm-controls,#harm-ba-modal .harm-controls,#harm-pl-modal .harm-controls{width:100%;border-right:none;border-bottom:1px solid #dde7f5;max-height:200px}
      .hg-label-col{width:110px;font-size:.62rem}
    }

/* ── Tabulka hodnot v kartách panelu (.pv) ────────────────────────────────────
   Jedna škála a jedno zarovnání pro všechna města. Měřeno 21. 8. 2026: karta
   rekapitulace míchala 19 velikostí písma, 6 tučností a 4 šedé pro jednu roli,
   a zhruba půlka hodnot byla zarovnaná vlevo, půlka vpravo.

   HODNOTY VLEVO, ne vpravo: v téhle kartě je skoro polovina hodnot textová
   („centrum", „stabilizováno"), takže levá hrana sjednotí čísla se slovy do jedné
   svislice. Pravé zarovnání by lícovalo řád, ale levý okraj by se roztřepil.

   ZNAMÉNKO ODHADU SE PŘEDSAZUJE: „~ 747" má o znak víc než „199", takže by odhady
   posunuly číslice doprava a sloupec by se rozpadl přesně tam, kde na něm záleží.
   `.apx` proto visí v levém odsazení buňky. Totéž platí pro ±, < a >. */
.pv{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.pv td{padding:3px 0;vertical-align:baseline}
.pv td.k{font-size:.72rem;font-weight:400;color:#5c6b87;width:148px}
.pv td.v{font-size:.8rem;font-weight:700;color:#1a3570;text-align:left;white-space:nowrap;padding-left:11px}
.pv td.v .apx{display:inline-block;width:11px;margin-left:-11px;color:#8b95a8;font-weight:400}
.pv td.v .u{font-weight:400;color:#8b95a8;margin-left:2px}
.pv td.v.hero{font-size:1.05rem;font-weight:800;padding-left:13px}
.pv td.v.hero .apx{width:13px;margin-left:-13px}
.pv td.v.good{color:#1a6b2a}
.pv td.v.warn{color:#9a6a12}
.pv tr.rule td{border-top:1px solid #dde7f5;padding-top:6px}
/* Nadpis bloku uvnitř karty (Harmonogram, Ekonomika projektu, Parkování). Byl ve dvou
   variantách — tmavě modrý tučný a šedomodrý — a dvě různé prostrkání. Jedna třída,
   ať se podnadpis nikdy neplete s hodnotou. */
/* Vzorec pod hodnotou („1 587 m² × 50 % KZP × 7 NP"). Buňka hodnoty je nezalomitelná, aby
   se nerozpadl sloupec číslic — vzorec ale zalomit MUSÍ, jinak roztáhne celou kartu. */
.pv td.v .pvf{display:block;font-size:.6rem;font-weight:400;color:#8a96ab;margin-top:2px;white-space:normal;letter-spacing:0}
.pv-hdr{font-size:.69rem;font-weight:700;color:#5c6b87;text-transform:uppercase;letter-spacing:.09em;margin-bottom:5px;display:flex;align-items:center;gap:6px}

/* Odkaz na vyhledávač pozemků v hlavičce. Vzhled je tady, a ne v `style=`/`onmouseover=`
   přímo v mapa.html, schválně: Netlify u tagu s `href="*.html"` přepíše adresu na hezkou
   a při tom celý tag přeskládá do jednoduchých uvozovek s apostrofy „uniknutými" zpětným
   lomítkem. HTML takové escapování nezná, hodnota atributu se utne u prvního apostrofu a
   z handleru zbude `this.style.background=\`, což je syntaktická chyba (Sentry JAVASCRIPT-1).
   Bez inline handleru není co rozbít. */
#parcel-finder-link>a{background:#fff;color:#1a3c6e;font-weight:800;font-size:.8rem;letter-spacing:.3px;padding:6px 15px;border-radius:16px;text-decoration:none;white-space:nowrap;transition:background .15s}
#parcel-finder-link>a:hover{background:#e9eff8}
