/* Pintaderas — mismos colores que la primera versión (arena / negro, dorado gofio) sin Tailwind */
:root{--bg:#F9F6F0;--fg:#2D241C;--oro:#C9922A;--oro-d:#8B6010;--oro-b:#E8B84B;--card:#fff;--borde:#E4D9C8;--muted:#EBE3D5;--gris:#8C7D6A;--input:#fff;
  --ok:#2f9e5b;--mal:#c0392b;--sombra:0 2px 10px rgba(60,40,10,.07);--r:14px;color-scheme:light}
.dark{--bg:#111110;--fg:#F5F0E8;--card:#1A1917;--borde:#2E2C28;--muted:#2A2825;--gris:#9a8f7e;--input:#242220;--sombra:0 2px 14px rgba(0,0,0,.35);color-scheme:dark}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--fg);font:16px/1.5 Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%}
h1,h2,h3{line-height:1.2;margin:.2em 0 .5em}
.gris{color:var(--gris)}
.oro{background:linear-gradient(135deg,var(--oro),var(--oro-b));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:800}
.pintadera{flex:none;filter:drop-shadow(0 2px 4px rgba(139,96,16,.35))}
.envolver{max-width:1180px;margin:0 auto;padding:20px 16px 40px}
.estrecho{max-width:760px}

/* Barra superior */
.barra{position:sticky;top:0;z-index:1000;height:64px;display:flex;align-items:center;gap:16px;padding:0 16px;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--borde)}
.marca{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:1.35rem;-webkit-tap-highlight-color:transparent;user-select:none}
.barra .menu{display:flex;gap:4px;margin-left:12px}
.barra .menu a{padding:8px 12px;border-radius:8px;text-decoration:none;font-weight:600;font-size:.92rem;color:var(--gris)}
.barra .menu a:hover{color:var(--fg);background:var(--muted)}
.acciones{margin-left:auto;display:flex;align-items:center;gap:10px}
.icono{border:0;background:none;color:var(--fg);font-size:1.25rem;width:40px;height:40px;border-radius:50%;cursor:pointer}
.icono:hover{background:var(--muted)}
.chip-socio{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15;padding:5px 12px;border:1px solid var(--borde);border-radius:10px;background:var(--muted);text-decoration:none}
.chip-socio b{font-size:.8rem}.chip-socio small{font-size:.7rem;color:var(--oro);font-weight:700}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:10px;border:1px solid var(--borde);background:var(--card);color:var(--fg);font:inherit;font-weight:700;cursor:pointer;text-decoration:none;font-size:.95rem}
.btn:hover{border-color:var(--oro)}
.oro-btn{background:linear-gradient(135deg,var(--oro),var(--oro-b));border:0;color:#1d1405}
.oro-btn:hover{filter:brightness(1.07)}
.btn[disabled]{opacity:.45;cursor:not-allowed;filter:none}
.btn.peq{padding:6px 12px;font-size:.85rem}
.btn.ancho{width:100%}

/* Pie */
.pie{border-top:1px solid var(--borde);padding:24px 16px 90px;text-align:center;font-size:.85rem}
.pie p{margin:.4em 0;display:flex;gap:6px;align-items:center;justify-content:center;flex-wrap:wrap}
.menu-movil{display:none}
@media (max-width:820px){
  .barra .menu{display:none}
  .menu-movil{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:1000;background:var(--card);border-top:1px solid var(--borde);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  .menu-movil a{flex:1;text-align:center;text-decoration:none;font-size:.72rem;font-weight:600;padding:6px 2px;color:var(--gris)}
}

/* Descubrir: lista + mapa */
.descubrir{display:flex;height:calc(100dvh - 64px)}
.descubrir aside{width:470px;flex:none;display:flex;flex-direction:column;border-right:1px solid var(--borde);background:var(--bg)}
.descubrir .mapa{flex:1;position:relative}
#mapa{position:absolute;inset:0}
.filtros{padding:16px;border-bottom:1px solid var(--borde)}
.filtros h1{font-size:1.4rem;margin:0}
.buscar{width:100%;padding:11px 14px;border-radius:10px;border:1px solid var(--borde);background:var(--input);color:var(--fg);font:inherit;margin:10px 0}
.buscar:focus,.campo:focus{outline:2px solid color-mix(in srgb,var(--oro) 50%,transparent);border-color:var(--oro)}
.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.chip{flex:none;padding:7px 13px;border-radius:999px;border:1px solid var(--borde);background:var(--card);font:inherit;font-size:.85rem;font-weight:600;color:var(--fg);cursor:pointer;white-space:nowrap}
.chip.activo{border-color:var(--oro);background:color-mix(in srgb,var(--oro) 14%,transparent);color:var(--oro)}
.fila-filtros{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap;align-items:center}
.sel{padding:7px 10px;border-radius:9px;border:1px solid var(--borde);background:var(--card);color:var(--fg);font:inherit;font-size:.85rem}
.lista{flex:1;overflow-y:auto;padding:14px 16px 30px;display:flex;flex-direction:column;gap:12px}
.vista-btn{display:none}
@media (max-width:820px){
  .descubrir{height:auto;flex-direction:column}
  .descubrir aside{width:auto;border:0}
  .descubrir .mapa{height:46vh;order:-1;display:none}
  .descubrir.con-mapa .mapa{display:block}
  .lista{overflow:visible}
  .vista-btn{display:inline-flex}
}

/* Tarjeta de local */
.tarjeta{display:flex;gap:14px;padding:12px;border:1px solid var(--borde);border-radius:var(--r);background:var(--card);text-decoration:none;box-shadow:var(--sombra);position:relative;transition:border-color .15s,transform .15s}
.tarjeta:hover{border-color:color-mix(in srgb,var(--oro) 60%,transparent);transform:translateY(-1px)}
.tarjeta img{width:92px;height:92px;object-fit:cover;border-radius:10px;flex:none;background:var(--muted)}
.tarjeta .info{flex:1;min-width:0;display:flex;flex-direction:column}
.tarjeta h3{font-size:1.02rem;margin:0 0 4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}
.etiqueta{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:6px;background:var(--muted);color:var(--fg)}
.etiqueta.oro-e{background:color-mix(in srgb,var(--oro) 16%,transparent);color:var(--oro)}
.etiqueta.verde{background:color-mix(in srgb,var(--ok) 15%,transparent);color:var(--ok)}
.etiqueta.rojo{background:color-mix(in srgb,var(--mal) 13%,transparent);color:var(--mal)}
.puntos{margin-left:auto;text-align:right;flex:none}
.puntos b{display:block;font-size:1.2rem;color:var(--oro);font-weight:800;line-height:1}
.puntos small{font-size:.68rem;color:var(--gris)}
.mini-barras{display:flex;gap:3px;margin-top:auto;padding-top:8px}
.mini-barras span{flex:1;height:5px;border-radius:3px;background:var(--muted);overflow:hidden;position:relative}
.mini-barras span i{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--oro-d),var(--oro),var(--oro-b))}
.medalla{position:absolute;top:-8px;left:-8px;width:26px;height:26px;border-radius:50%;background:var(--card);display:grid;place-items:center;box-shadow:var(--sombra);font-size:.9rem}
.vacio{text-align:center;color:var(--gris);padding:40px 10px}

/* Pines del mapa */
.pin{width:38px;height:38px;border-radius:50%;background:var(--card);border:2px solid var(--borde);display:grid;place-items:center;font-size:19px;box-shadow:0 3px 8px rgba(0,0,0,.18);transition:transform .15s}
.pin:hover{transform:scale(1.15)}
.pin.lider{border-color:var(--oro-b);box-shadow:0 0 0 3px color-mix(in srgb,var(--oro-b) 45%,transparent),0 0 18px 4px rgba(232,184,75,.75);animation:brillo 2.4s ease-in-out infinite}
@keyframes brillo{50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--oro-b) 30%,transparent),0 0 26px 8px rgba(232,184,75,.9)}}
.leaflet-popup-content{font:14px/1.4 Inter,sans-serif}
.leaflet-popup-content a{color:var(--oro-d);font-weight:700}

/* Ficha del local */
.miga{font-size:.85rem;color:var(--gris);margin-bottom:12px}
.miga a{text-decoration:none}.miga a:hover{color:var(--fg)}
.ficha{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:26px;align-items:start}
@media (max-width:960px){.ficha{grid-template-columns:1fr}}
.portada{position:relative;height:320px;border-radius:var(--r);overflow:hidden;border:1px solid var(--borde);background:var(--muted)}
.portada img{width:100%;height:100%;object-fit:cover}
@media (max-width:600px){.portada{height:210px}}
.ficha h1{font-size:2rem;margin:14px 0 6px}
.datos{display:flex;flex-direction:column;gap:6px;color:var(--gris);font-size:.92rem;margin:10px 0 16px}
.botones{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.caja{background:var(--card);border:1px solid var(--borde);border-radius:var(--r);padding:18px;box-shadow:var(--sombra);margin-bottom:18px}
.caja h2{font-size:1.1rem;display:flex;align-items:center;gap:8px}
.cifras{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}
.cifra{background:var(--card);border:1px solid var(--borde);border-radius:var(--r);padding:14px;text-align:center}
.cifra b{display:block;font-size:1.6rem;font-weight:800;color:var(--oro)}
.cifra small{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--gris)}
.perfil-ex .fila{margin:12px 0}
.perfil-ex .cab{display:flex;justify-content:space-between;font-weight:600;font-size:.92rem;margin-bottom:5px}
.barra-oro{height:12px;border-radius:7px;background:var(--muted);overflow:hidden}
.barra-oro i{display:block;height:100%;border-radius:7px;background:linear-gradient(90deg,var(--oro-d),var(--oro),var(--oro-b));background-size:24px 100%;box-shadow:inset 0 -2px 0 rgba(0,0,0,.12)}
.fuerte{font-size:.85rem;margin-top:10px}
.estado-hoy{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.estado-hoy .grande{font-size:1.05rem;font-weight:800}
.resena{padding:14px;border:1px solid var(--borde);border-radius:12px;background:var(--bg);margin-bottom:10px}
.resena .quien{display:flex;justify-content:space-between;gap:8px;font-size:.85rem;margin-bottom:6px}
.resena p{margin:0;font-size:.93rem}
.resena .reparto{display:flex;gap:10px;flex-wrap:wrap;font-size:.78rem;color:var(--gris);margin-top:8px}
.votar{position:sticky;top:80px}
.presupuesto{border:1px solid var(--borde);background:var(--bg);border-radius:12px;padding:14px;margin-bottom:16px}
.presupuesto .cab{display:flex;justify-content:space-between;align-items:baseline;font-weight:700;color:var(--gris);font-size:.9rem}
.presupuesto .cab b{font-size:1.6rem;color:var(--oro)}
.presupuesto.lleno .cab b{color:var(--ok)}
.monedas{display:flex;flex-wrap:wrap;gap:3px;margin-top:8px}
.monedas i{width:13px;height:13px;border-radius:50%;background:var(--muted);transition:background .15s}
.monedas i.on{background:radial-gradient(circle at 35% 35%,var(--oro-b),var(--oro) 60%,var(--oro-d))}
.hucha{margin:16px 0}
.hucha .cab{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:.93rem;margin-bottom:6px}
.contador{display:flex;align-items:center;gap:6px}
.contador button{width:34px;height:34px;border-radius:50%;border:1px solid var(--borde);background:var(--card);color:var(--fg);font-size:1.1rem;font-weight:800;cursor:pointer}
.contador button:active{transform:scale(.92)}
.contador b{min-width:26px;text-align:center;color:var(--oro);font-size:1.1rem}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;background:transparent;cursor:pointer}
input[type=range]::-webkit-slider-runnable-track{height:8px;border-radius:4px;background:var(--muted)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;margin-top:-7px;width:22px;height:22px;border-radius:50%;background:var(--oro);border:2px solid var(--bg);box-shadow:0 0 8px rgba(201,146,42,.6)}
input[type=range]::-moz-range-track{height:8px;border-radius:4px;background:var(--muted)}
input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--oro);border:2px solid var(--bg)}
.campo{width:100%;padding:11px 13px;border-radius:10px;border:1px solid var(--borde);background:var(--input);color:var(--fg);font:inherit}
textarea.campo{resize:vertical;min-height:96px}
label.lab{display:block;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--gris);margin:14px 0 6px}
.nota{font-size:.8rem;color:var(--gris);margin:6px 0}
.aviso{padding:12px 14px;border-radius:10px;margin:10px 0;font-weight:600;font-size:.92rem}
.aviso.ok{background:color-mix(in srgb,var(--ok) 13%,transparent);color:var(--ok)}
.aviso.err{background:color-mix(in srgb,var(--mal) 12%,transparent);color:var(--mal)}
.aviso.info{background:color-mix(in srgb,var(--oro) 13%,transparent);color:var(--oro-d)}
.dark .aviso.info{color:var(--oro-b)}

/* Rankings */
.ligas{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.podio{list-style:none;margin:0;padding:0;counter-reset:p}
.podio li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px dashed var(--borde)}
.podio li:last-child{border:0}
.podio .n{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:.85rem;background:var(--muted);flex:none}
.podio li:nth-child(1) .n{background:linear-gradient(135deg,var(--oro),var(--oro-b));color:#1d1405}
.podio a{text-decoration:none;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.podio a:hover{color:var(--oro)}
.podio .p{font-weight:800;color:var(--oro);font-size:.92rem}
.titulo-seccion{display:flex;align-items:end;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:26px 0 12px}

/* Explicación */
.explica h2{margin-top:1.6em}
.explica table{width:100%;border-collapse:collapse;font-size:.88rem;margin:12px 0}
.explica th,.explica td{border:1px solid var(--borde);padding:8px;text-align:left}
.explica th{background:var(--muted)}
.tabla-scroll{overflow-x:auto}
.pasos{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.pasos div{background:var(--card);border:1px solid var(--borde);border-radius:12px;padding:14px}
.heroe{text-align:center;padding:30px 10px 10px}
.heroe h1{font-size:2.2rem}

/* Perfil */
.nivel-barra{height:14px;border-radius:8px;background:var(--muted);overflow:hidden;margin:8px 0}
.nivel-barra i{display:block;height:100%;background:linear-gradient(90deg,#7a5a2a,#b48a4a,#d9b77a)}

/* Premio animado */
.premio{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 60%,transparent);backdrop-filter:blur(3px);pointer-events:none}
.premio div{text-align:center;animation:premio 2.6s cubic-bezier(.25,1,.5,1) forwards}
.premio b{display:block;font-size:2rem;color:var(--oro);font-weight:800}
@keyframes premio{0%{opacity:0;transform:scale(.5) translateY(30px) rotate(-12deg)}20%{opacity:1;transform:scale(1.15) rotate(6deg)}30%{transform:scale(1) rotate(0)}80%{opacity:1}100%{opacity:0;transform:translateY(-40px) scale(.85)}}
.teselas{filter:saturate(.75) sepia(.12)}
.dark .teselas{filter:invert(1) hue-rotate(180deg) brightness(.85) contrast(.9) saturate(.5)}
.dark .leaflet-container{background:#1a1917}
#tema:before{content:"🌙"}.dark #tema:before{content:"☀️"}
.credito{position:absolute;right:8px;bottom:8px;max-width:calc(100% - 16px);background:rgba(0,0,0,.55);color:#eee;font-size:.68rem;padding:3px 8px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.credito a{color:#fff}
