:root{color-scheme:dark;--ink:#fff9f3;--muted:#b8a9c5;--bg:#171020;--surface:#241a32;--surface2:#32243f;--border:#574463;--orange:#ff983e;--orange2:#ffb867;--purple:#8e60dd;--green:#43be91;--radius:20px}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}#map{position:fixed;inset:0;background:#272135;z-index:0}.leaflet-container{font-family:inherit}.leaflet-control-attribution{font-size:9px!important}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#241a32;color:#fff6ed;border:1px solid #5a426b}.leaflet-popup-content{margin:12px;width:250px!important}.leaflet-popup-close-button{color:#eee!important}
.top-area{position:fixed;left:0;right:0;top:0;z-index:500;pointer-events:none;padding:env(safe-area-inset-top) 14px 0}.topbar{margin:12px auto 10px;max-width:1050px;border:1px solid #70527888;background:#1e152cf5;box-shadow:0 12px 25px #16092344;backdrop-filter:blur(14px);border-radius:20px;padding:10px 12px;display:flex;justify-content:space-between;gap:8px;align-items:center;pointer-events:auto}.brand{display:flex;gap:11px;align-items:center;min-width:0}.brand-emblem{width:43px;height:43px;display:grid;place-items:center;background:linear-gradient(135deg,#633361,#312045);border-radius:14px;font-size:27px}.brand-text{display:flex;flex-direction:column;min-width:0}.brand-text strong{font-size:19px;letter-spacing:-.6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-text span{font-size:11px;color:#f4b987;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-actions{display:flex;gap:7px;align-items:center}.year-select,.round-btn,.map-control{border:1px solid #70537f;background:#342341;color:#fff;border-radius:13px;height:39px;padding:0 10px}.round-btn{font-size:22px;width:40px}.year-select{font-size:13px;font-weight:700}.filters{display:flex;gap:7px;overflow:auto;pointer-events:auto;max-width:1050px;margin:auto;scrollbar-width:none;padding:0 2px 12px}.filters::-webkit-scrollbar{display:none}.chip{background:#281b35e8;border:1px solid #674873da;color:#e9dff1;border-radius:999px;padding:10px 14px;white-space:nowrap;font-size:12px;font-weight:700;box-shadow:0 3px 13px #1e102844}.chip.active{color:#1b1128;background:#ffa54e;border-color:#ffb873}
.float-tools{position:fixed;right:16px;top:166px;z-index:400;display:flex;flex-direction:column;gap:8px}.map-control{font-size:25px;width:43px;height:43px;background:#251a32ea;box-shadow:0 5px 18px #190f1f88}.footer-tools{position:fixed;left:0;right:0;bottom:0;z-index:450;padding:12px 17px calc(20px + env(safe-area-inset-bottom));display:flex;justify-content:space-between;align-items:center;gap:12px;pointer-events:none;background:linear-gradient(0deg,#160e22ac,transparent)}.map-status{background:#1e152ce8;border:1px solid #5f4b6b;border-radius:999px;padding:11px 13px;color:#f5e5f5;font-weight:700;font-size:12px;backdrop-filter:blur(12px);pointer-events:auto}.live-dot{display:inline-block;width:7px;height:7px;margin-right:5px;background:#58d9a0;border-radius:50%;box-shadow:0 0 7px #50dba2}.add-btn{pointer-events:auto;background:linear-gradient(115deg,#ffb15c,#ff823d);border:0;border-radius:17px;color:#271227;padding:14px 17px;font-size:15px;font-weight:850;box-shadow:0 7px 22px #ba4e1b99;white-space:nowrap}.add-btn span{font-size:20px;margin-right:5px}
.overlay{position:fixed;inset:0;background:#10091b99;z-index:850;display:flex;align-items:flex-end;justify-content:center;backdrop-filter:blur(4px)}.overlay.hidden,.hidden{display:none!important}.sheet{background:#21162efc;border:1px solid #5f476f;border-bottom:0;border-radius:25px 25px 0 0;width:100%;max-width:670px;max-height:88vh;overflow:auto;box-shadow:0 0 45px #140f1d99}.sheet-handle{width:40px;height:5px;background:#6b5478;border-radius:9px;margin:11px auto 1px}.sheet-heading{padding:8px 24px 12px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #4c375c}.sheet-heading h2{font-size:21px;margin:0;letter-spacing:-.5px}.close-btn{background:#392747;border:0;border-radius:50%;color:#fff;width:36px;height:36px;font-size:25px}.sheet-content{padding:20px 24px calc(26px + env(safe-area-inset-bottom))}.sheet-content p{line-height:1.5;margin:0 0 16px}.muted{color:var(--muted);font-size:13px}.eyebrow{color:#ffb867;text-transform:uppercase;font-size:11px;font-weight:800;letter-spacing:1.2px}.btn{border:0;border-radius:14px;padding:13px 15px;font-weight:800;font-size:14px;display:inline-flex;gap:8px;align-items:center;justify-content:center}.primary{color:#201025;background:linear-gradient(100deg,#ffb767,#ff873f)}.secondary{background:#6b449e;color:white}.subtle{background:#3b294a;color:#f8eaff}.outline{background:transparent;color:#f5d5fc;border:1px solid #6a4d77}.danger{background:#542d43;color:#ffd0cc}.block{width:100%}.stack{display:flex;flex-direction:column;gap:10px}.row{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.card{background:#2a1d38;border:1px solid #5a4168;border-radius:18px;padding:15px;margin:11px 0}.card h3{margin:0 0 7px}.card p{margin:5px 0 9px;font-size:13px}.card .meta{color:#ccbad8;font-size:12px;line-height:1.7}.card .row{margin-top:11px}.card .btn{padding:9px 11px;font-size:12px}.pill{display:inline-flex;padding:5px 9px;border-radius:9px;background:#68438c;color:white;font-size:11px;font-weight:800;margin:0 5px 5px 0}.pill.gold{background:#9f5420;color:#ffe3bb}.pill.green{background:#236e56;color:#d4ffeb}.pill.gray{background:#50425c;color:#e7d8ed}.detail-photo{width:100%;height:160px;object-fit:cover;border-radius:12px;margin:0 0 10px}.field{display:block;margin:0 0 15px;font-size:13px;color:#d9cce0;font-weight:750}.field input,.field select,.field textarea{display:block;margin-top:7px;width:100%;background:#130d1e;border:1px solid #675275;border-radius:12px;color:white;padding:12px;outline:none}.field textarea{resize:vertical;min-height:80px}.field input:focus,.field select:focus,.field textarea:focus{border-color:#ffa657}.checkbox{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.45;margin:12px 0;color:#ecdcf2}.checkbox input{width:18px;height:18px;accent-color:#ffa14b;flex:none;margin:2px 0 0}.tip{background:#352344;border-left:3px solid #ffac5a;padding:12px;border-radius:9px;font-size:12px;color:#eee0ee;margin:12px 0 16px}.selection-panel{position:fixed;bottom:0;left:0;right:0;z-index:600;background:#271936;border-top:1px solid #86659d;box-shadow:0 -8px 32px #150b23aa;padding:16px 20px calc(18px + env(safe-area-inset-bottom));display:flex;justify-content:space-between;gap:12px;align-items:center}.selection-panel b{display:block;font-size:15px}.selection-panel small{display:block;color:#c4b6c9;font-size:11px;max-width:270px}.selection-actions{display:flex;gap:8px}.selection-actions .btn{font-size:12px;padding:11px}.toast{position:fixed;bottom:95px;left:50%;transform:translateX(-50%);z-index:2000;max-width:min(90vw,420px);padding:14px 18px;background:#382348;border:1px solid #9e79ad;color:white;border-radius:12px;font-size:13px;text-align:center;box-shadow:0 15px 30px #120b1caa}.update-notice{position:fixed;top:154px;left:50%;transform:translateX(-50%);background:#422a58;color:white;border:1px solid #b893d7;padding:12px;border-radius:15px;z-index:1200;min-width:260px;box-shadow:0 10px 25px #24132caa}.update-notice button{border:0;border-radius:8px;color:#22142d;background:#ffae54;margin-left:9px;padding:8px;font-weight:700}.pin{display:grid;place-items:center;width:39px;height:43px;font-size:22px;text-shadow:0 2px 2px #11091b;filter:drop-shadow(0 3px 6px #200c2b88);background:linear-gradient(#372343,#20132c);border-radius:18px 18px 18px 4px;border:2px solid #ffac5e}.pin.candy{border-color:#fbb8d7}.pin.decorated{border-color:#ffad52}.pin.terror{border-color:#a879f5}.pin.neighbor{opacity:.8;border-style:dashed}.pin.selected{background:#5a3875;border-color:#e8c5ff}.popup-title{font-weight:850;font-size:16px;margin-bottom:5px}.popup-sub{color:#c3b2d0;font-size:12px;margin:5px 0}.popup-note{font-size:12px;color:#ffe9cd;background:#42283e;padding:9px;border-radius:10px;margin:8px 0}.popup-photo{width:100%;height:120px;object-fit:cover;border-radius:11px}.popup-price{font-weight:800;color:#ffbb78}.popup-description{font-size:13px;white-space:pre-wrap;max-height:110px;overflow:auto}.popup-actions{margin-top:10px}.popup-actions .btn{padding:9px 11px;font-size:12px}
@media(min-width:720px){.topbar{margin-top:18px}.filters{justify-content:center}.sheet{border-radius:25px;margin-bottom:24px;border-bottom:1px solid #5f476f;max-height:83vh}.overlay{align-items:center}.float-tools{top:194px}.selection-panel{max-width:710px;left:50%;transform:translateX(-50%);bottom:20px;border:1px solid #86659d;border-radius:20px}}
@media(max-width:420px){.brand-text strong{font-size:16px}.brand-text span{font-size:10px}.brand-emblem{width:38px;height:38px}.header-actions{gap:4px}.year-select{width:76px;padding:0 6px}.top-area{padding-left:8px;padding-right:8px}.float-tools{top:156px;right:10px}.map-status{padding:10px;font-size:11px}.add-btn{padding:12px 11px;font-size:13px}.selection-panel{flex-direction:column;align-items:stretch}.selection-actions .btn{flex:1}}

/* Documentación accesible sin registro */
.legal-footer{position:fixed;bottom:85px;left:50%;transform:translateX(-50%);z-index:460;max-width:calc(100vw - 22px);display:flex;gap:9px;flex-wrap:wrap;justify-content:center;background:#21152ddd;border:1px solid #5f456f;border-radius:12px;padding:6px 10px;box-shadow:0 4px 12px #160e2255}
.legal-footer a,.legal-in-modal a{font-size:11px;color:#ffd1a3;text-decoration:underline;text-underline-offset:3px}
.legal-in-modal{text-align:center;padding:12px 4px;color:#beafcd;line-height:1.8}
.legal-info{font-size:12px;line-height:1.55}.legal-check{align-items:flex-start!important;line-height:1.5;font-size:13px}.legal-check a{color:#ffd1a3}
@media (max-width:420px){.legal-footer{bottom:87px;gap:5px;padding:5px 9px}.legal-footer a{font-size:10px}}

/* v1.4: enlaces legales en una banda baja, sin tapar el centro del mapa. */
.legal-footer{position:fixed;left:0;right:0;bottom:0;transform:none;z-index:455;max-width:none;
 display:flex;gap:clamp(7px,2vw,18px);flex-wrap:nowrap;justify-content:center;overflow-x:auto;
 background:#1e152cf2;border:0;border-top:1px solid #5f456f;border-radius:0;
 padding:4px 8px calc(4px + env(safe-area-inset-bottom));box-shadow:none;white-space:nowrap}
.legal-footer a{font-size:10px;text-decoration:none;opacity:.82;white-space:nowrap}
.footer-tools{bottom:calc(21px + env(safe-area-inset-bottom));padding-bottom:11px}
.leaflet-bottom.leaflet-right{bottom:calc(102px + env(safe-area-inset-bottom))}
@media(max-width:420px){.legal-footer{bottom:0;gap:8px;padding:4px 5px calc(4px + env(safe-area-inset-bottom))}.legal-footer a{font-size:9px}}


/* TrucoRadar 1.5.1 · Zona encantada sin etiquetas, bruma reforzada y calabazas en ambos extremos */
.tr-haunt-fog-marker,.tr-haunt-marker{background:transparent!important;border:0!important;white-space:normal}
.tr-haunt-fog-marker{pointer-events:none!important}
.tr-haunted-zone{position:absolute;left:0;top:0;width:var(--tr-width);height:96px;
 transform:translate(-50%,-50%) rotate(var(--tr-angle));transform-origin:center;pointer-events:none}
.tr-fog-halo,.tr-fog-core{position:absolute;display:block;pointer-events:none;border-radius:50%;inset:0}
.tr-fog-halo{inset:4px -14px;background:radial-gradient(ellipse at center,
 rgba(106,46,160,.60) 0%,rgba(139,80,186,.46) 34%,rgba(150,92,210,.26) 57%,transparent 82%);
 filter:blur(12px);animation:tr-fog-breathe 8s ease-in-out infinite alternate}
.tr-fog-core{inset:22px 3px;background:radial-gradient(ellipse at center,
 rgba(255,152,75,.35) 0%,rgba(125,66,157,.32) 45%,transparent 81%);
 filter:blur(9px);animation:tr-fog-breathe 6s ease-in-out infinite alternate-reverse}
.tr-bat{color:#27142f;position:absolute;top:50%;left:50%;display:block;width:24px;height:16px;
 filter:drop-shadow(0 1px 2px #ead4fa) drop-shadow(0 0 3px #b883df);
 animation:tr-bat-fly 4.8s ease-in-out infinite alternate;will-change:transform}
.tr-bat svg{display:block;width:100%;height:100%;overflow:visible}
.tr-bat .tr-wing{transform-box:view-box;transform-origin:center;animation:tr-bat-wings .55s ease-in-out infinite alternate}
.tr-bat .tr-wing-right{animation-direction:alternate-reverse}
.tr-bat-1{left:15%;top:40%;animation-duration:5.4s;animation-delay:-1.5s}
.tr-bat-2{left:33%;top:20%;animation-duration:4.4s;animation-delay:-2.8s}
.tr-bat-3{left:55%;top:57%;animation-duration:6.1s;animation-delay:-4.2s}
.tr-bat-4{left:75%;top:30%;animation-duration:5.3s;animation-delay:-.9s}
.tr-bat-5{left:87%;top:57%;animation-duration:4.9s;animation-delay:-3.6s}
.tr-bat-2 svg{transform:scale(.79)}.tr-bat-4 svg{transform:scale(.86)}
.tr-bat-5 svg{transform:scale(.72)}
.tr-haunt-end{position:absolute;left:0;top:0;transform:translate(-50%,-50%);
 width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;
 font-size:21px;line-height:1;background:#291b3deb;border:2px solid #f4a74fae;
 box-shadow:0 2px 8px #2a153a88,0 0 11px #bd82df88;cursor:pointer;user-select:none;
 transition:box-shadow .18s ease,scale .18s ease}
.tr-haunt-marker:hover .tr-haunt-end{scale:1.12;box-shadow:0 2px 10px #2a153aaa,0 0 18px #e6a1ffdd}
@keyframes tr-bat-fly{0%{transform:translate(-6px,4px) rotate(-9deg)}45%{transform:translate(5px,-8px) rotate(9deg)}100%{transform:translate(12px,3px) rotate(-5deg)}}
@keyframes tr-bat-wings{from{transform:scaleY(.75)}to{transform:scaleY(1.1)}}
@keyframes tr-fog-breathe{from{opacity:.68;transform:scale(.95)}to{opacity:1;transform:scale(1.04)}}
@media(max-width:480px){.tr-haunt-end{height:32px;width:32px;font-size:19px}.tr-haunted-zone{height:85px}.tr-bat{width:21px;height:14px}}
@media(prefers-reduced-motion:reduce){.tr-bat,.tr-bat .tr-wing,.tr-fog-halo,.tr-fog-core{animation:none!important;will-change:auto!important}}


/* TrucoRadar 1.6 · modo preparativos de noviembre a septiembre */
.offseason-landing{display:none}
body.offseason:not(.studio-open){background:#160e25;min-height:100dvh;overflow:auto}
body.offseason:not(.studio-open) #map,
body.offseason:not(.studio-open) .top-area,
body.offseason:not(.studio-open) .float-tools,
body.offseason:not(.studio-open) .footer-tools,
body.offseason:not(.studio-open) .selection-panel{display:none!important}
body.offseason .offseason-landing{display:flex;min-height:calc(100dvh - 25px);padding:clamp(26px,5vw,70px) 18px 75px;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:13px;background:radial-gradient(ellipse at 50% 24%,#3d2059 0%,#21152e 48%,#160e25 100%);color:#ffeff8}
body.offseason.studio-open .offseason-landing{display:none}
body.offseason.studio-open .filters,body.offseason.studio-open .year-select{display:none!important}
body.offseason.studio-open .map-status{display:none}
body.offseason.studio-open .footer-tools{justify-content:flex-end}
.landing-stars{font-size:31px;letter-spacing:15px;color:#e9a76e;opacity:.85}
.landing-brand{font-size:34px;font-weight:900;letter-spacing:-1px;display:flex;gap:12px;align-items:center}
.landing-kicker{color:#ffb76a;font-size:11px;font-weight:850;letter-spacing:2px;margin:2px 0 0}
.offseason-landing h1{font-size:clamp(28px,5vw,48px);line-height:1.09;max-width:800px;margin:4px 0 0}
.landing-lead{max-width:580px;color:#dac7df;line-height:1.65;font-size:clamp(14px,1.8vw,17px);margin:0}
.landing-card{width:min(100%,480px);padding:23px;border-radius:22px;background:#291a39ee;border:1px solid #74528a;box-shadow:0 18px 56px #10082066;margin-top:12px;text-align:left}
.landing-card-symbol{font-size:40px;text-align:center}.landing-card h2{margin:3px 0 10px;text-align:center}.landing-card p{font-size:14px;line-height:1.55;color:#e3d5e9;margin-bottom:19px}
.landing-card .btn{margin-top:11px;line-height:1.45}
.landing-footnote{font-size:12px;line-height:1.6;color:#bda9c9;max-width:570px}
.studio-back{display:none;position:fixed;top:16px;left:12px;z-index:1200;border:1px solid #ae81c5;background:#2f1e43;color:#fff;border-radius:14px;padding:10px 15px;font-weight:800;box-shadow:0 4px 15px #130b1a77}
body.offseason.studio-open .studio-back{display:block}
body.offseason.studio-open .topbar{padding-left:120px}
body.offseason.studio-open .add-btn{font-size:0}
body.offseason.studio-open .add-btn:after{content:'Añadir actividad';font-size:13px}
/* Ratings and operational status */
.popup-rating{color:#ffe2a2;font-weight:800;background:#382745;border-radius:9px;padding:7px 10px;margin:7px 0;font-size:13px}
.opening-state{display:block;padding:8px 10px;border-radius:9px;background:#4b3a59;color:#eee1f5;font-weight:800;margin:7px 0;font-size:12px}
.opening-state.state-open{background:#246d4c;color:#e6ffed}.opening-state.state-upcoming{background:#554020;color:#ffdf9e}
.opening-state.state-paused,.opening-state.state-sold_out{background:#663b42;color:#fff1ed}
.opening-state.state-ended{background:#4e4655;color:#eee5ec}
.rating-history{display:flex;flex-direction:column;gap:9px;margin:13px 0 20px}
.rating-year{border:1px solid #5d4771;border-radius:12px;display:flex;justify-content:space-between;gap:15px;padding:12px 13px;flex-wrap:wrap;font-size:13px;background:#302140}
.rating-year span{color:#ffd58d}
.rating-picker{display:flex;gap:5px;flex-wrap:wrap;margin:12px 0 18px}
.rating-picker label{display:flex;flex:1;min-width:50px;align-items:center;justify-content:center;flex-direction:column;gap:4px;background:#332540;border:1px solid #675176;border-radius:10px;padding:10px 5px;cursor:pointer}
.rating-picker label:has(input:checked){border-color:#ffae58;background:#63402e}
.rating-picker label input{accent-color:#ffa550}.rating-picker span{color:#ffca67;font-size:15px;letter-spacing:-2px}.rating-picker small{font-size:10px;color:#d2bfdf}
.session-row{display:flex;align-items:end;gap:8px;margin:12px 0;flex-wrap:wrap}
.session-row label{font-size:12px;color:#e6dce9;flex:1;min-width:140px}
.session-row input{display:block;width:100%;margin-top:6px;border-radius:10px;background:#160e20;border:1px solid #6d4e7d;color:white;padding:9px 5px;font-size:12px}
.session-row .btn{padding:9px 12px}
@media(max-width:520px){body.offseason.studio-open .brand-text span{display:none}body.offseason.studio-open .topbar{padding-left:126px}.rating-picker label{min-width:44px}.session-row label{min-width:105px}}

/* El administrador puede revisar el mapa cerrado sin abrir la API pública. */
body.offseason.studio-open.preview-mode .filters{display:flex!important}
body.offseason.studio-open.preview-mode .year-select{display:block!important}
body.offseason.studio-open.preview-mode .map-status{display:flex}

/* TrucoRadar 1.6.3: solicitudes no aprobadas visibles solo en vista previa privada */
.pin.pending{border-color:#ffca65!important;border-style:dashed;opacity:.78;box-shadow:0 0 0 3px #3a2559aa;filter:grayscale(.18) drop-shadow(0 3px 7px #28192c99)}

/* TrucoRadar 1.6.5 — iconografia oficial (calabaza luminosa con radar) */
.brand-emblem{width:43px;height:43px;flex:none;border-radius:13px;overflow:hidden;background:#1c0d2d;box-shadow:0 0 8px #a854d744}
.brand-emblem img{width:100%;height:100%;display:block;object-fit:cover}
.landing-brand img{width:58px;height:58px;object-fit:cover;border-radius:17px;box-shadow:0 0 22px #ad51d34d}
#seasonSelect{background-image:none;padding-left:10px;min-width:90px}
.update-notice{display:flex;gap:7px;align-items:center}.update-logo{flex:none;width:24px;height:24px;border-radius:7px}
@media(max-width:420px){.brand-emblem{width:38px;height:38px}.landing-brand img{width:49px;height:49px}#seasonSelect{min-width:84px;width:88px;padding-left:7px;background-image:none}}

/* TrucoRadar 1.6.6: el mismo logo oficial en cabecera, landing y aviso. */
.landing-card-symbol img{display:inline-block;max-width:48px;width:48px;height:48px;object-fit:cover;border-radius:13px;filter:drop-shadow(0 0 8px #a454e850)}
.brand-emblem,.landing-brand img{background:#180a2a}
