.concurso-cabecera{background:var(--espuma);border:var(--borde-grosor) solid var(--borde);border-radius:var(--radio);box-shadow:var(--sombra);margin:12px 0 20px;padding:18px 20px}.concurso-cabecera h1{margin:0 0 6px}.concurso-datos{display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;margin:10px 0 0;padding:0}.concurso-datos li{display:flex;flex-direction:column;font-size:13px;color:var(--tinta-suave)}.concurso-datos b{color:var(--mar-900);font-size:16px}.concurso-premio{background:#fff8e6;border:1px solid #f2d58a;border-radius:10px;margin:12px 0 0;padding:10px 14px}.concurso-fase{border-radius:999px;display:inline-block;font-size:12.5px;font-weight:600;padding:3px 10px;background:var(--mar-100);color:var(--mar-700)}.concurso-fase.abierto{background:var(--ok-fondo);color:var(--ok-texto)}.concurso-fase.cerrado{background:#fff8e6;color:#8a5a00}.ranking{list-style:none;margin:0;padding:0}.ranking,.ranking li{display:grid;grid-gap:12px;gap:12px}.ranking li{align-items:center;background:var(--espuma);border:1px solid var(--borde);border-radius:12px;grid-template-columns:36px 96px minmax(0,1fr);padding:10px 12px}.ranking li.ganadora{border-color:#f2b01e;box-shadow:0 0 0 3px #fff2c7}.ranking .puesto{color:var(--mar-700);font-size:22px;font-weight:700;text-align:center}.ranking .puesto small{display:block;font-size:11px;font-weight:400}.ranking .sinfoto-mini,.ranking img{background:var(--mar-100);border-radius:8px;height:72px;object-fit:cover;width:96px}.ranking .cuerpo{display:flex;flex-direction:column;gap:4px;min-width:0}.ranking .cuerpo h2,.ranking .cuerpo h3{font-size:16px;margin:0}.ranking .barra{background:var(--mar-100);border-radius:5px;height:8px;overflow:hidden;max-width:320px}.ranking .barra span{background:#f2b01e;display:block;height:100%}@media (max-width:520px){.ranking li{grid-template-columns:30px 72px minmax(0,1fr)}.ranking .sinfoto-mini,.ranking img{height:56px;width:72px}}.votar{align-items:center;display:flex;flex-wrap:wrap;gap:8px 12px}.votar-contador{color:var(--mar-900);font-size:15px}.votar button.votado{background:var(--ok-fondo);border:1px solid var(--ok-borde);color:var(--ok-texto)}.votar.compacto button{font-size:13px;padding:6px 10px}.votar-mensaje{font-size:13px;color:var(--tinta-suave)}.votar-mensaje.ok{color:var(--ok-texto)}.votar-mensaje.error{color:var(--error-texto)}.receta-concurso{background:#fff8e6;border:1px solid #f2d58a;border-radius:var(--radio);display:flex;flex-direction:column;gap:10px;margin:0 0 20px;padding:14px 16px}.receta-concurso h2{font-size:17px;margin:0}.receta-concurso .sub{margin:0}.receta-productos{margin:0 0 24px}.receta-productos h2{font-size:18px;margin:0 0 10px}.banner-concurso{align-items:center;background:linear-gradient(135deg,#fff3cf,#ffe6a3);border:1px solid #f2d58a;border-radius:var(--radio);display:flex;flex-wrap:wrap;gap:10px 18px;justify-content:space-between;margin:12px 0 18px;padding:14px 18px}.banner-concurso .texto{display:flex;flex-direction:column;gap:2px;min-width:0}.banner-concurso .texto b{color:#5a3d00;font-size:17px}.banner-concurso .texto span{color:#6b5200;font-size:14px}.banner-concurso .boton-enlace{white-space:nowrap}.concursos-lista{display:grid;grid-gap:12px;gap:12px;list-style:none;margin:0;padding:0}.concursos-lista li{background:var(--espuma);border:1px solid var(--borde);border-radius:12px;padding:12px 14px}.concursos-lista h2{font-size:17px;margin:0 0 4px}