/* Built by app/utils/bundles.py from the files named below. Edit those; never this file. */
/* ==== css/aiq-phone.css ==== */
/* Phone layout, style A (user, 2026-10-19; static/proto/mobile-app-drafts.html, after the PostHog iOS app).
   Phones only (≤767px) and only with html.aiq-phone (set by _phone.html, ?phone=on while trialled). Desktop unchanged.
   The 4px-corner rule is waived here: phone cards are 18px (var(--ph-r)), buttons are pills.
   `html.aiq-phone.aiq-phone:root[data-theme]` outranks _shell.html's `html.aiq-shell:root[data-theme]` rules. */

/* the tab bar exists in every page's markup; it only shows in phone mode. Its desktop `display: none` sits inline in
   _phone.html: this file loads with media="(max-width: 767px)" so desktop never waits on it. */

@media (max-width: 767px) {
  html.aiq-phone {
    --ph-bed: #FFFFFF; --ph-card: #FFFFFF; --ph-edge: #E6E8EE; --ph-ink: #0F1115; --ph-ink2: #3F4656; --ph-mut: #727C94; --ph-faint: #A0A9C0;
    --ph-line: #E6E8EE; --ph-acc: #455DDC; --ph-tint: #EEF1FB; --ph-bar: rgba(255,255,255,.86);
    --ph-pos: #0d8a66; --ph-neg: #c8203f; --ph-r: 18px; --ph-r-sm: 10px; --ph-r-xs: 8px; --ph-top: 52px; --ph-shadow: 0 4px 14px rgba(15,17,21,.06);
    /* the shell's page colour follows */
    --sh-bed: var(--ph-bed);
  }
  html.aiq-phone[data-theme="dark"] {
    --ph-bed: #161616; --ph-card: #161616; --ph-edge: #2E2E2E; --ph-ink: #F1F2F4; --ph-ink2: #C9CDD6; --ph-mut: #9AA2B4; --ph-faint: #6B7286;
    --ph-line: #333333; --ph-tint: #2A2F45; --ph-bar: rgba(40,40,40,.86); --ph-pos: #43D1A7; --ph-neg: #F73463;
    --ph-shadow: none;
  }
  /* the shell's page colour follows in both themes (_shell.html sets --sh-bed per theme at higher specificity) */
  html.aiq-phone.aiq-phone.aiq-shell[data-theme] { --sh-bed: var(--ph-bed); }

  /* page + top bar sit on the grey bed (no midnight band, no rule) */
  html.aiq-phone.aiq-phone:root[data-theme], html.aiq-phone.aiq-phone:root[data-theme] body,
  html.aiq-phone.aiq-phone:root[data-theme] .app-shell > main { background: var(--ph-bed) !important; }
  html.aiq-phone.aiq-phone:root[data-theme] #top-nav { background: var(--ph-bed) !important; border-bottom: 0 !important;
    box-shadow: none !important; height: var(--ph-top) !important; }
  html.aiq-phone.aiq-phone:root[data-theme] .app-shell { padding-top: var(--ph-top) !important; }

  /* the drawer is replaced by Explore */
  html.aiq-phone #sb-mob-btn, html.aiq-phone #theme-toggle { display: none !important; }
  html.aiq-phone #nav-search-wrap { padding-left: 2px !important; }

  /* search = a round field, upgrade = a round button */
  html.aiq-phone.aiq-phone:root[data-theme] #nav-global-search { height: 38px !important; border-radius: 999px !important;
    background: rgba(118,118,128,.12) !important; border: 0 !important; box-shadow: none !important; padding: 0 16px !important; width: 100%; }
  html.aiq-phone.aiq-phone:root[data-theme] #nav-search-input { color: var(--ph-ink) !important; font-size: 16px !important; }
  html.aiq-phone.aiq-phone:root[data-theme] #nav-search-input::placeholder { color: var(--ph-mut) !important; }
  html.aiq-phone.aiq-phone:root[data-theme] #nav-global-search > svg { color: var(--ph-mut) !important; width: 16px; height: 16px; }
  html.aiq-phone.aiq-phone:root[data-theme] #nav-upgrade { height: 38px; border-radius: 999px !important; padding: 0 15px !important;
    display: inline-flex; align-items: center; }
  html.aiq-phone.aiq-phone:root[data-theme] #top-nav .trial-pill { border-radius: 999px !important; }

  /* room under the page for the tab bar */
  html.aiq-phone .app-shell > main { padding-bottom: calc(108px + env(safe-area-inset-bottom)) !important; }

  /* ── the tab bar ── */
  html.aiq-phone #aiq-ptabs { display: flex; position: fixed; z-index: 150; left: 10px; right: 10px;
    bottom: calc(12px + env(safe-area-inset-bottom)); height: 64px; padding: 5px; border-radius: 999px;
    background: var(--ph-bar); backdrop-filter: blur(18px) saturate(1.6); -webkit-backdrop-filter: blur(18px) saturate(1.6);
    box-shadow: 0 6px 24px rgba(15,17,21,.12); font-family: 'Inter', sans-serif; }
  html.aiq-phone[data-theme="dark"] #aiq-ptabs { box-shadow: 0 6px 24px rgba(0,0,0,.45); border: 1px solid rgba(255,255,255,.06); }
  html.aiq-phone #aiq-ptabs a { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 2px; border-radius: 999px; color: var(--ph-ink); text-decoration: none; font-size: 10.5px; font-weight: 500;
    -webkit-tap-highlight-color: transparent; }
  html.aiq-phone #aiq-ptabs a i { font-size: 22px; line-height: 1; }
  /* the open tab by colour only, iOS-style (user, 2026-10-19: didn't like the tinted bubble behind it) */
  html.aiq-phone #aiq-ptabs a { color: var(--ph-mut); }
  html.aiq-phone #aiq-ptabs a.on { color: var(--ph-acc); font-weight: 600; }
  html.aiq-phone.sb-drawer-open #aiq-ptabs { display: none; }
  /* things pinned to the bottom of the screen clear the bar */
  html.aiq-phone #aiq-toast, html.aiq-phone .aiq-toast { bottom: calc(92px + env(safe-area-inset-bottom)) !important; }

  /* ── shared phone pieces for pages built in this style (Home, Explore, …) ── */
  html.aiq-phone .aiq-bigt { font-size: 34px; font-weight: 700; letter-spacing: -.02em; margin: 6px 2px 10px; color: var(--ph-ink); }
}

@media (max-width: 767px) {
  /* the admin's Pro / Free / Signed out switch squeezed the search to one word; it stays on desktop */
  html.aiq-phone #top-nav #aiq-viewas { display: none !important; }
}

/* ── Stock page (/financials/<t>): the most important page on a phone (user, 2026-10-19). Header + section row sit on
   the bed with no frame, sections are pills, every tile is a borderless 18px card. Selector list as in
   financials/_tiles.html, one id/class more so these win. ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] #fin-top { background: transparent !important; border: 0 !important; box-shadow: none !important;
    border-radius: 0 !important; margin: 0 0 6px !important; overflow: visible !important; }
  html.aiq-phone.aiq-phone[data-theme] #company-header, html.aiq-phone.aiq-phone[data-theme] #ch-inner { background: transparent !important; }
  /* header (user, 2026-10-19, after header drafts 1–5 in static/proto/fin-header-phone-drafts.html: liked 5's plain
     "Apple and then the price", 3 too; Mkt cap / EV / Today boxes "take up too much space"): one line — small logo,
     name, ticker …… price (day change small under it), then the watchlist star top right ("keep the little star
     button"). Notes / alerts / exchange · sector / Mkt cap · EV stay on desktop. */
  html.aiq-phone.aiq-phone[data-theme] #fin-top { padding: 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] #ch-inner { display: flex !important; flex-wrap: nowrap !important; align-items: center !important;
    gap: 10px !important; padding: 6px 0 8px !important; min-height: 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] #ch-inner .ch-id { display: flex !important; align-items: center !important; gap: 7px !important; flex: 1 1 auto !important; min-width: 0; }
  html.aiq-phone.aiq-phone[data-theme] #ch-inner :is(.ch-logo, .ch-mono) { width: 28px !important; height: 28px !important; padding: 3px !important;
    margin: 0 !important; border-radius: var(--ph-r-xs) !important; flex: none; }
  html.aiq-phone.aiq-phone[data-theme] #ch-inner .ch-name { font-size: 16px !important; font-weight: 650 !important; color: var(--ph-ink) !important; min-width: 0;
    white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; display: block !important; }
  html.aiq-phone.aiq-phone[data-theme] #ch-inner .ch-tkr { flex: none; background: none !important; padding: 0 !important; font: 500 12px/1 Inter, sans-serif !important;
    color: var(--ph-mut) !important; }
  html.aiq-phone.aiq-phone[data-theme] #ch-inner :is(.ch-meta, .ch-vsep, .ch-when) { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] #ch-inner .ch-quote { flex: none !important; align-items: flex-end !important; gap: 3px !important; margin: 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] #ch-inner .ch-price { font-size: 17px !important; font-weight: 700 !important; letter-spacing: -.01em; color: var(--ph-ink) !important; }
  html.aiq-phone.aiq-phone[data-theme] #ch-inner .ch-chg { font-size: 11.5px !important; font-weight: 600 !important; }
  /* the star: add to My stocks (its pop-up is the desktop one) */
  html.aiq-phone.aiq-phone[data-theme] #ch-inner #fin-acts { display: flex !important; order: 9; flex: none !important; width: auto !important; margin: 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] #fin-acts .fa-btn:not([data-fa="wl"]) { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] #fin-acts .fa-btn[data-fa="wl"] { width: 38px !important; height: 38px !important; padding: 0 !important; justify-content: center;
    border-radius: 999px !important; border: 0 !important; background: rgba(118,118,128,.12) !important; box-shadow: none !important; }
  html.aiq-phone.aiq-phone[data-theme] #fin-acts .fa-btn[data-fa="wl"] :is(.fa-lbl, .n) { display: none !important; }
  /* Overview's Price performance: no repeated price and no range-change line (user, 2026-10-19: "get rid of the
     $81.70 and % change past year") — legend, range toggle, chart */
  html.aiq-phone.aiq-phone[data-theme] #tab-overview .ovs-px { display: none !important; }


  /* tiles */
  html.aiq-phone.aiq-phone[data-theme] main :is(#tab-overview .card, .card, .fx-card, .stx-card, .cmp-card, .cap-card, .cm-card,
      .lkl-promo, .stmt-seg-chartcard, .stmt-table-wrap, .stmt-lock-card, .kd-card) {
    background: var(--ph-card) !important; border: 1px solid var(--ph-edge) !important; box-shadow: none !important; border-radius: var(--ph-r) !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(#tab-overview .ovs-grid, .ovs-grid, .ovs-main, .ovs-side) { gap: 12px !important; }
  html.aiq-phone.aiq-phone[data-theme] main .stmt-table-wrap { overflow: hidden !important; }
  /* Charts tab: key-figures panel, toolbar, chart tiles, "add chart" */
  html.aiq-phone.aiq-phone[data-theme] main :is(#ch-kpis, #ch-bar, .cg-card, .cg-add) {
    border-radius: var(--ph-r) !important; border-color: var(--ph-edge) !important; box-shadow: none !important; overflow: hidden; }
  html.aiq-phone.aiq-phone[data-theme] main :is(#ch-kpis, #ch-bar, .cg-card) { background: var(--ph-card) !important; }
  html.aiq-phone.aiq-phone[data-theme] main .cg-add { border: 1.5px dashed var(--ph-line) !important; }
  /* statement controls: Annual | Quarterly and Options as pills */
  html.aiq-phone.aiq-phone[data-theme] main :is(.stmt-seg, .stmt-dd) { border-radius: 999px !important; }
  html.aiq-phone.aiq-phone[data-theme] main .stmt-seg > * { border-radius: 999px !important; }
  /* boxes inside a tile (Comparables fair value, Dividends notes / projection) */
  html.aiq-phone.aiq-phone[data-theme] main :is(.cmp-fair, .dv-note, .dv-proj-out) { border-radius: var(--ph-r-sm) !important; }
}

/* ── My stocks (lists page + each list's Terminal, aiq-terminal.css): borderless 18px cards on the bed, a large title,
   round buttons. ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] .tm { --tm-card: var(--ph-card); --tm-line: var(--ph-line); --tm-ink: var(--ph-ink); --tm-blue: var(--ph-acc); }
  html.aiq-phone.aiq-phone[data-theme] .tm .tm-c, html.aiq-phone.aiq-phone[data-theme] .tm .tm-ghost {
    border-radius: var(--ph-r) !important; border-color: var(--ph-edge) !important; box-shadow: none !important; }
  html.aiq-phone.aiq-phone[data-theme] .tm .tm-ghost { border: 1.5px dashed var(--ph-line) !important; background: transparent !important; }
  html.aiq-phone.aiq-phone[data-theme] .tm .tm-hbar { background: transparent !important; border: 0 !important; box-shadow: none !important;
    padding: 6px 2px 4px !important; }
  html.aiq-phone.aiq-phone[data-theme] .tm .tm-hbar-ic { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] .tm h1 { font-size: 34px !important; font-weight: 700 !important; letter-spacing: -.02em !important; }
  html.aiq-phone.aiq-phone[data-theme] .tm .tm-hbar-x { background: var(--ph-card) !important; border: 1px solid var(--ph-edge) !important; border-radius: var(--ph-r) !important; padding: 12px 14px !important; }
  html.aiq-phone.aiq-phone[data-theme] .tm .tm-hbar-md { margin-left: 0; }   /* wraps to its own line under the facts */
  html.aiq-phone.aiq-phone[data-theme] .tm .tm-sec { font-size: 13px; color: var(--ph-mut); margin: 20px 4px 8px; }
  html.aiq-phone.aiq-phone[data-theme] .tm .tm-grid { gap: 12px; }
  html.aiq-phone.aiq-phone[data-theme] .tm :is(.tm-btn, .tm-seg, .tm-pl, .tm-chip) { border-radius: 999px !important; }
  html.aiq-phone.aiq-phone[data-theme] .tm .tm-seg button { border-radius: 999px !important; }
  html.aiq-phone.aiq-phone[data-theme] .tm .tm-btn { height: 38px; padding: 0 15px; }
}

/* ── Full-height pages: stop above the tab bar instead of running under it ── */
@media (max-width: 767px) {
  /* down to the top of the tab bar (user, 2026-10-19: "the screener table is too small, it should go down more") */
  html.aiq-phone .sc-layout { height: calc(100dvh - var(--ph-top) - 78px - env(safe-area-inset-bottom)) !important; }
  html.aiq-phone.aiq-phone[data-theme] .sc-results-pane { margin-bottom: 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] .app-shell > main:has(.sc-layout) { padding-bottom: 0 !important; }
  /* Table | Plot: the plot is a desktop tool ("the table/plot look awkward on mobile"); the switch only shows if a
     ?view=plot link opened it, so there's a way back */
  html.aiq-phone.aiq-phone[data-theme] .sc-results-pane:not(.plot-mode) .sc-view-switch { display: none !important; }
  /* Workspace's own bottom dock (+ Add card, layout, Lock, Save) sits just above the tab bar */
  html.aiq-phone .ws-dock { bottom: calc(86px + env(safe-area-inset-bottom)) !important; }
  /* it was 475px wide on a 390px screen: keep it inside, its buttons scroll */
  html.aiq-phone .ws-dock { max-width: calc(100vw - 16px); overflow-x: auto; scrollbar-width: none; }
}

/* ── Every page: the house kit (aiq-controls.css, aiq-pop.css, aiq-table-panel.css) in the phone style ── */
@media (max-width: 767px) {
  /* large page titles (app pages say 23px; phones get the iOS large title) */
  html.aiq-phone.aiq-phone .app-shell > main h1:not(#ai-greet):not(.rx-company):not(.aiq-dlg h1) {
    font-size: 30px !important; font-weight: 700 !important; letter-spacing: -.02em !important; line-height: 1.15 !important; }

  /* toggles: a round track with a white pill on the active option */
  html.aiq-phone.aiq-phone[data-theme] .aiq-seg { border-radius: 999px !important; height: 34px; padding: 3px; border: 0;
    background: rgba(118,118,128,.12); }
  html.aiq-phone.aiq-phone[data-theme] .aiq-seg > button, html.aiq-phone.aiq-phone[data-theme] .aiq-seg > a {
    border-radius: 999px !important; padding: 0 12px; font-size: 13px; }
  html.aiq-phone.aiq-phone[data-theme] .aiq-seg > .on, html.aiq-phone.aiq-phone[data-theme] .aiq-seg > [aria-pressed="true"] {
    background: var(--ph-card); color: var(--ph-ink); box-shadow: 0 1px 3px rgba(15,17,21,.12); }

  /* section tabs: a scrolling row of pills, the open one white */
  html.aiq-phone.aiq-phone[data-theme] .aiq-utabs { gap: 4px; border-bottom: 0; padding: 2px 0 4px; }
  html.aiq-phone.aiq-phone[data-theme] .aiq-utabs > a, html.aiq-phone.aiq-phone[data-theme] .aiq-utabs > button {
    padding: 0 14px; height: 36px; display: inline-flex; align-items: center; border-radius: 999px; border-bottom: 0; margin: 0;
    font-size: 14px; font-weight: 600; color: var(--ph-mut); }
  html.aiq-phone.aiq-phone[data-theme] .aiq-utabs > .on, html.aiq-phone.aiq-phone[data-theme] .aiq-utabs > [aria-selected="true"] {
    background: var(--ph-card); color: var(--ph-ink); box-shadow: var(--ph-shadow); }

  /* buttons: pills */
  html.aiq-phone.aiq-phone[data-theme] .aiq-btn { border-radius: 999px !important; min-height: 38px; padding-left: 16px; padding-right: 16px; }

  /* pop-ups: rounder sheets and menus */
  html.aiq-phone.aiq-phone[data-theme] .aiq-dlg { border-radius: var(--ph-r) !important; }
  html.aiq-phone.aiq-phone[data-theme] :is(.aiq-menu, .aiq-pop) { border-radius: 14px !important; }

  /* big-table pages (toolbar + table in one panel): a rounded card, no outline */
  html.aiq-phone.aiq-phone[data-theme] { --tp-card: var(--ph-card); --tp-line: transparent; }
  /* your own lists' tabs (screens, watchlists, Gov. contracts views): pills */
  html.aiq-phone.aiq-phone[data-theme] :is(#scx-tabs, .wl-kf .wl-kf-tabs, .gm-tabs) { box-shadow: none !important; gap: 4px; }
  html.aiq-phone.aiq-phone[data-theme] :is(.scx-tab, .wl-kf .wl-kf-tab, .gm-tab) { border-radius: 999px !important; border: 0 !important;
    box-shadow: none !important; padding-left: 14px !important; padding-right: 14px !important; }
  html.aiq-phone.aiq-phone[data-theme] :is(.scx-tab.on, .wl-kf .wl-kf-tab.on, .gm-tab.on) { background: var(--ph-card) !important;
    box-shadow: var(--ph-shadow) !important; }
  html.aiq-phone.aiq-phone[data-theme] :is(#scx-bar, .wl-kf .wl-tool, .ins-bar, .cg-bar:not(#ch-bar), .gm-bar) {
    border-radius: var(--ph-r) var(--ph-r) 0 0 !important; border-color: var(--ph-edge) !important; }
  html.aiq-phone.aiq-phone[data-theme] :is(.sc-results-pane, .wl-kf .wl-main, .ins-tbl-wrap, .cg-main-wrap .cg-tbl-wrap, .gm-scrollx) {
    border-radius: 0 0 var(--ph-r) var(--ph-r) !important; border-color: transparent !important; }
  html.aiq-phone.aiq-phone[data-theme] .ins-foot { border-radius: 0 0 var(--ph-r) var(--ph-r) !important; border-color: transparent !important; }
  html.aiq-phone.aiq-phone[data-theme] .gm-card { border-radius: var(--ph-r) !important; border-color: var(--ph-edge) !important; }
}

/* ── Markets: chapter row and card switches as pills ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] .mk3-cnav { border-bottom: 0 !important; box-shadow: none !important; background: var(--ph-bed) !important; top: var(--ph-top) !important; }
  html.aiq-phone.aiq-phone[data-theme] .mk3-cnav-in { gap: 4px !important; height: auto !important; padding: 6px 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] .mk3-cnav a.on::after { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] .mk3-cnav a { border-radius: 999px !important; border-bottom: 0 !important; box-shadow: none !important;
    padding: 8px 14px !important; margin: 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] .mk3-cnav a b { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] .mk3-cnav a.on { background: var(--ph-card) !important; color: var(--ph-ink) !important; box-shadow: var(--ph-shadow) !important; }
  html.aiq-phone.aiq-phone[data-theme] .mk3-wrap :is(.seg, .tabs) { border-radius: 999px !important; }
  html.aiq-phone.aiq-phone[data-theme] .mk3-wrap :is(.seg, .tabs) > button { border-radius: 999px !important; }
}

/* ── Fields and plain buttons everywhere: softer 10px corners. Tabs, toggles and menu items are left alone; a pill or
   circle set elsewhere in this file uses !important so it still wins. ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] main :is(select, textarea, input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color])) {
    border-radius: var(--ph-r-sm) !important; }
  html.aiq-phone.aiq-phone[data-theme] main button:not(.aiq-seg > *):not(.aiq-utabs > *):not([class*="tab"]):not([role="tab"]):not([role="menuitem"]):not(.aiq-mi) {
    border-radius: var(--ph-r-sm); }
}

/* ── Page panels that aren't one of the house classes (found by walking every page at 390px, 2026-10-19) ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] main :is(.si-list, .si-card, .ec-col, .ec-panel, .scx-card, .gm-card, .aqp-card, .rp-card, .ai-comp,
      .ph-mtbl-wrap, .xl-card, .sp-hero, .sp-card, .st-card, .st-preview-card, .gs-card, .ws-card) {
    border-radius: var(--ph-r) !important; border-color: var(--ph-edge) !important; box-shadow: none !important; overflow: hidden; }
  /* Superinvestors: the investor panel is three stacked pieces — round the outer corners only */
  html.aiq-phone.aiq-phone[data-theme] main .si-id-row.si-panel { border-radius: var(--ph-r) var(--ph-r) 0 0 !important; border-color: var(--ph-edge) !important; }
  html.aiq-phone.aiq-phone[data-theme] main .si-panel.rounded-b-md { border-radius: 0 0 var(--ph-r) var(--ph-r) !important; border-color: var(--ph-edge) !important; }
  html.aiq-phone.aiq-phone[data-theme] main .si-subtabs.si-panel { border-color: var(--ph-edge) !important; }
  /* Insiders: the white page panel goes; its toolbar + table make the card */
  html.aiq-phone.aiq-phone[data-theme] main .ins-panel { background: transparent !important; border: 0 !important; box-shadow: none !important; }
}

/* ── Tab-bar pop-ups (user, 2026-10-20, draft E of six: the chip row "feels poorly designed and not a great layout for a
   mobile app"; "when you click on financials at the bottom there can be a pop-up", then "the same sort of pop up style
   for the explore"). Tapping Financials on a stock page, or Explore anywhere, raises a frosted card of tiles out of the
   tab bar (_phone_tabbar.html opens it; .ph-pop markup in financials/index.html and _phone_tabbar.html). On a stock page
   the Financials tab names the open page ("Income ⌃"). No row of chips at the top of the stock page any more. ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] #fin-tabs-wrap,
  html.aiq-phone.aiq-phone[data-theme] #ch-inner .ch-vsep { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] #statements-inner.stmt-v2 #stmt-unit-note { font-size: 12px !important; color: var(--ph-mut) !important; }

  html.aiq-phone #aiq-ptabs a.ph-pop-tab span { display: inline-flex; align-items: center; gap: 2px; max-width: 74px; white-space: nowrap; }
  html.aiq-phone #aiq-ptabs a.ph-pop-tab span::after { content: ""; flex: none; width: 4px; height: 4px; margin: 1px 0 0 2px;
    border-left: 1.4px solid currentColor; border-top: 1.4px solid currentColor; transform: rotate(45deg); }
  html.aiq-phone #aiq-ptabs a.ph-pop-tab.is-up span::after { transform: rotate(225deg); margin-top: -3px; }
  html.aiq-phone #aiq-ptabs a.is-up { color: var(--ph-acc); }

  html.aiq-phone .ph-pop { position: fixed; inset: 0; z-index: 148; }     /* under the tab bar (150): a second tap closes */
  html.aiq-phone .ph-pop.open { display: block; }      /* closed = the hidden attribute (desktop never shows it) */
  html.aiq-phone .ph-pop-dim { position: absolute; inset: 0; background: rgba(0,0,0,.22); animation: phPopFade .18s ease; }
  html.aiq-phone .ph-pop-card { position: absolute; left: 10px; right: 10px; bottom: calc(84px + env(safe-area-inset-bottom)); max-height: 64vh;
    overflow-y: auto; overscroll-behavior: contain; padding: 6px 10px 12px; border-radius: 24px; background: var(--ph-bar);
    backdrop-filter: blur(22px) saturate(1.7); -webkit-backdrop-filter: blur(22px) saturate(1.7); box-shadow: 0 10px 40px rgba(15,17,21,.18);
    font-family: Inter, sans-serif; transform-origin: 50% 100%; animation: phPopIn .26s cubic-bezier(.22,1,.36,1); }
  html.aiq-phone[data-theme="dark"] .ph-pop-card { box-shadow: 0 10px 40px rgba(0,0,0,.55); border: 1px solid rgba(255,255,255,.07); }
  html.aiq-phone .ph-pop-h { padding: 10px 6px 6px; font: 600 12px Inter, sans-serif; color: var(--ph-mut); }
  html.aiq-phone .ph-pop-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 6px; }
  html.aiq-phone .ph-pop-grid > :is(a, button) { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; height: 58px;
    padding: 0 4px; border: 0; border-radius: 14px; background: rgba(118,118,128,.1); color: var(--ph-ink); font: 500 12.5px/1.15 Inter, sans-serif;
    text-align: center; text-decoration: none; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone .ph-pop-grid > * i { font-size: 18px; color: var(--ph-mut); }
  html.aiq-phone .ph-pop-grid > .on { background: var(--ph-acc); color: #fff; font-weight: 600; }
  html.aiq-phone .ph-pop-grid > .on i { color: #fff; }
  html.aiq-phone .ph-pop-grid > :active { transform: scale(.96); }
  @keyframes phPopIn { from { opacity: 0; transform: translateY(14px) scale(.94); } }
  @keyframes phPopFade { from { opacity: 0; } }
}

/* ── Core only (user, 2026-10-19: "the mobile layout should generally be simpler … focus on the core"). Picked cuts:
   toolbar extras (save / copy / download / export / configure, watchlist alerts bell, the top bar's Help), desktop-only
   tools in Explore (Workspace, Excel model, Reports), and the chart page's advanced controls (indicators, setups,
   watchlist strip). Desktop keeps all of it. ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] :is(#scx-save, #scx-dup, #scx-csv, .wl-kf-hbtn, #ins-csv, #ins-cbtn, #cg-dl, .gm-btn,
      #top-nav #aiq-help, .ex-tile.ex-desk, #btn-add, #setup-pick, #setup-btn, #setup-save) { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] :is(#strip, .strip):has(#wl-pick) { display: none !important; }
}

/* ── Big tables edge to edge (user, 2026-10-19: "the watch list or maybe the screen(er) should go edge to edge on mobile
   as we're trying to maintain space"). Toolbar + table span the screen, square ends, hairlines above and below; titles
   and tabs keep their side margin. Same for Insiders / Congress / Gov. contracts so the list pages match. ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] :is(#scx-bar, .sc-results-pane, .wl-kf .wl-tool, .wl-kf .wl-main) {
    margin-left: 0 !important; margin-right: 0 !important; border-radius: 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] :is(#scx-bar, .wl-kf .wl-tool) { border-top: 1px solid var(--ph-line) !important; }
  html.aiq-phone.aiq-phone[data-theme] :is(.sc-results-pane, .wl-kf .wl-main) { border-bottom: 1px solid var(--ph-line) !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.ins-bar, .ins-tbl-wrap, .ins-foot, .cg-bar:not(#ch-bar), .cg-main-wrap .cg-tbl-wrap, .gm-card) {
    margin-left: 0 !important; margin-right: 0 !important; border-radius: 0 !important; }
}

/* ── Less chrome on the tab pages (user, 2026-10-19): no "Home" / "My stocks" / "Explore" / "Account" titles — the tab
   bar already says where you are. (Home's squeezed S&P line was removed from phone/today.html.) ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] .app-shell > main :is(h1.aiq-bigt, .tm .tm-hbar-t) { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] .tm .tm-hbar { padding-top: 0 !important; margin-bottom: 12px !important; }
  html.aiq-phone.aiq-phone[data-theme] :is(.hm, .ex, .ac) > .hm-h:first-of-type,
  html.aiq-phone.aiq-phone[data-theme] :is(.hm, .ex, .ac) > :is(.hm-h, .ex-h, .ac-h):first-of-type { margin-top: 4px !important; }
}

/* ── Every tab row = the stock page's chips (user, 2026-10-19: "all of these 'tab' options should be in the same style as
   the financials tab"): grey chips, the open one filled dark (dark theme: light fill). Wins over the pill rules above.
   Rows: house section tabs (.aiq-utabs), your lists' tabs (screens, watchlists, Gov. contracts views), Markets' chapters,
   Settings' sections, Superinvestors' sub-tabs (Portfolios' .ph-tabs: aiq-phone-people.css). ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] :is(.aiq-utabs, #scx-tabs, .wl-kf .wl-kf-tabs, .gm-tabs, .mk3-cnav-in, .st-tabs, .si-subtabs) {
    display: flex !important; gap: 8px !important; border-bottom: 0 !important; box-shadow: none !important; overflow-x: auto; scrollbar-width: none; }
  html.aiq-phone.aiq-phone[data-theme] :is(.aiq-utabs > a, .aiq-utabs > button, .scx-tab, .wl-kf .wl-kf-tab, .gm-tab, .mk3-cnav a, .st-tabs > a, .si-subtab) {
    flex: none !important; height: 38px !important; padding: 0 15px !important; margin: 0 !important; display: inline-flex !important; align-items: center !important;
    border: 0 !important; border-radius: var(--ph-r-sm) !important; box-shadow: none !important; background: rgba(118,118,128,.12) !important;
    color: var(--ph-ink) !important; font: 500 15px Inter, sans-serif !important; white-space: nowrap !important; }
  html.aiq-phone.aiq-phone[data-theme] :is(.aiq-utabs > .on, .aiq-utabs > [aria-selected="true"], .scx-tab.on, .wl-kf .wl-kf-tab.on, .gm-tab.on, .mk3-cnav a.on,
      .st-tabs > .on, .st-tabs > [aria-current], .si-subtab.si-subtab-active) {
    background: #0F1115 !important; color: #fff !important; font-weight: 600 !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] :is(.aiq-utabs > .on, .aiq-utabs > [aria-selected="true"], .scx-tab.on, .wl-kf .wl-kf-tab.on, .gm-tab.on, .mk3-cnav a.on,
      .st-tabs > .on, .st-tabs > [aria-current], .si-subtab.si-subtab-active) {
    background: #F1F2F4 !important; color: #0F1115 !important; }
  html.aiq-phone.aiq-phone[data-theme] :is(.scx-tab, .wl-kf .wl-kf-tab) :is(svg, i) { color: inherit !important; }
}

/* ── The affiliate "Try Pro free" pill (_ref_offer.html) sat on the tab bar; then the user (2026-10-19): "get rid of try pro
   free in the bottom right" — hidden on phones (the offer still shows on pricing / sign-up). ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] :is(.aiq-ro-pill, .aiq-ro-panel) { display: none !important; }
}

/* ── Search as a bubble (user, 2026-10-19: "the search function doesn't need to be a full bar rather a small bubble or
   something in the top right"): the top bar is the Investingly mark on the left, then (Upgrade) and a round search
   button on the right; tapping it opens the full field over the bar (:focus-within), and it folds back on blur.
   The input fills the bubble invisibly so one tap focuses it and brings up the keyboard. ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone:root[data-theme] #top-nav > div { position: relative; gap: 8px !important; padding: 0 12px !important; }
  html.aiq-phone.aiq-phone:root[data-theme] #top-nav > div::before { content: ""; order: 0; flex: none; width: 30px; height: 30px; margin-right: auto;
    border-radius: var(--ph-r-xs); background: #0F1115 center / 18px no-repeat
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='4' y='12' width='5' height='9' rx='2.5' fill='%23fff'/%3E%3Crect x='11' y='6' width='5' height='15' rx='2.5' fill='%23fff'/%3E%3Ccircle cx='19.5' cy='5.5' r='2.6' fill='%2343D1A7'/%3E%3C/svg%3E"); }
  html.aiq-phone.aiq-phone:root[data-theme="dark"] #top-nav > div::before { background-color: #2A2F45; }
  html.aiq-phone.aiq-phone:root[data-theme] #top-nav > div > .shrink-0 { order: 1; }
  html.aiq-phone.aiq-phone:root[data-theme] #nav-search-wrap { order: 2; flex: none !important; padding: 0 !important; }
  html.aiq-phone.aiq-phone:root[data-theme] #nav-global-search { position: relative; width: 38px !important; height: 38px !important; padding: 0 !important;
    justify-content: center; border-radius: 999px !important; }
  html.aiq-phone.aiq-phone:root[data-theme] #nav-global-search > svg { position: relative; z-index: 0; width: 17px !important; height: 17px !important;
    color: var(--ph-ink) !important; pointer-events: none; }
  html.aiq-phone.aiq-phone:root[data-theme] #nav-search-input { position: absolute; inset: 0; width: 100% !important; padding: 0 !important; opacity: 0;
    cursor: pointer; }
  /* open: the field spans the bar */
  html.aiq-phone.aiq-phone:root[data-theme] #nav-global-search:focus-within { position: absolute; left: 12px; right: 12px; top: 50%; transform: translateY(-50%);
    width: auto !important; z-index: 5; justify-content: flex-start; padding: 0 14px !important; background: var(--ph-card) !important;
    box-shadow: 0 0 0 1px var(--ph-edge), 0 6px 20px rgba(15,17,21,.12) !important; }
  html.aiq-phone.aiq-phone:root[data-theme] #nav-global-search:focus-within #nav-search-input { position: static; opacity: 1; padding-left: 10px !important; cursor: text; }
}

/* The top bar slides away while reading down and comes back on the first scroll up (user, 2026-10-20: it "takes up too
   much space at the top"). _phone.html's listener toggles html.ph-away / html.ph-back. The sticky rows that sit under
   it (Markets nav, Getting started jump bar) move up with it. Keyframes, not a transition: a
   transition on a class-swapped transform can stick in its old state. */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone.ph-away:root[data-theme] :is(#top-nav, .mk3-cnav, .gs-jump) { animation: phAway .28s cubic-bezier(.4,0,.2,1) forwards; }
  html.aiq-phone.aiq-phone.ph-back:root[data-theme] :is(#top-nav, .mk3-cnav, .gs-jump) { animation: phBack .32s cubic-bezier(.22,1,.36,1); }
  @keyframes phAway { to { transform: translateY(calc(-1 * var(--ph-top))); } }
  @keyframes phBack { from { transform: translateY(calc(-1 * var(--ph-top))); } }
  html.aiq-phone.aiq-phone.ph-away:root[data-theme] #top-nav { pointer-events: none; }
}

/* App text = the menu's (user, 2026-11-01: "I like the font that you use for the menu … use that in the mobile app as
   well"). Same family (Inter); what reads differently is the treatment: weight 450, which renders as Inter Medium (only
   the 400 and 500 files are loaded, and 450 picks 500), and slightly tighter tracking. Text that sets its own weight or
   tracking keeps it; this is the base everything else inherits. */
@media (max-width: 767px) {
  html.aiq-phone body { font-weight: 450; letter-spacing: -.01em; }
}

/* ==== css/aiq-phone-fin.css ==== */
/* Phone layout, style A — Stock page tabs not covered in aiq-phone.css (Guidance, Capital, Credit, Acquisitions, Properties, Patents, Board & owners, Executive pay, Filings, Transcripts).
   Same rules as aiq-phone.css: every rule sits inside @media (max-width: 767px) and starts with html.aiq-phone
   (tests/test_phone_layout.py checks every aiq-phone*.css file). Loaded by _phone.html after aiq-phone.css. */

@media (max-width: 767px) {
  /* Company pages (Acquisitions, Properties, Patents, Board & owners, Executive pay): borderless 18px cards */
  html.aiq-phone.aiq-phone[data-theme] main :is(.acq-card, .prp-card, .pat-card, .brd-card, .pay-card) {
    background: var(--ph-card) !important; border-color: var(--ph-edge) !important; box-shadow: none !important;
    border-radius: var(--ph-r) !important; overflow: hidden; }
  /* Key-facts / Guidance cards: a wide table inside must not paint over the round corners */
  html.aiq-phone.aiq-phone[data-theme] main .fx-card { overflow: hidden; }
  /* inner boxes: Filings' key figure and "more" box, Credit's ratio switch */
  html.aiq-phone.aiq-phone[data-theme] main :is(.fx-kpi, .fx-more) { border-radius: var(--ph-r-sm) !important; }
  html.aiq-phone.aiq-phone[data-theme] main .cr-seg { border-radius: var(--ph-r-sm) !important; overflow: hidden; }
  /* Transcripts: call list items, the takeaways box and the Listen button */
  html.aiq-phone.aiq-phone[data-theme] main #tab-transcripts :is(.tx-sidebar-item, .tx-takeaways, button) { border-radius: var(--ph-r-sm) !important; }
}

/* Statements, TradingView-style (user, 2026-10-19, sent TradingView's Estimates screen: "they go edge to edge … enough
   white space so that it looks clean … not overly cluttered … readable"): the table spans the screen with no card,
   no banding and no row rules, 14.5px figures on 36px rows, subtotals bold, % / margin lines indented and quieter.
   Overrides the --tb-* tokens and the stmt-v2 sizes in financials/_statements.html. */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] #statements-inner.stmt-v2 { --tb-band: var(--ph-card); --tb-bg: var(--ph-card); --tb-row: transparent;
    --tb-hover: var(--ph-card); }
  html.aiq-phone.aiq-phone[data-theme] main #statements-inner .stmt-table-wrap { margin-left: -12px !important; margin-right: -12px !important;
    border-radius: 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] #statements-inner.stmt-v2 .stmt-data-table.aiq-tbl thead th {
    background: var(--ph-card) !important; border: 0 !important; font-size: 13px !important; font-weight: 500 !important; color: var(--ph-mut) !important;
    padding-top: 12px !important; padding-bottom: 8px !important; }
  html.aiq-phone.aiq-phone[data-theme] #statements-inner.stmt-v2 .stmt-data-table.aiq-tbl thead th.stmt-ttm { color: var(--ph-ink) !important; font-weight: 600 !important; }
  html.aiq-phone.aiq-phone[data-theme] #statements-inner.stmt-v2 .stmt-data-table.aiq-tbl tbody tr:not([data-annotation]):not([data-pct-row]):not([data-seg-group]) td {
    font-size: 14.5px !important; line-height: 20px !important; padding-top: 8px !important; padding-bottom: 8px !important; border-bottom: 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] #statements-inner.stmt-v2 .stmt-data-table.aiq-tbl tbody tr[data-separator] td { font-weight: 650 !important; }
  html.aiq-phone.aiq-phone[data-theme] #statements-inner.stmt-v2 .stmt-data-table.aiq-tbl tbody tr[data-separator] td:first-child { padding-top: 14px !important; }
  html.aiq-phone.aiq-phone[data-theme] #statements-inner.stmt-v2 .stmt-data-table.aiq-tbl tbody tr:is([data-pct-row], [data-annotation]) td {
    font-size: 13.5px !important; line-height: 18px !important; padding-top: 0 !important; padding-bottom: 6px !important; border-bottom: 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] #statements-inner.stmt-v2 .stmt-data-table.aiq-tbl tbody tr:is([data-pct-row], [data-annotation]) td:first-child {
    padding-left: 28px !important; color: var(--ph-ink2) !important; }
  html.aiq-phone.aiq-phone[data-theme] #statements-inner.stmt-v2 .stmt-data-table.aiq-tbl :is(th, td):first-child { padding-left: 14px !important; }
}

/* Statements on phones keep the core (user, 2026-10-19: "consider on mobile what is really necessary to display"): no
   title (the chip names the page), no Options menu, no per-row filing-note icons. Annual | Quarterly and the unit stay. */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] #statements-inner :is(#stmts-title, #stmt-opt-btn, .stmt-fn-btn) { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] #statements-inner .stmt-data-table.aiq-tbl tbody td:first-child { padding-right: 8px !important; }
}
@media (max-width: 767px) {
  /* unit and Annual | Quarterly on one line */
  html.aiq-phone.aiq-phone[data-theme] #statements-inner.stmt-v2 #stmt-unit-note { order: 0 !important; flex-basis: auto !important; margin-right: auto; }
}

/* Toggles on the stock page as round-ended tracks like Annual | Quarterly (user, 2026-10-19: price range, Segments /
   Products / Regions, Credit's ratio switch looked boxy): grey track, white pill on the open option. (The Trend column
   stays: hidden for a moment, then "keep the trend … I do like the look of it".) */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] main :is(.ov-seg, .cr-seg) { border: 0 !important; border-radius: 999px !important; padding: 3px !important;
    background: rgba(118,118,128,.12) !important; gap: 2px !important; box-shadow: none !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.ov-seg, .cr-seg) > button { border: 0 !important; border-radius: 999px !important; background: transparent !important;
    box-shadow: none !important; color: var(--ph-mut) !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.ov-seg, .cr-seg) > button.is-on { background: var(--ph-card) !important; color: var(--ph-ink) !important;
    box-shadow: 0 1px 3px rgba(15,17,21,.14) !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] main :is(.ov-seg, .cr-seg) > button.is-on { background: #3A3A3C !important; }
  html.aiq-phone.aiq-phone[data-theme] main .ov-seg-sep { display: none !important; }
}

/* Charts tab: no key figures on phones (user, 2026-10-19: first "stripped down to bare bones", then "just get rid of
   the stats all together from the charts view"); Statistics has them. */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] #ch-kpis { display: none !important; }
}

/* Charts tab on phones = the Grid and nothing else (user, 2026-10-19: "should only have the grid mode … get rid of the
   other two options", then of the toolbar — Presets, + Metrics, range, Annual | Quarterly — "I don't think these
   options are necessary either"): no toolbar (Grid is the default view: 10 years, annual), no "Add metric" tile. */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] :is(#ch-bar, #charts-grid .cg-add) { display: none !important; }
}

/* Audit pass, final look (2026-10-19). Remaining boxy switches on the stock page become the round-ended track used
   everywhere else (grey track, white pill on the open option): the statements' Products | Regions fold, the KPI tab's
   Business / Products / Regions words + its Area | Bars, Annual | Quarterly, Values | YoY switches (.kd-seg), and the
   Statistics Values | YoY switch (.stx-seg). A one-button .kd-seg (Labels) is a plain grey pill. */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] main :is(.stmt-seg-kinds, .kd-words, .kd-seg, .stx-seg) {
    display: inline-flex !important; gap: 2px !important; padding: 3px !important; border: 0 !important; border-radius: 999px !important;
    background: rgba(118,118,128,.12) !important; box-shadow: none !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.stmt-seg-kinds, .kd-words, .kd-seg, .stx-seg) > button {
    border: 0 !important; border-radius: 999px !important; background: transparent !important; box-shadow: none !important;
    padding: 0 11px !important; min-height: 28px; color: var(--ph-mut) !important; text-decoration: none !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.stmt-seg-kinds, .kd-words, .kd-seg, .stx-seg) > button::after { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.stmt-seg-kinds, .kd-words, .kd-seg, .stx-seg) > button.is-on {
    background: var(--ph-card) !important; color: var(--ph-ink) !important; font-weight: 600 !important; box-shadow: 0 1px 3px rgba(15,17,21,.14) !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] main :is(.stmt-seg-kinds, .kd-words, .kd-seg, .stx-seg) > button.is-on { background: #3A3A3C !important; }
  html.aiq-phone.aiq-phone[data-theme] main .kd-seg:has(> button:only-child) > button.is-on { background: transparent !important; box-shadow: none !important; color: var(--ph-ink) !important; }
}

/* Audit pass, continued: Comparables' view row (Overview · Valuation · Financials · Performance …) is a tab row → chips;
   its range / filter switches (.cmp-seg) and the .cg-view switches (Dividends' Per share | Yield …, 5Y | 10Y …; Insiders'
   and Filings' filters) → round tracks (Filings' long one scrolls inside its own row); Modeling's divider between Simple | Advanced and DCF | Reverse DCF | IRR goes (the two rows wrap on a phone);
   Overview's "Ten years of X in charts" promo goes (the Charts chip is one tap away). */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] main #cmp-views { display: flex !important; gap: 8px !important; overflow-x: auto; scrollbar-width: none;
    border: 0 !important; box-shadow: none !important; padding: 0 0 4px !important; }
  html.aiq-phone.aiq-phone[data-theme] main #cmp-views > button { flex: none !important; height: 34px !important; padding: 0 13px !important; border: 0 !important;
    border-radius: var(--ph-r-sm) !important; background: rgba(118,118,128,.12) !important; color: var(--ph-ink) !important; box-shadow: none !important;
    font: 500 14px Inter, sans-serif !important; white-space: nowrap; }
  html.aiq-phone.aiq-phone[data-theme] main #cmp-views > button::after { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] main #cmp-views > button:is(.on, .is-on, .active, [aria-selected="true"]) { background: #0F1115 !important; color: #fff !important; font-weight: 600 !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] main #cmp-views > button:is(.on, .is-on, .active, [aria-selected="true"]) { background: #F1F2F4 !important; color: #0F1115 !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.cmp-seg, .cg-view) { display: inline-flex !important; gap: 2px !important; padding: 3px !important;
    border: 0 !important; border-radius: 999px !important; background: rgba(118,118,128,.12) !important; box-shadow: none !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.cmp-seg, .cg-view) > button { border: 0 !important; border-radius: 999px !important;
    background: transparent !important; box-shadow: none !important; color: var(--ph-mut) !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.cmp-seg, .cg-view) > button:is(.on, .is-on, .active) { background: var(--ph-card) !important;
    color: var(--ph-ink) !important; font-weight: 600 !important; box-shadow: 0 1px 3px rgba(15,17,21,.14) !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] main :is(.cmp-seg, .cg-view) > button:is(.on, .is-on, .active) { background: #3A3A3C !important; }
  html.aiq-phone.aiq-phone[data-theme] main .cg-view { max-width: 100%; overflow-x: auto; scrollbar-width: none; }
  html.aiq-phone.aiq-phone[data-theme] main .cg-view > button { flex: none; }
  html.aiq-phone.aiq-phone[data-theme] main #tab-modeling .md-vsep { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] main #tab-overview .lkl-promo { display: none !important; }
}

/* KPI tab chart headers (user, 2026-10-20: "too crowded on mobile with all the toggles and data labels"): the title on
   its own line, then the Products | Regions words and Annual | Quarterly on one row. The Labels and Area | Bars switches
   and the bar figures are left out on phones in _kpi_tab.html (phone()). */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] #kd-root .kd-h { gap: 8px 10px; }
  html.aiq-phone.aiq-phone[data-theme] #kd-root .kd-h > .kd-t { flex: 0 0 100%; }
}

/* Revenue mix (Statements → segments): phones always draw Flow, so the Flow | Bars switch goes (_statements.html segPhone()) */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] #stmt-seg-view-wrap { display: none !important; }
}

/* KPI tab tables on phones (user, 2026-10-29: "fix up all the super busy tables on mobile … optimize for mobile and
   cleanliness, less is more"): one name column + every period (swipes sideways, name column sticks); no vertical rules, no tint, no blue dot, header icons, sticky-column shadow, group icons / counts; the "No longer reported" group and
   the Pro lock column are left out (phone is simpler, rule 2). The group band is a plain bold label. */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .kd-card > .kd-tblwrap:not(#_):not(#_):not(#_):not(#_) { overflow-x: auto !important; scrollbar-width: none; }
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .aiq-tbl:not(#_):not(#_):not(#_):not(#_) { width: max-content !important; min-width: 100% !important; }
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .aiq-tbl:not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td):not(.cmp-heat) {
    background: var(--ph-card) !important; border-left: 0 !important; border-right: 0 !important; box-shadow: none !important; min-width: 0 !important;
    padding-left: 6px !important; padding-right: 6px !important; }
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .aiq-tbl:not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td):first-child {
    width: 164px !important; min-width: 164px !important; max-width: 164px !important; padding-left: 16px !important; white-space: normal; line-height: 18px; position: sticky !important; left: 0; z-index: 2; }
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .aiq-tbl:not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td):last-child { padding-right: 16px !important; border-right: 0 !important; }
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .aiq-tbl:not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td).stx-new { background: var(--ph-card) !important; }
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .aiq-tbl:not(#_):not(#_):not(#_):not(#_) > * > tr:is(.kd-band, .kd-grp) > td { border-right: 0 !important; position: static !important; width: auto !important; max-width: none !important; }
  /* the shared phone rule hides every column past the 4th (.ph-hc); KPI tables keep all their periods */
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .aiq-tbl:not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td).ph-hc { display: table-cell !important; }
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .aiq-tbl:not(#_):not(#_):not(#_):not(#_) > * > tr:not(.kd-band, .kd-grp) > :is(th, td):not(:first-child) { min-width: 78px !important; }
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .aiq-tbl:not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td).ph-hc:last-child { min-width: 104px !important; }
  /* header: plain period labels, newest in ink, no icons or dot */
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .aiq-tbl:not(#_):not(#_):not(#_):not(#_) > thead > tr > th { font-size: 12px !important; font-weight: 500 !important;
    color: var(--ph-mut) !important; border-bottom: 1px solid var(--ph-edge) !important; height: 36px !important; }
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .aiq-tbl:not(#_):not(#_):not(#_):not(#_) > thead > tr > th.stx-new { color: var(--ph-ink) !important; font-weight: 600 !important; }
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .aiq-tbl:not(#_):not(#_):not(#_):not(#_) > thead > tr > th:first-child { color: transparent !important; font-size: 0 !important; }
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) :is(.stx-hi, .stx-ic, .stx-gn):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .aiq-tbl:not(#_):not(#_):not(#_):not(#_) > thead > tr > th.stx-new::after,
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .aiq-tbl:not(#_):not(#_):not(#_):not(#_) > thead > tr > th.stx-new::before { content: none !important; display: none !important; }
  /* rows: one hairline, 44px touch height, figures 14.5px */
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .aiq-tbl:not(#_):not(#_):not(#_):not(#_) > tbody > tr > td { height: 44px !important; font-size: 14.5px !important;
    border-bottom: 1px solid var(--ph-edge) !important; }
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .aiq-tbl:not(#_):not(#_):not(#_):not(#_) > tbody > tr > td.num { font-variant-numeric: tabular-nums; }
  /* group band: bold label on the page colour */
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .aiq-tbl:not(#_):not(#_):not(#_):not(#_) > tbody > tr:is(.kd-band, .kd-grp) > td {
    background: var(--ph-card) !important; height: 48px !important; padding-left: 16px !important; font-size: 15px !important; font-weight: 650 !important;
    color: var(--ph-ink) !important; vertical-align: bottom !important; padding-bottom: 8px !important; }
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .aiq-tbl:not(#_):not(#_):not(#_):not(#_) > tbody > tr.kd-band > td { white-space: nowrap; }
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .kd-card:not(.kd-empty):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::before { content: none !important; display: none !important; }
  html.aiq-phone[data-theme] .lkl-fin .tab-panel #kd-root .kd-card:not(.kd-empty):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin-left: 0 !important; margin-right: 0 !important; }
  /* a stopped KPI is left out here (the desktop table lists it under "No longer reported") */
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .aiq-tbl:not(#_):not(#_):not(#_):not(#_) > tbody > tr:is(.kd-gone, .kd-band-gone, .kd-gone-h) { display: none !important; }
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .kd-last:not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  /* total / subtotal: quieter weight, a single rule above */
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .aiq-tbl:not(#_):not(#_):not(#_):not(#_) > tbody > tr.kd-total > td { font-weight: 600 !important; }
  html.aiq-phone[data-theme] :is(#kd-root, #tab-statistics) .kd-card:not(.kd-empty) + .kd-card:not(.kd-empty):not(#_):not(#_):not(#_):not(#_) { margin-top: 8px !important; }
  /* Statistics: group rows (Valuation, Earnings…) are bold labels too; the letter badge goes */
  html.aiq-phone[data-theme] #tab-statistics .aiq-tbl:not(#_):not(#_):not(#_):not(#_) > tbody > tr.stx-grp > td {
    background: var(--ph-card) !important; height: 48px !important; padding-left: 16px !important; font-size: 15px !important; font-weight: 650 !important;
    color: var(--ph-ink) !important; vertical-align: bottom !important; padding-bottom: 8px !important; white-space: nowrap; border-right: 0 !important;
    position: static !important; width: auto !important; max-width: none !important; }
  html.aiq-phone[data-theme] #tab-statistics .stx-gr:not(#_):not(#_):not(#_):not(#_) { display: none !important; }
}

/* Income statement, balance sheet, cash flow on phones (user, 2026-10-29: same clean look as the KPI tab): no tinted
   columns, no grey separator bars (the subtotal is just bold), no header icons or dot, no bold TTM column, a 150px
   pinned name column; every period stays and swipes sideways. */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td):not(.cmp-heat) {
    background: var(--ph-card) !important; border-left: 0 !important; border-right: 0 !important; box-shadow: none !important; }
  html.aiq-phone[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr > td {
    border-bottom: 1px solid var(--ph-edge) !important; font-weight: 400 !important; font-variant-numeric: tabular-nums; }
  html.aiq-phone[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr[data-separator] > td {
    font-weight: 650 !important; color: var(--ph-ink) !important; }
  html.aiq-phone[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td):first-child {
    width: 150px !important; min-width: 150px !important; max-width: 150px !important; white-space: normal; line-height: 18px; }
  html.aiq-phone[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td):not(:first-child) { min-width: 84px !important; }
  html.aiq-phone[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead > tr > th {
    border-bottom: 1px solid var(--ph-edge) !important; color: var(--ph-mut) !important; font-weight: 500 !important; }
  html.aiq-phone[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead > tr > th:first-child {
    color: var(--ph-ink) !important; font-weight: 650 !important; }
  html.aiq-phone[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead > tr > th:nth-child(2) { color: var(--ph-ink) !important; }
  html.aiq-phone[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead :is(i, .stx-hi, svg),
  html.aiq-phone[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead > tr > th::after { display: none !important; content: none !important; }
}

/* Stock page header on phones (user, 2026-10-29): the top bar names the open page; the company's logo + name, the price and
   the day change sit on one centred line (no ticker) right under it (.at-ft-id, aiq-table-attio.css). */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] .at-ft-co .at-ft-id:not(#_):not(#_):not(#_) { display: flex !important; flex-wrap: nowrap; align-items: baseline !important; justify-content: center !important;
    gap: 2px 8px !important; width: 100%; padding: 0 16px !important; box-sizing: border-box; text-align: center; }
  html.aiq-phone[data-theme] .at-ft-co .at-ft-id > *:not(#_):not(#_):not(#_) { margin: 0 !important; flex: none !important; }
  html.aiq-phone[data-theme] .at-ft-co:not(#_):not(#_):not(#_) { justify-content: center !important; }
  /* the header names the page, so the company's logo + name lead this line (user, 2026-10-29: "we need a place for the company name and logo") */
  html.aiq-phone[data-theme] .at-ft-co .at-ft-id img:not(#_):not(#_):not(#_) { display: block !important; width: 18px !important; height: 18px !important;
    border-radius: 4px !important; align-self: center !important; margin-right: -2px !important; }
  html.aiq-phone[data-theme] .at-ft-co .at-ft-id .at-ft-nm:not(#_):not(#_):not(#_) { display: block !important; flex: 0 1 auto !important; min-width: 0;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px !important; line-height: 18px !important; font-weight: 500 !important; color: var(--ph-mut) !important; }
  html.aiq-phone[data-theme] .at-ft-co .at-ft-id b:not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone[data-theme] .at-ft-co:not(#_):not(#_):not(#_) { margin-top: -27px !important; min-height: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; }
  html.aiq-phone[data-theme] .at-ft-co .at-ft-id .at-ft-p:not(#_):not(#_):not(#_) { font-size: 14px !important; line-height: 18px !important; font-weight: 650 !important; letter-spacing: 0 !important; }
  html.aiq-phone[data-theme] .at-ft-co .at-ft-id .at-ft-c:not(#_):not(#_):not(#_) { font-size: 12.5px !important; line-height: 18px !important; }
}

/* Header = price + day change only (user, 2026-10-29): no "today", no "USD millions · older years with Pro" line. */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] .at-ft-co .at-ft-id .at-ft-c:not(#_):not(#_):not(#_)::after,
  html.aiq-phone[data-theme] .at-ft-co .at-ft-id .at-ft-c:not(#_):not(#_):not(#_)::before { content: none !important; display: none !important; }
  html.aiq-phone[data-theme] #statements-inner #stmt-unit-note:not(#_):not(#_):not(#_) { display: none !important; }
  /* percent only, no dollar change (user, 2026-10-29) */
  html.aiq-phone[data-theme] .at-ft-co .at-ft-id .at-ft-ca:not(#_):not(#_):not(#_) { display: none !important; }
}

/* Statements, cleaner (user, 2026-10-29: "make the tables cleaner on mobile", the Products | Regions pill "doesn't look
   good"): no empty toolbar gap; columns size to their numbers (the fixed layout let 6-digit figures spill past the cell
   padding, so columns looked ragged); labels 13.5px, two lines at most; even 40px rows; segment lines indented and
   muted with round dots; Products | Regions = plain text tabs with an underline, no grey track. */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] #statements-inner #stmts-toolbar:not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    table-layout: auto !important; min-width: 100% !important; width: max-content !important; }
  html.aiq-phone[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td) {
    font-size: 13.5px !important; line-height: 17px !important; padding-top: 11px !important; padding-bottom: 11px !important; height: auto !important; }
  html.aiq-phone[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td):not(:first-child) {
    min-width: 76px !important; width: auto !important; padding-left: 8px !important; padding-right: 14px !important;
    white-space: nowrap !important; text-align: right !important; font-variant-numeric: tabular-nums; }
  html.aiq-phone[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td):first-child:not([colspan]) {
    width: 140px !important; min-width: 140px !important; max-width: 140px !important; padding-left: 16px !important; padding-right: 8px !important;
    white-space: normal !important; }
  html.aiq-phone[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead > tr > th {
    font-size: 12px !important; padding-top: 8px !important; padding-bottom: 8px !important; }
  html.aiq-phone[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr > td {
    border-bottom-color: color-mix(in srgb, var(--ph-edge) 65%, transparent) !important; }
  html.aiq-phone[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr > td:first-child:has(> .stmt-seg-chev) {
    padding-left: 30px !important; }
  /* segment lines: indented, muted label, round dot */
  html.aiq-phone[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr[data-seg-line] > td:first-child {
    padding-left: 28px !important; color: var(--ph-mut) !important; text-indent: -12px; }
  html.aiq-phone[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr[data-seg-line] > td:not(:first-child) {
    color: var(--ph-mut) !important; }
  html.aiq-phone[data-theme] #statements-inner .stmt-seg-sq:not(#_):not(#_):not(#_) { width: 6px !important; height: 6px !important; border-radius: 50% !important;
    margin: 0 6px 0 0 !important; vertical-align: 2px !important; text-indent: 0; }
  /* Products | Regions: text tabs */
  html.aiq-phone[data-theme] #statements-inner tr[data-seg-head] > td:not(#_):not(#_):not(#_):not(#_) { padding-top: 2px !important; padding-bottom: 0 !important; }
  html.aiq-phone[data-theme] main #statements-inner .stmt-seg-kinds:not(#_):not(#_):not(#_) { background: none !important; padding: 0 !important; gap: 18px !important; border-radius: 0 !important; }
  html.aiq-phone[data-theme] main #statements-inner .stmt-seg-kinds > button:not(#_):not(#_):not(#_) { background: none !important; box-shadow: none !important; border-radius: 0 !important;
    padding: 6px 0 7px !important; min-height: 0 !important; font-size: 13px !important; font-weight: 500 !important; color: var(--ph-mut) !important;
    border-bottom: 2px solid transparent !important; }
  html.aiq-phone[data-theme] main #statements-inner .stmt-seg-kinds > button.is-on:not(#_):not(#_):not(#_) { color: var(--ph-ink) !important; font-weight: 600 !important;
    border-bottom-color: var(--ph-ink) !important; background: none !important; }
}

/* Every period table looks like the statements (user, 2026-10-29: "make all the finance numbers based tables the same
   style"): Overview financials + segments, KPIs, Statistics, Modeling, Dividends, Guidance, Capital, Credit, extra KPIs.
   Plain card background, auto layout so figures fit their column, 13.5px, 40px rows, 140px label column wrapping to two
   lines, right-aligned tabular numbers, light dividers, muted header with the first column in ink. Their switches
   (Values | YoY, Annual | Quarterly, Business / Products / Regions) = text tabs, as Products | Regions on the statements.
   Board's holders table = table.brd-hold (_board.html), written with the specificity of the
   `#brd-root table:has(> thead > tr > th:first-child + th.num:last-child)` it replaces (1,3,5): that :has() inside these
   :is() lists made every phone page restyle ~3x slower (2026-11-10, phone Screener 4.2 s -> 1.4 s of style per load). */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] main :is(#tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { table-layout: auto !important; min-width: 100% !important; width: max-content !important; max-width: none !important; }
  html.aiq-phone[data-theme] main :is(#tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td):not(.cmp-heat) {
    background: var(--ph-card) !important; border-left: 0 !important; border-right: 0 !important; box-shadow: none !important;
    font-size: 13.5px !important; line-height: 17px !important; padding-top: 11px !important; padding-bottom: 11px !important; height: auto !important; }
  html.aiq-phone[data-theme] main :is(#tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td):not(:first-child) {
    min-width: 76px !important; width: auto !important; padding-left: 8px !important; padding-right: 14px !important;
    white-space: nowrap !important; text-align: right !important; font-variant-numeric: tabular-nums; }
  html.aiq-phone[data-theme] main :is(#tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td):first-child:not([colspan]) {
    width: 140px !important; min-width: 140px !important; max-width: 140px !important;
    padding-left: 16px !important; padding-right: 8px !important; white-space: normal !important; text-align: left !important; }
  html.aiq-phone[data-theme] main :is(#tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr > td { border-bottom: 1px solid color-mix(in srgb, var(--ph-edge) 65%, transparent) !important; }
  html.aiq-phone[data-theme] main :is(#tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead > tr > th { font-size: 12px !important; padding-top: 8px !important; padding-bottom: 8px !important; font-weight: 500 !important;
    color: var(--ph-mut) !important; border-bottom: 1px solid var(--ph-edge) !important; text-transform: none !important; letter-spacing: 0 !important; }
  html.aiq-phone[data-theme] main :is(#tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead > tr > th:first-child { color: var(--ph-ink) !important; font-weight: 650 !important; }
  html.aiq-phone[data-theme] main :is(#tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead :is(i, svg),
  html.aiq-phone[data-theme] main :is(#tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead > tr > th::after { display: none !important; content: none !important; }

  html.aiq-phone[data-theme] main :is(.kd-words, .kd-seg:not(:has(> button:only-child)), .stx-seg):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    background: none !important; padding: 0 !important; gap: 18px !important; border-radius: 0 !important; box-shadow: none !important; }
  html.aiq-phone[data-theme] main :is(.kd-words, .kd-seg:not(:has(> button:only-child)), .stx-seg) > button:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    background: none !important; box-shadow: none !important; border-radius: 0 !important; padding: 6px 0 7px !important; min-height: 0 !important;
    font-size: 13px !important; font-weight: 500 !important; color: var(--ph-mut) !important; border-bottom: 2px solid transparent !important; }
  html.aiq-phone[data-theme] main :is(.kd-words, .kd-seg:not(:has(> button:only-child)), .stx-seg) > button:is(.is-on, .on, .active):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    color: var(--ph-ink) !important; font-weight: 600 !important; border-bottom-color: var(--ph-ink) !important; background: none !important; }
  /* the Dividends / Capital kit (.fxd-*): no box round the table, plain coloured figures instead of chips, text tabs */
  html.aiq-phone[data-theme] main .fxd-tw:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: none !important;
    margin-left: -12px !important; margin-right: -12px !important; }
  html.aiq-phone[data-theme] main .fxd-t .fxd-tag:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: none !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; font-weight: 500 !important; }
  html.aiq-phone[data-theme] main .fxd-tabs:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { gap: 18px !important; background: none !important; padding: 0 !important; border-radius: 0 !important; }
  html.aiq-phone[data-theme] main .fxd-tabs > button:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: none !important; box-shadow: none !important; border: 0 !important; border-radius: 0 !important;
    border-bottom: 2px solid transparent !important; padding: 6px 0 7px !important; min-height: 0 !important; font-size: 13px !important; font-weight: 500 !important; color: var(--ph-mut) !important; }
  html.aiq-phone[data-theme] main .fxd-tabs > button.on:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { color: var(--ph-ink) !important; font-weight: 600 !important; border-bottom-color: var(--ph-ink) !important; }
  html.aiq-phone[data-theme] main .fxd-tabs .fxd-cnt:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: none !important; padding: 0 0 0 4px !important; color: var(--ph-mut) !important; font-weight: 500 !important; }
  html.aiq-phone[data-theme] main .fxd-box:has(> .fxd-tw):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: none !important; overflow: visible !important; }
  html.aiq-phone[data-theme] main .fxd-box:has(> .fxd-tw):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::after,
  html.aiq-phone[data-theme] main .fxd-box:has(> .fxd-tw):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::before,
  html.aiq-phone[data-theme] main .fxd-tabs > button:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::after { display: none !important; content: none !important; }
  html.aiq-phone[data-theme] main .fxd-tabs .fxd-cnt:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { border: 0 !important; box-shadow: none !important; outline: 0 !important; }
}

/* Calmer period tables (user, 2026-10-29: "still feel a little messy or just visually dense"): no line under every row;
   spacing groups the rows instead. A section head (a row that is one colspan cell) is a small muted label with room
   above it and the only rule in the body; Statistics' first top-level head ("Profitability" over "Margins",
   the page title again) is dropped; subtotals keep a hairline above; empty cells' dashes fade. */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] main :is(#statements-inner .stmt-data-table, #tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr > td { border-bottom: 0 !important; border-top: 0 !important; padding-top: 9px !important; padding-bottom: 9px !important; }
  html.aiq-phone[data-theme] main :is(#statements-inner .stmt-data-table, #tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr:has(> td[colspan]:only-child) > td { padding-top: 22px !important; padding-bottom: 6px !important; font-size: 12px !important; line-height: 16px !important;
    font-weight: 600 !important; color: var(--ph-mut) !important; border-bottom: 1px solid var(--ph-edge) !important; }
  html.aiq-phone[data-theme] main :is(#statements-inner .stmt-data-table, #tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr:has(> td[colspan]:only-child):first-child > td { padding-top: 12px !important; }
  html.aiq-phone[data-theme] main :is(#statements-inner .stmt-data-table, #tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr.stx-grp:not(.stx-div):first-child { display: none !important; }
  html.aiq-phone[data-theme] main :is(#statements-inner .stmt-data-table, #tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr:has(> td[colspan]:only-child) :is(.stx-ic, .stx-gn, .stx-gr) { display: none !important; }
  html.aiq-phone[data-theme] main :is(#statements-inner .stmt-data-table, #tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr[data-separator] > td { border-top: 1px solid var(--ph-edge) !important; }
  html.aiq-phone[data-theme] main :is(#statements-inner .stmt-data-table, #tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr:first-child[data-separator] > td { border-top: 0 !important; }
  html.aiq-phone[data-theme] main :is(#statements-inner .stmt-data-table, #tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr > td.at-empty { color: var(--ph-mut) !important; opacity: .45; }
}

/* The income statement's bolding is the standard (user, 2026-10-29: "looks the best because of the bolding"): plain rows
   regular, the rows that sum or head a block in ink 650 with a hairline above them. Totals: statement subtotals
   ([data-separator]), KPI .kd-total, Overview .ovs-seg-total, Modeling .tot, a <tfoot> total (Capital). Tables with no
   totals (Statistics, Credit) get the same weight on their section heads, which replace the small grey labels. */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] main :is(#statements-inner .stmt-data-table, #tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr:is([data-separator], .kd-total, .ovs-seg-total, .tot, .is-subject) > td,
  html.aiq-phone[data-theme] main :is(#statements-inner .stmt-data-table, #tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tfoot > tr > td { font-weight: 650 !important; color: var(--ph-ink) !important; border-top: 1px solid var(--ph-edge) !important; }
  html.aiq-phone[data-theme] main :is(#statements-inner .stmt-data-table, #tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr:first-child:is([data-separator], .kd-total, .ovs-seg-total, .tot, .is-subject) > td { border-top: 0 !important; }
  html.aiq-phone[data-theme] main :is(#statements-inner .stmt-data-table, #tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr:has(> td[colspan]:only-child) > td { font-size: 13.5px !important; line-height: 17px !important; font-weight: 650 !important; color: var(--ph-ink) !important;
    padding-top: 12px !important; padding-bottom: 9px !important; border-bottom: 0 !important; border-top: 1px solid var(--ph-edge) !important; }
  html.aiq-phone[data-theme] main :is(#statements-inner .stmt-data-table, #tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr:has(> td[colspan]:only-child):first-child > td,
  html.aiq-phone[data-theme] main :is(#statements-inner .stmt-data-table, #tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr.stx-grp:not(.stx-div):first-child + tr:has(> td[colspan]:only-child) > td { border-top: 0 !important; }
  /* every other row regular, as on the statements (the Overview segment names were 600) */
  html.aiq-phone[data-theme] main :is(#statements-inner .stmt-data-table, #tab-overview .ovs-table, .kd-ktbl, .stx-t, .stx-at, .md-sheet, #dv-tbl, #tab-guidance .fx-tbl, .fxd-t, .cap-t, .cr-t, .kx-table, .md-smt, #cmp-table, .cmp-sc, #pay-root table, #acq-root table, #brd-root table.brd-hold.brd-hold.brd-hold:not(thead):not(tr):not(th):not(td), .fv-table-scroll > table):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr:not([data-separator], .kd-total, .ovs-seg-total, .tot, .is-subject, :has(> td[colspan]:only-child)) > td { font-weight: 400 !important; }
  /* the .fxd-t kit's section heads are a label cell + an empty colspan cell (tr.band): same weight as the other heads */
  html.aiq-phone[data-theme] main .fxd-t:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr.band > td { font-size: 13.5px !important; font-weight: 650 !important; color: var(--ph-ink) !important;
    padding-top: 12px !important; padding-bottom: 9px !important; border-bottom: 0 !important; border-top: 1px solid var(--ph-edge) !important; }
  html.aiq-phone[data-theme] main .fxd-t:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr.band:first-child > td { border-top: 0 !important; }
}

/* Executive pay, Acquisitions, Board's holders table (directors + committees are text lists, left as they are): the table's card loses its box on phones, like Dividends / Capital (2026-10-29) */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] main :is(.pay-card:has(> table), .acq-card:has(> table), .brd-card:has(> table:has(> thead > tr > th:first-child + th.num:last-child))):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: none !important;
    margin-left: -12px !important; margin-right: -12px !important; }
  html.aiq-phone[data-theme] main :is(.pay-card:has(> table), .acq-card:has(> table), .brd-card:has(> table:has(> thead > tr > th:first-child + th.num:last-child))):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::after,
  html.aiq-phone[data-theme] main :is(.pay-card:has(> table), .acq-card:has(> table), .brd-card:has(> table:has(> thead > tr > th:first-child + th.num:last-child))):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::before { display: none !important; content: none !important; }
  /* Acquisitions' Company column is text: left-aligned, wraps */
  html.aiq-phone[data-theme] main #acq-root table:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > * > tr > :nth-child(2) { text-align: left !important; white-space: normal !important; min-width: 120px !important; }
}

/* Hairlines run edge to edge (user, 2026-10-29: "make sure every page uses hairline"): the Dividends / Capital / Credit kit's
   section rules (.fxd-side, .fxd-sec) stopped 12px short of each side; they become the same full-width 1px line as the
   blocks', and each later heading in the pane (Recent changes, By year, Credit ratios…) gets one above it. */
@media (max-width: 767px) {
  html.aiq-phone[data-theme].ph-edge.at-p-financials main :is(.fxd-side, .fxd-sec):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { position: relative; border-bottom-color: transparent !important; }
  html.aiq-phone[data-theme].ph-edge.at-p-financials main :is(.fxd-side, .fxd-sec:not(:last-child)):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::after { content: ""; position: absolute; left: -12px; right: -12px; bottom: -1px; height: 1px;
    background: var(--ph-edge); pointer-events: none; }
  html.aiq-phone[data-theme].ph-edge.at-p-financials main .fxd-pane > .fxd-pane-h:not(:first-child):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { position: relative; margin-top: 20px !important; padding-top: 20px !important; }
  html.aiq-phone[data-theme].ph-edge.at-p-financials main .fxd-pane > .fxd-pane-h:not(:first-child):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::before { content: ""; position: absolute; left: -12px; right: -12px; top: 0; height: 1px;
    background: var(--ph-edge); pointer-events: none; }
}

/* Record tabs on phones (user, 2026-10-29: copy Attio's record tabs exactly — font, shape, colour): the .fin-ph-row
   rows in financials/index.html (Statements, Valuation, Ratios, Company, Outlook), shown by finPhoneSync. One
   weight (500), outline icons, the open one in a pale grey pill with a hairline and near-black text, the others grey;
   the row scrolls sideways, never wraps. */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] .fin-ph-row:not([hidden]):not(#_):not(#_) {
    display: flex !important; gap: 8px; margin: 0 -12px 12px; padding: 2px 12px 4px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  html.aiq-phone[data-theme] .ph-rec-tabs::-webkit-scrollbar { display: none; }
  html.aiq-phone[data-theme] .ph-rec-tabs > button:not(#_):not(#_) {
    flex: none; display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border: 1px solid transparent; border-radius: 999px;
    background: transparent; color: #75777E; font: 500 17px/1 Inter, system-ui, sans-serif; letter-spacing: -.01em; white-space: nowrap; cursor: pointer; }
  html.aiq-phone[data-theme] .ph-rec-tabs > button > i { font-size: 19px; font-family: "Phosphor-Regular" !important; }
  html.aiq-phone[data-theme] .ph-rec-tabs > button.is-on:not(#_):not(#_) { background: #F1F2F4; border-color: #E3E4E8; color: #1C1D1F; }
  html.aiq-phone[data-theme="dark"] .ph-rec-tabs > button:not(#_):not(#_) { color: #9A9CA3; }
  html.aiq-phone[data-theme="dark"] .ph-rec-tabs > button.is-on:not(#_):not(#_) { background: #2A2B2E; border-color: #3A3B3F; color: #F1F2F4; }
}

/* ==== css/aiq-phone-people.css ==== */
/* Phone layout, style A — Portfolio pages (/p/, model portfolios, builder), Congress members, investor pages.
   Same rules as aiq-phone.css: every rule sits inside @media (max-width: 767px) and starts with html.aiq-phone
   (tests/test_phone_layout.py checks every aiq-phone*.css file). Loaded by _phone.html after aiq-phone.css. */

/* ── Portfolio builder (/portfolios/build): step tiles as soft borderless cards, the path switch as a pill track ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] main .bd-step { border-radius: var(--ph-r-sm) !important; border-color: var(--ph-edge) !important; }
  html.aiq-phone.aiq-phone[data-theme] main .bd-step.on { border-color: var(--ph-acc) !important; }
  html.aiq-phone.aiq-phone[data-theme] main .bd-path { border-radius: 999px !important; border: 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] main .bd-path button { border-radius: 999px !important; }
}

/* ── Superinvestors: Holdings / Activity / History / Analytics scroll in one row (their chip look is aiq-phone.css
   "Every tab row"), boxes inside the panel get the inner-box corner ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] main .si-subtabs { flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; gap: 2px !important; }
  html.aiq-phone.aiq-phone[data-theme] main .si-subtabs .si-subtab-active::after { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] main #si-content :is(.si-insight, .rounded-md, .pf-card, .si-perf-box) { border-radius: var(--ph-r-sm) !important; }
  /* Investors | Stocks switch at the top of the list: a pill track */
  html.aiq-phone.aiq-phone[data-theme] main .si-mode { border-radius: 999px !important; border: 0 !important; padding: 3px !important;
    background: rgba(118,118,128,.12) !important; }
  html.aiq-phone.aiq-phone[data-theme] main .si-mode > a { border-radius: 999px !important; }
  /* Analytics' correlation grid (inline repeat(27,1fr)) ran 1px past the screen */
  html.aiq-phone.aiq-phone[data-theme] main #si-content .pf-corr { overflow: hidden; }
}

/* ── Re-review in the approved look (2026-10-19): Ask, Portfolios, My stocks Terminal, Supply chain ── */
@media (max-width: 767px) {
  /* tab rows the central "Every tab row" rule doesn't list: Portfolios (.ph-tabs) and each list's Terminal (.tm-tabs) */
  html.aiq-phone.aiq-phone[data-theme] main :is(.ph-tabs, .tm-tabs) { display: flex !important; gap: 8px !important; border-bottom: 0 !important;
    box-shadow: none !important; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.ph-tabs > a, .ph-tabs > button, .tm-tabs > button) {
    flex: none !important; height: 38px !important; padding: 0 15px !important; margin: 0 !important; display: inline-flex !important; align-items: center !important;
    border: 0 !important; border-radius: var(--ph-r-sm) !important; box-shadow: none !important; background: rgba(118,118,128,.12) !important;
    color: var(--ph-ink) !important; font: 500 15px Inter, sans-serif !important; white-space: nowrap !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.ph-tabs > a, .ph-tabs > button, .tm-tabs > button)::after { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.ph-tabs > a, .tm-tabs > button) > * { border: 0 !important; box-shadow: none !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.ph-tabs > .on, .tm-tabs > .on) { background: #0F1115 !important; color: #fff !important; font-weight: 600 !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] main :is(.ph-tabs > .on, .tm-tabs > .on) { background: #F1F2F4 !important; color: #0F1115 !important; }

  /* value toggles as round-ended tracks: Terminal range + D/W/M, model portfolio range, Supply chain By dollars | By dependence */
  html.aiq-phone.aiq-phone[data-theme] main :is(.tq-seg, .pp-rng, .scx-seg) { border: 0 !important; border-radius: 999px !important; padding: 3px !important;
    background: rgba(118,118,128,.12) !important; gap: 2px !important; box-shadow: none !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.tq-seg, .pp-rng, .scx-seg) > button { border: 0 !important; border-radius: 999px !important;
    background: transparent !important; box-shadow: none !important; color: var(--ph-mut) !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.tq-seg, .pp-rng, .scx-seg) > button.on { background: var(--ph-card) !important; color: var(--ph-ink) !important;
    box-shadow: 0 1px 3px rgba(15,17,21,.14) !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] main :is(.tq-seg, .pp-rng, .scx-seg) > button.on { background: #3A3A3C !important; }

  /* Ask: one quiet composer — the placeholder fits (16px so iOS doesn't zoom), no decorative ribbon, the key note fits */
  html.aiq-phone.aiq-phone[data-theme] main #ai-input { font-size: 16px !important; min-height: 48px !important; }
  html.aiq-phone.aiq-phone[data-theme] main canvas.lkr-rb { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] main .ai-keynote { max-width: 100% !important; white-space: normal !important; font-size: 13px !important; }

  /* Supply chain: the toggle + source line ran 26px past the card; the source wraps under the toggle */
  html.aiq-phone.aiq-phone[data-theme] main .scx-opts { flex-wrap: wrap !important; row-gap: 6px !important; min-width: 0; }
  html.aiq-phone.aiq-phone[data-theme] main .scx-opts #scx-src { white-space: normal !important; }

  /* Portfolios' strategies table edge to edge with hairlines, like the other list tables */
  html.aiq-phone.aiq-phone[data-theme] main .ph-mtbl-wrap { margin-left: -20px !important; margin-right: -20px !important; border-radius: 0 !important;   /* main 12px + .ph 8px */
    border-left: 0 !important; border-right: 0 !important; border-color: var(--ph-edge) !important; }
}

/* ── Superinvestors on phones (user, 2026-10-29): one clean table of every investor: Investor · Value · 1Y; a row opens the portfolio ── */
@media (max-width: 767px) {
  html.aiq-phone.si-tphone .si-atbl-t :is(th, td):is(:nth-child(1), :nth-child(3), :nth-child(4), :nth-child(7), :nth-child(8), :nth-child(9)):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.si-tphone .si-atbl-t :is(th, td):nth-child(2):not(#_):not(#_):not(#_) { width: 58% !important; }
  html.aiq-phone.si-tphone :is(.si-star, .si-selbar, #si-more, #si-learn, .si-more, .si-xc, .si-home-add, #si-home-add, .si-atgrid):not(#_):not(#_):not(#_) { display: none !important; }
}

/* ── Congress on phones (user, 2026-10-29): one clean table of every member: Member · Return / yr; a row opens their page ── */
@media (max-width: 767px) {
  html.aiq-phone.at-p-congress #cg-perf:not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.at-p-congress #ph-fab:not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.at-p-congress table.cg-mtbl :is(th, td):is(:nth-child(2), :nth-child(3), :nth-child(4), :nth-child(5), :nth-child(6), :nth-child(8), :nth-child(9)):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.at-p-congress table.cg-mtbl :is(th, td):nth-child(7):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: table-cell !important; width: 36% !important; }
  html.aiq-phone.at-p-congress table.cg-mtbl .aro-open:not(#_):not(#_):not(#_) { display: none !important; }
}

/* ── An investor's page on phones (user, 2026-10-29: "just focus on the table"): back arrow, name, tabs, table ── */
@media (max-width: 767px) {
  html.aiq-phone:not(.si-tphone) .si-vrow:not(#_):not(#_):not(#_) { display: none !important; }   /* the header's own back button does the job */
  html.aiq-phone .si-subtabs:not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone .si-tabdd:not(#_):not(#_) { margin: 8px 12px; }
  html.aiq-phone .si-hh :is(.si-hh-c, .si-hh-bell, .sp, .si-hh-tt > span):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone .si-hh:not(#_):not(#_) { padding-top: 6px !important; padding-bottom: 6px !important; }
  html.aiq-phone .si-hh .si-hh-tt h2:not(#_):not(#_):not(#_) { font-size: 18px !important; white-space: nowrap; }
  html.aiq-phone #si-content .si-panel :is(th, td).si-ckc:not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #si-content table.si-hold-tbl :is(th, td):is(:nth-child(3), :nth-child(5), :nth-child(6), :nth-child(7), :nth-child(8), :nth-child(9)):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #si-content table.si-hold-tbl :is(th, td):nth-child(2):not(#_):not(#_):not(#_):not(#_) { width: 44% !important; }
  /* Performance: the ranking table only (investor + return), no photo strip */
  html.aiq-phone #si-pvh .si-pva:not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #si-content table.si-pv-t :is(th, td):is(:nth-child(1), :nth-child(3), :nth-child(5), :nth-child(6), :nth-child(7), :nth-child(8)):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  /* Latest moves · Stock screens · Insider buys: one table each, fewest columns */
  html.aiq-phone #si-content table.si-moves-tbl :is(th, td):is(:nth-child(1), :nth-child(5), :nth-child(6), :nth-child(7), :nth-child(8)):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #si-content table.si-scr-tbl :is(th, td):is(:nth-child(3), :nth-child(4), :nth-child(6), :nth-child(7), :nth-child(8)):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #si-content table.si-ins-tbl :is(th, td):is(:nth-child(2), :nth-child(3), :nth-child(4), :nth-child(6), :nth-child(7)):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone :is(.si-mv-chips, .si-id-row):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #si-content table.si-moves-tbl :is(th, td):nth-child(4):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: table-cell !important; }
  html.aiq-phone #si-content table.si-moves-tbl :is(th, td):nth-child(2):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { width: 38% !important; }
  html.aiq-phone #si-content table.si-moves-tbl :is(th, td):nth-child(3):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { width: 34% !important; }
  html.aiq-phone #si-content table.si-moves-tbl :is(th, td):nth-child(4):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { width: 28% !important; }
  html.aiq-phone #si-content table.si-moves-tbl:not(#_):not(#_):not(#_):not(#_):not(#_) { min-width: 0 !important; width: 100% !important; table-layout: fixed !important; }
  /* Congress All trades: Member · Ticker · Type */
  html.aiq-phone.at-p-congress table.cg-tbl :is(th, td):is(:nth-child(3), :nth-child(5), :nth-child(6), :nth-child(7), :nth-child(8), :nth-child(9)):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.at-p-congress table.cg-tbl:not(#_):not(#_):not(#_):not(#_) { min-width: 0 !important; width: 100% !important; table-layout: fixed !important; }
  /* Most bought (6 columns, not the trades table's 9): Ticker · Buys */
  html.aiq-phone.at-p-congress table.cg-tbl:not(:has(th:nth-child(7))) :is(th, td):nth-child(2):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  /* Congress member page: photo + name, one Holdings/Trades dropdown, the table */
  html.aiq-phone .cgx .pfr-head :is(.hd-c, .sp, .cgx-follow, .cgx-bell, .cgx-sub):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone .cgx .rc-tabs:not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone .cgx-tabdd:not(#_):not(#_) { margin: 8px 12px; }
  html.aiq-phone table.cgx-t :is(th, td):is(:nth-child(1), :nth-child(3), :nth-child(4), :nth-child(6), :nth-child(7), :nth-child(8), :nth-child(9), :nth-child(10), :nth-child(11), :nth-child(12)):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone table.cgx-t :is(th, td):nth-child(5):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: table-cell !important; }
  html.aiq-phone :is(#si-hh, .cgx .pfr-head):not(#_):not(#_):not(#_) { display: none !important; }
  /* a member's Trades: Ticker · Type · Amount */
  html.aiq-phone .cgx-pane table.cg-tbl :is(th, td):nth-child(3):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: table-cell !important; }
  /* Search is an icon at the end of the top row; tapping it opens the field (user, 2026-10-29) */
  html.aiq-phone :is(.cg-search, .si-vq):not(#_):not(#_):not(#_):not(#_) { position: relative; flex: 0 0 auto; width: 36px; height: 36px; margin-left: auto; box-sizing: border-box; padding: 0 9px; display: inline-flex; align-items: center; justify-content: flex-start; overflow: hidden; border-radius: 999px; }
  html.aiq-phone :is(.cg-search, .si-vq) :is(svg, i):not(#_):not(#_):not(#_):not(#_) { position: static !important; left: auto !important; width: 18px; height: 18px; font-size: 18px; flex: 0 0 auto; margin: 0 !important; }
  html.aiq-phone :is(.cg-search, .si-vq):focus-within :is(svg, i):not(#_):not(#_):not(#_):not(#_) { margin: 0 !important; }
  html.aiq-phone :is(.cg-search, .si-vq) input:not(#_):not(#_):not(#_):not(#_) { width: 0 !important; min-width: 0; padding: 0 !important; border: 0 !important; background: transparent !important; }
  html.aiq-phone :is(.cg-search, .si-vq):focus-within:not(#_):not(#_):not(#_):not(#_) { width: min(220px, 62vw); justify-content: flex-start; padding-left: 9px; background: var(--a-fill, rgba(127,127,127,.14)); }
  html.aiq-phone :is(.cg-search, .si-vq):focus-within input:not(#_):not(#_):not(#_):not(#_) { width: 100% !important; padding-left: 8px !important; }
  html.aiq-phone.at-p-congress .cg-row2:not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  /* No line above a table's header row anywhere on phones (user, 2026-10-29: "like Watchlist"): the toolbars over a table lose their bottom rule, tables their top one */
  html.aiq-phone :is(.ins-bar, .ec-wk-head, .cg-row1, .cg-row2, .cg-bar, .si-vrow, .si-srow, .msa-bar, .gm-bar, .ec-bar, .sch-row2, .si-pane-head, .si-id-row, .si-mv-chips, .si-bar, .wl-bar):not(#_):not(#_):not(#_):not(#_):not(#_) { border-bottom: 0 !important; box-shadow: none !important; }
  html.aiq-phone main table:not(#_):not(#_):not(#_):not(#_):not(#_) { border-top: 0 !important; }
  html.aiq-phone main table thead :is(tr, th):not(#_):not(#_):not(#_):not(#_):not(#_) { border-top: 0 !important; }
  /* sorting is the table headers' job (user, 2026-10-29), not a "Sorted by" row */
  html.aiq-phone :is(#si-srow, .si-srow, #cg-sortbtn, .cg-sortbtn):not(#_):not(#_):not(#_) { display: none !important; }
  /* the top-right menu holds the views now, so the "All investors" view button goes */
  html.aiq-phone #si-vbtn:not(#_):not(#_):not(#_) { display: none !important; }
  /* Superinvestors: no search icon, so the toolbar row is empty and goes (user, 2026-10-29) */
  html.aiq-phone .si-vrow:not(#_):not(#_):not(#_) { display: none !important; }
  /* the box a table sits in draws its hairline as an inset shadow or border: no frame on phones, so no line above the header */
  html.aiq-phone main :is(div, section):has(> table):not(#_):not(#_):not(#_):not(#_), html.aiq-phone main :is(div, section):has(> .sy-box):not(#_):not(#_):not(#_):not(#_) { box-shadow: none !important; border-color: transparent !important; border-radius: 0 !important; background: transparent !important; }   /* transparent: the header row shows the page grey, like Investors */
  html.aiq-phone main :is(div, section):has(> table)::after:not(#_):not(#_):not(#_) { display: none !important; }
  /* every Superinvestors table matches the investors table (user, 2026-10-29): edge to edge, 52px header, 56px rows, same cell padding */
  html.aiq-phone #si-content :is(.si-panel, .p-4, .si-pv-wrap, .si-mv-wrap):not(#_):not(#_):not(#_):not(#_):not(#_) { padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; }
  html.aiq-phone #si-content table.aiq-tbl:not(.si-hold-tbl) thead th:not(#_):not(#_):not(#_):not(#_):not(#_) { height: 52px !important; padding: 0 12px 0 8px !important; }
  html.aiq-phone #si-content table.aiq-tbl:not(.si-hold-tbl) tbody td:not(#_):not(#_):not(#_):not(#_):not(#_) { height: 56px !important; padding: 0 12px 0 8px !important; font-size: 16px !important; }
  html.aiq-phone #si-content table.si-hold-tbl:not(#_):not(#_):not(#_):not(#_):not(#_) { table-layout: fixed !important; width: 100% !important; min-width: 0 !important; }
  html.aiq-phone #si-content table.si-hold-tbl :is(th, td):is(:nth-child(2), :nth-child(4)):not(#_):not(#_):not(#_):not(#_):not(#_) { overflow: hidden; text-overflow: clip; white-space: nowrap; }
  html.aiq-phone #si-content table.si-hold-tbl :is(th, td):nth-child(2):not(#_):not(#_):not(#_):not(#_):not(#_) { width: 64% !important; }
  html.aiq-phone #si-content #hold-table-wrap:not(#_):not(#_):not(#_):not(#_):not(#_) { margin-left: 0 !important; margin-right: 0 !important; width: 100% !important; }
  /* Most owned and Latest moves look exactly like the investors table (user, 2026-10-29): no heading block, no column-menu carets */
  html.aiq-phone #si-content :is(.si-mvh, .si-pane-head, .si-scr-head):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #si-content table.aiq-tbl thead :is(.atc-btn, .si-thc, .tb-sort, .si-thf svg):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  /* no summary sentences above tables on phones (user, 2026-10-29) */
  html.aiq-phone #si-content .si-insight:not(#_):not(#_):not(#_) { display: none !important; }
  /* Government contracts' div-based header matches every table header: 52px, grey, no top border */
  html.aiq-phone .gm-thead:not(#_):not(#_):not(#_) { min-height: 52px !important; height: 52px !important; border-top: 0 !important; align-items: center; }
  html.aiq-phone #si-content .si-panel:not(#_):not(#_):not(#_):not(#_) { background: transparent !important; }
  /* Congress list: views live in the top-right menu, no search — the toolbar row goes */
  html.aiq-phone.at-p-congress :is(.cg-row1, .cg-row2, #cg-vbtn, .cg-search):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  /* Insiders / Earnings / Gov. contracts on phones (user, 2026-10-29): views in the ≡ menu, no toolbar rows, two or three columns */
  html.aiq-phone :is(.ins-bar, .ec-wk-head, #ec-note, #gm-bar):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone table.ins-tbl :is(th, td):is(:nth-child(2), :nth-child(3), :nth-child(5), :nth-child(6), :nth-child(8)):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone table.ins-tbl :is(th, td):is(:nth-child(7)):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: table-cell !important; }
  html.aiq-phone table.ec-at-tbl :is(th, td):is(:nth-child(3), :nth-child(5), :nth-child(6)):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  /* Gov. contracts keeps every column on phones (user, 2026-10-29): the grid scrolls sideways in .gm-scrollx */
  html.aiq-phone :is(.gm-addth, .gm-addtd, th.aiq-addcol-th, td.aiq-addcol-td):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  /* Screener's My screens: views in the ≡ menu; the view / Sorted by / Filter rows, the stray name row and the shortcut block go */
  html.aiq-phone.sch-on :is(#sch-home .sch-row2, #sch-home .sch-bar, #scx-top, #sch-home .aiq-more):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #sch-home table :is(th, td):is(:nth-child(3), :nth-child(4), :nth-child(5)):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #sch-home table :is(th, td):is(:nth-child(6), :nth-child(7)):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: table-cell !important; }
  /* an open screen on phones (user, 2026-10-29): the name / picker / Edit criteria / pager rows go (they're in the ≡ menu); Company · Price · Day */
  html.aiq-phone:not(.sch-on) #scx-top:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #screener-table :is(th, td):not(:nth-child(1)):not(:nth-child(4)):not(:nth-child(5)):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #screener-table :is(th, td):is(:nth-child(4), :nth-child(5)):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: table-cell !important; }
  html.aiq-phone #screener-table:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { width: 100% !important; min-width: 0 !important; table-layout: fixed !important; }
  html.aiq-phone #screener-table :is(th, td):nth-child(1):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { width: 52% !important; }
  /* the screen's header row stays frozen on top while its rows scroll (user, 2026-10-29): every cell sticky (the Company cell
     was left static, so it scrolled away out of line with Price / Day) and opaque, above the frozen first column */
  html.aiq-phone #screener-table thead th:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { position: sticky !important; top: 0 !important; z-index: 20 !important; }
  html.aiq-phone:not([data-theme="dark"]) #screener-table thead th:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: #fafafa !important; }
  html.aiq-phone[data-theme="dark"] #screener-table thead th:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: rgb(37, 41, 51) !important; }
  /* no rise-in on the screener table on phones: _look_landing.html's lklRise held a 14px translateY on .sc-layout, a strip of
     scrolled rows showed between the page header and the frozen table header (user, 2026-10-29) */
  html.aiq-phone .sc-layout:not(#_):not(#_):not(#_) { animation: none !important; transform: none !important; }
  /* the screener page itself must not scroll (only the table does): main's 104px bottom room for the tab bar + the 900px table made
     the page 120px taller than the screen, and a small page scroll slid table rows up behind the header (user, 2026-10-29: "I still see a gap") */
  html.aiq-phone main:has(> .sc-layout):not(#_):not(#_):not(#_):not(#_):not(#_) { padding-bottom: 0 !important; }
  /* the table takes whatever height the header leaves (it's 70px in dark, 82px in light — a fixed calc let the light page scroll 11px) */
  html.aiq-phone main:has(> .sc-layout):not(#_):not(#_):not(#_):not(#_):not(#_) { display: flex !important; flex-direction: column; height: 100dvh !important; min-height: 0 !important; overflow: hidden !important; box-sizing: border-box; }
  html.aiq-phone main:has(> .sc-layout) > #ph-th:not(#_):not(#_):not(#_) { flex: none; }
  html.aiq-phone .sc-layout:not(#_):not(#_):not(#_):not(#_):not(#_) { flex: 1 1 0; min-height: 0; height: auto !important; }
  html.aiq-phone :is(.sc-grid-scroll, #sch-home):not(#_):not(#_):not(#_):not(#_):not(#_) { padding-bottom: 110px !important; }   /* last rows clear the tab bar */
  /* rows come to rest flush under the frozen header, never half-hidden behind it (user, 2026-10-29: the cut-off row showing just
     under "Company · Price · Day" read as a gap). scroll-padding = the 52px header, so a snapped row starts right below it */
  html.aiq-phone .sc-grid-scroll:not(#_):not(#_):not(#_):not(#_):not(#_) { scroll-snap-type: y mandatory; scroll-padding-top: 52px; }
  html.aiq-phone #screener-table tbody tr:not(#_):not(#_):not(#_):not(#_):not(#_) { scroll-snap-align: start; }
  /* belt and braces against the strip while scrolling (user, 2026-10-29): a fling at the table's end can't drag or bounce the page,
     and the page header is an opaque layer above the table so nothing can show between it and the column headers */
  html.aiq-phone:has(.sc-layout), html.aiq-phone:has(.sc-layout) body { overscroll-behavior: none; }
  html.aiq-phone .sc-grid-scroll:not(#_):not(#_):not(#_):not(#_):not(#_) { overscroll-behavior: contain; }
  html.aiq-phone main:has(> .sc-layout) > #ph-th:not(#_):not(#_):not(#_):not(#_):not(#_) { position: relative; z-index: 40; background: var(--sh-bed, #fafafa); }
  html.aiq-phone:not([data-theme="dark"]) main:has(> .sc-layout) > #ph-th:not(#_):not(#_):not(#_):not(#_):not(#_) { background: #fafafa; }
  html.aiq-phone[data-theme="dark"] main:has(> .sc-layout) > #ph-th:not(#_):not(#_):not(#_):not(#_):not(#_) { background: rgb(37, 41, 51); }
  /* the real cause of the strip while scrolling (user's console check, 2026-10-29: at rest the header bar, column headers and table top
     all sit at 83px): the table scroller's fade mask makes Chrome scroll the rows on the compositor but redraw the frozen header on the
     main thread, so mid-scroll the rows run a few frames ahead and peek above "Company". No mask on phones = header and rows move together */
  html.aiq-phone .sc-grid-scroll:not(#_):not(#_):not(#_):not(#_):not(#_) { -webkit-mask-image: none !important; mask-image: none !important; }
  /* the screener's column headers as their own row above the scroller (aiq-phone-navmenu.js screener() head()) */
  html.aiq-phone:has(#ph-sc-head:not([hidden])) #screener-table thead:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #ph-sc-head:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { flex: none; width: 100% !important; table-layout: fixed; border-collapse: collapse; margin: 0; }
  html.aiq-phone #ph-sc-head[hidden]:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #ph-sc-head th:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { box-sizing: border-box; height: 52px; padding: 0 12px 0 8px !important; font-size: 16px !important; font-weight: 400 !important; text-align: left;
    color: #727C94 !important; background: #fafafa !important; border: 0 !important; border-bottom: 1px solid rgb(243, 243, 243) !important; white-space: nowrap; cursor: pointer; }
  html.aiq-phone #ph-sc-head th:first-child:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { width: 52%; }
  html.aiq-phone #ph-sc-head th + th:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { border-left: 1px solid rgb(243, 243, 243) !important; }
  html.aiq-phone #ph-sc-head th i:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { font-size: 11px; margin-right: 4px; color: #455DDC; }
  html.aiq-phone[data-theme="dark"] #ph-sc-head th:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { color: #9AA2B4 !important; background: rgb(37, 41, 51) !important; border-bottom-color: rgb(53, 57, 67) !important; }
  html.aiq-phone[data-theme="dark"] #ph-sc-head th + th:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { border-left-color: rgb(53, 57, 67) !important; }
  html.aiq-phone:has(#ph-sc-head:not([hidden])) .sc-grid-scroll:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { scroll-padding-top: 0; }
  /* the copy's cells take the widths head() copies from the rows (the frozen-first-column rule, ph-c1, would pin it at 202px) */
  html.aiq-phone #ph-sc-head:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { table-layout: fixed !important; }
  html.aiq-phone #ph-sc-head th:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { min-width: 0 !important; max-width: none !important; position: static !important; }
}

/* ==== css/aiq-phone-account.css ==== */
/* Phone layout, style A — Settings sections, AI settings, Support inbox/tickets/articles, affiliate dashboard, /setup, report viewer, error pages.
   Same rules as aiq-phone.css: every rule sits inside @media (max-width: 767px) and starts with html.aiq-phone
   (tests/test_phone_layout.py checks every aiq-phone*.css file). Loaded by _phone.html after aiq-phone.css. */

/* ── Settings (/settings/<section>): section row as pills, choices as pills / soft tiles ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] main .st-back { border-radius: 999px !important; border-color: transparent !important;
    background: var(--ph-card) !important; box-shadow: var(--ph-shadow); opacity: 1; height: 36px; padding: 0 14px 0 10px; }
  html.aiq-phone.aiq-phone[data-theme] main .st-nav { gap: 4px; padding: 2px 0 4px; }
  html.aiq-phone.aiq-phone[data-theme] main .st-nav a { border-radius: 999px !important; height: 36px; padding: 0 14px;
    font-weight: 600; font-size: 14px; }
  html.aiq-phone.aiq-phone[data-theme] main .st-nav a.is-active { background: var(--ph-card) !important; color: var(--ph-ink) !important;
    box-shadow: var(--ph-shadow); }
  html.aiq-phone.aiq-phone[data-theme] main .st-tile { border-radius: var(--ph-r-sm) !important; }
  html.aiq-phone.aiq-phone[data-theme] main .st-pill span { border-radius: 999px !important; }
  html.aiq-phone.aiq-phone[data-theme] main .st-plan-ic { border-radius: var(--ph-r-sm) !important; }
}

/* Your data / Plan rows (icon · text · button): the button drops under the text instead of squeezing it to one word a line */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] main .st-plan { flex-wrap: wrap !important; row-gap: 12px; }
  html.aiq-phone.aiq-phone[data-theme] main .st-plan > div:not(.st-plan-ic) { flex: 1 1 0 !important; min-width: 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] main .st-plan > .st-btn { flex: 1 1 100% !important; margin-left: 0 !important; justify-content: center; }

  /* AI settings (/ai/settings): provider cards and model choices */
  html.aiq-phone.aiq-phone[data-theme] main .ais-card { border-radius: var(--ph-r) !important; border-color: var(--ph-edge) !important;
    box-shadow: none !important; background: var(--ph-card) !important; }
  html.aiq-phone.aiq-phone[data-theme] main .ais-m { border-radius: var(--ph-r-sm) !important; }
}

/* ── Support: inbox filter as pills, topic choices and drop zone soft-cornered ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] main .sp-tabs a { border-radius: 999px !important; height: 36px; padding: 0 14px; }
  html.aiq-phone.aiq-phone[data-theme] main .sp-tabs a.is-active { background: var(--ph-card) !important; box-shadow: var(--ph-shadow); }
  html.aiq-phone.aiq-phone[data-theme] main :is(.sp-cpick span, .sp-drop, .sp-thumb) { border-radius: var(--ph-r-sm) !important; }
  html.aiq-phone.aiq-phone[data-theme] main .sp-status { border-radius: 999px !important; }
  html.aiq-phone.aiq-phone[data-theme] main .sp-btn { border-radius: 999px !important; }
}

/* Error pages (_look_error.html): buttons as pills */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] main .lke-b { border-radius: 999px !important; padding-left: 18px !important; padding-right: 18px !important; }
}

/* ── Re-review in the approved look (2026-10-19): flat white page, outlined cards, tab rows = the stock page's chips
   (grey, the open one filled dark; user: every tab row in the financials style). Settings' row is .st-nav (the central
   rule in aiq-phone.css styles .st-tabs) and Support's inbox filter is .sp-tabs, so both are chip-styled here. ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] main :is(.st-nav, .sp-tabs) { display: flex !important; flex-direction: row !important; gap: 8px !important;
    overflow-x: auto !important; scrollbar-width: none; padding: 2px 0 4px !important; margin-bottom: 14px !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.st-nav, .sp-tabs)::-webkit-scrollbar { display: none; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.st-nav, .sp-tabs) > a {
    flex: none !important; height: 38px !important; padding: 0 15px !important; margin: 0 !important; display: inline-flex !important; align-items: center !important;
    gap: 6px !important; border: 0 !important; border-radius: var(--ph-r-sm) !important; box-shadow: none !important; background: rgba(118,118,128,.12) !important;
    color: var(--ph-ink) !important; font: 500 15px Inter, sans-serif !important; white-space: nowrap !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.st-nav, .sp-tabs) > a.is-active { background: #0F1115 !important; color: #fff !important; font-weight: 600 !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] main :is(.st-nav, .sp-tabs) > a.is-active { background: #F1F2F4 !important; color: #0F1115 !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.st-nav, .sp-tabs) > a.is-active :is(i, b) { color: inherit !important; }
  /* the open section leads the row, so it's always on screen (no script scrolls it into view) */
  html.aiq-phone.aiq-phone[data-theme] main .st-nav > a.is-active { order: -1; }
  html.aiq-phone.aiq-phone[data-theme] main .st-nav > a i { display: none !important; }       /* text-only chips, like the stock page */
  html.aiq-phone.aiq-phone[data-theme] main .st-nav-sep { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] main .sp-tabs > a b { font-weight: 500; opacity: .6; }

  /* Settings Back: a grey round button like the chips */
  html.aiq-phone.aiq-phone[data-theme] main .st-back { background: rgba(118,118,128,.12) !important; box-shadow: none !important; }

  /* Account hub: "Settings" heading no longer jammed under the profile card (the hidden page title left it at 4px) */
  html.aiq-phone.aiq-phone[data-theme] .ac > .ac-me + .ac-h, html.aiq-phone.aiq-phone[data-theme] .ac > .ac-pro + .ac-h { margin-top: 22px !important; }

  /* Support: hero is a plain outlined card on the white page (no blue wash), Popular links as soft chips */
  html.aiq-phone.aiq-phone[data-theme] main .sp-hero { background: var(--ph-card) !important; border: 1px solid var(--ph-edge) !important; border-radius: var(--ph-r) !important; }
  html.aiq-phone.aiq-phone[data-theme] main .sp-hero-links a { border: 0 !important; border-radius: var(--ph-r-sm) !important; background: rgba(118,118,128,.12) !important;
    color: var(--ph-ink) !important; padding: 6px 10px !important; }
}

/* Getting started (/start): its sticky jump row as chips, under the phone top bar (it stuck at 48px, behind it) */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] main .gs-jump { top: var(--ph-top) !important; border-bottom: 0 !important; background: var(--ph-bed) !important; }
  html.aiq-phone.aiq-phone[data-theme] main .gs-jump .gs-wrap { gap: 8px !important; padding: 6px 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] main .gs-jump a { height: 38px; padding: 0 15px !important; display: inline-flex; align-items: center; border: 0 !important;
    border-radius: var(--ph-r-sm) !important; background: rgba(118,118,128,.12); color: var(--ph-ink) !important; font: 500 15px Inter, sans-serif !important; }
  html.aiq-phone.aiq-phone[data-theme] main .gs-jump a.on { background: #0F1115; color: #fff !important; font-weight: 600 !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] main .gs-jump a.on { background: #F1F2F4; color: #0F1115 !important; }
}

/* One flat colour in dark mode too: these cards kept their own #292929 / #333 fills on the #161616 page, the grey-on-grey
   the user asked to drop. Same colour as the page, outlined; the form footer band goes flat with a hairline. */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] .ac { --ac-card: var(--ph-card); --ac-line: var(--ph-edge); }
  html.aiq-phone.aiq-phone[data-theme] main :is(.st-card, .st-preview-card, .sp-card, .sp-hero, .ais-card, .gs-card) {
    background: var(--ph-card) !important; border-color: var(--ph-edge) !important; }
  html.aiq-phone.aiq-phone[data-theme] main .st-foot { background: transparent !important; border-top: 1px solid var(--ph-edge) !important; }
}

/* Help & support home on phones looks like Explore (user, 2026-10-29: "make the support page look more like the explore
   page"): the search row loses its outer box; the "Guides 11" line goes; each category is a plain grey heading (no icon,
   no count, no tinted band) over an inset rounded group (18px, 1px line) of 56px rows: a coloured 30px icon square (its own icon per guide, colours cycling per row as on Explore),
   17px title, chevron, divider inset to the text. "Your requests" follows the same pattern. Explore's own rules:
   aiq-phone-attio.css "Explore as an inset grouped list". */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] main .sp-home .sp-hero:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 4px !important; }
  html.aiq-phone[data-theme] main .sp-home .sp-at-sec:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone[data-theme] main .sp-home :is(.sp-cat, .sp-side .sp-card):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
    overflow: visible !important; padding: 0 !important; margin: 0 !important; }
  html.aiq-phone[data-theme] main .sp-home :is(.sp-cat, .sp-side .sp-card):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::after { display: none !important; }
  html.aiq-phone[data-theme] main .sp-home :is(.sp-cat-h, .sp-card-h):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: transparent !important; border: 0 !important; padding: 0 !important; margin: 26px 4px 8px !important; min-height: 0 !important; }
  html.aiq-phone[data-theme] main .sp-home :is(.sp-cat-h, .sp-card-h) h2:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { font-size: 16px !important; font-weight: 450 !important; color: var(--ph-mut) !important; }
  html.aiq-phone[data-theme] main .sp-home :is(.sp-cat-ic, .sp-cat-n, .sp-card-h .sp-at-n, .sp-a-sum):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone[data-theme] main .sp-home :is(.sp-alist, .sp-tickets):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: var(--ph-card) !important; border: 1px solid var(--ph-line) !important; border-radius: 18px !important; overflow: hidden !important; padding: 0 !important; }
  html.aiq-phone[data-theme] main .sp-home :is(.sp-alist, .sp-tickets) > li:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { border: 0 !important; position: relative; }
  html.aiq-phone[data-theme] main .sp-home :is(.sp-alist, .sp-tickets) > li + li:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::before { content: ""; position: absolute; top: 0; left: 58px; right: 0; border-top: 1px solid var(--ph-line); }
  html.aiq-phone[data-theme] main .sp-home .sp-alist a:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { position: relative; display: flex !important; align-items: center !important; gap: 14px !important; min-height: 56px !important;
    padding: 0 40px 0 16px !important; background: transparent !important; border: 0 !important; border-radius: 0 !important; color: var(--ph-ink) !important; }
  html.aiq-phone[data-theme] main .sp-home .sp-alist a .sp-a-t:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { font-size: 17px !important; font-weight: 450 !important; color: var(--ph-ink) !important; }
  html.aiq-phone[data-theme] main .sp-home .sp-alist a > i:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone[data-theme] main .sp-home .sp-alist a .sp-at-ic:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { flex: none; width: 30px !important; height: 30px !important; border-radius: 8px !important; display: grid !important; place-items: center;
    background: #2a6df4 !important; border: 0 !important; box-shadow: none !important; }
  html.aiq-phone[data-theme] main .sp-home .sp-alist a .sp-at-ic i:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { font-size: 17px !important; color: #fff !important; }
  /* colours cycle per row, as on Explore */
  html.aiq-phone[data-theme] main .sp-home .sp-alist > li:nth-child(6n+2) .sp-at-ic:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: #12b981 !important; }
  html.aiq-phone[data-theme] main .sp-home .sp-alist > li:nth-child(6n+3) .sp-at-ic:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: #f97316 !important; }
  html.aiq-phone[data-theme] main .sp-home .sp-alist > li:nth-child(6n+4) .sp-at-ic:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: #8b5cf6 !important; }
  html.aiq-phone[data-theme] main .sp-home .sp-alist > li:nth-child(6n+5) .sp-at-ic:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: #06b6d4 !important; }
  html.aiq-phone[data-theme] main .sp-home .sp-alist > li:nth-child(6n) .sp-at-ic:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: #ec4899 !important; }
  html.aiq-phone[data-theme] main .sp-home :is(.sp-alist a, .sp-trow):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::after { content: ""; position: absolute; right: 18px; top: 50%; width: 7px; height: 7px; margin-top: -4px;
    border-right: 1.6px solid var(--ph-mut); border-top: 1.6px solid var(--ph-mut); transform: rotate(45deg); opacity: .6; }
  html.aiq-phone[data-theme] main .sp-home .sp-trow:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { position: relative; padding-right: 40px !important; }
}

/* Account hub looks like Explore (user, 2026-10-29: "revamp the account page on mobile so it looks like our explore page"):
   grey 16px headings over inset rounded groups (18px, 1px line) of 56px rows — a coloured 30px icon square (colours cycle
   per row, as on Explore), 17px label, chevron, divider inset to the text. The profile row is its own group with a 46px
   avatar; Sign out keeps its red label on a red square. Explore's own rules: aiq-phone-attio.css "Explore as an inset grouped list". */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] main .ac .ac-grp:not(#_):not(#_):not(#_) { background: var(--ph-card) !important; border: 1px solid var(--ph-line) !important;
    border-radius: 18px !important; overflow: hidden !important; box-shadow: none !important; margin-left: 0 !important; margin-right: 0 !important; }
  html.aiq-phone[data-theme] main .ac .ac-h:not(#_):not(#_):not(#_) { font-size: 16px !important; font-weight: 450 !important; color: var(--ph-mut) !important;
    margin: 26px 4px 8px !important; padding: 0 !important; }
  html.aiq-phone[data-theme] main .ac .ac-it:not(#_):not(#_):not(#_) { gap: 14px; min-height: 56px; padding: 0 18px 0 16px !important; }
  html.aiq-phone[data-theme] main .ac .ac-it + .ac-it:not(#_):not(#_):not(#_)::before { left: 60px; border-top-color: var(--ph-line); }
  html.aiq-phone[data-theme] main .ac .ac-it > i:not(#_):not(#_):not(#_) { width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center;
    font-size: 17px; color: #fff !important; background: #2a6df4; }
  html.aiq-phone[data-theme] main .ac .ac-it:nth-child(6n+2) > i:not(#_):not(#_):not(#_) { background: #12b981; }
  html.aiq-phone[data-theme] main .ac .ac-it:nth-child(6n+3) > i:not(#_):not(#_):not(#_) { background: #f97316; }
  html.aiq-phone[data-theme] main .ac .ac-it:nth-child(6n+4) > i:not(#_):not(#_):not(#_) { background: #8b5cf6; }
  html.aiq-phone[data-theme] main .ac .ac-it:nth-child(6n+5) > i:not(#_):not(#_):not(#_) { background: #06b6d4; }
  html.aiq-phone[data-theme] main .ac .ac-it:nth-child(6n) > i:not(#_):not(#_):not(#_) { background: #ec4899; }
  html.aiq-phone[data-theme] main .ac .ac-it.out > i:not(#_):not(#_):not(#_) { background: #F73463; }
  html.aiq-phone[data-theme] main .ac .ac-it.out .tx b:not(#_):not(#_):not(#_) { color: #c8203f !important; }
  html.aiq-phone[data-theme="dark"] main .ac .ac-it.out .tx b:not(#_):not(#_):not(#_) { color: #F73463 !important; }
  html.aiq-phone[data-theme] main .ac .ac-it .tx b:not(#_):not(#_):not(#_) { font-size: 17px; font-weight: 450; }
  html.aiq-phone[data-theme] main .ac .ac-it .tx small:not(#_):not(#_):not(#_) { font-size: 13.5px; }
  html.aiq-phone[data-theme] main .ac .ac-it .v:not(#_):not(#_):not(#_) { font-size: 16px; }
  html.aiq-phone[data-theme] main .ac .ac-it:not(#_):not(#_):not(#_)::after { width: 7px; height: 7px; border-width: 1.6px 1.6px 0 0; opacity: .6; }
  html.aiq-phone[data-theme] main .ac .ac-me:not(#_):not(#_):not(#_) { gap: 14px; padding: 14px 16px !important; margin-top: 8px; }
  html.aiq-phone[data-theme] main .ac .ac-me b:not(#_):not(#_):not(#_) { font-size: 18px; }
  html.aiq-phone[data-theme] main .ac .ac-pro:not(#_):not(#_):not(#_) { border-radius: 18px !important; margin-left: 0 !important; margin-right: 0 !important; }
  html.aiq-phone[data-theme] main .ac .ac-pro .lg:not(#_):not(#_):not(#_) { border-radius: 8px !important; }
}

/* One back button on phones (user, 2026-10-29: "There is no need for two back buttons"): the top bar's round back
   button already leaves Settings, so the page's own "‹ Back" pill goes. */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] main .st .st-back:not(#_):not(#_):not(#_) { display: none !important; }
}

/* Settings sections look like Explore (user, 2026-10-29: "do all four"): each .st-card's header becomes a grey 16px
   heading above it, and its rows become the inset rounded group (18px, 1px line) — the card itself loses its box and
   its rows carry the background, the side lines, the rounded first/last corners and a 16px-inset divider (a background
   gradient, so no row's own ::before/::after is taken). Rows are 16px type; switches iPhone-sized. */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] main .st .st-card:not(#_):not(#_):not(#_) { background: transparent !important; border: 0 !important; border-radius: 0 !important;
    box-shadow: none !important; overflow: visible !important; }
  html.aiq-phone[data-theme] main .st .st-card > .st-card-h:not(#_):not(#_):not(#_) { background: transparent !important; border: 0 !important; padding: 0 !important; margin: 6px 4px 8px !important; }
  html.aiq-phone[data-theme] main .st .st-card > .st-card-h h3:not(#_):not(#_):not(#_) { font-size: 16px !important; font-weight: 450 !important; color: var(--ph-mut) !important; }
  html.aiq-phone[data-theme] main .st .st-card > .st-card-h p:not(#_):not(#_):not(#_) { font-size: 13.5px !important; }
  html.aiq-phone[data-theme] main .st .st-card > :not(.st-card-h):not([type=hidden]):not(#_):not(#_):not(#_) {
    background: linear-gradient(var(--ph-line), var(--ph-line)) 16px 0 / calc(100% - 16px) 1px no-repeat, var(--ph-card) !important;
    border: solid var(--ph-line) !important; border-width: 0 1px !important; border-radius: 0 !important; padding-left: 16px !important; padding-right: 16px !important; }
  /* first row of a group: top line + corners, no divider */
  html.aiq-phone[data-theme] main .st .st-card > :is(.st-card-h + *, :first-child:not(.st-card-h):not([type=hidden]), [type=hidden]:first-child + :not(.st-card-h)):not(#_):not(#_):not(#_) {
    background: var(--ph-card) !important; border-top-width: 1px !important; border-top-left-radius: 18px !important; border-top-right-radius: 18px !important; }
  html.aiq-phone[data-theme] main .st .st-card > :last-child:not(.st-card-h):not(#_):not(#_):not(#_) {
    border-bottom-width: 1px !important; border-bottom-left-radius: 18px !important; border-bottom-right-radius: 18px !important; }
  html.aiq-phone[data-theme] main .st :is(.st-toggle-row, .st-kv, .st-row):not(#_):not(#_):not(#_) { border-bottom: 0 !important; }
  html.aiq-phone[data-theme] main .st .st-toggle-row:not(#_):not(#_):not(#_) { align-items: center; gap: 14px; min-height: 56px; padding-top: 12px !important; padding-bottom: 12px !important; }
  html.aiq-phone[data-theme] main .st .st-toggle-row .t-title:not(#_):not(#_):not(#_) { font-size: 16px; font-weight: 450; }
  /* the digest row stacks (text over its Off / Daily / Weekly pills): centring it pulled the text in from the edge */
  html.aiq-phone[data-theme] main .st .st-toggle-row.st-digest:not(#_):not(#_):not(#_) { align-items: stretch; }
  html.aiq-phone[data-theme] main .st .st-toggle-row .t-desc:not(#_):not(#_):not(#_) { font-size: 13.5px; color: var(--ph-mut); margin-top: 3px; }
  html.aiq-phone[data-theme] main .st .st-kv:not(#_):not(#_):not(#_) { min-height: 52px; font-size: 16px; }
  html.aiq-phone[data-theme] main .st .st-kv .k:not(#_):not(#_):not(#_) { color: var(--ph-ink); }
  html.aiq-phone[data-theme] main .st .st-kv .v:not(#_):not(#_):not(#_) { color: var(--ph-mut); font-weight: 400; }
  html.aiq-phone[data-theme] main .st .st-switch:not(#_):not(#_):not(#_) { width: 46px; height: 28px; margin-top: 0; }
  html.aiq-phone[data-theme] main .st .st-switch span:not(#_):not(#_):not(#_)::after { top: 3px; left: 3px; width: 22px; height: 22px; box-shadow: 0 1px 3px rgba(0,0,0,.25); }
  html.aiq-phone[data-theme] main .st .st-switch input:checked + span:not(#_):not(#_):not(#_)::after { left: 21px; }
  html.aiq-phone[data-theme] main .st .st-preview-card:not(#_):not(#_):not(#_) { border-radius: 18px !important; }

  /* Profile fields as record-details rows (the Attio screenshot the user sent): label left in ink, the
     value right in grey, borderless and edited in place; tapping the label focuses the field. The bio stays stacked.
     The small help lines under labels drop (the form still checks length / format). Password fields
     stay labelled boxes: empty and borderless, nothing showed where to type. */
  html.aiq-phone[data-theme] main .st #st-profile-form .st-row:has(.st-input):not(:has(.st-textarea)):not(#_):not(#_):not(#_) {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr) !important; align-items: center; gap: 12px !important; min-height: 52px; padding-top: 6px !important; padding-bottom: 6px !important; }
  html.aiq-phone[data-theme] main .st #st-profile-form .st-row > label:not(#_):not(#_):not(#_) { font-size: 16px !important; font-weight: 450 !important; color: var(--ph-ink); padding-top: 0 !important; }
  html.aiq-phone[data-theme] main .st #st-profile-form .st-row:has(.st-input):not(:has(.st-textarea)) .st-help:not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone[data-theme] main .st #st-profile-form .st-row :is(.st-input, .st-textarea):not(#_):not(#_):not(#_) { border: 0 !important; background: transparent !important; box-shadow: none !important;
    padding: 0 !important; font-size: 16px !important; color: var(--ph-ink2) !important; }
  html.aiq-phone[data-theme] main .st #st-profile-form .st-row :is(.st-input):not(#_):not(#_):not(#_) { text-align: right; height: 40px; }
  html.aiq-phone[data-theme] main .st #st-profile-form .st-row .st-prefix:not(#_):not(#_):not(#_) { justify-content: flex-end; }
  html.aiq-phone[data-theme] main .st #st-profile-form .st-row .st-prefix .st-input:not(#_):not(#_):not(#_) { text-align: right; height: 40px; width: auto; flex: 1 1 auto; min-width: 0; }
  html.aiq-phone[data-theme] main .st #st-profile-form .st-row .st-prefix span:not(#_):not(#_):not(#_) { display: none !important; }   /* the row already says Handle; the @ box sat far from the right-aligned value */
  html.aiq-phone[data-theme] main .st #st-profile-form .st-row :is(.st-input, .st-textarea):focus:not(#_):not(#_):not(#_) { outline: 0 !important; color: var(--ph-ink) !important; }
  html.aiq-phone[data-theme] main .st #st-profile-form .st-row:has(> .st-textarea, > div > .st-textarea):not(#_):not(#_):not(#_) { padding-top: 14px !important; padding-bottom: 12px !important; }
}

/* Getting started (/start): the section list at the top looks like Explore — Basics / Key features as grey headings over
   inset rounded groups of 56px rows with a solid coloured 30px icon square (each row keeps its own colour), chevron. */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] main .gsa-nav:not(#_):not(#_):not(#_) { padding: 0 4px 8px !important; border: 0 !important; background: transparent !important; }
  /* the nav's 4px sides put the groups on the title's 16px edge (they sat at main's 12px; 2026-11-08 spacing pass) */
  html.aiq-phone[data-theme] main .gsa-nav .gs-nl:not(#_):not(#_):not(#_) { padding: 0 !important; margin: 26px 4px 8px; font: 450 16px/20px Inter, system-ui, sans-serif !important; color: var(--ph-mut) !important; }
  html.aiq-phone[data-theme] main .gsa-nav .gs-nl:first-child:not(#_):not(#_):not(#_) { margin-top: 4px; }
  html.aiq-phone[data-theme] main .gsa-nav .gs-ni:not(#_):not(#_):not(#_) { position: relative; height: auto !important; min-height: 56px; margin: 0 !important; padding: 0 40px 0 16px !important; gap: 14px !important;
    border: solid var(--ph-line); border-width: 0 1px; border-radius: 0 !important; color: var(--ph-ink) !important; font: 450 17px/22px Inter, system-ui, sans-serif !important;
    background: linear-gradient(var(--ph-line), var(--ph-line)) 60px 0 / calc(100% - 60px) 1px no-repeat, var(--ph-card) !important; }
  html.aiq-phone[data-theme] main .gsa-nav .gs-nl + .gs-ni:not(#_):not(#_):not(#_) { background: var(--ph-card) !important; border-top-width: 1px; border-top-left-radius: 18px !important; border-top-right-radius: 18px !important; }
  html.aiq-phone[data-theme] main .gsa-nav .gs-ni:is(:has(+ .gs-nl), :last-child):not(#_):not(#_):not(#_) { border-bottom-width: 1px; border-bottom-left-radius: 18px !important; border-bottom-right-radius: 18px !important; }
  html.aiq-phone[data-theme] main .gsa-nav .gs-ni:not(#_):not(#_):not(#_)::after { content: ""; position: absolute; right: 18px; top: 50%; width: 7px; height: 7px; margin-top: -4px;
    border-right: 1.6px solid var(--ph-mut); border-top: 1.6px solid var(--ph-mut); transform: rotate(45deg); opacity: .6; }
  html.aiq-phone[data-theme] main .gsa-nav .gs-ic:not(#_):not(#_):not(#_) { flex: none; width: 30px !important; height: 30px !important; border-radius: 8px !important; display: grid !important; place-items: center;
    background: #64748b !important; color: #fff !important; }
  html.aiq-phone[data-theme] main .gsa-nav .gs-ic i:not(#_):not(#_):not(#_) { font-size: 17px !important; color: #fff !important; }
  html.aiq-phone[data-theme] main .gsa-nav .gs-ic.at-t-blue:not(#_):not(#_):not(#_) { background: #2a6df4 !important; }
  html.aiq-phone[data-theme] main .gsa-nav .gs-ic.at-t-violet:not(#_):not(#_):not(#_) { background: #8b5cf6 !important; }
  html.aiq-phone[data-theme] main .gsa-nav .gs-ic.at-t-amber:not(#_):not(#_):not(#_) { background: #f59e0b !important; }
  html.aiq-phone[data-theme] main .gsa-nav .gs-ic.at-t-orange:not(#_):not(#_):not(#_) { background: #f97316 !important; }
  html.aiq-phone[data-theme] main .gsa-nav .gs-ic.at-t-green:not(#_):not(#_):not(#_) { background: #12b981 !important; }
  html.aiq-phone[data-theme] main .gsa-nav .gs-ic.at-t-teal:not(#_):not(#_):not(#_) { background: #06b6d4 !important; }
  html.aiq-phone[data-theme] main .gsa-nav .gs-ic:is(.at-t-rose, .at-t-pink, .at-t-red):not(#_):not(#_):not(#_) { background: #ec4899 !important; }
}

/* Preferences, Your data, AI settings and New request look like Explore too (user, 2026-10-29: "do all four").
   Choices that were pill clusters (Start page, Ticker search opens, the support topic) become grouped rows — one choice
   per row, a blue check on the chosen one, no tint — the way iPhone Settings picks one option. */
@media (max-width: 767px) {
  /* Preferences: each field's label is the grey heading, its choices the group; the theme pictures stay tiles */
  /* one more :not(#_) than the group's first-row rule above (white fill + top corners), which out-ranked this one and drew
     the Theme row as a half-rounded white panel with the tiles touching its edges (2026-11-08 phone corners pass) */
  html.aiq-phone[data-theme] main .st .st-card:has(.st-tiles) > .st-row:not(#_):not(#_):not(#_):not(#_) { display: block !important; background: transparent !important; border: 0 !important;
    border-radius: 0 !important; padding: 0 !important; }
  html.aiq-phone[data-theme] main .st .st-card:has(.st-tiles) > .st-row > .st-label:not(#_):not(#_):not(#_) { display: block; margin: 26px 4px 8px; padding: 0 !important;
    font-size: 16px !important; font-weight: 450 !important; color: var(--ph-mut) !important; }
  html.aiq-phone[data-theme] main .st .st-card:has(.st-tiles) > .st-row:first-of-type > .st-label:not(#_):not(#_):not(#_) { margin-top: 6px; }
  html.aiq-phone[data-theme] main .st .st-card:has(.st-tiles) .st-tile:not(#_):not(#_):not(#_) { border-radius: 14px !important; background: var(--ph-card); }
  html.aiq-phone[data-theme] main .st .st-card:has(.st-tiles) .st-tile-art:not(#_):not(#_):not(#_) { border-radius: 8px; }
  html.aiq-phone[data-theme] main .st .st-card:has(.st-tiles) > .st-foot:not(#_):not(#_):not(#_) { background: transparent !important; border: 0 !important; border-radius: 0 !important;
    padding: 16px 0 0 !important; }
  html.aiq-phone[data-theme] main .st .st-card:has(.st-tiles) .st-foot .st-btn:not(#_):not(#_):not(#_) { width: 100%; justify-content: center; height: 46px; border-radius: 999px !important; font-size: 16px; }
  html.aiq-phone[data-theme] main .st .st-card:has(.st-tiles) .st-pills:not(#_):not(#_):not(#_) { display: block !important; background: var(--ph-card); border: 1px solid var(--ph-line);
    border-radius: 18px; overflow: hidden; }
  html.aiq-phone[data-theme] main .st .st-card:has(.st-tiles) .st-pill:not(#_):not(#_):not(#_) { display: block; position: relative; }
  html.aiq-phone[data-theme] main .st .st-card:has(.st-tiles) .st-pill + .st-pill:not(#_):not(#_):not(#_)::before { content: ""; position: absolute; top: 0; left: 16px; right: 0;
    border-top: 1px solid var(--ph-line); }
  html.aiq-phone[data-theme] main .st .st-card:has(.st-tiles) .st-pill span:not(#_):not(#_):not(#_),
  html.aiq-phone[data-theme] main .st .st-card:has(.st-tiles) .st-pill input:checked + span:not(#_):not(#_):not(#_) {
    display: flex !important; align-items: center; gap: 14px; min-height: 52px; padding: 0 44px 0 16px !important; border: 0 !important; border-radius: 0 !important;
    background: transparent !important; box-shadow: none !important; color: var(--ph-ink) !important; font-size: 17px !important; font-weight: 450 !important; }
  html.aiq-phone[data-theme] main .st .st-card:has(.st-tiles) .st-pill input:checked + span:not(#_):not(#_):not(#_)::after { content: ""; position: absolute; right: 20px; top: 50%;
    width: 6px; height: 12px; margin-top: -8px; border: solid var(--ph-acc); border-width: 0 2.2px 2.2px 0; transform: rotate(45deg); }
  html.aiq-phone[data-theme] main .st .st-card:has(.st-tiles) .st-pill span i:not(#_):not(#_):not(#_) { width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center;
    flex: none; font-size: 17px; color: #fff; background: #2a6df4; }

  /* Your data: the counts are label-left / number-right rows; Download keeps its button under the text */
  html.aiq-phone[data-theme] main .st .st-card:has(.st-counts) > .st-counts:not(#_):not(#_):not(#_) { display: block !important; padding: 0 !important; }
  html.aiq-phone[data-theme] main .st .st-counts > div:not(#_):not(#_):not(#_) { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px;
    padding: 0 16px !important; border: 0 !important; background: linear-gradient(var(--ph-line), var(--ph-line)) 16px 0 / calc(100% - 16px) 1px no-repeat; }
  html.aiq-phone[data-theme] main .st .st-counts > div:first-child:not(#_):not(#_):not(#_) { background: none; }
  html.aiq-phone[data-theme] main .st .st-counts > div span:not(#_):not(#_):not(#_) { order: -1; font-size: 16px; color: var(--ph-ink); }
  html.aiq-phone[data-theme] main .st .st-counts > div b:not(#_):not(#_):not(#_) { font-size: 16px; font-weight: 400; color: var(--ph-mut); }
  html.aiq-phone[data-theme] main .st .st-card > .st-plan .st-plan-ic:not(#_):not(#_):not(#_) { width: 30px; height: 30px; border-radius: 8px !important; background: #2a6df4; color: #fff; font-size: 17px; }
  html.aiq-phone[data-theme] main .st .st-card:has(.st-counts) > .st-plan .st-plan-name:not(#_):not(#_):not(#_) { font-size: 16px !important; font-weight: 450; }
  html.aiq-phone[data-theme] main .st .st-card:has(.st-counts) > .st-plan:not(#_):not(#_):not(#_) { padding-top: 14px !important; padding-bottom: 14px !important; }

  /* AI settings: each provider is one rounded group — name row, key, then its models as rows with a check (no radio dots,
     no boxed choices; the price is the grey second line). Trust and usage cards take the same 18px corners. */
  html.aiq-phone[data-theme] main :is(.ais-card, .ais-trust .ais-card):not(#_):not(#_):not(#_) { border-radius: 18px !important; border: 1px solid var(--ph-line) !important;
    background: var(--ph-card) !important; box-shadow: none !important; }
  html.aiq-phone[data-theme] main .ais-prov .ais-card:not(#_):not(#_):not(#_) { padding: 0 0 4px !important; overflow: hidden; }
  html.aiq-phone[data-theme] main .ais-prov .ais-ph:not(#_):not(#_):not(#_) { margin: 0 !important; padding: 14px 16px; border-bottom: 1px solid var(--ph-line); }
  html.aiq-phone[data-theme] main .ais-prov .ais-ph b:not(#_):not(#_):not(#_) { font-size: 17px; font-weight: 600; }
  html.aiq-phone[data-theme] main .ais-prov .ais-logo:not(#_):not(#_):not(#_) { width: 30px; height: 30px; border-radius: 8px !important; }
  html.aiq-phone[data-theme] main .ais-prov :is(.ais-fld, .ais-get, .ais-msg):not(#_):not(#_):not(#_) { padding: 0 16px; }
  html.aiq-phone[data-theme] main .ais-prov .ais-fld:not(#_):not(#_):not(#_) { margin: 14px 0 !important; }
  html.aiq-phone[data-theme] main .ais-prov .ais-fld:has(.ais-models):not(#_):not(#_):not(#_) { padding: 0; margin-bottom: 0 !important; }
  html.aiq-phone[data-theme] main .ais-prov .ais-fld:has(.ais-models) > label:not(#_):not(#_):not(#_) { padding: 0 16px; font-size: 13px; }
  html.aiq-phone[data-theme] main .ais-prov .ais-fld label:not(#_):not(#_):not(#_) { font-size: 13px; color: var(--ph-mut); }
  html.aiq-phone[data-theme] main .ais-prov .ais-models:not(#_):not(#_):not(#_) { display: block; }
  html.aiq-phone[data-theme] main .ais-prov .ais-m:not(#_):not(#_):not(#_) { position: relative; flex-wrap: wrap !important; row-gap: 0 !important; min-height: 60px; padding: 10px 48px 10px 16px !important; border: 0 !important;
    border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }
  html.aiq-phone[data-theme] main .ais-prov .ais-m + .ais-m:not(#_):not(#_):not(#_)::before { content: ""; position: absolute; top: 0; left: 16px; right: 0; border-top: 1px solid var(--ph-line); }
  html.aiq-phone[data-theme] main .ais-prov .ais-m .rd:not(#_):not(#_):not(#_) { display: none; }
  html.aiq-phone[data-theme] main .ais-prov .ais-m > div:not(#_):not(#_):not(#_) { flex: 1 1 100% !important; }
  html.aiq-phone[data-theme] main .ais-prov .ais-m b:not(#_):not(#_):not(#_) { font-size: 16px; font-weight: 450; }
  html.aiq-phone[data-theme] main .ais-prov .ais-m > div > span:not(#_):not(#_):not(#_) { font-size: 13.5px; color: var(--ph-mut); }
  html.aiq-phone[data-theme] main .ais-prov .ais-m .pr:not(#_):not(#_):not(#_) { flex-basis: 100%; margin: 2px 0 0 !important; font-size: 13px; color: var(--ph-mut); }
  html.aiq-phone[data-theme] main .ais-prov .ais-m.on:not(#_):not(#_):not(#_)::after { content: ""; position: absolute; right: 20px; top: 50%; width: 6px; height: 12px; margin-top: -8px;
    border: solid var(--ph-acc); border-width: 0 2.2px 2.2px 0; transform: rotate(45deg); }

  /* New request: "What's it about?" is a grouped list — coloured icon square per topic (cycling as on Explore), a check on the chosen one */
  html.aiq-phone[data-theme] main .sp-cats-pick:not(#_):not(#_):not(#_) { display: block !important; background: var(--ph-card); border: 1px solid var(--ph-line); border-radius: 18px; overflow: hidden; }
  html.aiq-phone[data-theme] main .sp-cats-pick .sp-cpick:not(#_):not(#_):not(#_) { display: block; position: relative; }
  html.aiq-phone[data-theme] main .sp-cats-pick .sp-cpick + .sp-cpick:not(#_):not(#_):not(#_)::before { content: ""; position: absolute; top: 0; left: 60px; right: 0; border-top: 1px solid var(--ph-line); }
  html.aiq-phone[data-theme] main .sp-cats-pick .sp-cpick span:not(#_):not(#_):not(#_),
  html.aiq-phone[data-theme] main .sp-cats-pick .sp-cpick input:checked + span:not(#_):not(#_):not(#_) {
    display: flex !important; align-items: center; gap: 14px; min-height: 52px; padding: 0 44px 0 16px !important; border: 0 !important; border-radius: 0 !important;
    background: transparent !important; box-shadow: none !important; color: var(--ph-ink) !important; font-size: 17px !important; font-weight: 450 !important; }
  html.aiq-phone[data-theme] main .sp-cats-pick .sp-cpick input:checked + span:not(#_):not(#_):not(#_)::after { content: ""; position: absolute; right: 20px; top: 50%;
    width: 6px; height: 12px; margin-top: -8px; border: solid var(--ph-acc); border-width: 0 2.2px 2.2px 0; transform: rotate(45deg); }
  html.aiq-phone[data-theme] main .sp-cats-pick .sp-cpick span i:not(#_):not(#_):not(#_) { width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; flex: none;
    font-size: 17px !important; color: #fff !important; background: #2a6df4; }
  html.aiq-phone[data-theme] main .sp-cats-pick .sp-cpick:nth-child(6n+2) span i:not(#_):not(#_):not(#_) { background: #12b981; }
  html.aiq-phone[data-theme] main .sp-cats-pick .sp-cpick:nth-child(6n+3) span i:not(#_):not(#_):not(#_) { background: #f97316; }
  html.aiq-phone[data-theme] main .sp-cats-pick .sp-cpick:nth-child(6n+4) span i:not(#_):not(#_):not(#_) { background: #8b5cf6; }
  html.aiq-phone[data-theme] main .sp-cats-pick .sp-cpick:nth-child(6n+5) span i:not(#_):not(#_):not(#_) { background: #06b6d4; }
  html.aiq-phone[data-theme] main .sp-cats-pick .sp-cpick:nth-child(6n) span i:not(#_):not(#_):not(#_) { background: #ec4899; }
  html.aiq-phone[data-theme] main #sp-new-form .sp-label:not(#_):not(#_):not(#_) { display: block; font-size: 16px; font-weight: 450; color: var(--ph-mut); margin: 0 4px 8px; }
  /* the form itself is no card (its groups and fields are): the .sp-card fill above drew a white box with the fields and
     the Send button flush on its edges, and its square-cornered foot rule (2026-11-08 corners + spacing pass) */
  html.aiq-phone[data-theme] main #sp-new-form:not(#_):not(#_):not(#_) { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; border-radius: 0 !important; }
  html.aiq-phone[data-theme] main #sp-new-form::after { display: none !important; }
  html.aiq-phone[data-theme] main #sp-new-form .sp-form-foot:not(#_):not(#_):not(#_) { border-top: 0 !important; padding: 4px 0 0 !important; }
  html.aiq-phone[data-theme] main #sp-new-form .sp-form-foot .sp-hint:not(#_):not(#_):not(#_) { padding: 0 4px; }
  /* one field look: white, hairline, 12px corners, 16px type (Subject / Page were a faint ring, Details a white box) */
  html.aiq-phone[data-theme] main #sp-new-form :is(.sp-input, .sp-textarea):not(#_):not(#_):not(#_) { background: var(--ph-card) !important; border: 1px solid var(--ph-line) !important;
    box-shadow: none !important; border-radius: 12px !important; font-size: 16px !important; padding-left: 14px !important; padding-right: 14px !important; }
  html.aiq-phone[data-theme] main #sp-new-form .sp-input:not(#_):not(#_):not(#_) { height: 46px; }
  html.aiq-phone[data-theme] main #sp-new-form .sp-textarea:not(#_):not(#_):not(#_) { padding-top: 12px !important; padding-bottom: 12px !important; }
  html.aiq-phone[data-theme] main #sp-new-form .sp-drop:not(#_):not(#_):not(#_) { border-radius: 12px !important; }
}

/* Spacing pass (2026-11-07): Settings' column on the page title's 16px edge like every other phone page (main's 12px +
   .st's own 16px put the cards and the section name 12px in from "Settings"). */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] main .st:not(#_):not(#_):not(#_) { padding-left: 4px !important; padding-right: 4px !important; }
}

/* What's new on phones (2026-11-08 corners + spacing pass): the Attio desktop look draws each entry as a plain row in a
   96px-date grid, and the phone layer above turns .sp-card into a white 18px card — so the card had no padding (text on
   its edges) and sat squeezed beside the date. On phones: the date is a small heading over its entries, each entry a
   padded card, no rule between days. */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] main .wn-day:not(#_):not(#_) { grid-template-columns: minmax(0, 1fr); gap: 8px; padding-top: 0; border-top: 0; }
  html.aiq-phone[data-theme] main .wn-day + .wn-day:not(#_):not(#_) { margin-top: 24px; }
  html.aiq-phone[data-theme] main .wn-date:not(#_):not(#_) { position: static; padding: 0 4px; }
  html.aiq-phone[data-theme] main .wn-items:not(#_):not(#_) { gap: 12px; }
  html.aiq-phone[data-theme] main .wn-item:not(#_):not(#_) { padding: 16px; }
  /* the support pages' column on the page title's 16px edge, as Settings' (main's 12px + .sp's own 16px put it at 28px) */
  html.aiq-phone[data-theme] main .sp:not(#_):not(#_):not(#_) { padding-left: 4px !important; padding-right: 4px !important; }
}

/* Shell pass (2026-11-10, phone-shell agent): Settings' buttons were the desktop's 28px Attio buttons (Upload photo, Save
   profile, Delete account…, Buy lifetime, the + $5 top-ups): 44px tap targets as pills; the AI-credits row squeezed its text
   to a 94px column beside three top-ups, which now drop under it; every settings field 16px (iOS zooms in on a smaller
   one). tests/test_phone_shell_fixes.py */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] main .st .st-btn:not(#_):not(#_) { height: auto; min-height: 44px; padding: 0 16px; border-radius: 999px !important; }
  html.aiq-phone[data-theme] main .st .bl-row:has(> .bl-topups) > .bl-grow:not(#_):not(#_) { flex: 1 1 calc(100% - 64px); min-width: 0; }
  html.aiq-phone[data-theme] main .st .bl-row > .bl-topups:not(#_):not(#_) { flex: 1 1 100%; gap: 8px; }
  html.aiq-phone[data-theme] main .st .bl-topups > .bl-inline:not(#_):not(#_) { flex: 1 1 0; }
  html.aiq-phone[data-theme] main .st .bl-topups .st-btn:not(#_):not(#_) { width: 100%; justify-content: center; }
  html.aiq-phone[data-theme] main .st :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]), select, textarea):not(#_):not(#_) { font-size: 16px; }
}

/* Shell pass, round two (2026-11-10): Dex's Connect your AI (/ai/settings) still had the desktop's 34px buttons and
   13.5px key fields (iOS zooms in on focus), a "← Dex AI" link under the header's own ‹, and the AI credits heading
   squeezed to a 2-word column beside its note. The header now carries the page's own name (aiq-phone-tablehead.js).
   tests/test_phone_shell_round2.py */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] main .ais-back:not(#_):not(#_) { display: none; }
  html.aiq-phone[data-theme] main .ais .ai-btn:not(#_):not(#_) { min-height: 44px; padding: 0 16px; border-radius: 999px !important; font-size: 15px; }
  html.aiq-phone[data-theme] main .ais :is(.ais-in, .ais-key):not(#_):not(#_) { height: 44px; font-size: 16px; }
  html.aiq-phone[data-theme] main .ais .ais-h:not(#_):not(#_) { display: block; }
  html.aiq-phone[data-theme] main .ais .ais-h small:not(#_):not(#_) { display: block; margin-top: 2px; }
  /* Settings' fields were 32px tall (16px text since round one): 44px like every phone field; the two-step Cancel link a 44px row */
  html.aiq-phone[data-theme] main .st .st-input:not(#_):not(#_), html.aiq-phone #dl-dlg input:not([type=checkbox]):not([type=radio]):not(#_):not(#_) { min-height: 44px; }
  html.aiq-phone[data-theme] main .st .ts-link:not(#_):not(#_) { min-height: 44px; padding: 0 4px; }
  /* a dialog's dim inside a settings card (Delete account…) took the card rows' white !important background above: the
     page vanished behind an opaque veil. It is the kit's --pop-scrim like everywhere else (docs/features/popups.md) */
  html.aiq-phone[data-theme] main .st .st-card > .aiq-scrim:not(#_):not(#_):not(#_):not(#_) { background: var(--pop-scrim) !important; border: 0 !important;
    border-radius: 0 !important; padding: 0 !important; }
}

/* Settings' main button on phones (2026-11-11): the brand blue full-width-form pill of the phone screens (/m/build's Save,
   css/aiq-phone-build.css), not the desktop Attio blue it inherited (settings-attio.css) */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] main .st-btn-primary:not(#_):not(#_):not(#_) { background: #455DDC !important; border-color: #455DDC !important; }
}

/* ==== css/aiq-phone-pop.css ==== */
/* Phone layout, style A — Pop-ups: dialogs, menus, popovers, the search dropdown and the command palette.
   Same rules as aiq-phone.css: every rule sits inside @media (max-width: 767px) and starts with html.aiq-phone
   (tests/test_phone_layout.py checks every aiq-phone*.css file). Loaded by _phone.html after aiq-phone.css. */

/* The frosted kit (aiq-frost.css) sets every menu / dialog / toast / search-results radius from --fr-r with
   `:not(#_)` + !important, so phones re-point the variables: 14px menus, 10px rows. Dialogs get 18px below at id level. */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone { --fr-r: 14px; --fr-r2: 10px; }

  /* ── dialogs: 18px, inside the screen, comfortable buttons ── */
  html.aiq-phone.aiq-phone .aiq-dlg:not(#_) { border-radius: var(--ph-r) !important; }
  html.aiq-phone.aiq-phone .aiq-dlg { width: min(var(--dlg-w, 500px), calc(100vw - 24px)) !important;
    max-height: calc(100dvh - 40px - env(safe-area-inset-bottom)); }
  html.aiq-phone.aiq-phone .aiq-dlg-h { padding: 18px 18px 8px; }
  html.aiq-phone.aiq-phone .aiq-dlg-t { font-size: 17px; }
  /* header name field: its own full-width row under the title */
  html.aiq-phone.aiq-phone .aiq-dlg-h:has(.aiq-dlg-nm) { flex-wrap: wrap; row-gap: 10px; }
  html.aiq-phone.aiq-phone .aiq-dlg-h:has(.aiq-dlg-nm) .aiq-dlg-t { max-width: none; flex: 1; }
  html.aiq-phone.aiq-phone .aiq-dlg-h .aiq-dlg-nm:not(#_):not(#__) { order: 3; flex: 1 0 100%; height: 44px; border-radius: 12px; }
  html.aiq-phone.aiq-phone .aiq-dlg-nm > input:not(#_) { font-size: 16px; height: 42px; line-height: 42px; }
  html.aiq-phone.aiq-phone .aiq-dlg-f { padding: 8px 18px 18px; }
  html.aiq-phone.aiq-phone .aiq-dlg .aiq-btn, html.aiq-phone.aiq-phone .aiq-pop .aiq-btn { min-height: 42px; font-size: 15px; }
  html.aiq-phone.aiq-phone :is(.aiq-dlg, .aiq-pop) .aiq-in { height: 44px; font-size: 16px; border-radius: var(--ph-r-sm); }
  html.aiq-phone.aiq-phone .aiq-x { width: 36px; height: 36px; border-radius: 999px; background: var(--pop-hover); }

  /* ── menus: 44px rows, never wider or taller than the screen above the tab bar ── */
  html.aiq-phone.aiq-phone .aiq-menu { max-width: calc(100vw - 24px); padding: 6px;
    max-height: calc(100dvh - var(--ph-top) - 100px - env(safe-area-inset-bottom)); overflow-y: auto; }
  html.aiq-phone.aiq-phone .aiq-menu .aiq-mi { height: 44px; padding: 0 12px; font-size: 15px; gap: 11px; }
  html.aiq-phone.aiq-phone .aiq-menu .aiq-mi > :is(i, svg) { font-size: 18px; width: 18px; }
  html.aiq-phone.aiq-phone .aiq-menu .aiq-menu-lbl { padding: 10px 12px 4px; font-size: 12px; }

  /* ── popovers ── */
  html.aiq-phone.aiq-phone .aiq-pop { border-radius: 14px !important; max-width: calc(100vw - 24px); }

  /* ── top bar Help panel (_help_menu.html, css/aiq-help.css): full width, roomier footer rows ── */
  html.aiq-phone.aiq-phone #aiq-help-menu .ahp-foot a { height: 44px; font-size: 15px; }

  /* ── search results under the top bar's search field ── */
  html.aiq-phone.aiq-phone .ticker-ac-drop { max-width: calc(100vw - 24px); }
  html.aiq-phone.aiq-phone .ticker-ac-row { min-height: 48px; padding: 10px 14px; }
  html.aiq-phone.aiq-phone .ticker-ac-sym { font-size: 15px; }
  html.aiq-phone.aiq-phone .ticker-ac-name { font-size: 14px; }

  /* ── toasts: rounded, above the tab bar (aiq-phone.css lifts them) ── */
  html.aiq-phone.aiq-phone #aiq-toast { max-width: calc(100vw - 24px); }
}

/* ── Stock page Watchlists / Notes / Alerts pop-up (financials/_track.html, opens under the round buttons):
   rounded, and its scrolling body stops short of the tab bar (the watchlists list ran under it). ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone #fa-pop { border-radius: 14px; overflow: hidden; }
  html.aiq-phone.aiq-phone #fa-pop .fa-pb { max-height: max(180px, calc(100dvh - 430px - env(safe-area-inset-bottom))); }
  /* 16px text in fields: iOS zooms the page into anything smaller */
  html.aiq-phone.aiq-phone #fa-pop :is(textarea, .fa-in) { font-size: 16px; }
}

/* ── Watchlist "Density, sort order and columns" panel: 625px tall, it opened under the toolbar and ran off the
   bottom of the screen. On a phone it is pinned between the top bar and the tab bar, full width less the gutter;
   its column list scrolls (it already flexes). ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone #wl-col-panel { position: fixed !important; top: calc(var(--ph-top) + 8px) !important; left: 12px !important; right: 12px !important;
    width: auto !important; max-height: calc(100dvh - var(--ph-top) - 108px - env(safe-area-inset-bottom)) !important; }
  html.aiq-phone.aiq-phone #wl-col-panel .wl-col-item { height: 44px; font-size: 15px; }
  html.aiq-phone.aiq-phone #wl-new-menu { max-width: calc(100vw - 24px); }
}

/* ── Screener ── */
@media (max-width: 767px) {
  /* Edit criteria (screener/_screens_ui.html): a floating rounded card inset from every edge, never the whole screen
     (user, 2026-10-29); only its body scrolls */
  html.aiq-phone.aiq-phone #scx-ed.aiq-dlg:not([hidden]):not(#_) { position: fixed !important; inset: auto 12px calc(12px + env(safe-area-inset-bottom)) 12px !important;
    transform: none !important; translate: none !important; width: auto !important; max-width: none !important; --dlg-w: auto;
    height: auto !important; min-height: 0 !important; max-height: calc(100dvh - 88px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
    display: flex !important; flex-direction: column; overflow: hidden; border-radius: 18px !important; }
  html.aiq-phone.aiq-phone #scx-ed #scx-body:not(#_) { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
  html.aiq-phone.aiq-phone #scx-ed :is(.aiq-dlg-h, .aiq-dlg-f):not(#_) { flex: none; }
  /* (Columns' squeezed rows are fixed for every phone in screener/index.html) */
  html.aiq-phone.aiq-phone #col-cfg-panel .cfg-row { min-height: 40px; }
}

/* ── Earnings "My stocks" picker ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone #ec-my-pop { border-radius: 14px; padding: 6px; max-width: calc(100vw - 24px); }
  html.aiq-phone.aiq-phone #ec-my-pop :is(button, a) { min-height: 42px; border-radius: 10px; font-size: 15px; }
}

/* ── Insiders Filters ── */
@media (max-width: 767px) {
  /* fixed width: it hangs off the Filters button's right edge, so growing with its contents pushed it off the left */
  html.aiq-phone.aiq-phone #ins-pop { border-radius: 14px; width: min(350px, calc(100vw - 32px)); box-sizing: border-box; }
  html.aiq-phone.aiq-phone #ins-pop select { min-height: 38px; font-size: 16px; width: 100%; min-width: 0; }
}

/* ── Stock page section menus: the ones for the sections at the right end of the row (Valuation, Capital, Company, Documents)
   opened under their button and ran a few px past the screen's right edge; on a phone they hug the right gutter. ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone :is(#fin-menu-val, #fin-menu-cap, #fin-menu-co, #fin-menu-docs) { left: auto !important; right: 12px !important; }
  /* Statements Options menu (Values / YoY / % of revenue / Excel) */
  html.aiq-phone.aiq-phone #stmt-opt-menu .stmt-opt-it { min-height: 44px; font-size: 15px; }
}

/* Re-review (2026-10-19, flat white page): Watchlist's list menu (gear → Rename / Delete list…) opened from the gear's
   left edge and ran 80px past the right side, dragging the whole page sideways. On phones it sits under the top bar,
   inset 12px both sides. */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] #wl-lmenu.aiq-menu { position: fixed !important; top: 120px !important; left: 12px !important; right: 12px !important;
    width: auto !important; max-width: none !important; }
}

/* ── Pop-ups in the approved phone look (user, 2026-10-19: "pop-ups should be changed to fit the new theme"): no frosted
   glass — solid page-white surfaces with the 1px card outline and a soft shadow, 18px dialogs / 14px menus; grey bands
   inside go flat; fields 10px; dropdown tokens as pills. The glass tokens come from aiq-frost.css. ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] { --fr-bg: var(--ph-card); --fr-line: var(--ph-edge); --fr-r: 14px; --fr-r2: 10px; --fr-blur: none;
    --fr-shadow: 0 12px 32px rgba(15,17,21,.14), 0 1px 3px rgba(15,17,21,.06); }
  html.aiq-phone.aiq-phone[data-theme="dark"] { --fr-shadow: 0 12px 32px rgba(0,0,0,.55); }
  html.aiq-phone.aiq-phone[data-theme] .aiq-dlg:not(#_) { border-radius: var(--ph-r) !important; }
  html.aiq-phone.aiq-phone[data-theme] .aiq-pop:not(#_) { background: var(--ph-card) !important; border: 1px solid var(--ph-edge) !important;
    box-shadow: 0 12px 32px rgba(15,17,21,.14) !important; }
  html.aiq-phone.aiq-phone[data-theme] :is(.aiq-dlg, .aiq-pop, .aiq-menu, .fa-pop, #scx-ed)
      :is(input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea) { border-radius: var(--ph-r-sm) !important; }
  /* Screener's Edit criteria (a full-screen sheet): flat white, the "Start from" band as a plain row, pill tokens */
  html.aiq-phone.aiq-phone[data-theme] #scx-ed.aiq-dlg:not(#_) { background: var(--ph-card) !important; }
  html.aiq-phone.aiq-phone[data-theme] #scx-ed .scx-scope { background: transparent !important; border: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] #scx-ed .scx-tok { border-radius: 999px !important; background: rgba(118,118,128,.12) !important; border: 0 !important; }
}

/* ── Page dropdowns that kept their desktop size (user, 2026-10-20, screenshot of the screener's Layouts menu: "hasn't
   been restyled for mobile … look for all popups and drop downs"). Same phone standard as the kit above: inset 12px
   from both edges, 44px rows, 15px text, 16px fields (iOS zooms into smaller), nothing under the tab bar.
   Pickers opened by JS get their top from the button; the side insets win with !important. ── */
@media (max-width: 767px) {
  /* fixed-position menus: full width less the gutter, never past the tab bar */
  html.aiq-phone.aiq-phone :is(#col-lay-panel, #sc-pop, #si-act-menu, #gm-pop, #wl-switch-pop, .wl-kpop) {
    left: 12px !important; right: 12px !important; width: auto !important; min-width: 0 !important; max-width: none !important;
    box-sizing: border-box; border-radius: 14px !important;
    max-height: calc(100dvh - var(--ph-top) - 110px - env(safe-area-inset-bottom)) !important; overflow-y: auto; }
  /* absolutely-positioned ones stay in their parent and stay inside the screen */
  html.aiq-phone.aiq-phone :is(#ec-more-pop, .wl-newmenu.aiq-pop, .wl-cust.aiq-pop, #seg-type, #ai-tk-pop) {
    border-radius: 14px !important; max-width: calc(100vw - 24px) !important; box-sizing: border-box; }
  html.aiq-phone.aiq-phone .sc-plot-popover { left: 0 !important; right: 0 !important; width: auto !important; max-width: none !important; border-radius: 14px !important; }

  /* rows */
  html.aiq-phone.aiq-phone :is(#col-lay-panel .cfg-preset, #sc-pop .pop-opt, #ec-more-pop .ec-mi, #si-act-menu .si-thf-item, #seg-type button,
      #gm-pop .opt, .wl-newmenu-scroll > :is(button, a), #wl-switch-pop :is(button, a):not(.aiq-btn)) {
    min-height: 44px !important; height: auto !important; font-size: 15px !important; border-radius: 10px; box-sizing: border-box; }
  html.aiq-phone.aiq-phone :is(#col-lay-panel, #si-act-menu, #seg-type) { padding: 6px !important; }
  html.aiq-phone.aiq-phone #col-lay-panel .cfg-preset.save { border-radius: 0; }
  html.aiq-phone.aiq-phone #col-lay-panel .cfg-preset .del { opacity: .7; font-size: 18px; padding: 0 6px; }
  html.aiq-phone.aiq-phone #gm-pop .cfg-row { min-height: 48px; font-size: 15px; }
  html.aiq-phone.aiq-phone :is(#sc-pop .pop-grp, #col-cfg-presets .cfg-lay-sec, .wl-newmenu-head) { font-size: 12px !important; padding-top: 10px !important; }
  html.aiq-phone.aiq-phone :is(.sc-plot-popover .sc-seg, .sc-plot-popover .sc-pick, .wl-cust-seg button, #gm-pop .gm-seg button) { min-height: 36px; font-size: 14px; }
  html.aiq-phone.aiq-phone .sc-plot-popover .sc-pick { max-width: none; }

  /* fields */
  html.aiq-phone.aiq-phone :is(#cfg-save-form input, #sc-pop .pop-q, #gm-pop .search, #gm-pop .row input, #ai-tk-pop input, #scx-screens .q, #scx-add .scx-pq) {
    font-size: 16px !important; height: 42px !important; border-radius: var(--ph-r-sm) !important; }

  /* ── Screener "+" New screen picker and Add criteria: a sheet between the top bar and the tab bar, one column, the
     categories as a row of pills over the list (the 120px side column squeezed the screens to a few words a line) ── */
  html.aiq-phone.aiq-phone :is(#scx-screens, #scx-add) { position: fixed !important; top: calc(var(--ph-top) + 8px) !important;
    bottom: calc(92px + env(safe-area-inset-bottom)) !important; left: 12px !important; right: 12px !important;
    width: auto !important; height: auto !important; max-height: none !important; border-radius: var(--ph-r) !important;
    background: var(--ph-card) !important; border: 1px solid var(--ph-edge) !important; }
  html.aiq-phone.aiq-phone #scx-screens { grid-template-columns: minmax(0,1fr) !important; grid-template-rows: auto minmax(0,1fr); }
  html.aiq-phone.aiq-phone #scx-screens .cats { order: -1; display: flex; gap: 6px; overflow-x: auto; overflow-y: hidden; padding: 12px 12px 4px;
    border-right: 0; scrollbar-width: none; }
  html.aiq-phone.aiq-phone #scx-screens .cats::-webkit-scrollbar { display: none; }
  html.aiq-phone.aiq-phone #scx-screens .cats hr { display: none; }
  html.aiq-phone.aiq-phone #scx-screens .cats button { flex: none; width: auto; gap: 6px; height: 34px; align-items: center; padding: 0 13px;
    border-radius: 999px; font-size: 14px; white-space: nowrap; background: rgba(118,118,128,.12); color: var(--ph-ink2); }
  html.aiq-phone.aiq-phone #scx-screens .cats button.on { background: var(--ph-acc); color: #fff; }
  html.aiq-phone.aiq-phone #scx-screens .cats button.on .c { color: rgba(255,255,255,.75); }
  html.aiq-phone.aiq-phone #scx-screens .list { padding: 8px 12px 12px; }
  html.aiq-phone.aiq-phone #scx-screens .q { margin-bottom: 8px; }
  html.aiq-phone.aiq-phone .scx-scr { padding: 12px 10px; border-radius: 12px; }
  html.aiq-phone.aiq-phone .scx-scr .n { font-size: 15px; }
  html.aiq-phone.aiq-phone .scx-scr .m { font-size: 13px; }
  html.aiq-phone.aiq-phone .scx-scr .d { font-size: 13px; line-height: 1.4; }
  html.aiq-phone.aiq-phone .scx-scr .ct .d { font-size: 12px; }
  html.aiq-phone.aiq-phone .scx-scr .del { display: inline; font-size: 13px; }
  html.aiq-phone.aiq-phone #scx-screens .empty { font-size: 14px; }

  html.aiq-phone.aiq-phone #scx-add { grid-template-rows: auto minmax(0,1fr) auto !important; grid-template-columns: minmax(0,1fr) !important; }
  html.aiq-phone.aiq-phone #scx-add .hd input { width: 100%; box-sizing: border-box; }
  html.aiq-phone.aiq-phone #scx-add .ft .picked { display: none; }
  html.aiq-phone.aiq-phone #scx-add .ft .aiq-btn.txt { margin-right: auto; padding-left: 0; }
  html.aiq-phone.aiq-phone #scx-add .hd { padding: 12px 12px 6px; }
  html.aiq-phone.aiq-phone #scx-add .bd { grid-template-columns: minmax(0,1fr) !important; grid-template-rows: auto minmax(0,1fr); padding: 0 12px; }
  html.aiq-phone.aiq-phone #scx-add .fo { display: flex; gap: 6px; overflow-x: auto; overflow-y: hidden; border-right: 0; padding: 4px 0 8px; scrollbar-width: none; }
  html.aiq-phone.aiq-phone #scx-add .fo::-webkit-scrollbar { display: none; }
  html.aiq-phone.aiq-phone #scx-add .fo hr { display: none; }
  html.aiq-phone.aiq-phone #scx-add .fo button { flex: none; width: auto; gap: 6px; height: 34px; align-items: center; padding: 0 13px;
    border-radius: 999px; font-size: 14px; white-space: nowrap; background: rgba(118,118,128,.12); color: var(--ph-ink2); }
  html.aiq-phone.aiq-phone #scx-add .fo button.on { background: var(--ph-acc); color: #fff; }
  html.aiq-phone.aiq-phone #scx-add .fo button.on .c { color: rgba(255,255,255,.75); }
  html.aiq-phone.aiq-phone #scx-add .ls { overflow-y: auto; }
  html.aiq-phone.aiq-phone #scx-add .scx-mi { min-height: 44px; font-size: 15px; border-radius: 10px; }
  html.aiq-phone.aiq-phone #scx-add .ft { padding: 10px 12px 12px; }
  html.aiq-phone.aiq-phone #scx-add .ft .aiq-btn { min-height: 42px; font-size: 15px; }
}

/* the same solid card surface as the kit pop-ups above (they kept the desktop #292929 / white) */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] :is(#sc-pop, #si-act-menu, #seg-type, #ec-more-pop, #ai-tk-pop, .sc-plot-popover) {
    background: var(--ph-card) !important; border: 1px solid var(--ph-edge) !important; box-shadow: var(--fr-shadow) !important; }
  html.aiq-phone.aiq-phone #sc-pop .pop-list { max-height: calc(100dvh - 330px - env(safe-area-inset-bottom)); }
}

/* Watchlist + (new list): hung off the + button 42px in from the left; on phones it sits under the top bar like the
   list menu (#wl-lmenu above), full width less the gutter, starters in 15px */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] .wl-newmenu.aiq-pop { position: fixed !important; top: calc(var(--ph-top) + 8px) !important; left: 12px !important;
    right: 12px !important; width: auto !important; max-width: none !important; }
  html.aiq-phone.aiq-phone .wl-newmenu-scroll { max-height: calc(100dvh - var(--ph-top) - 230px - env(safe-area-inset-bottom)); }
  html.aiq-phone.aiq-phone .wl-preset { padding-top: 10px !important; padding-bottom: 10px !important; border-radius: 10px; }
  html.aiq-phone.aiq-phone .wl-preset-name { font-size: 15px; }
  html.aiq-phone.aiq-phone .wl-preset-n { font-size: 12px; }
  html.aiq-phone.aiq-phone .wl-preset-note { font-size: 13px; }
  html.aiq-phone.aiq-phone .wl-newmenu-head { font-size: 12px; }
}

/* ── Configuration pop-ups on phones (user, 2026-10-29: "rework all configuration popups on mobile … simpler than desktop,
   less optionality"). Every big set-up dialog (the .at-tpl family: New screen + Start blank, New chart, New dashboard,
   New report, New Excel file; and the .lg set-up dialogs: Columns, chart Setup, Congress add, Board) is one sheet rising
   from the bottom, nearly full height, one column. Side lists of categories become one row of pills; cards become plain
   one-line rows (icon + name, no blurbs, tags or counts); no keyboard hints; the main button fills the footer.
   Extras that are desktop-only on phones: New chart's Single/Several switch and Style, Excel's preview + .csv. ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone .aiq-dlg:is(.at-tpl, .lg, .nw-dlg, .adv-dlg, .mw-dlg, #set-dlg, #tm-pf-dlg, #ph-new, #pm-copy, #pp-trade, #pp-settings, #bd-create, #cr-copy):not([hidden]):not(#scx-ed):not(#_):not(#__) {
    position: fixed !important; inset: auto 0 0 0 !important; transform: none !important; translate: none !important;
    width: 100vw !important; max-width: none !important; --dlg-w: 100vw;
    height: auto !important; max-height: calc(100dvh - 44px - env(safe-area-inset-top)) !important;
    display: flex !important; flex-direction: column; border-radius: 22px 22px 0 0 !important; border: 0 !important;
    padding-bottom: env(safe-area-inset-bottom); animation: phSheetUp .34s cubic-bezier(.22,1,.36,1) !important; }
  /* pickers with category pills keep one height, so switching a category doesn't make the sheet jump */
  html.aiq-phone.aiq-phone .aiq-dlg.at-tpl:not(.is-fmt):not(.ws-nbd):not([hidden]):not(#_):not(#__):not(#___) { height: calc(100dvh - 44px - env(safe-area-inset-top)) !important; }
  /* dialogs whose header/body/footer sit inside a <form> */
  html.aiq-phone.aiq-phone .aiq-dlg:is(.at-tpl, .lg, .nw-dlg, .adv-dlg, .mw-dlg, #set-dlg, #tm-pf-dlg, #ph-new, #pm-copy, #pp-trade, #pp-settings, #bd-create, #cr-copy) > form:not(#_) { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; }
  html.aiq-phone.aiq-phone .aiq-dlg:is(.at-tpl, .lg, .nw-dlg, .adv-dlg, .mw-dlg, #set-dlg, #tm-pf-dlg, #ph-new, #pm-copy, #pp-trade, #pp-settings, #bd-create, #cr-copy) > .aiq-dlg-h:not(#_) { padding: 18px 16px 10px; }
  html.aiq-phone.aiq-phone .aiq-dlg:is(.at-tpl, .lg, .nw-dlg, .adv-dlg, .mw-dlg, #set-dlg, #tm-pf-dlg, #ph-new, #pm-copy, #pp-trade, #pp-settings, #bd-create, #cr-copy) .aiq-dlg-t:not(#_) { font-size: 18px; font-weight: 650; }

  /* text fields: 44px, 16px text (iOS zooms into anything smaller) */
  html.aiq-phone.aiq-phone .aiq-dlg:is(.at-tpl, .lg, .nw-dlg, .adv-dlg, .mw-dlg, #set-dlg, #tm-pf-dlg, #ph-new, #pm-copy, #pp-trade, #pp-settings, #bd-create, #cr-copy) :is(input:not([type]), input[type=text], input[type=search], input[type=number], select, .aiq-in, .tm-in, .pp-in, .ph-in):not(.aiq-dlg-nm > *):not(.at-tpl-q):not(.at-cfg-mq):not(.at-cfg-name):not([type=checkbox]):not(#_):not(#__) {
    height: 44px !important; font-size: 16px !important; border-radius: 10px !important; }

  /* the header and footer never shrink; only the body scrolls */
  html.aiq-phone.aiq-phone .aiq-dlg:is(.at-tpl, .lg, .nw-dlg, .adv-dlg, .mw-dlg, #set-dlg, #tm-pf-dlg, #ph-new, #pm-copy, #pp-trade, #pp-settings, #bd-create, #cr-copy) :is(.aiq-dlg-h, .aiq-dlg-f, .at-tpl-f, .ft):not(#_):not(#__) { flex: none !important; }

  /* no keyboard hints, ever */
  html.aiq-phone.aiq-phone .at-tpl :is(kbd, .at-tpl-nav):not(#_):not(#__) { display: none !important; }

  /* body: one column; the category side list is one row of pills that scrolls sideways */
  html.aiq-phone.aiq-phone .at-tpl .at-tpl-body:not(#_):not(#__) { flex-direction: column; }
  html.aiq-phone.aiq-phone .at-tpl .at-tpl-body > .at-tpl-side:not(#_):not(#__) { width: auto !important; flex: none; padding: 2px 0 10px !important;
    box-shadow: none !important; overflow: visible; }
  html.aiq-phone.aiq-phone .at-tpl.nr-noside .at-tpl-body > .at-tpl-side:not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone .at-tpl .at-tpl-side .at-tpl-lbl:not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone .at-tpl .at-tpl-cats:not(#_):not(#__) { display: flex; gap: 8px; overflow-x: auto; padding: 0 16px; scrollbar-width: none; }
  html.aiq-phone.aiq-phone .at-tpl .at-tpl-cats::-webkit-scrollbar { display: none; }
  html.aiq-phone.aiq-phone .at-tpl .at-tpl-cats .at-tpl-cat:not(#_):not(#__) { flex: none; width: auto; height: 36px; padding: 0 14px; border-radius: 999px;
    background: var(--ph-chip, rgba(118,118,128,.12)); font-size: 15px; font-weight: 550; white-space: nowrap; }
  html.aiq-phone.aiq-phone .at-tpl .at-tpl-cats .at-tpl-cat.on:not(#_):not(#__) { background: var(--ph-ink, #111); color: var(--ph-card, #fff); }
  html.aiq-phone.aiq-phone .at-tpl .at-tpl-cats .at-tpl-cat :is(.at-tpl-ic, .at-tpl-n, .at-tpl-ck):not(#_):not(#__) { display: none !important; }
  /* with a category row there's no search box (it only raised the keyboard); Excel has no categories, so it keeps its search */
  html.aiq-phone.aiq-phone .at-tpl:not(.nr-noside) .at-tpl-body .at-tpl-q:not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone .at-tpl .at-tpl-q:not(#_):not(#__) { margin: 0 16px 6px; padding: 0 14px; height: 44px; font-size: 16px; border-radius: 12px;
    background: var(--ph-chip, rgba(118,118,128,.12)); box-shadow: none; }

  /* the list: plain rows, icon + name; no heading, blurbs, criteria tags or counts (a PRO pill stays) */
  html.aiq-phone.aiq-phone .at-tpl .at-tpl-list:not(#_):not(#__) { padding: 4px 16px 16px; gap: 0; }
  html.aiq-phone.aiq-phone .at-tpl .at-tpl-body .at-tpl-h:not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone .at-tpl :is(.at-tpl-card, .at-tpl-blank):not(#_):not(#__) { flex-direction: row !important; align-items: center !important; gap: 14px;
    min-height: 60px; padding: 8px 4px !important; margin: 0 !important; border-radius: 0 !important; background: none !important;
    box-shadow: inset 0 -1px 0 var(--ph-line) !important; width: 100% !important; }
  html.aiq-phone.aiq-phone .at-tpl :is(.at-tpl-card, .at-tpl-blank) .at-tpl-ic.lg:not(#_):not(#__) { width: 36px; height: 36px; border-radius: 10px; font-size: 18px; }
  html.aiq-phone.aiq-phone .at-tpl :is(.at-tpl-card, .at-tpl-blank) :is(p, .at-tpl-tags, .at-pill:not(.nr-pro)):not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone .at-tpl :is(.at-tpl-card, .at-tpl-blank) :is(b, .at-tpl-ct b):not(#_):not(#__) { font-size: 16px; font-weight: 550; }
  html.aiq-phone.aiq-phone .at-tpl .at-tpl-blank b:not(#_):not(#__) { color: #455DDC; }
  /* a picked row (New dashboard picks first, then Create) gets a tick-blue name instead of a ringed card */
  html.aiq-phone.aiq-phone .at-tpl.ws-nbd :is(.at-tpl-card, .at-tpl-blank).on b:not(#_):not(#__) { color: #455DDC; }
  html.aiq-phone.aiq-phone .at-tpl.ws-nbd .ws-nbd-grid:not(#_):not(#__) { display: block; padding: 4px 16px 16px; flex: 1 1 auto; }

  /* footer: Back (if any) + one full-width main button; a screen is used by tapping its row, so New screen has none */
  html.aiq-phone.aiq-phone .at-tpl .at-tpl-f:not(#_):not(#__) { padding: 10px 16px 12px; gap: 10px; box-shadow: inset 0 1px 0 var(--ph-line); }
  html.aiq-phone.aiq-phone .at-tpl .at-tpl-f .sp:not(#_):not(#__) { display: none; }
  /* !important: the Attio layer sizes every button inside <main> to 28px with !important (dialogs living in main got tiny buttons) */
  html.aiq-phone.aiq-phone .aiq-dlg :is(.at-tpl-f, .aiq-dlg-f) .aiq-btn:not(#_):not(#__) { height: 46px !important; min-height: 46px !important; padding: 0 16px !important;
    font-size: 16px !important; border-radius: 12px !important; justify-content: center; }
  html.aiq-phone.aiq-phone .at-tpl .at-tpl-f .aiq-btn.pri:not(#_):not(#__) { flex: 1 1 auto; justify-content: center; }
  html.aiq-phone.aiq-phone .at-tpl .at-tpl-f :is([data-cancel], [data-aiq-close]:not(.pri), [data-csv]):not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone .at-tpl.sc-tpl:not(.is-cfg) .at-tpl-f:not(.at-cfg-f):not(#_):not(#__) { display: none !important; }

  /* the set-up step (.at-cfg: Start blank's filters, a report's sections, an Excel file's options): what you've set first, then
     the things to add below it, all in one scroll; the folder column is a pill row */
  html.aiq-phone.aiq-phone .at-tpl .at-cfg:not(#_):not(#__) { flex-direction: column; overflow-y: auto; -webkit-overflow-scrolling: touch; }
  html.aiq-phone.aiq-phone .at-tpl.is-cfg .at-cfg:not(#_):not(#__) { display: flex !important; }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg > .at-tpl-main:not(#_):not(#__) { order: -1; flex: none; }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg > .at-cfg-side:not(#_):not(#__) { width: auto !important; flex: none; box-shadow: none !important; overflow: visible; }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg :is(.at-tpl-list, .at-cfg-cols, .at-cfg-ms):not(#_):not(#__) { overflow: visible !important; flex: none; min-height: 0; }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg .at-cfg-cols:not(#_):not(#__) { flex-direction: column; }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg .at-cfg-fs:not(#_):not(#__) { width: auto !important; display: flex; gap: 8px; overflow-x: auto; padding: 4px 16px 8px;
    box-shadow: none; scrollbar-width: none; }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg .at-cfg-g:not(#_):not(#__) { flex: none; width: auto; height: 36px; padding: 0 14px; border-radius: 999px;
    background: var(--ph-chip, rgba(118,118,128,.12)); font-size: 15px; white-space: nowrap; }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg .at-cfg-g.on:not(#_):not(#__) { background: var(--ph-ink, #111); color: var(--ph-card, #fff); }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg .at-cfg-g .at-tpl-ic:not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg .at-cfg-ms:not(#_):not(#__) { padding: 0 16px 16px; }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg .at-cfg-ms > .at-tpl-lbl:not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg .at-cfg-m:not(#_):not(#__) { height: 50px; padding: 0 4px; border-radius: 0; font-size: 16px; box-shadow: inset 0 -1px 0 var(--ph-line); }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg .at-cfg-m .at-tpl-ck:not(#_):not(#__) { width: 22px; height: 22px; font-size: 12px; }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg .at-cfg-mq:not(#_):not(#__) { margin: 8px 16px 4px; padding: 0 14px; height: 44px; font-size: 16px; border-radius: 12px;
    background: var(--ph-chip, rgba(118,118,128,.12)); box-shadow: none; }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg .at-cfg-rows:not(#_):not(#__) { padding: 4px 16px 12px; gap: 8px; }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg .at-cfg-rows .at-tpl-h:not(#_):not(#__) { font-size: 13px; font-weight: 600; color: var(--ph-mut); margin: 4px 0; text-transform: none; }
  /* a filter: its name and × on one line, Min – Max under it (units dropped: the name says what it is) */
  html.aiq-phone.aiq-phone .at-tpl .at-cfg-row:not(#_):not(#__) { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) 36px;
    align-items: center; gap: 8px; padding: 8px 6px 12px 14px; border-radius: 12px; }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg-row .at-cfg-l:not(#_):not(#__) { grid-area: 1 / 1 / 2 / 4; font-size: 16px; }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg-row .at-cfg-x:not(#_):not(#__) { grid-area: 1 / 4; width: 36px; height: 36px; }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg-row [data-b="min"]:not(#_):not(#__) { grid-area: 2 / 1; }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg-row .at-cfg-to:not(#_):not(#__) { grid-area: 2 / 2; }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg-row [data-b="max"]:not(#_):not(#__) { grid-area: 2 / 3; }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg-row .at-cfg-u:not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg-row .aiq-in:not(#_):not(#__) { width: 100%; min-width: 0; height: 44px; font-size: 16px; border-radius: 10px; }
  html.aiq-phone.aiq-phone .at-tpl .at-cfg-f .at-cfg-n:not(#_):not(#__) { font-size: 14px; white-space: nowrap; }
  /* Excel: no side preview on a phone */
  html.aiq-phone.aiq-phone .at-tpl.xa-dlg :is(.xa-pv, .xa-left):not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone .at-tpl.xa-dlg .xa-split:not(#_):not(#__) { display: block !important; }

  /* New chart: just the symbol on a phone — Single chart, your last style */
  html.aiq-phone.aiq-phone .at-tpl.chh-new :is(.chh-mode, .chh-looks, .chh-lbl:not(.chh-sym-l)):not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone .at-tpl.chh-new .chh-new-b:not(#_):not(#__) { flex: 1 1 auto; padding: 4px 16px; }
  html.aiq-phone.aiq-phone .at-tpl.chh-new .chh-q:not(#_):not(#__) { font-size: 16px; }

  /* a "What do you want to make?" step (.nr-fmt: New report, My stocks New): one-line rows, no heading or blurbs */
  html.aiq-phone.aiq-phone .at-tpl.is-fmt .nr-fmt:not(#_):not(#__) { display: block !important; flex: 1 1 auto; overflow-y: auto; padding: 0 16px 12px !important; }
  html.aiq-phone.aiq-phone .at-tpl .nr-fmt :is(.nr-fmt-h, .nr-fmt-c p):not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone .at-tpl .nr-fmt-row:not(#_):not(#__) { display: flex !important; flex-direction: column; gap: 0; }
  html.aiq-phone.aiq-phone .at-tpl .nr-fmt-c:not(#_):not(#__) { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 14px;
    width: 100% !important; min-height: 64px; padding: 0 4px !important; border: 0 !important; border-radius: 0 !important; background: none !important;
    box-shadow: inset 0 -1px 0 var(--ph-line) !important; }
  html.aiq-phone.aiq-phone .at-tpl .nr-fmt-c b:not(#_):not(#__) { flex: 1 1 auto; font-size: 16px; font-weight: 550; text-align: left; margin: 0 !important; }
  html.aiq-phone.aiq-phone .at-tpl .nr-fmt-c .at-tpl-ic.lg:not(#_):not(#__) { width: 36px; height: 36px; margin: 0 !important; }
  html.aiq-phone.aiq-phone .at-tpl .nr-fmt-c.on b:not(#_):not(#__) { color: #455DDC; }
  html.aiq-phone.aiq-phone .at-tpl .nr-fmt-c .at-pill:not(.nr-pro):not(#_):not(#__) { display: none !important; }

  /* New report / Excel: a report is on one stock on a phone (no Stock / Watchlist / Portfolio switch) */
  html.aiq-phone.aiq-phone .at-tpl.nr-dlg .nr-f:has(> .nr-kind):not(#_):not(#__) { display: none !important; }
  /* New report set-up (2026-11-03): the sections ran into each other with outlined option boxes and blue
     ticks; now a gap between sections, a quiet label, black/white pills (the phone pop-up standard) and the checklist
     as one white card of rows with a charcoal tick */
  html.aiq-phone.aiq-phone .at-tpl.nr-dlg .nr-set:not(#_):not(#__):not(#___) { gap: 20px !important; padding-top: 8px !important; }
  html.aiq-phone.aiq-phone .at-tpl.nr-dlg .nr-f h4:not(#_):not(#__):not(#___) { margin: 0 2px 8px; color: #80868F; font: 600 13px/18px Inter, system-ui, sans-serif; }
  html.aiq-phone.aiq-phone .at-tpl.nr-dlg .nr-seg:not(#_):not(#__):not(#___) { display: flex; flex-wrap: wrap; gap: 8px; }
  html.aiq-phone.aiq-phone .at-tpl.nr-dlg .nr-seg .aiq-btn:not(#_):not(#__):not(#___) { height: 36px !important; min-height: 36px; padding: 0 14px !important; border: 0 !important; border-radius: 999px !important; box-shadow: none !important; background: #FFFFFF !important; color: #101112 !important; font: 500 15px/36px Inter, system-ui, sans-serif !important; }
  html.aiq-phone.aiq-phone .at-tpl.nr-dlg .nr-seg .aiq-btn.on:not(#_):not(#__):not(#___) { background: #2B2D33 !important; color: #FFFFFF !important; font-weight: 600 !important; }
  html.aiq-phone.aiq-phone .at-tpl.nr-dlg .nr-seg .aiq-btn.on :is(.nr-pro, .at-pill, small, sup):not(#_):not(#__):not(#___) { color: #FFFFFF !important; }
  html.aiq-phone.aiq-phone .at-tpl.nr-dlg .nr-opts:not(#_):not(#__):not(#___) { gap: 0 !important; padding: 2px 0; border-radius: 18px; background: #FFFFFF; }
  html.aiq-phone.aiq-phone .at-tpl.nr-dlg .nr-opts .nr-opt:not(#_):not(#__):not(#___) { position: relative; min-height: 48px; padding: 0 16px !important; border: 0 !important; border-radius: 0 !important; background: none !important; box-shadow: none !important; font-size: 16px; }
  html.aiq-phone.aiq-phone .at-tpl.nr-dlg .nr-opts .nr-opt + .nr-opt::before { content: ""; position: absolute; top: 0; left: 16px; right: 0; border-top: 1px solid rgba(15,17,21,.07); }
  html.aiq-phone.aiq-phone .at-tpl.nr-dlg .nr-opts .nr-opt .at-tpl-ck:not(#_):not(#__):not(#___) { width: 22px; height: 22px; border-radius: 50%; background: none !important; border: 1.5px solid #C9CDD3 !important; color: transparent !important; }
  html.aiq-phone.aiq-phone .at-tpl.nr-dlg .nr-opts .nr-opt.on .at-tpl-ck:not(#_):not(#__):not(#___) { background: #2B2D33 !important; border-color: #2B2D33 !important; color: #FFFFFF !important; }

  /* My stocks → New → Paper portfolio: a name and the starting cash; Strategy and Who can see it stay desktop (defaults: none, Only me) */
  html.aiq-phone.aiq-phone #tm-pf-dlg .tm-paper :is(label:has(> [name=description]), div:has(> .tm-vis)):not(#_) { display: none !important; }
  html.aiq-phone.aiq-phone #tm-pf-dlg .tm-seg:not(#_) { height: 44px; }
  html.aiq-phone.aiq-phone #tm-pf-dlg .tm-seg label:not(#_) { font-size: 15px; }
  html.aiq-phone.aiq-phone #tm-pf-dlg .tm-pp-foot [data-aiq-close]:not(.pri):not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone #tm-pf-dlg .tm-pp-foot .aiq-btn.pri:not(#_):not(#__) { flex: 1 1 auto; height: 46px !important; min-height: 46px !important; font-size: 16px !important; border-radius: 12px !important; justify-content: center; }
  html.aiq-phone.aiq-phone #tm-pf-dlg .pp-kc:not(#_) { display: none !important; }
  /* its first step: three big choices as plain rows */
  html.aiq-phone.aiq-phone #tm-pf-dlg .tm-choose small:not(#_) { display: none !important; }

  /* Portfolio dialogs (new paper portfolio, copy a model, create a built one, trade, settings): no intro lines, no optional
     profile / strategy / note fields, trades in dollars only. "Who can see it" stays: it defaults to Public on these. */
  html.aiq-phone.aiq-phone :is(#ph-new, #pm-copy, #pp-trade, #pp-settings, #bd-create, #cr-copy) :is(.pp-dlead, .lead,
      :is(.pp-fld, .ph-fld):has(:is([name=substack_url], [name=bio], [name=description], #pp-t-note))):not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone :is(#ph-new, #pm-copy, #pp-trade, #pp-settings, #bd-create, #cr-copy) :is(.pp-in, .ph-in):not(#_):not(#__) {
    background: var(--ph-chip, rgba(118,118,128,.12)) !important; border: 0 !important; padding: 0 12px; }
  html.aiq-phone.aiq-phone .aiq-dlg-f :is(.ph-err, .pp-err):empty:not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone #pp-trade div:has(> #pp-t-mode):not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone :is(#ph-new, #pm-copy, #pp-trade, #pp-settings, #bd-create, #cr-copy) :is(.pp-opts, .ph-opts):not(#_) {
    display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 6px; }
  html.aiq-phone.aiq-phone :is(#ph-new, #pm-copy, #pp-trade, #pp-settings, #bd-create, #cr-copy) :is(.pp-opts, .ph-opts) > label:not(#_) { display: block; min-width: 0; margin: 0; }
  html.aiq-phone.aiq-phone :is(#ph-new, #pm-copy, #pp-trade, #pp-settings, #bd-create, #cr-copy) :is(.pp-opts, .ph-opts) > label > span:not(#_) {
    display: flex !important; width: 100%; box-sizing: border-box; min-height: 44px; align-items: center; justify-content: center; padding: 0 4px;
    font-size: 15px; border-radius: 10px; white-space: nowrap; }
  html.aiq-phone.aiq-phone :is(#pp-trade, #pp-settings) .pp-seg button:not(#_) { min-height: 44px; font-size: 15px; }
  html.aiq-phone.aiq-phone :is(#ph-new, #pm-copy, #pp-trade, #pp-settings, #bd-create, #cr-copy) .ph-pair:not(#_) { display: block; }

  /* Screener Edit criteria (already a full-screen sheet): start from a market and a sector only — no industry picker, no
     clipped "52,623 to screen" count beside them */
  html.aiq-phone.aiq-phone #scx-scope :is([data-pick="industry"], .n):not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone #scx-rail .scx-left:not(#_):not(#__) { display: none !important; }   /* the footer button already says how many are left */

  /* Insiders Filters (already a bottom sheet): the four core filters + penny stocks. The finer ones (% of market cap,
     insiders buying, price vs cost, 52-week range) hide only while they're on their default, so a filter set on a
     computer is never active out of sight. Reset / Done full size. */
  html.aiq-phone.aiq-phone #ins-pop > label:has(> :is(#ins-pmc, #ins-ni, #ins-cost, #ins-near) > option[value=""]:checked):not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone #ins-pop .ft:not(#_) { gap: 10px; padding-top: 10px; }
  html.aiq-phone.aiq-phone #ins-pop .ft button:not(#_):not(#__) { flex: 1 1 0; height: 46px !important; min-height: 46px !important; font-size: 16px !important; border-radius: 12px !important; }

  /* Chart Builder → Settings (a bottom sheet on phones): Period and Show only; phone charts carry no data labels or price
     overlay (user, 2026-10-20), so the switches go; roomy rows */
  html.aiq-phone.aiq-phone .fp-pop-settings .fp-row:has(.fp-switch):not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone .fp-pop-settings .fp-title:not(#_) { display: none !important; }
  html.aiq-phone.aiq-phone .fp-pop-settings .fp-row:not(#_):not(#__) { min-height: 52px !important; padding: 0 8px !important; }
  html.aiq-phone.aiq-phone .fp-pop-settings .fp-lbl:not(#_):not(#__) { font-size: 16px !important; }
  html.aiq-phone.aiq-phone .fp-pop-settings .at-segpill:not(#_):not(#__) { height: 40px !important; font-size: 15px !important; padding: 0 12px !important; }

  /* Chart Builder → Add metric (sheet): 44px rows, Done fills the footer */
  html.aiq-phone.aiq-phone .fp-mpick .fp-item:not(#_):not(#__) { min-height: 44px !important; font-size: 16px !important; }
  html.aiq-phone.aiq-phone .fp-mpick .fp-mp-done:not(#_):not(#__) { flex: 1 1 auto; height: 46px !important; font-size: 16px !important; border-radius: 12px !important; }
  html.aiq-phone.aiq-phone .fp-mpick .fp-mp-n:not(#_):not(#__) { display: none !important; }

  /* keyboard hints never show on a phone, in any sheet or dialog (Add ticker's "↑↓ Navigate · 0/3" footer) */
  html.aiq-phone.aiq-phone :is(.ph-sheet, .aiq-dlg) :is(kbd, span:has(> kbd)):not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone .fp-tpick .fp-tp-foot:not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone .fp-tpick :is(.fp-tp-row, button[data-t], [role=option]):not(#_) { min-height: 48px; font-size: 16px; }

  /* Modeling → New model: template rows under one row of category pills, then Name; the company is the page's own (no
     Company field) and Layout is two plain buttons (no screenshots or blurbs, which ran off the screen) */
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg .bd:not(#_):not(#__) { display: flex !important; flex-direction: column; flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 0 !important; }
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg .side:not(#_):not(#__) { display: flex !important; gap: 8px; width: auto !important; overflow-x: auto; padding: 0 16px 10px !important; border: 0 !important; box-shadow: none !important; flex: none; scrollbar-width: none; }
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg .side :is(.gl, .mw-ic, .n):not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg .side .cat:not(#_):not(#__) { flex: none; width: auto !important; height: 36px !important; padding: 0 14px !important; border-radius: 999px !important;
    background: var(--ph-chip, rgba(118,118,128,.12)) !important; font-size: 15px !important; white-space: nowrap; }
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg .side .cat.on:not(#_):not(#__) { background: var(--ph-ink, #111) !important; color: var(--ph-card, #fff) !important; }
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg .main:not(#_):not(#__) { padding: 0 16px !important; overflow: visible !important; }
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg .main > h3:not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg .card:not(#_):not(#__) { display: flex !important; align-items: center !important; gap: 14px; min-height: 60px; padding: 8px 4px !important; margin: 0 !important;
    border: 0 !important; border-radius: 0 !important; background: none !important; box-shadow: inset 0 -1px 0 var(--ph-line) !important; }
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg .card :is(p, .tags, .mw-pill):not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg .card .mw-ic.lg:not(#_):not(#__) { width: 36px !important; height: 36px !important; }
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg .card b:not(#_):not(#__) { font-size: 16px !important; font-weight: 550 !important; }
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg .card.on b:not(#_):not(#__) { color: #455DDC !important; }
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg :is(.co-wrap, .fields):not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg :is(.fields, .lays):not(#_):not(#__) { padding: 10px 16px 0 !important; flex: none; }
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg .lay-row:not(#_):not(#__) { display: grid !important; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg .lay:not(#_):not(#__) { display: flex !important; align-items: center; justify-content: center; height: 44px !important; min-height: 0 !important; padding: 0 !important; width: auto !important; }
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg .lay :is(img, .ln):not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg .lay .lt:not(#_):not(#__) { font-size: 15px !important; }
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg .lay:not(.on):not(#_):not(#__) { box-shadow: inset 0 0 0 1px var(--ph-line) !important; border-radius: 10px !important; }
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg .ft:not(#_):not(#__) { padding: 10px 16px 12px !important; gap: 10px; }
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg .ft :is([data-aiq-close]:not(.pri), .sp, .nav):not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone .aiq-dlg.mw-dlg .ft :is(.aiq-btn, .mw-btn).pri:not(#_):not(#__) { flex: 1 1 auto; height: 46px !important; min-height: 46px !important; font-size: 16px !important; border-radius: 12px !important; justify-content: center; }

  /* Comparables → Peers (a bottom sheet on phones, aiq-phone-sheet.js): search, the peers in it, suggestions; no count /
     reset footer; 48px rows */
  html.aiq-phone.aiq-phone #cmp-peer-panel .cmp-pick-ft:not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone #cmp-peer-panel .cmp-pick-q:not(#_):not(#__) { height: 44px !important; font-size: 16px !important; border-radius: 10px !important;
    background: var(--ph-chip, rgba(118,118,128,.12)) !important; border: 0 !important; padding: 0 14px !important; }
  html.aiq-phone.aiq-phone #cmp-peer-panel :is(.cmp-pp-row, .cmp-sug-i):not(#_):not(#__) { min-height: 48px !important; font-size: 16px !important; }
  /* one group of suggestions (the first), no "Add all" */
  html.aiq-phone.aiq-phone #cmp-peer-panel :is(.cmp-sug-sec ~ .cmp-sug-sec, .cmp-sug-t button):not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone #cmp-peer-panel .cmp-sug:not(#_):not(#__) { border: 0 !important; background: none !important; padding: 8px 0 0 !important; }

  /* Chart → Chart settings (the gear on an indicator line): a sheet with the overlays and indicators only. Each row is
     colour · kind · period · ×; no Chart tab, reorder arrows, line style / source pickers, hide / info icons, column heads,
     Clear all links, Reset or Set as default */
  html.aiq-phone.aiq-phone #set-dlg :is(#set-tabs, .aqp-thead, .aqp-move, [data-act="style"], [data-act="op"], [data-act="toggle"], .aqp-info, .aqp-link, #style-reset, #style-default):not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone #set-dlg .aqp-set:not(#_):not(#__) { padding: 0 16px 12px !important; }
  html.aiq-phone.aiq-phone #set-dlg .aqp-card:not(#_):not(#__) { padding: 4px 0 8px !important; border: 0 !important; background: none !important; box-shadow: none !important; margin: 0 0 8px !important; }
  html.aiq-phone.aiq-phone #set-dlg .aqp-set-h h3:not(#_):not(#__) { font-size: 13px !important; color: var(--ph-mut) !important; font-weight: 600 !important; }
  html.aiq-phone.aiq-phone #set-dlg :is(.aqp-table, #rows-ov, #rows-ind, .aqp-set-h, .aqp-foot):not(#_):not(#__) { min-width: 0 !important; width: auto !important; padding-left: 0 !important; padding-right: 0 !important; overflow: visible !important; }
  html.aiq-phone.aiq-phone #set-dlg .aqp-row:not(#_):not(#__) { min-width: 0 !important; width: auto !important; display: flex !important; align-items: center; gap: 10px; min-height: 56px; padding: 0 !important; box-shadow: inset 0 -1px 0 var(--ph-line); }
  html.aiq-phone.aiq-phone #set-dlg .aqp-row select[data-act="kind"]:not(#_):not(#__) { flex: 1 1 auto; min-width: 0; height: 44px !important; font-size: 16px !important; border-radius: 10px !important; }
  html.aiq-phone.aiq-phone #set-dlg .aqp-row .aqp-params:not(#_):not(#__) { flex: none; display: flex; gap: 6px; }
  html.aiq-phone.aiq-phone #set-dlg .aqp-row .aqp-params input:not(#_):not(#__) { width: 64px !important; height: 44px !important; font-size: 16px !important; border-radius: 10px !important; text-align: center; }
  html.aiq-phone.aiq-phone #set-dlg .aqp-row .aqp-colbtn:not(#_):not(#__) { width: 22px !important; height: 22px !important; border-radius: 50% !important; flex: none; }
  html.aiq-phone.aiq-phone #set-dlg .aqp-row [data-act="remove"]:not(#_):not(#__) { width: 36px !important; height: 36px !important; flex: none; }
  html.aiq-phone.aiq-phone #set-dlg .aqp-foot .aqp-btn:not(#_):not(#__) { width: 100%; height: 44px !important; font-size: 15px !important; border-radius: 10px !important; justify-content: center; margin-top: 8px; }

  /* Congress → Add members: search + photo tiles; no party tabs or "Tick the members to add" line */
  html.aiq-phone.aiq-phone #cg-add-dlg :is(.cg-add-pt, .cg-add-n):not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone #cg-add-dlg .cg-add-q:not(#_):not(#__) { flex: 1 1 auto; width: 100%; }

  /* Screener Columns: tick a column on or off, nothing else (no drag handles, group tags, collapse buttons or long names) */
  html.aiq-phone.aiq-phone #col-cfg-panel :is(.cfg-drag-handle, .cfg-group-tag, .cfg-shut, .cfg-full):not(#_):not(#__) { display: none !important; }
  html.aiq-phone.aiq-phone #col-cfg-panel .cfg-row:not(#_):not(#__) { min-height: 50px; gap: 12px; padding: 0 4px; box-shadow: inset 0 -1px 0 var(--ph-line); }
  html.aiq-phone.aiq-phone #col-cfg-panel .cfg-label:not(#_):not(#__) { font-size: 16px; flex: 1 1 auto; }
  html.aiq-phone.aiq-phone #col-cfg-panel .cfg-row input[type=checkbox]:not(#_):not(#__) { order: 2; width: 22px; height: 22px; }

  /* .lg set-up dialogs (Columns, Setup, Add member…): body scrolls, roomy rows, footer buttons full width */
  html.aiq-phone.aiq-phone .aiq-dlg:is(.at-tpl, .lg, .nw-dlg, .adv-dlg, .mw-dlg, #set-dlg, #tm-pf-dlg, #ph-new, #pm-copy, #pp-trade, #pp-settings, #bd-create, #cr-copy):not(.at-tpl) .aiq-dlg-b:not(#_):not(#__) { flex: 1 1 auto; overflow-y: auto; padding: 4px 16px 12px; }
  html.aiq-phone.aiq-phone .aiq-dlg:is(.at-tpl, .lg, .nw-dlg, .adv-dlg, .mw-dlg, #set-dlg, #tm-pf-dlg, #ph-new, #pm-copy, #pp-trade, #pp-settings, #bd-create, #cr-copy):not(.at-tpl) .aiq-dlg-f:not(#_):not(#__) { padding: 10px 16px 12px; flex-wrap: nowrap; }
  html.aiq-phone.aiq-phone .aiq-dlg:is(.at-tpl, .lg, .nw-dlg, .adv-dlg, .mw-dlg, #set-dlg, #tm-pf-dlg, #ph-new, #pm-copy, #pp-trade, #pp-settings, #bd-create, #cr-copy):not(.at-tpl) .aiq-dlg-f .aiq-btn:not(#_):not(#__) { flex: 1 1 0; justify-content: center; min-height: 46px; font-size: 16px; border-radius: 12px; }
  html.aiq-phone.aiq-phone .aiq-dlg:is(.at-tpl, .lg, .nw-dlg, .adv-dlg, .mw-dlg, #set-dlg, #tm-pf-dlg, #ph-new, #pm-copy, #pp-trade, #pp-settings, #bd-create, #cr-copy):not(.at-tpl) .aiq-dlg-f :is(.sp, .aiq-btn.txt, [data-aiq-close]:not(.pri), .nw-n, span[style*="flex"]):not(#_):not(#__) { display: none !important; }
}

/* ── Sign-up / account gate (_plan_gate.html .pg-card; desktop look in aiq-gate-attio.css). User, 2026-11-01: "more
   fitting on mobile", then picked draft C "Hero" of five (Duolingo / Robinhood style): an inset 26px card with no
   desktop halo ring and no header/footer hairlines, the logo in a tinted tile on top, title + message centred, the
   buttons stacked full width as pills (blue first, Sign in / Not now as a grey pill under it), the round × top right. ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone .pg-back:not(#_) { align-items: center; padding: 12px; }
  html.aiq-phone.aiq-phone .pg-card:not(#_):not(#_) {
    display: flex; flex-direction: column; max-width: 400px; padding: 32px 20px 20px; border-radius: 26px; border: 0;
    text-align: center; box-shadow: 0 12px 40px rgba(15,17,21,.16), 0 2px 8px rgba(15,17,21,.06);
  }
  html.aiq-phone.aiq-phone .pg-card .aiq-x:not(#_):not(#_) { top: 10px; right: 10px; width: 32px; height: 32px; border-radius: 999px;
    background: var(--a-hover, var(--pop-hover)); }
  html.aiq-phone.aiq-phone .pg-card .pg-logo:not(#_) { display: block; order: 0; width: 72px; height: 72px; margin: 0 auto 18px;
    padding: 16px; border-radius: 20px; background: #EEF1FD; }
  html.aiq-phone.aiq-phone[data-theme="dark"] .pg-card .pg-logo:not(#_) { background: rgba(69,93,220,.18); }
  html.aiq-phone.aiq-phone .pg-card .pg-logo svg { display: block; width: 100%; height: 100%; }
  html.aiq-phone.aiq-phone .pg-card .pg-title:not(#_):not(#_) { order: 1; padding: 0 28px; min-height: 0; box-shadow: none;
    font: 650 22px/28px Inter, system-ui, sans-serif; letter-spacing: -0.2px; }
  html.aiq-phone.aiq-phone .pg-card .pg-msg:not(#_):not(#_) { order: 2; padding: 8px 4px 26px; font: 400 15px/21px Inter, system-ui, sans-serif; }
  html.aiq-phone.aiq-phone .pg-card .pg-row:not(#_):not(#_) { order: 3; flex-direction: column-reverse; align-items: stretch; gap: 10px;
    padding: 0; min-height: 0; box-shadow: none; }
  html.aiq-phone.aiq-phone .pg-card .pg-btn:not(#_):not(#_) { justify-content: center; height: 48px; border-radius: 999px;
    font: 600 16px/20px Inter, system-ui, sans-serif; }
  html.aiq-phone.aiq-phone .pg-card .pg-btn.ghost:not(#_):not(#_) { box-shadow: none; background: rgba(120,124,140,.12); color: var(--a-ink, var(--pop-ink)); }
  html.aiq-phone.aiq-phone .pg-card .pg-sub:not(#_):not(#_) { order: 4; padding: 0; min-height: 0; box-shadow: none; justify-content: center; }
  html.aiq-phone.aiq-phone .pg-card .pg-sub:empty:not(#_):not(#_) { display: none; }
}

/* ── The rest of the pop-ups in the gate's Hero look (user, 2026-11-01: "yes, all three" after a phone audit): no desktop
   halo ring and no header/footer hairlines, 24px corners, bigger titles, 48px pill buttons with grey secondaries.
   1. Kit dialogs (.aiq-dlg; checkout and the Screener's Edit criteria sheet keep their own rules below / above).
   2. Confirms (aiqConfirm → .aiq-confirm): centred like the gate, buttons stacked, the action on top.
   3. Upgrade pop-up (_upsell.html .up-card): video panel kept, plan boxes one per row (they cut off at "5 years · 20 …").
   4. Checkout (_checkout_dialog.html #cko): was edge to edge full height; now an inset card with rounded fields. ── */
@media (max-width: 767px) {
  /* 1. kit dialogs */
  html.aiq-phone.aiq-phone[data-theme] .aiq-dlg:not(#cko):not(#scx-ed):not(#_) { border: 0 !important; border-radius: 24px !important;
    box-shadow: 0 12px 40px rgba(15,17,21,.16), 0 2px 8px rgba(15,17,21,.06) !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] .aiq-dlg:not(#cko):not(#scx-ed):not(#_) { box-shadow: 0 12px 40px rgba(0,0,0,.55) !important; }
  html.aiq-phone.aiq-phone .aiq-dlg:not(#cko):not(#scx-ed) .aiq-dlg-h:not(#_) { min-height: 0; padding: 20px 14px 6px 20px !important; box-shadow: none !important; }
  html.aiq-phone.aiq-phone .aiq-dlg:not(#cko):not(#scx-ed) .aiq-dlg-t:not(#_) { font: 650 19px/24px Inter, system-ui, sans-serif !important; letter-spacing: -0.2px; }
  html.aiq-phone.aiq-phone .aiq-dlg:not(#cko):not(#scx-ed) .aiq-dlg-b:not(#_) { padding: 8px 20px !important; }
  html.aiq-phone.aiq-phone .aiq-dlg:not(#cko):not(#scx-ed) .aiq-dlg-f:not(#_) { gap: 10px; padding: 14px 20px 20px !important; box-shadow: none !important; }
  html.aiq-phone.aiq-phone .aiq-dlg:not(#cko):not(#scx-ed) .aiq-dlg-f > .aiq-btn:not(#_) { flex: 1 1 0; justify-content: center; height: 48px !important;
    min-height: 48px; border-radius: 999px !important; font: 600 16px/20px Inter, system-ui, sans-serif !important; }
  html.aiq-phone.aiq-phone .aiq-dlg:not(#cko):not(#scx-ed) .aiq-dlg-f > .aiq-btn:not(.pri):not(.danger):not(#_) { border: 0 !important;
    box-shadow: none !important; background: rgba(120,124,140,.12) !important; color: var(--a-ink, var(--pop-ink)) !important; }
  html.aiq-phone.aiq-phone .aiq-dlg:not(#cko):not(#scx-ed) .aiq-x:not(#_) { width: 32px; height: 32px; border-radius: 999px; background: var(--a-hover, var(--pop-hover)); }

  /* 2. confirms */
  html.aiq-phone.aiq-phone .aiq-dlg.aiq-confirm:not(#_):not(#_) { border-radius: 26px !important; }
  html.aiq-phone.aiq-phone .aiq-confirm .aiq-dlg-h:not(#_):not(#_) { justify-content: center; padding: 30px 44px 0 !important; text-align: center; }
  html.aiq-phone.aiq-phone .aiq-confirm .aiq-dlg-t:not(#_):not(#_) { flex: 1; max-width: none; text-align: center; font-size: 21px !important; line-height: 26px !important; }
  html.aiq-phone.aiq-phone .aiq-confirm .aiq-x:not(#_):not(#_) { position: absolute; top: 10px; right: 10px; margin: 0; }
  html.aiq-phone.aiq-phone .aiq-confirm .aiq-dlg-b:not(#_):not(#_) { padding: 8px 24px 0 !important; }
  html.aiq-phone.aiq-phone .aiq-confirm .aiq-dlg-msg:not(#_) { margin: 0; text-align: center; font: 400 15px/21px Inter, system-ui, sans-serif; }
  html.aiq-phone.aiq-phone .aiq-confirm .aiq-dlg-f:not(#_):not(#_) { flex-direction: column-reverse; align-items: stretch; padding: 24px 20px 20px !important; }
  html.aiq-phone.aiq-phone .aiq-confirm .aiq-dlg-f > .aiq-btn:not(#_):not(#_) { flex: none; width: 100%; }

  /* 3. upgrade pop-up */
  html.aiq-phone.aiq-phone .up-back:not(#_) { padding: 12px; }
  html.aiq-phone.aiq-phone .up-card:not(#_):not(#_) { border-radius: 26px !important; outline: 0 !important;
    box-shadow: 0 12px 40px rgba(15,17,21,.16), 0 2px 8px rgba(15,17,21,.06) !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] .up-card:not(#_):not(#_) { box-shadow: 0 12px 40px rgba(0,0,0,.55) !important; }
  html.aiq-phone.aiq-phone .up-media:not(#_):not(#_) { margin: 8px 8px 0; border-radius: 20px; }
  html.aiq-phone.aiq-phone .up-body:not(#_):not(#_) { padding: 20px 20px 0; text-align: center; }
  html.aiq-phone.aiq-phone .up-title:not(#_):not(#_) { font: 650 22px/28px Inter, system-ui, sans-serif; letter-spacing: -0.2px; margin: 0 0 6px; }
  html.aiq-phone.aiq-phone .up-text:not(#_):not(#_) { min-height: 0; font: 400 15px/21px Inter, system-ui, sans-serif; }
  html.aiq-phone.aiq-phone .up-plans:not(#_):not(#_) { grid-template-columns: minmax(0, 1fr); gap: 8px; margin: 18px 0; text-align: left; }
  html.aiq-phone.aiq-phone .up-plan:not(#_):not(#_) { border-radius: 16px; padding: 12px 16px; }
  html.aiq-phone.aiq-phone .up-val:not(#_):not(#_) { white-space: normal; font-size: 15px; line-height: 20px; }
  html.aiq-phone.aiq-phone .up-foot:not(#_):not(#_) { margin: 0; padding: 0 0 20px; gap: 12px; box-shadow: none; }
  html.aiq-phone.aiq-phone .up-go:not(#_):not(#_) { height: 48px; border-radius: 999px; font: 600 16px/20px Inter, system-ui, sans-serif; }
  html.aiq-phone.aiq-phone .up-note:not(#_):not(#_) { font-size: 13px; }

  /* 4. checkout */
  html.aiq-phone.aiq-phone #cko.aiq-dlg:not(#_):not(#_) { width: calc(100vw - 24px) !important; top: calc(12px + env(safe-area-inset-top));
    height: auto; max-height: calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); padding: 0;
    border-radius: 26px !important; box-shadow: 0 12px 40px rgba(15,17,21,.18), 0 2px 8px rgba(15,17,21,.06) !important; }
  html.aiq-phone.aiq-phone #cko .cko-panel:not(#_) { border-radius: 26px; box-shadow: none; }
  html.aiq-phone.aiq-phone #cko .cko-top:not(#_) { height: 52px; padding: 0 10px 0 20px; box-shadow: none; }
  html.aiq-phone.aiq-phone #cko .cko-x:not(#_) { width: 32px; height: 32px; border-radius: 999px; background: var(--c-track); }
  html.aiq-phone.aiq-phone #cko .cko-hero:not(#_) { padding: 0 20px 12px; box-shadow: none; }
  html.aiq-phone.aiq-phone #cko .cko-hero h3:not(#_) { font-size: 21px; line-height: 26px; }
  html.aiq-phone.aiq-phone #cko .cko-r:not(#_) { padding: 8px 20px 20px; }
  html.aiq-phone.aiq-phone #cko .cko-sec:not(#_) { padding-left: 20px; padding-right: 20px; }
  html.aiq-phone.aiq-phone #cko .cko-seg:not(#_) { border-radius: 999px; padding: 3px; }
  html.aiq-phone.aiq-phone #cko .cko-seg button:not(#_) { height: 34px; border-radius: 999px; font-size: 15px; }
  html.aiq-phone.aiq-phone #cko .cko-in:not(#_) { height: 46px; padding: 0 14px; border-radius: 12px; font-size: 16px; }
  html.aiq-phone.aiq-phone #cko .cko-go:not(#_) { height: 48px; border-radius: 999px; font: 600 16px/20px Inter, system-ui, sans-serif; }
}

/* ── Round two of the Hero look (user, 2026-11-01: "yes, update them"): the one-off cards ("Thanks for applying"
   _affiliate_applied.html .afm-card, "You're on Pro" _upgraded.html .upm-card, "Open in Substack" aff-substack.js
   .aiq-ss-card) go centred with a full-width pill; the failed-request toast (#aiq-toast) spans the screen on one line;
   the Screener's Edit criteria (#scx-ed) takes the dialog corners, title and pill buttons. ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone :is(.afm-back, .upm-back, .aiq-ss-back):not(#_) { padding: 12px; }
  html.aiq-phone.aiq-phone :is(.afm-card, .upm-card, .aiq-ss-card):not(#_):not(#_) { border: 0 !important; border-radius: 26px !important;
    box-shadow: 0 12px 40px rgba(15,17,21,.16), 0 2px 8px rgba(15,17,21,.06) !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] :is(.afm-card, .upm-card, .aiq-ss-card):not(#_):not(#_) { box-shadow: 0 12px 40px rgba(0,0,0,.55) !important; }
  html.aiq-phone.aiq-phone :is(.afm-card, .upm-card, .aiq-ss-card) .aiq-x:not(#_):not(#_) { top: 10px; right: 10px; width: 32px; height: 32px; border-radius: 999px; }
  html.aiq-phone.aiq-phone :is(.afm-card, .aiq-ss-card) .aiq-x:not(#_):not(#_) { background: var(--a-hover, var(--pop-hover)); }
  /* full-width pill buttons, grey secondaries */
  html.aiq-phone.aiq-phone :is(.afm-ok, .upm-row .aiq-btn, .aiq-ss-f .aiq-btn):not(#_):not(#_) { justify-content: center; height: 48px;
    border-radius: 999px !important; font: 600 16px/20px Inter, system-ui, sans-serif; }
  html.aiq-phone.aiq-phone :is(.upm-row, .aiq-ss-f) .aiq-btn:not(.pri):not(#_):not(#_) { box-shadow: none; background: rgba(120,124,140,.12);
    color: var(--a-ink, var(--pop-ink)); }

  /* Thanks for applying */
  html.aiq-phone.aiq-phone .afm-card:not(#_):not(#_) { padding: 32px 20px 20px; text-align: center; }
  html.aiq-phone.aiq-phone .afm-card .afm-icon:not(#_) { width: 56px; height: 56px; margin: 0 auto 16px; }
  html.aiq-phone.aiq-phone .afm-card h2:not(#_) { font: 650 22px/28px Inter, system-ui, sans-serif; letter-spacing: -0.2px; margin: 0 0 8px; }
  html.aiq-phone.aiq-phone .afm-card p:not(#_) { font: 400 15px/21px Inter, system-ui, sans-serif; margin: 0 0 24px; }
  html.aiq-phone.aiq-phone .afm-row:not(#_) { display: flex; }
  html.aiq-phone.aiq-phone .afm-ok:not(#_):not(#_) { flex: 1; border: 0; }

  /* You're on Pro: art band kept, badge centred on its edge */
  html.aiq-phone.aiq-phone .upm-badge:not(#_) { left: 50%; margin-left: -20px; }
  html.aiq-phone.aiq-phone .upm-body:not(#_) { padding: 34px 20px 20px; text-align: center; }
  html.aiq-phone.aiq-phone .upm-kicker:not(#_) { justify-content: center; }
  html.aiq-phone.aiq-phone .upm-card h2:not(#_) { font: 650 22px/28px Inter, system-ui, sans-serif; letter-spacing: -0.2px; }
  html.aiq-phone.aiq-phone .upm-lede:not(#_) { font: 400 15px/21px Inter, system-ui, sans-serif; }
  html.aiq-phone.aiq-phone .upm-tile:not(#_):not(#_) { border: 0; border-radius: 16px; padding: 12px 8px; }
  html.aiq-phone.aiq-phone .upm-row:not(#_) { flex-direction: column-reverse; align-items: stretch; gap: 10px; }
  html.aiq-phone.aiq-phone .upm-fine:not(#_) { text-align: center; margin-top: 14px; }

  /* Open in Substack */
  html.aiq-phone.aiq-phone .aiq-ss-card:not(#_):not(#_) { padding: 24px 20px 20px; }
  html.aiq-phone.aiq-phone .aiq-ss-ok:not(#_) { font: 650 19px/24px Inter, system-ui, sans-serif; padding-right: 36px; }
  html.aiq-phone.aiq-phone .aiq-ss-card p:not(#_) { font-size: 15px; line-height: 21px; }
  html.aiq-phone.aiq-phone .aiq-ss-steps li:not(#_) { font-size: 15px; }
  html.aiq-phone.aiq-phone .aiq-ss-img:not(#_) { border-radius: 14px; }
  html.aiq-phone.aiq-phone .aiq-ss-f:not(#_) { gap: 10px; }
  html.aiq-phone.aiq-phone .aiq-ss-f .aiq-btn:not(#_):not(#_) { flex: 1 1 0; }

  /* failed-request toast: across the screen, message left, Retry right */
  html.aiq-phone.aiq-phone #aiq-toast:not(#_):not(#_) { left: 12px; right: 12px; transform: none; padding: 8px 8px 8px 16px;
    border-radius: 16px; font: 500 15px/20px Inter, system-ui, sans-serif; }
  html.aiq-phone.aiq-phone #aiq-toast > span { flex: 1; min-width: 0; }
  html.aiq-phone.aiq-phone #aiq-toast button:not(#_):not(#_) { flex: none; height: 36px; padding: 0 16px; border-radius: 999px;
    font: 600 15px/20px Inter, system-ui, sans-serif; }

  /* Screener Edit criteria */
  html.aiq-phone.aiq-phone #scx-ed.aiq-dlg:not([hidden]):not(#_):not(#_) { border-radius: 24px !important; border: 0 !important;
    box-shadow: 0 12px 40px rgba(15,17,21,.16), 0 2px 8px rgba(15,17,21,.06) !important; }
  html.aiq-phone.aiq-phone #scx-ed .aiq-dlg-t:not(#_):not(#_) { font: 650 19px/24px Inter, system-ui, sans-serif !important; letter-spacing: -0.2px; }
  html.aiq-phone.aiq-phone #scx-ed .aiq-dlg-f > .aiq-btn:not(#_):not(#_) { justify-content: center; height: 46px !important; min-height: 46px;
    border-radius: 999px !important; font: 600 16px/20px Inter, system-ui, sans-serif !important; }
  html.aiq-phone.aiq-phone #scx-ed .aiq-dlg-f > .aiq-btn:not(.pri):not(#_):not(#_) { border: 0 !important; box-shadow: none !important;
    background: rgba(120,124,140,.12) !important; color: var(--a-ink, var(--pop-ink)) !important; }
}

/* ── Promo pop-ups like Wealthsimple's offer card (user, 2026-11-01: "good inspo for update popups"): the upgrade
   pop-up (.up-card) and "You're on Pro" (.upm-card) sit low on the screen over the tab bar, 32px corners, the art /
   video panel inset 10px with 24px corners and a round white × on it, a big centred title, roomy grey text, and one
   full-width charcoal pill (the phone palette's #2B2D33). Overrides the round-one rules above. ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone :is(.up-back, .upm-back):not(#_):not(#_) { align-items: flex-end; padding: 12px 12px calc(12px + env(safe-area-inset-bottom)); }
  html.aiq-phone.aiq-phone :is(.up-card, .upm-card):not(#_):not(#_):not(#_) { max-width: 520px; border-radius: 32px !important;
    animation: phPromoUp .34s cubic-bezier(.2,.9,.25,1); }
  html.aiq-phone.aiq-phone .up-media:not(#_):not(#_):not(#_) { margin: 10px 10px 0; border-radius: 24px; }
  html.aiq-phone.aiq-phone .up-close:not(#_):not(#_) { top: 12px; right: 12px; width: 40px; height: 40px; border-radius: 999px; font-size: 17px;
    background: rgba(255,255,255,.88); color: #0F1115; -webkit-backdrop-filter: none; backdrop-filter: none; }
  html.aiq-phone.aiq-phone .up-body:not(#_):not(#_):not(#_) { padding: 26px 24px 0; }
  html.aiq-phone.aiq-phone :is(.up-title, .upm-card h2):not(#_):not(#_):not(#_) { font: 700 27px/33px Inter, system-ui, sans-serif; letter-spacing: -0.6px;
    margin: 0 0 12px; }
  html.aiq-phone.aiq-phone :is(.up-text, .upm-lede):not(#_):not(#_):not(#_) { font: 400 16px/23px Inter, system-ui, sans-serif; }
  html.aiq-phone.aiq-phone .up-plans:not(#_):not(#_):not(#_) { margin: 20px 0; }
  /* the foot is the card's own child, beside .up-body (not inside it): it needs the body's 24px sides, or the pill ran
     into the card's edges (2026-11-10, tests/test_phone_shell_fixes.py) */
  html.aiq-phone.aiq-phone .up-foot:not(#_):not(#_):not(#_) { padding: 0 24px 22px; gap: 14px; }
  html.aiq-phone.aiq-phone :is(.up-go, .upm-row .aiq-btn.pri):not(#_):not(#_):not(#_) { height: 56px; border-radius: 999px !important; border: 0;
    background: #2B2D33 !important; color: #fff !important; box-shadow: none; font: 600 17px/20px Inter, system-ui, sans-serif; }
  html.aiq-phone.aiq-phone .up-note:not(#_):not(#_):not(#_) { font-size: 13px; }
  html.aiq-phone.aiq-phone .up-note a:not(#_):not(#_) { text-decoration: underline; text-underline-offset: 2px; }

  /* You're on Pro: the art band becomes the inset panel; the badge sits on its lower edge */
  html.aiq-phone.aiq-phone .upm-art:not(#_) { height: 160px; margin: 10px 10px 0; border-radius: 24px; }
  html.aiq-phone.aiq-phone .upm-badge:not(#_):not(#_) { top: 150px; }
  html.aiq-phone.aiq-phone .upm-card .aiq-x:not(#_):not(#_):not(#_) { top: 22px; right: 22px; width: 40px; height: 40px;
    background: rgba(255,255,255,.88); color: #0F1115; }
  html.aiq-phone.aiq-phone .upm-body:not(#_):not(#_) { padding: 38px 24px 22px; }
  html.aiq-phone.aiq-phone .upm-row .aiq-btn:not(#_):not(#_):not(#_) { height: 56px; font-size: 17px; }

  @keyframes phPromoUp { from { transform: translateY(40px); opacity: 0; } to { transform: none; opacity: 1; } }
}

/* ── Upgrade pop-up on phones (user, 2026-11-01: "don't do a swipe / slideshow … some image in the theme of
   Wealthsimple's one, no screenshots"): _upsell.html opens one feature with .up-phone and builds no clips; the panel
   shows img/upsell/phone-promo.svg (the Eight blocks mark on a warm-to-lavender gradient). ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone .up-phone .up-media:not(#_):not(#_):not(#_) { aspect-ratio: 8 / 5; padding: 0;
    background: #C2B3C4 url(../img/upsell/phone-promo.svg) center / cover no-repeat; }
  html.aiq-phone.aiq-phone .up-phone :is(.up-vids, .up-nav, .up-pause) { display: none; }
}

/* ── Wealthsimple look for phone pop-ups (user, 2026-11-01, two Wealthsimple shots — a company blurb card and "Set an alert
   for AAPL": "popups should be restyled to something closer to this"). A soft grey surface (#F4F5F7, white fields), big
   32px corners, a large left title, the × in a white circle, buttons stacked full width: the action as a black pill on top,
   Cancel / Dismiss as a white pill under it. Small kit dialogs sit at the bottom as an inset card; the big set-up dialogs
   stay edge-to-edge sheets (rounded top). Checkout (#cko) and the Screener's Edit criteria (#scx-ed) keep their own. ── */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme="light"] .aiq-dlg:not(#cko):not(#scx-ed):not(#_):not(#_) { background: #F4F5F7 !important;
    border-radius: 32px !important; box-shadow: 0 20px 60px rgba(15,17,21,.22) !important; }
  html.aiq-phone.aiq-phone .aiq-dlg:not(#cko):not(#scx-ed):not(.at-tpl):not(.lg):not(.nw-dlg):not(.adv-dlg):not(.mw-dlg):not(#set-dlg):not(#tm-pf-dlg):not(#ph-new):not(#pm-copy):not(#pp-trade):not(#pp-settings):not(#bd-create):not(#cr-copy):not([hidden]):not(#_):not(#_) {
    position: fixed !important; top: auto !important; left: 10px !important; right: 10px !important; bottom: calc(10px + env(safe-area-inset-bottom)) !important;
    width: auto !important; max-width: none !important; margin: 0 !important; transform: none !important; translate: none !important;
    max-height: calc(100dvh - 30px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important; animation: phSheetUp .34s cubic-bezier(.22,1,.36,1) !important; }
  html.aiq-phone.aiq-phone .aiq-dlg:is(.at-tpl, .lg, .nw-dlg, .adv-dlg, .mw-dlg, #set-dlg, #tm-pf-dlg, #ph-new, #pm-copy, #pp-trade, #pp-settings, #bd-create, #cr-copy):not(#_):not(#_):not(#_) {
    border-radius: 32px 32px 0 0 !important; }
  /* title: large, left, the × in a white circle */
  html.aiq-phone.aiq-phone .aiq-dlg:not(#cko):not(#scx-ed) .aiq-dlg-h:not(#_):not(#_) { padding: 22px 16px 6px 22px !important; justify-content: flex-start; text-align: left; }
  html.aiq-phone.aiq-phone .aiq-dlg:not(#cko):not(#scx-ed) .aiq-dlg-t:not(#_):not(#_):not(#_) { flex: 1; text-align: left; font: 700 24px/30px Inter, system-ui, sans-serif !important; letter-spacing: -.02em; color: #101112; }
  html.aiq-phone.aiq-phone .aiq-dlg:not(#cko):not(#scx-ed) .aiq-x:not(#_):not(#_):not(#_) { position: static; flex: none; width: 36px; height: 36px; margin: -4px 0 0 auto;
    border-radius: 50%; background: #FFFFFF !important; color: #101112; box-shadow: 0 1px 4px rgba(15,17,21,.10); }
  html.aiq-phone.aiq-phone .aiq-dlg:not(#cko):not(#scx-ed) .aiq-x i:not(#_):not(#_) { font-size: 16px; }
  html.aiq-phone.aiq-phone .aiq-dlg:not(#cko):not(#scx-ed) .aiq-dlg-b:not(#_):not(#_) { padding: 8px 22px !important; color: #5E636B; font-size: 16px; line-height: 23px; }
  html.aiq-phone.aiq-phone .aiq-confirm .aiq-dlg-msg:not(#_):not(#_) { text-align: left; font: 400 16px/23px Inter, system-ui, sans-serif; color: #5E636B; }
  /* fields on the grey surface: white */
  html.aiq-phone.aiq-phone[data-theme="light"] .aiq-dlg:not(#cko):not(#scx-ed) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea, .aiq-in):not(.aiq-dlg-nm > *):not(.nw-box *):not(#_):not(#_) {
    background: #FFFFFF !important; border-color: transparent !important; box-shadow: 0 0 0 1px rgba(15,17,21,.06) !important; }
  /* an input inside a field wrapper (a dialog's name field, New watchlist's search box): the wrapper is the white field,
     the input stays bare — it drew a second white box inside the first, touching its edges (2026-11-08 spacing pass) */
  html.aiq-phone.aiq-phone[data-theme="light"] .aiq-dlg:not(#cko):not(#scx-ed) :is(.aiq-dlg-nm, .nw-box):not(#_):not(#_) { background: #FFFFFF !important; }
  html.aiq-phone.aiq-phone[data-theme="light"] .aiq-dlg:not(#cko):not(#scx-ed) .nw-box input:not(#_):not(#_) { background: transparent !important; box-shadow: none !important; }
  /* buttons: stacked, full width, the action on top as a black pill, the rest white */
  html.aiq-phone.aiq-phone .aiq-dlg:not(#cko):not(#scx-ed) .aiq-dlg-f:not(#_):not(#_) { flex-direction: column-reverse; align-items: stretch; gap: 10px; padding: 18px 16px 16px !important; }
  html.aiq-phone.aiq-phone .aiq-dlg:not(#cko):not(#scx-ed) .aiq-dlg-f > .aiq-btn:not(#_):not(#_) { flex: none !important; width: 100%; height: 52px !important; min-height: 52px !important;
    border-radius: 999px !important; font: 600 17px/20px Inter, system-ui, sans-serif !important; }
  html.aiq-phone.aiq-phone .aiq-dlg:not(#cko):not(#scx-ed) .aiq-dlg-f > .aiq-btn.pri:not(#_):not(#_) { background: #101112 !important; color: #FFFFFF !important; border: 0 !important; }
  html.aiq-phone.aiq-phone .aiq-dlg:not(#cko):not(#scx-ed) .aiq-dlg-f > .aiq-btn:not(.pri):not(.danger):not(#_):not(#_) { background: #FFFFFF !important; color: #101112 !important;
    box-shadow: 0 1px 4px rgba(15,17,21,.08) !important; }
  html.aiq-phone.aiq-phone .aiq-dlg:not(#cko):not(#scx-ed) .aiq-dlg-f > .aiq-btn:empty:not(#_):not(#_) { display: none !important; }
  /* the sign-up gate keeps its picked "Hero" insides (logo tile, centred words, blue sign-up pill) in the same frame:
     at the bottom, grey surface, 32px corners, white × circle, Sign in as a white pill */
  html.aiq-phone.aiq-phone .pg-back:not(#_):not(#_) { align-items: flex-end; padding: 10px 10px calc(10px + env(safe-area-inset-bottom)); }
  html.aiq-phone.aiq-phone[data-theme="light"] .pg-card:not(#_):not(#_):not(#_) { max-width: none; border-radius: 32px; background: #F4F5F7;
    box-shadow: 0 20px 60px rgba(15,17,21,.22); animation: phSheetUp .34s cubic-bezier(.22,1,.36,1); }
  html.aiq-phone.aiq-phone .pg-card .aiq-x:not(#_):not(#_):not(#_) { width: 36px; height: 36px; background: #FFFFFF; color: #101112; box-shadow: 0 1px 4px rgba(15,17,21,.10); }
  html.aiq-phone.aiq-phone[data-theme="light"] .pg-card .pg-logo:not(#_):not(#_) { background: #FFFFFF; }
  html.aiq-phone.aiq-phone .pg-card .pg-btn:not(#_):not(#_):not(#_) { height: 52px; font-size: 17px; }
  html.aiq-phone.aiq-phone[data-theme="light"] .pg-card .pg-btn.ghost:not(#_):not(#_):not(#_) { background: #FFFFFF; color: #101112; box-shadow: 0 1px 4px rgba(15,17,21,.08); }
}

/* Shell pass, round two (2026-11-10): flash messages were the desktop's 4px bordered strips, the failed-request toast
   14px with a 36px Retry, and the load-error box a 12px line with a 26px Retry: phone card corners, 15px text, 44px
   targets. tests/test_phone_shell_round2.py */
@media (max-width: 767px) {
  html.aiq-phone .aiq-flash:not(#_):not(#_), html.aiq-phone main .st-flash:not(#_):not(#_) { border-radius: var(--ph-r, 18px); padding: 12px 16px; font-size: 15px; line-height: 20px; }
  html.aiq-phone.aiq-phone #aiq-toast:not(#_):not(#_):not(#_):not(#_) { border-radius: var(--ph-r, 18px) !important; }   /* the frosted kit's 14px is !important */
  html.aiq-phone.aiq-phone #aiq-toast button:not(#_):not(#_):not(#_):not(#_) { height: 44px; }
  html.aiq-phone .aiq-load-error:not(#_) { font-size: 15px; }
  html.aiq-phone .aiq-load-error .ale-retry:not(#_) { min-height: 44px; padding: 0 20px; border-radius: 999px; font-size: 15px; }
}

/* ==== css/aiq-phone-lists.css ==== */
/* Phone layout, style A — List pages (Screener, Watchlist, Insiders, Congress, Gov. contracts, Earnings, Superinvestors).
   Same rules as aiq-phone.css: every rule sits inside @media (max-width: 767px) and starts with html.aiq-phone
   (tests/test_phone_layout.py checks every aiq-phone*.css file). Loaded by _phone.html after aiq-phone.css. */

/* Re-review in the approved phone look (2026-10-19): flat white, calm tables, round-ended toggles. Tab rows are chips,
   set centrally in aiq-phone.css "Every tab row". */
@media (max-width: 767px) {
  /* tables: no grey header band, no zebra banding — the page is one flat colour (house --tb-* tokens) */
  html.aiq-phone.aiq-phone[data-theme] { --tb-head: var(--ph-card); --tb-band: var(--ph-card); --tb-bg: var(--ph-card); }
  html.aiq-phone.aiq-phone[data-theme] main #screener-table tbody tr:nth-child(even) td { background: var(--ph-card) !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.gm-thead, .ec-sub) { background: var(--ph-card) !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(#screener-table, .wl-main table, .ins-tbl, .si-list-tbl) thead th {
    background: var(--ph-card) !important; color: var(--ph-mut) !important; font-weight: 500 !important; }
  /* My screens: the header row takes the top bar's grey (user, 2026-10-29), not the white list box under it */
  html.aiq-phone.aiq-phone[data-theme] #sch-home .sch-tbl thead th:not(#_):not(#_):not(#_):not(#_) { background: var(--sh-bed, var(--ph-bed)) !important; }

  /* readable rows on the dense lists (Insiders, Superinvestors): 13.5px figures, a little more air */
  html.aiq-phone.aiq-phone[data-theme] main :is(.ins-tbl, .si-list-tbl, .si-hold-tbl) tbody td {
    font-size: 13.5px !important; padding-top: 8px !important; padding-bottom: 8px !important; }

  /* toggles as round-ended tracks: Screener Table | Plot, Superinvestors Table | Pie and its performance switch */
  html.aiq-phone.aiq-phone[data-theme] main :is(.sc-view-switch, .si-view-switch, .retb-seg) {
    display: inline-flex !important; border: 0 !important; border-radius: 999px !important; padding: 3px !important; gap: 2px !important;
    background: rgba(118,118,128,.12) !important; box-shadow: none !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.sc-view-switch, .si-view-switch, .retb-seg) > :is(button, a) {
    border: 0 !important; border-radius: 999px !important; background: transparent !important; box-shadow: none !important;
    color: var(--ph-mut) !important; padding: 5px 12px !important; }
  html.aiq-phone.aiq-phone[data-theme] main :is(.sc-view-switch, .si-view-switch, .retb-seg) > :is(.on, .is-on, [aria-pressed="true"]) {
    background: var(--ph-card) !important; color: var(--ph-ink) !important; box-shadow: 0 1px 3px rgba(15,17,21,.14) !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] main :is(.sc-view-switch, .si-view-switch, .retb-seg) > :is(.on, .is-on, [aria-pressed="true"]) { background: #3A3A3C !important; }

  /* Superinvestors sub-tabs: one chip row that scrolls sideways (the four chips + Table | Pie don't fit 390px; wrapping
     put Analytics on a line of its own and clipped the switch). The open chip is the central chip style —
     aiq-phone-people.css painted it with the page colour, which on the flat white page left it blank. */
  html.aiq-phone.aiq-phone[data-theme] main .si-subtabs { flex-wrap: nowrap !important; overflow-x: auto !important; scrollbar-width: none; }
  html.aiq-phone.aiq-phone[data-theme] main .si-subtabs::-webkit-scrollbar { display: none; }
  html.aiq-phone.aiq-phone[data-theme] main .si-subtabs > * { flex: none !important; }
  html.aiq-phone.aiq-phone[data-theme] main .si-subtabs .si-subtab.si-subtab-active { background: #0F1115 !important; color: #fff !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] main .si-subtabs .si-subtab.si-subtab-active { background: #F1F2F4 !important; color: #0F1115 !important; }
  /* the investor list was a 140px peephole (3 rows) inside a fixed 300px panel; show about seven */
  html.aiq-phone.aiq-phone[data-theme] main .si-list { height: auto !important; max-height: none !important; }
  html.aiq-phone.aiq-phone[data-theme] main #si-list-scroll { flex: none !important; height: auto !important; max-height: 270px !important; }
  /* Watchlist: the pinned ticker column kept its own card colour (a darker stripe in dark mode) */
  html.aiq-phone.aiq-phone[data-theme] main .wl-main :is(tbody td.wl-td, thead th) { background: var(--ph-card) !important; }
  /* page panels kept their own (lighter) card colour in dark mode; the approved look is one flat colour */
  html.aiq-phone.aiq-phone[data-theme] main :is(.ec-col, .ec-panel, .si-list, .si-card, .si-panel, .gm-card, .ins-bar, .ins-tbl-wrap, .ins-foot) {
    background: var(--ph-card) !important; }
  /* Screener Plot view: one flat pane, the chart in an outlined card, its tool switches in a round track */
  html.aiq-phone.aiq-phone[data-theme] main #sc-plot-pane { background: var(--ph-card) !important; }
  html.aiq-phone.aiq-phone[data-theme] main #sc-plot-card { background: var(--ph-card) !important; border: 1px solid var(--ph-edge) !important;
    border-radius: var(--ph-r) !important; box-shadow: none !important; }
  html.aiq-phone.aiq-phone[data-theme] main #sc-plot-head .tools { border-radius: 999px !important; background: rgba(118,118,128,.12) !important;
    padding: 3px !important; overflow-x: auto; scrollbar-width: none; }
  html.aiq-phone.aiq-phone[data-theme] main #sc-plot-head .tools .tg { border-radius: 999px !important; }
}

/* ==== css/aiq-phone-markets.css ==== */
/* Phone layout, style A — Markets and the Chart page.
   Same rules as aiq-phone.css: every rule sits inside @media (max-width: 767px) and starts with html.aiq-phone
   (tests/test_phone_layout.py checks every aiq-phone*.css file). Loaded by _phone.html after aiq-phone.css. */

/* Markets + Chart re-review (2026-10-19, approved phone look). The chapter row is styled centrally (aiq-phone.css
   "Every tab row"); here: in-card tab rows (.mk3 .tabs — "Sector returns | Valuation | Rotation", "Gainers & losers |
   …", "Yield curve | 10Y − 2Y spread") become the same chips, and value toggles (.mk3 .seg — 10Y/30Y/All, 1W/1M/YTD,
   Globe | Map; Chart's .aqp-seg — 1M…MAX, Lin | Log | %) become round-ended tracks: grey track, white pill on the
   open option. */
@media (max-width: 767px) {
  /* in-card tabs = chips */
  html.aiq-phone.aiq-phone[data-theme] .mk3 .tabs { gap: 8px !important; align-self: auto !important; padding: 2px 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] .mk3 .tabs button { height: 38px; padding: 0 14px !important; border-radius: var(--ph-r-sm) !important;
    background: rgba(118,118,128,.12) !important; color: var(--ph-ink) !important; font: 500 15px Inter, sans-serif !important; }
  html.aiq-phone.aiq-phone[data-theme] .mk3 .tabs button.on { background: #0F1115 !important; color: #fff !important; font-weight: 600 !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] .mk3 .tabs button.on { background: #F1F2F4 !important; color: #0F1115 !important; }
  html.aiq-phone.aiq-phone[data-theme] .mk3 .tabs button.on::after { display: none !important; }
  /* a card header holding chips stacks: chips on their own line, its other controls under them */
  html.aiq-phone.aiq-phone[data-theme] .mk3 .chd:has(> .tabs) { flex-wrap: wrap !important; row-gap: 8px !important; height: auto !important; padding-top: 10px !important; padding-bottom: 10px !important; }
  html.aiq-phone.aiq-phone[data-theme] .mk3 .chd > .tabs { flex: 1 1 100% !important; max-width: 100% !important; }

  /* value toggles = round-ended tracks */
  html.aiq-phone.aiq-phone[data-theme] :is(.mk3 .seg, .aqp-seg) { border: 0 !important; border-radius: 999px !important; padding: 3px !important; gap: 2px !important;
    background: rgba(118,118,128,.12) !important; box-shadow: none !important; }
  html.aiq-phone.aiq-phone[data-theme] :is(.mk3 .seg, .aqp-seg) > button { border: 0 !important; border-radius: 999px !important; background: transparent !important;
    box-shadow: none !important; color: var(--ph-mut) !important; }
  html.aiq-phone.aiq-phone[data-theme] :is(.mk3 .seg, .aqp-seg) > button.on { background: var(--ph-card) !important; color: var(--ph-ink) !important;
    box-shadow: 0 1px 3px rgba(15,17,21,.14) !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] :is(.mk3 .seg, .aqp-seg) > button.on { background: #3A3A3C !important; }
}

@media (max-width: 767px) {
  /* Today's index picker: the chips stacked one per row at their own widths (5 rows + a lone "+ More"). Two even
     columns instead; the open index keeps its dark outline. */
  html.aiq-phone.aiq-phone[data-theme] .mkx-chips { display: grid !important; grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important; gap: 8px !important;
    overflow: visible !important; }
  html.aiq-phone.aiq-phone[data-theme] .mkx-chips > .mkx-chip, html.aiq-phone.aiq-phone[data-theme] .mkx-chips > .mkx-more { min-width: 0 !important; width: auto !important; margin: 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] .mkx-chips .mkx-chip { border-radius: var(--ph-r-sm) !important; }
  html.aiq-phone.aiq-phone[data-theme] .mkx-chips .mkx-more-b { width: 100% !important; height: 100% !important; justify-content: center; }
  html.aiq-phone.aiq-phone[data-theme] .mkx-chip .nm { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  /* Chart: the chart-type picker matches the round tracks beside it */
  html.aiq-phone.aiq-phone[data-theme] #type-btn { border: 0 !important; border-radius: 999px !important; background: rgba(118,118,128,.12) !important; }
}

@media (max-width: 767px) {
  /* World: the country row is a tab row → chips; its ‹ › buttons go (the row swipes) */
  html.aiq-phone.aiq-phone[data-theme] .cty-bar .cty-arrow { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] .cty-pills { gap: 8px !important; padding: 2px 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] .cty-pills > button { flex: none; height: 38px; padding: 0 14px !important; border: 0 !important; border-radius: var(--ph-r-sm) !important;
    background: rgba(118,118,128,.12) !important; color: var(--ph-ink) !important; font: 500 15px Inter, sans-serif !important; box-shadow: none !important; }
  html.aiq-phone.aiq-phone[data-theme] .cty-pills > button.on { background: #0F1115 !important; color: #fff !important; font-weight: 600 !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] .cty-pills > button.on { background: #F1F2F4 !important; color: #0F1115 !important; }
  /* Week ahead carousels: softer inner cards, no ‹ › overlay buttons (the track swipes) */
  html.aiq-phone.aiq-phone[data-theme] .mkx-cc { border-radius: var(--ph-r-sm) !important; }
  html.aiq-phone.aiq-phone[data-theme] .mkx-car > .mkx-arr { display: none !important; }
}

/* Markets views in the Attio record look (user, 2026-10-29: "do the same restyle" as Home): every view's sections
   (.mkad-s: header + .mkad-tw table box) get the record kit's muted 17px heading with a plain count, the section's
   filter / menu button as a grey capsule, and the table inside an 18px outlined card (16px gutter) — hairline rows, no
   column lines, no header band, group rows ("United States 8") as quiet sub-headings. Colours from aiq-phone-record.css
   (--rc-*). One layer for all 14 views: they share .mkad-s / .mkad-t. */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] #mkad .mkad-s:not(#_):not(#_) { border-bottom: 0 !important; padding-bottom: 6px; }
  html.aiq-phone[data-theme] #mkad .mkad-s > header:not(#_):not(#_) { height: auto !important; min-height: 40px; margin: 18px 0 8px; padding: 0 20px !important;
    background: transparent !important; border: 0 !important; }
  html.aiq-phone[data-theme] #mkad .mkad-s > header .mst:not(#_):not(#_) { font: 450 17px/1.3 Inter, system-ui, sans-serif !important; color: var(--rc-head) !important; }
  html.aiq-phone[data-theme] #mkad .mkad-s > header > .cnt:not(#_):not(#_) { background: none !important; padding: 0 !important; border: 0 !important;
    font: 450 15px/1.3 Inter, system-ui, sans-serif !important; color: var(--rc-mut) !important; }
  html.aiq-phone[data-theme] #mkad .mkad-s > header :is(.mkad-mb, .mka-btn):not(#_):not(#_) { height: 34px !important; padding: 0 13px !important; border-radius: 999px !important;
    background: var(--rc-cap) !important; border: 1px solid var(--rc-capline) !important; box-shadow: none !important; color: var(--rc-ink) !important;
    font: 500 14px/1 Inter, system-ui, sans-serif !important; }

  /* the scroll box is bare: the cards are drawn on the rows (user, same day: "break up all the super long cards") — js/aiq-phone-cols.js
     marks each card's first / last row (.ph-cs / .ph-ce): a group row ("United States 8") is the heading between two cards, a long
     ungrouped list breaks every ~10 rows at a spacer row (.ph-gap). Every desktop column shows (data-ph-cols="all"); the table
     scrolls sideways under its pinned name column, the card's right edge comes into view at the end. */
  html.aiq-phone[data-theme] #mkad :is(.mkad-tw, .gtw):not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 0 16px !important; border: 0 !important; border-radius: 0 !important;
    background: transparent !important; overflow-x: auto; box-shadow: none !important; scrollbar-width: none; }
  html.aiq-phone[data-theme] #mkad :is(.mkad-tw, .gtw)::-webkit-scrollbar { display: none; }
  html.aiq-phone[data-theme] #mkad :is(.mkad-tw, .gtw) > table.mkad-t:not(#_):not(#_):not(#_) { border: 0 !important; border-collapse: separate !important; border-spacing: 0 !important; min-width: 100%;
    table-layout: auto !important; width: auto !important; }
  html.aiq-phone[data-theme] #mkad table.mkad-t > colgroup > col:not(#_):not(#_):not(#_) { width: auto !important; }   /* desktop's fixed widths: Index 320px + a hidden 168px Add column */
  html.aiq-phone[data-theme] #mkad table.mkad-t :is(th, td):not(#_):not(#_):not(#_):not(#_) { border-left: 0 !important; border-right: 0 !important; }
  html.aiq-phone[data-theme] #mkad table.mkad-t > thead th:not(#_):not(#_):not(#_):not(#_) { background: var(--sh-bed, transparent) !important; height: 34px; border: 0 !important;
    color: var(--rc-mut) !important; font: 500 12.5px/1.2 Inter, system-ui, sans-serif !important; white-space: nowrap; }
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr:not(.mkad-g):not(.ph-gap) > td:not(#_):not(#_):not(#_):not(#_) { background: var(--rc-card) !important; border-top: 0 !important;
    border-bottom: 1px solid var(--rc-line) !important; height: 54px; white-space: nowrap; }
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr:not(.mkad-g):not(.ph-gap):active > td:not(#_):not(#_):not(#_):not(#_) { background: var(--rc-cap) !important; }
  /* the card's edges: left on the pinned name cell, right on the last shown cell, top on its first row, rounded corners */
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr:not(.mkad-g):not(.ph-gap) > td:first-child:not(#_):not(#_):not(#_):not(#_) { border-left: 1px solid var(--rc-line) !important; }
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr:not(.mkad-g):not(.ph-gap) > td:nth-last-child(1 of :not(.addc, .ph-hc)):not(#_):not(#_):not(#_):not(#_) { border-right: 1px solid var(--rc-line) !important; }
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr.ph-cs > td:not(#_):not(#_):not(#_):not(#_) { border-top: 1px solid var(--rc-line) !important; }
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr.ph-cs > td:first-child:not(#_):not(#_):not(#_):not(#_) { border-top-left-radius: var(--ph-r, 18px); }
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr.ph-cs > td:nth-last-child(1 of :not(.addc, .ph-hc)):not(#_):not(#_):not(#_):not(#_) { border-top-right-radius: var(--ph-r, 18px); }
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr.ph-ce > td:first-child:not(#_):not(#_):not(#_):not(#_) { border-bottom-left-radius: var(--ph-r, 18px); }
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr.ph-ce > td:nth-last-child(1 of :not(.addc, .ph-hc)):not(#_):not(#_):not(#_):not(#_) { border-bottom-right-radius: var(--ph-r, 18px); }
  /* the name column stays put while the figures scroll */
  html.aiq-phone[data-theme] #mkad table.mkad-t > :is(thead, tbody) > tr:not(.mkad-g):not(.ph-gap) > :first-child:not(#_):not(#_):not(#_):not(#_) { position: sticky !important; left: 0 !important; z-index: 2; }
  /* group rows: the heading between two cards, on the page colour */
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr.mkad-g > td:not(#_):not(#_):not(#_):not(#_) { background: var(--sh-bed, transparent) !important; border: 0 !important; height: auto;
    padding: 20px 4px 8px !important; color: var(--rc-head) !important; font: 450 15px/1.2 Inter, system-ui, sans-serif !important; }
  /* pinned like the name cells: the site-wide edge fade (aiq-attio-draft.js fadeAdd) reads the first row's first cell to skip
     the left fade, and the label inside stays in view while the figures scroll */
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr.mkad-g > td:not(#_):not(#_):not(#_):not(#_):not(#_) { position: sticky !important; left: 0 !important; overflow: visible !important; }
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr.mkad-g .ph-gl { position: sticky; left: 4px; display: inline-flex; align-items: baseline; gap: 4px; }
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr:first-child.mkad-g > td:not(#_):not(#_):not(#_):not(#_) { padding-top: 4px !important; }
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr.mkad-g .cnt:not(#_):not(#_) { background: none !important; padding: 0 0 0 2px !important; color: var(--rc-mut) !important; font-weight: 450 !important; }
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr.ph-gap > td:not(#_):not(#_):not(#_):not(#_) { height: 16px; padding: 0 !important; border: 0 !important; background: transparent !important; }
  /* names in ink, ticker tiles as soft rounded squares */
  html.aiq-phone[data-theme] #mkad table.mkad-t td .cn:not(#_):not(#_):not(#_):not(#_) { color: var(--rc-ink) !important; }
  html.aiq-phone[data-theme] #mkad table.mkad-t :is(th, td):not(:first-child):not(#_):not(#_):not(#_):not(#_) { padding-left: 10px !important; padding-right: 12px !important; }
  html.aiq-phone[data-theme] #mkad table.mkad-t td .ic:not(#_):not(#_):not(#_) { border-radius: 6px !important; }
  html.aiq-phone[data-theme] #mkad table.mkad-t td.nr:not(#_):not(#_):not(#_):not(#_) { font-size: 13.5px !important; }
}

/* News on phones: a headline list, not a 3-column table — the headline full width, source · time under it; the topic row
   + search stay in the flow (the Overview rule that pins .mkad-r3 chips onto the chart also caught News's row). */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] #mkad .mkad-r3.mkad-ntop:not(#_):not(#_):not(#_):not(#_) { position: static !important; display: flex; flex-wrap: wrap; gap: 8px;
    margin: 6px 16px 12px !important; padding: 0 !important; }
  html.aiq-phone[data-theme] #mkad .mkad-ntop .mkad-seg:not(#_):not(#_) { flex: 1 1 100%; overflow-x: auto; scrollbar-width: none; }
  html.aiq-phone[data-theme] #mkad .mkad-ntop .mkad-search.open:not(#_):not(#_) { flex: 1 1 100%; }
  html.aiq-phone[data-theme] #mkad table.mkad-t:has(a.mkad-hl) > thead:not(#_):not(#_) { display: none !important; }
  html.aiq-phone[data-theme] #mkad table.mkad-t:has(a.mkad-hl) > tbody > tr:not(.mkad-g):not(#_):not(#_) { display: flex; flex-wrap: wrap; align-items: baseline;
    padding: 12px 16px; border: 1px solid var(--rc-line); border-top: 0; background: var(--rc-card); }
  html.aiq-phone[data-theme] #mkad table.mkad-t:has(a.mkad-hl) > tbody > tr.ph-cs:not(#_):not(#_) { border-top: 1px solid var(--rc-line); border-radius: var(--ph-r, 18px) var(--ph-r, 18px) 0 0; }
  html.aiq-phone[data-theme] #mkad table.mkad-t:has(a.mkad-hl) > tbody > tr.ph-ce:not(#_):not(#_) { border-bottom-left-radius: var(--ph-r, 18px); border-bottom-right-radius: var(--ph-r, 18px); }
  html.aiq-phone[data-theme] #mkad table.mkad-t:has(a.mkad-hl) > tbody > tr.ph-cs.ph-ce:not(#_):not(#_) { border-radius: var(--ph-r, 18px); }
  html.aiq-phone[data-theme] #mkad table.mkad-t:has(a.mkad-hl) > tbody > tr:not(.mkad-g) > td:first-child:not(#_):not(#_):not(#_):not(#_):not(#_) { position: static !important; }
  html.aiq-phone[data-theme] #mkad table.mkad-t:has(a.mkad-hl) > tbody > tr:not(.mkad-g) > td:not(#_):not(#_):not(#_):not(#_) { display: block; height: auto !important;
    padding: 0 !important; border: 0 !important; background: none !important; max-width: none !important; }
  html.aiq-phone[data-theme] #mkad table.mkad-t:has(a.mkad-hl) > tbody > tr:not(.mkad-g) > td:first-child:not(#_):not(#_):not(#_):not(#_) { flex: 1 1 100%; margin-bottom: 4px; }
  html.aiq-phone[data-theme] #mkad table.mkad-t:has(a.mkad-hl) a.mkad-hl:not(#_):not(#_):not(#_) { color: var(--rc-ink) !important; font: 500 15px/1.35 Inter, system-ui, sans-serif !important;
    white-space: normal !important; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  html.aiq-phone[data-theme] #mkad table.mkad-t:has(a.mkad-hl) > tbody > tr:not(.mkad-g) > td:not(:first-child):not(#_):not(#_):not(#_):not(#_) { color: var(--rc-mut) !important;
    font: 400 13px/1.3 Inter, system-ui, sans-serif !important; text-align: left !important; }
  html.aiq-phone[data-theme] #mkad table.mkad-t:has(a.mkad-hl) > tbody > tr:not(.mkad-g) > td:nth-child(3):not(#_):not(#_):not(#_):not(#_)::before { content: "·"; margin: 0 6px; }
  html.aiq-phone[data-theme] #mkad table.mkad-t:has(a.mkad-hl) > tbody > tr.mkad-g:not(#_):not(#_) { display: block; }
  html.aiq-phone[data-theme] #mkad table.mkad-t:has(a.mkad-hl) > tbody > tr.mkad-g > td:not(#_):not(#_):not(#_):not(#_) { display: block; }
  html.aiq-phone[data-theme] #mkad table.mkad-t:has(a.mkad-hl) > tbody > tr.ph-gap:not(#_):not(#_) { display: block; height: 12px; }
}

/* Company rows (Movers, 52-week highs & lows, Unusual volume…): logo · ticker over name, like Home's lists — the full
   company name on one line pushed every figure off the card. */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] #mkad table.mkad-t td .mkc:has(> .mks):not(#_):not(#_):not(#_):not(#_):not(#_) { display: grid !important;
    grid-template-columns: 28px minmax(0, 1fr); column-gap: 10px; row-gap: 1px; align-items: center; width: calc(44vw - 8px); max-width: 170px; }
  html.aiq-phone[data-theme] #mkad table.mkad-t td .mkc:has(> .mks) > .ic:not(#_):not(#_):not(#_):not(#_):not(#_) { grid-row: 1 / span 2; grid-column: 1;
    width: 28px; height: 28px; border-radius: 7px !important; object-fit: contain; background: #fff; }
  html.aiq-phone[data-theme] #mkad table.mkad-t td .mkc:has(> .mks) > .mks:not(#_):not(#_):not(#_):not(#_):not(#_) { grid-row: 1; grid-column: 2; justify-self: start;
    background: none !important; padding: 0 !important; color: var(--rc-ink) !important; font: 600 14px/1.2 Inter, system-ui, sans-serif !important; }
  html.aiq-phone[data-theme] #mkad table.mkad-t td .mkc:has(> .mks) > .cn:not(#_):not(#_):not(#_):not(#_):not(#_) { grid-row: 2; grid-column: 2; min-width: 0;
    white-space: nowrap !important; overflow: hidden; text-overflow: ellipsis; color: var(--rc-mut) !important; font-size: 12.5px !important; }
}

/* the name column never collapses to a letter a line (Volatility's 52-week bars took the room); the rest scrolls in the card */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] #mkad table.mkad-t :is(th, td):first-child:not(#_):not(#_):not(#_):not(#_):not(#_) { min-width: 120px !important; overflow-wrap: normal !important; }
}

/* Charts in the record look (user, 2026-10-29: "the line graphs don't fit into the theme"): the valuation chart sits in the same 18px
   outlined card as the lists (the top chart on Overview / Sectors stays edge to edge: user, same day, "change this top line graph back"), 16px in from the screen edges, its title row (.gch-h: "P/E ratio 23.5x") as the card's quiet top line. */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] #mkad .gchart:not(#_):not(#_):not(#_) { margin: 8px 16px 4px !important; border: 1px solid var(--rc-line) !important;
    border-radius: var(--ph-r, 18px) !important; background: var(--rc-card) !important; overflow: hidden; box-shadow: none !important; }
  html.aiq-phone[data-theme] #mkad .gchart > .mkad-aq:not(#_):not(#_):not(#_) { margin: 0 !important; border: 0 !important; border-radius: 0 !important; }
  html.aiq-phone[data-theme] #mkad .gch-h:not(#_):not(#_):not(#_) { background: transparent !important; border: 0 !important; padding: 12px 14px 4px !important; height: auto !important;
    color: var(--rc-mut) !important; font: 450 14px/1.3 Inter, system-ui, sans-serif !important; }
  html.aiq-phone[data-theme] #mkad .gch-h .gnow:not(#_):not(#_):not(#_) { color: var(--rc-ink) !important; font-weight: 600 !important; }
  html.aiq-phone[data-theme] #mkad .mkad-split:not(#_):not(#_) { display: block !important; }
}

/* More colour (user, 2026-10-29: "add some more color to some of the icons on pages without much color"): a row's icon tile
   (Volatility's pulse, the VIX horizons' clock, the valuation and economy rows…) is a solid square with a white icon, the six
   Explore / menu colours cycling row by row. Ticker badges (.code: SPX, NDX) and company logos keep their look. */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr > td span.ic:not(.code):is(:has(> i), :has(> svg)):not(#_):not(#_):not(#_):not(#_):not(#_) { display: inline-grid !important; place-items: center; flex: none; width: 28px !important; height: 28px !important; border-radius: 8px !important;
    color: #fff !important; background: var(--ph-ic, #455DDC) !important; }
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr > td span.ic:not(.code):is(:has(> i), :has(> svg)) > :is(i, svg):not(#_):not(#_):not(#_):not(#_):not(#_) { color: #fff !important; font-size: 15px !important; width: 15px; height: 15px; }
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr:nth-child(6n+1) > td span.ic:not(.code):is(:has(> i), :has(> svg)) { --ph-ic: #455DDC; }
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr:nth-child(6n+2) > td span.ic:not(.code):is(:has(> i), :has(> svg)) { --ph-ic: #2BB48C; }
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr:nth-child(6n+3) > td span.ic:not(.code):is(:has(> i), :has(> svg)) { --ph-ic: #FF862E; }
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr:nth-child(6n+4) > td span.ic:not(.code):is(:has(> i), :has(> svg)) { --ph-ic: #9646EF; }
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr:nth-child(6n+5) > td span.ic:not(.code):is(:has(> i), :has(> svg)) { --ph-ic: #F73463; }
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr:nth-child(6n+6) > td span.ic:not(.code):is(:has(> i), :has(> svg)) { --ph-ic: #1E9BD7; }
}

/* Rounded corners stay rounded: base.html paints every tbody tr white (!important), which showed as white square corners
   behind the cards' rounded cells (user, 2026-10-29). The rows are see-through; the cells carry the card colour. */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr:not(#_):not(#_):not(#_):not(#_):not(#_),
  html.aiq-phone[data-theme] #mkad table.mkad-t > thead > tr:not(#_):not(#_):not(#_):not(#_):not(#_),
  html.aiq-phone[data-theme] #mkad table.mkad-t:not(#_):not(#_):not(#_):not(#_):not(#_),
  html.aiq-phone[data-theme] #mkad table.mkad-t > :is(thead, tbody):not(#_):not(#_):not(#_):not(#_):not(#_) { background: transparent !important; box-shadow: none !important; }
  /* each card shows its first 5 rows (js cards(): LIMIT); "Show all N" under it opens the rest */
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr.ph-more:not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone[data-theme] #mkad table.mkad-t > tbody > tr.ph-all > td:not(#_):not(#_):not(#_):not(#_):not(#_) { position: sticky !important; left: 0 !important; height: auto;
    padding: 0 !important; border: 0 !important; background: transparent !important; overflow: visible !important; }
  html.aiq-phone[data-theme] #mkad tr.ph-all button:not(#_):not(#_) { position: sticky; left: 0; display: inline-flex; align-items: center; height: 40px; padding: 0 6px;
    background: none; border: 0; color: var(--ph-acc, #455DDC); font: 500 15px/1 Inter, system-ui, sans-serif; }
  html.aiq-phone[data-theme] #mkad table.mkad-t:has(a.mkad-hl) > tbody > tr.ph-all:not(#_):not(#_) { display: block; padding: 0 !important; border: 0 !important; background: none !important; }
}

/* ==== css/aiq-phone-skel.css ==== */
/* Phone layout, style A — Loading placeholders (skeleton / ghost shells) shaped like the phone layout.
   Same rules as aiq-phone.css: every rule sits inside @media (max-width: 767px) and starts with html.aiq-phone
   (tests/test_phone_layout.py checks every aiq-phone*.css file). Loaded by _phone.html after aiq-phone.css. */

/* Loading placeholders shaped like the phone layout (user, 2026-10-19: "make sure the loading ghost shell thing is
   updated"). Each block targets one skeleton's own markup (financials/_skeleton_*.html, the deep-dive header's
   #ch-quote-skel, the Screener's #sc-skeleton, the Chart page's #loading), so loaded content is never touched. */
@media (max-width: 767px) {

  /* Stock header: the price block is the size of the real 17px price + 11.5px change, and a round slot holds the place
     of the watchlist star that arrives with the data (the name no longer slides left when it lands). */
  html.aiq-phone.aiq-phone[data-theme] #ch-quote-skel { align-items: flex-end !important; gap: 5px !important; }
  html.aiq-phone.aiq-phone[data-theme] #ch-quote-skel .skel:first-child { width: 74px !important; height: 17px !important; }
  html.aiq-phone.aiq-phone[data-theme] #ch-quote-skel .skel:last-child { width: 88px !important; height: 11px !important; }
  html.aiq-phone.aiq-phone[data-theme] #ch-inner:has(#ch-quote-skel)::after { content: ""; order: 9; flex: none; width: 38px; height: 38px;
    border-radius: 999px; background: rgba(118,118,128,.12); }

  /* Overview: the Price performance card has no big price on phones and a round range track */
  html.aiq-phone.aiq-phone[data-theme] .ovs-skel .ovs-sk-px > div:first-child { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] .ovs-skel .ovs-sk-px > div:last-child { flex: 1; }
  html.aiq-phone.aiq-phone[data-theme] .ovs-skel .ovs-sk-px > div:last-child > .skel { flex: 1; height: 34px !important; border-radius: 999px !important; }
  html.aiq-phone.aiq-phone[data-theme] .ovs-skel .skt-area { height: 300px !important; }
  html.aiq-phone.aiq-phone[data-theme] .ovs-skel .ovs-sk-half { grid-template-columns: minmax(0, 1fr) !important; }
  html.aiq-phone.aiq-phone[data-theme] .ovs-skel { padding: 0 0 32px !important; }

  /* Statements: the toolbar keeps only Period (no View settings / Excel); the table runs edge to edge with no row rules
     and 44px rows, as the real phone table (the shared .skt kit already drops to label + three figures) */
  html.aiq-phone.aiq-phone[data-theme] .sk-stmt .skt-bar > div:last-child { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] .sk-stmt .skt-bleed { margin: 0 -12px !important; }
  html.aiq-phone.aiq-phone[data-theme] .sk-stmt .skt-r { height: 44px !important; border-bottom: 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] .sk-stmt .skt-r .skel { height: 10px !important; }

  /* Charts: no toolbar on phones and one full-width tile per row, as tall as a real grid tile */
  html.aiq-phone.aiq-phone[data-theme] .sk-charts > .skt-grid { grid-template-columns: minmax(0, 1fr) !important; margin-top: 4px !important; }
  html.aiq-phone.aiq-phone[data-theme] .sk-charts .skt-bars { height: 190px !important; }

  /* Side-by-side skeletons (Comparables, Insiders, Filings, Transcripts) stack on phones */
  html.aiq-phone.aiq-phone[data-theme] :is(.sk-cmp, .sk-ins, .sk-tx) .skt-grid,
  html.aiq-phone.aiq-phone[data-theme] .sk-tx > div { grid-template-columns: minmax(0, 1fr) !important; }
  html.aiq-phone.aiq-phone[data-theme] .sk-fd .skt-card { grid-template-columns: minmax(0, 1fr) !important; }
  html.aiq-phone.aiq-phone[data-theme] .sk-fd .skt-card > div:last-child { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] :is(.sk-ins, .sk-fd).skt-bleed { margin: 0 !important; }

  /* Modeling: Simple | Advanced and DCF · Reverse DCF · IRR are round tracks on phones */
  html.aiq-phone.aiq-phone[data-theme] .mds-bar > .skel { border-radius: 999px !important; }

  /* Screener: the reload overlay's rows are as tall as real phone rows (logo + ticker over name, 44px) on the page colour */
  html.aiq-phone.aiq-phone[data-theme] #sc-skeleton, html.aiq-phone.aiq-phone[data-theme] #sc-skeleton .hd { background: var(--ph-card) !important; }
  html.aiq-phone.aiq-phone[data-theme] #sc-skeleton .row { height: 44px !important; gap: 14px !important; }
  html.aiq-phone.aiq-phone[data-theme] #sc-skeleton .row i:nth-child(1) { width: 22px !important; height: 22px !important; border-radius: 999px !important; flex: none; }
  html.aiq-phone.aiq-phone[data-theme] #sc-skeleton .row i:nth-child(2) { width: 92px !important; height: 10px !important; }

  /* Home's S&P hero: the line's area shimmers until it's drawn (a canvas has no width attribute before its first draw) */
  html.aiq-phone.aiq-phone[data-theme] #hx-a-chart:not([width]) {
    background: linear-gradient(90deg, rgba(118,118,128,.06) 0%, rgba(118,118,128,.06) 30%, rgba(118,118,128,.14) 50%, rgba(118,118,128,.06) 70%, rgba(118,118,128,.06) 100%);
    background-size: 600px 100%; animation: skel-shimmer 1.6s linear infinite; }

  /* Chart page: a shimmer instead of a spinner with "Loading chart…" (house rule: skeletons, never plain Loading…) */
  html.aiq-phone.aiq-phone[data-theme] #loading.aqp-loading > div { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] #loading.aqp-loading { inset: 12px !important; border-radius: var(--ph-r-sm) !important;
    background: linear-gradient(90deg, rgba(118,118,128,.08) 0%, rgba(118,118,128,.08) 30%, rgba(118,118,128,.18) 50%, rgba(118,118,128,.08) 70%, rgba(118,118,128,.08) 100%) !important;
    background-size: 600px 100% !important; animation: skel-shimmer 1.6s linear infinite !important; }
}

/* ==== css/aiq-phone-dark.css ==== */
/* Phone layout, style A — Dark-theme fixes across every page in phone mode.
   Same rules as aiq-phone.css: every rule sits inside @media (max-width: 767px) and starts with html.aiq-phone
   (tests/test_phone_layout.py checks every aiq-phone*.css file). Loaded by _phone.html after aiq-phone.css. */

/* Dark pass (2026-10-19, audit in the approved phone look): one flat page colour, cards the same colour with the 1px
   --ph-edge outline. Leftover lighter fills (#292929 / #262626 / #242424 / #1F1F1F) and navy header bands from the
   desktop dark theme go flat; fields get a hairline instead of a lighter fill. */
@media (max-width: 767px) {
  /* Home / Explore / Account cards read their own tokens */
  html.aiq-phone.aiq-phone[data-theme="dark"] :is(.hm, .ex, .ac) {
    --hm-card: var(--ph-card); --hm-line: var(--ph-edge); --ex-card: var(--ph-card); --ex-line: var(--ph-edge);
    --ac-card: var(--ph-card); --ac-line: var(--ph-edge); }

  /* page wrappers and footers that kept the old dark page colour */
  html.aiq-phone.aiq-phone[data-theme="dark"] main :is(#wl-window, #sc-footer, .ph-mtbl-wrap, .ph-mtbl-wrap .in, div.in) {
    background: var(--ph-bed) !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] main :is(#ins-table, #ins-table td, #ins-table th) { background: var(--ph-bed) !important; }

  /* cards and tiles: flat with the outline */
  html.aiq-phone.aiq-phone[data-theme="dark"] main :is(#wl-feed, .mkx-chip, .mkx-cc, .scx-card, .scx-tile, .scx-map, .aqp-card, .ai-comp) {
    background: var(--ph-card) !important; border: 1px solid var(--ph-edge) !important; box-shadow: none !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] main .scx-tile.anon { background: rgba(118,118,128,.12) !important; }
  /* Markets: the navy card-header band */
  html.aiq-phone.aiq-phone[data-theme="dark"] main .mk3 .chd { background: transparent !important; }

  /* buttons and fields with a lighter fill: hairline instead */
  html.aiq-phone.aiq-phone[data-theme="dark"] main :is(.stx-next, #wl-vw-btn, .ec-my-btn) {
    background: transparent !important; border: 1px solid var(--ph-edge) !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] main :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]), select, textarea):not(#nav-search-input) {
    background: transparent !important; border-color: var(--ph-edge) !important; color: var(--ph-ink) !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] main select option { background: #1C1C1E; color: var(--ph-ink); }

  /* Comparables: its view row is tabs (chips), its period / ticker switches are toggles (round track, dark-grey pill) */
  html.aiq-phone.aiq-phone[data-theme="dark"] #comp-root .cmp-views { gap: 8px !important; border: 0 !important; box-shadow: none !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] #comp-root .cmp-views button { height: 36px !important; padding: 0 14px !important; border: 0 !important;
    border-radius: var(--ph-r-sm) !important; background: rgba(118,118,128,.16) !important; color: var(--ph-ink) !important; box-shadow: none !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] #comp-root .cmp-views button.on { background: #F1F2F4 !important; color: #0F1115 !important; font-weight: 600 !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] #comp-root .cmp-seg { border: 0 !important; border-radius: 999px !important; padding: 3px !important;
    background: rgba(118,118,128,.16) !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] #comp-root .cmp-seg button { border-radius: 999px !important; }
  html.aiq-phone.aiq-phone[data-theme="dark"] #comp-root .cmp-seg button.on { background: #3A3A3C !important; color: var(--ph-ink) !important; box-shadow: none !important; }
}

/* ==== css/aiq-phone-sheet.css ==== */
/* Phone menus as iPhone-style bottom sheets (user, 2026-10-20: picked B of three drafts). static/js/aiq-phone-sheet.js
   marks the open menu .ph-sheet. Edge to edge from the bottom, rounded top, grabber, dim behind, slides up.
   A phone-only exception to the pop-up kit's "no drawers" rule (docs/features/popups.md).
   Same rules as every aiq-phone*.css file: inside the phone media query, every selector starts with html.aiq-phone.
   `.ph-sheet:not(#_):not(#__)` outranks the per-menu placement rules in aiq-phone-pop.css and the frosted kit. */
@media (max-width: 767px) {
  /* ── dim behind ── */
  html.aiq-phone #ph-sheet-scrim { position: fixed; inset: 0; z-index: 1240; background: rgba(0,0,0,.38); animation: phSheetFade .2s ease-out; }
  html.aiq-phone #ph-sheet-scrim[hidden], html.aiq-phone #ph-sheet-top[hidden] { display: none !important; }

  /* ── the sheet ── */
  html.aiq-phone.aiq-phone[data-theme] .ph-sheet.ph-sheet:not(#_):not(#__) {
    position: fixed !important; top: auto !important; left: 0 !important; right: 0 !important; bottom: 0 !important; z-index: 1250 !important;
    width: auto !important; min-width: 0 !important; max-width: none !important; max-height: 78dvh !important; overflow-y: auto !important;
    box-sizing: border-box !important; transform: none; translate: none !important;
    padding: 22px 8px calc(14px + env(safe-area-inset-bottom)) !important; border-radius: 32px 32px 0 0 !important;   /* Wealthsimple's sheet corners (2026-11-01) */
    background: var(--ph-card) !important; border: 0 !important; box-shadow: 0 -8px 30px rgba(15,17,21,.16) !important;
    -webkit-backdrop-filter: none; backdrop-filter: none; animation: phSheetUp .34s cubic-bezier(.22,1,.36,1) !important; }
  /* no scroll-fade mask on a sheet: its bottom is the screen's edge, and the fade let the tab bar show through (Markets' ≡) */
  html.aiq-phone.aiq-phone[data-theme] .ph-sheet.ph-sheet:not(#_):not(#__) { -webkit-mask-image: none !important; mask-image: none !important; }
  /* big pickers keep a fixed height (their insides are grids) */
  html.aiq-phone.aiq-phone[data-theme] .ph-sheet.ph-sheet:is(#scx-screens, #scx-add, #wl-col-panel, #col-cfg-panel):not(#_):not(#__) { height: 82dvh !important; max-height: 82dvh !important; }

  /* the screener's Add filter picker (.scf-pop, also inside Edit criteria): the whole sheet scrolls, so its list drops the
     height screener-filterbar.js sets inline */
  html.aiq-phone.aiq-phone[data-theme] .ph-sheet.scf-pop:not(#_):not(#__) { height: 78dvh !important; }
  html.aiq-phone.aiq-phone[data-theme] .ph-sheet.scf-pop .scf-ls:not(#_) { max-height: none !important; overflow: visible !important; }
  html.aiq-phone.aiq-phone[data-theme] .ph-sheet .scf-q:not(#_) { width: calc(100% - 16px) !important; margin: 0 8px 6px !important; height: 44px !important;
    padding: 0 14px !important; font-size: 16px !important; border-radius: var(--ph-r-sm) !important; border: 0 !important; background: var(--ph-chip, rgba(118,118,128,.12)) !important; }
  html.aiq-phone.aiq-phone[data-theme] .ph-sheet .scf-gh:not(#_) { padding: 12px 16px 4px !important; font-size: 13px !important; }

  /* ── grabber on the top edge ── */
  html.aiq-phone #ph-sheet-top { position: fixed; z-index: 1260; left: 0; right: 0; height: 22px; pointer-events: none;
    display: flex; align-items: center; justify-content: center; animation: phSheetUp .34s cubic-bezier(.22,1,.36,1); }
  html.aiq-phone #ph-sheet-top .grab { display: block; width: 38px; height: 5px; border-radius: 999px; background: var(--ph-faint); opacity: .55; margin-top: 4px; }

  /* rows: roomier, iOS sizes */
  html.aiq-phone.aiq-phone[data-theme] .ph-sheet :is(.aiq-mi, .cfg-preset, .pop-opt, .ec-mi, .si-thf-item, #seg-type button, #gm-pop .opt,
      .wl-col-item, #aiq-help-menu .ahp-foot a, .scf-mi) {
    min-height: 50px !important; font-size: 16px !important; padding-left: 16px !important; padding-right: 16px !important; }
  html.aiq-phone.aiq-phone[data-theme] .ph-sheet .pop-q { margin: 10px 8px 6px !important; width: calc(100% - 16px) !important; height: 42px !important;
    border-radius: var(--ph-r-sm) !important; font-size: 16px !important; }

  /* the page under an open sheet doesn't scroll */
  html.aiq-phone.ph-sheet-open body { overflow: hidden; }

  @keyframes phSheetUp { from { transform: translateY(100%); } to { transform: none; } }
  @keyframes phSheetFade { from { opacity: 0; } to { opacity: 1; } }
}

/* Selects as sheets (2026-11-10, js/aiq-phone-forms.js): a <select> on a phone opens this instead of the native picker: the
   filter sheet's frame (.ph-fsheet in aiq-phone-chips.css: grey surface, big left title, rows in a white card, the current
   one ticked), its own dim, above any sheet it was opened from. */
@media (max-width: 767px) {
  html.aiq-phone #ph-sel-scrim { position: fixed; inset: 0; z-index: 1290; background: rgba(0,0,0,.38); animation: phSheetFade .2s ease-out; }
  html.aiq-phone.aiq-phone[data-theme] .ph-sheet.ph-sheet.ph-selsheet:not(#_):not(#__):not(#___) { z-index: 1300 !important; padding-top: 0 !important; }
  html.aiq-phone .ph-selsheet > .ph-sel-grab { position: absolute; top: 8px; left: 50%; width: 38px; height: 5px; margin-left: -19px; border-radius: 999px; background: var(--ph-faint, #B4B9C1); opacity: .55; }
  html.aiq-phone .ph-selsheet > .aiq-mi { width: 100%; text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone .ph-selsheet > .aiq-mi:disabled { opacity: .4; cursor: default; }
  html.aiq-phone .ph-selsheet > .aiq-mi:active:not(:disabled) { background: #EEF0F3 !important; }
  html.aiq-phone .ph-selsheet > .aiq-mi:focus-visible { outline: 2px solid #455DDC; outline-offset: -2px; }
  html.aiq-phone.ph-selsheet-open body { overflow: hidden; }
}

/* ==== css/aiq-phone-dock.css ==== */
/* Docked phone tab bar (user picked it over the floating pill, 2026-10-29); loads after aiq-phone.css and overrides its pill.
   Attio-flat instead of the floating pill: full width, hairline on top, frosted, no shadow, content ends above it. */
@media (max-width: 767px) {
  html.aiq-phone #aiq-ptabs { left: 0; right: 0; bottom: 0; height: calc(56px + env(safe-area-inset-bottom));
    padding: 0 4px env(safe-area-inset-bottom); border-radius: 0; box-shadow: none; border: 0; border-top: 1px solid var(--ph-line); }
  html.aiq-phone[data-theme="dark"] #aiq-ptabs { box-shadow: none; border: 0; border-top: 1px solid var(--ph-line); }
  html.aiq-phone #aiq-ptabs a { border-radius: 0; gap: 3px; font-size: 10px; white-space: nowrap; }
  html.aiq-phone #aiq-ptabs a span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
  html.aiq-phone #aiq-ptabs a i { font-size: 20px; }
  html.aiq-phone .app-shell > main { padding-bottom: calc(72px + env(safe-area-inset-bottom)) !important; }
  html.aiq-phone #aiq-toast, html.aiq-phone .aiq-toast { bottom: calc(68px + env(safe-area-inset-bottom)) !important; }
  html.aiq-phone .ws-dock { bottom: calc(64px + env(safe-area-inset-bottom)) !important; }
  html.aiq-phone .ph-pop-card { left: 8px; right: 8px; bottom: calc(64px + env(safe-area-inset-bottom)); }

  /* tab-bar pop-ups (Explore, Financials, Markets views): the frosted card was ~86% see-through, so the page's rows showed
     through its bottom edge like a fade, and a fixed 64vh cut long lists mid-row (user, 2026-10-29). Near-opaque card; it
     grows to the room between the top bar and the dock, and only scrolls when the list is longer than that. */
  html.aiq-phone .ph-pop-card { background: rgba(255,255,255,.97); max-height: calc(100dvh - 64px - env(safe-area-inset-bottom) - 64px);
    padding-bottom: 8px; }
  html.aiq-phone[data-theme="dark"] .ph-pop-card { background: rgba(41,41,41,.97); }
}

/* ==== css/aiq-phone-attio.css ==== */
/* Attio pages on phones (2026-10-29; rules in docs/features/phone.md). Every rule: phone media query + html.aiq-phone. */
@media (max-width: 767px) {
  /* the page's own title row is the Attio name row (14px / 500, like Markets' at-pagebar), not the 30px iOS large title
     that aiq-phone.css gives every other h1 */
  html.aiq-phone.aiq-phone.at-shell .app-shell > main :is(#scx-head h1, .ins-top h1, h1.sch-h1):not(#_) {
    font: 500 14px/20px Inter, system-ui, sans-serif !important; letter-spacing: -0.07px !important; }

  /* toolbar rows that are one nowrap flex line (Congress / Earnings / My stocks / Superinvestors) scroll inside their own
     box instead of widening the page; the per-page passes then hide what a phone doesn't need */
  html.aiq-phone.aiq-phone.at-shell :is(.cg-bar, .ec-wk-head, .msa-bar, .si-vrow):not(#_) {
    overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  html.aiq-phone.at-shell :is(.cg-bar, .ec-wk-head, .msa-bar, .si-vrow)::-webkit-scrollbar { display: none; }
  html.aiq-phone.at-shell :is(.cg-bar, .ec-wk-head, .msa-bar, .si-vrow) > * { flex-shrink: 0; }

  /* a .aiq-tbl whose wrapper doesn't scroll widens the page (Earnings' week table): the wrapper scrolls on phones */
  html.aiq-phone.at-shell :has(> table.ec-st) { overflow-x: auto; }

  /* the name row never wraps: it reserves room for Upgrade on the right, so a long name ("Congress Trades") cuts with … */
  html.aiq-phone.at-shell .at-pagebar { min-width: 0; }
  html.aiq-phone.at-shell .at-pagebar .at-pb-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }

  /* Earnings week table: fixed layout gave the auto-width Company column 0px once the numeric columns added up to more
     than the screen; it keeps 92px (ticker) and the table scrolls sideways past that */
  html.aiq-phone.at-shell.at-done .ec-at-tbl:not(#_) { width: max-content; min-width: 100%; }
  html.aiq-phone.at-shell.at-done .ec-at-tbl col.c-co:not(#_) { width: 92px; }

  /* Markets: the row of index chips is a fixed 48px row on desktop; on a phone the chips wrap to 3 lines and spilled over
     the tab row above (2026-10-29), so the row grows with its chips */
  html.aiq-phone.at-shell .mkad-vrow:has(.mkad-pchips):not(#_) { height: auto; min-height: 48px; padding-top: 8px; padding-bottom: 8px; }
  html.aiq-phone.at-shell .mkad-vrow > .mkad-pchips { flex: 1 1 auto; min-width: 0; }

  /* the Attio shell reserves the 275px sidebar with !important (aiq-table-attio.css "body:not(.sb-collapsed) .app-shell");
     on a phone the sidebar is a drawer, so nothing is reserved. Without this the bottom-tabs layout (?tbl=attio-full-bt)
     pushed the whole page 275px right (2026-10-29) */
  html.aiq-phone.at-shell.aiq-shell:not(.is-popout) body .app-shell:not(#_):not(#_) { margin-left: 0 !important; }

  /* rules 14 / 15 (docs/features/phone.md): tables show <= 4 columns (js/aiq-phone-cols.js marks the rest) and the
     configuration controls go (user, 2026-10-29: "way less configuration buttons") */
  html.aiq-phone .ph-hc { display: none !important; }
  html.aiq-phone.at-shell :is(.mkad-tabrow .mkad-blue, .mkad-padd, .mkad-pchip button, .gch-h .mkad-mb, th.addc, td.addc):not(#_) { display: none !important; }
  /* with <= 4 columns the table fits the screen: no fixed desktop widths, so nothing swipes sideways */
  html.aiq-phone main :is(table.mkad-t, table.aiq-tbl):not([data-ph-cols="all"]):not(#_) { width: 100% !important; min-width: 0 !important; table-layout: auto !important; }
  html.aiq-phone main :is(table.mkad-t, table.aiq-tbl):not([data-ph-cols="all"]) :is(th, td):not(#_) { min-width: 0 !important; width: auto !important; max-width: none !important; }
  html.aiq-phone main :is(table.mkad-t, table.aiq-tbl):not([data-ph-cols="all"]) col { width: auto !important; }
  /* tighter cells so 4 columns fit 390px; the name column may wrap to two lines, numbers never do */
  html.aiq-phone main :is(table.mkad-t, table.aiq-tbl):not([data-ph-cols="all"]) :is(th, td):not(#_):not(#_) { padding-left: 8px !important; padding-right: 8px !important; font-size: 13px; }
  html.aiq-phone main :is(table.mkad-t, table.aiq-tbl):not([data-ph-cols="all"]) :is(th, td):not(.ph-hc):first-child:not(#_):not(#_) { white-space: normal; overflow-wrap: anywhere; }
  /* Markets name cell like Koyfin's: ticker on top, company name (one line, …) under it, logo to the left */
  html.aiq-phone .mkad-t .mkc:not(#_) { display: grid; grid-template-columns: 20px minmax(0,1fr); column-gap: 8px; row-gap: 1px; align-items: center; min-width: 0; }
  html.aiq-phone .mkad-t .mkc > .ic:not(#_) { grid-row: 1 / span 2; grid-column: 1; align-self: center; }
  html.aiq-phone .mkad-t .mkc > .mks:not(#_) { grid-row: 1; grid-column: 2; justify-self: start; }
  html.aiq-phone .mkad-t .mkc > .cn:not(#_) { grid-row: 2; grid-column: 2; white-space: nowrap !important; overflow: hidden; text-overflow: ellipsis; font-size: 12px; color: var(--ph-mut); min-width: 0; }
  html.aiq-phone .mkad-t td:first-child .c0:not(#_) { align-items: center; max-width: 100%; }

  /* Screener: the duplicate screen tab, add-tab, Layouts, View settings, Export and New screen are desktop configuration */
  html.aiq-phone.at-shell :is(.scx-tab, #scx-add-tab, #scx-layouts, .at-row2 .at-anchor, .at-row2 > .at-btn:not(.at-sc-back):not(.at-pick)):not(#_) { display: none !important; }

  /* table configuration inside the grid: header menus (⌄ sort / filter / hide), the row-select checkbox and the add-column
     button are desktop tools; a header tap still sorts */
  html.aiq-phone main :is(table.aiq-tbl, table.mkad-t) :is(.th-menu, .atc-btn, .sc-chk, .sort-hint, .at-crit-i, .addb, th.addc, td.addc):not(#_):not(#_) { display: none !important; }

  /* Screener company cell: the ticker badge hugs its text instead of filling the column */
  html.aiq-phone .sc-tk-stack:not(#_) { align-items: flex-start; min-width: 0; }
  html.aiq-phone .sc-ticker-badge:not(#_) { width: auto !important; display: inline-flex; }
  /* the row logo goes on phones (Koyfin's rows have none) so ticker + 3 numbers fit 390px */
  html.aiq-phone #screener-table td.sticky > div > img:not(#_) { display: none !important; }
  html.aiq-phone #screener-table :is(th, td):not(#_):not(#_):not(#_) { padding-left: 6px !important; padding-right: 6px !important; }
  html.aiq-phone #screener-table th:not(#_):not(#_) { min-width: 0 !important; }

  /* My stocks: view picker, sort, filter and the Model portfolios button are desktop configuration; New stays */
  html.aiq-phone.at-shell :is(#msa-view, #msa-sort, #msa-filter, .msa-vsep, .msa-bar .at-btn:not(#msa-new)):not(#_) { display: none !important; }

  /* safety net: one stray wide element (a signed-in KO page, 2026-10-29) stretched the whole phone page to ~560px, so the fixed
     tab bar and pop-ups were wider than the screen. Clipping the overflow keeps the layout viewport at the device width
     (clip, not hidden: no scroll container, so sticky headers keep working). */
  html.aiq-phone, html.aiq-phone body { overflow-x: clip; }

  /* Insiders / Congress: sort, filter, add-members and the explainer link are configuration; the view picker and search stay */
  html.aiq-phone.at-shell :is(#ins-sortbtn, #ins-fbtn, #ins-days, #ins-cwrap, #ins-csv, main [class*="-explore"], .si-more p, .cg-more p, .sch-cta .at-btn:not(.at-pri), #cg-sortbtn, #cg-fbtn, #cg-period, .cg-bar .at-pri, .cg-row1 .at-pri):not(#_) { display: none !important; }

  /* Insiders / Congress / Superinvestors: even columns, every cell cuts with … (a td's max-width does nothing in an auto-layout
     table, so these three go fixed-layout) */
  html.aiq-phone main :is(table.ins-tbl, table.cg-mtbl, table.si-atbl-t, table.ws-ix-t):not(#_):not(#_) { table-layout: fixed !important; width: 100% !important; }
  html.aiq-phone main :is(table.ins-tbl, table.cg-mtbl, table.si-atbl-t, table.ws-ix-t) :is(th, td):not(.ph-hc):not(#_):not(#_):not(#_) {
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap !important; }
  html.aiq-phone main :is(table.ins-tbl, table.cg-mtbl, table.si-atbl-t, table.ws-ix-t) th .th-in:not(#_):not(#_) { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

  /* Dashboards: sort + New dashboard are desktop tools; the list shows Dashboard (wide) · Cards · Stocks */
  html.aiq-phone.at-shell :is(#ws-ix-sort, #ws-ix-view, #ws-ix-filter, #ws-ix-new, .ws-ix-q):not(#_) { display: none !important; }
  html.aiq-phone table.ws-ix-t th:nth-child(2):not(#_):not(#_) { width: 46% !important; }
  html.aiq-phone table.ws-ix-t :is(th, td):nth-child(n+5):not(#_):not(#_) { display: none; }
  html.aiq-phone table.cg-mtbl th:first-child:not(#_):not(#_) { width: 34% !important; }

  /* Government contracts (a div grid, not a table): every column, scrolling sideways (user, 2026-10-29); the Add column goes,
     and so do View settings / Export / sort / filter (the tabs and search stay) */
  html.aiq-phone.at-p-government :is(main .at-btn, .gm-sortbtn, .gm-fbtn, #gm-export, .gm-addbtn):not(#_) { display: none !important; }
  html.aiq-phone .gm-inner:not(#_):not(#_) { width: max-content !important; min-width: 100% !important; }   /* rows span every column */
  html.aiq-phone :is(.gm-th, .gm-td):not(#_):not(#_) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }

  /* Comparables: Company · Market Cap · Stock Price · % Change (the column limiter); the ticker stays on one line, the
     remove-column × and the Configure / Show / CSV buttons go (Peers stays: it is the page's one action) */
  html.aiq-phone #comp-root .cmp-table :is(th, td):first-child:not(#_):not(#_) { white-space: nowrap !important; overflow-wrap: normal !important; }
  html.aiq-phone #comp-root .cmp-th-x:not(#_):not(#_) { display: none !important; }
  html.aiq-phone #comp-root :is(#cmp-ind-btn, #cmp-show, #cmp-csv-btn, #cmp-heat-key):not(#_):not(#_) { display: none !important; }

  /* Stock page Overview price chart: four ranges (1M · 1Y · 5Y · All) and no S&P 500 overlay switch */
  html.aiq-phone .ov-price-range-btn:is([data-ovrange="1d"], [data-ovrange="7d"], [data-ovrange="3m"]):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #ov-sp500-btn:not(#_):not(#_) { display: none !important; }

  /* Top bar Help button goes (the Account tab has Help) */
  html.aiq-phone #aiq-help:not(#_):not(#_) { display: none !important; }
  /* "Learn more" cards are desktop slideshows: not on phones */
  html.aiq-phone :is(.sch-learn-more, .msa-e-learn, .ra-learn, .mw-learn, .sp-at-learn, .ai-learn, .ws-ix-learn):not(#_):not(#_) { display: none !important; }
  /* Screener results fill the room above the docked bar (aiq-phone.css left 78px + the top bar for the old floating pill; the Attio name row is inside the page) */
  html.aiq-phone .sc-layout:not(#_):not(#_) { height: calc(100dvh - 56px - env(safe-area-inset-bottom)) !important; }

  /* Square toolbar strips: aiq-phone.css gave the Screener / Watchlist / Insiders / Congress / Gov bars 18px top corners, which showed as
     a curved line under the name row on the Attio pages */
  html.aiq-phone :is(#scx-bar, .wl-kf .wl-tool, .ins-bar, .cg-bar:not(#ch-bar), .gm-bar):not(#_):not(#_) { border-radius: 0 !important; }

  /* Edit criteria (Screener): a settings-style list instead of the desktop window squeezed in.
     Scope = three full-width rows; each criterion = name · count · × over a full-width Min – Max pair; Add filter and the footer are big. */
  html.aiq-phone #scx-ed #scx-body:not(#_):not(#_) { padding: 0 16px 16px; }
  html.aiq-phone #scx-scope:not(#_):not(#_) { display: grid; grid-template-columns: minmax(0,1fr); gap: 8px; padding: 4px 0 14px; border-bottom: 1px solid var(--a-line, rgba(127,127,127,.18)); }
  html.aiq-phone #scx-scope .scx-l:not(#_):not(#_) { font-size: 12px; letter-spacing: .02em; text-transform: uppercase; opacity: .6; padding: 8px 0 0; }
  /* Start from: rounded filled fields (never rectangles); a generic button rule drew an inset outline round them */
  html.aiq-phone #scx-scope .scx-tok:not(#_):not(#_) { display: flex; width: 100%; max-width: none; box-sizing: border-box; justify-content: space-between; align-items: center; height: 46px; min-height: 46px; padding: 0 14px; border: 0 !important; border-radius: 12px !important; background: rgba(118,118,128,.12) !important; box-shadow: none !important; font-size: 16px; }
  html.aiq-phone #scx-scope .scx-tok .pv:not(#_):not(#_) { font-size: 16px; }
  html.aiq-phone #scx-scope .n:not(#_):not(#_) { order: -1; padding: 10px 0 0; font-size: 13px; }
  html.aiq-phone #scx-rail .scx-cr:not(#_):not(#_) { display: grid; grid-template-columns: minmax(0,1fr) auto 36px; align-items: center; gap: 6px 8px; padding: 14px 0 12px; border-bottom: 1px solid var(--a-line, rgba(127,127,127,.14)); }
  html.aiq-phone #scx-rail .scx-cr .cn:not(#_):not(#_) { grid-column: 1; grid-row: 1; font-size: 16px; font-weight: 500; }
  html.aiq-phone #scx-rail .scx-cr .scx-left:not(#_):not(#_) { grid-column: 2; grid-row: 1; font-size: 13px; opacity: .7; }
  html.aiq-phone #scx-rail .scx-cr .cx:not(#_):not(#_) { grid-column: 3; grid-row: 1; width: 36px; height: 36px; font-size: 20px; }
  html.aiq-phone #scx-rail .scx-cr .scx-rng:not(#_):not(#_) { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: 10px; }
  html.aiq-phone #scx-rail .scx-cr .scx-fld:not(#_):not(#_) { width: 100%; min-width: 0; height: 44px; }
  html.aiq-phone #scx-rail .scx-cr .scx-fld input:not(#_):not(#_) { height: 42px; font-size: 16px; min-width: 0; width: 100%; }
  html.aiq-phone #scx-rail .scx-addrow:not(#_):not(#_) { width: 100%; min-height: 48px; font-size: 16px; justify-content: flex-start; padding: 0 2px; }
  html.aiq-phone #scx-ed .aiq-dlg-f:not(#_):not(#_) { display: flex; gap: 10px; padding: 10px 16px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--a-line, rgba(127,127,127,.18)); }
  html.aiq-phone #scx-ed #scx-ed-cancel:not(#_):not(#_) { display: none; }
  html.aiq-phone #scx-ed .aiq-dlg-f .sp:not(#_):not(#_) { display: none; }
  html.aiq-phone #scx-ed #scx-ed-done:not(#_):not(#_) { flex: 1; min-height: 46px; }

  /* Superinvestors toolbar: My investors + Search only; "+ Add" is in the empty state and the investor picker */
  html.aiq-phone .si-vrow .si-hom:not(#_):not(#_) { display: none !important; }

  /* Congress at 360: the party pill ("Democrat") fits its column */
  html.aiq-phone table.cg-mtbl td:nth-child(2) > *:not(#_):not(#_) { font-size: 11px !important; padding-left: 5px !important; padding-right: 5px !important; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
  html.aiq-phone table.cg-mtbl :is(th, td):nth-child(2):not(#_):not(#_):not(#_) { padding-left: 4px !important; padding-right: 4px !important; }

  /* Superinvestors empty-state shortcut cards: no arrow, text cut with … instead of running into it */
  html.aiq-phone .si-xc .go:not(#_):not(#_) { display: none !important; }
  html.aiq-phone .si-xc .tx:not(#_):not(#_) { min-width: 0; flex: 1; }
  html.aiq-phone .si-xc .tx :is(b, small):not(#_):not(#_) { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

  /* Screener name row: "My screens" stays on one line; the screen's name after it takes the cut */
  html.aiq-phone h1.sch-h1:not(#_):not(#_) { white-space: nowrap !important; flex-shrink: 0; }

  /* Earnings: Company · Time · Estimate · EPS. Market cap goes (its header was hidden but its cells weren't, so "Estimate" sat over market caps) */
  html.aiq-phone table.ec-at-tbl :is(th, td):nth-child(3):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone table.ec-at-tbl :is(th, td):nth-child(5).ph-hc:not(#_):not(#_):not(#_) { display: table-cell !important; }
  html.aiq-phone table.ec-at-tbl col:nth-child(3):not(#_):not(#_) { display: none !important; }
  html.aiq-phone table.ec-at-tbl col:nth-child(5).ph-hc:not(#_):not(#_) { display: table-column !important; }

  /* Reports / Excel / Models / Documents: Sorted by, Filter and Group by are configuration; the view picker and New button stay */
  html.aiq-phone :is(#ra-sort, #ra-filter, #ra-group):not(#_):not(#_) { display: none !important; }

  /* Model portfolios: donut + Strategy (name over description) · Type · Return / yr; Holds and the rest go, so nothing is clipped */
  html.aiq-phone table.ph-mtbl:not(#_):not(#_) { width: 100% !important; table-layout: fixed !important; }
  html.aiq-phone table.ph-mtbl :is(th, td):is(:nth-child(4), :nth-child(n+6)):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone table.ph-mtbl :is(th, td):nth-child(5):not(#_):not(#_):not(#_) { display: table-cell !important; width: 76px !important; overflow: hidden; text-overflow: ellipsis; }
  html.aiq-phone table.ph-mtbl :is(th, td):nth-child(1):not(#_):not(#_):not(#_) { width: 48px !important; }
  html.aiq-phone table.ph-mtbl :is(th, td):nth-child(3):not(#_):not(#_):not(#_) { width: 78px !important; }
  html.aiq-phone table.ph-mtbl :is(th, td):nth-child(2):not(#_):not(#_):not(#_) { width: auto !important; overflow: hidden; text-overflow: ellipsis; }
  html.aiq-phone table.ph-mtbl col:is(:nth-child(4), :nth-child(n+6)):not(#_):not(#_) { display: none !important; }

  /* Chart page: ranges 1M · 6M · 1Y · 5Y · MAX; bar-size/type and chart settings menus are configuration */
  html.aiq-phone button[data-v]:is([data-v="1D"], [data-v="5D"], [data-v="3M"], [data-v="YTD"], [data-v="2Y"], [data-v="10Y"]):not(#_):not(#_) { display: none !important; }
  html.aiq-phone :is(.cqa-vs, .cqa-view):not(#_):not(#_) { display: none !important; }

  /* Top bar Upgrade button goes (the Account tab has the Pro card; Pro features open their own prompt) */
  html.aiq-phone :is(#nav-upgrade, .at-top-tools .at-sb-up):not(#_):not(#_) { display: none !important; }

  /* Stock page tab row (draft, ?ptabs=1): plain underlined text tabs, scrolls sideways, More opens the tile pop-up */
  html.aiq-phone #ph-ftabs:not(#_):not(#_) { display: flex; gap: 0; overflow-x: auto; scrollbar-width: none; margin: -4px 0 10px; border-bottom: 1px solid var(--a-line, rgba(127,127,127,.2)); }
  html.aiq-phone #ph-ftabs::-webkit-scrollbar { display: none; }
  html.aiq-phone #ph-ftabs button:not(#_):not(#_) { flex: none; min-height: 44px; padding: 0 14px; border: 0; border-bottom: 2px solid transparent; background: none; color: inherit; opacity: .6; font: 500 15px/1 Inter, system-ui, sans-serif; }
  html.aiq-phone #ph-ftabs button.on:not(#_):not(#_) { opacity: 1; border-bottom-color: var(--a-blue, #455DDC); }

  /* Full-screen search (js/aiq-phone-search.js) */
  html.aiq-phone #ph-search[hidden]:not(#_):not(#_) { display: none; }


  /* EDGE TO EDGE is the phone default (user, 2026-10-29; ?pstyle=cards opts out). Koyfin-style: every block on the stock page is flat,
     page colour, full width, with no border, corners, shadow or outline; a full-width 1px hairline (a ::before) separates one block from
     the next (user picked Hairline over the 10px grey band, 2026-10-29). */
  html.aiq-phone.ph-edge.at-p-financials main :is(.card, section.at-fin-rows, .fx-card, .stx-card, .cmp-card, .cmp-fair, .cap-card, .cm-card, .kd-card, .cg-card, .acq-card, .prp-card, .brd-card, .fxd-bcard, .fxd-a-wrap, .stmt-seg-chartcard):not(#_):not(#_):not(#_):not(#_):not(#_) { position: relative !important; margin-left: -12px !important; margin-right: -12px !important; margin-top: 0 !important; margin-bottom: 0 !important; width: auto !important; max-width: none !important; border: 0 !important; border-radius: 0 !important; background: var(--a-bg, #252933) !important; box-shadow: none !important; outline: 0 !important; padding: 24px 12px 14px !important; }
  html.aiq-phone.ph-edge.at-p-financials main :is(.card, section.at-fin-rows, .fx-card, .stx-card, .cmp-card, .cmp-fair, .cap-card, .cm-card, .kd-card, .cg-card, .acq-card, .prp-card, .brd-card, .fxd-bcard, .fxd-a-wrap, .stmt-seg-chartcard):not(#_):not(#_):not(#_):not(#_):not(#_)::after { display: none !important; }
  html.aiq-phone.ph-edge.at-p-financials main :is(.card, section.at-fin-rows, .fx-card, .stx-card, .cmp-card, .cmp-fair, .cap-card, .cm-card, .kd-card, .cg-card, .acq-card, .prp-card, .brd-card, .fxd-bcard, .fxd-a-wrap, .stmt-seg-chartcard):not(#_):not(#_):not(#_):not(#_):not(#_)::before { content: "" !important; display: block !important; position: absolute !important; left: 0 !important; right: 0 !important; top: 0 !important; bottom: auto !important; width: auto !important; height: 1px !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; opacity: 1 !important; background: var(--ph-edge) !important; }
  html.aiq-phone[data-theme="light"].ph-edge.at-p-financials main :is(.card, section.at-fin-rows, .fx-card, .stx-card, .cmp-card, .cmp-fair, .cap-card, .cm-card, .kd-card, .cg-card, .acq-card, .prp-card, .brd-card, .fxd-bcard, .fxd-a-wrap, .stmt-seg-chartcard):not(#_):not(#_):not(#_):not(#_):not(#_)::before { background: var(--ph-edge) !important; }
  html.aiq-phone.ph-edge.at-p-financials main .fx-kpi:not(#_):not(#_):not(#_):not(#_):not(#_) { border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }
  html.aiq-phone.ph-edge.at-p-financials main .card.ovs-price:not(#_):not(#_):not(#_):not(#_):not(#_) { padding-top: 4px !important; }
  html.aiq-phone.ph-edge.at-p-financials main .card.ovs-price:not(#_):not(#_):not(#_):not(#_):not(#_)::before { display: none !important; }
  html.aiq-phone.ph-edge.at-p-financials main .card .ovs-rule:not(#_):not(#_):not(#_):not(#_):not(#_) { border-bottom: 0 !important; }
  html.aiq-phone.ph-edge.at-p-financials main .card .ovs-facts:not(#_):not(#_):not(#_):not(#_):not(#_) { border-top: 0 !important; }

  /* Stock header actions (star, edit, bell, download) are not needed on phones */
  html.aiq-phone.at-p-financials .at-ft-acts:not(#_):not(#_) { display: none !important; }

  /* edge to edge, every page: shortcut cards in the "more" blocks and Dashboards' list cards become plain rows split by a hairline */
  html.aiq-phone.ph-edge main :is(.aiq-more-c, .ws-ix-lc, .gm-scrollx, .cg-lock):not(#_):not(#_):not(#_):not(#_):not(#_) { border: 0 !important; border-bottom: 1px solid var(--a-line, rgba(127,127,127,.2)) !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }

  /* Modeling is spreadsheet editing: desktop only; Key filings leaves the stock menu too (the Filings tab in the row still opens it) (user, 2026-10-29) */
  html.aiq-phone #ph-pop-fin .ph-pop-grid > :is([data-fpage="modeling"], [data-fpage="filings"]):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }

  /* Financial statements on phones: every year, the table scrolls sideways inside its own box with the label column pinned */
  html.aiq-phone .stmt-table-wrap:not(#_):not(#_) { overflow-x: auto !important; -webkit-overflow-scrolling: touch; }
  html.aiq-phone table.stmt-data-table :is(th, td):first-child:not(#_):not(#_):not(#_) { position: static; background: var(--a-bg, #252933); }

  /* Statements toolbar: Period stays; View settings and the Excel download go (user, 2026-10-29: "the Excel download I would get rid of") */
  html.aiq-phone :is(#stmt-opt-btn, .stmt-opt-btn, .at-r2-xl):not(#_):not(#_) { display: none !important; }

  /* Stock-page tabs, configuration out (button audit, 2026-10-29) */
  html.aiq-phone .at-ft-t[data-k="modeling"]:not(#_):not(#_) { display: none !important; }
  html.aiq-phone :is(.at-viewpill, .at-selpill, .cmp-seg):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone .fxd-seg:not(#_):not(#_) { display: none !important; }
  html.aiq-phone :is(#fi-plan, .fx-search):not(#_):not(#_) { display: none !important; }
  html.aiq-phone :is(#fd-rstar, .fd-search, .fd-echips, .ff-act, .fd-hrow select, .fd-star):not(#_):not(#_) { display: none !important; }

  /* Filings reader: list full width; the document is a full-screen layer opened by tapping a filing (js/aiq-phone-fintabs.js) */
  html.aiq-phone .fd-reader:not(#_):not(#_) { display: block !important; }
  html.aiq-phone .fd-reader .fd-rl:not(#_):not(#_) { width: auto !important; border-right: 0 !important; }
  html.aiq-phone .fd-reader .fd-rp:not(#_):not(#_) { display: none !important; }
  html.aiq-phone .fd-reader.ph-fd-open .fd-rp:not(#_):not(#_) { display: flex !important; position: fixed !important; inset: 0 0 calc(56px + env(safe-area-inset-bottom)) 0 !important; z-index: 2147482000; width: auto !important; height: auto !important; background: var(--a-bg, #252933); }
  html.aiq-phone .fd-reader.ph-fd-open .fd-rp .ff-rv-doc:not(#_):not(#_) { flex: 1; height: auto !important; min-height: 0; }
  html.aiq-phone .fd-rp .fd-rbar:not(#_):not(#_) { padding-top: calc(6px + env(safe-area-inset-top)); }
  html.aiq-phone .ph-fd-back:not(#_):not(#_) { flex: none; min-height: 44px; padding: 0 12px 0 4px; border: 0; background: none; color: inherit; font: 600 16px/1 Inter, system-ui, sans-serif; }
  html.aiq-phone .fd-rhead small:not(#_):not(#_) { display: none !important; }
  html.aiq-phone .fd-reader .fd-ritem:not(#_):not(#_):not(#_) { border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }

  /* Button audit, round 2 (user OK, 2026-10-29): Home 2Y range, Congress "Browse all members", Earnings Filter + View settings, Dex AI "Add company" */
  html.aiq-phone.at-p-congress .sch-cta .at-btn:not(.at-pri):not(#_):not(#_) { display: none !important; }
  html.aiq-phone :is(#ec-fbtn, #ec-more-btn, .ec-more):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #ai-tk-btn:not(#_):not(#_) { display: none !important; }

  /* Supply chain drafts (js/aiq-phone-supply.js): Suppliers | Customers lists (user picked it over a flow-with-bars draft) */
  html.aiq-phone.ph-sc-on :is(.sca-sec, .sca-attrs, .sca-main):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #ph-sc .psc-sub:not(#_):not(#_):not(#_) { padding: 4px 16px 10px; font-size: 13px; opacity: .65; }
  html.aiq-phone #ph-sc .psc-sub a:not(#_):not(#_):not(#_) { color: inherit; text-decoration: underline; }
  html.aiq-phone #ph-sc .psc-empty:not(#_):not(#_):not(#_) { padding: 24px 16px; opacity: .6; font-size: 15px; }
  html.aiq-phone #ph-sc .psc-seg:not(#_):not(#_):not(#_) { display: flex; gap: 0; border-bottom: 1px solid var(--a-line, rgba(127,127,127,.2)); }
  html.aiq-phone #ph-sc .psc-seg button:not(#_):not(#_):not(#_) { flex: 1; min-height: 44px; border: 0; border-bottom: 2px solid transparent; background: none; color: inherit; opacity: .6; font: 500 15px/1 Inter, system-ui, sans-serif; }
  html.aiq-phone #ph-sc .psc-seg button.on:not(#_):not(#_):not(#_) { opacity: 1; border-bottom-color: var(--a-blue, #455DDC); }
  html.aiq-phone #ph-sc .psc-seg button span:not(#_):not(#_):not(#_) { margin-left: 4px; font-size: 12px; opacity: .6; }
  html.aiq-phone #ph-sc .psc-r:not(#_):not(#_):not(#_) { position: relative; display: flex; align-items: center; gap: 12px; padding: 12px 16px; min-height: 56px; border-bottom: 1px solid var(--a-line, rgba(127,127,127,.14)); color: inherit; text-decoration: none; }
  html.aiq-phone #ph-sc .psc-l:not(#_):not(#_):not(#_) { flex: 1; min-width: 0; position: relative; }
  html.aiq-phone #ph-sc .psc-l b:not(#_):not(#_):not(#_) { display: block; font-size: 15px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone #ph-sc .psc-l b i:not(#_):not(#_):not(#_) { margin-left: 8px; font-size: 11px; font-style: normal; font-weight: 600; opacity: .55; }
  html.aiq-phone #ph-sc .psc-l small:not(#_):not(#_):not(#_) { display: block; margin-top: 2px; font-size: 13px; opacity: .65; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone #ph-sc .psc-v:not(#_):not(#_):not(#_) { position: relative; flex: none; font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; }

  /* Attio mobile shell (user, 2026-10-29: "replicate it as closely as possible"): the tab bar is a floating icon pill plus a
     separate round Search button; no labels, the open tab sits in a grey capsule. Account lives on the avatar, so its tab goes.
     Explore is an inset grouped list with coloured icon squares and chevrons instead of tiles. */
  html.aiq-phone #aiq-ptabs:not(#_):not(#_) { left: 12px; right: 12px; bottom: calc(14px + env(safe-area-inset-bottom)); height: 64px; padding: 0 76px 0 0;
    background: none; border: 0; box-shadow: none; border-radius: 0; -webkit-backdrop-filter: none; backdrop-filter: none; }
  html.aiq-phone[data-theme="dark"] #aiq-ptabs:not(#_):not(#_) { border: 0; box-shadow: none; }
  html.aiq-phone #aiq-ptabs:not(#_):not(#_)::before { content: ""; position: absolute; left: 0; right: 76px; top: 0; bottom: 0; border-radius: 999px;
    background: #fff; box-shadow: 0 4px 22px rgba(15,17,21,.12), 0 0 0 1px rgba(15,17,21,.04); }
  html.aiq-phone[data-theme="dark"] #aiq-ptabs:not(#_):not(#_)::before { background: #2e3443; box-shadow: 0 4px 22px rgba(0,0,0,.4); }
  html.aiq-phone #aiq-ptabs a:not(#_):not(#_) { position: relative; z-index: 1; margin: 6px 3px; border-radius: 999px; color: var(--ph-ink); }
  html.aiq-phone #aiq-ptabs a span:not(#_):not(#_) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  html.aiq-phone #aiq-ptabs a i:not(#_):not(#_) { font-size: 25px; }
  html.aiq-phone #aiq-ptabs a.on:not(#_):not(#_), html.aiq-phone #aiq-ptabs a.is-up:not(#_):not(#_) { background: #eceef2; color: var(--ph-ink); }
  html.aiq-phone[data-theme="dark"] #aiq-ptabs a.on:not(#_):not(#_), html.aiq-phone[data-theme="dark"] #aiq-ptabs a.is-up:not(#_):not(#_) { background: rgba(255,255,255,.12); }
  html.aiq-phone #aiq-ptabs a:nth-child(6):not(#_):not(#_) { display: none; }
  html.aiq-phone #aiq-ptabs a.ph-search-tab:not(#_):not(#_) { position: absolute; z-index: 1; right: 0; top: 0; bottom: 0; width: 64px; margin: 0; flex: none;
    background: #fff; box-shadow: 0 4px 22px rgba(15,17,21,.12), 0 0 0 1px rgba(15,17,21,.04); border-radius: 50%; }
  html.aiq-phone[data-theme="dark"] #aiq-ptabs a.ph-search-tab:not(#_):not(#_) { background: #2e3443; box-shadow: 0 4px 22px rgba(0,0,0,.4); }
  html.aiq-phone .app-shell > main:not(#_):not(#_) { padding-bottom: calc(104px + env(safe-area-inset-bottom)) !important; }
  html.aiq-phone .ph-pop-card:not(#_):not(#_) { bottom: calc(92px + env(safe-area-inset-bottom)); max-height: calc(100dvh - 64px - env(safe-area-inset-bottom) - 100px); }
  html.aiq-phone :is(#aiq-toast, .aiq-toast):not(#_):not(#_) { bottom: calc(92px + env(safe-area-inset-bottom)) !important; }
  html.aiq-phone .ws-dock:not(#_):not(#_) { bottom: calc(90px + env(safe-area-inset-bottom)) !important; }

  /* Explore as an inset grouped list */
  html.aiq-phone .ex-grid:not(#_):not(#_) { display: block; background: var(--ph-card); border: 1px solid var(--ph-line); border-radius: 18px; overflow: hidden; }
  html.aiq-phone .ex-tile:not(#_):not(#_) { flex-direction: row; align-items: center; justify-content: flex-start; gap: 14px; min-height: 56px; padding: 0 16px;
    border: 0; border-radius: 0; background: transparent; position: relative; }
  html.aiq-phone .ex-tile:not(#_):not(#_) + .ex-tile::before { content: ""; position: absolute; top: 0; left: 58px; right: 0; border-top: 1px solid var(--ph-line); }
  html.aiq-phone .ex-tile i:not(#_):not(#_) { flex: none; width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; font-size: 17px; color: #fff; background: #2a6df4; }
  html.aiq-phone .ex-tile:nth-child(6n+2) i:not(#_):not(#_) { background: #12b981; }
  html.aiq-phone .ex-tile:nth-child(6n+3) i:not(#_):not(#_) { background: #f97316; }
  html.aiq-phone .ex-tile:nth-child(6n+4) i:not(#_):not(#_) { background: #8b5cf6; }
  html.aiq-phone .ex-tile:nth-child(6n+5) i:not(#_):not(#_) { background: #06b6d4; }
  html.aiq-phone .ex-tile:nth-child(6n) i:not(#_):not(#_) { background: #ec4899; }
  html.aiq-phone .ex-tile b:not(#_):not(#_) { font-size: 17px; font-weight: 450; letter-spacing: 0; }
  html.aiq-phone .ex-tile:not(#_):not(#_)::after { right: 18px; width: 7px; height: 7px; border-width: 1.6px 1.6px 0 0; }
  html.aiq-phone .ex-h:not(#_):not(#_) { font-size: 16px; font-weight: 450; margin: 26px 4px 8px; }
  html.aiq-phone .ex-who:not(#_):not(#_) { display: flex; align-items: center; gap: 12px; margin: 10px 4px 6px; color: var(--ph-ink); text-decoration: none; }
  html.aiq-phone .ex-who span:not(#_):not(#_) { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: #f0554e; color: #fff; font-weight: 600; font-size: 16px; }
  html.aiq-phone .ex-who b:not(#_):not(#_) { font-size: 24px; font-weight: 650; letter-spacing: -.01em; }

  /* No header bar on phones (user, 2026-10-29: profile lives on the links page / settings, "no need to take up header space") */
  html.aiq-phone :is(.at-pagebar, .at-top-tools):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone .app-shell > main:not(#_):not(#_) { padding-top: env(safe-area-inset-top) !important; }
  html.aiq-phone .ex-signin:not(#_):not(#_) { display: block; margin: 14px 4px 0; color: var(--ph-acc); font-size: 17px; font-weight: 600; text-decoration: none; }

  /* Table pages (js/aiq-phone-tablehead.js): round back button + centred icon and name, the page's own title row hidden */
  html.aiq-phone #ph-th:not(#_):not(#_) { display: flex; align-items: center; justify-content: space-between; padding: 12px 4px 10px; }
  html.aiq-phone #ph-th .ph-th-b:not(#_):not(#_) { flex: none; width: 48px; height: 48px; border-radius: 50%; border: 0; display: grid; place-items: center; font-size: 22px;
    background: #fff; color: var(--ph-ink); box-shadow: 0 2px 14px rgba(15,17,21,.1), 0 0 0 1px rgba(15,17,21,.04); }
  html.aiq-phone[data-theme="dark"] #ph-th .ph-th-b:not(#_):not(#_) { background: #2e3443; box-shadow: 0 2px 14px rgba(0,0,0,.35); }
  html.aiq-phone #ph-th .ph-th-sp:not(#_):not(#_) { visibility: hidden; }
  html.aiq-phone #ph-th .ph-th-t:not(#_):not(#_) { display: flex; align-items: center; gap: 10px; min-width: 0; }
  html.aiq-phone #ph-th .ph-th-t i:not(#_):not(#_) { width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; font-size: 16px; color: #fff; }
  html.aiq-phone #ph-th .ph-th-t b:not(#_):not(#_) { font-size: 20px; font-weight: 650; color: var(--ph-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.aiq-phone.ph-th-on :is(.app-shell > main h1, .ins-top, .cg-head, .gm-head, .ec-head):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone .ex:not(#_):not(#_) { padding-top: 14px; }

  /* chips: the toolbar's view / sort / filter / search controls are round grey pills like Attio's */
  html.aiq-phone.ph-th-on :is(.at-btn:not(.at-pri), .ins-hbtn, .ec-at-btn, #ins-q, #ec-search):not(#_):not(#_):not(#_) { height: 40px !important; border-radius: 999px !important;
    padding: 0 14px !important; border: 0 !important; background: rgba(118,118,128,.16) !important; color: var(--ph-ink) !important; font-size: 16px !important; font-weight: 500 !important; box-shadow: none !important; }
  html.aiq-phone.ph-th-on :is(.at-btn, .ins-hbtn, .ec-at-btn) svg:not(#_):not(#_) { width: 18px; height: 18px; }
  html.aiq-phone .ph-fab-src:not(#_):not(#_):not(#_), html.aiq-phone.ph-fab-on main :is(.at-btn.at-pri, .pfr-trade):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #ph-fab:not(#_):not(#_) { position: fixed; z-index: 140; right: 20px; bottom: calc(96px + env(safe-area-inset-bottom)); width: 60px; height: 60px; border-radius: 50%; border: 0;
    display: grid; place-items: center; font-size: 28px; color: #fff; background: #2a6df4; box-shadow: 0 8px 22px rgba(42,109,244,.45); }

  /* the first column stays put while the table scrolls sideways */
  html.aiq-phone.ph-th-on :is(table :is(th, td), .gm-tr > .gm-td, .gm-thead > .gm-th).ph-c1:not(#_):not(#_) { position: static; background: var(--sh-bed, var(--ph-bed)); }

  /* My stocks list page: just the list's name and the table (no "1 of 1" row, logos, sector bar or stat pills) */
  html.aiq-phone :is(.aiq-lback, .at-recbar, .hd-c, .msa-dnav):not(#_):not(#_):not(#_) { display: none !important; }

  /* the tab row lives in a top-right menu (js/aiq-phone-tablehead.js) */
  html.aiq-phone.ph-tabs-menu :is(.rc-tabs .rc-tab, .tm-tabs):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #ph-tabmenu:not(#_):not(#_) { position: fixed; z-index: 1300; top: calc(68px + env(safe-area-inset-top)); right: 16px; min-width: 220px; padding: 6px;
    border-radius: 22px; background: #fff; box-shadow: 0 12px 40px rgba(15,17,21,.22), 0 0 0 1px rgba(15,17,21,.05); }
  html.aiq-phone[data-theme="dark"] #ph-tabmenu:not(#_):not(#_) { background: #2e3443; box-shadow: 0 12px 40px rgba(0,0,0,.5); }
  html.aiq-phone #ph-tabmenu[hidden]:not(#_):not(#_) { display: none; }
  html.aiq-phone #ph-tabmenu button:not(#_):not(#_) { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; min-height: 50px; padding: 0 16px; border: 0;
    background: none; border-radius: 16px; color: var(--ph-ink); font-size: 17px; font-weight: 450; text-align: left; }
  html.aiq-phone #ph-tabmenu button.on:not(#_):not(#_) { font-weight: 600; }
  html.aiq-phone #ph-tabmenu em:not(#_):not(#_) { font-style: normal; color: var(--ph-mut); font-size: 14px; margin-left: 6px; }

  /* My stocks, basic (user, 2026-10-29: "significantly reduce the features on mobile ... not cluttered"): the list of lists and one New list button */
  html.aiq-phone .msa-bar:not(#_):not(#_), html.aiq-phone .msa-calc:not(#_):not(#_), html.aiq-phone .aiq-more-cards:not(#_):not(#_),
  html.aiq-phone .aiq-more-hero > :not(.aiq-more-cta):not(#_):not(#_) { display: none !important; }
  html.aiq-phone :is(.msa-more, .aiq-more):not(#_):not(#_) { min-height: 0 !important; height: auto !important; }
  html.aiq-phone .aiq-more-hero:not(#_):not(#_) { min-height: 0; padding: 20px 16px; background: none; }
  html.aiq-phone .aiq-more-hero::before, html.aiq-phone .aiq-more-hero::after, html.aiq-phone .aiq-more::before { display: none !important; }

  /* Every table looks like Attio's record list (user, 2026-10-29: "all tables should look like this"): 56px rows, 16px text,
     plain muted header, hairlines only, the first column plain and the rest on a faint tint */
  html.aiq-phone.ph-th-on table.aiq-tbl :is(th, td):not(#_):not(#_):not(#_):not(#_) { height: 56px !important; padding-top: 0 !important; padding-bottom: 0 !important; font-size: 16px !important; line-height: 1.25 !important; vertical-align: middle !important; }
  html.aiq-phone.ph-th-on table.aiq-tbl thead th:not(#_):not(#_):not(#_):not(#_) { height: 52px !important; font-size: 16px !important; font-weight: 400 !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--ph-mut) !important; }
  html.aiq-phone.ph-th-on table.aiq-tbl tbody td:not(.ph-c1):not(#_):not(#_):not(#_):not(#_) { background: rgba(88,120,230,.075) !important; }
  html.aiq-phone.ph-th-on table.aiq-tbl :is(th, td):not(#_):not(#_):not(#_):not(#_) { border-left: 0 !important; border-right: 1px solid var(--ph-line) !important; border-bottom: 1px solid var(--ph-line) !important; text-align: left !important; }
  html.aiq-phone.ph-th-on .gm-tr .gm-td:not(#_):not(#_):not(#_):not(#_) { font-size: 16px; }
  html.aiq-phone.ph-th-on .gm-th:not(#_):not(#_):not(#_):not(#_) { font-size: 16px; font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--ph-mut); }

  /* Basic on phones (user, 2026-10-29: "I trust your instinct ... we can add it back later"): table pages show the header, one view chip,
     search and the table. Gone: the shortcut cards and explainer under short lists, the second CTA, disclaimer line,
     view / sort / filter / settings chips, count text, the Price picker. */
  html.aiq-phone.ph-th-on :is(.aiq-more-cards, .aiq-more-hero > p, .aiq-disclaimer, .rc-tv, #msa-view, #msa-dview, #msa-sort, #msa-filter,
      main [class*="-explore"], .si-more p, .cg-more p, .sch-cta .at-btn:not(.at-pri), #cg-sortbtn, #cg-fbtn, #si-vset, #si-vset2, .aiq-more-b:not(.pri), .ins-count, .si-count):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-th-on .aiq-more-hero:not(#_):not(#_) { min-height: 0 !important; padding: 28px 16px !important; }

  /* stock page: the tab row is behind the top-right three-bars button (js/aiq-phone-fintabs.js) */
  html.aiq-phone.ph-ptabs #ph-ftabs:not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #ph-fin-menu:not(#_):not(#_) { position: fixed; z-index: 140; top: calc(8px + env(safe-area-inset-top)); right: 16px; width: 48px; height: 48px; border-radius: 50%; border: 0;
    display: grid; place-items: center; font-size: 22px; color: var(--ph-ink); background: #fff; box-shadow: 0 2px 14px rgba(15,17,21,.1), 0 0 0 1px rgba(15,17,21,.04); }
  html.aiq-phone[data-theme="dark"] #ph-fin-menu:not(#_):not(#_) { background: #2e3443; box-shadow: 0 2px 14px rgba(0,0,0,.35); }
  html.aiq-phone #ph-tabmenu:not(#_):not(#_) { top: calc(64px + env(safe-area-inset-top)); }

  /* navmenu (js/aiq-phone-navmenu.js): any tab row -> the top-right three-bars menu */
  html.aiq-phone .ph-nm-hide:not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #ph-navmenu.ph-nm-fixed:not(#_):not(#_) { position: fixed; z-index: 140; top: calc(8px + env(safe-area-inset-top)); right: 16px; width: 48px; height: 48px; border-radius: 50%; border: 0;
    display: grid; place-items: center; font-size: 22px; color: var(--ph-ink); background: #fff; box-shadow: 0 2px 14px rgba(15,17,21,.1), 0 0 0 1px rgba(15,17,21,.04); }
  html.aiq-phone[data-theme="dark"] #ph-navmenu.ph-nm-fixed:not(#_):not(#_) { background: #2e3443; box-shadow: 0 2px 14px rgba(0,0,0,.35); }
  html.aiq-phone.ph-nm-on .mkad-tabrow:not(#_):not(#_):not(#_) { padding-right: 72px !important; }
  html.aiq-phone.ph-nm-on .st-layout:not(#_):not(#_) { padding-top: 8px; }

  /* Stock Overview top = the Home layout (user, 2026-10-29: "image two should copy image 1"): small grey name, one huge price,
     the day's change in colour, the chart edge to edge, then 1M 3M 1Y text pills. No title row, legend, 1Y menu or S&P chip. */
  html.aiq-phone .at-ft:not(#_):not(#_):not(#_) { margin: 0 !important; padding: 16px 4px 4px !important; }
  html.aiq-phone .at-ft-co:not(#_):not(#_):not(#_) { display: block !important; }
  html.aiq-phone .at-ft-id:not(#_):not(#_):not(#_) { display: flex !important; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; }
  html.aiq-phone .at-ft-id img:not(#_):not(#_):not(#_) { width: 22px; height: 22px; align-self: center; }
  html.aiq-phone .at-ft-id b:not(#_):not(#_):not(#_), html.aiq-phone .at-ft-nm:not(#_):not(#_):not(#_) { font-size: 15px !important; font-weight: 500 !important; color: var(--ph-mut) !important; }
  html.aiq-phone .at-ft-p:not(#_):not(#_):not(#_) { order: 3; flex: 0 0 100%; margin-top: 4px; font-size: 44px !important; font-weight: 700 !important; line-height: 1.1 !important; letter-spacing: -.02em; color: var(--ph-ink) !important; }
  html.aiq-phone .at-ft-c:not(#_):not(#_):not(#_) { order: 4; flex: 0 0 100%; font-size: 17px !important; font-weight: 500 !important; }
  html.aiq-phone .at-ft-c:not(#_):not(#_):not(#_)::after { content: " today"; }
  html.aiq-phone .ovs-price:not(#_):not(#_):not(#_) { display: flex !important; flex-direction: column; }
  html.aiq-phone .ovs-price-top:not(#_):not(#_):not(#_) { display: contents !important; }
  html.aiq-phone :is(.ovs-rule, .ovs-px, .ov-seg .at-segpill, .ov-seg-sep, #ov-sp500-btn, .ov-seg [data-ovrange="1d"], .ov-seg [data-ovrange="7d"], .ov-seg [data-ovrange="1m"], .ov-seg [data-ovrange="3m"], .ov-seg [data-ovrange="all"]):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #ov-price-wrapper:not(#_):not(#_):not(#_) { order: 1; margin: 0 -12px !important; }
  html.aiq-phone .ov-seg:not(#_):not(#_):not(#_) { order: 2; display: flex !important; gap: 4px; padding: 12px 4px 4px; background: none !important; border: 0 !important; }
  html.aiq-phone .ov-seg .ov-seg-btn:not(#_):not(#_):not(#_) { display: inline-flex !important; height: 40px; padding: 0 16px; border: 0 !important; border-radius: 12px !important; background: none !important; color: var(--ph-mut) !important; font-size: 17px !important; font-weight: 600 !important; }
  html.aiq-phone .ov-seg .ov-seg-btn.is-on:not(#_):not(#_):not(#_) { background: rgba(118,118,128,.18) !important; color: var(--ph-ink) !important; }
  html.aiq-phone .ov-seg #ov-sp500-btn:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone .ov-seg .ov-seg-btn:is([data-ovrange="1y"], [data-ovrange="5y"], [data-ovrange="10y"]):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: inline-flex !important; align-items: center; }

  /* no tick column on phones (user, 2026-10-29); the first real column is the frozen white one, the rest sit on a blue tint, widths are fixed */
  html.aiq-phone.ph-th-on :is(table :is(th, td), .gm-tr > .gm-td, .gm-thead > .gm-th):has(> input[type=checkbox]:only-child):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-th-on table.aiq-tbl :is(th, td).ph-c1:not(#_):not(#_):not(#_) { width: 46vw !important; min-width: 46vw !important; max-width: 46vw !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap !important; }
  html.aiq-phone.ph-th-on table.aiq-tbl :is(th, td):not(.ph-c1):not(.ph-hc):not(#_):not(#_):not(#_) { min-width: 112px; }
  html.aiq-phone.ph-th-on table.sy-t td b + em:not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-tabs-menu .rc-tabs:not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-th-on .gm-tr > .gm-td:not(.ph-c1):not(#_):not(#_):not(#_) { background: rgba(88,120,230,.075) !important; }

  /* thin grid lines between columns and everything left-aligned, like Attio (user, 2026-10-29) */
  html.aiq-phone.ph-th-on :is(.gm-td, .gm-th):not(#_):not(#_):not(#_) { border-right: 1px solid var(--ph-line) !important; text-align: left !important; justify-content: flex-start !important; }
  html.aiq-phone.ph-th-on table.aiq-tbl :is(td.num, th.num, td .num, th button, th > div):not(#_):not(#_):not(#_) { text-align: left !important; justify-content: flex-start !important; }
  html.aiq-phone.ph-th-on .gm-td .num:not(#_):not(#_):not(#_) { text-align: left !important; }

  /* "New" on My stocks: just Watchlist and Paper portfolio, one per row, no blurbs (user, 2026-10-29: "we shouldn't have so many options") */
  html.aiq-phone #msa-new-dlg .nr-fmt-c:not([data-new="wl"]):not([data-new="paper"]):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #msa-new-dlg .nr-fmt-row:not(#_):not(#_) { display: flex !important; flex-direction: column; gap: 10px; }
  html.aiq-phone #msa-new-dlg .nr-fmt-c:not(#_):not(#_) { display: flex !important; flex-direction: row; align-items: center; gap: 14px; width: 100%; min-height: 64px; padding: 0 16px !important; }
  html.aiq-phone #msa-new-dlg :is(.nr-fmt-c p, .nr-fmt-h, .at-tpl-nav):not(#_):not(#_) { display: none !important; }

  /* Attio's light table page (user, 2026-10-29): page on a faint grey, the first column white, the header row plain on the grey with
     no rule above it, hairlines between rows and columns */
  html.aiq-phone:not([data-theme="dark"]).ph-th-on { --ph-bed: #fafafa; --sh-bed: #fafafa; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on table.aiq-tbl thead th:not(#_):not(#_):not(#_):not(#_) { background: transparent !important; border-top: 0 !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on table.aiq-tbl :is(th, td).ph-c1:not(#_):not(#_):not(#_):not(#_) { background: transparent !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on table.aiq-tbl tbody td.ph-c1:not(#_):not(#_):not(#_):not(#_) { background: #fff !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on :is(.gm-thead, .gm-th):not(#_):not(#_):not(#_):not(#_) { background: transparent !important; border-top: 0 !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on .gm-tr > .gm-td.ph-c1:not(#_):not(#_):not(#_):not(#_) { background: #fff !important; }
  html.aiq-phone.ph-th-on table.aiq-tbl thead:not(#_):not(#_):not(#_):not(#_) { border-top: 0 !important; box-shadow: none !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on table.aiq-tbl tbody td:not(.ph-c1):not(#_):not(#_):not(#_):not(#_) { background: #fafafe !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on .gm-tr > .gm-td:not(.ph-c1):not(#_):not(#_):not(#_):not(#_) { background: #fafafe !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on .app-shell > main:not(#_):not(#_):not(#_):not(#_) { background: #fafafa !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on table.aiq-tbl:not(#_):not(#_):not(#_):not(#_) { background: transparent !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on table.aiq-tbl thead:not(#_):not(#_):not(#_):not(#_) { background: transparent !important; }

  /* exact Attio light colours, sampled from their screenshot (user, 2026-10-29): page #fafafa, first column #fff, other columns #fafafe,
     hairlines #f2f2f2 / #f2f2f4, and no rule above the header row */
  html.aiq-phone:not([data-theme="dark"]).ph-th-on table.aiq-tbl :is(th, td):not(#_):not(#_):not(#_):not(#_) { border-bottom-color: #f2f2f2 !important; border-right-color: #f2f2f4 !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on :is(.ins-bar, .cg-bar, .gm-bar, .ec-bar, #scx-bar, .msa-bar, .si-bar, .pfr-head, .sy-box, .msa-wrap):not(#_):not(#_):not(#_):not(#_) { border-bottom: 0 !important; border-top: 0 !important; box-shadow: none !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on table.aiq-tbl thead, html.aiq-phone:not([data-theme="dark"]).ph-th-on table.aiq-tbl thead th, html.aiq-phone:not([data-theme="dark"]).ph-th-on :is(.gm-thead, .gm-th):not(#_):not(#_):not(#_):not(#_) { border-top: 0 !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on table.aiq-tbl thead th:not(#_):not(#_):not(#_):not(#_) { border-bottom-color: #f3f3f3 !important; }
  html.aiq-phone [data-rename]:not(#_):not(#_) { touch-action: manipulation; -webkit-user-select: text; user-select: text; }
  html.aiq-phone.ph-ln .pfr-head:not(#_):not(#_):not(#_) { display: none !important; }

  /* press and hold a row = selection mode: tick boxes show, the bulk bar (Remove from list) sits above the tab pill */
  html.aiq-phone.ph-sel.ph-th-on table.sy-t :is(th, td).sy-ckc:not(#_):not(#_):not(#_):not(#_):not(#_) { display: table-cell !important; width: 44px; min-width: 44px; }
  html.aiq-phone.ph-sel #ph-fab:not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #msa-bulk:not(#_):not(#_):not(#_):not(#_):not(#_) { position: fixed; z-index: 160; left: 12px; right: 12px; bottom: calc(92px + env(safe-area-inset-bottom)); transform: none; justify-content: space-between; }
  html.aiq-phone table.sy-t tr[data-t]:not(#_):not(#_):not(#_):not(#_):not(#_) { -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; }
  html.aiq-phone #msa-bulk .msa-bulk-n:not(#_):not(#_):not(#_) { white-space: nowrap; }
  html.aiq-phone.ph-sel.ph-th-on table.sy-t :is(th, td).sy-ckc:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { text-align: center !important; padding: 0 !important; vertical-align: middle !important; }
  html.aiq-phone.ph-sel table.sy-t .sy-ckc input[type=checkbox]:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: block; margin: 0 auto !important; vertical-align: middle; }
  html.aiq-phone.ph-sel.ph-th-on table.sy-t :is(th, td).sy-ckc:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { width: 44px !important; min-width: 44px !important; max-width: 44px !important; box-sizing: border-box; }
  html.aiq-phone.ph-rn .pfr-head:not(#_):not(#_):not(#_) { display: block !important; position: fixed !important; left: -9999px; top: 0; opacity: 0; pointer-events: none; }
  html.aiq-phone #ph-rename-dlg input:not(#_):not(#_):not(#_) { width: 100%; height: 48px; padding: 0 14px; border-radius: 12px; border: 1px solid var(--ph-line); background: transparent; color: var(--ph-ink); font-size: 17px; }
  html.aiq-phone #ph-th .ph-th-pen:not(#_):not(#_):not(#_) { flex: none; width: 28px; height: 28px; margin-left: -2px; border: 0; background: none; display: grid; place-items: center; color: var(--ph-ink); font-size: 18px; width: 34px; height: 34px; border-radius: 50%; background: rgba(118,118,128,.16); }
  html.aiq-phone #ph-th .ph-th-pen[hidden]:not(#_):not(#_):not(#_) { display: none; }

  /* Why it moved on phones: a row per stock, not a six-column table (user, 2026-10-29: "doesn't display the proper data"):
     ticker + move, the headline that explains it, then driver tag, vs-sector points and the biggest day */
  html.aiq-phone table.wy-t thead:not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone table.wy-t, html.aiq-phone table.wy-t tbody:not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; width: 100% !important; }
  html.aiq-phone table.wy-t tr:not(#_):not(#_):not(#_):not(#_):not(#_) { display: grid !important; grid-template-columns: auto auto 1fr auto; grid-template-areas: "tk tk . mv" "hl hl hl hl" "dr rel . day"; gap: 6px 10px; align-items: center; padding: 14px 16px; border-bottom: 1px solid var(--ph-line); }
  html.aiq-phone table.wy-t td:not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; width: auto !important; min-width: 0 !important; max-width: none !important; height: auto !important; padding: 0 !important; border: 0 !important; background: transparent !important; text-align: left !important; white-space: normal !important; overflow: visible !important; }
  html.aiq-phone table.wy-t td:nth-child(1):not(#_):not(#_):not(#_):not(#_):not(#_) { grid-area: tk; display: flex !important; align-items: center; gap: 8px; font-size: 17px; font-weight: 600; }
  html.aiq-phone table.wy-t td:nth-child(2):not(#_):not(#_):not(#_):not(#_):not(#_) { grid-area: mv; font-size: 17px; font-weight: 600; justify-self: end; }
  html.aiq-phone table.wy-t td:nth-child(3):not(#_):not(#_):not(#_):not(#_):not(#_) { grid-area: rel; font-size: 14px; }
  html.aiq-phone table.wy-t td:nth-child(4):not(#_):not(#_):not(#_):not(#_):not(#_) { grid-area: dr; }
  html.aiq-phone table.wy-t td:nth-child(5):not(#_):not(#_):not(#_):not(#_):not(#_) { grid-area: hl; font-size: 15px; line-height: 1.35; }
  html.aiq-phone table.wy-t td:nth-child(5) a:not(#_):not(#_):not(#_):not(#_):not(#_) { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; color: var(--ph-ink); text-decoration: none; }
  html.aiq-phone table.wy-t td:nth-child(6):not(#_):not(#_):not(#_):not(#_):not(#_) { grid-area: day; justify-self: end; font-size: 13px; color: var(--ph-mut); }
  html.aiq-phone table.wy-t .ph-hc:not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; }

  /* the Overview's facts are one column at every phone width (user, 2026-10-29: "always in one column not two") */
  html.aiq-phone .ovs-facts:not(#_):not(#_):not(#_):not(#_) { display: flex !important; flex-direction: column !important; flex-wrap: nowrap !important; }
  html.aiq-phone .ovs-facts > *:not(#_):not(#_):not(#_):not(#_) { width: 100% !important; max-width: 100% !important; flex: 0 0 auto !important; border-left: 0 !important; }
  html.aiq-phone :is(.ovs-mid, .ovs-grid, .ovs-main, .ovs-side, .ovs-spill):not(#_):not(#_):not(#_):not(#_) { display: block !important; }
  html.aiq-phone :is(.ovs-mid, .ovs-spill) > *:not(#_):not(#_):not(#_):not(#_) { width: 100% !important; max-width: 100% !important; }

  /* Search = Attio's: a big "Search" title, logo rows with a type tag, and a round home button + search pill at the bottom (user, 2026-10-29) */
  html.aiq-phone #ph-search:not(#_):not(#_) { position: fixed; inset: 0; z-index: 2147483000; display: flex; flex-direction: column; background: #fafafa; color: var(--ph-ink); }
  html.aiq-phone[data-theme="dark"] #ph-search:not(#_):not(#_) { background: #252933; }
  html.aiq-phone #ph-search .ps-title:not(#_):not(#_) { margin: 0; padding: calc(70px + env(safe-area-inset-top)) 20px 14px; font-size: 40px; line-height: 1.1; font-weight: 700; letter-spacing: -.02em; }
  html.aiq-phone #ph-search .ps-list:not(#_):not(#_) { flex: 1; overflow-y: auto; padding: 0 12px 120px; }
  html.aiq-phone #ph-search .ps-row:not(#_):not(#_) { display: flex; align-items: center; gap: 14px; padding: 10px 8px; min-height: 68px; color: inherit; text-decoration: none; }
  html.aiq-phone #ph-search .ps-lg:not(#_):not(#_) { position: relative; flex: none; width: 48px; height: 48px; border-radius: 12px; overflow: hidden; background: rgba(118,118,128,.14); display: grid; place-items: center; }
  html.aiq-phone #ph-search .ps-lg img:not(#_):not(#_) { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: #fff; }
  html.aiq-phone #ph-search .ps-lg i:not(#_):not(#_) { font-style: normal; font-weight: 600; font-size: 18px; color: var(--ph-mut); }
  html.aiq-phone #ph-search .ps-tx:not(#_):not(#_) { flex: 1; min-width: 0; display: block; }
  html.aiq-phone #ph-search .ps-tx b:not(#_):not(#_) { display: block; font-size: 18px; font-weight: 450; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone #ph-search .ps-tx small:not(#_):not(#_) { display: block; margin-top: 2px; font-size: 15px; color: var(--ph-mut); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone #ph-search .ps-tag:not(#_):not(#_) { flex: none; font-style: normal; font-size: 16px; padding: 6px 12px; border-radius: 8px; color: #2a6df4; background: rgba(42,109,244,.1); border: 1px solid rgba(42,109,244,.18); }
  html.aiq-phone #ph-search .ps-empty:not(#_):not(#_) { padding: 28px 12px; color: var(--ph-mut); font-size: 17px; }
  html.aiq-phone #ph-search .ps-bar:not(#_):not(#_) { position: absolute; left: 12px; right: 12px; bottom: calc(14px + env(safe-area-inset-bottom)); display: flex; gap: 10px; align-items: center; }
  html.aiq-phone #ph-search .ps-x:not(#_):not(#_) { flex: none; width: 64px; height: 64px; border-radius: 50%; border: 0; display: grid; place-items: center; font-size: 26px; color: var(--ph-ink); background: #fff; box-shadow: 0 4px 22px rgba(15,17,21,.12), 0 0 0 1px rgba(15,17,21,.04); }
  html.aiq-phone[data-theme="dark"] #ph-search .ps-x:not(#_):not(#_), html.aiq-phone[data-theme="dark"] #ph-search .ps-in:not(#_):not(#_) { background: #2e3443; box-shadow: 0 4px 22px rgba(0,0,0,.4); }
  html.aiq-phone #ph-search .ps-in:not(#_):not(#_) { flex: 1; min-width: 0; height: 64px; border-radius: 999px; display: flex; align-items: center; gap: 12px; padding: 0 22px; background: #fff; box-shadow: 0 4px 22px rgba(15,17,21,.12), 0 0 0 1px rgba(15,17,21,.04); font-size: 22px; }
  html.aiq-phone #ph-search .ps-in i:not(#_):not(#_) { font-size: 24px; color: var(--ph-ink); }
  html.aiq-phone #ph-search .ps-in input:not(#_):not(#_) { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; background: transparent; color: var(--ph-ink); font-size: 22px; padding: 0; }
  /* Overview: no Notes / Alerts rows (user, 2026-10-29) */
  html.aiq-phone #tab-overview section.at-fin-rows:not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #ph-search .ps-h:not(#_):not(#_) { padding: 14px 8px 6px; font-size: 16px; color: var(--ph-mut); }

  html.aiq-phone #aiq-ptabs a.on:not(#_):not(#_), html.aiq-phone #aiq-ptabs a.is-up:not(#_):not(#_) { background: #eceef2; color: var(--ph-ink); }
  html.aiq-phone[data-theme="dark"] #aiq-ptabs a.on:not(#_):not(#_), html.aiq-phone[data-theme="dark"] #aiq-ptabs a.is-up:not(#_):not(#_) { background: rgba(255,255,255,.12); }
  html.aiq-phone #aiq-ptabs a:nth-child(6):not(#_):not(#_) { display: none; }
  html.aiq-phone #aiq-ptabs a.ph-search-tab:not(#_):not(#_) { position: absolute; z-index: 1; right: 0; top: 0; bottom: 0; width: 64px; margin: 0; flex: none;
    background: #fff; box-shadow: 0 4px 22px rgba(15,17,21,.12), 0 0 0 1px rgba(15,17,21,.04); border-radius: 50%; }
  html.aiq-phone[data-theme="dark"] #aiq-ptabs a.ph-search-tab:not(#_):not(#_) { background: #2e3443; box-shadow: 0 4px 22px rgba(0,0,0,.4); }
  html.aiq-phone .app-shell > main:not(#_):not(#_) { padding-bottom: calc(104px + env(safe-area-inset-bottom)) !important; }
  html.aiq-phone .ph-pop-card:not(#_):not(#_) { bottom: calc(92px + env(safe-area-inset-bottom)); max-height: calc(100dvh - 64px - env(safe-area-inset-bottom) - 100px); }
  html.aiq-phone :is(#aiq-toast, .aiq-toast):not(#_):not(#_) { bottom: calc(92px + env(safe-area-inset-bottom)) !important; }
  html.aiq-phone .ws-dock:not(#_):not(#_) { bottom: calc(90px + env(safe-area-inset-bottom)) !important; }

  /* Explore as an inset grouped list */
  html.aiq-phone .ex-grid:not(#_):not(#_) { display: block; background: var(--ph-card); border: 1px solid var(--ph-line); border-radius: 18px; overflow: hidden; }
  html.aiq-phone .ex-tile:not(#_):not(#_) { flex-direction: row; align-items: center; justify-content: flex-start; gap: 14px; min-height: 56px; padding: 0 16px;
    border: 0; border-radius: 0; background: transparent; position: relative; }
  html.aiq-phone .ex-tile:not(#_):not(#_) + .ex-tile::before { content: ""; position: absolute; top: 0; left: 58px; right: 0; border-top: 1px solid var(--ph-line); }
  html.aiq-phone .ex-tile i:not(#_):not(#_) { flex: none; width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; font-size: 17px; color: #fff; background: #2a6df4; }
  html.aiq-phone .ex-tile:nth-child(6n+2) i:not(#_):not(#_) { background: #12b981; }
  html.aiq-phone .ex-tile:nth-child(6n+3) i:not(#_):not(#_) { background: #f97316; }
  html.aiq-phone .ex-tile:nth-child(6n+4) i:not(#_):not(#_) { background: #8b5cf6; }
  html.aiq-phone .ex-tile:nth-child(6n+5) i:not(#_):not(#_) { background: #06b6d4; }
  html.aiq-phone .ex-tile:nth-child(6n) i:not(#_):not(#_) { background: #ec4899; }
  html.aiq-phone .ex-tile b:not(#_):not(#_) { font-size: 17px; font-weight: 450; letter-spacing: 0; }
  html.aiq-phone .ex-tile:not(#_):not(#_)::after { right: 18px; width: 7px; height: 7px; border-width: 1.6px 1.6px 0 0; }
  html.aiq-phone .ex-h:not(#_):not(#_) { font-size: 16px; font-weight: 450; margin: 26px 4px 8px; }
  html.aiq-phone .ex-who:not(#_):not(#_) { display: flex; align-items: center; gap: 12px; margin: 10px 4px 6px; color: var(--ph-ink); text-decoration: none; }
  html.aiq-phone .ex-who span:not(#_):not(#_) { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: #f0554e; color: #fff; font-weight: 600; font-size: 16px; }
  html.aiq-phone .ex-who b:not(#_):not(#_) { font-size: 24px; font-weight: 650; letter-spacing: -.01em; }

  /* No header bar on phones (user, 2026-10-29: profile lives on the links page / settings, "no need to take up header space") */
  html.aiq-phone :is(.at-pagebar, .at-top-tools):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone .app-shell > main:not(#_):not(#_) { padding-top: env(safe-area-inset-top) !important; }
  html.aiq-phone .ex-signin:not(#_):not(#_) { display: block; margin: 14px 4px 0; color: var(--ph-acc); font-size: 17px; font-weight: 600; text-decoration: none; }

  /* Table pages (js/aiq-phone-tablehead.js): round back button + centred icon and name, the page's own title row hidden */
  html.aiq-phone #ph-th:not(#_):not(#_) { display: flex; align-items: center; justify-content: space-between; padding: 12px 4px 10px; }
  html.aiq-phone #ph-th .ph-th-b:not(#_):not(#_) { flex: none; width: 48px; height: 48px; border-radius: 50%; border: 0; display: grid; place-items: center; font-size: 22px;
    background: #fff; color: var(--ph-ink); box-shadow: 0 2px 14px rgba(15,17,21,.1), 0 0 0 1px rgba(15,17,21,.04); }
  html.aiq-phone[data-theme="dark"] #ph-th .ph-th-b:not(#_):not(#_) { background: #2e3443; box-shadow: 0 2px 14px rgba(0,0,0,.35); }
  html.aiq-phone #ph-th .ph-th-sp:not(#_):not(#_) { visibility: hidden; }
  html.aiq-phone #ph-th .ph-th-t:not(#_):not(#_) { display: flex; align-items: center; gap: 10px; min-width: 0; }
  html.aiq-phone #ph-th .ph-th-t i:not(#_):not(#_) { width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; font-size: 16px; color: #fff; }
  html.aiq-phone #ph-th .ph-th-t b:not(#_):not(#_) { font-size: 20px; font-weight: 650; color: var(--ph-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.aiq-phone.ph-th-on :is(.app-shell > main h1, .ins-top, .cg-head, .gm-head, .ec-head):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone .ex:not(#_):not(#_) { padding-top: 14px; }

  /* chips: the toolbar's view / sort / filter / search controls are round grey pills like Attio's */
  html.aiq-phone.ph-th-on :is(.at-btn:not(.at-pri), .ins-hbtn, .ec-at-btn, #ins-q, #ec-search):not(#_):not(#_):not(#_) { height: 40px !important; border-radius: 999px !important;
    padding: 0 14px !important; border: 0 !important; background: rgba(118,118,128,.16) !important; color: var(--ph-ink) !important; font-size: 16px !important; font-weight: 500 !important; box-shadow: none !important; }
  html.aiq-phone.ph-th-on :is(.at-btn, .ins-hbtn, .ec-at-btn) svg:not(#_):not(#_) { width: 18px; height: 18px; }
  html.aiq-phone .ph-fab-src:not(#_):not(#_):not(#_), html.aiq-phone.ph-fab-on main :is(.at-btn.at-pri, .pfr-trade):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #ph-fab:not(#_):not(#_) { position: fixed; z-index: 140; right: 20px; bottom: calc(96px + env(safe-area-inset-bottom)); width: 60px; height: 60px; border-radius: 50%; border: 0;
    display: grid; place-items: center; font-size: 28px; color: #fff; background: #2a6df4; box-shadow: 0 8px 22px rgba(42,109,244,.45); }

  /* the first column stays put while the table scrolls sideways */
  html.aiq-phone.ph-th-on :is(table :is(th, td), .gm-tr > .gm-td, .gm-thead > .gm-th).ph-c1:not(#_):not(#_) { position: static; background: var(--sh-bed, var(--ph-bed)); }

  /* My stocks list page: just the list's name and the table (no "1 of 1" row, logos, sector bar or stat pills) */
  html.aiq-phone :is(.aiq-lback, .at-recbar, .hd-c, .msa-dnav):not(#_):not(#_):not(#_) { display: none !important; }

  /* the tab row lives in a top-right menu (js/aiq-phone-tablehead.js) */
  html.aiq-phone.ph-tabs-menu :is(.rc-tabs .rc-tab, .tm-tabs):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #ph-tabmenu:not(#_):not(#_) { position: fixed; z-index: 1300; top: calc(68px + env(safe-area-inset-top)); right: 16px; min-width: 220px; padding: 6px;
    border-radius: 22px; background: #fff; box-shadow: 0 12px 40px rgba(15,17,21,.22), 0 0 0 1px rgba(15,17,21,.05); }
  html.aiq-phone[data-theme="dark"] #ph-tabmenu:not(#_):not(#_) { background: #2e3443; box-shadow: 0 12px 40px rgba(0,0,0,.5); }
  html.aiq-phone #ph-tabmenu[hidden]:not(#_):not(#_) { display: none; }
  html.aiq-phone #ph-tabmenu button:not(#_):not(#_) { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; min-height: 50px; padding: 0 16px; border: 0;
    background: none; border-radius: 16px; color: var(--ph-ink); font-size: 17px; font-weight: 450; text-align: left; }
  html.aiq-phone #ph-tabmenu button.on:not(#_):not(#_) { font-weight: 600; }
  html.aiq-phone #ph-tabmenu em:not(#_):not(#_) { font-style: normal; color: var(--ph-mut); font-size: 14px; margin-left: 6px; }

  /* My stocks, basic (user, 2026-10-29: "significantly reduce the features on mobile ... not cluttered"): the list of lists and one New list button */
  html.aiq-phone .msa-bar:not(#_):not(#_), html.aiq-phone .msa-calc:not(#_):not(#_), html.aiq-phone .aiq-more-cards:not(#_):not(#_),
  html.aiq-phone .aiq-more-hero > :not(.aiq-more-cta):not(#_):not(#_) { display: none !important; }
  html.aiq-phone :is(.msa-more, .aiq-more):not(#_):not(#_) { min-height: 0 !important; height: auto !important; }
  html.aiq-phone .aiq-more-hero:not(#_):not(#_) { min-height: 0; padding: 20px 16px; background: none; }
  html.aiq-phone .aiq-more-hero::before, html.aiq-phone .aiq-more-hero::after, html.aiq-phone .aiq-more::before { display: none !important; }

  /* Every table looks like Attio's record list (user, 2026-10-29: "all tables should look like this"): 56px rows, 16px text,
     plain muted header, hairlines only, the first column plain and the rest on a faint tint */
  html.aiq-phone.ph-th-on table.aiq-tbl :is(th, td):not(#_):not(#_):not(#_):not(#_) { height: 56px !important; padding-top: 0 !important; padding-bottom: 0 !important; font-size: 16px !important; line-height: 1.25 !important; vertical-align: middle !important; }
  html.aiq-phone.ph-th-on table.aiq-tbl thead th:not(#_):not(#_):not(#_):not(#_) { height: 52px !important; font-size: 16px !important; font-weight: 400 !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--ph-mut) !important; }
  html.aiq-phone.ph-th-on table.aiq-tbl tbody td:not(.ph-c1):not(#_):not(#_):not(#_):not(#_) { background: rgba(88,120,230,.075) !important; }
  html.aiq-phone.ph-th-on table.aiq-tbl :is(th, td):not(#_):not(#_):not(#_):not(#_) { border-left: 0 !important; border-right: 1px solid var(--ph-line) !important; border-bottom: 1px solid var(--ph-line) !important; text-align: left !important; }
  html.aiq-phone.ph-th-on .gm-tr .gm-td:not(#_):not(#_):not(#_):not(#_) { font-size: 16px; }
  html.aiq-phone.ph-th-on .gm-th:not(#_):not(#_):not(#_):not(#_) { font-size: 16px; font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--ph-mut); }

  /* Basic on phones (user, 2026-10-29: "I trust your instinct ... we can add it back later"): table pages show the header, one view chip,
     search and the table. Gone: the shortcut cards and explainer under short lists, the second CTA, disclaimer line,
     view / sort / filter / settings chips, count text, the Price picker. */
  html.aiq-phone.ph-th-on :is(.aiq-more-cards, .aiq-more-hero > p, .aiq-disclaimer, .rc-tv, #msa-view, #msa-dview, #msa-sort, #msa-filter,
      main [class*="-explore"], .si-more p, .cg-more p, .sch-cta .at-btn:not(.at-pri), #cg-sortbtn, #cg-fbtn, #si-vset, #si-vset2, .aiq-more-b:not(.pri), .ins-count, .si-count):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-th-on .aiq-more-hero:not(#_):not(#_) { min-height: 0 !important; padding: 28px 16px !important; }

  /* stock page: the tab row is behind the top-right three-bars button (js/aiq-phone-fintabs.js) */
  html.aiq-phone.ph-ptabs #ph-ftabs:not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #ph-fin-menu:not(#_):not(#_) { position: fixed; z-index: 140; top: calc(8px + env(safe-area-inset-top)); right: 16px; width: 48px; height: 48px; border-radius: 50%; border: 0;
    display: grid; place-items: center; font-size: 22px; color: var(--ph-ink); background: #fff; box-shadow: 0 2px 14px rgba(15,17,21,.1), 0 0 0 1px rgba(15,17,21,.04); }
  html.aiq-phone[data-theme="dark"] #ph-fin-menu:not(#_):not(#_) { background: #2e3443; box-shadow: 0 2px 14px rgba(0,0,0,.35); }
  html.aiq-phone #ph-tabmenu:not(#_):not(#_) { top: calc(64px + env(safe-area-inset-top)); }

  /* navmenu (js/aiq-phone-navmenu.js): any tab row -> the top-right three-bars menu */
  html.aiq-phone .ph-nm-hide:not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #ph-navmenu.ph-nm-fixed:not(#_):not(#_) { position: fixed; z-index: 140; top: calc(8px + env(safe-area-inset-top)); right: 16px; width: 48px; height: 48px; border-radius: 50%; border: 0;
    display: grid; place-items: center; font-size: 22px; color: var(--ph-ink); background: #fff; box-shadow: 0 2px 14px rgba(15,17,21,.1), 0 0 0 1px rgba(15,17,21,.04); }
  html.aiq-phone[data-theme="dark"] #ph-navmenu.ph-nm-fixed:not(#_):not(#_) { background: #2e3443; box-shadow: 0 2px 14px rgba(0,0,0,.35); }
  html.aiq-phone.ph-nm-on .mkad-tabrow:not(#_):not(#_):not(#_) { padding-right: 72px !important; }
  html.aiq-phone.ph-nm-on .st-layout:not(#_):not(#_) { padding-top: 8px; }

  /* Stock Overview top = the Home layout (user, 2026-10-29: "image two should copy image 1"): small grey name, one huge price,
     the day's change in colour, the chart edge to edge, then 1M 3M 1Y text pills. No title row, legend, 1Y menu or S&P chip. */
  html.aiq-phone .at-ft:not(#_):not(#_):not(#_) { margin: 0 !important; padding: 16px 4px 4px !important; }
  html.aiq-phone .at-ft-co:not(#_):not(#_):not(#_) { display: block !important; }
  html.aiq-phone .at-ft-id:not(#_):not(#_):not(#_) { display: flex !important; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; }
  html.aiq-phone .at-ft-id img:not(#_):not(#_):not(#_) { width: 22px; height: 22px; align-self: center; }
  html.aiq-phone .at-ft-id b:not(#_):not(#_):not(#_), html.aiq-phone .at-ft-nm:not(#_):not(#_):not(#_) { font-size: 15px !important; font-weight: 500 !important; color: var(--ph-mut) !important; }
  html.aiq-phone .at-ft-p:not(#_):not(#_):not(#_) { order: 3; flex: 0 0 100%; margin-top: 4px; font-size: 44px !important; font-weight: 700 !important; line-height: 1.1 !important; letter-spacing: -.02em; color: var(--ph-ink) !important; }
  html.aiq-phone .at-ft-c:not(#_):not(#_):not(#_) { order: 4; flex: 0 0 100%; font-size: 17px !important; font-weight: 500 !important; }
  html.aiq-phone .at-ft-c:not(#_):not(#_):not(#_)::after { content: " today"; }
  html.aiq-phone .ovs-price:not(#_):not(#_):not(#_) { display: flex !important; flex-direction: column; }
  html.aiq-phone .ovs-price-top:not(#_):not(#_):not(#_) { display: contents !important; }
  html.aiq-phone :is(.ovs-rule, .ovs-px, .ov-seg .at-segpill, .ov-seg-sep, #ov-sp500-btn, .ov-seg [data-ovrange="1d"], .ov-seg [data-ovrange="7d"], .ov-seg [data-ovrange="1m"], .ov-seg [data-ovrange="3m"], .ov-seg [data-ovrange="all"]):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #ov-price-wrapper:not(#_):not(#_):not(#_) { order: 1; margin: 0 -12px !important; }
  html.aiq-phone .ov-seg:not(#_):not(#_):not(#_) { order: 2; display: flex !important; gap: 4px; padding: 12px 4px 4px; background: none !important; border: 0 !important; }
  html.aiq-phone .ov-seg .ov-seg-btn:not(#_):not(#_):not(#_) { display: inline-flex !important; height: 40px; padding: 0 16px; border: 0 !important; border-radius: 12px !important; background: none !important; color: var(--ph-mut) !important; font-size: 17px !important; font-weight: 600 !important; }
  html.aiq-phone .ov-seg .ov-seg-btn.is-on:not(#_):not(#_):not(#_) { background: rgba(118,118,128,.18) !important; color: var(--ph-ink) !important; }
  html.aiq-phone .ov-seg #ov-sp500-btn:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone .ov-seg .ov-seg-btn:is([data-ovrange="1y"], [data-ovrange="5y"], [data-ovrange="10y"]):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: inline-flex !important; align-items: center; }

  /* no tick column on phones (user, 2026-10-29); the first real column is the frozen white one, the rest sit on a blue tint, widths are fixed */
  html.aiq-phone.ph-th-on :is(table :is(th, td), .gm-tr > .gm-td, .gm-thead > .gm-th):has(> input[type=checkbox]:only-child):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-th-on table.aiq-tbl :is(th, td).ph-c1:not(#_):not(#_):not(#_) { width: 46vw !important; min-width: 46vw !important; max-width: 46vw !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap !important; }
  html.aiq-phone.ph-th-on table.aiq-tbl :is(th, td):not(.ph-c1):not(.ph-hc):not(#_):not(#_):not(#_) { min-width: 112px; }
  html.aiq-phone.ph-th-on table.sy-t td b + em:not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-tabs-menu .rc-tabs:not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-th-on .gm-tr > .gm-td:not(.ph-c1):not(#_):not(#_):not(#_) { background: rgba(88,120,230,.075) !important; }

  /* thin grid lines between columns and everything left-aligned, like Attio (user, 2026-10-29) */
  html.aiq-phone.ph-th-on :is(.gm-td, .gm-th):not(#_):not(#_):not(#_) { border-right: 1px solid var(--ph-line) !important; text-align: left !important; justify-content: flex-start !important; }
  html.aiq-phone.ph-th-on table.aiq-tbl :is(td.num, th.num, td .num, th button, th > div):not(#_):not(#_):not(#_) { text-align: left !important; justify-content: flex-start !important; }
  html.aiq-phone.ph-th-on .gm-td .num:not(#_):not(#_):not(#_) { text-align: left !important; }

  /* "New" on My stocks: just Watchlist and Paper portfolio, one per row, no blurbs (user, 2026-10-29: "we shouldn't have so many options") */
  html.aiq-phone #msa-new-dlg .nr-fmt-c:not([data-new="wl"]):not([data-new="paper"]):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #msa-new-dlg .nr-fmt-row:not(#_):not(#_) { display: flex !important; flex-direction: column; gap: 10px; }
  html.aiq-phone #msa-new-dlg .nr-fmt-c:not(#_):not(#_) { display: flex !important; flex-direction: row; align-items: center; gap: 14px; width: 100%; min-height: 64px; padding: 0 16px !important; }
  html.aiq-phone #msa-new-dlg :is(.nr-fmt-c p, .nr-fmt-h, .at-tpl-nav):not(#_):not(#_) { display: none !important; }

  /* Attio's light table page (user, 2026-10-29): page on a faint grey, the first column white, the header row plain on the grey with
     no rule above it, hairlines between rows and columns */
  html.aiq-phone:not([data-theme="dark"]).ph-th-on { --ph-bed: #fafafa; --sh-bed: #fafafa; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on table.aiq-tbl thead th:not(#_):not(#_):not(#_):not(#_) { background: transparent !important; border-top: 0 !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on table.aiq-tbl :is(th, td).ph-c1:not(#_):not(#_):not(#_):not(#_) { background: transparent !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on table.aiq-tbl tbody td.ph-c1:not(#_):not(#_):not(#_):not(#_) { background: #fff !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on :is(.gm-thead, .gm-th):not(#_):not(#_):not(#_):not(#_) { background: transparent !important; border-top: 0 !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on .gm-tr > .gm-td.ph-c1:not(#_):not(#_):not(#_):not(#_) { background: #fff !important; }
  html.aiq-phone.ph-th-on table.aiq-tbl thead:not(#_):not(#_):not(#_):not(#_) { border-top: 0 !important; box-shadow: none !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on table.aiq-tbl tbody td:not(.ph-c1):not(#_):not(#_):not(#_):not(#_) { background: #fafafe !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on .gm-tr > .gm-td:not(.ph-c1):not(#_):not(#_):not(#_):not(#_) { background: #fafafe !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on .app-shell > main:not(#_):not(#_):not(#_):not(#_) { background: #fafafa !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on table.aiq-tbl:not(#_):not(#_):not(#_):not(#_) { background: transparent !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on table.aiq-tbl thead:not(#_):not(#_):not(#_):not(#_) { background: transparent !important; }

  /* exact Attio light colours, sampled from their screenshot (user, 2026-10-29): page #fafafa, first column #fff, other columns #fafafe,
     hairlines #f2f2f2 / #f2f2f4, and no rule above the header row */
  html.aiq-phone:not([data-theme="dark"]).ph-th-on table.aiq-tbl :is(th, td):not(#_):not(#_):not(#_):not(#_) { border-bottom-color: #f2f2f2 !important; border-right-color: #f2f2f4 !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on :is(.ins-bar, .cg-bar, .gm-bar, .ec-bar, #scx-bar, .msa-bar, .si-bar, .pfr-head, .sy-box, .msa-wrap):not(#_):not(#_):not(#_):not(#_) { border-bottom: 0 !important; border-top: 0 !important; box-shadow: none !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on table.aiq-tbl thead, html.aiq-phone:not([data-theme="dark"]).ph-th-on table.aiq-tbl thead th, html.aiq-phone:not([data-theme="dark"]).ph-th-on :is(.gm-thead, .gm-th):not(#_):not(#_):not(#_):not(#_) { border-top: 0 !important; }
  html.aiq-phone:not([data-theme="dark"]).ph-th-on table.aiq-tbl thead th:not(#_):not(#_):not(#_):not(#_) { border-bottom-color: #f3f3f3 !important; }
  html.aiq-phone [data-rename]:not(#_):not(#_) { touch-action: manipulation; -webkit-user-select: text; user-select: text; }
  html.aiq-phone.ph-ln .pfr-head:not(#_):not(#_):not(#_) { display: none !important; }

  /* press and hold a row = selection mode: tick boxes show, the bulk bar (Remove from list) sits above the tab pill */
  html.aiq-phone.ph-sel.ph-th-on table.sy-t :is(th, td).sy-ckc:not(#_):not(#_):not(#_):not(#_):not(#_) { display: table-cell !important; width: 44px; min-width: 44px; }
  html.aiq-phone.ph-sel #ph-fab:not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #msa-bulk:not(#_):not(#_):not(#_):not(#_):not(#_) { position: fixed; z-index: 160; left: 12px; right: 12px; bottom: calc(92px + env(safe-area-inset-bottom)); transform: none; justify-content: space-between; }
  html.aiq-phone table.sy-t tr[data-t]:not(#_):not(#_):not(#_):not(#_):not(#_) { -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; }
  html.aiq-phone #msa-bulk .msa-bulk-n:not(#_):not(#_):not(#_) { white-space: nowrap; }
  html.aiq-phone.ph-sel.ph-th-on table.sy-t :is(th, td).sy-ckc:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { text-align: center !important; padding: 0 !important; vertical-align: middle !important; }
  html.aiq-phone.ph-sel table.sy-t .sy-ckc input[type=checkbox]:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: block; margin: 0 auto !important; vertical-align: middle; }
  html.aiq-phone.ph-sel.ph-th-on table.sy-t :is(th, td).sy-ckc:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { width: 44px !important; min-width: 44px !important; max-width: 44px !important; box-sizing: border-box; }
  html.aiq-phone.ph-rn .pfr-head:not(#_):not(#_):not(#_) { display: block !important; position: fixed !important; left: -9999px; top: 0; opacity: 0; pointer-events: none; }
  html.aiq-phone #ph-rename-dlg input:not(#_):not(#_):not(#_) { width: 100%; height: 48px; padding: 0 14px; border-radius: 12px; border: 1px solid var(--ph-line); background: transparent; color: var(--ph-ink); font-size: 17px; }
  html.aiq-phone #ph-th .ph-th-pen:not(#_):not(#_):not(#_) { flex: none; width: 28px; height: 28px; margin-left: -2px; border: 0; background: none; display: grid; place-items: center; color: var(--ph-ink); font-size: 18px; width: 34px; height: 34px; border-radius: 50%; background: rgba(118,118,128,.16); }
  html.aiq-phone #ph-th .ph-th-pen[hidden]:not(#_):not(#_):not(#_) { display: none; }

  /* Why it moved on phones: a row per stock, not a six-column table (user, 2026-10-29: "doesn't display the proper data"):
     ticker + move, the headline that explains it, then driver tag, vs-sector points and the biggest day */
  html.aiq-phone table.wy-t thead:not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone table.wy-t, html.aiq-phone table.wy-t tbody:not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; width: 100% !important; }
  html.aiq-phone table.wy-t tr:not(#_):not(#_):not(#_):not(#_):not(#_) { display: grid !important; grid-template-columns: auto auto 1fr auto; grid-template-areas: "tk tk . mv" "hl hl hl hl" "dr rel . day"; gap: 6px 10px; align-items: center; padding: 14px 16px; border-bottom: 1px solid var(--ph-line); }
  html.aiq-phone table.wy-t td:not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; width: auto !important; min-width: 0 !important; max-width: none !important; height: auto !important; padding: 0 !important; border: 0 !important; background: transparent !important; text-align: left !important; white-space: normal !important; overflow: visible !important; }
  html.aiq-phone table.wy-t td:nth-child(1):not(#_):not(#_):not(#_):not(#_):not(#_) { grid-area: tk; display: flex !important; align-items: center; gap: 8px; font-size: 17px; font-weight: 600; }
  html.aiq-phone table.wy-t td:nth-child(2):not(#_):not(#_):not(#_):not(#_):not(#_) { grid-area: mv; font-size: 17px; font-weight: 600; justify-self: end; }
  html.aiq-phone table.wy-t td:nth-child(3):not(#_):not(#_):not(#_):not(#_):not(#_) { grid-area: rel; font-size: 14px; }
  html.aiq-phone table.wy-t td:nth-child(4):not(#_):not(#_):not(#_):not(#_):not(#_) { grid-area: dr; }
  html.aiq-phone table.wy-t td:nth-child(5):not(#_):not(#_):not(#_):not(#_):not(#_) { grid-area: hl; font-size: 15px; line-height: 1.35; }
  html.aiq-phone table.wy-t td:nth-child(5) a:not(#_):not(#_):not(#_):not(#_):not(#_) { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; color: var(--ph-ink); text-decoration: none; }
  html.aiq-phone table.wy-t td:nth-child(6):not(#_):not(#_):not(#_):not(#_):not(#_) { grid-area: day; justify-self: end; font-size: 13px; color: var(--ph-mut); }
  html.aiq-phone table.wy-t .ph-hc:not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; }

  /* the Overview's facts are one column at every phone width (user, 2026-10-29: "always in one column not two") */
  html.aiq-phone .ovs-facts:not(#_):not(#_):not(#_):not(#_) { display: flex !important; flex-direction: column !important; flex-wrap: nowrap !important; }
  html.aiq-phone .ovs-facts > *:not(#_):not(#_):not(#_):not(#_) { width: 100% !important; max-width: 100% !important; flex: 0 0 auto !important; border-left: 0 !important; }
  html.aiq-phone :is(.ovs-mid, .ovs-grid, .ovs-main, .ovs-side, .ovs-spill):not(#_):not(#_):not(#_):not(#_) { display: block !important; }
  html.aiq-phone :is(.ovs-mid, .ovs-spill) > *:not(#_):not(#_):not(#_):not(#_) { width: 100% !important; max-width: 100% !important; }

  /* Search = Attio's: a big "Search" title, logo rows with a type tag, and a round home button + search pill at the bottom (user, 2026-10-29) */
  html.aiq-phone #ph-search:not(#_):not(#_) { position: fixed; inset: 0; z-index: 2147483000; display: flex; flex-direction: column; background: #fafafa; color: var(--ph-ink); }
  html.aiq-phone[data-theme="dark"] #ph-search:not(#_):not(#_) { background: #252933; }
  html.aiq-phone #ph-search .ps-title:not(#_):not(#_) { margin: 0; padding: calc(70px + env(safe-area-inset-top)) 20px 14px; font-size: 40px; line-height: 1.1; font-weight: 700; letter-spacing: -.02em; }
  html.aiq-phone #ph-search .ps-list:not(#_):not(#_) { flex: 1; overflow-y: auto; padding: 0 12px 120px; }
  html.aiq-phone #ph-search .ps-row:not(#_):not(#_) { display: flex; align-items: center; gap: 14px; padding: 10px 8px; min-height: 68px; color: inherit; text-decoration: none; }
  html.aiq-phone #ph-search .ps-lg:not(#_):not(#_) { position: relative; flex: none; width: 48px; height: 48px; border-radius: 12px; overflow: hidden; background: rgba(118,118,128,.14); display: grid; place-items: center; }
  html.aiq-phone #ph-search .ps-lg img:not(#_):not(#_) { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: #fff; }
  html.aiq-phone #ph-search .ps-lg i:not(#_):not(#_) { font-style: normal; font-weight: 600; font-size: 18px; color: var(--ph-mut); }
  html.aiq-phone #ph-search .ps-tx:not(#_):not(#_) { flex: 1; min-width: 0; display: block; }
  html.aiq-phone #ph-search .ps-tx b:not(#_):not(#_) { display: block; font-size: 18px; font-weight: 450; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone #ph-search .ps-tx small:not(#_):not(#_) { display: block; margin-top: 2px; font-size: 15px; color: var(--ph-mut); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone #ph-search .ps-tag:not(#_):not(#_) { flex: none; font-style: normal; font-size: 16px; padding: 6px 12px; border-radius: 8px; color: #2a6df4; background: rgba(42,109,244,.1); border: 1px solid rgba(42,109,244,.18); }
  html.aiq-phone #ph-search .ps-empty:not(#_):not(#_) { padding: 28px 12px; color: var(--ph-mut); font-size: 17px; }
  html.aiq-phone #ph-search .ps-bar:not(#_):not(#_) { position: absolute; left: 12px; right: 12px; bottom: calc(14px + env(safe-area-inset-bottom)); display: flex; gap: 10px; align-items: center; }
  html.aiq-phone #ph-search .ps-x:not(#_):not(#_) { flex: none; width: 64px; height: 64px; border-radius: 50%; border: 0; display: grid; place-items: center; font-size: 26px; color: var(--ph-ink); background: #fff; box-shadow: 0 4px 22px rgba(15,17,21,.12), 0 0 0 1px rgba(15,17,21,.04); }
  html.aiq-phone[data-theme="dark"] #ph-search .ps-x:not(#_):not(#_), html.aiq-phone[data-theme="dark"] #ph-search .ps-in:not(#_):not(#_) { background: #2e3443; box-shadow: 0 4px 22px rgba(0,0,0,.4); }
  html.aiq-phone #ph-search .ps-in:not(#_):not(#_) { flex: 1; min-width: 0; height: 64px; border-radius: 999px; display: flex; align-items: center; gap: 12px; padding: 0 22px; background: #fff; box-shadow: 0 4px 22px rgba(15,17,21,.12), 0 0 0 1px rgba(15,17,21,.04); font-size: 22px; }
  html.aiq-phone #ph-search .ps-in i:not(#_):not(#_) { font-size: 24px; color: var(--ph-ink); }
  html.aiq-phone #ph-search .ps-in input:not(#_):not(#_) { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; background: transparent; color: var(--ph-ink); font-size: 22px; padding: 0; }
  /* Overview: no Notes / Alerts rows (user, 2026-10-29) */
  html.aiq-phone #tab-overview section.at-fin-rows:not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #ph-search .ps-h:not(#_):not(#_) { padding: 14px 8px 6px; font-size: 16px; color: var(--ph-mut); }

  html.aiq-phone #aiq-ptabs:not(#_):not(#_) { touch-action: pan-y; -webkit-user-select: none; user-select: none; }

  /* Markets tables on phones: no chart-compare ticks, colour dots or "Open in Chart" button (user, 2026-10-29); text centred vertically */
  html.aiq-phone table.mkad-t :is(.pk, .ra, .dot, .mkck):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone table.mkad-t :is(th, td):not(#_):not(#_):not(#_):not(#_) { vertical-align: middle !important; }
  html.aiq-phone table.mkad-t td .c0:not(#_):not(#_):not(#_):not(#_) { display: flex; align-items: center !important; gap: 8px; min-height: 48px; }
  html.aiq-phone table.mkad-t td .mkc:not(#_):not(#_):not(#_):not(#_) { display: flex !important; align-items: center !important; gap: 8px; min-width: 0; }
  html.aiq-phone table.mkad-t td .mkc .cn:not(#_):not(#_):not(#_):not(#_) { line-height: 1.2; }
  html.aiq-phone table.mkad-t td.num, html.aiq-phone table.mkad-t td .num:not(#_):not(#_):not(#_):not(#_) { line-height: 1.2; }
  /* no hover "Open ->" pill on rows on phones; a pencil on each list row renames it */
  html.aiq-phone .aro-open:not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone .msa-nm .ph-row-pen:not(#_):not(#_):not(#_) { flex: none; margin-left: auto; width: 34px; height: 34px; border: 0; border-radius: 50%; display: grid; place-items: center; font-size: 18px; color: var(--ph-ink); background: rgba(118,118,128,.16); }

  /* statements page: the chip row lives in the menu, no View settings; tables show every column and scroll sideways (user, 2026-10-29) */
  html.aiq-phone .at-ft-bar:not(#_):not(#_):not(#_):not(#_):not(#_), html.aiq-phone .stmt-opt:not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #ph-tabmenu .ph-tm-h:not(#_):not(#_):not(#_):not(#_):not(#_) { padding: 10px 16px 4px; font-size: 14px; color: var(--ph-mut); }
  html.aiq-phone #ph-tabmenu:not(#_):not(#_):not(#_):not(#_):not(#_) { max-height: calc(100dvh - 90px); overflow-y: auto; }
  html.aiq-phone.ph-th-on table.aiq-tbl :is(th, td).ph-hc:not(#_):not(#_):not(#_):not(#_):not(#_) { display: table-cell !important; }
  html.aiq-phone.ph-th-on table.aiq-tbl col.ph-hc:not(#_):not(#_):not(#_):not(#_):not(#_) { display: table-column !important; }

  /* Statistics tables show every year and scroll sideways (user, 2026-10-29), and nothing in column 1 is frozen: a sticky
     first cell left group rows half cut off while the data scrolled. left:auto keeps any vertical (top) stickiness. Scoped
     to table.stx-at: written for every table it unfroze the name column of every phone table (2026-10-29 review). */
  html.aiq-phone table.stx-at :is(th, td).ph-hc:not(#_):not(#_):not(#_):not(#_):not(#_) { display: table-cell !important; }
  html.aiq-phone table.stx-at col.ph-hc:not(#_):not(#_):not(#_):not(#_):not(#_) { display: table-column !important; }
  html.aiq-phone table.stx-at :is(th, td):first-child:not(#_):not(#_):not(#_):not(#_):not(#_), html.aiq-phone table.stx-at tr.stx-grp :is(th, td):not(#_):not(#_):not(#_):not(#_):not(#_) { left: auto !important; }

  /* the stock page's pop-up (Financials tab) uses Explore's look: grouped lists, coloured icon squares, chevrons (user, 2026-10-29) */
  html.aiq-phone .ph-pop-card:not(#_):not(#_):not(#_):not(#_) { left: 12px; right: 12px; padding: 4px 14px 14px; border-radius: 24px; }
  html.aiq-phone .ph-pop-card .ph-pop-h:not(#_):not(#_):not(#_):not(#_) { font-size: 16px; font-weight: 450; color: var(--ph-mut); margin: 18px 4px 8px; text-transform: none; letter-spacing: 0; }
  html.aiq-phone .ph-pop-card .ph-pop-grid:not(#_):not(#_):not(#_):not(#_) { display: block !important; background: var(--ph-card); border: 1px solid var(--ph-line); border-radius: 18px; overflow: hidden; }
  html.aiq-phone .ph-pop-card .ph-pop-grid > *:not(#_):not(#_):not(#_):not(#_) { position: relative; display: flex !important; flex-direction: row !important; align-items: center; justify-content: flex-start; gap: 14px; width: 100%; min-height: 56px; padding: 0 44px 0 16px !important;
    border: 0 !important; border-radius: 0 !important; background: transparent !important; color: var(--ph-ink) !important; font: 450 17px Inter, system-ui, sans-serif !important; text-align: left; text-decoration: none; }
  html.aiq-phone .ph-pop-card .ph-pop-grid > * + *:not(#_):not(#_):not(#_):not(#_)::before { content: ""; position: absolute; top: 0; left: 60px; right: 0; border-top: 1px solid var(--ph-line); }
  html.aiq-phone .ph-pop-card .ph-pop-grid > *:not(#_):not(#_):not(#_):not(#_)::after { content: ""; position: absolute; right: 18px; top: 50%; width: 7px; height: 7px; margin-top: -4px; border-right: 1.6px solid var(--ph-mut); border-top: 1.6px solid var(--ph-mut); transform: rotate(45deg); opacity: .6; }
  html.aiq-phone .ph-pop-card .ph-pop-grid > * > i:not(#_):not(#_):not(#_):not(#_) { flex: none; width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; font-size: 17px; color: #fff !important; background: #2a6df4; }
  html.aiq-phone .ph-pop-card .ph-pop-grid > *:nth-child(6n+2) > i:not(#_):not(#_):not(#_):not(#_) { background: #12b981; }
  html.aiq-phone .ph-pop-card .ph-pop-grid > *:nth-child(6n+3) > i:not(#_):not(#_):not(#_):not(#_) { background: #f97316; }
  html.aiq-phone .ph-pop-card .ph-pop-grid > *:nth-child(6n+4) > i:not(#_):not(#_):not(#_):not(#_) { background: #8b5cf6; }
  html.aiq-phone .ph-pop-card .ph-pop-grid > *:nth-child(6n+5) > i:not(#_):not(#_):not(#_):not(#_) { background: #06b6d4; }
  html.aiq-phone .ph-pop-card .ph-pop-grid > *:nth-child(6n) > i:not(#_):not(#_):not(#_):not(#_) { background: #ec4899; }
  html.aiq-phone .ph-pop-card .ph-pop-grid > .on:not(#_):not(#_):not(#_):not(#_) { font-weight: 650 !important; background: rgba(42,109,244,.08) !important; }
  html.aiq-phone .ph-pop-card:not(#_):not(#_):not(#_):not(#_) { background: #fafafa !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; opacity: 1 !important; }
  html.aiq-phone[data-theme="dark"] .ph-pop-card:not(#_):not(#_):not(#_):not(#_) { background: #252933 !important; }

  /* the Financials tab opens a page of the stock's sections, not a pop-up (user, 2026-10-29: "just a page, same as Explore") */
  html.aiq-phone .ph-pop:not(#_):not(#_):not(#_):not(#_):not(#_) { position: fixed; inset: 0; z-index: 130; }
  html.aiq-phone .ph-pop-dim:not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone .ph-pop-card:not(#_):not(#_):not(#_):not(#_):not(#_) { position: absolute !important; inset: 0 !important; max-height: none !important; height: auto !important; width: auto !important; margin: 0 !important; overflow-y: auto;
    border-radius: 0 !important; box-shadow: none !important; border: 0 !important; padding: calc(8px + env(safe-area-inset-top)) 16px calc(120px + env(safe-area-inset-bottom)) !important; animation: none !important; }
  /* the navigation page opens with a heading like Explore's: an icon square + the page name, centred (user, 2026-10-29: not the ticker) */
  html.aiq-phone .ph-pop-title:not(#_):not(#_):not(#_) { display: flex; align-items: center; justify-content: center; gap: 10px; box-sizing: content-box; height: 48px; margin-top: 4px; padding: 0 0 10px; }   /* same row as Explore's #ph-th: 48px high, centre 36px from the top */
  html.aiq-phone .ph-pop-title b:not(#_):not(#_):not(#_):not(#_):not(#_) { font-size: 20px; font-weight: 650 !important; color: var(--ph-ink); }
  html.aiq-phone .ph-pop-title i:not(#_):not(#_):not(#_) { width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; font-size: 16px; color: #fff; background: #12b981; }
  /* spacing identical to Explore's list: bare 16px headings (the pop-up kit's own padding came on top), 26px between groups, 56px rows */
  html.aiq-phone .ph-pop-card .ph-pop-h:not(#_):not(#_):not(#_):not(#_):not(#_) { padding: 0 !important; margin: 26px 4px 8px; line-height: 24px; }
  html.aiq-phone .ph-pop-card .ph-pop-title + .ph-pop-h:not(#_):not(#_):not(#_):not(#_):not(#_) { margin-top: 18px; }
  html.aiq-phone .ph-pop-card .ph-pop-grid > *:not(#_):not(#_):not(#_):not(#_):not(#_) { height: 56px; min-height: 56px; box-sizing: border-box; }
  /* the page behind never shows through under the tab bar (a chart's donut peeked out at the bottom) */
  html.aiq-phone .ph-pop.open:not(#_):not(#_):not(#_):not(#_):not(#_) { background: #fafafa; }
  html.aiq-phone[data-theme="dark"] .ph-pop.open:not(#_):not(#_):not(#_):not(#_):not(#_) { background: #252933; }
  html.aiq-phone:has(.ph-pop.open) .app-shell > main > :not(.ph-pop):not(#ph-th):not(#_):not(#_):not(#_) { visibility: hidden; }
  /* landing from another page via the Financials tab: keep the stock's page hidden until the navigation page is up, so it never flashes */
  html.aiq-phone.ph-nav-boot .app-shell > main > :not(.ph-pop):not(#_):not(#_):not(#_) { visibility: hidden !important; }
  /* ...and the navigation page itself is shown by CSS from the first paint, not after the script has found the tab (it took ~1s) */
  html.aiq-phone.ph-nav-boot #ph-pop-fin:not(#_):not(#_):not(#_) { display: block !important; visibility: visible !important; }
  /* on the navigation page the three-bars button has nothing to add (user, 2026-10-29) */
  html.aiq-phone:has(.ph-pop.open) #ph-fin-menu:not(#_):not(#_):not(#_):not(#_), html.aiq-phone:has(.ph-pop.open) #ph-navmenu:not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone .ph-pop-card:not(#_):not(#_):not(#_):not(#_) { padding-top: calc(20px + env(safe-area-inset-top)) !important; }
  /* stock three-bars button only on pages with controls of their own (charts presets, statement period) */
  html.aiq-phone #ph-fin-menu.ph-fm-off:not(#_):not(#_):not(#_) { display: none !important; }
  /* the statements' Period button lives in the three-bars menu now */
  html.aiq-phone .at-period:not(#_):not(#_):not(#_) { display: none !important; }
  /* coloured icon squares in the top-right menus */
  html.aiq-phone #ph-tabmenu .ph-mi:not(#_):not(#_):not(#_) { flex: none; width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; color: #fff; font-size: 17px; margin-right: -4px; }
  html.aiq-phone #ph-tabmenu .ph-mi i:not(#_):not(#_):not(#_) { color: #fff; font-size: 17px; }
  html.aiq-phone #ph-tabmenu button > span:not(#_):not(#_):not(#_) { margin-right: auto; text-align: left; }
  /* My stocks' list table: just Name, Stocks and Today on a phone (user, 2026-10-29: "way too many columns") */
  html.aiq-phone.ph-th-on table.msa-tbl :is(th, td):not(:nth-child(1)):not(:nth-child(3)):not(:nth-child(4)):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-th-on table.msa-tbl col:not(:nth-child(1)):not(:nth-child(3)):not(:nth-child(4)):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  /* Round header buttons sit in from the edges like Attio's (user, 2026-10-29): 20px from the sides, 16px top, 18px gap to the content */
  html.aiq-phone #ph-th:not(#_):not(#_):not(#_) { padding: 16px 20px 18px; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }   /* full bleed: the 20px is from the screen edge whatever the page's own padding */
  html.aiq-phone :is(#ph-fin-menu, #ph-navmenu.ph-nm-fixed):not(#_):not(#_):not(#_) { top: calc(16px + env(safe-area-inset-top)); right: 20px; }
  html.aiq-phone #ph-tabmenu:not(#_):not(#_):not(#_) { top: calc(72px + env(safe-area-inset-top)); right: 20px; }
  html.aiq-phone .ph-pop-title:not(#_):not(#_):not(#_):not(#_) { margin-top: 8px; padding-bottom: 18px; }
}

/* ==== css/aiq-phone-markets-nav.css ==== */
/* Markets view navigation on phones (user picked A, 2026-10-29; markets-phone-nav.js). */
@media (max-width: 767px) {
  html.aiq-phone .mn-trig { display: none; }
  /* the 14 boxed tabs are replaced by one control; View settings keeps only its icon */
  html.aiq-phone .mkad-tabrow { gap: 8px; }
  html.aiq-phone .mkad-tabrow :is(.mkad-tabs, .mkad-tmore) { display: none !important; }
  html.aiq-phone .mkad-tabrow .mkad-blue > :is(span, svg:last-child) { display: none; }
  html.aiq-phone .mkad-tabrow .mkad-blue { width: 40px; padding: 0; justify-content: center; flex: none; }
  html.aiq-phone .mn-trig { display: flex; flex: 1 1 auto; min-width: 0; }
  html.aiq-phone .mn-trig > button { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px 0 8px;
    border: 0; border-radius: 10px; background: rgba(118,118,128,.12); color: var(--ph-ink); font: 600 15px Inter, sans-serif; text-align: left; }
  html.aiq-phone .mn-trig > button > span:not(.ic) { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone .mn-trig em { font: 500 12px Inter, sans-serif; color: var(--ph-mut); font-style: normal; }
  html.aiq-phone .mn-trig > button > i { color: var(--ph-mut); font-size: 13px; }
  /* the sheet */
  html.aiq-phone .mn-sheet .ph-pop-card { bottom: calc(64px + env(safe-area-inset-bottom)); }
  html.aiq-phone .mn-list { display: flex; flex-direction: column; }
  html.aiq-phone .mn-row { display: flex; align-items: center; gap: 12px; height: 44px; padding: 0 8px; border: 0; background: none; color: var(--ph-ink);
    font: 500 16px Inter, sans-serif; text-align: left; border-radius: 10px; }
  html.aiq-phone .mn-row > span:not(.ic) { flex: 1 1 auto; }
  /* the page's colour tile outside #mkad (the sheet lives on body) */
  html.aiq-phone .mn-sheet .ic { flex: none; display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; font-size: 15px;
    background: var(--tb, rgba(118,118,128,.14)); color: var(--tn, var(--ph-mut)); }
  html.aiq-phone .mn-row.on { background: rgba(118,118,128,.12); font-weight: 600; }
  html.aiq-phone .mn-row .ph-bold.ph-check { color: var(--ph-acc); }
}

/* The picker bar never shows on phones: the top-right three-bars button is the navigation (user, 2026-10-29). Done in CSS because
   every view switch re-renders the row, which dropped the .ph-nm-hide class markets() put on it. */
@media (max-width: 767px) {
  html.aiq-phone:is(.ph-nm-on, .ph-th-lite, .ph-th-on) .mkad-tabrow:not(#_):not(#_):not(#_) { display: none !important; }
  /* the view starts below the round button, so its filters never sit under it */
  html.aiq-phone.ph-nm-on:not(.ph-th-lite):not(.ph-th-on) .mkad-body:not(#_):not(#_) { padding-top: 56px; }
}

/* the three-bars dropdown on Markets: colourful icon tiles, same as the view tabs */
@media (max-width: 767px) {
  html.aiq-phone #ph-tabmenu button.mn-mi:not(#_):not(#_) { justify-content: flex-start; gap: 12px; }
  html.aiq-phone #ph-tabmenu button.mn-mi > span:not(.ic):not(#_) { flex: 1 1 auto; text-align: left; }
  html.aiq-phone #ph-tabmenu .mn-mi .ic:not(#_) { flex: none; display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; font-size: 15px;
    background: var(--tb, rgba(118,118,128,.14)); color: var(--tn, var(--ph-mut)); }
}

/* Overview: the index chips sit on the chart's top-left corner instead of a row of their own (user, 2026-10-29) */
@media (max-width: 767px) {
  html.aiq-phone:is(.ph-nm-on, .ph-th-lite, .ph-th-on) #mkad:has(.mkad-r3):not(#_) { position: relative; }
  html.aiq-phone:is(.ph-nm-on, .ph-th-lite, .ph-th-on) #mkad:has(.mkad-r3) .mkad-body:not(#_):not(#_) { padding-top: 0; }
  html.aiq-phone:is(.ph-nm-on, .ph-th-lite, .ph-th-on) #mkad .mkad-r3:not(#_):not(#_):not(#_) { position: absolute; z-index: 5; top: 8px; left: 8px; right: 72px; height: auto; padding: 0; border: 0;
    background: none; pointer-events: none; }
  html.aiq-phone:is(.ph-nm-on, .ph-th-lite, .ph-th-on) #mkad .mkad-r3 .mkad-pchips:not(#_):not(#_) { pointer-events: none; }
  html.aiq-phone:is(.ph-nm-on, .ph-th-lite, .ph-th-on) #mkad .mkad-r3 .mkad-pchip:not(#_):not(#_) { pointer-events: auto; }
}

/* Home and Explore: the header names the page, so their own big titles go */
@media (max-width: 767px) {
  html.aiq-phone.ph-th-lite :is(.hm-title, .ex-title):not(#_):not(#_) { display: none; }
}

@media (max-width: 767px) {
  html.aiq-phone.ph-th-lite .ph-h1-dup:not(#_):not(#_) { display: none !important; }
}

@media (max-width: 767px) {
  html.aiq-phone #ph-th .ph-th-logo:not(#_):not(#_) { flex: none; width: 28px; height: 28px; border-radius: 8px; object-fit: contain; background: #fff; border: 1px solid rgba(118,118,128,.25); padding: 2px; box-sizing: border-box; }
  /* an open investor / Congress member: their photo in place of the section icon (aiq-phone-tablehead.js) */
  html.aiq-phone #ph-th .ph-th-face:not(#_):not(#_) { flex: none; width: 28px; height: 28px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; background: rgba(118,118,128,.12); }
  html.aiq-phone #ph-th .ph-th-t i[hidden]:not(#_):not(#_):not(#_) { display: none; }
}

/* ==== css/aiq-phone-chips.css ==== */
/* Attio's control row under the round-back header on phones (user, 2026-10-29): one round sliders button for the page's filters
   plus at most one round pill (period / week / sort). Built by static/js/aiq-phone-chips.js on Insiders, Congress, Earnings,
   Gov. contracts and an open screen. Phones only, like every aiq-phone-*.css file. */
@media (max-width: 767px) {
  /* full bleed, 20px in from the screen edge like the header. Never tucked under the header (user, 2026-10-29: the buttons'
     tops were cut off): #ph-th paints its own background, so the row starts below it (the header gives up some bottom
     padding instead of the row taking a negative margin) and sits above it */
  html.aiq-phone #ph-cf:not(#_):not(#_):not(#_) { position: relative; z-index: 2; display: flex; align-items: center; gap: 8px;
    margin-top: 0 !important; padding: 2px 20px 14px; overflow: visible;
    margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
  html.aiq-phone.ph-cf-on #ph-th:not(#_):not(#_):not(#_):not(#_) { padding-bottom: 10px; }
  html.aiq-phone #ph-cf[hidden]:not(#_):not(#_):not(#_) { display: none; }
  html.aiq-phone #ph-cf .ph-cf-b:not(#_):not(#_):not(#_) { flex: none; display: inline-flex; align-items: center; justify-content: center; gap: 7px;
    height: 40px; min-width: 40px; padding: 0 15px; border: 0; border-radius: 999px; background: rgba(118,118,128,.12); color: var(--ph-ink);
    font: 500 16px/1 Inter, system-ui, sans-serif; font-variant-numeric: tabular-nums; white-space: nowrap; cursor: pointer;
    -webkit-tap-highlight-color: transparent; }
  html.aiq-phone #ph-cf .ph-cf-b[hidden]:not(#_):not(#_):not(#_) { display: none; }
  html.aiq-phone #ph-cf .ph-cf-b:active:not(#_):not(#_):not(#_) { background: rgba(118,118,128,.22); }
  html.aiq-phone #ph-cf .ph-cf-b i:not(#_):not(#_):not(#_) { font-size: 19px; color: var(--ph-ink); }
  html.aiq-phone #ph-cf .ph-cf-pill:not(#_):not(#_):not(#_) { min-width: 0; max-width: calc(100vw - 40px - 56px); }
  html.aiq-phone #ph-cf .ph-cf-pill span:not(#_):not(#_):not(#_) { overflow: hidden; text-overflow: ellipsis; }
  /* the pill leads with a coloured icon square in the page header's colour, like Attio's green "All Companies" chip; it is
     always there, so the sliders button never sits on a row of its own (user, 2026-10-29) */
  html.aiq-phone #ph-cf .ph-cf-pill:not(#_):not(#_):not(#_) { padding-left: 8px; gap: 8px; }
  html.aiq-phone #ph-cf .ph-cf-sq:not(#_):not(#_):not(#_) { flex: none; width: 26px; height: 26px; border-radius: 7px; display: grid; place-items: center; }
  html.aiq-phone #ph-cf .ph-cf-sq i:not(#_):not(#_):not(#_) { font-size: 16px; color: #fff; }
  /* the sliders button: always just the three lines in a grey circle, no count and no blue (user, 2026-10-29) */
  html.aiq-phone #ph-cf .ph-cf-filter:not(#_):not(#_):not(#_) { width: 40px; padding: 0; }
  html.aiq-phone #ph-cf .ph-cf-filter i:not(#_):not(#_):not(#_) { font-size: 20px; color: var(--ph-ink2); }
  html.aiq-phone[data-theme="dark"] #ph-cf .ph-cf-b:not(#_):not(#_):not(#_) { background: #2e3443; }

  /* the pill's own menu: plain rows with a tick, like the top-right menu */
  html.aiq-phone .ph-cf-menu .aiq-mi i:not(#_) { color: var(--ph-acc); font-size: 17px; }

  /* Insiders: its Filters panel lives inside the toolbar row the phone hides; the row stays out of sight but lets the panel
     (a bottom sheet once open) show */
  html.aiq-phone.ph-cf-ins .ins-bar:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: contents !important; }
  html.aiq-phone.ph-cf-ins .ins-bar > :not(#ins-filt):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-cf-ins #ins-filt:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: contents !important; }
  html.aiq-phone.ph-cf-ins #ins-fbtn:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  /* …as a settings list: name left, value right, one per row; Signal is the header's ≡ menu already */
  html.aiq-phone.ph-cf-ins #ins-pop.ph-sheet:not(#_):not(#_):not(#_) { display: block !important; padding-left: 16px !important; padding-right: 16px !important; }
  html.aiq-phone.ph-cf-ins #ins-pop label:has(#ins-sig):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-cf-ins #ins-pop label:not(.chk):not(#_):not(#_) { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px;
    margin: 0; font-size: 16px; font-weight: 500; color: var(--ph-ink); box-shadow: inset 0 -1px 0 var(--ph-line); }
  html.aiq-phone.ph-cf-ins #ins-pop label select:not(#_):not(#_) { flex: 0 1 auto; width: auto; max-width: 58%; height: 44px; margin: 0; padding: 0 22px 0 0;
    border: 0 !important; background-color: transparent !important; box-shadow: none !important; color: var(--ph-mut) !important; font-size: 16px; text-align: right; text-align-last: right; }
  html.aiq-phone.ph-cf-ins #ins-pop label.chk:not(#_):not(#_) { display: flex; align-items: center; gap: 12px; min-height: 52px; margin: 0; font-size: 16px; color: var(--ph-ink); }
  html.aiq-phone.ph-cf-ins #ins-pop label.chk input:not(#_):not(#_) { width: 22px; height: 22px; }
  html.aiq-phone.ph-cf-ins #ins-pop .ft:not(#_):not(#_) { display: flex; gap: 10px; padding: 10px 0 0; }
  html.aiq-phone.ph-cf-ins #ins-pop .ft .aiq-btn:not(#_):not(#_) { flex: 1 1 0; justify-content: center; min-height: 46px; font-size: 16px; border-radius: 12px; }

  /* One filter sheet (2026-11-10): what the sliders button opens on Insiders, Congress, Earnings and Gov. contracts (and
     the sub-lists opened from it) in the phone pop-up kit's frame (Wealthsimple, user 2026-11-01): grey surface, 32px top
     corners, a big left title, rows grouped in white cards, Done as a black pill over Reset as a white one.
     aiq-phone-chips.js marks the sheet .ph-fsheet and adds .ph-fs-h / .ph-fs-f; the rows are the page's own. */
  html.aiq-phone.aiq-phone[data-theme] .ph-sheet.ph-fsheet:not(#_):not(#__):not(#___) { background: #F4F5F7 !important; padding: 0 16px calc(16px + env(safe-area-inset-bottom)) !important; border-radius: 32px 32px 0 0 !important; }
  html.aiq-phone .ph-fsheet > .ph-fs-h:not(#_):not(#__):not(#___) { display: block; padding: 28px 4px 14px; color: #101112; font: 700 24px/30px Inter, system-ui, sans-serif; letter-spacing: -.02em; text-align: left; }
  html.aiq-phone.aiq-phone[data-theme] .ph-fsheet > :is(.aiq-mi, label, .row):not(#_):not(#__):not(#___) { display: flex !important; align-items: center; gap: 12px; min-height: 52px !important; margin: 0 !important;
    padding: 0 16px !important; border: 0 !important; border-radius: 0 !important; background: #FFFFFF !important; color: #101112 !important; font: 500 16px/20px Inter, system-ui, sans-serif !important;
    box-shadow: inset 0 -1px 0 rgba(15,17,21,.07) !important; }
  html.aiq-phone.aiq-phone[data-theme] .ph-fsheet > .ph-fs-r1:not(#_):not(#__):not(#___) { border-top-left-radius: 20px !important; border-top-right-radius: 20px !important; }
  html.aiq-phone.aiq-phone[data-theme] .ph-fsheet > .ph-fs-rn:not(#_):not(#__):not(#___) { border-bottom-left-radius: 20px !important; border-bottom-right-radius: 20px !important; box-shadow: none !important; }
  html.aiq-phone.aiq-phone[data-theme] .ph-fsheet > :is(.at-menu-h, .aiq-menu-lbl):not(#_):not(#__):not(#___) { margin: 0 !important; padding: 16px 4px 8px !important; background: none !important; color: #80868F !important;
    font: 500 13px/16px Inter, system-ui, sans-serif !important; letter-spacing: 0 !important; text-transform: none !important; }
  html.aiq-phone .ph-fsheet > .aiq-menu-hr:not(#_):not(#__):not(#___) { display: none !important; }
  /* the value on the right in the quiet grey, a chevron after any row that opens a list; no leading icons (Gov. contracts') */
  html.aiq-phone .ph-fsheet .aiq-mi .ct:not(#_):not(#__):not(#___) { margin-left: auto; color: #80868F !important; font-size: 15px !important; }
  html.aiq-phone .ph-fsheet .aiq-mi > svg:first-child:not(#_):not(#__):not(#___) { display: none !important; }
  html.aiq-phone .ph-fsheet .aiq-mi > svg:not(#_):not(#__):not(#___) { flex: none; color: #B4B9C1; }
  html.aiq-phone .ph-fsheet .aiq-mi .ct + svg:not(#_):not(#__):not(#___) { margin-left: 8px !important; }
  html.aiq-phone .ph-fsheet.gm-menu-filter > .aiq-mi::after { content: ""; flex: none; width: 7px; height: 7px; margin: 0 2px 0 6px; border: solid #B4B9C1; border-width: 2px 2px 0 0; transform: rotate(45deg); }
  html.aiq-phone .ph-fsheet .aiq-mi.on:not(#_):not(#__):not(#___) { font-weight: 600 !important; }
  html.aiq-phone .ph-fsheet > .aiq-mi.on:not(:has(svg))::after { content: ""; flex: none; width: 12px; height: 6px; margin: 0 2px 0 auto; border: solid #101112; translate: 0 -2px; border-width: 0 0 2px 2px; transform: rotate(-45deg); }
  html.aiq-phone .ph-fsheet .aiq-mi.on svg:not(#_):not(#__):not(#___) { color: #101112; }
  /* Insiders' selects: the value right-aligned in grey; its own Reset / Done row gives way to the shared one */
  html.aiq-phone.aiq-phone[data-theme] .ph-fsheet > label select:not(#_):not(#__):not(#___) { margin-left: auto !important; color: #80868F !important; }
  html.aiq-phone .ph-fsheet > :is(.ft, .aiq-pop-f, hr):not(#_):not(#__):not(#___) { display: none !important; }
  /* Gov. contracts' sub-lists (#gm-pop): a white search field, the ticked list in one white card, presets as rows */
  html.aiq-phone.aiq-phone[data-theme] .ph-fsheet > .opt:not(#_):not(#__):not(#___) { display: flex !important; align-items: center; min-height: 52px !important; margin: 0 !important; padding: 0 16px !important;
    border: 0 !important; border-radius: 0 !important; background: #FFFFFF !important; color: #101112 !important; font: 500 16px/20px Inter, system-ui, sans-serif !important; box-shadow: inset 0 -1px 0 rgba(15,17,21,.07) !important; text-align: left; }
  html.aiq-phone.aiq-phone[data-theme] .ph-fsheet > .search:not(#_):not(#__):not(#___) { display: block; width: 100% !important; height: 46px !important; margin: 0 0 10px !important; padding: 0 16px !important; box-sizing: border-box;
    border: 0 !important; border-radius: 999px !important; background: #FFFFFF !important; box-shadow: none !important; font-size: 16px !important; }
  html.aiq-phone.aiq-phone[data-theme] .ph-fsheet > .list:not(#_):not(#__):not(#___) { max-height: none !important; border-radius: 20px; background: #FFFFFF !important; overflow: hidden; }
  html.aiq-phone.aiq-phone[data-theme] .ph-fsheet > .list > .opt:not(#_):not(#__):not(#___) { min-height: 52px; padding: 0 16px !important; box-shadow: inset 0 -1px 0 rgba(15,17,21,.07); font-size: 16px !important; }
  html.aiq-phone.aiq-phone[data-theme] .ph-fsheet > .list > .opt:last-child:not(#_):not(#__):not(#___) { box-shadow: none; }
  html.aiq-phone.aiq-phone[data-theme] .ph-fsheet > .ph:not(#_):not(#__):not(#___) { padding: 16px 4px 8px !important; color: #80868F !important; font: 500 13px/16px Inter, system-ui, sans-serif !important; }
  html.aiq-phone .ph-fsheet > .ph-fs-f:not(#_):not(#__):not(#___) { position: sticky; bottom: calc(-16px - env(safe-area-inset-bottom)); display: flex; flex-direction: column; gap: 10px;
    margin: 0; padding: 18px 0 calc(16px + env(safe-area-inset-bottom)); background: #F4F5F7; box-shadow: -16px 0 0 #F4F5F7, 16px 0 0 #F4F5F7; }   /* the grey reaches the sheet's edges over rows scrolling under it */
  html.aiq-phone .ph-fsheet > .ph-fs-f button:not(#_):not(#__):not(#___) { height: 52px; border: 0; border-radius: 999px; font: 600 17px/20px Inter, system-ui, sans-serif; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone .ph-fsheet > .ph-fs-f .ph-fs-done:not(#_):not(#__):not(#___) { background: #101112; color: #FFFFFF; }
  html.aiq-phone .ph-fsheet > .ph-fs-f .ph-fs-reset:not(#_):not(#__):not(#___) { background: #FFFFFF; color: #101112; box-shadow: 0 1px 4px rgba(15,17,21,.08); }
}

/* ==== css/aiq-phone-toggle.css ==== */
/* Overview's 1Y | 5Y | 10Y = Home's range pills (user, 2026-10-29: "ensure the time toggle at the top is in the same
   style too", after the Overview took Home's record look; replaced the underline tabs, B of five drafts): left-aligned
   13px words, the chosen one in a grey capsule, as .hx-rng in phone/_home_hero.html. Loaded by _phone.html, phones only.
   :not(#_) ×9 outranks aiq-phone-attio.css's ×8 rules. tests/test_phone_layout.py */
@media (max-width: 767px) {
  html.aiq-phone .ovs-price .ov-seg:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    display: flex !important; justify-content: flex-start; gap: 4px; margin: 0 !important; padding: 6px 4px 0 !important; border: 0 !important; border-radius: 0 !important;
    background: none !important; box-shadow: none !important; }
  html.aiq-phone .ovs-price .ov-seg .ov-seg-btn:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    flex: none; justify-content: center; height: 30px; padding: 0 12px; border: 0 !important; border-radius: 999px !important; box-shadow: none !important;
    background: none !important; color: var(--ph-mut) !important; font: 600 13px/1 Inter, system-ui, sans-serif !important;
    font-variant-numeric: tabular-nums; letter-spacing: 0; }
  html.aiq-phone .ovs-price .ov-seg .ov-seg-btn.is-on:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    background: rgba(118,118,128,.14) !important; color: var(--ph-ink) !important; }
}

/* The same look on every other phone switch (user, 2026-10-29: "implement this in other areas that need it"), replacing
   the grey round tracks from aiq-phone-fin / -lists / -markets.css: Chart's 1M…MAX + Lin | Log | %, Markets' switches,
   Credit, statements Products | Regions, KPI + Statistics switches, Comparables, the .cg-view switches (Dividends,
   Insiders, Filings), Screener Table | Plot, Superinvestors Table | Pie + returns. Tabs sit on a straight hairline, a
   blue bar under the chosen one, square ends; a switch alone in its row spreads across it. A one-button .kd-seg
   (Labels) stays a plain button, and a switch folded into an "All ▾" dropdown (.at-segpill) is left alone. */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] :is(.aqp-seg, .mk3 .seg, .cr-seg, .stmt-seg-kinds, .kd-words, .kd-seg:not(:has(> button:only-child)), .stx-seg, .cmp-seg, .cg-view, .sc-view-switch, .si-view-switch, .retb-seg):not(:has(> .at-segpill)):not(#_):not(#_):not(#_) {
    display: inline-flex !important; gap: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important;
    background: none !important; box-shadow: inset 0 -1px 0 var(--ph-line) !important; }
  html.aiq-phone[data-theme] :is(.aqp-seg, .mk3 .seg, .cr-seg, .stmt-seg-kinds, .kd-words, .kd-seg:not(:has(> button:only-child)), .stx-seg, .cmp-seg, .cg-view, .sc-view-switch, .si-view-switch, .retb-seg):not(:has(> .at-segpill)) > :is(button, a):not(#_):not(#_):not(#_) {
    flex: 1 0 auto; justify-content: center; min-width: 44px; height: 36px; min-height: 36px; padding: 0 12px !important; border: 0 !important;
    border-radius: 0 !important; background: none !important; box-shadow: none !important; color: var(--ph-mut) !important;
    font-size: 14px !important; font-weight: 500 !important; font-variant-numeric: tabular-nums; text-decoration: none !important; }
  html.aiq-phone[data-theme] :is(.aqp-seg, .mk3 .seg, .cr-seg, .stmt-seg-kinds, .kd-words, .kd-seg:not(:has(> button:only-child)), .stx-seg, .cmp-seg, .cg-view, .sc-view-switch, .si-view-switch, .retb-seg):not(:has(> .at-segpill)) > :is(button, a):is(.on, .is-on, .active, [aria-pressed="true"], [aria-selected="true"]):not(#_):not(#_):not(#_) {
    color: var(--ph-ink) !important; font-weight: 600 !important; box-shadow: inset 0 -2px 0 var(--ph-acc) !important; }
  html.aiq-phone[data-theme] :is(.aqp-seg, .mk3 .seg, .cr-seg, .stmt-seg-kinds, .kd-words, .kd-seg, .stx-seg, .cmp-seg, .cg-view, .sc-view-switch, .si-view-switch, .retb-seg):not(:has(> .at-segpill)) > :is(button, a):not(#_):not(#_):not(#_)::after { display: none !important; }
  /* Page sub-tab rows (user, 2026-10-29: "give the Dividends / Capital structure / Filings sub-tab rows the same blue bar
     and hairline"): .fxd-tabs + Filings' .fd-etabs keep their scrolling text tabs, on one straight hairline with the
     blue bar under the open one. :not(#_) ×8 beats aiq-phone-fin.css's ×7 ink underline. */
  html.aiq-phone[data-theme] main :is(.fxd-tabs, .fd-etabs):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    border: 0 !important; border-radius: 0 !important; background: none !important; box-shadow: inset 0 -1px 0 var(--ph-line) !important;
    align-items: stretch !important; }   /* tabs fill the row, so the bar sits on the hairline */
  html.aiq-phone[data-theme] main :is(.fxd-tabs, .fd-etabs) > button:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    border: 0 !important; border-radius: 0 !important; background: none !important; box-shadow: none !important; margin: 0 !important;
    display: inline-flex !important; align-items: center; height: auto !important; }
  html.aiq-phone[data-theme] main :is(.fxd-tabs, .fd-etabs) > button.on:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    color: var(--ph-ink) !important; font-weight: 600 !important; box-shadow: inset 0 -2px 0 var(--ph-acc) !important; }
  html.aiq-phone[data-theme] main :is(.fxd-tabs, .fd-etabs) > button:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::after { display: none !important; content: none !important; }
  /* the Chart page's bottom bar: the range takes the row, Lin | Log | % keeps its own width */
  html.aiq-phone[data-theme] .aqp-bb #seg-range:not(#_):not(#_):not(#_):not(#_) { flex: 1 1 auto; }
  html.aiq-phone[data-theme] .aqp-bb:not(#_):not(#_):not(#_):not(#_) { gap: 10px; padding: 4px 12px !important; border-top: 0 !important; }
  html.aiq-phone[data-theme] .aqp-bb .aqp-seg > button:not(#_):not(#_):not(#_):not(#_) { min-width: 0; padding: 0 6px !important; }
  html.aiq-phone[data-theme] .aqp-bb .aqp-sp:not(#_):not(#_):not(#_):not(#_) { display: none; }
}

/* ==== css/aiq-phone-flat.css ==== */
/* Phone layout: Home (/today) is flat, like the stock page (user, 2026-10-29: "Switch Home, Explore and
   Account from rounded cards to flat edge-to-edge sections with hairlines"; Explore went back to its rounded cards the
   same day: "The explore page should be reverted. No hairlines."; Account followed it back to Explore's grouped cards
   the same day, aiq-phone-account.css). The rounded outlined groups (.hm-card) lose their box and run to both screen edges; each
   section heading after the first opens with the same full-width 1px var(--ph-edge) line as the stock page's blocks.
   Rows inside a group keep their inset dividers. Home's index tiles (.hx-chip) are plain figures split by hairlines.
   The pages sit 16px in from each edge (main 12px + the page's 4px), hence the -16px margins. */
@media (max-width: 767px) {
  html.aiq-phone[data-theme] main :is(.hm-card):not(#_):not(#_):not(#_) {
    margin-left: -16px !important; margin-right: -16px !important; border: 0 !important; border-radius: 0 !important;
    box-shadow: none !important; outline: 0 !important; }
  html.aiq-phone[data-theme] main :is(.hm-card):not(#_):not(#_):not(#_) { background: transparent !important; }
  html.aiq-phone[data-theme] main :is(.hm-card):not(#_):not(#_):not(#_)::after { display: none !important; }

  /* rows keep 16px from the screen edge, as the page text does */
  html.aiq-phone[data-theme] main :is(.hm-row, .hm-news a):not(#_):not(#_):not(#_) { padding-left: 16px !important; padding-right: 16px !important; }
  html.aiq-phone[data-theme] main .hm-sec a:not(#_):not(#_):not(#_) { padding-left: 16px !important; padding-right: 16px !important; }

  /* one full-width hairline above every section heading but the first */
  html.aiq-phone[data-theme] main .hm-h:not(#_):not(#_):not(#_) { position: relative; margin-top: 16px !important; padding-top: 18px !important; }
  html.aiq-phone[data-theme] main .hm-h:not(#_):not(#_):not(#_)::before { content: ""; position: absolute; top: 0; left: 50%;
    width: 100vw; margin-left: -50vw; height: 1px; background: var(--ph-edge); pointer-events: none; }

  /* Home's Dow / Nasdaq / Russell / VIX tiles: no grey boxes, a hairline between figures */
  html.aiq-phone[data-theme] main .hx-chip:not(#_):not(#_):not(#_) { background: none !important; border-radius: 0 !important; padding: 2px 14px !important; }
  html.aiq-phone[data-theme] main .hx-chip:first-child:not(#_):not(#_):not(#_) { padding-left: 0 !important; }
  html.aiq-phone[data-theme] main .hx-chip + .hx-chip:not(#_):not(#_):not(#_) { border-left: 1px solid var(--ph-edge) !important; }
}

/* ==== css/aiq-phone-record.css ==== */
/* Record pages on phones (user, 2026-10-29, from Attio's iOS company record): icon + label tab row with the open tab in
   a grey capsule, "Highlights" two-column cards, grouped details list. Built by js/aiq-phone-record.js; first on
   Congress member pages. docs/features/phone.md "Record pages". */
@media (max-width: 767px) {
  html.aiq-phone {
    --rc-card: #FFFFFF; --rc-sep: rgba(15,17,21,.07);   /* white cards on the grey page (the finance look, 2026-11-01) */ --rc-line: #ECECF0; --rc-cap: #EFEFF2; --rc-capline: #E3E3E8; --rc-ink: #101112; --rc-mut: #8A8F98; --rc-ic: #A3A8B2;
    --rc-head: #6F737B;
  }
  html.aiq-phone[data-theme="dark"] {
    --rc-card: rgba(255,255,255,.045); --rc-sep: rgba(255,255,255,.06); --rc-line: rgba(255,255,255,.08); --rc-cap: rgba(255,255,255,.09); --rc-capline: rgba(255,255,255,.08);
    --rc-ink: #F1F2F4; --rc-mut: #9AA2B4; --rc-ic: #8790A3; --rc-head: #9AA2B4;
  }
  html.aiq-phone #ph-rtabs i, html.aiq-phone .ph-rov i { font-family: "Phosphor-Regular" !important; }

  /* ── tab row: scrolls sideways, the open tab sits in a grey capsule ── */
  html.aiq-phone #ph-rtabs { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; margin: 2px 0 4px; padding: 4px 12px;
    --rt-l: 28px; --rt-r: 28px;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--rt-l), #000 calc(100% - var(--rt-r)), transparent);
    mask-image: linear-gradient(90deg, transparent, #000 var(--rt-l), #000 calc(100% - var(--rt-r)), transparent); }
  html.aiq-phone #ph-rtabs::-webkit-scrollbar { display: none; }
  html.aiq-phone #ph-rtabs.ph-rt-start { --rt-l: 0px; }
  html.aiq-phone #ph-rtabs.ph-rt-end { --rt-r: 0px; }
  html.aiq-phone #ph-rtabs button { flex: none; display: inline-flex; align-items: center; gap: 7px; height: 40px; padding: 0 14px; border-radius: 999px;
    border: 1px solid transparent; background: none; color: var(--rc-mut); font: 500 16px/1 Inter, system-ui, sans-serif; }
  html.aiq-phone #ph-rtabs button i { font-size: 19px; }
  html.aiq-phone #ph-rtabs button.on { background: var(--rc-cap); border-color: var(--rc-capline); color: var(--rc-ink); font-weight: 600; }

  /* ── section heading: muted title, optional "See all" on the right ── */
  html.aiq-phone .ph-rh { display: flex; align-items: baseline; justify-content: space-between; margin: 22px 4px 10px; color: var(--rc-head); font-size: 17px; font-weight: 450; }
  html.aiq-phone .ph-rh:first-child { margin-top: 10px; }
  html.aiq-phone .ph-rh button { background: none; border: 0; color: var(--rc-head); font: inherit; padding: 0; }

  /* ── Highlights: two columns of cards, label + icon on top, value at the bottom ── */
  html.aiq-phone .ph-rcards { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 10px; }
  html.aiq-phone .ph-rcard { display: flex; flex-direction: column; justify-content: space-between; gap: 22px; min-height: 104px; padding: 14px 14px 13px;
    background: var(--rc-card); border: 0; border-radius: 18px; }
  html.aiq-phone .ph-rcard .l { display: flex; align-items: flex-start; justify-content: space-between; gap: 6px; color: var(--rc-mut); font-size: 14px; line-height: 1.25; }
  html.aiq-phone .ph-rcard .l span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone .ph-rcard .l i { flex: none; font-size: 18px; color: var(--rc-ic); }
  html.aiq-phone .ph-rcard .v { color: var(--rc-ink); font-size: 19px; font-weight: 600; letter-spacing: -.01em; font-variant-numeric: tabular-nums;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone .ph-rcard .v.mut, html.aiq-phone .ph-rov .mut { color: var(--rc-mut); font-weight: 450; }

  /* ── grouped list: icon · label · value · chevron, hairlines inset past the icon ── */
  /* filled, borderless cards like My stocks' (.pc-r, user 2026-11-01: align every page with My stocks and Markets) */
  html.aiq-phone .ph-rlist { background: var(--rc-card); border: 0; border-radius: 18px; overflow: hidden; }
  html.aiq-phone .ph-rrow { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 54px; padding: 0 14px 0 16px; position: relative;
    background: none; border: 0; color: var(--rc-ink); font: 400 16px/1.3 Inter, system-ui, sans-serif; text-align: left; text-decoration: none; }
  html.aiq-phone .ph-rrow + .ph-rrow::before { content: ""; position: absolute; top: 0; left: 52px; right: 0; border-top: 1px solid var(--rc-sep); }
  html.aiq-phone .ph-rrow > i:first-child { flex: none; width: 24px; font-size: 21px; color: var(--rc-ink); text-align: center; }
  html.aiq-phone .ph-rrow .lg { flex: none; width: 24px; height: 24px; display: grid; place-items: center; }
  html.aiq-phone .ph-rrow .lg :is(img, .lt) { width: 24px; height: 24px; border-radius: 6px; object-fit: contain; background: #fff; }
  html.aiq-phone .ph-rrow .lg .lt { display: grid; place-items: center; background: var(--rc-cap); color: var(--rc-mut); font-size: 12px; font-weight: 600; }
  html.aiq-phone .ph-rrow .k { flex: none; }
  html.aiq-phone .ph-rrow .val { flex: 1; min-width: 0; text-align: right; color: var(--rc-mut); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-variant-numeric: tabular-nums; }
  html.aiq-phone .ph-rrow .val .acc { color: var(--ph-acc, #455DDC); }
  html.aiq-phone .ph-rrow .cv { flex: none; font-size: 15px; color: var(--rc-ic); }
  html.aiq-phone .ph-rrow:active { background: var(--rc-cap); }

  html.aiq-phone .ph-rrow .dot { flex: none; width: 10px; height: 10px; margin: 0 7px; border-radius: 50%; }
  html.aiq-phone .ph-rtext { padding: 14px 16px; background: var(--rc-card); border: 1px solid var(--rc-line); border-radius: 18px;
    color: var(--rc-ink); font-size: 15px; line-height: 1.5; }
  html.aiq-phone .ph-rov .pos { color: var(--tb-pos, #0d8a66); }
  html.aiq-phone .ph-rov .neg { color: var(--tb-neg, #c8203f); }

  /* soft tinted pills (Attio's "$1M–$10M") */
  html.aiq-phone .ph-rpill { display: inline-block; padding: 3px 10px; border-radius: 8px; font-size: 15px; font-weight: 500; line-height: 1.3; }
  html.aiq-phone .ph-rpill.blue { background: #E8EEFF; color: #2F4BD0; }
  html.aiq-phone .ph-rpill.rose { background: #FDE8EC; color: #C8203F; }
  html.aiq-phone .ph-rpill.violet { background: #F1E8FE; color: #7A33D6; }
  html.aiq-phone[data-theme="dark"] .ph-rpill.blue { background: rgba(69,93,220,.22); color: #A9B8FF; }
  html.aiq-phone[data-theme="dark"] .ph-rpill.rose { background: rgba(247,52,99,.18); color: #FF8FA8; }
  html.aiq-phone[data-theme="dark"] .ph-rpill.violet { background: rgba(150,70,239,.2); color: #CDA8FF; }
  html.aiq-phone .ph-rcard .v .ph-rpill { font-size: 17px; }

  /* ── Overview pane vs the page's own panes ── */
  html.aiq-phone .ph-rov { display: none; padding: 0 16px 24px; }
  html.aiq-phone.ph-rov-on .ph-rov { display: block; }
  html.aiq-phone.ph-rov-on .cgx [data-cgx-pane]:not(#_) { display: none !important; }
  html.aiq-phone:not(.ph-rhold) #cgx-tabdd:not(#_) { visibility: hidden; }

  /* Superinvestor: Overview hides the swapped view; the "Holdings ⌄" (Table / Pie) button only on Holdings */
  html.aiq-phone.ph-rov-on #si-content:not(#_) { display: none !important; }
  html.aiq-phone:not(.ph-rhold) #si-tabdd:not(#_):not(#_) { display: none !important; }
  html.aiq-phone .si-main > #ph-rtabs { margin-top: 6px; }
  /* counts on a tab (My stocks: "Why it moved 2") */
  html.aiq-phone #ph-rtabs button em { font-style: normal; font-weight: 500; font-size: 13px; color: var(--rc-mut); margin-left: -2px; }
  /* a locked (Pro) figure */
  html.aiq-phone .ph-rpill.lock { background: var(--rc-cap); color: var(--rc-mut); }
  html.aiq-phone .ph-rpill.lock i { margin-right: 4px; font-size: .9em; }
  html.aiq-phone .ph-rrow .lg.av { border-radius: 50%; overflow: hidden; background: var(--rc-cap); color: var(--rc-mut); font-size: 10px; font-weight: 600; }
  html.aiq-phone .ph-rrow .lg.av img { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; }

  /* My stocks list: the record row replaces the ≡ Views menu */
  html.aiq-phone.ph-rtabs-ms #ph-th .ph-th-menu:not(#_) { visibility: hidden !important; }
  html.aiq-phone.ph-rtabs-ms #ph-rtabs { margin: 0 0 6px; }

  /* Paper / creator portfolio (/p/…): the header, crumb, donut card and the page's tab row give way to the record */
  html.aiq-phone.ph-rec #pp > :is(.pp-crumb, .pp-head, .pp-row, .pp-tabs):not(#_) { display: none !important; }
  html.aiq-phone.ph-rec #pp #pp-strip:not(#_) { display: none !important; }   /* the Highlights cards hold the same figures */
  html.aiq-phone.ph-rov-on #pp [data-panel]:not(#_) { display: none !important; }
  html.aiq-phone.ph-rec #pp > #ph-rtabs { margin: 0 -16px 4px; }
  html.aiq-phone.ph-rec #pp > #ph-rov { margin: 0 -16px; }
  html.aiq-phone #ph-pp-perf { margin-top: 22px; }
  html.aiq-phone #ph-pp-perf > .card { margin: 0; border-radius: 18px; }
  /* Holdings: the name column shrank to a letter a line (360px); ticker over name, one line each, the table scrolls */
  html.aiq-phone #pp-holdings:not(#_) { overflow-x: auto; }
  html.aiq-phone #pp-holdings .pp-tb .pp-tk:not(#_) { white-space: nowrap; }
  html.aiq-phone #pp-holdings .pp-tb .pp-tk > div:not(#_) { flex-direction: column; align-items: flex-start; gap: 1px; }   /* name under the ticker */
  html.aiq-phone #pp-holdings .pp-tb .pp-tk > div > span:not(#_) { display: block; max-width: 132px; overflow: hidden; text-overflow: ellipsis; font-size: 12px; }

  /* Model portfolio (/portfolios/models/…): Overview, or one back-test pane at a time */
  html.aiq-phone.ph-rec #pa > :is(.pp-crumb, .pp-head, .pm-rules):not(#_) { display: none !important; }
  html.aiq-phone.ph-rec #pa [data-ph-pane]:not(.ph-on):not(#_) { display: none !important; }
  html.aiq-phone.ph-rec #pa :is(.pa-row, .pa-row2):not(#_) { display: block !important; }
  html.aiq-phone.ph-rec #pa [data-ph-pane].ph-on + [data-ph-pane].ph-on { margin-top: 12px; }
  html.aiq-phone.ph-rov-on #pa > .pp-disc:not(#_) { display: none !important; }
  html.aiq-phone.ph-rec #pa > #ph-rtabs { margin: 0 -16px 4px; }
  html.aiq-phone.ph-rec #pa > #ph-rov { margin: 0 -16px; }

  /* the desktop Attio layer bleeds the Activity table 20px into the panel's padding, which phones don't have: it sat 20px off the left edge */
  html.aiq-phone .si-act-box:not(#_):not(#_):not(#_) { margin: 0 !important; }

  /* List pages (Congress, Insiders, Earnings, Gov. contracts, My screens): their views as the record tab row under the header
     (js/aiq-phone-record.js listViews). The top-right menu only held those views there, so it goes (kept in the layout so
     the title stays centred); an open screen keeps its menu (Edit criteria, paging). */
  html.aiq-phone.ph-lt-on #ph-navmenu:not(#_):not(#_) { visibility: hidden; pointer-events: none; }
  html.aiq-phone #ph-rtabs.ph-lt { margin: 0 0 6px; }
  html.aiq-phone #ph-rtabs.ph-lt[hidden] { display: none; }
  /* a stock's "who owns it" view on Superinvestors: the header shows the company logo, a rounded square */
  html.aiq-phone #ph-th .ph-th-face.ph-th-sq:not(#_):not(#_) { border-radius: 7px; object-fit: contain; background: #fff; box-shadow: inset 0 0 0 1px rgba(0,0,0,.06); }
  /* Superinvestor Analytics on phones: the record version (#ph-ran) instead of ~20 desktop cards; "Full analytics" brings them back */
  html.aiq-phone #ph-ran { display: none; }
  html.aiq-phone.ph-ran:not(.ph-ran-all) #ph-ran { display: block; padding: 0 16px 24px; }
  html.aiq-phone.ph-ran:not(.ph-ran-all) #si-content :is(.si-analytics, .si-insight):not(#_) { display: none !important; }
  html.aiq-phone.ph-ran #ph-ran .ph-rh:first-child { margin-top: 0; }
  html.aiq-phone #ph-ran > .ph-rlist:last-child { margin-top: 20px; }
  html.aiq-phone #ph-ran .pos { color: var(--tb-pos, #0d8a66); }
  html.aiq-phone #ph-ran .neg { color: var(--tb-neg, #c8203f); }
  html.aiq-phone .ph-rrow .val .ph-rvs { margin-left: 6px; color: var(--rc-mut); font-size: 13px; font-variant-numeric: tabular-nums; }

  /* ── second set (user, 2026-10-29): Supply chain, Support request, Gov. contract pop-up, Insiders company ── */
  html.aiq-phone .ph-rpill.grey { background: #EFEFF2; color: #5E636E; }
  html.aiq-phone[data-theme="dark"] .ph-rpill.grey { background: rgba(255,255,255,.09); color: #C2C8D4; }
  html.aiq-phone .ph-rnote { margin: 8px 4px 0; color: var(--rc-mut); font-size: 13px; line-height: 1.4; }
  html.aiq-phone .ph-rtext.mut { color: var(--rc-mut); }
  html.aiq-phone .ph-rall { display: block; width: 100%; margin-top: 4px; padding: 12px; background: none; border: 0; color: var(--ph-acc, #455DDC); font: 500 15px/1 Inter, system-ui, sans-serif; }

  /* Supply chain: the Lists view's sub line + Suppliers/Customers toggle are now the Overview's details + the tab row */
  html.aiq-phone.ph-rsc #ph-sc .psc-sub:not(#_), html.aiq-phone.ph-rsc #ph-sc .psc-seg:not(#_) { display: none !important; }
  html.aiq-phone.ph-rsc.ph-rov-on #ph-sc:not(#_) { display: none !important; }
  html.aiq-phone.ph-rsc .scx #ph-rtabs { margin-top: 6px; }
  /* no company search on phones (user, 2026-10-29): the company sits on one centred line under the header, as on a stock
     page (aiq-phone-fin.css .at-ft-id): logo · name · price · day % */
  html.aiq-phone.ph-rsc #sca-pick:not(#_):not(#_) { display: none !important; }
  html.aiq-phone .ph-sc-id { display: flex; align-items: baseline; justify-content: center; gap: 8px; padding: 0 16px; margin: -18px 0 6px; white-space: nowrap; }   /* tucked under the title, as on a stock page */
  html.aiq-phone .ph-sc-id img { width: 18px; height: 18px; border-radius: 4px; align-self: center; margin-right: -2px; object-fit: contain; background: #fff; }
  html.aiq-phone .ph-sc-id .nm { min-width: 0; overflow: hidden; text-overflow: ellipsis; font-size: 14px; line-height: 18px; font-weight: 500; color: var(--rc-mut); }
  html.aiq-phone .ph-sc-id .p { flex: none; font-size: 14px; line-height: 18px; font-weight: 650; color: var(--rc-ink); font-variant-numeric: tabular-nums; }
  html.aiq-phone .ph-sc-id .c { flex: none; font-size: 12.5px; line-height: 18px; font-weight: 500; font-variant-numeric: tabular-nums; }
  html.aiq-phone .ph-sc-id .c.pos { color: var(--tb-pos, #0d8a66); }
  html.aiq-phone .ph-sc-id .c.neg { color: var(--tb-neg, #c8203f); }
  /* Suppliers / Customers as one grouped list (user, 2026-10-29, Attio's Record Details): inset card, logo · name over the
     share · $ · chevron, hairlines inset past the logo */
  html.aiq-phone.ph-rsc .sca-left:not(#_):not(#_):not(#_):not(#_) { border-bottom: 0; }   /* the desktop panel's rule showed as a stray line under the list */
  html.aiq-phone.ph-rsc #ph-sc:not(#_):not(#_):not(#_):not(#_) { margin: 10px 16px 24px; background: var(--rc-card); border: 1px solid var(--rc-line); border-radius: 18px; overflow: hidden; }
  html.aiq-phone.ph-rsc #ph-sc .psc-r:not(#_):not(#_):not(#_):not(#_) { gap: 12px; min-height: 64px; padding: 10px 14px 10px 16px; border-bottom: 0; color: var(--rc-ink); }
  html.aiq-phone.ph-rsc #ph-sc .psc-r + .psc-r:not(#_):not(#_):not(#_):not(#_)::before { content: ""; position: absolute; top: 0; left: 52px; right: 0; border-top: 1px solid var(--rc-line); }
  html.aiq-phone.ph-rsc #ph-sc .psc-r:active:not(#_):not(#_):not(#_):not(#_) { background: var(--rc-cap); }
  html.aiq-phone #ph-sc .psc-lg:not(#_):not(#_):not(#_):not(#_) { flex: none; width: 24px; height: 24px; display: grid; place-items: center; border-radius: 6px; background: #fff; overflow: hidden; }
  html.aiq-phone #ph-sc .psc-lg img:not(#_):not(#_):not(#_):not(#_) { width: 24px; height: 24px; object-fit: contain; }
  html.aiq-phone #ph-sc .psc-lg > b:not(#_):not(#_):not(#_):not(#_) { width: 100%; height: 100%; display: grid; place-items: center; background: var(--rc-cap); color: var(--rc-mut); font-size: 12px; font-weight: 600; }
  html.aiq-phone #ph-sc .psc-lg.an:not(#_):not(#_):not(#_):not(#_) { background: var(--rc-cap); color: var(--rc-mut); }
  html.aiq-phone #ph-sc .psc-lg.an i:not(#_):not(#_):not(#_):not(#_) { font-family: "Phosphor-Regular" !important; font-size: 15px; }
  html.aiq-phone.ph-rsc #ph-sc .psc-l b:not(#_):not(#_):not(#_):not(#_) { font-size: 16px; font-weight: 500; }
  html.aiq-phone.ph-rsc #ph-sc .psc-l b i:not(#_):not(#_):not(#_):not(#_) { margin-left: 6px; font-size: 12px; font-weight: 500; opacity: 1; color: var(--rc-mut); }
  html.aiq-phone.ph-rsc #ph-sc .psc-l small:not(#_):not(#_):not(#_):not(#_) { margin-top: 3px; opacity: 1; color: var(--rc-mut); }
  html.aiq-phone.ph-rsc #ph-sc .psc-v:not(#_):not(#_):not(#_):not(#_) { font-size: 15px; font-weight: 500; color: var(--rc-ink); }
  html.aiq-phone.ph-rsc #ph-sc .psc-v.mut:not(#_):not(#_):not(#_):not(#_) { color: var(--rc-mut); }
  html.aiq-phone #ph-sc .psc-cv:not(#_):not(#_):not(#_):not(#_) { flex: none; margin-left: -4px; font-family: "Phosphor-Regular" !important; font-size: 15px; color: var(--rc-ic); }
  html.aiq-phone.ph-rsc #ph-sc .psc-empty:not(#_):not(#_):not(#_):not(#_) { padding: 18px 16px; opacity: 1; color: var(--rc-mut); }

  /* Support request: header + breadcrumb become the Overview; the side Details card is the Overview */
  html.aiq-phone.ph-rtk .sp-crumb:not(#_), html.aiq-phone.ph-rtk .sp-tk-head:not(#_), html.aiq-phone.ph-rtk .sp-side:not(#_) { display: none !important; }
  html.aiq-phone.ph-rtk.ph-rov-on .sp-tk-grid:not(#_) { display: none !important; }
  html.aiq-phone.ph-rtk .sp:not(#_) { padding-top: 0; }
  html.aiq-phone.ph-rtk .sp > #ph-rtabs { margin: 2px -28px 4px; }   /* main's 12px + .sp's 16px: the row runs edge to edge, the Overview keeps a 16px gutter */
  html.aiq-phone.ph-rtk .sp > .ph-rov { margin: 0 -12px; padding: 0 0 24px; }

  /* Gov. contract pop-up: the page's own body hides, the record version shows */
  html.aiq-phone #gm-dbody.ph-gm > :not(.ph-rgm) { display: none !important; }
  html.aiq-phone #gm-dbody .ph-rgm { display: block; padding: 0 0 6px; }
  html.aiq-phone .ph-rgm .ph-rh:first-child { margin-top: 2px; }
  html.aiq-phone .ph-rgm .ph-rcard { min-height: 92px; }
  html.aiq-phone .ph-rgm .ph-rcard .v { font-size: 17px; }   /* the dialog is 24px narrower than the page: "Oct 16, 2026" fits at 360 */
  html.aiq-phone .ph-rrow .val img.flag, html.aiq-phone .ph-rrow .lg img.flag { width: 20px; height: 14px; border-radius: 3px; object-fit: cover; background: none; vertical-align: -2px; }

  /* Insiders company record: everything else in the page hides while it's open */
  html.aiq-phone #ph-irec { display: none; }
  html.aiq-phone.ph-irec #ph-irec { display: block; }
  html.aiq-phone.ph-irec .app-shell > main > :not(#ph-th):not(#ph-irec):not(#_) { display: none !important; }
  html.aiq-phone.ph-irec #ph-th .ph-th-menu { visibility: hidden; }
  html.aiq-phone.ph-irec #ph-th .ph-th-t > :not(.ph-irec-h):not(#_) { display: none !important; }
  html.aiq-phone[data-theme="dark"] .ph-ichart { --warn: #FF862E; }
  html.aiq-phone .ph-ichart svg.vz { display: block; width: 100%; height: 100%; overflow: visible; font-family: Inter, system-ui, sans-serif; font-variant-numeric: tabular-nums; }
  html.aiq-phone #ph-th .ph-irec-h:not(#_) { display: none; }
  html.aiq-phone.ph-irec #ph-th .ph-irec-h:not(#_) { display: block; }
  html.aiq-phone.ph-irec #ph-th span.ph-irec-h { min-width: 0; font-size: 20px; font-weight: 650; color: var(--ph-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone #ph-irec .ph-rov { display: block; }
  html.aiq-phone.ph-ibuys-on #ph-irec .ph-rov { display: none; }
  html.aiq-phone #ph-irec .ph-ibuys { display: none; margin: 10px 16px 24px; background: var(--rc-card); border: 1px solid var(--rc-line); border-radius: 18px; overflow: hidden; }
  html.aiq-phone.ph-ibuys-on #ph-irec .ph-ibuys { display: block; }
  html.aiq-phone .ph-ibuy { display: flex; align-items: center; gap: 12px; min-height: 60px; padding: 9px 16px; position: relative; color: var(--rc-ink); text-decoration: none; }
  html.aiq-phone .ph-ibuy + .ph-ibuy::before { content: ""; position: absolute; top: 0; left: 16px; right: 0; border-top: 1px solid var(--rc-line); }
  html.aiq-phone .ph-ibuy .l { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
  html.aiq-phone .ph-ibuy .l b { font-size: 16px; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone .ph-ibuy .l small { color: var(--rc-mut); font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-variant-numeric: tabular-nums; }
  html.aiq-phone .ph-ibuy .v { flex: none; font-size: 16px; font-weight: 600; font-variant-numeric: tabular-nums; }
  html.aiq-phone .ph-ibuy:active { background: var(--rc-cap); }
  html.aiq-phone .ph-ichart { --vz-blue: #455DDC; --vz-ink: var(--rc-ink); --vz-mute: var(--rc-mut); --pos: var(--tb-pos, #0d8a66); --warn: #c25e12; --bg: var(--rc-card);   /* the page sets these on .ins, which the record sits outside */
    padding: 10px 8px 4px; background: var(--rc-card); border: 1px solid var(--rc-line); border-radius: 18px; }
  html.aiq-phone .ph-ichart .ins-dt-chart:not(#_) { height: 200px; border: 0; background: none; padding: 0 4px; }

  /* My stocks list → Analytics (Summary · Risk · Stocks · Valuation & income · Factors) in the record look (user,
     2026-10-29): capsule sub-row, muted section headings, 18px cards, two-column highlight cards, tables as grouped
     lists; wide tables scroll inside their card and fade on the side that has more (js: myStocks() → fades()). */
  html.aiq-phone .msa-drill .ta.ta-rec:not(#_):not(#_) { display: block; padding: 2px 16px 28px; }
  html.aiq-phone .msa-drill .ta-rec .ta-sub:not(#_):not(#_) { display: flex; gap: 4px; margin: 0 -16px 2px; padding: 2px 16px; overflow-x: auto; scrollbar-width: none; }
  html.aiq-phone .msa-drill .ta-rec .ta-sub::-webkit-scrollbar { display: none; }
  html.aiq-phone .msa-drill .ta-rec .ta-sub button:not(#_):not(#_) { flex: none; height: 34px; padding: 0 13px; border-radius: 999px; white-space: nowrap;
    border: 1px solid transparent; background: none; box-shadow: none; color: var(--rc-mut); font: 500 15px/1 Inter, system-ui, sans-serif; }
  html.aiq-phone .msa-drill .ta-rec .ta-sub button.on:not(#_):not(#_) { background: var(--rc-cap); border-color: var(--rc-capline); color: var(--rc-ink); font-weight: 600; }
  html.aiq-phone .msa-drill .ta-rec > .ta-p:not(#_):not(#_) { margin: 22px 0 0; min-width: 0; }
  html.aiq-phone .msa-drill .ta-rec > .ta-sub + .ta-p:not(#_):not(#_), html.aiq-phone .msa-drill .ta-rec > .ta-sub + .ta-cards:not(#_):not(#_) { margin-top: 12px; }
  html.aiq-phone .msa-drill .ta-rec .ta-p > header:not(#_):not(#_) { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; margin: 0 4px 10px; }
  html.aiq-phone .msa-drill .ta-rec .ta-p > header h3:not(#_):not(#_) { font: 450 17px/1.3 Inter, system-ui, sans-serif !important; color: var(--rc-head); margin: 0;
    max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone .msa-drill .ta-rec .ta-p > header .r:not(#_):not(#_) { margin: 0; align-self: flex-start; text-align: left; justify-content: flex-start;
    font: 400 13px/1.35 Inter, system-ui, sans-serif; color: var(--rc-mut); max-width: 100%;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone .msa-drill .ta-rec .ta-p > header .r .mute { color: inherit; }
  /* !important + five ids: aiq-phone-people.css strips the card off any box that holds a table directly (that left
     Period returns / Concentration / Risk & return as bare tables) */
  html.aiq-phone .msa-drill .ta-rec .ta-p > .b:not(#_):not(#_):not(#_):not(#_):not(#_) { padding: 0 16px; background: var(--rc-card) !important;
    border: 1px solid var(--rc-line) !important; border-radius: 18px !important; outline: 0; box-shadow: none !important; overflow-x: auto; }
  /* tables = grouped list rows */
  html.aiq-phone .msa-drill .ta-rec .ta-t:not(#_):not(#_) { width: 100%; font: 400 15px/1.3 Inter, system-ui, sans-serif; color: var(--rc-ink); border: 0; }
  html.aiq-phone .msa-drill .ta-rec .ta-t th:not(#_):not(#_) { height: 38px; padding: 0 8px; background: none; border: 0; border-bottom: 1px solid var(--rc-line);
    font: 500 13px/1.25 Inter, system-ui, sans-serif; color: var(--rc-mut); white-space: nowrap; }
  html.aiq-phone .msa-drill .ta-rec .ta-t td:not(#_):not(#_) { height: 48px; padding: 0 8px; background: none; border: 0; border-bottom: 1px solid var(--rc-line);
    font-weight: 500; color: var(--rc-ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
  html.aiq-phone .msa-drill .ta-rec .ta-t td:first-child:not(#_):not(#_) { font-weight: 400; color: var(--rc-ink); padding-left: 0; white-space: normal; min-width: 96px; }
  html.aiq-phone .msa-drill .ta-rec .ta-t th:first-child:not(#_):not(#_) { padding-left: 0; }
  html.aiq-phone .msa-drill .ta-rec .ta-t :is(td, th):last-child:not(#_):not(#_) { padding-right: 0; }
  html.aiq-phone .msa-drill .ta-rec .ta-t tr:last-child td:not(#_):not(#_) { border-bottom: 0; }
  html.aiq-phone .msa-drill .ta-rec .ta-t td em:not(#_) { display: block; margin: 1px 0 0; font-size: 12px; color: var(--rc-mut); max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone .msa-drill .ta-rec .ta-t.heat td:not(#_):not(#_) { height: 40px; font-size: 13px; text-align: center; border-bottom: 2px solid var(--rc-card); }
  html.aiq-phone .msa-drill .ta-rec .ta-t.heat td:first-child:not(#_):not(#_) { text-align: left; min-width: 0; }
  html.aiq-phone .msa-drill .ta-rec .ta-t td.pos:not(#_):not(#_):not(#_), html.aiq-phone .msa-drill .ta-rec .pos:not(#_) { color: var(--tb-pos, #0d8a66); }
  html.aiq-phone .msa-drill .ta-rec .ta-t td.neg:not(#_):not(#_):not(#_), html.aiq-phone .msa-drill .ta-rec .neg:not(#_) { color: var(--tb-neg, #c8203f); }
  /* the phone tables' frozen first column (.ph-c1, aiq-phone-tablehead.js) painted a darker strip inside the card; heat-map cells keep their inline colour */
  html.aiq-phone .msa-drill .ta-rec .ta-t :is(td, th):not([style*="background"]):not(#_):not(#_):not(#_):not(#_):not(#_) { background-color: transparent !important; box-shadow: none !important; }
  html.aiq-phone .msa-drill .ta-rec .ta-scroll:not(#_) { overflow-x: auto; margin: 0 -16px; padding: 0 16px; scrollbar-width: none; }
  html.aiq-phone .msa-drill .ta-rec .ta-scroll::-webkit-scrollbar { display: none; }
  /* a box that scrolls sideways fades on the side with more to see (no sliced edge) */
  html.aiq-phone .msa-drill .ta-rec .ph-fx { --fx-l: 0px; --fx-r: 0px;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--fx-l), #000 calc(100% - var(--fx-r)), transparent);
    mask-image: linear-gradient(90deg, transparent, #000 var(--fx-l), #000 calc(100% - var(--fx-r)), transparent); }
  html.aiq-phone .msa-drill .ta-rec .ph-fx.ph-fx-l { --fx-l: 24px; }
  html.aiq-phone .msa-drill .ta-rec .ph-fx.ph-fx-r { --fx-r: 32px; }
  /* charts and text inside a card */
  html.aiq-phone .msa-drill .ta-rec .ta-ch:not(#_) { height: 190px; margin: 0 0 12px; }
  html.aiq-phone .msa-drill .ta-rec .ta-rd:not(#_) { display: flex; flex-wrap: wrap; gap: 4px 12px; padding: 12px 0 6px; font-size: 13px; color: var(--rc-mut); }
  html.aiq-phone .msa-drill .ta-rec :is(.ta-note, .tm-pnote, .ta-sum):not(#_):not(#_) { padding: 14px 0; font: 400 15px/1.5 Inter, system-ui, sans-serif; color: var(--rc-ink); }
  /* Summary: Attio's Highlights — two columns, label + icon on top, value, then the S&P 500 line */
  html.aiq-phone .msa-drill .ta-rec .ta-cards:not(#_):not(#_) { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 10px; }
  html.aiq-phone .msa-drill .ta-rec .rc-card:not(#_):not(#_) { display: flex; flex-direction: column; min-height: 112px; padding: 14px 14px 13px; background: var(--rc-card);
    border: 1px solid var(--rc-line); border-radius: 18px; outline: 0; box-shadow: none; }
  html.aiq-phone .msa-drill .ta-rec .rc-cl:not(#_):not(#_) { display: flex; align-items: flex-start; justify-content: space-between; gap: 6px; color: var(--rc-mut);
    font: 400 14px/1.25 Inter, system-ui, sans-serif; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.aiq-phone .msa-drill .ta-rec .rc-cl i:not(#_) { flex: none; font-size: 18px; color: var(--rc-ic); font-family: "Phosphor-Regular" !important; }
  html.aiq-phone .msa-drill .ta-rec .rc-cv:not(#_):not(#_) { margin-top: auto; padding-top: 18px; color: var(--rc-ink); font: 600 19px/1.2 Inter, system-ui, sans-serif;
    letter-spacing: -.01em; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.aiq-phone .msa-drill .ta-rec .rc-cs:not(#_):not(#_) { margin-top: 3px; color: var(--rc-mut); font: 400 13px/1.3 Inter, system-ui, sans-serif;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  /* in-card switches (Diversifiers' All / Stocks / Funds) as small capsules */
  html.aiq-phone .msa-drill .ta-rec .ta-p .b :is(.tq-seg, .ta-seg):not(#_) { border-radius: 999px; }

  /* ── Stock Overview (user, 2026-10-29: "redo parts of our overview page on mobile" in this style): Highlights after the
     price chart, grouped lists in place of the side cards (Valuation, Returns & health, grade, Analysts, Insiders,
     Company, About). Markup .ovs-ph in financials/_overview.html; the cards they replace are .ovs-ph-off. ── */
  html.aiq-phone #tab-overview .ovs-ph:not(#_):not(#_):not(#_):not(#_) { display: block !important; padding: 0 16px 8px; }
  html.aiq-phone #tab-overview .ovs-ph-off:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #tab-overview .ovs-ph i { font-family: "Phosphor-Regular" !important; }
  html.aiq-phone #tab-overview .ovs-ph .ph-rh:first-child { margin-top: 18px; }
  html.aiq-phone #tab-overview .ovs-ph .pos { color: var(--tb-pos, #0d8a66); }
  html.aiq-phone #tab-overview .ovs-ph .neg { color: var(--tb-neg, #c8203f); }
  html.aiq-phone #tab-overview .ovs-ph .ph-rrow .k { max-width: 58%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone #tab-overview .ovs-ph .ph-rrow .val .ph-rpill { font-size: 14px; padding: 2px 9px; }
  html.aiq-phone .ph-rpill.green { background: #E3F6EF; color: #0D8A66; }
  html.aiq-phone .ph-rpill.amber { background: #FFF1E3; color: #C2620F; }
  html.aiq-phone[data-theme="dark"] .ph-rpill.green { background: rgba(67,209,167,.16); color: #6FE0BE; }
  html.aiq-phone[data-theme="dark"] .ph-rpill.amber { background: rgba(255,134,46,.16); color: #FFAE70; }
  /* One column of record cards, as on Home: the columns flatten so the lists follow the revenue breakdown and
     Estimates / Earnings history / News (.ovs-late) come last; no hairlines between sections. */
  html.aiq-phone #tab-overview .ovs-grid:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: flex !important; flex-direction: column; align-items: stretch !important; gap: 0 !important; }
  html.aiq-phone #tab-overview .ovs-grid > *:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_), html.aiq-phone #tab-overview .ovs-grid :is(.ovs-main, .ovs-side, .ovs-mid, .ovs-col) > *:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { min-width: 0 !important; max-width: none !important; }
  html.aiq-phone #tab-overview :is(.ovs-main, .ovs-side, .ovs-mid, .ovs-col, #ovs-spill):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: contents !important; }
  html.aiq-phone #tab-overview .ovs-side > .ovs-ph:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { order: 1; }
  html.aiq-phone #tab-overview .ovs-late:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { order: 2; }
  html.aiq-phone #tab-overview section.card.ovs-price:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { border-bottom: 0 !important; box-shadow: none !important; }
  /* the other sections: muted heading above a white 18px card (the record kit's .ph-rh + .ph-rlist look) */
  html.aiq-phone #tab-overview section.card:not(.ovs-price):not(.ovs-ph-off):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { position: relative; margin: 52px 4px 0 !important; min-width: 0 !important;
    padding: 4px 14px 8px !important; background: var(--rc-card) !important; border: 1px solid var(--rc-line) !important; border-radius: 18px !important;
    box-shadow: none !important; overflow: visible !important; width: auto !important; }
  html.aiq-phone #tab-overview section.card:not(.ovs-price):not(.ovs-ph-off):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::before,
  html.aiq-phone #tab-overview section.card:not(.ovs-price):not(.ovs-ph-off):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::after { display: none !important; }
  html.aiq-phone #tab-overview section.card:not(.ovs-price) > .ovs-rule:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: flex !important; position: absolute; top: -34px; left: 4px; right: 4px;
    margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
  html.aiq-phone #tab-overview section.card:not(.ovs-price) > .ovs-rule h3:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { font: 450 17px/1.2 Inter, system-ui, sans-serif !important;
    letter-spacing: 0 !important; text-transform: none !important; color: var(--rc-head) !important; }
  html.aiq-phone #tab-overview section.card:not(.ovs-price) > .ovs-rule > :not(h3):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #tab-overview section.card:not(.ovs-price) > .ovs-rule h3 *:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { font: inherit !important; color: inherit !important; }
  html.aiq-phone #tab-overview .ovs-ph:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { padding: 0 4px; }
  html.aiq-phone #tab-overview .ovs-ph .ph-rh:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 22px 4px 10px; }
  html.aiq-phone #tab-overview .ovs-ph .ph-rh:first-child:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin-top: 18px; }
  /* the segment / summary tables keep every year and scroll in their box; the name column stays put */
  html.aiq-phone #tab-overview section.card .ovs-tw table > * > tr > :first-child:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { left: 0 !important; }
  /* A bit of colour (user, 2026-10-29: "add a bit more color in some of the icons"): one house colour per section,
     the Highlights icons in turn, insider arrows by trade; Company / About stay grey */
  html.aiq-phone #tab-overview .ovs-ph { --t-blue: #455DDC; --t-teal: #0D8A66; --t-violet: #8A3FE0; --t-orange: #E8741F; --t-rose: #C8203F; }
  html.aiq-phone[data-theme="dark"] #tab-overview .ovs-ph { --t-blue: #8DA0FF; --t-teal: #43D1A7; --t-violet: #B98CFF; --t-orange: #FF9F5A; --t-rose: #FF6F8F; }
  html.aiq-phone #tab-overview .ovs-ph .ph-rlist.t-blue .ph-rrow > i:first-child { color: var(--t-blue); }
  html.aiq-phone #tab-overview .ovs-ph .ph-rlist.t-teal .ph-rrow > i:first-child { color: var(--t-teal); }
  html.aiq-phone #tab-overview .ovs-ph .ph-rlist.t-violet .ph-rrow > i:first-child { color: var(--t-violet); }
  html.aiq-phone #tab-overview .ovs-ph .ph-rlist.t-ins .ph-rrow > i:first-child { color: var(--rc-ic); }
  html.aiq-phone #tab-overview .ovs-ph .ph-rlist.t-ins .ph-rrow.r-c-P > i:first-child { color: var(--t-teal); }
  html.aiq-phone #tab-overview .ovs-ph .ph-rlist.t-ins .ph-rrow.r-c-S > i:first-child { color: var(--t-rose); }
  html.aiq-phone #tab-overview .ovs-ph .ph-rcard:nth-child(1) .l i { color: var(--t-blue); }
  html.aiq-phone #tab-overview .ovs-ph .ph-rcard:nth-child(2) .l i { color: var(--t-violet); }
  html.aiq-phone #tab-overview .ovs-ph .ph-rcard:nth-child(3) .l i { color: var(--t-teal); }
  html.aiq-phone #tab-overview .ovs-ph .ph-rcard:nth-child(4) .l i { color: var(--t-orange); }
  html.aiq-phone #tab-overview .ovs-ph .ph-rcard:nth-child(5) .l i { color: var(--t-rose); }
  html.aiq-phone #tab-overview .ovs-ph .ph-rcard:nth-child(6) .l i { color: var(--t-blue); }
  /* Fundamental grade keeps every ranking (user: "don't stuff it into one single grade"): the desktop card, rows at list size */
  html.aiq-phone #tab-overview #ovs-score-sec .ovs-factor:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { min-height: 44px; }
  html.aiq-phone #tab-overview #ovs-score-sec .ovs-factor > span:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { font-size: 15px !important; color: var(--rc-ink) !important; }
  /* About: four lines, then Show more */
  html.aiq-phone #tab-overview .ovp-about p { margin: 0; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
  html.aiq-phone #tab-overview .ovp-about.open p { display: block; }
  html.aiq-phone #tab-overview .ovp-about button { margin-top: 8px; padding: 0; background: none; border: 0; color: var(--rc-head); font: 500 14px Inter, system-ui, sans-serif; }
  /* ── All charts (user, 2026-10-29: "restyle All Charts for mobile", Attio's iOS record as the reference): each chart is a
     white 18px card under a muted 17px heading, as on Overview; the latest figure sits big at the top of the card
     with its period beside it; no full-bleed hairlines. Cards on the 16px page edge: the grid's 4px only (a 4px side margin
     on each card too put them at 20px, 2026-11-08 spacing pass). ── */
  html.aiq-phone #charts-grid:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { padding: 0 4px; }
  html.aiq-phone.aiq-phone #charts-grid .cg-card:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { position: relative !important; margin: 36px 0 0 !important; width: auto !important;
    padding: 14px 14px 8px !important; background: var(--rc-card) !important; border: 1px solid var(--rc-line) !important; border-radius: 18px !important;
    box-shadow: none !important; overflow: visible !important; transform: none !important; }
  html.aiq-phone.aiq-phone #charts-grid .cg-card:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::before,
  html.aiq-phone.aiq-phone #charts-grid .cg-card:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::after { display: none !important; }
  html.aiq-phone #charts-grid .cg-card:first-child:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin-top: 40px !important; }
  html.aiq-phone #charts-grid .cg-head:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: flex !important; min-height: 0; }
  html.aiq-phone #charts-grid .cg-label:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { position: absolute; top: -32px; left: 4px; right: 4px;
    font: 450 17px/1.2 Inter, system-ui, sans-serif !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--rc-head) !important; }
  html.aiq-phone #charts-grid .cg-tools:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #charts-grid .cg-head .cg-kpi:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 0 !important; padding: 0 !important; gap: 8px; align-items: baseline; background: none !important; border: 0 !important; box-shadow: none !important; }
  html.aiq-phone #charts-grid .cg-val:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { padding: 0 !important; border: 0 !important; background: none !important; color: var(--rc-ink) !important;
    font: 600 22px/1.15 Inter, system-ui, sans-serif !important; font-variant-numeric: tabular-nums; }
  html.aiq-phone #charts-grid .cg-val.is-pair:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { font-size: 17px !important; }
  html.aiq-phone #charts-grid .cg-per:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: inline !important; color: var(--rc-mut) !important; font: 500 14px Inter, system-ui, sans-serif !important; }
  html.aiq-phone #charts-grid .cg-plot:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 8px -4px 0 !important; }
  /* ── KPIs (user, 2026-10-29: "restyle this page" after Attio's iOS company record): each table is a white 18px card
     under a muted 17px heading (data-ph-h, from the table's band row: js/aiq-phone-kpis.js), as on Overview; sub-sections
     (Operating income by business, Operating margin) are muted labels inside the card; "Metric" goes; each card scrolls
     sideways on its own. The pinned name column needs an opaque fill, so the card colour is solid here. ── */
  html.aiq-phone { --kdp-card: #FFFFFF; }
  html.aiq-phone[data-theme="dark"] { --kdp-card: color-mix(in srgb, #fff 3.5%, #252933); }
  /* split into one card per section (aiq-phone-kpis.js): the tab's own card is hidden, its copies (.ph-kdc) show. 56px between
     cards: the heading hangs 32px above each, so 42px left a card's bottom ~10px from the next heading (2026-11-08 spacing pass) */
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .kd-card.ph-kd-src:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .kd-sec-h:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] .lkl-fin .tab-panel #kd-root .kd-card:not(.kd-empty):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    position: relative; margin: 56px 4px 0 !important; padding: 0 !important; background: var(--kdp-card) !important; border: 1px solid var(--rc-line) !important;
    border-radius: 18px !important; box-shadow: none !important; outline: 0 !important; overflow: visible !important; }
  html.aiq-phone.aiq-phone[data-theme] .lkl-fin .tab-panel #kd-root .kd-card:not(.kd-empty):first-child:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin-top: 40px !important; }
  html.aiq-phone.aiq-phone[data-theme] .lkl-fin .tab-panel #kd-root .kd-card:not(.kd-empty):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::after { content: none !important; display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] .lkl-fin .tab-panel #kd-root .kd-card[data-ph-h]:not(.kd-empty):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::before {
    content: attr(data-ph-h) !important; display: block !important; position: absolute !important; top: -32px !important; left: 4px !important; right: 4px !important; bottom: auto !important; height: auto !important; width: auto !important;
    background: none !important; border: 0 !important; font: 450 17px/1.2 Inter, system-ui, sans-serif !important; color: var(--rc-head) !important; white-space: nowrap; pointer-events: none; overflow: hidden; text-overflow: ellipsis; }
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .kd-card > .kd-tblwrap:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { border-radius: 17px !important; overflow-x: auto !important; overflow-y: hidden;
    -webkit-mask-image: -webkit-radial-gradient(white, black); isolation: isolate; }
  /* round corners, never pointy (user, 2026-10-29): iOS Safari doesn't clip the pinned (sticky) name cells to the scroll
     box's radius, so the corner cells carry it too */
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead > tr:first-child > th:first-child { border-top-left-radius: 17px !important; }
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead > tr:first-child > th:last-child { border-top-right-radius: 17px !important; }
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr:last-child > td:first-child { border-bottom-left-radius: 17px !important; }
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr:last-child > td:last-child { border-bottom-right-radius: 17px !important; }
  /* cells: solid card fill (the pinned column), 15px, 48px rows, hairlines that stop at the card's edge; the last row has none */
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td) {
    background: var(--kdp-card) !important; box-shadow: none !important; border-left: 0 !important; border-right: 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr > td {
    height: 48px !important; font-size: 15px !important; line-height: 19px !important; color: var(--rc-ink) !important; border-bottom: 1px solid var(--rc-line) !important; }
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr:last-child > td { border-bottom: 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td):first-child { padding-left: 16px !important; position: sticky !important; left: 0 !important; z-index: 2; }
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td):last-child { padding-right: 16px !important; }
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr > td:is(.kd-pos, .kd-neg),
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr > td :is(.kd-pos, .kd-neg) { color: inherit; }
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr.kd-total > td { font-weight: 600 !important; }
  /* header: muted period labels, the newest in ink; no "Metric" */
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead > tr > th {
    height: 40px !important; padding-top: 12px !important; padding-bottom: 6px !important; font: 500 13px/16px Inter, system-ui, sans-serif !important; color: var(--rc-mut) !important;
    border-bottom: 1px solid var(--rc-line) !important; }
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead > tr > th.stx-new { color: var(--rc-ink) !important; font-weight: 600 !important; }
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead > tr > th:first-child { font-size: 0 !important; color: transparent !important; }
  /* sub-sections inside a card: a muted label, no bold band */
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr:is(.kd-div, .kd-grp) > td {
    height: 46px !important; padding: 18px 16px 6px !important; vertical-align: bottom !important; font: 500 13px/16px Inter, system-ui, sans-serif !important;
    color: var(--rc-mut) !important; white-space: nowrap; }
  html.aiq-phone.aiq-phone[data-theme] main #kd-root tr:is(.kd-div, .kd-grp) :is(.stx-gn, .stx-ic):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .kd-u:not(#_):not(#_):not(#_):not(#_) { white-space: nowrap; }
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .kd-muted:not(#_):not(#_):not(#_):not(#_) { margin: 10px 8px 0 !important; padding: 0 !important; font-size: 13px !important; color: var(--rc-mut) !important; }
  html.aiq-phone.aiq-phone[data-theme] main #kd-root .kd-card.kd-empty:not(#_):not(#_):not(#_):not(#_) { margin: 40px 4px 0 !important; border-radius: 18px !important; }

  /* ── Comparables (user, 2026-10-29: "redo the comparables page on mobile" after Attio's iOS company record): a Companies grouped list (logo · ticker over name · market cap
     over day change · chevron; last row opens the Peers panel), then every section as a muted 17px heading — its
     switches on the right — above a white 18px card. Markup #cmp-ph from renderPhone() in financials/_comparables.html. ── */
  html.aiq-phone #comp-root .cmp-ph:not(#_):not(#_):not(#_):not(#_) { display: block !important; padding: 0 4px; }
  html.aiq-phone #comp-root .cmp-ph i { font-family: "Phosphor-Regular" !important; }
  html.aiq-phone #comp-root .cmp-ph .ph-rh:first-child { margin-top: 14px; }
  /* no Relative value on phones (user, 2026-10-29: "get rid of this part on mobile") */
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-card:has(#cmp-scatter):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  /* Companies list rows: two lines each side */
  html.aiq-phone #comp-root .cmp-ph .cmp-ph-co { min-height: 62px; }
  html.aiq-phone #comp-root .cmp-ph .cmp-ph-co .cmp-logo { flex: none; width: 28px; height: 28px; margin: 0 !important; border-radius: 7px; overflow: hidden; background: #fff;
    display: grid; place-items: center; box-shadow: inset 0 0 0 1px var(--rc-line); }
  html.aiq-phone #comp-root .cmp-ph .cmp-ph-co .cmp-logo img { width: 22px; height: 22px; object-fit: contain; }
  html.aiq-phone #comp-root .cmp-ph .cmp-ph-co .cmp-logo .mono { color: var(--rc-mut); font-size: 13px; font-weight: 600; }
  html.aiq-phone #comp-root .cmp-ph .cmp-ph-co + .ph-rrow::before, html.aiq-phone #comp-root .cmp-ph .ph-rrow + .ph-rrow::before { left: 56px; }
  html.aiq-phone #comp-root .cmp-ph .cmp-ph-co .k { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
  html.aiq-phone #comp-root .cmp-ph .cmp-ph-co .k b { font-weight: 600; font-size: 16px; }
  html.aiq-phone #comp-root .cmp-ph :is(.k, .val) small { display: block; color: var(--rc-mut); font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone #comp-root .cmp-ph .cmp-ph-co .val { flex: none; color: var(--rc-ink); font-weight: 500; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
  html.aiq-phone #comp-root .cmp-ph .val small.pos { color: var(--tb-pos, #0d8a66); }
  html.aiq-phone #comp-root .cmp-ph .val small.neg { color: var(--tb-neg, #c8203f); }
  html.aiq-phone #comp-root .cmp-ph .cmp-ph-edit > i:first-child { width: 28px; color: var(--ph-acc, #455DDC); }
  html.aiq-phone #comp-root .cmp-ph .cmp-ph-edit .k { color: var(--ph-acc, #455DDC); font-weight: 500; }
  html.aiq-phone #cmp-peers:not(#_):not(#_):not(#_):not(#_) { display: none !important; }

  /* sections: the card itself is just a frame — heading row (muted title, switches on the right) above a white 18px body */
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-card:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 30px 4px 0 !important; padding: 0 !important;
    background: none !important; border: 0 !important; outline: 0 !important; box-shadow: none !important; border-radius: 0 !important; overflow: visible !important; }
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-card:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::before,
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-card:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::after { content: none !important; display: none !important; }
  /* switches that stay on phones (Business profile's company pills) take their own sideways row under the heading */
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-card-hd:has(.cmp-tog):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { flex-wrap: wrap !important; row-gap: 10px; }
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-card-hd > .cmp-hd-right:has(.cmp-tog):not(#_):not(#_):not(#_):not(#_) { flex: 1 0 100%; margin: 0 0 0 -4px !important;
    overflow-x: auto; scrollbar-width: none; padding-right: 24px;
    -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent); }
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-hd-right .cmp-tog:not(#_):not(#_):not(#_):not(#_) { flex-wrap: nowrap !important; }
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-hd-right .cmp-tog > *:not(#_):not(#_):not(#_):not(#_) { flex: none !important; }
  /* Relative value's "vs" goes with its two pickers, which phones hide */
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-card-hd > .cmp-hd-note:not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-row2:not(#_):not(#_):not(#_):not(#_) { display: block !important; margin: 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-card-hd:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { min-height: 0 !important; margin: 0 0 10px !important; padding: 0 0 0 4px !important;
    background: none !important; border: 0 !important; box-shadow: none !important; gap: 8px; flex-wrap: nowrap; }
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-card-title:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { flex: none; font: 450 17px/1.2 Inter, system-ui, sans-serif !important;
    letter-spacing: 0 !important; color: var(--rc-head) !important; text-transform: none !important; }
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-card > :not(.cmp-card-hd):not(.cmp-tbl-ft):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: var(--rc-card) !important;
    border: 1px solid var(--rc-line) !important; border-radius: 18px !important; box-shadow: none !important; overflow: hidden; }
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-card > :is(.cmp-body, #cmp-chart-host, #cmp-ret-host, .cmp-rv-body):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { padding: 12px 12px 10px !important; }
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-card > .cmp-tbl-ft:empty, html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-card > .cmp-tbl-ft:has(> .cmp-ft-note:empty) { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-card > .cmp-tbl-ft:not(#_):not(#_):not(#_):not(#_) { margin: 8px 4px 0; padding: 0 !important; border: 0 !important; background: none !important; color: var(--rc-mut); font-size: 13px; }
  /* Comparison: the view chips sit on top inside the card; the table keeps its pinned name column, cells at list size */
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-tbl-body:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; }
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-side:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; width: auto !important; padding: 10px 10px 6px !important; border: 0 !important; background: none !important;
    overflow-x: auto; scrollbar-width: none; }
  /* views as the record tab row: plain words, the open one in a grey capsule; no "+ New view" on phones */
  html.aiq-phone.aiq-phone[data-theme] main #comp-root #cmp-views:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { flex-direction: row !important; gap: 2px !important; }
  html.aiq-phone.aiq-phone[data-theme] main #comp-root #cmp-views > button:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { flex: none !important; height: 34px !important; padding: 0 12px !important;
    border: 1px solid transparent !important; border-radius: 999px !important; background: none !important; color: var(--rc-mut) !important; font: 500 15px/1 Inter, system-ui, sans-serif !important; }
  html.aiq-phone.aiq-phone[data-theme] main #comp-root #cmp-views > button.on:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: var(--rc-cap) !important; border-color: var(--rc-capline) !important; color: var(--rc-ink) !important; }
  html.aiq-phone.aiq-phone[data-theme] main #comp-root #cmp-views > .cmp-view-new:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td) {
    background: var(--kdp-card) !important; box-shadow: none !important; border-left: 0 !important; border-right: 0 !important; }
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > :is(tbody, tfoot) > tr > td {
    height: 48px !important; font-size: 15px !important; color: var(--rc-ink) !important; border-bottom: 1px solid var(--rc-line) !important; }
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tfoot > tr > td { border-bottom: 0 !important; color: var(--rc-mut) !important; }
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead > tr > th {
    height: 40px !important; font: 500 13px/16px Inter, system-ui, sans-serif !important; color: var(--rc-mut) !important; border-bottom: 1px solid var(--rc-line) !important; }
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > * > tr > :first-child { padding-left: 14px !important; }
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > * > tr > :last-child { padding-right: 14px !important; }
  html.aiq-phone.aiq-phone[data-theme] #comp-root .cmp-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr.is-subject > td { font-weight: 600 !important; }
  /* Guidance (user, 2026-10-29: "significantly cleaned up"): js/fin-xdrafts.js phone() — Highlights, Open guidance,
     one grouped list per results date (figure + outcome pill), tap a line for management's words */
  html.aiq-phone .ph-rov.gdp { display: block; padding: 0 0 24px; }
  html.aiq-phone .gdp .ph-rh small { font-size: 14px; color: var(--rc-mut); }
  html.aiq-phone .gdp .gdp-it + .gdp-it { position: relative; }
  html.aiq-phone .gdp .gdp-it + .gdp-it::before { content: ""; position: absolute; top: 0; left: 16px; right: 0; border-top: 1px solid var(--rc-line); }
  html.aiq-phone .gdp .ph-rrow { gap: 10px; min-height: 52px; }
  html.aiq-phone .gdp .ph-rrow .k { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone .gdp .ph-rrow .k em { font-style: normal; font-size: 12px; color: var(--rc-mut); margin-left: 2px; }
  html.aiq-phone .gdp .ph-rrow .val { flex: none; max-width: 55%; color: var(--rc-ink); }
  html.aiq-phone .gdp .ph-rrow .val small { display: block; font-size: 12px; color: var(--rc-mut); margin-top: 1px; }
  html.aiq-phone .gdp .ph-rrow .ph-rpill { flex: none; font-size: 13px; padding: 2px 8px; }
  html.aiq-phone .gdp .ph-rrow .cv { font-size: 13px; }
  html.aiq-phone .gdp .ph-rrow.open .cv { transform: rotate(180deg); }
  html.aiq-phone .gdp .gdp-q { padding: 0 16px 14px; color: var(--rc-mut); font-size: 14px; line-height: 1.5; }
  html.aiq-phone .gdp .gdp-q[hidden] { display: none; }
  html.aiq-phone .gdp .gdp-q a { color: var(--ph-acc, #455DDC); text-decoration: none; }
  html.aiq-phone .gdp-more { margin-top: 14px; }
  html.aiq-phone .gdp-more .ph-rrow .k { color: var(--ph-acc, #455DDC); }
  /* charts on the KPI cards (aiq-phone-kpis.js donut / bars, user 2026-11-08: "more color or graphs") */
  html.aiq-phone #kd-root .ph-kdx:not(#_):not(#_):not(#_) { padding: 16px 16px 6px; border-bottom: 1px solid var(--rc-line, #EEF0F3); }
  html.aiq-phone #kd-root .ph-kdx-d:not(#_):not(#_):not(#_) { display: grid; grid-template-columns: 112px minmax(0, 1fr); align-items: center; gap: 18px; padding-bottom: 16px; }
  html.aiq-phone #kd-root .ph-kdx-d svg:not(#_):not(#_):not(#_) { width: 112px; height: 112px; transform: rotate(0deg); }
  html.aiq-phone #kd-root .ph-kdx-d ul:not(#_):not(#_):not(#_) { display: flex; flex-direction: column; gap: 7px; margin: 0; padding: 0; list-style: none; }
  html.aiq-phone #kd-root .ph-kdx-d li:not(#_):not(#_):not(#_) { display: flex; align-items: center; gap: 8px; min-width: 0; font: 500 13.5px/1.25 Inter, system-ui, sans-serif; color: #3A3F48; }
  html.aiq-phone #kd-root .ph-kdx-d li span:not(#_):not(#_):not(#_) { flex: none; width: 10px; height: 10px; border-radius: 50%; }
  html.aiq-phone #kd-root .ph-kdx-d li em:not(#_):not(#_):not(#_) { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-style: normal; }
  html.aiq-phone #kd-root .ph-kdx-d li b:not(#_):not(#_):not(#_) { margin-left: auto; font-weight: 650; color: #101112; font-variant-numeric: tabular-nums; }
  html.aiq-phone #kd-root .ph-kdx-h:not(#_):not(#_):not(#_) { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; font: 500 13.5px/1.25 Inter, system-ui, sans-serif; color: #80868F; }
  html.aiq-phone #kd-root .ph-kdx-h b:not(#_):not(#_):not(#_) { font: 700 20px/1 Inter, system-ui, sans-serif; letter-spacing: -.02em; color: #101112; font-variant-numeric: tabular-nums; }
  html.aiq-phone #kd-root .ph-kdx-cols:not(#_):not(#_):not(#_) { display: flex; align-items: flex-end; gap: 8px; height: 104px; margin-top: 12px; }
  html.aiq-phone #kd-root .ph-kdx-cols > div:not(#_):not(#_):not(#_) { flex: 1; min-width: 0; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 5px; }
  html.aiq-phone #kd-root .ph-kdx-cols i:not(#_):not(#_):not(#_) { display: block; width: 100%; max-width: 30px; border-radius: 6px; }
  html.aiq-phone #kd-root .ph-kdx-cols small:not(#_):not(#_):not(#_) { font: 500 11px/1 Inter, system-ui, sans-serif; color: #80868F; white-space: nowrap; }
}

/* ==== css/aiq-phone-ai.css ==== */
/* Dex AI on phones (user, 2026-10-29: "get rid of the suggested chats, more streamlined, look at how Gemini or ChatGPT
   look on mobile"). A new chat is just a greeting in the middle of the screen; the ask box is one round pill pinned
   above the tab bar (--aia-tb, set by js/ai-attio-draft.js) on a new chat and in a conversation alike. Gone on phones:
   the category pills, the questions-left line, Learn more, the model label. The header's right slot is a New chat
   pencil once a chat is open (.aia-ph-new). */
@media (max-width: 767px) {
  html.aiq-phone.aia :is(#ai-starters, .ai-keynote, .ai-learn, .ai-model):not(#_):not(#_) { display: none !important; }

  /* new chat: the greeting alone, centred in the space above the ask box */
  html.aiq-phone.aia .ai-empty:not(#_) { min-height: 100%; display: flex; flex-direction: column; justify-content: center;
    padding: 0 24px calc(var(--aia-tb, 80px) + 90px) !important; max-width: none; }
  html.aiq-phone.aia .ai-hero:not(#_) { text-align: center; margin: 0; }
  html.aiq-phone.aia .ai-hero #ai-greet:not(#_):not(#_):not(#_) {   /* beats aiq-phone-attio.css hiding every main h1 under #ph-th */
    display: flex !important; flex-direction: column; align-items: center; gap: 6px; margin: 0 !important; }
  /* "more refined" (user, 2026-10-29): Gemini's two lines — the name in the sidebar's Dex gradient, a quieter question */
  html.aiq-phone.aia #ai-greet .aia-hi { font: 600 30px/36px Inter, system-ui, sans-serif; letter-spacing: -.02em;
    background: linear-gradient(100deg, #455DDC 0%, #9646EF 55%, #F73463 100%); -webkit-background-clip: text; background-clip: text;
    color: transparent; }
  html.aiq-phone.aia #ai-greet .aia-q { font: 500 18px/24px Inter, system-ui, sans-serif; letter-spacing: -.01em; color: var(--x-faint); }

  /* the ask box: a pill pinned above the tab bar, text and send on one line */
  html.aiq-phone.aia .ai-comp:not(#_) { position: fixed !important; z-index: 140; left: 12px; right: 12px;
    bottom: calc(var(--aia-tb, 80px) + 26px); margin: 0; overflow: visible !important; display: flex; align-items: flex-end; gap: 6px;
    padding: 6px 6px 6px 18px !important; border-radius: 26px !important; background: none !important; box-shadow: none !important; }
  /* ::before = the page colour behind the box down to the tab bar, so answers don't show through the gap (fades in at
     the top); ::after = the pill itself, painted over that band (a background on .ai-comp would sit under it) */
  html.aiq-phone.aia .ai-comp:not(#_)::before { content: ''; position: absolute; z-index: -1; left: -12px; right: -12px; top: -20px;
    bottom: -26px; pointer-events: none; background: linear-gradient(transparent, var(--sh-bed, var(--ph-bed)) 20px); }
  html.aiq-phone.aia .ai-comp:not(#_)::after { content: ''; position: absolute; z-index: -1; inset: 0; border-radius: inherit; pointer-events: none;
    background: var(--ph-card, #fff); box-shadow: inset 0 0 0 .5px rgba(15,17,21,.10), 0 1px 2px rgba(15,17,21,.04), 0 6px 24px -6px rgba(15,17,21,.10); }
  html.aiq-phone.aia[data-theme="dark"] .ai-comp:not(#_)::after { background: #2C2C2E; box-shadow: inset 0 0 0 .5px rgba(255,255,255,.10), 0 6px 24px -6px rgba(0,0,0,.5); }
  html.aiq-phone.aia.aiq-phone .ai-comp textarea#ai-input:not(#_) { flex: 1; min-width: 0; min-height: 36px !important; max-height: 160px;
    padding: 7px 0 !important; font: 400 16px/22px Inter, system-ui, sans-serif !important; letter-spacing: -.005em; }
  html.aiq-phone.aia .ai-comp textarea#ai-input::placeholder { color: var(--ph-faint, #A0A9C0); }
  html.aiq-phone.aia .ai-comp .ai-comp-row:not(#_) { flex: none; gap: 0; }
  html.aiq-phone.aia .ai-comp :is(.ai-tkpick, .ai-sp):not(#_) { display: none !important; }
  /* send: a quiet outline arrow while empty, a solid ink circle once there's text */
  html.aiq-phone.aia .ai-send:not(#_), html.aiq-phone.aia[data-theme] .ai-send:not(#_) { width: 36px; height: 36px; border-radius: 50%; font-size: 17px;
    transition: none; }
  html.aiq-phone.aia .ai-send:disabled:not(#_), html.aiq-phone.aia[data-theme] .ai-send:disabled:not(#_) { background: transparent;
    color: var(--ph-faint, #A0A9C0); box-shadow: none; }
  /* the disclaimer only under a conversation, as ChatGPT does; a new chat stays a greeting and a box */
  html.aiq-phone.aia:not(.aia-conv) .ai-comp .ai-disclaimer:not(#_) { display: none; }
  html.aiq-phone.aia:not(.aia-conv) .ai-comp:not(#_) { bottom: calc(var(--aia-tb, 80px) + 14px); }
  html.aiq-phone.aia .ai-comp .ai-disclaimer:not(#_) { position: absolute; top: calc(100% + 7px); left: 0; right: 0; text-align: center;
    font-size: 11px; line-height: 14px; white-space: nowrap; color: var(--ph-faint, #A0A9C0); }
  html.aiq-phone.aia .ai-slash:not(#_) { top: auto; bottom: calc(100% + 8px); }

  /* conversation: room under the last answer for the pinned box; bubbles and answers at reading size */
  html.aiq-phone.aia .ai-foot:not(#_) { height: 0; padding: 0 !important; }   /* holds the (fixed) ask box in a chat: never display:none */
  html.aiq-phone.aia .ai-feed:not(#_) { padding: 16px 16px calc(var(--aia-tb, 80px) + 96px) !important; }
  html.aiq-phone.aia .ai-u:not(#_) { margin: 4px 0 22px; }
  html.aiq-phone.aia .ai-u div:not(#_) { max-width: 80%; padding: 9px 15px; border-radius: 20px 20px 6px 20px; font-size: 15px; line-height: 21px; }
  html.aiq-phone.aia .ai-md:not(#_) { font-size: 15.5px; line-height: 25px; font-weight: 400; letter-spacing: -.003em; }
  html.aiq-phone.aia .ai-a:not(#_) { margin-bottom: 30px; }
  html.aiq-phone.aia .ai-md strong:not(#_) { font-weight: 600; }

  /* .ai is already sized to the screen under the header and keeps the tab bar's room inside (the feed's padding), so the
     bar's usual 96px under <main> made the page scroll by 96px: iOS Safari then showed / hid its toolbar as you touched
     the page and the fixed tab bar jumped (user, 2026-11-01: "There are still times when the menu bar jumps") */
  html.aiq-phone.ph-drawer.ph-nb.aia .app-shell > main.ai-main-wrap:not(#_):not(#_):not(#_) { padding-bottom: 0 !important; }

  /* New chat pencil in the header, only once a chat is open (kept in the layout so the title stays centred) */
  html.aiq-phone.aia:not(.aia-conv) .aia-ph-new:not(#_) { visibility: hidden; }
}

/* ==== css/aiq-phone-company.css ==== */
/* Phones: the stock page's Company pages (Acquisitions, Properties, Insiders, Board, Exec pay) in the Attio iOS record
   look (user, 2026-10-29). Markup .co-ph from js/aiq-phone-company.js, built from the record kit in aiq-phone-record.css
   (Highlights cards, grouped lists); the desktop root it replaces is .co-ph-src. Insiders keeps its price chart as a
   record card between Highlights and the lists. */
@media (max-width: 767px) {
  html.aiq-phone .co-ph { padding: 0 4px; font-family: Inter, system-ui, sans-serif; }
  html.aiq-phone .co-ph i { font-family: "Phosphor-Regular" !important; }
  html.aiq-phone .co-ph-src:not(#fi-root):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone .co-ph .ph-rh:first-child { margin-top: 14px; }
  html.aiq-phone .co-ph .pos { color: var(--tb-pos, #0d8a66); }
  html.aiq-phone .co-ph .neg { color: var(--tb-neg, #c8203f); }
  html.aiq-phone .co-ph .ph-rcard .v small.u { margin-left: 2px; color: var(--rc-mut); font-size: 14px; font-weight: 450; letter-spacing: 0; }
  html.aiq-phone .co-ph .ph-rh button { font-size: 15px; }

  /* rows with a second muted line on either side: name over role / date, figure over its detail */
  html.aiq-phone .co-ph .ph-rrow.two { min-height: 62px; padding-top: 9px; padding-bottom: 9px; }
  html.aiq-phone .co-ph .ph-rrow.two .k { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone .co-ph .ph-rrow.two .val { flex: 0 0 auto; max-width: 56%; }
  html.aiq-phone .co-ph .ph-rrow.two .val { color: var(--rc-ink); font-weight: 500; }
  html.aiq-phone .co-ph .ph-rrow :is(.k, .val) small { display: block; margin-top: 2px; color: var(--rc-mut); font-size: 13px; font-weight: 400;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone .co-ph .ph-rrow .val .ph-rpill { font-size: 13px; padding: 2px 9px; }
  html.aiq-phone .co-ph .ph-rrow .val .ph-rpill.lock i { font-size: 12px; }
  html.aiq-phone .co-ph .ph-rrow .lg.av { width: 30px; height: 30px; font-size: 11px; letter-spacing: .02em; }
  html.aiq-phone .co-ph .ph-rlist .ph-rrow:has(> .lg.av) + .ph-rrow::before { left: 58px; }
  html.aiq-phone .co-ph .ph-rrow.r-grp .k { color: var(--rc-mut); }
  html.aiq-phone .co-ph .ph-rrow.r-on { background: var(--rc-cap); }
  html.aiq-phone .co-ph .ph-rtext.mut { color: var(--rc-mut); }

  /* a bit of colour, as on Overview: one house colour per list, the Highlights icons in turn, trades by side */
  html.aiq-phone .co-ph { --t-blue: #455DDC; --t-teal: #0D8A66; --t-violet: #8A3FE0; --t-orange: #E8741F; --t-rose: #C8203F; }
  html.aiq-phone[data-theme="dark"] .co-ph { --t-blue: #8DA0FF; --t-teal: #43D1A7; --t-violet: #B98CFF; --t-orange: #FF9F5A; --t-rose: #FF6F8F; }
  html.aiq-phone .co-ph .ph-rlist.t-blue .ph-rrow > i:first-child { color: var(--t-blue); }
  html.aiq-phone .co-ph .ph-rlist.t-teal .ph-rrow > i:first-child { color: var(--t-teal); }
  html.aiq-phone .co-ph .ph-rlist.t-violet .ph-rrow > i:first-child { color: var(--t-violet); }
  html.aiq-phone .co-ph .ph-rlist.t-orange .ph-rrow > i:first-child { color: var(--t-orange); }
  html.aiq-phone .co-ph .ph-rlist.t-grey .ph-rrow > i:first-child, html.aiq-phone .co-ph .ph-rrow.r-grp > i:first-child { color: var(--rc-ic); }
  html.aiq-phone .co-ph .ph-rlist.t-violet .lg.av { background: color-mix(in srgb, var(--t-violet) 14%, transparent); color: var(--t-violet); }
  html.aiq-phone .co-ph .ph-rlist.t-teal .lg.av { background: color-mix(in srgb, var(--t-teal) 14%, transparent); color: var(--t-teal); }
  html.aiq-phone .co-ph .ph-rlist.t-ins .ph-rrow > i:first-child { color: var(--rc-ic); }
  html.aiq-phone .co-ph .ph-rlist.t-ins .ph-rrow.r-c-P > i:first-child { color: var(--t-teal); }
  html.aiq-phone .co-ph .ph-rlist.t-ins .ph-rrow.r-c-S > i:first-child { color: var(--t-rose); }
  html.aiq-phone .co-ph .ph-rlist .ph-rrow > i.ph-lock-simple:first-child { color: var(--rc-ic); }
  html.aiq-phone .co-ph .ph-rcard:nth-child(1) .l i { color: var(--t-blue); }
  html.aiq-phone .co-ph .ph-rcard:nth-child(2) .l i { color: var(--t-violet); }
  html.aiq-phone .co-ph .ph-rcard:nth-child(3) .l i { color: var(--t-teal); }
  html.aiq-phone .co-ph .ph-rcard:nth-child(4) .l i { color: var(--t-orange); }
  html.aiq-phone .co-ph .ph-rcard:nth-child(5) .l i { color: var(--t-rose); }
  html.aiq-phone .co-ph .ph-rcard:nth-child(6) .l i { color: var(--t-blue); }

  /* ── Insiders: the record block sits around the page's own price chart; everything else of the desktop tab hides.
     The chart card beats the Attio phone skin's edge-to-edge cards (aiq-phone-attio.css, 5 ids), as on Overview. ── */
  html.aiq-phone #fi-root.co-fi > :is(.fx-head, .fx-bar, .fx-bar + .fx-card, .fi-lock):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #fi-root.co-fi .fx-row2 > .fx-side:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #fi-root.co-fi .fx-row2:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; margin: 0 4px !important; }
  html.aiq-phone #fi-root.co-fi .fi-chart-card:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { position: relative !important; margin: 52px 0 0 !important; padding: 8px 6px 4px !important;
    background: var(--rc-card) !important; border: 1px solid var(--rc-line) !important; border-radius: 18px !important; box-shadow: none !important; overflow: visible !important; }
  html.aiq-phone #fi-root.co-fi .fi-chart-card:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::before, html.aiq-phone #fi-root.co-fi .fi-chart-card:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::after { display: none !important; }
  html.aiq-phone #fi-root.co-fi .fi-chart-card > .fx-rule:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { position: absolute !important; top: -34px; left: 4px; right: 4px; display: flex !important; justify-content: space-between;
    align-items: baseline; margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
  html.aiq-phone #fi-root.co-fi .fi-chart-card > .fx-rule h3:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { font: 450 17px/1.2 Inter, system-ui, sans-serif !important; letter-spacing: 0 !important;
    text-transform: none !important; color: var(--rc-head) !important; }
  html.aiq-phone #fi-root.co-fi .fi-chart:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { min-height: 240px !important; height: 240px !important; margin: 0 !important; }
  html.aiq-phone #fi-root.co-fi .fi-chart-card .fi-key:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }   /* green / red dots read on their own */
  html.aiq-phone #fi-root.co-fi .fi-note:empty { display: none; }
}

/* ==== css/aiq-phone-drawer.css ==== */
/* Phone menu (user, 2026-11-01, Reddit-style): a left panel behind the bottom bar's More tab, every page in it as dropdown
   groups. Opening slides the panel in and pushes the page right under a light wash, like Reddit's app; dropdowns glide open
   (js/aiq-phone-drawer.js animates both). With html.ph-drawer (the phone default; ?pnav=off opts out, _phone.html). Markup _phone_drawer.html.
   Rows look like Attio's sidebar (user, same day, with an Attio screenshot): small thin grey icons, colour tiles only on the
   tool groups (Attio colours only its Records), small muted headings with the chevron on the left, no rules between
   groups, the open page a soft grey inset pill, a very light grey panel. */
@media (max-width: 767px) {
  /* the menu replaces the Financials + Explore tabs. By id, never a[href=…]: PostHog's recorder makes every href
     absolute, so href rules miss in session replays (showed 7 tabs, 2026-11-02) */
  html.aiq-phone.ph-drawer #aiq-ptabs #aiq-ptab-fin,
  html.aiq-phone.ph-drawer #aiq-ptabs #aiq-ptab-explore { display: none !important; }

  html.aiq-phone.ph-drawer #ph-drw:not([hidden]) { display: block; position: fixed; inset: 0; z-index: 2147483000; }
  /* a floating rounded card, inset from the screen's edges (user, 2026-11-01: "more rounded edges … straight lines just
     doesn't look as good on mobile"); its right edge is where the pushed page starts */
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-p { position: absolute; top: calc(8px + env(safe-area-inset-top)); bottom: calc(8px + env(safe-area-inset-bottom)); left: 8px;
    width: calc(min(80vw, 320px) - 16px); overflow-y: auto; overscroll-behavior: contain; background: #fff; border-radius: 22px;
    box-shadow: 0 0 0 .5px rgba(15,17,21,.08), 0 8px 24px rgba(15,17,21,.18), 0 24px 72px rgba(15,17,21,.38); padding: 10px 0 18px; }
  /* dark: a step lighter than the page (the phone's dark layer paints <nav> the page colour, hence the extra weight) */
  html.aiq-phone.ph-drawer[data-theme="dark"] #ph-drw .ph-drw-p:not(#_):not(#_) { background: #2B2F3A; box-shadow: 0 0 0 .5px rgba(255,255,255,.08), 0 8px 24px rgba(0,0,0,.5), 0 24px 72px rgba(0,0,0,.75); }
  /* the pushed page shows to the right of the menu as a matching rounded card, inset the same 8px (user, 2026-11-01: the
     square page beside the rounded menu "looks weird"), slightly dimmed; a tap there closes the menu. Its huge spread shadow
     is the backdrop around both cards, a near-black like the iPhone's app switcher (a flat grey "doesn't look very
     natural"); the menu card comes later in the markup, so it paints over that shadow. Both fade in with the dim. */
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-dim { position: absolute; top: calc(8px + env(safe-area-inset-top)); bottom: calc(8px + env(safe-area-inset-bottom));
    left: min(80vw, 320px); right: -40px; border-radius: 22px; background: rgba(15,17,21,.10); box-shadow: 0 0 0 1000px #16171B; }
  /* dark: a near-black with a faint navy tint, on purpose — js/aiq-attio-classic.js repaints every *neutral* dark grey in a
     dark-mode rule to the page colour (#252933), which made the backdrop vanish and the page card's corners with it */
  html.aiq-phone.ph-drawer[data-theme="dark"] #ph-drw .ph-drw-dim { background: rgba(3,5,17,.3); box-shadow: 0 0 0 1000px #030511; }
  html.aiq-phone.ph-drw-lock, html.aiq-phone.ph-drw-lock body { overflow: hidden; }

  /* groups: spacing, no rules */
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-top { padding: 2px 0 6px; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-sec { padding: 4px 0 6px; }

  /* rows: an inset pill (8px from the panel's edges), small icon + regular-weight label */
  html.aiq-phone.ph-drawer #ph-drw a, html.aiq-phone.ph-drawer #ph-drw .ph-drw-sub { display: flex; align-items: center; gap: 12px; width: calc(100% - 16px); margin: 0 8px;
    min-height: 42px; padding: 0 10px; border: 0; border-radius: 12px; background: none; color: var(--ph-ink); font: inherit; font-size: 16px; font-weight: 450;
    letter-spacing: -.01em; text-align: left; text-decoration: none; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone.ph-drawer #ph-drw a span, html.aiq-phone.ph-drawer #ph-drw .ph-drw-sub span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone.ph-drawer #ph-drw a small { margin-left: auto; color: var(--ph-mut); font-size: 13px; }
  html.aiq-phone.ph-drawer #ph-drw a:active, html.aiq-phone.ph-drawer #ph-drw .ph-drw-sub:active { background: rgba(15,17,21,.05); }
  /* the page you're on: a soft grey pill */
  html.aiq-phone.ph-drawer #ph-drw a.on { background: rgba(15,17,21,.055); font-weight: 500; }
  html.aiq-phone.ph-drawer[data-theme="dark"] #ph-drw a.on, html.aiq-phone.ph-drawer[data-theme="dark"] #ph-drw a:active { background: rgba(255,255,255,.07); }

  /* icons: thin grey outline glyphs (the bold glyphs drawn in Phosphor Regular; @font-face in css/aiq-table-attio.css) */
  html.aiq-phone.ph-drawer #ph-drw a > i, html.aiq-phone.ph-drawer #ph-drw .ph-drw-sub > i:first-child { flex: none; width: 20px; height: 20px; display: grid; place-items: center;
    font-family: "Phosphor-Regular" !important; font-size: 19px; color: var(--ph-ink2); }
  /* colour tiles only on the tool groups, like Attio's Records: a white glyph on a 20px rounded square (--tile per row) */
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-sec:is([data-sec="markets"], [data-sec="follow-the-money"], [data-sec="research"]) a > i:not(.ph-drw-dex) {
    border-radius: 6px; background: var(--tile, #727c94); color: #fff; font-family: "Phosphor-Bold" !important; font-size: 12px; }
  html.aiq-phone.ph-drawer #ph-drw a > i.ph-drw-dex svg { width: 20px; height: 20px; }
  html.aiq-phone.ph-drawer #ph-drw a > img { width: 20px; height: 20px; flex: none; border-radius: 6px; object-fit: contain; background: #fff; box-shadow: 0 0 0 1px var(--ph-line); }

  /* group heading = the dropdown's button: small muted words, the chevron on the left (turned by JS when shut) */
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-h { display: flex; align-items: center; justify-content: flex-start; gap: 8px; width: 100%; min-height: 34px; padding: 0 18px;
    border: 0; background: none; color: var(--ph-mut); font: inherit; font-size: 14px; font-weight: 500; letter-spacing: 0; text-align: left; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-h > i { order: -1; flex: none; width: 20px; font-family: "Phosphor-Regular" !important; font-size: 13px; color: var(--ph-mut); text-align: center; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-sub > .ph-drw-car { margin-left: auto; flex: none; font-family: "Phosphor-Regular" !important; font-size: 13px; color: var(--ph-mut); }
  html.aiq-phone.ph-drawer #ph-drw [aria-expanded="false"] > i:last-child { transform: rotate(-90deg); }
  html.aiq-phone.ph-drawer #ph-drw [aria-expanded="false"] + .ph-drw-b,
  html.aiq-phone.ph-drawer #ph-drw [aria-expanded="false"] + .ph-drw-sg { display: none; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-b, html.aiq-phone.ph-drawer #ph-drw .ph-drw-sg { overflow: hidden; }
  /* the stock's heading: its logo + name, same small muted words */
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-co { display: flex; align-items: center; gap: 8px; min-width: 0; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-co img { width: 16px; height: 16px; border-radius: 5px; object-fit: contain; background: #fff; box-shadow: 0 0 0 1px var(--ph-line); }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-co b { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-co b small { color: var(--ph-faint); font-weight: 450; font-size: 13px; margin-left: 5px; }

  /* the stock's groups (Statements, Valuation…): rows that open in place; their pages hang off a thin guide line under the
     group's icon (the desktop sidebar's look the user kept, 2026-10-25) */
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-sg { position: relative; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-sg::before { content: ''; position: absolute; left: 27.5px; top: 0; bottom: 10px; width: 1.5px; border-radius: 1px; background: var(--ph-line); }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-sg a { position: relative; min-height: 38px; padding-left: 42px; font-size: 15px; color: var(--ph-ink2); }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-sg a > i { display: none; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-sg a.on { color: var(--ph-ink); }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-sg a.on::before { content: ''; position: absolute; left: 18.5px; width: 3.5px; height: 20px; border-radius: 2px; background: var(--ph-ink); }

  /* ── cards (user, 2026-11-01, with a to-do app's menu: "splitting the more menu into different cards like this") ──
     the panel is a light grey tray; you (avatar, name, email, search), the top pages and every group sit on their own white
     rounded card; a group's heading is the card's first row, its chevron on the right. The stock's card is filled with the
     brand blue, white words (user, same day: "a couple cards … with just like filled color", a wallet app's coloured cards). */
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-p { background: #F2F3F6; padding: 8px 8px 16px; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-me, html.aiq-phone.ph-drawer #ph-drw .ph-drw-top, html.aiq-phone.ph-drawer #ph-drw .ph-drw-sec {
    margin: 0 0 8px; padding: 4px 0; background: #FFFFFF; border-radius: 16px; box-shadow: 0 0 0 .5px rgba(15,17,21,.05), 0 1px 2px rgba(15,17,21,.03); }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-sec[hidden] { display: none; }
  html.aiq-phone.ph-drawer #ph-drw a, html.aiq-phone.ph-drawer #ph-drw .ph-drw-sub { width: calc(100% - 8px); margin: 0 4px; padding: 0 12px; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-h { padding: 0 16px; min-height: 36px; font-size: 13px; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-h > i { order: 1; margin-left: auto; width: auto; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-sec:has(> .ph-drw-h[aria-expanded="false"]) { padding: 2px 0; }
  /* the guide line under the stock's groups moves with the rows' new inset */
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-sg::before { left: 25.5px; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-sg a.on::before { left: 16.5px; }

  /* you: avatar · name over email · a round search button */
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-me { display: flex; align-items: center; padding: 6px 6px 6px 0; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-me .ph-drw-me-a { flex: 1; min-width: 0; min-height: 52px; margin: 0 0 0 4px; width: auto; gap: 10px; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-me .ph-drw-me-a.on { background: none; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-av { flex: none; width: 34px; height: 34px; border-radius: 50%; overflow: hidden; display: grid; place-items: center;
    background: linear-gradient(135deg, #9646EF, #455DDC); color: #fff; font-size: 14px; font-weight: 600; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-av img { width: 100%; height: 100%; object-fit: cover; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-me-t { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-me-t b { font-size: 15px; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-me-t small { margin: 0; font-size: 12px; color: var(--ph-mut); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-me .ph-drw-me-s { flex: none; width: 38px; min-height: 38px; height: 38px; margin: 0; padding: 0; justify-content: center; border-radius: 50%; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-me .ph-drw-me-s > i { color: var(--ph-ink); font-size: 18px; }

  /* the stock's card, filled: brand blue, white words; its logo stays on a white tile */
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-sec[data-sec="stock"] { background: #455DDC; box-shadow: 0 6px 16px rgba(69,93,220,.22); color: #fff;
    --ph-ink: #FFFFFF; --ph-ink2: rgba(255,255,255,.86); --ph-mut: rgba(255,255,255,.72); --ph-faint: rgba(255,255,255,.6); --ph-line: rgba(255,255,255,.28); }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-sec[data-sec="stock"] .ph-drw-h { color: #fff; min-height: 44px; font-size: 15px; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-sec[data-sec="stock"] .ph-drw-co img { width: 22px; height: 22px; border-radius: 6px; box-shadow: none; }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-sec[data-sec="stock"] a.on, html.aiq-phone.ph-drawer #ph-drw .ph-drw-sec[data-sec="stock"] a:active,
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-sec[data-sec="stock"] .ph-drw-sub:active { background: rgba(255,255,255,.16); }
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-sec[data-sec="stock"] a > i, html.aiq-phone.ph-drawer #ph-drw .ph-drw-sec[data-sec="stock"] .ph-drw-sub > i:first-child { color: #fff; }

  /* dark: a tinted tray and cards (aiq-attio-classic.js repaints neutral dark greys) */
  html.aiq-phone.ph-drawer[data-theme="dark"] #ph-drw .ph-drw-p:not(#_):not(#_) { background: #1C1F2A; }
  html.aiq-phone.ph-drawer[data-theme="dark"] #ph-drw :is(.ph-drw-me, .ph-drw-top, .ph-drw-sec):not([data-sec="stock"]) { background: #2A2E3B; box-shadow: none; }

  /* the page beside the open menu (user, 2026-11-01: "the part on the right doesn't fit well … make it fuzzy … and fix the
     colors"): phones are always light now, so the backdrop is a light grey, not the old near-black, and the pushed page is
     blurred (js slide()) under a soft white wash; its card corners stay */
  html.aiq-phone.ph-drawer #ph-drw .ph-drw-dim:not(#_):not(#_) { background: rgba(255,255,255,.35); box-shadow: 0 0 0 1000px #E8EAEF; }
}

/* ==== css/aiq-phone-navbar.css ==== */
/* Notched tab bar (user, 2026-11-01, after a Pinterest "Micro-Interaction Project" clip): an edge-to-edge bar with
   labels; the open tab's icon rides in a raised circle that sits in a notch cut out of the bar, and on a tap the circle + notch
   glide to the new tab while the old icon drops back into its slot. With the menu (html.ph-drawer, the phone default): Home ·
   My stocks · Markets · Search · More. The bar's shape is an SVG drawn by js/aiq-phone-navbar.js (html.ph-nb once it's built).
   Picked the same day from six shapes (card, pill, island, wave, glass, sheet) and two colours (navy): edge to edge, Mist. */
@media (max-width: 767px) {
  /* rounded top corners (user, 2026-11-01: "more rounded edges", after picking edge to edge); the 36px side padding keeps the
     first and last tab's notch clear of the corners */
  /* A fixed height, no env(safe-area-inset-bottom): iPhone Safari reports that inset only once its toolbar collapses on
     scroll, so the bar grew ~34px mid-scroll (a blank band under the labels) and the notch, drawn for the old height,
     stretched out of line with the circle (user, 2026-11-01, on a real iPhone). 62px leaves ~13px under the labels for
     the home indicator. */
  html.aiq-phone.ph-drawer.ph-nb #aiq-ptabs:not(#_):not(#_):not(#_) { --nb-r: 0px; left: 0; right: 0; bottom: 0; height: 62px;
    padding: 0 12px; background: none; border: 0; border-radius: 0; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none;
    overflow: visible; }
  html.aiq-phone.ph-drawer.ph-nb #aiq-ptabs:not(#_):not(#_):not(#_)::before { display: none; }
  /* first paint, before aiq-phone-navbar.js has drawn the notched shape: a plain bar of the same colour and corners */
  html.aiq-phone.ph-drawer.ph-nb #aiq-ptabs:not(:has(> .ph-nb-bg)):not(#_):not(#_):not(#_) { background: #2B2D33; border-radius: 0;
    box-shadow: 0 -1px 0 rgba(15,17,21,.09), 0 -4px 12px rgba(15,17,21,.07); }
  html.aiq-phone.ph-drawer.ph-nb[data-theme="dark"] #aiq-ptabs:not(:has(> .ph-nb-bg)):not(#_):not(#_):not(#_) { background: #262A33; box-shadow: 0 -1px 0 rgba(255,255,255,.07); }
  html.aiq-phone.ph-drawer #aiq-ptabs .ph-nb-only:not(#_):not(#_):not(#_) { display: flex; }
  /* by link, not position: the bar's SVG goes in first, which moved the old "6th tab = Account" rule onto Search */
  html.aiq-phone.ph-drawer.ph-nb #aiq-ptabs a.ph-search-tab:not(#_):not(#_):not(#_):not(#_) { display: flex; }
  html.aiq-phone.ph-drawer.ph-nb #aiq-ptabs #aiq-ptab-account:not(#_):not(#_):not(#_):not(#_) { display: none; }
  /* order: Home · My stocks · Search · Markets · More (Search in the middle, user 2026-11-01; More opens the menu, js/aiq-phone-drawer.js) */
  html.aiq-phone.ph-drawer.ph-nb #aiq-ptabs .ph-nb-only:not(#_):not(#_) { order: 4; }
  html.aiq-phone.ph-drawer.ph-nb #aiq-ptabs a.ph-more-tab:not(#_):not(#_) { order: 5; }
  html.aiq-phone.ph-drawer.ph-nb #aiq-ptabs a.ph-search-tab:not(#_):not(#_):not(#_) { order: 3; position: relative; inset: auto; width: auto; flex: 1;
    background: none; box-shadow: none; border-radius: 0; }

  /* the bar's shape, notch included. Light: charcoal on every page since 2026-11-01 (was Mist, a soft grey; the bar must
     differ from the white page — user); dark: a lighter grey than the page */
  html.aiq-phone.ph-drawer.ph-nb #aiq-ptabs .ph-nb-bg { position: absolute; left: 0; top: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none;
    filter: drop-shadow(0 -1px 0 rgba(15,17,21,.09)) drop-shadow(0 -4px 12px rgba(15,17,21,.07)); }
  html.aiq-phone.ph-drawer.ph-nb #aiq-ptabs .ph-nb-bg path { fill: #2B2D33; }
  html.aiq-phone.ph-drawer.ph-nb[data-theme="dark"] #aiq-ptabs .ph-nb-bg { filter: drop-shadow(0 -1px 0 rgba(255,255,255,.07)); }
  html.aiq-phone.ph-drawer.ph-nb[data-theme="dark"] #aiq-ptabs .ph-nb-bg path { fill: #262A33; }

  /* each tab: thin icon over a small label */
  html.aiq-phone.ph-drawer.ph-nb #aiq-ptabs a:not(#_):not(#_):not(#_) { position: relative; z-index: 1; flex: 1; margin: 0; padding: 8px 0 0; gap: 4px; justify-content: flex-start;
    border-radius: 0; background: none; color: var(--ph-mut); -webkit-tap-highlight-color: transparent; }
  html.aiq-phone.ph-drawer.ph-nb #aiq-ptabs a i:not(#_):not(#_):not(#_) { font-family: "Phosphor-Regular" !important; font-size: 24px; color: var(--ph-ink2); }
  html.aiq-phone.ph-drawer.ph-nb #aiq-ptabs a span:not(#_):not(#_):not(#_) { position: static; width: auto; height: auto; clip: auto; overflow: visible;
    font-size: 11px; font-weight: 500; letter-spacing: .01em; color: var(--ph-mut); }
  html.aiq-phone.ph-drawer.ph-nb #aiq-ptabs a.on span:not(#_):not(#_):not(#_) { color: var(--ph-ink); font-weight: 600; }
  /* one bar on every page (user, 2026-11-01: opening a stock's Overview from My stocks "the menu bar changed. make sure it
     always stays the same"): My stocks' charcoal bar, square corners, wide tabs, light icons — it was Mist + rounded off the
     card pages. Light-theme rules name the theme so aiq-attio-classic.js leaves the charcoal alone; dark keeps #262A33. */
  html.aiq-phone.ph-drawer.ph-nb[data-theme="light"] #aiq-ptabs a i:not(#_):not(#_):not(#_):not(#_) { color: rgba(255,255,255,.62); }
  html.aiq-phone.ph-drawer.ph-nb[data-theme="light"] #aiq-ptabs a span:not(#_):not(#_):not(#_):not(#_) { color: rgba(255,255,255,.55); }
  html.aiq-phone.ph-drawer.ph-nb[data-theme="light"] #aiq-ptabs a.on span:not(#_):not(#_):not(#_):not(#_) { color: #FFFFFF; }
  /* the open tab's own icon hides: it's in the circle (the label drops a little to sit under the circle) */
  html.aiq-phone.ph-drawer.ph-nb #aiq-ptabs a.ph-nb-in i:not(#_):not(#_):not(#_) { opacity: 0; }
  html.aiq-phone.ph-drawer.ph-nb #aiq-ptabs a.ph-nb-in span:not(#_):not(#_):not(#_) { transform: translateY(5px); }

  /* the raised circle: always the bar's colour (user: "they shouldn't be different colors"); the notch's gap of page colour
     and a soft shadow set it apart */
  html.aiq-phone.ph-drawer.ph-nb #aiq-ptabs .ph-nb-ball { position: absolute; z-index: 2; left: 0; top: -24px; width: 50px; height: 50px; margin-left: -25px;
    border-radius: 50%; background: #2B2D33; display: grid; place-items: center; pointer-events: none; color: #FFFFFF;
    box-shadow: 0 4px 12px rgba(15,17,21,.10); }
  html.aiq-phone.ph-drawer.ph-nb[data-theme="dark"] #aiq-ptabs .ph-nb-ball { background: #262A33; color: #F1F2F4; box-shadow: 0 4px 14px rgba(0,0,0,.45); }
  html.aiq-phone.ph-drawer.ph-nb #aiq-ptabs .ph-nb-ball[hidden] { display: none; }
  html.aiq-phone.ph-drawer.ph-nb #aiq-ptabs .ph-nb-ball i { font-family: "Phosphor-Regular" !important; font-size: 25px; line-height: 1; }

  /* the page clears the bar and the circle above it */
  html.aiq-phone.ph-drawer.ph-nb .app-shell > main:not(#_):not(#_):not(#_) { padding-bottom: calc(96px + env(safe-area-inset-bottom)) !important; }

  /* Search as one of the bar's tabs (user, 2026-11-01: the old full-screen takeover "doesn't really fit in with our whole
     menu bar change"; js/aiq-phone-search.js). The screen opens behind the bar, whose circle glides to Search; the field
     sits at the top with Cancel; rows look like the menu's (small muted headings, small rounded logos, no "Stock" badge). */
  html.aiq-phone.ph-nb #ph-search:not(#_):not(#_):not(#_) { z-index: 2147482990; background: #fff; }
  html.aiq-phone.ph-nb[data-theme="dark"] #ph-search:not(#_):not(#_):not(#_) { background: #252933; }
  html.aiq-phone.ph-nb.ph-searching #aiq-ptabs:not(#_):not(#_):not(#_):not(#_) { z-index: 2147482995; }
  html.aiq-phone.ph-nb #ph-search .ps-top { flex: none; display: flex; align-items: center; gap: 10px; padding: calc(12px + env(safe-area-inset-top)) 16px 8px; }
  html.aiq-phone.ph-nb #ph-search .ps-field { flex: 1; min-width: 0; height: 42px; display: flex; align-items: center; gap: 8px; padding: 0 12px; border-radius: 12px; background: #ECEEF2; }
  html.aiq-phone.ph-nb[data-theme="dark"] #ph-search .ps-field { background: #2B2F3A; }
  html.aiq-phone.ph-nb #ph-search .ps-field i { flex: none; font-family: "Phosphor-Regular" !important; font-size: 18px; color: var(--ph-mut); }
  html.aiq-phone.ph-nb #ph-search .ps-field input { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; padding: 0; background: transparent;
    color: var(--ph-ink); font: inherit; font-size: 16px; font-weight: 450; letter-spacing: -.01em; -webkit-appearance: none; appearance: none; }
  html.aiq-phone.ph-nb #ph-search .ps-field input::placeholder { color: var(--ph-mut); }
  html.aiq-phone.ph-nb #ph-search .ps-field input::-webkit-search-cancel-button { display: none; }
  html.aiq-phone.ph-nb #ph-search .ps-cancel { flex: none; border: 0; background: none; padding: 8px 2px; color: var(--ph-acc); font: inherit; font-size: 16px; font-weight: 500;
    -webkit-tap-highlight-color: transparent; }
  html.aiq-phone.ph-nb #ph-search .ps-list:not(#_):not(#_):not(#_) { flex: 1; overflow-y: auto; padding: 0 0 calc(110px + env(safe-area-inset-bottom)); }
  html.aiq-phone.ph-nb #ph-search .ps-h:not(#_):not(#_):not(#_) { padding: 16px 18px 6px; font-size: 14px; font-weight: 500; letter-spacing: 0; color: var(--ph-mut); }
  html.aiq-phone.ph-nb #ph-search .ps-row:not(#_):not(#_):not(#_) { display: flex; align-items: center; gap: 12px; margin: 0 8px; padding: 0 10px; min-height: 50px;
    border-radius: 12px; color: var(--ph-ink); text-decoration: none; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone.ph-nb #ph-search .ps-row:active:not(#_):not(#_):not(#_) { background: rgba(15,17,21,.05); }
  html.aiq-phone.ph-nb[data-theme="dark"] #ph-search .ps-row:active:not(#_):not(#_):not(#_) { background: rgba(255,255,255,.07); }
  html.aiq-phone.ph-nb #ph-search .ps-lg:not(#_):not(#_):not(#_) { width: 28px; height: 28px; border-radius: 7px; box-shadow: 0 0 0 1px var(--ph-line); }
  html.aiq-phone.ph-nb #ph-search .ps-lg i:not(#_):not(#_):not(#_) { font-size: 12px; }
  html.aiq-phone.ph-nb #ph-search .ps-tx:not(#_):not(#_):not(#_) { flex: 1; min-width: 0; display: flex; align-items: baseline; gap: 8px; }
  html.aiq-phone.ph-nb #ph-search .ps-tx b:not(#_):not(#_):not(#_) { flex: 1; min-width: 0; font-size: 16px; font-weight: 450; letter-spacing: -.01em; }
  html.aiq-phone.ph-nb #ph-search .ps-tx small:not(#_):not(#_):not(#_) { flex: none; margin: 0; font-size: 13px; font-weight: 450; color: var(--ph-mut); max-width: 45%; }
  html.aiq-phone.ph-nb #ph-search .ps-empty:not(#_):not(#_):not(#_) { padding: 20px 18px; font-size: 15px; color: var(--ph-mut); }

  /* ── Search before you type, Wealthsimple-style (user, 2026-11-01): the grey page, a white search field, quick-link
     chips, then white cards — Recent, your list, Earnings, Explore the market (a sideways row of cards with logo stacks),
     Top movers. js/aiq-phone-search.js showRecent(). Cards on the field's 16px edge (they sat at 12px; 2026-11-08 spacing pass). ── */
  html.aiq-phone.ph-nb #ph-search:not(#_):not(#_):not(#_):not(#_) { background: #F2F3F5; }
  html.aiq-phone.ph-nb #ph-search .ps-field:not(#_):not(#_) { height: 50px; border-radius: 16px; background: #FFFFFF; box-shadow: 0 1px 2px rgba(15,17,21,.04), 0 0 0 .5px rgba(15,17,21,.06); }
  html.aiq-phone.ph-nb #ph-search .ps-field input:not(#_):not(#_) { font-size: 17px; }
  html.aiq-phone.ph-nb #ph-search .ps-chips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 6px 16px 4px; }
  html.aiq-phone.ph-nb #ph-search .ps-chips::-webkit-scrollbar { display: none; }
  html.aiq-phone.ph-nb #ph-search .ps-chip { flex: none; display: inline-flex; align-items: center; gap: 7px; height: 40px; padding: 0 16px; border-radius: 999px; background: #FFFFFF;
    box-shadow: 0 0 0 .5px rgba(15,17,21,.07); color: #101112; font: 600 15px/1 Inter, system-ui, sans-serif; text-decoration: none; }
  html.aiq-phone.ph-nb #ph-search .ps-chip i { font-size: 17px; }
  html.aiq-phone.ph-nb #ph-search .ps-sh { display: flex; align-items: center; gap: 6px; margin: 20px 18px 8px; color: #101112; font: 700 21px/1.2 Inter, system-ui, sans-serif; letter-spacing: -.02em; text-decoration: none; }
  html.aiq-phone.ph-nb #ph-search .ps-sh i { font-size: 16px; color: #80868F; }
  html.aiq-phone.ph-nb #ph-search .ps-card { display: block; margin: 0 16px; padding: 4px 0; border-radius: 20px; background: #FFFFFF; }
  html.aiq-phone.ph-nb #ph-search .ps-card .ps-row:not(#_):not(#_):not(#_) { margin: 0 4px; min-height: 60px; }
  html.aiq-phone.ph-nb #ph-search .ps-empty-card { padding: 26px 20px; text-align: center; color: #101112; font-size: 15px; text-decoration: none; }
  /* rows with figures: logo · name over ticker + day change · right figure over a quiet line */
  html.aiq-phone.ph-nb #ph-search .ps-q .ps-lg:not(#_):not(#_):not(#_) { width: 38px; height: 38px; border-radius: 50%; }
  html.aiq-phone.ph-nb #ph-search .ps-q .ps-tx:not(#_):not(#_):not(#_) { flex-direction: column; align-items: flex-start; gap: 2px; }
  html.aiq-phone.ph-nb #ph-search .ps-q .ps-tx b:not(#_):not(#_):not(#_) { flex: none; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }
  html.aiq-phone.ph-nb #ph-search .ps-q .ps-tx small:not(#_):not(#_):not(#_) { max-width: 100%; }
  html.aiq-phone.ph-nb #ph-search .ps-q em { font-style: normal; margin-left: 6px; }
  html.aiq-phone.ph-nb #ph-search .ps-r { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; max-width: 48%; font-variant-numeric: tabular-nums; }
  html.aiq-phone.ph-nb #ph-search .ps-r b { font-size: 15px; font-weight: 600; color: #101112; white-space: nowrap; }
  html.aiq-phone.ph-nb #ph-search .ps-r small { font-size: 13px; color: #80868F; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
  html.aiq-phone.ph-nb #ph-search .ps-sk { display: inline-block; width: 58px; height: 13px; vertical-align: middle; }   /* a price still on its way (aiq-phone-search.js), never a "—" that turns into a number */
  html.aiq-phone.ph-nb #ph-search small .ps-sk { width: 44px; height: 11px; }
  html.aiq-phone.ph-nb #ph-search .up { color: #0d8a66 !important; } html.aiq-phone.ph-nb #ph-search .dn { color: #c8203f !important; }
  /* Explore the market: a sideways row of white cards, a title, a stack of logos and a round → */
  html.aiq-phone.ph-nb #ph-search .ps-xs { display: flex; gap: 10px; overflow-x: auto; scrollbar-width: none; padding: 0 16px 4px; scroll-padding: 0 16px; scroll-snap-type: x mandatory; }
  html.aiq-phone.ph-nb #ph-search .ps-xs::-webkit-scrollbar { display: none; }
  html.aiq-phone.ph-nb #ph-search .ps-xc { flex: none; width: 62%; min-height: 128px; display: flex; flex-direction: column; justify-content: space-between; padding: 16px; border-radius: 20px;
    background: #FFFFFF; color: #101112; text-decoration: none; scroll-snap-align: start; }
  html.aiq-phone.ph-nb #ph-search .ps-xc b { font-size: 16px; font-weight: 600; }
  html.aiq-phone.ph-nb #ph-search .ps-xb { display: flex; align-items: center; justify-content: space-between; }
  html.aiq-phone.ph-nb #ph-search .ps-stk { display: flex; }
  html.aiq-phone.ph-nb #ph-search .ps-stk .ps-lg:not(#_):not(#_):not(#_) { width: 36px; height: 36px; border-radius: 10px; margin-right: -8px; background: #FFFFFF; box-shadow: 0 0 0 2px #FFFFFF, 0 0 0 2.5px rgba(15,17,21,.08); }
  html.aiq-phone.ph-nb #ph-search .ps-go { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: #F2F3F5; color: #101112; }
  html.aiq-phone.ph-nb #ph-search .ps-res { margin-top: 10px; }
  /* the clear × inside the field (no Cancel) */
  html.aiq-phone.ph-nb #ph-search .ps-clear { flex: none; border: 0; background: none; padding: 4px; color: #A3A8B2; font-size: 20px; line-height: 1; }
  html.aiq-phone.ph-nb #ph-search .ps-clear[hidden] { display: none; }
  html.aiq-phone.ph-nb #ph-search .ps-top:not(#_) { padding-right: 16px; }
  /* a long section as swipeable white columns of three rows, the next one peeking in */
  html.aiq-phone.ph-nb #ph-search .ps-pg { display: flex; gap: 10px; overflow-x: auto; scrollbar-width: none; padding: 0 16px 2px; scroll-padding: 0 16px; scroll-snap-type: x mandatory; }
  html.aiq-phone.ph-nb #ph-search .ps-pg::-webkit-scrollbar { display: none; }
  html.aiq-phone.ph-nb #ph-search .ps-col { flex: none; width: 88%; padding: 4px 0; border-radius: 20px; background: #FFFFFF; scroll-snap-align: start; }
  html.aiq-phone.ph-nb #ph-search .ps-col:only-child { width: 100%; }
  html.aiq-phone.ph-nb #ph-search .ps-col .ps-row:not(#_):not(#_):not(#_) { margin: 0 4px; min-height: 60px; }
  /* the feature card: Dex on a soft lavender */
  html.aiq-phone.ph-nb #ph-search .ps-feat { position: relative; display: flex; flex-direction: column; gap: 4px; margin: 22px 16px 0; padding: 20px 18px; min-height: 150px;
    border-radius: 22px; background: linear-gradient(135deg, #ECE8FF, #E1ECFF); color: #101112; text-decoration: none; }
  html.aiq-phone.ph-nb #ph-search .ps-fi { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: #FFFFFF; margin-bottom: auto; }
  html.aiq-phone.ph-nb #ph-search .ps-fi svg { width: 28px; height: 28px; }
  html.aiq-phone.ph-nb #ph-search .ps-feat b { margin-top: 18px; font-size: 22px; font-weight: 700; letter-spacing: -.02em; }
  html.aiq-phone.ph-nb #ph-search .ps-feat small { font-size: 14px; color: #5B6170; }
  html.aiq-phone.ph-nb #ph-search .ps-feat .ps-go { position: absolute; right: 16px; bottom: 16px; background: #FFFFFF; }
  /* Categories: grey pills, two rows that scroll sideways */
  html.aiq-phone.ph-nb #ph-search .ps-cats { display: grid; grid-auto-flow: column; grid-template-rows: auto auto; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 0 16px 8px; justify-content: start; }
  html.aiq-phone.ph-nb #ph-search .ps-cats::-webkit-scrollbar { display: none; }
  html.aiq-phone.ph-nb #ph-search .ps-cat { white-space: nowrap; padding: 11px 18px; border-radius: 999px; background: #E6E8EC; color: #101112; font: 600 15px/1 Inter, system-ui, sans-serif; text-decoration: none; }
/* Search → Stocks page (category cards) */
html.aiq-phone.ph-nb #ph-search .ps-back { display: inline-flex; align-items: center; gap: 4px; margin: 8px 12px 0; padding: 6px 8px; border: 0; background: none; color: #455DDC; font: 600 16px/1 Inter, system-ui, sans-serif; }
html.aiq-phone.ph-nb #ph-search .ps-pt { margin: 4px 18px 0; color: #101112; font: 700 30px/1.15 Inter, system-ui, sans-serif; letter-spacing: -.025em; }
html.aiq-phone.ph-nb #ph-search .ps-more { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 24px 16px 0; padding: 16px; border-radius: 20px; background: #FFFFFF; color: #101112; font: 600 15px/1 Inter, system-ui, sans-serif; text-decoration: none; }
}

/* Search's investor rows (2026-11-10, aiq-phone-search.js prow): the portrait fills the round slot (a company logo sits
   inset on white); without one, the initials on the quiet grey */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone.aiq-phone #ph-search .ps-res .ps-lg.ps-face:not(#_):not(#_):not(#_):not(#_) { background: rgba(118,118,128,.14); box-shadow: none; }
  html.aiq-phone.aiq-phone.aiq-phone #ph-search .ps-res .ps-lg.ps-face img:not(#_):not(#_):not(#_):not(#_) { inset: 0; width: 100%; height: 100%; object-fit: cover; }
  html.aiq-phone.aiq-phone.aiq-phone #ph-search .ps-res .ps-lg.ps-face i:not(#_):not(#_):not(#_):not(#_) { font-size: 13px; }
  /* a Congress member's party (2026-11-11): the Congress tab's tints (aiq-phone-tp.css .tp-person) */
  html.aiq-phone #ph-search .ps-pty { display: inline-block; padding: 4px 10px; border-radius: 999px; background: rgba(118,118,128,.14); color: #5E636D; font: 600 12.5px/1.2 Inter, system-ui, sans-serif; white-space: nowrap; }
  html.aiq-phone #ph-search .ps-pty.d { background: #E8EEFC; color: #3556C9; }
  html.aiq-phone #ph-search .ps-pty.r { background: #FBEAEC; color: #C8203F; }
}

/* ==== css/aiq-phone-mscards.css ==== */
/* My stocks on phones, card list (user 2026-11-01 from a Pinterest reference; picked after a ?drafts=1 trial): an
   opened list's stocks as rounded cards; a tapped card grows in place into a dark card (price + a year's line) and
   folds back on a second tap. Built by pcards() in js/aiq-terminal.js, which animates with WAAPI (no CSS transition
   on the class swap). Loaded with media="(max-width: 767px)", so every rule stays inside that query. */
@media (max-width: 767px) {
  html.aiq-phone .pc { --pc-row: #F4F5F7; --pc-ring: #E4E6EB; --pc-ink: #101112; --pc-mut: #80868F;
    --pc-dk: #2B2D33; --pc-hink: #F3F4F6; --pc-chip: rgba(255,255,255,.08);
    overflow-anchor: none; padding: 6px 12px 0; }
  /* dark: a navy-tinted near-black — aiq-attio-classic.js repaints neutral near-blacks to the page navy */
  html.aiq-phone[data-theme="dark"] .pc { --pc-row: rgba(255,255,255,.045); --pc-ring: rgba(255,255,255,.14); --pc-ink: #F1F2F4; --pc-mut: #9AA2B4; --pc-dk: #131626; }

  html.aiq-phone .pc-list { padding: 4px 0 120px; }
  html.aiq-phone .pc-r { overflow: hidden; margin-bottom: 8px; padding: 12px 14px 12px 12px; border-radius: 18px; background: var(--pc-row); color: var(--pc-ink);
    cursor: pointer; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone .pc-r.is-open { background: var(--pc-dk); color: var(--pc-hink); border-radius: 24px; padding-bottom: 0; }   /* the line's fill runs to the card's edge — no strip under it */
  /* while it animates: above the cards gliding round it, which trail it a beat */
  html.aiq-phone .pc-r.is-moving { position: relative; z-index: 2; }
  html.aiq-phone .pc-r.is-moving, html.aiq-phone .pc-r.is-moving ~ .pc-r { will-change: transform; }
  html.aiq-phone .pc-r.is-moving .pc-px, html.aiq-phone .pc-r.is-moving .pc-ln, html.aiq-phone .pc-r.is-moving .pc-cap, html.aiq-phone .pc-r.is-moving .pc-ax,
  html.aiq-phone .pc-r.is-moving .pc-open { will-change: transform, opacity; }

  /* the row: stays put as the card opens, only the price swaps for the ↗ */
  html.aiq-phone .pc-hd { display: flex; align-items: center; gap: 12px; min-height: 46px; }
  html.aiq-phone .pc-lw { flex: none; width: 46px; height: 46px; border-radius: 13px; background: #FFFFFF; display: inline-flex; align-items: center; justify-content: center;
    box-shadow: inset 0 0 0 1px rgba(16,17,18,.06); }
  html.aiq-phone .pc-lg { width: 58%; height: 58%; object-fit: contain; }
  html.aiq-phone .pc-nm { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
  html.aiq-phone .pc-nm b { font-size: 16px; font-weight: 600; color: inherit; line-height: 20px; }
  html.aiq-phone .pc-nm small { font-size: 13px; color: inherit; opacity: .6; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.aiq-phone .pc-pr { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; font-variant-numeric: tabular-nums; }
  html.aiq-phone .pc-pr b { font-size: 16px; font-weight: 600; color: inherit; }
  html.aiq-phone .pc-tg { display: inline-block; padding: 2px 7px; border-radius: 999px; font-size: 12px; font-weight: 600; line-height: 16px; color: var(--pc-mut); background: var(--pc-row); }
  html.aiq-phone .pc-tg.up { color: #0d8a66; background: rgba(67,209,167,.14); } html.aiq-phone .pc-tg.dn { color: #c8203f; background: rgba(247,52,99,.12); }
  html.aiq-phone[data-theme="dark"] .pc .pc-tg.up { color: #43D1A7; } html.aiq-phone[data-theme="dark"] .pc .pc-tg.dn { color: #F73463; }
  html.aiq-phone .pc-open { display: none; flex: none; width: 34px; height: 34px; border-radius: 50% !important; border: 0; background: var(--pc-chip); color: var(--pc-hink);
    align-items: center; justify-content: center; font-size: 15px; }
  html.aiq-phone .pc-r.is-open .pc-pr { display: none; }
  html.aiq-phone .pc-r.is-open .pc-open { display: inline-flex; }

  /* what opens under the row */
  html.aiq-phone .pc-body { display: none; }
  html.aiq-phone .pc-r.is-open .pc-body, html.aiq-phone .pc-r.is-closing .pc-body { display: block; }
  html.aiq-phone .pc-px { display: flex; align-items: baseline; gap: 8px; margin: 16px 0 0; font-variant-numeric: tabular-nums; }
  html.aiq-phone .pc-px b { font-size: 32px; font-weight: 600; letter-spacing: -.02em; line-height: 1; }
  html.aiq-phone .pc-body .pos { color: #43D1A7; } html.aiq-phone .pc-body .neg { color: #F73463; }
  html.aiq-phone .pc-px > span { font-size: 15px; font-weight: 600; }
  html.aiq-phone .pc-px > span:last-child { color: inherit; opacity: .55; font-weight: 500; font-size: 13px; }
  html.aiq-phone .pc-chart { position: relative; height: 168px; margin: 14px -14px 0 -12px; padding-top: 22px; }
  html.aiq-phone .pc-cap { position: absolute; top: 0; left: 12px; display: flex; gap: 6px; font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; }
  html.aiq-phone .pc-cap > span:first-child { opacity: .5; }
  html.aiq-phone .pc-ax { position: absolute; top: 22px; bottom: 6px; right: 12px; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-end;
    font-size: 10px; opacity: .45; font-variant-numeric: tabular-nums; pointer-events: none; }
  html.aiq-phone .pc-none { padding: 40px 12px; font-size: 13px; opacity: .55; }
  html.aiq-phone .pc-ln { display: block; width: 100%; height: 100%; }
  html.aiq-phone .pc-ln.up { color: #43D1A7; } html.aiq-phone .pc-ln.dn { color: #F73463; }
  html.aiq-phone .pc-ln .a { fill: currentColor; opacity: .1; } html.aiq-phone .pc-ln .l { fill: none; stroke: currentColor; stroke-width: 2; stroke-linejoin: round; }

  /* Add stocks: a quiet card after the list; the corner + button is hidden here (user, 2026-11-01: "stands out too much") */
  html.aiq-phone .pc-add { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 56px; margin: 2px 0 8px;
    border: 1.5px dashed var(--pc-ring); border-radius: 18px; background: none; color: var(--pc-mut); font: 500 15px/1 Inter, system-ui, sans-serif;
    -webkit-tap-highlight-color: transparent; }
  html.aiq-phone .pc-add i { font-size: 16px; }
  html.aiq-phone .pc-add:active { background: var(--pc-row); }
  html.aiq-phone:has(.pc) #ph-fab:not(#_):not(#_):not(#_) { display: none !important; }

  /* ── My stocks, an open list: one white card like Revolut's "Wealth" screen (user, 2026-11-01). Only pcards() in
     aiq-terminal.js emits .pc-rv, so Markets' cards (which share this file) are untouched. ── */
  /* the header is the standard slim row (‹ left, name centred; aiq-phone-header.css) — same place as every other inner page
     (user, 2026-11-02: headers and back buttons in one consistent position) */
  html.aiq-phone .pc.pc-rv { padding: 4px 12px 0; }
  html.aiq-phone .pc-rv .pc-sheet { padding: 20px 6px 8px; border-radius: 20px; background: #FFFFFF; margin-bottom: 120px; }
  html.aiq-phone .pc-rv .pc-sum { padding: 0 10px; display: flex; flex-direction: column; gap: 4px; font-variant-numeric: tabular-nums; }
  html.aiq-phone .pc-rv .pc-sum b { font-size: 34px; line-height: 40px; font-weight: 600; letter-spacing: -.02em; color: var(--pc-ink); }
  html.aiq-phone .pc-rv .pc-sum b small { font-size: 22px; font-weight: 600; }
  html.aiq-phone .pc-rv .pc-sum > span { font-size: 14px; color: var(--pc-mut); }
  html.aiq-phone .pc-rv .up { color: #0d8a66; } html.aiq-phone .pc-rv .dn { color: #c8203f; }
  /* soft pill actions: light blue tint, blue words + icon (they replace the dashed Add card inside a list) */
  html.aiq-phone .pc-rv .pc-acts { display: flex; gap: 8px; padding: 16px 10px 4px; overflow-x: auto; scrollbar-width: none; }
  html.aiq-phone .pc-rv .pc-acts::-webkit-scrollbar { display: none; }
  html.aiq-phone .pc-rv .pc-act { flex: none; display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px; border: 0; border-radius: 999px;
    background: #EDF0FC; color: #455DDC; font: 600 14px/1 Inter, system-ui, sans-serif; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone .pc-rv .pc-act i { font-size: 16px; }
  html.aiq-phone .pc-rv .pc-act:active { background: #E0E5FA; }
  html.aiq-phone .pc-rv .pc-lab { padding: 22px 10px 6px; font-size: 13px; font-weight: 500; color: var(--pc-mut); }
  /* the rows: no separators, a round logo, the name over its line, the price / value over a small ▲ change */
  html.aiq-phone .pc-rv .pc-list { padding: 0; }
  html.aiq-phone .pc-rv .pc-r { margin-bottom: 0; padding: 10px 10px; border-radius: 16px; background: transparent; }
  html.aiq-phone .pc-rv .pc-r.is-open { background: var(--pc-dk); border-radius: 20px; padding-bottom: 0; }
  html.aiq-phone .pc-rv .pc-hd { gap: 12px; min-height: 40px; }
  html.aiq-phone .pc-rv .pc-chart { margin: 14px -10px 0; }   /* the line runs to the open card's edges (rows pad 10px here) */
  html.aiq-phone .pc-rv .pc-lw { width: 40px; height: 40px; border-radius: 50%; }
  html.aiq-phone .pc-rv .pc-nm b { font-size: 15px; font-weight: 600; line-height: 20px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.aiq-phone .pc-rv .pc-nm small { font-size: 13px; opacity: 1; color: var(--pc-mut); font-variant-numeric: tabular-nums; }
  html.aiq-phone .pc-rv .pc-r.is-open .pc-nm small { color: inherit; opacity: .6; }
  html.aiq-phone .pc-rv .pc-pr { gap: 3px; }
  html.aiq-phone .pc-rv .pc-pr b { font-size: 15px; font-weight: 600; }
  html.aiq-phone .pc-rv .pc-ch { font-size: 13px; font-weight: 500; color: var(--pc-mut); font-variant-numeric: tabular-nums; }
  html.aiq-phone .pc-rv .pc-ch.up { color: #0d8a66; } html.aiq-phone .pc-rv .pc-ch.dn { color: #c8203f; }
}

/* ==== css/aiq-phone-mspin.css ==== */
/* My stocks on phones: the Pinterest reference's colour scheme (user picked 2026-11-01 after a ?drafts=1 trial) — the page
   shows in light mode whatever the theme (not saved), a white page, the notched bar (aiq-phone-navbar.css) and its raised
   circle in charcoal with square top corners and wider-spaced tabs. Colours only otherwise, never the bar's shape (user).
   html.ms-pin is set by mystocks/index.html. Selectors name the light theme so aiq-attio-classic.js leaves the charcoal
   alone. Loaded with media="(max-width: 767px)": every rule stays inside. */
@media (max-width: 767px) {
  /* the finance look (user, 2026-11-01, Revolut / Wealthsimple shots: "we can go for this look"): a light grey page,
     white rounded cards on it (was a white page with grey cards) */
  html.aiq-phone.ms-pin[data-theme="light"] { --sh-bed: #F2F3F5; }
  html.aiq-phone.ms-pin[data-theme="light"]:not(#_):not(#_):not(#_), html.aiq-phone.ms-pin[data-theme="light"]:not(#_):not(#_):not(#_) body,
  html.aiq-phone.ms-pin[data-theme="light"] main:not(#_):not(#_), html.aiq-phone.ms-pin[data-theme="light"] main > div:not(.aiq-scrim):not(#_):not(#_) { background: #F2F3F5 !important; }
  /* :not(.aiq-scrim): a dialog's dim placed straight in <main> (My stocks' Add stocks) took the grey and hid the page behind an
     opaque veil; the kit's --pop-scrim dims it like every other pop-up (2026-11-11) */
  /* the table pages' phone rule (aiq-phone-attio.css, html.ph-th-on … main:not(#_)×4: #fafafa) outranked the line above and
     showed as a grey band under the list (user, 2026-11-01: "get rid of that random gray bar") */
  html.aiq-phone.ms-pin[data-theme="light"].ph-th-on .app-shell > main:not(#_):not(#_):not(#_):not(#_):not(#_) { background: #F2F3F5 !important; }

  /* the charcoal bar, square corners and wide tabs moved to aiq-phone-navbar.css for every page (2026-11-01) */

  /* cards: white on the grey page */
  html.aiq-phone.ms-pin[data-theme="light"] .pc { --pc-row: #FFFFFF; }
}

/* ==== css/aiq-phone-tcards.css ==== */
/* Phone card lists on the table pages (js/aiq-phone-tcards.js; user, 2026-11-01: align them with My stocks and Markets).
   The card itself is My stocks' (css/aiq-phone-mscards.css .pc-r); this fits it to these pages and hides the table it is
   drawn from. Loaded with media="(max-width: 767px)": every rule stays inside. */
@media (max-width: 767px) {
  html.aiq-phone.ph-tc-on [data-ph-tc]:not(#_):not(#_) { display: none !important; }
  /* the Screener's copied column-header row (aiq-phone-navmenu.js) goes with its table */
  html.aiq-phone.ph-tc-on #ph-sc-head:not(#_):not(#_) { display: none !important; }
  /* an open screen's cards scroll in the results box (2026-11-07: the page is locked to the screen height for the old table,
     whose own scroller is now empty, so the list stopped at the 9th stock and nothing below could be reached) */
  html.aiq-phone.ph-tc-on #screener-results:not(#_):not(#_) { overflow-y: auto !important; overscroll-behavior: contain; padding-bottom: 110px; }
  html.aiq-phone .pc.tc { padding: 4px 16px 8px; }
  html.aiq-phone .pc.tc .pc-list { padding: 0; }
  html.aiq-phone .pc.tc .tc-r { cursor: pointer; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone .pc.tc .tc-r:active { filter: brightness(.97); }
  html.aiq-phone .pc.tc .tc-g { padding: 12px 4px 8px; }
  /* logos sit small in the white square; faces (members, investors) fill it */
  html.aiq-phone .pc.tc .pc-lw { overflow: hidden; }
  html.aiq-phone .pc.tc .pc-lw .tc-img { width: 60%; height: 60%; object-fit: contain; }
  html.aiq-phone .pc.tc .pc-lw.tc-face .tc-img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }
  html.aiq-phone .pc.tc .pc-lw[data-l]::before { content: attr(data-l); font: 600 18px/1 Inter, system-ui, sans-serif; color: #80868F; }
  /* a screen's own icon tile (its tint) fills the square */
  html.aiq-phone .pc.tc .pc-lw.tc-tile .tc-ic { width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center; font-size: 21px; color: #FFFFFF; background: #64748b; }
  /* in colour with a white glyph, like My stocks' list tiles (aiq-phone-mslists.css) */
  html.aiq-phone .pc.tc .pc-lw.tc-tile .tc-ic.at-t-violet { background: #8b5cf6; } html.aiq-phone .pc.tc .pc-lw.tc-tile .tc-ic.at-t-blue { background: #2a6df4; }
  html.aiq-phone .pc.tc .pc-lw.tc-tile .tc-ic.at-t-amber { background: #f59e0b; } html.aiq-phone .pc.tc .pc-lw.tc-tile .tc-ic.at-t-green { background: #12b981; }
  html.aiq-phone .pc.tc .pc-lw.tc-tile .tc-ic.at-t-teal { background: #06b6d4; } html.aiq-phone .pc.tc .pc-lw.tc-tile .tc-ic.at-t-rose { background: #ec4899; }
  html.aiq-phone .pc.tc .pc-lw.tc-tile .tc-ic.at-t-orange { background: #f97316; }
  /* "1.27 Est." / "24 matches": the figure's quiet unit after it */
  html.aiq-phone .pc.tc .pc-pr b em { margin-left: 4px; font-style: normal; font-size: 12px; font-weight: 500; opacity: .55; }
  html.aiq-phone .pc.tc .pc-nm b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

  /* The finance look (user, 2026-11-01: the Pinterest colour blocks were "not 'finance' enough"; Revolut / Wealthsimple,
     css/aiq-phone-pin.css): a large title-case title in place of the header's small one (the header keeps ‹ and its
     right-hand button), a white hero card with the page's total, and the rows grouped in ONE white card — no gaps or
     separators, round logo on a hairline ring, name over a quiet line, figure over a small signed green / red change.
     Colour only on gains / losses and the brand blue. Gov. contracts' rows come from gov-money.js (.gm-pc) and share these. */
  html.aiq-phone .tc-pin-t { display: none; }
  html.aiq-phone.ph-tc-pin .tc-pin-t:not(#_) { display: block; flex: 0 0 100%; order: 9; margin: 2px 10px 12px; font: 700 34px/1.05 Inter, system-ui, sans-serif; letter-spacing: -.03em; color: #101112;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.aiq-phone.ph-tc-pin #ph-th .ph-th-t:not(#_):not(#_):not(#_):not(#_) { visibility: hidden; }
  html.aiq-phone.ph-tc-pin #ph-th:not(#_):not(#_):not(#_):not(#_) { flex-wrap: wrap; min-height: 44px; padding-bottom: 0; }   /* the title (inside it, tcards.js) on its own line */
  html.aiq-phone .tc-hero { display: flex; flex-direction: column; margin: 0 0 12px; padding: 16px 18px; border-radius: 22px; background: #FFFFFF; color: #101112; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone .tc-hero[data-tci] { cursor: pointer; }
  html.aiq-phone .tc-hk { font: 500 14px/1.2 Inter, system-ui, sans-serif; color: #80868F; }
  html.aiq-phone .tc-hv { margin-top: 6px; font: 700 34px/1 Inter, system-ui, sans-serif; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
  html.aiq-phone .tc-hv em { margin-left: 6px; font-style: normal; font-size: 16px; font-weight: 500; letter-spacing: 0; color: #80868F; }
  html.aiq-phone .tc-hs { margin-top: 6px; font: 500 14px/1.3 Inter, system-ui, sans-serif; color: #80868F; }
  html.aiq-phone .tc-hr { display: flex; align-items: center; gap: 12px; margin-top: 14px; }
  html.aiq-phone .tc-hr .pc-lw { width: 40px; height: 40px; border-radius: 50%; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(15,17,21,.07); }
  html.aiq-phone .tc-hr .pc-lw .tc-img { width: 60%; height: 60%; object-fit: contain; }
  html.aiq-phone .tc-hr .pc-lw.tc-face .tc-img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }
  html.aiq-phone .tc-hr .pc-lw[data-l]::before { content: attr(data-l); font: 600 16px/1 Inter, system-ui, sans-serif; color: #80868F; }
  /* the rows: one white card, rows inside it */
  html.aiq-phone .pc.tc .pc-list:not(#_):not(#_) { padding: 6px 0; border-radius: 22px; background: #FFFFFF; }
  html.aiq-phone .tc-r:not(#_):not(#_) { margin: 0; padding: 12px 16px; border-radius: 0; background: none; color: #101112; box-shadow: none; }
  html.aiq-phone .tc-r .pc-lw:not(#_):not(#_) { width: 40px; height: 40px; border-radius: 50%; background: #FFFFFF; box-shadow: inset 0 0 0 1px rgba(15,17,21,.07); }
  html.aiq-phone .tc-r .pc-nm b:not(#_) { font-size: 16px; font-weight: 600; }
  html.aiq-phone .tc-r .pc-pr b:not(#_) { font-size: 16px; font-weight: 600; }
  /* a change / result / date: small text, not a pill — signed changes green / red, the rest quiet */
  html.aiq-phone .tc-r .pc-tg:not(#_):not(#_) { padding: 0; background: none; color: #80868F; font-size: 13px; font-weight: 500; }
  html.aiq-phone .tc-r .pc-tg.up:not(#_):not(#_) { color: #0d8a66; font-weight: 600; } html.aiq-phone .tc-r .pc-tg.dn:not(#_):not(#_) { color: #c8203f; font-weight: 600; }
  /* a screen's icon: brand blue on a soft blue circle */
  html.aiq-phone .pc.tc .tc-r .pc-lw.tc-tile:not(#_):not(#_) { box-shadow: none; }
  html.aiq-phone .pc.tc .tc-r .pc-lw.tc-tile .tc-ic:not(#_):not(#_) { width: 40px; height: 40px; border-radius: 50%; font-size: 19px; background: rgba(69,93,220,.1); color: #455DDC; }
  html.aiq-phone .pc.tc .pc-add:not(#_) { width: calc(100% - 20px); margin: 6px 10px 4px; border-radius: 16px; }   /* the last thing in the white card */
  /* a page section painted white around the cards (My screens' #sch-home) takes the grey page, so the white card shows */
  html.aiq-phone.ph-tc-on .sch-home:not(#_):not(#_):not(#_) { background: transparent !important; }
  /* My charts / Excel models / reports (2026-11-03): the cards carry the list, so the desktop toolbars (view ⌄, Filter,
     Group, search, New) and the block under the table go; the dashed card is the add */
  html.aiq-phone.ph-tc-on main .mw-bar:not(#_):not(#_):not(#_),
  html.aiq-phone.ph-tc-on main #ra-bar:not(#_):not(#_):not(#_),
  html.aiq-phone.ph-tc-on main #ch-home .sch-row2:not(#_):not(#_):not(#_),
  html.aiq-phone.ph-tc-on main #ch-home .sch-bar:not(#_):not(#_):not(#_),
  html.aiq-phone.ph-tc-on main .chh-more:not(#_):not(#_):not(#_),
  html.aiq-phone.ph-tc-on main .aiq-more:not(#_):not(#_):not(#_) { display: none !important; }
  /* …except on an empty list (a signed-out visitor from a feature page saw only the dashed card, 2026-11-03): the
     block's shortcuts come back as a "Start with" list in a white card, so the page never shows nothing */
  html.aiq-phone.ph-tc-on main .aiq-more.is-empty:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; width: auto; margin: 22px 16px 0; padding: 0; background: none; border: 0; }
  html.aiq-phone.ph-tc-on main .aiq-more.is-empty:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::before { content: "Start with"; display: block !important; position: static; margin: 0 4px 10px; color: #101112; font: 650 22px/1.2 Inter, system-ui, sans-serif; letter-spacing: -.02em; background: none; }
  html.aiq-phone.ph-tc-on main .aiq-more.is-empty .aiq-more-hero:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-tc-on main .aiq-more.is-empty .aiq-more-cards:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; padding: 2px 0 6px; border-radius: 22px; background: #FFFFFF; }
  html.aiq-phone.ph-tc-on main .aiq-more.is-empty .aiq-more-c:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { position: relative; display: flex; align-items: center; gap: 12px; width: 100%; min-height: 64px; margin: 0; padding: 10px 16px; border: 0 !important; border-radius: 0 !important; background: none !important; box-shadow: none !important; text-align: left; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone.ph-tc-on main .aiq-more.is-empty .aiq-more-c + .aiq-more-c::before { content: ""; position: absolute; top: 0; left: 68px; right: 0; border-top: 1px solid rgba(15,17,21,.07); }
  html.aiq-phone.ph-tc-on main .aiq-more.is-empty .aiq-more-c .ic:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { border-radius: 50%; }
  html.aiq-phone.ph-tc-on main .aiq-more.is-empty .aiq-more-c .tx:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
  html.aiq-phone.ph-tc-on main .aiq-more.is-empty .aiq-more-c .tx b:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { color: #101112; font-size: 16px !important; font-weight: 500 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.aiq-phone.ph-tc-on main .aiq-more.is-empty .aiq-more-c .tx small:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { color: #80868F; font-size: 13px; }
  html.aiq-phone.ph-tc-on main .aiq-more.is-empty .aiq-more-c .go:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { color: #B4B9C1; font-size: 16px; }
  /* group headings (Earnings' days) inside the card, quiet like Markets' */
  html.aiq-phone .pc.tc .tc-g:not(#_) { padding: 12px 16px 2px; color: #80868F; font-size: 13px; font-weight: 500; }

  /* Gov. contracts (gov-money.js sets html.ph-gm-cards on phones): no header row or sideways scroll; the window-scrolled
     body is the white card and each row fills a 64px slot of it (ROW in gov-money.js) */
  html.aiq-phone.ph-gm-cards .gm-card:not(#_):not(#_):not(#_):not(#_):not(#_) { background: transparent !important; border: 0 !important; box-shadow: none !important; }   /* the grey page shows between the cards */
  html.aiq-phone.ph-gm-cards .gm-scrollx:not(#_):not(#_):not(#_):not(#_):not(#_) { overflow: visible; border: 0 !important; background: transparent !important; }
  html.aiq-phone.ph-gm-cards .gm-inner:not(#_):not(#_) { width: auto !important; min-width: 0 !important; padding: 4px 16px 8px; }
  html.aiq-phone.ph-gm-cards .gm-inner .gm-thead:not(#_):not(#_) { display: none; }
  /* the desktop tab row (black "Contracts" pill + count) flashed for ~250ms before aiq-phone-record.js's tab row took over */
  html.aiq-phone.ph-gm-cards main .gm-tabs:not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-gm-cards .gm-body:not(#_) { border-radius: 22px; background: #FFFFFF; overflow: hidden; }
  html.aiq-phone.ph-gm-cards .gm-body > .gm-pc { position: absolute; left: 0; right: 0; height: 64px; box-sizing: border-box; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone.ph-gm-cards .gm-body > .gm-pc.ld .skel { display: block; width: 55%; height: 12px; margin-top: 14px; }
  html.aiq-phone.ph-gm-cards .gm-body > .gm-pc.sel:not(#_):not(#_) { background: #F2F3F5; }
  html.aiq-phone.ph-gm-cards .gm-body .pc-lw { overflow: hidden; }
  html.aiq-phone.ph-gm-cards .gm-body .pc-lw .tc-img { width: 60%; height: 60%; object-fit: contain; }
  html.aiq-phone.ph-gm-cards .gm-body .pc-lw[data-l]::before { content: attr(data-l); font: 600 16px/1 Inter, system-ui, sans-serif; color: #80868F; }
  html.aiq-phone.ph-gm-cards .gm-body .pc-nm b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.aiq-phone.ph-gm-cards .gm-body .pc-tg .flag { width: 14px; height: 10px; margin-right: 5px; vertical-align: -1px; display: inline-block; object-fit: cover; }
  html.aiq-phone.ph-gm-cards .gm-body > .gm-grp:not(#_):not(#_) { position: absolute; left: 0; right: 0; height: 64px; display: flex; align-items: flex-end; gap: 8px; padding: 0 16px 8px; border: 0; background: transparent; color: #80868F; font-size: 13px; font-weight: 500; }
  html.aiq-phone.ph-gm-cards .gm-body > .gm-more:not(#_):not(#_) { position: absolute; left: 0; right: 0; height: 64px; display: flex; align-items: center; justify-content: center; border: 0; background: transparent; color: #455DDC; font-weight: 600; }
  html.aiq-phone.ph-gm-cards .gm-body > .gm-more[data-phmore]:not(#_):not(#_) { width: 100%; padding: 0; font: 600 15px/1 Inter, system-ui, sans-serif; cursor: pointer; -webkit-tap-highlight-color: transparent; }

  /* Home (phone/today.html): stock rows as My stocks' cards (user, 2026-11-01: align with My stocks and Markets): each row its own filled card, the
     logo in a white 46px square, the day change a tinted pill; no hairlines or chevrons */
  html.aiq-phone .hm:not(#_) .ph-rlist:has(> .hm-rr) { background: none; border-radius: 0; overflow: visible; }
  html.aiq-phone .hm:not(#_) .hm-rr { min-height: 70px; margin-bottom: 8px; padding: 12px 14px 12px 12px; gap: 12px; background: var(--rc-card); border-radius: 18px; }
  html.aiq-phone .hm:not(#_) .hm-rr + .hm-rr::before { display: none; }
  html.aiq-phone .hm:not(#_) .hm-rr > .cv { display: none; }
  html.aiq-phone .hm:not(#_) .hm-rr .lg { width: 46px; height: 46px; border-radius: 13px; background: #FFFFFF; display: grid; place-items: center; overflow: hidden; }
  html.aiq-phone .hm:not(#_) .hm-rr .lg img { width: 60%; height: 60%; padding: 0; border-radius: 0; box-shadow: none; object-fit: contain; }
  html.aiq-phone .hm:not(#_) .hm-rr .lg .lt { width: 46px; height: 46px; box-shadow: none; display: grid; place-items: center; font-size: 18px; font-weight: 600; color: #80868F; background: none; }
  html.aiq-phone .hm:not(#_) .hm-v b { font-weight: 600; }
  html.aiq-phone .hm:not(#_) .hm-v > span.pos, html.aiq-phone .hm:not(#_) .hm-v > span.neg { padding: 2px 7px; border-radius: 999px; font-size: 12px; line-height: 16px; }
  html.aiq-phone .hm:not(#_) .hm-v > span.pos { background: rgba(67,209,167,.14); color: #0d8a66; }
  html.aiq-phone .hm:not(#_) .hm-v > span.neg { background: rgba(247,52,99,.12); color: #c8203f; }
  html.aiq-phone[data-theme="dark"] .hm:not(#_) .hm-v > span.pos { color: #43D1A7; } html.aiq-phone[data-theme="dark"] .hm:not(#_) .hm-v > span.neg:not(#_) { color: #F73463; }

  /* news cards (an open list's News tab): the headline gets two lines, the logo sits at its top */
  html.aiq-phone .pc-r.tc-news .pc-hd:not(#_):not(#_) { align-items: flex-start; }
  html.aiq-phone .pc-r.tc-news .pc-nm b:not(#_):not(#_) { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    font-size: 15px; font-weight: 600; line-height: 1.3; }
  html.aiq-phone .pc-r.tc-news .pc-pr:not(#_):not(#_) { display: none; }

  /* the source tables stay invisible until the first draw (html.ph-tc-pre, _phone.html), so they never flash up first */
  html.aiq-phone.ph-tc-pre main table.ec-at-tbl,
  html.aiq-phone.ph-tc-pre main #cg-table,
  html.aiq-phone.ph-tc-pre main #ins-table,
  html.aiq-phone.ph-tc-pre main table.sid-tbl,
  html.aiq-phone.ph-tc-pre main table.si-atbl-t,
  html.aiq-phone.ph-tc-pre main table.si-hold-tbl,
  html.aiq-phone.ph-tc-pre main table.si-act-tbl,
  html.aiq-phone.ph-tc-pre main table.si-moves-tbl,
  html.aiq-phone.ph-tc-pre main table.si-scr-tbl,
  html.aiq-phone.ph-tc-pre main table.si-hld-tbl,
  html.aiq-phone.ph-tc-pre main table.si-sins-tbl,
  html.aiq-phone.ph-tc-pre main #screener-table,
  html.aiq-phone.ph-tc-pre main table.sch-tbl,
  html.aiq-phone.ph-tc-pre main table.idr-tbl,
  /* Superinvestors' Prev / Next under the cards (Insider buys, Latest moves): it ran edge to edge with a 28px "Older →" */
  html.aiq-phone.ph-tc-on main .si-pager:not(#_):not(#_) { padding: 4px 20px 0; font-size: 13px; }
  html.aiq-phone.ph-tc-on main .si-pager a:not(#_):not(#_) { display: inline-flex; align-items: center; min-height: 44px; font-size: 15px; }
  html.aiq-phone.ph-tc-pre main #mwh-tbl,
  html.aiq-phone.ph-tc-pre main table.ra-tbl,
  html.aiq-phone.ph-tc-pre main table.cgx-t,
  html.aiq-phone.ph-tc-pre main table#ipp-trades { visibility: hidden; }
  /* Earnings for a week with no reports: its message box ran edge to edge with its right corners cut; a card in the gutter
     like the week's cards (2026-11-10) */
  html.aiq-phone.aiq-phone[data-theme] main #ec-table > .ec-panel.ec-empty:not(#_):not(#_) { margin: 0 16px !important; border: 0 !important; border-radius: 20px !important; padding: 40px 20px !important; }
}

/* ==== css/aiq-phone-header.css ==== */
/* The phone header, as the big apps do it (user, 2026-11-01: "How do most large apps deal with headers?" … "generally
   speaking we should be copying the big guys"). iOS / Apple Stocks / Robinhood:
   - inner screens (an open list, a stock, Earnings …): one slim row — a plain ‹ (no circle), a small centred title, one
     action on the right; no coloured icon tile, no pencil (renaming is a double-tap on the title / the list's own menu)
   - tab pages (Home, My stocks, Markets: html.ph-th-root, set by aiq-phone-tablehead.js): a large bold title on the left
   - view switches (#ph-rtabs: a list's Overview · Why it moved · News, a member's / investor's tabs): an iOS segmented
     control
   ?phead=old (html.ph-hd-old, _phone.html) shows the previous header to compare. Loaded with media="(max-width: 767px)":
   every rule stays inside. */
@media (max-width: 767px) {
  /* the bar */
  html.aiq-phone:not(.ph-hd-old) #ph-th:not(#_):not(#_):not(#_) { position: relative; min-height: 52px; padding: 6px 4px 4px; }
  html.aiq-phone:not(.ph-hd-old) #ph-th .ph-th-b:not(#_):not(#_):not(#_) { width: 44px; height: 44px; background: none; box-shadow: none; color: var(--ph-ink); font-size: 24px; }
  html.aiq-phone:not(.ph-hd-old) #ph-th .ph-th-b i:not(#_):not(#_):not(#_) { font-family: "Phosphor-Regular" !important; }
  html.aiq-phone:not(.ph-hd-old)[data-theme="dark"] #ph-th .ph-th-b:not(#_):not(#_):not(#_) { background: none; box-shadow: none; }
  /* the small centred title; no icon tile, logo or pencil */
  html.aiq-phone:not(.ph-hd-old) #ph-th .ph-th-t:not(#_):not(#_):not(#_) { position: absolute; left: 56px; right: 56px; top: 50%; transform: translateY(-50%); justify-content: center; gap: 0; }
  html.aiq-phone:not(.ph-hd-old) #ph-th .ph-th-t b:not(#_):not(#_):not(#_) { font-size: 17px; font-weight: 600; letter-spacing: -.01em; }
  html.aiq-phone:not(.ph-hd-old) #ph-th .ph-th-t > i:not(#_):not(#_):not(#_),
  html.aiq-phone:not(.ph-hd-old) #ph-th .ph-th-t > img:not(#_):not(#_):not(#_),
  html.aiq-phone:not(.ph-hd-old) #ph-th .ph-th-pen:not(#_):not(#_):not(#_) { display: none !important; }
  /* the right-hand button: plain, like the ‹ */
  html.aiq-phone:not(.ph-hd-old) #ph-th .ph-th-b + .ph-th-t ~ .ph-th-b:not(#_):not(#_):not(#_) { margin-left: auto; }

  /* tab pages: the large title on the left, nothing else in the row */
  html.aiq-phone.ph-th-root:not(.ph-hd-old) #ph-th:not(#_):not(#_):not(#_) { min-height: 0; padding: 14px 20px 6px; }
  html.aiq-phone.ph-th-root:not(.ph-hd-old) #ph-th > .ph-th-b:first-child:not(#_):not(#_):not(#_) { display: none; }
  html.aiq-phone.ph-th-root:not(.ph-hd-old) #ph-th .ph-th-t:not(#_):not(#_):not(#_) { position: static; transform: none; justify-content: flex-start; flex: 1; }
  html.aiq-phone.ph-th-root:not(.ph-hd-old) #ph-th .ph-th-t b:not(#_):not(#_):not(#_) { font-size: 32px; font-weight: 700; letter-spacing: -.025em; line-height: 1.1; }
  html.aiq-phone.ph-th-root:not(.ph-hd-old) #ph-th .ph-th-sp:not(#_):not(#_):not(#_) { display: none; }

  /* view tabs: separate buttons (user, 2026-11-02: "buttons on mobile should be separate", not one joined toggle) — each its
     own rounded pill with a gap, white on the grey page, the open one charcoal; more than fit scroll sideways */
  html.aiq-phone:not(.ph-hd-old) #ph-rtabs:not(#_):not(#_):not(#_) { gap: 6px; margin: 4px 0 12px; padding: 0 12px; border-radius: 0; background: none; box-shadow: none; }
  html.aiq-phone:not(.ph-hd-old) #ph-rtabs button:not(#_):not(#_):not(#_) { flex: none; justify-content: center; height: 36px; padding: 0 12px; gap: 4px; border: 0; border-radius: 999px;
    background: #FFFFFF; box-shadow: none; color: var(--ph-ink); font-size: 14px; font-weight: 500; }
  html.aiq-phone:not(.ph-hd-old) #ph-rtabs button i:not(#_):not(#_):not(#_) { display: none; }
  html.aiq-phone:not(.ph-hd-old) #ph-rtabs button em:not(#_):not(#_):not(#_) { font-style: normal; font-size: 12px; opacity: .55; background: none; padding: 0; }
  html.aiq-phone:not(.ph-hd-old) #ph-rtabs button.on:not(#_):not(#_):not(#_) { background: #2B2D33; color: #FFFFFF; font-weight: 600; }
  html.aiq-phone:not(.ph-hd-old) #ph-rtabs button.on em:not(#_):not(#_):not(#_) { color: #FFFFFF; opacity: .7; }

  /* DRAFT (?phead=large, user 2026-11-02: "is our header too small?"): inner pages get the Revolut / Apple Stocks large title —
     ‹ in the same top-left spot on every page, the name as a 30px bold left-aligned title right under it, then the tabs. */
  html.aiq-phone.ph-hd-large:not(.ph-th-root) #ph-th:not(#_):not(#_):not(#_):not(#_) { flex-wrap: wrap; align-items: flex-start; height: auto; min-height: 0; padding: 6px 4px 6px; }
  html.aiq-phone.ph-hd-large:not(.ph-th-root) #ph-th .ph-th-b:not(#_):not(#_):not(#_):not(#_) { order: 0; }
  html.aiq-phone.ph-hd-large:not(.ph-th-root) #ph-th .ph-th-b ~ .ph-th-b:not(#_):not(#_):not(#_):not(#_) { order: 1; margin-left: auto; }
  html.aiq-phone.ph-hd-large:not(.ph-th-root) #ph-th .ph-th-t:not(#_):not(#_):not(#_):not(#_) { position: static; transform: none; order: 2; flex: 0 0 100%; justify-content: flex-start; padding: 0 12px; }
  html.aiq-phone.ph-hd-large:not(.ph-th-root) #ph-th .ph-th-t b:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { font-size: 30px; line-height: 36px; font-weight: 700 !important; letter-spacing: -.025em; }
  html.aiq-phone.ph-hd-large:not(.ph-th-root) #ph-rtabs:not(#_):not(#_):not(#_):not(#_) { margin-top: 8px; }
  /* table pages draw their own big title (tcards.js .tc-pin-t) and hide the header's: in the draft the header's is the only one,
     so every inner page puts it in the same place */
  html.aiq-phone.ph-hd-large .tc-pin-t:not(#_):not(#_):not(#_):not(#_):not(#_) { display: none; }
  /* stock pages too (2026-11-03: "Income statement" / "All charts" twice): the header names the tab, so the page's own big
     name (aiq-phone-fin-overview.js #pfp-t) goes and its ticker · price line stays; Overview's #pfp-t is the company row */
  html.aiq-phone.ph-hd-large:not(.ph-th-root) #pfp-t:not(.pfp-ws) > h1:not(#_):not(#_):not(#_):not(#_):not(#_) { display: none; }
  html.aiq-phone.ph-hd-large:not(.ph-th-root) #ph-th .ph-th-t:not(#_):not(#_):not(#_):not(#_):not(#_) { visibility: visible; }
  /* …and Account (/me): its own .ac-title read "Account" under the header's "Account" (2026-11-07) */
  html.aiq-phone.ph-hd-large:not(.ph-th-root) main .ac .ac-title:not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  /* one geometry for every inner page: the buttons in the row (‹ and the right-hand one) are all
     44px and top-aligned, so a 48px one can't push the ‹ or the title down a few px (Financials 7/55 vs the rest 6/50) */
  html.aiq-phone.ph-hd-large:not(.ph-th-root) #ph-th > .ph-th-b:not(.ph-th-sp):not(#_):not(#_):not(#_):not(#_):not(#_) { width: 44px; height: 44px; margin: 0; align-self: flex-start; }
  html.aiq-phone.ph-hd-large:not(.ph-th-root) #ph-th > .pfa:not(#_):not(#_):not(#_):not(#_):not(#_) { align-self: flex-start; margin-top: 0; }
}

/* ==== css/aiq-phone-fin-overview.css ==== */
/* Phone look for the stock page's overview pages, aligned with My stocks / Markets (2026-11-01). Loaded on every phone page with
   media="(max-width: 767px)" (_phone.html): every rule stays inside, scoped to html.aiq-phone.
   Overview (#tab-overview) + All charts (#tab-charts): filled borderless 18px cards (--rc-card, as My stocks' .pc-r), tables
   inside them take the card's fill (base.html paints every th / td white), Estimates + Earnings history become grouped
   lists (js/aiq-phone-fin-overview.js). docs/features/financials.md "Phones". */
@media (max-width: 767px) {
  /* an opaque copy of --rc-card for pinned (sticky) table cells: dark --rc-card is see-through */
  html.aiq-phone { --ofo-solid: #FFFFFF; }   /* the finance look: white cards */
  html.aiq-phone[data-theme="dark"] { --ofo-solid: color-mix(in srgb, #fff 4.5%, #252933); }

  /* ── Overview: every section card filled, no outline (My stocks' cards have none) ── */
  html.aiq-phone #tab-overview section.card:not(.ovs-price):not(.ovs-ph-off):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { border: 0 !important; }
  html.aiq-phone #tab-overview .ovs-ph .ph-rtext:not(#_):not(#_):not(#_) { border: 0; }

  /* tables inside a card: no white box, no header band; the pinned name column carries the card's own (solid) fill */
  html.aiq-phone[data-theme] #tab-overview section.card .ovs-tw:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: none !important; border-radius: 0 !important; margin-top: 4px; }
  html.aiq-phone[data-theme] #tab-overview section.card .ovs-table:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: none !important; box-shadow: none !important; }
  html.aiq-phone[data-theme] #tab-overview section.card .ovs-table:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > :is(thead, tbody, tfoot), html.aiq-phone[data-theme] #tab-overview section.card .ovs-table:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > * > tr { background: none !important; }
  html.aiq-phone[data-theme] #tab-overview section.card .ovs-table:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td) {
    background: transparent !important; box-shadow: none !important; border-left: 0 !important; border-right: 0 !important; }
  html.aiq-phone[data-theme] #tab-overview section.card .ovs-table:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead > tr > th {
    color: var(--rc-mut) !important; font: 500 13px/1.2 Inter, system-ui, sans-serif !important; letter-spacing: 0 !important; text-transform: none !important;
    border-bottom: 1px solid var(--rc-sep) !important; }
  html.aiq-phone[data-theme] #tab-overview section.card .ovs-table:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr > td { border-top: 0 !important; border-bottom: 1px solid var(--rc-sep) !important; }
  html.aiq-phone[data-theme] #tab-overview section.card .ovs-table:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr:last-child > td { border-bottom: 0 !important; }
  html.aiq-phone[data-theme] #tab-overview section.card .ovs-table:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > * > tr > :first-child { padding-left: 2px !important; }
  html.aiq-phone[data-theme] #tab-overview section.card .ovs-fin:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > * > tr > :first-child { background: var(--ofo-solid) !important; }
  /* the total row: a hairline above it, not a band */
  html.aiq-phone[data-theme] #tab-overview section.card .ovs-table tr.ovs-seg-total:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > td { border-top: 1px solid var(--rc-sep) !important; }
  /* the in-cell trend bars go (plain numbers in phone tables) */
  html.aiq-phone[data-theme] #tab-overview section.card .ovs-table :is(th, td).trend:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }

  /* Estimates / Earnings history as grouped lists (js builds .ofo-list; the tables stay as the source, hidden) */
  html.aiq-phone #tab-overview section.card.ofo-on:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { padding: 0 !important; background: none !important; }
  html.aiq-phone #tab-overview section.card.ofo-on > :not(.ovs-rule):not(.ofo-list):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #tab-overview .ofo-list .ph-rrow { min-height: 58px; padding: 9px 16px; }
  html.aiq-phone #tab-overview .ofo-list .ph-rrow + .ph-rrow::before { left: 16px; }
  html.aiq-phone #tab-overview .ofo-list .ofo-l, html.aiq-phone #tab-overview .ofo-list .ofo-r { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
  html.aiq-phone #tab-overview .ofo-list .ofo-l { flex: 1; }
  html.aiq-phone #tab-overview .ofo-list .ofo-r { flex: none; align-items: flex-end; text-align: right; }
  html.aiq-phone #tab-overview .ofo-list .ofo-t { font-size: 16px; font-weight: 500; color: var(--rc-ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
  html.aiq-phone #tab-overview .ofo-list .ofo-s { font-size: 13.5px; color: var(--rc-mut); font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.aiq-phone #tab-overview .ofo-list .ofo-none { white-space: normal; font-size: 15px; line-height: 1.4; }
  html.aiq-phone #tab-overview .ofo-list .ph-rpill { font-size: 13.5px; padding: 2px 8px; font-variant-numeric: tabular-nums; }

  /* Latest news: plain rows in the card */
  html.aiq-phone #tab-overview .ovs-news:not(#_):not(#_):not(#_) { padding: 12px 2px; border-bottom: 1px solid var(--rc-sep); background: none; }
  html.aiq-phone #tab-overview .ovs-news:last-child:not(#_):not(#_):not(#_) { border-bottom: 0; }
  html.aiq-phone #tab-overview .ovs-news .t:not(#_):not(#_):not(#_) { font-size: 15px; line-height: 1.35; color: var(--rc-ink); }

  /* ── All charts: the cards lose their outline too; the plan note above the grid goes (each chart's lock column says it) ── */
  html.aiq-phone.aiq-phone #charts-grid .cg-card:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { border: 0 !important; }
  html.aiq-phone #tab-charts .ch-head > .fin-hist-note:not(#_):not(#_):not(#_) { display: none !important; }

  /* ══ The finance look (user, 2026-11-01: Revolut / Wealthsimple shots, replacing the same day's Pinterest colour blocks as
     "not 'finance' enough"; kit in css/aiq-phone-pin.css): grey page, WHITE cards, a large title-case title, colour only
     on gains / losses. The title + Highlights + headings are stock-page-wide and live here; each area's file adds its own
     page's feature card (js builds .pfp-hero). ══ */
  /* the title (js/aiq-phone-fin-overview.js inserts #pfp-t before the company row): the header keeps ‹ and ≡, and names the
     page again only once the big title has scrolled away (iOS large titles) */
  html.aiq-phone.pfp-on main .at-ft:not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.pfp-on:not(.pfp-away) #ph-th .ph-th-t:not(#_):not(#_):not(#_):not(#_) { visibility: hidden; }
  html.aiq-phone .pfp-t { margin: 4px 4px 16px; }
  html.aiq-phone .pfp-t h1 { margin: 0; font: 700 34px/1.08 Inter, system-ui, sans-serif; letter-spacing: -.03em; color: #101112; overflow-wrap: anywhere; }
  html.aiq-phone .pfp-t.pfp-m h1 { font-size: 30px; }
  html.aiq-phone .pfp-t.pfp-s h1 { font-size: 26px; }
  html.aiq-phone .pfp-sub { display: flex; align-items: center; gap: 8px; margin-top: 8px; font: 500 14px/1 Inter, system-ui, sans-serif; color: #80868F; font-variant-numeric: tabular-nums; }
  html.aiq-phone .pfp-sub img { width: 24px; height: 24px; border-radius: 50%; background: #FFFFFF; box-shadow: inset 0 0 0 1px rgba(15,17,21,.07); object-fit: contain; }
  html.aiq-phone .pfp-sub b { color: #101112; font-weight: 600; }
  html.aiq-phone .pfp-sub .pfp-p { color: #101112; }
  html.aiq-phone .pfp-sub .pos { color: #0d8a66; }
  html.aiq-phone .pfp-sub .neg { color: #c8203f; }

  /* a page's headline figure: one white feature card (built by each area's js) — label, big figure, a quiet line under it;
     a change is small signed text in its colour, never a pill */
  /* 4px sides: on the 16px page edge with the cards under it (it sat at main's 12px, 4px wider each side; 2026-11-08 spacing pass) */
  html.aiq-phone .pfp-hero:not(#_):not(#_):not(#_):not(#_) { margin: 0 4px 16px; padding: 18px 18px 16px; border-radius: 22px; background: #FFFFFF; color: #101112; }
  /* … except where the panel is already inset 4px (Statistics' sub-sections under the statements layer, html.ph-fst-r) */
  html.aiq-phone.ph-fst-r #tab-statistics.tab-panel > .pfp-hero:not(#_):not(#_):not(#_):not(#_):not(#_) { margin-left: 0; margin-right: 0; }
  html.aiq-phone .pfp-hero .k:not(#_):not(#_):not(#_):not(#_) { font: 500 14px/1.2 Inter, system-ui, sans-serif !important; color: #80868F !important; }
  html.aiq-phone .pfp-hero .big:not(#_):not(#_):not(#_):not(#_) { display: block; margin-top: 6px; font: 700 36px/1.05 Inter, system-ui, sans-serif !important; letter-spacing: -.03em; font-variant-numeric: tabular-nums; color: #101112 !important; }
  html.aiq-phone .pfp-hero .sub:not(#_):not(#_):not(#_):not(#_) { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; margin-top: 8px; font: 500 14px/1.3 Inter, system-ui, sans-serif; color: #80868F; font-variant-numeric: tabular-nums; }
  html.aiq-phone .pfp-hero .sub b:not(#_):not(#_):not(#_):not(#_) { color: #101112; font-weight: 600; }
  html.aiq-phone .pfp-hero .pill:not(#_):not(#_):not(#_):not(#_) { color: #101112; font-weight: 600; }
  html.aiq-phone .pfp-hero .pill.pos:not(#_):not(#_):not(#_):not(#_) { color: #0d8a66; }
  html.aiq-phone .pfp-hero .pill.neg:not(#_):not(#_):not(#_):not(#_) { color: #c8203f; }

  /* Highlights on any stock page (Overview, Insiders, Board, Guidance …): Home's white cards — label, figure, small change */
  html.aiq-phone.at-p-financials main .ph-rcards > .ph-rcard:not(#_):not(#_):not(#_):not(#_) { min-height: 100px; border: 0; border-radius: 20px; box-shadow: none; background: #FFFFFF; color: #101112; }
  html.aiq-phone.at-p-financials main .ph-rcards > .ph-rcard :is(.l, .l span, .v):not(#_):not(#_):not(#_):not(#_) { opacity: 1; }
  html.aiq-phone.at-p-financials main .ph-rcards > .ph-rcard .l:not(#_):not(#_):not(#_):not(#_) { color: #80868F; font-weight: 500; }
  html.aiq-phone.at-p-financials main .ph-rcards > .ph-rcard .l i:not(#_):not(#_):not(#_):not(#_) { display: none; }
  html.aiq-phone.at-p-financials main .ph-rcards > .ph-rcard .v:not(#_):not(#_):not(#_):not(#_) { color: #101112; font-size: 22px; font-weight: 700; letter-spacing: -.02em; line-height: 1.1; }
  html.aiq-phone.at-p-financials main .ph-rcards > .ph-rcard .v :is(.pos, .tb-pos):not(#_):not(#_):not(#_):not(#_) { color: #0d8a66; }
  html.aiq-phone.at-p-financials main .ph-rcards > .ph-rcard .v :is(.neg, .tb-neg):not(#_):not(#_):not(#_):not(#_) { color: #c8203f; }
  html.aiq-phone.at-p-financials main .ph-rcards > .ph-rcard .v.mut:not(#_):not(#_):not(#_):not(#_) { color: #A3A8B2; font-weight: 600; }
  html.aiq-phone.at-p-financials main .ph-rcards > .ph-rcard .ph-rpill:not(#_):not(#_):not(#_):not(#_) { padding: 0; background: none; font-size: 22px; font-weight: 700; }
  html.aiq-phone.at-p-financials main .ph-rcards > .ph-rcard .ph-rpill.green:not(#_):not(#_):not(#_):not(#_) { color: #0d8a66; }
  html.aiq-phone.at-p-financials main .ph-rcards > .ph-rcard .ph-rpill.rose:not(#_):not(#_):not(#_):not(#_) { color: #c8203f; }
  html.aiq-phone.at-p-financials main .ph-rcards > .ph-rcard .ph-rpill:not(.green):not(.rose):not(#_):not(#_):not(#_):not(#_) { color: #101112; }

  /* section headings on every stock page: title case, ink, as Home's ("Highlights", "Key facts", "Companies" …) */
  html.aiq-phone.at-p-financials main :is(.ph-rh, .pfv-h):not(#_):not(#_):not(#_):not(#_) { color: #101112 !important; font-size: 19px !important; font-weight: 700 !important; letter-spacing: -.02em; }
  html.aiq-phone.at-p-financials main .ph-rh button:not(#_):not(#_):not(#_):not(#_) { color: #80868F !important; font-size: 15px !important; font-weight: 600 !important; letter-spacing: 0; }

  /* ── Overview = Wealthsimple's stock screen (user, 2026-11-01: "copy wealthsimple's layout for stocks. make the company name
     smaller"): no card — the big price with its currency code, one gain/loss line, the chart edge to edge on the page with no
     axes (dotted fill, dotted start-price line; _overview.html reads the --ovh-* colours), the range row under it ── */
  html.aiq-phone[data-theme] #tab-overview section.card.ovs-price:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    margin: 0 0 14px !important; padding: 0 4px !important; border: 0 !important; border-radius: 0 !important; background: none !important; color: #101112; overflow: visible !important; }
  html.aiq-phone[data-theme] #tab-overview section.ovs-price .ovs-px:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; order: 0; }
  html.aiq-phone[data-theme] #tab-overview section.ovs-price .ovs-px .p:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: inline; font: 700 46px/1 Inter, system-ui, sans-serif !important; letter-spacing: -.035em; color: #101112 !important; font-variant-numeric: tabular-nums; }
  html.aiq-phone[data-theme] #tab-overview section.ovs-price .ovs-px .pfp-ccy { margin-left: 6px; font: 600 20px/1 Inter, system-ui, sans-serif; color: #3B3F47; }
  html.aiq-phone[data-theme] #tab-overview section.ovs-price .ovs-px-sub:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: flex; gap: 5px; margin-top: 12px; font: 600 16px/1.2 Inter, system-ui, sans-serif !important; color: #0d8a66 !important; }
  html.aiq-phone[data-theme] #tab-overview section.ovs-price .ovs-px-sub:has(#ov-gain-display.neg):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { color: #c8203f !important; }
  html.aiq-phone[data-theme] #tab-overview section.ovs-price .ovs-px-sub > span:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { font: inherit !important; color: inherit !important; }
  html.aiq-phone[data-theme] #tab-overview #ov-price-wrapper:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    order: 1; height: 260px !important; margin: 26px calc(50% - 50vw) 0 !important;
    --ovh-up: #0d8a66; --ovh-down: #c8203f; --ovh-muted: #A3A8B2; --ovh-cross: rgba(15,17,21,0.3); --ovh-dotBd: #F2F3F5; }
  html.aiq-phone[data-theme] #tab-overview .ovs-price .ov-seg:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { order: 2; padding: 4px 0 0 !important;
    justify-content: space-between !important; }   /* time frames spread across the card, as Wealthsimple's (user, 2026-11-01) */
  html.aiq-phone[data-theme] #tab-overview .ovs-price .ov-seg:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 18px 0 0 !important; padding: 0 !important; gap: 0 !important; background: none !important; }
  html.aiq-phone[data-theme] #tab-overview .ovs-price .ov-seg .ov-seg-btn:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { height: 40px !important; padding: 0 12px !important; border-radius: 999px !important;
    background: none !important; box-shadow: none !important; color: #4A4F58 !important; font: 600 16px/1 Inter, system-ui, sans-serif !important; }
  html.aiq-phone[data-theme] #tab-overview .ovs-price .ov-seg .ov-seg-btn.is-on:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: #FFFFFF !important; color: #101112 !important; box-shadow: 0 1px 3px rgba(15,17,21,.06) !important; }
  /* 1W · 1M · 3M · 1Y · 5Y · 10Y (1D is two daily closes, All repeats 10Y) */
  html.aiq-phone[data-theme] #tab-overview .ovs-price .ov-seg .ov-seg-btn:is([data-ovrange="7d"], [data-ovrange="1m"], [data-ovrange="3m"]):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: inline-flex !important; align-items: center; }
  /* the next results date: a tinted pill banner under the range row (js builds .pfp-ne); 4px sides = on the 16px edge with
     the Highlights cards (2026-11-08 spacing pass) */
  html.aiq-phone .pfp-ne:not(#_):not(#_):not(#_):not(#_) { display: flex; align-items: center; gap: 12px; width: calc(100% - 8px); margin: 0 4px 18px; padding: 15px 18px; border: 0; border-radius: 999px;
    background: #E3E8F8; color: #2F47C4; font: 500 16px/1.2 Inter, system-ui, sans-serif; text-align: left; }
  html.aiq-phone .pfp-ne i { flex: none; font-size: 20px; }
  html.aiq-phone .pfp-ne span { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.aiq-phone .pfp-ne i.ph-caret-right { font-size: 16px; }

  /* Overview's title row: a 40px rounded-square logo and the name in a muted regular 20px — not a big title */
  html.aiq-phone .pfp-t.pfp-ws { margin: 22px 4px 16px; }
  html.aiq-phone .pfp-ws .pfp-co { display: flex; align-items: center; gap: 12px; min-width: 0; }
  html.aiq-phone .pfp-ws .pfp-co img { flex: none; width: 40px; height: 40px; border-radius: 10px; background: #FFFFFF; box-shadow: inset 0 0 0 1px rgba(15,17,21,.07); object-fit: contain; }
  html.aiq-phone .pfp-t.pfp-ws h1:not(#_):not(#_) { font: 400 20px/1.2 Inter, system-ui, sans-serif !important; letter-spacing: -.01em !important; color: #5E636D !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

  /* the header's ‹ on stock pages: a round white ← button, as Wealthsimple's (the star + bell pill is .pfa below) */
  /* the back button is the standard plain ‹ on every page (aiq-phone-header.css); no round white one here (user, 2026-11-02) */

  html.aiq-phone[data-theme] #tab-overview section.card:not(.ovs-price) > .ovs-rule h3:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { color: #101112 !important; font-size: 19px !important; font-weight: 700 !important; letter-spacing: -.02em !important; }

  /* the Fundamental grade: a clean white card — the letter tile, the score large, the label quiet beside it */
  html.aiq-phone[data-theme] #tab-overview #ovs-score-sec:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { padding: 18px 18px 10px !important; border-radius: 22px !important; background: #FFFFFF !important; }
  html.aiq-phone[data-theme] #tab-overview #ovs-score-sec .ovs-score:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: flex; align-items: center; gap: 10px; padding: 0 0 12px !important; border: 0 !important; }
  html.aiq-phone[data-theme] #tab-overview #ovs-score-sec .ovs-grade:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { width: 40px; height: 40px; border-radius: 12px; font: 700 20px/1 Inter, system-ui, sans-serif !important; }
  html.aiq-phone[data-theme] #tab-overview #ovs-score-sec .ovs-score .n:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { font: 700 36px/1 Inter, system-ui, sans-serif !important; letter-spacing: -.03em; color: #101112 !important; }
  html.aiq-phone[data-theme] #tab-overview #ovs-score-sec .ovs-score .of:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { align-self: flex-end; margin: 0 0 4px -6px; font: 600 15px/1 Inter, system-ui, sans-serif !important; color: #A3A8B2 !important; }
  html.aiq-phone[data-theme] #tab-overview #ovs-score-sec .ovs-score .desc:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin-left: auto !important; font: 600 14px/1.2 Inter, system-ui, sans-serif !important; color: #80868F !important; }

  /* All charts: each chart's name in the same heading */
  html.aiq-phone #charts-grid .cg-label:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { font: 700 19px/1.2 Inter, system-ui, sans-serif !important; letter-spacing: -.02em; color: #101112 !important; top: -34px; }

  /* ── Star + bell (user, 2026-11-01; Wealthsimple's stock header): one white pill at the header's right, left of the
     page-settings ≡ when that shows; filled icons = on a list / an alert on ── */
  html.aiq-phone #ph-th > .pfa:not(#_):not(#_):not(#_):not(#_) { display: inline-flex; align-items: center; margin-left: auto; padding: 0 4px; height: 44px; border-radius: 999px; background: #FFFFFF; box-shadow: 0 1px 2px rgba(15,17,21,.06); }   /* as tall as the round ← */
  html.aiq-phone:has(#ph-fin-menu:not(.ph-fm-off)) #ph-th > .pfa:not(#_):not(#_):not(#_):not(#_) { margin-right: 58px; }
  /* …and the ≡ lines up with the ← and the pill on that row (it sat 9px lower and 16px in) */
  html.aiq-phone.at-p-financials:has(#ph-th > .pfa) #ph-fin-menu:not(#_):not(#_):not(#_):not(#_) { top: calc(7px + env(safe-area-inset-top)) !important; right: 4px !important; }
  html.aiq-phone #ph-th > .pfa ~ .ph-th-sp:not(#_):not(#_):not(#_):not(#_) { display: none; }
  html.aiq-phone #ph-th .pfa-b:not(#_):not(#_):not(#_):not(#_) { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; background: none; color: #101112; font-size: 21px; }
  html.aiq-phone #ph-th .pfa-b i:not(#_):not(#_):not(#_):not(#_) { font-family: "Phosphor-Regular" !important; font-style: normal; line-height: 1; }   /* @font-face: aiq-table-attio.css */
  html.aiq-phone #ph-th .pfa-b.on i:not(#_):not(#_):not(#_):not(#_) { font-family: "Phosphor-Fill" !important; }
  /* the title (once it shows, after the big one scrolls away) stays clear of the pill */
  html.aiq-phone:not(.ph-hd-old) #ph-th:has(> .pfa) .ph-th-t:not(#_):not(#_):not(#_):not(#_) { right: 104px; left: 56px; }

  /* the Watchlists / Alerts panel on phones (Wealthsimple's "Set an alert"): aiq-phone-sheet.js already makes it a bottom
     sheet (placement, scrim, grabber); here only its inside — large left title over a grey line, hairline rows, a black
     Done pill. The shared dialog kit is another session's (aiq-phone-pop.css) */
  html.aiq-phone:is(.at-p-financials, .at-p-m) #fa-pop .fa-ph:not(#_):not(#_):not(#_):not(#_) { display: block; height: auto !important; padding: 8px 12px 12px !important; border: 0 !important; }
  html.aiq-phone:is(.at-p-financials, .at-p-m) #fa-pop .fa-ph strong:not(#_):not(#_):not(#_):not(#_) { display: block; font: 700 24px/1.15 Inter, system-ui, sans-serif !important; letter-spacing: -.02em; color: #101112 !important; }
  html.aiq-phone:is(.at-p-financials, .at-p-m) #fa-pop .fa-ph small:not(#_):not(#_):not(#_):not(#_) { display: block; margin-top: 6px; font: 500 14px/1.3 Inter, system-ui, sans-serif !important; color: #80868F !important; }
  html.aiq-phone:is(.at-p-financials, .at-p-m) #fa-pop :is(.fa-ar, .fa-wl, .fa-rule):not(#_):not(#_):not(#_):not(#_) { min-height: 52px; padding-left: 12px !important; padding-right: 12px !important; border-bottom: 1px solid rgba(15,17,21,.07); font-size: 16px; }
  /* every group heading + the Email me footer on the rows' 24px text edge (the later headings' -4px margin put them at 20px,
     the footer at 20px with its switch 4px off the rows' switches; 2026-11-08 spacing pass) */
  html.aiq-phone:is(.at-p-financials, .at-p-m) #fa-pop .fa-ag:not(#_):not(#_):not(#_):not(#_) { margin-left: 0 !important; margin-right: 0 !important; }
  html.aiq-phone:is(.at-p-financials, .at-p-m) #fa-pop .fa-pf:not(#_):not(#_):not(#_):not(#_) { padding-left: 16px !important; padding-right: 16px !important; }
  html.aiq-phone:is(.at-p-financials, .at-p-m) #fa-pop .fa-ag:not(#_):not(#_):not(#_):not(#_) { padding: 16px 12px 6px !important; font: 600 13px/1.2 Inter, system-ui, sans-serif !important; color: #80868F !important; text-transform: none !important; letter-spacing: 0 !important; }
  /* a paid switch answers 402 and the fetch wrapper opens the upgrade pop-up (_upsell.html, z 1100): over this sheet (z 1250) */
  html.aiq-phone:is(.at-p-financials, .at-p-m):has(#fa-pop.ph-sheet:not([hidden])) .up-back:not(#_):not(#_):not(#_):not(#_) { z-index: 1300 !important; }
  html.aiq-phone:is(.at-p-financials, .at-p-m) #fa-pop .pfa-done:not(#_):not(#_):not(#_):not(#_) { display: block; width: calc(100% - 24px); height: 52px; margin: 16px 12px 0; border: 0; border-radius: 999px;
    background: #101112; color: #FFFFFF; font: 600 16px/1 Inter, system-ui, sans-serif; }
}

/* ==== css/aiq-phone-fin-statements.css ==== */
/* Phone look for the stock page's statements pages, aligned with My stocks / Markets (2026-11-01). Loaded on every phone page with
   media="(max-width: 767px)" (_phone.html): every rule stays inside, scoped to html.aiq-phone.
   Statements (Income statement · Balance sheet · Cash flow · KPIs) and Ratios (Profitability · ROIC · Solvency · Other):
   - the page row is an iOS segmented control (as #ph-rtabs, aiq-phone-header.css), short labels;
   - statements get an Annual | Quarterly segmented control (+ the filing currency | USD for non-USD filers) above the table;
   - each table sits in a filled, borderless 18px card (--fst-card, = --rc-card made opaque so the pinned name column can
     cover the figures that scroll under it; phones are always light, aiq-phone-theme.css); cells take the card colour (base.html's white tbody rows / thead cells lose);
   - figures fade out at the right edge while there is more to scroll and fade under the pinned column once scrolled.
   html.ph-fst-s / -k / -r (statements / KPIs / ratios) come from js/aiq-phone-fin-statements.js, so Multiples (same
   Statistics tab, Valuation session) keeps its own look. The ids (:not(#_)) outweigh aiq-phone-fin.css + aiq-phone-record.css. */
@media (max-width: 767px) {
  html.aiq-phone { --fst-card: var(--rc-card, #F4F5F7); --fst-sep: rgba(15,17,21,.07); --fst-track: rgba(118,118,128,.12); }

  /* ── segmented controls: the page row + the period switch ── */
  html.aiq-phone[data-theme] .fin-ph-row.fst-seg:not([hidden]):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
  html.aiq-phone[data-theme] .fst-bar .fst-per:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    display: flex !important; gap: 2px; margin: 2px 4px 12px; padding: 2px; border-radius: 10px; background: var(--fst-track); box-shadow: none;
    overflow-x: auto; scrollbar-width: none; -webkit-mask-image: none; mask-image: none; }
  html.aiq-phone[data-theme] .fin-ph-row.fst-seg > button:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
  html.aiq-phone[data-theme] .fst-bar .fst-per > button:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    flex: 1 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: 0; height: 32px; padding: 0 10px; border: 0; border-radius: 8px;
    background: none; box-shadow: none; color: var(--ph-ink); font: 500 14px/1 Inter, system-ui, sans-serif; letter-spacing: -.01em; white-space: nowrap; cursor: pointer; }
  html.aiq-phone[data-theme] .fin-ph-row.fst-seg > button > i:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone[data-theme] .fin-ph-row.fst-seg > button.is-on:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
  html.aiq-phone[data-theme] .fst-bar .fst-per > button.on:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    background: #FFFFFF; font-weight: 600; box-shadow: 0 1px 3px rgba(15,17,21,.12), 0 0 0 .5px rgba(15,17,21,.04); }
  /* the period bar: Annual | Quarterly fills the row; the currency pair sits beside it at its own width */
  html.aiq-phone[data-theme] .fst-bar:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: flex; gap: 8px; margin: 0 4px 12px; }
  html.aiq-phone[data-theme] .fst-bar[hidden]:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone[data-theme] .fst-bar .fst-per:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { flex: 1 1 auto; margin: 0; }
  html.aiq-phone[data-theme] .fst-bar .fst-per.fst-ccy:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { flex: 0 0 auto; }
  html.aiq-phone[data-theme] .fst-bar .fst-per.fst-ccy > button:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { flex: 0 0 auto; min-width: 56px; }
  /* no quarterly figures: no Quarterly switch; the currency pair then fills the row */
  html.aiq-phone[data-theme] .fst-bar .fst-per[hidden]:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone[data-theme] .fst-bar .fst-per[hidden] + .fst-per.fst-ccy:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { flex: 1 1 auto; }
  html.aiq-phone[data-theme] .fst-bar .fst-per[hidden] + .fst-per.fst-ccy > button:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { flex: 1 0 auto; }

  /* ── statements: the table in a filled card ── */
  html.aiq-phone.ph-fst-s[data-theme] #statements-inner:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { --ph-card: var(--fst-card); --ph-edge: var(--fst-sep); }
  html.aiq-phone.ph-fst-s[data-theme] #statements-inner .stmt-scroll-shell:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    position: relative; margin: 0 4px !important; background: var(--fst-card) !important; border: 0 !important; border-radius: 18px !important;
    box-shadow: none !important; overflow: hidden !important; isolation: isolate; }
  html.aiq-phone.ph-fst-s[data-theme] #statements-inner .stmt-scroll-shell .stmt-table-wrap:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    margin: 0 !important; width: auto !important; border: 0 !important; border-radius: 18px; background: none !important; box-shadow: none !important; }
  html.aiq-phone.ph-fst-s[data-theme] #statements-inner :is(.stmt-fade-right, .stmt-fade-left):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-fst-s[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: transparent !important; border: 0 !important; box-shadow: none !important; }
  /* the corner names the statement already shown in the switch: a quiet label, like the period heads */
  html.aiq-phone.ph-fst-s[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead > tr > th:first-child { color: var(--ph-mut) !important; font-weight: 500 !important; }
  html.aiq-phone.ph-fst-s[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead > tr > th { padding-top: 12px !important; padding-bottom: 8px !important; }
  /* stopped segment lines keep their muted group, with the dashed rule */
  html.aiq-phone.ph-fst-s[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr.stmt-seg-gone-h > td {
    padding-top: 14px !important; padding-bottom: 6px !important; font-size: 12.5px !important; font-weight: 500 !important; color: var(--ph-mut) !important;
    border-top: 1px dashed var(--ph-edge) !important; border-bottom: 0 !important; white-space: nowrap !important; }
  /* iOS Safari doesn't clip pinned (sticky) cells to the scroll box's radius: the corner cells carry it */
  html.aiq-phone.ph-fst-s[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead > tr:first-child > th:first-child { border-top-left-radius: 18px !important; }
  html.aiq-phone.ph-fst-s[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr:last-child > td:first-child { border-bottom-left-radius: 18px !important; }
  html.aiq-phone.ph-fst-s[data-theme] #statements-inner .stmt-data-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr:last-child > td { border-bottom: 0 !important; }

  /* ── ratios (Statistics' Profitability · ROIC · Solvency · Other ratios pages): the tab panel is the card ── */
  html.aiq-phone.ph-fst-r[data-theme] #tab-statistics.tab-panel:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { --ph-card: var(--fst-card); --ph-edge: var(--fst-sep);
    margin: 0 4px !important; padding: 0 !important; background: var(--fst-card) !important; border: 0 !important; border-radius: 18px !important;
    box-shadow: none !important; overflow: hidden !important; isolation: isolate; }
  html.aiq-phone.ph-fst-r[data-theme] #tab-statistics .stx-tview:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 0 !important; width: auto !important; border: 0 !important; background: none !important; border-radius: 18px; }
  html.aiq-phone.ph-fst-r[data-theme] #tab-statistics .stx-at.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: transparent !important; border: 0 !important; box-shadow: none !important; }
  html.aiq-phone.ph-fst-r[data-theme] #tab-statistics .stx-at.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead > tr > th { padding-top: 12px !important; }
  /* no "Metric" in the corner (the switch names the page) */
  html.aiq-phone.ph-fst-r[data-theme] #tab-statistics .stx-at.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead > tr > th:first-child { font-size: 0 !important; color: transparent !important; }
  html.aiq-phone.ph-fst-r[data-theme] #tab-statistics .stx-at.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > thead > tr:first-child > th:first-child { border-top-left-radius: 18px !important; }
  html.aiq-phone.ph-fst-r[data-theme] #tab-statistics .stx-at.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr:last-child > td:first-child { border-bottom-left-radius: 18px !important; }
  html.aiq-phone.ph-fst-r[data-theme] #tab-statistics .stx-at.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr:last-child > td { border-bottom: 0 !important; }

  /* ── KPIs: aiq-phone-kpis.js's cards turn from white + hairline to filled + borderless ── */
  html.aiq-phone[data-theme] main #kd-root:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { --kdp-card: var(--fst-card); --rc-line: var(--fst-sep); }
  html.aiq-phone[data-theme] .lkl-fin .tab-panel #kd-root .kd-card:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: var(--fst-card) !important; border: 0 !important; border-radius: 18px !important; }

  /* ── scroll edges: figures fade out on the right while more columns wait; once scrolled, they fade under the pinned names ── */
  html.aiq-phone.ph-fst-s[data-theme] #statements-inner .stmt-table-wrap.fst-r:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
  html.aiq-phone.ph-fst-r[data-theme] #tab-statistics .stx-tview.fst-r:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 44px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 44px), transparent); }
  html.aiq-phone.ph-fst-s[data-theme] #statements-inner .stmt-table-wrap:not(.fst-r):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_),
  html.aiq-phone.ph-fst-r[data-theme] #tab-statistics .stx-tview:not(.fst-r):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { -webkit-mask-image: none; mask-image: none; }
  html.aiq-phone.ph-fst-s[data-theme] #statements-inner .stmt-table-wrap.fst-l > table > * > tr > :first-child:not([colspan]):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::after,
  html.aiq-phone.ph-fst-r[data-theme] #tab-statistics .stx-tview.fst-l > table > * > tr > :first-child:not([colspan]):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::after,
  html.aiq-phone.ph-fst-k[data-theme] #kd-root .kd-tblwrap.fst-l > table > * > tr > :first-child:not([colspan]):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::after {
    content: ""; position: absolute; top: 0; bottom: 0; right: -14px; width: 14px; background: linear-gradient(90deg, var(--fst-card), transparent); pointer-events: none; }

  /* ── the finance look (2026-11-01): a ratios page with its feature card (js/aiq-phone-fin-valuation.js statHero) — the hero
     sits in the panel, so the card colour moves from the panel to the table ── */
  html.aiq-phone.ph-fst-r[data-theme] #tab-statistics.tab-panel:has(> .pfp-hero):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: none !important; overflow: visible !important; border-radius: 0 !important; }
  html.aiq-phone.ph-fst-r[data-theme] #tab-statistics:has(> .pfp-hero) .stx-tview:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: var(--fst-card) !important; }
  html.aiq-phone.ph-fst-k #kd-root:not(#_):not(#_):not(#_) { padding-top: 8px; }
  /* KPI card headings: ink, like every stock-page heading in the finance look */
  html.aiq-phone.aiq-phone[data-theme] .lkl-fin .tab-panel #kd-root .kd-card[data-ph-h]:not(.kd-empty):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::before { font: 700 19px/1.2 Inter, system-ui, sans-serif !important; letter-spacing: -.02em; color: #101112 !important; }
  /* the money-mix card on top of each statement (js hero(), user 2026-11-08: replaced the card that repeated the table) */
  html.aiq-phone .fst-mix:not(#_):not(#_):not(#_):not(#_) { margin: 0 4px 16px; padding: 18px 18px 14px; background: #FFFFFF; color: #101112; }
  html.aiq-phone .fst-mix-k:not(#_):not(#_):not(#_):not(#_) { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; font: 700 18px/1.25 Inter, system-ui, sans-serif; letter-spacing: -.02em; }
  html.aiq-phone .fst-mix-k span:not(#_):not(#_):not(#_):not(#_) { flex: none; font: 500 13px/1 Inter, system-ui, sans-serif; letter-spacing: 0; color: #80868F; }
  html.aiq-phone .fst-mix-b + .fst-mix-b:not(#_):not(#_):not(#_):not(#_) { margin-top: 18px; }
  html.aiq-phone .fst-mix-h:not(#_):not(#_):not(#_):not(#_) { margin-top: 14px; font: 650 14px/1.2 Inter, system-ui, sans-serif; color: #80868F; }
  html.aiq-phone .fst-mix-bar:not(#_):not(#_):not(#_):not(#_) { display: flex; gap: 3px; height: 26px; margin-top: 12px; }
  html.aiq-phone .fst-mix-bar i:not(#_):not(#_):not(#_):not(#_) { display: block; min-width: 4px; height: 100%; border-radius: 6px; }
  html.aiq-phone .fst-mix ul:not(#_):not(#_):not(#_):not(#_) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px 16px; margin: 14px 0 0; padding: 0; list-style: none; }
  html.aiq-phone .fst-mix li:not(#_):not(#_):not(#_):not(#_) { display: flex; align-items: center; gap: 8px; min-width: 0; font: 500 14px/1.3 Inter, system-ui, sans-serif; color: #3A3F48; }
  html.aiq-phone .fst-mix li span:not(#_):not(#_):not(#_):not(#_) { flex: none; width: 10px; height: 10px; border-radius: 50%; }
  html.aiq-phone .fst-mix li b:not(#_):not(#_):not(#_):not(#_) { margin-left: auto; font-weight: 650; color: #101112; font-variant-numeric: tabular-nums; }

  /* the corner cell names the unit ("USD billions"), as on desktop: the statement's name is already the page title, and
     without it JPM's "203" revenue or KSPI's tenge figures had no scale anywhere on the screen */
  html.aiq-phone:not(.aiq-desk) .stmt-data-table th .fsr-cn:not(#_) { display: none; }
  html.aiq-phone:not(.aiq-desk) .stmt-data-table th .fsr-unit:not(#_) { display: inline; }
}

/* ==== css/aiq-phone-fin-valuation.css ==== */
/* Phone look for the stock page's Valuation + Capital pages, aligned with My stocks / Markets (2026-11-01): filled
   borderless 18px cards (--rc-card), iOS segmented controls instead of underline / capsule tabs, stock rows as My stocks'
   .pc-r cards, no white boxes on grey. Statistics' Multiples page, Comparables and Modeling (Simple layout). JS half: js/aiq-phone-fin-valuation.js. docs/features/financials.md "Phones: Valuation + Capital".
   Loaded on every phone page with media="(max-width: 767px)" (_phone.html): every rule stays inside, scoped to
   html.aiq-phone. The ×9 :not(#_) outranks aiq-phone-fin.css / -record.css / -toggle.css (×6–×9 + an id). */
@media (max-width: 767px) {
  /* solid twin of --rc-card for pinned table columns (rgba would let the scrolled cells show through) */
  html.aiq-phone { --pfv-solid: #FFFFFF; --pfv-track: rgba(118,118,128,.12); --pfv-pill: #FFFFFF; }
  html.aiq-phone[data-theme="dark"] { --pfv-solid: #2F333C; --pfv-track: rgba(118,118,128,.24); --pfv-pill: #636366; }

  /* ── the shared bits: section heading, grouped-list card, iOS segmented control ── */
  html.aiq-phone .pfv-h { margin: 24px 4px 10px; color: var(--rc-head); font: 450 17px/1.2 Inter, system-ui, sans-serif; }
  html.aiq-phone .pfv-list { background: var(--rc-card); border-radius: 18px; overflow: hidden; }
  html.aiq-phone .pfv-r { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 50px; padding: 8px 16px; position: relative;
    color: var(--rc-ink); font: 400 16px/1.3 Inter, system-ui, sans-serif; }
  html.aiq-phone .pfv-r + .pfv-r::before { content: ""; position: absolute; top: 0; left: 16px; right: 0; border-top: 1px solid var(--rc-sep); }
  html.aiq-phone .pfv-r .k { min-width: 0; }
  html.aiq-phone .pfv-r .v { flex: none; font-weight: 500; font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
  html.aiq-phone .pfv-r .v.pos, html.aiq-phone .pfv-r .v .pos { color: var(--tb-pos, #0d8a66); }
  html.aiq-phone .pfv-r .v.neg, html.aiq-phone .pfv-r .v .neg { color: var(--tb-neg, #c8203f); }
  html.aiq-phone .pfv-seg { display: flex; gap: 2px; margin: 4px 0 2px; padding: 2px; border-radius: 10px; background: var(--pfv-track); overflow-x: auto; scrollbar-width: none; }
  html.aiq-phone .pfv-seg::-webkit-scrollbar { display: none; }
  html.aiq-phone .pfv-seg button { flex: 1 0 auto; height: 32px; padding: 0 10px; border: 0; border-radius: 8px; background: none; color: var(--ph-ink);
    font: 500 14px/1 Inter, system-ui, sans-serif; font-variant-numeric: tabular-nums; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone .pfv-seg button.on { background: var(--pfv-pill); font-weight: 600; box-shadow: 0 1px 3px rgba(15,17,21,.12), 0 0 0 .5px rgba(15,17,21,.04); }
  html.aiq-phone[data-theme="dark"] .pfv-seg button.on { color: #FFFFFF; }
  html.aiq-phone .pfv-fr { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 32px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 32px), transparent); }
  html.aiq-phone .pfv-fl { -webkit-mask-image: linear-gradient(90deg, transparent, #000 32px); mask-image: linear-gradient(90deg, transparent, #000 32px); }
  html.aiq-phone .pfv-fl.pfv-fr { -webkit-mask-image: linear-gradient(90deg, transparent, #000 32px, #000 calc(100% - 32px), transparent); mask-image: linear-gradient(90deg, transparent, #000 32px, #000 calc(100% - 32px), transparent); }
  html.aiq-phone .pfv-seg .pfv-lock { flex: none; color: var(--rc-mut); }
  html.aiq-phone .pfv-seg .pfv-lock i { font-size: 15px; }

  /* ── Statistics: the card view replaces the period table (kept hidden as its source) ── */
  html.aiq-phone[data-theme] main #tab-statistics .stx-tview.pfv-off:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone #tab-statistics .pfv-stx { padding: 8px 4px 28px; }
  html.aiq-phone #tab-statistics .pfv-stx .pfv-h:first-of-type { margin-top: 18px; }

  /* ── Comparables ── */
  /* Companies: My stocks' .pc-r cards — white 46px logo square, ticker over name, market cap over a tinted day pill */
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .ph-rlist:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: none !important; border-radius: 0; overflow: visible; }
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .ph-rrow:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::before { content: none !important; }
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .cmp-ph-co:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    min-height: 70px; margin-bottom: 8px; padding: 12px 14px 12px 12px; border-radius: 18px; background: var(--rc-card); gap: 12px; }
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .cmp-ph-co .cmp-logo:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    width: 46px; height: 46px; border-radius: 13px; background: #FFFFFF; box-shadow: inset 0 0 0 1px rgba(16,17,18,.06); display: inline-flex; align-items: center; justify-content: center; }
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .cmp-ph-co .cmp-logo img:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { width: 58%; height: 58%; }
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .cmp-ph-co .cmp-logo .mono:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { color: #80868F; font-size: 17px; }
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .cmp-ph-co .k b:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { font-size: 16px !important; font-weight: 600 !important; line-height: 20px; }
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .cmp-ph-co .val:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { gap: 4px; font-weight: 600; }
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .cmp-ph-co .val small:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    display: inline-block; padding: 2px 7px; border-radius: 999px; font-size: 12px; font-weight: 600; line-height: 16px; color: var(--rc-mut); background: var(--rc-cap); }
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .cmp-ph-co .val small.pos:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { color: #0d8a66; background: rgba(67,209,167,.14); }
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .cmp-ph-co .val small.neg:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { color: #c8203f; background: rgba(247,52,99,.12); }
  html.aiq-phone[data-theme="dark"] main #comp-root .cmp-ph .cmp-ph-co .val small.pos:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { color: #43D1A7; }
  html.aiq-phone[data-theme="dark"] main #comp-root .cmp-ph .cmp-ph-co .val small.neg:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { color: #F73463; }
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .cmp-ph-co .cv:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none; }
  /* Add / Change peers: the dashed .pc-add card at the end of the list */
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .cmp-ph-edit:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    justify-content: center; gap: 8px; min-height: 56px; margin: 2px 0 0; padding: 0 16px; border: 1.5px dashed var(--rc-capline); border-radius: 18px; background: none; color: var(--rc-mut); }
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .cmp-ph-edit > *:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    flex: none; width: auto; color: var(--rc-mut); font-size: 15px; font-weight: 500; text-align: left; }
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .cmp-ph-edit > i:first-child:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { font-size: 16px; }
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .cmp-ph-edit > .val:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::before { content: "· "; }
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .cmp-ph-edit > .cv:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none; }
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .cmp-ph-edit:active:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: var(--rc-card); }

  /* every card body: filled, borderless */
  html.aiq-phone[data-theme] main #comp-root .cmp-card > :not(.cmp-card-hd):not(.cmp-tbl-ft):not(.pfv-sc):not(.cmp-tbl-body):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    border: 0 !important; background: var(--rc-card) !important; }
  /* Comparison: views as an iOS segmented control above the card, the table on the card's own colour */
  html.aiq-phone[data-theme] main #comp-root .cmp-tbl-body:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: none !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important; overflow: visible !important; }
  html.aiq-phone[data-theme] main #comp-root .cmp-side:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { padding: 0 0 10px !important; }
  html.aiq-phone[data-theme] main #comp-root #cmp-views:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    display: flex !important; gap: 8px !important; padding: 2px 16px 2px 2px !important; margin: 0 -16px 0 0 !important; border-radius: 0 !important; background: none !important; overflow-x: auto; scrollbar-width: none; }
  html.aiq-phone[data-theme] main #comp-root #cmp-views > button:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    flex: 0 0 auto !important; height: 36px !important; padding: 0 16px !important; border: 0 !important; border-radius: 999px !important; background: #FFFFFF !important;
    color: var(--ph-ink) !important; font: 500 14px/1 Inter, system-ui, sans-serif !important; box-shadow: inset 0 0 0 1px rgba(15,17,21,.08) !important; }
  html.aiq-phone[data-theme] main #comp-root #cmp-views > button.on:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) {
    background: #2B2D33 !important; color: #FFFFFF !important; font-weight: 600 !important; box-shadow: none !important; }
  html.aiq-phone[data-theme] main #comp-root .cmp-tbl-body > .cmp-scroll:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: var(--rc-card) !important; border-radius: 18px !important; overflow-x: auto !important; }
  html.aiq-phone[data-theme] main #comp-root .cmp-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > * > tr > :is(th, td) {
    background: var(--pfv-solid) !important; border-color: var(--rc-sep) !important; }
  html.aiq-phone[data-theme] main #comp-root .cmp-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) > tbody > tr:last-child > td { border-bottom-color: var(--rc-sep) !important; }
  html.aiq-phone[data-theme] main #comp-root .cmp-table.aiq-tbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) .cmp-logo {
    background: #FFFFFF; border-radius: 6px; }

  /* Scorecard: one card per company (js builds .pfv-sc; the grade table stays hidden) */
  html.aiq-phone[data-theme] main #comp-root #cmp-score.pfv-off:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone[data-theme] main #comp-root .cmp-card > .pfv-sc:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: block; background: none !important; border: 0 !important; overflow: visible; }
  html.aiq-phone .pfv-co { display: block; margin-bottom: 8px; padding: 12px 14px 14px 12px; border-radius: 18px; background: var(--rc-card); color: var(--rc-ink); text-decoration: none;
    -webkit-tap-highlight-color: transparent; }
  html.aiq-phone .pfv-hd { display: flex; align-items: center; gap: 12px; min-height: 46px; }
  html.aiq-phone .pfv-lw { flex: none; width: 46px; height: 46px; border-radius: 13px; background: #FFFFFF; display: inline-flex; align-items: center; justify-content: center;
    box-shadow: inset 0 0 0 1px rgba(16,17,18,.06); }
  html.aiq-phone .pfv-lw img { width: 27px; height: 27px; object-fit: contain; }
  html.aiq-phone .pfv-lw .mono { color: #80868F; font-size: 17px; font-weight: 600; }
  html.aiq-phone .pfv-nm { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
  html.aiq-phone .pfv-nm b { font-size: 16px; font-weight: 600; line-height: 20px; }
  html.aiq-phone .pfv-nm small { font-size: 13px; color: var(--rc-mut); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.aiq-phone .pfv-ov { flex: none; display: flex; align-items: center; gap: 8px; }
  html.aiq-phone .pfv-ov small, html.aiq-phone .pfv-g small { color: var(--rc-mut); font-size: 12px; }
  html.aiq-phone .pfv-gs { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--rc-sep); }
  html.aiq-phone .pfv-g { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-width: 0; }
  html.aiq-phone .pfv-g small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone .pfv-g .mut { color: var(--rc-mut); font-weight: 500; }
  html.aiq-phone :is(.pfv-g, .pfv-ov) .cmp-g { flex: none; display: inline-grid; place-items: center; min-width: 26px; height: 22px; padding: 0 6px; border-radius: 999px; font-size: 12px; font-weight: 700; }
  html.aiq-phone .pfv-ov .cmp-g { min-width: 30px; height: 26px; font-size: 14px; }

  /* Modeling: css/aiq-phone-models.css (the workbook draws its own phone markup, 2026-11-03) */
  /* Capital structure + Credit and Dividends (the .fxd kit) are drawn by the Company session's js/aiq-phone-fin-company.js
     (phone copies in the record kit); nothing here touches .fxd-*. */

  /* ── the finance look (2026-11-01, Revolut / Wealthsimple; css/aiq-phone-pin.css): Companies grouped in ONE white card —
     round logos, market cap over a small signed change in its colour (no pills), the dashed Add peers card inside at the end ── */
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .ph-rlist:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { padding: 6px 0 !important; background: #FFFFFF !important; border-radius: 22px !important; overflow: hidden !important; }
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .cmp-ph-co:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { min-height: 64px; margin: 0; padding: 10px 16px; border-radius: 0; background: none; }
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .cmp-ph-co .cmp-logo:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { width: 40px; height: 40px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(15,17,21,.07); }
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .cmp-ph-co .val small:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { padding: 0; background: none !important; font-size: 13px; }
  html.aiq-phone[data-theme] main #comp-root .cmp-ph .cmp-ph-edit:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 6px 12px 6px; min-height: 52px; border-radius: 16px; }
  /* the desktop toolbar row above the card has nothing in it on phones: no empty white band */
  html.aiq-phone[data-theme] main #comp-root > .cmp-row3:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }

  /* ── Comparables on phones (user, 2026-11-08: "this table doesn't work well on mobile … multiple cards scrolling down
     with different colors"; no view tabs): the matrix as sections of tinted metric cards, built by _comparables.html
     renderPhoneCards(). ── */
  html.aiq-phone .cmp-phc { display: block; margin-top: 8px; }
  html.aiq-phone #comp-root:has(.cmp-phc > *) :is(.cmp-mx-card, .cmp-views) { display: none !important; }
  html.aiq-phone .cmp-phc .c0 { --t-bg: #E6ECFD; --t-fg: #455DDC; --t-ink: #3049B8; } html.aiq-phone .cmp-phc .c1 { --t-bg: #E2F5EE; --t-fg: #1FAE86; --t-ink: #0F7A62; }
  html.aiq-phone .cmp-phc .c2 { --t-bg: #F0E8FD; --t-fg: #9646EF; --t-ink: #6C3FD1; } html.aiq-phone .cmp-phc .c3 { --t-bg: #FFF0E3; --t-fg: #F07A1F; --t-ink: #B8620E; }
  html.aiq-phone .cmp-phc .c4 { --t-bg: #FCE8EF; --t-fg: #E5426E; --t-ink: #B42357; } html.aiq-phone .cmp-phc .c5 { --t-bg: #E1F2F7; --t-fg: #1C8FB0; --t-ink: #1C6E8A; }
  html.aiq-phone .cmp-pg { margin-top: 26px; }
  html.aiq-phone .cmp-pg-h { display: flex; align-items: center; gap: 10px; margin: 0 2px 12px; }
  html.aiq-phone .cmp-pg-h h3:not(#_):not(#_):not(#_):not(#_) { margin: 0 !important; font: 700 21px/1.2 Inter, system-ui, sans-serif !important; letter-spacing: -.02em !important; color: #101112 !important; text-transform: none !important; }
  html.aiq-phone .cmp-pg-h em { margin-left: auto; min-width: 30px; height: 24px; padding: 0 9px; border-radius: 999px; display: inline-grid; place-items: center;
    background: var(--t-bg); color: var(--t-ink); font: 700 12.5px/1 Inter, sans-serif; font-style: normal; }
  html.aiq-phone .cmp-pc { margin-bottom: 10px; padding: 14px 14px 10px; border-radius: 22px; background: var(--t-bg); }
  html.aiq-phone .cmp-pc-h { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
  html.aiq-phone .cmp-pc-h b { font: 700 15.5px/1.25 Inter, system-ui, sans-serif; color: #101112; }
  html.aiq-phone .cmp-pc-h small { flex: none; font: 600 12.5px/1 Inter, sans-serif; color: #6B7280; font-variant-numeric: tabular-nums; }
  html.aiq-phone .cmp-pr { display: grid; grid-template-columns: 26px 52px minmax(0, 1fr) auto; align-items: center; gap: 8px; min-height: 30px; }
  html.aiq-phone .cmp-pr .cmp-logo { width: 26px; height: 26px; border-radius: 50%; overflow: hidden; background: #FFFFFF; }
  html.aiq-phone :is(.cmp-pr, .cmp-pt) .tk { font: 650 13px/1 Inter, sans-serif; color: #3A3F48; }
  html.aiq-phone .cmp-pr .bar { height: 10px; border-radius: 999px; background: rgba(255,255,255,.75); overflow: hidden; }
  html.aiq-phone .cmp-pr .bar i { display: block; height: 100%; border-radius: 999px; background: var(--t-fg); opacity: .45; }
  html.aiq-phone .cmp-pr.me .bar i { opacity: 1; }
  html.aiq-phone .cmp-pr.me .tk, html.aiq-phone .cmp-pr.me .v { color: #101112; font-weight: 750; }
  html.aiq-phone .cmp-pr .v { font: 600 13.5px/1 Inter, sans-serif; color: #3A3F48; font-variant-numeric: tabular-nums; text-align: right; min-width: 58px; }
  html.aiq-phone .cmp-pr .v.pos { color: #0d8a66; } html.aiq-phone .cmp-pr .v.neg { color: #c8203f; }
  html.aiq-phone .cmp-pt { display: grid; grid-template-columns: 26px 52px minmax(0, 1fr); align-items: center; gap: 8px; min-height: 40px; }
  html.aiq-phone .cmp-pt + .cmp-pt { border-top: 1px solid rgba(16,24,40,.06); }
  html.aiq-phone .cmp-pt .tx { min-width: 0; display: flex; flex-direction: column; gap: 1px; font: 600 13px/1.25 Inter, sans-serif; color: #101112; }
  html.aiq-phone .cmp-pt .tx small { font-weight: 500; color: #6B7280; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.aiq-phone .cmp-pg .cmp-pc.x { display: none; }
  html.aiq-phone .cmp-pg.open .cmp-pc.x { display: block; }
  html.aiq-phone .cmp-pg-all { display: block; width: 100%; height: 44px; margin-top: 2px; border: 0; border-radius: 999px; background: var(--t-bg); color: var(--t-ink);
    font: 650 14.5px/1 Inter, sans-serif; cursor: pointer; }
}

/* ==== css/aiq-phone-fin-company.css ==== */
/* Phone look for the stock page's company pages, aligned with My stocks / Markets (2026-11-01). Loaded on every phone page with
   media="(max-width: 767px)" (_phone.html): every rule stays inside, scoped to html.aiq-phone. The copies (.pfc-*) are drawn
   by js/aiq-phone-fin-company.js from the record kit (aiq-phone-record.css); the wide original they replace gets .pfc-src.
   The :not(#_) runs beat the Attio phone skin's edge-to-edge cards and table rules (aiq-phone-attio.css, aiq-phone-fin.css). */
@media (max-width: 767px) {
  html.aiq-phone .pfc-src:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone :is(.pfc-side, .pfc-copy, .pfc-tx, .pfc-seg) { font-family: Inter, system-ui, sans-serif; }
  html.aiq-phone :is(.pfc-side, .pfc-copy, .pfc-tx) i { font-family: "Phosphor-Regular" !important; }
  html.aiq-phone :is(.pfc-side, .pfc-copy, .pfc-tx) .pos { color: var(--tb-pos, #0d8a66); }
  html.aiq-phone :is(.pfc-side, .pfc-copy, .pfc-tx) .neg { color: var(--tb-neg, #c8203f); }
  html.aiq-phone .pfc-copy { margin: 0; }
  html.aiq-phone .pfc-copy + .pfc-copy, html.aiq-phone .pfc-list + .pfc-list { margin-top: 10px; }

  /* two-line rows: title over its muted line, figure over its detail, a pill at the end */
  html.aiq-phone .pfc-r.two { min-height: 60px; padding-top: 9px; padding-bottom: 9px; }
  html.aiq-phone .pfc-r .k { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone .pfc-r .val { flex: 0 0 auto; max-width: 52%; color: var(--rc-ink); font-weight: 500; }
  html.aiq-phone .pfc-r :is(.k, .val) small { display: block; margin-top: 2px; color: var(--rc-mut); font-size: 13px; font-weight: 400;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone .pfc-r > .ph-rpill { flex: none; font-size: 13px; padding: 2px 9px; min-width: 56px; text-align: center; font-variant-numeric: tabular-nums; }
  html.aiq-phone .pfc-r .ph-rpill.lock i { margin-right: 3px; }
  html.aiq-phone .pfc-r > i:first-child { color: var(--rc-ic); }
  html.aiq-phone .pfc-r.mut .k { color: var(--rc-mut); white-space: normal; }
  html.aiq-phone .pfc-r .pfc-tick { flex: none; font-size: 17px; color: var(--ph-acc, #455DDC); }
  html.aiq-phone .pfc-r.r-on { background: var(--rc-cap); }
  html.aiq-phone .pfc-list .ph-rrow + .ph-rrow::before { left: 16px; }   /* no icon column: the hairline starts with the text */
  html.aiq-phone .pfc-list .ph-rrow:has(> i:first-child) + .ph-rrow::before, html.aiq-phone .pfc-list .ph-rrow + .ph-rrow:has(> i:first-child)::before { left: 52px; }
  html.aiq-phone .pfc-h { margin: 22px 4px 10px; }

  /* ── iOS segmented control: grey track, the open segment a white raised pill ── */
  html.aiq-phone .pfc-seg { --sg-tr: #EBECEF; --sg-on: #FFFFFF; --sg-ink: #101112; --sg-mut: #6F737B;
    display: flex; gap: 2px; padding: 2px; border-radius: 10px; background: var(--sg-tr); }
  html.aiq-phone[data-theme="dark"] .pfc-seg { --sg-tr: rgba(255,255,255,.07); --sg-on: rgba(255,255,255,.16); --sg-ink: #F1F2F4; --sg-mut: #9AA2B4; }
  html.aiq-phone .pfc-seg > button { flex: 1 1 0; min-width: 0; height: 32px; padding: 0 6px; border: 0; border-radius: 8px; background: none; color: var(--sg-mut);
    font: 500 14px/1 Inter, system-ui, sans-serif; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone .pfc-seg > button.on { background: var(--sg-on); color: var(--sg-ink); font-weight: 600; box-shadow: 0 1px 3px rgba(15,17,21,.12), 0 0 0 .5px rgba(15,17,21,.04); }
  html.aiq-phone .pfc-seg.pfc-tabs { margin: 26px 0 16px; }
  /* a switch too long for the row scrolls in its own box, fading at the edge it scrolls toward (never a sliced word) */
  html.aiq-phone .pfc-seg.pfc-mini { flex: none; display: inline-flex; max-width: 100%; overflow-x: auto; scrollbar-width: none; box-sizing: border-box; }
  html.aiq-phone .pfc-seg.pfc-mini::-webkit-scrollbar { display: none; }
  html.aiq-phone .pfc-seg.pfc-mini.pfc-ovf { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent); }
  html.aiq-phone .pfc-seg.pfc-mini.pfc-ovf.pfc-end { -webkit-mask-image: linear-gradient(90deg, transparent, #000 28px); mask-image: linear-gradient(90deg, transparent, #000 28px); }
  html.aiq-phone .pfc-seg.pfc-mini > button { flex: none; height: 28px; padding: 0 9px; font-size: 13px; }

  /* ── Dividends + Capital structure (fin-xdrafts record page A) ── */
  html.aiq-phone main .pfc-fxd .fxd-a-wrap:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; padding: 8px 16px 20px !important; margin: 0 -12px !important;
    background: none !important; border: 0 !important; }
  html.aiq-phone main .pfc-fxd .fxd-a-wrap:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::before { display: none !important; }
  html.aiq-phone main .pfc-fxd :is(.fxd-main, .fxd-pane):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; padding: 0 !important; margin: 0 !important; border: 0 !important; background: none !important; }
  html.aiq-phone .pfc-hero { padding: 6px 4px 2px; }
  html.aiq-phone .pfc-big { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; }
  html.aiq-phone .pfc-big b { font-size: 34px; font-weight: 650; letter-spacing: -.02em; line-height: 1.05; color: var(--rc-ink); font-variant-numeric: tabular-nums; }
  html.aiq-phone .pfc-big > span:not(.ph-rpill) { font-size: 15px; color: var(--rc-mut); }
  html.aiq-phone .pfc-big .ph-rpill { align-self: center; margin-left: 2px; font-size: 13px; padding: 3px 9px; }
  html.aiq-phone .pfc-sub { margin-top: 4px; font-size: 14px; color: var(--rc-mut); }
  html.aiq-phone .pfc-sub a { color: var(--ph-acc, #455DDC); text-decoration: none; }
  html.aiq-phone .pfc-side .pfc-r .val { max-width: 60%; }
  /* the headline figure is the group's one feature card: filled brand blue, white words (css/aiq-phone-theme.css) */
  html.aiq-phone .pfc-side .pfc-hero { margin: 14px 0 0; padding: 16px 16px 15px; border-radius: 18px; background: var(--ph-acc, #455DDC); box-shadow: 0 8px 20px rgba(69,93,220,.22); }
  html.aiq-phone .pfc-side .pfc-hero :is(.pfc-big b, .pfc-big > span, .pfc-sub, .pfc-sub a) { color: #FFFFFF; }
  html.aiq-phone .pfc-side .pfc-hero :is(.pfc-big > span:not(.ph-rpill), .pfc-sub) { opacity: .85; }
  html.aiq-phone .pfc-side .pfc-hero .ph-rpill { background: rgba(255,255,255,.2); color: #FFFFFF; }

  /* the pane: its little header row (View ▾ + range), the chart in a filled card, notes and the projector */
  html.aiq-phone main .pfc-fxd .fxd-pane-h:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: flex !important; align-items: center !important; gap: 8px !important;
    flex-wrap: wrap !important; margin: 0 0 10px !important; padding: 0 !important; border: 0 !important; }
  html.aiq-phone main .pfc-fxd .fxd-pane-h h4:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 14px 4px 0 !important; font: 450 17px/1.2 Inter, system-ui, sans-serif !important;
    color: var(--rc-head) !important; letter-spacing: 0 !important; text-transform: none !important; }
  html.aiq-phone main .pfc-fxd .fxd-pane-h .sp { flex: 1; }
  html.aiq-phone main .pfc-fxd .fxd-pane-h:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::before { display: none !important; }
  /* aiq-phone-fin.css rules the later pane headers off with a hairline + 20px; here the heading's own space is enough */
  html.aiq-phone[data-theme].ph-edge.at-p-financials main .pfc-fxd .fxd-pane > .fxd-pane-h:not(:first-child):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin-top: 8px !important; padding-top: 0 !important; }
  /* a heading straight over a band heading (Credit ratios › Leverage): the band names it */
  html.aiq-phone main .pfc-fxd .fxd-pane-h:has(> h4:only-child):has(+ .fxd-box .pfc-copy > .pfc-h:first-child):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone .pfc-copy > .pfc-h:first-child { margin-top: 14px; }
  html.aiq-phone main .pfc-fxd .fxd-btn:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { height: 32px !important; padding: 0 12px !important; border: 0 !important; border-radius: 999px !important;
    background: var(--rc-cap) !important; color: var(--rc-ink) !important; box-shadow: none !important; font: 500 14px/1 Inter, system-ui, sans-serif !important; }
  html.aiq-phone main .pfc-fxd .fxd-chart:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 0 0 6px !important; padding: 10px 2px 2px 8px !important; border-radius: 18px !important;
    background: var(--rc-card) !important; border: 0 !important; box-sizing: border-box !important; }
  html.aiq-phone main .pfc-fxd :is(.fxd-box, .fxd-tw):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { border: 0 !important; background: none !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; }
  html.aiq-phone main .pfc-fxd .fxd-pane-l:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 0 4px 8px !important; }
  html.aiq-phone main .pfc-fxd .fxd-empty:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { padding: 16px !important; border-radius: 18px !important; background: var(--rc-card) !important;
    color: var(--rc-mut) !important; font-size: 15px !important; text-align: left !important; }
  html.aiq-phone main .pfc-fxd .fxd-note:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 10px 0 0 !important; padding: 0 !important; border: 0 !important; }
  html.aiq-phone main .pfc-fxd .fxd-ghost:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: flex !important; align-items: center !important; justify-content: center !important; width: 100% !important;
    height: 48px !important; border: 0 !important; border-radius: 18px !important; background: var(--rc-card) !important; color: var(--rc-ink) !important; font: 500 15px/1 Inter, system-ui, sans-serif !important; }
  /* the income projector: fields stack in one filled card, results as three small tiles */
  html.aiq-phone main .pfc-fxd .fxd-proj:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: grid !important; grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important; gap: 12px !important;
    margin: 0 0 12px !important; padding: 14px !important; border-radius: 18px !important; background: var(--rc-card) !important; border: 0 !important; }
  html.aiq-phone main .pfc-fxd .fxd-proj .fxd-fl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: flex !important; flex-direction: column !important; gap: 6px !important; font-size: 13px !important; color: var(--rc-mut) !important; }
  html.aiq-phone main .pfc-fxd .fxd-proj .fxd-fl:nth-child(3):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { grid-column: 1 / -1 !important; }
  html.aiq-phone main .pfc-fxd .fxd-proj .fxd-in:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { width: 100% !important; height: 40px !important; padding: 0 12px !important; box-sizing: border-box !important;
    border: 0 !important; border-radius: 12px !important; background: var(--sg-on, #fff) !important; color: var(--rc-ink) !important; font: 500 16px/1 Inter, system-ui, sans-serif !important; box-shadow: inset 0 0 0 1px var(--rc-line) !important; }
  html.aiq-phone[data-theme="dark"] main .pfc-fxd .fxd-proj .fxd-in:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: rgba(255,255,255,.06) !important; }
  html.aiq-phone main .pfc-fxd .fxd-proj .pfc-seg:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: flex !important; }
  html.aiq-phone main .pfc-fxd .fxd-proj .pfc-seg > button:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { flex: 1 1 0 !important; }
  html.aiq-phone main .pfc-fxd .fxd-chk:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { grid-column: 1 / -1 !important; justify-self: start !important; color: var(--rc-ink) !important; font-size: 15px !important; }
  html.aiq-phone main .pfc-fxd .fxd-proj-out:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap: 8px !important;
    margin: 0 0 12px !important; padding: 0 !important; border: 0 !important; }
  html.aiq-phone main .pfc-fxd .fxd-proj-out > div:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: flex !important; flex-direction: column !important; justify-content: space-between !important; gap: 10px !important; padding: 12px !important;
    border-radius: 16px !important; background: var(--rc-card) !important; border: 0 !important; font-size: 12px !important; color: var(--rc-mut) !important; line-height: 1.25 !important; }
  html.aiq-phone main .pfc-fxd .fxd-proj-out b:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; font-size: 17px !important; font-weight: 600 !important; color: var(--rc-ink) !important; }

  /* ── Insiders: each trade its own filled card (as the site-wide Insiders page): face square, name over role · date,
        amount over a Buy / Sell pill. Rows from js/aiq-phone-company.js (list .t-ins). ── */
  html.aiq-phone .co-ph .ph-rlist.t-ins { background: none; border-radius: 0; overflow: visible; }
  html.aiq-phone .co-ph .ph-rlist.t-ins > .ph-rrow { min-height: 70px; margin-bottom: 8px; padding: 12px 14px 12px 12px; border-radius: 18px; background: var(--rc-card); }
  html.aiq-phone .co-ph .ph-rlist.t-ins > .ph-rrow::before { display: none; }
  html.aiq-phone .co-ph .ph-rlist.t-ins > .ph-rrow:active { background: var(--rc-cap); }
  html.aiq-phone .co-ph .ph-rlist.t-ins .ph-rrow .lg.av { width: 46px; height: 46px; border-radius: 13px; background: #FFFFFF; color: var(--rc-mut); font-size: 14px;
    box-shadow: inset 0 0 0 1px rgba(16,17,18,.06); }
  html.aiq-phone[data-theme="dark"] .co-ph .ph-rlist.t-ins .ph-rrow .lg.av { background: rgba(255,255,255,.08); color: #C2C8D4; box-shadow: none; }
  html.aiq-phone .co-ph .ph-rlist.t-ins .ph-rrow .k { font-weight: 600; }
  html.aiq-phone .co-ph .ph-rlist.t-ins .ph-rrow .k small { font-weight: 400; }
  html.aiq-phone .co-ph .ph-rlist.t-ins .ph-rrow .val { color: var(--rc-ink); font-weight: 600; }
  html.aiq-phone .co-ph .ph-rlist.t-ins .ph-rrow .val small { margin-top: 5px; overflow: visible; }
  html.aiq-phone .co-ph .ph-rlist.t-ins .ph-rrow .val small .ph-rpill { font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 999px; }
  html.aiq-phone .co-ph .ph-rlist.t-ins .ph-rrow .cv { display: none; }
  html.aiq-phone .co-ph .ph-rlist.t-ins .ph-rrow > i:first-child { width: 46px; font-size: 20px; }

  /* Congress trades in this stock: the same cards */
  html.aiq-phone main .fi-cg:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 18px 4px 0 !important; padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; }
  html.aiq-phone main .fi-cg:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::before, html.aiq-phone main .fi-cg:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::after { display: none !important; }
  html.aiq-phone .fi-cg .fi-cg-h { padding: 4px 4px 10px; }
  html.aiq-phone .fi-cg .cg-card-t { font: 450 17px/1.2 Inter, system-ui, sans-serif !important; color: var(--rc-head) !important; }
  html.aiq-phone .fi-cg .cg-card-m { margin-top: 2px; font-size: 13px; color: var(--rc-mut); }
  html.aiq-phone .fi-cg .cg-foot { padding: 4px 0 0 !important; }
  html.aiq-phone .fi-cg .cg-foot #fi-cg-count { display: none; }
  html.aiq-phone .fi-cg .cg-more { width: 100%; height: 48px; border: 0; border-radius: 18px; background: var(--rc-card); color: var(--rc-ink); font: 500 15px/1 Inter, system-ui, sans-serif; }
  html.aiq-phone .fi-cg :is(.cg-empty-s, .fi-lock) { margin: 0; padding: 14px 16px; border-radius: 18px; background: var(--rc-card); color: var(--rc-mut); font-size: 15px; border: 0; }
  html.aiq-phone .fi-cg .fi-lock { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 8px; }
  html.aiq-phone .pfc-card { display: flex; align-items: center; gap: 12px; min-height: 46px; margin-bottom: 8px; padding: 12px 14px 12px 12px; border-radius: 18px;
    background: var(--rc-card); color: var(--rc-ink); text-decoration: none; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone .pfc-card:active { background: var(--rc-cap); }
  html.aiq-phone .pfc-av { flex: none; width: 46px; height: 46px; border-radius: 13px; overflow: hidden; display: grid; place-items: center; background: #FFFFFF;
    box-shadow: inset 0 0 0 1px rgba(16,17,18,.06); color: var(--rc-mut); font-weight: 600; }
  html.aiq-phone[data-theme="dark"] .pfc-av { background: rgba(255,255,255,.08); box-shadow: none; }
  html.aiq-phone .pfc-av img { width: 100%; height: 100%; object-fit: cover; }
  html.aiq-phone .pfc-nm { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
  html.aiq-phone .pfc-nm b { font-size: 16px; font-weight: 600; line-height: 20px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone .pfc-nm small { font-size: 13px; color: var(--rc-mut); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.aiq-phone .pfc-pr { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 5px; max-width: 46%; font-variant-numeric: tabular-nums; }
  html.aiq-phone .pfc-pr b { font-size: 15px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
  html.aiq-phone .pfc-pr .ph-rpill { font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 999px; }

  /* ── Transcripts: one row naming the open call (a tap lists every call), then the call in the record type ── */
  html.aiq-phone .pfc-tx { margin: 4px 0 18px; }
  html.aiq-phone .pfc-pick { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 62px; padding: 9px 14px 9px 16px; border: 0; border-radius: 18px;
    background: var(--rc-card); color: var(--rc-ink); font: 600 16px/1.3 Inter, system-ui, sans-serif; text-align: left; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone .pfc-pick > i { font-size: 21px; color: var(--ph-acc, #455DDC); }
  html.aiq-phone .pfc-pick .k { flex: 1; min-width: 0; }
  html.aiq-phone .pfc-pick .k small { display: block; margin-top: 2px; font-size: 13px; font-weight: 400; color: var(--rc-mut); }
  html.aiq-phone .pfc-pick .pfc-all { flex: none; display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 500; color: var(--rc-mut); }
  html.aiq-phone .pfc-pick .pfc-all i { font-size: 14px; }
  html.aiq-phone .pfc-tx.is-open .pfc-pick { border-radius: 18px 18px 0 0; }
  html.aiq-phone .pfc-tx.is-open .pfc-pick .pfc-all i { transform: rotate(180deg); }
  html.aiq-phone .pfc-tx .pfc-calls { display: none; }
  html.aiq-phone .pfc-tx.is-open .pfc-calls { display: block; }
  html.aiq-phone .pfc-tx.is-open .pfc-pick + .pfc-calls { border-radius: 0 0 18px 18px; box-shadow: inset 0 1px 0 var(--rc-sep); }
  html.aiq-phone .pfc-tx .pfc-calls .ph-rrow { min-height: 50px; }
  html.aiq-phone .pfc-tx .pfc-calls .ph-rrow + .ph-rrow::before { left: 16px; }
  html.aiq-phone .pfc-tx .pfc-calls .val { color: var(--rc-mut); font-weight: 400; }
  html.aiq-phone .pfc-tx .ph-rh:first-child { margin-top: 6px; }

  html.aiq-phone main #tab-transcripts .tx-root:not(#_):not(#_):not(#_) { --tx-ink: var(--rc-ink); --tx-text: var(--rc-ink); --tx-mute: var(--rc-mut); --tx-faint: var(--rc-mut); --tx-line: var(--rc-sep);
    padding: 0 4px; }
  html.aiq-phone main #tab-transcripts .tx-lay:not(#_):not(#_):not(#_) { display: block; }
  html.aiq-phone main #tab-transcripts .tx-body:not(#_):not(#_):not(#_) { padding: 0; max-width: none; }
  html.aiq-phone main #tab-transcripts .tx-top:not(#_):not(#_):not(#_) { align-items: center; margin: 0 0 14px; padding: 0 4px; }
  html.aiq-phone main #tab-transcripts .tx-title:not(#_):not(#_):not(#_) { font: 650 20px/1.25 Inter, system-ui, sans-serif; letter-spacing: -.01em; }
  html.aiq-phone main #tab-transcripts .tx-date:not(#_):not(#_):not(#_) { margin-top: 3px; font: 400 14px/1.3 Inter, system-ui, sans-serif; color: var(--rc-mut); }
  html.aiq-phone main #tab-transcripts .tx-btn:not(#_):not(#_):not(#_) { height: 34px !important; padding: 0 14px !important; border-radius: 999px !important; background: var(--rc-cap) !important;
    color: var(--rc-ink) !important; box-shadow: none !important; font: 500 14px/1 Inter, system-ui, sans-serif !important; }
  html.aiq-phone main #tab-transcripts .tx-btn.sq:not(#_):not(#_):not(#_) { width: 34px !important; padding: 0 !important; }
  html.aiq-phone main #tab-transcripts .tx-takeaways:not(#_):not(#_):not(#_) { margin: 0 0 22px; padding: 4px 16px; border-radius: 18px !important; background: var(--rc-card); box-shadow: none; }
  html.aiq-phone main #tab-transcripts .tx-takeaways-title:not(#_):not(#_):not(#_) { margin: 0 -16px; padding: 12px 16px 4px; font: 450 13px/1.2 Inter, system-ui, sans-serif; color: var(--rc-mut); }
  html.aiq-phone main #tab-transcripts .tx-takeaways li:not(#_):not(#_):not(#_) { margin: 0; padding: 12px 0; font: 400 15px/1.5 Inter, system-ui, sans-serif; color: var(--rc-ink); }
  html.aiq-phone main #tab-transcripts .tx-takeaways li + li:not(#_):not(#_):not(#_) { border-top: 1px solid var(--rc-sep); }
  html.aiq-phone main #tab-transcripts .tx-tone:not(#_):not(#_):not(#_) { height: 22px; padding: 0 8px; border-radius: 999px; box-shadow: none; font: 600 12px/22px Inter, system-ui, sans-serif; }
  html.aiq-phone main #tab-transcripts .tx-section-heading:not(#_):not(#_):not(#_) { margin: 4px 0 0; padding: 18px 4px 10px; border: 0; font: 450 17px/1.2 Inter, system-ui, sans-serif; color: var(--rc-head); }
  html.aiq-phone main #tab-transcripts .tx-block:not(#_):not(#_):not(#_) { margin: 0 0 18px; padding: 0 4px; }
  html.aiq-phone main #tab-transcripts .tx-block.tx-reading:not(#_):not(#_):not(#_) { margin: 0 0 14px; padding: 8px 10px; border-radius: 14px; }
  html.aiq-phone main #tab-transcripts .tx-speaker:not(#_):not(#_):not(#_) { align-items: center; gap: 8px; margin-bottom: 6px; font: 600 15px/1.3 Inter, system-ui, sans-serif; color: var(--rc-ink); flex-wrap: wrap; }
  html.aiq-phone main #tab-transcripts .tx-av:not(#_):not(#_):not(#_) { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; flex: none;
    background: var(--rc-cap); color: var(--rc-mut); box-shadow: none; font: 600 12px/1 Inter, system-ui, sans-serif; }
  html.aiq-phone main #tab-transcripts .tx-role:not(#_):not(#_):not(#_) { font: 400 13px/1.3 Inter, system-ui, sans-serif; color: var(--rc-mut); }
  html.aiq-phone main #tab-transcripts .tx-root .tx-block > .tx-text:not(#_):not(#_):not(#_) { padding-left: 0; font: 400 15px/1.6 Inter, system-ui, sans-serif; color: var(--rc-ink); }
  html.aiq-phone main #tab-transcripts .tx-none:not(#_):not(#_):not(#_) { padding: 28px 16px; border: 0; border-radius: 18px; background: var(--rc-card); }
  html.aiq-phone main #tab-transcripts .tx-root > .tx-none:not(#_):not(#_):not(#_) { margin-top: 6px; }
  /* the Plus lock under the list of calls: a filled card, no frame */
  html.aiq-phone main #tab-transcripts .tx-body > :is(.pro-locked, .aiq-locked, [class*="locked"]):not(#_):not(#_):not(#_) { margin: 0; border: 0 !important; border-radius: 18px !important;
    background: var(--rc-card) !important; box-shadow: none !important; }

  /* ── Patents / Subsidiaries / Acquisitions: empty states as a filled card, the 10-K line plain ── */
  html.aiq-phone main :is(#pat-root .pat-empty, #sub-root .sub-empty):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 10px 4px 0 !important; padding: 14px 16px !important;
    border: 0 !important; border-radius: 18px !important; background: var(--rc-card) !important; color: var(--rc-mut) !important; font-size: 15px !important; }
  html.aiq-phone :is(#pat-root, #sub-root) > .pfc-copy { margin: 10px 4px 0; }

  /* ── Dividends for a company that doesn't pay one: just the message in a filled card (the header names the page) ── */
  html.aiq-phone main #dv-root:has(.dv-hero-empty) > .fx-head:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone main #dv-root:has(.dv-hero-empty) > .fx-card:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 10px 4px 0 !important; padding: 0 !important; border: 0 !important;
    border-radius: 18px !important; background: var(--rc-card) !important; box-shadow: none !important; animation: none !important; opacity: 1 !important; }
  html.aiq-phone main #dv-root:has(.dv-hero-empty) > .fx-card:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::before { display: none !important; }
  html.aiq-phone #dv-root .dv-hero-empty { padding: 28px 18px; }
  html.aiq-phone #dv-root .dv-hero-empty b { color: var(--rc-ink); font-size: 17px; font-weight: 600; }
  html.aiq-phone #dv-root .dv-hero-empty p { color: var(--rc-mut); font-size: 15px; }

  html.aiq-phone #dv-root .dv-hero-empty svg { display: block; margin: 0 auto 10px; }
  /* Capital structure off SEC filers (a non-US listing): the message as a filled card */
  html.aiq-phone[data-theme] main .fxd-root > .fxd-bcard:has(> .fxd-empty:only-child):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 10px 4px 0 !important; padding: 0 !important;
    border: 0 !important; border-radius: 18px !important; background: var(--rc-card) !important; box-shadow: none !important; width: auto !important; }
  html.aiq-phone[data-theme] main .fxd-root > .fxd-bcard:has(> .fxd-empty:only-child):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::before { display: none !important; }
  html.aiq-phone[data-theme] main .fxd-root > .fxd-bcard > .fxd-empty:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { padding: 28px 18px !important; color: var(--rc-mut) !important;
    font-size: 15px !important; line-height: 1.45 !important; text-align: center !important; }
  html.aiq-phone[data-theme] main .fxd-root > .fxd-bcard > .fxd-empty b:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; margin-bottom: 4px !important; color: var(--rc-ink) !important;
    font-size: 17px !important; font-weight: 600 !important; }

  /* Guidance with nothing to show (scroll layout B): no "Guidance / AAPL" title over it, the header names the page */
  html.aiq-phone[data-theme] main .fxd-root > .fxd-b-head:has(+ .fxd-bcard > .fxd-empty:only-child):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }

  /* Insiders' price chart card: filled and borderless like the cards round it */
  html.aiq-phone #fi-root.co-fi .fi-chart-card:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { border: 0 !important; }

  /* ── the finance look (2026-11-01, Revolut / Wealthsimple; replaced the same day's charcoal hero): Dividends' / Capital
     structure's headline figure is the page's white feature card, the figure large, ink words ── */
  html.aiq-phone .pfc-side .pfc-hero:not(#_):not(#_) { margin: 6px 0 0; padding: 18px 18px 16px; border-radius: 22px; background: #FFFFFF; box-shadow: none; }
  html.aiq-phone .pfc-side .pfc-hero .pfc-big b:not(#_):not(#_) { font-size: 36px !important; font-weight: 700 !important; letter-spacing: -.03em; color: #101112; }
  html.aiq-phone .pfc-side .pfc-hero .pfc-big > span:not(.ph-rpill):not(#_):not(#_) { font-size: 15px; font-weight: 500; color: #80868F; opacity: 1; }
  html.aiq-phone .pfc-side .pfc-hero .pfc-sub:not(#_):not(#_) { margin-top: 8px; color: #80868F; opacity: 1; }
  html.aiq-phone .pfc-side .pfc-hero .pfc-sub a:not(#_):not(#_) { color: #455DDC; }
  html.aiq-phone .pfc-side .pfc-hero .ph-rpill:not(#_):not(#_) { background: #EEF0FD; color: #455DDC; font-weight: 600; }
}

/* ==== css/aiq-phone-pin-records.css ==== */
/* Record and other pages in the phone finance look (user, 2026-11-01: Revolut / Wealthsimple shots, replacing the same
   day's Pinterest colour blocks as "not 'finance' enough"; shared kit css/aiq-phone-pin.css). Congress member, an
   investor, Supply chain (html.pin-rec, set by js/aiq-phone-pin-records.js) and Account (/me): a large title-case name
   with the photo (circle) / logo (rounded square) above it, the headline figure as a white balance card (Revolut's: a quiet
   label over a big figure), the other Highlights white cards with a muted label and a plain figure, changes as small
   signed green / red text, lists grouped in one white card on the grey page. Colour only on gains / losses and the brand
   blue. The Overview · … switch, ‹ Back and desktop are untouched. Phones only: every rule stays inside the media query. */
@media (max-width: 767px) {
  /* ── the record header: the small header keeps ‹ Back and its menu, the name goes large above the switch ── */
  html.aiq-phone.pin-rec #ph-th .ph-th-t:not(#_):not(#_):not(#_):not(#_) { visibility: hidden; }
  html.aiq-phone .prc-hd { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin: 2px 0 14px; padding: 0 16px; }
  html.aiq-phone .prc-face { width: 64px; height: 64px; flex: none; display: grid; place-items: center; overflow: hidden; border-radius: 18px;
    background: #FFFFFF; color: #80868F; box-shadow: inset 0 0 0 1px rgba(15,17,21,.07); font: 700 26px/1 Inter, system-ui, sans-serif; }
  html.aiq-phone .prc-face.rd { border-radius: 50%; }
  html.aiq-phone .prc-face img { width: 100%; height: 100%; object-fit: cover; }
  html.aiq-phone .prc-face:not(.rd) img { object-fit: contain; padding: 11px; }
  html.aiq-phone .prc-t { margin: 0; font: 700 34px/1.05 Inter, system-ui, sans-serif; letter-spacing: -.03em; text-transform: none; color: #101112;
    overflow-wrap: anywhere; }
  html.aiq-phone .prc-t.prc-dup small { margin-top: 0; }   /* the name is the header's: only the line under it */
  html.aiq-phone .prc-t small { display: block; margin-top: 6px; font: 500 14px/1.2 Inter, system-ui, sans-serif; letter-spacing: 0; color: #80868F; }
  /* Supply chain: the price line sits under the name (its logo and name are the ones above) */
  html.aiq-phone .prc-t .ph-sc-id:not(#_):not(#_) { justify-content: flex-start; margin: 6px 0 0; padding: 0; letter-spacing: 0; }
  html.aiq-phone .prc-t .ph-sc-id :is(img, .nm):not(#_):not(#_) { display: none; }
  html.aiq-phone .prc-t .ph-sc-id .p:not(#_):not(#_) { font-size: 15px; font-weight: 600; }
  html.aiq-phone .prc-t .ph-sc-id .c:not(#_):not(#_) { font-size: 13px; font-weight: 600; }

  /* ── Highlights: white cards, muted label, plain figure (beats aiq-phone-theme.css's brand-blue first card) ── */
  html.aiq-phone.pin-rec .ph-rcards > .ph-rcard:not(#_):not(#_) { min-height: 100px; border: 0; border-radius: 20px; box-shadow: none; color: #101112; background: #FFFFFF; }
  html.aiq-phone.pin-rec .ph-rcards > .ph-rcard :is(.l, .l span):not(#_):not(#_) { color: #80868F; opacity: 1; font-weight: 500; }
  html.aiq-phone.pin-rec .ph-rcards > .ph-rcard .l i:not(#_):not(#_) { display: none; }
  html.aiq-phone.pin-rec .ph-rcards > .ph-rcard .v:not(#_):not(#_),
  html.aiq-phone.pin-rec .ph-rcards > .ph-rcard .v :is(span, b):not(.ph-rpill):not(.pos):not(.neg):not(#_):not(#_) { color: #101112; font-size: 22px; line-height: 1.2;
    font-weight: 700; letter-spacing: -.02em; }
  html.aiq-phone.pin-rec .ph-rcards > .ph-rcard .v :is(.pos, .neg):not(#_):not(#_) { font-size: 22px; font-weight: 700; }
  /* …in their own colours: the theme's first-card rule (aiq-phone-theme.css: white words on the old blue feature card) left a
     green / red first figure white on these white cards — an investor's "Return · 1Y" read as empty (2026-11-07) */
  html.aiq-phone.pin-rec .ph-rcards > .ph-rcard .v .pos:not(#_):not(#_) { color: #0d8a66; }
  html.aiq-phone.pin-rec .ph-rcards > .ph-rcard .v .neg:not(#_):not(#_) { color: #c8203f; }
  html.aiq-phone.pin-rec .ph-rcards > .ph-rcard .v.mut:not(#_):not(#_) { color: #A3A8B2; font-weight: 500; }
  /* a pill in a card (Filed late, a party) is plain text: red for a warning, ink otherwise */
  html.aiq-phone.pin-rec .ph-rcards > .ph-rcard .ph-rpill:not(#_):not(#_) { padding: 0; background: none; color: #101112; font-size: 22px; font-weight: 700; }
  html.aiq-phone.pin-rec .ph-rcards > .ph-rcard .ph-rpill.rose:not(#_):not(#_) { color: #c8203f; }

  /* the headline figure: one white balance card across both columns, a big figure under a quiet label */
  html.aiq-phone.pin-rec-hero .ph-rov .ph-rcards > .ph-rcard:first-child:not(#_):not(#_) { grid-column: 1 / -1; min-height: 0; gap: 6px; padding: 18px 18px 20px; border-radius: 22px;
    justify-content: flex-start; }
  html.aiq-phone.pin-rec-hero .ph-rov .ph-rcards > .ph-rcard:first-child .v:not(#_):not(#_),
  html.aiq-phone.pin-rec-hero .ph-rov .ph-rcards > .ph-rcard:first-child .v :is(span, b):not(.ph-rpill):not(#_):not(#_) { font-size: 40px; line-height: 1.1; letter-spacing: -.03em; }
  /* a card left over after the hero takes the whole row, never a lone half */
  html.aiq-phone.pin-rec-hero .ph-rov .ph-rcards > .ph-rcard:last-child:nth-child(even) { grid-column: 1 / -1; }

  /* section headings: quiet title case; lists and text in white cards on the grey page */
  html.aiq-phone.pin-rec .ph-rh:not(#_):not(#_) { color: #101112; font-size: 19px; font-weight: 700; letter-spacing: -.02em; }
  html.aiq-phone.pin-rec :is(.ph-rlist, .ph-rtext):not(#_):not(#_) { border: 0; border-radius: 22px; background: #FFFFFF; }
  html.aiq-phone.pin-rec .ph-rrow .lg :is(img, .lt):not(#_):not(#_) { border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(15,17,21,.07); }
  html.aiq-phone.pin-rec .ph-rrow .val .ph-rpill:not(#_):not(#_) { padding: 0; background: none; font-size: inherit; font-weight: 500; color: #101112; }

  /* Supply chain's Suppliers / Customers: one white card, round logos */
  html.aiq-phone.pin-rec.ph-rsc #ph-sc:not(#_):not(#_):not(#_):not(#_) { border: 0; border-radius: 22px; background: #FFFFFF; padding: 4px 0; }
  html.aiq-phone.pin-rec.ph-rsc #ph-sc .psc-r + .psc-r:not(#_):not(#_):not(#_):not(#_)::before { display: none; }
  html.aiq-phone.pin-rec.ph-rsc #ph-sc .psc-lg:not(#_):not(#_):not(#_):not(#_) { width: 40px; height: 40px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(15,17,21,.07); }
  html.aiq-phone.pin-rec.ph-rsc #ph-sc .psc-lg img:not(#_):not(#_):not(#_):not(#_) { width: 24px; height: 24px; }
  html.aiq-phone.pin-rec.ph-rsc #ph-sc .psc-v:not(#_):not(#_):not(#_):not(#_) { font-weight: 600; }

  /* ── Account (/me, phone/account.html): a large title, you and the lists in white cards, the Pro offer softly tinted.
     Beats aiq-phone-account.css's "looks like Explore" rules (one more :not(#_), same !important). ── */
  html.aiq-phone[data-theme] main .ac .ac-title:not(#_):not(#_):not(#_):not(#_) { display: block !important; margin: 2px 0 14px !important; font: 700 34px/1.05 Inter, system-ui, sans-serif !important;
    letter-spacing: -.03em; text-transform: none; color: #101112 !important; }
  html.aiq-phone:has(.ac .ac-title) #ph-th .ph-th-t:not(#_):not(#_):not(#_):not(#_) { visibility: hidden; }
  html.aiq-phone[data-theme] main .ac .ac-grp:not(#_):not(#_):not(#_):not(#_) { border: 0 !important; border-radius: 22px !important; background: #FFFFFF !important; }
  html.aiq-phone[data-theme] main .ac .ac-me:not(#_):not(#_):not(#_):not(#_) { gap: 14px; padding: 16px !important; }
  html.aiq-phone[data-theme] main .ac .ac-me .ac-av:not(#_):not(#_):not(#_):not(#_) { width: 52px; height: 52px; font-size: 20px; }
  html.aiq-phone[data-theme] main .ac .ac-me b:not(#_):not(#_):not(#_):not(#_) { font-size: 19px; font-weight: 700; letter-spacing: -.02em; }
  html.aiq-phone[data-theme] main .ac .ac-pro:not(#_):not(#_):not(#_):not(#_) { padding: 16px; border: 0 !important; border-radius: 22px !important; background: #EEF1FD !important; }
  html.aiq-phone[data-theme] main .ac .ac-pro .lg:not(#_):not(#_):not(#_):not(#_) { border-radius: 50% !important; background: #FFFFFF; }
  html.aiq-phone[data-theme] main .ac .ac-pro .up:not(#_):not(#_):not(#_):not(#_) { background: #455DDC; color: #FFFFFF; }
  html.aiq-phone[data-theme] main .ac .ac-h:not(#_):not(#_):not(#_):not(#_) { margin: 24px 4px 8px !important; color: #101112 !important; font-size: 19px !important; font-weight: 700 !important; letter-spacing: -.02em; }
}

/* ==== css/aiq-phone-models.css ==== */
/* Models on phones (user, 2026-11-03: "rebuild the entire models part of our website for mobile using our mobile theme").
   js/modeling-wb.js draws its own phone markup when html.aiq-phone is on at a phone width (#mw-root gets .mp): the
   company line, the model's name as the large title, the answer as the white hero card, the sheets as one row of pills,
   then each section as a plain title + white card. Tables scroll sideways in their own box with the label column pinned.
   The finance look (css/aiq-phone-pin.css, aiq-phone-theme.css): grey page, white 22px cards, ink #101112, muted
   #80868F, the one accent #455DDC, gains #0d8a66 / losses #c8203f. Loaded with media="(max-width: 767px)": every rule
   stays inside. */
@media (max-width: 767px) {
  html.aiq-phone #mw-root.mp { --mp-ink: #101112; --mp-mut: #80868F; --mp-line: rgba(15,17,21,.07); --mp-fill: #F2F3F5; --mp-in: rgba(69,93,220,.08); --mp-acc: #455DDC;
    padding: 0 4px 24px !important; color: var(--mp-ink); font-family: Inter, system-ui, sans-serif; font-variant-numeric: tabular-nums; background: transparent !important; }
  /* the panel around it takes the grey page (no white band behind the cards) */
  html.aiq-phone #tab-modeling:has(> #mw-root.mp), html.aiq-phone #tab-modeling:has(#mw-root.mp) { background: transparent !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; }
  /* the stock page's big page title + company line: the model draws its own (below) */
  html.aiq-phone:has(#mtab-modeling.active-tab) #pfp-t { display: none !important; }
  /* …and the header's large page name ("Models"): the model's name is the title, the header keeps ‹ and its buttons */
  html.aiq-phone:has(#mtab-modeling.active-tab):has(#mw-root.mp) #ph-th .ph-th-t:not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone:has(#mtab-modeling.active-tab) main .at-ft:not(#_):not(#_) { display: none !important; }

  /* ── header: company line, large title, quiet meta line ── */
  html.aiq-phone #mw-root.mp .mp-hd { padding: 4px 2px 14px; }
  html.aiq-phone #mw-root.mp .mp-co { display: flex; align-items: center; gap: 8px; min-width: 0; color: var(--mp-mut); font-size: 14px; font-weight: 500; }
  html.aiq-phone #mw-root.mp .mp-co .mw-logo { flex: none; width: 22px; height: 22px; border-radius: 50%; object-fit: contain; background: #FFFFFF; box-shadow: inset 0 0 0 1px var(--mp-line); }
  html.aiq-phone #mw-root.mp .mp-co .mw-lt { display: grid; place-items: center; font-size: 11px; font-weight: 600; color: var(--mp-mut); }
  html.aiq-phone #mw-root.mp .mp-co b { color: var(--mp-ink); font-weight: 600; }
  html.aiq-phone #mw-root.mp .mp-co span { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
  html.aiq-phone #mw-root.mp .mp-h1:not(#_) { display: flex; align-items: center; gap: 4px; margin-top: 8px; }
  html.aiq-phone #mw-root.mp .mp-h1 .nm:not(#_) { flex: 1 1 auto; min-width: 0; padding: 0; font: 700 32px/1.1 Inter, system-ui, sans-serif; letter-spacing: -.03em; color: var(--mp-ink);
    white-space: normal; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; cursor: text; background: none; }
  html.aiq-phone #mw-root.mp .mp-h1 input:not(#_) { flex: 1 1 auto; min-width: 0; width: 100%; padding: 0; border: 0; outline: 0; background: none; font: 700 28px/1.1 Inter, system-ui, sans-serif; letter-spacing: -.03em; color: var(--mp-ink); }
  html.aiq-phone #mw-root.mp .mp-ib { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border: 0; border-radius: 50%; background: #FFFFFF; color: var(--mp-ink); font-size: 18px; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone #mw-root.mp .mp-ib:active { background: #E6E8EC; }
  html.aiq-phone #mw-root.mp .mp-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 0; margin-top: 8px; color: var(--mp-mut); font-size: 14px; font-weight: 500; }
  html.aiq-phone #mw-root.mp .mp-meta > span + span::before { content: "·"; margin: 0 6px; }
  html.aiq-phone #mw-root.mp .mp-meta .mw-saved:empty { display: none; }
  html.aiq-phone #mw-root.mp .mp-meta .mw-saved:not(#_) { display: inline-flex; align-items: center; gap: 4px; padding: 0; font-size: 14px; color: var(--mp-mut); background: none; }
  html.aiq-phone #mw-root.mp .mp-meta .mw-saved a { color: var(--mp-acc); font-weight: 600; text-decoration: none; }

  /* ── the answer: white hero card ── */
  html.aiq-phone #mw-root.mp .mp-hero { display: flex; flex-direction: column; margin: 0 0 14px; padding: 18px 18px 6px; border-radius: 22px; background: #FFFFFF; }
  html.aiq-phone #mw-root.mp .mp-hero .k { color: var(--mp-mut); font-size: 14px; font-weight: 500; }
  html.aiq-phone #mw-root.mp .mp-hero .big { margin-top: 6px; font-size: 40px; line-height: 1; font-weight: 700; letter-spacing: -.03em; }
  html.aiq-phone #mw-root.mp .mp-chg { margin-top: 8px; font-size: 14px; font-weight: 600; }
  html.aiq-phone #mw-root.mp .mp-chg.up { color: #0d8a66; } html.aiq-phone #mw-root.mp .mp-chg.dn { color: #c8203f; }
  html.aiq-phone #mw-root.mp .mp-rows { margin-top: 12px; }
  html.aiq-phone #mw-root.mp .mp-rows .r { display: flex; align-items: center; gap: 10px; min-height: 48px; border-top: 1px solid var(--mp-line); font-size: 15px; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone #mw-root.mp .mp-rows .r > span { flex: 1 1 auto; min-width: 0; color: var(--mp-mut); }
  html.aiq-phone #mw-root.mp .mp-rows .r > b { font-weight: 600; white-space: nowrap; }
  html.aiq-phone #mw-root.mp .mp-rows .r > i { color: #B4B9C2; font-size: 14px; margin-right: -4px; }
  html.aiq-phone #mw-root.mp .mp-rows .r[data-tab] { cursor: pointer; }

  /* ── sheets: one row of pills that scrolls sideways (My screens' views), the open one charcoal ── */
  /* the pill row + ONE Adjust button at its end (every switch of the open sheet is in the Adjust sheet, user 2026-11-03) */
  html.aiq-phone #mw-root.mp .mp-bar { display: flex; align-items: center; gap: 8px; margin: 0 -16px 16px 0; }
  html.aiq-phone #mw-root.mp .mp-bar .mp-tabs:not(#_) { flex: 1 1 auto; min-width: 0; margin: 0 0 0 -16px; }
  html.aiq-phone #mw-root.mp .mp-adj { flex: none; width: 36px; height: 36px; margin-right: 12px; font-size: 18px; }
  html.aiq-phone #mw-root.mp .mp-tabs { display: flex; gap: 8px; margin: 0 -16px 12px; padding: 0 16px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  html.aiq-phone #mw-root.mp .mp-tabs::-webkit-scrollbar { display: none; }
  html.aiq-phone #mw-root.mp .mp-tabs > button { flex: none; height: 36px; padding: 0 14px; border: 0; border-radius: 999px; background: #FFFFFF; color: var(--mp-ink); font: 500 15px/36px Inter, system-ui, sans-serif; white-space: nowrap; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone #mw-root.mp .mp-tabs > button.on { background: #2B2D33; color: #FFFFFF; font-weight: 600; }
  html.aiq-phone #mw-root.mp .mp-case { margin: -2px 0 14px; }

  /* ── sections: plain title, switches row, white card ── */
  html.aiq-phone #mw-root.mp .mp-pane > * + * { margin-top: 0; }
  html.aiq-phone #mw-root.mp .mp-sec { margin: 0 0 18px; }
  html.aiq-phone #mw-root.mp .mp-st { display: flex; align-items: center; gap: 8px; margin: 0 4px 10px; }
  html.aiq-phone #mw-root.mp .mp-st h3:not(#_):not(#_), html.aiq-phone #mw-root.mp .mp-pane > .mw-st h3:not(#_):not(#_) { margin: 0; font: 650 19px/1.2 Inter, system-ui, sans-serif; letter-spacing: -.02em; color: var(--mp-ink); }
  html.aiq-phone #mw-root.mp .mp-pill { padding: 2px 8px; border-radius: 999px; background: var(--mp-in); color: var(--mp-acc); font-size: 12px; font-weight: 600; }
  html.aiq-phone #mw-root.mp .mp-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 10px; }
  html.aiq-phone #mw-root.mp .mp-tools .lab, html.aiq-phone #mw-root.mp .mp-pane > .mw-st .lab { color: var(--mp-mut); font-size: 13px; }
  html.aiq-phone #mw-root.mp [data-act="csv"] { display: none !important; }
  html.aiq-phone #mw-root.mp .mp-card { border-radius: 22px; background: #FFFFFF; overflow: hidden; }
  /* Reverse DCF's own title row (What $338 assumes · Solve for · Forecast) */
  html.aiq-phone #mw-root.mp .mp-pane > .mw-st:not(#_) { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 4px 12px !important; padding: 0; border: 0; }
  html.aiq-phone #mw-root.mp .mp-pane > .mw-st h3 { flex: 0 0 100%; }
  html.aiq-phone #mw-root.mp .mp-pane > .mw-st .sp { display: none; }

  /* buttons, pickers, switches inside the model: white pills on the grey page, 40px tall */
  html.aiq-phone #mw-root.mp :is(.mp-tools, .mp-case, .mp-pane > .mw-st) .mw-btn:not(#_) { display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 14px; border: 0; border-radius: 999px;
    background: #FFFFFF; box-shadow: none; color: var(--mp-ink); font: 500 15px/1 Inter, system-ui, sans-serif; }
  html.aiq-phone #mw-root.mp .mw-btn em { font-style: normal; color: var(--mp-mut); }
  html.aiq-phone #mw-root.mp .mw-btn .ph-caret-down { font-size: 12px; color: var(--mp-mut); }
  html.aiq-phone #mw-root.mp .mw-btn.ghost:not(#_) { background: transparent; color: var(--mp-acc); padding: 0 6px; }
  html.aiq-phone #mw-root.mp .mw-dot2 { width: 8px; height: 8px; border-radius: 50%; }
  html.aiq-phone #mw-root.mp .mw-seg:not(#_) { display: inline-flex; padding: 3px; gap: 0; border: 0; border-radius: 999px; background: #E6E8EC; box-shadow: none; }
  html.aiq-phone #mw-root.mp .mw-seg > button:not(#_) { height: 32px; padding: 0 12px; border: 0; border-radius: 999px; background: none; box-shadow: none; color: var(--mp-mut); font: 500 14px/32px Inter, system-ui, sans-serif; }
  html.aiq-phone #mw-root.mp .mw-seg > button.on:not(#_) { background: #FFFFFF; color: var(--mp-ink); font-weight: 600; box-shadow: 0 1px 2px rgba(15,17,21,.1); }
  html.aiq-phone #mw-root.mp .mw-sw:not(#_) { display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 4px; border: 0; background: none; color: var(--mp-ink); font: 500 15px/1 Inter, system-ui, sans-serif; }
  html.aiq-phone #mw-root.mp .mw-sw > i:not(#_) { position: relative; flex: none; width: 40px; height: 24px; border-radius: 999px; background: #D5D8DE; }
  html.aiq-phone #mw-root.mp .mw-sw > i:not(#_)::after { content: ""; position: absolute; top: 2px; left: 2px; width: 20px; height: 20px; border-radius: 50%; background: #FFFFFF; box-shadow: 0 1px 2px rgba(15,17,21,.2); }
  html.aiq-phone #mw-root.mp .mw-sw.on > i:not(#_) { background: var(--mp-acc); }
  html.aiq-phone #mw-root.mp .mw-sw.on > i:not(#_)::after { left: 18px; }

  /* a legend / unit under a section title */
  html.aiq-phone #mw-root.mp .mp-note { display: flex; flex-wrap: wrap; gap: 4px 12px; margin: -4px 4px 10px; color: var(--mp-mut); font-size: 13px; }
  html.aiq-phone #mw-root.mp .mp-note .mw-lg { display: inline-flex; align-items: center; gap: 6px; }
  html.aiq-phone #mw-root.mp .mp-note .lab { color: var(--mp-mut); }

  /* ── the big apps' stats lists (Robinhood / Apple Stocks / Wealthsimple): no header row, label left, the figure right
     with the other columns as quiet lines under it; hairlines inset from the left like iOS lists ── */
  html.aiq-phone #mw-root.mp .mp-ls { padding: 2px 0; }
  html.aiq-phone #mw-root.mp .mp-li { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 52px; padding: 10px 16px; font-size: 16px; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone #mw-root.mp .mp-li + .mp-li::before { content: ""; position: absolute; top: 0; left: 16px; right: 0; border-top: 1px solid var(--mp-line); }
  html.aiq-phone #mw-root.mp .mp-li > .l { flex: 1 1 auto; min-width: 0; color: var(--mp-ink); line-height: 1.3; }
  html.aiq-phone #mw-root.mp .mp-li > .l small, html.aiq-phone #mw-root.mp .mp-li > .l .mw-use { display: block; margin-top: 2px; }
  html.aiq-phone #mw-root.mp .mp-li > .l small { color: var(--mp-mut); font-size: 13px; }
  html.aiq-phone #mw-root.mp .mp-li > .v { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 3px; max-width: 58%; text-align: right; }
  html.aiq-phone #mw-root.mp .mp-li > .v > .m { font-size: 16px; font-weight: 600; white-space: nowrap; }
  html.aiq-phone #mw-root.mp .mp-li > .v > small { color: var(--mp-mut); font-size: 13px; white-space: nowrap; }
  html.aiq-phone #mw-root.mp .mp-li > .v > small em { font-style: normal; }
  html.aiq-phone #mw-root.mp .mp-li > .v > small.pos { color: #0d8a66; } html.aiq-phone #mw-root.mp .mp-li > .v > small.neg { color: #c8203f; }
  html.aiq-phone #mw-root.mp .mp-li > .v > small.pos em, html.aiq-phone #mw-root.mp .mp-li > .v > small.neg em { color: var(--mp-mut); }
  html.aiq-phone #mw-root.mp .mp-li .solved { color: #C76A0E; }
  html.aiq-phone #mw-root.mp .mp-li.tot > .l, html.aiq-phone #mw-root.mp .mp-li.tot > .v > .m { font-weight: 650 !important; }
  html.aiq-phone #mw-root.mp .mp-li.me { background: #F6F7FE; }
  html.aiq-phone #mw-root.mp .mp-li.click { cursor: pointer; } html.aiq-phone #mw-root.mp .mp-li.click:active { background: var(--mp-fill); }
  html.aiq-phone #mw-root.mp .mp-lh { padding: 16px 16px 6px; color: var(--mp-mut); font-size: 13px; font-weight: 500; }
  html.aiq-phone #mw-root.mp .mp-lh + .mp-li::before { display: none; }
  /* a tag in a label (Priced in / Your case / Bear): plain words in its colour, no pill */
  html.aiq-phone #mw-root.mp .mp-li .mw-tag:not(#_):not(#_) { padding: 0; border: 0; background: none; box-shadow: none; font-size: 16px; font-weight: 500; }
  html.aiq-phone #mw-root.mp .mp-li .mw-tag.t-amber { color: #C76A0E; } html.aiq-phone #mw-root.mp .mp-li .mw-tag.t-blue { color: var(--mp-acc); }
  html.aiq-phone #mw-root.mp .mp-li .mw-use:not(#_) { padding: 0; border: 0; background: none; color: var(--mp-acc); font: 500 13px/1.2 Inter, system-ui, sans-serif; }
  html.aiq-phone #mw-root.mp .mp-li .mw-seg:not(#_) { flex: none; }

  /* ── tables: scroll in their own box, label column pinned, hairlines only ── */
  html.aiq-phone #mw-root.mp .mp-tw { overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  html.aiq-phone #mw-root.mp .mp-tw::-webkit-scrollbar { display: none; }
  /* the fade (aiq-phone-fin-valuation.js .pfv-fl / .pfv-fr) only on the right: the pinned label column never fades */
  html.aiq-phone #mw-root.mp .mp-tw.pfv-fl:not(.pfv-fr) { -webkit-mask-image: none; mask-image: none; }
  html.aiq-phone #mw-root.mp .mp-tw.pfv-fl.pfv-fr { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 32px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 32px), transparent); }
  html.aiq-phone #mw-root.mp .mp-tbl { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 15px; }
  html.aiq-phone #mw-root.mp .mp-tbl :is(th, td):not(#_):not(#_) { height: 48px; padding: 6px 12px; border: 0 !important; border-top: 1px solid var(--mp-line) !important; background: #FFFFFF !important; color: var(--mp-ink);
    text-align: left; white-space: nowrap; vertical-align: middle; box-shadow: none !important; font-weight: 400; }
  html.aiq-phone #mw-root.mp .mp-tbl thead th:not(#_):not(#_) { height: 40px; border-top: 0 !important; color: var(--mp-mut) !important; font-size: 13px; font-weight: 500; }
  html.aiq-phone #mw-root.mp .mp-tbl :is(th, td).num:not(#_):not(#_) { text-align: right; }
  html.aiq-phone #mw-root.mp .mp-tbl :is(th, td):first-child:not(#_):not(#_) { position: sticky; left: 0; z-index: 1; padding-left: 16px; max-width: 168px; white-space: normal; line-height: 1.25; }
  html.aiq-phone #mw-root.mp .mp-tbl :is(th, td):last-child { padding-right: 16px; }
  html.aiq-phone #mw-root.mp .mp-tbl:not(.kv) :is(th, td):first-child:not(#_):not(#_) { min-width: 148px; }
  /* a wide table: a soft edge on the pinned column once it scrolls (aiq-phone-fin-valuation.js fades the box ends) */
  html.aiq-phone #mw-root.mp .mp-tbl.sheet :is(th, td):first-child:not(#_):not(#_) { }
  /* by-year / by-case grids: no unit after each box (the row says it), tighter cells, so three cases fit a phone */
  html.aiq-phone #mw-root.mp .mp-tbl.sheet .mw-u { display: none; }
  html.aiq-phone #mw-root.mp .mp-tbl.sheet .mw-in:not(#_):not(#_):not(#_) { width: 56px; padding: 0 6px; }
  html.aiq-phone #mw-root.mp .mp-tbl.sheet td.num.f:not(#_):not(#_) { padding-left: 4px; padding-right: 4px; }
  html.aiq-phone #mw-root.mp .mp-tbl.sheet td.num.f:last-child:not(#_):not(#_) { padding-right: 12px; }
  html.aiq-phone #mw-root.mp .mp-tbl.sheet :is(th, td):first-child:not(#_):not(#_):not(#_) { min-width: 120px; max-width: 132px; }
  html.aiq-phone #mw-root.mp .mp-tbl thead th:not(#_):not(#_):not(#_) { background: #FFFFFF !important; font-weight: 500 !important; }
  html.aiq-phone #mw-root.mp .mp-tbl tr.tot td:not(#_):not(#_) { font-weight: 650; }
  html.aiq-phone #mw-root.mp .mp-tbl tr.sub td:not(#_):not(#_) { color: var(--mp-mut); font-size: 13px; height: 38px; }
  html.aiq-phone #mw-root.mp .mp-tbl tr.grp td:not(#_):not(#_) { height: 40px; padding-top: 16px; color: var(--mp-mut); font-size: 13px; font-weight: 500; }
  html.aiq-phone #mw-root.mp .mp-tbl tr.me td:not(#_):not(#_) { background: #F6F7FE !important; }
  html.aiq-phone #mw-root.mp .mp-tbl td small { display: block; margin-top: 2px; color: var(--mp-mut); font-size: 13px; }
  html.aiq-phone #mw-root.mp .mp-tbl td.mu, html.aiq-phone #mw-root.mp .mp-tbl .mu { color: var(--mp-mut); }
  html.aiq-phone #mw-root.mp .mp-tbl .solved { color: #C76A0E; font-weight: 600; }
  /* label · value lists (Key inputs, Valuation inputs): the label wraps, the value keeps its width */
  html.aiq-phone #mw-root.mp .mp-tbl.kv :is(th, td):first-child:not(#_):not(#_) { position: static; max-width: none; width: 100%; }
  html.aiq-phone #mw-root.mp .mp-tbl.kv td.num { width: 1%; }
  html.aiq-phone #mw-root.mp .mp-tbl .mw-use:not(#_) { display: block; margin-top: 2px; padding: 0; border: 0; background: none; color: var(--mp-acc); font: 500 13px/1.2 Inter, system-ui, sans-serif; text-align: left; }
  html.aiq-phone #mw-root.mp .mp-tbl td.num .mw-use:not(#_) { text-align: right; margin-left: auto; }
  html.aiq-phone #mw-root.mp .mw-tag:not(#_) { padding: 2px 8px; border-radius: 999px; font-size: 13px; font-weight: 600; }
  html.aiq-phone #mw-root.mp :is(.pos) { color: #0d8a66; } html.aiq-phone #mw-root.mp :is(.neg) { color: #c8203f; }

  /* inputs: a soft blue pill, 16px so iOS doesn't zoom */
  html.aiq-phone #mw-root.mp .mw-cell:not(#_) { display: inline-flex; align-items: center; justify-content: flex-end; gap: 2px; }
  html.aiq-phone #mw-root.mp .mw-in:not(#_):not(#_) { width: 64px; height: 36px; padding: 0 8px; border: 0 !important; border-radius: 10px; background: var(--mp-in) !important; box-shadow: none !important;
    color: var(--mp-acc); font: 600 16px/36px Inter, system-ui, sans-serif; font-variant-numeric: tabular-nums; text-align: right; -webkit-appearance: none; appearance: none; }
  html.aiq-phone #mw-root.mp .mw-in.w:not(#_):not(#_) { width: 96px; }
  html.aiq-phone #mw-root.mp .mw-in.ed:not(#_):not(#_) { background: rgba(69,93,220,.16) !important; }
  html.aiq-phone #mw-root.mp .mw-in:focus:not(#_):not(#_) { outline: 2px solid var(--mp-acc); outline-offset: 0; background: #FFFFFF !important; }
  html.aiq-phone #mw-root.mp .mw-u { min-width: 12px; color: var(--mp-mut); font-size: 14px; }

  /* ── rows (Cases, the company's models): name over a quiet line, figure over its change ── */
  html.aiq-phone #mw-root.mp .mp-row { display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 10px 16px; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone #mw-root.mp .mp-row + .mp-row { box-shadow: inset 0 1px 0 var(--mp-line); }
  html.aiq-phone #mw-root.mp .mp-row.click { cursor: pointer; } html.aiq-phone #mw-root.mp .mp-row.click:active { background: var(--mp-fill); }
  html.aiq-phone #mw-root.mp .mp-row.me { background: #F6F7FE; }
  html.aiq-phone #mw-root.mp .mp-row .l { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
  html.aiq-phone #mw-root.mp .mp-row .l b { font-size: 16px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.aiq-phone #mw-root.mp .mp-row small { color: var(--mp-mut); font-size: 13px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.aiq-phone #mw-root.mp .mp-row .v { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 3px; }
  html.aiq-phone #mw-root.mp .mp-row .v b { font-size: 16px; font-weight: 600; }
  html.aiq-phone #mw-root.mp .mp-row .v small.pos { color: #0d8a66; font-weight: 600; } html.aiq-phone #mw-root.mp .mp-row .v small.neg { color: #c8203f; font-weight: 600; }
  html.aiq-phone #mw-root.mp .mp-dot { flex: none; width: 10px; height: 10px; border-radius: 50%; background: #64748b; }
  html.aiq-phone #mw-root.mp :is(.mp-dot, .mp-ic).t-red { --t: #c8203f; } html.aiq-phone #mw-root.mp :is(.mp-dot, .mp-ic).t-blue { --t: #455DDC; }
  html.aiq-phone #mw-root.mp :is(.mp-dot, .mp-ic).t-green { --t: #0d8a66; } html.aiq-phone #mw-root.mp :is(.mp-dot, .mp-ic).t-violet { --t: #8b5cf6; }
  html.aiq-phone #mw-root.mp :is(.mp-dot, .mp-ic).t-teal { --t: #06b6d4; } html.aiq-phone #mw-root.mp :is(.mp-dot, .mp-ic).t-amber { --t: #f59e0b; }
  html.aiq-phone #mw-root.mp .mp-dot { background: var(--t, #64748b); }
  html.aiq-phone #mw-root.mp .mp-ic { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; font-size: 19px; color: var(--t, #455DDC); background: color-mix(in srgb, var(--t, #455DDC) 12%, transparent); }
  html.aiq-phone #mw-root.mp .mp-list { padding: 4px 0 8px; }
  html.aiq-phone #mw-root.mp .mp-none { display: flex; flex-direction: column; gap: 4px; padding: 18px 16px 10px; }
  html.aiq-phone #mw-root.mp .mp-none b { font-size: 16px; font-weight: 600; } html.aiq-phone #mw-root.mp .mp-none small { color: var(--mp-mut); font-size: 14px; line-height: 1.4; }
  html.aiq-phone #mw-root.mp .mp-add { display: flex; align-items: center; justify-content: center; gap: 8px; width: calc(100% - 20px); height: 52px; margin: 6px 10px 2px; border: 1.5px dashed #D5D8DE; border-radius: 16px;
    background: none; color: var(--mp-mut); font: 500 15px/1 Inter, system-ui, sans-serif; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone #mw-root.mp .mp-add:active { background: var(--mp-fill); }
  html.aiq-phone #mw-root.mp .mp-more { display: flex; align-items: center; justify-content: space-between; min-height: 52px; margin-top: 12px; padding: 0 18px; border-radius: 22px; background: #FFFFFF;
    color: var(--mp-ink); font-size: 16px; font-weight: 500; text-decoration: none; }
  html.aiq-phone #mw-root.mp .mp-more i { color: #B4B9C2; }

  /* ── headline cards (Reverse DCF, Return): one white card, a row each — label left, figure + note right ── */
  html.aiq-phone #mw-root.mp .mw-hl:not(#_):not(#_) { display: block; margin: 0 0 18px; padding: 0; border-radius: 22px; background: #FFFFFF; overflow: hidden; }
  html.aiq-phone #mw-root.mp .mw-hc:not(#_):not(#_) { display: flex; flex-direction: row; text-align: left; align-items: center; justify-content: space-between; gap: 12px; min-height: 60px; margin: 0; padding: 10px 16px; border: 0; border-radius: 0; background: none; box-shadow: none; }
  html.aiq-phone #mw-root.mp .mw-hc + .mw-hc:not(#_):not(#_) { box-shadow: inset 0 1px 0 var(--mp-line); }
  html.aiq-phone #mw-root.mp .mw-hc .l:not(#_):not(#_) { display: block; flex: 1 1 auto; min-width: 0; margin: 0; color: var(--mp-mut); font-size: 14px; font-weight: 500; white-space: normal; }
  html.aiq-phone #mw-root.mp .mw-hc .l .mw-ic { display: none; }
  html.aiq-phone #mw-root.mp .mw-hc .v:not(#_):not(#_) { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 3px; margin: 0; text-align: right; }
  html.aiq-phone #mw-root.mp .mw-hc .v b:not(#_) { font-size: 20px; font-weight: 700; letter-spacing: -.02em; }
  html.aiq-phone #mw-root.mp .mw-hc .v small { color: var(--mp-mut); font-size: 13px; }
  html.aiq-phone #mw-root.mp .mw-hc .v .mw-tag:not(#_):not(#_) { padding: 0; border: 0; background: none; box-shadow: none; font-size: 13px; }
  html.aiq-phone #mw-root.mp .mw-hc .v .mw-tag.t-green { color: #0d8a66; } html.aiq-phone #mw-root.mp .mw-hc .v .mw-tag.t-red { color: #c8203f; }

  /* ── charts, legends, checks, sensitivity grids ── */
  html.aiq-phone #mw-root.mp .mp-tools .mw-lg { display: inline-flex; align-items: center; gap: 6px; color: var(--mp-mut); font-size: 13px; }
  html.aiq-phone #mw-root.mp .mp-tools:has(.mw-lg) { gap: 4px 12px; margin-left: 4px; }
  html.aiq-phone #mw-root.mp .mw-chart:not(#_) { height: 260px; margin: 8px 4px 4px; }
  html.aiq-phone #mw-root.mp .mw-ck:not(#_) { display: flex; align-items: flex-start; gap: 10px; padding: 14px 16px; font-size: 15px; line-height: 1.35; }
  html.aiq-phone #mw-root.mp .mw-ck + .mw-ck { box-shadow: inset 0 1px 0 var(--mp-line); }
  html.aiq-phone #mw-root.mp .mw-ck i { flex: none; margin-top: 1px; font-size: 18px; }
  html.aiq-phone #mw-root.mp .mw-ck.ok i { color: #0d8a66; } html.aiq-phone #mw-root.mp .mw-ck.warn i { color: #f59e0b; } html.aiq-phone #mw-root.mp .mw-ck.bad i { color: #c8203f; }
  html.aiq-phone #mw-root.mp .mp-card:has(> .mw-grid) { overflow-x: auto; scrollbar-width: none; }
  html.aiq-phone #mw-root.mp .mw-grid:not(#_) { width: 100%; border-collapse: separate; border-spacing: 2px; padding: 6px; font-size: 12.5px; }
  html.aiq-phone #mw-root.mp .mw-grid :is(th, td):not(#_):not(#_) { height: 40px; padding: 0 3px; border: 0 !important; border-radius: 8px; text-align: center; white-space: nowrap; font-variant-numeric: tabular-nums; }
  html.aiq-phone #mw-root.mp .mw-grid th:not(#_):not(#_) { background: none !important; color: var(--mp-mut); font-weight: 500; }
  html.aiq-phone #mw-root.mp .mw-grid th.rh:not(#_):not(#_) { text-align: left; white-space: normal; line-height: 1.2; font-size: 12px; }
  html.aiq-phone #mw-root.mp .mw-grid td.me:not(#_):not(#_) { box-shadow: inset 0 0 0 2px var(--mp-ink) !important; font-weight: 700; }
  html.aiq-phone #mw-root.mp .mw-grid td[data-sens], html.aiq-phone #mw-root.mp .mw-grid td[data-fiset] { cursor: pointer; }
  /* the Attio look forces every main b / h3 / th to 500 and h3 to 14px (!important, aiq-table-attio.css): the model's own
     weights and sizes win back here */
  html.aiq-phone #mw-root.mp :is(.mp-st, .mp-pane > .mw-st) h3:not(#_):not(#_):not(#_) { font-size: 19px !important; font-weight: 650 !important; color: var(--mp-ink) !important; }
  html.aiq-phone #mw-root.mp .mp-h1 .nm:not(#_):not(#_):not(#_) { font-weight: 700 !important; }
  html.aiq-phone #mw-root.mp .mp-hero .big:not(#_):not(#_):not(#_) { font-weight: 700 !important; }
  html.aiq-phone #mw-root.mp :is(.mp-rows .r > b, .mp-row b, .mp-co b, .mp-none b):not(#_):not(#_):not(#_) { font-weight: 600 !important; }
  html.aiq-phone #mw-root.mp .mw-hc .v b:not(#_):not(#_):not(#_) { font-weight: 700 !important; }
  html.aiq-phone #mw-root.mp .mp-tbl tr.tot td:not(#_):not(#_):not(#_), html.aiq-phone #mw-root.mp .mp-tbl tr.tot td b:not(#_):not(#_):not(#_) { font-weight: 650 !important; }
  html.aiq-phone #mw-root.mp .mw-grid td.me:not(#_):not(#_):not(#_) { font-weight: 700 !important; }
}

/* the model's menus (js/modeling-wb.js .mw-menu) open as bottom sheets (aiq-phone-sheet.js): iOS-size rows */
@media (max-width: 767px) {
  html.aiq-phone.aiq-phone[data-theme] .ph-sheet.mw-menu .it:not(#_) { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 50px; padding: 0 16px; border-radius: 14px; font-size: 16px; }
  html.aiq-phone.aiq-phone[data-theme] .ph-sheet.mw-menu .it i:not(.ck) { font-size: 19px; color: var(--ph-mut, #80868F); }
  html.aiq-phone.aiq-phone[data-theme] .ph-sheet.mw-menu .it .ck { margin-left: auto; color: #455DDC; }
  html.aiq-phone.aiq-phone[data-theme] .ph-sheet.mw-menu .it.danger, html.aiq-phone.aiq-phone[data-theme] .ph-sheet.mw-menu .it.danger i { color: #c8203f; }
  html.aiq-phone.aiq-phone[data-theme] .ph-sheet.mw-menu hr { margin: 6px 16px; border: 0; border-top: 1px solid rgba(15,17,21,.07); }

  /* New model's name field (js/modeling-wb.js aiqModelNew): one white rounded field, the input clear inside it */
  html.aiq-phone.aiq-phone .aiq-dlg.mwn .aiq-dlg-nm:not(#_):not(#__) { height: 48px; padding: 0 14px; gap: 8px; border: 0 !important; border-radius: 14px; background: #FFFFFF !important; box-shadow: none !important; }
  html.aiq-phone.aiq-phone .aiq-dlg.mwn .aiq-dlg-nm > input:not(#_):not(#__) { flex: 1; min-width: 0; height: 46px; padding: 0; border: 0 !important; background: transparent !important; box-shadow: none !important; font-size: 16px; color: #101112; }

  /* the Adjust sheet (js/modeling-wb.js phAdjust): a title, then each section's switches under its name, one per row */
  html.aiq-phone.aiq-phone[data-theme] .ph-sheet.mp-adj-s:not(#_):not(#__) { padding: 22px 16px calc(18px + env(safe-area-inset-bottom)) !important; background: #F2F3F5 !important; }
  html.aiq-phone .mp-adj-s .mp-ah { margin: 4px 4px 12px; font: 700 24px/1.1 Inter, system-ui, sans-serif; letter-spacing: -.02em; color: #101112; }
  html.aiq-phone .mp-adj-s .mp-ag { margin-bottom: 14px; }
  html.aiq-phone .mp-adj-s .mp-ag > small { display: block; margin: 0 4px 6px; color: #80868F; font-size: 13px; font-weight: 500; }
  html.aiq-phone .mp-adj-s .mp-ac { display: flex; flex-direction: column; border-radius: 18px; background: #FFFFFF; overflow: hidden; }
  html.aiq-phone .mp-adj-s .mp-ac > * + * { border-top: 1px solid rgba(15,17,21,.07) !important; }
  html.aiq-phone .mp-adj-s .mp-ac > :is(.mw-btn, .mw-sw):not(#_):not(#_) { display: flex; align-items: center; gap: 8px; box-sizing: border-box; width: 100%; min-height: 52px; height: auto; margin: 0; padding: 0 16px; border: 0; border-radius: 0;
    background: none; box-shadow: none; color: #101112; font: 500 16px/1.2 Inter, system-ui, sans-serif; text-align: left; }
  html.aiq-phone .mp-adj-s .mw-btn em { font-style: normal; color: #101112; margin-right: auto; }
  html.aiq-phone .mp-adj-s .mw-btn .ph-caret-down { color: #B4B9C2; font-size: 13px; }
  html.aiq-phone .mp-adj-s .mw-btn > i:first-child:not(.ph-caret-down) { color: #80868F; }
  html.aiq-phone .mp-adj-s .mw-btn.ghost:not(#_):not(#_) { color: #455DDC; }
  html.aiq-phone .mp-adj-s .mw-dot2 { width: 10px; height: 10px; border-radius: 50%; flex: none; }
  html.aiq-phone .mp-adj-s .mw-dot2.t-red { background: #c8203f; } html.aiq-phone .mp-adj-s .mw-dot2.t-blue { background: #455DDC; }
  html.aiq-phone .mp-adj-s .mw-dot2.t-green { background: #0d8a66; } html.aiq-phone .mp-adj-s .mw-dot2.t-violet { background: #8b5cf6; }
  html.aiq-phone .mp-adj-s .mw-seg:not(#_):not(#_) { display: flex; margin: 8px; padding: 3px; gap: 0; border: 0; border-radius: 12px; background: #EEF0F3; box-shadow: none; }
  html.aiq-phone .mp-adj-s .mw-seg > button:not(#_):not(#_) { flex: 1; height: 36px; border: 0; border-radius: 10px; background: none; box-shadow: none; color: #80868F; font: 500 15px/36px Inter, system-ui, sans-serif; }
  html.aiq-phone .mp-adj-s .mw-seg > button.on:not(#_):not(#_) { background: #FFFFFF; color: #101112; font-weight: 600; box-shadow: 0 1px 2px rgba(15,17,21,.12); }
  html.aiq-phone .mp-adj-s .mw-sw:not(#_):not(#_) { flex-direction: row-reverse; justify-content: space-between; }
  html.aiq-phone .mp-adj-s .mw-sw > i:not(#_) { position: relative; flex: none; width: 46px; height: 28px; border-radius: 999px; background: #D5D8DE; }
  html.aiq-phone .mp-adj-s .mw-sw > i:not(#_)::after { content: ""; position: absolute; top: 2px; left: 2px; width: 24px; height: 24px; border-radius: 50%; background: #FFFFFF; box-shadow: 0 1px 2px rgba(15,17,21,.2); }
  html.aiq-phone .mp-adj-s .mw-sw.on > i:not(#_) { background: #455DDC; }
  html.aiq-phone .mp-adj-s .mw-sw.on > i:not(#_)::after { left: 20px; }
  html.aiq-phone .mp-adj-s :is(.lab, .mw-lg) { display: none; }

  /* the one-page model (the phone default, 2026-11-03): tappable rows end in a caret, the full workbook is the last row */
  html.aiq-phone #mw-root.mp .mp-li .mp-cv { flex: none; margin: 0 -4px 0 -6px; color: #B4B9C2; font-size: 14px; }
  html.aiq-phone #mw-root.mp .mp-full:not(#_) { width: 100%; min-height: 64px; margin-top: 4px; border: 0; text-align: left; font: inherit; }
  html.aiq-phone #mw-root.mp .mp-full span { display: flex; flex-direction: column; gap: 3px; }
  html.aiq-phone #mw-root.mp .mp-full b:not(#_):not(#_) { font-size: 16px; font-weight: 600 !important; color: #101112; }
  html.aiq-phone #mw-root.mp .mp-full small { color: #80868F; font-size: 13px; }
  html.aiq-phone #mw-root.mp .mp-back { display: inline-flex; align-items: center; gap: 4px; height: 36px; margin: -4px 0 8px -4px; padding: 0 4px; border: 0; background: none; color: #455DDC; font: 500 15px/1 Inter, system-ui, sans-serif; }

  /* the driver editor (js/modeling-wb.js phEdit): title, the big figure between − and +, a slider with the company's own
     figure marked on it, one Done */
  html.aiq-phone.aiq-phone[data-theme] .ph-sheet.mp-ed-s:not(#_):not(#__) { padding: 24px 20px calc(18px + env(safe-area-inset-bottom)) !important; background: #FFFFFF !important; }
  html.aiq-phone .mp-ed-s .mp-eh { font: 600 17px/1.2 Inter, system-ui, sans-serif; color: #101112; text-align: center; }
  html.aiq-phone .mp-ed-s .mp-ev { display: flex; align-items: center; justify-content: space-between; margin: 18px 0 14px; }
  html.aiq-phone .mp-ed-s .mp-ev b { font: 700 44px/1 Inter, system-ui, sans-serif; letter-spacing: -.03em; font-variant-numeric: tabular-nums; color: #101112; }
  html.aiq-phone .mp-ed-s .mp-st-b { display: grid; place-items: center; width: 48px; height: 48px; border: 0; border-radius: 50%; background: #F2F3F5; color: #101112; font-size: 20px; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone .mp-ed-s .mp-st-b:active { background: #E6E8EC; }
  html.aiq-phone .mp-ed-s .mp-er { position: relative; height: 36px; }
  html.aiq-phone .mp-ed-s .mp-er input { position: relative; z-index: 1; width: 100%; height: 32px; margin: 0; background: transparent; -webkit-appearance: none; appearance: none; }
  html.aiq-phone .mp-ed-s .mp-er input::-webkit-slider-runnable-track { height: 6px; border-radius: 999px; background: #E6E8EC; }
  html.aiq-phone .mp-ed-s .mp-er input::-webkit-slider-thumb { -webkit-appearance: none; width: 28px; height: 28px; margin-top: -11px; border-radius: 50%; background: #FFFFFF; box-shadow: 0 1px 4px rgba(15,17,21,.25), 0 0 0 1px rgba(15,17,21,.06); }
  html.aiq-phone .mp-ed-s .mp-er input::-moz-range-track { height: 6px; border-radius: 999px; background: #E6E8EC; }
  html.aiq-phone .mp-ed-s .mp-er input::-moz-range-thumb { width: 28px; height: 28px; border: 0; border-radius: 50%; background: #FFFFFF; box-shadow: 0 1px 4px rgba(15,17,21,.25); }
  html.aiq-phone .mp-ed-s .mp-ep { position: absolute; z-index: 0; top: 26px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: #455DDC; pointer-events: none; }
  html.aiq-phone .mp-ed-s .mp-es { display: flex; justify-content: space-between; gap: 12px; margin-top: 8px; color: #80868F; font-size: 13px; font-weight: 500; }
  html.aiq-phone .mp-ed-s .mp-ep-k { display: inline-block; width: 4px; height: 10px; margin-right: 6px; border-radius: 2px; background: #455DDC; vertical-align: -1px; }
  html.aiq-phone .mp-ed-s .mp-done { display: block; width: 100%; height: 52px; margin-top: 22px; border: 0; border-radius: 16px; background: #2B2D33; color: #FFFFFF; font: 600 16px/52px Inter, system-ui, sans-serif; }
}

/* ==== css/aiq-phone-funds.css ==== */
/* Phones (html.pfd, the default since 2026-11-03): fund pages (/funds/<T>) on phones in the finance look (css/aiq-phone-pin.css). The
   desktop page squeezed in: a one-line cut-off name, underline jump tabs, ⓘ tips, a legend + range switch crammed in
   the card header, a seven-column returns grid, two-column metric tiles, figures on every bar. Here: the name wraps,
   the sections are pills, every card is white and round, returns are a list (js/funds.js PH), tiles are one column.
   Section reveal motion stays (user: "simpler keeps motion"). Loaded with media="(max-width: 767px)". */
@media (max-width: 767px) {
  html.aiq-phone.pfd main:has(> .fd), html.aiq-phone.pfd .fd { background: transparent !important; }
  html.aiq-phone.pfd .fd { --fd-card: #FFFFFF; --fd-line: rgba(15,17,21,.07); font-size: 15px; }
  /* header: the phone header's large title is the fund's name: in full, two lines at most (it cut off at one) */
  html.aiq-phone.pfd #ph-th .ph-th-t:not(#_):not(#_):not(#_):not(#_), html.aiq-phone.pfd #ph-th .ph-th-t b:not(#_):not(#_):not(#_):not(#_) { white-space: normal !important; overflow: hidden; text-overflow: clip; }
  html.aiq-phone.pfd #ph-th .ph-th-t b:not(#_):not(#_):not(#_):not(#_) { display: -webkit-box !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 28px !important; line-height: 1.15 !important; }
  /* the fund's own header (its name is in the phone header above) */
  html.aiq-phone.pfd .fd-hdr:not(#_) { display: block; padding: 4px 4px 14px; }
  html.aiq-phone.pfd .fd-hdr h1:not(#_):not(#_) { font: 700 26px/1.15 Inter, system-ui, sans-serif !important; letter-spacing: -.02em; white-space: normal !important; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  html.aiq-phone.pfd .fd-meta:not(#_) { margin-top: 6px; color: #80868F; font-size: 14px; gap: 6px; }
  html.aiq-phone.pfd .fd-meta .fd-chip:not(#_) { padding: 0; border: 0; background: none; color: #101112; font-weight: 600; font-size: 14px; }
  html.aiq-phone.pfd .fd-meta .fd-chip.g:not(#_) { color: #80868F; font-weight: 500; }
  html.aiq-phone.pfd .fd-acts:not(#_) { display: block; margin-top: 12px; }
  html.aiq-phone.pfd .fd-acts .at-btn:not(#_) { display: none !important; }   /* the SEC filing link: desktop's */
  html.aiq-phone.pfd .fd-px:not(#_) { text-align: left; }
  html.aiq-phone.pfd .fd-px b:not(#_):not(#_) { font: 700 36px/1 Inter, system-ui, sans-serif !important; letter-spacing: -.03em; }
  html.aiq-phone.pfd .fd-px div { margin-top: 6px; font-size: 14px; font-weight: 600; }
  /* the sections: one row of pills (My screens' views), the open one charcoal; the sticky bar takes the page grey */
  html.aiq-phone.pfd .fd-jump:not(#_):not(#_) { margin: 0 -12px 8px; padding: 8px 0; border: 0 !important; background: #F2F3F5 !important; }
  html.aiq-phone.pfd .fd-jump-in:not(#_) { gap: 8px; padding: 0 16px; }
  html.aiq-phone.pfd .fd-jump a:not(#_):not(#_) { flex: none; height: 36px; padding: 0 14px; border: 0 !important; border-radius: 999px; background: #FFFFFF; color: #101112; font: 500 15px/36px Inter, system-ui, sans-serif; }
  html.aiq-phone.pfd .fd-jump a.on:not(#_):not(#_) { background: #2B2D33; color: #FFFFFF; font-weight: 600; }
  /* the bar sits first in the markup (desktop's house tab bar, 2026-11-05): the header goes back above it here, and the
     tab-bar strip / dividers / feet stay off */
  html.aiq-phone.pfd .fd:not(#_) { display: flex; flex-direction: column; }
  html.aiq-phone.pfd .fd > .fd-hdr:not(#_) { order: -1; }
  html.aiq-phone.pfd .fd-jump.tbx:not(#_):not(#_) { position: sticky; z-index: 10; height: auto; box-shadow: none; }
  html.aiq-phone.pfd .fd-jump.tbx::after, html.aiq-phone.pfd .fd-jump .tbx-t::after { display: none !important; }
  html.aiq-phone.pfd .fd-jump .tbx-l:not(#_) { height: auto; align-items: center; }
  html.aiq-phone.pfd .fd-jump .tbx-t:not(#_):not(#_) { display: inline-flex; align-items: center; margin: 0; max-width: none; }
  html.aiq-phone.pfd .fd-jump .fl { display: none; }
  /* sections + cards */
  html.aiq-phone.pfd .fd-sec h2:not(#_):not(#_) { margin: 22px 4px 10px; font: 650 22px/1.2 Inter, system-ui, sans-serif !important; letter-spacing: -.02em; }
  html.aiq-phone.pfd .fd-grid:not(#_):not(#_) { display: flex !important; flex-direction: column; gap: 14px; }
  /* cards on the 16px page edge with the name, price, pills and section titles (they sat at main's 12px; 2026-11-08 spacing pass) */
  html.aiq-phone.pfd .fd-body:not(#_):not(#_) { padding-left: 4px; padding-right: 4px; }
  html.aiq-phone.pfd .fd-card:not(#_):not(#_) { border: 0 !important; border-radius: 22px !important; background: #FFFFFF !important; box-shadow: none !important; overflow: hidden; }
  html.aiq-phone.pfd .fd-card-h:not(#_):not(#_) { min-height: 0; padding: 16px 16px 6px; border: 0 !important; }
  html.aiq-phone.pfd .fd-card-h h3:not(#_):not(#_) { font: 650 17px/1.2 Inter, system-ui, sans-serif !important; }
  html.aiq-phone.pfd .fd-card-h .r:not(#_) { font-size: 13px; }
  html.aiq-phone.pfd .fd-i { display: none !important; }
  /* growth chart: legend + time frames under it (js/funds.js PH) */
  html.aiq-phone.pfd .pfd-leg { display: flex; gap: 14px; margin: 6px 2px 0; color: #80868F; font-size: 13px; }
  html.aiq-phone.pfd .pfd-leg i { display: inline-block; width: 12px; height: 2px; margin-right: 6px; vertical-align: 4px; background: #455DDC; }
  html.aiq-phone.pfd .pfd-leg i.b { background: none; border-top: 2px dashed var(--fd-bench); height: 0; }
  html.aiq-phone.pfd .pfd-rng { display: flex; justify-content: space-between; margin: 10px 0 2px; }
  html.aiq-phone.pfd .pfd-rng button { height: 34px; padding: 0 16px; border: 0; border-radius: 999px; background: none; color: #80868F; font: 600 14px/34px Inter, system-ui, sans-serif; }
  html.aiq-phone.pfd .pfd-rng button.on { background: #F2F3F5; color: #101112; }
  /* lists: returns, key facts — label left, figure right, the comparison under it, inset hairlines */
  html.aiq-phone.pfd .pfd-ls { padding: 2px 0 6px; }
  html.aiq-phone.pfd :is(.pfd-li, .fd-kf):not(#_):not(#_) { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 52px; padding: 8px 16px !important; border: 0 !important; font-size: 16px; }
  html.aiq-phone.pfd :is(.pfd-li, .fd-kf) + :is(.pfd-li, .fd-kf)::before { content: ""; position: absolute; top: 0; left: 16px; right: 0; border-top: 1px solid rgba(15,17,21,.07); }
  html.aiq-phone.pfd .pfd-li .v { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; }
  html.aiq-phone.pfd .pfd-li .v b { font-size: 16px; font-weight: 600 !important; }
  html.aiq-phone.pfd .pfd-li .v small { color: #80868F; font-size: 13px; }
  html.aiq-phone.pfd .fd-kf span:not(#_):not(#_) { color: #101112; font-size: 16px !important; }
  html.aiq-phone.pfd .fd-kf small:not(#_):not(#_) { display: block; margin-top: 2px; color: #80868F; font-size: 13px; }
  html.aiq-phone.pfd .fd-kf b:not(#_):not(#_) { font-size: 16px !important; font-weight: 600 !important; text-align: right; }
  html.aiq-phone.pfd .fd-card-b:has(> .fd-kf):not(#_) { padding: 2px 0 6px !important; }
  html.aiq-phone.pfd .pos { color: #0d8a66; } html.aiq-phone.pfd .neg { color: #c8203f; }
  /* what you own: one tile per row, the figure on the right of its name */
  html.aiq-phone.pfd .fd-tiles:not(#_):not(#_) { display: block !important; padding: 2px 0 6px; }
  html.aiq-phone.pfd .fd-tile:not(#_):not(#_) { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 12px; padding: 12px 16px; border: 0 !important; border-radius: 0; background: none !important; }
  html.aiq-phone.pfd .fd-tile + .fd-tile::before { content: ""; position: absolute; top: 0; left: 16px; right: 0; border-top: 1px solid rgba(15,17,21,.07); }
  html.aiq-phone.pfd .fd-tile > span:not(#_) { color: #101112; font-size: 16px; }
  html.aiq-phone.pfd .fd-tile > b:not(#_):not(#_) { font-size: 17px; font-weight: 650 !important; text-align: right; }
  html.aiq-phone.pfd .fd-tile .fd-cmp:not(#_) { grid-column: 1 / -1; }
  /* legends under donuts: list rows */
  html.aiq-phone.pfd .fd-leg .row:not(#_) { min-height: 36px; font-size: 15px; }
}

/* ==== css/aiq-phone-tabs2.css ==== */
/* The phone tab bar (built 2026-11-08, the default since 2026-11-09): Markets · Investors (superinvestors) · Congress · My stocks · Account,
   Search as a round button at the top right. Only with html.ph-v2 (set in _phone.html on phones; ?drafts=0 opts a browser out, kept per
   browser). Same notched bar (aiq-phone-navbar.js draws it round whichever tabs are visible); bright colours: white bar, grey
   tabs, brand-blue circle + label (user, 2026-11-08: "brighter and more fitting"). Phones only: every rule under
   html.aiq-phone (tests/test_phone_layout.py). */
@media (max-width: 767px) {
  html.aiq-phone #aiq-ptabs a.ph-v2-only:not(#_):not(#_):not(#_):not(#_) { display: none; }
  html.aiq-phone.ph-v2 #aiq-ptabs a.ph-v2-only:not(#_):not(#_):not(#_):not(#_):not(#_) { display: flex; }
  html.aiq-phone.ph-v2 #aiq-ptabs a:not(.ph-v2-only):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none; }
  html.aiq-phone.ph-v2 #aiq-ptabs a.ph-v2-mk:not(#_):not(#_):not(#_) { order: 1; }
  html.aiq-phone.ph-v2 #aiq-ptabs a.ph-v2-si:not(#_):not(#_):not(#_) { order: 2; }
  html.aiq-phone.ph-v2 #aiq-ptabs a.ph-v2-cg:not(#_):not(#_):not(#_) { order: 3; }
  html.aiq-phone.ph-v2 #aiq-ptabs a.ph-v2-ms:not(#_):not(#_):not(#_) { order: 4; }
  html.aiq-phone.ph-v2 #aiq-ptabs a.ph-v2-ac:not(#_):not(#_):not(#_) { order: 5; }

  /* bright colours */
  html.aiq-phone.ph-v2[data-theme]:not(#_):not(#_):not(#_):not(#_):not(#_) #aiq-ptabs .ph-nb-bg path { fill: #FFFFFF; }
  html.aiq-phone.ph-v2[data-theme]:not(#_):not(#_):not(#_):not(#_):not(#_) #aiq-ptabs .ph-nb-bg { filter: drop-shadow(0 -1px 0 rgba(16,24,40,.08)) drop-shadow(0 -6px 16px rgba(16,24,40,.06)); }
  html.aiq-phone.ph-v2[data-theme]:not(#_):not(#_):not(#_):not(#_):not(#_) #aiq-ptabs:not(:has(> .ph-nb-bg)) { background: #FFFFFF; }
  html.aiq-phone.ph-v2[data-theme]:not(#_):not(#_):not(#_):not(#_):not(#_) #aiq-ptabs a i,
  html.aiq-phone.ph-v2[data-theme]:not(#_):not(#_):not(#_):not(#_):not(#_) #aiq-ptabs a span { color: #8A90A0; }
  html.aiq-phone.ph-v2[data-theme]:not(#_):not(#_):not(#_):not(#_):not(#_) #aiq-ptabs a.on span { color: #455DDC; font-weight: 600; }
  html.aiq-phone.ph-v2[data-theme]:not(#_):not(#_):not(#_):not(#_):not(#_) #aiq-ptabs .ph-nb-ball { background: #455DDC; color: #FFFFFF; box-shadow: 0 6px 16px rgba(69,93,220,.35); }

  /* Search: top right; the Search screen covers the bar while open (its tab isn't in this bar for the circle to go to) */
  html.aiq-phone.ph-v2 #ph-v2-search[hidden] { position: fixed; z-index: 60; top: calc(8px + env(safe-area-inset-top)); right: 12px; display: grid; place-items: center;
    width: 38px; height: 38px; border: 0; border-radius: 50%; background: #F3F5F8; color: #101112; font-size: 18px; }
  html.aiq-phone.ph-v2 #ph-v2-search i { font-family: "Phosphor-Bold" !important; }
  html.aiq-phone.ph-v2 #ph-v2-search[hidden] { visibility: visible !important; }   /* a header slot can be visibility:hidden */
  html.aiq-phone.ph-v2 #ph-v2-search.in-th[hidden] { position: static; flex: none; width: 36px; height: 36px; margin-left: 4px; }
  html.aiq-phone.ph-v2 #ph-v2-search.th-end[hidden] { margin-left: auto; }
  /* a page's own header magnifier (.pp-dh-s: Funds, Insiders › People) takes the right slot with order 1: this one kept
     order 0 and a second auto margin, so it floated mid-header. It goes after them instead */
  html.aiq-phone.ph-v2 #ph-th > .pp-dh-s ~ #ph-v2-search.th-end[hidden] { order: 1; margin-left: 0; }
  /* ...and goes: one search per screen. Two magnifiers side by side; the page's own filters its list, any stock is the tab screens' "Search any stock" bar (2026-11-10) */
  html.aiq-phone.ph-v2.ph-pro:is(.pp-dirhead, .pp-fbhead, .pp-gmhead):has(#ph-th > .pp-dh-s) #ph-v2-search:not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-v2.ph-v2-tab #ph-th:has(> #ph-v2-search) { min-height: 0; height: 48px; }
  html.aiq-phone.ph-v2 #ph-th .ph-th-sp:has(#ph-v2-search) { display: flex; justify-content: flex-end; visibility: visible; }
  html.aiq-phone.ph-v2.ph-searching #ph-v2-search { display: none; }
  /* one search per screen (2026-11-10): a tab screen with a "Search any stock" bar (.ph-sbar, the 2026-11-09 design)
     has no round button above it; every other screen keeps the button at the header's right edge. An open list /
     investor is an inner screen (no ph-v2-tab), so it gets the button back */
  html.aiq-phone.ph-v2.ph-v2-tab:has(main .ph-sbar) #ph-v2-search:not(#_) { display: none !important; }
  html.aiq-phone.ph-v2.ph-v2-tab:has(main .ph-sbar) #ph-th:not(#_):not(#_) { display: none; }   /* back + title are hidden there too: an empty band */
  html.aiq-phone.ph-v2.ph-v2-tab:has(main .ph-sbar):not(#_):not(#_):not(#_):not(#_):not(#_) .app-shell > main { padding-top: 16px !important; }   /* the bar 20px from the top on every tab */
  html.aiq-phone.ph-v2.ph-v2-tab #ms2-sbar:not(#_):not(#_) { margin-top: 16px; }   /* its .msa-at sits 12px up */
  /* a right-hand header button the page keeps invisible (Earnings / Insiders / Congress ⋯ with no menu, Dex's new-chat
     pencil before a chat) held the right edge, so the button sat 44px in from where it is on every other page */
  html.aiq-phone.ph-v2 #ph-th > #ph-navmenu[style*="visibility: hidden"]:not(#_):not(#_),
  html.aiq-phone.ph-v2.ph-lt-on #ph-th > #ph-navmenu:not(#_):not(#_),
  html.aiq-phone.ph-v2.aia:not(.aia-conv) #ph-th > .aia-ph-new:not(#_):not(#_) { display: none; }
  html.aiq-phone.ph-v2.ph-searching #aiq-ptabs:not(#_):not(#_):not(#_):not(#_):not(#_) { visibility: hidden; }
  /* no page title on the bar's own tab screens (user, 2026-11-08, picked "No title at all"); html.ph-v2-tab is set by
     aiq-phone-tablehead.js. Inner screens (a portfolio, a stock) keep theirs. */
  html.aiq-phone.ph-v2.ph-v2-tab #ph-th .ph-th-t:not(#_):not(#_):not(#_):not(#_):not(#_) { display: none; }
  html.aiq-phone.ph-v2.ph-v2-tab :is(.tc-pin-t, .pin-t, .aiq-bigt):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  /* where the header row is hidden the search button floats top right: give it a strip of its own above the content */
  html.aiq-phone.ph-v2.ph-v2-tab:has(body > #ph-v2-search):not(:has(main .ph-sbar)):not(#_):not(#_):not(#_):not(#_):not(#_) .app-shell > main { padding-top: 58px !important; }
  /* the full investor + Congress member lists under the draft bar: a two-column grid of portrait tiles, not one long
     list (user, 2026-11-08: "this page cannot just be one large list, it doesn't look good"). The cards come from
     js/aiq-phone-tcards.js (.pc-r > .pc-hd > face · name over sub · value); only their layout changes here. */
  html.aiq-phone.ph-v2 :is(.si-dir, .cg) .pc-list:has(.tc-face):not(#_):not(#_):not(#_):not(#_):not(#_) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px;
    padding: 0; background: transparent; box-shadow: none; border: 0; }
  html.aiq-phone.ph-v2 :is(.si-dir, .cg) .pc-list:has(.tc-face) > .pc-r:not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 0; padding: 8px 8px 12px; border-radius: 22px; background: #FFFFFF;
    box-shadow: 0 1px 2px rgba(16,24,40,.05); }
  html.aiq-phone.ph-v2 :is(.si-dir, .cg) .pc-list:has(.tc-face) > .pc-r::before:not(#_):not(#_):not(#_):not(#_):not(#_) { display: none; }
  html.aiq-phone.ph-v2 :is(.si-dir, .cg) .pc-list:has(.tc-face) .pc-hd:not(#_):not(#_):not(#_):not(#_):not(#_) { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "pic pic" "nm nm" "pr pr";
    gap: 8px 6px; padding: 0; min-height: 0; }
  html.aiq-phone.ph-v2 :is(.si-dir, .cg) .pc-list:has(.tc-face) .tc-face:not(#_):not(#_):not(#_):not(#_):not(#_) { grid-area: pic; width: 100% !important; height: 128px !important; border-radius: 16px !important;
    margin: 0 !important; overflow: hidden; background: #EEF1FD; }
  html.aiq-phone.ph-v2 :is(.si-dir, .cg) .pc-list:has(.tc-face) .tc-face img:not(#_):not(#_):not(#_):not(#_):not(#_) { width: 100% !important; height: 100% !important; border-radius: 0 !important;
    object-fit: cover; object-position: center 20%; }
  html.aiq-phone.ph-v2 :is(.si-dir, .cg) .pc-list:has(.tc-face) .pc-nm:not(#_):not(#_):not(#_):not(#_):not(#_) { grid-area: nm; padding: 0 4px; min-width: 0; }
  html.aiq-phone.ph-v2 :is(.si-dir, .cg) .pc-list:has(.tc-face) .pc-nm b:not(#_):not(#_):not(#_):not(#_):not(#_) { font-size: 15px; font-weight: 650; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; }
  html.aiq-phone.ph-v2 :is(.si-dir, .cg) .pc-list:has(.tc-face) .pc-nm small:not(#_):not(#_):not(#_):not(#_):not(#_) { font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; }
  html.aiq-phone.ph-v2 :is(.si-dir, .cg) .pc-list:has(.tc-face) .pc-pr:not(#_):not(#_):not(#_):not(#_):not(#_) { grid-area: pr; display: flex; flex-direction: row; align-items: baseline; justify-content: space-between;
    gap: 6px; padding: 0 4px; text-align: left; }
  html.aiq-phone.ph-v2 :is(.si-dir, .cg) .pc-list:has(.tc-face) .pc-pr b:not(#_):not(#_):not(#_):not(#_):not(#_) { font-size: 14.5px; }
  /* fewer buttons on the full lists (user, 2026-11-08: "I don't think we should have all these buttons in one place"):
     no period pill + filter button (the default window stands), and the view switch as quiet words with a 2px bar
     under the open one (the house tab style) instead of a row of pills */
  html.aiq-phone.ph-v2:has(:is(.si-dir, .cg)):not(#_):not(#_):not(#_):not(#_):not(#_) #ph-cf { display: none !important; }
  html.aiq-phone.ph-v2:has(:is(.si-dir, .cg)):not(#_):not(#_):not(#_):not(#_):not(#_) #ph-rtabs { gap: 20px; margin: 0 0 14px; padding: 0 2px; border-bottom: 1px solid #E6E8EE;
    background: transparent !important; overflow-x: auto; scrollbar-width: none; }
  html.aiq-phone.ph-v2:has(:is(.si-dir, .cg)):not(#_):not(#_):not(#_):not(#_):not(#_) #ph-rtabs button { position: relative; height: 38px; padding: 0; border: 0 !important; border-radius: 0 !important;
    background: transparent !important; box-shadow: none !important; color: #80868F !important; font-size: 15px; font-weight: 600; white-space: nowrap; }
  html.aiq-phone.ph-v2:has(:is(.si-dir, .cg)):not(#_):not(#_):not(#_):not(#_):not(#_) #ph-rtabs button i { display: none; }
  html.aiq-phone.ph-v2:has(:is(.si-dir, .cg)):not(#_):not(#_):not(#_):not(#_):not(#_) #ph-rtabs button :is(span, small, em) { color: inherit !important; background: none !important; }
  html.aiq-phone.ph-v2:has(:is(.si-dir, .cg)):not(#_):not(#_):not(#_):not(#_):not(#_) #ph-rtabs button.on { color: #101112 !important; }
  html.aiq-phone.ph-v2:has(:is(.si-dir, .cg)):not(#_):not(#_):not(#_):not(#_):not(#_) #ph-rtabs button.on::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px;
    border-radius: 2px; background: #101112; }
  /* the investor list's own chip row (nav.sid-rail: All managers · Following · Value · Growth…) gets the same quiet
     tabs, and its ☰ Views button goes (the tab screen /m/investors holds the other views' content) */
  html.aiq-phone.ph-v2:has(.si-dir):not(#_):not(#_):not(#_):not(#_):not(#_) #ph-th button.ph-th-b[aria-label="Views"] { display: none !important; }
  html.aiq-phone.ph-v2:has(.si-dir):not(#_):not(#_):not(#_):not(#_):not(#_) .si-dir nav.sid-rail { gap: 20px; margin: 0 16px 14px; padding: 0 2px; border-bottom: 1px solid #E6E8EE;
    background: transparent !important; overflow-x: auto; scrollbar-width: none; }
  html.aiq-phone.ph-v2:has(.si-dir):not(#_):not(#_):not(#_):not(#_):not(#_) .si-dir nav.sid-rail button { position: relative; flex: none; height: 38px; padding: 0; border: 0 !important;
    border-radius: 0 !important; background: transparent !important; box-shadow: none !important; color: #80868F !important; font-size: 15px; font-weight: 600; }
  html.aiq-phone.ph-v2:has(.si-dir):not(#_):not(#_):not(#_):not(#_):not(#_) .si-dir nav.sid-rail button :is(span, small, em, b) { color: inherit !important; background: none !important; }
  html.aiq-phone.ph-v2:has(.si-dir):not(#_):not(#_):not(#_):not(#_):not(#_) .si-dir nav.sid-rail button :is(i, .sid-dot, [class*="dot"]) { display: none !important; }
  html.aiq-phone.ph-v2:has(.si-dir):not(#_):not(#_):not(#_):not(#_):not(#_) .si-dir nav.sid-rail button.on { color: #101112 !important; }
  html.aiq-phone.ph-v2:has(.si-dir):not(#_):not(#_):not(#_):not(#_):not(#_) .si-dir nav.sid-rail button.on::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px;
    border-radius: 2px; background: #101112; }
  /* "Search any stock" bar at the top of Markets, Investors and My stocks (user, 2026-11-09): opens the phone search */
  html.aiq-phone .ph-sbar { display: flex; align-items: center; gap: 10px; width: 100%; height: 48px; margin: 4px 0 18px; padding: 0 16px; border: 0;
    border-radius: 999px; background: #F2F3F5; color: #80868F; font: 500 16px/1 Inter, system-ui, sans-serif; text-align: left; cursor: pointer; }
  html.aiq-phone .ph-sbar i { font-size: 19px; color: #101112; }
  /* My stocks seats it in the edge-to-edge .msa-at (-12px margins): it ran into both screen edges */
  html.aiq-phone .msa-at > #ms2-sbar { width: calc(100% - 24px); margin-left: 12px; margin-right: 12px; }   /* not auto: a button shrinks to its text in a block parent (no lists = .is-blank) */
}

/* ==== css/aiq-phone-pro.css ==== */
/* The big-app polish layer (2026-11-07, user: "make our mobile pages look more professional like the largest web apps"):
   what Robinhood / Apple Stocks / Revolut do that our phone pages didn't. html.ph-pro, on by default (_phone.html);
   ?ppro=off turns it off for this browser to compare, ?ppro=on back. Nav bar, side menu, colours, card look and the Explore
   deck are the user's earlier picks and are NOT touched here. Every rule is scoped to html.ph-pro
   (tests/test_phone_pro_draft.py); docs/features/phone.md "Big-app polish layer" lists what is in it. The JS half is
   js/aiq-phone-pro.js (compact bar, loading letters, flags, fund logos, empty KPI columns).
   Loaded with media="(max-width: 767px)": every rule stays inside. */
@media (max-width: 767px) {
  /* 1. the compact bar (hidden until html.ph-cbar-on; no fade: transitions stick on class swaps and paused animations left it invisible) */
  html.aiq-phone.ph-pro #ph-cbar { position: fixed; z-index: 60; left: 0; right: 0; top: 0; display: none; align-items: center; justify-content: center;
    height: calc(44px + env(safe-area-inset-top)); padding: env(safe-area-inset-top) 52px 0;
    background: rgba(242,243,245,.92); -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px);
    box-shadow: inset 0 -0.5px 0 rgba(15,17,21,.12); }
  html.aiq-phone.ph-pro.ph-cbar-on #ph-cbar { display: flex; }
  html.aiq-phone.ph-pro.ph-drw-lock #ph-cbar { display: none; }
  html.aiq-phone.ph-pro #ph-cbar > span { display: flex; flex-direction: column; align-items: center; min-width: 0; max-width: 100%; }
  html.aiq-phone.ph-pro #ph-cbar small { font: 500 12px/1.2 Inter, system-ui, sans-serif; color: #80868F; font-variant-numeric: tabular-nums; }
  html.aiq-phone.ph-pro #ph-cbar small[hidden] { display: none; }
  html.aiq-phone.ph-pro #ph-cbar b { max-width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font: 600 17px/1.2 Inter, system-ui, sans-serif; letter-spacing: -.01em; color: #101112; }
  html.aiq-phone.ph-pro #ph-cbar button { position: absolute; left: 4px; bottom: 0; width: 44px; height: 44px; display: grid; place-items: center;
    border: 0; background: none; color: #101112; font-size: 24px; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone.ph-pro #ph-cbar button[hidden] { display: none; }

  /* 2. tap feedback — instant, as iOS does it (no transition) */
  html.aiq-phone.ph-pro .pc-r, html.aiq-phone.ph-pro .ph-rrow, html.aiq-phone.ph-pro .ph-rcard, html.aiq-phone.ph-pro .pcl-r { -webkit-tap-highlight-color: transparent; }
  html.aiq-phone.ph-pro .pc-r:active:not(#_):not(#_):not(#_), html.aiq-phone.ph-pro .ph-rrow:active:not(#_):not(#_):not(#_),
  html.aiq-phone.ph-pro .pcl-r:active:not(#_):not(#_):not(#_) { background-color: rgba(15,17,21,.05); }
  html.aiq-phone.ph-pro .ph-rcard:active:not(#_):not(#_):not(#_) { transform: scale(.98); }

  /* 3. the letter under a logo that is still loading (data-pl, set + cleared by js/aiq-phone-pro.js) */
  html.aiq-phone.ph-pro :is(.pc-lw, .lg)[data-pl] { position: relative; }
  html.aiq-phone.ph-pro :is(.pc-lw, .lg)[data-pl]::before { content: attr(data-pl); position: absolute; inset: 0; display: grid; place-items: center;
    font: 600 15px/1 Inter, system-ui, sans-serif; color: #80868F; }
  html.aiq-phone.ph-pro .ph-rrow > .lg[data-pl]::before { font-size: 11px; }   /* the smaller record-row logos (Congress Most bought…) */
  html.aiq-phone.ph-pro :is(.pc-lw, .lg)[data-pl] > img { position: relative; }

  /* 4. big figures */
  html.aiq-phone.ph-pro .big.hx-num:not(#_):not(#_):not(#_), html.aiq-phone.ph-pro #ov-px:not(#_):not(#_):not(#_), html.aiq-phone.ph-pro .fd-px > b:not(#_):not(#_):not(#_) { font-weight: 600 !important; letter-spacing: -.03em !important; }

  /* 5. Investors: the directory's filter rail as the separate pill buttons every other phone list uses (#ph-rtabs) */
  html.aiq-phone.ph-pro .sid-rail:not(#_):not(#_):not(#_) { display: flex; gap: 6px; padding: 0 16px; margin: 4px 0 12px; overflow-x: auto; scrollbar-width: none; background: none; border: 0; }
  html.aiq-phone.ph-pro .sid-rail::-webkit-scrollbar { display: none; }
  html.aiq-phone.ph-pro .sid-rail .sid-sec:not(#_):not(#_):not(#_) { display: none; }
  html.aiq-phone.ph-pro .sid-rail button:not(#_):not(#_):not(#_) { flex: none; display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px; border: 0; border-radius: 999px;
    background: #FFFFFF; box-shadow: none; color: #101112; font-size: 14px; font-weight: 500; }
  html.aiq-phone.ph-pro .sid-rail button span:not(#_):not(#_):not(#_) { display: inline-flex; align-items: center; gap: 6px; }
  html.aiq-phone.ph-pro .sid-rail button em:not(#_):not(#_):not(#_) { font-style: normal; font-size: 12px; opacity: .5; background: none; padding: 0; color: inherit; }
  html.aiq-phone.ph-pro .sid-rail button.on:not(#_):not(#_):not(#_) { background: #2B2D33; color: #FFFFFF; font-weight: 600; }
  html.aiq-phone.ph-pro .sid-rail button em:not(#_):not(#_):not(#_) { border: 0 !important; outline: 0; box-shadow: none !important; }

  /* 6. stat tiles (record pages, stock Overview, investor Highlights): the figure right under its label, as Revolut / Robinhood
     set them — they stood 100px tall with the label and the figure pushed to opposite edges */
  html.aiq-phone.ph-pro main .ph-rcards > .ph-rcard:not(#_):not(#_):not(#_):not(#_):not(#_) { min-height: 0; justify-content: flex-start; gap: 8px; padding: 14px 16px 15px; }
  html.aiq-phone.ph-pro .ph-rcards > .ph-rcard .v:not(#_):not(#_):not(#_) { font-variant-numeric: tabular-nums; letter-spacing: -.02em; }

  /* 7. figures in list rows in ink, as Robinhood / Revolut print them (they were the iOS-settings grey, which reads as
     "disabled"); rows that open something (a › chevron: Portfolio alerts, Website) keep the quiet grey value */
  html.aiq-phone.ph-pro .ph-rrow:not(:has(.ph-caret-right)) > .val:not(.pos):not(.neg):not(a):not(#_):not(#_) { color: #101112; font-weight: 500; font-variant-numeric: tabular-nums; }

  /* 8. Funds browser: one row, like every other phone list (rule 15: far fewer configuration buttons) — search + sort; the six
     filter icons wrapped onto a second line and read as a toolbar from a desktop app. The category rail below still filters. */
  html.aiq-phone.ph-pro .fb-row:not(#_):not(#_) { flex-wrap: nowrap; gap: 8px; padding: 0 4px; }
  html.aiq-phone.ph-pro .fb-row > .fb-b:not(:first-child):not(#_):not(#_), html.aiq-phone.ph-pro .fb-row > .fb-sep:not(#_):not(#_) { display: none; }
  html.aiq-phone.ph-pro .fb-row > .fb-sp:not(#_):not(#_) { display: none; }
  html.aiq-phone.ph-pro .fb-row > .fb-search:not(#_):not(#_) { order: -1; }
  /* the search as an iOS search field (filled, full width), Sorted by as a quiet pill beside it */
  html.aiq-phone.ph-pro .fb-row > .fb-search:not(#_):not(#_):not(#_) { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 6px; height: 36px; padding: 0 10px;
    border: 0; border-radius: 10px; background: rgba(118,118,128,.12); box-shadow: none; color: #80868F; }
  html.aiq-phone.ph-pro .fb-row > .fb-search input:not(#_):not(#_):not(#_) { flex: 1; min-width: 0; width: auto; display: block; height: 34px; padding: 0; border: 0; outline: 0; background: none;
    font-size: 16px; color: #101112; box-shadow: none; }
  html.aiq-phone.ph-pro .fb-row > .fb-b:first-child:not(#_):not(#_):not(#_) { flex: none; height: 36px; padding: 0 12px; border-radius: 999px; background: #FFFFFF; box-shadow: none; font-size: 14px; }
  /* the category rail: the same separate pills as every phone list */
  html.aiq-phone.ph-pro .fb-rail:not(#_):not(#_) { gap: 6px; padding: 0 4px; }
  html.aiq-phone.ph-pro .fb-rail > button:not(#_):not(#_):not(#_) { flex: none; display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px; border: 0; border-radius: 999px;
    background: #FFFFFF; box-shadow: none; color: #101112; font-size: 14px; font-weight: 500; }
  html.aiq-phone.ph-pro .fb-rail > button .fb-ic:not(#_):not(#_):not(#_) { display: none; }
  html.aiq-phone.ph-pro .fb-rail > button em:not(#_):not(#_):not(#_) { font-style: normal; font-size: 12px; opacity: .5; background: none; padding: 0; color: inherit; border: 0; }
  html.aiq-phone.ph-pro .fb-rail > button.on:not(#_):not(#_):not(#_) { background: #2B2D33; color: #FFFFFF; font-weight: 600; }
  /* counts inside pills: plain numbers (desktop draws them as small boxed tags) */
  html.aiq-phone.ph-pro :is(.fb-rail, .sid-rail, #ph-rtabs) button em:not(#_):not(#_):not(#_):not(#_) { box-shadow: none !important; border: 0 !important; }

  /* 9. stock page header: the page-settings ≡ joins the star + bell pill (it floated beside it as a separate shadowed circle:
     three button styles in one row). The ≡ stays fixed, so once the header scrolls away it sits plain on the compact bar. */
  html.aiq-phone.ph-pro #ph-th > .pfa:not(#_):not(#_):not(#_):not(#_):not(#_) { margin-right: 8px; }   /* no ≡ (Overview, Dividends…): the pill sat 4px off the edge */
  html.aiq-phone.ph-pro:has(#ph-fin-menu:not(.ph-fm-off)) #ph-th > .pfa:not(#_):not(#_):not(#_):not(#_):not(#_) { margin-right: 8px; padding-right: 48px; }
  html.aiq-phone.ph-pro.at-p-financials:has(#ph-th > .pfa) #ph-fin-menu:not(#_):not(#_):not(#_):not(#_):not(#_) { top: calc(6px + env(safe-area-inset-top)) !important; right: 14px !important;
    width: 44px; height: 44px; background: none !important; box-shadow: none !important; color: #101112; font-size: 21px; }
  html.aiq-phone.ph-pro.at-p-financials #ph-fin-menu i:not(#_):not(#_):not(#_):not(#_) { font-family: "Phosphor-Regular" !important; font-style: normal; }
  html.aiq-phone.ph-pro.ph-cbar-on.at-p-financials #ph-fin-menu:not(#_):not(#_):not(#_):not(#_):not(#_) { top: env(safe-area-inset-top) !important; }

  /* 10. the stock page's page rows (Income · Balance · Cash flow · KPIs, Multiples · Comparables, Ratios): separate pills, the
     open one charcoal (user, 2026-11-02: "buttons on mobile should be separate", #ph-rtabs) — the statements still drew the
     older joined iOS control and Multiples a third, outlined look. The Annual | Quarterly switch stays segmented (a toggle). */
  html.aiq-phone.ph-pro[data-theme] .fin-ph-row:not([hidden]):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: flex !important; gap: 6px !important; padding: 0 16px !important; margin-left: -12px !important; margin-right: -12px !important; -webkit-mask-image: linear-gradient(to right, transparent, #000 14px, #000 calc(100% - 28px), transparent) !important; mask-image: linear-gradient(to right, transparent, #000 14px, #000 calc(100% - 28px), transparent) !important; background: none !important; border-radius: 0 !important; box-shadow: none !important; overflow-x: auto; scrollbar-width: none; }
  html.aiq-phone.ph-pro[data-theme] .fin-ph-row > button:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { flex: none !important; height: 36px !important; padding: 0 14px !important; border: 0 !important; border-radius: 999px !important;
    background: #FFFFFF !important; box-shadow: none !important; color: #101112 !important; font-size: 14px !important; font-weight: 500 !important; }
  html.aiq-phone.ph-pro[data-theme] .fin-ph-row > button > i:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-pro[data-theme] .fin-ph-row > button.is-on:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: #2B2D33 !important; color: #FFFFFF !important; font-weight: 600 !important; }

  /* 11. list rows: the small status word under a figure as quiet text, no grey pill (the finance look: "no pills"; Home's
     Superinvestor moves showed a grey "Added" chip on every row) */
  html.aiq-phone.ph-pro .hm-rr .hm-v .ph-rpill.grey:not(#_):not(#_):not(#_) { padding: 0; background: none; color: #80868F; font-size: 13px; font-weight: 500; }

  /* 12. currency flags (js/aiq-phone-pro.js flags()): the flag fills the round tile */
  html.aiq-phone.ph-pro .pc-lw.mpc-tile:has(> .pp-flag):not(#_):not(#_) { overflow: hidden; border-radius: 50%; background: #FFFFFF; box-shadow: inset 0 0 0 1px rgba(15,17,21,.07); }
  html.aiq-phone.ph-pro .pc-lw > .pp-flag { display: grid; place-items: center; width: 100%; height: 100%; font-size: 66px; line-height: 1; transform: translateY(-3px); color: #000; }

  /* 13. My stocks lists: the first three stocks' logos, overlapping (js/aiq-phone-mslists.js lead()) */
  html.aiq-phone.ph-pro .pcl-stack { position: relative; flex: none; width: 46px; height: 46px; }
  html.aiq-phone.ph-pro .pcl-stack > .pc-lw:not(#_):not(#_) { position: absolute; width: 26px; height: 26px; border-radius: 50%; background: #FFFFFF; overflow: hidden;
    box-shadow: 0 0 0 2px #FFFFFF, inset 0 0 0 1px rgba(15,17,21,.08); display: grid; place-items: center; }
  html.aiq-phone.ph-pro .pcl-stack > .pc-lw[data-l]::before { content: attr(data-l); grid-area: 1 / 1; font: 600 12px/1 Inter, system-ui, sans-serif; color: #80868F; }
  html.aiq-phone.ph-pro .pcl-stack > .pc-lw > img:not(#_):not(#_) { grid-area: 1 / 1; place-self: center; width: 16px; height: 16px; object-fit: contain; background: #FFFFFF; position: relative; }
  html.aiq-phone.ph-pro .pcl-stack.n1 > .pc-lw:not(#_):not(#_) { width: 40px; height: 40px; left: 3px; top: 3px; } html.aiq-phone.ph-pro .pcl-stack.n1 > .pc-lw > img:not(#_):not(#_) { width: 24px; height: 24px; }
  html.aiq-phone.ph-pro .pcl-stack.n2 > .pc-lw:nth-child(1) { left: 0; top: 4px; } html.aiq-phone.ph-pro .pcl-stack.n2 > .pc-lw:nth-child(2) { left: 20px; top: 16px; }
  html.aiq-phone.ph-pro .pcl-stack.n3 > .pc-lw:nth-child(1) { left: 0; top: 1px; } html.aiq-phone.ph-pro .pcl-stack.n3 > .pc-lw:nth-child(2) { left: 20px; top: 1px; }
  html.aiq-phone.ph-pro .pcl-stack.n3 > .pc-lw:nth-child(3) { left: 10px; top: 19px; }
  html.aiq-phone.ph-pro #ph-rtabs button em:not(#_):not(#_):not(#_):not(#_) { margin-left: 3px; }

  /* 14. error pages (404 / 500, _look_error.html): one title, not the header's "Page Not Found" over "This page isn't here.";
     left-aligned like every phone page, full-width buttons stacked */
  html.aiq-phone.ph-pro:has(.lke) #ph-th .ph-th-t:not(#_):not(#_):not(#_):not(#_):not(#_) { visibility: hidden; }
  html.aiq-phone.ph-pro:has(.lke) .tc-pin-t:not(#_):not(#_) { display: none; }
  html.aiq-phone.ph-pro .lke .lke-c:not(#_):not(#_) { text-align: left; max-width: none; }
  html.aiq-phone.ph-pro .lke .lke-k:not(#_):not(#_) { color: #80868F; font: 500 13px/1 Inter, system-ui, sans-serif; letter-spacing: 0; margin-bottom: 10px; }
  html.aiq-phone.ph-pro .lke .lke-acts:not(#_):not(#_) { display: flex; flex-direction: column; gap: 10px; margin-top: 24px; }
  html.aiq-phone.ph-pro .lke .lke-b:not(#_):not(#_) { display: flex; align-items: center; justify-content: center; height: 50px; border-radius: 14px; font-size: 16px; font-weight: 600; }
  html.aiq-phone.ph-pro .lke:not(#_):not(#_) { padding: 0 !important; margin: 0 !important; min-height: 0 !important; display: block !important; }
  html.aiq-phone.ph-pro .lke .lke-c:not(#_):not(#_):not(#_) { padding: 8px 4px 0 !important; width: auto !important; margin: 0 !important; left: auto !important; transform: none !important; position: relative; inset: auto !important; }
  html.aiq-phone.ph-pro .lke h1:not(#_):not(#_) { font-size: 30px !important; line-height: 1.15 !important; letter-spacing: -.025em; color: #101112 !important; }
  html.aiq-phone.ph-pro .lke h1 span:not(#_):not(#_) { color: #80868F !important; }

  /* 15. search results drawn like every other stock row: round logo, ticker over the company (Robinhood / Wealthsimple
     search); they were 28px rounded squares with the name first and "MU · US" in grey on the right */
  html.aiq-phone.ph-pro #ph-search .ps-res .ps-row:not(#_):not(#_):not(#_):not(#_) { min-height: 60px; gap: 12px; }
  html.aiq-phone.ph-pro #ph-search .ps-res .ps-lg:not(#_):not(#_):not(#_):not(#_) { width: 40px; height: 40px; border-radius: 50%; background: #FFFFFF; box-shadow: inset 0 0 0 1px rgba(15,17,21,.08); }
  html.aiq-phone.ph-pro #ph-search .ps-res .ps-lg img:not(#_):not(#_):not(#_):not(#_) { inset: 20%; width: 60%; height: 60%; object-fit: contain; }
  html.aiq-phone.ph-pro #ph-search .ps-res .ps-lg i:not(#_):not(#_):not(#_):not(#_) { font-size: 15px; }
  html.aiq-phone.ph-pro #ph-search .ps-res .ps-tx:not(#_):not(#_):not(#_):not(#_) { flex-direction: column-reverse; align-items: stretch; gap: 1px; }
  html.aiq-phone.ph-pro #ph-search .ps-res .ps-tx small:not(#_):not(#_):not(#_):not(#_) { max-width: 100%; font-size: 16px; font-weight: 600; color: #101112; letter-spacing: -.01em; }
  html.aiq-phone.ph-pro #ph-search .ps-res .ps-tx b:not(#_):not(#_):not(#_):not(#_) { font-size: 13px; font-weight: 450; color: #80868F; letter-spacing: 0; }

  /* 16. Insider directory (/insiders/people, /insiders/companies): the view picker + search only (rule 15), the role rail as pills */
  html.aiq-phone.ph-pro .idr-bar :is(.idr-tog, .idr-seg, .idr-export, .idr-sp):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-pro .idr-bar:not(#_):not(#_) { display: flex; flex-wrap: nowrap; gap: 8px; align-items: center; padding: 0 16px; }
  html.aiq-phone.ph-pro .idr-bar > .idr-search:not(#_):not(#_) { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 6px; height: 36px; padding: 0 10px; border: 0; border-radius: 10px;
    background: rgba(118,118,128,.12); box-shadow: none; color: #80868F; }
  html.aiq-phone.ph-pro .idr-bar > .idr-search input:not(#_):not(#_) { flex: 1; min-width: 0; width: auto; height: 34px; padding: 0; border: 0; outline: 0; background: none; font-size: 16px; color: #101112; box-shadow: none; }
  html.aiq-phone.ph-pro .idr-rail:not(#_):not(#_) { display: flex; gap: 6px; padding: 0 16px; margin: 10px 0 12px; overflow-x: auto; scrollbar-width: none; background: none; border: 0; }
  html.aiq-phone.ph-pro .idr-rail > button:not(#_):not(#_):not(#_) { flex: none; display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px; border: 0; border-radius: 999px;
    background: #FFFFFF; box-shadow: none; color: #101112; font-size: 14px; font-weight: 500; }
  html.aiq-phone.ph-pro .idr-rail > button em:not(#_):not(#_):not(#_) { font-style: normal; font-size: 12px; opacity: .5; background: none; padding: 0; color: inherit; border: 0; box-shadow: none; }
  html.aiq-phone.ph-pro .idr-rail > button.on:not(#_):not(#_):not(#_) { background: #2B2D33; color: #FFFFFF; font-weight: 600; }
  html.aiq-phone.ph-pro .idr-main:has(.pc.tc):not(#_):not(#_) { padding-left: 0; padding-right: 0; }
  html.aiq-phone.ph-pro .idr-main > .idr-bar:not(#_):not(#_), html.aiq-phone.ph-pro .idr-main .idr-rail:not(#_):not(#_) { margin-left: 0; margin-right: 0; }

  /* 17. a page's own sticky jump bar (fund pages' Overview · Holdings · Exposure) sits under the compact bar, not behind it */
  html.aiq-phone.ph-pro.ph-cbar-on #fd-jump:not(#_):not(#_):not(#_) { top: calc(44px + env(safe-area-inset-top)) !important; background: #F2F3F5; }
  /* ...so a jump lands each section under BOTH bars: funds.js sets scroll-margin to the jump bar only (60px), which left the
     section heading under the bar once it moved down 44px (the compact bar shows on any jump, so this is always the case) */
  html.aiq-phone.ph-pro .fd-sec:not(#_):not(#_) { scroll-margin-top: calc(44px + 52px + 8px + env(safe-area-inset-top)) !important; }
  /* record-page titles (an insider, a fund) wrap to two lines instead of "Cascade Investment, L…." */
  html.aiq-phone.ph-pro.ph-hd-large:not(.ph-th-root) #ph-th .ph-th-t b:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

  /* 18. one section-heading style on stock pages: the bold 19px ink ("Key facts", .ph-rh) — Capital structure's pane headings
     and the transcript's Presentation / Q&A were a grey 17px regular, a second voice */
  html.aiq-phone.ph-pro main .fxd-pane-h h4:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_), html.aiq-phone.ph-pro main .tx-section-heading:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { font: 700 19px/1.25 Inter, system-ui, sans-serif !important; letter-spacing: -.02em !important; color: #101112 !important; text-transform: none !important; }
  html.aiq-phone.ph-pro .tx-tone.neu:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: #F1F2F4; color: #5B616B; }
  /* in-page view tabs (Capital structure: Overview · Debt · Capital · Credit) as the same separate pills; small toggles
     (.pfc-mini: Annual | Quarterly) stay segmented */
  html.aiq-phone.ph-pro .pfc-seg.pfc-tabs:not(#_):not(#_) { gap: 6px; padding: 0; border-radius: 0; background: none; overflow-x: auto; scrollbar-width: none; }
  html.aiq-phone.ph-pro .pfc-seg.pfc-tabs > button:not(#_):not(#_) { flex: none; height: 36px; padding: 0 14px; border-radius: 999px; background: #FFFFFF; color: #101112; font-weight: 500; box-shadow: none; overflow: visible; }
  html.aiq-phone.ph-pro .pfc-seg.pfc-tabs > button.on:not(#_):not(#_) { background: #2B2D33; color: #FFFFFF; font-weight: 600; box-shadow: none; }

  /* 19. Markets' period row: the seven periods share the width (10Y ran 43px off the right edge, sliced) */
  html.aiq-phone.ph-pro .mk-per:not(#_):not(#_):not(#_) { display: flex; gap: 0; width: auto; overflow: visible; }
  html.aiq-phone.ph-pro .mk-per > button:not(#_):not(#_):not(#_) { flex: 1 1 0; min-width: 0; padding-left: 0; padding-right: 0; }


  /* 20. an insider's page: the trade cards line up with the page's 16px gutter; section titles in the one heading style */
  html.aiq-phone.ph-pro .ipp-grid:has(.pc.tc):not(#_):not(#_) { padding-left: 0; padding-right: 0; }
  html.aiq-phone.ph-pro .ipp-grid > .ipp-main > :not(.ipp-sec):not(#_):not(#_), html.aiq-phone.ph-pro .ipp-sec > :not(.pc):not(#_):not(#_) { margin-left: 16px; margin-right: 16px; }
  html.aiq-phone.ph-pro .ipp-sec > h2:not(#_):not(#_):not(#_) { font: 700 19px/1.25 Inter, system-ui, sans-serif !important; letter-spacing: -.02em; color: #101112; }

  /* 21. a stock's Institutions page: the 13F summary as a finance card (it was the desktop side card: 4px corners, outline,
     shadow, 13px rows) and the holder cards in line with it */
  /* !important: _look_landing.html's `.ins-card { border … !important; border-radius: 4px !important }` out-ranked it and the card kept the
     desktop outline + 4px corners on phones (2026-11-08 corners + spacing pass); the column on the 16px page edge (it sat at main's 12px) */
  html.aiq-phone.ph-pro #ins-root .ins-card:not(#_):not(#_):not(#_):not(#_) { border: 0 !important; border-radius: 20px !important; box-shadow: none !important; background: #FFFFFF !important; padding: 14px 16px 12px; }
  html.aiq-phone.ph-pro #ins-root .ins-grid:not(#_):not(#_):not(#_):not(#_) { padding-left: 4px; padding-right: 4px; }
  html.aiq-phone.ph-pro #ins-root .ins-card-t:not(#_):not(#_):not(#_):not(#_) { font: 700 17px/1.25 Inter, system-ui, sans-serif; letter-spacing: -.01em; color: #101112; margin: 0 0 4px; }
  html.aiq-phone.ph-pro #ins-root .ins-card .aiq-kv-r:not(#_):not(#_):not(#_):not(#_) { min-height: 44px; padding: 8px 0; align-items: center; border-bottom: var(--hair, 1px) solid rgba(15,17,21,.07); }
  html.aiq-phone.ph-pro #ins-root .ins-card .aiq-kv-r:last-child:not(#_):not(#_):not(#_):not(#_) { border-bottom: 0; }
  html.aiq-phone.ph-pro #ins-root .ins-card .aiq-kv-l:not(#_):not(#_):not(#_):not(#_) { font-size: 15px; color: #101112; }
  html.aiq-phone.ph-pro #ins-root .ins-card .aiq-kv-v:not(#_):not(#_):not(#_):not(#_) { font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; }
  html.aiq-phone.ph-pro #ins-root .pc.tc:not(#_):not(#_):not(#_):not(#_) { padding-left: 0; padding-right: 0; }


  /* 23. Why it moved: the rows in one white card (they ran edge to edge on the grey page), hairlines between, the logo round,
     the move as plain signed text (the finance look: no pills on figures) */
  html.aiq-phone.ph-pro table.wy-t tbody:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 0 16px; width: auto !important; border-radius: 20px; background: #FFFFFF; overflow: hidden; }
  html.aiq-phone.ph-pro table.wy-t tr:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { border-bottom: 0; position: relative; }
  html.aiq-phone.ph-pro table.wy-t tr + tr:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_)::before { content: ""; position: absolute; top: 0; left: 16px; right: 0; border-top: var(--hair, 1px) solid rgba(15,17,21,.08); }
  html.aiq-phone.ph-pro table.wy-t .sy-logo:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { width: 30px !important; height: 30px !important; padding: 6px; flex: none; border-radius: 50%; background: #FFFFFF; box-shadow: inset 0 0 0 1px rgba(15,17,21,.08); object-fit: contain; box-sizing: border-box; }
  html.aiq-phone.ph-pro table.wy-t td:nth-child(2) :is(.pos, .neg):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { padding: 0; background: none !important; box-shadow: none !important; font-weight: 600; }
  html.aiq-phone.ph-pro table.wy-t:not(#_) { background: none !important; }

  /* 24. Search home: every stock row's logo round + contained like the rest of the app (Popular, Earnings, Insider buying
     drew 40px logos filling the circle); categories as wrapped white pills (they were grey tiles cut at the right edge) */
  html.aiq-phone.ph-pro #ph-search .ps-row .ps-lg:not(#_):not(#_):not(#_):not(#_) { width: 40px; height: 40px; border-radius: 50%; background: #FFFFFF; box-shadow: inset 0 0 0 1px rgba(15,17,21,.08); }
  html.aiq-phone.ph-pro #ph-search .ps-row .ps-lg img:not(#_):not(#_):not(#_):not(#_) { inset: 20%; width: 60%; height: 60%; object-fit: contain; background: #FFFFFF; }
  html.aiq-phone.ph-pro #ph-search .ps-cats:not(#_):not(#_):not(#_):not(#_) { display: flex; flex-wrap: wrap; gap: 8px; overflow: visible; padding: 0 16px; grid-auto-flow: unset; }
  html.aiq-phone.ph-pro #ph-search .ps-cat:not(#_):not(#_):not(#_):not(#_) { flex: none; display: inline-flex; align-items: center; height: 36px; padding: 0 14px; border-radius: 999px; background: #FFFFFF; color: #101112;
    font-size: 14px; font-weight: 500; width: auto; min-width: 0; box-shadow: none; }

  /* 25. Home's large title at the 34px every other tab page uses (iOS's large title; Home's was 30px) */
  html.aiq-phone.ph-pro main h1.pin-t:not(.pcl-pin-t):not(.mk-pin-t):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { font-size: 34px !important; line-height: 1.05 !important; letter-spacing: -.03em !important; margin-left: 0 !important; }

  /* 26. Search: "add stocks to a list" in the one add style (the dashed .pc-add card, user 2026-11-01 "one add standard"),
     not plain centred text in a white card */
  html.aiq-phone.ph-pro.ph-nb #ph-search .ps-empty-card:not(#_):not(#_) { display: flex; align-items: center; justify-content: center; gap: 8px; height: 56px; padding: 0 16px;
    border: 1.5px dashed rgba(15,17,21,.16); background: transparent; box-shadow: none; color: #5B616B; font-size: 15px; font-weight: 500; }
  html.aiq-phone.ph-pro.ph-nb #ph-search .ps-empty-card:not(#_):not(#_)::before { content: "+"; font-size: 20px; font-weight: 400; line-height: 1; }

  /* 27. one 16px gutter on list pages: the view pills (#ph-rtabs, 12px) and the filter-chip row (#ph-cf, 20px) line up with
     the cards and the large title */
  html.aiq-phone.ph-pro:not(.ph-hd-old) #ph-rtabs:not(#_):not(#_):not(#_):not(#_):not(#_) { padding-left: 16px; padding-right: 16px; scroll-padding-inline: 16px; }
  html.aiq-phone.ph-pro #ph-cf:not(#_):not(#_):not(#_):not(#_):not(#_) { padding-left: 16px; padding-right: 16px; }

  /* 28. fund cards: the fund's logo in a round white tile once it loads (js fundLogos()); the category icon stays until then */
  html.aiq-phone.ph-pro .fb-ic.pp-has-logo:not(#_):not(#_) { width: 36px !important; height: 36px !important; border-radius: 50%; background: #FFFFFF; box-shadow: inset 0 0 0 1px rgba(15,17,21,.08); display: grid; place-items: center; overflow: hidden; }
  html.aiq-phone.ph-pro .fb-ic.pp-has-logo > i { display: none; }
  html.aiq-phone.ph-pro .fb-ic > .pp-flogo { width: 62%; height: 62%; object-fit: contain; }
  /* everything on the 16px gutter: the page box adds 12px, the card column another 12 */
  html.aiq-phone.ph-pro #fb-main.fb-main:not(#_):not(#_) { padding-left: 4px; padding-right: 4px; }
  html.aiq-phone.ph-pro a.fb-card:not(#_):not(#_) { border-radius: 20px; border: 0; box-shadow: none; padding: 16px; }

  /* 29. pressed state on every pill / chip (iOS dims a tapped control) */
  html.aiq-phone.ph-pro :is(#ph-rtabs button, .fin-ph-row > button, .sid-rail button, .fb-rail > button, .idr-rail > button, .pfc-tabs > button, #ph-cf .ph-cf-b, .ps-chip, .ps-cat, .pc-add):active:not(#_):not(#_) { opacity: .6; }
  html.aiq-phone.ph-pro :is(#ph-rtabs button, .fin-ph-row > button, .sid-rail button, .fb-rail > button, .idr-rail > button, .pfc-tabs > button, #ph-cf .ph-cf-b, .ps-chip, .ps-cat) { -webkit-tap-highlight-color: transparent; }

  /* 30. small labels in sentence case (the finance look: no tracked capitals) — the screen editor's "START FROM" */
  html.aiq-phone.ph-pro :is(#scx-scope, .scx-scope) .scx-l:not(#_):not(#_):not(#_) { text-transform: none; letter-spacing: 0; font-size: 13px; font-weight: 500; color: #80868F; opacity: 1; }
  /* …and the country rows' own emoji flags (Markets → Countries) fill their circle the same way */
  html.aiq-phone.ph-pro .pc-lw.mpc-tile:has(> .ic.fl):not(#_):not(#_) { overflow: hidden; border-radius: 50%; background: #FFFFFF; box-shadow: inset 0 0 0 1px rgba(15,17,21,.07); }
  html.aiq-phone.ph-pro .pc-lw.mpc-tile > .ic.fl:not(#_):not(#_) { display: grid; place-items: center; width: 100%; height: 100%; font-size: 66px; line-height: 1; transform: translateY(-3px); background: none; color: #000; opacity: 1; }

  /* 31. Markets › News topics (Top news · Economy & Fed · Earnings…) as the same separate pills */
  html.aiq-phone.ph-pro .mkad-seg:not(#_):not(#_):not(#_):not(#_) { display: flex; gap: 6px; padding: 0 0 2px; background: none; border: 0; box-shadow: none; overflow-x: auto; scrollbar-width: none; border-radius: 0; }
  html.aiq-phone.ph-pro .mkad-seg > button:not(#_):not(#_):not(#_):not(#_) { flex: none; height: 36px; padding: 0 14px; border: 0; border-radius: 999px; background: #FFFFFF; color: #101112; font-size: 14px; font-weight: 500; box-shadow: none; }
  html.aiq-phone.ph-pro .mkad-seg > button.on:not(#_):not(#_):not(#_):not(#_) { background: #2B2D33; color: #FFFFFF; font-weight: 600; }

  /* 32. KPI tables: a wholly empty Share / TTM / YoY column is hidden (js emptyCols()) */
  html.aiq-phone.ph-pro #kd-root table.kd-ktbl :is(th, td).pp-ecol:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }

  /* 33. Home: "Market open" (green dot) / "Market closed" after the date */
  html.aiq-phone.ph-pro .pin-t small .pin-mk { color: #80868F; }
  html.aiq-phone.ph-pro .pin-t small .pin-mk.on { color: #0d8a66; }
  html.aiq-phone.ph-pro .pin-t small .pin-mk.on::before { content: ""; display: inline-block; width: 6px; height: 6px; margin: 0 5px 1px 0; border-radius: 50%; background: #12b981; vertical-align: middle; }
  /* …and a list row's price beside its change (Home's World markets: "10,670 −0.94%") in ink, the change keeps its colour */
  html.aiq-phone.ph-pro .ph-rrow > .val > small.hx-num:not(#_):not(#_):not(#_) { color: #101112; font-weight: 500; font-variant-numeric: tabular-nums; }
  html.aiq-phone.ph-pro .ph-rrow > .pp-iflag { flex: none; width: 24px; height: 24px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; font-size: 34px; line-height: 1; color: #000;
    box-shadow: inset 0 0 0 1px rgba(15,17,21,.07); }

  /* 34. fund pages' small fact rows (Record, Dividend facts: "Up years · 8 of 10") at list-row size, like Key facts */
  html.aiq-phone.ph-pro .fd-kv:not(#_):not(#_):not(#_) { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 40px; padding: 6px 0; }
  html.aiq-phone.ph-pro .fd-kv > span:not(#_):not(#_):not(#_) { font-size: 15px; color: #101112; }
  html.aiq-phone.ph-pro .fd-kv > b:not(#_):not(#_):not(#_) { font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; }
  html.aiq-phone.ph-pro .fd-kv + .fd-kv:not(#_):not(#_):not(#_) { border-top: var(--hair, 1px) solid rgba(15,17,21,.07); }

  /* 35. a stock's insider trades: one grouped white card like the app's other logo lists (no rules between rows), round
     initials — each trade was its own floating card with a square avatar */
  html.aiq-phone.ph-pro .co-ph .ph-rlist.t-ins:not(#_):not(#_):not(#_) { background: #FFFFFF; border-radius: 20px; overflow: hidden; }
  html.aiq-phone.ph-pro .co-ph .ph-rlist.t-ins > .ph-rrow:not(#_):not(#_):not(#_) { margin-bottom: 0; border-radius: 0; background: transparent; position: relative; }
  html.aiq-phone.ph-pro .co-ph .ph-rlist.t-ins > .ph-rrow:active:not(#_):not(#_):not(#_) { background: rgba(15,17,21,.05); }
  html.aiq-phone.ph-pro .co-ph .ph-rlist.t-ins .ph-rrow .lg.av:not(#_):not(#_):not(#_) { width: 40px; height: 40px; border-radius: 50%; background: #EEF0F3; box-shadow: none; }
  html.aiq-phone.ph-pro .co-ph .ph-rlist.t-ins .ph-rrow .val small .ph-rpill:not(#_):not(#_):not(#_) { padding: 0; background: none !important; font-size: 13px; font-weight: 600; }
  html.aiq-phone.ph-pro .co-ph .ph-rlist.t-ins .ph-rrow .val small .ph-rpill.grey:not(#_):not(#_):not(#_) { color: #80868F; font-weight: 500; }

  /* 36. Supply chain: one tab row — the record's own pills (Overview · Suppliers · Customers); the desktop Map · Suppliers ·
     Customers bar above it was a second, different-looking switch for the same thing (the map graph isn't a phone view) */
  html.aiq-phone.ph-pro .sca:has(#ph-rtabs) > .sca-tabs:not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-pro .ph-rrow > .val.pp-num:not(.pos):not(.neg):not(#_):not(#_) { color: #101112; font-weight: 500; font-variant-numeric: tabular-nums; }

  /* 37. the analyst Ratings row: "93% Buy · 62 analysts" over a green / grey / red split bar (js ratingBars()) */
  html.aiq-phone.ph-pro .ph-rrow.pp-has-rbar:not(#_):not(#_) { flex-wrap: wrap; row-gap: 8px; padding-bottom: 14px; }
  html.aiq-phone.ph-pro .ph-rrow.pp-has-rbar > .val b { color: #0d8a66; font-weight: 600; }
  html.aiq-phone.ph-pro .ph-rrow.pp-has-rbar > .val small { color: #80868F; font-size: 13px; font-weight: 400; }
  html.aiq-phone.ph-pro .pp-rbar { flex: 0 0 100%; display: flex; gap: 2px; height: 6px; border-radius: 3px; overflow: hidden; }
  html.aiq-phone.ph-pro .pp-rbar > i { display: block; min-width: 3px; }
  html.aiq-phone.ph-pro .pp-rbar > .b { background: #12b981; } html.aiq-phone.ph-pro .pp-rbar > .h { background: #C9CDD4; } html.aiq-phone.ph-pro .pp-rbar > .s { background: #F73463; }

  /* 38. an odd last stat tile fills its row (Board & owners: "Average age" sat alone at half width) — record pages with a
     full-width first tile already do this for an even count (aiq-phone-pin-records.css) */
  html.aiq-phone.ph-pro:not(.pin-rec-hero) main .ph-rcards > .ph-rcard:last-child:nth-child(odd):not(:first-child):not(#_):not(#_) { grid-column: 1 / -1; }

  /* 39. the ratio tables (Profitability · ROIC · Solvency · Other) in a rounded card like the statements (their scroll box had
     square corners: "round corners, never pointy") */
  html.aiq-phone.ph-pro[data-theme] main .stx-tview:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { border-radius: 18px !important; }
  html.aiq-phone.ph-pro .tc-hero > .pp-hbar:not(#_) { display: flex; flex: none; width: 100%; height: 6px; margin-top: 12px; }

  /* 40. a stock's Filings list in the finance look: the filings in one white card on the grey page (they ran edge to edge on
     white), the year as a quiet group label like Earnings' days, the picker + year as white pills */
  html.aiq-phone.ph-pro main .fd-reader.fx-card:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: transparent !important; padding: 8px 0 14px !important; border: 0 !important; box-shadow: none !important; }
  html.aiq-phone.ph-pro .fd-reader .fd-rl:not(#_):not(#_):not(#_):not(#_) { background: transparent; margin: 0 16px !important; padding: 0 !important; width: auto !important; }
  html.aiq-phone.ph-pro .fd-reader .fd-rhead:not(#_):not(#_):not(#_):not(#_) { display: flex; align-items: center; gap: 8px; height: auto; padding: 0 0 12px !important; background: none; border: 0; }
  html.aiq-phone.ph-pro .fd-reader .fd-rhead .fd-pick:not(#_):not(#_):not(#_):not(#_), html.aiq-phone.ph-pro .fd-reader .fd-rhead select:not(#_):not(#_):not(#_):not(#_) { height: 36px; padding: 0 14px; border: 0; border-radius: 999px; background-color: #FFFFFF; box-shadow: none; -webkit-appearance: none; appearance: none;
    color: #101112; font-size: 14px; font-weight: 500; }
  html.aiq-phone.ph-pro .fd-reader .fd-rlist:not(#_):not(#_):not(#_):not(#_) { background: #FFFFFF; border-radius: 20px; overflow: hidden; padding: 4px 0; }
  html.aiq-phone.ph-pro .fd-reader .fd-ryear:not(#_):not(#_):not(#_):not(#_) { background: none; border: 0; padding: 12px 16px 4px; font: 500 13px/1.2 Inter, system-ui, sans-serif; color: #80868F; }
  html.aiq-phone.ph-pro .fd-reader .fd-ritem:not(#_):not(#_):not(#_):not(#_) { padding: 10px 16px !important; min-height: 56px; border: 0; background: none; }
  html.aiq-phone.ph-pro .fd-reader .fd-ritem .t:not(#_):not(#_):not(#_):not(#_) { font-size: 15px; font-weight: 500; color: #101112; }
  html.aiq-phone.ph-pro .fd-reader .fd-ritem small:not(#_):not(#_):not(#_):not(#_) { font-size: 13px; color: #80868F; }
  html.aiq-phone.ph-pro .fd-reader .fd-ritem:active:not(#_):not(#_):not(#_):not(#_) { background: rgba(15,17,21,.05); }

  /* 41. Comparables' dashed "Add peers" card inside its white card: full width plus its 12px margins ran 12px past the card's
     right edge (the dashes were cut off) */
  html.aiq-phone.ph-pro .ph-rlist > .cmp-ph-edit:not(#_):not(#_):not(#_) { width: calc(100% - 24px) !important; margin-left: 12px; margin-right: 12px; }

  /* 42. Markets' "Show all 8": a full-width 44px row in the brand blue (iOS's "Show more" row) — it was 13px grey text tucked
     at the card's bottom-left, easy to miss and under the 44px tap height */
  html.aiq-phone.ph-pro .pc-list > .mpc-all:not(#_):not(#_):not(#_) { display: flex; align-items: center; justify-content: center; width: 100%; height: 44px; padding: 0 16px;
    color: #455DDC; font-size: 15px; font-weight: 500; background: none; border: 0; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone.ph-pro .pc-list > .mpc-all:active:not(#_):not(#_):not(#_) { background: rgba(15,17,21,.05); }

  /* 43. a locked Congress member / superinvestor (Free shows 3): the gate in one white card with a tinted lock, a 17px title, the three free
     members as blue links and a full-width brand-blue pill (it floated bare on the grey page with a small green button) */
  html.aiq-phone.ph-pro :is(.cgl-wall, .si-lockwall):not(#_):not(#_):not(#_) { margin: 12px 16px 0; padding: 28px 20px 20px; gap: 6px; background: #FFFFFF; border-radius: 20px; }
  html.aiq-phone.ph-pro :is(.cgl-wall, .si-lockwall) > i:not(#_):not(#_):not(#_) { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 6px; border-radius: 50%;
    background: rgba(69,93,220,.10); color: #455DDC; font-size: 22px; }
  html.aiq-phone.ph-pro :is(.cgl-wall, .si-lockwall) b:not(#_):not(#_):not(#_) { font-size: 17px; font-weight: 600; line-height: 1.3; color: #101112; }
  html.aiq-phone.ph-pro :is(.cgl-wall, .si-lockwall) span:not(#_):not(#_):not(#_) { font-size: 14px; line-height: 1.45; color: #80868F; }
  html.aiq-phone.ph-pro :is(.cgl-wall, .si-lockwall) span a:not(#_):not(#_):not(#_) { color: #455DDC; text-decoration: none; font-weight: 500; }
  html.aiq-phone.ph-pro :is(.cgl-wall, .si-lockwall) .at-btn:not(#_):not(#_):not(#_):not(#_) { display: flex; align-items: center; justify-content: center; width: 100%; height: 44px !important; min-height: 44px !important; margin-top: 14px;
    border: 0 !important; border-radius: 999px !important; background: #455DDC !important; color: #FFFFFF !important; font-size: 15px; font-weight: 600; box-shadow: none !important; }
  html.aiq-phone.ph-pro #si-content .si-lockwall.si-panel:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 12px 16px 0 !important; padding: 28px 20px 20px !important; background: #FFFFFF !important; border-radius: 20px !important; }

  /* 44. a transcript's header: the title gets the full width and the Listen button drops under the date as a white pill (side
     by side, the title wrapped to three short lines) */
  html.aiq-phone.ph-pro main .tx-top:not(#_):not(#_):not(#_) { flex-direction: column !important; align-items: flex-start !important; gap: 10px !important; }
  html.aiq-phone.ph-pro main .tx-top > div:last-child:not(#_):not(#_):not(#_) { align-self: flex-start !important; justify-content: flex-start !important; width: auto !important; margin: 0 !important; }
  html.aiq-phone.ph-pro main #tab-transcripts .tx-top .tx-btn:not(#_):not(#_):not(#_) { height: 36px !important; padding: 0 14px !important; border: 0 !important; border-radius: 999px !important;
    background: #FFFFFF !important; color: #101112 !important; font-size: 14px !important; font-weight: 500 !important; box-shadow: none !important; }

  /* 45. the letter tile js/aiq-phone-pro.js draws where a company logo hid itself on error (a blank gap in the drawer's
     Recently viewed, investor holdings, Documents, Models) — the same grey letter tile as the card lists */
  html.aiq-phone.ph-pro .pp-ltile:not(#_) { display: inline-grid; place-items: center; flex: none; box-sizing: border-box; vertical-align: middle;
    background: #ECEDF0; color: #5B616B; font-family: Inter, system-ui, sans-serif; font-weight: 600; line-height: 1; }

  /* 46. Home's Today's movers Gainers | Losers: the house pills (selected charcoal, the other white), like every other view
     switch — it was a grey chip on the grey page, the only switch drawn that way */
  html.aiq-phone.ph-pro .hm-tog:not(#_):not(#_):not(#_) { gap: 6px; padding: 0; background: none; border: 0; }
  html.aiq-phone.ph-pro .hm-tog > button:not(#_):not(#_):not(#_) { height: 32px; padding: 0 12px; border: 0; border-radius: 999px; background: #FFFFFF; color: #101112;
    font-size: 13px; font-weight: 500; box-shadow: none; transition: none; }
  html.aiq-phone.ph-pro .hm-tog > button.on:not(#_):not(#_):not(#_) { background: #2B2D33; color: #FFFFFF; }

  /* 47. an insider's Companies table (one row per company they file for) as card rows: logo · ticker over the company name,
     net 12-month $ over their title on the right; the desktop table ran off the right edge with its header row. The card
     builder only takes one table per page (Trades has it), so this one is CSS only. */
  html.aiq-phone.ph-pro .ipp-tf:has(> table.ipp-cotbl):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 0 16px !important; padding: 4px 0 !important; background: #FFFFFF !important; border: 0 !important; border-radius: 20px !important; overflow: hidden !important; box-shadow: none !important; }
  html.aiq-phone.ph-pro .ipp-tf table.ipp-cotbl:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; width: 100% !important; min-width: 0 !important; border: 0 !important; background: none !important; }
  html.aiq-phone.ph-pro .ipp-tf table.ipp-cotbl thead:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-pro .ipp-tf table.ipp-cotbl tbody:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; }
  html.aiq-phone.ph-pro .ipp-tf table.ipp-cotbl tbody tr:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 12px;
    min-height: 64px; padding: 10px 16px !important; background: none !important; border: 0 !important; }
  html.aiq-phone.ph-pro .ipp-tf table.ipp-cotbl tbody td:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; padding: 0 !important; border: 0 !important; background: none !important; height: auto !important; }
  html.aiq-phone.ph-pro .ipp-tf table.ipp-cotbl tbody td:nth-child(1):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; grid-column: 1; grid-row: 1 / 3; min-width: 0; position: static !important; }
  html.aiq-phone.ph-pro .ipp-tf table.ipp-cotbl tbody td:nth-child(6):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; grid-column: 2; grid-row: 1; text-align: right; font-size: 16px; font-weight: 600; color: #101112; }
  html.aiq-phone.ph-pro .ipp-tf table.ipp-cotbl tbody td:nth-child(2):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; grid-column: 2; grid-row: 2; text-align: right; }
  html.aiq-phone.ph-pro .ipp-tf table.ipp-cotbl td:nth-child(2) .idr-role:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { padding: 0 !important; background: none !important; border: 0 !important; font-size: 13px !important; font-weight: 400 !important; color: #80868F !important; }
  html.aiq-phone.ph-pro .ipp-tf table.ipp-cotbl td.nm a:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: grid !important; grid-template-columns: 40px minmax(0, 1fr); column-gap: 12px; align-items: center; text-decoration: none; }
  html.aiq-phone.ph-pro .ipp-tf table.ipp-cotbl td.nm .idr-lg:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { grid-row: 1 / 3; width: 40px !important; height: 40px !important; border-radius: 50% !important; overflow: hidden; display: grid; place-items: center;
    background: #FFFFFF; box-shadow: inset 0 0 0 1px rgba(15,17,21,.08); font: 600 15px/1 Inter, system-ui, sans-serif; color: #80868F; }
  html.aiq-phone.ph-pro .ipp-tf table.ipp-cotbl td.nm .idr-lg img:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { width: 60% !important; height: 60% !important; object-fit: contain; }
  html.aiq-phone.ph-pro .ipp-tf table.ipp-cotbl td.nm b:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { font-size: 16px; font-weight: 600; color: #101112; }
  html.aiq-phone.ph-pro .ipp-tf table.ipp-cotbl td.nm .idr-cn:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; color: #80868F; max-width: none !important; }
  html.aiq-phone.ph-pro .ipp-tf table.ipp-cotbl tbody tr:active:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { background: rgba(15,17,21,.05) !important; }
  /* ...and its Key facts card on the 16px gutter with the 20px corners (it ran edge to edge with 12px corners) */
  html.aiq-phone.ph-pro .ipp-side > .ipp-card:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 0 16px 16px !important; padding: 16px !important; border: 0 !important; border-radius: 20px !important; background: #FFFFFF !important; box-shadow: none !important; }
  html.aiq-phone.ph-pro .ipp-side > .ipp-card > h2:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { margin: 0 0 8px !important; font-size: 17px !important; font-weight: 600 !important; color: #101112 !important; }

  /* 48. Insiders tab: "Trades on the price chart" is a section title over its card like Highlights / Trades, so it gets their
     ink 19px / 700 (it was grey 17px / 450, read as disabled); "Last 90 days" stays a quiet note beside it */
  html.aiq-phone.ph-pro #fi-root.co-fi .fi-chart-card > .fx-rule h3:not(#_):not(#_):not(#_):not(#_):not(#_):not(#_):not(#_) { font-size: clamp(17px, 4.9vw, 19px) !important; font-weight: 700 !important; color: #101112 !important; letter-spacing: -.01em;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
  html.aiq-phone.ph-pro .co-fi .fi-chart-card .fx-rule > h3 .fi-win:not(#_):not(#_):not(#_):not(#_):not(#_) { margin-left: 6px; font-size: clamp(12px, 3.5vw, 14px) !important; font-weight: 400 !important; color: #80868F !important; letter-spacing: 0; }   /* clamp: one line at 360px too (a nested @media breaks the phone-scope test) */

  /* 49. Insiders › People / Companies header (user, 2026-11-07: "over cluttered with buttons and inputs … not a nice balanced
     feeling"): the large title is the view switch ("Companies ⌄", js/aiq-phone-pro.js dirHead()), the pill that repeated it
     goes, and search is a magnifier in the header's top-right slot; its field only shows once opened (or holding a query).
     The menu itself stays in .idr-vwrap (it opens as the phone bottom sheet), so only the button is hidden, never the wrap. */
  html.aiq-phone.ph-pro.pp-dirhead #idr-vbtn:not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-pro.pp-dirhead .idr-bar:not(#_):not(#_):not(#_):not(#_):not(#_) { display: block !important; height: auto !important; min-height: 0 !important; padding: 0 16px !important; margin: 0 !important; }
  html.aiq-phone.ph-pro.pp-dirhead .idr-bar > .idr-search:not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-pro.pp-dirhead.pp-dh-open .idr-bar > .idr-search:not(#_):not(#_):not(#_):not(#_):not(#_) { display: flex !important; width: 100% !important; max-width: none !important; margin: 0 0 12px !important; }
  html.aiq-phone.ph-pro.pp-dirhead #ph-th .ph-th-t[data-ppdh]:not(#_):not(#_):not(#_):not(#_):not(#_) { cursor: pointer; align-items: center; -webkit-tap-highlight-color: transparent; }
  html.aiq-phone.ph-pro.pp-dirhead #ph-th .ph-th-t[data-ppdh]:active:not(#_):not(#_):not(#_):not(#_):not(#_) { opacity: .6; }
  html.aiq-phone.ph-pro.pp-dirhead #ph-th .pp-dh-cv:not(#_):not(#_):not(#_):not(#_):not(#_) { display: inline-block !important; flex: none; margin-left: 6px; font-size: 20px; color: #80868F; background: none !important; width: auto !important; height: auto !important; }
  html.aiq-phone.ph-pro.pp-dirhead #ph-th .pp-dh-s:not(#_):not(#_):not(#_):not(#_):not(#_) { visibility: visible !important; }
  html.aiq-phone.ph-pro.pp-dirhead .idr-search input::-webkit-search-cancel-button { -webkit-appearance: none; display: none; }   /* the header × clears it: one ×, not two */
  /* the directory body is a grid stretched to the page's min-height: a short result (one company found) sat ~200px down
     with the spare height spread between the chips and the card */
  html.aiq-phone.ph-pro .idr-body:not(#_):not(#_):not(#_):not(#_):not(#_) { align-content: start !important; }

  /* 50. Funds header, the same calm pattern as 49: the toolbar row (search field + "⇅ Largest" pill) goes; search is the
     header magnifier (field shows once opened or holding a query), sort an ⇅ icon beside it (js dirHead/fundsHead) */
  html.aiq-phone.ph-pro.pp-fbhead .fb > .fb-row:not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-pro.pp-fbhead.pp-fb-open .fb > .fb-row:not(#_):not(#_):not(#_):not(#_):not(#_) { display: flex !important; padding: 0 !important; margin-bottom: 12px !important; }
  html.aiq-phone.ph-pro.pp-fbhead.pp-fb-open .fb > .fb-row > :not(.fb-search):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-pro.pp-fbhead .fb > .fb-row > .fb-search input::-webkit-search-cancel-button { -webkit-appearance: none; display: none; }
  html.aiq-phone.ph-pro #ph-th > .pp-fb-sort:not(#_):not(#_):not(#_):not(#_):not(#_) { visibility: visible !important; margin-left: auto !important; }
  html.aiq-phone.ph-pro #ph-th > .pp-fb-sort + .pp-dh-s:not(#_):not(#_):not(#_):not(#_):not(#_) { margin-left: 0 !important; }
  html.aiq-phone.ph-pro.pp-fbhead #ph-th .pp-dh-s:not(#_):not(#_):not(#_):not(#_):not(#_) { visibility: visible !important; }
  /* 51. no page-wide rule under a short page (2026-11-08 corners + spacing pass): the landing look's `main { border: 1px … }`
     keeps its top + bottom lines on phones (only left/right are dropped), so a short page (Markets › World, Earnings…)
     drew a full-width hairline across the grey a little above the tab bar */
  html.aiq-phone.ph-pro .app-shell > main:not(#_):not(#_) { border-top: 0 !important; border-bottom: 0 !important; }
  /* 52. Gov. contracts header, the pattern of 49/50 (2026-11-10): the magnifier opens the page's own "Search contracts,
     agencies…" field (in #gm-bar, hidden on phones) as a white round field over the list; nothing else of that bar shows */
  html.aiq-phone.ph-pro.pp-gmhead #ph-th .pp-dh-s:not(#_):not(#_):not(#_):not(#_):not(#_) { visibility: visible !important; margin-left: auto !important; }
  html.aiq-phone.ph-pro.pp-gmhead.pp-gm-open #gm-bar:not(#_):not(#_):not(#_):not(#_):not(#_) { display: flex !important; height: auto !important; margin: 0 16px 12px !important; padding: 0 !important;
    border: 0 !important; background: none !important; box-shadow: none !important; }
  html.aiq-phone.ph-pro.pp-gmhead.pp-gm-open #gm-bar > :not(.gm-qw):not(#_):not(#_):not(#_):not(#_):not(#_) { display: none !important; }
  html.aiq-phone.ph-pro.pp-gmhead.pp-gm-open #gm-bar > .gm-qw:not(#_):not(#_):not(#_):not(#_):not(#_) { display: flex !important; flex: 1 1 auto; align-items: center; gap: 8px; width: auto !important;
    height: 46px !important; padding: 0 16px !important; border: 0 !important; border-radius: 999px !important; background: #FFFFFF !important; color: #80868F; box-shadow: none !important; }
  html.aiq-phone.ph-pro.pp-gmhead.pp-gm-open #gm-bar .gm-q:not(#_):not(#_):not(#_):not(#_):not(#_) { flex: 1 1 auto; min-width: 0; width: auto !important; height: 44px !important; padding: 0 !important; border: 0 !important;
    outline: 0; background: none !important; box-shadow: none !important; color: #101112; font: 400 16px/20px Inter, system-ui, sans-serif !important; }
  html.aiq-phone.ph-pro.pp-gmhead.pp-gm-open #gm-bar > .gm-qw > :is(i, svg):not(#_):not(#_):not(#_):not(#_):not(#_) { position: static !important; flex: none; width: 18px !important; height: 18px !important; margin: 0 !important; transform: none !important; font-size: 18px; color: #80868F; }
  html.aiq-phone.ph-pro.pp-gmhead #gm-bar .gm-q::-webkit-search-cancel-button { -webkit-appearance: none; display: none; }   /* the header × clears it */
}

/* ==== css/aiq-phone-theme.css ==== */
/* The one phone colour theme (user, 2026-11-01: "we need a consistent color theme throughout all pages" — picked "always
   light"; and "look for areas where we can add bits of color fill to cards"). Every phone page is light (_phone.html sets
   html.ms-pin + data-theme=light on phones). Use only these:
   - page #F2F3F5 · card #FFFFFF (the finance look, 2026-11-01; was a white page with #F4F5F7 cards) · ink #101112 · muted #80868F · bar / open card charcoal #2B2D33
   - ONE accent: brand blue #455DDC (filled feature cards, links, the selected thing)
   - up / down: #0d8a66 on rgba(67,209,167,.14) · #c8203f on rgba(247,52,99,.12)
   - category tiles (icon squares / dots), always in this order: blue #2a6df4, violet #8b5cf6, teal #06b6d4, amber #f59e0b,
     rose #ec4899, green #12b981, orange #f97316, slate #64748b
   Colour fill, sparingly (one filled card per group, like the big apps' feature card): the first Highlights card is filled
   brand blue with white words; the other Highlights get their icon in a tinted dot in the category order.
   Loaded with media="(max-width: 767px)": every rule stays inside. */
@media (max-width: 767px) {
  html.aiq-phone {
    --ph-acc: #455DDC; --ph-c1: #2a6df4; --ph-c2: #8b5cf6; --ph-c3: #06b6d4; --ph-c4: #f59e0b; --ph-c5: #ec4899; --ph-c6: #12b981; --ph-c7: #f97316; --ph-c8: #64748b;
  }

  /* Highlights: icon in a tinted dot, the category colours in order */
  html.aiq-phone .ph-rcards > .ph-rcard .l i:not(#_) { flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-size: 16px;
    color: var(--dot, var(--ph-c1)); background: color-mix(in srgb, var(--dot, var(--ph-c1)) 14%, transparent); }
  html.aiq-phone .ph-rcards > .ph-rcard:nth-child(8n+2) { --dot: var(--ph-c2); }
  html.aiq-phone .ph-rcards > .ph-rcard:nth-child(8n+3) { --dot: var(--ph-c3); }
  html.aiq-phone .ph-rcards > .ph-rcard:nth-child(8n+4) { --dot: var(--ph-c4); }
  html.aiq-phone .ph-rcards > .ph-rcard:nth-child(8n+5) { --dot: var(--ph-c5); }
  html.aiq-phone .ph-rcards > .ph-rcard:nth-child(8n+6) { --dot: var(--ph-c6); }
  html.aiq-phone .ph-rcards > .ph-rcard:nth-child(8n+7) { --dot: var(--ph-c7); }
  html.aiq-phone .ph-rcards > .ph-rcard:nth-child(8n+8) { --dot: var(--ph-c8); }

  /* the first Highlights card: filled brand blue, white words (the one feature card in the group) */
  html.aiq-phone .ph-rcards > .ph-rcard:first-child:not(#_) { background: var(--ph-acc); color: #FFFFFF; box-shadow: 0 8px 20px rgba(69,93,220,.22); }
  html.aiq-phone .ph-rcards > .ph-rcard:first-child .l:not(#_), html.aiq-phone .ph-rcards > .ph-rcard:first-child .v:not(#_),
  html.aiq-phone .ph-rcards > .ph-rcard:first-child .v *:not(.ph-rpill):not(#_) { color: #FFFFFF; }
  html.aiq-phone .ph-rcards > .ph-rcard:first-child .l:not(#_) { opacity: .85; }
  html.aiq-phone .ph-rcards > .ph-rcard:first-child .l i:not(#_) { color: #FFFFFF; background: rgba(255,255,255,.2); }
  html.aiq-phone .ph-rcards > .ph-rcard:first-child .ph-rpill:not(#_) { background: rgba(255,255,255,.2); color: #FFFFFF; }
}

