/* Daily Life Doc, round 12 (zone TW): texting in the web app.
   - .rc-src, .rc-sms: the source word Text / App after a message's time, and "Not sent: … · Try again" / "Held until
     7:00 AM" under a message (js/convo/convo-sms.js)
   - .rs-*: the sheet Reach me by and its link in the care team's chat head (js/flow/reach-sheet.js)
   - .tx-*: the line Texts on To review and the page Texts (js/flow/texts-page.js)
   - .lk-send: Send link (js/flow/link-send.js); .lk-*: the page of a texted link /l/<code> (js/core/link-open.js)
   One type scale (--t-*), quiet words, no boxes around single lines. */

/* ---------- The one chat ---------- */
/* The source word stands after the time, as quiet as the time (.rc-by small gives size and colour). */
.rc-by .rc-src::before { content: '·'; margin-right: 6px; }
.rc-by .rc-src { margin-left: 6px; }
.rc-sms { margin: 6px 12px 0; font-size: var(--t-xs); font-weight: 500; line-height: 1.4; color: var(--ink3); }
.rc-m.me > .rc-sms { align-self: flex-end; text-align: right; }
.rc-sms.is-fail { color: var(--red); }
.rc-sms button { position: relative; padding: 0; font: inherit; font-weight: 600; color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.rc-sms button::after { content: ''; position: absolute; inset: -12px -10px; }
.rc-sms button:active { opacity: .6; }
.rc-sms button[disabled] { opacity: .45; text-decoration: none; cursor: default; }
.rc-sms button.is-busy { opacity: .6; }

/* ---------- Reach me by ---------- */
.rs { display: flex; flex-direction: column; gap: 16px; padding-bottom: 6px; }
.rs-state { margin: -6px 2px 0; font-size: var(--t-s); line-height: 1.45; color: var(--ink2); overflow-wrap: anywhere; }
.rs-seg { display: grid; grid-template-columns: repeat(3, 1fr); }
.rs-seg .seg-o { min-width: 0; }
.rs-phone { display: flex; flex-direction: column; gap: 6px; }
.rs-lab { padding: 0 2px; font-size: var(--t-sm); font-weight: 600; color: var(--ink2); }
.rs-consent { display: flex; flex-direction: column; gap: 14px; }
.rs-words { margin: 0; padding: 14px 16px; border-radius: 16px; background: var(--soft); font-size: var(--t-s); line-height: 1.5; color: var(--ink); }
.rs-words:empty { display: none; }
.rs-first, .rs-allow { align-self: stretch; }
.rs-err { margin: 0 2px; font-size: var(--t-sm); line-height: 1.45; color: var(--bad-d); }
.chh-links:has(.rs-link) { flex-wrap: wrap; }
.chh-links .rs-link { white-space: nowrap; flex: none; }
.chh-links .rs-link small { margin-left: 4px; font-size: var(--t-xs); font-weight: 500; color: var(--ink2); }

/* ---------- To review and the page Texts ---------- */
.tx-rv:empty { display: none; }
.tx-line { margin-top: 2px; }
.tx { display: flex; flex-direction: column; gap: 28px; padding-bottom: 32px; }
.tx-sec .rv-h { margin-bottom: 6px; }
.tx-st { display: flex; gap: 14px; align-items: baseline; min-height: 40px; padding: 9px 2px; border-bottom: 1px solid var(--line); font-size: var(--t-s); line-height: 1.45; }
.tx-st:last-child { border-bottom: 0; }
.tx-st span { flex: none; width: 104px; color: var(--ink2); }
.tx-st b { flex: 1; min-width: 0; font-weight: 500; color: var(--ink); overflow-wrap: anywhere; }
.tx-st.is-bad b { color: var(--bad-d); }
.tx-url { display: flex; gap: 12px; align-items: center; min-height: 56px; padding: 6px 2px; }
.tx-url span { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.tx-url b { font-size: var(--t-s); font-weight: 600; }
.tx-url small { font-size: var(--t-sm); color: var(--ink2); overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.tx-url .btn { flex: none; }
.tx-row { padding: 12px 2px; border-bottom: 1px solid var(--line); }
.tx-row:last-child { border-bottom: 0; }
.tx-h { display: flex; gap: 10px; align-items: baseline; justify-content: space-between; }
.tx-h b { font-size: var(--t-s); font-weight: 600; }
.tx-h small { flex: none; font-size: var(--t-xs); color: var(--ink3); }
.tx-body { margin: 4px 0 0; font-size: var(--t-s); line-height: 1.45; color: var(--ink); white-space: pre-wrap; overflow-wrap: anywhere; }
.tx-s { margin: 4px 0 0; font-size: var(--t-xs); line-height: 1.4; color: var(--ink3); overflow-wrap: anywhere; }
.tx-s.is-bad { color: var(--bad-d); }

/* ---------- Send link ---------- */
.xp-link:empty { display: none; }
.lk-send { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 2px 2px 4px; }
.lk-until { font-size: var(--t-xs); color: var(--ink2); }

/* ---------- The page of a texted link ---------- */
.lk { z-index: 60; display: flex; flex-direction: column; padding: calc(var(--top) + 14px) 18px 40px; }
.lk-app { margin: 0 2px 18px; font-size: var(--t-sm); font-weight: 600; letter-spacing: .02em; color: var(--ink3); }
.lk-body { position: relative; display: block; }
.lk-card { display: flex; flex-direction: column; justify-content: flex-start; gap: 22px; margin-top: 14vh; padding: 0 2px; }
.lk-t { margin: 0; font-size: var(--t-xxl); font-weight: 700; line-height: 1.15; color: var(--ink); }
.lk-card .lk-sub { margin: -12px 0 0; font-size: var(--t-m); line-height: 1.45; color: var(--ink2); }
.lk-open { width: 100%; }
.lk-page { display: flex; flex-direction: column; gap: 14px; }
.lk-title { margin: 0 2px; font-size: var(--t-xl); font-weight: 700; line-height: 1.2; }
.lk-page .lk-sub { margin: -8px 2px 0; font-size: var(--t-sm); line-height: 1.45; color: var(--ink2); }
.lk-img { display: block; width: 100%; border-radius: 18px; }
.lk-text { margin: 0 2px; font-size: var(--t-m); line-height: 1.5; white-space: pre-wrap; }
.lk-prog button[disabled] { opacity: 1; cursor: default; }
.tx-line span { text-align: left; }

/* ---------- Onboarding ---------- */
/* The hours a person reads sits close under the clinician sentence: one short paragraph of two facts. */
.ob-clin.ob-hours { margin-top: 8px; }
