/* MAD client app, accessibility layer v1 (W8, beta P11).
 * Linked last on every app page (portal_programme_shell), after each
 * add-on's own stylesheet, so the add-on screens follow the same rules as
 * rehab_app_v5.css without new versions of their files:
 *   - font sizes in rem times --tx (the phone's text size, Profile >
 *     Larger text); body text at least 16px, short labels at least 12px;
 *   - tap targets at least 44 x 44 px;
 *   - text that wraps instead of clipping at large sizes.
 * The font-size rules below were generated from each add-on stylesheet
 * (same selector, same media query). When an add-on stylesheet gets a new
 * version, regenerate them (scratch tool gencss.py, W8).
 * Versioned filename. */

/* ---- mad_recovery_store ---- */
.field, .st-search input, .st-form input[type="text"], .st-form input[type="email"], .st-form input[type="tel"], .st-form input[type="date"], .st-form select { font-size: calc(1rem * var(--tx)); }
.st-form .lbl { font-size: calc(0.875rem * var(--tx)); }
.st-form .hint { font-size: calc(1rem * var(--tx)); }
.st-form .err { font-size: calc(1rem * var(--tx)); }
.yn-q legend { font-size: calc(0.9375rem * var(--tx)); }
.st-terms { font-size: calc(1rem * var(--tx)); }
.st-card h3 { font-size: calc(1rem * var(--tx)); }
.st-kind { font-size: calc(0.75rem * var(--tx)); }
.st-meta { font-size: calc(0.75rem * var(--tx)); }
.st-flag { font-size: calc(0.75rem * var(--tx)); }
.st-price { font-size: calc(0.9375rem * var(--tx)); }
.st-was { font-size: calc(0.75rem * var(--tx)); }
.st-phase { font-size: calc(1rem * var(--tx)); }
.st-price-card .st-price { font-size: calc(1.375rem * var(--tx)); }
.st-cta-note { font-size: calc(1rem * var(--tx)); }
.st-plus-hero h2 { font-size: calc(1.375rem * var(--tx)); }
.st-list li { font-size: calc(1rem * var(--tx)); }
.st-plan-top h3 { font-size: calc(1.0625rem * var(--tx)); }
.st-plan .st-price { font-size: calc(1.25rem * var(--tx)); }
.st-line { font-size: calc(1rem * var(--tx)); }
.st-total { font-size: calc(0.9375rem * var(--tx)); }
.st-total b { font-size: calc(1.25rem * var(--tx)); }
.st-qty button { font-size: calc(1.375rem * var(--tx)); }
.st-qty output { font-size: calc(1.25rem * var(--tx)); }
.st-order-head b { font-size: calc(1rem * var(--tx)); }
.st-kv { font-size: calc(1rem * var(--tx)); }
.st-small-btn { font-size: calc(0.875rem * var(--tx)); }
.st-empty h3 { font-size: calc(1.0625rem * var(--tx)); }
.st-join h1 { font-size: calc(1.625rem * var(--tx)); }
.st-join .lead { font-size: calc(1rem * var(--tx)); }
.st-done h1 { font-size: calc(1.5rem * var(--tx)); }
/* ---- mad_recovery_store ---- */
.ph-lead { font-size: calc(1rem * var(--tx)); }
.ph-who h3 { font-size: calc(1.0625rem * var(--tx)); }
.ph-initials { font-size: calc(1.5rem * var(--tx)); }
.ph-focus .chip { font-size: calc(0.75rem * var(--tx)); }
.ph-facts { font-size: calc(1rem * var(--tx)); }
.ph-bio { font-size: calc(1rem * var(--tx)); }
.ph-mine .ph-photo { font-size: calc(1.1875rem * var(--tx)); }
/* ---- mad_recovery_auth ---- */
.st-form input[type="password"] { font-size: calc(1rem * var(--tx)); }
.ra-or { font-size: calc(1rem * var(--tx)); }
.ra-forgot { font-size: calc(1rem * var(--tx)); }
.ra-legal { font-size: calc(1rem * var(--tx)); }
/* ---- mad_recovery_connect ---- */
.cx-h3 { font-size: calc(1.0625rem * var(--tx)); }
.cx-label { font-size: calc(0.8125rem * var(--tx)); }
.cx-small-btn { font-size: calc(0.875rem * var(--tx)); }
.cx-pill { font-size: calc(0.75rem * var(--tx)); }
.cx-day-h { font-size: calc(1rem * var(--tx)); }
.cx-time { font-size: calc(1rem * var(--tx)); }
.cx-who { font-size: calc(0.75rem * var(--tx)); }
.cx-meta { font-size: calc(0.75rem * var(--tx)); }
.cx-body { font-size: calc(1rem * var(--tx)); }
.cx-source { font-size: calc(1rem * var(--tx)); }
/* ---- mad_recovery_outcomes ---- */
.oc-legend { font-size: calc(0.75rem * var(--tx)); }
.oc-big { font-size: calc(1.625rem * var(--tx)); }
.oc-big small { font-size: calc(1rem * var(--tx)); }
.oc-sub { font-size: calc(1rem * var(--tx)); }
.oc-note { font-size: calc(1rem * var(--tx)); }
.oc-ba .k { font-size: calc(0.75rem * var(--tx)); }
.oc-ba .v { font-size: calc(1.0625rem * var(--tx)); }
.oc-steps { font-size: calc(0.75rem * var(--tx)); }
.oc-q > legend { font-size: calc(0.9375rem * var(--tx)); }
.oc-q .oc-anchors { font-size: calc(1rem * var(--tx)); }
.oc-psfs input[type="text"], .oc-psfs select { font-size: calc(1rem * var(--tx)); }
.oc-goal button { font-size: calc(0.9375rem * var(--tx)); }
/* ---- mad_recovery_learn ---- */
.course-card .top-art h3 { font-size: calc(1.125rem * var(--tx)); }
.course-card .body .muted { font-size: calc(1rem * var(--tx)); }
.course-card .meta { font-size: calc(0.75rem * var(--tx)); }
.lesson-row .nm { font-size: calc(1rem * var(--tx)); }
.lesson-row .ds { font-size: calc(1rem * var(--tx)); }
/* ---- mad_recovery_motion ---- */
.mc-lead { font-size: calc(1rem * var(--tx)); }
.mc-h3 { font-size: calc(1.0625rem * var(--tx)); }
.mc-steps { font-size: calc(0.9375rem * var(--tx)); }
.mc-big { font-size: calc(1.75rem * var(--tx)); }
.mc-lbl { font-size: calc(1rem * var(--tx)); }
.mc-cue { font-size: calc(1.0625rem * var(--tx)); }
.mc-tools .btn { font-size: calc(0.875rem * var(--tx)); }
.mc-kicker { font-size: calc(0.75rem * var(--tx)); }
.mc-headline { font-size: calc(1.25rem * var(--tx)); }
.mc-result p { font-size: calc(1rem * var(--tx)); }
.mc-q { font-size: calc(1rem * var(--tx)); }
.mc-rep-count { font-size: calc(2.75rem * var(--tx)); }
.mc-rep-sub { font-size: calc(1rem * var(--tx)); }
.mc-rate h3 { font-size: calc(1.125rem * var(--tx)); }
.mc-rate-name { font-size: calc(1rem * var(--tx)); }
.mc-rate-opts button { font-size: calc(0.8125rem * var(--tx)); }
@media (max-width: 360px) { .mc-big { font-size: calc(1.5rem * var(--tx)); } }

/* ---- tap targets and large text ---- */
.mc-rate-opts { flex-wrap: wrap; }
.mc-rate-opts button { min-width: 44px; }
.st-card .muted { -webkit-line-clamp: 4; }
html.text-lg .st-card .muted { -webkit-line-clamp: unset; display: block; }
.st-search { flex-wrap: wrap; }
.ra-legal a, .ra-forgot a, .st-terms a { display: inline-flex; align-items: center; min-height: 44px; }
.p-current .how-link { min-height: 44px; min-width: 44px; display: inline-flex; align-items: center; justify-content: center; }
