/* Zam Concours Front v1.0.0 */
:root{--zcf-purple:#7c3aed;--zcf-purple2:#5b21b6;--zcf-green:#059669;--zcf-gold:#f59e0b;--zcf-red:#dc2626;--zcf-bg:#f5f3ff;--zcf-text:#1f2937;--zcf-muted:#6b7280;--zcf-r:12px}
.zc-front{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:14px;color:var(--zcf-text);max-width:860px;margin:0 auto;padding:0 0 40px}
/* ── Hero layout 2 colonnes ──────────────────────────────── */
.zcf-hero{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;margin-bottom:30px}
@media(max-width:700px){.zcf-hero{grid-template-columns:1fr}.zcf-hero-right{order:-1}.zcf-seuils{flex-direction:column}.zcf-seuil{min-width:unset}}

/* COL GAUCHE */
.zcf-hero-left{display:flex;flex-direction:column;gap:14px}
.zcf-titre{font-size:2em;font-weight:900;color:var(--zcf-purple2);margin:0;line-height:1.15}
.zcf-titre-brand{color:var(--zcf-purple);display:inline-block}
.zcf-sous{font-size:.97em;color:var(--zcf-muted);margin:0;line-height:1.5}

/* COL DROITE : slider */
.zcf-hero-right{position:relative}
.zcf-slider{position:relative;border-radius:var(--zcf-r);overflow:hidden;height:0;padding-bottom:100%;background:#111}
.zcf-slide{position:absolute;inset:0;opacity:0;transition:opacity .5s ease}
.zcf-slide.active{opacity:1}
.zcf-slide img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
/* Mobile : hauteur fixe, images pleine hauteur sans bandes noires */
@media(max-width:700px){
    .zcf-slider{height:260px;padding-bottom:0}
    .zcf-slide img{height:260px;object-fit:cover}
}
.zcf-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.5);color:#fff;border:none;cursor:pointer;font-size:1.8em;line-height:1;padding:6px 14px;border-radius:6px;z-index:2;transition:background .2s}
.zcf-nav:hover{background:rgba(0,0,0,.75)}.zcf-nav.prev{left:8px}.zcf-nav.next{right:8px}
.zcf-dots{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:6px;z-index:2}
.zcf-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.5);cursor:pointer}.zcf-dot.active{background:#fff}

/* Hero connect */
.zcf-hero-connect{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.zcf-connect-hint{font-size:.82em;color:var(--zcf-muted);margin:0}

/* Hero logged */
.zcf-hero-logged{display:flex;flex-direction:column;gap:10px}
/* Code section */
.zcf-code-section{background:#fff;border-radius:var(--zcf-r);box-shadow:0 4px 20px rgba(124,58,237,.12);padding:24px;margin-bottom:30px;border:1px solid #ede9fe}
.zcf-etat-msg{text-align:center;padding:20px;font-size:.95em;color:var(--zcf-muted);border-radius:8px;background:#f9fafb}
.zcf-etat-msg.info{background:#eff6ff;color:#1e40af}.zcf-etat-msg.dark{background:#f3f4f6;color:#374151}
/* Connect */
.zcf-connect-box{text-align:center;padding:10px 0 20px}
.zcf-connect-ico{font-size:2.5em;margin-bottom:8px}
.zcf-connect-box h2{font-size:1.1em;margin:0 0 6px;color:var(--zcf-purple2)}
.zcf-connect-box p{font-size:.88em;color:var(--zcf-muted);margin:0 0 16px}
.zcf-btn-connect{background:linear-gradient(135deg,var(--zcf-purple),var(--zcf-purple2));color:#fff;border:none;border-radius:30px;padding:12px 32px;font-size:.97em;font-weight:700;cursor:pointer;box-shadow:0 4px 14px rgba(124,58,237,.35);transition:transform .15s;white-space:normal;text-align:center;max-width:220px;line-height:1.3}
.zcf-btn-connect:hover{transform:translateY(-2px)}
/* Saisie */
.zcf-hello{font-size:.9em;color:var(--zcf-muted);margin-bottom:12px}
.zcf-hello strong{color:var(--zcf-purple2)}
.zcf-fin-prevue{font-size:.82em;color:var(--zcf-muted);margin-bottom:12px}
.zcf-fin-prevue strong{color:var(--zcf-purple)}
.zcf-quota{margin-bottom:18px}
.zcf-quota-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:.82em}
.zcf-quota-top span:first-child{color:var(--zcf-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}
#zcf-quota-count strong{font-size:1.2em;color:var(--zcf-purple)}
.zcf-quota-bg{background:#ede9fe;border-radius:20px;height:10px;overflow:hidden;margin-bottom:5px}
.zcf-quota-fill{height:100%;border-radius:20px;background:linear-gradient(90deg,var(--zcf-purple),var(--zcf-gold));transition:width .4s}
.zcf-quota-reste{font-size:.8em;color:var(--zcf-muted)}
.zcf-input-row{display:flex;gap:10px;align-items:center;margin-bottom:10px}
.zcf-code-input{flex:1;font-size:1.6em;font-weight:800;letter-spacing:.35em;text-transform:uppercase;text-align:center;border:2px solid #c4b5fd;border-radius:10px;padding:10px 14px;color:var(--zcf-purple2);background:#faf5ff;outline:none}
.zcf-code-input:focus{border-color:var(--zcf-purple);box-shadow:0 0 0 3px rgba(124,58,237,.15)}
.zcf-btn-valider{background:linear-gradient(135deg,var(--zcf-green),#047857);color:#fff;border:none;border-radius:10px;padding:12px 24px;font-size:.97em;font-weight:700;cursor:pointer;white-space:nowrap}
.zcf-btn-valider:hover{opacity:.88}.zcf-btn-valider:disabled{opacity:.5;cursor:default}
.zcf-msg{padding:10px 14px;border-radius:8px;font-size:.88em;font-weight:600;display:none}
.zcf-msg.ok{background:#d1fae5;color:#065f46;border-left:3px solid var(--zcf-green);display:block}
.zcf-msg.err{background:#fee2e2;color:#991b1b;border-left:3px solid var(--zcf-red);display:block}
.zcf-quota-done{text-align:center;font-size:.9em;color:var(--zcf-muted);padding:14px 0}
/* Seuils */
.zcf-seuils-wrap{margin-top:22px;padding-top:18px;border-top:1px solid #ede9fe}
.zcf-seuils-titre{font-size:.82em;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--zcf-muted);margin-bottom:10px}
.zcf-seuils{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.zcf-seuil{flex:1;min-width:110px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:8px 12px;font-size:.8em;color:var(--zcf-muted);text-align:center}
.zcf-seuil.ok{background:#d1fae5;border-color:#6ee7b7;color:#065f46;font-weight:700}
.zcf-total{font-size:.82em;color:var(--zcf-muted);text-align:right}
/* Jeux */
.zcf-jeux-section{margin-top:10px}.zcf-section-h{font-size:1.1em;font-weight:800;color:var(--zcf-purple2);margin:0 0 16px}
.zcf-jeux-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.zcf-jeu-card{border:2px solid #e5e7eb;border-radius:var(--zcf-r);padding:16px;transition:transform .18s,box-shadow .18s}
.zcf-jeu-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.10)}
.zcf-jeu-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}
.zcf-jeu-ico{font-size:1.8em;line-height:1}.zcf-jeu-badge{font-size:.72em;font-weight:800;border-radius:20px;padding:3px 10px}
.zcf-jeu-nom{font-size:.95em;font-weight:800;margin:0 0 6px;line-height:1.2}
.zcf-jeu-expl{font-size:.78em;color:#4b5563;margin:0 0 10px;line-height:1.5}
.zcf-details{margin-bottom:10px}.zcf-details summary{cursor:pointer;font-size:.75em;font-weight:700;list-style:none}
.zcf-details summary::-webkit-details-marker{display:none}
.zcf-regles-content{margin-top:8px;font-size:.75em;line-height:1.6;color:#374151;background:rgba(255,255,255,.6);border-radius:6px;padding:8px 10px}
.zcf-btn-jouer{display:inline-block;color:#fff!important;text-decoration:none;font-size:.78em;font-weight:700;border-radius:20px;padding:6px 16px;transition:opacity .2s}
.zcf-btn-jouer:hover{opacity:.85}
/* Gagnants */
.zcf-gagnants-section{margin-top:30px}.zcf-gagnants-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.zcf-gagnant-card{background:linear-gradient(135deg,#1d2327,#374151);border-radius:var(--zcf-r);padding:18px;text-align:center;border:2px solid transparent}
.zcf-gagnant-card.valide{border-color:#4ade80}
.zcf-gagnant-code{font-size:1.7em;font-weight:900;letter-spacing:.25em;color:var(--zcf-gold);font-family:monospace;margin-bottom:8px}
.zcf-gagnant-pseudo{font-size:.85em;color:#e5e7eb;margin-bottom:8px}
.zcf-gagnant-meta{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}
.zcf-badge-mini{font-size:.68em;font-weight:700;border-radius:20px;padding:2px 8px;background:#374151;color:#9ca3af}
.zcf-badge-mini.green{background:#d1fae5;color:#065f46}.zcf-badge-mini.orange{background:#fff3cd;color:#92400e}.zcf-badge-mini.blue{background:#dbeafe;color:#1e40af}
@media(max-width:600px){.zcf-jeux-grid{grid-template-columns:1fr}.zcf-gagnants-grid{grid-template-columns:1fr}}
