/* Festival TV · Studio mobile — charte verrouillée */
:root{--marine:#0b1638;--bleu:#253c88;--jaune:#ffd800;--rouge:#db212e;--vert:#009541;--bleu2:#0288cf;--blanc:#fff}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,sans-serif;background:radial-gradient(circle at 75% 0%,#1a4fa8,#152a66 45%,#0b1638);color:#fff;min-height:100vh}
.barre{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:4px solid var(--jaune);background:var(--marine)}
.logo img{height:36px;background:#fff;border-radius:8px;padding:4px 8px}.etiquette{background:var(--jaune);color:var(--bleu);font-weight:900;padding:6px 12px;border-radius:6px;letter-spacing:.05em}
.onglets{display:flex;overflow-x:auto;gap:4px;padding:8px 16px}.onglets button{flex:none;background:transparent;color:#fff;border:2px solid rgba(255,255,255,.3);border-radius:20px;padding:8px 14px;font-weight:700}
.onglets button.actif{background:var(--jaune);color:var(--bleu);border-color:var(--jaune)}
main{max-width:720px;margin:0 auto;padding:8px 16px 48px}.panneau{display:none}.panneau.actif{display:block}
h1{font-weight:900;text-transform:uppercase;font-size:22px}h2{font-size:18px}.aide{opacity:.85;line-height:1.45}
label{display:block;margin:12px 0;font-weight:600}input,select,textarea{width:100%;margin-top:6px;padding:12px;border-radius:8px;border:0;font:inherit;color:#0b1638}
.deux{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:480px){.deux{grid-template-columns:1fr}}
.engagements{border:2px solid var(--jaune);border-radius:10px;padding:8px 12px}.case{display:flex;gap:10px;font-weight:500}.case input{width:auto;margin:0}
.bouton{display:block;width:100%;margin:16px 0;padding:14px;border:0;border-radius:10px;background:var(--jaune);color:var(--bleu);font-weight:900;font-size:17px;text-transform:uppercase}.bouton.rouge{background:var(--rouge);color:#fff}
.jauge{height:12px;background:rgba(255,255,255,.2);border-radius:6px;overflow:hidden}.jauge span{display:block;height:100%;width:0;background:var(--vert);transition:width .3s}
.liste{list-style:none;padding:0}.liste li{background:rgba(255,255,255,.08);border-left:6px solid var(--jaune);border-radius:8px;padding:12px;margin:8px 0}
.statut{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:12px;background:var(--bleu2);font-size:13px}.s-accepte_antenne,.s-accepte_boucle,.s-accepte_fiche{background:var(--vert)}.s-a_retravailler{background:#f59d15}.s-refuse{background:var(--rouge)}
.carte-kit{background:rgba(255,255,255,.08);border-radius:10px;padding:12px 16px;margin:12px 0}.carte-kit h3{color:var(--jaune);margin-top:4px}
video#retour{width:100%;border-radius:10px;margin-top:12px;background:#000}
.grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.vignette{background:#000;border-radius:8px;overflow:hidden;position:relative}.vignette video{width:100%;display:block}
.vignette .nom{position:absolute;left:0;bottom:0;right:0;background:rgba(11,22,56,.85);padding:6px 8px;font-size:13px}.vignette.antenne{outline:4px solid var(--rouge)}
.appel-final{margin-top:10px;border:2px dashed var(--jaune);border-radius:10px;padding:8px 12px}
.bloc-voie1,.bloc-voie2{margin-top:8px}
