/* ── 5c — the client app, softened (Drew, approved 2026-09-05) ─────────────
   5b removed every radius and every shadow and pushed all labels to small
   uppercase. Consistent, and also why the client app read as severe and
   congested: the most common text size on Today was 12–13px, every radius
   token was 0, and every section heading was 0.72rem uppercase tracked at
   .16em — the densest text a screen can carry, used for every heading.

   5c keeps every 5b rule that carries MEANING — accent for state, outline for
   chosen, fill for press-me, capitals on actions — and changes only scale,
   spacing and edges. Loaded AFTER the app sheets by BOTH shells (Drew,
   2026-09-05: "for all users including Trainers") and BEFORE wide.css.

   The approved comparison is design-reference/approved-5c-client.html. The
   rules here are the ones on that page, verbatim — anything that drifts from
   it is the thing that is wrong. */

/* Edges return. 5b set all three to 0; --radius-pill was never touched. */
:root{ --radius-sm:10px; --radius-md:14px; --radius-lg:18px; }
body{ line-height:1.5; }
.cpage,.page{ padding-left:1.35rem; padding-right:1.35rem; font-size:1.02rem; }

/* Today */
.today-greeting{ font-size:1.9rem; margin-bottom:.15rem; }
.today-date{ font-size:1rem; font-weight:600; }

/* A section heading is a readable sentence, not an eyebrow. The accent rule
   under it goes too — the card below now carries the boundary. */
.section-label{ text-transform:none; letter-spacing:-.01em; font-size:1.08rem; font-weight:800;
  color:var(--text); border-bottom:0; padding-bottom:0; margin:0 0 .7rem; }

/* The agenda is a card. The shadow is the ONE softness 5b banned outright and
   5c admits: a whisper of elevation, blur radius 28px at −18px spread, on a
   large surface — never on a chip, a button or text. */
.ag-block{ background:var(--surface-1); border:1px solid var(--border); border-radius:var(--radius-lg);
  padding:1.15rem 1.2rem 1.2rem; margin-top:1.6rem;
  box-shadow:0 1px 2px rgba(0,0,0,.05), 0 10px 28px -18px rgba(0,0,0,.3); }
.ag-item{ padding:.9rem 0; gap:1rem; }
.ag-time{ font-size:1rem; font-weight:700; }
.ag-name{ font-size:1.06rem; font-weight:700; }
.ag-meta,.ag-note{ font-size:.88rem; }
.ag-actions{ gap:.65rem; margin-top:1.1rem; }

/* Buttons keep their capitals (every action takes capitals); the tracking
   eases from .08em to .04em and they grow to 50px. */
.rc-btn{ border-radius:var(--radius-md); letter-spacing:.04em; font-size:.88rem; min-height:50px; }
/* The small variant (the wheel's DONE, inline row actions) keeps 5b's 40px
   inline-chip target; 50px there would break the rows it sits in. */
.rc-btn--sm{ min-height:40px; font-size:.8rem; }

/* Hub tabs are pill chips in sentence case — navigation, not an action. The
   chosen one is accent-OUTLINED, which is 5b's own rule for a chosen thing. */
/* The hub tabs are UNDERLINED, the same as the trainer's Inbox (Drew,
   2026-09-05). 5c had made them pills, which read as a choice of option
   rather than a switch between views; the underline is the app's one tab
   grammar and client.css already draws it. 5c keeps only the sizing. */
.hub-tabs{ margin-top:1.5rem; }
.hub-tab{ font-size:.92rem; font-weight:700; text-transform:none; letter-spacing:0; }
.hub-panel .ag-item{ padding:.8rem 0; }

/* Sheets and fields */
.rc-sheet-card{ border-radius:var(--radius-lg) var(--radius-lg) 0 0; padding:1.6rem 1.4rem 1.4rem; }
.form-textarea,.form-input{ border-radius:var(--radius-md); font-size:1rem; padding:.9rem 1rem; line-height:1.5; border-width:1.5px; }
.ic-q{ font-size:1.35rem; font-weight:800; line-height:1.25; margin:.2rem 0 1.1rem; }
.bk-hint,.settings-desc{ font-size:.9rem; line-height:1.55; }
.ic-nav{ gap:.65rem; margin-top:1.3rem; }
.ic-dots i{ width:8px; height:8px; }
.ic-skip{ font-size:.74rem; letter-spacing:.08em; }

/* ── Drew's live pass, 2026-09-05 ──────────────────────────────────────────
   5b set border-radius:0 LITERALLY on 94 rules and left ~100 more boxes with
   no radius at all, so re-tokening the scale above reached only the rules
   that read a token. Everything below names what stayed square, in three
   sizes by role. Sliders (.mode-picker, .rc-cal-seg, the switch) keep their
   pill; the calendar grid, tabs and segment underlines stay square. */
.rc-sheet-card,.more-sheet,.tm-sheet-card,.tw-pop,.toast,.toast.toast-error,.as-phone,.lg-card,.lg-box{ border-radius:var(--radius-lg); }
/* The sheet already floats above the screen edge (its overlay pads it), so a
   flat bottom read as a card cut off. The More sheet was flush; it floats now. */
.more-sheet-overlay{ padding:0 .75rem calc(.75rem + env(safe-area-inset-bottom,0)); }
.more-sheet{ border:1px solid var(--border); }
.th-card,.cp-card,.cp-card-ic,.conv-row,.thread-bub,.thread-rcard,.thread-photo,.msg-photo-thumb,.thread-input,
.lib-card,.lib-card2,.grp-card,.issue-row,.lead-row,.admin-card,.story-card,.review-card,.hub-notif,.hub-notif-more,
.alert-row,.np-tile,.np-win-cell,.np-win-banner,.pl-cell,.tr-pick-cell,.tr-up-slot,.sf-tr-pair,.sf-tr-half,
.sf-tr-edit-half,.sf-photo-prev,.fc-thumb,.pp-tile,.pp-add,.pp-prompt,.link-card,.share-link-card,.delta-card,.metric-tile,
.ap-prev-card,.trainer-card,.affiliate-card,.routine-choose-card,.progress-chart-card,
.opt-chip,.btn-primary,.btn-outline,.btn-danger,.dash-cta,.complete-workout-btn,.begin-workout-btn,.note-composer-btn,.copy-btn,
.add-routine-btn,.add-ex-to-routine-btn,.wc-add-ex-btn,.cp-det-btn,.rc-cal-addbtn,.rc-cal-export,.setting-opt,.template-del,
/* NOTHING HERE MAY DRAW A LINE RATHER THAN A BOX. A radius on an element
   whose border is on ONE edge curves that line up at both ends, so a divider
   reads as a shallow tray and a seam as two hooks. Drew found it on the
   Settings menu rows (2026-09-05: "are the divider lines curved?") after the
   same mistake had already been fixed once, on the profile sub-tabs, without
   anyone checking for siblings.
   Excluded for that reason: .tset-row and .exercise-card (bottom divider),
   .pkg-block and .thread-composer (top seam), .rest-timer-bar (a docked
   full-width bar), and the tab classes, whose underline is the same shape.
   tests/rounded-borders.test.js resolves radius and per-edge borders across
   every sheet in load order and fails on any new one. */
.picker-added-btn,.picker-add-btn,.ex-wmode-btn,.guide-open-btn,.share-action-btn,.font-chip,.combo-chip,.as-logo,
.as-custom input[type=color],.tw-btn,.admin-act-btn,.org-manage-btn,.mark-reviewed-btn,.fb-video-btn,
.swap-btn,.undo-swap-btn,.np-view-btn,.progress-story-btn,.wiki-link-btn,.wc-complete-btn,
.wc-block-complete-btn,.tm-softbtn,.tm-sheet-btn,.effort-btn,.conv-av,.cp-avatar,.review-avatar,.thread-dd-av,
.thread-recipient-av,.today-coach-ic,.more-ic,.td-newmsg-ic,.thread-rcard-ic,.rev-sum-ic{ border-radius:var(--radius-md); }
.cp-card-badge,.badge-active,.badge-dim,.badge-video,.badge-msg,.lib-tag,.rc-cal-tag,.expv-tag,.issue-kind,.pl-chip,.hub-chip,
.ss-chip,.cx-chip,.picker-active-chip,.picker-custom-pill,.lead-flag,.bill-state,.rc-cel-delta,.pwa-status-pill,
.admin-frozen-tag,.thread-day,.setup-tick,.npx-del,.bkw-rm,.np-day-tab,.review-elapsed,.msg-attach-chip,.equip-chip,
.ex-equip-chip,.tm-chip,.ap-prev-chip,.lib-in-program,.rc-cal-navb{ border-radius:var(--radius-sm); }
.habit-bar,.macro-bar-bg,.macro-bar-fill,.fc-progress-bar-track,.fc-progress-bar,.sk-line,.effort-slider,
.macro-cal-track,.more-sheet-handle{ border-radius:var(--radius-pill); }
/* Schedule: the month picker, the Week/Month toggle and Export each take the
   full width. These reach the MONTH-GRID calendar only — the trainer's strip
   (option A) renders none of these controls, and .rc-cal-head is not in the
   list because stacking it would put the strip's + button under its label. */
.rc-cal-month:not(.rc-cal-month--strip){ justify-content:space-between; width:100%; }
.rc-cal-navb{ width:40px; height:40px; }
.rc-cal-seg{ display:flex; width:100%; }
.rc-cal-seg button{ flex:1 1 0; }
.rc-cal-foot{ flex-direction:column; align-items:stretch; }
.rc-cal-export{ width:100%; }
/* Three cards in a two-column grid orphaned the third (Inquiries) — the exact
   shape the 2026-08-26 rebuild removed at five tiles. One row of three. */
.today-cards{ grid-template-columns:repeat(3,1fr); }
