/* Générateur de fréquence */
.o-frequence [hidden] { display: none !important; }
.o-frequence-alerte {
  margin: 0 0 14px; padding: 10px 14px; border-radius: var(--rayon-petit);
  background: var(--erreur-fond); color: var(--erreur-texte); font-size: .92rem; line-height: 1.45;
}
.o-frequence-alerte strong { display: block; }
.o-frequence-modes { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.o-frequence-modes .btn { border-radius: 999px; min-width: 110px; }
.atelier .o-frequence-modes .btn[aria-pressed="true"],
.atelier .o-frequence .prereglages .btn[aria-pressed="true"] { background: var(--marque); border-color: var(--marque); color: var(--sur-marque); }
.o-frequence-valeur { margin: 0; display: flex; align-items: baseline; justify-content: center; gap: 8px; color: var(--texte); }
.o-frequence-valeur [data-v-frequence] { font: 800 clamp(2.4rem, 11vw, 4.8rem)/1.05 var(--police); font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.o-frequence-unite { font-size: 1.3rem; font-weight: 700; color: var(--texte-2); }
.o-frequence-note { margin: 0; min-height: 1.4em; color: var(--texte-2); font-variant-numeric: tabular-nums; }
.o-frequence-reste { margin: 0; min-height: 1.2em; font-size: .9rem; color: var(--texte-2); font-variant-numeric: tabular-nums; }
.o-frequence-reste:empty { display: none; }
.o-frequence .tirage-bouton { min-width: 180px; }
.o-frequence[data-etat-lecture="oui"] [data-lecture] { background: var(--erreur-texte); border-color: var(--erreur-texte); color: var(--surface); }
.o-frequence .tirage-message { display: block; }
.o-frequence-panneau { border-top: 1px solid var(--bord); padding-top: 14px; }
.o-frequence-reglage { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.o-frequence-reglage input[type="range"] { flex: 1; min-width: 0; accent-color: var(--marque); min-height: 32px; }
.o-frequence-reglage .btn { min-width: 52px; padding-inline: 8px; font-variant-numeric: tabular-nums; }
.o-frequence .reglages select { min-height: 42px; }
.o-frequence .reglages output { color: var(--texte); font-weight: 600; font-variant-numeric: tabular-nums; }
.o-frequence-groupe { border-top: 1px solid var(--bord); padding-top: 14px; margin-top: 4px; }
.o-frequence-groupe h3 { margin: 0 0 4px; font-size: 1rem; }
.o-frequence-aide { margin: 6px 0 10px; font-size: .88rem; color: var(--texte-2); }
.o-frequence-osc { display: grid; grid-template-columns: 1fr 1fr auto; gap: 10px; align-items: end; margin-bottom: 10px; }
.o-frequence-osc label { display: flex; flex-direction: column; gap: 4px; font-size: .88rem; color: var(--texte-2); }
.o-frequence-osc select { min-height: 42px; }
.o-frequence-ecrans { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--bord); }
.o-frequence-ecrans figure { margin: 0; min-width: 0; }
.o-frequence-ecrans canvas { display: block; width: 100%; height: 150px; background: var(--surface-2); border: 1px solid var(--bord); border-radius: var(--rayon-petit); }
.o-frequence-ecrans figcaption { margin-top: 4px; font-size: .85rem; color: var(--texte-2); font-variant-numeric: tabular-nums; }
.o-frequence-honnete { margin: 14px 0 0; font-size: .85rem; color: var(--texte-2); }
@media (max-width: 640px) {
  .o-frequence-ecrans { grid-template-columns: 1fr; }
  .o-frequence-reglage { flex-wrap: wrap; justify-content: center; }
  .o-frequence-reglage input[type="range"] { order: -1; flex-basis: 100%; }
  .o-frequence-reglage .btn { flex: 1 1 0; }
  .o-frequence-osc { grid-template-columns: 1fr 1fr; }
  .o-frequence-osc .btn { grid-column: 1 / -1; }
  .o-frequence-modes .btn { min-width: 0; flex: 1 1 0; padding-inline: 10px; }
}
.o-frequence[data-mode-actif="bruit"] [data-v-frequence] { font-size: clamp(1.9rem, 8vw, 3.2rem); }
