/* Thème années 70 de la soufflerie : même palette que l'accueil.
   Chargé après app.css ; les variables pilotent aussi les graphiques (graphes.js les lit). */
:root{
  --fond:#F6E8C9; --fond2:#FFF6DF; --fond3:#F0DDB4; --bord:#C9AD7F;
  --txt:#4A2C17; --txt2:#6E4A30; --acc:#B5441A; --acc2:#9A5F00;
  --ok:#5F7A1C; --alerte:#B3261E;
}
body{
  font-family:var(--d70-body);font-size:14px;
  background-image:radial-gradient(rgba(74,44,23,.09) 1.2px,transparent 1.4px);background-size:18px 18px;
}

/* entête */
header{background:var(--fond2);border-bottom:3px solid var(--d70-brown)}
header h1{font-family:var(--d70-display);font-weight:400;font-size:19px;color:var(--d70-rust);letter-spacing:.2px}
header h1 span{font-family:var(--d70-body);font-weight:600;font-size:13px;color:var(--txt2)}
.entete-mesures b{color:var(--d70-rust)}
.lien{border:2px solid var(--d70-brown);background:var(--fond2);color:var(--d70-brown);font-weight:800;border-radius:999px;padding:5px 14px;box-shadow:2px 2px 0 var(--d70-brown)}
.lien:hover{background:var(--d70-mustard);color:var(--d70-brown);border-color:var(--d70-brown)}

/* panneaux */
aside{background:var(--fond2)}
#panneau{border-right:3px solid var(--d70-brown)}
#analyses{border-left:3px solid var(--d70-brown)}
.bloc h2{font-weight:800;color:var(--d70-brown2)}
.bloc h2:hover{color:var(--d70-rust)}
.champs label{font-weight:600}

/* curseurs */
.champs input[type=range]{height:7px;background:var(--fond3);border:2px solid var(--d70-brown);border-radius:999px}
.champs input[type=range]::-webkit-slider-thumb{width:18px;height:18px;background:var(--d70-rust);border:3px solid var(--d70-brown)}
.champs input[type=range]::-moz-range-thumb{width:14px;height:14px;background:var(--d70-rust);border:3px solid var(--d70-brown)}
select{border:2px solid var(--d70-brown);border-radius:10px;background:var(--fond2);font-weight:600}
.case input{accent-color:var(--d70-rust)}

/* boutons */
button.primaire{background:var(--d70-rust);color:var(--d70-cream);border:2px solid var(--d70-brown);
  border-radius:999px;font-weight:800;padding:7px 16px;box-shadow:3px 3px 0 var(--d70-brown)}
button.primaire:hover{filter:none;transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--d70-brown)}
.ligne-btn button:not(.primaire){background:var(--fond2);color:var(--d70-brown);border:2px solid var(--d70-brown);
  border-radius:999px;font-weight:800;padding:5px 12px}
.ligne-btn button:not(.primaire):hover{background:var(--d70-mustard)}
.alerte{background:rgba(179,38,30,.10);border-left:4px solid var(--alerte);color:#7A1F18;font-weight:600}
.alerte.avert{background:rgba(230,166,31,.22);border-left-color:var(--d70-mustard);color:#6B4300}

/* vue 3D : un « écran » brun encadré, avec ses bandeaux en superposition sombre */
#vue3d{background:#2B1A0F}
#hud,#barre-vue{--txt:#F6E8C9;--txt2:#D8BE8E;--bord:#8B6B4A;--acc:#F0A030;--fond3:#5A3A22;--alerte:#FF8A6B}
.hud-bloc{background:rgba(43,26,15,.9);border:2px solid #8B6B4A;border-radius:12px}
.hud-bloc.principal .val b{color:#FFF6DF}
.hud-bloc.danger{border-color:#FF8A6B}
#barre-vue{background:rgba(43,26,15,.92);border:2px solid #8B6B4A;border-radius:999px}
#barre-vue button{font-weight:700}

/* analyses */
.onglets{border-bottom:3px solid var(--d70-brown)}
.onglets button{font-weight:800;border-bottom:4px solid transparent}
.onglets button.actif{color:var(--d70-brown);border-bottom-color:var(--d70-rust)}
#analyses canvas{background:var(--fond2);border:2px solid var(--d70-brown);border-radius:14px}
#analyses canvas#cv-lbm{background:#2B1A0F}
tr.best td{background:rgba(181,68,26,.12)}
th,td{border-bottom:1px solid var(--bord)}
.mesures div{border-bottom:1px dotted var(--d70-brown2)}
.barre-f .jauge{background:var(--fond3);border:1px solid var(--bord)}

/* fenêtres d'aide */
dialog{background:var(--fond2);border:3px solid var(--d70-brown);border-radius:22px;box-shadow:8px 8px 0 var(--d70-brown)}
dialog::backdrop{background:rgba(74,44,23,.62)}
.doc h3{font-family:var(--d70-display);font-weight:400;font-size:17px;color:var(--d70-rust)}
.doc p,.doc li{font-size:13px}
.doc code{color:#8A4B00;background:var(--fond3);padding:0 4px;border-radius:4px}

/* chargement */
.spin{border-color:var(--bord);border-top-color:var(--d70-rust)}

@media (max-width:1080px){
  #panneau,#analyses{border-left:none;border-right:none;border-bottom:3px solid var(--d70-brown)}
}

/* affichage étroit : le corps de page grandit avec son contenu, pour que la barre d'outils reste collée en haut */
@media (max-width:1080px){
  html,body{height:auto;min-height:100%}
}

/* ---------- curseurs : libellé et valeur sur une même ligne, curseur dessous ----------
   Avant, la valeur était posée en haut à droite par-dessus le libellé : dès qu'un libellé
   ou une valeur passait sur deux lignes, textes et curseurs se chevauchaient. */
.champs label{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;row-gap:6px;
  align-items:start;padding-right:0;min-height:0}
.champs label output{position:static;grid-column:2;grid-row:1;max-width:none;text-align:right;line-height:1.3}
.champs label input[type=range]{grid-column:1 / -1;grid-row:2;margin:0}
.champs label select{grid-column:1 / -1;margin-top:0}
.champs label.case{display:flex}
.champs label[title]{cursor:help}
/* un curseur piloté par le solveur se voit : grisé, valeur en italique */
.champs input[type=range]:disabled{opacity:.4;cursor:not-allowed}
.champs label:has(input[type=range]:disabled){color:var(--txt2)}
.champs label:has(input[type=range]:disabled) output{font-style:italic;color:var(--d70-rust)}

/* ---------- soufflerie 2D : sonde, lecture et fiche de simulation ---------- */
.sonde{margin:8px 0 10px;padding:8px 11px;min-height:3.4em;border:2px solid var(--d70-brown);border-radius:12px;
  background:var(--fond3);font:600 12px/1.5 var(--d70-body);color:var(--txt)}
.sonde b{color:var(--d70-rust)}
#lbm-lecture{margin-top:4px}
.mesures.fiche,#info-chassis{grid-template-columns:1fr}
.mesures.fiche{margin-top:6px;padding-top:4px;border-top:2px dotted var(--d70-brown2)}
.mesures.fiche h4{margin:6px 0 2px;font:400 15px var(--d70-display);color:var(--d70-rust)}
#info-chassis{margin:2px 0 6px}
