:root{--bg:#101010;--panel:#191919;--gold:#d5b46b;--muted:#aaa;--line:#4c412d}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#f1eee6;font:15px system-ui,-apple-system,Segoe UI,sans-serif}button{font:inherit;cursor:pointer}header{height:76px;background:#111;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid var(--line)}.brand{font-weight:800;letter-spacing:2px;font-size:23px;color:var(--gold)}.brand strong{color:#fff}.brand-icon{margin-right:8px}.brand small{display:block;color:#aaa;font-size:10px;letter-spacing:1px;font-weight:400}.header-actions button,.outline,.mobile-menu{background:transparent;color:var(--gold);border:1px solid var(--line);border-radius:9px;padding:11px 15px}main{display:flex;min-height:calc(100dvh - 76px)}aside{width:265px;flex-shrink:0;padding:27px 20px;background:#171717;border-right:1px solid var(--line);overflow:auto}aside h2{color:var(--gold);font-size:20px;margin:0 0 8px}aside p{color:var(--muted);font-size:13px;margin:0 0 20px}#regionButtons{display:grid;gap:5px}#regionButtons button{background:transparent;color:#ddd;border:1px solid transparent;border-radius:7px;padding:9px 11px;text-align:left}#regionButtons button:hover,#regionButtons button.selected{background:#302a1f;border-color:var(--line);color:var(--gold)}.outline{width:100%;margin-top:20px}.sidebar-note{font-size:11px;color:#777;margin-top:24px}.map-shell{position:relative;flex:1;min-width:0}#map{width:100%;height:calc(100dvh - 76px);background:#252525}.map-caption{position:absolute;z-index:500;bottom:18px;left:18px;background:#111d;border:1px solid var(--line);padding:10px 15px;border-radius:8px;font-size:12px;pointer-events:none}.seo-placeholder{padding:45px max(24px,8vw);border-top:1px solid var(--line)}.seo-placeholder h1{color:var(--gold);font-size:22px}.seo-placeholder p{color:#aaa}.overlay{position:fixed;inset:0;background:#000a;display:flex;align-items:center;justify-content:center;z-index:2000;padding:15px}.overlay.hidden{display:none}.dialog{background:#1a1a1a;border:1px solid var(--line);border-radius:17px;box-shadow:0 24px 70px #000b;padding:25px;position:relative;width:min(100%,540px);max-height:92dvh;overflow:auto}.intro{text-align:center;max-width:420px}.intro-symbol{font-size:45px;color:var(--gold)}.intro h2{color:var(--gold)}.intro p{color:#ccc;line-height:1.6}.gold{border:0;background:var(--gold);color:#111;font-weight:700;padding:13px 19px;border-radius:9px}.intro .gold{width:100%;margin-top:15px}.text-button{background:none;border:0;color:#ccc;padding:17px}.detail{max-width:590px}.close{position:absolute;right:12px;top:9px;background:#292929;border:1px solid #555;color:#fff;border-radius:50%;width:34px;height:34px;font-size:24px;z-index:2}.detail img{width:100%;max-height:310px;object-fit:cover;border-radius:11px;background:#333}.detail h2{color:var(--gold);margin-bottom:6px}.detail .sub{color:#aaa}.detail p{white-space:pre-line;line-height:1.6}.detail .buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.detail .buttons a,.detail .buttons button{padding:12px 18px;border-radius:8px;text-decoration:none;border:1px solid var(--gold);color:var(--gold);background:transparent}.detail .buttons a.call{background:var(--gold);color:#111;font-weight:700}.vip{color:var(--gold);font-size:12px;margin-left:8px}.profile-marker{width:43px;height:43px;border-radius:50%;border:2px solid #ddd;background:#242424;object-fit:cover;box-shadow:0 2px 12px #000a}.profile-marker.vip-border{border-color:var(--gold);box-shadow:0 0 0 2px #6e5829,0 2px 12px #000}.marker-wrap{position:relative}.marker-crown{position:absolute;top:-13px;right:-8px;color:#f5d180;font-size:18px}.company-marker{display:grid;place-items:center;width:44px;height:44px;background:#1b1b1b;border:2px solid var(--gold);border-radius:50%;color:var(--gold);font-size:23px}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#191919;color:#eee}.popup{width:215px}.popup img{width:100%;height:110px;object-fit:cover;border-radius:7px}.popup h3{margin:8px 0 3px;color:var(--gold)}.popup p{color:#bbb;margin:4px 0 9px}.popup button{background:var(--gold);border:0;border-radius:6px;padding:8px 12px;color:#111;font-weight:700}.leaflet-control-zoom a{background:#222!important;color:var(--gold)!important;border-color:#555!important}#toast{position:absolute;top:16px;left:50%;transform:translateX(-50%);z-index:900;background:#221d15;color:#f5dca4;padding:10px 15px;border-radius:8px;display:none}.mobile-menu{display:none}@media(max-width:760px){header{height:65px;padding:0 12px}.brand{font-size:18px}.brand small{font-size:9px}.header-actions{display:none}.mobile-menu{display:block}main{min-height:calc(100dvh - 65px)}#map{height:calc(100dvh - 65px)}aside{position:absolute;z-index:1200;top:65px;bottom:0;left:0;width:min(85vw,310px);transform:translateX(-110%);transition:transform .2s;box-shadow:10px 0 30px #0009}aside.open{transform:translateX(0)}.map-caption{font-size:11px;left:9px;bottom:12px}.dialog.detail{width:100%;max-height:90dvh}.overlay:has(.detail){align-items:end;padding:0}.detail{border-radius:18px 18px 0 0}.seo-placeholder{padding:30px 20px}}/* Téměř černý mapový podklad */
.dark-map-tiles {
    filter: grayscale(1) invert(1) brightness(0.65) contrast(1.15);
}
display: block;
    width: 43px;
    height: 43px;
    min-width: 43px;
    min-height: 43px;
    max-width: 43px;
    max-height: 43px;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    object-fit: cover;
    object-position: center;
    box-sizing: border-box;
    flex: 0 0 43px;
}

/* VIP korunka zůstane nad fotografií */
.marker-wrap .marker-crown {
    position: absolute;
    top: -13px;
    right: -8px;
}

.leaflet-marker-icon .marker-wrap img.profile-marker {
    display: block !important;
    width: 43px !important;
    height: 43px !important;
    min-width: 43px !important;
    min-height: 43px !important;
    max-width: 43px !important;
    max-height: 43px !important;
    aspect-ratio: 1 / 1;
    border-radius: 50% !important;
    object-fit: cover !important;
    box-sizing: border-box;
    flex: 0 0 43px;
}

/* Korunka VIP zůstává nad fotografií */
.leaflet-marker-icon .marker-crown {
    position: absolute;
    top: -13px;
    right: -8px;
}
