/* iBoogeek Concursos · frontend. Todo bajo .ibc para no chocar con el tema. */
.ibc{--ibc-primary:#f97316;--ibc-accent:#7c3aed;--ibc-dark:#1f2937;--ibc-bg:#fff;--ibc-muted:#6b7280;--ibc-border:#e5e7eb;--ibc-radius:16px;box-sizing:border-box;line-height:1.5}
.ibc *,.ibc *::before,.ibc *::after{box-sizing:inherit}
.ibc img{max-width:100%;height:auto;display:block}
.ibc h2,.ibc h3,.ibc h4{margin:0 0 .5em;line-height:1.2}
.ibc-muted{color:var(--ibc-muted);font-size:.95em}
.ibc-link{background:none;border:0;padding:0;color:var(--ibc-accent);text-decoration:underline;cursor:pointer;font:inherit}
.ibc-link:hover,.ibc-link:focus-visible{color:var(--ibc-primary)}
.ibc-btn{display:inline-block;border:2px solid var(--ibc-dark);background:#fff;color:var(--ibc-dark);border-radius:999px;padding:.7em 1.4em;font-weight:700;cursor:pointer;text-decoration:none;font-size:1em;transition:transform .1s,background .15s}
.ibc-btn:hover,.ibc-btn:focus-visible{background:var(--ibc-dark);color:#fff}
.ibc-btn--primary{background:var(--ibc-primary);border-color:var(--ibc-primary);color:#fff;font-size:1.1em;padding:.9em 2em}
.ibc-btn--primary:hover,.ibc-btn--primary:focus-visible{background:var(--ibc-dark);border-color:var(--ibc-dark)}
.ibc-btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}
.ibc-btn--small{padding:.45em 1em;font-size:.9em}
.ibc :focus-visible{outline:3px solid var(--ibc-accent);outline-offset:2px}

/* Cabecera y cajas */
.ibc-head{margin-bottom:1.5rem}
.ibc-head__img img{border-radius:var(--ibc-radius);width:100%;max-height:480px;object-fit:cover}
.ibc-head__title{font-size:clamp(1.6rem,4vw,2.4rem);margin-top:1rem}
.ibc-box{background:#f9fafb;border:1px solid var(--ibc-border);border-radius:var(--ibc-radius);padding:1.1rem 1.3rem;margin:1.2rem 0}
.ibc-box h3{font-size:1.15rem}
.ibc-section-title{font-size:clamp(1.3rem,3vw,1.8rem);margin:2rem 0 .6rem}
.ibc-prizes{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin:1.2rem 0}
.ibc-prize{border-radius:var(--ibc-radius);padding:1.1rem 1.3rem;color:#fff;background:linear-gradient(135deg,var(--ibc-accent),var(--ibc-primary))}
.ibc-prize__tag{display:block;font-size:.85em;text-transform:uppercase;letter-spacing:.06em;opacity:.9}
.ibc-prize p{margin:.3em 0 0;font-weight:700;font-size:1.1em}
.ibc-deadline{margin:.6em 0 0}
.ibc-rules{margin:1.5rem 0;border:1px solid var(--ibc-border);border-radius:var(--ibc-radius);padding:.6rem 1rem}
.ibc-rules summary{cursor:pointer;font-weight:700}

/* Avisos */
.ibc-banner{border-radius:var(--ibc-radius);padding:1.2rem 1.4rem;margin:1rem 0;border:2px solid}
.ibc-banner h3{font-size:1.4rem}
.ibc-banner p:last-child{margin-bottom:0}
.ibc-banner--ok{background:#ecfdf5;border-color:#10b981}
.ibc-banner--warn{background:#fffbeb;border-color:#f59e0b}
.ibc-banner--info{background:#eff6ff;border-color:#3b82f6}
.ibc-banner--error{background:#fef2f2;border-color:#ef4444}

/* Galería */
.ibc-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
@media (max-width:480px){.ibc-grid{grid-template-columns:1fr 1fr;gap:.6rem}.ibc-grid--archive{grid-template-columns:1fr}}
.ibc-card{background:var(--ibc-bg);border:1px solid var(--ibc-border);border-radius:var(--ibc-radius);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s,transform .2s}
.ibc-card:hover{box-shadow:0 10px 30px rgba(0,0,0,.12)}
.ibc-card.is-chosen{border-color:var(--ibc-primary);box-shadow:0 0 0 3px var(--ibc-primary)}
.ibc-card__img{position:relative;display:block;width:100%;aspect-ratio:1/1;background:#f3f4f6;border:0;padding:0;cursor:zoom-in;overflow:hidden}
.ibc-card__img img{width:100%;height:100%;object-fit:contain;object-position:center}
.ibc-card__noimg{display:flex;align-items:center;justify-content:center;height:100%;color:var(--ibc-muted);font-size:2rem}
.ibc-card__num{position:absolute;top:.6rem;left:.6rem;background:var(--ibc-dark);color:#fff;font-weight:800;padding:.25em .6em;border-radius:999px;font-size:.9em}
.ibc-card__count{position:absolute;bottom:.6rem;right:.6rem;background:rgba(0,0,0,.6);color:#fff;padding:.2em .55em;border-radius:999px;font-size:.8em}
.ibc-card__body{padding:.8rem .9rem 1rem;display:flex;flex-direction:column;gap:.5rem}
.ibc-card__title{font-size:1.05rem;margin:0}
.ibc-card__more{align-self:flex-start;font-size:.9em}
.ibc-points{display:flex;gap:.4rem;margin-top:.2rem}
.ibc-pt{flex:1;border:2px solid var(--ibc-border);background:#fff;border-radius:12px;padding:.55em .2em;font-weight:800;font-size:1.05em;cursor:pointer;line-height:1.1;transition:all .15s}
.ibc-pt small{display:block;font-weight:500;font-size:.65em;color:var(--ibc-muted)}
.ibc-pt:hover{border-color:var(--ibc-dark)}
.ibc-pt[aria-pressed="true"]{color:#fff;border-color:transparent}
.ibc-pt--3[aria-pressed="true"]{background:#d97706}
.ibc-pt--2[aria-pressed="true"]{background:#6b7280}
.ibc-pt--1[aria-pressed="true"]{background:#b45309}
.ibc-pt[aria-pressed="true"] small{color:rgba(255,255,255,.85)}
.ibc-pt.is-taken{opacity:.35}
.ibc-status-voting_open{background:var(--ibc-primary)}
.ibc-status-results_published,.ibc-status-archived{background:var(--ibc-accent)}

/* Votación */
.ibc-vote{margin:2rem 0}
.ibc-summary{position:sticky;bottom:0;z-index:20;background:var(--ibc-dark);color:#fff;border-radius:var(--ibc-radius);padding:1rem 1.2rem;margin-bottom:1.2rem;box-shadow:0 -6px 24px rgba(0,0,0,.25)}
.ibc-summary h3{color:#fff;font-size:1.1rem;margin-bottom:.4rem}
.ibc-summary__list{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}
.ibc-summary__list li{display:flex;align-items:center;gap:.6rem;background:rgba(255,255,255,.08);border-radius:10px;padding:.4em .7em}
.ibc-summary__list li.is-set{background:rgba(255,255,255,.18)}
.ibc-slot-label{flex:1;font-weight:600}
.ibc-slot-pts{opacity:.8;font-size:.9em;white-space:nowrap}
.ibc-slot-clear{background:none;border:0;color:#fff;cursor:pointer;opacity:.7;font-size:1.1em;padding:0 .2em}
.ibc-slot-clear:hover{opacity:1}
.ibc-summary__hint{margin:.6em 0 0;font-size:.9em;opacity:.9}
@media (max-width:640px){.ibc-summary{padding:.7rem .8rem;border-radius:12px 12px 0 0;margin-left:-1px;margin-right:-1px}.ibc-summary h3{font-size:1rem}.ibc-summary__list li{padding:.3em .5em;font-size:.9em}}
.ibc-form{background:#f9fafb;border:1px solid var(--ibc-border);border-radius:var(--ibc-radius);padding:1.2rem 1.3rem}
.ibc-field{margin:0 0 1rem}
.ibc-field label{display:block;font-weight:700;margin-bottom:.3em}
.ibc-field input[type="email"],.ibc-field input[type="text"],.ibc-field textarea{width:100%;padding:.75em .9em;border:2px solid var(--ibc-border);border-radius:10px;font-size:1em;background:#fff}
.ibc-field input:focus{border-color:var(--ibc-accent);outline:none}
.ibc-field small{display:block;color:var(--ibc-muted);margin-top:.3em;font-size:.85em}
.ibc-field--check label{display:flex;gap:.6em;align-items:flex-start;font-weight:500}
.ibc-field--check input{margin-top:.3em;width:1.15em;height:1.15em;flex:none}
.ibc-req{color:#dc2626}
.ibc-legal{font-size:.8em;color:var(--ibc-muted);margin:0 0 1rem}
.ibc-hp{position:absolute!important;left:-9999px!important;top:-9999px!important;height:0;overflow:hidden}
.ibc-form__msg:empty,.ibc-resend__msg:empty{display:none}
.ibc-form__msg,.ibc-resend__msg{border-radius:10px;padding:.7em 1em;margin:0 0 1rem;background:#fef2f2;border:1px solid #fca5a5;color:#991b1b}
.ibc-form__msg.is-ok,.ibc-resend__msg.is-ok{background:#ecfdf5;border-color:#6ee7b7;color:#065f46}
.ibc-resend{margin-top:1rem}
.ibc-thanks{background:#ecfdf5;border:2px solid #10b981;border-radius:var(--ibc-radius);padding:1.4rem;margin-top:1rem;font-size:1.05em}
.ibc-thanks h3{font-size:1.5rem}
.ibc-thanks .ibc-warn{color:#92400e}

/* Ganadores */
.ibc-winners{margin:1.5rem 0 2rem;display:grid;gap:1rem;grid-template-columns:1fr}
.ibc-winners .ibc-section-title{margin-top:0}
.ibc-winner{border:3px solid var(--ibc-primary);border-radius:var(--ibc-radius);padding:1rem;background:#fffbeb;text-align:center}
.ibc-winner__tag{display:inline-block;background:var(--ibc-primary);color:#fff;font-weight:800;padding:.3em .9em;border-radius:999px;margin-bottom:.7rem}
.ibc-winner__img{aspect-ratio:4/3;border-radius:12px;max-width:640px;margin:0 auto}
.ibc-winner h4{font-size:1.4rem;margin-top:.8rem}
.ibc-winner__prize{font-weight:700;margin:0}
.ibc-thanks-msg{font-size:1.05em;text-align:center}
.ibc-ranking{border:1px solid var(--ibc-border);border-radius:var(--ibc-radius);padding:.6rem 1rem}
.ibc-ranking summary{cursor:pointer;font-weight:700}
.ibc-ranking table{width:100%;border-collapse:collapse;margin-top:.6rem}
.ibc-ranking td,.ibc-ranking th{padding:.4em .6em;border-bottom:1px solid var(--ibc-border);text-align:left}

/* Visor (lightbox) */
.ibc-lb{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.95);display:flex;flex-direction:column;align-items:center;justify-content:center;touch-action:pan-y}
.ibc-lb[hidden]{display:none}
.ibc-lb__img{max-width:100vw;max-height:calc(100vh - 110px);max-height:calc(100dvh - 110px);object-fit:contain;user-select:none;-webkit-user-drag:none}
.ibc-lb__bar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;color:#fff;background:linear-gradient(rgba(0,0,0,.6),transparent)}
.ibc-lb__title{font-weight:700}
.ibc-lb__btn{background:rgba(255,255,255,.12);border:0;color:#fff;font-size:1.6rem;line-height:1;width:48px;height:48px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center}
.ibc-lb__btn:hover,.ibc-lb__btn:focus-visible{background:rgba(255,255,255,.3)}
.ibc-lb__prev,.ibc-lb__next{position:absolute;top:50%;transform:translateY(-50%)}
.ibc-lb__prev{left:.5rem}.ibc-lb__next{right:.5rem}
.ibc-lb__thumbs{position:absolute;bottom:0;left:0;right:0;display:flex;gap:.4rem;justify-content:center;padding:.6rem;overflow-x:auto;background:linear-gradient(transparent,rgba(0,0,0,.6))}
.ibc-lb__thumbs img{width:56px;height:56px;object-fit:cover;border-radius:8px;border:2px solid transparent;cursor:pointer;opacity:.7}
.ibc-lb__thumbs img.is-current{border-color:#fff;opacity:1}
.ibc-lb__count{position:absolute;bottom:76px;left:50%;transform:translateX(-50%);color:#fff;font-size:.85em;background:rgba(0,0,0,.5);padding:.2em .7em;border-radius:999px}
.ibc-lb__open{position:absolute;bottom:76px;right:1rem;color:#fff;font-size:.8em;opacity:.7;text-decoration:underline}
body.ibc-lb-open{overflow:hidden}
@media (max-width:640px){.ibc-lb__prev,.ibc-lb__next{display:none}.ibc-lb__img{max-height:calc(100dvh - 130px)}}

/* Jurado */
.ibc-judge__title{font-size:1.5rem;margin:.5rem 0 1rem}
.ibc-judge__intro{background:#fff;border-radius:var(--ibc-radius);padding:1rem 1.2rem}
.ibc-judge-form{display:grid;gap:1rem}
.ibc-judge-item{display:grid;grid-template-columns:minmax(200px,320px) 1fr;gap:1rem;background:#fff;border-radius:var(--ibc-radius);padding:1rem;border:1px solid var(--ibc-border)}
@media (max-width:720px){.ibc-judge-item{grid-template-columns:1fr}}
.ibc-judge-item .ibc-card__img{border-radius:12px}
.ibc-judge-item h4{display:flex;justify-content:space-between;align-items:center;gap:.5rem;font-size:1.2rem}
.ibc-judge-crit{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.4rem 0;border-bottom:1px dashed var(--ibc-border)}
.ibc-judge-crit span{font-weight:600}
.ibc-judge-crit small{color:var(--ibc-muted);font-weight:400}
.ibc-judge-crit input{width:90px;padding:.5em;border:2px solid var(--ibc-border);border-radius:8px;font-size:1.1em;text-align:center}
.ibc-judge-crit input:invalid{border-color:#dc2626}
.ibc-judge-crit--comment{flex-direction:column;align-items:stretch}
.ibc-judge-crit--comment textarea{width:100%;padding:.5em;border:2px solid var(--ibc-border);border-radius:8px;font:inherit}
.ibc-judge-total{text-align:right;margin:.6rem 0 0;font-size:1.05em}
.ibc-judge__actions{position:sticky;bottom:0;background:#fff;padding:1rem;border-radius:var(--ibc-radius);box-shadow:0 -4px 20px rgba(0,0,0,.1);display:flex;gap:.6rem;flex-wrap:wrap;justify-content:flex-end}
.ibc-judge__status:empty{display:none}
.ibc-judge__status{position:sticky;top:0;z-index:5;border-radius:10px;padding:.7em 1em;background:#eff6ff;border:1px solid #93c5fd}
.ibc-judge__status.is-error{background:#fef2f2;border-color:#fca5a5;color:#991b1b}
.ibc-judge__status.is-ok{background:#ecfdf5;border-color:#6ee7b7;color:#065f46}

@media (prefers-reduced-motion:reduce){.ibc *{transition:none!important}}
.ibc-judge__logout{font-size:.75rem;font-weight:400;margin-left:auto;color:var(--ibc-muted)}
.ibc-judge__title{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.ibc-judge-login{background:#fff;border-radius:var(--ibc-radius);padding:1.2rem;max-width:420px}
.ibc-judge-login input{width:100%;padding:.75em;border:2px solid var(--ibc-border);border-radius:10px;font-size:1.1em}
/* 1.1 · progreso y resumen del jurado */
.ibc-judge-progress{background:#fff;border-radius:var(--ibc-radius);padding:.8rem 1.2rem;margin:1rem 0;position:sticky;top:0;z-index:6;box-shadow:0 2px 10px rgba(0,0,0,.08)}
.ibc-judge-progress__bar{height:12px;background:#e5e7eb;border-radius:999px;overflow:hidden}
.ibc-judge-progress__fill{height:100%;background:linear-gradient(90deg,var(--ibc-accent),var(--ibc-primary));transition:width .3s}
.ibc-judge-progress__text{margin:.5rem 0 0;font-weight:600}
.ibc-judge-item.is-complete{border-color:#10b981}
.ibc-judge-item.is-complete .ibc-judge-total strong{color:#059669}
.ibc-judge-summary{position:fixed;inset:0;z-index:99998;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;padding:1rem}
.ibc-judge-summary[hidden]{display:none}
.ibc-judge-summary__box{background:#fff;border-radius:var(--ibc-radius);padding:1.2rem;max-width:520px;width:100%;max-height:90vh;overflow:auto}
.ibc-judge-summary table{width:100%;border-collapse:collapse}
.ibc-judge-summary td,.ibc-judge-summary th{padding:.35em .5em;border-bottom:1px solid var(--ibc-border);text-align:left}
.ibc-judge-summary tr.is-missing td{color:#b45309}
.ibc-judge-summary__warn{color:#b45309;font-weight:600}
.ibc-judge-summary__actions{display:flex;gap:.5rem;justify-content:flex-end;flex-wrap:wrap}
@media (max-width:640px){.ibc-judge__actions{justify-content:stretch}.ibc-judge__actions .ibc-btn{flex:1 1 45%;text-align:center;padding:.6em .5em;font-size:.9em}}
/* 1.1 · compartir, cuenta atrás, página individual */
.ibc-share{position:relative;margin-top:.3rem}
.ibc-share__menu{position:absolute;z-index:30;top:calc(100% + 6px);left:0;background:#fff;border:1px solid var(--ibc-border);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.15);padding:.4rem;min-width:200px;display:grid;gap:.2rem}
.ibc-share__menu[hidden]{display:none}
.ibc-share__item{display:block;width:100%;text-align:left;background:none;border:0;padding:.55em .8em;border-radius:8px;font:inherit;color:var(--ibc-dark);text-decoration:none;cursor:pointer}
.ibc-share__item:hover,.ibc-share__item:focus-visible{background:#f3f4f6}
.ibc-share__done{margin:.2em .8em;font-size:.85em;color:#059669}
.ibc-countdown{display:inline-block;font-variant-numeric:tabular-nums;font-weight:700;color:var(--ibc-accent)}
.ibc-participant__crumb{margin:0 0 .5rem}
.ibc-participant__main{background:#fff;border:1px solid var(--ibc-border);border-radius:var(--ibc-radius);padding:1rem;margin-bottom:1rem}
.ibc-participant__img{aspect-ratio:4/3;border-radius:12px}
.ibc-participant__title{margin:.8rem 0 .4rem;font-size:1.5rem}
.ibc-participant__thumbs{display:flex;gap:.4rem;flex-wrap:wrap}
.ibc-participant__thumb{border:2px solid var(--ibc-border);border-radius:8px;padding:0;background:none;cursor:pointer;width:72px;height:72px;overflow:hidden}
.ibc-participant__thumb img{width:100%;height:100%;object-fit:cover}
.ibc-participant .ibc-share{margin:1rem 0}
/* 1.1 · estadísticas públicas */
.ibc-pubstats{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;margin:1rem 0}
.ibc-pubstats div{background:#f9fafb;border:1px solid var(--ibc-border);border-radius:12px;padding:.8rem 1.2rem;text-align:center;font-size:.9em;color:var(--ibc-muted)}
.ibc-pubstats span{display:block;font-size:1.8em;font-weight:800;color:var(--ibc-dark)}
.ibc-dist__row{display:grid;grid-template-columns:50px 1fr 50px;gap:.5rem;align-items:center;margin:.3rem 0}
.ibc-dist__bar{display:flex;height:16px;background:#f3f4f6;border-radius:999px;overflow:hidden}
.ibc-dist__bar i{display:block;height:100%}
.ibc-dist__bar i:nth-child(1){background:var(--ibc-primary)}
.ibc-dist__bar i:nth-child(2){background:var(--ibc-accent)}
.ibc-dist__bar i:nth-child(3){background:#9ca3af}
.ibc-dist__row b{text-align:right}
.ibc-days{display:flex;gap:4px;align-items:flex-end;height:140px;padding:.6rem;background:#f9fafb;border-radius:12px;overflow-x:auto}
.ibc-days__col{flex:1;min-width:32px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.ibc-days__col i{display:block;width:70%;background:var(--ibc-primary);border-radius:4px 4px 0 0;min-height:2px}
.ibc-days__col small{font-size:.65em;color:var(--ibc-muted)}
