/* Une seule police (Source Sans 3), des écrans qui tiennent dans la hauteur du téléphone : les zones de texte prennent la place restante. */
:root{--papier:#f7f3ea;--encre:#151515;--rouge:#8a1c1c;--filet:#b9b09c;--gris:#4a443b;--police:'Source Sans 3','Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}
html{font-size:100%;height:100%}
body{margin:0;min-height:100%;min-height:100dvh;display:flex;flex-direction:column;background:var(--papier);color:var(--encre);font-family:var(--police);font-size:1.1rem;line-height:1.4}
button,input,textarea,select,summary{font-family:inherit}
.haut{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.5rem 1rem;border-bottom:3px double var(--filet);flex:none}
.journal{font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--rouge);font-size:.95rem}.lieu{color:var(--gris);font-size:.95rem}
main{flex:1;display:flex;flex-direction:column;min-height:0;width:100%;max-width:34rem;margin:0 auto;padding:.6rem 1rem 0}
.ecran{flex:1;display:flex;flex-direction:column;gap:.5rem;min-height:0}
h1{font-size:clamp(1.5rem,6.2vw,2rem);line-height:1.1;margin:0;font-weight:700}
p{margin:0}
.logo{display:block;width:100%;height:auto;flex:none}
.titre-ligne{display:flex;align-items:center;gap:.8rem}.titre-ligne>div{flex:1;min-width:0}.titre-ligne p{margin-top:.25rem;font-size:1.05rem}
.dame{flex:none;height:clamp(5.5rem,13vh,8.5rem);width:auto}
@media (max-height:600px){.dame{display:none}}
.champs{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
label{display:block;font-size:1rem;font-weight:700;margin:0 0 .15rem}
input[type=text]{width:100%;min-height:3rem;font-size:1.2rem;padding:.3rem .7rem;border:2px solid var(--encre);border-radius:4px;background:#fff;color:var(--encre)}
input:focus-visible,button:focus-visible,summary:focus-visible,textarea:focus-visible{outline:4px solid #1f5fbf;outline-offset:2px}
.centre{display:flex;justify-content:center;flex:none}
.micro{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;width:clamp(7rem,23vh,11rem);height:clamp(7rem,23vh,11rem);border-radius:50%;border:0;background:var(--rouge);color:#fff;font-size:1.35rem;font-weight:700;cursor:pointer}
.micro svg{width:34%;height:34%}
.micro.en-cours{animation:pouls 1.3s infinite}
@keyframes pouls{0%{box-shadow:0 0 0 0 rgba(138,28,28,.5)}100%{box-shadow:0 0 0 1.6rem rgba(138,28,28,0)}}
@media (prefers-reduced-motion:reduce){.micro.en-cours{animation:none;outline:6px solid #e0a0a0}}
.gros{display:block;width:100%;min-height:3.2rem;font-size:1.25rem;font-weight:700;background:var(--rouge);color:#fff;border:0;border-radius:4px;cursor:pointer;padding:0 .6rem}
.gros.clair{background:#fff;color:var(--encre);border:2px solid var(--encre)}
.gros:disabled{opacity:.6}
.rangee-btn{display:grid;grid-template-columns:1fr 1.6fr;gap:.5rem;flex:none}
.chrono{text-align:center;font-size:clamp(1.8rem,8vw,2.4rem);font-weight:700;font-variant-numeric:tabular-nums;line-height:1}
.petit{text-align:center;color:var(--gris);font-size:1rem}.petit.gauche{text-align:left;margin:0}
.err{color:#9b1c1c;font-size:1.1rem;font-weight:700;min-height:0}
.etapes{display:flex;gap:.4rem;list-style:none;padding:0;margin:0;font-size:.95rem;flex:none}
.etapes li{flex:1;text-align:center;padding:.15rem .2rem;border-bottom:4px solid var(--filet);color:var(--gris)}
.etapes li.on{border-color:var(--rouge);color:var(--encre);font-weight:700}
.direct{flex:1;min-height:4.5rem;overflow:auto;border:2px solid var(--encre);background:#fff;border-radius:4px;padding:.6rem .8rem;font-size:1.25rem;line-height:1.5}
.direct .vide{color:var(--gris);font-style:italic;font-size:1.05rem}.direct .prov{color:#7a7468}
.seg{display:flex;flex:none}
.seg button{flex:1;min-height:3rem;font-size:1.2rem;font-weight:700;background:#fff;color:var(--encre);border:2px solid var(--encre);cursor:pointer}
.seg button:first-child{border-radius:4px 0 0 4px;border-right-width:1px}.seg button:last-child{border-radius:0 4px 4px 0;border-left-width:1px}
.seg button.on{background:var(--encre);color:#fff}
.seg button:disabled{color:#8a8478;border-color:#8a8478;cursor:default;background:#efe9da}
.statut-texte{font-size:1.05rem;color:var(--gris);min-height:1.5rem;flex:none}.statut-texte.ok{color:#2b6b2b;font-weight:700}
textarea.texte{flex:1;min-height:6.5rem;width:100%;font-size:1.25rem;line-height:1.5;padding:.6rem .8rem;border:2px solid var(--encre);border-radius:4px;background:#fff;color:var(--encre);resize:none;overflow:auto}
textarea.texte[readonly]{background:#fbf9f3}
details.ecoute{flex:none}details.ecoute summary{font-size:1.1rem;cursor:pointer;min-height:2.4rem;display:flex;align-items:center;color:var(--rouge);font-weight:700}
audio{width:100%}
.barre{height:.8rem;background:#ddd5c2;border-radius:.5rem;overflow:hidden}.barre i{display:block;height:100%;width:0;background:var(--rouge)}
.citation{border-left:5px solid var(--rouge);background:#fff;padding:.7rem 1rem;font-style:italic}
.aide{margin-top:auto;border-top:3px double var(--filet);padding-top:.3rem}
.aide>summary{font-size:1.15rem;font-weight:700;cursor:pointer;color:var(--rouge);min-height:2.6rem;display:flex;align-items:center}
.aide .intro{font-size:1.05rem;color:var(--gris);margin:.2rem 0 .5rem}
.aide details.sujet{border:2px solid var(--encre);background:#fff;border-radius:4px;margin:.4rem 0}
.aide details.sujet>summary{font-size:1.1rem;font-weight:700;padding:.5rem .8rem;cursor:pointer;min-height:2.6rem}
.aide .corps{padding:0 .8rem .7rem;font-size:1.05rem}.aide .corps p{margin:0 0 .4rem}.aide .corps ul{margin:.2rem 0 0;padding-left:1.2rem}.aide .corps li{margin:.25rem 0}
.bas{flex:none;max-width:34rem;margin:0 auto;padding:.3rem 1rem calc(.5rem + env(safe-area-inset-bottom,0px));color:var(--gris);font-size:.88rem;line-height:1.3;width:100%}
#aide{flex:none}
@media (max-height:640px){
  body{font-size:1rem}.logo{max-height:14vh;object-fit:contain}.micro{width:6.2rem;height:6.2rem;font-size:1.15rem}
  .bas{display:none}.etapes{display:none}
}
@media (max-height:720px){
  .logo{max-height:15vh;object-fit:contain}.dame{display:none}
  .micro{width:clamp(6rem,19vh,9rem);height:clamp(6rem,19vh,9rem)}
  main{padding-top:.4rem}.ecran{gap:.4rem}
}
