/* Ajouts de la v2 par-dessus app.css (repris tel quel du prototype) :
   les 7 parties d'un défi, l'inscription, la saisie de naissance, le récap et la suite. */
.part{display:flex;align-items:center;gap:10px}
.num{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:.9rem;background:var(--orange-soft);box-shadow:var(--clay-sm);color:var(--ink)}
.part .eyebrow{color:var(--muted)}
.dare{font-family:var(--display);font-weight:700;font-size:1.2rem;line-height:1.3}
.win{display:inline-flex;align-self:flex-start;align-items:center;gap:8px;background:var(--mint-soft);border-radius:999px;padding:6px 14px;font-weight:700;font-family:var(--display);font-size:.92rem}
.ex{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width:620px){.ex{grid-template-columns:1fr}}
.post{border-radius:20px;padding:14px;background:var(--peach-soft);display:flex;flex-direction:column;gap:8px;min-width:0}
.post .fmt{font-family:var(--label);letter-spacing:.08em;font-size:.85rem;color:var(--muted)}
.post q{font-family:var(--display);font-weight:700;quotes:"« " " »";line-height:1.3}
.post small{font-size:.86rem}
.todo{font-size:.8rem;color:var(--muted);border:1.5px dashed var(--line);border-radius:10px;padding:3px 8px;align-self:flex-start}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips span{background:var(--surface-2);border-radius:999px;padding:7px 12px;font-size:.9rem}
.draw{display:flex;flex-direction:column;gap:10px;background:var(--orange-soft);border-radius:20px;padding:14px}
.draw output{font-family:var(--display);font-weight:700;font-size:1.08rem;min-height:2.6em;display:block}
.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.steps li{display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:start}
.steps .num{background:var(--mint-soft)}
.steps b{font-family:var(--display)}
.mots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:620px){.mots{grid-template-columns:1fr}}
.mot{border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:6px}
.mot .hand{font-size:1.35rem}
.mot.m1{background:var(--mint-soft)} .mot.m2{background:var(--orange-soft)} .mot.m3{background:var(--peach-soft)}
.force{font-size:.88rem;color:var(--muted)}
.filtre{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.filtre label{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.filtre input{margin-top:5px;width:18px;height:18px;accent-color:var(--sauge);flex:none}
.planb{background:var(--sauge-soft)}
.demain{background:var(--aura)}
.permission{text-align:center}
.labs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width:520px){.labs{grid-template-columns:repeat(2,minmax(0,1fr))}}
.lab{background:var(--orange-soft);border-radius:16px;padding:10px 12px;display:flex;flex-direction:column}
.lab small{color:var(--muted);font-weight:600;font-size:.8rem}
.lab b{font-family:var(--display);font-size:1.05rem}

/* Inscription : une carte claire posée sur le ciel de l'aube */
.stage .sheet{animation:none;text-align:left;color:var(--ink);width:100%}
.stage .sheet h2{font-size:1.25rem}
.etapes{display:flex;gap:6px;justify-content:center}
.etapes span{width:28px;height:6px;border-radius:999px;background:rgba(255,250,243,.35)}
.etapes span.on{background:var(--peach)}
.champs{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;min-width:0}
.champs legend{font-weight:700;font-family:var(--display);padding:0;margin-bottom:6px}
.cases{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.cases label{display:flex;flex-direction:column;gap:4px;font-size:.82rem;font-weight:600;color:var(--muted)}
.cases .petit input{width:5.2em;text-align:center;font-size:1.1rem}
.cases .moyen{flex:1;min-width:150px}
.deux{font-family:var(--display);font-weight:700;padding-bottom:12px}
.ville-boite{position:relative}
.ville-boite input{width:100%;box-sizing:border-box}
.ville-boite .sugg{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:20;max-height:232px;overflow-y:auto;overscroll-behavior:contain}
.sugg{list-style:none;margin:0;padding:6px;background:var(--surface);border-radius:14px;box-shadow:var(--clay-sm);display:flex;flex-direction:column;gap:2px}
.sugg button{all:unset;cursor:pointer;display:block;padding:9px 10px;border-radius:10px;font-size:.95rem}
.sugg button:hover,.sugg button:focus-visible{background:var(--orange-soft)}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.92rem}
.consent input{margin-top:4px;width:18px;height:18px;accent-color:var(--sauge);flex:none}
.err{color:#b4553c;font-weight:700}
.linkish{all:unset;cursor:pointer;text-decoration:underline;color:inherit}
.install ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}
.maya-ph{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;background:var(--mint);color:#2f4744;font-family:var(--script);font-size:2.2rem;box-shadow:var(--clay-sm);align-self:end}
.stage .maya-ph{width:clamp(110px,28vw,150px);height:clamp(110px,28vw,150px);font-size:3.2rem}

/* Bilan et récap */
.chiffres{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:480px){.chiffres{grid-template-columns:1fr}}
.chiffre{display:flex;flex-direction:column;gap:6px;background:var(--paper);border-radius:18px;padding:12px}
.chiffre .capt{font-size:.78rem;color:var(--muted);border:1.5px dashed var(--line);border-radius:10px;padding:6px 8px}
.chiffre .avant{font-size:.8rem;color:var(--muted)}
.paths{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media (max-width:620px){.paths{grid-template-columns:1fr}}
.path{border-radius:var(--r);padding:20px;box-shadow:var(--clay);display:flex;flex-direction:column;gap:12px;min-width:0}
.path.imm{background:var(--orange-soft)} .path.solo{background:var(--mint-soft)}
.credit-imm{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.credit-imm b{font-family:var(--display);font-size:2rem;line-height:1}
.dates{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:.95rem}
.dates li{display:flex;justify-content:space-between;gap:10px;border-bottom:1px dashed var(--line);padding-bottom:6px}
.dates span:last-child{font-weight:700;text-align:right}
.demo{background:var(--surface-2);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:10px}
.danger{background:#b4553c;color:#fffaf3}

/* Demande d'Andy (2026-11-03) : des pastilles rondes partout, pareilles qu'on tape ou qu'on choisisse dans une liste. */
input:not([type=checkbox]):not([type=radio]),select{font:inherit;font-family:var(--body);font-weight:400;color:var(--ink);background:var(--paper);border:0;border-radius:999px;
  padding:11px 18px;min-height:46px;width:100%;box-shadow:inset 0 2px 5px rgba(47,71,68,.12)}
select{-webkit-appearance:none;appearance:none;padding-right:42px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%236a8c86' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center}
input:focus-visible,select:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
textarea{border-radius:22px}
.cases .petit input{width:5.6em;padding-inline:10px}
/* Les avatars ont l'air vivants sans se balancer (demande d'Andy, 2026-11-03) : une respiration douce
   et un léger flottement vertical, très lents et décalés entre Andy et Maya, plus une petite étoile qui scintille. */
.avatar img,.avatar .maya-ph,.mini-duo img{animation:vivant 5.5s ease-in-out infinite;transform-origin:50% 100%}
.avatar:nth-child(2) img,.avatar:nth-child(2) .maya-ph,.mini-duo img+img{animation-delay:-2.7s}
@keyframes vivant{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.02)}}
.avatar{position:relative}
.avatar::after{content:"\2726";position:absolute;top:8%;right:4%;color:var(--peach);font-size:1.1rem;opacity:0;animation:scintille 4.8s ease-in-out infinite}
.avatar:nth-child(2)::after{left:4%;right:auto;animation-delay:-2.4s}
@keyframes scintille{0%,70%,100%{opacity:0;transform:scale(.6)}80%{opacity:1;transform:scale(1.1)}90%{opacity:.6;transform:scale(.9)}}
@media (prefers-reduced-motion: reduce){.avatar img,.avatar .maya-ph,.mini-duo img,.avatar::after{animation:none}}
.sheet.liste-ouverte{padding-bottom:260px}
.mdp summary{cursor:pointer;color:var(--muted);font-size:.9rem;text-align:center;list-style:none}
.mdp[open]{display:flex;flex-direction:column;gap:10px}
#code{font-size:1.5rem;letter-spacing:.4em;text-align:center;font-variant-numeric:tabular-nums}

/* ---------- Format allégé de la semaine 1 (2026-11-13) : accordéons, audio, Jour 0 ---------- */
.accordeons{display:flex;flex-direction:column;gap:10px}
.acc{background:var(--surface);border-radius:20px;box-shadow:var(--clay-sm)}
.acc>summary{cursor:pointer;list-style:none;padding:14px 18px;font:700 1rem var(--display);display:flex;justify-content:space-between;align-items:center;gap:10px}
.acc>summary::-webkit-details-marker{display:none}
.acc>summary::after{content:"+";font-size:1.3rem;color:var(--orange);line-height:1}
.acc[open]>summary::after{content:"–"}
.acc>summary:focus-visible{outline:2px solid var(--orange);outline-offset:2px;border-radius:20px}
.acc-corps{padding:0 18px 16px;display:flex;flex-direction:column;gap:10px;min-width:0}
.acc-corps .hand{font-size:1.3rem}
.audio-jour{display:flex;flex-direction:column;gap:6px;background:var(--mint-soft);border-radius:18px;padding:12px 14px}
.audio-jour b{font-family:var(--display)}
.audio-jour audio{width:100%;max-width:100%}
.pilier{margin:0}
.petit{font-size:.88rem}
label.f.petit-f select,label.f.petit-f input{font-weight:400}
.centre{text-align:center}
.jour0{background:var(--aura)}
.jour0.fait{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 18px}
.jour0.fait p{margin:0}
.prep h1,.prep h2{margin:0;text-wrap:balance}
.prep .etapes{margin-bottom:4px}
.pilier-champ,.vigie-ligne{display:grid;grid-template-columns:1fr 1fr;gap:10px;border:0;padding:0;margin:0}
.pilier-champ legend{font:700 .95rem var(--display);margin-bottom:6px}
@media (max-width:560px){.pilier-champ,.vigie-ligne{grid-template-columns:1fr}}
.prep .etapes{justify-content:flex-start}
.prep .etapes span{background:var(--line)}
.prep .etapes span.on{background:var(--orange)}

/* Corrections visuelles (2026-11-13, captures d'Andy) :
   1) même espace entre toutes les tuiles, sur tous les écrans; 2) le champ de l'heure ne dépasse plus de sa carte (iPhone). */
#app{display:flex;flex-direction:column;gap:16px}
input[type=time],input[type=date]{-webkit-appearance:none;appearance:none;display:block;box-sizing:border-box;min-width:0;max-width:100%;width:100%;text-align:left}
input[type=time]::-webkit-date-and-time-value,input[type=date]::-webkit-date-and-time-value{text-align:left;min-width:0}

/* Vidéo de Maya : bouton « regarder » dans la petite fenêtre + lien YouTube (2026-11-13) */
.video-btn{border:0;padding:0;width:100%;cursor:pointer;font:inherit}
.video-btn span{position:absolute;left:12px;bottom:10px;font-size:.8rem;text-align:left;right:12px}
.video-btn:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.lien-yt{align-self:flex-start;font-size:.88rem;font-weight:700;font-family:var(--display);color:#4f7d74;text-decoration:underline;text-underline-offset:3px}
.attente{background:var(--aura);border:2px dashed var(--orange, #f4a24a)}
