/* ===========================================================================
 * subjects/reading/styles.css
 * ===========================================================================
 * What is left of reading's own stylesheet after the standalone reading app
 * was deleted: the PbLineFit rules, which serve subjects/reading/ui.jsx —
 * the shared passage-renderer layer the unified practice runner consumes.
 *
 * The `.reading-screen { --rd-* }` token-alias block went with the screens
 * that scoped it (screens-reading / screens-stats / review); the canonical
 * PassageItem visual lives unscoped in components/items/passage-item.css.
 * ======================================================================== */

/* Gutter rows must never soft-wrap — line identity is the content ("line 22" =
 * the same words everywhere) — AND the nowrap is what makes them measurable:
 * usePbFit compares scrollWidth (the whole line) against clientWidth (the pane)
 * to decide gutter vs flow. A line that does not fit is never wrapped in place;
 * the whole passage switches to the flowing presentation instead
 * (.pb-linefit-flow, built in ui.jsx), which has no .pb-fixed-line rows at all.
 * (The old .pb-linefit-wrap floor fallback is gone: a third presentation for the
 * same "it does not fit" condition the flow path now covers.) */
.pb-linefit .pb-fixed-line { white-space: nowrap; }

/* Armed highlighter (.pp-hl-arm) draws a dashed hint on every [data-para] tap
 * target. In the flowing presentation the tap target is the PARAGRAPH block —
 * the per-line spans carry data-para only as an anchor / selection hook — so
 * they must not each draw a hint mid-paragraph. Gutter rows are DIVs and keep
 * theirs; only the inline line spans are exempted. */
.pp-hl-arm span[data-line][data-para] { border-bottom: none; }
