  :root{--bg:#f6f7f9;--card:#fff;--ink:#1b1f24;--muted:#5f6b7a;--line:#e3e7ec;--sea:#0b6e9e;--inland:#2e8b57;--none:#9aa6b4}
  @media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg:#0f1318;--card:#171c23;--ink:#e8ecf1;--muted:#9aa6b4;--line:#273039}}
  *{box-sizing:border-box}
  html,body{margin:0}
  body{background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,Segoe UI,Roboto,sans-serif}
  /* заглавието и картата са един блок с височината на екрана: Auto ads вмъква рекламите в body извън него,
     затова картата не се свива, а рекламите остават под нея */
  .app{height:100vh;height:100dvh;display:flex;flex-direction:column}
  header{padding:10px 16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--line);background:var(--card)}
  header h1{font-size:18px;margin:0}
  .stats{color:var(--muted);font-size:13px}
  .search{position:relative;flex:1;min-width:220px;max-width:420px}
  .search input{width:100%;padding:8px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;background:var(--bg);color:var(--ink)}
  .results{position:absolute;top:100%;left:0;right:0;background:var(--card);border:1px solid var(--line);border-radius:10px;margin-top:4px;z-index:1000;max-height:60vh;overflow:auto;display:none}
  .results a{display:block;padding:8px 12px;color:inherit;text-decoration:none;border-bottom:1px solid var(--line)}
  .results a:hover{background:var(--bg)}
  .results small{color:var(--muted)}
  .legend{display:flex;gap:12px;font-size:13px;color:var(--muted)}
  .legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;vertical-align:-1px}
  /* картата и колоната отстрани (реклама, известни плажове); на телефон колоната е под картата */
  .main{flex:1;display:flex;min-height:0}
  #map{flex:1;min-width:0}
  .side{width:336px;flex:none;overflow-y:auto;border-left:1px solid var(--line);background:var(--card);padding:12px 16px}
  .side h2{font-size:15px;margin:14px 0 6px}
  .side .top a{display:flex;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none;font-size:14px}
  .side .top a:hover b{color:var(--sea)}
  .side .top b{font-weight:500}
  .side .top small{color:var(--muted);white-space:nowrap}
  .side .hotel-pick{margin:0 auto 6px}
  @media (max-width:900px){.app{height:auto}.main{flex-direction:column}#map{height:72vh;flex:none}
    .side{width:auto;border-left:0;border-top:1px solid var(--line)}}
  .lang{font-size:13px;margin-left:auto}
  /* балонът: 300 px на телефон, 520 px на компютър */
  :root{--pop-w:300px;--pop-h:190px}
  @media (min-width:900px) and (min-height:600px){:root{--pop-w:520px;--pop-h:320px}}
  .leaflet-popup-content{margin:10px 12px;width:var(--pop-w)!important}
  .leaflet-popup-content a{font-weight:600}
  .pop-pano{width:var(--pop-w);height:var(--pop-h);border:0;border-radius:8px;margin-top:8px;background:#000;display:block}
  .pop-none{margin-top:8px;color:#888;font-size:12px}
  .cluster{border-radius:50%;background:rgba(11,110,158,.85);color:#fff;font:600 12px/1 system-ui,sans-serif;
    display:grid;place-items:center;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.35);cursor:pointer}
  .leaflet-popup-content a.pop-btn{display:block;margin-top:8px;padding:9px 12px;border-radius:8px;background:var(--sea);
    color:#fff;text-align:center;text-decoration:none;font-weight:600}
  .leaflet-popup-content a.pop-btn:hover{filter:brightness(1.1)}
  .side .rk a{display:block;padding:10px 12px;border-radius:10px;background:linear-gradient(90deg,#f2b33d,#e8743b);color:#fff;font-weight:600;text-decoration:none}
