/* Shared composition, script-specific text. Fonts are native fallbacks, not bundled webfonts. */
[lang] { --reading-font: "Noto Sans", "Segoe UI", Arial, sans-serif; }
:lang(ja) { --reading-font: "Noto Sans JP", "Hiragino Sans", "Yu Gothic UI", sans-serif; }
:lang(zh-Hans) { --reading-font: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif; }
:lang(yue), :lang(zh-Hant) { --reading-font: "Noto Sans HK", "PingFang HK", "Noto Sans TC", "Microsoft JhengHei", sans-serif; }
:lang(ko) { --reading-font: "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif; }
:lang(ar), :lang(fa) { --reading-font: "Noto Sans Arabic", "Geeza Pro", "Tahoma", sans-serif; }
:lang(th) { --reading-font: "Noto Sans Thai", "Thonburi", "Leelawadee UI", sans-serif; }
:lang(hi) { --reading-font: "Noto Sans Devanagari", "Kohinoor Devanagari", "Nirmala UI", sans-serif; }
body, [data-script] { font-family: var(--reading-font); }
[data-script] { text-align: start; unicode-bidi: isolate; word-break: normal; }
[data-script=arabic], [data-script=thai], [data-script=devanagari] { letter-spacing: normal; }
[lang=ru] { direction: ltr; unicode-bidi: isolate; font-family: var(--ru-font); }
.verb-card, .detail-block, .conjugation-grid, .form-row, .reflexive-panel, .list-row, .drawer-position-line, .page-scrubber { direction: ltr; }
.verb-id, .list-id, #positionLabel, #pagePreview, .detail-label > span:first-child { direction: ltr; unicode-bidi: isolate; }

/* Translations may grow vertically. Never truncate, clamp, or shrink a paragraph to fit a card. */
.meaning, .translation, .list-meaning, .detail-meaning, #reflexiveMeaning, .government { min-width: 0; max-width: 100%; white-space: normal; overflow: visible; overflow-wrap: anywhere; word-break: normal; line-height: 1.65; }
:is(.meaning,.translation,.list-meaning,.detail-meaning,#reflexiveMeaning)[data-script=latin] { hyphens: auto; }
:is(.meaning,.translation,.list-meaning,.detail-meaning,#reflexiveMeaning)[data-script=arabic] { line-height: 1.9; hyphens: none; }
:is(.meaning,.translation,.list-meaning,.detail-meaning,#reflexiveMeaning)[data-script=thai],
:is(.meaning,.translation,.list-meaning,.detail-meaning,#reflexiveMeaning)[data-script=devanagari] { line-height: 1.85; hyphens: none; }
:is(.meaning,.translation,.list-meaning,.detail-meaning,#reflexiveMeaning)[data-script=japanese],
:is(.meaning,.translation,.list-meaning,.detail-meaning,#reflexiveMeaning)[data-script=simplified],
:is(.meaning,.translation,.list-meaning,.detail-meaning,#reflexiveMeaning)[data-script=traditional] { line-break: strict; }
:is(.meaning,.translation,.list-meaning,.detail-meaning,#reflexiveMeaning)[data-script=korean] { word-break: keep-all; }
.example { grid-template-columns: 18px minmax(0,1fr); }
.example > div { min-width: 0; }
.meta-row { gap: 12px; align-items: baseline; }
.aspect-badge { min-width: 0; max-width: 78%; overflow-wrap: anywhere; line-height: 1.5; text-align: end; font-family: var(--reading-font); letter-spacing: normal; }
.pair-link { width: 100%; }
.pair-link #pairLabel { flex: 0 1 auto; max-width: 40%; overflow-wrap: anywhere; }
.pair-link #pairVerb { flex: 1; white-space: nowrap; }
.headline-copy h1, .detail-block h2, .ru-heading, .form-value, .list-verb, .drawer-word, #reflexiveVerb { line-height: 1.35; padding-block: .08em; }
.form-label { font-family: var(--ru-font); direction: ltr; unicode-bidi: isolate; }
.form-list { grid-auto-rows: minmax(1.65rem,auto); }
@supports (grid-template-rows: subgrid) {
  .conjugation-grid { grid-template-rows: auto auto; row-gap: 9px; }
  .conjugation-grid > div { display: grid; grid-row: span 2; grid-template-rows: subgrid; }
  .conjugation-grid h3 { margin-bottom: 0; }
}
.conjugation-grid h3 { overflow-wrap: anywhere; }
.status-control { grid-template-columns: repeat(3,minmax(0,1fr)); align-items: stretch; }
.status-choice, .status-choice.reviewing { display: flex; gap: 5px; min-width: 0; padding: 12px 7px; }
.status-choice span { flex: 0 0 14px; width: 14px; }
.status-choice b { min-width: 0; font-size: .875rem; line-height: 1.5; white-space: normal; overflow-wrap: anywhere; }
.folder-button { min-width: 0; gap: 6px; }
.folder-button span { min-width: 0; font-size: .875rem; line-height: 1.5; overflow-wrap: anywhere; }
.folder-button b { flex: 0 0 auto; }
.list-state { min-width: 0; max-width: 90px; overflow-wrap: anywhere; white-space: normal; line-height: 1.5; }
.list-meaning { font-size: 1rem; }
.example .translation, .detail-example .translation, #reflexiveMeaning { font-size: 1rem; line-height: 1.65; }
.example .translation[data-script=arabic], .detail-example .translation[data-script=arabic], #reflexiveMeaning[data-script=arabic] { line-height: 1.9; }
.example .translation[data-script=thai], .detail-example .translation[data-script=thai], #reflexiveMeaning[data-script=thai], .example .translation[data-script=devanagari], .detail-example .translation[data-script=devanagari], #reflexiveMeaning[data-script=devanagari] { line-height: 1.85; }
.page-heading > div, .page-heading h1, .list-subheading h2, .setting-action > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.setting-action { text-align: start; }
.settings-group .setting-row { flex-wrap: wrap; }
.settings-group .setting-row select { max-width: 100%; }
.settings-dialog, .settings-feedback, .course-copy, .nav-button b, .mode-button, .outline-button { overflow-wrap: anywhere; }
.settings-segment { max-width: 100%; }
.settings-segment button { min-width: 0; overflow-wrap: anywhere; }
.settings-type-preview > :last-child { line-height: 1.7; }
#searchInput, #reportNote { unicode-bidi: plaintext; }
html[dir=rtl] :is(.page-heading h1,.list-subheading h2,.nav-button,.course-card h3,.settings-group h2,.mode-button) { font-family: var(--reading-font); letter-spacing: normal; }
html[dir=rtl] :is(.nav-button,.folder-button,.all-words-button) { text-align: start; }
@media (max-width: 390px) {
  .status-choice b { font-size: .875rem; }
  .list-row { grid-template-columns: 34px minmax(0,1fr); column-gap: 9px; row-gap: 6px; }
  .list-state { grid-column: 2; justify-self: end; max-width: 100%; padding-block: 3px; }
  .folder-button { display: grid; justify-items: start; }
}
