/* Polices auto-hébergées : aucune requête vers un tiers, aucun cookie déposé,
   contrainte RGPD pour une agence française. Bebas Neue reprend le titrage du
   site Sellers, Jost tient lieu de Futura PT, réservé aux licences Adobe. */
@font-face{
  font-family:'Bebas Neue';src:url('/fonts/bebas-neue.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Jost';src:url('/fonts/jost.woff2') format('woff2');
  font-weight:100 900;font-style:normal;font-display:swap;
}

:root{
  --navy:#1f2951;
  --navy-dark:#161e3d;
  --ink:#1c2333;
  --muted:#6b7280;
  --line:#e4e7ef;
  --bg:#f6f7fa;
  --ok:#1e9e5a;
  --warn:#b4531a;
  --radius:12px;
}
*{box-sizing:border-box}
body{
  margin:0;padding:0 20px 64px;background:var(--bg);color:var(--ink);
  font-family:'Jost',-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  line-height:1.55;
}

/* Bandeau de marque, repris du site : logo blanc sur bleu nuit, pleine largeur. */
.brandbar{
  background:var(--navy);margin:0 -20px 32px;padding:16px 20px;
  display:flex;align-items:center;justify-content:center;
}
.brandbar img{height:54px;width:auto;display:block}
#app,.head{max-width:820px;margin:0 auto}
.hidden{display:none!important}

.head{margin-bottom:26px}
.kicker{font-family:'Jost';font-size:11.5px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
h1,h2,.party-title,.inbox h3{font-family:'Bebas Neue',Impact,sans-serif;font-weight:400}
h1{font-size:clamp(34px,5vw,48px);margin:0 0 8px;color:var(--navy);letter-spacing:.02em;line-height:1.05}
h2{font-size:24px;margin:0 0 14px;color:var(--navy);letter-spacing:.03em}
.lead{margin:0;color:var(--muted);max-width:60ch}

.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-bottom:16px}
.center{text-align:center}
.big-icon{font-size:40px;color:var(--navy);margin-bottom:8px}

.situations{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:22px}
.situations button{
  border:1.5px solid var(--line);background:#fff;border-radius:10px;padding:16px;
  text-align:left;cursor:pointer;font:inherit;transition:border-color .15s,background .15s;
}
.situations button:hover{border-color:#b9c0d4}
.situations button[aria-pressed="true"]{border-color:var(--navy);background:#f2f4fb}
.situations b{display:block;color:var(--navy);font-size:19px;font-family:'Bebas Neue',Impact,sans-serif;letter-spacing:.04em}
.situations span{font-size:12.5px;color:var(--muted)}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid2 .full{grid-column:1/-1}
label{display:block;font-size:13px;font-weight:600;color:var(--ink)}
.opt{font-weight:400;color:var(--muted)}
input[type=text],input[type=email],input[type=tel]{
  width:100%;margin-top:5px;padding:10px 12px;border:1px solid var(--line);
  border-radius:8px;font:inherit;background:#fff;
}
input:focus{outline:2px solid var(--navy);outline-offset:-1px;border-color:var(--navy)}

.consent{display:flex;gap:10px;align-items:flex-start;margin:20px 0 6px;font-weight:400;font-size:13.5px;color:var(--muted)}
.consent input{margin-top:3px;flex:none}

.btn{
  background:var(--navy);color:#fff;border:0;border-radius:2px;padding:14px 30px;
  font:inherit;font-weight:500;letter-spacing:.09em;text-transform:uppercase;
  font-size:13px;cursor:pointer;margin-top:14px;transition:background .15s;
}
.btn:hover:not(:disabled){background:var(--navy-dark)}
.btn:disabled{background:#aeb5c9;cursor:not-allowed}
.link{background:0;border:0;color:var(--muted);text-decoration:underline;cursor:pointer;font:inherit;font-size:13px;padding:0}
.err{color:#c0392b;font-size:13.5px;margin:12px 0 0}
.note{font-size:12.5px;color:var(--muted);margin:10px 0 0}

.bar{display:flex;justify-content:space-between;align-items:center;padding:16px 24px}
.bar-name{margin:0;font-weight:600;color:var(--navy)}
.bar-sub{margin:2px 0 0;font-size:13px;color:var(--muted)}

.progress-card{position:sticky;top:12px;z-index:5}
.progress-top{display:flex;justify-content:space-between;font-size:14px;margin-bottom:10px}
.progress{height:7px;background:#e9ecf4;border-radius:99px;overflow:hidden}
.progress>div{height:100%;background:var(--navy);width:0;transition:width .3s ease}
.missing{margin-top:14px;font-size:13.5px}
.missing ul{margin:6px 0 0;padding-left:18px;color:var(--warn)}
.missing.done{color:var(--ok);font-weight:600}

.party-title{font-size:19px;letter-spacing:.09em;color:var(--navy);margin:28px 0 10px}

.slot{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 18px;margin-bottom:10px;
}
.slot.filled{border-color:#bfe3cd;background:#fafefb}
.slot-head{display:flex;gap:12px;align-items:flex-start}
.slot-mark{
  flex:none;width:22px;height:22px;border-radius:50%;border:1.5px solid #ccd2e2;
  display:grid;place-items:center;font-size:12px;color:#fff;margin-top:2px;
}
.slot.filled .slot-mark{background:var(--ok);border-color:var(--ok)}
.slot-label{font-weight:600;font-size:14.5px}
.slot-hint{font-size:12.5px;color:var(--muted)}
.tag{font-size:11px;border:1px solid var(--line);border-radius:99px;padding:1px 8px;color:var(--muted);margin-left:6px;vertical-align:1px}

.drop{
  margin-top:12px;border:1.5px dashed #ccd2e2;border-radius:10px;padding:16px;
  text-align:center;color:var(--muted);font-size:13.5px;cursor:pointer;transition:.15s;
}
.drop:hover{border-color:var(--navy);color:var(--navy)}
.drop.over{border-color:var(--navy);background:#f4f6fc;color:var(--navy)}
.drop b{color:var(--navy)}

.bulk-card h2{margin-bottom:6px}
.bulk-lead{margin:0 0 14px;font-size:13.5px;color:var(--muted)}
.drop-bulk{
  padding:52px 20px;min-height:190px;display:grid;place-items:center;
  border-width:2px;border-color:#b9c0d4;background:#fbfcfe;font-size:15px;
}
.drop-bulk b{font-size:17px;display:block;margin-bottom:4px}
.drop-icon{
  width:42px;height:42px;margin:0 auto 12px;border-radius:50%;
  background:#eef1f9;color:var(--navy);display:grid;place-items:center;
  font-size:20px;font-weight:700;
}
.drop.busy{border-style:solid;border-color:var(--navy);background:#f4f6fc;color:var(--navy);cursor:progress}

/* Pendant un glisser, la zone de dépôt s'allume. Rien ne recouvre la page. */
body.dragging .drop-bulk{
  border-color:var(--navy);background:#eef2fb;color:var(--navy);
}
body.dragging .drop{border-color:var(--navy)}

.inbox{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}
.inbox h3{font-size:19px;letter-spacing:.06em;color:var(--navy);margin:0 0 12px}
.inbox-note{
  background:#fff4e5;border-left:3px solid var(--warn);padding:11px 14px;
  margin:0 0 14px;font-size:13px;color:#7a3c12;
}
.inbox-item{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px;border:1px solid var(--line);border-radius:9px;margin-bottom:8px}
.inbox-item .fname{
  font-weight:600;font-size:13.5px;flex:1;min-width:150px;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;color:var(--navy);
  text-decoration:underline;text-underline-offset:2px;
}
.inbox-item .fname:hover{color:#000}
.inbox-item select{flex:1;min-width:220px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;font:inherit;font-size:13.5px;background:#fff}
.inbox-item .why{width:100%;font-size:12px;color:var(--muted);margin:0}
.drop-file{
  flex:none;background:0;border:1px solid var(--line);border-radius:7px;
  width:32px;height:32px;color:#c0392b;font-size:18px;line-height:1;cursor:pointer;
}
.drop-file:hover{border-color:#c0392b;background:#fdecea}
.conf{font-size:11px;font-weight:600;padding:2px 9px;border-radius:99px;flex:none}
.conf.haute{background:#e9f7ef;color:#166b3d}
.conf.moyenne{background:#fff4e5;color:#b4531a}
.conf.faible{background:#fdecea;color:#a5342a}
.inbox-actions{display:flex;gap:10px;align-items:center;margin-top:12px;flex-wrap:wrap}
.inbox-actions .btn{margin-top:0}

.files{list-style:none;margin:12px 0 0;padding:0}
.files li{display:flex;align-items:center;gap:10px;font-size:13.5px;padding:7px 10px;background:#f6f7fa;border-radius:7px;margin-bottom:6px}
.files .fname{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--navy);text-decoration:underline;text-underline-offset:2px}
.files .fname:hover{color:#000}
.files .fsize{color:var(--muted);font-size:12px;flex:none}
.files button{flex:none;background:0;border:0;color:#c0392b;cursor:pointer;font-size:16px;line-height:1;padding:2px 4px}

.rgpd{font-size:12px;color:var(--muted);margin:0 0 4px}
.submit-card{text-align:center}

.toast{
  position:fixed;left:50%;bottom:24px;transform:translateX(-50%);
  background:var(--navy);color:#fff;padding:12px 20px;border-radius:9px;font-size:14px;
  box-shadow:0 8px 28px rgba(20,30,60,.25);z-index:50;max-width:90vw;
}
.toast.bad{background:#a5342a}

@media(max-width:620px){
  .brandbar img{height:42px}
  .situations,.grid2{grid-template-columns:1fr}
  .card{padding:18px}
  .progress-card{position:static}
}
