/* Charte « les immocuriens » : rouge #bd1320, aubergine #2d1e2f, beige #d6d5c9 */
:root{
  --rouge:#bd1320; --rouge-d:#9c0f1a;
  --ink:#2d1e2f;            /* aubergine foncé — texte/titres */
  --vert:#283d3b;           /* accent secondaire */
  --beige:#d6d5c9; --beige-l:#ece9df;
  --card:#ffffff;
  --muted:#736b78;
  --line:#e2dfd4;
  --ok:#1ca672; --err:#bd1320;
  --radius:16px;
  --font-titre:"Poppins",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-corps:"Nunito",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--font-corps);background:var(--beige);color:var(--ink);
  -webkit-text-size-adjust:100%}

/* ---------- Upload mobile-first ---------- */
body.upload{padding:18px 16px;display:flex;justify-content:center;
  background:linear-gradient(180deg,var(--beige) 0%,var(--beige-l) 100%);min-height:100vh}
.card{width:100%;max-width:520px;background:var(--card);border-radius:var(--radius);
  box-shadow:0 10px 34px rgba(45,30,47,.14);padding:24px 22px 26px;margin:auto;
  border:1px solid var(--line)}
.head{text-align:center;margin-bottom:18px}
.logo{max-height:92px;width:auto;margin:0 auto 6px}
.head h1{font-family:var(--font-titre);font-weight:700;font-size:1.4rem;margin:.3rem 0 .15rem;
  color:var(--ink);letter-spacing:-.01em}
.sub{color:var(--muted);margin:0;font-size:.98rem;font-weight:600}
.sub .accent{color:var(--rouge)}
.counter{display:inline-block;margin:10px auto 0;padding:5px 14px;font-size:.82rem;font-weight:700;
  color:var(--ink);background:var(--beige-l);border:1.5px solid var(--line);border-radius:999px}
.counter strong{color:var(--rouge)}
form{display:flex;flex-direction:column;gap:15px}
label{display:flex;flex-direction:column;gap:6px;font-size:.9rem;font-weight:700;color:var(--ink)}
.req{color:var(--rouge)} .opt{color:var(--muted);font-weight:500}
input[type=text],input[type=email],input[type=tel]{
  font-family:var(--font-corps);font-size:16px;padding:13px 13px;border:1.5px solid var(--line);
  border-radius:11px;background:#fff;color:var(--ink);font-weight:500}
input:focus{outline:none;border-color:var(--rouge);box-shadow:0 0 0 3px rgba(189,19,32,.14)}

.filebtn{align-items:center;justify-content:center;gap:10px;flex-direction:row;
  background:var(--ink);color:#fff;border-radius:13px;padding:19px;font-size:1.12rem;
  cursor:pointer;font-weight:700;text-align:center;transition:transform .08s,background .15s;
  font-family:var(--font-titre)}
.filebtn:active{background:#1f1421;transform:scale(.99)}
.filebtn-ico{font-size:1.45rem}
.filebtn input[type=file]{display:none}

.preview{border:1.5px solid var(--line);border-radius:13px;padding:9px;text-align:center;background:var(--beige-l)}
.preview img{max-width:100%;max-height:300px;border-radius:9px;display:block;margin:0 auto}
.fileinfo{font-size:.82rem;color:var(--muted);margin-top:7px;font-weight:600}

.consent{flex-direction:row;align-items:flex-start;gap:11px;font-weight:500;
  background:var(--beige-l);border:1.5px solid var(--line);border-radius:11px;padding:13px;
  font-size:.84rem;line-height:1.45;color:var(--ink)}
.consent input{margin-top:2px;width:21px;height:21px;flex:0 0 auto;accent-color:var(--rouge)}
.rgpd{font-size:.78rem;color:var(--muted);margin:0;font-weight:600;text-align:center}

.send{background:var(--rouge);color:#fff;border:none;border-radius:13px;padding:17px;
  font-size:1.12rem;font-weight:700;cursor:pointer;transition:transform .08s,opacity .15s;
  font-family:var(--font-titre);letter-spacing:.01em}
.send:disabled{opacity:.4;cursor:not-allowed}
.send:active:not(:disabled){transform:scale(.99);background:var(--rouge-d)}

.progress{position:relative;height:28px;background:var(--beige-l);border-radius:9px;overflow:hidden;border:1px solid var(--line)}
.progress-bar{height:100%;width:0;background:var(--rouge);transition:width .15s}
.progress-pct{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:.82rem;font-weight:800;color:var(--ink)}
.error{background:#fbeaec;color:var(--rouge-d);border-radius:11px;padding:13px;font-size:.9rem;margin:0;
  border:1px solid #f0c7cc;font-weight:600}
.done{text-align:center;padding:14px 4px}
.done-ico{font-size:3.4rem}
.done h2{font-family:var(--font-titre);margin:.4rem 0;color:var(--ink)}
.done p{color:var(--muted);font-weight:600}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.hidden{display:none!important}

/* ---------- Jury (sombre, accents charte) ---------- */
body.jury{background:#1c1420;color:#efe9ec;font-family:var(--font-corps)}
.bar{position:sticky;top:0;z-index:10;display:flex;flex-wrap:wrap;gap:12px;align-items:center;
  justify-content:space-between;background:#2d1e2f;padding:12px 18px;border-bottom:2px solid var(--rouge)}
.bar-title{font-size:1rem;font-family:var(--font-titre);font-weight:600}
.who{color:#c3b6c7;font-size:.8rem;margin-left:8px;font-weight:600}
.dash{display:flex;gap:8px}
.pill{background:#3b2a3d;border:1px solid #4a3550;border-radius:999px;padding:5px 13px;font-size:.85rem;font-weight:700}
.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sortlbl{flex-direction:row;align-items:center;gap:6px;font-size:.85rem;color:#c3b6c7;font-weight:600}
#sort{background:#3b2a3d;color:#efe9ec;border:1px solid #4a3550;border-radius:8px;padding:7px 10px;font-size:.85rem;font-family:var(--font-corps)}
.btn{background:var(--rouge);color:#fff;text-decoration:none;border-radius:8px;padding:8px 14px;font-size:.85rem;font-weight:700;font-family:var(--font-titre)}
.btn:active{background:var(--rouge-d)}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;padding:18px}
.empty{color:#c3b6c7;padding:40px;text-align:center}
.tile{position:relative;margin:0;background:#2d1e2f;border:1px solid #3b2a3d;border-radius:13px;overflow:hidden;display:flex;flex-direction:column}
.del-btn{position:absolute;top:8px;right:8px;z-index:6;width:30px;height:30px;border:none;
  border-radius:8px;background:rgba(28,20,32,.74);color:#fff;font-size:.92rem;font-weight:800;
  cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}
.del-btn:hover{background:var(--rouge)}
.thumb-btn{position:relative;border:0;padding:0;background:#000;cursor:zoom-in;aspect-ratio:4/3;overflow:hidden}
.thumb-btn img{width:100%;height:100%;object-fit:cover;display:block}
.rankbadge{position:absolute;top:8px;left:8px;background:var(--rouge);color:#fff;border-radius:999px;
  padding:3px 10px;font-size:.78rem;font-weight:800}
figcaption{padding:11px 13px;display:flex;flex-direction:column;gap:5px}
.cap-title{font-weight:700;font-size:.93rem;font-family:var(--font-titre)}
.cap-meta{color:#b6a7ba;font-size:.8rem;font-weight:600}
.cap-note{font-size:.82rem}
.avg{color:var(--rouge);font-weight:800} .nv{color:#9a8c9e}
.rate{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.dot{width:27px;height:27px;border-radius:7px;border:1px solid #4a3550;background:#3b2a3d;color:#b6a7ba;
  font-size:.74rem;cursor:pointer;font-weight:800}
.dot.on{background:var(--rouge);color:#fff;border-color:var(--rouge)}
.dot:hover{border-color:var(--rouge)}

.lightbox{position:fixed;inset:0;background:rgba(20,12,22,.94);display:flex;flex-direction:column;
  align-items:center;justify-content:center;z-index:50;padding:20px}
.lightbox img{max-width:96vw;max-height:82vh;object-fit:contain;border-radius:8px}
.lb-close{position:absolute;top:16px;right:20px;background:none;border:0;color:#fff;font-size:2rem;cursor:pointer}
.lb-meta{color:#e3d8e6;margin-top:14px;font-size:.95rem;text-align:center;font-weight:600}
