.atlas-public{--navy:#101f38;--blue:#18395b;--gold:#d5a755;--ink:#20324b;--bg:#f5f7fb;--light:#fff;--mute:#64748b}.atlas-public *{box-sizing:border-box}.atlas-public{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.55}.atlas-public a{color:#195587;text-decoration:none}.atlas-public a:hover{text-decoration:underline}.atlas-public header{background:linear-gradient(112deg,#0d1e35,#254e70);color:white;padding:18px 0}.atlas-public header a{color:white}.atlas-public .wrap{max-width:1180px;margin:auto;padding:0 20px}.atlas-public .top{display:flex;align-items:center;justify-content:space-between;gap:16px}.atlas-public .brand{font-weight:850;font-size:1.2rem;letter-spacing:.2px}.atlas-public .brand b{color:var(--gold)}.atlas-public nav{display:flex;flex-wrap:wrap;gap:18px}.atlas-public nav a{font-size:.95rem}.atlas-public .hero{background:linear-gradient(120deg,#102b48,#284f68);color:#fff;padding:52px 0 58px}.atlas-public .eyebrow{text-transform:uppercase;font-size:12px;letter-spacing:.18em;color:#e7bb6b;font-weight:700}.atlas-public .hero h1{font-size:clamp(2rem,5vw,3.6rem);margin:8px 0;line-height:1.1}.atlas-public .hero p{max-width:700px;color:#e2e8f0}.atlas-public .shell{padding:30px 0 60px}.atlas-public .card,.atlas-public .panel{background:#fff;border:1px solid #e2e8f0;border-radius:17px;box-shadow:0 10px 30px #1b30400d;overflow:hidden}.atlas-public .panel{padding:22px;margin-bottom:22px}.atlas-public .filters{display:grid;grid-template-columns:2fr repeat(2,1fr) auto;gap:12px;align-items:end}.atlas-public .field label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}.atlas-public input,.atlas-public select,.atlas-public textarea{width:100%;font:inherit;border:1px solid #cbd5e1;border-radius:9px;padding:11px;color:#17304a;background:#fff}.atlas-public textarea{min-height:125px}.atlas-public button,.atlas-public .btn{display:inline-block;border:0;background:var(--gold);color:#142337;border-radius:9px;padding:12px 18px;font:inherit;font-weight:800;cursor:pointer;text-decoration:none}.atlas-public .btn.outline{background:var(--blue);color:white}.atlas-public .muted{color:var(--mute)}.atlas-public .tiny{font-size:.83rem}.atlas-public .badge{display:inline-block;background:#f2e5c7;color:#6b4c14;border-radius:999px;font-size:12px;padding:4px 9px;font-weight:700}.atlas-public .columns{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);gap:20px}.atlas-public .map{height:500px;border-radius:14px;background:#dfe9ea;z-index:0}.atlas-public .result-list{max-height:500px;overflow:auto}.atlas-public .result{padding:16px;border-bottom:1px solid #edf0f5}.atlas-public .result h3{margin:3px 0}.atlas-public .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:20px}.atlas-public .poster{height:170px;background:linear-gradient(130deg,#153650,#43708b);display:flex;justify-content:center;align-items:center;color:#e6c98f;font-size:2.5rem}.atlas-public .card-body{padding:17px}.atlas-public .card h3{margin:0 0 5px}.atlas-public .stats{display:flex;gap:20px;flex-wrap:wrap;margin:18px 0}.atlas-public .stats strong{font-size:25px;display:block}.atlas-public .foot{background:#101f38;padding:26px 0;color:#cbd5e1}.atlas-public .notice{border-left:4px solid var(--gold);padding:13px 17px;background:#fff7e8}.atlas-public .warn{border-left-color:#c24132}.atlas-public .table{width:100%;border-collapse:collapse}.atlas-public .table td,.atlas-public .table th{text-align:left;padding:10px;border-bottom:1px solid #e5e7eb;vertical-align:top}.atlas-public .actions{display:flex;gap:7px;flex-wrap:wrap}.atlas-public .actions button{padding:7px 10px;font-size:12px}.atlas-public .admin-box{overflow-x:auto}.atlas-public .stack{display:grid;gap:12px}.atlas-public section h2{font-size:1.4rem}@media (max-width:850px){.atlas-public .columns{grid-template-columns:1fr}.atlas-public .filters{grid-template-columns:1fr 1fr}.atlas-public .map{height:350px}.atlas-public .top{align-items:flex-start;flex-direction:column}}@media (max-width:560px){.atlas-public .filters{grid-template-columns:1fr}.atlas-public .hero{padding:38px 0}.atlas-public .wrap{padding:0 15px}.atlas-public .panel{padding:15px}}

/* Leaflet debe heredar su CSS sin colisiones del tema del catálogo. */
.atlas-public #map.map{position:relative;display:block;width:100%;height:520px;overflow:hidden;isolation:isolate;border-radius:14px;z-index:0}
.atlas-public #map .leaflet-pane,.atlas-public #map .leaflet-map-pane,.atlas-public #map .leaflet-tile-pane,.atlas-public #map .leaflet-overlay-pane,.atlas-public #map .leaflet-marker-pane,.atlas-public #map .leaflet-shadow-pane{position:absolute;top:0;left:0}
.atlas-public #map .leaflet-tile{max-width:none!important;max-height:none!important;padding:0!important;border:0!important}
.atlas-public #map img{max-width:none!important}
.atlas-public #map .leaflet-container{font:inherit}
.atlas-public .columns>.panel{min-width:0}
@media (max-width:850px){.atlas-public #map.map{height:390px}}
/* Respaldo de disposición para mapas Leaflet incluso cuando falla CSS remoto. */
.atlas-public #map.leaflet-container{overflow:hidden;position:relative;background:#dce9e9;touch-action:pan-x pan-y}
.atlas-public #map .leaflet-pane,.atlas-public #map .leaflet-tile,.atlas-public #map .leaflet-marker-icon,.atlas-public #map .leaflet-marker-shadow,.atlas-public #map .leaflet-tile-container,.atlas-public #map .leaflet-pane>svg,.atlas-public #map .leaflet-pane>canvas{position:absolute;left:0;top:0}
.atlas-public #map .leaflet-tile{width:256px;height:256px;max-width:none;max-height:none;user-select:none;pointer-events:none}
.atlas-public #map .leaflet-map-pane{z-index:400}.atlas-public #map .leaflet-tile-pane{z-index:200}.atlas-public #map .leaflet-overlay-pane{z-index:400}.atlas-public #map .leaflet-shadow-pane{z-index:500}.atlas-public #map .leaflet-marker-pane{z-index:600}.atlas-public #map .leaflet-tooltip-pane{z-index:650}.atlas-public #map .leaflet-popup-pane{z-index:700}
.atlas-public #map .leaflet-control{position:relative;z-index:800;pointer-events:auto}.atlas-public #map .leaflet-top{position:absolute;top:0;z-index:1000}.atlas-public #map .leaflet-left{left:0}.atlas-public #map .leaflet-right{right:0}.atlas-public #map .leaflet-bottom{position:absolute;bottom:0;z-index:1000}.atlas-public #map .leaflet-control-zoom a{display:block;width:30px;height:30px;background:#fff;text-align:center;font-size:20px;line-height:30px;border:1px solid #ccc}

/* V3.3: resultados interactivos sin inventar coordenadas */
.atlas-public .result{cursor:pointer;transition:background .15s ease}.atlas-public .result:hover,.atlas-public .result:focus-within{background:#f4f7fb}.atlas-public .result a{font-weight:750}.atlas-public .map-note{padding:10px 12px;margin-top:10px;background:#f4f7fb;border-radius:9px;color:#36506b;font-size:.85rem}.atlas-public #map .leaflet-popup-content a{color:#15558e;text-decoration:underline}

/* V3.4 — Explorar rodajes con diseño editorial azul / dorado */
.atlas-public .atlas-explorer{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px;margin:20px 0 30px}.atlas-public .atlas-map-col,.atlas-public .atlas-sidebar{min-width:0;background:#fff;border:1px solid #dfe7f0;border-radius:18px;overflow:hidden;box-shadow:0 12px 35px #132b480b}.atlas-public .atlas-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px}.atlas-public .atlas-toolbar h2,.atlas-public .atlas-side-title h2{margin:0;color:#142b49;font-size:1.3rem}.atlas-public .atlas-toolbar p,.atlas-public .atlas-side-title p{margin:4px 0 0;color:#687b91;font-size:.87rem}.atlas-public .reset-map{font-size:.78rem;background:#eaf0f7;color:#173452;padding:9px 12px}.atlas-public .atlas-map-frame{height:570px;position:relative;isolation:isolate}.atlas-public .atlas-map-frame #map.map{height:100%;border-radius:0;background:#dce7ed}.atlas-public .atlas-map-hint{padding:8px 18px;color:#5d7289;font-size:.82rem;margin:0}.atlas-public .atlas-sidebar{display:flex;flex-direction:column}.atlas-public .atlas-side-title{padding:18px 19px 14px;border-bottom:1px solid #e9edf2}.atlas-public .atlas-side-title h2 span{color:#c3943d}.atlas-public .atlas-scroll{overflow-y:auto;max-height:650px}.atlas-public .atlas-place{display:block;text-align:left;width:100%;border-radius:0;border:0;border-bottom:1px solid #e9edf2;background:#fff;padding:17px 19px;cursor:pointer;font-weight:400;transition:background .15s,box-shadow .15s}.atlas-public .atlas-place:hover,.atlas-public .atlas-place.active{background:#f3f7fc;box-shadow:inset 4px 0 #d5a755}.atlas-public .atlas-place-type{display:inline-block;background:#f5ebd4;color:#835d20;font-size:.7rem;padding:3px 9px;border-radius:20px;font-weight:700}.atlas-public .atlas-place-name{display:block;color:#183b63;font-size:1.04rem;font-weight:800;margin:7px 0 1px}.atlas-public .atlas-place-meta{display:block;color:#6b7c90;font-size:.8rem}.atlas-public .atlas-place-link{display:block;color:#ad8033;font-size:.78rem;margin-top:7px;font-weight:750}.atlas-public .map-overlay{position:absolute;top:18px;right:18px;z-index:900;background:#112a47;color:white;padding:20px;width:min(330px,calc(100% - 36px));border:1px solid #365575;border-radius:16px;box-shadow:0 20px 40px #081d3590}.atlas-public .map-overlay[hidden]{display:none}.atlas-public .map-overlay h3{font-size:1.35rem;margin:7px 0}.atlas-public .map-overlay-label{letter-spacing:.15em;color:#e3b761;font-weight:800;font-size:.68rem}.atlas-public .map-overlay #detail-loc{font-size:.82rem;color:#bfd0e0}.atlas-public .map-overlay #detail-films{display:grid;gap:8px;margin:14px 0}.atlas-public .map-overlay #detail-films a{color:#fff;border-bottom:1px solid #34516b;padding:5px 0;font-size:.86rem}.atlas-public .map-overlay #detail-url{color:#e8bc6b;font-weight:700;font-size:.87rem}.atlas-public .map-overlay #close-overlay{position:absolute;top:9px;right:11px;padding:0;background:transparent;color:#fff;font-size:26px;line-height:1}.atlas-public .map-count{position:absolute;bottom:16px;left:14px;z-index:700;border-radius:20px;background:#18314de0;color:#fff;font-size:.76rem;padding:7px 11px;pointer-events:none}.atlas-public .atlas-map-frame .leaflet-container{font-family:inherit}.atlas-public .atlas-map-frame .leaflet-control-attribution{font-size:9px}.atlas-public .empty-places{padding:20px;color:#64748b}@media (max-width:920px){.atlas-public .atlas-explorer{grid-template-columns:1fr}.atlas-public .atlas-map-frame{height:450px}.atlas-public .atlas-scroll{max-height:420px}}@media (max-width:560px){.atlas-public .atlas-map-frame{height:420px}.atlas-public .atlas-toolbar{flex-direction:column;align-items:flex-start}.atlas-public .map-overlay{top:10px;right:10px}}

/* V3.5.1 — Etiquetas legibles, con colocación automática a ambos lados de cada punto */
.atlas-public #map .leaflet-tooltip.atlas-point-tooltip{
  background:#112a47;color:#fff;border:1px solid #365575;
  border-radius:12px;padding:10px 13px;
  box-shadow:0 9px 24px rgba(8,29,53,.35);
  white-space:normal;min-width:130px;max-width:min(240px,65vw);
  line-height:1.32;pointer-events:none;
}
.atlas-public #map .atlas-point-tooltip .atlas-tooltip-content{display:flex;flex-direction:column;gap:4px}
.atlas-public #map .atlas-point-tooltip strong{color:#fff;font-size:13px;font-weight:800;overflow-wrap:anywhere}
.atlas-public #map .atlas-point-tooltip span{color:#e3b761;font-size:11px;font-weight:650}
.atlas-public #map .leaflet-tooltip-left.atlas-point-tooltip:before{border-left-color:#112a47}
.atlas-public #map .leaflet-tooltip-right.atlas-point-tooltip:before{border-right-color:#112a47}
.atlas-public #map .leaflet-tooltip-top.atlas-point-tooltip:before{border-top-color:#112a47}
.atlas-public #map .leaflet-tooltip-bottom.atlas-point-tooltip:before{border-bottom-color:#112a47}

/* Bloque A: controles de la ficha cinematográfica compartida */
.atlas-public .atlas-section-nav{background:#102a48;color:#fff;padding:13px 0}
.atlas-public .atlas-section-nav .wrap{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.atlas-public .atlas-section-nav span{display:flex;flex-wrap:wrap;gap:18px}
.atlas-public .atlas-section-nav a{color:#fff;font-weight:700;font-size:13px}
.atlas-public .atlas-film-documental{display:grid;grid-template-columns:minmax(120px,200px) 1fr;gap:22px;align-items:start}
.atlas-public .atlas-film-documental-poster img{width:100%;height:auto;aspect-ratio:2/3;object-fit:cover;border-radius:12px}
.atlas-public .atlas-film-documental-info h2{margin:5px 0 16px}
.atlas-public .atlas-film-documental-info small{color:#a47724;font-weight:800;letter-spacing:.08em}
.atlas-public .atlas-film-documental-info dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}
.atlas-public .atlas-film-documental-info dl div{background:#f5f7fb;border-radius:9px;padding:10px}
.atlas-public .atlas-film-documental-info dt{font-size:11px;font-weight:750;color:#697a8d}
.atlas-public .atlas-film-documental-info dd{margin:4px 0;font-size:14px}
.atlas-public .atlas-film-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:17px}
.atlas-public .atlas-film-actions a{padding:9px 13px;background:#123b6b;color:#fff;border-radius:8px;font-weight:750}
.atlas-public .atlas-film-actions .atlas-imdb-btn{background:#f5c518;color:#171717}
@media(max-width:650px){.atlas-public .atlas-film-documental{grid-template-columns:1fr}.atlas-public .atlas-film-documental-poster{max-width:160px}.atlas-public .atlas-film-documental-info dl{grid-template-columns:1fr}}

/* Bloque A2: fotografías y carteles en las fichas públicas */
.atlas-public .card .poster{overflow:hidden;padding:0;min-height:170px}
.atlas-public .card .poster img{width:100%;height:100%;min-height:170px;max-height:235px;object-fit:cover;display:block}
.atlas-public .card .poster.atlas-no-photo{background:#eaf0f6;color:#63748a}
.atlas-public .atlas-map-link{margin:14px 0 24px}
.atlas-public .atlas-map-link a{display:inline-flex;align-items:center;min-height:42px}

/* Bloque A3: foto del lugar primero y afiches completos después. */
.atlas-public .atlas-lugar-foto-principal{margin:22px 0 26px;max-width:100%}
.atlas-public .atlas-lugar-foto-principal img{display:block;width:100%;max-height:430px;object-fit:contain;object-position:left center;border-radius:14px;background:#f1f4f8}
.atlas-public .atlas-lugar-foto-principal figcaption{font-size:12px;color:#64748b;line-height:1.5;margin-top:8px;overflow-wrap:anywhere}
.atlas-public .card .poster.atlas-cartel-completo{height:295px;min-height:295px;background:#f3f5f8;padding:10px}
.atlas-public .card .poster.atlas-cartel-completo img{width:100%;height:100%;min-height:0;max-height:none;object-fit:contain;object-position:center}
@media(max-width:600px){.atlas-public .card .poster.atlas-cartel-completo{height:270px;min-height:270px}}
