/*
 * RadioInternet Voice Track Ultra — styles autonomes du plugin.
 *
 * Tout est scopé sous « .rint-vtu » : le plugin ne dépend d’AUCUN
 * style du thème hôte et ne peut pas casser le sien. Identité
 * « Affiche » reprise en valeurs propres : fond noir de scène,
 * néon rouge ON AIR, bleu électrique/cyan, notes dorées.
 * Chargé uniquement sur les pages contenant le shortcode.
 */

.rint-vtu {
	--vtu-fond: #0a0a12;
	--vtu-carte: #12121e;
	--vtu-bordure: #2a2a3d;
	--vtu-texte: #f2f2f7;
	--vtu-muet: #a6a6b8;
	--vtu-rouge: #ff2d55;
	--vtu-cyan: #37c8f5;
	--vtu-or: #f5c542;
	color: var(--vtu-texte);
	font-size: 16px;
	line-height: 1.5;
}
.rint-vtu * { box-sizing: border-box; }
.rint-vtu .muted { color: var(--vtu-muet); font-size: 0.92em; }

/* ---------- Blocs (repris de l’identité des applications) ---------- */
.rint-vtu .pf-bloc {
	background: var(--vtu-carte);
	border: 1px solid var(--vtu-bordure);
	border-radius: 14px;
	padding: 1.2rem 1.2rem 1.4rem;
	margin: 0 0 1.4rem;
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
}
.rint-vtu .pf-bloc > h3 {
	margin: 0 0 0.5rem;
	font-size: 1.25rem;
	color: var(--vtu-texte);
}
.rint-vtu .pf-bloc h4 {
	margin: 1.2rem 0 0.5rem;
	font-size: 1.05rem;
	color: var(--vtu-cyan);
}
.rint-vtu .pf-bloc h5 {
	margin: 0 0 0.4rem;
	font-size: 0.98rem;
	color: var(--vtu-texte);
}
.rint-vtu .pf-perimetre { color: var(--vtu-muet); margin: 0 0 1rem; }
.rint-vtu .pf-rangee {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	align-items: center;
	margin: 0.6rem 0;
}
.rint-vtu .pf-msg { min-height: 1.4em; margin: 0.5rem 0; color: var(--vtu-or); }
.rint-vtu .pf-msg-erreur { color: var(--vtu-rouge); }
.rint-vtu .pf-label { display: block; font-weight: 700; margin: 0.8rem 0 0.35rem; }
.rint-vtu .pf-input {
	width: 100%;
	background: var(--vtu-fond);
	border: 1px solid var(--vtu-bordure);
	border-radius: 10px;
	color: var(--vtu-texte);
	padding: 0.65rem 0.8rem;
	font: inherit;
}
.rint-vtu .pf-liste { list-style: none; margin: 0.8rem 0 0; padding: 0; }
.rint-vtu .pf-fichier-cache { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.rint-vtu .pf-rec-temps {
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	color: var(--vtu-rouge);
	text-shadow: 0 0 8px rgba(255, 45, 85, 0.65);
}
.rint-vtu .pf-prise {
	border: 1px solid var(--vtu-bordure);
	border-radius: 10px;
	padding: 0.8rem;
	margin: 0 0 0.7rem;
	background: rgba(255, 255, 255, 0.02);
}
.rint-vtu .pf-prise audio { width: 100%; margin: 0.5rem 0; }
.rint-vtu .pf-prise-liens { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; }
.rint-vtu .pf-prise-liens a { color: var(--vtu-cyan); font-weight: 700; }
.rint-vtu .pf-analyse { margin-top: 0.8rem; }
.rint-vtu .pf-analyse-liste { margin: 0.4rem 0; padding-left: 1.2rem; }
.rint-vtu .pf-resume {
	border-left: 3px solid var(--vtu-or);
	margin: 0.6rem 0;
	padding: 0.4rem 0.9rem;
	color: var(--vtu-texte);
	background: rgba(245, 197, 66, 0.06);
}

/* ---------- Boutons (autonomes, esprit Affiche) ---------- */
.rint-vtu .btn {
	display: inline-block;
	border-radius: 999px;
	border: 1px solid var(--vtu-bordure);
	background: rgba(255, 255, 255, 0.04);
	color: var(--vtu-texte);
	padding: 0.55rem 1.15rem;
	font: inherit;
	font-weight: 700;
	font-size: 0.95rem;
	cursor: pointer;
	text-decoration: none;
}
.rint-vtu .btn:hover { border-color: var(--vtu-cyan); color: var(--vtu-cyan); }
.rint-vtu .btn:disabled { opacity: 0.45; cursor: not-allowed; }
.rint-vtu .btn-primary {
	background: var(--vtu-rouge);
	border-color: var(--vtu-rouge);
	color: #fff;
	box-shadow: 0 0 16px rgba(255, 45, 85, 0.45);
}
.rint-vtu .btn-primary:hover { color: #fff; border-color: #ff5c7d; }
.rint-vtu .pf-petit-bouton { padding: 0.35rem 0.8rem; font-size: 0.88rem; }
.rint-vtu select {
	background: var(--vtu-fond);
	color: var(--vtu-texte);
	border: 1px solid var(--vtu-bordure);
	border-radius: 8px;
	padding: 0.45rem 0.6rem;
	font: inherit;
	max-width: 100%;
}
.rint-vtu input[type="range"] { accent-color: var(--vtu-cyan); vertical-align: middle; }
.rint-vtu input[type="checkbox"] { accent-color: var(--vtu-rouge); width: 1.1em; height: 1.1em; vertical-align: -0.15em; }

/* ---------- Voice Track ---------- */
.rint-vtu .vt-nom { font-weight: 700; color: var(--vtu-cyan); word-break: break-all; }
.rint-vtu .vt-wave {
	width: 100%;
	display: block;
	background: var(--vtu-fond);
	border: 1px solid var(--vtu-bordure);
	border-radius: 10px;
	margin: 0.6rem 0 0.2rem;
}
.rint-vtu .vt-legende { margin: 0 0 0.6rem; }
.rint-vtu .vt-mesures, .rint-vtu .vt-defauts { margin: 0.4rem 0; padding-left: 1.2rem; }
.rint-vtu .vt-defauts li { margin: 0.25rem 0; }
.rint-vtu .vt-defaut-forte { color: #ff8296; }
.rint-vtu .vt-defaut-moyenne { color: var(--vtu-or); }
.rint-vtu .vt-ok { color: #7be495; }
.rint-vtu .vt-case { display: block; margin: 0.45rem 0; cursor: pointer; }
.rint-vtu .vt-case-ligne { display: inline-flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin: 0.3rem 0.8rem 0.3rem 0; }
.rint-vtu .vt-plafond { color: var(--vtu-or); font-weight: 700; }
.rint-vtu .vt-progres {
	height: 8px;
	background: #22232e;
	border-radius: 99px;
	overflow: hidden;
	margin: 0.7rem 0;
}
.rint-vtu .vt-progres-barre {
	height: 100%;
	width: 0;
	background: linear-gradient(90deg, var(--vtu-cyan), var(--vtu-rouge));
	transition: width 0.25s ease;
}
.rint-vtu .vt-journal { margin: 0.6rem 0; padding-left: 1.4rem; color: var(--vtu-muet); }
.rint-vtu .vt-journal li { margin: 0.2rem 0; }
.rint-vtu .vt-metres {
	width: 100%;
	display: block;
	background: var(--vtu-fond);
	border: 1px solid var(--vtu-bordure);
	border-radius: 10px;
	margin: 0.6rem 0;
}
.rint-vtu .vt-table {
	width: 100%;
	border-collapse: collapse;
	margin: 0.7rem 0;
	font-size: 0.95rem;
}
.rint-vtu .vt-table th, .rint-vtu .vt-table td {
	border: 1px solid var(--vtu-bordure);
	padding: 0.45rem 0.7rem;
	text-align: left;
}
.rint-vtu .vt-table th { background: rgba(55, 200, 245, 0.08); color: var(--vtu-cyan); }
.rint-vtu .vt-exports {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 0.9rem;
	margin: 0.7rem 0 1rem;
}
.rint-vtu .vt-carte {
	border: 1px solid var(--vtu-bordure);
	border-radius: 12px;
	padding: 0.9rem 1rem;
	background: rgba(255, 255, 255, 0.02);
}
.rint-vtu .vt-meta { color: var(--vtu-muet); font-size: 0.9rem; margin: 0.3rem 0; }
.rint-vtu .vt-verifie { color: #7be495; font-weight: 700; margin: 0.3rem 0; }
.rint-vtu .vt-reco { color: var(--vtu-or); font-weight: 700; margin: 0.3rem 0; }
.rint-vtu .vt-aconnecter { color: var(--vtu-or); font-weight: 700; margin: 0.3rem 0; }
.rint-vtu .vt-nonteste { color: var(--vtu-or); margin: 0.3rem 0; }
.rint-vtu .vt-lien-capture { display: inline-block; margin-top: 0.5rem; color: var(--vtu-cyan); font-weight: 700; }
.rint-vtu .vt-suno {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
	gap: 0.9rem;
	margin: 0.7rem 0;
}
.rint-vtu .vt-suno pre {
	white-space: pre-wrap;
	word-break: break-word;
	background: var(--vtu-fond);
	border: 1px solid var(--vtu-bordure);
	border-radius: 10px;
	padding: 0.8rem;
	font-size: 0.85rem;
	max-height: 260px;
	overflow: auto;
	margin: 0 0 0.5rem;
}
.rint-vtu .vt-preset-nom { max-width: 320px; width: auto; flex: 1 1 220px; }
.rint-vtu .vt-lot { margin: 0.6rem 0; padding-left: 1.2rem; }
.rint-vtu .vt-lot li { margin: 0.35rem 0; }

/* ---------- Modes (Voix / Studio) ---------- */
.rint-vtu .st-modes { margin-bottom: 0.2rem; }
.rint-vtu[data-mode="voix"] .mode-studio { display: none; }
.rint-vtu[data-mode="studio"] .mode-voix { display: none; }

/* ---------- Studio multipiste (v1.1.0) ---------- */
.rint-vtu .st-onair {
	display: inline-block;
	vertical-align: 0.18em;
	margin-left: 0.5rem;
	padding: 0.12rem 0.55rem;
	border: 1.5px solid var(--vtu-rouge);
	border-radius: 6px;
	color: var(--vtu-rouge);
	font-size: 0.72em;
	font-weight: 900;
	letter-spacing: 0.14em;
	text-shadow: 0 0 8px rgba(255, 45, 85, 0.65);
	box-shadow: 0 0 12px rgba(255, 45, 85, 0.35), inset 0 0 8px rgba(255, 45, 85, 0.18);
}
.rint-vtu .st-transport {
	border: 1px solid var(--vtu-bordure);
	border-radius: 12px;
	padding: 0.8rem 0.9rem 0.4rem;
	background: linear-gradient(180deg, rgba(55, 200, 245, 0.05), rgba(255, 255, 255, 0.01));
	margin: 0 0 1rem;
}
.rint-vtu .st-temps {
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--vtu-cyan);
	background: var(--vtu-fond);
	border: 1px solid var(--vtu-bordure);
	border-radius: 8px;
	padding: 0.35rem 0.8rem;
}
.rint-vtu .st-pistes { position: relative; margin: 0.4rem 0 0.6rem; }
.rint-vtu .st-tete {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 2px;
	margin-left: -1px;
	background: var(--vtu-rouge);
	box-shadow: 0 0 8px rgba(255, 45, 85, 0.8);
	z-index: 3;
	pointer-events: none;
}
.rint-vtu .st-piste {
	border: 1px solid var(--vtu-bordure);
	border-left: 4px solid var(--vtu-cyan);
	border-radius: 12px;
	padding: 0.7rem 0.8rem 0.8rem;
	margin: 0 0 0.8rem;
	background: rgba(255, 255, 255, 0.02);
}
.rint-vtu .st-piste.st-sourde { border-left-color: var(--vtu-bordure); }
.rint-vtu .st-piste-entete {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	margin: 0 0 0.5rem;
}
.rint-vtu .st-nom { flex: 1 1 180px; width: auto; font-weight: 700; }
.rint-vtu .st-duree { font-variant-numeric: tabular-nums; }
.rint-vtu .st-ms { padding: 0.35rem 0.75rem; font-size: 0.88rem; }
.rint-vtu .st-ms.actif-m {
	background: var(--vtu-or);
	border-color: var(--vtu-or);
	color: #14100a;
}
.rint-vtu .st-ms.actif-s {
	background: var(--vtu-cyan);
	border-color: var(--vtu-cyan);
	color: #06222e;
}
.rint-vtu .st-suppr { padding: 0.35rem 0.7rem; font-size: 0.88rem; }
.rint-vtu .st-suppr:hover { border-color: var(--vtu-rouge); color: var(--vtu-rouge); }
.rint-vtu .st-onde {
	width: 100%;
	display: block;
	background: var(--vtu-fond);
	border: 1px solid var(--vtu-bordure);
	border-radius: 8px;
}
.rint-vtu .st-vu {
	width: 100%;
	display: block;
	margin: 0.3rem 0 0.2rem;
}
.rint-vtu .st-controles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 0.45rem 1rem;
	margin-top: 0.4rem;
}
.rint-vtu .st-ctrl {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	align-items: center;
	font-size: 0.92rem;
	color: var(--vtu-muet);
}
.rint-vtu .st-ctrl input[type="range"] { flex: 1 1 90px; min-width: 80px; }
.rint-vtu .st-ctrl .st-num {
	width: 5.2em;
	background: var(--vtu-fond);
	border: 1px solid var(--vtu-bordure);
	border-radius: 8px;
	color: var(--vtu-texte);
	padding: 0.4rem 0.5rem;
	font: inherit;
	font-size: 0.95rem;
}
.rint-vtu .st-vol-val, .rint-vtu .st-pan-val {
	color: var(--vtu-texte);
	font-weight: 700;
	min-width: 4.2em;
}
.rint-vtu .st-limites { margin: 0.4rem 0; padding-left: 1.2rem; color: var(--vtu-muet); }
.rint-vtu .st-limites li { margin: 0.3rem 0; }
.rint-vtu .st-limites strong { color: var(--vtu-or); }

/* ---------- Porte (membres seulement) ---------- */
.rint-vtu-porte {
	background: var(--vtu-carte, #12121e);
	border: 1px solid var(--vtu-bordure, #2a2a3d);
	border-radius: 14px;
	padding: 1.2rem 1.4rem;
	color: var(--vtu-texte, #f2f2f7);
}
.rint-vtu-porte a { color: var(--vtu-cyan, #37c8f5); font-weight: 700; }

@media (max-width: 640px) {
	.rint-vtu .pf-bloc { padding: 1rem 0.9rem 1.2rem; }
	.rint-vtu .btn { padding: 0.6rem 1rem; }
	.rint-vtu .vt-exports, .rint-vtu .vt-suno { grid-template-columns: 1fr; }
	.rint-vtu .st-controles { grid-template-columns: 1fr; }
	.rint-vtu .st-temps { font-size: 0.95rem; }
	.rint-vtu .st-nom { flex-basis: 100%; }
}

/* ============================================================
   Studio v1.2.0 — §02 marqueurs / projet, §03 clips, §04 master,
   §05 inserts. Mêmes variables que le reste du bloc Studio.
   ============================================================ */
.rint-vtu .st-marqueurs {
	display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center;
	margin: 0.2rem 0 0.5rem; min-height: 1.6rem;
}
.rint-vtu .st-chip {
	display: inline-flex; align-items: center; gap: 0.15rem;
	background: var(--vtu-fond-2); color: var(--vtu-texte);
	border: 1px solid var(--vtu-bordure); border-radius: 999px;
	padding: 0.25rem 0.6rem; font-size: 0.85rem; line-height: 1.3;
}
.rint-vtu button.st-chip { cursor: pointer; }
.rint-vtu button.st-chip:hover { border-color: var(--vtu-cyan); }
.rint-vtu .st-chip.actif {
	border-color: var(--vtu-or); color: var(--vtu-or);
	box-shadow: 0 0 0 1px var(--vtu-or);
}
.rint-vtu .st-chip-marq button {
	background: none; border: 0; color: inherit; font: inherit;
	padding: 0.05rem 0.2rem; cursor: pointer;
}
.rint-vtu .st-chip-marq .st-marq-aller { font-weight: 700; }
.rint-vtu .st-chip-marq .st-marq-nom, .rint-vtu .st-chip-marq .st-marq-sup { opacity: 0.75; }
.rint-vtu .st-chip-marq .st-marq-sup:hover { color: var(--vtu-rouge); opacity: 1; }
.rint-vtu #st-marqueurs-ticks { position: relative; height: 10px; }
.rint-vtu .st-tick {
	position: absolute; top: 0; width: 8px; height: 8px; margin-left: -4px;
	background: var(--vtu-or); clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.rint-vtu .st-pic { font-variant-numeric: tabular-nums; white-space: nowrap; }
.rint-vtu .st-pic-sature { color: var(--vtu-rouge); font-weight: 700; }
.rint-vtu .st-ms.actif-pfl {
	background: var(--vtu-or); color: #14100a; border-color: var(--vtu-or);
	box-shadow: 0 0 10px rgba(245, 197, 66, 0.55);
}
.rint-vtu .st-inserts {
	margin: 0.5rem 0; border: 1px dashed var(--vtu-bordure);
	border-radius: var(--vtu-rayon); padding: 0.5rem 0.8rem;
}
.rint-vtu .st-inserts summary { cursor: pointer; font-weight: 700; padding: 0.2rem 0; }
/* Studio v1.5.0 — Panneau « Plug-ins & effets » par piste :
   préréglages/copie de chaîne, courbe d’EQ calculée, bandes. */
.rint-vtu .st-chaine {
	margin: 0.5rem 0; border: 1px dashed var(--vtu-bordure);
	border-radius: var(--vtu-rayon); padding: 0.5rem 0.8rem;
}
.rint-vtu .st-chaine summary { cursor: pointer; font-weight: 700; padding: 0.2rem 0; }
.rint-vtu .st-chaine-presets {
	display: flex; flex-wrap: wrap; gap: 0.5rem 1.2rem; align-items: center;
	padding: 0.45rem 0;
}
.rint-vtu .st-chaine-boutons { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.rint-vtu .st-chaine-statut { flex-basis: 100%; margin: 0; }
.rint-vtu .st-eq-courbe {
	display: block; width: 100%; max-width: 520px; height: auto;
	background: #101018; border: 1px solid var(--vtu-bordure);
	border-radius: var(--vtu-rayon); margin: 0.35rem 0;
}
.rint-vtu .st-eq-bande .st-ctrl { min-width: 10rem; }
.rint-vtu .st-fx-groupe {
	display: flex; flex-wrap: wrap; gap: 0.5rem 1.2rem; align-items: center;
	padding: 0.45rem 0; border-top: 1px solid var(--vtu-bordure);
}
.rint-vtu .st-montage { margin: 0.4rem 0 0.2rem; }
.rint-vtu .st-clips { display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; }
.rint-vtu .st-clip-boite {
	margin-top: 0.5rem; border: 1px solid var(--vtu-bordure);
	border-left: 3px solid var(--vtu-or); border-radius: var(--vtu-rayon);
	padding: 0.6rem 0.8rem; background: var(--vtu-fond-2);
}
.rint-vtu .st-ctrl select {
	background: var(--vtu-fond-2); color: var(--vtu-texte);
	border: 1px solid var(--vtu-bordure); border-radius: 8px; padding: 0.3rem;
}
.rint-vtu #st-master-vu, .rint-vtu #st-spectre {
	display: block; width: 100%; background: #0a0a12;
	border: 1px solid var(--vtu-bordure); border-radius: var(--vtu-rayon);
	margin: 0.35rem 0;
}

/* ============================================================
   Studio v1.3.0 — Interface DAW : timeline horizontale (règle
   temporelle, en-têtes de pistes fixes, clips colorés, zoom),
   console à tranches verticales, transport timecode, bascule
   Timeline/Console sur petit écran. Design Affiche du site :
   noir, néon rouge, cyan, doré.
   ============================================================ */
.rint-vtu .st-ech { font-variant-numeric: tabular-nums; font-size: 0.9rem; }
.rint-vtu .st-daw-barre {
	display: flex; flex-wrap: wrap; gap: 0.4rem 1.2rem;
	align-items: center; justify-content: space-between;
	margin: 0.2rem 0 0.4rem;
}
.rint-vtu .st-daw-vues { display: none; }
.rint-vtu .st-daw-zoom { align-items: center; }
.rint-vtu .st-daw-zoom .btn { min-width: 44px; }
.rint-vtu .st-zoom-val {
	font-variant-numeric: tabular-nums; font-weight: 700;
	color: var(--vtu-cyan); min-width: 3.6em; text-align: center;
}
.rint-vtu .st-couleur {
	display: inline-block; width: 12px; height: 12px;
	border-radius: 3px; flex: 0 0 auto;
	box-shadow: inset 0 0 4px rgba(0, 0, 0, 0.45);
}

/* ---------- Timeline ---------- */
.rint-vtu .st-timeline {
	--st-entete-w: 208px;
	border: 1px solid var(--vtu-bordure); border-radius: 12px;
	background: rgba(255, 255, 255, 0.015);
	padding: 0.5rem 0 0.3rem; margin: 0.4rem 0 0.6rem;
}
.rint-vtu .st-tl-defile { overflow-x: auto; overflow-y: hidden; }
.rint-vtu .st-tl-contenu { position: relative; min-width: 100%; }
.rint-vtu .st-timeline .st-pistes { margin: 0; }
.rint-vtu .st-timeline .st-piste { background: #0e0e16; }
.rint-vtu .st-regle-ligne {
	display: flex; align-items: stretch; padding: 0 0.8rem;
}
.rint-vtu .st-tl-coin {
	flex: 0 0 calc(var(--st-entete-w) + 0.6rem + 4px);
	position: sticky; left: 0; z-index: 4;
	background: #0d0d15; color: var(--vtu-texte);
	font-weight: 700; font-size: 0.85rem;
	display: flex; align-items: center; gap: 0.4rem;
	border-bottom: 1px solid var(--vtu-bordure);
}
.rint-vtu .st-regle { flex: 1 1 auto; min-width: 0; position: relative; cursor: pointer; }
.rint-vtu #st-regle-canvas {
	display: block; width: 100%;
	background: #0d0d15; border-bottom: 1px solid var(--vtu-bordure);
}
.rint-vtu .st-regle #st-marqueurs-ticks {
	position: absolute; inset: 0; height: auto; pointer-events: none;
}
.rint-vtu .st-piste-ligne { display: flex; gap: 0.6rem; align-items: stretch; }
.rint-vtu .st-piste-entete {
	flex: 0 0 var(--st-entete-w);
	position: sticky; left: 0; z-index: 4;
	background: #0e0e16;
	border-right: 1px solid var(--vtu-bordure);
	padding-right: 0.5rem; margin: 0;
	align-content: flex-start;
}
.rint-vtu .st-piste-voie { flex: 1 1 auto; min-width: 120px; }

/* ---------- Console à tranches ---------- */
.rint-vtu .st-console {
	display: flex; gap: 0.6rem; align-items: stretch;
	overflow-x: auto; padding: 0.4rem 0.1rem 0.6rem;
}
.rint-vtu .st-console-tranches { display: flex; gap: 0.6rem; align-items: stretch; }
.rint-vtu .st-tranche {
	display: flex; flex-direction: column; align-items: center; gap: 0.35rem;
	width: 92px; flex: 0 0 auto;
	border: 1px solid var(--vtu-bordure); border-radius: 12px;
	padding: 0.55rem 0.4rem 0.6rem;
	background: rgba(255, 255, 255, 0.02);
}
.rint-vtu .st-tranche.st-sourde { opacity: 0.55; }
.rint-vtu .st-tranche-nom {
	font-weight: 700; font-size: 0.85rem; max-width: 100%;
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.rint-vtu .st-tranche-milieu { display: flex; gap: 0.4rem; align-items: flex-start; }
.rint-vtu .st-fader-v {
	writing-mode: vertical-lr; direction: rtl;
	-webkit-appearance: slider-vertical; appearance: slider-vertical;
	width: 34px; height: 128px; accent-color: var(--vtu-rouge);
}
.rint-vtu .st-tranche-vu {
	display: block; background: #0a0a12;
	border: 1px solid var(--vtu-bordure); border-radius: 4px;
}
.rint-vtu .st-tranche-clip {
	width: 10px; height: 10px; border-radius: 50%;
	background: #2a2a38; margin-top: 2px; flex: 0 0 auto;
}
.rint-vtu .st-tranche-clip.allume {
	background: var(--vtu-rouge);
	box-shadow: 0 0 8px rgba(255, 45, 85, 0.85);
}
.rint-vtu .st-tranche-val { font-variant-numeric: tabular-nums; font-weight: 700; font-size: 0.85rem; }
.rint-vtu .st-tranche-pan { width: 100%; }
.rint-vtu .st-tranche-pan-val { font-size: 0.75rem; }
.rint-vtu .st-tranche-ms { display: flex; gap: 0.3rem; }
.rint-vtu .st-tranche-ms .st-ms { padding: 0.3rem 0.55rem; }
.rint-vtu .st-tranche-master { width: 196px; border-color: var(--vtu-or); }
.rint-vtu .st-tranche-note { font-size: 0.75rem; text-align: center; }

/* ---------- Petit écran : bascule des vues, cibles tactiles ---------- */
@media (max-width: 900px) {
	.rint-vtu .st-daw-vues { display: flex; }
	.rint-vtu .mode-studio[data-vue="timeline"] .st-console-bloc { display: none; }
	.rint-vtu .mode-studio[data-vue="console"] .st-timeline { display: none; }
	.rint-vtu .st-timeline { --st-entete-w: 148px; }
	.rint-vtu .st-daw-barre .btn, .rint-vtu .st-vue-btn { min-height: 44px; }
	.rint-vtu .st-fader-v { height: 150px; }
	.rint-vtu .st-tranche { width: 100px; }
	.rint-vtu .st-tranche-ms .st-ms { min-width: 44px; min-height: 44px; }
}

/* ============================================================
   Studio v1.4.0 — Accueil du Studio (écran 1 de la planche de
   vision) : état du projet courant, actions rapides branchées
   sur les vrais contrôles, projets récents lus du stockage
   réel du navigateur. Design Affiche : noir, néon rouge, cyan.
   ============================================================ */
.rint-vtu .st-accueil {
	border: 1px solid var(--vtu-bordure); border-radius: 12px;
	background: rgba(255, 255, 255, 0.015);
	padding: 0.6rem 0.8rem 0.8rem; margin: 0.4rem 0 0.8rem;
}
.rint-vtu .st-accueil-cartes {
	display: grid; gap: 0.6rem;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	margin: 0.4rem 0;
}
.rint-vtu .st-carte-accueil {
	border: 1px solid var(--vtu-bordure); border-radius: 12px;
	background: #0e0e16; padding: 0.6rem 0.7rem;
}
.rint-vtu .st-carte-accueil h5 { margin: 0 0 0.4rem; }
.rint-vtu .st-accueil-nom { max-width: 100%; }
.rint-vtu .st-accueil-faits { list-style: none; margin: 0.3rem 0; padding: 0; }
.rint-vtu .st-accueil-faits li { margin: 0.15rem 0; }
.rint-vtu .st-accueil-actions { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.rint-vtu .st-recents { display: flex; flex-direction: column; gap: 0.4rem; }
.rint-vtu .st-recent-carte {
	display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.8rem;
	border: 1px solid var(--vtu-bordure); border-radius: 10px;
	background: #0e0e16; padding: 0.45rem 0.7rem;
}
.rint-vtu .st-recent-carte .btn { margin-left: auto; }
@media (max-width: 900px) {
	.rint-vtu .st-accueil-actions .btn,
	.rint-vtu .st-recent-carte .btn,
	.rint-vtu .st-daw-accueil .btn { min-height: 44px; }
}

/* ============================================================
   Studio v1.6.0 — Instruments virtuels (écran 5 de la planche
   de vision) : panneau du synthétiseur jouable et son clavier
   de piano (2 octaves + 1, touches ≥ 44 px de large, défilement
   horizontal sur petit écran). Design Affiche : noir, néon
   rouge pour la touche active, cyan.
   ============================================================ */
.rint-vtu .st-inst {
	border: 1px solid var(--vtu-bordure); border-radius: 12px;
	background: rgba(255, 255, 255, 0.015);
	padding: 0.6rem 0.8rem 0.8rem; margin: 0.4rem 0 0.8rem;
}
.rint-vtu .st-inst-clavier {
	overflow-x: auto; overflow-y: hidden;
	padding: 0.5rem 0 0.3rem;
	-webkit-overflow-scrolling: touch;
}
.rint-vtu .st-inst-scene { position: relative; height: 136px; margin: 0 auto; }
.rint-vtu .st-inst-touche {
	position: absolute; top: 0; margin: 0; padding: 0;
	touch-action: none; cursor: pointer;
	font: inherit;
}
.rint-vtu .st-inst-blanche {
	height: 136px; z-index: 1;
	background: #eceaf2; border: 1px solid #55556a;
	border-radius: 0 0 6px 6px;
}
.rint-vtu .st-inst-noire {
	width: 30px; height: 86px; z-index: 2;
	background: #101018; border: 1px solid #3d3d55;
	border-radius: 0 0 5px 5px;
}
.rint-vtu .st-inst-touche-active {
	background: var(--vtu-rouge) !important;
	border-color: var(--vtu-rouge) !important;
}
.rint-vtu .st-inst-touche-nom {
	position: absolute; bottom: 6px; left: 0; right: 0;
	text-align: center; font-size: 0.72rem; color: #33333f;
	pointer-events: none;
}
.rint-vtu .st-inst-touche-active .st-inst-touche-nom { color: #fff; }
@media (max-width: 900px) {
	.rint-vtu .st-inst .btn { min-height: 44px; }
}

/* ============================================================
   Studio v1.7.0 — Automation (écran 6 de la planche de
   vision) : panneau par piste, courbe éditée au pointeur
   sur la même échelle que la forme d’onde (la marge de
   valeurs reprend la largeur de l’en-tête de piste pour
   aligner la courbe sur les clips), points et champs.
   Design Affiche : noir, cyan, doré pour le point choisi.
   ============================================================ */
.rint-vtu .st-auto {
	margin: 0.5rem 0; border: 1px dashed var(--vtu-bordure);
	border-radius: var(--vtu-rayon); padding: 0.5rem 0.8rem;
}
.rint-vtu .st-auto summary { cursor: pointer; font-weight: 700; padding: 0.2rem 0; }
.rint-vtu .st-auto-barre {
	display: flex; flex-wrap: wrap; gap: 0.5rem 1.2rem; align-items: center;
	padding: 0.45rem 0;
}
.rint-vtu .st-auto-infos { flex: 1 1 16rem; }
.rint-vtu .st-auto-ligne { align-items: stretch; }
.rint-vtu .st-auto-marge {
	flex: 0 0 var(--st-entete-w);
	display: flex; flex-direction: column; justify-content: space-between;
	text-align: right; font-size: 0.75rem; color: var(--vtu-texte-doux, #9a9ab0);
	padding-right: 0.5rem; border-right: 1px solid var(--vtu-bordure);
}
.rint-vtu .st-auto-courante { color: var(--vtu-rouge); font-weight: 700; }
.rint-vtu .st-auto-canvas {
	display: block; width: 100%;
	background: #0a0a12; border: 1px solid var(--vtu-bordure);
	border-radius: var(--vtu-rayon);
	cursor: crosshair; touch-action: none;
}
.rint-vtu .st-auto-point {
	display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; align-items: center;
	padding: 0.45rem 0;
}
.rint-vtu .st-auto-statut { flex-basis: 100%; margin: 0; }
@media (max-width: 900px) {
	.rint-vtu .st-auto .btn { min-height: 44px; }
	.rint-vtu .st-auto-marge { font-size: 0.68rem; }
}

/* ---------- v1.8.0 — Master : mesures en continu, limiteur ---------- */
.rint-vtu .st-master-mesures-txt {
	display: block; font-size: 0.72rem; line-height: 1.35;
	color: var(--vtu-texte-doux, #9a9ab0); white-space: nowrap;
}
.rint-vtu .st-master-mesures-txt.st-gr-actif { color: #f5c542; font-weight: 700; }

/* ---------- v1.8.0 — Préréglages personnels de chaîne ---------- */
.rint-vtu .st-chaine-perso {
	border: 1px dashed var(--vtu-bordure); border-radius: var(--vtu-rayon);
	padding: 0.6rem 0.8rem; margin: 0.6rem 0;
	display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; align-items: center;
}
.rint-vtu .st-chaine-perso .st-fx-titre { flex-basis: 100%; }
.rint-vtu .st-perso-statut { flex-basis: 100%; margin: 0; }

/* ---------- v1.8.0 — Stems et aide raccourcis ---------- */
.rint-vtu .st-stem-fichiers { margin-top: 0.5rem; }
.rint-vtu .st-stem-fichiers .btn { margin: 0.25rem 0 0.6rem; }
.rint-vtu .st-aide {
	border: 1px solid var(--vtu-bordure); border-radius: var(--vtu-rayon);
	padding: 0.6rem 0.9rem; margin: 1rem 0;
}
.rint-vtu .st-aide summary { cursor: pointer; font-weight: 700; }
.rint-vtu .st-raccourcis { margin: 0.6rem 0; padding-left: 1.2rem; }
.rint-vtu .st-raccourcis li { margin: 0.3rem 0; }

/* ---------- v1.9.0 — Panneau Mashup, remix et séparation ---------- */
.rint-vtu .st-mashup {
	border: 1px solid var(--vtu-bordure); border-radius: var(--vtu-rayon);
	padding: 0.8rem 1rem; margin: 1rem 0;
}
.rint-vtu .st-mashup h5 { margin: 0.9rem 0 0.4rem; }
.rint-vtu .st-mashup input[type="number"] { width: 7rem; }
.rint-vtu .st-mashup select { max-width: 100%; }

/* ---------- Chaîne vocale pro (v1.10.0) ---------- */
.rint-vtu .cv-etapes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 0.9rem;
	margin: 0 0 1rem;
}
.rint-vtu .cv-etape {
	border: 1px solid var(--vtu-bordure);
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.03);
	padding: 0.7rem 0.9rem 0.9rem;
	margin: 0;
	min-width: 0;
}
.rint-vtu .cv-etape legend {
	padding: 0 0.3rem;
	font-weight: 700;
	color: var(--vtu-or);
}
.rint-vtu .cv-etape .vt-case-ligne {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
	margin-top: 0.45rem;
}
.rint-vtu .cv-etape .vt-case-ligne input[type="range"] {
	flex: 1 1 110px;
	min-width: 90px;
}
.rint-vtu .cv-etape .vt-case-ligne select {
	background: var(--vtu-fond);
	color: var(--vtu-texte);
	border: 1px solid var(--vtu-bordure);
	border-radius: 6px;
	padding: 0.25rem 0.4rem;
}
.rint-vtu .cv-etape .vt-case-ligne span {
	color: var(--vtu-cyan);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.rint-vtu #cv-appliquer {
	font-size: 1.05rem;
	padding: 0.7rem 1.3rem;
}

/* ---------- Mastering (v1.11.0) ---------- */
.rint-vtu .ms-etapes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 0.9rem;
	margin: 0 0 1rem;
}
.rint-vtu .ms-etape {
	border: 1px solid var(--vtu-bordure);
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.03);
	padding: 0.7rem 0.9rem 0.9rem;
	margin: 0;
	min-width: 0;
}
.rint-vtu .ms-etape legend {
	padding: 0 0.3rem;
	font-weight: 700;
	color: var(--vtu-or);
}
.rint-vtu .ms-etape .vt-case-ligne {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
	margin-top: 0.45rem;
}
.rint-vtu .ms-etape .vt-case-ligne input[type="range"] {
	flex: 1 1 110px;
	min-width: 90px;
}
.rint-vtu .ms-etape .vt-case-ligne select {
	background: var(--vtu-fond);
	color: var(--vtu-texte);
	border: 1px solid var(--vtu-bordure);
	border-radius: 6px;
	padding: 0.25rem 0.4rem;
}
.rint-vtu .ms-etape .vt-case-ligne span {
	color: var(--vtu-cyan);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.rint-vtu #ms-appliquer {
	font-size: 1.05rem;
	padding: 0.7rem 1.3rem;
}
.rint-vtu #ms-mesures {
	margin: 0 0 1rem;
}
