/* Pagina publica de ganadores */
.gan-wrap{max-width:1060px;margin:0 auto;padding:44px 28px 64px}
.gan-titulo{margin-bottom:28px}
.gan-titulo h1{font-size:30px;font-weight:950;color:var(--texto);margin-bottom:6px;display:flex;align-items:center;gap:10px;letter-spacing:0}
.gan-titulo h1 svg{width:28px;height:28px;color:#ffb703}
.gan-titulo p{font-size:14px;color:var(--texto-2)}
.gan-filter{margin:0 0 28px;background:#a84dea;border-radius:0;padding:20px 24px 22px;color:#fff}
.gan-filter-title{font-size:16px;font-weight:950;margin-bottom:20px}
.gan-filter-controls{display:flex;align-items:center;gap:40px;flex-wrap:wrap}
.gan-filter-field{width:172px;height:52px;background:#fff;border:1px solid rgba(15,23,42,.16);border-radius:8px;padding:8px 12px 7px;display:flex;flex-direction:column;justify-content:center;color:#111827;box-shadow:0 1px 1px rgba(15,23,42,.04)}
.gan-filter-field span{font-size:13px;font-weight:950;color:#6715a6;line-height:1}
.gan-filter-field select{width:100%;border:0;outline:0;background:transparent;color:#111827;font-size:15px;font-weight:850;margin-top:2px;padding:0;appearance:auto}
.gan-empty{text-align:center;padding:64px 20px}
.gan-empty svg{width:48px;height:48px;color:var(--texto-3);margin:0 auto 16px;display:block}
.gan-empty h2{font-size:18px;font-weight:800;color:var(--texto);margin-bottom:8px}
.gan-empty p{font-size:13px;color:var(--texto-2)}

.gan-periodo{margin-bottom:42px}
.gan-periodo-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;padding:11px 14px;border:1px solid rgba(255,183,3,.28);border-radius:12px;background:rgba(255,183,3,.08)}
.gan-periodo-head span{font-size:14px;font-weight:950;color:#9d6700;text-transform:uppercase;letter-spacing:0}
.gan-periodo-head small{font-size:11px;font-weight:850;color:var(--texto-2);background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:999px;padding:5px 10px;white-space:nowrap}

.sorteo-gan-block{margin-bottom:40px}
.sorteo-gan-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid rgba(15,23,42,.1)}
.sorteo-gan-ico{width:34px;height:34px;border-radius:10px;background:rgba(255,183,3,.13);border:1px solid rgba(255,183,3,.28);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sorteo-gan-ico svg{width:17px;height:17px;color:#ffb703}
.sorteo-gan-nombre{font-size:17px;font-weight:950;color:var(--texto)}
.sorteo-gan-fecha{font-size:11px;color:var(--texto-2);margin-top:3px;display:flex;align-items:center;gap:4px}
.sorteo-gan-fecha svg{width:11px;height:11px}

.ganadores-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 28px;align-items:stretch;margin-bottom:28px}
.ganador-card{--card-main:#f8fafc;--card-dark:#e2e8f0;position:relative;background:#fff;border:1px solid rgba(15,23,42,.12);border-radius:14px;overflow:hidden;box-shadow:0 8px 22px rgba(15,23,42,.14);transition:transform .18s ease,box-shadow .18s ease;display:grid;grid-template-rows:72px 140px 134px 31px;height:377px}
.ganador-card:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(15,23,42,.2)}
.ganador-card.primer{box-shadow:0 12px 30px rgba(15,23,42,.22)}
.ganador-card-gris{--card-main:#cfcdc8;--card-dark:#b9b7b1;--value-bg:#6b7280}
.ganador-card-celeste{--card-main:#9ad8e5;--card-dark:#83c8d6;--value-bg:#398ca0}
.ganador-card-morado{--card-main:#8135c0;--card-dark:#6f2daa;--value-bg:#8135c0}

.gcard-top{height:72px;padding:10px 20px;background:var(--card-main);display:flex;align-items:center;overflow:hidden}
.gcard-premio-nombre{font-size:18px;font-weight:950;color:#10131b;line-height:1.18;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ganador-card-morado .gcard-premio-nombre{color:#fff}

.gcard-img{width:100%;height:140px;background:#f8fafc;padding:8px 8px 0;overflow:hidden}
.gcard-img img{width:100%;height:100%;object-fit:cover;display:block}
.gcard-img-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8fafc,#e2e8f0);color:#94a3b8}
.gcard-img-placeholder svg{width:42px;height:42px;opacity:.4}

.gcard-body{padding:14px 20px 12px;min-width:0;overflow:hidden}
.gcard-valor{height:44px;display:flex;justify-content:center;align-items:flex-start;margin:0 0 10px}
.gcard-valor span{min-width:178px;max-width:100%;display:inline-flex;align-items:center;justify-content:center;padding:7px 20px 8px;background:var(--value-bg,#398ca0);clip-path:polygon(8% 0,100% 0,94% 100%,0 100%);color:#fff;font-size:25px;font-weight:950;line-height:1;letter-spacing:0}

.gcard-ganador{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;min-width:0}
.gcard-avatar{width:34px;height:34px;border-radius:999px;background:#df1f2c;color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:950;line-height:1}
.gcard-nombre{font-size:19px;font-weight:950;color:#202027;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gcard-dni{font-size:15px;color:#202027;margin-top:3px;line-height:1.15}
.gcard-ticket{height:31px;background:var(--card-dark);color:#111827;text-align:center;padding:6px 10px 7px;font-size:16px;font-weight:950;line-height:1;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ganador-card-morado .gcard-ticket{color:#fff}

.ganadores-grupos{display:grid;gap:22px;margin-top:10px}
.ganadores-grupo-card{--group-bg:#9ad8e5;--group-ribbon:#8135c0;background:var(--group-bg);border:1px solid rgba(15,23,42,.1);border-radius:16px;overflow:hidden;box-shadow:0 12px 28px rgba(15,23,42,.14);padding:16px}
.ganadores-grupo-card-celeste{--group-bg:#9ad8e5;--group-ribbon:#8135c0}
.ganadores-grupo-card-morado{--group-bg:#8135c0;--group-ribbon:#9ad8e5}
.grupo-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;color:#fff}
.ganadores-grupo-card-celeste .grupo-head{color:#0f172a}
.grupo-head h3{margin:0;font-size:18px;font-weight:950;color:currentColor}
.grupo-head p{margin:3px 0 0;font-size:12px;font-weight:750;color:rgba(15,23,42,.66)}
.ganadores-grupo-card-morado .grupo-head p{color:rgba(255,255,255,.82)}
.grupo-head strong{white-space:nowrap;font-size:20px;font-weight:950;color:currentColor;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:7px 12px}
.grupo-compact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}
.grupo-compact-item{display:grid;grid-template-columns:180px minmax(0,1fr);gap:14px;align-items:center;background:#fff;border:1px solid rgba(255,255,255,.32);border-radius:12px;padding:10px 12px;box-shadow:0 3px 10px rgba(15,23,42,.12)}
.grupo-compact-media{height:140px;position:relative;display:grid;grid-template-columns:40px minmax(0,1fr);overflow:hidden;border-radius:8px;background:linear-gradient(135deg,#72d7ff,#8b35db)}
.grupo-compact-media img{width:100%;height:100%;object-fit:cover;display:block}
.grupo-ribbon{writing-mode:vertical-rl;transform:rotate(180deg);display:flex;align-items:center;justify-content:center;gap:6px;background:linear-gradient(180deg,var(--group-ribbon),#6f2daa);color:#fff;font-size:19px;font-weight:950;letter-spacing:.02em;text-transform:uppercase}
.ganadores-grupo-card-morado .grupo-ribbon{color:#0f172a;background:linear-gradient(180deg,#9ad8e5,#cfedf4)}
.grupo-ribbon::before{content:"🏆";font-size:15px;margin-bottom:6px}
.grupo-media-placeholder{display:flex;align-items:center;justify-content:center;color:#fff;font-size:26px;font-weight:950}
.grupo-compact-info{min-width:0}
.grupo-compact-info h4{margin:0 0 8px;font-size:19px;font-weight:950;line-height:1.35;color:#111827}
.grupo-ticket{margin:0 0 6px;font-size:13px;font-weight:800;color:#64748b}
.grupo-name{margin:0 0 3px;font-size:16px;font-weight:700;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.grupo-dni{margin:0;font-size:13px;color:#64748b}

@media(max-width:900px){
  .gan-wrap{padding:34px 18px 56px}
  .ganadores-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .grupo-compact-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .gan-titulo h1{font-size:26px}
  .gan-periodo-head{align-items:flex-start;flex-direction:column}
  .sorteo-gan-header{align-items:flex-start}
  .gan-filter{padding:18px 16px;border-radius:12px}
  .gan-filter-controls{gap:12px}
  .gan-filter-field{width:100%}
  .ganadores-grid{grid-template-columns:1fr;gap:18px}
  .ganador-card{height:387px;grid-template-rows:72px 150px 134px 31px}
  .gcard-img{height:150px}
  .gcard-nombre{font-size:20px}
  .ganadores-grupo-card{padding:12px}
  .grupo-head{align-items:flex-start;flex-direction:column}
  .grupo-compact-item{grid-template-columns:124px minmax(0,1fr);gap:10px;padding:8px}
  .grupo-compact-media{height:112px;grid-template-columns:32px minmax(0,1fr)}
  .grupo-ribbon{font-size:13px}
  .grupo-compact-info h4{font-size:15px;margin-bottom:5px}
  .grupo-ticket,.grupo-dni{font-size:11px}
  .grupo-name{font-size:13px}
}
