/* Activités : balance à équations, IA par k plus proches voisins, mini modèle de langage. */

/* Balance */
.bal .lab-grid { grid-template-columns: minmax(0, 1.4fr) minmax(220px, .8fr); }
.bal-svg { width: 100%; max-width: 640px; }
.bal-foot, .bal-post { fill: var(--ink-3); stroke: var(--ink-3); stroke-width: 6; stroke-linecap: round; }
.bal-beam { stroke: var(--ink); stroke-width: 7; stroke-linecap: round; transition: all .5s var(--ease); }
.bal-pivot { fill: var(--card); stroke: var(--ink); stroke-width: 3; }
.bal-string { stroke: var(--ink-3); stroke-width: 1.5; }
.bal-pan { fill: var(--paper-2); stroke: var(--ink); stroke-width: 2; }
.bal-bag path:first-child { fill: #c9a26b; stroke: #7a5a2c; stroke-width: 1.5; }
.bal-tie { fill: none; stroke: #7a5a2c; stroke-width: 1.5; }
.bal-bag text { font: 700 12px var(--font-display); fill: #3b2a12; }
.bal-marble { fill: var(--maths); stroke: color-mix(in srgb, var(--maths) 60%, #000); stroke-width: 1; }
.bal-status { font-weight: 700; min-height: 1.4em; }
.bal-buttons { gap: 6px; }
.bal-log li { padding: 2px 0; }

/* IA : k plus proches voisins */
.knn-svg { max-width: 520px; background: var(--card); border: 1px solid var(--rule); border-radius: var(--radius-s); cursor: crosshair; }
.knn-axis { stroke: var(--ink); stroke-width: 1.5; }
.knn-lab { font: 12px var(--font-body); fill: var(--ink-2); }
.knn-tick { font: 11px var(--font-body); fill: var(--ink-3); }
.knn-pt { stroke: var(--card); stroke-width: 1.5; }
.knn-pomme { fill: #d6453d; }
.knn-poire { fill: #6a9a2a; }
.knn-zone { opacity: .13; }
.knn-zone-pomme { fill: #d6453d; }
.knn-zone-poire { fill: #6a9a2a; }
.knn-link { stroke: var(--ink-2); stroke-width: 1.2; stroke-dasharray: 3 3; }
.knn-probe { fill: var(--focus); stroke: var(--ink); stroke-width: 2; }
.knn-q { font: 700 12px var(--font-body); fill: var(--ink); pointer-events: none; }
.knn-info { min-height: 3em; font-size: .95rem; }
.knn-eval { margin-top: 12px; }
.knn-matrix th, .knn-matrix td { text-align: center; }
.knn-kb { display: grid; gap: 6px; margin-top: 6px; }
.knn-kb label { display: grid; gap: 2px; font-size: .88rem; }

/* Mini modèle de langage */
.bg-output { margin-top: 10px; }
.bg-sentence { display: flex; flex-wrap: wrap; gap: 4px; font-size: 1.15rem; }
.bg-word { border: 1px solid var(--rule-2); background: var(--card); border-radius: 6px; padding: 2px 8px; cursor: pointer; font-family: var(--font-display); }
.bg-word:hover { background: var(--paper-2); }
.bg-bar { display: inline-block; height: 10px; background: var(--numerique); border-radius: 3px; vertical-align: middle; max-width: 100px; }
.bg-dist table td:first-child { font-family: var(--font-display); }
