/* ------------------------------------------------------------------
   osteoarthritis.css — ajustements propres à la maquette « arthrose du
   genou ». La charte générale vient de /core/css/ui.css (la zone grisée
   d'une jauge, .range-lock, y compris).
------------------------------------------------------------------ */

/* jauges à crans : un repère sous chaque cran, centré sur la position du
   curseur (le centre du curseur de 18 px parcourt la piste de 9 px à
   largeur − 9 px) — même rendu que les maquettes de l'épaule */
.ticks {
  display: flex; justify-content: space-between;
  padding: 0 8px; margin-top: -3px;
  pointer-events: none;
}
.ticks i { display: block; width: 2px; height: 6px; border-radius: 1px; background: var(--border-2); }
/* noms des crans, AU-DESSUS de la piste, chacun sur son cran (grades de Kellgren-Lawrence, épanchement) ; le premier s'aligne à gauche, le dernier à droite */
.tick-labels { position: relative; height: 16px; margin: 6px 0 -2px; pointer-events: none; }
.tick-labels span {
  position: absolute; top: 0; transform: translateX(-50%);
  font-size: 12px; line-height: 16px; color: var(--ink-2); white-space: nowrap;
}
.tick-labels span:first-child { transform: translateX(-9px); }
.tick-labels span:last-child { transform: translateX(calc(-100% + 9px)); }
.tick-labels span.is-active { color: var(--accent); font-weight: 600; }

/* la forme d'arthrose : liste déroulante — même rendu que la maquette de la
   coiffe : hauteur tactile, chevron maison */
.field-label { display: block; margin: 14px 0 6px; font-size: 13px; font-weight: 500; }
.pnl-sub + .field-label { margin-top: 4px; }
p.field-label { margin-bottom: 2px; }
.select { position: relative; margin-top: 2px; }
.select select {
  -webkit-appearance: none; appearance: none;
  width: 100%; min-height: 44px; padding: 10px 38px 10px 12px;
  font: inherit; font-size: 14px; font-weight: 500; color: var(--ink);
  background: var(--surface); border: 1px solid var(--border-2); border-radius: var(--r-sm);
  cursor: pointer;
}
.select select:hover { border-color: var(--tone, var(--accent)); }
.select::after {
  content: ""; position: absolute; right: 15px; top: 50%;
  width: 7px; height: 7px; margin-top: -6px; pointer-events: none;
  border-right: 2px solid var(--ink-2); border-bottom: 2px solid var(--ink-2);
  transform: rotate(45deg);
}

/* les jauges de Kellgren-Lawrence : une, ou trois en sélection libre */
#kl-one[hidden], #kl-free[hidden] { display: none; }
.pnl-body > .switch { margin-top: 12px; }

/* réglette de l'interligne fémoro-tibial : pendant la transition d'un stade
   à l'autre, à côté du compartiment (cf. jswShow dans osteoarthritis-viewer.js) ;
   même facture que le rapporteur du CSA de la maquette de la coiffe */
.jsw-gauge {
  position: absolute; transform: translate(-50%, calc(-112px));   /* le 0 de la réglette (y0) sur le plateau */
  opacity: 0; transition: opacity .25s ease; pointer-events: none;
  --jsw: var(--ok);
}
.jsw-gauge.on { opacity: 1; }
.jsw-gauge.bad { --jsw: var(--danger); }
.jsw-gauge svg { display: block; overflow: visible; filter: drop-shadow(0 1px 2px rgba(16,32,38,.18)); }
.jsw-plate { fill: color-mix(in srgb, var(--surface) 88%, transparent); stroke: var(--border-2); stroke-width: 1; }
.jsw-tick { stroke: var(--ink-3); stroke-width: 1; }
.jsw-num { font: 600 9px "IBM Plex Sans", Helvetica, Arial, sans-serif; fill: var(--ink-2); text-anchor: middle; }
.jsw-fill { fill: var(--jsw); fill-opacity: .22; transition: fill .3s; }
.jsw-jaw { stroke: var(--ink-2); stroke-width: 2.4; stroke-linecap: round; }
.jsw-val { font: 700 16px "IBM Plex Sans", Helvetica, Arial, sans-serif; fill: var(--jsw); text-anchor: middle; font-variant-numeric: tabular-nums; transition: fill .3s; }
.jsw-cap { font: 600 9.5px "IBM Plex Sans", Helvetica, Arial, sans-serif; fill: var(--ink-2); text-anchor: middle; letter-spacing: .06em; text-transform: uppercase; }

/* « Kyste poplité » et « Capsule » côte à côte, sur une ligne */
.switch-row { display: flex; flex-wrap: wrap; gap: 4px 20px; margin-top: 12px; }
.switch-row > .switch { margin-top: 0; }

/* la jauge varus/valgus : son titre et l'angle, au-dessus */
.align-head { margin-top: 16px; margin-bottom: 0; }
.tick-labels span[style="left:50%"] { transform: translateX(-50%); }

/* rapporteur de l'axe (varus/valgus) : sommet au centre du genou, éventail
   vers le bas (cf. axShow dans osteoarthritis-viewer.js) — même facture
   que le rapporteur du CSA */
.ax-gauge {
  position: absolute; transform: translate(-50%, -14px);
  opacity: 0; transition: opacity .25s ease; pointer-events: none;
  --ax: var(--ok);
}
.ax-gauge.on { opacity: 1; }
.ax-gauge.bad { --ax: var(--danger); }
.ax-gauge svg { display: block; overflow: visible; filter: drop-shadow(0 1px 2px rgba(16,32,38,.18)); }
.ax-plate { fill: color-mix(in srgb, var(--surface) 86%, transparent); stroke: var(--border-2); stroke-width: 1; }
.ax-tick { stroke: var(--ink-3); stroke-width: 1; }
.ax-num { font: 600 9px "IBM Plex Sans", Helvetica, Arial, sans-serif; fill: var(--ink-2); text-anchor: middle; }
.ax-ref { stroke: var(--ink-2); stroke-width: 1.6; stroke-dasharray: 4 3; }
.ax-sector { fill: var(--ax); fill-opacity: .2; transition: fill .3s; }
.ax-ray { stroke: var(--ax); stroke-width: 2.4; stroke-linecap: round; transition: stroke .3s; }
.ax-tip, .ax-vertex { fill: var(--ax); transition: fill .3s; }
.ax-vertex { fill: var(--ink-2); }
.ax-val { font: 700 20px "IBM Plex Sans", Helvetica, Arial, sans-serif; fill: var(--ax); text-anchor: middle; font-variant-numeric: tabular-nums; transition: fill .3s; }
.ax-cap { font: 600 9.5px "IBM Plex Sans", Helvetica, Arial, sans-serif; fill: var(--ink-2); text-anchor: middle; letter-spacing: .06em; text-transform: uppercase; }

/* les deux ménisques, une liste chacun, l'une sous l'autre en pleine
   largeur (côte à côte, « Automatique · clivage horizontal » était tronqué) */
.men-row { display: grid; grid-template-columns: 1fr; gap: 2px; }
.men-row .field-label { margin-top: 6px; }
.men-row .select select { min-height: 40px; padding-top: 8px; padding-bottom: 8px; text-overflow: ellipsis; }
