/* AudioScribe — univers « Bande rythmo » (DESIGN.md, docs/design-system.md : fait foi).
   Couleurs : uniquement dans les trois blocs de jetons ci-dessous. */
@font-face{font-family:"Atkinson Hyperlegible Next";src:url(/static/fonts/atkinson-hyperlegible-next-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible Next";src:url(/static/fonts/atkinson-hyperlegible-next-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible Mono";src:url(/static/fonts/atkinson-hyperlegible-mono-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}

:root{--fond:#f6f4ef;--surface:#ffffff;--champ:#ffffff;--bord-champ:#86828f;--ligne-active:#efe9dc;--filet:#dcd8cf;--onde-a-venir:#8e8a97;--texte:#1b1b20;--doux:#5c5a64;--synchro:#8a5a00;--sur-synchro:#ffffff;--danger:#b3261e;--v1:#1f6d9c;--v2:#a3337f;--v3:#236638;--v4:#6a4bb8;--v5:#0a665d;--voix-inconnue:#5c5a64;color-scheme:light}
:root[data-theme="sombre"]{--fond:#16161a;--surface:#1e1e24;--champ:#26262e;--bord-champ:#767684;--ligne-active:#2a2a33;--filet:#34343d;--onde-a-venir:#6e6e7c;--texte:#f2efe8;--doux:#a8a6b0;--synchro:#e8b33c;--sur-synchro:#16161a;--danger:#ff8a80;--v1:#5fb2e0;--v2:#e57ac6;--v3:#79c995;--v4:#b59cf0;--v5:#4ccfc2;--voix-inconnue:#a8a6b0;color-scheme:dark}
@media (prefers-color-scheme:dark){:root[data-theme="auto"]{--fond:#16161a;--surface:#1e1e24;--champ:#26262e;--bord-champ:#767684;--ligne-active:#2a2a33;--filet:#34343d;--onde-a-venir:#6e6e7c;--texte:#f2efe8;--doux:#a8a6b0;--synchro:#e8b33c;--sur-synchro:#16161a;--danger:#ff8a80;--v1:#5fb2e0;--v2:#e57ac6;--v3:#79c995;--v4:#b59cf0;--v5:#4ccfc2;--voix-inconnue:#a8a6b0;color-scheme:dark}}

:root{--e1:4px;--e2:8px;--e3:12px;--e4:16px;--e6:24px;--e8:32px;--r:6px;
 --police:"Atkinson Hyperlegible Next",system-ui,sans-serif;--mono:"Atkinson Hyperlegible Mono",ui-monospace,monospace;
 /* échelle typographique du document (taille / interligne / graisse) */
 --t-titre:700 20px/1.3 var(--police);--t-texte:400 17px/1.55 var(--police);--t-origine:400 15px/1.5 var(--police);
 --t-piste:400 15px/20px var(--police);--t-outil:400 13px/1.4 var(--police);--t-heure:400 13px/1.4 var(--mono)}

/* base */
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--fond);color:var(--texte);font:400 15px/1.5 var(--police)}
button,select,textarea,input{font:inherit;color:inherit}
input[type=checkbox]{accent-color:var(--texte)}
:focus-visible{outline:2px solid var(--synchro);outline-offset:2px}
.mono{font:var(--t-heure);font-variant-numeric:tabular-nums}
small{color:var(--doux);font:var(--t-outil)}
.err{color:var(--danger)}

/* boutons et champs (contrôles natifs habillés par les jetons) */
.lien{background:none;border:0;padding:var(--e1) 0;cursor:pointer;font:var(--t-outil);color:var(--texte);text-decoration:none;text-underline-offset:3px;text-align:left}
.lien:hover{text-decoration:underline}
.secondaire,select{background:transparent;border:1px solid var(--bord-champ);border-radius:var(--r);padding:var(--e1) var(--e2);font:var(--t-outil);color:var(--texte)}
select{background:var(--champ);max-width:100%}
.secondaire{cursor:pointer}
.secondaire:hover{background:var(--ligne-active)}
.principal{background:var(--synchro);color:var(--sur-synchro);border:0;border-radius:var(--r);padding:var(--e2) var(--e4);font-weight:700;cursor:pointer}
.principal:hover{filter:brightness(1.08)}
button:active{transform:translateY(1px)}
button:disabled{opacity:.45;cursor:not-allowed}
button:disabled:hover{filter:none;background:transparent}
.principal:disabled:hover{background:var(--synchro)}
button:disabled:active{transform:none}
input[type=url],input[type=text],input:not([type]),textarea{background:var(--champ);color:var(--texte);border:1px solid var(--bord-champ);border-radius:var(--r);padding:var(--e1) var(--e2)}
.champ{display:inline-flex;align-items:center;gap:var(--e2);font:var(--t-outil);color:var(--doux)}

/* en-tête */
.entete-page{display:flex;align-items:center;gap:var(--e2) var(--e4);padding:var(--e3) var(--e6);border-bottom:1px solid var(--filet);flex-wrap:wrap}
.entete-page .produit{font-size:15px;font-weight:700}
.entete-page h1{margin:0;font:var(--t-titre);overflow-wrap:anywhere}
.entete-page .travail,.entete-page .modifs{color:var(--doux);font:var(--t-outil)}
.entete-page .esp{flex:1}
.entete-page form{margin:0}
#d-exports{display:inline-flex;gap:var(--e4)}

/* rail des travaux */
.app{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:calc(100vh - 58px)}
.rail{padding:var(--e4) var(--e3);border-right:1px solid var(--filet);min-width:0}
.rail h2{margin:var(--e4) 0 var(--e2)}
#rail-bascule{background:none;border:0;padding:0 var(--e2);cursor:pointer;font:var(--t-outil);font-weight:700;color:var(--doux)}
#rail-bascule::before{content:"▾ "}
#rail-bascule[aria-expanded=false]::before{content:"▸ "}
.rail ul{list-style:none;margin:0;padding:0}
.rail li a{display:block;padding:var(--e2) var(--e3);border-radius:var(--r);border-left:3px solid transparent;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--texte);text-decoration:none}
.rail li a:hover{background:var(--ligne-active)}
.rail li small{display:block;color:var(--doux);font:var(--t-outil);overflow:hidden;text-overflow:ellipsis}
.rail li a[aria-current]{background:var(--ligne-active);border-left-color:var(--texte);border-radius:0 var(--r) var(--r) 0}
.rail details{font:var(--t-outil)}
.rail li.groupe{padding:var(--e2) var(--e3) var(--e1);font:var(--t-outil);font-weight:700;color:var(--doux)}
#dossiers-contenu{display:flex;flex-direction:column;gap:var(--e2);padding:var(--e1) 0}
#dossiers-contenu details{padding-left:var(--e2)}
#dossiers-contenu li{display:flex;gap:var(--e2);align-items:baseline;flex-wrap:wrap;padding:var(--e1) 0;color:var(--texte)}
#dossiers-contenu output{font:var(--t-outil);color:var(--doux)}
#dossiers-contenu output.err{color:var(--danger)}
.rail summary{cursor:pointer;padding:var(--e1) var(--e2);font-weight:700}
.rail form{display:flex;flex-direction:column;gap:var(--e2);padding:var(--e2)}
.rail form label{display:flex;flex-direction:column;gap:var(--e1)}
.rail form textarea,.rail form input{width:100%}
.rail form button{align-self:flex-start}

/* zone de travail */
main{padding:var(--e4) var(--e8) var(--e8);max-width:1180px;min-width:0}
.vide{color:var(--doux);font:var(--t-texte);margin:var(--e8) 0}
/* barre de commandes épinglée (retour de Jonathan) : lecteur, vitesse, lecture, vue, zoom, origine */
#commandes{position:sticky;top:0;z-index:3;background:var(--fond);border-bottom:1px solid var(--filet);padding:var(--e1) 0 var(--e2);margin-bottom:var(--e3)}
.commandes-1{display:flex;align-items:center;flex-wrap:wrap;gap:var(--e2) var(--e4)}
#lecteur{display:block;flex:1 1 220px;min-width:0;height:40px}
#mode-lecture{max-width:260px}
#commandes .outils{margin:var(--e1) 0 0}
.outils{display:flex;gap:var(--e3) var(--e6);align-items:center;flex-wrap:wrap;margin-bottom:var(--e2)}
[role=tablist]{display:inline-flex;gap:var(--e4)}
[role=tab]{background:none;border:0;border-bottom:2px solid transparent;padding:var(--e1) 0;cursor:pointer;color:var(--doux)}
[role=tab][aria-selected=true]{color:var(--texte);font-weight:700;border-bottom-color:var(--synchro)}
.etat{font:var(--t-outil);min-height:20px;margin:0 0 var(--e2)}
.aide{font:var(--t-outil);color:var(--doux);margin:var(--e2) 0 var(--e4);max-width:90ch}
#d-message{margin:0 0 var(--e4)}
#d-message.err{color:var(--danger)}
#d-voix{display:flex;flex-wrap:wrap;gap:var(--e2) var(--e4);align-items:center;font:var(--t-outil);color:var(--doux)}
#d-voix label{display:inline-flex;align-items:center;gap:var(--e2)}
#d-voix input{width:12em}
.actions-travail{font:var(--t-outil);margin-top:var(--e6)}

/* voix : une teinte par voix ; au-delà de 5 voix, la teinte reprend et la bande change de motif */
.voix-1{--couleur-voix:var(--v1)}.voix-2{--couleur-voix:var(--v2)}.voix-3{--couleur-voix:var(--v3)}
.voix-4{--couleur-voix:var(--v4)}.voix-5{--couleur-voix:var(--v5)}.voix-inconnue{--couleur-voix:var(--voix-inconnue)}
.pastille{display:inline-block;flex:none;width:10px;height:10px;border-radius:50%;background:var(--couleur-voix)}

/* ligne de correction : marge · textes · actions */
.zone{background:var(--surface);border-radius:var(--r)}
.zone:empty{display:none}
.seg{display:grid;grid-template-columns:140px minmax(0,72ch) 150px;gap:var(--e4);padding:var(--e3) var(--e4);border-bottom:1px solid var(--filet)}
.seg:last-child{border-bottom:0}
.seg.actif{background:var(--ligne-active)}
.marge{position:relative;display:flex;flex-direction:column;align-items:flex-end;gap:var(--e1);text-align:right;padding-right:var(--e3);font:var(--t-outil)}
.marge::after{content:"";position:absolute;top:0;bottom:0;right:0;border-right:3px solid var(--couleur-voix)}
.motif-tirets .marge::after{border-right-style:dashed}
.motif-points .marge::after{border-right-style:dotted}
.voix-choix{order:-1;display:inline-flex;align-items:center;gap:var(--e1);max-width:100%}
.voix-choix select{font-weight:700;color:var(--couleur-voix);min-width:0;padding:0 var(--e1)}
.voix-choix select option{color:var(--texte);font-weight:400}
.lire{background:none;border:0;padding:0;cursor:pointer;color:var(--doux);text-align:inherit}
.lire>span{white-space:nowrap}
.lire .icone{display:inline-block;width:1.2em;margin-right:2px}
.lire .icone.pause::before{content:"";display:inline-block;width:3px;height:.75em;border-left:3px solid currentColor;border-right:3px solid currentColor;vertical-align:-.05em}
.lire:hover{color:var(--texte)}
.marge .morceau-n{color:var(--doux)}
.seg .corrige{color:var(--texte);font-weight:700} /* « ✎ corrigé » visible d'un coup d'œil */
/* morceaux d'une même ligne : accolade au bord gauche (trait continu, amorces en haut et en bas) */
.seg.morceau{position:relative}
.seg.morceau::before{content:"";position:absolute;left:4px;top:0;bottom:0;width:6px;border-left:2px solid var(--doux);pointer-events:none}
.seg.morceau-premier::before{top:var(--e3);border-top:2px solid var(--doux)}
.seg.morceau-dernier::before{bottom:var(--e3);border-bottom:2px solid var(--doux)}
.textes{min-width:0}
.origine{margin:0 0 var(--e2);font:var(--t-origine);color:var(--doux);white-space:pre-wrap;overflow-wrap:anywhere}
.origine .entendu{text-decoration:underline 2px var(--synchro);text-underline-offset:3px}
.seg textarea{display:block;width:100%;resize:vertical;field-sizing:content;min-height:calc(2lh + 18px);font:var(--t-texte);padding:var(--e2) var(--e3);caret-color:var(--texte)}
.seg .actions{display:flex;flex-direction:column;align-items:flex-start;gap:var(--e3)}
.seg .actions .groupe{display:flex;flex-direction:column;align-items:flex-start;gap:var(--e1)}
.seg.chrono .actions .groupe{flex-direction:row;gap:var(--e3)}
.sans-originaux .seg .origine,.sans-originaux .seg .retablir{display:none}

/* vue chronologique : piste à barre de synchro fixe (geste signature) */
.seg.chrono{display:block;padding:var(--e3) var(--e4) var(--e4)}
.seg.chrono .entete{display:flex;align-items:center;flex-wrap:wrap;gap:var(--e2) var(--e3);font:var(--t-outil);color:var(--doux);margin-bottom:var(--e2)}
.seg.chrono .entete .esp{flex:1}
.seg.chrono .actions{flex-direction:row;flex-wrap:wrap;gap:var(--e4)}
.piste{position:relative;height:104px;--bande-rappel:80px;overflow:hidden;background:var(--surface);cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.piste.glisse{cursor:grabbing}
.piste canvas{position:absolute;left:0;top:0;width:100%;height:56px}
.contenu{position:absolute;top:0;left:0;height:100%;pointer-events:none} /* clics : mots et onde dessous */
.mots{position:absolute;top:60px;height:20px;left:0}
.mot{position:absolute;top:0;white-space:nowrap;font:var(--t-piste);color:var(--couleur-voix);cursor:pointer;pointer-events:auto}
.mot{border-radius:3px;padding:0 2px;margin-left:-2px}
.mot.entendu{color:var(--synchro);background:color-mix(in srgb,var(--synchro) 13%,transparent);text-decoration:underline 2px var(--synchro);text-underline-offset:3px}
.regle{position:absolute;top:calc(var(--bande-rappel) + 4px);height:20px;left:0}
.regle i{position:absolute;top:0;width:1px;height:4px;background:var(--onde-a-venir)}
.regle span{position:absolute;top:4px;font:var(--t-heure);line-height:16px;color:var(--doux);transform:translateX(-50%);white-space:nowrap}
.barre-synchro{position:absolute;top:0;bottom:0;width:2px;background:var(--onde-a-venir);box-shadow:0 0 0 1px var(--fond);pointer-events:none}
.barre-synchro.lecture{background:var(--synchro)}
.piste-attente,.piste-sans-mots{position:absolute;left:var(--e2);font:var(--t-outil);color:var(--doux);pointer-events:none}
.piste-attente{top:18px}
.piste-sans-mots{top:60px;line-height:20px}
.seg.chrono .origine{margin:var(--e2) 0 0}
.seg.chrono textarea{margin-top:var(--e3)}

/* administration */
.admin{max-width:960px;margin:0 auto;padding:var(--e4)}
.admin h2{font:var(--t-titre);margin:var(--e4) 0 var(--e2)}
.admin .confidentialite{color:var(--doux)}
.admin .ligne-form{display:flex;flex-wrap:wrap;gap:var(--e3);align-items:flex-end}
.admin label{display:flex;flex-direction:column;gap:var(--e1);font:var(--t-outil);color:var(--doux)}
.admin input,.admin select{font:var(--t-texte)}
.admin #lien{flex:1;min-width:16em}
.admin .tableau{width:100%;border-collapse:collapse;font:var(--t-outil)}
.admin .tableau th{text-align:left;color:var(--doux);font-weight:700;padding:var(--e1) var(--e2);border-bottom:1px solid var(--filet)}
.admin .tableau td{padding:var(--e2);border-bottom:1px solid var(--filet);vertical-align:baseline}
.admin .liste-admin{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--e2)}
.admin .liste-admin li{display:flex;flex-wrap:wrap;gap:var(--e3);align-items:baseline}
.admin .vide{color:var(--doux)}

/* page de connexion */
.connexion form{max-width:320px;margin:15vh auto;padding:var(--e4);display:flex;flex-direction:column;gap:var(--e3)}
.connexion h1{font:var(--t-titre);margin:0}
.connexion label{display:flex;flex-direction:column;gap:var(--e1);font:var(--t-outil);color:var(--doux)}
.connexion input{font:var(--t-texte)}
.connexion button{align-self:flex-start}

/* téléphone : rail au-dessus, ligne sur une colonne */
@media (max-width:760px){
 .entete-page{padding:var(--e3) var(--e4)}
 .app{grid-template-columns:1fr}
 .rail{border-right:0;border-bottom:1px solid var(--filet)}
 main{padding:var(--e4)}
 .seg{grid-template-columns:1fr;gap:var(--e2)}
 .marge{align-items:flex-start;text-align:left;padding:0 0 0 var(--e3)}
 .marge::after{right:auto;left:0;border-right:0;border-left:3px solid var(--couleur-voix)}
 .motif-tirets .marge::after{border-left-style:dashed}
 .motif-points .marge::after{border-left-style:dotted}
 .seg .actions{flex-direction:row;flex-wrap:wrap;gap:var(--e2) var(--e6)}
 .seg .actions .groupe{flex-direction:row;gap:var(--e4)}
 /* téléphone : vue chronologique en lecture et écoute seulement (corriger et couper : vue liste) */
 .seg.chrono textarea,.seg.chrono .actions{display:none}
 /* barre de commandes du téléphone : une rangée d'outils (vues, origine, zoom) */
 #commandes .outils{gap:var(--e1) var(--e3)}
 #commandes [role=tablist]{gap:var(--e3)}
 #commandes [role=tab]{font:var(--t-outil)}
 #l-zoom .zoom-libelle{display:none}
 #l-zoom #zoom-valeur{display:none} /* téléphone : la valeur n'a pas la place (barre ≤ 130 px) ; − et + restent */
}
/* barre de commandes compacte (fenêtre étroite, tablette, téléphone) : lecteur sur sa ligne, hauteur ≤ ~115 px */
@media (max-width:1000px){
 #commandes{padding:var(--e1) 0}
 #commandes .outils{gap:var(--e1) var(--e4);margin:0}
 #lecteur{flex-basis:100%;height:36px}
 .commandes-1{flex-wrap:wrap;gap:var(--e1) var(--e3)}
 #l-zoom .zoom-libelle{display:none} /* la valeur « 72 px/s » et le nom accessible du réglage restent */
 .commandes-1 .champ:last-child{flex:1 1 0;min-width:0}
 .commandes-1 .champ:last-child select{flex:1 1 0;min-width:0;max-width:none}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

#zoom-valeur{display:inline-block;min-width:6ch;text-align:center;font:var(--t-heure);font-variant-numeric:tabular-nums}
