/* TEXT SWEEP (2026-11-02). Loaded after dense-app.css. Pairs with public/gary-textsweep.js. Never changes what a control does. */
.ts-x{display:none!important}
.ts-ic{font-size:16px;line-height:1;font-style:normal}
button.ts-icon,a.ts-icon,.btn.ts-icon,.m-btn.ts-icon,.m-chip.ts-icon{min-width:34px;min-height:34px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;gap:0}
.tabs a.ts-icon,.tabs a{min-height:40px}
.ts-q,.gx .gx-q{background:transparent;color:var(--fg2,#556);border:1px solid var(--line,#bbb);min-width:28px;min-height:28px;width:28px;height:28px;padding:0;margin:0 0 0 4px;border-radius:14px;font-size:14px;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;letter-spacing:normal}
.ts-help{font-size:13px;line-height:1.4;padding:6px 8px;margin:4px 0;border:1px solid var(--line,#ccc);border-radius:8px;white-space:pre-line;letter-spacing:normal;word-spacing:normal}
.ts-listq{float:right;margin:2px 0}
/* every explainer note is behind its "?": the box is a small inline "?" until opened */
.gx{display:inline-block!important;width:auto!important;flex:none!important;margin:0 0 0 4px!important;vertical-align:middle}
.gx:has(.gx-p:not([hidden])){display:block!important;width:100%!important;flex:1 1 100%!important;margin:2px 0 6px!important}
/* normal letter-spacing in the app: the easy-reading mode keeps its font and line height, but the wide tracking made every line a wall (Ezekiel's screenshots 2026-11-02) */
body.sophia-dys #app,body.sophia-dys #app *,body.sophia-dys .gs-panel,body.sophia-dys .gs-panel *,body.sophia-dys .sf-sheet,body.sophia-dys .sf-sheet *{letter-spacing:normal!important;word-spacing:normal!important;max-width:none}
/* the floating Send button is an icon, 34px, never wider */
.sf-fab{min-width:34px!important;min-height:34px!important;width:34px;height:34px;padding:0!important;border-radius:17px}
/* Calls keypad: short, dense, nothing but keys and buttons */
.kp-hint{margin:2px 0}
/* Today leads with one way into Sophia: a round mic, icon only */
.f-talkrow{margin:6px 0}
.f-talk{width:40px;height:40px;min-width:40px;min-height:40px;padding:0;border-radius:20px;display:inline-flex;align-items:center;justify-content:center}
.f-talk .ts-ic{font-size:20px}
/* RESERVED SPOT for the floating Send icon (2026-11-02): a solid 40px strip sits directly above the tab bar and the icon lives on it, so it never covers text.
   Content scrolls behind the strip like it does behind the tab bar; nothing is hidden by a floating button any more. */
body.sf-on::after{content:"";position:fixed;left:0;right:0;bottom:calc(var(--ts-tab,46px) + env(safe-area-inset-bottom,0px));height:40px;background:var(--bg);border-top:1px solid var(--line);z-index:5;pointer-events:none}
.sf-fab{bottom:calc(var(--ts-tab,46px) + 3px + env(safe-area-inset-bottom,0px))!important;right:8px!important;z-index:6}
body.sf-on #app{padding-bottom:calc(150px + env(safe-area-inset-bottom,0px))}

/* WhatsApp "Chats list" rows (Inbox): initials circle, name over one-line message, time and a small badge at the right */
.wa-row{display:flex!important;align-items:center;gap:10px;padding:6px 8px;min-height:48px}
.wa-av{flex:none;width:36px;height:36px;border-radius:18px;background:var(--accent-soft,#e6e9f2);color:var(--ink);font:700 13px/36px system-ui,sans-serif;text-align:center}
.wa-mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.wa-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wa-msg{color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wa-end{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:3px;min-width:44px}
.wa-time{font-size:12px;color:var(--muted)}
.wa-badge{min-width:18px;height:18px;border-radius:9px;padding:0 5px;background:var(--accent,#2b6cb0);color:var(--accent-ink,#fff);font:700 11px/18px system-ui,sans-serif;text-align:center}
.wa-row.unread .wa-name{font-weight:800}

/* WhatsApp "Calls tab" rows (Recents, Contacts): avatar, name over a small direction/time line, phone icon at the right */
.wa-call{display:flex!important;align-items:center;gap:10px;min-height:46px}
.wa-ph{flex:none;font-size:18px;color:var(--accent,#2b6cb0)}

/* WhatsApp: circular initials on every list row, "Forward to" rows in the Send sheet, "Contact info" card, chat bubbles with the time inside, a slim input bar */
.m-lead{width:36px;height:36px;border-radius:50%}
.sf-pick{display:flex;align-items:center;gap:10px;min-height:44px}
.sf-pick .wa-tick{margin-left:auto;visibility:hidden;color:var(--accent,#2b6cb0);font-weight:700}
.sf-pick[aria-pressed=true] .wa-tick{visibility:visible}
.wa-contact{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center}
.wa-big{width:64px;height:64px;border-radius:32px;background:var(--accent-soft,#e6e9f2);color:var(--ink);font:700 22px/64px system-ui,sans-serif;text-align:center}
.wa-cname{font-size:16px}.wa-cnum{font-size:14px}.wa-cmeta{font-size:13px;color:var(--muted)}
.wa-acts{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center;margin-top:6px}
.wa-round{width:40px;height:40px;border-radius:20px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--surface);color:var(--accent,#2b6cb0);text-decoration:none;font-size:18px}
.lc-b{display:flex;flex-direction:column}.lc-b small{order:2;text-align:right;margin:2px 0 0}
.lc-comp textarea{min-height:34px;height:34px;border-radius:17px;padding:6px 12px}

/* (6) section headings: sentence case, normal tracking, everywhere in the app (no wide-tracked uppercase) */
#app h1,#app h2,#app h3,.gv h2,.m-sec h2,.m-strip small,.sf-h,.gs-title,#app small,#app .m-muted{text-transform:none!important;letter-spacing:normal!important}
/* More: one label and a chevron per row */
.m-row.ts-nav::after{content:"\203A";margin-left:auto;color:var(--muted);font-size:18px;flex:none;padding-left:6px}
.wa-name{white-space:normal!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.wa-badge{min-width:20px;height:20px;border-radius:10px;font:700 12px/20px system-ui,sans-serif;text-align:center;padding:0 5px;background:var(--accent,#2b6cb0);color:var(--accent-ink,#fff)}
.wa-badge.urgent{background:var(--bad,#a1281d)}

.sl-niche,#app .sl-niche{text-transform:none!important;letter-spacing:normal!important}

/* WhatsApp rows are one line: a name, one grey line, nothing wraps */
.m-row .t b,.m-row .t span,.m-row .t.wrap b,.m-row .t.wrap span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.m-row .t{min-width:0;flex:1}
.wa-name{-webkit-line-clamp:1!important}
.wa-status{display:inline-block;width:10px;height:10px;border-radius:5px;flex:none}
.ts-empty-ic{display:block;font-size:34px;line-height:1.2;color:var(--muted);text-align:center;padding:18px 0}
.kp-dial{min-width:34px;margin-left:auto}
.kp-pad[hidden]{display:none}

/* empty boxes shrink to an icon (and the one action, if there is one) */
.m-empty{padding:6px 8px}
.ts-empty-ic{font-size:26px;padding:4px 0}
.empty{padding:10px 8px}
