/* ===========================================================================
 * 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.
 *
 * ONE EXCEPTION, and it is VERSE (.pb-linefit-wrap, ui.jsx pbIsVerse). Flow
 * joins canonical lines back into paragraphs, which is right for hard-wrapped
 * prose and destroys a poem — the line break IS the content there. So a poem
 * whose widest line will not fit keeps one row per line and lets that row wrap,
 * with the turn indented under it the way print sets a long verse line. Line
 * identity survives: one row, one number, in the gutter.
 * (This is the old floor fallback, re-scoped to the single case flow cannot
 * serve rather than used for every "it does not fit".) */
.pb-linefit .pb-fixed-line { white-space: nowrap; }
/* WRAP MODE TAKES THE WHOLE PANE. Stated outright rather than relied on: the
 * gutter presentation is centred in an intrinsic `min-content` grid track
 * (components/items/passage-item.css) and that track is exactly wrong here —
 * wrapping rows have a min-content of one WORD. The `:not()` there already
 * excludes wrap; this is the belt, so no future centring rule can quietly take
 * width back from a line that is wrapping because it has none to spare. */
.pb-linefit.pb-linefit-wrap {
  display: block;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}
.pb-linefit.pb-linefit-wrap .pb-fixed-line {
  white-space: pre-wrap;
  overflow-wrap: break-word;
  /* Hanging indent: the turn sits under the line it belongs to, clear of the
     gutter number's column, so a wrapped row still reads as ONE verse line. */
  padding-left: 1.1em;
  text-indent: -1.1em;
}

