/* Simulateur des forces en vol — styles dédiés (thème du site conservé, variables héritées de app.css) */

.ff-intro{margin-bottom:30px}

.ff__panel{padding:26px 28px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,rgba(13,32,48,.78),rgba(5,16,27,.7));box-shadow:var(--shadow);margin-bottom:24px}

.ff__controls{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin-bottom:6px}
.ff__phase-group{display:flex;gap:8px}
.ff__phase-group .button.is-active{border-color:var(--cyan);background:linear-gradient(135deg,#76e7ff,#2fc8ed);color:#03121c;box-shadow:0 12px 30px rgba(38,194,231,.22)}
.ff__slider-wrap{flex:1;min-width:240px;display:flex;align-items:center;gap:14px}
.ff__slider-wrap label{color:#8fa9b8;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.ff__slider-wrap input[type="range"]{flex:1;accent-color:var(--cyan);height:4px}
.ff__slider-value{min-width:64px;padding:6px 10px;border:1px solid var(--line2);border-radius:8px;background:rgba(3,12,20,.6);color:var(--cyan);font:.78rem Consolas,monospace;text-align:center}
.ff__lang-group{display:flex;gap:6px;margin-left:auto}
.ff__lang-group .button{min-height:36px;padding:0 12px;font-size:.68rem}
.ff__lang-group .button.is-active{border-color:var(--cyan);background:linear-gradient(135deg,#76e7ff,#2fc8ed);color:#03121c;box-shadow:0 12px 30px rgba(38,194,231,.22)}

.ff__diagram{margin-top:22px;border:1px solid var(--line);border-radius:14px;background:radial-gradient(circle at 30% 20%,rgba(85,220,255,.05),transparent 55%),rgba(2,9,15,.55);overflow:hidden}
.ff__diagram svg{display:block;width:100%;height:auto}

.ff-vec{fill:none;stroke-width:3.2;stroke-linecap:round;transition:stroke .3s;filter:drop-shadow(0 0 1.1px #05070a) drop-shadow(0 0 1.1px #05070a) drop-shadow(0 0 1.1px #05070a)}
.ff-vec--thrust{stroke:var(--green)}
.ff-vec--drag{stroke:var(--red)}
.ff-vec--lift{stroke:var(--cyan)}
.ff-vec--weight{stroke:var(--amber)}
.ff-vec--wind{stroke:#8fa9c4;stroke-width:2;stroke-dasharray:5 4}
.ff-label{font:700 .68rem Consolas,monospace;letter-spacing:.02em;paint-order:stroke fill;stroke:#05070a;stroke-width:3px;stroke-linejoin:round}
.ff-label--thrust{fill:var(--green)}
.ff-label--drag{fill:var(--red)}
.ff-label--lift{fill:var(--cyan)}
.ff-label--weight{fill:var(--amber)}
.ff-label--wind{fill:#8fa9c4;font:600 .6rem Bahnschrift,sans-serif;letter-spacing:.06em;text-transform:uppercase;stroke-width:2.5px}
.ff-value{font:.6rem Consolas,monospace;fill:#9eb4c1}
.ff-cg{fill:#0c1d2e;stroke:#8fb9cc;stroke-width:1.4}
.ff-horizon{stroke:rgba(143,196,222,.22);stroke-width:1;stroke-dasharray:3 4}
.ff-path{stroke:rgba(255,189,105,.28);stroke-width:1.2;stroke-dasharray:2 5}
.ff-aircraft{transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.ff-body{fill:#eef4f7;stroke:#0b1420;stroke-width:2;stroke-linejoin:round}
.ff-canopy{stroke:#0b1420;stroke-width:1.3;stroke-linejoin:round}
.ff-canopy--rear{fill:#1ea7d6}
.ff-canopy--front{fill:#8fe3ff}
.ff-canopy-seam{stroke:#0b1420;stroke-width:1.1}
.ff-strut{stroke:#0b1420;stroke-width:2;stroke-linecap:round}
.ff-wheel{fill:#0b1420}
.ff-prop line{stroke:#0b1420;stroke-width:1.4;opacity:.7}

.ff__legend-strip{display:flex;flex-wrap:wrap;gap:16px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.ff__legend-strip span{display:inline-flex;align-items:center;gap:7px;color:#9eb4c1;font-size:.68rem}
.ff__legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:0 0 auto}

.ff__readout{display:grid;gap:14px;align-content:start;margin-bottom:24px}
.ff__readout-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ff__readout h2{margin:0;font:500 1.55rem Bahnschrift,sans-serif}
.ff__readout>p{margin:0;color:#c3d6df;font-size:.86rem;line-height:1.65}
.ff__readout-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.ff__stat{padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:rgba(3,12,20,.42)}
.ff__stat span{display:block;margin-bottom:3px;color:#5f798b;font-size:.56rem;letter-spacing:.09em;text-transform:uppercase}
.ff__stat strong{display:block;font:500 1rem Bahnschrift,sans-serif;color:var(--text)}
.ff__stat--thrust strong{color:var(--green)}
.ff__stat--drag strong{color:var(--red)}
.ff__stat--lift strong{color:var(--cyan)}
.ff__stat--weight strong{color:var(--amber)}

.ff-legend{margin-top:30px}
.ff-legend h2{margin:0 0 14px;font:500 1.3rem Bahnschrift,sans-serif}

@media(max-width:980px){
  .ff__readout-grid{grid-template-columns:repeat(2,1fr)}
  .ff__controls{flex-direction:column;align-items:stretch}
}
@media(max-width:700px){
  .ff__panel{padding:20px 16px}
}
