@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Playfair+Display:wght@500;600;700&display=swap');
:root{--green:#1d704e;--green-deep:#173f35;--accent:#c99b55;--paper:#f6f5f0;--surface:#fff;--ink:#1c2925;--muted:#6c7771;--line:#e0e4de;--shadow:0 18px 50px rgba(26,52,43,.08);font-family:Manrope,system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink)}a{color:inherit}.atlas-header{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,5vw,76px);background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);gap:24px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;min-width:max-content}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--green-deep);color:#fff;font-size:12px;font-weight:800;letter-spacing:.06em}.brand strong,.brand small{display:block}.brand strong{font-size:13px}.brand small{color:var(--muted);font-size:11px;margin-top:3px}.atlas-header nav{display:flex;gap:26px}.atlas-header nav a{text-decoration:none;font-size:12px;font-weight:700;color:#53615a}.atlas-header nav a:hover{color:var(--green)}.theme-toggle{border:1px solid var(--line);background:var(--surface);width:40px;height:40px;border-radius:50%;font-size:21px;cursor:pointer;color:var(--ink)}.atlas-main{max-width:1500px;margin:auto;padding:0 clamp(16px,4.8vw,72px) 40px}.hero{padding:55px 0 38px;max-width:850px}.eyebrow,.eyebrow-small{font-size:10px;font-weight:800;letter-spacing:.16em;color:var(--green);display:flex;align-items:center;gap:8px}.eyebrow span{width:7px;height:7px;border-radius:50%;background:var(--accent)}h1,h2,p{margin-top:0}h1{font:600 clamp(38px,5vw,62px)/1.08 'Playfair Display',Georgia,serif;letter-spacing:-.04em;margin:16px 0}.hero h1 em{color:var(--green);font-weight:500}.hero>p{max-width:720px;color:var(--muted);font-size:14px;line-height:1.9}.hero-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:23px}.hero-meta span{font-size:10px;font-weight:700;color:#56645d;background:#e9eee8;border:1px solid #dfe7dd;border-radius:99px;padding:8px 12px}.workspace{display:grid;grid-template-columns:290px minmax(0,1fr);gap:20px;align-items:stretch}.control-panel,.map-column{background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}.control-panel{padding:22px}.panel-heading,.map-topline,.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.panel-heading h2,.map-topline h2,.section-heading h2{font:600 22px/1.25 'Playfair Display',Georgia,serif;margin:6px 0 20px}.quiet-button{border:0;background:transparent;color:var(--green);font:700 10px Manrope,sans-serif;cursor:pointer;padding:5px 0}.control-panel>label:not(.layer-toggle){display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:800;margin:18px 0 8px}.control-panel select,.search-box input{width:100%;border:1px solid var(--line);border-radius:9px;padding:12px 11px;background:var(--surface);color:var(--ink);font:500 12px Manrope,sans-serif;outline-color:var(--green)}input[type=range]{width:100%;accent-color:var(--green);margin:12px 0 0}.range-ends{display:flex;justify-content:space-between;color:var(--muted);font-size:9px;margin-top:5px}.panel-separator{height:1px;background:var(--line);margin:22px 0}.label-block{display:block;font-size:10px;font-weight:800;margin-bottom:12px}.layer-toggle{display:flex;align-items:center;gap:10px;padding:10px 0;cursor:pointer}.layer-toggle input{accent-color:var(--green);width:15px;height:15px}.layer-toggle span:last-child{display:block}.layer-toggle b,.layer-toggle small{display:block}.layer-toggle b{font-size:11px}.layer-toggle small{font-size:9px;color:var(--muted);margin-top:3px}.layer-swatch{display:inline-block;width:9px;height:9px;border-radius:50%;flex:0 0 auto}.layer-swatch.area{background:#9f9b5e}.layer-swatch.battle{background:#bd5c4b}.layer-swatch.expedition{background:#3577a5}.layer-swatch.trade{background:#bd8a36}.panel-note{font-size:10px;line-height:1.7;color:var(--muted);margin:22px 0 0;padding:12px;background:#f5f5f0;border-radius:9px}.search-box{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:9px;padding-left:10px}.search-box span{font-size:22px;color:var(--muted)}.search-box input{border:0;padding-left:0}.map-column{padding:22px}.map-topline h2{margin-bottom:16px}.result-count{font-size:10px;font-weight:800;color:var(--green);background:#edf3ed;padding:8px 10px;border-radius:99px;white-space:nowrap}#historical-map{height:520px;min-height:360px;border-radius:13px;overflow:hidden;background:#e2e6de;border:1px solid var(--line);z-index:1}.map-legend{display:flex;gap:18px;flex-wrap:wrap;padding:15px 2px 0;color:var(--muted);font-size:9px;font-weight:700}.legend-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px}.legend-dot.battle{background:#bd5c4b}.legend-dot.expedition{background:#3577a5}.legend-dot.trade{background:#bd8a36}.legend-dot.empire{background:#9f9b5e}.explore-section{padding:52px 0 28px}.section-heading{align-items:end;margin-bottom:18px}.section-heading h2{margin:6px 0 0;font-size:28px}.section-heading p{font-size:11px;line-height:1.7;color:var(--muted);max-width:400px;margin:0}.event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.event-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;min-height:195px;transition:transform .18s,border-color .18s}.event-card:hover{transform:translateY(-2px);border-color:#a9c3ad}.event-card .card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.event-year{font-size:10px;font-weight:800;color:var(--green)}.type-pill{font-size:9px;font-weight:800;border-radius:99px;padding:5px 8px;background:#f0eee5;color:#665d42}.event-card h3{font:600 19px/1.25 'Playfair Display',Georgia,serif;margin:0 0 8px}.event-card p{font-size:11px;line-height:1.7;color:var(--muted);margin-bottom:16px}.card-actions{display:flex;align-items:center;gap:12px;margin-top:auto}.card-actions button,.card-actions a{font:800 10px Manrope,sans-serif;color:var(--green);background:none;border:0;padding:0;text-decoration:none;cursor:pointer}.card-actions a{margin-left:auto}.empty-state{grid-column:1/-1;padding:32px;text-align:center;border:1px dashed var(--line);border-radius:14px;color:var(--muted);font-size:12px}.method-note{display:flex;gap:14px;background:#e9eee7;border:1px solid #dce5da;border-radius:14px;padding:20px;margin:16px 0 28px}.method-icon{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:50%;background:var(--green);color:white;font-weight:800}.method-note strong{font-size:12px}.method-note p{font-size:10px;line-height:1.8;color:#58665e;margin:7px 0 0}.atlas-footer{display:flex;gap:18px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:9px;padding:14px 0;border-top:1px solid var(--line)}.atlas-footer a{margin-left:auto}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--surface);color:var(--ink)}.map-popup{min-width:180px}.map-popup .popup-type{font-size:9px;font-weight:800;color:var(--green);text-transform:uppercase;letter-spacing:.08em}.map-popup h3{font:600 17px 'Playfair Display',Georgia,serif;margin:5px 0}.map-popup p{font:11px/1.6 Manrope,sans-serif;color:var(--muted);margin:0 0 9px}.map-popup a{font:800 10px Manrope,sans-serif;color:var(--green)}.map-marker{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:#fff;font-size:11px;font-weight:800;border:2px solid rgba(255,255,255,.9);box-shadow:0 2px 10px #0003}.marker-battle{background:#bd5c4b}.marker-expedition{background:#3577a5}.marker-trade{background:#bd8a36}.marker-empire{background:#85824e}@media(max-width:1000px){.workspace{grid-template-columns:250px minmax(0,1fr)}#historical-map{height:480px}.event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.atlas-header nav{gap:14px}}@media(max-width:760px){.atlas-header{height:65px;padding:0 16px}.atlas-header nav{display:none}.atlas-main{padding:0 14px 28px}.hero{padding:38px 0 28px}.hero>p{font-size:12px}.workspace{grid-template-columns:1fr}.control-panel{padding:18px}.map-column{padding:14px}#historical-map{height:420px;min-height:330px}.map-topline h2{font-size:19px}.event-grid{grid-template-columns:1fr}.event-card{min-height:unset}.section-heading{display:block}.section-heading p{margin-top:10px}.atlas-footer a{margin-left:0}.map-legend{gap:10px}.method-note{padding:15px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}html[data-theme="dark"]{--paper:#111a17;--surface:#1b2822;--ink:#edf2ed;--muted:#a5b1a8;--line:#33433a;--green:#7ac19b;--green-deep:#1c4537;--shadow:0 18px 50px rgba(0,0,0,.18)}html[data-theme="dark"] .atlas-header{background:rgba(24,36,30,.96)}html[data-theme="dark"] .atlas-header nav a{color:#c2cec5}html[data-theme="dark"] .hero-meta span,html[data-theme="dark"] .result-count{background:#263b30;border-color:#354a3c;color:#c3e2cd}html[data-theme="dark"] .panel-note,html[data-theme="dark"] .method-note{background:#23352b;border-color:#354a3c}html[data-theme="dark"] .method-note p{color:#c1ccc4}html[data-theme="dark"] .type-pill{background:#39372d;color:#e0d8b7}html[data-theme="dark"] .leaflet-tile{filter:brightness(.72) invert(1) contrast(.82) hue-rotate(180deg) saturate(.65)}html[data-theme="dark"] .leaflet-control-attribution{background:#1b2822;color:#d5dfd8}html[data-theme="dark"] .leaflet-control-attribution a{color:#91c7a8}

/* Atlas v2: clustering, capas cartográficas y navegación ampliada */
.layer-swatch.event,.legend-dot.event{background:#8064a2}.territory-toggle{border-top:1px solid var(--line);margin-top:8px;padding-top:14px}.cluster-legend{margin-left:auto;color:var(--muted);font-weight:500}.map-marker{position:relative;z-index:2;transition:transform .15s,box-shadow .15s}.map-marker:hover{transform:scale(1.12);box-shadow:0 3px 14px #0005}.marker-event{background:#8064a2}.lvh-cluster{background:transparent;border:0}.cluster-bubble{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:3px solid rgba(255,255,255,.95);box-shadow:0 3px 14px #17241e44;font:800 12px Manrope,system-ui,sans-serif;color:white;background:#294f40}.cluster-small{background:#356c51}.cluster-medium{background:#9a6c2d}.cluster-large{background:#a8433c;width:46px;height:46px;margin:-2px}.type-event{background:#eee8f7;color:#5b4381}.type-battle{background:#f7e7e3;color:#8e4035}.type-expedition{background:#e4edf5;color:#285b82}.type-trade{background:#f6efdd;color:#85601d}.type-empire{background:#efefdf;color:#676638}.event-subtype{font-size:9px;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin:-6px 0 12px}.popup-subtype{display:inline-block;font:700 9px Manrope,sans-serif;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 6px}.source-note{font-size:9px;line-height:1.5;color:var(--muted);display:block;margin:4px 0}.more-events-wrap{display:flex;justify-content:center;padding:20px 0}.show-more-events{border:1px solid var(--line);border-radius:999px;padding:12px 20px;background:var(--surface);color:var(--green);font:800 11px Manrope,sans-serif;cursor:pointer}.show-more-events:hover{border-color:var(--green);background:#e9f1e9}.show-more-events[hidden]{display:none}html[data-theme="dark"] .type-event{background:#393149;color:#e2d7f6}html[data-theme="dark"] .type-battle{background:#482d2a;color:#f0c4bb}html[data-theme="dark"] .type-expedition{background:#263b4b;color:#c3dff3}html[data-theme="dark"] .type-trade{background:#443b28;color:#e7d4a0}html[data-theme="dark"] .type-empire{background:#3c3d2b;color:#e2e0b5}html[data-theme="dark"] .show-more-events{background:var(--surface);color:var(--green)}
@media(max-width:760px){.cluster-legend{width:100%;margin-left:0}.map-legend{line-height:1.8}.cluster-bubble{width:38px;height:38px}.cluster-large{width:42px;height:42px}}


/* Estado visible del catálogo, añadido en la reparación de caché del atlas. */
.catalog-status{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 14px;padding:12px 16px;border:1px solid var(--line,rgba(100,100,100,.22));border-radius:12px;background:var(--surface,rgba(120,120,120,.06));font-size:.9rem}
.catalog-status strong{font-weight:750}
.catalog-status span{opacity:.78;font-size:.82rem}


/* Atlas v3: simbología cartográfica con líneas jerarquizadas y dirección de ruta. */
.line-legend{display:inline-flex;align-items:center;gap:7px}
.legend-line{display:inline-block;width:30px;height:0;border-top:3px solid currentColor;position:relative;flex:0 0 auto}
.expedition-line{color:#2477a8}
.trade-line{color:#b78327;border-top-style:dotted}
.territory-line{color:#85824e;border-top-style:dashed}
.route-arrow-icon{background:transparent!important;border:0!important;pointer-events:none}
.route-arrow{display:grid;place-items:center;width:22px;height:22px;color:#fff;font:900 19px/1 system-ui,sans-serif;-webkit-text-stroke:1px rgba(255,255,255,.95);filter:drop-shadow(0 1px 2px rgba(20,30,25,.8));transform-origin:50% 50%;pointer-events:none}
.route-arrow-expedition{color:#2477a8}
.route-arrow-trade{color:#b78327}
html[data-theme="dark"] .route-arrow-expedition{color:#55b8e8}
html[data-theme="dark"] .route-arrow-trade{color:#e9bc55}
html[data-theme="dark"] .expedition-line{color:#55b8e8}
html[data-theme="dark"] .trade-line{color:#e9bc55}
html[data-theme="dark"] .territory-line{color:#c0bb75}
html[data-theme="dark"] .legend-line{filter:drop-shadow(0 0 1px #111)}
.leaflet-interactive:focus{outline:none;filter:drop-shadow(0 0 2px rgba(20,80,120,.9))}
