:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#eaf1fa;background:#08111d;font-size:14px}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 55% -10%,#213b58,#08111d 62%)}button,select,input{font:inherit}button{cursor:pointer}.app{width:min(1680px,100%);margin:auto;min-height:100vh;padding:14px 18px 10px;display:flex;flex-direction:column;gap:10px}header{display:flex;justify-content:space-between;align-items:center;min-height:68px}.brand{display:flex;align-items:center;gap:15px}.mark{height:48px;width:48px;display:grid;place-items:center;font-size:29px;font-weight:900;border:1px solid #ffc36a;color:#ffcb79;border-radius:11px;background:linear-gradient(140deg,#e47715,#8d3b0b);box-shadow:0 4px 0 #65300d,0 8px 25px #dd6d2244}.eyebrow{letter-spacing:2px;color:#ffbe75;font-size:11px;font-weight:800}h1{font-size:clamp(17px,1.5vw,25px);margin:6px 0 0;font-weight:750}.mode-tag{font-size:10px;letter-spacing:1.2px;color:#a7cce6;border:1px solid #41617b;padding:9px 12px;border-radius:30px}nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}nav button{background:#17283c;border:1px solid #34506b;color:#a9c0d5;text-align:left;padding:11px 12px;border-radius:10px;font-size:15px;font-weight:900;white-space:nowrap}nav button span{font-size:12px;font-weight:600;margin-left:7px}nav button.active{background:linear-gradient(125deg,#e3791b,#b94b11);color:white;border-color:#ffa65a;box-shadow:inset 0 1px #ffcc93}.workspace{display:grid;grid-template-columns:minmax(250px,.93fr) minmax(430px,2.35fr) minmax(265px,1fr);gap:10px;min-height:0;flex:1}.panel{border-radius:13px;border:1px solid #304961;background:linear-gradient(145deg,#16283b,#0e1c2c);box-shadow:0 9px 35px #0003;min-width:0}.panel-head{display:flex;align-items:center;gap:9px;padding:12px 14px 9px;border-bottom:1px solid #304456}.counter{color:#ffba78;font-size:10px;font-weight:900}.panel h2{font-size:12px;margin:0;color:#eef4fc;letter-spacing:.25px}.mini{margin-left:auto;color:#89a7bf;font-size:10px}.settings,.results{display:flex;flex-direction:column}.settings #controls{padding:12px 14px 5px;display:flex;flex-direction:column;gap:9px;flex:1}.field{display:block}.field .lbl{display:flex;justify-content:space-between;gap:8px;color:#bdcddd;font-size:12px;font-weight:700;margin-bottom:6px}.field .value{color:#ffbd7b;font-variant-numeric:tabular-nums;white-space:nowrap}.field select{width:100%;padding:9px 10px;color:#f2f7ff;background:#0b1928;border-radius:8px;border:1px solid #43617c}.field input[type=range]{width:100%;accent-color:#f28b2f;cursor:pointer}.field .hint{font-size:10px;color:#849fb5;margin-top:2px}.run-controls{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;margin:7px 12px}.run-controls button{padding:11px 4px;background:#21394f;color:#d9e6f2;border:1px solid #48677f;border-radius:9px;font-size:12px;font-weight:750}.run-controls button:first-child{background:linear-gradient(#f5a33e,#d16c16);color:#261500;border-color:#ffbf75}.status{margin:0 12px 13px;color:#a7bcd0;background:#0b1b2a;border:1px solid #29445c;border-radius:8px;font-size:11px;padding:10px;min-height:37px}.status.good{color:#7fefc2;border-color:#397e6b}.status.bad{color:#ffaaa2;border-color:#aa5555}.visual-area{display:grid;grid-template-rows:minmax(255px,.95fr) minmax(245px,1.05fr);gap:10px;min-height:0}.illustration{position:relative;overflow:hidden;display:flex;flex-direction:column}.illustration #machine{position:relative;flex:1;min-height:150px;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 55%,#35536d45,transparent 62%)}.machine-assembly{position:relative;width:290px;height:150px;filter:drop-shadow(0 12px 10px #0007);transform:scale(.94)}.machine-shadow{position:absolute;left:28px;bottom:5px;width:250px;height:21px;border-radius:50%;background:#0008;filter:blur(8px)}.machine-housing{position:absolute;left:36px;top:17px;width:200px;height:112px;border-radius:19px 35px 31px 15px;background:linear-gradient(0deg,#243f57,#7593a5 20%,#253a4b 33%,#5e7c93 58%,#9db4be 78%,#34516a);border:2px solid #9ab6c5;transform:skewY(-3deg);box-shadow:inset 0 0 20px #0a1d34}.rib{position:absolute;top:3px;bottom:1px;width:12px;border-radius:5px;background:linear-gradient(90deg,#1e394f,#aac0c9,#3a5368);box-shadow:2px 0 1px #061424}.r1{left:20px}.r2{left:52px}.r3{left:84px}.r4{left:116px}.r5{left:148px}.housing-cap{position:absolute;left:-17px;top:19px;width:30px;height:70px;border-radius:18px;background:linear-gradient(90deg,#142b43,#849eb2,#1e394f);border:2px solid #7596ab}.machine-label{position:absolute;top:39px;left:47px;width:112px;padding:6px;background:linear-gradient(140deg,#d7e2e7,#95aab7);border:1px solid #142839;color:#1b3546;letter-spacing:1px;font-size:10px;font-weight:900;transform:skewY(3deg);text-align:center;box-shadow:1px 2px 3px #0008}.machine-label small{font-size:6px;letter-spacing:1px}.front-disc{position:absolute;right:21px;top:22px;width:95px;height:100px;border-radius:50%;background:radial-gradient(circle at 40% 40%,#a6bac8,#385367 54%,#10263a 75%,#6e8a9d 82%);border:3px solid #94b0c0;box-shadow:inset -7px -6px 10px #071626}.front-inner{position:absolute;inset:18px;border:6px dashed #213d53;border-radius:50%;background:radial-gradient(circle,#263b4f,#8da5b1)}.shaft{position:absolute;left:41px;top:38px;width:58px;height:22px;border-radius:4px 9px 9px 4px;background:linear-gradient(#c8d4dc,#536c80 35%,#cbdbe0 60%,#334b60);border:1px solid #a5bac5;transform-origin:10px center}.shaft-dot{position:absolute;right:6px;top:6px;width:8px;height:8px;border-radius:50%;background:#263e51}.foot{position:absolute;bottom:9px;width:68px;height:20px;border-radius:4px;background:linear-gradient(#67869b,#193247);border:1px solid #567b93}.f1{left:45px}.f2{left:172px}.schematic{min-height:78px;display:flex;align-items:center;justify-content:center;padding:1px 14px 8px;gap:12px;color:#d7e8f7}.schematic svg{height:76px;max-width:100%;width:100%}.graph-panel{display:flex;flex-direction:column;min-height:0}.graph-panel canvas{display:block;width:calc(100% - 24px);height:calc(100% - 78px);flex:1;min-height:170px;margin:7px 12px 0}.legend{min-height:24px;padding:0 16px 9px;font-size:10px;color:#a9bfd2;display:flex;gap:15px;flex-wrap:wrap}.legend span:before{content:'●';color:var(--c);margin-right:5px}.results #metrics{padding:12px 12px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.metric{border-radius:9px;background:#0c1b2a;border:1px solid #30485f;padding:10px 9px;min-width:0}.metric .key{font-size:10px;color:#8faec6;line-height:1.2;min-height:24px}.metric .number{font-size:clamp(16px,1.3vw,22px);font-weight:800;color:#f3f7fc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric .unit{font-size:10px;color:#ffbf7c;margin-left:3px}.formula,.explanation,.disclaimer{font-size:11px;line-height:1.48;margin:10px 12px 0;padding:10px;background:#0b1a29;border:1px solid #29435b;border-radius:9px}.formula{color:#ffd18c;font-family:'Cambria Math',Georgia,serif}.explanation{color:#bdd4e6}.disclaimer{color:#90adbf;margin-top:auto;margin-bottom:13px;border-style:dashed}footer{display:flex;justify-content:space-between;padding:2px 6px;color:#718da4;font-size:10px}body{overflow-x:hidden}@media(max-width:1100px){.workspace{grid-template-columns:250px minmax(350px,1fr)}.results{grid-column:1/-1}.results #metrics{grid-template-columns:repeat(6,1fr)}.results .disclaimer{margin-top:10px}.visual-area{min-height:520px}}@media(max-width:680px){.app{padding:9px}.workspace{display:flex;flex-direction:column}.visual-area{min-height:590px}nav{display:flex;overflow:auto}nav button{min-width:165px}header{align-items:flex-start}.mode-tag{display:none}.results #metrics{grid-template-columns:repeat(2,1fr)}h1{font-size:17px}.panel{min-width:0}}
@media(min-width:1101px){.app{height:100vh;min-height:0}.workspace{overflow:hidden}.settings,.results,.visual-area{min-height:0}.results{overflow:hidden}.formula,.explanation,.disclaimer{font-size:10.5px;line-height:1.4}.illustration{min-height:0}.graph-panel{min-height:0}}
#chart-kind{margin-left:auto;background:#0b1b2a;color:#bad7e9;border:1px solid #3a566c;border-radius:6px;padding:3px 5px;font-size:10px;max-width:175px}

/* V2: tavola elettrotecnica estesa, senza alterare il layout a finestra unica. */
.illustration #machine{min-height:105px;flex:0.85}
.machine-assembly{transform:scale(.79)}
.schematic{flex:1.2;min-height:135px;padding:0 10px 6px;align-items:stretch}
.schematic svg{height:100%;max-height:185px;width:100%;filter:drop-shadow(0 2px 3px #0005)}
@media(min-width:1200px) and (min-height:800px){.visual-area{grid-template-rows:minmax(300px,1.09fr) minmax(230px,.91fr)}}
@media(max-height:780px) and (min-width:1101px){.schematic{min-height:110px}.machine-assembly{transform:scale(.67)}}

/* V3 MASTER: immagini raster esterne professionali, schema matematicamente distinto. */
.illustration #machine{min-height:145px;flex:1.40;position:relative;overflow:hidden;background:#0d1f2e}
#apparatus{width:100%;height:100%;object-fit:contain;position:absolute;inset:0;filter:drop-shadow(0 4px 7px #0008)}
.scene-legend{position:absolute;bottom:2px;right:7px;font-size:8px;color:#d6e4ee;background:#071521bb;padding:3px 6px;border-radius:4px}
#machine .machine-assembly{position:absolute;right:3px;top:0;transform:scale(.19);transform-origin:top right;opacity:.85;pointer-events:none}
.schematic{flex:.65;min-height:87px;padding:2px 10px 5px;border-top:1px solid #39516a}
.schematic svg{max-height:103px;filter:none}
@media(max-height:780px) and (min-width:1101px){.illustration #machine{min-height:122px}.schematic{min-height:70px}}

/* V4: scena tecnico-realistica unica con schema deterministico complementare, non duplicato. */
.illustration{--visual-gap:0;}
.illustration #machine{flex:1.65;min-height:0;overflow:hidden;background:linear-gradient(160deg,#142b3d,#0a1b2c);}
#apparatus{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;filter:none;}
#machine .machine-assembly{display:none!important;}
.scene-legend{right:8px;bottom:3px;z-index:2;background:#081522db;color:#c7d8e5;font-size:9px;}
.schematic{flex:0 0 112px;min-height:0;padding:3px 12px 5px;border-top:0;background:linear-gradient(180deg,#102639,#0e2134);position:relative;}
.schematic::before{content:'';position:absolute;top:0;left:16px;right:16px;height:1px;background:#38576a;}
.schematic svg{height:100%;max-height:none;width:100%;max-width:100%;}
.illustration.full-scene #machine{flex:1;}
.illustration.full-scene .schematic{display:none;}
.illustration.full-scene #apparatus{object-fit:contain;}
.illustration.full-scene .scene-legend{bottom:8px;}
@media(min-width:1101px) and (max-height:800px){.schematic{flex-basis:90px}.visual-area{grid-template-rows:minmax(260px,1.04fr) minmax(200px,.96fr)}}

/* CORREZIONE LAB46: una sola tavola 3D+schema per modalità. I WebP approvati includono già i diagrammi. */
.illustration .schematic{display:none!important;}
.illustration #machine{flex:1!important;min-height:0!important;}
.run-controls button:disabled{opacity:.42;cursor:not-allowed;filter:grayscale(.65);}

/* Compattazione a 720px: niente testo risultati troncato. */
@media (min-width:1101px) and (max-height:780px){
.results #metrics{padding:6px 8px 0;gap:5px;}
.metric{padding:5px 7px;}
.metric .key{font-size:9px;min-height:18px;}
.metric .number{font-size:16px;}
.formula,.explanation,.disclaimer{padding:6px 8px;margin:5px 8px 0;font-size:9.4px;line-height:1.28;}
.disclaimer{margin-top:auto;margin-bottom:6px;}
.results .panel-head{padding:9px 12px 7px;}
}
