/* Self-hosted type (scripts/fonts.mjs). SIL Open Font License 1.1 — see docs/THIRD-PARTY-NOTICES.md. */
/* DM Sans 400 normal · latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-400-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* DM Sans 400 normal · latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-400-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* DM Sans 450 normal · latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 450;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-450-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* DM Sans 450 normal · latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 450;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-450-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* DM Sans 500 normal · latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-500-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* DM Sans 500 normal · latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-500-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* DM Sans 550 normal · latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 550;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-550-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* DM Sans 550 normal · latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 550;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-550-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* DM Sans 600 normal · latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-600-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* DM Sans 600 normal · latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-600-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* DM Sans 650 normal · latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 650;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-650-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* DM Sans 650 normal · latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 650;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-650-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* DM Sans 700 normal · latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-700-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* DM Sans 700 normal · latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-700-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Libre Baskerville 400 italic · latin-ext */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/libre-baskerville-400-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Libre Baskerville 400 italic · latin */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/libre-baskerville-400-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Libre Baskerville 400 normal · latin-ext */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/libre-baskerville-400-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Libre Baskerville 400 normal · latin */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/libre-baskerville-400-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Libre Baskerville 700 normal · latin-ext */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/libre-baskerville-700-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Libre Baskerville 700 normal · latin */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/libre-baskerville-700-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Noto Sans Coptic 400 normal · coptic */
@font-face {
  font-family: 'Noto Sans Coptic';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/noto-sans-coptic-400-normal-coptic.woff2) format('woff2');
  unicode-range: U+0300-0302, U+0304-0305, U+0307-0308, U+0311, U+0323, U+033F, U+035E, U+0361, U+0374-0375, U+03E2-03EF, U+1DCD, U+2010, U+2053, U+2056, U+2058-2059, U+25CC, U+2C80-2CFF, U+2E17, U+2E33-2E34, U+FE24-FE26, U+102E0-102FB;
}
/* Noto Sans Coptic 400 normal · latin-ext */
@font-face {
  font-family: 'Noto Sans Coptic';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/noto-sans-coptic-400-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Noto Sans Coptic 400 normal · latin */
@font-face {
  font-family: 'Noto Sans Coptic';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/noto-sans-coptic-400-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Noto Serif 400 italic · cyrillic-ext */
@font-face {
  font-family: 'Noto Serif';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-italic-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* Noto Serif 400 italic · cyrillic */
@font-face {
  font-family: 'Noto Serif';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-italic-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* Noto Serif 400 italic · greek-ext */
@font-face {
  font-family: 'Noto Serif';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-italic-greek-ext.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* Noto Serif 400 italic · greek */
@font-face {
  font-family: 'Noto Serif';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-italic-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* Noto Serif 400 italic · math */
@font-face {
  font-family: 'Noto Serif';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-italic-math.woff2) format('woff2');
  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* Noto Serif 400 italic · vietnamese */
@font-face {
  font-family: 'Noto Serif';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-italic-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* Noto Serif 400 italic · latin-ext */
@font-face {
  font-family: 'Noto Serif';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Noto Serif 400 italic · latin */
@font-face {
  font-family: 'Noto Serif';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Noto Serif 400 normal · cyrillic-ext */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-normal-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* Noto Serif 400 normal · cyrillic */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-normal-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* Noto Serif 400 normal · greek-ext */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-normal-greek-ext.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* Noto Serif 400 normal · greek */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-normal-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* Noto Serif 400 normal · math */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-normal-math.woff2) format('woff2');
  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* Noto Serif 400 normal · vietnamese */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-normal-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* Noto Serif 400 normal · latin-ext */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Noto Serif 400 normal · latin */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Noto Serif 700 normal · cyrillic-ext */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-700-normal-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* Noto Serif 700 normal · cyrillic */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-700-normal-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* Noto Serif 700 normal · greek-ext */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-700-normal-greek-ext.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* Noto Serif 700 normal · greek */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-700-normal-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* Noto Serif 700 normal · math */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-700-normal-math.woff2) format('woff2');
  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* Noto Serif 700 normal · vietnamese */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-700-normal-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* Noto Serif 700 normal · latin-ext */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-700-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Noto Serif 700 normal · latin */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-700-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Noto Serif Hebrew 400 normal · hebrew */
@font-face {
  font-family: 'Noto Serif Hebrew';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-hebrew-400-normal-hebrew.woff2) format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* Noto Serif Hebrew 400 normal · latin-ext */
@font-face {
  font-family: 'Noto Serif Hebrew';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-hebrew-400-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Noto Serif Hebrew 400 normal · latin */
@font-face {
  font-family: 'Noto Serif Hebrew';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-hebrew-400-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Noto Serif Hebrew 700 normal · hebrew */
@font-face {
  font-family: 'Noto Serif Hebrew';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-hebrew-700-normal-hebrew.woff2) format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* Noto Serif Hebrew 700 normal · latin-ext */
@font-face {
  font-family: 'Noto Serif Hebrew';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-hebrew-700-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Noto Serif Hebrew 700 normal · latin */
@font-face {
  font-family: 'Noto Serif Hebrew';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-hebrew-700-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Preferences applied by src/access.js as attributes and classes on <html>, shared by the public site and the
   workspace (marketing.css and app.css both import this). Every effect goes through the semantic tokens where one
   exists, so a theme or a typeface is set once here and inherited everywhere. */

/* ── Typefaces offered by the panel (SIL OFL 1.1; licence texts beside the files in public/assets/fonts/). Loaded
   only when chosen: a face is fetched the first time a rule uses it. */
@font-face{font-family:'Atkinson Hyperlegible Next';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/atkinson-hyperlegible-next-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Atkinson Hyperlegible Next';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/atkinson-hyperlegible-next-latin-400-italic.woff2) format('woff2')}
@font-face{font-family:'Atkinson Hyperlegible Next';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/atkinson-hyperlegible-next-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Atkinson Hyperlegible Next';font-style:italic;font-weight:700;font-display:swap;src:url(/assets/fonts/atkinson-hyperlegible-next-latin-700-italic.woff2) format('woff2')}
@font-face{font-family:'OpenDyslexic';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/opendyslexic-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'OpenDyslexic';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/opendyslexic-latin-400-italic.woff2) format('woff2')}
@font-face{font-family:'OpenDyslexic';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/opendyslexic-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'OpenDyslexic';font-style:italic;font-weight:700;font-display:swap;src:url(/assets/fonts/opendyslexic-latin-700-italic.woff2) format('woff2')}

/* ── Text size: one scale for site and workspace (app.css sets html{font-size:calc(16px * var(--ui-scale))}). */
html{font-size:calc(100% * var(--ui-scale,1))}

/* ── Reading spacing. Comfortable = WCAG 1.4.12; wide goes further. Original-language text keeps its own spacing. */
html[data-spacing] body{line-height:1.6}
html[data-spacing=comfortable] body{letter-spacing:.12em;word-spacing:.16em}
html[data-spacing=wide] body{letter-spacing:.18em;word-spacing:.32em;line-height:1.85}
html[data-spacing] main p,html[data-spacing] .verse,html[data-spacing] .dict-text p,html[data-spacing] .legal-body p{margin-block-end:2em}
html[data-spacing] .verses{line-height:2.1}html[data-spacing=wide] .verses{line-height:2.4}
html[data-spacing] [lang=he],html[data-spacing] [lang=grc],html[data-spacing] [lang=cop],html[data-spacing] .script-hebrew,html[data-spacing] .script-greek,html[data-spacing] .script-coptic,html[data-spacing] [lang=he] *,html[data-spacing] [lang=grc] *,html[data-spacing] [lang=cop] *{letter-spacing:0;word-spacing:normal}

/* ── Typeface: the semantic families swap; Hebrew, Greek and Coptic keep their Noto faces. */
html[data-typeface=system]{--ws-font-family-reading:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--ws-font-family-ui:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif}
html[data-typeface=hyperlegible]{--ws-font-family-reading:'Atkinson Hyperlegible Next',system-ui,sans-serif;--ws-font-family-ui:'Atkinson Hyperlegible Next',system-ui,sans-serif}
html[data-typeface=dyslexic]{--ws-font-family-reading:'OpenDyslexic',system-ui,sans-serif;--ws-font-family-ui:'OpenDyslexic',system-ui,sans-serif}
html[data-typeface=dyslexic] body{line-height:1.7}

/* ── Shorter lines: passages and long text capped near seventy characters, left-aligned. */
html.line-length .verses,html.line-length .dict-text,html.line-length .legal-body,html.line-length .guide-body,html.line-length main p,html.line-length .lede,html.line-length .ws-feature-body{max-width:70ch;text-align:left}

/* ── Theme. Light is the token file. Dark and high contrast override the semantic tokens plus the few surfaces
   that were drawn with literal colours. */
html[data-theme=dark]{color-scheme:dark;
  --ws-semantic-surface-canvas:#15171e;--ws-semantic-surface-panel:#1d2029;--ws-semantic-surface-inverse:#1e2747;--ws-semantic-surface-subtle:#272b38;
  --ws-semantic-text-primary:#ebe6dc;--ws-semantic-text-secondary:#b6afa3;--ws-semantic-text-tertiary:#a39b8d;--ws-semantic-text-inverse:#f4f1eb;--ws-semantic-text-link:#b9c6f2;--ws-semantic-text-accent:#e2ab5a;
  --ws-semantic-border-default:#3d4252;--ws-semantic-border-subtle:#2e3341;--ws-semantic-border-focus:#9db6ff;
  --ws-semantic-action-primary:#4a5b97;--ws-semantic-action-primary-hover:#5a6cab;--ws-semantic-action-accent:#976019;--ws-semantic-action-accent-hover:#b0742a;--ws-semantic-text-on-action:#fff;
  --ws-color-brand-indigo:#b9c6f2;--ws-color-brand-ochre:#e2ab5a;--ws-color-brand-terracotta:#e0866a;--ws-color-brand-espresso:#d9c2b0;--ws-color-brand-bone:#1d2029;
  --ws-color-neutral-0:#15171e;--ws-color-neutral-50:#1d2029;--ws-color-neutral-100:#232733;--ws-color-neutral-200:#2e3341;--ws-color-neutral-300:#3d4252;--ws-color-neutral-400:#7e8494;--ws-color-neutral-500:#a39b8d;--ws-color-neutral-600:#b6afa3;--ws-color-neutral-700:#c9c2b6;--ws-color-neutral-800:#dcd6cb;--ws-color-neutral-900:#ebe6dc;
  --ws-color-feedback-success-subtle:#233324;--ws-color-feedback-warning-subtle:#3a2f16;--ws-color-feedback-danger-subtle:#3d2320;--ws-color-feedback-info-subtle:#1e2c3d;--ws-color-feedback-success:#8fc985;--ws-color-feedback-warning:#e2ab5a;--ws-color-feedback-danger:#f0917f;--ws-color-feedback-info:#8fb6e8;
  --atlas-sea:#1a2230;--atlas-land:#2a2e3a;--atlas-coast:#4e5868;--bone:#1d2029}
html[data-theme=dark] .header{background:#1d2029f2}
html[data-theme=dark] .panel{background:#ffffff05}
html[data-theme=dark] .btn.primary,html[data-theme=dark] .btn.gold,html[data-theme=dark] #toast{color:#fff}
html[data-theme=dark] .btn.primary{background:var(--ws-semantic-action-primary);border-color:var(--ws-semantic-action-primary)}
html[data-theme=dark] .btn.gold{background:var(--ws-semantic-action-accent);border-color:var(--ws-semantic-action-accent)}
html[data-theme=dark] #toast{background:var(--ws-semantic-action-primary)}
html[data-theme=dark] img.feature-shot,html[data-theme=dark] .feature-shot img,html[data-theme=dark] .help-shot img,html[data-theme=dark] .help-figure img{opacity:.92}
html[data-theme=dark] .button,html[data-theme=dark] .site-header .button{color:#fff}
html[data-theme=dark] .brand{color:var(--ws-semantic-text-primary)}
html[data-theme=dark] .field input,html[data-theme=dark] .field select,html[data-theme=dark] .field textarea,html[data-theme=dark] input.text,html[data-theme=dark] select.text,html[data-theme=dark] textarea.text,html[data-theme=dark] .search-box input,html[data-theme=dark] .ws-select-button{background-color:var(--ws-semantic-surface-subtle);border-color:var(--ws-semantic-border-default);color:var(--ws-semantic-text-primary)}
html[data-theme=dark]{--ws-component-carousel-indigo:#0F273C;--ws-component-carousel-espresso:#3B2A20}
html[data-theme=dark] mark,html[data-theme=dark] .note-card .selected-text,html[data-theme=dark] .highlight-swatch,html[data-theme=dark] [data-highlight]{color:#242735}
/* The landing hero keeps its own palette: a photograph under light type, whatever the theme. */
html[data-theme=dark] .hero-reveal{--ws-semantic-text-inverse:#f4f1eb;--paper:#faf8f4;--ink:#242735;--navy:#1e2747;--line:#e1ddd6;--muted:#665f57;--canvas:#f7f4ef;--ws-semantic-border-subtle:#E8E2D9;--ws-semantic-border-default:#D3CABE;--ws-semantic-text-secondary:#665F57;--ws-semantic-surface-subtle:#E8E2D9;--ws-semantic-surface-panel:#FAF8F4;--ws-semantic-text-primary:#242735}
html[data-theme=dark] .hero-reveal mark{background:#f8ebd0}
html[data-theme=dark] .chip{background:var(--ws-semantic-surface-subtle);color:var(--ws-semantic-text-primary)}
/* Where a light stylesheet fills with the brand indigo, ochre, espresso or terracotta — colours that are lifted for text
   in the dark palette — the fill goes back to an action colour that holds white type. */
html[data-theme=dark] .filter-option.active,html[data-theme=dark] .tab.active,html[data-theme=dark] .wizard-step.active b,html[data-theme=dark] .wizard-step.done b,html[data-theme=dark] .ref-chip.active,html[data-theme=dark] .dict-rail .ref-chip.active,html[data-theme=dark] .ws-menu--grid .ws-menu-option[aria-selected=true],html[data-theme=dark] .letter-row a[aria-current="page"],html[data-theme=dark] .round-icon,html[data-theme=dark] .segmented button.active,html[data-theme=dark] .avatar,html[data-theme=dark] .type-option.active{background:var(--ws-semantic-action-primary);border-color:var(--ws-semantic-action-primary);color:#fff}
html[data-theme=dark] .week-strip i,html[data-theme=dark] .book-bar i,html[data-theme=dark] .path-bar i,html[data-theme=dark] .progress-bar i,html[data-theme=dark] .ws-feature-pickers button span i{background:var(--ws-semantic-action-primary)}
html[data-theme=dark] .btn.danger{background:#a34a2f;border-color:#a34a2f;color:#fff}
html[data-theme=dark] .icon-btn:hover,html[data-theme=dark] .resume-card:hover,html[data-theme=dark] .concept-row:hover,html[data-theme=dark] .note-marker:hover{background:var(--ws-semantic-surface-subtle)}
html[data-theme=dark] .btn:hover{background:var(--ws-semantic-surface-subtle)}
html[data-theme=dark] .verse.target .verse-text,html[data-theme=dark] .guide-verses .verse.target,html[data-theme=dark] .verses.highlight-mode .verse:hover .verse-text,html[data-theme=dark] .verse-text a.w:hover,html[data-theme=dark] .claim.placeholder,html[data-theme=dark] .verses.side-by-side .verse-row.target{background:#3a3220}
html[data-theme=dark] mark.diff{background:#3a3220;color:inherit}
html[data-theme=dark] .chip.link-type.quotation,html[data-theme=dark] .chip.link-type.context,html[data-theme=dark] .chip.access.public-domain,html[data-theme=dark] .chip.access.open-access,html[data-theme=dark] .chip.access.ingested,html[data-theme=dark] .bar{background:var(--ws-semantic-surface-subtle);color:var(--ws-semantic-text-primary)}
html[data-theme=dark] .concept-card p{color:var(--ws-semantic-text-secondary)}
html[data-theme=dark] .filter-option.active span,html[data-theme=dark] .filter-option.active small,html[data-theme=dark] .type-option.active small,html[data-theme=dark] .segmented button.active span{color:#fff;opacity:1}
html[data-theme=dark] .notice{background:#2e2a1f;color:#e6d6bd}
html[data-theme=dark] .link-btn,html[data-theme=dark] .signin-legal a,html[data-theme=dark] .legal a,html[data-theme=dark] .lib-source a,html[data-theme=dark] .pillar-nav a,html[data-theme=dark] .lib-notes summary,html[data-theme=dark] .about-numbers b,html[data-theme=dark] .support-actions .button.secondary{color:var(--ws-semantic-text-link)}
html[data-theme=dark] .tab.active span,html[data-theme=dark] .filter-option.active span{opacity:1!important}
html[data-theme=dark] .ds-subnav button.active{background:var(--ws-semantic-action-primary);border-color:var(--ws-semantic-action-primary)}
html[data-theme=dark] .ds-note{background:#2e2a1f}
html[data-theme=dark] .ds-spec h3{color:var(--ws-semantic-text-secondary)}
html[data-theme=dark] a.button,html[data-theme=dark] .signin-card .button,html[data-theme=dark] .signin-preview .button{color:#fff}
html[data-theme=dark] .ds-banner{color:#f4f1eb}html[data-theme=dark] .ds-banner h2{color:#f4f1eb}
html[data-theme=dark] .signin-card input,html[data-theme=dark] .signin-card .field input{background:var(--ws-semantic-surface-subtle);color:var(--ws-semantic-text-primary);border-color:var(--ws-semantic-border-default)}
html[data-theme=dark] [data-evidence=inscription] .chip.evidence{background:#3a2f22;color:#e9d5c0}html[data-theme=dark] [data-evidence=tradition] .chip.evidence{background:#3d2320;color:#f0b8a8}html[data-theme=dark] [data-evidence=textual] .chip.evidence{background:#1e2c3d;color:#c9d6f0}
html[data-theme=dark] .atlas-region path{fill:#d9b98a;fill-opacity:.09}html[data-theme=dark] .atlas-region text{fill:#d9b98a}html[data-theme=dark] .atlas-roads path{stroke:#c9a67a}html[data-theme=dark] .atlas-names text{fill:#d9c2a4}html[data-theme=dark] .atlas-tools .icon-btn,html[data-theme=dark] .atlas-layers>summary,html[data-theme=dark] .atlas-layers-body{background:var(--ws-semantic-surface-panel)}
html[data-theme=dark] .graph-main{background:radial-gradient(ellipse at center,#232733 0%,var(--canvas) 70%)}
html[data-theme=dark] .graph-legend{background:#1d2029ed}
html[data-theme=dark] .ds-nav{background:#1a1d26}
html[data-theme=contrast] .ds-nav{background:#fff}

html[data-theme=contrast]{color-scheme:light;
  --ws-semantic-surface-canvas:#fff;--ws-semantic-surface-panel:#fff;--ws-semantic-surface-inverse:#000;--ws-semantic-surface-subtle:#fff;
  --ws-semantic-text-primary:#000;--ws-semantic-text-secondary:#000;--ws-semantic-text-tertiary:#000;--ws-semantic-text-inverse:#fff;--ws-semantic-text-link:#0000d6;--ws-semantic-text-accent:#000;
  --ws-semantic-border-default:#000;--ws-semantic-border-subtle:#000;--ws-semantic-border-focus:#000;
  --ws-semantic-action-primary:#000;--ws-semantic-action-primary-hover:#222;--ws-semantic-action-accent:#000;--ws-semantic-action-accent-hover:#222;
  --ws-color-brand-indigo:#000;--ws-color-brand-ochre:#000;--ws-color-brand-terracotta:#000;--ws-color-brand-espresso:#000;--ws-color-brand-bone:#fff;
  --ws-color-neutral-50:#fff;--ws-color-neutral-100:#fff;--ws-color-neutral-200:#fff;--ws-color-neutral-300:#000;--ws-color-neutral-400:#000;--ws-color-neutral-500:#000;--ws-color-neutral-600:#000;--ws-color-neutral-700:#000;
  --ws-color-feedback-success-subtle:#fff;--ws-color-feedback-warning-subtle:#fff;--ws-color-feedback-danger-subtle:#fff;--ws-color-feedback-info-subtle:#fff;--ws-color-feedback-success:#000;--ws-color-feedback-warning:#000;--ws-color-feedback-danger:#000;--ws-color-feedback-info:#000;
  --atlas-sea:#fff;--atlas-land:#fff;--atlas-coast:#000;--bone:#fff}
html[data-theme=contrast] body{background:#fff;color:#000}
html[data-theme=contrast] a{color:#0000d6;text-decoration:underline}
html[data-theme=contrast] .header{background:#fff}
html[data-theme=contrast] .panel,html[data-theme=contrast] .card,html[data-theme=contrast] .signin-card,html[data-theme=contrast] .site-header,html[data-theme=contrast] .site-footer{background:#fff;border-color:#000}
html[data-theme=contrast] .btn,html[data-theme=contrast] .button{border-color:#000}
html[data-theme=contrast] .btn.primary,html[data-theme=contrast] .btn.gold,html[data-theme=contrast] .button,html[data-theme=contrast] #toast{background:#000;color:#fff;border-color:#000}
html[data-theme=contrast] .eyebrow,html[data-theme=contrast] .lede,html[data-theme=contrast] .pillar-lede,html[data-theme=contrast] .meta,html[data-theme=contrast] .feature-shot figcaption,html[data-theme=contrast] .signin-legal{color:#000}
html[data-theme=contrast] .feature-shot img{border-color:#000}
html[data-theme=contrast] .hero-reveal a,html[data-theme=contrast] .hero-reveal{color:#fff}html[data-theme=contrast] .hero-reveal .button{background:#fff;color:#000}
html[data-theme=contrast] .sidebar{background:#000;color:#fff}
html[data-theme=contrast] .sidebar a,html[data-theme=contrast] .sidebar button,html[data-theme=contrast] .nav-link{color:#fff}
html[data-theme=contrast] .nav-link.active{background:#fff;color:#000;border-left-color:#000}
html[data-theme=contrast] .nav-link.active .icon{color:#000}
html[data-theme=contrast] .field input,html[data-theme=contrast] .field select,html[data-theme=contrast] .field textarea,html[data-theme=contrast] input.text,html[data-theme=contrast] .ws-select-button{background:#fff;border-color:#000;color:#000}
/* Windows High Contrast and other forced palettes: let the system colours through, and keep an outline where a
   box-shadow ring would vanish. */
@media (forced-colors:active){:focus-visible{outline:3px solid transparent}.btn,.button,.access-switch{forced-color-adjust:none;border:1px solid ButtonText}}

/* ── Links, focus, header. */
html.underline-text-links main a,html.underline-text-links .panel a,html.underline-text-links .legal-body a{text-decoration:underline}
html.focus-ring :focus-visible{outline:3px solid var(--ws-semantic-surface-canvas)!important;outline-offset:0!important;box-shadow:0 0 0 3px var(--ws-semantic-surface-canvas),0 0 0 7px var(--ws-semantic-text-primary)!important}
html.plain-header .site-header,html.plain-header .header,html.plain-header .guide-tabs,html.plain-header .resource-panel,html.plain-header .guide-rail,html.plain-header .hint.showing,html.plain-header .dict-rail,html.plain-header .hero-copy{position:static}
html.plain-header .header{left:auto;right:auto;margin-left:100px}
@media(max-width:980px){html.plain-header .header{margin-left:75px}}
@media(max-width:700px){html.plain-header .header{margin-left:0}}
html.plain-header .app-main{padding-top:0}
/* Spacing never widens the navigation rail or the search field: their labels are fixed-width and would clip. */
html[data-spacing] .sidebar,html[data-spacing] .global-search,html[data-spacing] .site-header nav{letter-spacing:0;word-spacing:normal}
html.plain-header .resource-panel{max-height:none}

/* ── Line focus overlay (src/access.js › updateLineFocus): a clear band with a shaded spread; never hit-testable. */
.line-focus{position:fixed;left:0;right:0;top:var(--lf-y,40vh);height:var(--lf-h,0);pointer-events:none;z-index:24;box-shadow:0 0 0 200vmax color-mix(in srgb,var(--ws-semantic-surface-canvas) 78%,transparent);transition:top .08s linear}
html[data-theme=dark] .line-focus{box-shadow:0 0 0 200vmax color-mix(in srgb,#000 70%,transparent)}

/* ── The panel and the form (also rendered inline on the workspace's Settings page). */
#accessibility-settings{max-width:38rem;width:calc(100% - 2rem);max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);overflow:auto;border:1px solid var(--ws-semantic-border-default);border-radius:12px;padding:1.25rem 1.5rem 1.5rem;background:var(--ws-semantic-surface-panel);color:var(--ws-semantic-text-primary);font-family:var(--ws-font-family-ui)}
#accessibility-settings::backdrop{background:rgba(27,27,34,.5)}
#accessibility-settings .access-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 .5rem}
#accessibility-settings h2{margin:0;font-family:var(--ws-font-family-reading);font-weight:500;font-size:1.375rem}
#accessibility-settings .dialog-close{background:none;border:1px solid var(--ws-semantic-border-default);border-radius:8px;padding:.45rem .8rem;font:inherit;color:inherit;cursor:pointer;min-height:44px}
.access-lede,.access-more{margin:.25rem 0 1rem;font-size:.9375rem;line-height:1.5;color:var(--ws-semantic-text-secondary)}
.access-more{margin-top:1rem}.access-more a{color:var(--ws-semantic-text-link)}
.access-form{display:grid;gap:1rem}
.access-group{border:1px solid var(--ws-semantic-border-subtle);border-radius:10px;padding:.25rem 1rem .75rem;margin:0;min-width:0}
.access-group legend{font-weight:600;font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ws-semantic-text-secondary);padding:0 .35rem}
.access-row{display:grid;gap:.5rem;padding:.75rem 0;border-top:1px solid var(--ws-semantic-border-subtle)}
.access-group .access-row:first-of-type{border-top:0}
.access-text{display:grid;gap:.15rem;min-width:0}
.access-name{font-weight:600;font-size:.9375rem}
.access-text small{font-size:.8125rem;line-height:1.45;color:var(--ws-semantic-text-secondary)}
.access-seg{display:flex;flex-wrap:wrap;gap:.4rem}
.access-opt{position:relative;display:inline-flex}
.access-opt input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.access-opt span{display:inline-flex;align-items:center;min-height:40px;padding:.35rem .85rem;border:1px solid var(--ws-semantic-border-default);border-radius:999px;font-size:.875rem;font-weight:500;cursor:pointer;color:var(--ws-semantic-text-primary);background:var(--ws-semantic-surface-panel)}
.access-opt input:checked+span{background:var(--ws-semantic-action-primary);border-color:var(--ws-semantic-action-primary);color:var(--ws-semantic-text-on-action)}
.access-opt input:focus-visible+span{outline:3px solid var(--ws-semantic-border-focus);outline-offset:2px}
.access-toggle{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:.8rem;align-items:start;position:relative}
.access-toggle input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.access-toggle label{display:contents;cursor:pointer}
.access-toggle small{grid-column:2;font-size:.8125rem;line-height:1.45;color:var(--ws-semantic-text-secondary)}
.access-switch{display:inline-block;width:44px;height:26px;border-radius:999px;background:var(--ws-semantic-border-default);position:relative;margin-top:.1rem;transition:background .15s;cursor:pointer}
.access-switch::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 2px #0003}
.access-toggle input:checked+label .access-switch{background:var(--ws-semantic-action-primary)}
.access-toggle input:checked+label .access-switch::after{transform:translateX(18px)}
.access-toggle input:focus-visible+label .access-switch{outline:3px solid var(--ws-semantic-border-focus);outline-offset:2px}
.access-toggle .access-name{padding-top:.2rem}
.page-motion-reduced .access-switch,.page-motion-reduced .access-switch::after,.page-motion-reduced .line-focus{transition:none}
.access-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:.25rem 0 0}
.access-actions button{font:inherit;min-height:44px;padding:.6rem 1rem;border-radius:8px;border:1px solid var(--ws-semantic-action-primary);background:var(--ws-semantic-action-primary);color:var(--ws-semantic-text-on-action);cursor:pointer}
.access-actions .access-reset{background:none;color:var(--ws-semantic-text-link)}
@media (max-width:520px){#accessibility-settings{padding:1rem;width:calc(100% - 1rem)}.access-group{padding-inline:.75rem}}

:root{--canvas:#f7f4ef;--paper:#faf8f4;--ink:#242735;--muted:#73716f;--navy:#1e2747;--gold:#bd7e23;--terra:#b45a3c;--espresso:#3b2a20;--line:#e1ddd6;--serif:'Libre Baskerville',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}
/* The hidden attribute only carries display:none from the user agent stylesheet, so any author rule that sets
   display — .btn is inline-flex — outranks it and the element shows anyway. Three components had each been
   patched for this one at a time; this states it once, for every element that will ever carry the attribute. */
[hidden]{display:none!important}
html{font-size:calc(16px * var(--ui-scale,1))}
body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--sans);font-size:0.875rem}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer;color:inherit}a{color:var(--navy);text-decoration:none}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}input:focus,textarea:focus,select:focus{outline:2px solid #bd7e2366;border-color:var(--gold)}h1,h2,h3,p{margin:0}h1{font-size:1.75rem;letter-spacing:-.9px;font-weight:650}h2{font-size:1.1875rem;letter-spacing:-.4px;font-weight:600}h3{font-size:1rem;font-weight:600}p{line-height:1.65}small,.meta{font-size:0.75rem;color:var(--muted);line-height:1.6}.icon{width:20px;height:20px;display:inline-block;vertical-align:middle;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}.sidebar{position:fixed;left:0;top:0;bottom:0;width:100px;background:#17263c;color:#faf7ef;display:flex;flex-direction:column;z-index:30}.side-brand{height:96px;display:grid;place-items:center}.brand-crop{position:relative;overflow:hidden;display:inline-block;width:42px;height:56px;flex-shrink:0}.brand-crop img{position:absolute;width:384px;max-width:none;left:-195px;top:-43px}.side-brand .brand-crop{filter:brightness(1.5);width:56px;height:70px}.side-brand .brand-crop img{width:480px;left:-244px;top:-54px}.nav-link{height:53px;display:flex;align-items:center;gap:12px;padding:0 14px;color:#f4f1eb;font-size:0.75rem;border-left:3px solid transparent}.nav-link .icon{width:21px;height:21px}
button.nav-link{width:100%;background:none;border:0;border-left:3px solid transparent;font:inherit;font-size:0.75rem;cursor:pointer;text-align:left;border-radius:0}.nav-link.active{background:#ffffff0c;border-left-color:var(--gold);background:linear-gradient(90deg,#92602965,#62452045)}.nav-link:hover{background:#ffffff10}.side-bottom{margin-top:auto;padding-bottom:15px}.header{height:78px;border-bottom:1px solid var(--line);position:fixed;left:100px;right:0;top:0;background:#f9f6f1f5;backdrop-filter:blur(12px);z-index:25;display:flex;align-items:center;padding:0 30px;gap:36px}.brand{display:flex;gap:9px;align-items:center;font-size:1.5625rem;font-weight:650;letter-spacing:-1.2px;color:#191d25;min-width:206px}.brand .brand-crop{transform:scale(.8);margin-left:-5px;margin-right:-5px}.search-input{position:relative;display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:8px;padding:11px 14px;background:transparent}.search-input input{width:100%;border:0;background:transparent;outline:none;color:var(--ink);min-width:0}.global-search{width:min(430px,37vw)}kbd{border:1px solid var(--line);border-radius:4px;padding:3px 6px;font:12px var(--sans);white-space:nowrap}.header-links{display:flex;align-items:center;gap:25px;margin-left:auto}.header-links a{display:flex;gap:8px;align-items:center;font-size:0.8125rem;color:var(--ink)}.avatar{width:33px;height:33px;border-radius:50%;background:var(--espresso);color:#fff;display:grid;place-items:center;border:0;font-size:0.75rem}.avatar .icon{width:16px;height:16px}.avatar{overflow:hidden;padding:0;cursor:pointer}.avatar-img{width:100%;height:100%;object-fit:cover;display:block}
.account-menu{position:fixed;inset:auto 16px auto auto;top:66px;margin:0;min-width:240px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);box-shadow:0 14px 40px #1e274726}.account-menu-who{padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:6px;display:flex;flex-direction:column;gap:2px}.account-menu-who b{font-size:0.9375rem}.account-menu-who small{color:var(--muted);font-size:0.75rem}.account-menu-role{color:var(--gold)!important;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.account-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;border-radius:8px;background:none;color:var(--ink);font:inherit;font-size:0.9375rem;text-decoration:none;text-align:left;cursor:pointer}.account-menu-item:hover{background:var(--canvas)}.account-menu-item:focus-visible{outline:2px solid var(--navy);outline-offset:-2px}.account-menu-item .icon{width:16px;height:16px;color:var(--muted)}.app-main{margin-left:100px;padding-top:78px;min-height:100vh}.page{padding:30px 32px 40px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;gap:20px}.page-heading p{margin-top:5px;color:var(--muted)}.heading-icon{display:flex;align-items:center;gap:17px}.heading-icon>.icon{height:34px;width:34px;color:var(--terra)}.btn{border:1px solid var(--line);background:transparent;border-radius:6px;padding:10px 15px;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:39px;white-space:nowrap}.btn:hover{background:#eae4d9}.btn.primary{background:var(--navy);border-color:var(--navy);color:#fff}.btn.gold{background:var(--gold);border-color:var(--gold);color:white}.btn.gold:hover{background:#a96d18}.btn.primary:hover{background:#2c3a60}.btn.small{padding:6px 10px;min-height:31px;font-size:0.75rem}.icon-btn{padding:7px;border:0;background:transparent;border-radius:5px;display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover{background:#e9e3d9}.icon-btn.saved{color:var(--gold)}.icon-btn.saved svg{fill:#bd7e2330}.text-link{display:inline-flex;align-items:center;gap:8px;font-size:0.8125rem;color:var(--navy);background:none;border:0;padding:0}.text-link:hover{text-decoration:underline}.flex{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:15px}.divider{height:1px;background:var(--line);margin:20px 0}.panel{border:1px solid var(--line);border-radius:9px;background:#faf7f245;padding:21px}.section-head{display:flex;align-items:center;justify-content:space-between;margin:20px 0 12px}.section-head h2{font-size:1rem}.dashboard{display:grid;grid-template-columns:minmax(0,1fr) 294px}.dashboard-main{padding:30px 32px}.greeting{padding:0 0 20px}.greeting h1{font-size:1.8125rem}.greeting p{font-size:1.25rem;color:var(--espresso);margin-top:2px}.hero{position:relative;background:#122338;color:#fff;border-radius:11px;overflow:hidden;margin-top:14px;min-height:246px;box-shadow:0 4px 9px #16243915}.hero-copy{padding:26px 27px;position:relative;z-index:2;width:56%;background:linear-gradient(90deg,#122338 75%,transparent)}.hero-label{font-size:0.75rem;color:#e4a548;letter-spacing:1px;margin-bottom:8px}.hero h2{font-family:var(--serif);font-size:1.75rem;font-weight:400;letter-spacing:-.6px}.hero p{font-size:0.8125rem;line-height:1.55;margin-top:9px;max-width:355px}.hero blockquote{font-family:var(--serif);font-style:italic;font-size:0.75rem;line-height:1.8;margin:15px 0 3px}.hero cite{font-size:0.6875rem;color:#e4a548;font-style:normal}.hero .btn{margin-top:15px;font-size:0.8125rem}.hero-art{position:absolute;right:0;top:0;width:52%;height:100%;overflow:hidden}.hero-art img{position:absolute;width:1170px;max-width:none;left:-388px;top:-171px}.concept-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.concept-card{border:1px solid var(--line);padding:16px 13px 12px;border-radius:9px;display:flex;flex-direction:column;min-width:0;transition:border-color .15s}.concept-card:hover{border-color:var(--gold)}.concept-card-top{display:flex;gap:10px;align-items:flex-start}.round-icon{width:42px;height:42px;flex-shrink:0;border-radius:50%;background:var(--navy);color:#f7f1e7;display:grid;place-items:center}.round-icon .icon{width:24px;height:24px}.concept-card h3{font-size:0.9375rem;line-height:1.45}.concept-card p{font-size:0.6875rem;color:#4e5059;margin-top:4px;line-height:1.6}.concept-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:15px;font-size:0.6875rem;color:var(--muted)}.reading-list{padding:0 15px}.reading-row{display:flex;align-items:center;gap:13px;padding:12px 0;border-bottom:1px solid var(--line)}.reading-row:last-child{border:0}.reading-title{flex:1}.reading-title b{font-weight:550}.reading-title small{display:block}.progress-bar{height:6px;width:130px;background:#e6e1da;border-radius:10px;overflow:hidden}.progress-bar i{height:100%;display:block;background:var(--gold);border-radius:10px}.reading-row>small{width:90px}.reading-row>span{font-size:0.75rem;min-width:35px;text-align:right}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.quick-card{padding:17px 14px;border:1px solid var(--line);border-radius:8px}.quick-card>.icon{color:var(--gold);width:28px;height:28px;margin-bottom:13px}.quick-card h3{font-size:0.8125rem}.quick-card p{font-size:0.75rem;color:var(--muted);margin:7px 0 13px}.quick-card a{font-size:0.75rem}.dashboard-rail{border-left:1px solid var(--line);padding:18px 18px;display:flex;flex-direction:column;gap:15px}.rail-title{display:flex;gap:11px;align-items:center;margin-bottom:18px}.rail-title .icon{color:var(--gold);width:25px;height:25px}.rail-title h2{font-size:0.9375rem}.verse-quote{font-family:var(--serif);font-size:0.9375rem;line-height:1.9}.verse-cite{color:var(--ws-semantic-text-accent);font-size:0.75rem;margin:13px 0 18px}.streak-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}.streak-row>div:first-child{white-space:nowrap}.streak-number{font-size:2.25rem;line-height:1}.bars{display:flex;gap:7px;align-items:flex-end;height:55px}.bar{width:7px;border-radius:3px;background:var(--terra)}.insights{display:grid;grid-template-columns:repeat(3,1fr);text-align:center}.insights b{display:block;font-size:1.4375rem;font-weight:500}.insights small{font-size:0.6875rem}.insights>div+div{border-left:1px solid var(--line)}.recent-note{display:flex;gap:11px;margin-bottom:17px}.recent-note .icon{margin-top:3px}.recent-note span{font-size:0.75rem}.recent-note small{display:block}.full{width:100%}.empty{padding:35px 20px;text-align:center;color:var(--muted);line-height:1.8}.empty .btn{margin-top:12px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{font-size:0.6875rem;border-radius:5px;padding:4px 8px;background:#e7e3e7;color:var(--navy);border:0}.chip.gold{background:#f0dbb7;color:#6b4615}.chip.green{background:#e0e6d7;color:#3d5632}.pill{border:1px solid var(--line);border-radius:20px;padding:6px 10px;font-size:0.6875rem}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0}.workspace{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:calc(100vh - 78px)}.filter-sidebar{border-right:1px solid var(--line);padding:28px 22px}.filter-sidebar h1{font-size:1.375rem}.filter-sidebar p{font-size:0.8125rem;margin:13px 0 18px}.filter-sidebar h3{font-size:0.8125rem;margin:22px 0 12px}.filter-option{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;text-align:left;padding:12px 9px;border-radius:5px;color:var(--ink);font-size:0.8125rem}.filter-option span:last-child{margin-left:auto}.filter-option.active{background:var(--navy);color:white}.library-content{padding:22px 25px}.toolbar{display:flex;align-items:center;gap:8px}.library-controls{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:12px 20px;margin-bottom:27px}.library-controls select{max-width:100%}.segmented{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}.segmented button{border:0;border-right:1px solid var(--line);background:transparent;padding:8px 12px}.segmented button:last-child{border-right:0}.segmented button.active{background:var(--espresso);color:white}.collection-section{margin-bottom:28px}.collection-heading{display:flex;align-items:center;gap:10px;margin-bottom:14px}.collection-heading h2{font-size:1rem}.collection-heading p{font-size:0.75rem;color:var(--muted)}.resource-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:13px}.resource-card{min-height:121px;padding:17px 15px;border:0;border-radius:8px;background:var(--resource-color);color:#fff;text-align:left;display:flex;flex-direction:column;justify-content:space-between;gap:10px}.resource-card:hover{filter:brightness(1.1)}.resource-card .icon{width:26px;height:26px}.resource-card h3{font-size:0.875rem;line-height:1.5}.resource-card small{color:#ffffffbb;font-size:0.6875rem}.resource-grid.list{display:flex;flex-direction:column}.resource-grid.list .resource-card{min-height:60px;flex-direction:row;align-items:center}.resource-grid.list .resource-card h3{flex:1}.tabs{display:flex;gap:7px;flex-wrap:wrap;margin:20px 0}.tab{border:1px solid var(--line);padding:10px 14px;border-radius:6px;background:none;font-size:0.75rem}.tab.active{background:var(--navy);border-color:var(--navy);color:white}.result{border:1px solid var(--line);border-radius:8px;padding:19px 20px;margin-bottom:12px}.result-top{display:flex;align-items:center;gap:9px;font-size:0.75rem}.result-top small{margin-left:auto}.result-body{display:flex;gap:30px;align-items:center;margin-top:8px}.result-text{flex:1}.result h2{font-size:1.0625rem;margin-bottom:10px}.result p{font-size:0.875rem;line-height:1.75}.result-link{min-width:145px;align-self:flex-end}.result-link small{display:block;margin-bottom:7px}mark{background:#efd7a0;color:inherit;padding:1px 0;border-radius:2px}.search-layout{display:grid;grid-template-columns:minmax(0,1fr) 275px}.search-main{padding:29px 30px}.search-rail{border-left:1px solid var(--line);padding:30px 22px}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.field label{font-size:0.8125rem}.field input,.field select,.field textarea,input.text,select.text,textarea.text{border:1px solid #d5cec4;border-radius:6px;background-color:#fcfaf6;padding:10px 12px;width:100%;color:var(--ink)}textarea{resize:vertical;line-height:1.7}.check-row{display:flex;align-items:center;gap:9px;margin:14px 0;font-size:0.8125rem}.check-row input{accent-color:var(--navy);width:16px;height:16px}.reader-layout{display:grid;grid-template-columns:minmax(0,1fr) 315px}.reader-main{padding:25px 30px}.breadcrumb{font-size:0.75rem;display:flex;align-items:center;gap:10px;margin-bottom:26px}.breadcrumb .icon{width:13px}.reader-paper{border:1px solid var(--line);border-radius:8px;padding:25px 30px}.reader-top{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;flex-wrap:wrap}.reader-title h1{font-family:var(--serif);font-size:1.6875rem;letter-spacing:-.5px;line-height:1.5}.reader-title p{font-family:var(--serif);margin-top:8px;font-size:0.875rem}.source-label{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:0.75rem;margin-top:15px}.reader-controls{display:flex;align-items:center;gap:6px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;margin:25px 0}.reader-controls select{border:1px solid var(--line);border-radius:5px;max-width:245px;background-color:transparent;padding:8px;font-size:0.75rem;margin-left:auto}.verses{font-family:var(--serif);font-size:var(--reading-size,20px);line-height:1.95;padding:4px 5px 24px}.verse{display:grid;grid-template-columns:30px minmax(0,1fr);gap:14px;padding:11px 0}.verse-number{color:var(--ws-semantic-text-tertiary);font-size:0.875rem;user-select:none;cursor:pointer;background:none;border:0;align-self:start;padding-top:5px}.verse-text{border-radius:3px;padding:0 4px}.verse-text::selection{background:#ecd095}.reader-footer{border-top:1px solid var(--line);padding-top:18px;display:flex;justify-content:space-between;align-items:center}.reader-rail{border-left:1px solid var(--line);padding:23px 20px}.rail-tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:20px}.rail-tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:10px 8px;font-size:0.75rem}.rail-tabs button.active{border-color:var(--navy)}.linked-card{display:flex;align-items:center;gap:11px;padding:13px;border:1px solid var(--line);border-radius:7px;margin:9px 0}.linked-card .round-icon{width:32px;height:32px}.linked-card b{font-size:0.75rem;font-weight:550}.linked-card small{font-size:0.6875rem;display:block}.linked-card>.icon:last-child{margin-left:auto;width:14px}.notice{padding:12px 14px;background:#ede8dd;border-radius:6px;font-size:0.75rem;line-height:1.7;color:#675644}.source-provenance{font-size:0.75rem;line-height:1.8;color:var(--muted);margin-top:16px}.note-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:20px}.note-filters{border:1px solid var(--line);border-radius:7px;padding:14px}.note-filters h3{font-size:0.6875rem;text-transform:uppercase;letter-spacing:.6px;margin:6px 8px 13px}.notes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}.note-card{border:1px solid var(--line);border-radius:9px;padding:17px;display:flex;flex-direction:column;min-height:295px}.note-card h2{font-size:1.0625rem;margin:16px 0 6px}.note-card .note-body{font-family:var(--serif);font-size:0.875rem;line-height:1.9;white-space:pre-wrap;margin:15px 0}.note-card .selected-text{font-family:var(--serif);font-size:0.8125rem;padding:12px;background:#f6e7cc;border-radius:6px;margin-top:15px;line-height:1.8}.note-card .meta{font-size:0.6875rem;margin:10px 0}.note-card footer{display:flex;align-items:center;gap:6px;border-top:1px solid var(--line);padding-top:12px;margin-top:16px}.note-card footer .text-link{font-size:0.6875rem;margin-left:auto}.notes-grid.list{grid-template-columns:1fr}.notes-grid.list .note-card{min-height:0}.note-type{display:flex;align-items:center;gap:8px;font-size:0.6875rem;text-transform:uppercase}.note-type>.icon{color:var(--gold)}.modal-backdrop{position:fixed;inset:0;background:#1b1b2255;z-index:90;display:grid;place-items:center;padding:20px;backdrop-filter:blur(3px)}.modal{background:var(--paper);border-radius:12px;padding:25px;width:510px;max-width:100%;max-height:90vh;overflow:auto;box-shadow:0 18px 65px #0003}.modal.wide{width:720px}.modal header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.modal h2{font-size:1.375rem}.modal footer{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.type-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.type-option{padding:13px;border:1px solid var(--line);border-radius:7px;background:none;text-align:left}.type-option.active{border-color:var(--gold);background:#f3e9d9}.type-option small{display:block;margin:5px 0 0 27px}.color-options{display:flex;gap:12px;margin:14px 0}.color-swatch{width:27px;height:27px;border-radius:50%;border:2px solid transparent;outline-offset:3px}.color-swatch.active{outline:1px solid var(--gold)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--navy);color:white;border-radius:7px;padding:13px 22px;z-index:120;opacity:0;transition:.2s;pointer-events:none;box-shadow:0 5px 25px #0002}#toast.show{transform:translateX(-50%);opacity:1}.graph-layout{display:grid;grid-template-columns:minmax(0,1fr) 275px;height:calc(100vh - 78px);min-height:650px}.graph-main{position:relative;overflow:hidden;background:radial-gradient(ellipse at center,#fffcf6 0%,var(--canvas) 70%)}.graph-toolbar{position:absolute;left:24px;right:20px;top:20px;display:flex;align-items:center;justify-content:space-between;z-index:3}.graph-toolbar .breadcrumb{margin:0}.graph-viewport{position:absolute;inset:70px 0 0;overflow:hidden;touch-action:none;cursor:grab}.graph-viewport.dragging{cursor:grabbing}.graph-svg{width:100%;height:100%;min-height:500px;overflow:visible}.graph-svg text{font-family:var(--sans);pointer-events:none}.graph-svg .graph-node{cursor:pointer;outline:none}.graph-svg .graph-node:focus circle,.graph-svg .graph-node:hover circle{stroke:var(--gold);stroke-width:3}.graph-svg .source-node:hover rect,.graph-svg .source-node:focus rect{fill:#f0e5d2;stroke-width:2}.graph-controls{position:absolute;bottom:20px;left:22px;display:flex;align-items:center;gap:5px;background:var(--paper);border:1px solid var(--line);padding:3px;border-radius:6px;z-index:3}.graph-controls span{font-size:0.75rem;min-width:38px;text-align:center}.graph-legend{position:absolute;bottom:20px;right:20px;background:#faf7f1ed;border:1px solid var(--line);border-radius:6px;padding:12px;font-size:0.6875rem;line-height:1.9}.graph-legend i{display:inline-block;width:25px;border-top:1px solid var(--espresso);vertical-align:middle;margin-right:7px}.graph-legend i.dotted{border-top:2px dotted var(--gold)}.graph-rail{border-left:1px solid var(--line);padding:26px 20px;overflow:auto}.graph-rail h2{font-size:1.25rem;line-height:1.45}.graph-rail h3{font-size:0.8125rem;margin-bottom:11px}.graph-rail p{font-size:0.8125rem}.graph-rail .related{display:flex;gap:6px;flex-wrap:wrap}.graph-rail .related a{padding:6px 8px;border:1px solid var(--line);border-radius:5px;font-size:0.6875rem}.cross-row{padding:10px 0;border-bottom:1px solid var(--line);font-size:0.6875rem;line-height:1.7}.graph-filters{position:absolute;right:20px;top:65px;background:var(--paper);box-shadow:0 6px 30px #0002;padding:15px 20px;border:1px solid var(--line);border-radius:8px;z-index:5}.concept-directory{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.concept-directory .concept-card{padding:25px}.concept-directory .concept-card h3{font-size:1.25rem}.concept-directory .concept-card p{font-size:0.8125rem}.concept-directory .concept-card-top{display:block}.concept-directory .round-icon{margin-bottom:20px}.wizard{max-width:980px;margin:0 auto}.wizard-steps{display:flex;align-items:center;justify-content:center;gap:0;margin:25px 0 35px}.wizard-step{display:flex;align-items:center;gap:10px;font-size:0.8125rem;color:var(--muted)}.wizard-step b{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center}.wizard-step.active{color:var(--navy)}.wizard-step.active b,.wizard-step.done b{background:var(--navy);color:white;border-color:var(--navy)}.wizard-line{width:65px;height:1px;background:var(--line);margin:0 18px}.wizard-panel{max-width:650px;margin:0 auto;padding:30px;border:1px solid var(--line);border-radius:10px}.wizard-panel>p{margin:10px 0 25px;color:var(--muted)}.wizard-panel footer{display:flex;justify-content:space-between;margin-top:30px}.starting-choice{display:flex;gap:16px;align-items:center;width:100%;border:1px solid var(--line);border-radius:8px;padding:20px;text-align:left;background:transparent;margin-bottom:13px}.starting-choice.active{border-color:var(--navy);background:#1e274705}.starting-choice>.icon{width:30px;height:30px;color:var(--terra)}.starting-choice p{font-size:0.8125rem;color:var(--muted);margin-top:4px}.summary-row{display:flex;justify-content:space-between;padding:11px 0;gap:20px;font-size:0.875rem}.builder-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:22px}.sermon-meta{display:flex;align-items:center;gap:25px;padding:20px;border:1px solid var(--line);border-radius:8px;margin-bottom:20px}.sermon-meta>div:first-child{flex:1}.sermon-meta small{display:block;font-size:0.6875rem;letter-spacing:.4px}.sermon-meta h2{font-family:var(--serif);font-size:1.3125rem;margin-top:6px;font-weight:400}.sermon-section{position:relative;margin-left:28px;border:1px solid var(--line);border-radius:8px;margin-bottom:14px;padding:18px 20px}.sermon-section:before{content:'';position:absolute;left:-24px;top:26px;bottom:-30px;width:1px;background:var(--line)}.sermon-section:last-child:before{display:none}.section-state{position:absolute;left:-33px;top:20px;border-radius:50%;width:20px;height:20px;background:#dad6cf;border:3px solid var(--canvas);z-index:1}.sermon-section.approved .section-state{background:#50653e}.sermon-section.in_progress{border-color:#7889af}.sermon-section.in_progress .section-state{background:var(--canvas);border:3px solid var(--navy)}.section-header{display:flex;align-items:center;gap:12px}.section-header h3{font-family:var(--serif);font-size:0.9375rem}.sermon-copy{font-family:var(--serif);line-height:1.9;font-size:1rem;margin:15px 0;white-space:pre-wrap}.sermon-editor{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;font-family:var(--serif);font-size:1.0625rem;padding:17px 0;min-height:155px;color:var(--ink);resize:vertical;outline:none}.insert-bar{display:flex;flex-wrap:wrap;gap:0;margin:13px 0}.insert-bar .btn{margin:0}.scripture-block{border:1px solid var(--line);border-left:3px solid var(--navy);padding:17px;border-radius:7px;margin:13px 0}.scripture-block h3{font-family:var(--serif);font-weight:400;margin-bottom:10px}.scripture-block p{font-family:var(--serif);font-size:0.9375rem;line-height:1.9}.builder-footer{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:15px}.builder-footer .attribution{margin-right:auto;display:inline-flex;align-items:center;gap:6px;font-size:0.6875rem;color:var(--ws-semantic-text-secondary)}.builder-footer .attribution .icon{width:14px;height:14px}.style-check{display:flex;align-items:flex-start;gap:12px;margin:18px 0;line-height:1.7;font-size:0.75rem}.style-check input{margin-top:4px;accent-color:var(--navy)}.style-check .icon{color:var(--gold);margin-top:3px}.builder-rail .panel{margin-bottom:15px}.builder-rail h3{font-size:0.75rem}.preview-document{font-family:var(--serif);line-height:1.9}.preview-document h1{font-family:var(--serif);font-size:1.5625rem;margin-bottom:25px}.preview-document h2{font-family:var(--serif);font-size:1.125rem;margin:20px 0 10px}.settings-panel{max-width:650px}.mobile-toggle{display:none}.subtle{color:var(--muted)}.mt{margin-top:20px}
@media(min-width:1550px){.dashboard-main{padding:35px 45px}.dashboard{grid-template-columns:minmax(0,1fr) 335px}.hero{min-height:275px}.hero-copy{padding:30px}.hero-art img{width:1310px;left:-435px;top:-192px}.concept-card p{font-size:0.8125rem}.concept-card h3{font-size:1.0625rem}.quick-card p{font-size:0.8125rem}}
@media(max-width:1250px){.header{gap:20px;padding:0 22px}.brand{min-width:175px}.header-links{gap:15px}.header-links a span{display:none}.dashboard{grid-template-columns:minmax(0,1fr) 250px}.dashboard-main{padding:27px 24px}.dashboard-rail{padding:17px 13px}.concept-cards{grid-template-columns:repeat(2,1fr)}.quick-grid{grid-template-columns:repeat(2,1fr)}.hero-copy{width:65%}.hero-art{width:48%}.hero-art img{left:-440px}.notes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reader-layout{grid-template-columns:minmax(0,1fr) 270px}.reader-main{padding:25px 20px}.reader-paper{padding:22px}.graph-layout{grid-template-columns:minmax(0,1fr) 240px}.graph-toolbar{left:15px}.graph-toolbar .btn{font-size:0.6875rem;padding:8px}.builder-layout{grid-template-columns:minmax(0,1fr) 245px}.sermon-meta{gap:15px}.sermon-meta h2{font-size:1.0625rem}.concept-directory{grid-template-columns:repeat(3,1fr)}}
@media(max-width:980px){.sidebar{width:75px}.nav-link{justify-content:center;padding:0}.nav-link span{display:none}.header{left:75px}.app-main{margin-left:75px}.brand{min-width:150px;font-size:1.4375rem}.global-search{flex:1}.header-links{gap:8px}.dashboard{grid-template-columns:minmax(0,1fr)}.dashboard-rail{border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(2,1fr);padding:25px}.hero-copy{width:55%}.hero-art{width:50%}.hero-art img{left:-390px}.concept-cards{grid-template-columns:repeat(4,1fr)}.concept-card-top{display:block}.concept-card .round-icon{margin-bottom:10px}.search-layout{grid-template-columns:minmax(0,1fr) 220px}.search-main{padding:25px 20px}.search-rail{padding:25px 15px}.result-body{display:block}.result-link{margin-top:13px}.reader-layout{grid-template-columns:1fr}.reader-rail{border-top:1px solid var(--line);border-left:0;display:block}.graph-layout{display:block;min-height:760px;height:calc(100vh - 78px)}.graph-main{height:100%}.graph-rail{position:absolute;right:0;top:78px;width:260px;bottom:0;background:var(--paper);z-index:15;box-shadow:-8px 0 35px #0001}.graph-rail.closed{display:none}.graph-toolbar{right:15px}.note-layout{grid-template-columns:175px minmax(0,1fr);gap:15px}.notes-grid{grid-template-columns:1fr}.builder-layout{grid-template-columns:1fr}.builder-rail{display:grid;grid-template-columns:1fr 1fr;gap:15px}.workspace{grid-template-columns:200px minmax(0,1fr)}}
@media(max-width:700px){.sidebar{transform:translateX(-100%);width:180px;transition:transform .2s}.sidebar.mobile-open{transform:translateX(0);box-shadow:10px 0 35px #0003}.nav-link{justify-content:flex-start;padding:0 22px}.nav-link span{display:block}.header{left:0;height:64px;padding:0 15px;gap:8px}.mobile-toggle{display:flex}.brand{min-width:0;font-size:1.25rem;margin-right:auto}.brand-crop{display:none}.header-links a{display:none}.header-links a:first-child{display:flex}.global-search{display:none}.app-main{margin-left:0;padding-top:64px}.page{padding:23px 18px}.page-heading{align-items:flex-start;flex-wrap:wrap;gap:13px}.page-heading .toolbar{flex-wrap:wrap}h1{font-size:1.5625rem}.dashboard-main{padding:23px 18px}.greeting h1{font-size:1.5625rem}.greeting p{font-size:1.0625rem}.hero{min-height:270px}.hero-copy{width:100%;padding:24px;background:linear-gradient(90deg,#122338 25%,#122338bb)}.hero h2{font-size:1.625rem}.hero-art{width:100%;opacity:.45}.hero-art img{left:-390px}.hero p{max-width:285px}.concept-cards{grid-template-columns:repeat(2,1fr)}.concept-card-top{display:flex}.concept-card h3{font-size:0.875rem}.concept-card p{font-size:0.6875rem}.concept-card .round-icon{width:32px;height:32px}.reading-row>small{display:none}.progress-bar{width:55px}.dashboard-rail{padding:0 18px 25px;border:0;grid-template-columns:1fr}.quick-grid{grid-template-columns:1fr 1fr}.workspace{display:block}.filter-sidebar{padding:23px 18px;border:0;border-bottom:1px solid var(--line)}.filter-sidebar p{display:none}.filter-sidebar h3{margin-top:15px}.filter-sidebar .filter-option{display:inline-flex;width:auto;padding:8px;font-size:0.75rem}.filter-sidebar .filter-option span:last-child{margin-left:5px}.library-content{padding:20px 18px}.library-controls{justify-content:space-between}.library-controls select{width:100%!important}.collection-heading{flex-wrap:wrap}.collection-heading p{width:100%;margin-left:19px}.resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.search-layout{display:flex;flex-direction:column}.search-main{padding:23px 18px}.search-rail{border:0;border-top:1px solid var(--line);padding:20px}.result{padding:16px}.result-top small{max-width:120px;text-align:right;font-size:0.625rem}.reader-main{padding:20px 15px}.reader-paper{padding:18px 14px}.reader-title h1{font-size:1.4375rem}.reader-controls{flex-wrap:wrap}.reader-controls select{order:2;width:100%;max-width:none}.verses{font-size:calc(var(--reading-size,20px) - 2px);line-height:1.9}.verse{gap:4px;grid-template-columns:24px 1fr}.reader-footer{gap:12px;flex-wrap:wrap}.note-layout{display:block}.note-filters{margin-bottom:17px}.note-filters .filter-option{display:inline-flex;width:auto;font-size:0.75rem;padding:8px}.note-filters h3{margin-top:10px}.note-filters .divider{margin:10px}.notes-grid{grid-template-columns:1fr}.concept-directory{grid-template-columns:repeat(2,1fr);gap:12px}.concept-directory .concept-card{padding:18px}.concept-directory .concept-card h3{font-size:1.0625rem}.graph-layout{height:calc(100vh - 64px);min-height:650px}.graph-toolbar{top:15px;align-items:flex-start;gap:10px}.graph-toolbar .breadcrumb{font-size:0.6875rem;max-width:120px}.graph-toolbar .toolbar{gap:4px}.graph-toolbar .btn{padding:7px;font-size:0}.graph-toolbar .btn .icon{width:18px}.graph-viewport{inset:68px 0 0}.graph-svg{min-width:700px;width:700px;position:absolute;left:50%;transform:translateX(-50%)}.graph-rail{top:64px;max-width:85vw}.graph-legend{font-size:0.625rem;right:12px;bottom:65px}.graph-controls{left:15px;bottom:17px}.wizard-step{font-size:0.6875rem;gap:6px}.wizard-line{width:15px;margin:0 7px}.wizard-step b{width:25px;height:25px}.wizard-panel{padding:22px 18px}.sermon-meta{flex-wrap:wrap}.sermon-meta>div:first-child{flex-basis:100%}.section-header{flex-wrap:wrap;gap:8px}.sermon-section{padding:16px 13px;margin-left:22px}.sermon-section:before{left:-18px}.section-state{left:-27px}.builder-rail{display:block}.modal{padding:21px;max-height:92vh}.modal-backdrop{padding:12px}.toolbar .btn{padding:9px 11px;font-size:0.75rem}.type-options{grid-template-columns:1fr 1fr}.type-option{padding:10px}.type-option small{margin-left:0}.header-links{margin-left:4px}}
@media print{.sidebar,.header,.builder-rail,.page-heading,.toolbar,.btn,.section-state,.insert-bar,.builder-footer,.modal header,.modal footer{display:none!important}.app-main{margin:0;padding:0}.modal-backdrop{position:static;background:white;display:block;padding:0}.modal{width:100%;max-height:none;box-shadow:none}.page{padding:0}.builder-layout{display:block}.sermon-section{break-inside:avoid;margin:15px 0;border:0}.modal-backdrop~*{display:none}body:has(.preview-document) #app{display:none}.sermon-editor{min-height:auto}body{background:white}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.hero-art{background-image:url('assets/dashboard-reference.png');background-size:auto 430%;background-position:62% 28.2%}.hero-art img{display:none}.brand .brand-crop{mix-blend-mode:multiply}.side-brand .brand-crop{filter:none;width:56px;height:73px;border-radius:45%}.side-brand .brand-crop img{width:512px;left:-27px;top:-211px}.avatar{color:#fff!important}.compare-grid{align-items:start}@media(max-width:700px){.compare-grid{grid-template-columns:1fr!important}}
/* Research workspace: comfortable navigation, predictable density, responsive rails. */
:root{--nav-width:168px;--header-height:78px}
.sidebar{width:var(--nav-width);overflow:hidden}.sidebar nav{min-height:0;overflow-y:auto;overflow-x:hidden;padding:8px 10px}.side-brand{height:var(--header-height);min-height:var(--header-height);border-bottom:1px solid #ffffff0d}.side-brand .brand-crop{transform:scale(.72)}.nav-link{height:46px;margin:3px 0;border-radius:6px;padding:0 13px;gap:12px;font-size:0.875rem;white-space:nowrap}.nav-link span{display:block}.nav-link.active{background:#ffffff0b;border-left-color:var(--gold)}.side-bottom{padding:12px 10px;flex-shrink:0;border-top:1px solid #ffffff0d}.header{left:var(--nav-width);height:var(--header-height);padding:0 28px;gap:28px}.app-main{margin-left:var(--nav-width);padding-top:var(--header-height)}.brand{min-width:195px;font-size:1.5rem}.header-links{gap:20px}.header-links a{font-size:0.875rem;min-height:40px}.global-search{flex:1;max-width:430px;min-width:180px}.header .avatar{min-height:34px;width:34px;margin-left:5px}.header-links .avatar{display:grid;color:white!important;place-items:center}.dashboard{grid-template-columns:minmax(0,1fr) 285px}.dashboard-main{padding:30px}.dashboard-rail{padding:22px 18px}.hero-copy{width:57%;padding:28px;min-height:272px}.hero h2{line-height:1.35}.hero-art{width:52%}.hero p{font-size:0.875rem;line-height:1.65}.hero blockquote{font-size:0.8125rem}.hero-copy{background:linear-gradient(90deg,#122338 70%,#12233800)}.hero-art:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#122338,transparent 30%)}.concept-card{padding:17px 14px;min-width:0}.concept-card-top{gap:10px}.concept-card h3{overflow-wrap:anywhere}.concept-card-footer{margin-top:18px}.concept-card p{font-size:0.75rem}.concept-card .round-icon{width:36px;height:36px}.section-head{gap:15px}.quick-card p{font-size:0.8125rem}.quick-card h3{font-size:0.875rem}.note-card,.result-text,.reader-main,.graph-main,.builder-layout>div,.library-content{min-width:0}.note-card h2,.note-body,.sermon-copy{overflow-wrap:anywhere}.notes-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.graph-rail.closed{display:none}.graph-layout:has(.graph-rail.closed){grid-template-columns:1fr}.graph-rail{background:var(--canvas)}.reader-rail,.search-rail{min-width:0}.btn{min-height:40px}.icon-btn{min-width:34px;min-height:34px}.modal h2{line-height:1.3}.reader-controls .btn:first-child .icon{transform:rotate(180deg)}.modal .icon-btn{min-width:36px}.graph-controls .icon-btn{min-width:36px;min-height:36px}.note-card footer .text-link{line-height:1.6}.source-provenance a{text-decoration:underline}.page-heading .toolbar{flex-wrap:wrap}.graph-main:focus-within{outline:0}
@media(min-width:1400px){.concept-card-top{align-items:flex-start}.dashboard-main{padding:32px 36px}.header-links a span{display:inline}.hero-copy{min-height:282px}}
@media(max-width:1399px) and (min-width:1181px){.header{gap:20px}.brand{min-width:175px}.header-links{gap:13px}.header-links a span{display:none}.concept-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.concept-card-top{display:flex}.dashboard{grid-template-columns:minmax(0,1fr) 265px}}
@media(max-width:1180px){:root{--nav-width:76px}.sidebar nav{padding:8px}.nav-link{justify-content:center;padding:0;width:60px}.nav-link span{display:none}.side-bottom{padding:12px 8px}.side-brand .brand-crop{transform:scale(.68)}.header{gap:18px;padding:0 22px}.brand{min-width:170px}.header-links a span{display:none}.header-links{gap:10px}.concept-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.concept-card-top{display:flex}.dashboard{grid-template-columns:minmax(0,1fr) 255px}.dashboard-main{padding:26px 24px}.dashboard-rail{padding:20px 14px}.hero-copy{width:70%;padding:24px}.hero-art{width:50%}.hero h2{font-size:1.625rem}.reading-row>small{display:none}.progress-bar{width:75px}.workspace{grid-template-columns:205px minmax(0,1fr)}.builder-layout{grid-template-columns:minmax(0,1fr) 245px}}
@media(max-width:1000px){.dashboard{grid-template-columns:minmax(0,1fr)}.dashboard-rail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line);border-left:0;padding:24px}.concept-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.concept-card-top{display:block}.hero-copy{width:58%}.hero-art{width:52%}.header .brand{min-width:150px}.builder-layout{grid-template-columns:1fr}.reader-layout{grid-template-columns:1fr}.reader-rail{border-left:0;border-top:1px solid var(--line)}.graph-layout{grid-template-columns:minmax(0,1fr)}.graph-rail{position:absolute;right:0;top:var(--header-height);width:285px;bottom:0;z-index:20;box-shadow:-8px 0 24px #0001}.notes-grid{grid-template-columns:1fr}}
@media(max-width:700px){:root{--nav-width:0px;--header-height:64px}.sidebar{width:232px;transform:translateX(-100%)}.sidebar.mobile-open{transform:translateX(0)}.sidebar nav{padding:12px}.nav-link{width:auto;justify-content:flex-start;padding:0 17px;height:48px}.nav-link span{display:block}.side-bottom{padding:12px}.header{padding:0 14px;gap:8px}.header .brand{font-size:1.3125rem;min-width:0;margin-right:auto}.header-links{gap:6px}.header-links .avatar{display:grid}.header-links a:first-child{display:flex}.header .global-search{display:none}.dashboard-main{padding:23px 18px}.hero-copy{width:100%;min-height:280px;padding:24px;background:linear-gradient(90deg,#122338e8 30%,#122338aa)}.hero-art{width:100%;opacity:.7}.hero-copy p{max-width:300px}.dashboard-rail{grid-template-columns:1fr;padding:0 18px 24px;border:0}.concept-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.concept-card-top{display:block}.concept-card h3{font-size:0.9375rem}.workspace{display:block}.hero h2{font-size:1.5625rem}.graph-rail{top:64px}.graph-toolbar .btn{font-size:0}.graph-toolbar .btn .icon{margin:0}.reader-controls{gap:4px}.reader-controls .btn{font-size:0.6875rem}.page-heading .toolbar{gap:6px}.notes-grid{grid-template-columns:1fr}.result-top{flex-wrap:wrap}.result-top small{margin-left:0;max-width:none}.result-top .icon-btn{margin-left:auto}.reader-title h1{font-size:1.4375rem}.sermon-meta h2{font-size:1.125rem}.sermon-section .section-header h3{font-size:0.875rem}.note-layout{display:block}.search-layout{display:block}.btn{white-space:normal}.wizard-step{flex-direction:column;text-align:center}.wizard-steps{align-items:flex-start}.wizard-line{margin-top:13px}.header-links .avatar{min-width:34px}.reading-row{gap:9px}.reading-title small{font-size:0.625rem}.reading-title b{font-size:0.8125rem}}
@media(max-height:650px) and (min-width:701px){.sidebar nav{padding-top:2px}.nav-link{height:40px;margin:1px 0}.side-bottom{padding-top:6px;padding-bottom:6px}.side-brand{min-height:65px;height:65px}}
/* Standalone transparent identity and artwork. */
.brand-crop,.side-brand .brand-crop{position:relative;width:38px;height:46px;overflow:visible;border-radius:0;filter:none;transform:none;mix-blend-mode:normal;display:block}.brand-crop img,.brand .brand-crop img,.side-brand .brand-crop img{position:static;width:100%;height:100%;object-fit:contain;max-width:100%}.brand .brand-crop{margin:0;transform:none;mix-blend-mode:normal;width:32px;height:42px}.side-brand .brand-crop{width:51px;height:59px}.side-brand .brand-crop img{filter:brightness(0) invert(94%) sepia(10%) saturate(389%) hue-rotate(349deg) brightness(102%) contrast(91%)}.hero{background:#0f273c}.hero-art{background:none;width:53%;opacity:1}.hero-art img{display:block;position:static;width:100%;height:100%;max-width:100%;object-fit:cover;object-position:center;left:auto;top:auto}.hero-art:after{background:linear-gradient(90deg,#0f273c,transparent 26%)}.hero-copy{background:linear-gradient(90deg,#0f273c 78%,transparent)}.notes-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));align-items:stretch}.notes-grid .note-card{min-height:340px;max-width:none}.note-card footer{margin-top:auto}.note-card .chips{margin-bottom:18px}.notes-grid.list{grid-template-columns:1fr}.notes-grid.list .note-card{min-height:0}.note-filters{align-self:start}.page-heading .segmented{flex-shrink:0}.segmented button{min-width:40px;min-height:40px;flex-shrink:0}.notes-results-heading{padding-bottom:8px}.notes-results-heading small{white-space:nowrap}.note-card .note-body{flex:1}.note-card .note-type{font-size:0.6875rem}.note-card .chip.green .icon{width:15px;height:15px}.note-card .chip.green{display:flex;gap:4px;align-items:center;white-space:nowrap}.note-card>.flex{gap:5px}.note-card h2{line-height:1.5}.note-card .meta{line-height:1.8}
@media(min-width:1500px){.notes-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}
@media(max-width:1000px){.notes-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr))}.hero-art{width:53%}}
@media(max-width:700px){.header .brand-crop{display:block;width:24px;height:33px}.hero-art{width:100%;opacity:.45}.hero-copy{background:linear-gradient(90deg,#0f273cee 15%,#0f273c70)}.notes-grid{grid-template-columns:1fr}.notes-grid .note-card{min-height:0}.note-filters .filter-option{white-space:normal;line-height:1.5}.note-filters{padding:12px}.note-filters .divider{margin:10px 0}}
/* Shared token adapter: app and living library consume the same semantic values. */
:root{--canvas:var(--ws-semantic-surface-canvas);--paper:var(--ws-semantic-surface-panel);--ink:var(--ws-semantic-text-primary);--muted:var(--ws-semantic-text-secondary);--navy:var(--ws-color-brand-indigo);--gold:var(--ws-semantic-action-accent);--terra:var(--ws-color-brand-terracotta);--espresso:var(--ws-color-brand-espresso);--line:var(--ws-semantic-border-subtle);--serif:var(--ws-font-family-reading);--sans:var(--ws-font-family-ui)}
.icon{display:inline-block;width:var(--ws-size-icon-default);height:var(--ws-size-icon-default);min-width:var(--ws-size-icon-default);min-height:var(--ws-size-icon-default);flex:0 0 auto;overflow:visible;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:var(--ws-stroke-icon);stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.icon *{vector-effect:non-scaling-stroke}.icon-btn{flex:0 0 auto;overflow:visible;min-width:var(--ws-size-target-default);min-height:var(--ws-size-target-default);padding:10px;line-height:1}.btn{gap:var(--ws-component-button-gap);border-radius:var(--ws-component-button-radius);min-height:var(--ws-component-button-height);line-height:1.5;flex-shrink:0}.btn .icon{width:18px;height:18px;min-width:18px;min-height:18px}.btn.gold{background:var(--ws-semantic-action-accent);border-color:var(--ws-semantic-action-accent)}.btn.gold:hover{background:var(--ws-semantic-action-accent-hover)}.btn.primary{background:var(--ws-semantic-action-primary)}.btn.primary:hover{background:var(--ws-semantic-action-primary-hover)}.nav-link .icon{width:20px;height:20px;min-width:20px;min-height:20px}.sidebar .side-bottom{overflow:visible}.segmented{flex-shrink:0;overflow:visible}.segmented button{min-width:44px;flex-shrink:0}.segmented button:first-child{border-radius:5px 0 0 5px}.segmented button:last-child{border-radius:0 5px 5px 0}.graph-svg .icon{width:24px;height:24px;min-width:24px;min-height:24px}.graph-svg .icon *{vector-effect:none}.graph-controls .icon-btn{min-width:40px;min-height:40px}.reader-controls{flex-wrap:wrap}.reader-controls select{min-width:0}.round-icon .icon{min-width:0;min-height:0}.round-icon{overflow:visible}.note-type .icon{width:18px;height:18px;min-width:18px;min-height:18px}.style-check .icon{width:22px;height:22px;min-width:22px;min-height:22px}.note-card .chip.green .icon{width:15px;height:15px;min-width:15px;min-height:15px}.btn:focus-visible,.icon-btn:focus-visible,a:focus-visible{outline:var(--ws-border-focus) solid var(--ws-semantic-border-focus);outline-offset:3px}.ws-logo{max-width:100%;height:auto;display:block}.nav-link .icon,.header-links .icon{stroke-width:1.75}.graph-node:focus-visible{outline:none}.graph-node:focus-visible circle,.graph-node:focus-visible rect{stroke:var(--ws-semantic-border-focus);stroke-width:3}.notes-grid .note-body{font-size:0.9375rem}.icon-btn:hover{background:var(--ws-semantic-surface-subtle)}

/* Full-text Scripture rendering (content packages). Supplied words, divine name, footnotes, poetry, headings. */
.verse.para{margin-top:14px}
.verse.poetry .verse-text{padding-left:28px;text-indent:-24px}
.verse.target .verse-text{background:#f3e7c6;box-shadow:0 0 0 6px #f3e7c6}
.verse-text .supplied{font-style:italic}
.verse-text .divine-name{font-variant:small-caps;letter-spacing:.02em}
.verse-text .footnote{font-family:var(--sans);font-size:0.6875rem;color:var(--ws-semantic-text-accent);margin-left:2px;cursor:help}
.chapter-title{font-style:italic;color:var(--muted);margin:0 0 12px 44px;font-size:calc(var(--reading-size,20px) - 3px)}
.verse-heading{font-family:var(--sans);font-size:0.8125rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:22px 0 4px 44px}

/* Word Study and Concordance */
.verse-text a.w{color:inherit;text-decoration:underline dotted #b9a27a;text-underline-offset:3px;text-decoration-thickness:1px}
.verse-text a.w:hover{background:#f3e7c6;text-decoration-style:solid}
.lemma{font-family:var(--serif);font-size:2.75rem;font-weight:400;line-height:1.2;margin:4px 0}
.lemma[lang=he]{unicode-bidi:isolate;font-family:"Noto Serif Hebrew","Times New Roman",var(--serif)}
.word-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}
.renderings{display:flex;flex-wrap:wrap;gap:8px}
.renderings .chip small{color:var(--muted);margin-left:4px}
.occurrences{display:grid;gap:2px}
.occurrence{display:grid;grid-template-columns:180px minmax(0,1fr);gap:16px;padding:10px 8px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;border-radius:4px}
.occurrence:hover{background:var(--ws-semantic-surface-subtle)}
.occurrence b{font-weight:500;font-size:0.875rem}
.occurrence span{font-family:var(--serif);font-size:1rem;line-height:1.6}
.book-bars{display:grid;gap:8px}
.book-bar{display:grid;grid-template-columns:110px minmax(0,1fr) 34px;align-items:center;gap:10px;font-size:0.8125rem}
.book-bar i{display:block;height:8px;background:var(--navy);border-radius:4px;min-width:3px}
.book-bar small{text-align:right;color:var(--muted)}
@media(max-width:900px){.word-layout{grid-template-columns:1fr}.occurrence{grid-template-columns:1fr}.lemma{font-size:2.125rem}}

/* Parallel translations */
/* Named parallel-grid, not parallel: a cross-reference chip reading “Parallel” carries `.chip.link-type.parallel`,
   and the bare class was styling both. The old rule had been making that chip a two-column grid all along, harmlessly
   until a minimum width was added and the chip swelled to 200px, squeezing a cross-reference's text to one word a
   line in the Passage Guide. Two things wanted the same word; now only one of them has it.
   Every translation used to get an equal share of the width however many there were, so the more of the shelf held a
   passage the narrower each share became. With eighteen editions on Daniel 7 that was a 30px column holding 88px of
   content: headings overlapped each other, verses broke into single characters, and the overflow pushed the whole
   document a pixel past the viewport. A column now has a floor of 190px — wide enough to read a line of Ge'ez or
   Hebrew in — and when the columns no longer fit, the grid scrolls sideways instead of crushing them or breaking the
   page. Two or three translations, which is the ordinary case, still share the full width exactly as before. */
.parallel-grid{display:grid;grid-template-columns:repeat(var(--cols,2),minmax(190px,1fr));gap:18px;overflow-x:auto}
.parallel-col h3{font-size:0.875rem;margin:0 0 10px}.parallel-col h3 small{color:var(--muted);font-weight:400;margin-left:4px}
.parallel-verse{font-family:var(--serif);font-size:1rem;line-height:1.75;margin:0 0 8px}.parallel-verse b{font-family:var(--sans);font-size:0.6875rem;color:var(--muted);margin-right:4px;vertical-align:super}
@media(max-width:900px){.parallel-grid{grid-template-columns:1fr}}

/* Original-language scripts */
.script-hebr{font-family:"Noto Serif Hebrew","SBL Hebrew","Times New Roman",serif;font-size:calc(var(--reading-size,20px) + 4px);line-height:2.1}
.script-grek{font-family:"Noto Serif","Gentium Plus","Times New Roman",serif}
.verses[dir=rtl] .verse-text{text-align:right}
.occurrence span[dir=rtl]{text-align:right}
.parallel-verse[dir=rtl]{text-align:right}
.parallel-verse.script-hebr{font-size:1.1875rem}

/* Cross-references panel */
.xref-list{display:grid;gap:4px}
.xref{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:10px 8px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;border-radius:4px}
.xref:hover{background:var(--ws-semantic-surface-subtle)}
.xref b{font-size:0.8125rem;font-weight:600}
.xref span{grid-column:1/-1;font-family:var(--serif);font-size:0.875rem;line-height:1.6;color:var(--ink)}
.xref small{color:var(--muted);font-size:0.6875rem;align-self:start;padding-top:2px}

/* Parallel reading */
.parallel-head{display:grid;grid-template-columns:repeat(var(--cols,2),minmax(0,1fr));gap:20px;padding:10px 5px;border-bottom:1px solid var(--line);font-family:var(--sans);font-size:0.8125rem;color:var(--muted);align-items:center}
.parallel-head div{display:flex;align-items:center;gap:6px;min-width:0}.parallel-head b{color:var(--ink)}.parallel-head .icon-btn{margin-left:auto;width:32px;height:32px}
.verses.side-by-side .verse-row{display:grid;grid-template-columns:repeat(var(--cols,2),minmax(0,1fr));gap:20px;border-bottom:1px solid var(--line);align-items:start}
.verses.side-by-side .verse-row.target{background:#f7efdc}
.verses.side-by-side .verse{padding:11px 0}
.verses.side-by-side .pcell{padding:11px 4px;font-size:calc(var(--reading-size,20px) - 2px);line-height:1.8}
.verses.side-by-side .pcell[dir=rtl]{text-align:right}
.verses.side-by-side .pcell.script-hebr{font-size:calc(var(--reading-size,20px) + 2px)}
.verses.side-by-side .verse.target .verse-text{background:none;box-shadow:none}
@media(max-width:900px){.verses.side-by-side .verse-row,.parallel-head{grid-template-columns:1fr;gap:6px}.verses.side-by-side .pcell{padding:4px 4px 12px 44px}}

/* Passage Guide */
.guide-title{font-family:var(--serif);font-weight:400;font-size:2.5rem;line-height:1.15}
.guide-tabs{display:flex;gap:4px;flex-wrap:wrap;position:sticky;top:78px;z-index:5;background:var(--bone,#F4F1EB);padding:8px 0;margin:0 0 16px;border-bottom:1px solid var(--line)}
.guide-tabs button{padding:8px 12px;border:0;background:none;border-radius:6px;font:inherit;font-size:0.875rem;color:var(--ink);cursor:pointer;min-height:40px}.guide-tabs button:hover{background:var(--ws-semantic-surface-subtle)}.guide-tabs button:focus-visible{outline:2px solid var(--ws-semantic-border-focus);outline-offset:1px}
.guide-section{margin-bottom:20px;scroll-margin-top:140px}.guide-section h2 small{font-weight:400;margin-left:8px}
.guide-verses{padding:4px 0}.guide-verses .verse-number{color:var(--ws-semantic-text-tertiary);font-size:0.8125rem;padding-top:6px;font-family:var(--sans)}
.term-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.term{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--line);border-radius:6px;color:var(--ink);text-decoration:none;background:var(--paper)}
.term:hover{background:var(--ws-semantic-surface-subtle)}.term-word{font-family:var(--serif);font-size:1.375rem;line-height:1.3}.term-word.script-hebr{font-family:"Noto Serif Hebrew","Times New Roman",serif}.term-word.script-grek{font-family:"Noto Serif",serif}
.term-meta{font-size:0.75rem;color:var(--muted)}.term-def{font-size:0.8125rem;line-height:1.5}
.linked-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.claim{padding:16px 0;border-top:1px solid var(--line)}.claim:first-child{border-top:0;padding-top:0}.claim h3{font-family:var(--serif);font-weight:400;font-size:1.1875rem;line-height:1.4;max-width:70ch}
.claim.placeholder{background:repeating-linear-gradient(135deg,transparent 0 12px,#f3e7c655 12px 14px);border-radius:6px;padding:16px}
.evidence{margin:6px 0 0;padding-left:18px;font-size:0.875rem;line-height:1.65}.evidence li{margin-bottom:6px}.chip.small{font-size:0.625rem;padding:1px 7px;vertical-align:middle}
@media(max-width:700px){.guide-title{font-size:1.875rem}.guide-tabs{top:64px}}

/* Collections / study sheets */
.collection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.collection-card{display:flex;flex-direction:column;gap:8px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);text-decoration:none;min-height:150px}
.collection-card:hover{background:var(--ws-semantic-surface-subtle)}
.collection-card-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:0.75rem}.collection-card-top .icon{width:20px;height:20px}
.collection-card h2{font-family:var(--serif);font-weight:400;font-size:1.25rem;line-height:1.3}
.collection-q{font-family:var(--serif);font-style:italic;font-size:1rem;line-height:1.5;color:var(--ink)}
.empty-panel{text-align:left}
.sheet-item{padding:18px 0;border-top:1px solid var(--line)}.sheet-item:first-of-type{border-top:0}
.sheet-item-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.sheet-item-head h3{font-family:var(--serif);font-weight:400;font-size:1.1875rem;flex:1 1 200px;min-width:0}.sheet-item-head h3 a{color:inherit;text-decoration:none}.sheet-item-head h3 a:hover{text-decoration:underline}
.sheet-controls{display:flex;gap:2px;margin-left:auto}.sheet-controls .icon-btn{width:34px;height:34px}.sheet-controls [data-action=sheet-up] .icon{transform:rotate(-90deg)}.sheet-controls [data-action=sheet-down] .icon{transform:rotate(90deg)}
.sheet-text{font-family:var(--serif);font-size:1.0625rem;line-height:1.75;padding:6px 0 6px 16px;border-left:3px solid var(--ws-color-brand-ochre,#C48A2C)}
.sheet-comment{margin-top:10px;padding:10px 14px;background:var(--ws-semantic-surface-subtle);border-radius:6px;font-size:0.875rem;line-height:1.6}
.sheet-print{max-width:760px}.sheet-print .sheet-item{padding:16px 0}
.research-items{display:grid;gap:6px;margin:10px 0;min-width:0}.research-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;font-size:0.8125rem;padding:6px 0;border-bottom:1px solid var(--line);min-width:0}.research-item b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.research-item .icon-btn{width:32px;height:32px}
@media print{.sidebar,.header,.no-print,.toolbar,.breadcrumb{display:none!important}.app-main{margin:0;padding:0}.sheet-print{max-width:none}}

/* Accessible accent text */
.text-link.accent{color:var(--ws-semantic-text-accent)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.sheet-item-head h2{font-family:var(--serif);font-weight:400;font-size:1.1875rem;flex:1 1 200px;min-width:0;margin:0}.sheet-item-head h2 a{color:inherit;text-decoration:none}.sheet-item-head h2 a:hover{text-decoration:underline}
.note-filters h2{font-size:0.6875rem;text-transform:uppercase;letter-spacing:.6px;margin:6px 8px 13px;font-weight:600}.filter-sidebar h2.side-heading{font-size:0.8125rem;margin:22px 0 12px}
.concept-card-title{font-size:0.875rem;margin:0}h2.concept-card-title{font-size:0.875rem}
.search-rail h2.side-heading,.graph-filters h2.side-heading{font-size:0.8125rem;margin:0 0 12px}

/* Global search suggestions (combobox) */
.global-search{position:relative}
.suggest{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 14px 40px #30261924;padding:6px;max-height:min(70vh,520px);overflow:auto;z-index:40}
.suggest-group{font-size:0.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:8px 10px 4px}
.suggest-item{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:6px;color:var(--ink);text-decoration:none}
.suggest-item .icon{flex:0 0 18px;width:18px;height:18px;margin-top:2px;color:var(--muted)}
.suggest-item span{display:flex;flex-direction:column;gap:2px;min-width:0}.suggest-item b{font-weight:500;font-size:0.875rem}.suggest-item small{color:var(--muted);font-size:0.75rem;line-height:1.5;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.suggest-item:hover,.suggest-item[aria-selected=true]{background:var(--ws-semantic-surface-subtle)}

/* Selection toolbar */
#selection-bar{position:fixed;z-index:60;display:flex;align-items:center;gap:6px;flex-wrap:wrap;max-width:min(96vw,760px);padding:8px 10px;background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 40px #30261930}
#selection-bar .selection-ref{font-size:0.8125rem;font-weight:600;padding:0 6px;color:var(--ink)}
#selection-bar .btn.small{padding:6px 10px;font-size:0.8125rem}
#selection-bar .icon-btn{width:34px;height:34px}
@media(max-width:700px){#selection-bar{left:8px!important;right:8px;max-width:none;bottom:12px;top:auto!important}}
.concept-cards,.concept-directory{align-items:stretch}

/* Sermon Builder: research picker, style preferences, review */
.research-tabs{margin-top:4px}
.research-h{font-size:0.8125rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:16px 0 8px;display:flex;align-items:center;gap:8px}.research-h small{text-transform:none;letter-spacing:0}
.research-card{border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin-bottom:8px;background:var(--paper)}
.research-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.research-card-head b{display:block;font-size:0.9375rem}.research-card-head small{display:block;color:var(--muted);font-size:0.75rem;margin-top:2px}
.research-card p{font-family:var(--serif);font-size:0.9375rem;line-height:1.65;margin:8px 0 0}
.style-prefs{display:grid;gap:6px;margin:0}.style-prefs div{display:grid;grid-template-columns:1fr auto;gap:8px;font-size:0.8125rem;padding:4px 0;border-bottom:1px solid var(--line)}.style-prefs dt{color:var(--muted)}.style-prefs dd{margin:0;text-align:right;font-weight:500}
.review-list{list-style:none;padding:0;margin:10px 0 0}.review-list li{margin-bottom:8px}.review-list .check-row{align-items:flex-start;line-height:1.55}
.insert-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.insert-bar .meta{font-size:0.75rem}

/* Topical index */
.topic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.topic-card{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);text-decoration:none}.topic-card:hover{background:var(--ws-semantic-surface-subtle)}
.topic-card b{font-family:var(--serif);font-weight:400;font-size:1.0625rem}.topic-card small{color:var(--muted);font-size:0.75rem}
.topic-entries{display:grid;gap:12px;margin-top:16px}
.topic-entry{padding:14px 18px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}.topic-entry h2{font-family:var(--serif);font-weight:400;font-size:1.125rem;margin:0 0 8px;line-height:1.4}
.ref-chips{display:flex;flex-wrap:wrap;gap:6px}
.ref-chip{font-size:0.75rem;padding:4px 9px;border:1px solid var(--line);border-radius:14px;color:var(--ink);text-decoration:none;background:var(--canvas)}.ref-chip:hover{border-color:var(--navy);background:var(--ws-semantic-surface-subtle)}
.ref-previews{margin-top:10px;display:grid;gap:6px}.ref-previews p{font-family:var(--serif);font-size:0.9375rem;line-height:1.6;margin:0}.ref-previews b{font-family:var(--sans);font-size:0.75rem;font-weight:600;margin-right:6px}
/* Inline links inside running text are underlined, never color-only (WCAG 1.4.1). */
p a:not(.btn):not(.chip):not(.ref-chip):not(.text-link),.meta a:not(.btn):not(.chip),.topic-entry p a,.related a small{text-decoration:underline;text-underline-offset:2px}
/* Help hub: guided paths (carousel), field guide cards, questions, guide articles. */
.help-hub ws-feature-carousel{display:block;margin-top:16px}
.help-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.help-card{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);text-decoration:none;min-height:100%}
.help-card:hover{border-color:var(--ws-semantic-border-default)}.help-card b{font-family:var(--serif);font-weight:400;font-size:1.125rem;line-height:1.25}.help-card small{color:var(--muted);font-size:0.8125rem;line-height:1.45}
.help-card-cta{margin-top:auto;padding-top:8px;display:inline-flex;align-items:center;gap:4px;color:var(--ws-semantic-text-accent);font-size:0.8125rem;font-weight:600}.help-card-cta svg{width:16px;height:16px}
.help-faq details{border-top:1px solid var(--line);padding:4px 0}.help-faq details:first-child{border-top:0}
.help-faq summary{cursor:pointer;padding:10px 4px;font-family:var(--serif);font-size:1.0625rem;line-height:1.35;list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center;border-radius:6px}
.help-faq summary::-webkit-details-marker{display:none}.help-faq summary::after{content:'+';font-family:var(--sans);color:var(--muted);font-size:1.25rem;flex:none;width:24px;text-align:center}.help-faq details[open] summary::after{content:'−'}
.help-faq summary:focus-visible{outline:2px solid var(--ws-semantic-border-focus);outline-offset:2px}
.help-faq details p{margin:0 4px 12px;max-width:68ch;line-height:1.6;color:var(--ws-semantic-text-secondary)}
.help-article{max-width:none}.help-article section+section{margin-top:22px}.help-article h2{font-family:var(--serif);font-weight:400;font-size:1.375rem;margin:0 0 6px}.help-article p,.help-article li{line-height:1.65;font-size:0.9375rem}.help-article ul{margin:4px 0 0;padding-left:20px}.help-article li+li{margin-top:4px}
.help-pager{display:flex;justify-content:space-between;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.help-pager a{display:inline-flex;align-items:center;gap:6px;color:var(--ink);text-decoration:none;font-size:0.875rem;min-height:44px}.help-pager a:hover span{text-decoration:underline}.help-pager a:first-child svg{transform:rotate(180deg)}
/* One search: clear control, recent searches. */
.search-clear{flex:none;width:32px;height:32px;margin:-6px -4px -6px 0;border:0;border-radius:6px;background:transparent;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.search-clear:hover{background:var(--ws-semantic-surface-subtle);color:var(--ink)}.search-clear svg{width:18px;height:18px}

.chips-row .ref-chip{display:inline-flex;align-items:center}
.recent-searches{margin:16px 0 4px}.recent-searches .side-heading{margin:0}.chips-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.chips-row .ref-chip svg{width:14px;height:14px;margin-right:4px;color:var(--muted)}
.topic-group{font-family:var(--sans);font-weight:600;font-size:0.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ws-semantic-text-tertiary);margin:10px 0 -4px}.topic-group span{margin:0 4px;opacity:.6}
.topic-entry h3{font-family:var(--serif);font-weight:400;font-size:1.125rem;margin:0 0 8px;line-height:1.4}


.search-start{margin-top:18px}.search-start .side-heading{margin:0}.chips-row .ref-chip small{margin-left:6px;color:var(--muted);font-size:0.6875rem}
.topic-entry.in-group{padding:10px 18px;display:grid;grid-template-columns:minmax(200px,320px) 1fr;gap:6px 18px;align-items:start}.topic-entry.in-group>.flex{grid-column:1;align-items:flex-start}.topic-entry.in-group h3{font-size:1rem;margin:4px 0 0}.topic-entry.in-group .ref-chips{grid-column:2;margin-top:0;padding-top:4px}.topic-entry.in-group .ref-previews{grid-column:1/-1}
@media(max-width:700px){.topic-entry.in-group{grid-template-columns:1fr}.topic-entry.in-group .ref-chips{grid-column:1}}
.topic-entries .topic-group+.topic-entry.in-group{margin-top:8px}
/* Resource Panel: the Reader rail follows the verse being read. Built from the rail vocabulary (panel, rail-title,
   recent-note, ref-chip, linked-card, text-link, check-row); only the toggle affordance and counts are new. */
.resource-panel{position:sticky;top:var(--header-height);max-height:calc(100vh - var(--header-height));overflow-y:auto;padding:18px 18px 24px}
.rp-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.rp-kicker{margin:0;font-size:0.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ws-semantic-text-tertiary)}
.rp-ref h2{font-family:var(--serif);font-weight:400;font-size:1.5rem;line-height:1.2;margin:2px 0 0}
.rp-nav{display:flex;gap:2px;flex:none}.rp-nav [data-action=rp-prev] svg{transform:rotate(180deg)}.rp-nav .icon-btn[disabled]{opacity:.35}
.rp-follow{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:12px 0 16px}.rp-follow .check-row{margin:0}
.resource-panel .panel{padding:0;margin-bottom:10px}
.rp-toggle{width:100%;margin:0;padding:14px 16px;border:0;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer;border-radius:9px;min-height:var(--ws-size-target-default)}
.rp-toggle:hover{background:var(--ws-semantic-surface-subtle)}.rp-toggle:focus-visible{outline:2px solid var(--ws-semantic-border-focus);outline-offset:-2px}
.rp-heading{margin:0;font-size:inherit}.rp-name{font-size:0.9375rem;font-weight:600;flex:1}
.rp-count{font-size:0.75rem;color:var(--muted);font-variant-numeric:tabular-nums}
.rp-toggle>svg:last-child{width:18px;height:18px;color:var(--muted);transition:transform .15s}.rp-section.open .rp-toggle>svg:last-child{transform:rotate(180deg)}
.rp-body{padding:0 16px 16px}.rp-body>.meta{font-size:0.75rem;line-height:1.5}.rp-body .btn{margin-top:10px}
.rp-rows{display:flex;flex-direction:column}
.rp-rows .recent-note{margin:0;padding:10px 0;border-top:1px solid var(--ws-semantic-border-subtle);color:var(--ink);text-decoration:none;align-items:flex-start}.rp-rows .recent-note:first-child{border-top:0;padding-top:2px}
.rp-rows .recent-note>span{flex:1;min-width:0}.rp-rows .recent-note b{font-weight:600;font-size:0.8125rem;display:block}.rp-rows .recent-note small{color:var(--muted);font-size:0.75rem;line-height:1.45}
.rp-rows .recent-note .icon{flex:none;width:18px;height:18px;color:var(--gold)}.rp-rows a.recent-note:hover b{text-decoration:underline}
.rp-excerpt{font-family:var(--serif);color:var(--ws-semantic-text-secondary);font-size:0.8125rem}
.rp-foot{margin-top:10px}
.rp-group{font-size:0.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ws-semantic-text-tertiary);margin:12px 0 4px;font-weight:600}.rp-group:first-child{margin-top:0}
.rp-rendering{display:grid;grid-template-columns:44px 1fr;gap:8px;padding:7px 0;border-top:1px solid var(--ws-semantic-border-subtle)}.rp-group+.rp-rendering{border-top:0}.rp-rendering b{font-size:0.75rem;color:var(--ws-semantic-text-accent);padding-top:3px}.rp-rendering p{margin:0;font-family:var(--serif);font-size:0.9375rem;line-height:1.55}.rp-rendering p.script-hebrew{font-family:var(--hebrew,'Noto Serif Hebrew',serif);font-size:1.0625rem}.rp-rendering p.script-greek{font-family:var(--greek,'Noto Serif',serif)}.script-coptic{font-family:var(--coptic,'Noto Sans Coptic','Antinoou',sans-serif);font-size:1.0625rem}
/* Ge'ez. No webfont is shipped for it: every platform Wellspring runs on already carries an Ethiopic face (Kefa on Apple, Nyala on Windows, Noto on Android and most Linux), and the corpus is large enough without 200 KB of type. The line is set looser because Ethiopic syllables are tall. */
.script-ethiopic{font-family:var(--ethiopic,'Noto Serif Ethiopic','Noto Sans Ethiopic','Abyssinica SIL',Kefa,Nyala,serif);line-height:1.85}.verses.script-ethiopic .verse-text{font-size:1.05em}
/* Where a reader without an account is told their work is on this device and nowhere else. Quiet, above the rows,
   not a banner: it is a fact about their storage, not a pitch. */
.rp-on-device{margin:0 0 8px;padding:7px 9px;border:1px solid var(--line);border-left:2px solid var(--ws-semantic-text-accent);border-radius:7px;background:var(--paper)}
.rp-on-device a{color:var(--ws-semantic-text-accent)}
.rp-words{display:flex;flex-wrap:wrap;gap:6px}.rp-word{display:inline-flex;flex-direction:column;gap:1px;padding:6px 10px;border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--ink);text-decoration:none;min-height:var(--ws-size-target-default);justify-content:center}.rp-word span{font-size:1.0625rem;font-family:var(--serif)}.rp-word span.script-hebrew{font-family:var(--hebrew,'Noto Serif Hebrew',serif)}.rp-word small{font-size:0.6875rem;color:var(--muted)}.rp-word:hover{border-color:var(--navy)}
.resource-panel .linked-card{margin:8px 0 0}
.resource-panel .ref-chip small{margin-left:5px;color:var(--muted);font-size:0.625rem}
.resource-panel .side-heading{margin:16px 0 4px}
.rp-jump{display:none}
.resource-panel .linked-card+.rp-rows{margin-top:10px}
@media(max-width:1000px){.resource-panel{position:static;max-height:none}.rp-jump{display:inline-flex}}
/* Tools bar and sheet (docs/ASK-WELLSPRING-RESEARCH.md › Placement). Above 700px they do not exist: the rail is the rail.
   On phones the rail becomes a bottom sheet (half: a region beside the page; full: modal, scrim, page inert) and the
   bar is its docked handle — the rail's own sections as segments with their real counts. Nothing floats. */
.tools-dock,.tools-sheet-head{display:none}
@media(max-width:700px){
  :root{--tools-bar-h:calc(58px + env(safe-area-inset-bottom,0px))}
  .reader-layout,.builder-phone,.page.passage-guide,.page.notes-page{padding-bottom:var(--tools-bar-h)}
  .note-filters.tools-sheet-panel{border:0;border-radius:14px 14px 0 0;margin:0}.note-filters.tools-sheet-panel h2{margin-top:10px;scroll-margin-top:64px}
  /* The Passage Guide's rail as the sheet: its panels stack as plain sections, the sheet's own head above them. */
  .guide-rail.tools-sheet-panel{position:fixed;display:block;top:auto;gap:0}.guide-rail.tools-sheet-panel .panel{margin:0;padding:12px 0 16px;border:0;border-radius:0;box-shadow:none;background:none}
  .tools-dock{display:contents}
  .tools-bar{position:fixed;left:0;right:0;bottom:var(--bottom-inset,0px);z-index:27;display:flex;align-items:stretch;height:var(--tools-bar-h);padding:0 4px env(safe-area-inset-bottom,0px);background:var(--paper);border-top:1px solid var(--line);box-shadow:0 -1px 0 var(--ws-semantic-border-subtle,var(--line))}
  .tools-seg{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 2px 4px;border:0;background:none;color:var(--muted);font:inherit;font-size:0.6875rem;line-height:1.1;cursor:pointer;border-radius:8px;position:relative}
  .tools-seg .icon{width:20px;height:20px}.tools-seg span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tools-seg small{position:absolute;top:4px;right:calc(50% - 22px);min-width:16px;padding:0 4px;border-radius:8px;background:var(--canvas);color:var(--ink);font-size:0.625rem;line-height:16px;text-align:center}
  .tools-seg[aria-pressed=true]{color:var(--navy)}.tools-seg[aria-pressed=true]::after{content:'';position:absolute;left:18%;right:18%;top:0;height:2px;background:var(--gold);border-radius:0 0 2px 2px}.tools-seg:focus-visible{outline:2px solid var(--navy);outline-offset:-2px}
  .tools-scrim{position:fixed;inset:0;z-index:25;background:#1e274766}
  /* The rail as the sheet: off-screen until opened; half and full rests; the bar stays visible beneath it. */
  .reader-rail.resource-panel,.tools-sheet-panel{position:fixed;top:auto;left:0;right:0;bottom:calc(var(--tools-bar-h) + var(--bottom-inset,0px));z-index:26;margin:0;max-height:48vh;height:48vh;overflow:auto;padding:0 14px 16px;background:var(--paper);border:1px solid var(--line);border-bottom:0;border-radius:14px 14px 0 0;box-shadow:0 -8px 30px #1e274733;transform:translateY(calc(100% + 8px));visibility:hidden;transition:transform .2s ease,visibility 0s .2s}
  .reader-rail.resource-panel.sheet-open,.tools-sheet-panel.sheet-open{transform:none;visibility:visible;transition:transform .2s ease,visibility 0s}
  .reader-rail.resource-panel[data-sheet=full],.tools-sheet-panel[data-sheet=full]{height:calc(100vh - var(--tools-bar-h) - var(--bottom-inset,0px) - 24px);max-height:calc(100vh - var(--tools-bar-h) - var(--bottom-inset,0px) - 24px)}
  /* Peek: the head alone, resting on the Tools bar — a minimise, not a close. */
  .reader-rail.resource-panel[data-sheet=peek],.tools-sheet-panel[data-sheet=peek],.maps-phone .atlas-panel[data-sheet=peek]{height:var(--ws-size-phone-sheet-peek,86px)!important;max-height:var(--ws-size-phone-sheet-peek,86px)!important;overflow:hidden}
  .tools-sheet-panel[data-sheet=peek] .tools-sheet-head,.reader-rail.resource-panel[data-sheet=peek] .tools-sheet-head{border-bottom:0}
  .tools-sheet-head{display:block;position:sticky;top:0;z-index:2;background:var(--paper);margin:0 -14px;padding:0 14px 6px;border-bottom:1px solid var(--line);touch-action:none}.tools-sheet-row{padding-top:4px}
  /* Pulled by hand (src/ui/sheet-drag.js): while a drag is live the height is set inline, so the rest transition must not fight it. */
  [data-dragging]{transition:none!important;will-change:height}[data-dragging] *{pointer-events:none}
  .tools-grabber{display:block;width:100%;min-height:28px;background:none;border:0;padding:10px 0 8px;cursor:pointer}.tools-grabber span{display:block;width:40px;height:4px;border-radius:2px;background:var(--line);margin:0 auto}.tools-grabber:focus-visible span{outline:2px solid var(--navy);outline-offset:4px}
  .tools-sheet-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.tools-sheet-title{font-family:var(--serif);font-weight:500;font-size:1.125rem;margin:0;display:flex;align-items:center;gap:8px;flex:1}.tools-sheet-title:focus{outline:none}.tools-sheet-title .rp-count{font-family:var(--sans);font-size:0.75rem;color:var(--muted)}
  .reader-rail.resource-panel .rp-head{margin-top:10px}
  /* The sheet shows one section: the others wait behind the bar; the open section's own heading is the sheet's. */
  .reader-rail.resource-panel .rp-section:not(.open),.reader-rail.resource-panel>.side-heading,.reader-rail.resource-panel>.linked-card,.reader-rail.resource-panel>.divider{display:none}
  .reader-rail.resource-panel .rp-section.open .rp-heading{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .reader-rail.resource-panel .rp-section.open{border:0;padding:0;background:none;box-shadow:none}
  .reader-rail.sheet-list .rp-head,.reader-rail.sheet-list .rp-follow,.reader-rail.sheet-list .rp-section,.reader-rail.resource-panel .rp-foot{display:none}
  .tools-list{list-style:none;margin:10px 0 0;padding:0}.tools-row{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:8px 4px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);font:inherit;font-size:0.9375rem;text-align:left;cursor:pointer}.tools-row .icon{width:18px;height:18px;color:var(--muted)}.tools-row span{flex:1}.tools-row small{color:var(--muted);font-size:0.75rem}.tools-row:focus-visible{outline:2px solid var(--navy);outline-offset:-2px}
  .rp-jump{display:none}
  #selection-bar{bottom:calc(var(--tools-bar-h) + 8px)}
  .page-motion-reduced .reader-rail.resource-panel,.page-motion-reduced .tools-bar{transition:none}
  @media(prefers-reduced-motion:reduce){.reader-rail.resource-panel{transition:none}}
}

/* Select: one chevron everywhere (Lucide chevron-down, 1.75 stroke), inset from the edge with room beside it. */
select{-webkit-appearance:none;appearance:none;padding-right:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236F685C' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px 18px}
select:focus-visible{outline:2px solid var(--ws-semantic-border-focus);outline-offset:1px}
/* Reader: go-to selectors (book, chapter, section) as a second way through the text; origin return link. */
.reader-jump{display:inline-flex;gap:6px;flex-wrap:wrap}
.verse-heading.editorial{color:var(--ws-semantic-text-tertiary)}
.return-link svg{transform:rotate(180deg)}
.verse-heading:focus,.guide-section h2:focus{outline:none}
/* Concept cards: the footer (Explore / Viewed) is pinned to the bottom at one level across a row, whatever the title wraps to. */
.concept-card{display:flex;flex-direction:column;height:100%}.concept-card-top{flex:1 1 auto}.concept-card-footer{margin-top:auto!important;padding-top:18px;flex:none}
/* Passage Guide v2: six questions. */
.guide-section{padding:22px 24px;margin-bottom:14px}.guide-q{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.guide-q h2{font-family:var(--serif);font-weight:400;font-size:1.375rem;line-height:1.25;margin:2px 0 0}.guide-summary{margin-top:4px;font-size:0.8125rem}
.guide-count{flex:none;min-width:36px;height:36px;padding:0 10px;border-radius:18px;background:var(--ws-semantic-surface-subtle);color:var(--ws-semantic-text-secondary);font-size:0.8125rem;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;justify-content:center}
.guide-section h3{font-size:0.9375rem;font-weight:600;margin:0 0 6px}.guide-section h3 small{font-weight:400;margin-left:6px}
.guide-verses .verse-number{background:none;border:0;padding:0;font:inherit;color:var(--ws-semantic-text-tertiary);font-size:0.8125rem;cursor:pointer;border-radius:4px;min-width:28px;min-height:24px;text-align:right}.guide-verses .verse-number:hover{color:var(--ink)}.guide-verses .verse-number[aria-pressed=true]{color:var(--ws-semantic-text-accent);font-weight:700}
.guide-verses .verse.target{background:#f3e7c6;border-radius:6px}
.diff-list{display:grid;gap:14px}.diff-verse{border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:12px 14px}.diff-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}.diff-head b{font-size:0.875rem}
.diff-row{display:grid;grid-template-columns:44px 1fr;gap:8px;padding:6px 0;border-top:1px solid var(--ws-semantic-border-subtle)}.diff-row:first-of-type{border-top:0}.diff-abbr{font-size:0.75rem;color:var(--ws-semantic-text-accent);padding-top:3px}.diff-row p{margin:0;font-family:var(--serif);font-size:0.9375rem;line-height:1.55}
mark.diff{background:#f3e7c6;color:inherit;border-radius:3px;padding:0 2px;text-decoration:underline dotted var(--ws-semantic-text-accent);text-underline-offset:3px}
.witness-list{display:grid;gap:8px}.witness{display:grid;grid-template-columns:minmax(140px,180px) 1fr auto;gap:4px 14px;align-items:baseline;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}.witness b{font-size:0.875rem}.witness small{grid-column:1/-1;color:var(--ws-semantic-text-secondary);font-size:0.75rem;line-height:1.5}.witness-status{font-size:0.6875rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.witness.held .witness-status{color:var(--ws-semantic-text-accent)}
.term-counts{font-size:0.6875rem;color:var(--muted);margin-top:2px}
.guide .rp-rows .recent-note small.rp-excerpt{display:block}
@media(max-width:700px){.witness{grid-template-columns:1fr}.witness-status{white-space:normal}.diff-row{grid-template-columns:1fr}.guide-section{padding:16px}}
.guide .toolbar{flex-wrap:wrap}.guide .toolbar .btn{max-width:100%;white-space:normal;text-align:left}
.witness-text{grid-column:1/-1;margin-top:6px;padding-top:8px;border-top:1px solid var(--ws-semantic-border-subtle)}.witness-text .rp-rendering p.script-grek{font-family:var(--greek,'Noto Serif',serif)}.witness-text .text-link{margin-top:6px}
.verses.highlight-mode .verse-text{cursor:pointer}.verses.highlight-mode .verse:hover .verse-text{background:#f3e7c6;border-radius:4px}.icon-btn[aria-pressed=true]{background:var(--ws-semantic-surface-subtle);box-shadow:inset 0 0 0 1px var(--line)}
.guide-section .guide-verses+h3,.guide-section .subtle+h3{margin-top:22px}.diff-list{margin-top:10px}.witness-list{margin-top:10px}.guide-section h3{margin-top:6px}
/* Passage Guide, mock shape (M2/M3/M7): overview grid of summary cards, tabs for depth, a constant study rail. */
.guide-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}
.guide-rail{position:sticky;top:calc(var(--header-height) + 12px);display:flex;flex-direction:column;gap:12px}.guide-rail .panel{margin:0;padding:16px 18px}.guide-rail .rail-title{margin-bottom:10px}.guide-rail .rail-title h2{font-size:0.9375rem}
.guide-rail select{width:100%;margin:0 0 10px}.study-counts{display:flex;flex-direction:column}.study-counts .recent-note{margin:0;padding:8px 0;border-top:1px solid var(--ws-semantic-border-subtle);color:var(--ink);text-decoration:none;background:none;border-left:0;border-right:0;border-bottom:0;font:inherit;text-align:left;cursor:pointer;width:100%}.study-counts .recent-note:first-child{border-top:0}.study-counts .recent-note .icon{color:var(--gold);width:18px;height:18px}.study-counts .recent-note b{font-weight:500;font-size:0.8125rem}
.guide-rail .btn.full{width:100%;margin-top:10px}
.question-list{margin:0;padding-left:20px;font-size:0.8125rem;line-height:1.5}.question-list li{display:flex;gap:6px;align-items:flex-start;padding:4px 0}.question-list li span{flex:1}.question-list .icon-btn{width:28px;height:28px;min-width:28px;min-height:28px;padding:4px}
.search-input.small{padding:7px 10px;gap:8px}.search-input.small input{font-size:0.8125rem}
.guide-head .guide-title{margin-bottom:6px}.guide-subtitle{font-style:italic;font-weight:400;font-size:0.55em;color:var(--ws-semantic-text-secondary);margin-left:12px;white-space:nowrap}
.tag-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px}.tag{display:inline-flex;align-items:center;gap:2px;padding:4px 6px 4px 10px;border-radius:14px;background:var(--ws-semantic-surface-subtle);font-size:0.75rem;color:var(--ink)}.tag .icon-btn{width:22px;height:22px;min-width:22px;min-height:22px;padding:2px}.tag .icon-btn svg{width:12px;height:12px}
.tag-form input{border:1px dashed var(--line);border-radius:14px;padding:4px 10px;font-size:0.75rem;background:transparent;color:var(--ink);width:110px}.tag-form input:focus{outline:2px solid var(--ws-semantic-border-focus);outline-offset:1px;border-style:solid}
.guide-tabs button.active{background:var(--ws-semantic-surface-subtle);font-weight:600}
.guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px;margin-top:14px}
.guide-card{margin:0;padding:18px 20px;min-width:0}.guide-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px}.guide-card-head h2{font-size:1rem;font-weight:600;margin:0}.guide-card .text-link{font-size:0.75rem;white-space:nowrap}
.guide-verses.compact .verse{margin:0 0 8px}.guide-verses.compact .verse-text{line-height:1.55}
.guide-verses .verse{position:relative}.guide-verses .verse .icon-btn{opacity:0;position:absolute;right:0;top:0;width:30px;height:30px;min-width:30px;min-height:30px;padding:5px}.guide-verses .verse:hover .icon-btn,.guide-verses .verse .icon-btn:focus-visible,.guide-verses .verse .icon-btn[aria-pressed=true]{opacity:1}.guide-verses .verse.key .verse-text{box-shadow:inset 3px 0 0 var(--gold);padding-left:10px}
.key-line{margin:12px 0 0;padding:12px 16px;border-left:3px solid var(--gold);background:#f6efe0;border-radius:0 8px 8px 0}.key-line p{margin:0;font-family:var(--serif);font-style:italic;font-size:1rem;line-height:1.5}.key-line cite{display:block;margin-top:6px;font-style:normal;font-size:0.75rem;color:var(--ws-semantic-text-accent)}
.link-rows{display:flex;flex-direction:column}.link-row{display:grid;grid-template-columns:minmax(120px,0.9fr) 1.6fr auto;gap:10px;align-items:baseline;padding:8px 0;border-top:1px solid var(--ws-semantic-border-subtle);color:var(--ink);text-decoration:none;font-size:0.8125rem}.link-row:first-child{border-top:0}.link-row b{font-weight:600}.link-row span:not(.chip){color:var(--ws-semantic-text-secondary);line-height:1.45}.link-row:hover b{text-decoration:underline}
.chip.link-type{white-space:nowrap;font-size:0.6875rem}.chip.link-type.quotation{background:#e7ecf3}.chip.link-type.parallel{background:#f0e6d5}.chip.link-type.context{background:#e9efe6}.chip.link-type.readers{background:transparent;border:1px solid var(--line);color:var(--muted)}.chip.family{font-size:0.6875rem;white-space:nowrap}
.interp-list{display:flex;flex-direction:column}.interp-row{display:grid;grid-template-columns:minmax(140px,180px) 1fr;gap:12px;padding:8px 0;border-top:1px solid var(--ws-semantic-border-subtle);font-size:0.8125rem;line-height:1.5}.interp-row:first-child{border-top:0}.interp-row b{font-weight:600}.interp-row.pending span{color:var(--muted);font-style:italic}
.lang-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.lang-chips .tab{padding:6px 10px;font-size:0.75rem}
.lang-text{font-family:var(--serif);font-size:1.25rem;line-height:1.6;margin:0 0 6px}.lang-text.script-hebrew{font-family:var(--hebrew,'Noto Serif Hebrew',serif);font-size:1.4rem}.lang-text.script-grek{font-family:var(--greek,'Noto Serif',serif)}
.term-grid.compact{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.term-grid.compact .term{padding:8px 10px}.term-grid.compact .term-def{display:none}
.claim-list{display:flex;flex-direction:column}.claim-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--ws-semantic-border-subtle);font-size:0.8125rem;line-height:1.45}.claim-row:first-child{border-top:0}.claim-row .chip{white-space:nowrap;flex:none}
@media(max-width:1100px){.guide-layout{grid-template-columns:1fr}.guide-rail{position:static}}
@media(max-width:700px){.guide-grid{grid-template-columns:1fr}.link-row{grid-template-columns:1fr}.interp-row{grid-template-columns:1fr}.guide-subtitle{display:block;margin:4px 0 0;white-space:normal}}
.guide-tabs{scroll-margin-top:var(--header-height)}
/* Research Project (M5): glance counts, evidence grid, bibliography, user links. */
.glance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.glance{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border:1px solid var(--ws-semantic-border-subtle);border-radius:8px;text-align:center}.glance .icon-wrap{color:var(--gold);width:20px;height:20px}.glance .icon-wrap svg{width:20px;height:20px}.glance b{font-size:1.25rem;font-weight:600;line-height:1.1}.glance small{font-size:0.6875rem;color:var(--muted)}
.evidence-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.bibliography{margin:0;padding-left:20px}.bibliography li{margin:0 0 12px;line-height:1.5}.bibliography li p{margin:0;font-size:0.875rem}.bibliography small{display:block;margin-top:2px}
.question-list.large{font-size:0.9375rem}.question-list.large li{padding:8px 0;border-top:1px solid var(--ws-semantic-border-subtle)}.question-list.large li:first-child{border-top:0}
.link-row-wrap{display:flex;align-items:center;gap:6px}.link-row-wrap .link-row{flex:1;min-width:0}
.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:2px 12px}.check-grid .check-row{margin:4px 0}
fieldset.field{border:0;padding:0;margin:0 0 14px}fieldset.field legend{font-size:0.8125rem;font-weight:600;margin-bottom:6px}
.guide-section-plain{margin-top:14px}
#project-status{width:auto;max-width:180px;margin:0}
@media(max-width:700px){.glance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.guide-section-plain .toolbar,.guide-head .toolbar{flex-wrap:wrap}
/* Sermon Builder v2 (M1): metadata cards, section tools, quick-insert bar, passage cards, rail tabs. */
.sermon-meta.cards{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-bottom:14px}.meta-card{border:1px solid var(--line);border-radius:9px;background:var(--paper);padding:14px 16px}.meta-card small{font-size:0.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ws-semantic-text-tertiary)}.meta-card h2{font-family:var(--serif);font-weight:400;font-size:1.375rem;margin:4px 0 0;display:flex;align-items:center;gap:6px}.meta-card p{margin:6px 0 0;display:flex;align-items:center;gap:8px;font-size:1rem}.meta-card p svg{width:18px;height:18px;color:var(--muted)}
.sermon-tabs{margin-bottom:12px}
.section-tools{margin-left:auto;display:inline-flex;gap:2px}.section-tools .icon-btn{width:32px;height:32px;min-width:32px;min-height:32px;padding:6px}.section-tools [data-dir="-1"] svg{transform:rotate(180deg)}.section-tools .icon-btn[disabled]{opacity:.3}
.section-state svg{width:12px;height:12px;color:#fff}
.insert-bar .btn.small{font-size:0.75rem}
.passage-card{padding:0;overflow:hidden}.passage-card-head{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--ws-semantic-border-subtle);background:var(--ws-semantic-surface-subtle)}.passage-card-head svg{width:18px;height:18px;color:var(--gold)}.passage-card-head h4{margin:0;font-family:var(--serif);font-weight:400;font-size:1.0625rem}.passage-card-head .meta{margin-left:auto;font-size:0.75rem}
.passage-card-body{padding:12px 16px}.passage-card-body p{margin:0 0 6px;font-family:var(--serif);font-size:0.9375rem;line-height:1.6}.passage-card-body b{font-family:var(--sans);font-weight:500;font-size:0.75rem;color:var(--ws-semantic-text-tertiary);margin-right:4px}
.passage-card-tools{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;border-top:1px solid var(--ws-semantic-border-subtle)}.passage-card-tools .view-context{margin-left:auto}
.selected-research .rp-rows .recent-note{padding:7px 0}.selected-research .rp-count{margin-left:auto}.selected-research .btn.full{width:100%;margin-top:10px}.selected-research .text-link{font-size:0.75rem}
.builder-rail .rail-tabs{margin-bottom:12px}.builder-rail .rail-tabs button{font-size:0.75rem;padding:8px 6px}
@media(max-width:900px){.sermon-meta.cards{grid-template-columns:1fr}}
.library-tally{margin-top:4px;font-size:0.75rem}
/* Research picker cards wrap their actions on narrow screens instead of overflowing the dialog. */
.research-card-head{flex-wrap:wrap}.research-card-head>div:first-child{min-width:0;flex:1 1 180px}.research-card-head .toolbar{flex-wrap:wrap;margin:0}.research-card-head .toolbar .btn{white-space:normal}
/* Dialogs never exceed the viewport: the backdrop grid track is bounded and widths are min() of the design width. */
.modal-backdrop{grid-template-columns:minmax(0,1fr)}.modal{width:min(510px,100%);max-width:100%;box-sizing:border-box}.modal.wide{width:min(720px,100%)}
/* Commentaries (named-author interpretations) and dictionary entries. */
.comm-row{padding:10px 0;border-top:1px solid var(--ws-semantic-border-subtle)}.comm-row:first-child{border-top:0;padding-top:0}.comm-head{display:flex;gap:10px;align-items:baseline;margin-bottom:4px}.comm-head b{font-size:0.8125rem;color:var(--ws-semantic-text-accent)}.comm-row p{margin:0 0 4px;font-family:var(--serif);font-size:0.9375rem;line-height:1.6}.comm-row .text-link{font-size:0.75rem}
.dict-text p{font-family:var(--serif);font-size:1rem;line-height:1.7;max-width:70ch}.letter-row{display:flex;flex-wrap:wrap;gap:6px}
.verse-number.range{font-size:0.6875rem;letter-spacing:.02em;min-width:64px;text-align:left;line-height:1.3;padding-top:8px}
/* A commentary's units are labelled by range rather than numbered — “Chapter”, “vv. 1” — and those labels are words,
   not numerals. The marker asked for 64px while the row's first grid column stayed the 24–30px a verse number needs,
   so the label overran its own track and printed on top of the text beside it: in JFB on Genesis 1, “Chapter” sat
   under “CHAPTER 1” by 36px. The gutter now matches what the marker was already asking for, and only on the rows
   that carry one, so ordinary numbered verses keep their narrow column. */
.verse:has(.verse-number.range){grid-template-columns:64px minmax(0,1fr)}
/* Peoples dossiers: typed sources with stated access. */
.bibliography.sources .source-row{margin:0 0 14px}.source-tags{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}.chip.access.public-domain{background:#e9efe6}.chip.access.open-access{background:#e7ecf3}.chip.access.cite-only,.chip.access.free-to-read{background:transparent;border:1px solid var(--line);color:var(--muted)}
.chip.access.ingested{background:#e9efe6;font-weight:600}
/* Highlight mode bar: sits between the reader controls and the text; swatches are the Quick highlight atoms. */
.highlight-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 14px;margin:-12px 0 20px;background:var(--ws-semantic-surface-subtle);border:1px solid var(--line);border-radius:8px}
.highlight-bar-title{display:inline-flex;align-items:center;gap:8px;font-weight:500;font-size:0.8125rem}.highlight-bar-title .icon{width:16px;height:16px}
.highlight-bar .color-options{display:flex;gap:8px;margin:0}.highlight-bar .color-swatch{width:24px;height:24px}
.highlight-bar-hint{flex:1 1 220px;font-size:0.75rem;line-height:1.4}.highlight-bar .btn{margin-left:auto}
.verses.highlight-mode .verse{scroll-margin-top:120px}
/* Menu select (src/ui/menu-select.js): Select-atom chrome on the trigger, suggestion-list vocabulary on the popover. */
.ws-select{position:relative;display:inline-flex;min-width:0}
.ws-select-btn{display:inline-flex;align-items:center;width:100%;min-height:36px;padding:8px 38px 8px 12px;border:1px solid var(--line);border-radius:5px;background-color:transparent;color:var(--ink);font-size:0.75rem;text-align:left;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236F685C' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px;transition:background-color .15s}
.ws-select-btn:hover{background-color:var(--ws-semantic-surface-subtle)}.ws-select-btn[aria-expanded=true]{background-color:var(--ws-semantic-surface-subtle);box-shadow:inset 0 0 0 1px var(--line)}
.ws-select-btn.static{cursor:default;background-image:none;padding-right:12px}
.ws-select-value{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ws-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:100%;width:max-content;max-width:min(320px,calc(100vw - 32px));max-height:min(60vh,380px);overflow:auto;z-index:70;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 14px 40px #30261924;padding:6px;outline:none;overscroll-behavior:contain}
.ws-select.up .ws-menu{top:auto;bottom:calc(100% + 6px)}
.ws-menu-group{font-size:0.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:8px 10px 4px}
.ws-menu-option{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:6px;color:var(--ink);font-size:0.8125rem;cursor:pointer;scroll-margin:6px}
.ws-menu-option small{color:var(--muted);font-size:0.75rem}
.ws-menu-option.active{background:var(--ws-semantic-surface-subtle)}
.ws-menu-option[aria-selected=true]{font-weight:500;padding-left:28px;position:relative}
.ws-menu-option[aria-selected=true]:before{content:"";position:absolute;left:10px;top:12px;width:12px;height:12px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231e2747' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") no-repeat center/contain}
.ws-menu:focus-visible{box-shadow:0 14px 40px #30261924,0 0 0 2px var(--gold)}
.ws-menu--grid{--cols:6;display:grid;grid-template-columns:repeat(var(--cols),36px);gap:4px;width:auto;padding:8px}
.ws-menu--grid .ws-menu-option{display:flex;align-items:center;justify-content:center;min-height:36px;padding:0;font-variant-numeric:tabular-nums;text-align:center}
.ws-menu--grid .ws-menu-option[aria-selected=true]{padding:0;background:var(--navy);color:var(--paper)}
.ws-menu--grid .ws-menu-option[aria-selected=true]:before{display:none}
.ws-menu--grid .ws-menu-option[aria-selected=true].active{box-shadow:0 0 0 2px var(--gold)}
.reader-jump .ws-select{flex:0 1 auto}#reader-book{width:auto;min-width:168px;max-width:260px}#reader-chapter{width:138px}#reader-section{width:200px}
.reader-controls .reader-edition{margin-left:auto;max-width:245px}
@media (max-width:600px){
  .ws-menu{position:fixed;top:auto;left:8px;right:8px;bottom:8px;width:auto;max-width:none;max-height:min(70vh,520px);border-radius:12px;box-shadow:0 -10px 40px #30261933}
  .ws-select.up .ws-menu{top:auto;bottom:8px}
  .ws-select.open:before{content:"";position:fixed;inset:0;background:#30261940;z-index:69}
  .ws-menu--grid{grid-template-columns:repeat(auto-fill,minmax(44px,1fr))}.ws-menu--grid .ws-menu-option{min-height:44px}
  .reader-controls .ws-select,.reader-controls .reader-edition{width:100%;max-width:none}#reader-book,#reader-chapter,#reader-section{width:100%}
  .reader-jump{width:100%;display:grid;grid-template-columns:1fr 1fr}.reader-jump .ws-select{width:100%}.reader-jump [data-menu-select=reader-section]{grid-column:1/-1}
}
/* Read: resume card and the Currently-reading shelf (reading-row molecule reused from Home). */
.resume-card{display:flex;align-items:center;gap:18px;padding:20px 22px;text-decoration:none;color:inherit}.resume-card .round-icon{width:48px;height:48px;flex:0 0 48px}.resume-card>div{flex:1;min-width:0}.resume-card h2{margin:2px 0 4px;font-size:1.25rem}.resume-card .kicker{font-size:0.6875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.resume-card:hover{background:var(--ws-semantic-surface-subtle)}.resume-card:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.reading-shelf{margin-top:24px}.reading-shelf .section-head{margin:0 0 8px}.reading-shelf .reading-list{padding:0}
@media (max-width:600px){.resume-card{flex-wrap:wrap}.resume-card .btn{width:100%;justify-content:center}}
/* Concepts: directory rows, concept page cards (guide-card grid), evidence chips, lemma witnesses, works by tradition. */
.concept-rows{display:grid;gap:8px}
.concept-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:inherit;text-decoration:none;min-width:0}
.concept-row .round-icon{width:34px;height:34px;flex:0 0 34px}.concept-row-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.concept-row-body b{font-weight:500}.concept-row-body small{color:var(--muted);font-size:0.75rem}
.concept-row .source-tags{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.concept-row:hover{background:var(--ws-semantic-surface-subtle)}.concept-row:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.concept-verses{list-style:none;margin:0;padding:0;display:grid;gap:8px}.concept-verse{display:grid;gap:2px;padding:8px 0;border-bottom:1px solid var(--line)}.concept-verse:last-child{border-bottom:0}.concept-verse a{text-decoration:none;color:var(--navy)}.concept-verse span{font-family:var(--serif);font-size:0.9375rem;line-height:1.55}
.ref-chip.concept-rel{display:inline-flex;flex-direction:column;align-items:flex-start;gap:0;padding:6px 10px;border-radius:8px;line-height:1.3}.ref-chip.concept-rel small{color:var(--muted);font-size:0.6875rem}
.concept-lemma{text-decoration:none;color:inherit;grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.concept-lemma span:not(.witness-status){grid-column:auto;font-size:0.8125rem;color:var(--ws-semantic-text-secondary);display:flex;flex-direction:column;gap:2px}.concept-lemma small{font-size:0.6875rem}.concept-lemma i{font-style:normal;color:var(--ink)}.concept-lemma b{font-size:1.125rem}.concept-lemma:hover{background:var(--ws-semantic-surface-subtle)}
.concept-works-group{margin-top:12px}.concept-works-group h3{display:flex;align-items:center;gap:8px;font-size:0.8125rem;margin:0 0 6px;padding-left:10px;border-left:3px solid var(--c,var(--navy))}
.concept-work{display:grid;grid-template-columns:minmax(120px,180px) 1fr;gap:6px 12px;align-items:start;padding:6px 0;border-bottom:1px solid var(--line)}.concept-work:last-child{border-bottom:0}.concept-work b{font-weight:500;font-size:0.8125rem;display:flex;flex-direction:column;gap:2px}.concept-work b small{font-weight:400}.ref-chip small{margin-left:6px;color:var(--muted)}.concept-work .ref-chips{display:flex;flex-wrap:wrap;gap:4px}
@media (max-width:600px){.concept-work{grid-template-columns:1fr}.concept-row .source-tags{display:none}}
/* Notes in the reader: marks are handles to their notes; a marker follows any verse with a reflection; the popover
   reads the note in place; inline notes sit under their verses in editorial type. */
#reader-verses mark[data-note]{cursor:pointer;border-radius:3px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
#reader-verses mark.has-note{box-shadow:inset 0 -2px 0 var(--navy)}
#reader-verses mark[data-note]:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.note-marker{display:inline-flex;align-items:center;gap:3px;vertical-align:baseline;margin-left:4px;padding:2px 6px;min-height:24px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--navy);font:inherit;font-size:0.6875rem;cursor:pointer}
.note-marker .icon{width:13px;height:13px;min-width:13px;min-height:13px}.note-marker:hover{background:var(--ws-semantic-surface-subtle)}.note-marker:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
#selection-bar.note-popover{display:block;max-width:min(96vw,440px);padding:12px 14px}
.note-popover-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}
.note-popover-item{padding:8px 0;border-top:1px solid var(--line)}.note-popover-item:first-of-type{border-top:0}
.note-popover .note-words{margin:6px 0;padding-left:10px;border-left:3px solid var(--gold);font-family:var(--serif);font-size:0.9375rem;line-height:1.5;color:var(--ink)}
.note-popover .note-body{margin:6px 0;font-size:0.875rem;line-height:1.55;white-space:pre-wrap}
.note-popover .note-tags{display:flex;gap:4px;flex-wrap:wrap;margin:6px 0}.note-popover .color-options{display:flex;gap:6px;margin:8px 0}.note-popover .color-swatch{width:22px;height:22px}
.note-popover .toolbar{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.note-row-words{display:block;font-family:var(--serif);font-style:italic;color:var(--ws-semantic-text-secondary);font-size:0.8125rem;margin-bottom:2px}
.note-row b{font-weight:400;white-space:normal}.note-row small a{text-decoration:underline}
.inline-notes{margin:2px 0 14px 45px;display:grid;gap:8px}
.inline-note{padding:10px 14px;border-left:3px solid var(--gold);background:var(--ws-semantic-surface-subtle);border-radius:0 8px 8px 0}
.inline-note p{margin:4px 0;font-size:0.875rem;line-height:1.55;white-space:pre-wrap}.inline-note .text-link{font:inherit;font-size:inherit;background:none;border:0;padding:0;color:var(--navy);text-decoration:underline;cursor:pointer}
@media (max-width:600px){.inline-notes{margin-left:0}}
/* Bilingual works (Callaway): the original paragraph in a lighter editorial line above its English; narrators signed after their accounts as printed. */
.verse.bilingual .verse-number{grid-row:span 2}.verse-orig{grid-column:2;margin:0 0 6px;font-family:var(--serif);font-size:calc(var(--reading-size,20px) * 0.82);line-height:1.5;color:var(--ws-semantic-text-secondary);font-style:italic}.verse.bilingual .verse-text{grid-column:2}
.verse-text.prose{color:var(--ws-semantic-text-secondary)}
.verse-speaker{margin:-6px 0 18px 45px;font-size:0.8125rem;letter-spacing:.04em;color:var(--muted)}
@media (max-width:600px){.verse-speaker{margin-left:0}}
/* Atlas (Maps): the base map is an inline SVG (Natural Earth) with a marker overlay sharing its viewBox; the rail carries the chosen place. */
:root{--atlas-sea:#dfe6e9;--atlas-land:#f4f1eb;--atlas-coast:#9aa4a8}
.atlas-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start;margin-top:16px}
.atlas{position:relative;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--atlas-sea);aspect-ratio:1520/860}
.atlas.loading{display:grid;place-items:center;min-height:320px}
.atlas-base,.atlas-overlay{position:absolute;inset:0;width:100%;height:100%}
.atlas-base svg{width:100%;height:100%;display:block}
.atlas-overlay{overflow:visible}
.atlas-marker circle{fill:var(--navy);stroke:var(--paper);stroke-width:1.2}.atlas-marker .atlas-hit{fill:transparent;stroke:none}
.atlas-marker text{font-family:var(--sans);font-size:13px;fill:var(--ink);paint-order:stroke;stroke:var(--atlas-land);stroke-width:3px;stroke-linejoin:round;pointer-events:none}
.atlas-marker{cursor:pointer}.atlas-marker:hover circle:not(.atlas-hit){fill:var(--gold)}.atlas-marker.focus circle:not(.atlas-hit){fill:var(--gold);stroke:var(--navy)}
.atlas-marker:focus{outline:none}.atlas-marker:focus-visible circle:not(.atlas-hit){stroke:var(--gold);stroke-width:4}
.atlas-rail h2{margin:4px 0 6px;font-family:var(--serif);font-size:1.375rem}.atlas-rail h3{font-size:0.875rem;margin-bottom:6px}.atlas-rail .ref-chips{max-height:320px;overflow:auto}
.atlas-rail .toolbar{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
button.ref-chip{font:inherit;cursor:pointer}.ref-chip.active{background:var(--navy);color:var(--paper);border-color:var(--navy)}.atlas-views{margin:8px 0 4px}
/* Maps v2.1 (src/pages/maps.js, docs/MAP-UI-RESEARCH.md): the map is a stage with its tools on it; one panel beside
   it holds the catalogue (rows) or the item (card); on phones the panel is a bottom sheet at half or full height. */
.atlas-layout.v2{grid-template-columns:minmax(0,1fr) 360px;gap:20px}
.atlas-stage{min-width:0;position:relative}.atlas-attrib{margin:8px 2px 0;font-size:0.6875rem;color:var(--muted)}.atlas-attrib .text-link{font-size:0.6875rem;margin-left:6px}
.atlas[role=region]:focus{outline:none}.atlas[role=region]:focus-visible{outline:3px solid var(--ws-semantic-border-focus);outline-offset:2px}
.atlas-tools{position:absolute;z-index:3;display:flex;gap:4px}.atlas-tools-left{left:10px;top:10px;flex-direction:column}.atlas-tools-right{right:10px;top:10px}
.atlas-tools .icon-btn{background:var(--paper);border:1px solid var(--line);box-shadow:0 1px 3px #0002}
.atlas-layers{position:relative;margin:0;border:0;padding:0}.atlas-layers>summary{list-style:none;display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:var(--paper);box-shadow:0 1px 3px #0002;font-size:0.8125rem;font-weight:600;cursor:pointer}.atlas-layers>summary::-webkit-details-marker{display:none}.atlas-layers>summary .icon{width:18px;height:18px}
.atlas-layers-body{position:absolute;right:0;top:calc(100% + 6px);width:min(340px,calc(100vw - 60px));max-height:min(70vh,520px);overflow:auto;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:10px 14px;box-shadow:0 10px 30px #1e274722;display:grid;gap:2px}
.atlas-legend-places{font-size:0.75rem;color:var(--muted);margin:4px 0 6px;display:flex;gap:8px;align-items:center}
.atlas-layer{align-items:flex-start;gap:10px;padding:7px 0;border-top:1px solid var(--line)}.atlas-layer.off{opacity:.6}.atlas-layer-text{display:grid;gap:2px;min-width:0}.atlas-layer-name{display:flex;align-items:center;gap:6px;font-weight:600;font-size:0.8125rem}.atlas-layer small{font-size:0.6875rem;color:var(--muted);line-height:1.4}
/* Legend glyphs: the same marks the map draws, in miniature. */
.lg{display:inline-block;vertical-align:middle}.lg-dot{width:10px;height:10px;border-radius:50%;background:var(--navy);border:1px solid var(--paper)}
.lg-river{width:22px;height:0;border-top:2px solid #6f93a8}.lg-band{width:22px;height:12px;border-radius:40%;background:#8a6a3a;opacity:.25}
.lg-journey{width:22px;height:0;border-top:2px dashed var(--terra)}.lg-site{width:10px;height:10px;background:var(--gold);transform:rotate(45deg);border:1px solid var(--paper)}
.lg-road{width:14px;height:0;border-top:2px solid #7a5c3a}.lg-road.conjectured{border-top-style:dashed}.lg-road.hypothetical{border-top-style:dotted}.lg-name{font-family:var(--serif);font-style:italic;font-size:0.75rem;color:#5b4a36}
.atlas-panel{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:16px 18px;max-height:calc(100vh - var(--header-height) - 40px);overflow:auto;align-self:start;position:sticky;top:calc(var(--header-height) + 16px)}
.atlas-grabber{display:none}
.atlas-era{margin:0 0 12px}.atlas-era small{display:block;margin-top:6px}
.atlas-tabs{display:flex;gap:4px;margin:0 0 10px}.atlas-tabs button{flex:1 1 auto;min-height:40px;padding:6px 8px;border:1px solid var(--line);background:transparent;border-radius:6px;font-size:0.8125rem;font-weight:500}.atlas-tabs button.active{background:var(--navy);border-color:var(--navy);color:#fff}.atlas-tabs button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.atlas-tabpanel h3{font-size:0.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:14px 0 6px}
.atlas-rows{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.atlas-row{width:100%;text-align:left;display:grid;gap:2px;padding:8px 10px;border:1px solid transparent;border-radius:8px;background:transparent;font:inherit;color:var(--ink);cursor:pointer;min-height:44px}.atlas-row:hover{background:var(--ws-semantic-surface-subtle)}.atlas-row.current{background:var(--ws-semantic-surface-subtle);border-color:var(--line)}.atlas-row:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
.atlas-row-title{font-weight:600;font-size:0.875rem}.atlas-row-meta{font-size:0.75rem;color:var(--muted)}
.atlas-compare{margin:6px 0 4px;font-size:0.8125rem}.atlas-drawn{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;margin:6px 0}
.atlas-item-head{margin:0 0 8px}.atlas-item h2{margin:4px 0 6px;font-family:var(--serif);font-size:1.375rem}.atlas-item h2:focus{outline:none}.atlas-item h3{font-size:0.875rem;margin:14px 0 6px}
.atlas-book{border-top:1px solid var(--line);padding:6px 0}.atlas-book summary{cursor:pointer;font-size:0.8125rem;font-weight:600}.atlas-book summary small{color:var(--muted);font-weight:400;margin-left:6px}.atlas-book .ref-chips{margin-top:6px}
.atlas-photo{margin:10px 0 12px}.atlas-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:8px;border:1px solid var(--line)}.atlas-photo figcaption{font-size:0.6875rem;color:var(--muted);line-height:1.5;margin-top:6px}.atlas-photo figcaption a{text-decoration:underline;color:var(--navy)}.atlas-panel:focus{outline:none}
.atlas-roads path{fill:none;stroke:#7a5c3a;stroke-linecap:round;stroke-linejoin:round;opacity:.75}.atlas-roads path.conjectured{stroke-dasharray:4 3}.atlas-roads path.hypothetical{stroke-dasharray:1.5 3}.atlas-roads path.secondary{opacity:.55}
.atlas-names text{font-family:var(--serif);font-style:italic;fill:#5b4a36;paint-order:stroke;stroke:var(--atlas-land);stroke-linejoin:round;pointer-events:none}
.atlas-journey.second path{stroke:var(--navy);stroke-dasharray:2 4!important}.atlas-journey.second marker path,.atlas-journey.second circle{fill:var(--navy)}
.atlas-marker.quiet{pointer-events:none}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--ws-semantic-action-primary);color:var(--ws-semantic-text-on-action);padding:8px 12px;border-radius:0 0 8px 0;z-index:50}.skip-link:focus{left:0}
@media(max-width:980px){.atlas-layout.v2{grid-template-columns:1fr}.atlas-panel{position:static;max-height:none}}
@media(max-width:700px){
  .maps-page:not(.maps-phone){padding-bottom:52vh}
  .atlas-panel{position:fixed;top:auto;left:0;right:0;bottom:0;z-index:28;border-radius:14px 14px 0 0;border-bottom:0;padding:6px 16px 16px;max-height:48vh;height:48vh;overflow:auto;box-shadow:0 -8px 30px #1e274733;transition:height .2s,max-height .2s}
  .atlas-panel[data-sheet=full]{height:88vh;max-height:88vh}
  .atlas-panel[data-sheet=peek]{height:var(--ws-size-phone-sheet-peek,86px);max-height:var(--ws-size-phone-sheet-peek,86px);overflow:hidden}
  .atlas-grabber{display:block;width:100%;background:none;border:0;padding:6px 0 10px;cursor:pointer;touch-action:none}.atlas-grabber span{display:block;width:40px;height:4px;border-radius:2px;background:var(--line);margin:0 auto}
  .page-motion-reduced .atlas-panel{transition:none}
  .atlas-tools-right{z-index:41}.atlas-layers-body{position:fixed;left:8px;right:8px;top:auto;bottom:8px;width:auto;max-height:70vh}
}
/* Atlas layers (src/ui/atlas.js). Regions are confidence bands: each nested ring adds a little more ink, never a line. */
.atlas-controls{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:flex-start;margin-top:14px}.atlas-controls .field{margin:0;min-width:240px}.atlas-controls .field small{display:block;margin-top:6px}
.atlas-layers{border:1px solid var(--line);border-radius:8px;padding:6px 14px 10px;margin:0;display:flex;flex-wrap:wrap;gap:4px 22px}.atlas-layers legend{font-size:0.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:0 4px}
.atlas-layer{align-items:flex-start;gap:9px;padding:6px 0}.atlas-layer span{display:grid}.atlas-layer small{font-size:0.6875rem;color:var(--muted);line-height:1.4}
.atlas-region path{fill:#8a6a3a;fill-opacity:.06;stroke:none}.atlas-region text{font-family:var(--sans);font-weight:600;fill:#6b4f27;fill-opacity:.6;text-anchor:middle;pointer-events:none;text-transform:uppercase}
.atlas-rivers path{fill:none;stroke:#6f93a8;stroke-linecap:round;stroke-linejoin:round;opacity:.8}.atlas-rivers path.rough{stroke-dasharray:4 4}
.atlas-journey path{fill:none;stroke:var(--terra);stroke-linecap:round;stroke-linejoin:round}.atlas-journey marker path{fill:var(--terra);stroke:none}.atlas-journey circle{fill:var(--terra);stroke:var(--paper)}
.atlas-site{cursor:pointer}.atlas-site .atlas-hit{fill:transparent;stroke:none}.atlas-site path{fill:var(--gold);stroke:var(--paper)}.atlas-site[data-evidence=inscription] path{fill:var(--espresso)}.atlas-site[data-evidence=tradition] path{fill:var(--terra)}.atlas-site.focus path,.atlas-site:hover path{stroke:var(--navy)}.atlas-site:focus{outline:none}.atlas-site:focus-visible path{stroke:var(--navy);stroke-width:4}
.atlas-site text{font-family:var(--sans);font-weight:600;fill:var(--ink);paint-order:stroke;stroke:var(--atlas-land);stroke-width:3px;stroke-linejoin:round;pointer-events:none}
.atlas-claim{border-top:1px solid var(--line);padding:12px 0 4px}.atlas-claim p{margin:8px 0;font-size:0.875rem;line-height:1.6}.atlas-claim .subtle{font-size:0.75rem}.atlas-limit{font-size:0.8125rem;color:var(--muted);border-left:3px solid var(--line);padding-left:10px}
.chip.evidence{background:var(--ws-semantic-surface-subtle);color:var(--ink)}[data-evidence=inscription] .chip.evidence{background:#efe2d3;color:var(--espresso)}[data-evidence=tradition] .chip.evidence{background:#f3d9d3;color:#7a2e1e}[data-evidence=textual] .chip.evidence{background:#e7ecf3;color:#1e2747}
.atlas-list .ref-chips{max-height:none}.atlas-sources{max-width:70ch}
@media(max-width:700px){.atlas-controls{gap:12px}.atlas-controls .field{min-width:0;flex:1 1 100%}.atlas-layers{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:0 12px;padding-bottom:6px}.atlas-layer small{display:none}.atlas-layer{padding:4px 0}}
@media (max-width:900px){.atlas-layout{grid-template-columns:1fr}}
/* Sermon sections are never locked: the active one (last worked in) carries the accent; approval is a label. */
.sermon-section.active{border-color:var(--gold);box-shadow:inset 3px 0 0 var(--gold)}
.sermon-section .builder-footer{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
/* Guided preparation (Prepare tab), kinds and forms, section guides, evidence lines, the homiletics reference. */
.prepare .prep-step{padding:18px 22px;margin-bottom:12px}.prep-step.done{opacity:.72}.prep-step.done h2{text-decoration:line-through;text-decoration-color:var(--gold)}
.prep-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:8px}.prep-head h2{margin:2px 0 4px;font-size:1.0625rem}.prep-check{margin:4px 0 0;padding:0}.prep-check input{width:20px;height:20px}
.prep-rule{margin:0;font-family:var(--serif);font-style:italic;font-size:0.9375rem;color:var(--ink)}
.prep-ask{display:flex;gap:8px;align-items:flex-start;margin:12px 0 0;padding:10px 12px;border-left:3px solid var(--gold);background:var(--ws-semantic-surface-subtle);border-radius:0 8px 8px 0;font-size:0.875rem}.prep-ask .icon{flex:0 0 16px;width:16px;height:16px;margin-top:2px;color:var(--navy)}
.prep-step .toolbar{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 0}
.kind-grid,.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin:10px 0}
.starting-choice.compact{padding:12px 14px}.starting-choice.compact h3{font-size:0.9375rem}.starting-choice.compact p{font-size:0.8125rem}.starting-choice small{display:block;margin-top:4px;font-size:0.6875rem}
.readthrough li{display:flex;gap:8px;align-items:flex-start;padding:6px 0}.readthrough li .icon{flex:0 0 16px;width:16px;height:16px;margin-top:2px;color:var(--muted)}.readthrough li.ok .icon{color:#50653e}.readthrough li.warn .icon{color:#b45a3c}
.sermon-subject{margin:0 0 14px;padding:14px 18px 16px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}.sermon-subject .subject-head{display:flex;gap:10px;align-items:center;margin-bottom:6px}.sermon-subject .subject-head .btn{margin-left:auto}.sermon-subject .subject-status{color:var(--ws-semantic-text-secondary);border-color:var(--line)}.sermon-subject.stated .subject-status{color:var(--navy)}.sermon-subject .subject-ask{margin:0 0 10px;font-family:var(--serif);font-style:italic;font-size:1.0625rem;line-height:1.45;color:var(--ink)}.sermon-subject .field{margin:0}.sermon-subject .field input{font-family:var(--serif);font-size:1.0625rem;line-height:1.4;padding:10px 12px;background:var(--ws-semantic-surface-subtle)}.sermon-subject.stated .field input{background:var(--paper)}.sermon-subject .subject-rule{margin:8px 0 0;font-size:0.8125rem;color:var(--ws-semantic-text-secondary)}.sermon-subject .btn.text-link{font-size:0.8125rem}
.section-guide{margin:0 0 10px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--ws-semantic-surface-subtle);font-size:0.8125rem}.section-guide summary{display:flex;gap:6px;align-items:center;cursor:pointer;font-weight:500;list-style:none}.section-guide summary::-webkit-details-marker{display:none}.section-guide summary .icon{width:14px;height:14px;min-width:14px;min-height:14px}.section-guide p{margin:6px 0 0;line-height:1.5}
.evidence-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:-6px 0 12px;padding:8px 12px;border:1px dashed var(--line);border-radius:8px;font-size:0.8125rem}.evidence-line.empty{border-color:var(--gold)}.evidence-line label{display:inline-flex;gap:6px;align-items:center;white-space:nowrap;color:var(--ws-semantic-text-secondary)}.evidence-line label .icon{width:14px;height:14px;min-width:14px;min-height:14px}.evidence-line input{flex:1 1 240px;min-width:0;font-size:0.8125rem;padding:6px 10px}
.form-list .topic-group{margin:18px 0 8px}.form-card{margin-bottom:12px}.form-outline{padding-left:20px;margin:8px 0}.form-outline li{margin:4px 0;font-size:0.875rem}
.field-guide{display:grid;gap:10px;margin:0}.field-guide .panel{padding:14px 18px}.field-guide dt{font-weight:600;margin-bottom:4px}.field-guide dd{margin:0;font-size:0.875rem;line-height:1.55}
.guide-tabs a{padding:8px 12px;border-radius:6px;color:var(--ink);text-decoration:none;font-size:0.875rem;min-height:40px;display:inline-flex;align-items:center}.guide-tabs a.active{background:var(--ws-semantic-surface-subtle);font-weight:500}
/* Study assistant — settings and the mentor rail panel */
.assistant-engines{border:0;padding:0;margin:0 0 12px;display:grid;gap:8px}.assistant-engine{align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}.assistant-engine input{margin-top:3px}.assistant-engine span{display:grid;gap:2px}.assistant-engine small{color:var(--ws-semantic-text-secondary);line-height:1.5}.assistant-engine:has(input:checked){border-color:var(--navy)}
.assistant-sub{margin:0 0 14px;padding:12px 14px;border-left:3px solid var(--gold);background:var(--ws-semantic-surface-subtle);border-radius:0 8px 8px 0}.assistant-sub .field{margin-bottom:10px}.assistant-sub .toolbar{margin-top:4px}.assistant-status{color:var(--ink);font-weight:500}
.notice.warn{display:flex;gap:8px;align-items:flex-start;margin:0 0 10px;padding:10px 12px;border-radius:8px;background:var(--ws-semantic-surface-subtle);border:1px solid var(--line);font-size:0.8125rem;line-height:1.5}.notice.warn .icon{flex:0 0 16px;width:16px;height:16px;margin-top:2px;color:var(--navy)}
/* The Mentor — one surface, two sizes (docs/MENTOR-RESEARCH.md): header · thread (role=log) · context chip · composer · footer */
.mentor-panel{display:flex;flex-direction:column;gap:10px;padding:14px 14px 12px}
.mentor-head-row{display:flex;align-items:center;gap:8px;min-height:28px}.mentor-head-row h3{margin:0;flex:none}
.mentor-engine{display:inline-flex;align-items:center;gap:6px;margin-left:auto;min-width:0;font-size:0.75rem;color:var(--ws-semantic-text-secondary);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mentor-dot{width:8px;height:8px;border-radius:50%;background:var(--ws-semantic-border-default);flex:none}.mentor-engine.on .mentor-dot{background:var(--ws-color-feedback-success)}.mentor-engine.warn .mentor-dot{background:var(--ws-color-feedback-warning)}
.mentor-head-row .icon-btn{flex:none;margin:-4px -6px -4px 0}.mentor-head-row .text-link{flex:none;font-size:0.75rem}
.mentor-strip{display:grid;gap:4px}.mentor-strip small{color:var(--ws-semantic-text-secondary)}
.mentor-bar{height:2px;background:var(--ws-semantic-border-subtle);border-radius:1px;overflow:hidden}.mentor-bar span{display:block;height:100%;background:var(--ws-semantic-action-accent);transition:width .18s}
.mentor-bar.indeterminate span{width:100%;background:repeating-linear-gradient(90deg,var(--ws-semantic-action-accent) 0 12px,transparent 12px 24px)}
.mentor-thread{display:flex;flex-direction:column;gap:8px;max-height:max(300px,calc(100vh - 520px));overflow:auto;overscroll-behavior:contain;padding:2px 2px 6px;scroll-behavior:smooth}.mentor-thread:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.mentor-thread>*{min-width:0;flex:none}
.mentor-panel.expanded .mentor-thread{max-height:min(68vh,900px)}
.mentor-empty{display:grid;gap:8px;padding:8px 4px 4px;text-align:left}.mentor-empty-mark{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--ws-semantic-surface-subtle);color:var(--ws-semantic-text-accent)}.mentor-empty h4{margin:0;font-family:var(--serif);font-weight:500;font-size:1rem}.mentor-empty p{font-size:0.8125rem;line-height:1.55;color:var(--ws-semantic-text-secondary)}
.mentor-starters{display:grid;gap:6px;margin-top:4px}.mentor-starter.primary{display:grid;gap:4px}.mentor-starter.primary .btn{justify-self:start}.mentor-starter.primary small{color:var(--ws-semantic-text-secondary);line-height:1.5}.mentor-starters .btn{white-space:normal;text-align:left;height:auto;justify-content:flex-start}.mentor-starters .btn.text{padding:6px 4px;font-size:0.8125rem;color:var(--ws-semantic-text-link)}
.mentor-marker{display:flex;align-items:center;gap:8px;margin:6px 0 0;font-size:0.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ws-semantic-text-tertiary)}.mentor-marker::before,.mentor-marker::after{content:"";flex:1;height:1px;background:var(--ws-semantic-border-subtle)}
.mentor-turn.you{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:6px;background:var(--ws-semantic-surface-subtle);font-size:0.8125rem;line-height:1.45}.mentor-turn.you .icon{width:14px;height:14px;min-width:14px;min-height:14px;color:var(--ws-semantic-text-tertiary)}.mentor-turn.you span{flex:1;min-width:0}.mentor-turn.you time{font-size:0.6875rem;color:var(--ws-semantic-text-secondary);white-space:nowrap}
.mentor-turn.mentor{display:grid;gap:8px;padding:2px 0 4px 0}.mentor-turn .mentor-head{margin:0;font-family:var(--serif);font-weight:500;font-size:0.9375rem}
.mentor-turn.streaming .mentor-head.shimmer{color:var(--ws-semantic-text-secondary);background:linear-gradient(90deg,var(--ws-semantic-text-secondary) 0%,var(--ws-semantic-text-tertiary) 40%,var(--ws-semantic-text-primary) 50%,var(--ws-semantic-text-tertiary) 60%,var(--ws-semantic-text-secondary) 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:mentor-shimmer 1.6s linear infinite}
@keyframes mentor-shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.mentor-turn.streaming .mentor-head.shimmer{animation:none;background:none;-webkit-text-fill-color:currentColor;color:var(--ws-semantic-text-secondary)}.mentor-bar span{transition:none}.mentor-thread{scroll-behavior:auto}}
html.page-motion-reduced .mentor-turn.streaming .mentor-head.shimmer{animation:none;background:none;-webkit-text-fill-color:currentColor;color:var(--ws-semantic-text-secondary)}
.mentor-draft{margin:0;font-size:0.8125rem;line-height:1.5;color:var(--ws-semantic-text-tertiary);white-space:pre-wrap}.mentor-draft:empty{display:none}
.mentor-measured{display:grid;gap:6px;padding:8px 10px;border-radius:6px;border:1px solid var(--ws-semantic-border-subtle);font-size:0.75rem;line-height:1.5}.mentor-measure{margin:0;color:var(--ws-semantic-text-primary)}
.mentor-flags{list-style:none;margin:0;padding:0;display:grid;gap:4px}.mentor-flags li{display:flex;gap:6px;align-items:flex-start;color:var(--ws-semantic-text-secondary)}.mentor-flags .icon{width:14px;height:14px;min-width:14px;min-height:14px;margin-top:2px;color:var(--ws-semantic-text-tertiary)}
.mentor-guide-answer{margin:0;font-size:0.75rem;color:var(--ws-semantic-text-secondary)}
.mentor-cards{display:grid;gap:8px}.mentor-panel.expanded .mentor-cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.mentor-card{padding:10px 12px;border-left:3px solid var(--gold);background:var(--ws-semantic-surface-subtle);border-radius:0 8px 8px 0}.mentor-card p{margin:0;font-size:0.875rem;line-height:1.55}.mentor-card-foot{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;margin-top:6px!important;font-size:0.6875rem!important}
.mentor-pill{font-size:0.6875rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ws-semantic-text-secondary)}.mentor-where{color:var(--ws-semantic-text-secondary)}.mentor-card-foot .text-link{font-size:0.75rem;margin-left:auto}
.mentor-consider{display:grid;gap:6px}.mentor-consider .btn{justify-self:start}
.mentor-questions{list-style:none;margin:0;padding:0;display:grid;gap:6px}.mentor-questions li{display:flex;gap:8px;align-items:flex-start;font-family:var(--serif);font-style:italic;font-size:0.9375rem;line-height:1.45}.mentor-questions .icon{flex:0 0 16px;width:16px;height:16px;min-width:16px;min-height:16px;margin-top:3px;color:var(--ws-semantic-text-accent)}
.mentor-more>summary,.mentor-sources>summary{cursor:pointer;font-size:0.75rem;color:var(--ws-semantic-text-link);list-style:none;display:inline-flex;align-items:center;gap:4px}.mentor-more>summary .icon,.mentor-sources>summary .icon{width:14px;height:14px;min-width:14px;min-height:14px;transition:transform .12s}.mentor-more[open]>summary .icon,.mentor-sources[open]>summary .icon{transform:rotate(90deg)}.mentor-more>summary::-webkit-details-marker,.mentor-sources>summary::-webkit-details-marker{display:none}
.mentor-more ul,.mentor-more .mentor-cards{margin-top:6px}
.mentor-sources ol{margin:6px 0 0;padding:0 0 0 18px;display:grid;gap:4px;font-size:0.75rem;line-height:1.5}.mentor-sources li{display:flex;flex-wrap:wrap;gap:2px 8px}.mentor-sources li b{font-weight:600}.mentor-sources li span{color:var(--ws-semantic-text-secondary);flex-basis:100%}.mentor-sources li a,.mentor-sources li .text-link{font-size:0.75rem}
.mentor-answer{margin:0;font-size:0.875rem;line-height:1.55}.mentor-answer.own-words{color:var(--ws-semantic-text-secondary);font-style:italic}.mentor-own{font-style:normal;font-weight:600;color:var(--ws-semantic-text-primary)}
.mentor-partly,.mentor-not-grounded{display:flex;gap:6px;align-items:flex-start;margin:0;padding:8px 10px;border-radius:6px;font-size:0.75rem;line-height:1.5;background:var(--ws-semantic-surface-subtle);color:var(--ws-semantic-text-secondary)}.mentor-not-grounded{border:1px solid var(--ws-color-feedback-warning);background:var(--ws-color-feedback-warning-subtle);color:var(--ws-semantic-text-primary)}.mentor-partly .icon,.mentor-not-grounded .icon{width:14px;height:14px;min-width:14px;min-height:14px;margin-top:2px}.mentor-partly>span,.mentor-not-grounded>span{flex:1;min-width:0}.mentor-not-grounded .text-link{display:inline;font-size:0.75rem;vertical-align:baseline}
.mentor-route{margin:0;font-size:0.875rem;line-height:1.55}.mentor-route-links{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0}
.mentor-attrib{display:block;margin:0;font-size:0.6875rem;line-height:1.5;color:var(--ws-semantic-text-secondary)}
/* Everything a turn carries besides its answer and its question: where to go, what was used, who answered. These
   were three stacked blocks and are now one quiet row that wraps, so the eye goes from the answer to the question
   to the next thing you type rather than down a ladder of chrome. */
.mentor-turn-foot{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-top:8px}
.mentor-turn-foot .mentor-attrib{margin:0}
.mentor-turn-foot .mentor-sources{margin:0}
.mentor-turn-foot .btn.text{padding:0;min-height:0}
/* Clearing the thread was the last clause of the sentence explaining that the mentor never writes — a destructive
   action rendered as fine print. It now sits opposite that sentence on the same line, so it is findable without
   costing a row. It cannot go in the header: four items truncate the engine status in a rail this narrow. */
/* Expanded: the section being read beside the thread about it, in the same order as the rail so the mental model
   survives the transition — draft left, mentor right. Below the point where two columns would crush each other it
   stacks, draft first, because the mentor's questions make no sense without the text they are about. */
.mentor-expand-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:20px;align-items:start}
@media(max-width:1000px){.mentor-expand-grid{grid-template-columns:1fr}}
.mentor-draft-head h2{font-size:1.125rem;margin:0 0 2px}
.mentor-draft-body{font-family:var(--serif);font-size:1rem;line-height:1.75;margin-top:12px}
.mentor-draft-body p{margin:0 0 10px}
.mentor-draft-empty{margin-top:12px}
.mentor-expand-grid .mentor-draft{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto}
@media(max-width:1000px){.mentor-expand-grid .mentor-draft{position:static;max-height:none}}
/* The way back lives in the panel header, which does not scroll away. It was removed when the draft column
   arrived, on the reasoning that the breadcrumb covered it — but the breadcrumb sits at the top of the page and
   slides under the sticky header the moment a reader scrolls, so on a real screen there was no way back at all.
   Only in the expanded view: the rail header is too narrow for a fourth item and truncates the engine status. */
/* A definition read beside the verse: the term as that dictionary prints it, whose dictionary it is, the opening
   of the article, and a way to the whole of it. Several dictionaries answer at once and are stacked fullest first. */
/* Home's search sat flush against whatever followed it — the card for a reader without an account, the first-study
   and today cards for one with. Two bordered boxes touching read as one broken box, which is plainest on a phone
   where they span the full width. Scoped to Home's own field so the concordance's search, which shares the class,
   keeps its own spacing. */
.search-input:has(#home-q){margin-bottom:18px}
.rp-defs{display:flex;flex-direction:column;gap:14px}
.rp-def{border-left:2px solid var(--line);padding-left:12px}
.rp-def h4{margin:0;font-family:var(--serif);font-size:1.0625rem;font-weight:500}
.rp-def-src{margin:1px 0 6px;font-size:0.6875rem;color:var(--ws-semantic-text-tertiary)}
.rp-def-text{margin:0 0 6px;font-size:0.875rem;line-height:1.6}
.mentor-back{margin-left:auto;flex:none}
.mentor-foot{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.mentor-foot p{margin:0}
.mentor-foot .text-link{flex:none;font-size:0.6875rem}
.mentor-attrib .icon{width:14px;height:14px;min-width:14px;min-height:14px;margin:-2px 4px 0 0}
.mentor-context{display:flex;align-items:center;gap:6px;padding:5px 6px 5px 10px;border:1px dashed var(--ws-semantic-border-default);border-radius:6px;font-size:0.75rem;color:var(--ws-semantic-text-secondary)}.mentor-context>span{flex:1;min-width:0}.mentor-context b{font-weight:600;color:var(--ws-semantic-text-primary)}.mentor-context .icon{width:14px;height:14px;min-width:14px;min-height:14px;color:var(--ws-semantic-text-tertiary)}.mentor-context .icon-btn{padding:4px;margin:-2px 0}.mentor-context .icon-btn .icon{width:16px;height:16px;min-width:16px;min-height:16px}.mentor-context.detached{border-style:solid}.mentor-context .text-link{font-size:0.75rem}
.mentor-composer{display:grid;gap:8px}.mentor-tail{display:contents}.mentor-composer textarea{width:100%;box-sizing:border-box;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--paper);font-family:var(--sans);font-size:0.875rem;line-height:1.5;resize:none;field-sizing:content;min-height:2.6em;max-height:calc(4 * 1.5em + 18px + 12px);overflow:auto}
.mentor-composer-row{display:flex;align-items:flex-start;gap:8px}.mentor-read{display:grid;gap:3px;flex:1;min-width:0}.mentor-read .btn{justify-self:start}.mentor-reason{font-size:0.6875rem;line-height:1.4;color:var(--ws-semantic-text-secondary)}.mentor-composer-row>.btn{flex:none}
.mentor-foot{margin:0;font-size:0.6875rem;line-height:1.5;color:var(--ws-semantic-text-tertiary)}.mentor-foot span{white-space:nowrap}.mentor-foot .text-link{font-size:0.6875rem;margin-left:6px}
.rail-dot{display:inline-grid;place-items:center;min-width:16px;height:16px;padding:0 4px;margin-left:5px;border-radius:8px;background:var(--ws-semantic-action-accent);color:var(--ws-semantic-text-on-action);font-size:0.625rem;font-weight:600;vertical-align:middle}
/* 920px was a single column's measure, and it is why expanding left half the screen empty: the page was capped
   narrower than the screen it had just been given. Two columns need room; this still stops the line length running
   away on a very wide display. */
.mentor-expand{max-width:1200px}.mentor-expand .mentor-panel{padding:18px 20px}.mentor-expand .mentor-head-row h2{font-size:1rem}.mentor-empty h3{margin:0;font-family:var(--serif);font-weight:500;font-size:1rem}
@media(max-width:980px){.builder-rail .mentor-panel{grid-column:1/-1}}

/* Concept names across languages — one quiet line, the same on every concept */
.concept-names{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;margin:6px 0 0;font-size:0.8125rem;color:var(--ws-semantic-text-secondary)}.concept-names i{font-style:italic;color:var(--ink)}.concept-names b{font-weight:500;color:var(--ink)}.concept-names small{font-size:0.6875rem;color:var(--ws-semantic-text-tertiary)}.concept-names .dot{color:var(--ws-semantic-text-tertiary)}.concept-names .name-link{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:2px}
.concept-card .concept-names{margin-top:8px;font-size:0.75rem}.concept-card-alt{margin:-2px 0 4px;font-family:var(--serif);font-style:italic;font-size:0.9375rem;color:var(--ws-semantic-text-secondary)}
.guide-title-alt{display:block;font-family:var(--serif);font-style:italic;font-weight:400;font-size:0.55em;color:var(--ws-semantic-text-secondary);margin-top:2px}
.letter-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.letter-row a{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--navy);font-size:0.8125rem;text-decoration:none}.letter-row a[aria-current="page"]{background:var(--navy);color:#fff;border-color:var(--navy)}.letter-row .letter-all{margin-left:6px}

/* The new user: welcome, start reading, first-study checklist, hints, teaching empty states */
.dashboard.welcome{display:block}.welcome-card{max-width:640px;margin:8px auto 0;padding:28px 30px}.welcome-card h1{margin:4px 0 6px;font-family:var(--serif);font-weight:500;font-size:1.75rem}.welcome-form{margin-top:18px}.welcome-form .field{margin-bottom:14px}
.start-reading{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.start-card{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);text-decoration:none}.start-card>.icon{flex:0 0 22px;width:22px;height:22px;color:var(--navy)}.start-card span{flex:1;min-width:0;display:grid;gap:2px}.start-card b{font-family:var(--serif);font-size:1.0625rem;font-weight:500}.start-card small{color:var(--ws-semantic-text-secondary)}.start-card:hover{border-color:var(--navy)}
@media (max-width:600px){.start-reading{grid-template-columns:1fr}}
.first-study{margin:16px 0 4px}.first-study h2{margin:2px 0 0;font-family:var(--serif);font-weight:500;font-size:1.25rem}.first-study-list{list-style:none;margin:12px 0 8px;padding:0;display:grid;gap:8px}.first-study-list li{display:flex;align-items:center;gap:10px;font-size:0.9375rem}.first-study-list li .icon{flex:0 0 18px;width:18px;height:18px;color:var(--ws-semantic-text-tertiary)}.first-study-list li.done .icon{color:#3d5632}.first-study-list li.done span{color:var(--ws-semantic-text-secondary);text-decoration:line-through}.first-study-list li a{color:var(--navy)}
.hint{display:flex;align-items:flex-start;gap:10px;margin:0 0 14px;padding:10px 14px;border-left:3px solid var(--gold);background:var(--ws-semantic-surface-subtle);border-radius:0 8px 8px 0}.hint>.icon{flex:0 0 16px;width:16px;height:16px;margin-top:3px;color:var(--navy)}.hint p{flex:1;margin:0;font-size:0.875rem;line-height:1.5}.hint .btn{flex:0 0 auto;padding:0;border:0;background:none;color:var(--navy);text-decoration:underline;font-size:0.8125rem}
.empty.empty-teach{text-align:left;color:var(--ink);line-height:1.6;padding:26px 24px}.empty-teach h2{margin:0 0 6px;font-family:var(--serif);font-weight:500;font-size:1.25rem}.empty-teach p{margin:0 0 14px;max-width:62ch;color:var(--ws-semantic-text-secondary)}.empty-teach .toolbar{gap:8px}

.btn.danger{background:var(--terra);color:#fff;border-color:var(--terra)}.btn.danger:hover{filter:brightness(.95)}
/* Selects take an explicit box so their height never depends on the option text's font metrics (a source of
   one-pixel drift in captures while a face is still loading). */
.field select{height:44px;line-height:22px}

/* Accounts: sign-in page, header sync status, account settings */
.signin-page{display:grid;place-items:start center;padding-top:24px}.signin-card{width:min(460px,100%);padding:28px 30px}.signin-card h1{margin:4px 0 8px;font-family:var(--serif);font-weight:500;font-size:1.625rem}.signin-form{margin-top:14px}.signin-providers{margin-top:16px}.signin-providers .btn{width:100%;justify-content:center;padding:12px 16px}
.signin-or{display:flex;align-items:center;gap:12px;margin:14px 0 0;color:var(--ws-semantic-text-tertiary);font-size:0.75rem;letter-spacing:.06em;text-transform:uppercase}.signin-or::before,.signin-or::after{content:"";flex:1;border-top:1px solid var(--line)}
.signin-legal{margin-top:16px;font-size:0.75rem;line-height:1.5}.signin-legal a{color:var(--navy)}
.sync-status{font-size:0.6875rem;color:var(--ws-semantic-text-secondary);margin-right:10px;white-space:nowrap}@media (max-width:700px){.sync-status{display:none}}
.account-settings h3{margin:12px 0 0;font-size:1rem}

/* Paths: a commitment to read, one day at a time. */
.path-card{position:relative}.path-card h3{margin:6px 0 0;font-family:var(--serif);font-weight:500;font-size:1.125rem}.path-bar{height:6px;border-radius:3px;background:var(--line);overflow:hidden;margin-top:auto}.path-bar i{display:block;height:100%;background:var(--gold)}
.path-start{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.path-start h3{margin:0 0 4px;font-family:var(--serif);font-weight:500;font-size:1.125rem}.path-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-top:12px}.path-form .field{flex:1 1 200px;margin:0}.path-form .ws-select{flex:1 1 160px}.paths-page .chips{margin:12px 0 4px}
.path-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.path-day h2{font-family:var(--serif);font-weight:500;font-size:1.5rem;margin:4px 0 12px}.path-readings{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:8px}.path-readings a{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;color:var(--ink);text-decoration:none;background:var(--paper)}.path-readings a b{flex:none;min-width:110px}.path-readings .path-text{flex:1;font-family:var(--serif);font-size:1rem;line-height:1.5;color:var(--ink)}.path-readings a svg{flex:none;margin-left:auto;color:var(--muted)}.path-readings a:hover{border-color:var(--gold)}
.path-days h3{margin:0 0 8px;font-size:0.8125rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.path-days ol{list-style:none;margin:0;padding:0;max-height:60vh;overflow:auto}.path-days li{border-top:1px solid var(--line)}.path-days .btn.text{width:100%;justify-content:flex-start;text-align:left;border-radius:0;padding:8px 6px;white-space:normal}.path-days .btn.text.active{background:var(--canvas);color:var(--navy);font-weight:600;box-shadow:inset 3px 0 0 var(--gold)}.path-days .btn.text svg{color:var(--gold)}
@media (max-width:900px){.path-start,.path-layout{grid-template-columns:1fr}}
@media (max-width:600px){.path-readings a{flex-wrap:wrap}.path-readings a b{min-width:0;flex:1}.path-readings .path-text{flex-basis:100%;order:3}}

/* Study rhythm: the last seven days, today last. */
.week-strip{list-style:none;margin:0;padding:0;display:flex;gap:6px}.week-strip li{display:flex;flex-direction:column;align-items:center;gap:4px}.week-strip i{display:block;width:12px;height:12px;border-radius:50%;background:var(--line)}.week-strip .on i{background:var(--gold)}.week-strip .today i{box-shadow:0 0 0 2px var(--paper),0 0 0 3px var(--navy)}.week-strip .future i{background:transparent;border:1px dashed var(--line)}.week-strip .future small{opacity:.6}.week-strip small{font-size:0.625rem;color:var(--muted);line-height:1}.week-strip .today small{color:var(--navy);font-weight:600}

/* Help: pictures, clips, Show me, search, feedback. */
.help-section{margin:0 0 36px;max-width:76ch}.help-section.has-media{max-width:none;display:grid;grid-template-columns:minmax(0,44ch) minmax(0,1fr);gap:16px 36px;align-items:start}.help-section:last-child{margin-bottom:0}.help-section+.help-section{padding-top:32px;border-top:1px solid var(--line)}.help-section.is-target{box-shadow:inset 3px 0 0 var(--gold);padding-left:14px;margin-left:-17px}.help-text h2{margin-top:0}
.help-shot,.help-clip{margin:0}.help-section:not(.has-media) .help-shot{margin-top:14px}
@media(max-width:1100px){.help-section.has-media{grid-template-columns:1fr}.help-shot,.help-clip{margin-top:4px}}.help-shot img,.help-clip video{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:8px;background:var(--canvas)}.help-shot figcaption,.help-clip figcaption{font-size:0.75rem;color:var(--muted);margin-top:6px}
.help-show{margin:12px 0 0}.help-show .btn{gap:6px}
.help-jump{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0 0 16px;font-size:0.8125rem}.help-jump a{color:var(--navy);text-decoration:none;border-bottom:1px solid var(--line)}.help-jump a:hover{border-color:var(--gold)}
.help-search{margin:0 0 24px;max-width:720px}.help-search .field{margin:0}.help-results{list-style:none;margin:8px 0 0;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--paper);overflow:hidden}.help-results li+li{border-top:1px solid var(--line)}.help-results a{display:flex;align-items:center;gap:12px;padding:10px 14px;color:var(--ink);text-decoration:none}.help-results a:hover{background:var(--ws-semantic-surface-subtle)}.help-results a>span{flex:1;display:flex;flex-direction:column}.help-results small{color:var(--muted)}.help-results a>svg:last-child{color:var(--muted)}.help-results-empty{margin:8px 0 0}
.help-useful{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin-top:16px;max-width:76ch}.help-useful .meta{flex:1;min-width:200px}
.hint.showing{position:sticky;top:88px;z-index:5;box-shadow:0 8px 24px #1e274722;background:var(--paper);align-items:center}.hint.showing p{margin:0;flex:1}.showing-actions{display:flex;align-items:center;gap:10px;white-space:nowrap}
@media(max-width:700px){.hint.showing{top:72px}.showing-actions{white-space:normal}}

/* Paths v2: shelves with generated covers, a hero per active path, the day as a ritual, today on Home. */
.ring{position:relative;display:inline-grid;place-items:center;width:var(--size);height:var(--size)}.ring svg{position:absolute;inset:0;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:5;stroke-linecap:round}.ring-track{stroke:var(--line)}.ring-fill{stroke:var(--gold);transition:stroke-dashoffset .6s cubic-bezier(.16,1,.3,1)}.ring b{font-family:var(--serif);font-weight:500;font-size:calc(var(--size) * .32);line-height:1;color:var(--navy)}
.path-heroes{display:grid;gap:16px;margin-bottom:8px}.path-hero{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:22px;align-items:center;padding:22px 24px}.path-hero.paused{opacity:.85}.path-hero-cover .ws-cover,.path-hero-cover .ws-jacket{max-width:96px}.path-hero h2{font-family:var(--serif);font-weight:500;font-size:1.5rem;margin:2px 0 4px}.path-hero-day{font-size:1.0625rem;margin:0 0 6px;color:var(--ink)}.path-hero-readings{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:0.875rem;color:var(--muted)}.path-hero-readings li::before{content:'·';margin-right:6px}.path-hero-readings li:first-child::before{content:none}.path-hero-ring{display:flex;flex-direction:column;align-items:center;gap:4px}.path-hero-ring small{color:var(--muted);font-size:0.75rem}.path-heroes.compact .path-hero{padding:14px 18px;grid-template-columns:64px minmax(0,1fr) auto}.path-heroes.compact .path-hero-cover .ws-cover,.path-heroes.compact .path-hero-cover .ws-jacket{max-width:64px}.path-heroes.compact .path-hero h2{font-size:1.125rem}
.path-start-hero{padding:28px 32px;background:linear-gradient(135deg,var(--paper),var(--canvas))}.path-start-hero h2{font-family:var(--serif);font-weight:500;font-size:1.75rem;margin:6px 0 8px;max-width:26ch}.path-start-hero .meta{max-width:60ch}
.shelf-group{margin:0 0 8px}.shelf-group h3{font-size:0.8125rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:14px 0 8px}
.shelf{list-style:none;display:flex;gap:16px;overflow-x:auto;padding:4px 4px 14px;margin:0 -4px;scroll-snap-type:x proximity;scrollbar-width:thin}.shelf>li{flex:0 0 132px;display:flex}.shelf-card{flex:1 1 auto;width:100%;scroll-snap-align:start;display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:0;border:0;background:none;color:var(--ink);text-align:left;cursor:pointer;border-radius:8px}.shelf-card .ws-cover,.shelf-card .ws-jacket{width:100%;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s}.shelf-card:hover .ws-cover,.shelf-card:hover .ws-jacket,.shelf-card:focus-visible .ws-cover,.shelf-card:focus-visible .ws-jacket{transform:translateY(-4px);box-shadow:0 14px 28px #1e274726}.shelf-card:focus-visible{outline:2px solid var(--navy);outline-offset:4px}.shelf-card b{font-size:0.9375rem;line-height:1.25}.shelf-card small{color:var(--muted);font-size:0.75rem;margin-top:-4px}
.path-search{max-width:640px;margin:14px 0 6px}
/* Reading plans: one card per plan — cover, title, one line of principle, source · length, Start. A grid, not a shelf, since
   each needs a sentence. The card is one target (the Start button's ::after covers it); the footer is pinned to the bottom
   so Start sits at the same place on every card in a row. */
.plan-cards{list-style:none;margin:0 0 8px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.plan-card{position:relative;display:flex;gap:18px;padding:18px;background:var(--paper);border:1px solid var(--line);border-radius:12px;transition:border-color .15s,box-shadow .15s}.plan-card:hover{border-color:var(--navy);box-shadow:0 6px 18px #1e274714}.plan-card.on{border-color:var(--gold)}.plan-card:has(.plan-card-start:focus-visible){outline:2px solid var(--navy);outline-offset:2px}
.plan-card-cover{flex:0 0 96px}.plan-card-cover .ws-cover,.plan-card-cover .ws-jacket{width:96px}.plan-card-cover .ws-cover-edition,.plan-card-cover .ws-cover-imprint{display:none}
.plan-card-body{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}.plan-card .kicker{margin:0 0 2px}.plan-card h3{font-family:var(--serif);font-weight:500;font-size:1.25rem;line-height:1.2;margin:0 0 6px}.plan-card p{margin:0 0 8px;font-size:0.9375rem;line-height:1.45;color:var(--ink)}.plan-card small.meta{display:block;font-size:0.75rem;line-height:1.4}
.plan-card-foot{margin-top:auto;padding-top:14px;display:flex;align-items:center;gap:10px}.plan-card-start{position:static}.plan-card-start::after{content:'';position:absolute;inset:0;border-radius:12px}.plan-card-start:focus-visible{outline:none}.plan-card-start svg{width:14px;height:14px}.plan-card-on{font-size:0.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--gold)}
.path-shelf-note{max-width:70ch;margin:-4px 0 10px}
.plan-modal-principle{font-family:var(--serif);font-size:1.0625rem;margin:0 0 6px}.plan-honesty{display:flex;gap:10px;align-items:flex-start;margin:10px 0 14px}.plan-honesty svg{flex:0 0 auto;margin-top:2px;color:var(--gold)}.plan-gospels{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}.plan-gospels .btn{width:100%;justify-content:flex-start}
.path-filed{margin:-4px 0 10px;font-size:0.9375rem;color:var(--muted)}.path-filed q{font-style:italic;color:var(--ink)}
.path-notes{display:flex;flex-direction:column;gap:6px;margin:0 0 14px;padding:12px 14px;border-left:3px solid var(--gold);background:var(--ws-semantic-surface-subtle);border-radius:0 8px 8px 0}.path-notes p{display:flex;gap:8px;align-items:flex-start;margin:0;font-size:0.9375rem;line-height:1.5}.path-notes svg{flex:0 0 auto;margin-top:3px;color:var(--gold)}
.path-catchup{padding:14px 18px;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:8px;background:var(--paper)}.path-catchup p{margin:0 0 10px;max-width:70ch}.path-catchup .toolbar{margin:0}
.path-column{font-family:var(--sans);font-size:0.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:6px 0 -8px}.path-column:first-child{margin-top:0}
.path-reading h3 small{font-weight:400;font-size:0.75rem}.path-reading-open{margin:8px 0 0}.path-reading-open a{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:2px 0;font-size:0.875rem;color:var(--navy);text-decoration:none}.path-reading-open a:hover{text-decoration:underline}
details.path-reading>summary{display:flex;align-items:baseline;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;padding:10px 12px;margin:0 -12px;border-radius:8px}details.path-reading>summary::-webkit-details-marker{display:none}details.path-reading>summary:hover{background:var(--canvas)}details.path-reading>summary:focus-visible{outline:2px solid var(--navy);outline-offset:2px}details.path-reading>summary h3{margin:0}details.path-reading>summary::after{content:'';width:8px;height:8px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg);flex:0 0 auto;margin-left:auto;transition:transform .2s}details.path-reading[open]>summary::after{transform:rotate(-135deg)}details.path-reading>summary small{margin-left:0}details.path-reading[open]>summary{margin-bottom:6px}
.path-days li.skipped .btn{color:var(--muted)}
@media(max-width:700px){.plan-cards{grid-template-columns:1fr}.plan-card{padding:14px;gap:14px}.plan-card-cover{flex-basis:80px}.plan-card-cover .ws-cover,.plan-card-cover .ws-jacket{width:80px}}
.path-day-head{display:grid;grid-template-columns:88px minmax(0,1fr) auto;gap:22px;align-items:center;margin:0 0 20px}.path-day-cover .ws-cover,.path-day-cover .ws-jacket{max-width:88px}.path-day-title h1{margin:2px 0 4px}.path-day-ring{display:flex;flex-direction:column;align-items:center;gap:4px}.path-day-ring small{color:var(--muted);font-size:0.75rem}
.path-day-main{display:flex;flex-direction:column;gap:16px;min-width:0}.path-day-tools{margin:0 0 14px;align-items:center}.path-day-tools .meta{font-size:0.75rem}
.path-readings-full{display:flex;flex-direction:column;gap:22px}.path-reading h3{margin:0 0 8px;font-family:var(--sans);font-size:0.9375rem}.path-reading h3 a{display:inline-flex;align-items:center;gap:4px;color:var(--navy);text-decoration:none}.path-verse{font-family:var(--serif);font-size:1.125rem;line-height:1.75;margin:0 0 6px;max-width:66ch}.path-verse sup{font-family:var(--sans);font-size:0.6875rem;color:var(--muted);margin-right:6px;vertical-align:top}
.path-carry{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}.path-carry .meta{margin-right:6px}
.path-reflect h2{font-family:var(--serif);font-weight:500;font-size:1.375rem;margin:0 0 4px}.path-reflect-form .field{margin:12px 0}.path-reflect-form textarea{width:100%;font-family:var(--serif);font-size:1.0625rem;line-height:1.6}.path-reflections{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.path-reflections li{padding:12px 14px;border-left:3px solid var(--gold);background:var(--ws-semantic-surface-subtle);border-radius:0 8px 8px 0}.path-reflections p{margin:0 0 4px;font-family:var(--serif);font-size:1rem;line-height:1.55}
.path-today{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;margin:20px 0;padding:18px 22px;border-left:4px solid var(--gold)}.path-today h2{font-family:var(--serif);font-weight:500;font-size:1.375rem;margin:2px 0 4px}.path-today .meta{margin:0}
@media(max-width:700px){.shelf>li{flex-basis:112px}.path-hero{grid-template-columns:64px minmax(0,1fr);gap:14px;padding:16px}.path-hero-cover .ws-cover,.path-hero-cover .ws-jacket{max-width:64px}.path-hero-ring{grid-column:1/-1;flex-direction:row;justify-content:flex-start}.path-day-head{grid-template-columns:64px minmax(0,1fr)}.path-day-cover .ws-cover,.path-day-cover .ws-jacket{max-width:64px}.path-day-ring{grid-column:1/-1;flex-direction:row}.path-today{grid-template-columns:auto minmax(0,1fr)}.path-today .btn{grid-column:1/-1}.shelf-card{flex-basis:112px}}
.path-day-cover .ws-cover-edition,.path-hero-cover .ws-cover-edition,.path-today .ws-cover-edition{display:none}.path-day-cover .ws-cover-imprint,.path-hero-cover .ws-cover-imprint{font-size:7px}

.mentor-basis a.chip{text-decoration:none}

/* The grammar and tone pass: a proposal beside the original, every change marked; Restore in the footer. */
.polish-modes{border:0;margin:14px 0 0;padding:0;display:grid;gap:10px}.polish-mode{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:8px;cursor:pointer}.polish-mode:has(input:checked){border-color:var(--navy);background:var(--ws-semantic-surface-subtle)}.polish-mode input{margin-top:3px}.polish-mode b{display:block}.polish-mode small{color:var(--muted)}.polish-tone{margin-top:12px}
.polish-legend del{background:#f3d9d3;color:#7a2e1e;text-decoration:line-through;padding:0 3px;border-radius:3px}.polish-legend ins{background:#dcebd6;color:#2a5a2a;text-decoration:none;padding:0 3px;border-radius:3px}
.polish-compare{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:12px}.polish-compare section{min-width:0}.polish-compare h3{font-size:0.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px}.polish-text{font-family:var(--serif);font-size:1.0625rem;line-height:1.7;white-space:pre-wrap;padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:var(--paper);margin:0}.polish-text del{background:#f3d9d3;color:#7a2e1e;text-decoration:line-through}.polish-text ins{background:#dcebd6;color:#2a5a2a;text-decoration:none}
.attribution{display:inline-flex;align-items:center;gap:6px}
@media(max-width:700px){.polish-compare{grid-template-columns:1fr}}

/* Dictionary entry: the article with live references, the rail around it. */
.dict-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}.dict-entry{min-width:0}.dict-text p{font-family:var(--serif);font-size:1.125rem;line-height:1.75;margin:0 0 14px;max-width:70ch}.dict-text p.dict-sense{padding-left:1.25em;text-indent:-1.25em}.dict-ref{color:var(--navy);text-decoration:none;border-bottom:1px solid var(--line)}.dict-ref:hover{border-color:var(--gold)}.dict-see{margin-top:14px}.dict-rights{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}.dict-also a{color:var(--navy);font-weight:600;text-decoration:none}
.dict-pager{display:flex;justify-content:space-between;gap:12px;margin-top:20px;padding-top:14px;border-top:1px solid var(--line)}.dict-pager a{display:inline-flex;align-items:center;gap:4px;color:var(--navy);text-decoration:none;font-size:0.875rem}.dict-pager a:first-child svg{transform:rotate(180deg)}
.dict-rail{display:flex;flex-direction:column;gap:14px;position:sticky;top:96px}.dict-rail .rail-title .meta{margin-left:auto}.dict-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.dict-links li+li{border-top:1px solid var(--line)}.dict-links a{display:flex;align-items:center;gap:10px;padding:10px 0;color:var(--ink);text-decoration:none}.dict-links a>span{display:flex;flex-direction:column}.dict-links small{color:var(--muted)}
/* Merged dictionary search (docs/DICTIONARY-SEARCH.md). An entry row is the headword with the works that print
   it; a mention row is one article, under the dictionary that wrote it — the same row shape the rail already uses. */
.dict-hits{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;max-width:72ch}.dict-hits li+li{border-top:1px solid var(--line)}.dict-hit{display:flex;align-items:baseline;justify-content:space-between;gap:10px 18px;flex-wrap:wrap;padding:9px 0;min-height:var(--ws-size-target-touch,44px)}.dict-hit>b{font-weight:550;min-width:0;overflow-wrap:anywhere}.dict-hit-in{font-size:0.8125rem;color:var(--muted)}.dict-hit-in a{display:inline-block;padding:6px 2px;color:var(--navy);font-weight:600;text-decoration:none}.dict-hit-in a:hover{text-decoration:underline}.dict-rows{margin-top:14px;max-width:72ch}.dict-rows a>span{min-width:0}.dict-rows a>span b{overflow-wrap:anywhere}.dict-rows a>.icon:last-child{margin-left:auto;flex-shrink:0;width:16px;color:var(--muted)}.dict-rows a>.icon:first-child{flex-shrink:0;color:var(--gold)}.rp-def-across{margin-top:14px}
.dict-cited{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:0.875rem}.dict-cited li{display:flex;flex-direction:column;gap:2px}.dict-cited b{font-weight:600}.dict-cited a{color:var(--navy);text-decoration:none;margin-right:4px;border-bottom:1px solid var(--line)}.dict-cited a:hover{border-color:var(--gold)}
.dict-rail .letter-row{margin-top:8px}.dict-rail .ref-chip.active{background:var(--navy);color:#f7f1e7;border-color:var(--navy)}
@media(max-width:1000px){.dict-layout{grid-template-columns:1fr}.dict-rail{position:static}}

/* Concordance front door. */
.conc-search{max-width:720px;margin-bottom:20px}.conc-door{display:flex;flex-direction:column;gap:8px}
.conc-ways h2{font-family:var(--serif);font-weight:500;font-size:1.25rem;margin:0 0 10px}.conc-ways ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.conc-ways li{display:flex;gap:10px;align-items:flex-start}.conc-ways li>svg{flex:none;color:var(--gold);margin-top:2px}.conc-ways li>span{display:flex;flex-direction:column;gap:2px}.conc-ways small{color:var(--muted);line-height:1.45}.conc-try{margin:16px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:6px;color:var(--muted);font-size:0.8125rem}.conc-try .chip{text-decoration:none}
.conc-shelf{list-style:none;margin:0 0 8px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.conc-word{border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:14px 16px;display:flex;flex-direction:column;gap:10px}.conc-word-head{display:flex;flex-direction:column;color:var(--ink);text-decoration:none}.conc-word-head b{font-family:var(--serif);font-weight:500;font-size:1.125rem}.conc-word-head small{color:var(--muted)}.conc-word-lemmas{display:grid;grid-template-columns:1fr 1fr;gap:8px}.conc-word .lemma{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;color:var(--ink);text-decoration:none;min-width:0}.conc-word .lemma:hover{border-color:var(--gold)}.conc-word .lemma span{font-size:1.25rem;line-height:1.2}.conc-word .lemma i{font-size:0.875rem}.conc-word .lemma small{color:var(--muted);font-size:0.6875rem}
.conc-yours{display:grid;grid-template-columns:1fr 1fr;gap:14px}.conc-yours:has(>:only-child){grid-template-columns:1fr}.conc-how .meta{max-width:70ch}
.conc-roots{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.conc-roots a{display:grid;grid-template-columns:5.5em 1fr auto;align-items:baseline;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;color:var(--ink);text-decoration:none;min-width:0}.conc-roots a:hover{border-color:var(--gold)}.conc-roots a>span:first-child{font-family:var(--serif);font-size:1.25rem;line-height:1.2;unicode-bidi:isolate;overflow:hidden;text-overflow:ellipsis}.conc-roots a[href] .script-hebrew{font-family:"Noto Serif Hebrew","Times New Roman",var(--serif);unicode-bidi:isolate}.conc-root-body{display:flex;flex-direction:column;gap:1px;min-width:0;direction:ltr;text-align:left}.conc-root-body b{font-weight:500}.conc-root-body small{color:var(--muted);font-size:0.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conc-roots i{font-style:normal;color:var(--muted);font-variant-numeric:tabular-nums;font-size:0.8125rem}
@media(max-width:900px){.conc-ways ul,.conc-yours{grid-template-columns:1fr}.conc-word-lemmas{grid-template-columns:1fr 1fr}}

/* Lexicon entries on Word Study (BDB, Abbott-Smith): running prose with the headword in its script. */
.lexicon-panel .lx-entry{border-top:1px solid var(--line);padding:14px 0 6px;font-family:var(--serif);font-size:0.9375rem;line-height:1.75}
.lexicon-panel .lx-entry:first-of-type{border-top:0}.lx-head{margin:0 0 6px;font-family:var(--sans);font-size:0.875rem}.lx-head b{font-family:var(--serif);font-size:1.125rem}
.lx-body b[lang=he]{font-family:var(--hebrew,'Noto Serif Hebrew',serif);font-size:1.0625em;font-weight:600}.lx-body b[lang=grc]{font-weight:600}
.lx-def{font-style:italic}.lx-pos{font-family:var(--sans);font-size:0.75rem;color:var(--muted);text-transform:none}.lx-freq{font-size:0.6875rem;color:var(--muted)}
.lx-sense{margin:6px 0 0 14px}.lx-n{display:inline-block;min-width:1.4em;font-family:var(--sans);font-size:0.75rem;font-weight:600;color:var(--navy)}
.lx-stem{font-family:var(--sans);font-size:0.75rem;font-weight:600;letter-spacing:.04em;color:var(--espresso)}
.lx-ref{color:var(--navy);text-decoration:underline;text-decoration-color:#1e274766;text-underline-offset:2px}.lx-ref-plain{text-decoration:none;color:inherit;cursor:default}
.lx-status{font-family:var(--sans);font-size:0.6875rem;color:var(--muted);margin:6px 0 0}.lx-foreign{font-style:italic}.lx-body br+br{display:none}.lx-body p{margin:0 0 4px}.lx-body p.lx-sense{margin:4px 0 0 14px}.lx-body p.lx-d2{margin-left:28px}.lx-body p.lx-d3{margin-left:42px}

/* Treasury of Scripture Knowledge, by phrase: the verse's own words lead, references follow as text links. */
.rp-sub{font-size:0.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:14px 0 6px}
.tsk-list{margin:0}.tsk-row{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;padding:6px 0;border-top:1px solid var(--line)}.tsk-row dt{font-family:var(--serif);font-size:0.875rem;color:var(--ink)}.tsk-row dd{margin:0;font-size:0.8125rem;line-height:1.7;color:var(--muted)}.tsk-row dd a{color:var(--navy);text-decoration:underline;text-decoration-color:#1e274744;text-underline-offset:2px;white-space:nowrap}
.tsk-more{display:inline}.tsk-more summary{display:inline;cursor:pointer;color:var(--navy);font-weight:600;list-style:none}.tsk-more summary::-webkit-details-marker{display:none}.tsk-more[open] summary{display:block;margin:2px 0}

/* Terms and the glossary (src/ui/term.js, src/data/glossary.js). A term is a real button in the running text. */
button.term{appearance:none;display:inline;background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;text-align:inherit;text-decoration:underline dotted;text-decoration-color:var(--ws-semantic-text-accent);text-decoration-thickness:1.5px;text-underline-offset:3px;border-radius:2px}
button.term:hover{text-decoration-style:solid}button.term[aria-expanded=true]{background:var(--ws-semantic-surface-subtle)}button.term:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
a.term-link{text-decoration:underline dotted;text-decoration-color:var(--ws-semantic-text-accent);text-underline-offset:3px;color:inherit}
#term-popover{position:fixed;inset:auto;margin:0;padding:14px 16px 12px;width:min(360px,calc(100vw - 24px));border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);box-shadow:0 12px 32px #1e274733;font-family:var(--sans);font-size:0.875rem;line-height:1.55}
#term-popover::backdrop{background:transparent}
#term-popover.sheet{left:8px!important;right:8px;bottom:8px;top:auto!important;width:auto;border-radius:14px}
#term-popover .term-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}#term-popover h2{margin:0;font-family:var(--serif);font-weight:500;font-size:1.125rem}
#term-popover .term-close{background:none;border:1px solid var(--line);border-radius:8px;width:32px;height:32px;font-size:1.125rem;line-height:1;cursor:pointer;color:var(--muted)}
#term-popover .term-plain{margin:0 0 8px}#term-popover .term-example{margin:0 0 8px;font-size:0.8125rem;color:var(--muted)}#term-popover .term-example b{font-weight:500;color:var(--ink)}
#term-popover .term-caution{margin:0 0 8px;font-size:0.8125rem;border-left:3px solid var(--gold);padding-left:8px;color:var(--muted)}#term-popover .term-more{margin:0;font-size:0.8125rem}#term-popover .term-more a{color:var(--navy);text-decoration:underline}
.glossary-tools{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;margin:8px 0 16px}.glossary-tools .field{margin:0;flex:1 1 260px}
.glossary-az{display:flex;flex-wrap:wrap;gap:2px}.glossary-az a{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;border-radius:6px;font-weight:600;font-size:0.8125rem;color:var(--navy)}.glossary-az a:hover{background:var(--ws-semantic-surface-subtle)}
.glossary-list{margin:0}.glossary-group dl{margin:0}.glossary-letter{font-family:var(--serif);font-size:1.5rem;font-weight:400;color:var(--muted);margin:18px 0 4px;scroll-margin-top:96px}
.glossary-entry{display:grid;gap:4px;padding:14px 0;border-top:1px solid var(--line);scroll-margin-top:96px}.glossary-entry.is-target{background:var(--ws-semantic-surface-subtle);margin:0 -12px;padding:14px 12px;border-radius:8px}
.glossary-entry dt{font-family:var(--serif);font-size:1.25rem;font-weight:500}.glossary-entry dfn{font-style:normal}.glossary-entry dd{margin:0}
.glossary-plain{font-size:1rem;line-height:1.6;margin:0 0 4px}.glossary-why,.glossary-example{font-size:0.875rem;color:var(--muted);margin:0 0 4px;line-height:1.55}.glossary-why b,.glossary-example b{color:var(--ink);font-weight:600}
.glossary-caution{font-size:0.8125rem;border-left:3px solid var(--gold);padding-left:8px;color:var(--muted);margin:0 0 6px}
.glossary-links{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:6px 0 0;font-size:0.8125rem}
.help-card-glossary{border-color:var(--gold)}

  /* The Sermon Builder as an editor page (docs/PHONE-PASS.md › editor): title bar · details row · section switch · one section. */
  .canvas-bar{position:sticky;top:var(--header-height);z-index:21;display:flex;align-items:center;gap:6px;height:var(--ws-size-phone-canvas-bar,44px);margin:0 -16px;padding:0 6px 0 2px;background:var(--canvas);border-bottom:1px solid var(--line)}
  .canvas-back{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--ink);border-radius:8px}.canvas-back .icon{width:20px;height:20px}
  .canvas-title{flex:1 1 auto;min-width:0;margin:0;font-family:var(--serif);font-weight:500;font-size:1.0625rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .save-state{display:inline-flex;align-items:center;justify-content:center;width:32px;height:44px;color:var(--muted)}.save-state .icon{width:16px;height:16px}
  .canvas-more .ws-select-btn{width:44px;height:44px;min-height:44px;padding:0;justify-content:center;border-color:transparent;background:none;font-size:1.25rem;line-height:1}.canvas-more .ws-select-btn .ws-select-value{overflow:visible}
  .details-row{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;margin:0 0 6px;padding:6px 4px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;color:var(--ink);font:inherit;font-size:0.875rem;text-align:left}.details-row .icon{width:16px;height:16px;color:var(--muted);flex:0 0 auto}.details-row>span{white-space:nowrap}.details-row .meta{margin-left:auto;font-size:0.75rem;min-width:0;overflow:hidden;text-overflow:ellipsis}.details-row .icon:last-child{margin-left:0}
  .section-switch{margin:0 0 10px}.section-step{justify-content:space-between;margin:12px 0 4px}
  .builder-phone .page-heading{display:none}.builder-phone .sermon-section{margin-top:0}.builder-phone .section-header h3{font-size:1.0625rem}
  .builder-phone .section-tools{gap:0}.builder-phone .hint{margin-top:16px}
  /* The Mentor inside the sheet: the thread scrolls with the sheet; the composer is pinned to the sheet's foot. */
  /* The Mentor in the sheet is one column, not a page inside a page: the sheet itself stops scrolling, the thread is
     the only scroller, and the context chip and composer are pinned at its foot. Its own title is spoken, not shown:
     the sheet's head already says Mentor. */
  .tools-sheet-panel:has(.mentor-panel){overflow:hidden;display:flex;flex-direction:column;padding-bottom:0}
  /* The Mentor segment is the conversation alone: the rail's standing links belong to the reading segments. */
  .tools-sheet-panel:has(.mentor-panel) .rail-extras{display:none}
  .tools-sheet-panel .mentor-panel{padding:8px 0 0;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;border:0;background:none;margin:0}
  .tools-sheet-panel .mentor-head-row{margin:0 0 6px}
  .tools-sheet-panel .mentor-head-row>h3{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .tools-sheet-panel .mentor-thread{flex:1 1 auto;min-height:0;max-height:none;overflow:auto;padding-bottom:8px}
  .tools-sheet-panel .mentor-tail{position:static;flex:0 0 auto;background:var(--paper);border-top:1px solid var(--line);margin:0 -14px;padding:8px 14px calc(8px + env(safe-area-inset-bottom,0px));display:grid;gap:8px}
  .tools-sheet-panel .panel{border:0;padding:0 0 12px;background:none;box-shadow:none}.tools-sheet-panel .rail-tabs{display:none}
  /* Canvas pages (the Concept Map; Maps next): the canvas owns the screen between the canvas bar and the Tools bar. */
  .canvas-page{display:grid;grid-template-rows:auto minmax(0,1fr);height:calc(100dvh - var(--header-height));min-height:0;padding:0;margin:0 0 calc(-1 * var(--tools-bar-h));overflow:hidden;overscroll-behavior:none}
  .canvas-page .canvas-bar{margin:0;position:static}
  /* A grid item with a z-index is a stacking context, so the bar's 21 would cap its ⋯ menu under the sheet (28): lift it only while a menu is open. */
  .canvas-page .canvas-bar:has(.ws-select.open){z-index:29}
  .graph-phone .graph-viewport{position:relative;inset:auto;height:calc(100dvh - var(--header-height) - var(--ws-size-phone-canvas-bar,44px) - var(--tools-bar-h));overflow:hidden;touch-action:none;background:radial-gradient(ellipse at 50% 30%,#fbf8f2,var(--canvas) 70%)}
  .graph-phone .graph-svg{width:100%;height:100%;min-width:0;min-height:0}
  .graph-phone .graph-node circle{cursor:pointer}.graph-phone .graph-node:focus-visible circle{stroke:var(--navy);stroke-width:3}
  .canvas-fit{position:absolute;right:12px;bottom:12px;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:22px;background:var(--paper);color:var(--ink);font:inherit;font-size:0.875rem;box-shadow:0 4px 14px #1e274722}.canvas-fit .icon{width:16px;height:16px}
  .graph-sheet .graph-rail-inner h3{font-size:0.8125rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:14px 0 6px}.graph-sheet .rail-tabs{display:none}
  .graph-branches>li{margin-bottom:10px;scroll-margin-top:64px}.graph-branches>li.current .graph-branch-head{color:var(--navy)}.graph-branches>li.current .graph-branch-head i{box-shadow:0 0 0 3px var(--paper),0 0 0 5px currentColor}.graph-branch-head{display:flex;align-items:center;gap:10px;margin:8px 0 2px;font-size:0.9375rem}.graph-branch-head i{width:12px;height:12px;border-radius:50%;flex:0 0 auto}.graph-branch-head small{color:var(--muted);margin-left:auto;font-size:0.75rem}
  .legend-rows p{display:flex;align-items:center;gap:10px;margin:0;min-height:40px}.legend-line{display:inline-block;width:28px;height:0;border-top:2px solid var(--navy)}.legend-line.dotted{border-top-style:dotted;border-color:#bc8b52}
  .tools-sheet-panel.graph-sheet{bottom:var(--tools-bar-h);height:var(--ws-size-phone-sheet-half-canvas,42svh);max-height:var(--ws-size-phone-sheet-half-canvas,42svh)}
  /* A canvas sheet pulled full stops under the canvas bar: the bar and a strip of the canvas stay (docs/PHONE-PASS.md). */
  .tools-sheet-panel.graph-sheet[data-sheet=full],.maps-phone .atlas-panel[data-sheet=full]{height:calc(100dvh - var(--header-height) - var(--ws-size-phone-canvas-bar,44px) - var(--tools-bar-h));max-height:calc(100dvh - var(--header-height) - var(--ws-size-phone-canvas-bar,44px) - var(--tools-bar-h))}
  /* Maps as a canvas page: the stage fills the screen; the existing panel is the sheet, lifted above the Tools bar. */
  .maps-phone{padding-bottom:0}.maps-phone .atlas-layout.v2{display:block;height:calc(100dvh - var(--header-height) - var(--ws-size-phone-canvas-bar,44px));min-height:0}.maps-phone .atlas-stage{height:100%;display:flex;flex-direction:column}.maps-phone .atlas{flex:0 0 auto;aspect-ratio:auto;min-height:0;height:calc(100dvh - var(--header-height) - var(--ws-size-phone-canvas-bar,44px) - var(--ws-size-phone-sheet-half-canvas,42svh) - var(--tools-bar-h) - 20px);border-radius:0;border-width:0 0 1px}.maps-phone .atlas-attrib{margin:0;padding:2px 8px;font-size:0.6875rem;position:absolute;left:0;right:0;bottom:calc(var(--tools-bar-h) + var(--ws-size-phone-sheet-half-canvas,42svh));pointer-events:none;opacity:.8}
  .maps-phone .atlas-panel{bottom:var(--tools-bar-h);height:var(--ws-size-phone-sheet-half-canvas,42svh);max-height:var(--ws-size-phone-sheet-half-canvas,42svh)}.maps-phone .atlas-tabs{display:none}.maps-phone .atlas-search-row{margin:0 0 10px}.maps-phone .atlas-layers-body{bottom:calc(var(--tools-bar-h) + 8px)}
  .maps-phone .skip-link{top:auto}
  /* Canvas rule: zoom lives in the ⋯ menu and Layers is a Tools-bar segment, so nothing floats on the map but the conditional Fit. */
  .maps-phone .atlas-tools-left,.maps-phone .atlas-layers>summary{display:none}.maps-phone .atlas-tools-right{inset:auto}.maps-phone .atlas-layers{display:block;width:auto;border:0;padding:0;box-shadow:none}.maps-phone .atlas-attrib{display:flex;align-items:center;gap:6px;white-space:nowrap}.maps-phone .atlas-attrib>span{overflow:hidden;text-overflow:ellipsis;min-width:0}.maps-phone .atlas-attrib .text-link{margin:0;flex:0 0 auto;pointer-events:auto}.maps-phone .atlas-layers-body{bottom:var(--tools-bar-h);left:0;right:0;border-radius:14px 14px 0 0;max-height:var(--ws-size-phone-sheet-half-canvas,42svh);padding:6px 14px 16px;z-index:28}.maps-phone .atlas-layers-body .tools-sheet-head{display:block;position:sticky;top:0;background:var(--paper);margin:0 -14px 6px;padding:0 14px 6px;border-bottom:1px solid var(--line)}.maps-phone .canvas-fit{bottom:calc(var(--tools-bar-h) + var(--ws-size-phone-sheet-half-canvas,42svh) + 28px);z-index:4}
  body.kb-open .tools-bar{visibility:hidden}
  .insert-bar.docked{position:fixed;left:0;right:0;bottom:var(--kb-bottom,0px);z-index:32;margin:0;padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px));background:var(--paper);border-top:1px solid var(--line);overflow-x:auto;flex-wrap:nowrap;white-space:nowrap}
/* ── Phone rules (docs/PHONE-PASS.md › systemic; tokens --ws-size-target-touch, --ws-font-size-floor) ───────────────
   At ≤700px every control is at least 44px tall (inline links inside prose are exempt, per WCAG 2.5.8); no interface
   text falls below 12px (decorative cover type excepted); inputs are 16px so iOS does not zoom them; hover styles wait
   for a device that can hover; the safe area is respected. These are floors, not a design — the templates are. */
@media(max-width:700px){
  :root{--tools-bar-h:calc(var(--ws-size-phone-tools-bar,58px) + env(safe-area-inset-bottom,0px))}
  /* A floor is allowed to be blunt: every control, whatever its variant says at a desk. Inline text controls inside
     prose (term buttons, verse anchors, dictionary references, inline links) keep their line. */
  button:not(.term):not(.verse-anchor):not(.tools-grabber):not(.atlas-grabber):not(.graph-node):not(.ws-cover *),.btn,.icon-btn,.tab,.chip,.ref-chip,.ws-select-btn,select,input:not([type=checkbox]):not([type=radio]):not([type=range]),.text-link,.breadcrumb a,.nav-link,.header-links a,.quick-card a,.section-head a,.linked-card,.recent-note,.reading-row,.shelf-card,.lib-item>a,.result,.note-card>a,.tools-row,.account-menu-item,.check-row,.menu-toggle,.pager a,.dict-pager a,.result-top a,.result h2 a,.letter-row a,.glossary-az a,.conc-word-head,.lexicon-link,.dict-links a{min-height:var(--ws-size-target-touch,44px)!important}
  .letter-row a,.glossary-az a{min-width:var(--ws-size-target-touch,44px)!important;height:auto!important}
  .avatar{width:var(--ws-size-target-touch,44px)!important;height:var(--ws-size-target-touch,44px)!important;min-height:0!important}.header-links a{min-width:var(--ws-size-target-touch,44px);justify-content:center}
  .btn,.icon-btn,.text-link,.breadcrumb a,.tab,.chip,.ref-chip,.section-head a,.pager a,.dict-pager a,.result-top a,.result h2 a,.letter-row a,.glossary-az a,.dict-links a{display:inline-flex;align-items:center}
  .icon-btn,.search-clear{min-width:var(--ws-size-target-touch,44px)!important}
  /* A round control has to stay round: the floor raises its height, so it takes the same width (a swatch is a circle, not an egg). */
  .color-swatch{width:var(--ws-size-target-touch,44px)!important;height:var(--ws-size-target-touch,44px)!important;min-width:var(--ws-size-target-touch,44px)!important;flex:0 0 auto}
  .ref-chip,.chip{padding-top:0;padding-bottom:0}
  .breadcrumb{gap:0}.breadcrumb a{padding:0 4px}
  .meta,small:not(.ws-cover *):not(.ws-jacket *),.hint small,.note-card small,.recent-note small,.reading-title small,.plan-card small,.shelf-card small,.lib-rights,.status,.ws-select-option small,.result-top small,.lemma small{font-size:0.8125rem!important}
  .kicker,.rp-kicker,.eyebrow,.rp-count,.tools-seg,.tools-seg small,.insights small,.week-strip small,.chip,.ref-chip,.concept-card-footer span,.streak-row small{font-size:var(--ws-font-size-floor,12px)!important}
  input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea,.ws-select-btn,.search-input input{font-size:16px}
  .rp-jump{display:none!important}.atlas-grabber{min-height:28px}
  /* Until the canvas template lands: the Maps heading loses its paragraph on phones so the map keeps its height. */
  .maps-page .page-heading p{display:none}.maps-page .page-heading{margin-bottom:8px}
  .app-main{padding-bottom:max(env(safe-area-inset-bottom,0px),0px)}
}
@media(hover:none){.btn:hover,.icon-btn:hover,.nav-link:hover,.shelf-card:hover .ws-cover,.plan-card:hover,.tools-row:hover,.account-menu-item:hover{transform:none;box-shadow:none}}

/* Help pictures open larger on a tap (our own view, so the page stays behind it); the clip keeps its poster until asked. */
.help-shot-open{display:block;width:100%;padding:0;border:0;background:none;position:relative;border-radius:10px;overflow:hidden}
.help-shot-open img{display:block;width:100%;height:auto}
.help-shot-open .icon{position:absolute;right:8px;bottom:8px;width:32px;height:32px;padding:7px;border-radius:8px;background:#fffffff2;color:var(--ink);box-shadow:0 1px 4px #0003}
.help-shot-open:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.help-zoom img,.help-zoom video{display:block;width:100%;height:auto;border-radius:8px}.help-zoom img{touch-action:pinch-zoom}
.help-zoom .meta{margin:10px 0 0}
@media(max-width:700px){.help-clip video{width:100%;height:auto}}

/* Where a chapter ends: the next one, named, directly under the last verse (src/app.js › chapterPager). */
.reader-pager{display:flex;justify-content:space-between;gap:12px;margin:22px 0 4px;padding-top:18px;border-top:1px solid var(--line)}
.reader-pager .pager-link{display:inline-flex;align-items:center;gap:10px;min-height:44px;min-width:0;padding:8px 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);text-decoration:none;max-width:48%;overflow:hidden}
.reader-pager .pager-link .icon{flex:0 0 auto}
.reader-pager .pager-link span{display:flex;flex-direction:column;min-width:0}
.reader-pager .pager-link small{color:var(--muted);font-size:0.75rem;line-height:1.3}
.reader-pager .pager-link b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reader-pager .pager-link.next{margin-left:auto;text-align:right}.reader-pager .pager-link.next span{align-items:flex-end}
.reader-pager .pager-link:hover{border-color:var(--navy)}
.reader-pager .pager-link:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.tools-options{padding:10px 0 4px;border-top:1px solid var(--line);margin-top:6px}
.tools-options .check-row{margin:0}
@media(hover:none){.reader-pager .pager-link:hover{border-color:var(--line)}}
@media(max-width:700px){.reader-pager{gap:8px}.reader-pager .pager-link{flex:1 1 0;min-width:0;max-width:calc(50% - 4px);justify-content:center}}

/* The phone drawer is an overlay, so it says so: a scrim behind it, tappable to close (src/app.js › setDrawer). */
.nav-scrim{display:none}
@media(max-width:700px){.nav-scrim{display:block;position:fixed;inset:0;z-index:29;background:#1e274766}}

/* A toast that carries an action stays until it is used (src/app.js › toast). */
#toast.with-action{display:flex;align-items:center;gap:12px;pointer-events:auto;padding:8px 8px 8px 18px;max-width:min(520px,calc(100vw - 32px))}
#toast .toast-action{min-height:36px;padding:0 14px;border:1px solid #ffffff59;border-radius:6px;background:transparent;color:inherit;font-weight:600}
#toast .toast-action:hover{background:#ffffff1f}
#toast .toast-dismiss{min-height:36px;min-width:36px;display:grid;place-items:center;border:0;background:transparent;color:inherit;border-radius:6px}
#toast .toast-dismiss .icon{width:16px;height:16px}
@media(max-width:700px){#toast.with-action{bottom:calc(var(--tools-bar-h) + 12px)}#toast .toast-action,#toast .toast-dismiss{min-height:44px}}

/* Reading offline (src/app.js › offlineSettings): one row per work, what it costs, and one control. */
.offline-list{display:grid;gap:2px}
.offline-row{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:10px 0;border-top:1px solid var(--ws-semantic-border-subtle,var(--line))}
.offline-row:first-child{border-top:0}
.offline-name{display:flex;flex-direction:column;min-width:0}
.offline-name small{color:var(--muted)}
.offline-row.kept .offline-name b:after{content:"· on this device";color:var(--muted);font-weight:400;margin-left:6px;font-size:0.8125rem}
@media(max-width:700px){.offline-row{padding:12px 0}}


/* Tell us. The kind is two radios that look like the segmented controls elsewhere, because the reader is choosing
   between two things, not toggling a view — and a radio keeps what they have already typed when they change it. */
.report-form .field:last-of-type{margin-bottom:14px}
.report-kind{border:0;padding:0;margin:0 0 20px;display:flex;gap:10px;flex-wrap:wrap}
.report-kind legend{font-size:0.8125rem;margin-bottom:8px;padding:0}
.report-kind-opt{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:6px;padding:9px 14px;min-height:39px;font-size:0.8125rem;cursor:pointer}
.report-kind-opt .icon{width:16px;height:16px;color:var(--muted)}
.report-kind-opt input{accent-color:var(--navy);width:16px;height:16px;margin:0}
.report-kind-opt:has(input:checked){border-color:var(--navy);background:#1e274708}
.report-kind-opt:has(input:checked) .icon{color:var(--navy)}
.report-kind-opt:has(input:focus-visible){outline:2px solid var(--navy);outline-offset:2px}
.report-context{margin:0 0 18px}
.report-context summary{font-size:0.8125rem;cursor:pointer}
.report-context p{margin:10px 0}
.report-context textarea{border:1px solid #d5cec4;border-radius:6px;background-color:#fcfaf6;padding:10px 12px;width:100%;color:var(--ink);font-size:0.8125rem;line-height:1.7}
.report-sent{color:var(--navy)}
/* The one field no person is shown. Off-screen rather than display:none, because a form filler that respects
   display:none would skip it and the trap would catch nothing. */
.report-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
@media(max-width:700px){.report-kind-opt{flex:1 1 auto;justify-content:center}}

/* The phone bar (docs/COMPETITIVE-TEARDOWN.md F2). Desktop has a labelled rail with room for ten; a five-slot bar is
   a phone constraint, not a design principle, so the bar exists only where the constraint does. */
.app-bar{display:none}
@media(max-width:700px){
  :root{--app-bar-h:calc(var(--ws-size-phone-tools-bar,58px) + env(safe-area-inset-bottom,0px))}
  .app-bar{position:fixed;left:0;right:0;bottom:0;z-index:26;display:flex;align-items:stretch;height:var(--app-bar-h);padding:0 4px env(safe-area-inset-bottom,0px);background:var(--paper);border-top:1px solid var(--line);box-shadow:0 -1px 0 var(--ws-semantic-border-subtle,var(--line))}
  .app-bar-seg{flex:1 1 0;min-width:0;border:0;background:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 2px;font:inherit;font-size:0.625rem;text-decoration:none;min-height:44px}
  .app-bar-seg .icon{width:20px;height:20px}
  .app-bar-seg span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .app-bar-seg.active{color:var(--navy)}
  .app-bar-seg.active .icon{color:var(--navy)}
  .app-bar-seg:focus-visible{outline:2px solid var(--navy);outline-offset:-2px;border-radius:6px}
  /* Room for it, and none reserved where it is not drawn. */
  .app-main{padding-bottom:var(--app-bar-h)}
  /* The rail is a drawer here, so there is nothing to collapse: its control would be a button in the drawer that
     did nothing a reader could see. All of its styling lives above 700px, so without this it renders as a bare
     chevron in the list. */
  .nav-width{display:none}
  /* Which screens get the Menu button and which get the bar is decided in src/app.js › ownsBottom, where the page
     that was just rendered can be looked at directly. It was decided here, by :has(), and the rules were correct in
     the file and inert in the browser. A page that is not drawn needs no padding reserved for it either. */
  .app-main:not(:has(~.app-bar)){padding-bottom:0}
  /* Notes is the exception, and it is one on purpose. Its strip filters a list; it is not a surface asking for the
     whole screen, and a bar that vanished once a reader had notes would be a bar that depends on their data. So the
     strip sits on top of the bar, and --bottom-inset lifts everything anchored to it. It is 0 everywhere else, which
     is why the reader's sheet is untouched. */
  .app-main:has(.tools-dock.beside-bar){--bottom-inset:var(--app-bar-h);padding-bottom:calc(var(--tools-bar-h) + var(--app-bar-h))}
}

/* More's sheet. It borrows the tools sheet's shape — the same rounded top, the same scrim, the same detent height —
   because a reader has met that panel already and this is the same gesture from the same edge. It is its own element
   and its own state, so opening the list of places to go never disturbs the filters or resources of the page under it. */
.nav-dock{display:none}
@media(max-width:700px){
  .nav-dock{display:block}
  .nav-sheet{bottom:var(--app-bar-h);height:auto;max-height:calc(100dvh - var(--app-bar-h) - 24px);z-index:28}
  .nav-sheet .tools-sheet-head{display:block;padding-top:6px}
  .nav-sheet .tools-list{margin:0;padding:0;list-style:none}
  .nav-sheet .tools-row{width:100%}
  /* The sheet says where you are, the same way the bar does. */
  .nav-sheet .tools-row.active{color:var(--navy);font-weight:550}
  .nav-sheet .tools-row.active .icon:first-child{color:var(--navy)}
  .nav-sheet .divider{margin:6px 14px}
  .nav-dock .tools-scrim{position:fixed;inset:0;z-index:27;background:#1e274766}
}

/* The rail's two shapes, once the reader has chosen one. The layout already has a token for this — --nav-width is
   168px at :root and 76px below 1181px — so the choice redefines that token rather than inventing a second way to
   size the rail, and everything anchored to it (the rail, the main column) moves together. It is set on <body>
   because .app-main reads the token too and is not inside the rail. Above the phone only: there the rail is a
   drawer and the choice means nothing. Nothing here changes what an unchosen rail does. */
@media(min-width:701px){
  body:has(.sidebar[data-nav=wide]){--nav-width:168px}
  body:has(.sidebar[data-nav=wide]) .nav-link{justify-content:flex-start;padding:0 14px;width:100%}
  body:has(.sidebar[data-nav=wide]) .nav-link span{display:inline}
  body:has(.sidebar[data-nav=narrow]){--nav-width:76px}
  body:has(.sidebar[data-nav=narrow]) .nav-link{justify-content:center;padding:0;width:60px}
  body:has(.sidebar[data-nav=narrow]) .nav-link span{display:none}
  /* Out of the flow and invisible until it is wanted: absolutely positioned so it displaces nothing, and at zero
     opacity so a screen that nobody is pointing at looks exactly as it did before this existed. Hover or keyboard
     focus brings it out. It stays in the DOM and in the tab order the whole time. */
  .nav-width{position:absolute;top:calc(var(--header-height) + 8px);right:-13px;z-index:2;width:26px;height:26px;display:grid;place-items:center;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);opacity:0;transition:opacity .15s,transform .15s}
  .sidebar{overflow:visible}
  .sidebar nav,.side-bottom{overflow-x:visible}
  .sidebar:hover .nav-width,.sidebar:focus-within .nav-width,.nav-width:focus-visible{opacity:1}
  .nav-width .icon{width:14px;height:14px;transform:rotate(180deg)}
  body:has(.sidebar[data-nav=narrow]) .nav-width .icon{transform:none}
  @media (prefers-reduced-motion:reduce){.nav-width{transition:none}}
}

/* The share menu hangs off the selection bar, which is itself fixed; a popover lives in the top layer, so it needs
   no z-index of its own and cannot be clipped by the bar. */
.sel-share-wrap{display:contents}
.sel-share-menu{position:fixed;inset:auto;margin:0;min-width:210px}
.sel-share-menu .account-menu-item{white-space:nowrap}

/* A run taken by tapping verse numbers. A dragged selection is painted by the browser; a tapped one is not, and an
   unmarked selection is a selection the reader has to take on trust. Same colour as ::selection, so the two ways of
   choosing a passage look like the same thing. */
.verse.tap-selected .verse-text{background:#ecd095;border-radius:3px}

/* The concordance says what kind of answer it can give before it gives one. */
.conc-text-pick{flex-wrap:wrap;align-items:flex-start;gap:10px 16px;margin-bottom:18px}
.conc-coverage{flex:1 1 320px;max-width:62ch;line-height:1.7;margin:0}
/* Mentor conversation workspace: one bounded transcript and an anchored composer. */
.mentor-expand{max-width:1440px;padding-bottom:1rem}.mentor-expand>.page-heading{margin-bottom:1rem}.mentor-expand>.page-heading h1{font-size:1.375rem}
.mentor-expand-grid{grid-template-columns:minmax(0,1fr) minmax(15rem,22rem);align-items:start;gap:1.25rem}
.mentor-expand .mentor-panel{height:calc(100dvh - 15rem);min-height:28rem;max-height:none;padding:1rem 1.25rem;gap:.75rem;overflow:hidden}
.mentor-panel.expanded .mentor-thread{flex:1;min-height:0;max-height:none;scroll-behavior:auto;padding:.75rem .5rem;gap:1.25rem}
.mentor-tail{display:flex;flex-direction:column;gap:.6rem;flex:none;border-top:1px solid var(--line);padding-top:.75rem}
.mentor-composer{border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:.65rem}.mentor-composer:focus-within{outline:2px solid var(--ws-semantic-border-focus);outline-offset:2px}.mentor-composer textarea{border:0;background:transparent;box-shadow:none;outline:none;padding:.4rem;font-size:1rem}.mentor-composer textarea:focus{outline:none;border:0;box-shadow:none}
.mentor-head-row{flex-wrap:wrap;min-height:2.75rem}.mentor-engine{white-space:normal;overflow-wrap:anywhere}.mentor-back{min-height:44px;display:inline-flex;align-items:center}.mentor-foot{flex-wrap:wrap;gap:.5rem}.mentor-foot span{white-space:normal}
.mentor-expand-grid .mentor-draft{position:static;max-height:calc(100dvh - 15rem);padding:1rem;color:var(--ws-semantic-text-primary)}.mentor-draft-disclosure summary{min-height:44px;cursor:pointer;font-family:var(--sans);font-size:.875rem;font-weight:600}.mentor-draft-disclosure[open] .mentor-draft-head{margin-top:1rem}.mentor-latest{align-self:center;flex:none}
.mentor-turn.you{align-self:flex-end;max-width:92%;padding:.75rem 1rem;border-radius:12px 12px 3px 12px}.mentor-turn.mentor{padding-block:.5rem}.mentor-answer{font-size:1rem;line-height:1.7;white-space:pre-wrap}
@media(max-width:1100px){.mentor-expand-grid{grid-template-columns:minmax(0,1fr)}.mentor-expand-grid .mentor-draft{grid-row:1;max-height:12rem}.mentor-expand .mentor-panel{height:auto;min-height:0;overflow:visible}.mentor-expand .mentor-head-row{gap:.5rem}.mentor-expand .mentor-head-row .mentor-engine{flex:1}}
@media(max-width:600px){.mentor-expand{padding:1rem}.mentor-expand .mentor-panel{padding:.75rem;min-height:26rem}.mentor-expand .mentor-head-row .mentor-back{width:100%}.mentor-composer-row{align-items:center}.mentor-foot{font-size:.75rem}}
.mentor-expand .mentor-panel.off,.mentor-expand .mentor-panel.unavailable{height:auto;min-height:0}.mentor-expand .mentor-panel.off .mentor-empty{padding-block:2rem}
section.mentor-draft{white-space:normal}.mentor-expand-grid .mentor-draft{min-height:0}

/* The builder rail remains discoverable beside the draft once there is room for both. Not from 701px: the
   breakpoints above collapse the builder to one column below 1000px because two columns at a tablet’s width
   leave the draft about 340px wide, which wraps a section heading over three lines and stacks every insert
   button. Below this the rail follows the draft down the page, as it did before. */
@media screen and (min-width:1001px){
  .builder-layout{grid-template-columns:minmax(0,1fr) clamp(17rem,27vw,23rem);align-items:start}
  .builder-layout>.builder-rail{display:block;min-width:0;position:sticky;top:calc(var(--header-height) + 1rem);max-height:calc(100dvh - var(--header-height) - 2rem);overflow-y:auto;overscroll-behavior:auto;scrollbar-gutter:stable}
  .builder-rail>.rail-tabs{position:sticky;top:0;z-index:2;background:var(--paper)}
}
/* The rail's own tabs, wherever the rail sits. Between 701px and the grid above, the rail follows the draft down
   the page rather than standing beside it, and its tabs were rendering there as undifferentiated text. */
@media screen and (min-width:701px){
  .builder-rail>.rail-tabs{display:flex;flex-wrap:wrap;padding-block:.25rem}
  .builder-rail>.rail-tabs button{flex:1;min-height:44px;white-space:normal}
}
