/* 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: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 */
  html.aiq-phone.ph-pro #ins-root .ins-card:not(#_):not(#_):not(#_):not(#_) { border: 0; border-radius: 20px; box-shadow: none; background: #FFFFFF; padding: 14px 16px 12px; }
  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; }
}
