
:root{
  --navy:#071526;--ink:#12383f;--muted:#61777b;--paper:#eef5f3;--card:#fff;--line:#d5e4df;--orange:#ef7c1d;
  --sites:#16c9b7;--museums:#3b82ff;--theatres:#f5b400;--castles:#d47a22;--monuments:#a866ff;--soft:#879196;
  --shadow:0 18px 40px rgba(6,35,43,.18)
}
*{box-sizing:border-box}body{margin:0;background:#e5efec;color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
.top{background:linear-gradient(180deg,var(--navy),#092336);color:#f3fbfb;padding:12px 16px 10px;position:sticky;top:0;z-index:1000;box-shadow:0 10px 24px rgba(0,0,0,.22)}
.head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
h1{font:760 29px/1.05 Georgia,serif;margin:0}.top p{margin:5px 0 0;color:#c9dadd;font-size:12px}
.stage{border:1px solid #76869a;border-radius:999px;color:#ffd36b;padding:7px 11px;font-size:10px;font-weight:950;white-space:nowrap}
.back{color:#fff;text-decoration:none;border:1px solid #5a7181;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:900}
.controls{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px;align-items:center}
.chip{border:1px solid #5a7181;background:#102338;color:#edf7f8;border-radius:999px;padding:7px 11px;cursor:pointer;font-size:12px;text-decoration:none}
.chip.active{background:var(--orange);border-color:var(--orange);color:#08121e;font-weight:900}
.search{border:1px solid #5a7181;background:#fff;border-radius:999px;padding:8px 12px;min-width:230px;color:#0f3340}
.stats{background:#f8fbfa;color:#103f45;padding:8px 16px;display:flex;gap:15px;flex-wrap:wrap;font-size:12px;font-weight:900}.stats strong{font-size:15px}
.layout{height:calc(100vh - 190px);display:grid;grid-template-columns:minmax(0,1fr) 430px}
#map{height:100%;min-height:560px}.side{overflow:auto;background:var(--paper);padding:12px;border-left:1px solid #cbd9d6}
.card,.place-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:13px;margin-bottom:11px;box-shadow:var(--shadow)}
.card h2{font:750 24px/1.05 Georgia,serif;margin:0 0 8px}.small{font-size:12px;color:var(--muted);line-height:1.45}
.ok{background:#eefaf6;border:1px solid #bde3d5;color:#0e5147;border-radius:12px;padding:9px 10px;font-size:12px;margin-top:9px}
.place-card{cursor:pointer}.place-card h3{font:750 17px/1.08 Georgia,serif;margin:3px 0 5px}.place-card p{font-size:11px;color:var(--muted);margin:0 0 4px;line-height:1.35}
.tag{display:inline-block;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:950;margin-right:4px;margin-bottom:6px}.tag.cat{background:#e8f6f5;color:#075e68}.tag.img{background:#e6f8ee;color:#0b6246}.tag.no{background:#eef1f2;color:#4d5d62}.tag.review{background:#fff0bd;color:#785500}.tag.hold{background:#f5dfd9;color:#8a3e30}
.marker{width:24px;height:24px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:3px solid #fff;box-shadow:0 3px 8px rgba(0,0,0,.34),0 0 0 2px rgba(255,255,255,.42);background:var(--soft)}
.marker:after{content:"";position:absolute;inset:6px;border-radius:50%;background:rgba(255,255,255,.34)}
.marker.sites{background:var(--sites)}.marker.museums{background:var(--museums)}.marker.theatres{background:var(--theatres)}.marker.castles{background:var(--castles)}.marker.monuments{background:var(--monuments)}
.marker.noimg{opacity:.78;filter:saturate(.8)}.marker.review{box-shadow:0 0 0 5px rgba(245,180,0,.28),0 3px 9px rgba(0,0,0,.45)}.marker.hold{box-shadow:0 0 0 5px rgba(218,83,62,.28),0 3px 9px rgba(0,0,0,.45)}
.overview-badge{display:inline-block;background:#e9fbf5;border:1px solid #c7eadf;color:#0a554e;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:950;margin-left:6px}
.legend{background:rgba(255,255,255,.96);padding:9px 11px;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.18);font-size:11px;color:#153e45}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}
.leaflet-popup-content-wrapper{padding:0!important;border-radius:15px!important;overflow:hidden}.leaflet-popup-content{margin:0!important;width:356px!important;max-width:calc(100vw - 44px)!important}
.popup{width:356px;max-width:calc(100vw - 44px);background:#fff;color:var(--ink);display:flex;flex-direction:column;max-height:520px}
.pop-img{height:124px;background:linear-gradient(135deg,#e9f1ef,#f6f0df);display:flex;align-items:center;justify-content:center;text-align:center;font-weight:800;color:#486168;font-size:12px;overflow:hidden;padding:12px}.pop-img img{width:100%;height:100%;object-fit:cover;display:block}
.placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px dashed #c3d2ce;border-radius:12px;background:rgba(255,255,255,.45)}.placeholder b{font:800 16px/1.1 Georgia,serif;color:#183f45}.placeholder span{font-size:11px;color:#60787d}
.pop-body{padding:10px 12px 0;overflow:auto;max-height:326px}.pop-body h2{font:750 22px/1.04 Georgia,serif;margin:0 0 3px}.meta{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#456a70;font-weight:950;margin-bottom:7px}.pop-body p{font-size:12px;line-height:1.38;margin:0 0 8px}.sec{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#0d4248;font-weight:950;margin:9px 0 4px}ul{font-size:12px;line-height:1.35;margin:0 0 8px 16px;padding:0}.visit{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0 10px}.visit div{background:#f6faf9;border:1px solid #dde8e5;border-radius:8px;padding:7px}.visit b{display:block;font-size:9px;text-transform:uppercase;color:#577074;letter-spacing:.08em}.visit span{font-size:11px;color:#153f45}
.actions{position:sticky;bottom:0;background:#fff;border-top:1px solid #dfe9e6;padding:8px 10px;display:flex;gap:7px;flex-wrap:wrap}.actions a{text-decoration:none;border-radius:999px;background:#e8f1ef;color:#0d444a;font-size:11px;font-weight:950;padding:7px 10px;border:1px solid #cdddda}.actions a.primary{background:#0b5057;color:#fff;border-color:#0b5057}.notice{background:#f4f8f7;border:1px solid #dbe8e5;color:#455e63;border-radius:12px;padding:9px 10px;font-size:11px;margin:8px 0}.source-note{font-size:10px;color:#6b7e82;margin:3px 0 9px}
@media(max-width:980px){.layout{height:auto;grid-template-columns:1fr}.side{overflow:visible}#map{height:580px}.stage{display:none}}

/* MagicHellas final visual polish v2: slightly calmer markers; data and clean-view logic unchanged. */
