diff --git a/frontend/textbooks/geometry_8_ch4.html b/frontend/textbooks/geometry_8_ch4.html
index 0d0b1c4..3e4e655 100644
--- a/frontend/textbooks/geometry_8_ch4.html
+++ b/frontend/textbooks/geometry_8_ch4.html
@@ -4790,8 +4790,8 @@ function buildP12(){
-
-
+
+
@@ -4840,8 +4840,8 @@ function buildP12(){
-
-
+
+
@@ -6494,8 +6494,8 @@ function buildP16(){
Меняй положение секущей слайдером. PT² всегда равно PA·PB.
Выбери что искать: PT, PA или PB.
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
`;
/* ИНТЕРАКТИВ 4 — тренажёр */
@@ -6715,7 +6740,7 @@ function buildP16(){
const out=document.getElementById('p16-calc-out');
const modes={
pt:{label:'Найти PT',fields:[['PA','p16-cpa','4'],['PB','p16-cpb','9']],
- calc:()=>{const pa=parseFloat(document.getElementById('p16-cpa').value),pb=parseFloat(document.getElementById('p16-cpb').value);if(isNaN(pa)||isNaN(pb)||pa<=0||pb<=0||pa>=pb)return{err:'PA и PB > 0, PA < PB'};const pt=Math.sqrt(pa*pb);return{ok:'PT = \\u221a(PA\\u00b7PB) = \\u221a('+pa+'\\u00b7'+pb+') = '+pt.toFixed(4)};}},
+ calc:()=>{const pa=parseFloat(document.getElementById('p16-cpa').value),pb=parseFloat(document.getElementById('p16-cpb').value);if(isNaN(pa)||isNaN(pb)||pa<=0||pb<=0||pa>=pb)return{err:'PA и PB > 0, PA < PB'};const pt=Math.sqrt(pa*pb);return{ok:'PT = √(PA·PB) = √('+pa+'·'+pb+') = '+pt.toFixed(4)};}},
pa:{label:'Найти PA',fields:[['PT','p16-cpt2','6'],['PB','p16-cpb2','9']],
calc:()=>{const pt=parseFloat(document.getElementById('p16-cpt2').value),pb=parseFloat(document.getElementById('p16-cpb2').value);if(isNaN(pt)||isNaN(pb)||pt<=0||pb<=0||pt*pt>=pb*pb)return{err:'PT и PB > 0, PT < PB'};const pa=pt*pt/pb;return{ok:'PA = PT²/PB = '+pt+'²/'+pb+' = '+pa.toFixed(4)};}},
pb:{label:'Найти PB',fields:[['PT','p16-cpt3','6'],['PA','p16-cpa3','4']],