/* Biometry — a workspace mode that takes the motion panel's column, so the
   stage never moves while a dimension, the pupil or accommodation changes. */
.eye3d-workspace.is-biometry > .motion-panel { display: none !important; }
.biometry-panel { display: flex; flex-direction: column; gap: 14px; border-inline-start: 1px solid var(--line); }
.biometry-panel .panel-heading { margin-bottom: 0; }
.biometry-panel .panel-heading .icon-button { width: 32px; height: 32px; }
.biometry-lead { margin: -4px 0 0; color: var(--muted); font-size: .72rem; line-height: 1.55; }

.biometry-group { display: grid; gap: 8px; padding-top: 12px; border-top: 1px solid var(--line); }
.biometry-group h3 { margin: 0; color: var(--faint); font: 500 .625rem/1.3 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; }
html[dir="rtl"] .biometry-group h3 { font-family: var(--font-ar); letter-spacing: 0; font-size: .7rem; }

.eye-biometry-parameters { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.eye-biometry-parameters button { display: grid; align-content: center; gap: 3px; min-height: 52px; padding: 8px 10px; border: 1px solid var(--line-strong); border-radius: 10px; color: var(--muted); background: var(--panel-2); text-align: start; cursor: pointer; transition: color .15s ease-out, border-color .15s ease-out, background-color .15s ease-out, transform .12s ease-out; }
.eye-biometry-parameters button:hover { color: var(--ink); border-color: var(--teal); background: var(--teal-soft); }
.eye-biometry-parameters button:active { transform: scale(.97); }
.eye-biometry-parameters strong { color: var(--teal); font: 600 .7rem/1 var(--font-mono); }
.eye-biometry-parameters span { font-size: .64rem; font-weight: 600; line-height: 1.3; }
.eye-biometry-parameters button[aria-pressed="true"] { color: var(--on-accent); border-color: var(--teal); background: var(--teal); box-shadow: 0 6px 14px -6px rgba(31, 75, 76, .55); }
.eye-biometry-parameters button[aria-pressed="true"] strong { color: var(--amber-soft); }

.eye-biometry-reading { display: grid; gap: 4px; padding: 13px 14px; border: 1px solid var(--teal-line); border-inline-start: 3px solid var(--teal-mid); border-radius: 12px; background: var(--teal-soft); }
.biometry-reading-head { display: grid; gap: 4px; }
.eye-biometry-reading .biometry-reading-value { justify-self: start; color: var(--teal-strong); font: 500 1.85rem/1.05 var(--font-display); font-variant-numeric: tabular-nums; }
.eye-biometry-reading p { margin: 2px 0 0; color: var(--muted); font-size: .7rem; line-height: 1.6; }
.biometry-reading-name { color: var(--teal); font: 600 .66rem/1.3 var(--font-mono); }
html[dir="rtl"] .biometry-reading-name { font-family: var(--font-ar); }
.biometry-reading-source { color: var(--faint); font-size: .62rem; }

.biometry-slider { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 4px 10px; }
.biometry-slider label { color: var(--muted); font-size: .7rem; font-weight: 600; }
.biometry-slider output { color: var(--teal); font: 500 .7rem/1 var(--font-mono); }
.biometry-slider input { grid-column: 1 / -1; width: 100%; margin: 2px 0 6px; accent-color: var(--teal); cursor: pointer; }

.biometry-inspect { padding-top: 12px; border-top: 1px solid var(--line); }
.biometry-inspect summary { display: flex; align-items: center; gap: 9px; min-height: 32px; color: var(--ink); font-size: .72rem; font-weight: 700; cursor: pointer; list-style: none; }
.biometry-inspect summary::-webkit-details-marker { display: none; }
.biometry-inspect summary::before { content: ""; width: 6px; height: 6px; border-inline-end: 1.5px solid var(--teal); border-bottom: 1.5px solid var(--teal); transform: rotate(-45deg); transition: transform .18s ease-out; }
html[dir="rtl"] .biometry-inspect summary::before { transform: rotate(45deg); }
.biometry-inspect[open] summary::before { transform: rotate(45deg); }
html[dir="rtl"] .biometry-inspect[open] summary::before { transform: rotate(-45deg); }
.biometry-inspect[open] > summary { margin-bottom: 8px; }
.biometry-inspect small { display: block; margin-top: 8px; color: var(--faint); font-size: .62rem; line-height: 1.55; }
.biometry-secondary, .eye-biometry-return { min-height: 40px; padding: 0 12px; border: 1px solid var(--line-strong); border-radius: 9px; background: var(--panel); color: var(--teal); font-size: .7rem; font-weight: 700; cursor: pointer; transition: background-color .15s ease-out, border-color .15s ease-out, transform .12s ease-out; }
.biometry-secondary { width: 100%; }
.biometry-secondary:hover { border-color: var(--teal); background: var(--teal-soft); }
.biometry-secondary:active, .eye-biometry-return:active { transform: scale(.97); }
.eye-biometry-return { flex-shrink: 0; margin-top: auto; color: var(--on-accent); border-color: var(--teal); background: var(--teal); }
.eye-biometry-return:hover { background: var(--teal-strong); }
.eye-biometry-limit { margin: 0; color: var(--faint); font-size: .62rem; line-height: 1.55; }
.biometry-panel button:focus-visible, .biometry-panel summary:focus-visible { outline: 2px solid var(--teal-mid); outline-offset: 2px; }

.eye-measurement-overlay { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 4; overflow: hidden; }
.eye-measurement-overlay[hidden] { display: none; }
.eye-measurement-overlay line { stroke: #075b66; stroke-width: 2; }
.eye-measurement-overlay .extension { stroke-width: 1; stroke-dasharray: 3 3; }
.eye-measurement-overlay circle { fill: #fff; stroke: #075b66; stroke-width: 2; }
.eye-measurement-overlay rect { fill: #fff; stroke: #b9d2ce; }
.eye-measurement-overlay text { font: 12px sans-serif; fill: #15494d; }

@media (max-width: 980px) {
  .biometry-panel { grid-column: 2; grid-row: 2; border-inline-start: 0; border-top: 1px solid var(--line); }
}
@media (max-width: 640px) {
  .eye-biometry-parameters button { min-height: 56px; }
}
@media (prefers-reduced-motion: reduce) {
  .eye-biometry-parameters button, .biometry-secondary, .eye-biometry-return, .biometry-inspect summary::before { transition: none; }
}

/* ── Adjustable dimension ──────────────────────────────────────────────────
   The slider edits this eye; the bar beneath it shows where the population
   norm sits on the same scale, so a change reads against real values. */
.biometry-edited { margin-inline-start: 8px; padding: 3px 8px; border-radius: 999px; color: var(--amber-ink); background: var(--amber-soft); font-size: .6rem; font-weight: 700; }
.biometry-adjust { margin-top: 8px; }
.dimension-control { display: grid; gap: 6px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); transition: border-color .2s ease-out; }
.dimension-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.dimension-head label { color: var(--ink); font-size: .7rem; font-weight: 700; }
.dimension-head output { color: var(--teal-strong); font: 600 .78rem/1 var(--font-mono); font-variant-numeric: tabular-nums; transition: color .15s ease-out; }
.dimension-control.is-changed .dimension-head output { color: var(--amber-ink); }
.dimension-track { display: grid; gap: 3px; }
.dimension-track input { width: 100%; margin: 4px 0 0; accent-color: var(--teal); cursor: pointer; }
.dimension-scale { position: relative; height: 6px; margin-inline: 8px; border-radius: 3px; background: var(--sunken); }
.dimension-band { position: absolute; top: 0; bottom: 0; border-radius: 3px; background: var(--teal-line); }
.dimension-mean { position: absolute; top: -3px; bottom: -3px; width: 2px; border-radius: 1px; background: var(--amber); transform: translateX(-50%); }
html[dir="rtl"] .dimension-mean { transform: translateX(50%); }
.dimension-ends { display: flex; justify-content: space-between; color: var(--faint); font: 500 .58rem/1 var(--font-mono); }
.dimension-legend { display: grid; gap: 3px; margin: 2px 0 0; padding: 0; list-style: none; color: var(--muted); font-size: .62rem; line-height: 1.4; }
.dimension-legend li { display: flex; align-items: center; gap: 7px; }
.dimension-legend li::before { content: ""; flex: 0 0 auto; width: 14px; height: 6px; border-radius: 3px; }
.dimension-legend .is-band::before { background: var(--teal-line); }
.dimension-legend .is-mean::before { width: 2px; height: 11px; margin-inline: 6px; background: var(--amber); }
.dimension-legend .is-outside::before { width: 8px; height: 8px; margin-inline: 3px; border-radius: 50%; background: transparent; box-shadow: inset 0 0 0 2px var(--amber); }
.dimension-delta { margin: 0; color: var(--faint); font-size: .62rem; }
.dimension-control.is-changed .dimension-delta { color: var(--amber-ink); font-weight: 600; }
.dimension-limit { margin: 0; color: var(--danger); font-size: .64rem; font-weight: 600; }
.dimension-limit:empty { display: none; }
.dimension-control.is-limited { border-color: rgba(180, 55, 47, .45); }
.dimension-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.dimension-actions button { flex: 1 1 auto; min-height: 34px; padding: 0 10px; border: 1px solid var(--line-strong); border-radius: 8px; background: var(--panel-2); color: var(--teal); font-size: .64rem; font-weight: 700; cursor: pointer; transition: background-color .15s ease-out, border-color .15s ease-out, transform .12s ease-out; }
.dimension-actions button:hover:not(:disabled) { border-color: var(--teal); background: var(--teal-soft); }
.dimension-actions button:active:not(:disabled) { transform: scale(.97); }
.dimension-actions button:disabled { opacity: .45; cursor: default; }

/* ── Evidence: claim → support level → model limit → numbered sources ─── */
.biometry-evidence { display: grid; gap: 7px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--teal-line); }
.biometry-support { justify-self: start; padding: 3px 8px; border-radius: 999px; font-size: .58rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
html[dir="rtl"] .biometry-support { letter-spacing: 0; }
.biometry-support--population { color: var(--teal-strong); background: #d3e6e4; }
.biometry-support--trend { color: var(--amber-ink); background: var(--amber-soft); }
.biometry-support--model { color: var(--muted); background: var(--sunken); }
.biometry-claim { margin: 0; color: var(--ink); font-size: .68rem; line-height: 1.6; }
.biometry-model-limit, .biometry-accommodation-evidence p { margin: 0; color: var(--muted); font-size: .63rem; line-height: 1.55; }
.biometry-model-limit strong, .biometry-accommodation-evidence strong { color: var(--teal); font-weight: 700; }
.biometry-accommodation-evidence { display: grid; gap: 6px; margin-top: -2px; }
.biometry-cites { display: flex; flex-wrap: wrap; gap: 5px; }

@media (prefers-reduced-motion: reduce) {
  .dimension-control, .dimension-actions button { transition: none; }
}
