*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:system-ui,sans-serif;font-size:14px;background:#0a0a0a;color:#fff;height:100vh;display:flex;flex-direction:column;overflow:hidden;}
.leaflet-container,.leaflet-grab,.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-container{cursor:crosshair!important;}
.leaflet-marker-icon,.leaflet-interactive{cursor:pointer!important;}

/* ── TOPBAR ── */
#topbar{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#111;border-bottom:1px solid #333;flex-shrink:0;}
#topbar h1{font-size:15px;font-weight:700;}
#topbar-sub{font-size:12px;color:#666;}
#topbar-title-wrap{display:flex;align-items:center;gap:8px;width:312px;flex-shrink:0;}
#topbar-tile-group{display:flex;gap:4px;}
.tile-btn{padding:5px 11px;border-radius:6px;border:1px solid #444;background:#1a1a1a;color:#aaa;font-size:12px;cursor:pointer;transition:transform .18s ease,background .15s,color .15s,box-shadow .18s;}
.tile-btn:hover{background:#222;color:#fff;transform:scale(1.07);box-shadow:0 3px 10px rgba(0,0,0,0.5);}
.tile-btn.active{background:#fff;color:#000;border-color:#fff;font-weight:600;}
.tile-btn.active:hover{background:#f0f0f0;transform:scale(1.06);}
@keyframes tilePop{0%{transform:scale(1)}20%{transform:scale(0.93)}55%{transform:scale(1.08)}80%{transform:scale(0.98)}100%{transform:scale(1)}}
.tile-btn.popping,.topbar-pop.popping{animation:tilePop .32s ease forwards;}
.topbar-pop{transition:transform .18s ease,background .15s,color .15s,box-shadow .18s;}
.topbar-pop:hover{transform:scale(1.07);box-shadow:0 3px 10px rgba(0,0,0,0.5);}
#btn-add{padding:6px 14px;background:#fff;color:#000;border:none;border-radius:6px;font-size:12px;font-weight:700;cursor:pointer;margin-left:auto;}
#btn-add:hover{background:#ddd;}
#btn-add.adding{background:rgb(255,191,0);color:#3a2000;}

/* ── LAYOUT ── */
#layout{display:grid;grid-template-columns:334px 1fr;flex:1;overflow:hidden;min-height:0;}
#sidebar{background:#111;border-right:1px solid #222;display:flex;flex-direction:column;overflow:hidden;}

/* ── SIDEBAR VIEW TABS ── */
#view-tabs{display:flex;border-bottom:1px solid #222;flex-shrink:0;}
.view-tab{flex:1;padding:10px 4px;font-size:12px;text-align:center;cursor:pointer;color:#666;border-bottom:2px solid transparent;}
.view-tab:hover{color:#aaa;}
.view-tab.active{color:#fff;border-bottom-color:#fff;font-weight:600;}

.tab-panel{display:none;flex:1;flex-direction:column;overflow:hidden;min-height:0;}
.tab-panel.active{display:flex;}

/* ── SEARCH ── */
.sb-search{padding:10px 12px;border-bottom:1px solid #1e1e1e;flex-shrink:0;}
.sb-search input{width:100%;padding:8px 11px;font-size:13px;border-radius:7px;border:1px solid #333;background:#1a1a1a;color:#fff;outline:none;}
.sb-search input::placeholder{color:#666;}

/* ── ACCORDION ── */
.accordion{border-bottom:1px solid #1e1e1e;flex-shrink:0;}
.acc-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;cursor:pointer;user-select:none;}
.acc-header:hover{background:#151515;}
.acc-title{font-size:11px;color:#888;text-transform:uppercase;letter-spacing:.07em;font-weight:600;}
.acc-arrow{font-size:10px;color:#555;transition:transform .2s;}
.acc-arrow.open{transform:rotate(180deg);}
.acc-body{padding:0 12px;max-height:0;overflow:hidden;opacity:0;transition:max-height .55s cubic-bezier(0.4,0,0.2,1), padding .55s cubic-bezier(0.4,0,0.2,1), opacity .35s ease;}
.acc-body.open{max-height:1200px;padding:6px 12px 10px;opacity:1;}
.acc-hint{font-size:10px;color:#444;cursor:pointer;padding:2px 0;}
.acc-hint:hover{color:#888;}

/* ── FILTER TAGS ── */
.filter-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px;}
.ftag{font-size:11px;padding:3px 9px;border-radius:20px;border:1px solid;cursor:pointer;font-weight:500;user-select:none;transition:opacity .15s;}
.ftag.off{opacity:0.7;filter:grayscale(0.5);border-color:#444!important;color:#888!important;}
.cat-tag{font-size:11px;padding:3px 9px;border-radius:20px;border:1px solid #333;cursor:pointer;color:#B3B3B3;background:#1a1a1a;}
.cat-tag.on{background:#2a2a2a;color:#fff;border-color:#666;}
.sec-tag{font-size:11px;padding:3px 9px;border-radius:20px;border:1px solid #185FA555;cursor:pointer;color:#B3B3B3;background:#1a1a1a;}
.sec-tag.on{background:#0C3a5a;color:#5B9BD5;border-color:#185FA5;}
.feat-tag{font-size:11px;padding:3px 9px;border-radius:20px;border:1px solid #444;cursor:pointer;color:#B3B3B3;background:#1a1a1a;}
.feat-tag.on{background:#1a2a1a;color:#9fe;border-color:#3a6a3a;}

/* ── TOGGLE ROW ── */
.toggle-row{display:flex;align-items:center;gap:8px;font-size:13px;color:#B3B3B3;cursor:pointer;padding:4px 0;}
.toggle-row:hover{color:#ddd;}
.tbox{width:28px;height:15px;border-radius:8px;background:#333;position:relative;transition:background .2s;flex-shrink:0;}
.tbox.on{background:#185FA5;}
.tbox::after{content:'';position:absolute;width:11px;height:11px;border-radius:50%;background:#fff;top:2px;left:2px;transition:left .2s;}
.tbox.on::after{left:15px;}

/* ── LOC LIST ── */
#loc-list{flex:1;overflow-y:auto;padding:6px 8px;}
#loc-list::-webkit-scrollbar{width:4px;}
#loc-list::-webkit-scrollbar-thumb{background:#333;border-radius:2px;}
.loc-item{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:8px;cursor:pointer;margin-bottom:2px;}
.loc-item:hover{background:#1a1a1a;}
.loc-item.sel{background:#1e1e1e;}
.loc-item.suspended{opacity:0.25;filter:saturate(0.3) brightness(0.65);}
.loc-item.outdated{opacity:0.5;filter:saturate(0.4) brightness(0.7);}
.loc-pin{flex-shrink:0;display:flex;flex-direction:column;align-items:center;}
.loc-info{flex:1;min-width:0;}
.loc-name{font-size:13px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500;}
.loc-sub{font-size:11px;color:#A0A0A0;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.loc-badges{display:flex;gap:3px;margin-top:3px;flex-wrap:wrap;}
.loc-badge-sm{font-size:9px;padding:1px 5px;border-radius:10px;font-weight:600;}
.loc-susp{font-size:9px;background:#3a1a00;color:#f88;border:1px solid #522;border-radius:3px;padding:0 3px;}
.loc-date{font-size:10px;color:#666;flex-shrink:0;}
.loc-del{width:20px;height:20px;border-radius:5px;background:transparent;border:none;color:#555;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:0;}
.loc-item:hover .loc-del{opacity:1;}
.loc-del:hover{background:#1e0000;color:#f88;}
.loc-fav{font-size:13px;flex-shrink:0;opacity:0;cursor:pointer;}
.loc-item:hover .loc-fav{opacity:1;}
.loc-item .loc-fav.active{opacity:1;}

/* PROS LIST */
#pro-list{flex:1;overflow-y:auto;padding:6px 8px;}
.pro-item{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:8px;cursor:pointer;margin-bottom:2px;}
.pro-item:hover{background:#1a1a1a;}
.pro-item.sel{background:#1e1e1e;}
.pro-av{width:30px;height:30px;border-radius:50%;background:#185FA5;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;}
.pro-info{flex:1;min-width:0;}
.pro-name{font-size:13px;color:#fff;font-weight:500;}
.pro-role{font-size:11px;color:#5B9BD5;margin-top:1px;}
.pro-del{width:20px;height:20px;border-radius:5px;background:transparent;border:none;color:#555;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:0;}
.pro-item:hover .pro-del{opacity:1;}
.pro-del:hover{background:#1e0000;color:#f88;}

#sidebar-hint{padding:6px 12px;font-size:11px;color:#444;text-align:center;border-top:1px solid #1a1a1a;flex-shrink:0;}

/* ── MAP ── */
#map-wrap{position:relative;flex:1;overflow:hidden;}
#map{width:100%;height:100%;background:#1a1a2e;}

/* ── SUN COMPASS ── */
#sun-compass{position:absolute;top:10px;right:10px;z-index:999;background:rgba(10,10,10,0.88);border:1px solid #2a2a2a;border-radius:10px;padding:10px 12px;width:150px;font-size:11px;}
#sun-compass-title{font-size:10px;color:#888;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;display:flex;align-items:center;justify-content:space-between;}
#sun-canvas{display:block;margin:0 auto 6px;}
#sun-time-row{display:flex;align-items:center;gap:6px;}
#sun-time{flex:1;padding:4px 6px;background:#1a1a1a;border:1px solid #333;border-radius:5px;color:#fff;font-size:11px;text-align:center;outline:none;}
#sun-info{font-size:10px;color:#A0A0A0;text-align:center;margin-top:4px;}

/* ── LEGEND ── */
#legend{position:absolute;bottom:22px;left:10px;background:rgba(10,10,10,0.9);border:1px solid #2a2a2a;border-radius:8px;padding:8px 11px;z-index:999;pointer-events:none;font-size:11px;max-height:240px;overflow-y:auto;}
.leg-row{display:flex;align-items:center;gap:7px;color:#B3B3B3;margin-top:3px;}

/* ── CTX MENU ── */
#ctx-menu{position:fixed;background:#111;border:1px solid #444;border-radius:8px;padding:4px 0;z-index:3000;display:none;min-width:220px;box-shadow:0 8px 24px rgba(0,0,0,0.6);}
#ctx-menu.open{display:block;}
.ctx-item{padding:9px 15px;font-size:13px;color:#ddd;cursor:pointer;display:flex;align-items:center;gap:10px;}
.ctx-item:hover{background:#1e1e1e;color:#fff;}
.ctx-sep{height:0.5px;background:#2a2a2a;margin:3px 0;}
.ctx-dim{color:#555;cursor:default;font-size:11px;}
.ctx-dim:hover{background:transparent;}

/* ── POPUP ── */
.custom-popup .leaflet-popup-content-wrapper{background:#111;border:1px solid #444;border-radius:10px;color:#fff;box-shadow:0 4px 24px rgba(0,0,0,0.6);}
.leaflet-popup-content-wrapper:empty{display:none!important;background:transparent!important;}
.custom-popup .leaflet-popup-tip{background:#444;}
.custom-popup .leaflet-popup-content{margin:13px 15px;min-width:230px;max-width:275px;}
.popup-name{font-size:14px;font-weight:700;color:#fff;margin-bottom:5px;}
.popup-badges{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px;}
.popup-badge{font-size:10px;padding:2px 8px;border-radius:20px;font-weight:600;}
.popup-susp{background:#3a1a00;border:1px solid #522;border-radius:6px;padding:5px 9px;font-size:12px;color:#f88;margin-bottom:8px;}
.popup-row{display:flex;justify-content:space-between;gap:8px;font-size:12px;margin-top:4px;}
.popup-lbl{color:#777;}
.popup-val{color:#ccc;font-weight:500;text-align:right;}
.popup-slbl{font-size:10px;color:#666;text-transform:uppercase;letter-spacing:.06em;margin-top:9px;margin-bottom:3px;}
.popup-sval{font-size:12px;color:#A0A0A0;line-height:1.5;word-break:break-word;}
.popup-sval a{color:#5B9BD5;text-decoration:none;}
.popup-gallery{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px;}
.prod-link{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:12px;border-bottom:1px solid #1a1a1a;}
.prod-link a{color:#5B9BD5;text-decoration:none;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.prod-link a:hover{text-decoration:underline;}
.prod-modal-item{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:11px;border-bottom:1px solid #1a1a1a;}
.prod-modal-item span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#aaa;}
.prod-modal-item button{background:none;border:none;color:#555;cursor:pointer;font-size:12px;padding:0 2px;}
.prod-modal-item button:hover{color:#f88;}
.popup-thumb{width:54px;height:42px;object-fit:cover;border-radius:5px;cursor:pointer;border:1px solid #333;}
.popup-more{width:54px;height:42px;background:#1a1a1a;border-radius:5px;border:1px solid #333;display:flex;align-items:center;justify-content:center;font-size:11px;color:#888;}
.popup-actions{display:flex;gap:4px;margin-top:10px;flex-wrap:wrap;}
.popup-btn{flex:1;padding:6px 4px;background:#1e1e1e;border:1px solid #444;border-radius:6px;color:#ccc;font-size:11px;cursor:pointer;white-space:nowrap;}
.popup-btn:hover{background:#2a2a2a;color:#fff;}
.popup-btn.danger{color:#f88;border-color:#522;}
.popup-btn.danger:hover{background:#1e0000;}
.popup-btn.warn{color:#fda;border-color:#543;}
.popup-btn.warn:hover{background:#1e1500;}
.popup-btn.resume{color:#9fe;border-color:#254;}
.popup-btn.resume:hover{background:#001e10;}
.popup-btn.fav{color:#ffd700;border-color:#554400;}
.popup-btn.fav:hover{background:#1a1500;}

/* ── MODAL ── */
#modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.82);z-index:4000;align-items:flex-start;justify-content:center;padding:12px 16px;overflow-y:hidden;}
#modal-overlay.open{display:flex;}
/* #modal-box base merged below */
.modal-title{font-size:16px;font-weight:700;color:#fff;margin-bottom:2px;}
.modal-coords{font-size:11px;color:#666;margin-bottom:14px;}
.field-label{font-size:11px;color:#999;text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px;margin-top:14px;}
.field-input{width:100%;padding:8px 11px;background:#1a1a1a;border:1px solid #333;border-radius:7px;color:#fff;font-size:13px;outline:none;font-family:inherit;}
.field-input:focus{border-color:#666;}
textarea.field-input{height:56px;resize:vertical;}
select.field-input{cursor:pointer;}

/* Type tabs */
.modal-type-tabs{display:flex;gap:6px;margin-bottom:16px;}
.mtype-btn{flex:1;padding:9px;border-radius:8px;border:1.5px solid #2a2a2a;background:#1a1a1a;color:#888;font-size:13px;cursor:pointer;text-align:center;}
.mtype-btn:hover{border-color:#555;color:#fff;}
.mtype-btn.sel.loc-type{border-color:#639922;background:#63992222;color:#fff;font-weight:600;}
.mtype-btn.sel.pro-type{border-color:#185FA5;background:#185FA522;color:#fff;font-weight:600;}

/* Entorno grid */
.entorno-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;}
.entorno-btn{padding:9px 4px;border-radius:8px;border:1.5px solid #2a2a2a;background:#1a1a1a;color:#888;font-size:10px;cursor:pointer;text-align:center;transition:all .15s;line-height:1.4;}
.entorno-btn:hover{border-color:#555;color:#fff;}
.entorno-btn.sel{font-weight:700;color:#fff;}
.eicon{font-size:18px;display:block;margin-bottom:3px;}
.otros-input{width:90%;background:transparent;border:none;color:#fff;font-size:10px;text-align:center;outline:none;font-family:inherit;margin-top:2px;}
.otros-input::placeholder{color:#555;}

/* Cat / feat grids */
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;}
.cat-btn,.feat-btn,.veg-btn,.sector-btn{padding:7px 5px;border-radius:7px;border:1.5px solid #2a2a2a;background:#1a1a1a;color:#888;font-size:11px;cursor:pointer;text-align:center;transition:all .15s;}
.cat-btn:hover,.feat-btn:hover,.veg-btn:hover,.sector-btn:hover{border-color:#555;color:#fff;}
.cat-btn.sel,.feat-btn.sel,.veg-btn.sel,.sector-btn.sel{font-weight:700;color:#fff;}
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;}
.veg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;}
.veg-dot-sm{width:10px;height:10px;border-radius:50%;margin:0 auto 3px;}
.sector-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;}

/* Light section */
.light-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.light-btn{padding:12px 8px;border-radius:10px;border:1.5px solid #2a2a2a;background:#141414;color:#666;font-size:13px;cursor:pointer;text-align:center;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;gap:4px;font-weight:500;user-select:none;}
.light-btn:hover{border-color:#555;color:#ccc;background:#1e1e1e;transform:translateY(-1px);}
.light-btn.sel.dia{border-color:#D4A017!important;background:#2a1e00!important;color:#f5c842!important;box-shadow:0 0 14px #D4A01755!important;}
.light-btn.sel.noche{border-color:#1a3a6a!important;background:#060e1e!important;color:#5b8fc8!important;box-shadow:0 0 14px #1a3a6a88!important;}
.light-btn.sel.ambas{border-color:#cccccc!important;background:#1e1e1e!important;color:#ffffff!important;box-shadow:0 0 14px rgba(255,255,255,0.2)!important;}
.light-btn .lbtn-icon{font-size:22px;line-height:1;pointer-events:none;}
.light-btn .lbtn-label{font-size:11px;letter-spacing:.04em;text-transform:uppercase;pointer-events:none;}
.sublight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:5px;}
.sublight-btn{padding:7px 4px;border-radius:8px;border:1.5px solid #2a2a2a;background:#141414;color:#666;font-size:11px;cursor:pointer;text-align:center;transition:all .18s ease;font-weight:500;}
.sublight-btn:hover{border-color:#555;color:#ccc;background:#1e1e1e;}
.sublight-btn.sel{border-color:#D4A017;background:#2a1e00;color:#f5c842;font-weight:700;}

/* Schedule */
.schedule-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}

/* Photo */
.photo-drop{border:1.5px dashed #333;border-radius:8px;padding:16px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;}
.photo-drop:hover,.photo-drop.dragover{border-color:#888;background:#1a1a1a;}
.photo-drop input{display:none;}
.photo-prev-grid{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px;}
.photo-prev{position:relative;width:70px;height:55px;}
.photo-prev img{width:100%;height:100%;object-fit:cover;border-radius:5px;border:1px solid #333;cursor:pointer;}
.photo-rem{position:absolute;top:-4px;right:-4px;width:16px;height:16px;border-radius:50%;background:#cc2200;border:none;color:#fff;font-size:9px;cursor:pointer;display:flex;align-items:center;justify-content:center;}

.date-row{display:flex;align-items:center;gap:8px;}
.date-row .field-input{flex:1;margin:0;}
.date-hint{font-size:11px;color:#666;white-space:nowrap;}

/* Pro section */
.pro-section-box{background:#0a1a2a;border:1px solid #185FA544;border-radius:10px;padding:15px;margin-top:4px;}
.pro-section-title{font-size:12px;font-weight:700;color:#5B9BD5;margin-bottom:12px;}

.modal-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:18px;padding-top:14px;border-top:1px solid #222;}
.mbtn-cancel{padding:8px 18px;background:transparent;border:1px solid #444;border-radius:7px;color:#999;font-size:13px;cursor:pointer;}
.mbtn-cancel:hover{color:#fff;border-color:#888;}
.mbtn-save{padding:8px 22px;background:#fff;border:none;border-radius:7px;color:#000;font-size:13px;font-weight:700;cursor:pointer;}
.mbtn-save:hover{background:#ddd;}
.mbtn-del{padding:8px 18px;background:transparent;border:1px solid #522;border-radius:7px;color:#f88;font-size:13px;cursor:pointer;margin-right:auto;}
.mbtn-del:hover{background:#1e0000;}

#lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.93);z-index:5000;align-items:center;justify-content:center;}
#lightbox.open{display:flex;}
#lightbox img{max-width:90vw;max-height:88vh;border-radius:8px;border:1px solid #444;}
#lightbox-close{position:absolute;top:14px;right:18px;font-size:28px;color:#fff;cursor:pointer;}

/* Divider */
.modal-divider{height:1px;background:#222;margin:14px 0 2px;}
.modal-section-title{font-size:12px;font-weight:700;color:#5B9BD5;margin-bottom:8px;display:flex;align-items:center;gap:6px;}

/* ── HOVER GLOW EFFECTS ────────────────────────────────── */
.acc-header:hover{
  background:rgba(255,255,255,0.04)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,0.06);
}
.ftag,.cat-tag,.feat-tag,.sec-tag,.luz-tag{
  transition:all .18s ease;
}
.ftag:hover,.cat-tag:hover,.feat-tag:hover,.sec-tag:hover,.luz-tag:hover{
  filter:brightness(1.25);
  box-shadow:0 0 8px rgba(255,255,255,0.12);
  transform:translateY(-1px);
}
.loc-item{transition:background .15s,box-shadow .15s;}
.loc-item:hover{background:#1c1c1c!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,0.07);}
.toggle-row{transition:color .15s;border-radius:6px;padding:3px 4px;margin:-3px -4px;}
.toggle-row:hover{background:rgba(255,255,255,0.04);}
.entorno-btn{transition:all .18s ease!important;}
.entorno-btn:hover:not(.sel){border-color:#555!important;box-shadow:0 0 10px rgba(255,255,255,0.07);transform:translateY(-1px);}
/* ── END HOVER GLOW ────────────────────────────────────── */

/* ── PIN HOVER ANIMATION ───────────────────────────────── */
.leaflet-marker-icon > div{
  transition:transform .2s cubic-bezier(0.34,1.56,0.64,1), filter .2s ease;
  transform-origin: bottom center;
}
.leaflet-marker-icon:hover > div{
  transform:scale(1.18) translateY(-3px);
  filter:drop-shadow(0 3px 8px rgba(0,0,0,0.7)) brightness(1.2);
}
.leaflet-marker-icon.pin-active > div{
  transform:scale(1.35) translateY(-5px);
  filter:drop-shadow(0 0 10px rgba(255,255,255,0.75)) drop-shadow(0 0 22px currentColor) drop-shadow(0 5px 14px rgba(0,0,0,0.9)) brightness(1.65) saturate(1.4);
}
/* ── END PIN HOVER ─────────────────────────────────────── */

@keyframes cardSelect {
  0%   { transform: scale(1) translateY(0); }
  40%  { transform: scale(1.12) translateY(-2px); box-shadow: 0 0 18px var(--glow-col, rgba(255,255,255,0.5)); }
  70%  { transform: scale(0.97) translateY(0); }
  100% { transform: scale(1) translateY(-1px); }
}
@keyframes cardDeselect {
  0%   { transform: scale(1) translateY(-1px); }
  30%  { transform: scale(0.92) translateY(0); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes titleFadeIn {
  0%   { opacity:0; transform: scale(0.88) translateY(4px); }
  100% { opacity:1; transform: scale(1) translateY(0); }
}
@keyframes tagPopIn {
  0%   { transform: scale(0); opacity: 0; }
  60%  { transform: scale(1.15); opacity: 1; }
  80%  { transform: scale(0.95); }
  100% { transform: scale(1); opacity: 1; }
}
.efilter-card.anim-select { animation: cardSelect .35s cubic-bezier(0.34,1.56,0.64,1) forwards; }
.efilter-card.anim-deselect { animation: cardDeselect .25s ease forwards; }
.map-overlay-btn { transition: filter .18s ease, transform .18s ease, box-shadow .18s ease; }
.map-overlay-btn:hover { filter: brightness(1.22); transform: translateY(-1px); box-shadow: 0 4px 14px rgba(0,0,0,0.6) !important; }
.map-overlay-btn.anim-select { animation: cardSelect .35s cubic-bezier(0.34,1.56,0.64,1) forwards; }
.map-overlay-btn.anim-deselect { animation: cardDeselect .25s ease forwards; }
.cat-title-anim { opacity:0; animation: titleFadeIn .5s cubic-bezier(0.25,0.46,0.45,0.94) both; }
.feat-tag.anim-pop { animation: tagPopIn .3s cubic-bezier(0.34,1.56,0.64,1) forwards; }
/* ── ENTORNO FILTER GRID ── */
#entorno-filters{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.efilter-card{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:7px;padding:8px 10px;border-radius:10px;border:1.5px solid;cursor:pointer;font-size:10px;font-weight:600;user-select:none;transition:all .18s ease;text-align:left;line-height:1.2;min-height:48px;box-sizing:border-box;}
.efilter-card.efilter-panel{padding:0 !important;margin:0 !important;overflow:hidden !important;border:1.5px solid var(--e-color, #555) !important;outline:0 !important;background:transparent !important;display:block !important;line-height:0;min-height:48px;position:relative;border-radius:10px;}
.efilter-card.efilter-panel.off{border-color:color-mix(in srgb, var(--e-color, #555) 55%, transparent) !important;}
.efilter-card.efilter-panel img{width:170%;height:170%;display:block;object-fit:cover;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:0;}
.efilter-card .ef-icon{width:30px;height:30px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.efilter-card .ef-icon img{display:block;width:28px;height:28px;object-fit:contain;}
.efilter-card.off{opacity:0.63;filter:grayscale(0.45);}
.efilter-card:hover:not(.off){filter:brightness(1.22);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,0.5);}
.efilter-card.off:hover{opacity:0.88;filter:grayscale(0.2);}
/* ── TICKER RESULTADOS ── */
@keyframes tickerScroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
#results-ticker {
  position:absolute;
  bottom:-20px;left:0;right:0;
  z-index:1000;
  background:rgba(8,8,8,0.92);
  border-top:1px solid #333;
  backdrop-filter:blur(6px);
  overflow:hidden;
  display:none;
  flex-direction:column;
  height:140px;
  padding-bottom:20px;
  box-sizing:border-box;
  opacity:0;
  transform:translateY(100%);
  transition:transform .45s cubic-bezier(0.34,1.3,0.64,1), opacity .3s ease;
  pointer-events:none;
  /* Reserve scrollbar space so content never shifts */
  scrollbar-gutter:stable;
}
/* Fade edges to hint scrollability */
#ticker-track-wrap::before,
#ticker-track-wrap::after {
  content:'';
  position:absolute;top:0;bottom:0;
  width:40px;z-index:2;
  pointer-events:none;
  opacity:0;
  transition:opacity .3s ease;
}
#ticker-track-wrap::before {
  left:0;
  background:linear-gradient(to right, rgba(8,8,8,0.9), transparent);
}
#ticker-track-wrap::after {
  right:0;
  background:linear-gradient(to left, rgba(8,8,8,0.9), transparent);
}
#results-ticker:hover #ticker-track-wrap::before,
#results-ticker:hover #ticker-track-wrap::after {
  opacity:1;
}
#results-ticker.ticker-visible {
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}
@keyframes tickerBounceIn {
  0%   { transform:translateY(110%); opacity:0; }
  60%  { transform:translateY(-8px); opacity:1; }
  78%  { transform:translateY(3px); }
  92%  { transform:translateY(-1px); }
  100% { transform:translateY(0); opacity:1; }
}
@keyframes tickerSlideOut {
  0%   { transform:translateY(0); opacity:1; }
  100% { transform:translateY(110%); opacity:0; }
}
#results-ticker:hover #ticker-track {
  /* Physics engine manages motion — no CSS play-state needed */
}
#results-ticker #ticker-track {
  transition: filter 0.35s ease, opacity .2s ease;
  cursor: ns-resize;  /* indica que el scroll controla velocidad */
}
#ticker-track-wrap {
  cursor: ns-resize;
}
#ticker-track-wrap {
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,0.15) transparent;
}

#ticker-track {
  display:flex;
  align-items:center;
  white-space:nowrap;
  will-change:transform;
  padding:8px 0;
}
@keyframes tickerItemIn {
  0%   { opacity:0; transform:translateY(8px); }
  100% { opacity:1; transform:translateY(0); }
}
@keyframes tickerItemInFaded {
  0%   { opacity:0; transform:translateY(8px); }
  100% { opacity:0.45; transform:translateY(0); }
}
@keyframes pinBounceIn {
  0%   { opacity:0; transform:scale(0.1); }
  60%  { opacity:1; transform:scale(1.15); }
  80%  { transform:scale(0.95); }
  100% { opacity:1; transform:scale(1); }
}
@keyframes pinFadeOut {
  0%   { opacity:1; transform:scale(1); }
  100% { opacity:0; transform:scale(0.1); }
}
@keyframes clusterMergeIn {
  0%   { opacity:0; transform:scale(0.2); filter:drop-shadow(0 0 0px rgba(255,255,255,0)); }
  50%  { opacity:1; transform:scale(1.15); filter:drop-shadow(0 0 5px rgba(255,255,255,0.18)); }
  75%  { transform:scale(0.96); filter:drop-shadow(0 0 2px rgba(255,255,255,0.06)); }
  100% { opacity:1; transform:scale(1);   filter:drop-shadow(0 0 0px rgba(255,255,255,0)); }
}
.pin-anim-in    { animation:pinBounceIn  .38s cubic-bezier(0.34,1.56,0.64,1) forwards; transform-origin:50% 92%; }
.pin-anim-out   { animation:pinFadeOut   .15s ease forwards; transform-origin:50% 92%; }
.cluster-anim-in{ animation:clusterMergeIn .42s cubic-bezier(0.34,1.56,0.64,1) forwards; transform-origin:50% 92%; }
.ticker-item {
  display:inline-flex;flex-direction:column;justify-content:center;
  gap:4px;
  padding:7px 14px;
  margin:0 6px;
  cursor:pointer;pointer-events:auto;
  white-space:nowrap;vertical-align:middle;
  border-radius:10px;
  border:1px solid var(--item-col, #444);
  background:color-mix(in srgb, var(--item-col, #444) 10%, transparent);
  box-shadow:0 0 8px color-mix(in srgb, var(--item-col, #444) 20%, transparent);
  transition:background .2s, transform .15s, box-shadow .2s;
  animation:tickerItemIn .4s ease forwards;
  opacity:0;
  flex-shrink:0;
}
.ticker-item:hover {
  background:color-mix(in srgb, var(--item-col, #444) 22%, transparent);
  box-shadow:0 0 14px color-mix(in srgb, var(--item-col, #444) 35%, transparent);
  transform:translateY(-2px);
}

.ticker-item.t-outdated { animation:tickerItemInFaded .4s ease forwards; }
.ticker-item.t-pending  { animation:tickerItemInFaded .4s ease forwards; }
.ticker-item.t-suspended { --item-col:#cc2200!important; }
.ticker-item.t-suspended .t-name { color:#ff6644; }
.ticker-item .t-state { font-size:11px;line-height:1; }
.ticker-item .t-name { font-size:12px;font-weight:700;color:#e8e8e8;line-height:1.2; }
.ticker-item .t-info { font-size:10px;color:#666;line-height:1.3;margin-top:1px; }

/* ── SUN RAY TOOL ── */
.sun-ray-wrapper{
  opacity:0;
  transform:scale(0);
  transform-origin:120px 120px;
  will-change:transform,opacity;
}
/* ── V9 ADDITIONS ── */

/* ── SUN WIDGET ── */
#sun-widget{position:absolute;top:10px;right:10px;z-index:999;background:rgba(10,10,10,0.93);border:1px solid #333;border-radius:12px;padding:12px 14px;width:212px;font-size:12px;}
#sun-widget-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;}
#sun-widget-title span:first-child{font-size:11px;color:#888;text-transform:uppercase;letter-spacing:.07em;font-weight:600;}
#sun-close{color:#555;cursor:pointer;font-size:13px;line-height:1;}
#sun-close:hover{color:#fff;}
#sun-canvas{display:block;margin:0 auto 10px;border-radius:50%;}
.sun-row{display:flex;align-items:center;gap:7px;margin-bottom:6px;}
.sun-row label{font-size:11px;color:#888;flex-shrink:0;width:32px;}
.sun-row select{flex:1;padding:5px 7px;background:#1a1a1a;border:1px solid #333;border-radius:6px;color:#fff;font-size:12px;outline:none;cursor:pointer;}
#sun-info-box{background:#1a1a1a;border-radius:7px;padding:8px 10px;font-size:11px;line-height:1.6;color:#B3B3B3;margin-top:2px;}
#sun-toggle-btn{padding:5px 10px;background:#1a1a1a;border:1px solid #444;border-radius:6px;font-size:13px;cursor:pointer;color:#fff;}

/* ── LEGEND ── */
#legend-wrap{position:absolute;bottom:10px;right:10px;z-index:1100;transition:bottom .35s cubic-bezier(0.4,0,0.6,1);}
#legend-panel{display:none;background:rgba(10,10,10,0.93);border:1px solid #2a2a2a;border-radius:8px;padding:9px 12px;margin-bottom:4px;font-size:11px;min-width:155px;}
#legend-toggle-btn{width:100%;padding:6px 12px;background:rgba(10,10,10,0.9);border:1px solid #333;border-radius:8px;color:#B3B3B3;font-size:11px;cursor:pointer;text-align:center;}
#ticker-header-btn:hover{background:rgba(255,255,255,0.06)!important;color:#888!important;}
#ticker-header-btn:active{transform:scale(0.97);}
.leg-row{display:flex;align-items:center;gap:7px;color:#B3B3B3;margin-top:3px;}

/* Hover glow */
.acc-header:hover{background:rgba(255,255,255,0.04)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,0.06);}
.ftag,.cat-tag,.feat-tag,.sec-tag,.luz-tag{transition:all .18s ease;}
.ftag:hover,.cat-tag:hover,.feat-tag:hover,.sec-tag:hover,.luz-tag:hover{filter:brightness(1.25);box-shadow:0 0 8px rgba(255,255,255,0.12);transform:translateY(-1px);}
.loc-item{transition:background .15s,box-shadow .15s;}
.loc-item:hover{background:#1c1c1c!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,0.07);}
.toggle-row{transition:color .15s;border-radius:6px;padding:3px 4px;margin:-3px -4px;}
.toggle-row:hover{background:rgba(255,255,255,0.04);}
.entorno-btn{transition:all .18s ease!important;}
.entorno-btn:hover:not(.sel){border-color:#555!important;box-shadow:0 0 10px rgba(255,255,255,0.07);transform:translateY(-1px);}
/* Pin hover animation */
.marker-hidden-pre{opacity:0!important;pointer-events:none;}
.leaflet-marker-icon.marker-fade-out > div { animation: markerFadeOut .25s ease forwards; }.leaflet-marker-icon.marker-fade-in > div  { animation: markerFadeIn  .3s cubic-bezier(0.34,1.3,0.64,1) forwards; }
@keyframes markerFadeOut {
  from { opacity:1; transform:scale(1) translateY(0); }
  to   { opacity:0; transform:scale(0.6) translateY(6px); }
}
@keyframes markerFadeIn {
  from { opacity:0; transform:scale(0.6) translateY(6px); }
  to   { opacity:1; transform:scale(1) translateY(0); }
}
.leaflet-marker-icon > div{transition:transform .2s cubic-bezier(0.34,1.56,0.64,1),filter .2s ease;transform-origin:50% 92%;}
.leaflet-marker-icon:hover > div{transform:scale(1.18) translateY(-3px);filter:drop-shadow(0 4px 8px rgba(0,0,0,0.7)) brightness(1.2);}
/* Popup scale with zoom */
.custom-popup .leaflet-popup-content-wrapper{transform-origin:bottom center;transform:scale(var(--popup-scale,1)) translateX(var(--popup-shift,0px));transition:transform .18s cubic-bezier(0.34,1.4,0.64,1);}
.custom-popup .leaflet-popup-tip-container{transform:scale(var(--popup-scale,1)) translateX(var(--popup-shift,0px));transform-origin:top center;transition:transform .18s cubic-bezier(0.34,1.4,0.64,1);}
/* Entorno grid 3 cols */
.entorno-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;}
.entorno-btn{padding:8px 3px 7px;border-radius:9px;border:1.5px solid #2a2a2a;background:#1a1a1a;color:#888;font-size:10px;cursor:pointer;text-align:center;line-height:1.2;display:flex;flex-direction:column;align-items:center;gap:4px;}
.eicon{font-size:18px;display:block;flex-shrink:0;}
/* Lock buttons */
.popup-lock-btn{position:absolute;top:8px;left:10px;width:22px;height:22px;border-radius:6px;border:1px solid #444;background:#1a1a1a;color:#888;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;}
.popup-lock-btn:hover{border-color:#888;color:#fff;}
.popup-lock-btn.locked{background:#185FA522;border-color:#5B9BD5;color:#5B9BD5;}
.locked-panel-lock-btn{width:22px;height:22px;border-radius:6px;border:1px solid #444;background:#1a1a1a;color:#888;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0;}
.locked-panel-lock-btn.is-locked{background:#185FA522;border-color:#5B9BD5;color:#5B9BD5;}
.locked-panel-close.disabled{opacity:0.25;cursor:not-allowed;}
/* Scrollbar for panel */
#panel-locs-scroll::-webkit-scrollbar{width:4px;}
#panel-locs-scroll::-webkit-scrollbar-thumb{background:#333;border-radius:2px;}
/* Custom alert */
#app-alert-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:9000;align-items:center;justify-content:center;}
#app-alert-overlay.open{display:flex;}
#app-alert-box{background:#111;border:1px solid #444;border-radius:12px;padding:22px 24px;max-width:360px;width:90%;box-shadow:0 8px 32px rgba(0,0,0,0.8);}
#app-alert-msg{font-size:14px;color:#ddd;line-height:1.5;margin-bottom:18px;}
#app-alert-btn{padding:9px 24px;background:#fff;color:#000;border:none;border-radius:7px;font-size:13px;font-weight:700;cursor:pointer;float:right;}
#app-alert-btn:hover{background:#ddd;}

/* ── SUN COMPASS ── */
#sun-compass{position:absolute;top:10px;right:10px;z-index:999;background:rgba(10,10,10,0.88);border:1px solid #2a2a2a;border-radius:10px;padding:10px 12px;width:150px;font-size:11px;}
#sun-compass-title{font-size:10px;color:#888;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;display:flex;align-items:center;justify-content:space-between;}
#sun-canvas{display:block;margin:0 auto 6px;}
#sun-time-row{display:flex;align-items:center;gap:6px;}
#sun-time{flex:1;padding:4px 6px;background:#1a1a1a;border:1px solid #333;border-radius:5px;color:#fff;font-size:11px;text-align:center;outline:none;}
#sun-info{font-size:10px;color:#A0A0A0;text-align:center;margin-top:4px;}


/* ── LEGEND ── */
#legend{position:absolute;bottom:22px;left:10px;background:rgba(10,10,10,0.9);border:1px solid #2a2a2a;border-radius:8px;padding:8px 11px;z-index:999;pointer-events:none;font-size:11px;max-height:240px;overflow-y:auto;}
.leg-row{display:flex;align-items:center;gap:7px;color:#B3B3B3;margin-top:3px;}



/* ── TIME PICKER ─────────────────────────────────────────────────────── */
.tp-wrap{display:flex;align-items:center;gap:6px;}
.tp-col{display:flex;flex-direction:column;align-items:center;gap:1px;}
.tp-lbl{font-size:9px;color:#444;letter-spacing:.5px;user-select:none;}
.tp-btn{background:none;border:1px solid #2a2a2a;color:#555;cursor:pointer;font-size:10px;line-height:1;padding:3px 7px;border-radius:4px;transition:color .1s,border-color .1s;user-select:none;-webkit-user-select:none;}
.tp-btn:hover{color:#ddd;border-color:#555;}
.tp-btn:active{color:#fff;background:#222;}
.tp-native{flex:1;min-width:0;}

/* ── HOVER GLOW EN BOTONES DEL MODAL (categorías, feats, entornos) ─── */
.cat-btn{transition:all .15s ease;cursor:pointer;}
.cat-btn:hover:not(.sel){border-color:#555 !important;color:#ddd !important;box-shadow:0 0 8px rgba(255,255,255,0.08);transform:translateY(-1px);}
.feat-btn{transition:all .15s ease;cursor:pointer;}
.feat-btn:hover:not(.sel){border-color:#555 !important;color:#ddd !important;box-shadow:0 0 8px rgba(255,255,255,0.08);}
.veg-btn{transition:all .15s ease;cursor:pointer;}
.veg-btn:hover:not(.sel){border-color:#555 !important;color:#ddd !important;box-shadow:0 0 8px rgba(255,255,255,0.08);}
.sector-btn{transition:all .15s ease;cursor:pointer;}
.sector-btn:hover:not(.sel){border-color:#555 !important;color:#ddd !important;box-shadow:0 0 6px rgba(91,155,213,0.15);}
.light-btn{transition:all .18s ease;cursor:pointer;}
.light-btn:hover:not(.sel){opacity:.85;transform:translateY(-1px);}

/* ── SLIDER CONDICIÓN ───────────────────────────────────────────────── */
#condicion-slider{accent-color:#27ae60;}
#condicion-slider::-webkit-slider-thumb{width:14px;height:14px;border-radius:50%;cursor:pointer;}

/* ── ENTORNO HOVER — efecto "encadenado" (snap-in rápido, fade-out lento) ── */
.efilter-card {
  /* Slow fade-out: color glow tarda en desaparecer → efecto trail */
  transition: border-color 0.5s ease, background 0.5s ease,
              box-shadow 0.5s ease, opacity 0.5s ease,
              filter 0.5s ease, transform 0.35s ease !important;
}
.efilter-card:hover {
  /* Fast snap-in: glow aparece casi al instante */
  transition: border-color 0.07s ease, background 0.07s ease,
              box-shadow 0.08s ease, opacity 0.06s ease,
              filter 0.07s ease, transform 0.12s ease !important;
}

/* Off card hover: más brillante y con glow de color propio */
.efilter-card.off {
  opacity: 0.63;
  filter: grayscale(0.40);
}
.efilter-card.off:hover {
  opacity: 0.88 !important;
  filter: grayscale(0) brightness(1.35) !important;
  box-shadow: 0 0 16px var(--e-color, rgba(255,255,255,0.3)), 0 4px 12px rgba(0,0,0,0.5) !important;
  transform: translateY(-2px) !important;
  border-color: var(--e-color, #555) !important;
}
/* On card hover: aún más brillante */
.efilter-card:not(.off):hover {
  filter: brightness(1.3) !important;
  box-shadow: 0 0 20px var(--e-color, rgba(255,255,255,0.4)), 0 4px 14px rgba(0,0,0,0.5) !important;
  transform: translateY(-2px) !important;
}

/* ── LEYENDA SHORTCUTS ─────────────────────────────────────────────────── */
.leg-kbd {
  display: inline-block;
  background: #1a1a1a;
  border: 1px solid #3a3a3a;
  border-radius: 4px;
  padding: 1px 6px;
  font-size: 9px;
  font-family: monospace;
  color: #bbb;
  white-space: nowrap;
  flex-shrink: 0;
  line-height: 1.6;
}

/* ── MODAL 3 COLUMNAS ───────────────────────────────────────────────────── */

/* Overlay sin scroll propio — el modal tiene altura fija */
#modal-overlay { overflow-y: hidden !important; }

/* Modal: caja fija, flex column */
#modal-box {
  background: #111;
  border: 1px solid #333;
  border-radius: 14px;
  padding: 20px 22px;
  width: min(1240px, 98vw);
  margin: auto;
  display: flex;
  flex-direction: column;
  height: min(92vh, 900px);
  overflow: hidden;
}

/* Eslabón: ocupa espacio entre header y footer */
#loc-fields {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;          /* permite encoger en flex */
  overflow: hidden;
}

/* Grid: ocupa todo el espacio de #loc-fields */
/* Flexbox en vez de grid: las columnas son flex items con altura fija garantizada */
.modal-3col {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: row;
  overflow: hidden;
}

/* Cada columna es un flex item — hereda la altura del contenedor y scrollea */
.mcol {
  flex: 1;
  min-height: 0;    /* permite que el flex item encoja aunque su contenido sea mayor */
  min-width: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 0 18px;
  border-right: 1px solid #1e1e1e;
  box-sizing: border-box;
  scrollbar-width: thin;
  scrollbar-color: #444 transparent;
}
.mcol::-webkit-scrollbar       { width: 4px; }
.mcol::-webkit-scrollbar-thumb { background: #2a2a2a; border-radius: 2px; }
.mcol:first-child { padding-left: 2px; }
.mcol:last-child  { padding-right: 2px; border-right: none; }

/* Título sticky — se queda arriba mientras scrolleas */
.mcol-title {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #444;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid #1e1e1e;
  position: sticky;
  top: 0;
  background: #111;
  z-index: 1;
}

/* Entorno: 3 cols dentro de columna izquierda */
.mcol-left .entorno-grid {
  grid-template-columns: repeat(3, 1fr) !important;
}

/* Cat/feat/veg en 2 cols */
.mcol-left .cat-grid,
.mcol-left .feat-grid,
.mcol-left .veg-grid {
  grid-template-columns: 1fr 1fr;
}

/* Columna derecha: botones de luz apilados */
.mcol-right .light-grid {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.mcol-right .light-btn {
  width: 100%;
  justify-content: center;
}

/* Horario vertical en columna derecha */
.mcol-right .schedule-grid {
  grid-template-columns: 1fr;
  gap: 10px;
}

/* ── BOTONES DEL MODAL — misma animación "encadenada" que el panel izquierdo ── */

/* Color variable por defecto (se sobreescribe inline en JS para entorno-btn) */
.entorno-btn { /* --e-color set inline by JS */ }
.cat-btn     { /* --e-color set inline by JS */ }
.feat-btn    { /* --e-color set inline by JS */ }
.veg-btn     { --e-color: #639922; }
.sector-btn  { --e-color: #5B9BD5; }
.sublight-btn{ --e-color: #D4A017; }

/* Salida lenta — el glow "tarda en irse" → efecto trail */
.entorno-btn,
.cat-btn,
.feat-btn,
.veg-btn,
.sector-btn,
.sublight-btn {
  transition:
    border-color 0.5s ease,
    background   0.5s ease,
    box-shadow   0.5s ease,
    color        0.5s ease,
    filter       0.5s ease,
    transform    0.35s ease !important;
}

/* Entrada rápida — snap-in casi instantáneo */
.entorno-btn:hover,
.cat-btn:hover,
.feat-btn:hover,
.veg-btn:hover,
.sector-btn:hover,
.sublight-btn:hover {
  transition:
    border-color 0.07s ease,
    background   0.07s ease,
    box-shadow   0.08s ease,
    color        0.06s ease,
    filter       0.07s ease,
    transform    0.10s ease !important;
}

/* Sin seleccionar → glow blanco neutro + levitar */
.entorno-btn:hover:not(.sel),
.cat-btn:hover:not(.sel),
.feat-btn:hover:not(.sel),
.veg-btn:hover:not(.sel),
.sector-btn:hover:not(.sel),
.sublight-btn:hover:not(.sel) {
  color:         #fff !important;
  border-color:  var(--e-color, #555) !important;
  box-shadow:    0 0 14px var(--e-color, rgba(255,255,255,0.25)),
                 0 3px 10px rgba(0,0,0,0.5) !important;
  filter:        brightness(1.25) !important;
  transform:     translateY(-2px) !important;
}

/* Seleccionado → glow más intenso del color propio */
.entorno-btn.sel:hover,
.cat-btn.sel:hover,
.feat-btn.sel:hover,
.veg-btn.sel:hover,
.sector-btn.sel:hover,
.sublight-btn.sel:hover {
  box-shadow:    0 0 20px var(--e-color, rgba(255,255,255,0.4)),
                 0 3px 12px rgba(0,0,0,0.5) !important;
  filter:        brightness(1.35) !important;
  transform:     translateY(-2px) !important;
}

/* ── DAY PICKER ────────────────────────────────────────────────── */
.day-btn{
  width:28px;height:28px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;border:1.5px solid #333;background:#111;color:#555;
  font-size:11px;font-weight:700;cursor:pointer;transition:all .15s;
  user-select:none;
}
.day-btn:hover{border-color:#555;color:#aaa;}
.day-btn.sel{border-color:#5B9BD5;background:#5B9BD522;color:#9cf;}
.day-btn.special{border-color:#3a7aaa;background:#0d1f2a;color:#9cf;}
.day-btn.special-open{border-color:#9cf;background:#1a3a5a;color:#fff;box-shadow:0 0 0 2px #3a7aaa44;}
/* ── END DAY PICKER ─────────────────────────────────────────────── */
