
#ai-fab{position:fixed;right:22px;bottom:22px;z-index:8400;display:flex;align-items:center;gap:8px;
  background:var(--teal);color:var(--bg1);border:none;border-radius:24px;padding:11px 18px;
  font-family:var(--display);font-weight:700;font-size:14px;cursor:pointer;
  box-shadow:0 6px 24px rgba(47,214,182,.35);transition:transform .15s ease;}
#ai-fab:hover{transform:translateY(-2px);}
/* Doug multi-chat history (doug-multichat-0713) */
.ai-home-chat{position:relative;}
button.ai-hist-btn{margin-left:auto;flex:none;background:var(--bg3);border:var(--border);border-radius:6px;
  color:var(--text2);font-size:11px;font-family:var(--sans);padding:4px 9px;cursor:pointer;white-space:nowrap;}
button.ai-hist-btn:hover{color:var(--text1);background:var(--bg4);}
.ai-head button.ai-hist-btn{font-size:11px;background:var(--bg2);}
.ai-hist{display:none;position:absolute;top:60px;right:12px;z-index:9000;background:var(--bg3);
  border:var(--border);border-radius:10px;box-shadow:0 12px 36px rgba(0,0,0,.5);
  width:min(320px,calc(100% - 24px));max-height:340px;overflow-y:auto;}
#ai-panel .ai-hist{top:48px;}
.ai-hist-row{display:flex;align-items:center;gap:8px;padding:9px 12px;cursor:pointer;font-size:12.5px;
  border-bottom:var(--border);color:var(--text1);}
.ai-hist-row:last-child{border-bottom:none;}
.ai-hist-row:hover{background:var(--bg4);}
.ai-hist-row.new{font-weight:600;color:var(--teal);}
.ai-hist-row.dim{color:var(--text3);cursor:default;}
.ai-hist-row.dim:hover{background:none;}
.ai-hist-row.cur .ai-hist-t{font-weight:700;}
.ai-hist-t{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ai-hist-d{color:var(--text3);font-size:11px;flex:none;}
.ai-hist-x{color:var(--text3);flex:none;padding:0 3px;border-radius:4px;}
.ai-hist-x:hover{color:var(--coral);}
#ai-panel{position:fixed;right:22px;bottom:22px;z-index:8500;width:400px;max-width:calc(100vw - 24px);
  height:600px;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);display:none;flex-direction:column;
  background:var(--bg2);border:var(--border);border-radius:12px;overflow:hidden;
  box-shadow:0 12px 48px rgba(0,0,0,.55);}
#ai-panel.open{display:flex;}
.ai-head{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--bg3);
  border-bottom:var(--border);}
.ai-head .ai-title{font-family:var(--display);font-weight:700;font-size:14px;color:var(--text1);}
.ai-head .ai-sub{font-size:11px;color:var(--text3);}
.ai-head button{margin-left:auto;background:none;border:none;color:var(--text3);font-size:18px;
  cursor:pointer;padding:2px 6px;}
.ai-head button:hover{color:var(--text1);}
#ai-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;}
.ai-msg{max-width:88%;padding:9px 12px;border-radius:10px;font-size:13px;line-height:1.5;
  white-space:pre-wrap;word-wrap:break-word;}
.ai-msg.user{align-self:flex-end;background:rgba(47,214,182,.14);border:1px solid rgba(47,214,182,.3);
  color:var(--text1);border-bottom-right-radius:3px;}
.ai-msg.agent{align-self:flex-start;background:var(--bg3);border:var(--border);color:var(--text1);
  border-bottom-left-radius:3px;}
.ai-msg.agent b{color:var(--teal);}
/* greetstream-0909: the streaming Home opener keeps its full-text size while the visible prefix types over it */
.ai-gs{position:relative;display:block;}
.ai-gs-full{visibility:hidden;}
.ai-gs-live{position:absolute;left:0;top:0;right:0;}
.ai-msg.sys{align-self:center;background:none;border:none;color:var(--text3);font-size:11px;
  text-align:center;padding:2px;}
.ai-cards{display:flex;flex-direction:column;gap:6px;align-self:stretch;}
.ai-card{display:flex;align-items:center;gap:6px 10px;background:var(--bg3);border:var(--border);
  border-radius:8px;padding:7px 10px;cursor:pointer;transition:border-color .12s;}/* aicardslim-0817 */
.ai-card:hover{border-color:var(--teal);}
.ai-card .ai-tier{font-family:var(--mono);font-weight:700;font-size:12px;width:20px;height:20px;
  border-radius:5px;display:flex;align-items:center;justify-content:center;flex:none;}
.ai-card .ai-tier.A{background:var(--teal);color:var(--bg1);}
.ai-card .ai-tier.B{background:#f59e0b;color:var(--bg1);}
.ai-card .ai-tier.C{background:var(--bg4);color:var(--text2);}
.ai-card .ai-cbody{min-width:0;flex:1 1 200px;}
.ai-card .ai-cname{font-size:12.5px;font-weight:600;color:var(--text1);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;}
.ai-card .ai-cmeta{font-size:11px;color:var(--text3);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;}
.ai-card .ai-cwhy{font-size:11px;color:var(--text2);margin-top:2px;white-space:normal;}
.ai-card .ai-cmoved{display:inline-block;font-size:10px;line-height:15px;padding:0 6px;margin-top:3px;border-radius:8px;border:1px solid var(--teal);color:var(--teal);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;}/*mobfix2-0901: moved-card badge*/
.ai-typing-row{display:none;align-self:flex-start;gap:5px;padding:8px 4px;}
.ai-typing-row.on{display:flex;}
.ai-typing-row .hm-load-dot:nth-child(2){animation-delay:.18s;}
.ai-typing-row .hm-load-dot:nth-child(3){animation-delay:.36s;}
.ai-think-lbl{font-size:11px;color:var(--text3);margin-left:8px;align-self:center;}
.ai-msg.ack{opacity:.75;font-style:italic;}
.ai-cap{align-self:flex-end;font-size:10px;color:var(--text3);margin-bottom:-4px;}/* uxw21h-0904 C64 (surfaces-08) */
.doug-img{image-rendering:pixelated;vertical-align:middle;}
.doug-h1{display:flex;align-items:center;gap:10px;}
#ai-fab .doug-img{margin:-6px 3px -6px -4px;} /* fab-doug-big-0720: renders 34px tall but keeps the old 22px-slot layout footprint (h and w) so the pill size is unchanged */
.ai-inrow{display:flex;gap:8px;padding:12px;border-top:var(--border);background:var(--bg3);align-items:flex-end;}
.ai-inrow textarea,.ai-inrow .ai-ce{flex:1;background:var(--bg1);border:var(--border);border-radius:8px;color:var(--text1);
  padding:9px 12px;font-size:13px;line-height:18px;font-family:var(--sans);outline:none;resize:none;height:38px;
  max-height:92px;box-sizing:border-box;overflow-y:hidden;}
.ai-inrow textarea:focus,.ai-inrow .ai-ce:focus{border-color:var(--teal);}
.ai-inrow .ai-ce{height:auto;min-height:38px;overflow-y:auto;white-space:pre-wrap;overflow-wrap:anywhere;cursor:text;}
.ai-inrow .ai-ce:empty{height:38px;overflow:hidden;}
.ai-inrow .ai-ce:empty::before{content:attr(data-placeholder);color:var(--text3);pointer-events:none;}
/* 🎙 voice notes (acu1c-0729) */
.ai-mic-btn{flex-shrink:0;background:var(--bg1);border:var(--border);border-radius:8px;color:var(--text2);font-size:16px;padding:0 10px;min-height:38px;cursor:pointer;line-height:1}/* acu1c-0729:css */
.ai-mic-btn:hover{border-color:var(--teal);color:var(--text1)}
.ai-mic-btn.on{border-color:#e5484d;color:#e5484d;animation:aiMicPulse 1.2s ease-in-out infinite}
@keyframes aiMicPulse{0%,100%{opacity:1}50%{opacity:.45}}
.ai-inrow button{background:var(--teal);color:var(--bg1);border:none;border-radius:8px;padding:0 16px;
  font-weight:700;font-size:13px;cursor:pointer;flex:none;height:38px;}
.ai-inrow button:disabled{opacity:.45;cursor:default;}
.ai-inrow .ai-mic-btn{background:var(--bg1);border:var(--border);color:var(--text2);padding:0 10px;font-size:16px;}/* uxw41h-0905 C118 (home-8): the mic keeps its outline; .ai-inrow button (0,1,1) no longer wins */
/* Copilot home (dashboard) */
#ai-intro{position:relative;background:rgba(47,214,182,.08);border:1px solid rgba(47,214,182,.35);
  border-radius:10px;padding:14px 44px 14px 16px;font-size:13px;line-height:1.6;color:var(--text1);
  margin-bottom:16px;}
#ai-intro b{color:var(--teal);}
.ai-intro-x{position:absolute;top:8px;right:10px;background:none;border:none;color:var(--text3);
  font-size:15px;cursor:pointer;}
.ai-intro-more{display:none;}
@media (max-width:768px){
  #ai-intro:not(.expanded) .ai-intro-txt{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  .ai-intro-more{display:block;margin-top:4px;color:var(--teal);font-size:12px;font-weight:600;cursor:pointer;}
  #dash-nav-pills{display:flex;flex-wrap:wrap;gap:6px;padding:12px 14px;}/* toolsfold-0822: the row lives in #dash-tools-card now; .card-folded's !important rule hides it when folded */
}
.ai-intro-x:hover{color:var(--text1);}
/* Doug's header hugs his chat. The shared .pg-hdr 20px margin + mobile 12px
   padding read as a dead gap between the subtitle and the chat card. Scoped
   ID rule outranks the 768px media query's .pg-hdr padding. */
.aih-hd{justify-content:flex-start;gap:9px;flex:none;}
.aih-hd h2{font-size:14px;font-weight:700;font-family:var(--display);}
.aih-desc{color:var(--text3);font-size:12px;margin-left:4px;}
/* fieldlog-0806: Field Log feed (PRD-Field-Log) */
#fl-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 16px;border-bottom:var(--border)}
.fl-chip{font-size:12px;padding:4px 10px;border-radius:999px;cursor:pointer;background:var(--bg3);border:var(--border);color:var(--text3);user-select:none;white-space:nowrap}
.fl-chip.on{color:var(--text1);border:1px solid var(--teal)}
#fl-feed{padding:4px 16px 16px}
.fl-day{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--text3);margin:14px 0 2px}
.fl-row{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--bg3);align-items:flex-start}
.fl-row:last-of-type{border-bottom:none}
.fl-ico{flex:0 0 auto;width:22px;text-align:center;font-size:14px}
.fl-time{flex:0 0 auto;width:64px;font-size:11px;color:var(--text3);padding-top:2px}
.fl-body{flex:1;min-width:0;font-size:13px;overflow-wrap:anywhere}
/* fieldlog3-0806: linked to-dos (checklists) */
.fl-todo{display:flex;gap:8px;align-items:center;font-size:13px;margin-top:4px;flex-wrap:wrap}
.fl-todo label{display:flex;gap:8px;align-items:center;cursor:pointer;min-height:24px;margin:0}
.fl-todo input[type=checkbox]{width:18px;height:18px;accent-color:var(--teal);cursor:pointer;margin:0;flex:0 0 auto}
.fl-todo.done label span{text-decoration:line-through;color:var(--text3)}
.fl-due{font-size:11px;color:var(--text3);white-space:nowrap}
.fl-due.od{color:var(--red-tx)}
#fl-strip{margin:12px 0 2px;padding:10px 12px;border:var(--border);border-radius:10px;background:var(--bg3)}
@media (max-width:768px){ .fl-time{width:50px} }
/* mybag-0808:css - My Bag page + setup nudge dots (PRD-My-Bag Phase 1+2) */
.setup-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--red);margin-left:6px;flex:0 0 auto}
#hamburger{position:relative}
#hamburger .setup-dot{position:absolute;top:2px;right:-4px;margin:0}
.bag-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
/* bagadd-0823:css - 'Add to My Bag' popover on the code detail pages (proc + DME) */
.bagadd-wrap{position:relative;display:inline-block;vertical-align:middle}
.cmp-dd.bagadd-dd{left:auto;right:0;width:min(320px,90vw);text-align:left;max-height:340px}
.bagadd-dd .cmp-it{align-items:center}
.bagadd-dd .cmp-it.off{opacity:.55}
.bagadd-dd .cmp-it.off:hover{background:transparent}
.bagadd-hd{padding:8px 10px;font-size:10px;color:var(--text3);border-bottom:var(--border);text-transform:uppercase;letter-spacing:.5px}
.bagadd-new{padding:8px 10px;display:flex;gap:6px;align-items:center;border-top:var(--border)}
.bagadd-new input{flex:1;min-width:0;font-size:16px;background:var(--bg3);border:var(--border);border-radius:8px;color:var(--text1);padding:6px 10px;box-sizing:border-box}
.bagadd-note{font-size:11px;color:var(--text3);margin-left:8px;white-space:nowrap}
@media (max-width:768px){ .bagadd-note{white-space:normal}
  #content .bagadd-wrap .cmp-dd.bagadd-dd{position:fixed;left:8px;right:8px;bottom:76px;top:auto;width:auto;max-width:none;max-height:60vh;z-index:1200;box-shadow:0 -8px 32px rgba(0,0,0,.6)} }  /* phone: bottom sheet; beats the #content * max-width rule by specificity */
.bag-chip{display:inline-flex;align-items:center;gap:5px;background:var(--bg3);border:var(--border);border-radius:999px;padding:3px 10px;font-size:12px;font-family:var(--mono);color:var(--text2);max-width:100%}
.badge,.fc-packchip,.fc-sig-chip,.st-pill,.mp-pill,.list-pill,.bag-chip{border-radius:4px;cursor:default;}/* uxw41h-0905 C119 (system-11): the seven inert label classes squared - a status label is not a button */
.bag-chip strong{color:var(--text1)}
.bc-src{font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:var(--teal)}
.bc-src.dme{color:var(--blue)}
.bc-src.partd{color:#c084fc}
.bc-src.icd10{color:#fbbf24}/* bagicd10-0810 */
.bc-role{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text3);border:var(--border);border-radius:6px;padding:0 4px}/* uxw54h-0905 C165 (clutter-19): base 9 to 11px, meeting the W3.4 C112 phone floor; the late-mq floor rule is untouched */
.bag-notes{font-size:13px;color:var(--text2);white-space:pre-wrap;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}/* uxw54h-0905 C165: Doug's line notes clamp to two lines */
.bag-notes.open{display:block;-webkit-line-clamp:unset;overflow:visible}
.bag-notes-more{background:none;border:none;color:var(--blue);cursor:pointer;font-size:12px;padding:2px 0;font-family:inherit;display:none}/* uxw54h-0905 C165: a real button; bagNotesTrim shows it only when the clamp hides text */
#intel-body > .card,#prospect-formd-card{scroll-margin-top:76px}/* uxw54h-0905 C166: rail jumps land below the sticky rail */
.bc-star{cursor:pointer;color:var(--text3);font-size:12px;user-select:none}
.bc-star.on{color:#f2c14e}
.bc-x{cursor:pointer;color:var(--text3);padding:0 2px}
.bc-x:hover{color:var(--text1)}
.bag-kv{font-size:12px;color:var(--text2);display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.bag-econ summary{cursor:pointer;font-size:12px;color:var(--text3);user-select:none;margin-top:10px}
.bag-econ[open] summary{color:var(--text1)}
.bag-econ-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:8px}
.bag-form label{display:block;font-size:11px;color:var(--text3);margin:10px 0 4px}
.bag-econ-grid label{margin:0 0 4px}
.bag-form input,.bag-form textarea,.bag-form select{font-size:16px;background:var(--bg3);border:var(--border);border-radius:8px;color:var(--text1);padding:6px 10px;box-sizing:border-box;width:100%}
@media (max-width:768px){
  .bag-chip{white-space:normal;overflow-wrap:anywhere}
  .bag-econ-grid{grid-template-columns:1fr 1fr}
}
/* mb5ui-0808:css - sizes + special pricing + pack link (PRD-My-Bag wave MB5-B, Design-Bag-Pricing-Model UI sketch) */
.bag-quiet{background:none;border:none;color:var(--text3);font-size:12px;cursor:pointer;padding:0;margin-top:10px;text-decoration:underline dotted;text-underline-offset:3px}
.bag-quiet:hover{color:var(--text1)}
.bag-size-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:6px}
.bag-size-row input{width:auto;min-width:0}
.bag-sz-label{flex:2 1 130px}
.bag-sz-sku{flex:1 1 90px}
.bag-sz-price{flex:1 1 90px}
.bag-rule{display:flex;gap:8px;align-items:center;font-size:12.5px;color:var(--text2);padding:5px 0;border-bottom:1px dashed var(--border-color)}
.bag-rule strong{color:var(--text1)}
.bag-badge{display:inline-block;font-size:10px;font-weight:700;border:var(--border);border-radius:999px;padding:0 7px;color:var(--text3);margin-left:6px}
.bag-sum{font-size:12px;color:var(--text2);margin-top:8px}
.bag-prov-tag{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;color:var(--teal);border:1px solid var(--teal);border-radius:999px;padding:0 7px;white-space:nowrap}
.bag-rule-form{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;margin-top:8px;padding:8px 10px;border:1px dashed var(--border-color);border-radius:8px}
.bag-rule-form>div{display:flex;flex-direction:column;gap:3px}
.bag-rule-form label{margin:0;font-size:10px}
.bag-pos-chips{display:flex;flex-wrap:wrap;gap:4px;max-width:360px} /* bagposmulti-0808 */
.bag-pos-chip{font-size:10.5px;padding:3px 8px;border:1px solid var(--border-color);border-radius:999px;background:none;color:var(--text2);cursor:pointer;white-space:nowrap}
.bag-pos-chip.on{background:var(--blue);border-color:var(--blue);color:#04201A;font-weight:600}
@media (max-width:768px){
  .bag-size-row{row-gap:8px}
  .bag-rule-form>div{flex:1 1 45%}
}
.m-only,.m-blk{display:none;}
@media (max-width:768px){
  .m-only{display:inline;}.m-blk{display:block;}.d-only{display:none;}
  textarea.zips{line-height:22px;padding-top:7px;padding-bottom:7px;}/*zipta-0721*/
  .hm-toggle{flex-wrap:wrap;gap:6px;border:none;border-radius:0;overflow:visible;min-width:0;}
  #proc-zipmap-card .hm-toggle,#dme-zipmap-card .hm-toggle{flex-wrap:nowrap;gap:0;border:var(--border);border-radius:var(--radius);overflow:hidden;flex:0 0 auto;}#proc-zipmap-card .hm-tg,#dme-zipmap-card .hm-tg{padding:4px 9px;min-height:36px;}/* uxw11h-0903 */ /* procmaptg-0823 + cmapterr-0823: keep the map-header pills compact on mobile */
  .hm-tg,.hm-tg:last-child{border:var(--border);border-radius:var(--radius);}
  /* mob-audit-0713 */ /* mobile table/card fixes: empty-state drift, card-hdr clip, cm-grid crush, scroll fade */
  td.loading,td.empty{text-align:left;}
  .card-hdr{flex-wrap:wrap;row-gap:4px;}
  #team-act-since,#team-act-until{font-size:16px!important;} /* teamui-0721:p5 iOS focus-zoom */
  .cm-grid{grid-template-columns:16px 8px minmax(72px,1.2fr) minmax(56px,1fr) 42px 46px;gap:6px;}
  .cm-grid>*:nth-child(6){display:none;}
  .cm-grid>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .tbl-wrap{background:linear-gradient(270deg,rgba(0,0,0,.38),transparent) right/20px 100% no-repeat;}
  /* provhdr-m-0831: header cards - kill the dead avatar column on phones. Block layout +
     floated avatar puts the name beside the emoji; meta rows below reclaim full card width.
     Flex-container rows (.prov-meta) are BFCs, so they narrow beside the float then go full-width. */
  .prov-hdr{display:block;padding:14px 16px;}
  .prov-avatar{float:left;width:36px;height:36px;font-size:15px;margin:0 10px 2px 0;}
  /* crmfuse-0831: segments shrink evenly so the fused status bar stays one row on phones;
     block display (overrides the early-mq inline-flex) so text-overflow can ellipsize.
     line-height+padding keep the 36px tap height. */
  .crm-status-pill{display:block;flex:1 1 auto;min-width:0;min-height:30px;line-height:20px;padding:5px 6px;font-size:11px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}/* crmfuse3-0831: 30px, the 36px blanket tap height read too airy in the wide bar */
  /* myprovm-0831: My Providers on phones. The Specialty cell ships .trunc (nowrap
     ellipsis) + inline max-width:180px, which hogged half the viewport unwrapped;
     let it wrap in a narrow column and shed side padding across the view's table
     so Location/Status come into reach with less side-scroll. */
  #view-my-providers th,#view-my-providers td{padding:8px 7px;}
  #view-my-providers td.trunc{max-width:96px!important;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:break-word;line-height:1.35;}
  /* myprovm2-0831 + myprovm3-0831: column priority - Notes and Last Activity leave
     the grid on phones (Notes clipped, Bill 2026-08-31); last activity rides the
     Provider cell's NPI sub-line as a "Latest:" stamp instead. nth-child is safe
     here: the Hidden list's rows use colspans (4 tds) and the loading/empty rows
     are 1 td, so only the real 6/7-cell rows match. */
  #view-my-providers th:nth-child(5),#view-my-providers td:nth-child(5),#view-my-providers th:nth-child(6),#view-my-providers td:nth-child(6){display:none;}
  .mp-last{display:block;font-family:var(--sans);font-size:11px;white-space:normal;}/* myprovm4-0831: label is "Last Activity:" with a nowrap date span (long dates break label/date, never mid-date); own line under the NPI; sans - the parent NPI div is .mono and the stamp read as code */
  /* mpthumb-0831: My Providers phone rows become cards: thead hidden, each .mp-row a
     one-column grid with name (r1), status pill (r2, on the LEFT), specialty (r3),
     location (r4), team cell (r5 if present), and the four action buttons pulled out
     into a 2x2 grid of 44px thumb targets (Apple HIG minimum) pinned to the RIGHT
     edge, vertically centered. Scoped to .mp-row so the Hidden list and loading/empty
     rows (different cell counts) fall back to simple block stacking. All rules live
     in this mq only, so desktop keeps the classic table. */
  #view-my-providers table,#view-my-providers tbody{display:block;width:100%;}
  #view-my-providers thead{display:none;}
  #view-my-providers tbody tr{display:block;border-bottom:var(--border);padding:10px 2px;}
  #view-my-providers tbody td{display:block;border:none;padding:1px 0;}
  #view-my-providers tr.mp-row{display:grid;grid-template-columns:minmax(0,1fr);row-gap:2px;align-items:start;position:relative;padding-right:190px;min-height:104px;box-sizing:border-box;}/* uxw31h-0904 C90: reservation re-measured for the labelled two-column grid (was 106px) */
  #view-my-providers tr.mp-row td:nth-child(1){grid-row:1;}
  #view-my-providers tr.mp-row td:nth-child(4){grid-row:2;}
  #view-my-providers tr.mp-row td:nth-child(2){grid-row:3;font-size:12px;color:var(--text2);}
  #view-my-providers tr.mp-row td:nth-child(3){grid-row:4;font-size:12px;color:var(--text2);}
  #view-my-providers tr.mp-row td:nth-child(7){grid-row:5;}
  #view-my-providers tr.mp-row td.trunc{max-width:none!important;}
  #view-my-providers .mp-actions{position:absolute;right:2px;top:50%;transform:translateY(-50%);display:grid;grid-template-columns:auto auto;gap:8px;white-space:normal!important;}/* uxw31h-0904 C90: two-column auto grid so the labels fit */
  #view-my-providers .mp-actions .route-add{min-height:44px;margin:0;padding:10px 12px;display:flex;align-items:center;justify-content:center;border-radius:10px;}/* uxw31h-0904 C90: label-capable box (was 44x44 padding:0) */
  /* mpsort2-0831: the sort select made a 4th full-width row of filter chrome above
     the list (Bill's report). On phones the toolbar selects go two-per-row instead,
     cutting the whole filter stack to about half its pre-sort height. */
  #myprov-controls{width:100%;}
  #myprov-controls select{flex:1 1 calc(50% - 8px);width:auto;max-width:calc(50% - 4px);min-width:0;}
  /* leadsm-0831: Leads page phones - same treatment as My Providers above: Specialty
     wraps in a narrow column instead of hogging width, cells shed side padding. */
  #view-leads th,#view-leads td{padding:8px 7px;}
  #view-leads td.trunc{max-width:96px!important;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:break-word;line-height:1.35;}
  /* leadsm2-0831: column priority (the My Providers pattern) - Added + Last touch leave
     the phone grid and ride the Provider cell as stamps under the NPI; the action
     buttons column stays. */
  #view-leads th:nth-child(4),#view-leads td:nth-child(4),#view-leads th:nth-child(5),#view-leads td:nth-child(5){display:none;}
  /* uxw34h-0905 C113 (clutter-05): the missing half of the Leads phone port - the
     mpthumb-0831 card treatment My Providers already has. thead hidden, each row a
     one-column card (provider, specialty, location), and td.nr becomes the mpthumb
     2-ROW grid of full-width 44px buttons pinned to the right edge (Log call over
     Qualify - they clipped at x=379 inside a 360px wrap before). The provider
     cell action span goes flex-wrap: its two buttons are whitespace-glued inline
     boxes with no soft-wrap point, and flex items wrap at item boundaries. The
     loading/empty/promotion rows are single colspan cells: they stack as plain
     blocks and the td.nr rules never touch them. */
  #view-leads table,#view-leads tbody{display:block;width:100%;}
  #view-leads thead{display:none;}
  #view-leads tbody tr{display:grid;grid-template-columns:minmax(0,1fr);row-gap:2px;align-items:start;position:relative;padding:10px 114px 10px 2px;min-height:112px;box-sizing:border-box;border-bottom:var(--border);}
  #view-leads tbody td{display:block;border:none;padding:1px 0;}
  #view-leads tbody td.trunc{max-width:none!important;font-size:12px;color:var(--text2);}
  #view-leads tbody td:nth-child(3){font-size:12px;color:var(--text2);}
  #view-leads tbody td:first-child > span:first-child{display:inline-flex;flex-wrap:wrap;gap:4px;white-space:normal!important;}
  #view-leads td.nr{position:absolute;right:2px;top:50%;transform:translateY(-50%);display:grid;grid-template-columns:minmax(0,1fr);gap:8px;width:108px;padding:0;}
  #view-leads td.nr .btn{width:100%;margin:0;display:flex;align-items:center;justify-content:center;border-radius:10px;box-sizing:border-box;padding:10px 6px;}
  /* uxw34h-0905 C114 (clutter-06, D57, D9): Prospecting results read as a card on
     phones - the mpthumb-0831 pattern mirrored: thead hidden, each row a wrapping
     flex card (checkbox + rank + tier line, then provider full-width, then
     specialty · city). St, Zip, NPI, Codes and Paid (prior) leave the grid (D57);
     Total Svcs, Paid and the trend arrow ride the .pros-m2 line under the name;
     the 520px inner window dies HERE only (D9 - .tbl-scroll is shared by ~40
     tables); the three fit emoji hide for the worded .bfit-line. The provider
     cell first div goes flex-wrap because its buttons + name are whitespace-
     glued inline boxes (no soft-wrap points): flex items wrap at item boundaries,
     so the row min-content is one button, not the whole line. Loading/empty
     rows are single colspan cells: they block-stack, and the tbody nth-child rules
     never touch them. cellIndex is DOM-structural, so the C91 first-cell tap
     listener survives the display change. */
  #view-prospect table,#view-prospect tbody{display:block;width:100%;}
  #view-prospect thead{display:none;}
  #view-prospect tbody tr{display:flex;flex-wrap:wrap;align-items:center;column-gap:8px;row-gap:2px;padding:8px 2px;border-bottom:var(--border);}
  #view-prospect tbody td{display:block;border:none;padding:0;}
  #view-prospect tbody td:nth-child(7),#view-prospect tbody td:nth-child(8),
  #view-prospect tbody td:nth-child(9),#view-prospect tbody td:nth-child(10),
  #view-prospect tbody td:nth-child(11),#view-prospect tbody td:nth-child(12),
  #view-prospect tbody td:nth-child(13),#view-prospect tbody td:nth-child(14){display:none;}
  #view-prospect tbody td:nth-child(4){flex:1 1 100%;}
  #view-prospect tbody td:nth-child(4)>div:first-child{display:flex;flex-wrap:wrap;gap:4px;align-items:center;}
  #view-prospect tbody td:nth-child(5),#view-prospect tbody td:nth-child(6){font-size:12px;color:var(--text2);max-width:none!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;}
  #view-prospect .tbl-scroll{max-height:none;}
  .pros-m2{font-size:12px;color:var(--text2);margin-top:2px;}
  .bfit-line{font-size:11px;color:var(--text2);margin-top:1px;}
  #view-prospect .bfit{display:none;}
  /* badgeaff-0905: the provider-cell 💰/🏠 badges read as words on phones so the
     meaning survives touch (C114 companion; the profile-header verify-address idiom
     brought to the list row). Sits AFTER the C114 block: its bytes are untouched. */
  #view-prospect .opw-line{display:inline;font-size:11px;color:var(--text2);margin-left:4px;}
  #view-prospect .addrw-line{display:inline;font-size:11px;color:var(--text2);}
}
.ai-home-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start;}
.ai-home-chat{display:flex;flex-direction:column;height:calc(100vh - 194px);height:calc(100dvh - 194px);min-height:440px;/* homedoug-0821: re-measured for tiles-then-Doug (contract 1) */
  padding:0!important;overflow:hidden;}
.ai-home-side{display:flex;flex-direction:column;gap:16px;min-height:0;}
.ai-home-side .card{margin-bottom:0;background:radial-gradient(120% 130% at 85% 0%,#16222F 0%,#0D1620 60%,#0A1119 100%);box-shadow:0 24px 48px -30px rgba(0,0,0,0.7),inset 0 1px 0 rgba(255,255,255,0.04);/*mkskin-0715*/}
.ai-home-side .card:last-child{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;}
#hud-cadence{flex:1;min-height:0;overflow-y:auto;}
/* Rep Dashboard tiles (repdash-0717) */
.dash-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-bottom:14px}
.dash-tile{background:linear-gradient(180deg,rgba(255,255,255,0.025),rgba(255,255,255,0) 60%),var(--bg2);border:var(--border);border-radius:var(--radius-card);padding:12px 16px;box-shadow:inset 0 1px 0 rgba(255,255,255,0.04);cursor:pointer;min-width:0}
.dash-tile:hover{border-color:rgba(255,255,255,0.18)}
.dash-tile .dt-hd{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.5px;color:var(--text3);text-transform:uppercase;margin-bottom:6px}
.dash-tile .dt-val{font-size:22px;font-weight:800;line-height:1.2}
.dash-tile .dt-sub{font-size:11px;color:var(--text3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-tile .dt-row{font-size:12px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-tile .dt-btn{font-size:12px;padding:6px 10px;margin-left:auto}/* uxw44h-0905 C134 (touch-08) */
/* homedoug-0821 (contract 2): calendar-tile news badge; .dt-wrap lets the body line wrap instead of ellipsizing while the badge is present (the 375px tile is ~110px wide) */
#dt-news-badge{cursor:pointer;font-weight:700;color:#2FD6B6}   /* tilecopy-0821: own line now, so it wraps on the 108px phone tile */
#dt-news-badge:hover{text-decoration:underline}
/* tileoverdue-0821: follow-up counts on the calendar tile are links to Field Log (Open Items) */
.dash-tile .dt-fu{cursor:pointer;font-weight:700}
.dash-tile .dt-fu:hover{text-decoration:underline}
.dash-tile .dt-sub.dt-wrap{white-space:normal}
/* repdash mobile (repdash-m-0718): keep all three tiles on ONE row on phones:
   the auto-fit 230px minimum wraps the third tile at narrow widths. Compact type
   so ~110px-wide tiles still read; subs/rows already ellipsize. */
@media (max-width:768px){
  .dash-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
  .dash-tile{padding:8px 9px;overflow:hidden;}
  .dash-tile .dt-hd{font-size:11px;letter-spacing:.2px;gap:3px;margin-bottom:4px;white-space:nowrap;}/* uxw34h-0905 C112 */
  .dash-tile .dt-val{font-size:16px;}
  .dash-tile .dt-sub{font-size:11px;}/* uxw34h-0905 C112 */
  .dash-tile .dt-row{font-size:11px;}
  .dash-tile .dt-hd{flex-wrap:wrap;row-gap:3px;}
  .dash-tile .dt-btn{font-size:11px;padding:3px 5px;justify-content:center;margin-left:0;order:10;}/* uxw34h-0905 C112 + uxw44h-0905 C134 (touch-08): flex-basis:100% dropped; order sends the buttons below the value */
  .dash-tile{display:flex;flex-direction:column;row-gap:2px;}/* uxw44h-0905 C134: tile is a column so ordered children stack */
  .dash-tile .dt-hd{display:contents;}/* uxw44h-0905 C134: header text + buttons join the tile column (inherited type keeps the label look); value renders above the order:10 buttons */
}
/* uxw33h-0905 C107 (money-09): the refer gift row wraps on phones so the code input
   takes a full row and its placeholder reads; !important beats the template's inline
   flex. Desktop (>768px) is untouched. */
@media (max-width:768px){
  #refer-gift .rg-row{flex-wrap:wrap}
  #refer-gift .rg-row input{flex:1 1 100%!important}
}
.aih-msgs{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;}
.aih-chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 12px 10px;}
.ai-chip{background:var(--bg3);border:1px solid rgba(47,214,182,.35);color:var(--text1);
  border-radius:16px;padding:6px 13px;font-size:12px;cursor:pointer;transition:all .12s;}
.ai-chip:hover{background:rgba(47,214,182,.15);border-color:var(--teal);}
.ai-chip.open{border-color:var(--teal);background:rgba(47,214,182,.12);font-weight:600;}
/* dougcards-0823: fresh-chat square cards (setup nudges + try-it hints) in the home Doug box */
.aih-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px;align-self:stretch;margin-top:2px;}
.aih-cards.empty{display:none;}
.aih-card{position:relative;aspect-ratio:1/1;background:var(--bg3);border:var(--border);border-radius:12px;padding:12px 12px 11px;
  display:flex;flex-direction:column;cursor:pointer;transition:border-color .12s,background .12s;min-width:0;overflow:hidden;}
.aih-card:hover{border-color:var(--teal);background:rgba(47,214,182,.06);}
.aih-card.setup{border-color:rgba(47,214,182,.45);}
.aih-card .aih-card-k{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text3);padding-right:18px;}
.aih-card.setup .aih-card-k{color:var(--teal);}
.aih-card .aih-card-i{font-size:26px;line-height:1;margin:auto 0 8px;}
.aih-card .aih-card-t{font-size:13px;font-weight:700;color:var(--text1);line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.aih-card .aih-card-s{font-size:11px;color:var(--text2);line-height:1.35;margin-top:3px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.aih-card-x{position:absolute;top:4px;right:5px;background:none;border:none;color:var(--text3);font-size:13px;cursor:pointer;padding:3px 6px;line-height:1;border-radius:6px;}
.aih-card-x:hover{color:var(--text1);background:var(--bg4);}
@media(max-width:600px){.aih-cards{grid-template-columns:repeat(2,1fr);gap:8px;}.aih-card{padding:10px;}.aih-card .aih-card-i{font-size:22px;margin-bottom:6px;}.aih-card .aih-card-s{font-size:10.5px;}}
/* dougchips-0807: phones get ONE horizontally-scrollable chip row (stacked chips ate ~2 rows of message space); desktop keeps the wrap */
@media (max-width:768px){
  .aih-chips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .aih-chips::-webkit-scrollbar{display:none;}
  .ai-chip{white-space:nowrap;flex:0 0 auto;}
}
.route-add{background:var(--bg3);border:1px solid rgba(47,214,182,.35);color:var(--text2);border-radius:6px;font-size:11px;padding:5px 10px;min-height:28px;cursor:pointer;margin-right:6px;}/* uxw31h-0904 touch-02 C90: 28px desktop floor + room for the word; the phone floor rides the late mq below */
.route-add:hover{border-color:var(--teal);color:var(--text1);}
.route-add.on{background:var(--teal);color:#04211c;border-color:var(--teal);font-weight:700;}
.route-mk{background:var(--teal);color:#04211c;border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:11px;border:2px solid #04211c;box-shadow:0 1px 4px rgba(0,0,0,.5);}
.route-mk.start{background:#FF6B5B;color:#fff;border-color:#3a120d;}
/* dayroute-ui-0721:p3: HTML5 drag doesn't exist on iOS Safari: phones get ▲/▼ nudge buttons, desktop keeps the ⠿ handle */
.rt-nudges{display:none;}
@media (max-width:768px){
  .rt-grab{display:none;}
  .rt-nudges{display:inline-flex;flex-direction:column;gap:4px;vertical-align:middle;}
  .rt-nudges .btn{font-size:11px;padding:9px 11px;line-height:1;}
}
/* uxw42h-0905 C123 (touch-03): under 768px the four per-stop actions stack 2x2 (44px cells); the gap between ✓ Visit and ✕ widens to 8px via the grid gap */
@media (max-width:768px){
  #tbody-route .nr{display:grid;grid-template-columns:repeat(2,minmax(44px,1fr));gap:8px;}
}
/* uxw42h-0905 C125 (touch-17, D12 full reflow): Day Route stops become cards on phones, the My Providers mpthumb pattern ported; scoped to .rt-stop so the start/end and chip rows fall back to block stacking (their colspans die with display:block) */
@media (max-width:768px){
  #route-tbl,#route-tbl tbody{display:block;width:100%;}
  #route-tbl thead{display:none;}
  #route-tbl tbody tr{display:block;border-bottom:var(--border);padding:10px 2px;box-sizing:border-box;}
  #route-tbl tbody td{display:block;border:none;padding:2px 0;}
  #route-tbl td.nr{text-align:left;}
  #route-tbl tr.rt-stop{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;row-gap:2px;align-items:start;}
  #route-tbl tr.rt-stop td:nth-child(1){grid-column:1/-1;}
  #route-tbl tr.rt-stop td:nth-child(2){grid-column:1/-1;}
  #route-tbl tr.rt-stop td:nth-child(3){grid-column:1;}
  #route-tbl tr.rt-stop td:nth-child(4){grid-column:2;}
  #route-tbl tr.rt-stop td:nth-child(5){grid-column:1/-1;}
  #route-tbl tr.rt-stop td:nth-child(6){grid-column:1/-1;}
  #route-tbl tr.rt-stop td:nth-child(7){grid-column:1/-1;}
}
.hud-pipe{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px 16px;}
.hud-stat{background:var(--bg3);border:var(--border);border-radius:8px;padding:8px 6px;
  text-align:center;cursor:pointer;}
.hud-stat:hover{border-color:var(--teal);}
.hud-num{font-family:var(--mono);font-weight:700;font-size:20px;}
.hud-lbl{font-size:9.5px;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;margin-top:2px;}
.hud-cad{display:flex;justify-content:space-between;gap:8px;padding:8px 16px 8px 16px;border-bottom:var(--border);
  cursor:pointer;align-items:center;}
.hud-cad:hover .hud-cad-name{color:var(--teal);}
.hud-cad:last-child{border-bottom:none;}
.hud-cad-name{font-size:12.5px;font-weight:600;color:var(--text1);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;}
.hud-cad-meta{font-size:11px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hud-badge{font-size:9px;font-weight:700;padding:2px 7px;border-radius:5px;background:transparent;border:1px solid;letter-spacing:.3px;/*mkskin-0715*/}
.hud-cad-age{font-size:11px;color:var(--text3);margin-top:3px;}
.hud-cad-age.warn{color:var(--coral);font-weight:600;}
.hud-sec{font-size:9.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--text3);margin:8px 0 2px;padding-left:16px;}
.hud-fu-done{background:var(--bg4);border:var(--border);color:var(--teal);border-radius:6px;width:24px;height:24px;
  cursor:pointer;font-size:12px;flex:none;}
.hud-fu-done:hover{background:var(--teal);color:var(--bg1);}
/* hud-cad-filters-0713 */
.hud-fbar{display:flex;flex-wrap:wrap;gap:4px;padding:8px 16px;border-bottom:var(--border);flex:none;}
.hud-fchip{background:var(--bg3);border:var(--border);color:var(--text2);border-radius:10px;padding:6px 10px;font-size:11px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:4px;line-height:18px;}/* uxw44h-0905 C134 (touch-08): base lift off the sub-28px floor; W3.4 C112 phone rules untouched */
.hud-fchip:hover{border-color:var(--teal);color:var(--text1);}
.hud-fchip.on{background:rgba(47,214,182,.15);border-color:var(--teal);color:var(--text1);}
.hud-fchip.warn.on{background:rgba(255,107,91,.15);border-color:var(--coral);}
.hud-fchip-n{font-family:var(--mono);font-size:9px;color:var(--text3);}
.hud-fchip.on .hud-fchip-n{color:var(--teal);}
.hud-fchip.warn.on .hud-fchip-n{color:var(--coral);}
.hud-fdot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:none;}
.hud-fchip.clear{border-color:transparent;background:transparent;color:var(--text3);}
.hud-fchip.clear:hover{color:var(--coral);border-color:transparent;}
/* svcpills-0713 */
.hud-fchip.more{border-style:dashed;color:var(--text3);}
.hud-fchip.more:hover{color:var(--text1);border-color:var(--teal);}
/* svcpills-0713b */
#hud-svc-menu{display:none;position:fixed;z-index:8600;width:264px;max-height:320px;overflow-y:auto;
  background:var(--bg2);border:var(--border);border-radius:10px;padding:10px 12px;box-shadow:0 10px 36px rgba(0,0,0,.5);}
.hud-svcm-t{font-size:12px;font-weight:700;color:var(--text1);margin-bottom:6px;}
.hud-svcm-sec{font-size:9.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--text3);margin:8px 0 3px;}
.hud-svcm-row{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:7px;cursor:pointer;font-size:12px;color:var(--text2);}
.hud-svcm-row:hover{background:rgba(47,214,182,.10);color:var(--text1);}
.hud-svcm-row.on{color:var(--text1);}
.hud-svcm-cb{width:16px;height:16px;flex:none;border:1px solid rgba(47,214,182,.4);border-radius:4px;
  display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--teal);}
.hud-svcm-row.on .hud-svcm-cb{background:rgba(47,214,182,.18);border-color:var(--teal);}
.hud-svcm-lbl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hud-svcm-n{font-family:var(--mono);font-size:10px;color:var(--text3);flex:none;}
.ai-log{background:rgba(47,214,182,.06);border:1px solid rgba(47,214,182,.3);border-radius:10px;padding:10px 12px;}
.ai-log-name{font-size:12.5px;font-weight:600;color:var(--text1);}
.ai-log-line{font-size:12px;color:var(--text2);margin-top:3px;}
.ai-log-btns{display:flex;gap:8px;margin-top:9px;}
.ai-log-btns button{border:none;border-radius:7px;padding:6px 13px;font-size:12px;font-weight:700;cursor:pointer;}
.ai-log-yes{background:var(--teal);color:var(--bg1);}
.ai-log-no{background:var(--bg4);color:var(--text2);}
.ai-log-done{margin-top:8px;font-size:12px;font-weight:600;color:var(--teal);}
.ai-log-err{margin-top:3px;font-size:11px;color:var(--coral);}
/* doug-card-actions-0713 */
/* doug-card-actions-0713b: labeled pills on their own row */
.ai-card{flex-wrap:wrap;}
.ai-card .ai-cacts{display:flex;gap:6px;margin-left:auto;flex:none;justify-content:flex-end;}
.ai-cact{min-height:24px;/* uxw21h-0904 C65: was height:24px; lets the <=768px min-height:40px win, desktop still renders 24px */display:flex;align-items:center;justify-content:center;gap:4px;background:var(--bg4);
  border:var(--border);border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;color:var(--text2);
  padding:0 9px;line-height:1;white-space:nowrap;}
.ai-cact:hover{border-color:var(--teal);color:var(--text1);}
.ai-cact.on{background:rgba(47,214,182,.18);border-color:var(--teal);color:var(--teal);}
.ai-cact:disabled{cursor:default;opacity:.85;}
.ai-cards-hd{display:flex;align-items:center;gap:8px;}
.ai-cards-hd button{background:var(--bg4);border:var(--border);border-radius:7px;color:var(--text2);
  font-size:11.5px;font-weight:600;padding:5px 10px;cursor:pointer;}
.ai-cards-hd button:hover{border-color:var(--teal);color:var(--text1);}
.ai-cact.ai-log-yes,.ai-cards-hd button.ai-log-yes{background:var(--teal);color:var(--bg1);border-color:var(--teal);}/* uxw41h-0905 C118 (doug-3): the save actions wear the .ai-log-yes teal; Route, List, Qualify and 🚫 stay grey */
#ai-list-menu{display:none;position:fixed;z-index:8600;width:236px;background:var(--bg2);border:var(--border);
  border-radius:10px;padding:12px;box-shadow:0 10px 36px rgba(0,0,0,.5);}
#ai-list-menu .alm-title{font-size:12px;font-weight:700;color:var(--text1);margin-bottom:8px;}
#ai-list-menu .alm-items{max-height:180px;overflow-y:auto;margin-bottom:8px;}
#ai-list-menu .list-dropdown-item:hover{background:rgba(47,214,182,.1);border-radius:6px;}
#ai-list-menu input{width:100%;box-sizing:border-box;background:var(--bg1);border:var(--border);border-radius:7px;
  color:var(--text1);font-size:12px;padding:7px 9px;outline:none;}
#ai-list-menu input:focus{border-color:var(--teal);}
#ai-list-menu .alm-msg{font-size:11px;color:var(--teal);margin-top:6px;min-height:13px;}
#ai-list-menu .alm-cancel{margin-top:8px;font-size:11px;color:var(--text3);cursor:pointer;text-align:right;}
#ai-list-menu .alm-cancel:hover{color:var(--text1);}
.ai-report{background:var(--bg3);border:var(--border);border-radius:10px;padding:10px 12px;}
.ai-rep-hd{font-size:12.5px;font-weight:600;color:var(--text1);}
.ai-rep-grid{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.ai-rep-tile{flex:1 1 30%;min-width:84px;background:var(--bg2);border:var(--border);
  border-radius:8px;padding:7px 6px;text-align:center;}
.ai-rep-val{font-family:var(--mono);font-weight:700;font-size:17px;color:var(--text1);}
.ai-rep-lbl{font-size:9.5px;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;margin-top:2px;}
.ai-rep-foot{margin-top:9px;}
.ai-rep-csv{border:none;border-radius:7px;padding:6px 13px;font-size:12px;font-weight:700;
  cursor:pointer;background:var(--bg4);color:var(--text2);}
.ai-rep-csv:hover{background:var(--teal);color:var(--bg1);}
.hud-slide{margin-left:auto;background:var(--bg4);border:var(--border);color:var(--text2);border-radius:6px;
  padding:3px 10px;font-size:11px;cursor:pointer;}
.hud-slide:hover{color:var(--teal);border-color:var(--teal);}
#sn-menu{display:none;position:fixed;z-index:8600;width:236px;background:var(--bg2);border:var(--border);
  border-radius:10px;padding:12px;box-shadow:0 10px 36px rgba(0,0,0,.5);}
#sn-menu .sn-title{font-size:12px;font-weight:700;color:var(--text1);margin-bottom:8px;}
#sn-menu .sn-opts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;}
#sn-menu .sn-opts button{background:var(--bg3);border:1px solid rgba(47,214,182,.35);color:var(--text1);
  border-radius:8px;padding:5px 10px;font-size:11.5px;cursor:pointer;}
#sn-menu .sn-opts button:hover{background:rgba(47,214,182,.15);border-color:var(--teal);}
#sn-menu input{width:100%;box-sizing:border-box;background:var(--bg1);border:var(--border);border-radius:7px;
  color:var(--text1);padding:7px 9px;font-size:12px;outline:none;}
#sn-menu input:focus{border-color:var(--teal);}
#sn-menu .sn-cancel{margin-top:8px;font-size:11px;color:var(--text3);cursor:pointer;text-align:right;}
#sn-menu .sn-cancel:hover{color:var(--text1);}
@media (max-width:1100px){.ai-home-grid{grid-template-columns:1fr;}
  .ai-home-chat{height:60vh;min-height:380px;}}
@media (max-width:768px){
  #ai-panel{right:6px;bottom:6px;width:calc(100vw - 12px);height:calc(100vh - 90px);height:calc(100dvh - 90px);}
  /* uxr2w1c-0909 FC2-5 (mobile-1, DR2-B, Bill 2026-09-08): the Ask Doug pill becomes ONE 48px full-width bottom bar (solid var(--bg2), the text label kept per D64). The Day Route tray docks INTO the same band as the bar's left segment whenever its EXISTING show/hide state (trayRender in 0590 sets inline display flex/none) says a route is active; the two never stack. #content carries the matching padding-bottom (0040). Desktop untouched. */
  #ai-fab{left:0;right:0;bottom:0;width:100%;box-sizing:border-box;height:calc(48px + env(safe-area-inset-bottom,0px));padding:0 16px env(safe-area-inset-bottom,0px);border-radius:0;justify-content:center;background:var(--bg2);color:var(--teal);border-top:var(--border);box-shadow:0 -6px 20px rgba(0,0,0,.35);transition:none;}
  #ai-fab:hover{transform:none;}
  #route-tray[style*="display: flex"] ~ #ai-fab{justify-content:flex-end;padding-left:8px;}/* route active: Ask Doug takes the bar's right segment, the docked tray the left */
  #app:has(#sidebar.open) ~ #ai-fab,#app:has(#sidebar.open) ~ #route-tray,#app:has(#sidebar.open) ~ #pass-banner{display:none!important;}/* the open drawer owns the phone: neither the bar nor the Day Pass banner paints over its rows (the banner sat over the drawer header before, over Home once offset; it returns when the drawer closes) */
  #app:has(#view-dashboard.active) ~ #route-tray{right:0!important;}/* Home hides the fab (aiOnViewChange), so the docked tray spans the whole bar there */
  #pass-banner{top:48px!important;}/* uxr2w1c-0909 money-1: the Day Pass banner sits BELOW the 48px #mobile-bar (measured on the rig, not the audit's 56) so the hamburger stays tappable */
  .pass-hide{font-size:12px;padding:3px 10px;}
  #route-tray{left:0!important;right:auto!important;bottom:0!important;transform:none!important;z-index:8401!important;height:calc(48px + env(safe-area-inset-bottom,0px));box-sizing:border-box;padding:0 12px env(safe-area-inset-bottom,0px) 12px!important;border:none!important;border-top:var(--border)!important;border-right:var(--border)!important;border-radius:0!important;box-shadow:none!important;gap:8px!important;white-space:nowrap;}/* uxr2w1c-0909 FC2-5: the tray is the combined bar's left segment (was C124's left-anchored floating pill); the importants beat its inline pill styling, the safe-area inset moves into the padding; z above the bar so its buttons stay tappable */
  #route-tray button[title="Clear route"]{display:none;}/* uxw42h-0905 C124 (D5): the tray Clear duplicates the Day Route header Clear and sat 72% under the Doug pill; removed on phones only, markup kept (C90 fence + desktop no-op) */
}
/* dmagC-0818: first-run welcome card (wave DM contract 6) */
#welcome-card .card-body{position:relative;}
.wc-x{position:absolute;top:10px;right:12px;background:none;border:none;color:var(--text3);font-size:14px;cursor:pointer;padding:2px 4px;}
.wc-x:hover{color:var(--text1);}
.wc-title{font-family:var(--display);font-weight:700;font-size:17px;color:var(--text1);margin-bottom:4px;}
.wc-why{font-size:13px;color:var(--text2);margin:0 0 12px;}
.wc-label{display:block;font-weight:700;font-size:13.5px;color:var(--text1);margin-top:10px;}
.wc-hint{font-size:12px;color:var(--text3);margin:2px 0 6px;}
#welcome-card .wc-in{width:100%;box-sizing:border-box;background:var(--bg1);border:var(--border);border-radius:8px;color:var(--text1);padding:9px 11px;font-size:16px;outline:none;font-family:var(--sans);}
#welcome-card .wc-in:focus{border-color:var(--teal);}
.wc-chips{display:flex;flex-wrap:wrap;gap:6px;}
.wc-chip{background:var(--bg3);border:1px solid rgba(47,214,182,.3);color:var(--text2);border-radius:8px;padding:5px 9px;font-size:12.5px;cursor:pointer;}
.wc-chip.on{background:rgba(47,214,182,.18);border-color:var(--teal);color:var(--text1);font-weight:700;}
.wc-ct{font-size:12px;color:var(--text3);margin:6px 0 10px;min-height:14px;}
.wc-row{display:flex;align-items:center;gap:14px;margin-top:12px;flex-wrap:wrap;}
.wc-skip{font-size:12.5px;color:var(--text3);cursor:pointer;}
.wc-skip:hover{color:var(--text1);}
.wc-msg{font-size:13px;color:var(--text2);margin:8px 0 0;min-height:16px;}
/* fr1b-0820: first-run modal takeover + radius chips + scope chip + ai-chip working states */
.wc-chip:disabled{opacity:.35;cursor:not-allowed;}
/* fr3b-0821: contract 13 staged-card step list + indeterminate bar (house tokens, CSS-only; reduced-motion = static) + contract 12d My Bag notice */
.wc-steps{list-style:none;margin:4px 0 0;padding:0;}
.wc-step{font-size:13.5px;color:var(--text1);padding:5px 0;line-height:1.4;}
.wc-glyph{display:inline-block;min-width:1.3em;}
.wc-sub{display:block;font-size:12px;color:var(--text3);margin:2px 0 0 1.6em;}
.wc-bar{position:relative;height:4px;border-radius:2px;background:var(--bg4);overflow:hidden;margin:10px 0 2px 1.6em;}
.wc-bar-in{position:absolute;top:0;left:-40%;width:40%;height:100%;border-radius:2px;background:var(--teal);animation:wc-slide 1.5s ease-in-out infinite;}
@keyframes wc-slide{from{left:-40%}to{left:100%}}
.wc-bar.done .wc-bar-in{animation:none;left:0;width:100%;}
@media (prefers-reduced-motion:reduce){.wc-bar-in{animation:none;left:0;width:100%;opacity:.45;}}
.fr-nocodes{position:relative;font-size:13.5px;color:var(--text2);line-height:1.45;padding:14px 40px 14px 16px;}
#fr-nocodes-notice .card{margin-bottom:14px;}
.fr-scope-chip{background:var(--bg3);border:1px solid rgba(47,214,182,.35);color:var(--text2);border-radius:8px;padding:3px 10px;font-size:11px;cursor:pointer;white-space:nowrap;}
.fr-scope-chip.on{background:rgba(47,214,182,.18);border-color:var(--teal);color:var(--text1);font-weight:700;}
.fr-scope-chip:hover{border-color:var(--teal);}
/* scopetg2-0826: the scope toggle wears the old chip skin */
.fr-scope-toggle{display:inline-flex;flex:none;border:1px solid rgba(47,214,182,.35);border-radius:8px;overflow:hidden;}
.fr-scope-toggle .hm-tg{background:var(--bg3);border:none;border-radius:0;color:var(--text2);font-family:inherit;font-size:11px;letter-spacing:0;padding:3px 10px;cursor:pointer;white-space:nowrap;transition:background .12s,color .12s;}
.fr-scope-toggle .hm-tg:first-child{border:none;border-right:1px solid rgba(47,214,182,.35);border-radius:0;}
.fr-scope-toggle .hm-tg:last-child{border:none;border-radius:0;}
.fr-scope-toggle .hm-tg.active{background:rgba(47,214,182,.18);color:var(--text1);font-weight:700;}
.fr-scope-toggle:hover{border-color:var(--teal);}
/* scopetg3-0826: all Prospecting-page hm-toggles wear the same pill skin (scoped, id-weight beats the base + mobile-mq hm rules) */
#view-prospect .hm-toggle{border:1px solid rgba(47,214,182,.35);border-radius:8px;}
#view-prospect .hm-toggle:hover{border-color:var(--teal);}
#view-prospect .hm-toggle .hm-tg{background:var(--bg3);border:none;border-right:1px solid rgba(47,214,182,.35);border-radius:0;color:var(--text2);font-family:inherit;letter-spacing:0;padding:3px 10px;}
#view-prospect .hm-toggle .hm-tg:last-child{border-right:none;}
#view-prospect .hm-toggle .hm-tg.active{background:rgba(47,214,182,.18);color:var(--text1);font-weight:700;}
.news-cap{font-size:9px;font-weight:600;letter-spacing:.8px;color:var(--text3);text-transform:uppercase;}/* uxw41h-0905 C120 (system-13): dim uppercase group captions */
.news-tgl .hm-tg{background:var(--bg3);border:none;border-right:1px solid rgba(47,214,182,.35);border-radius:0;color:var(--text2);font-family:inherit;letter-spacing:0;padding:5px 12px;font-size:12px;}/* uxw41h-0905 C120: the prospect segmented pattern */
.news-tgl .hm-tg:last-child{border-right:none;}
.news-tgl .hm-tg.active{background:rgba(47,214,182,.18);color:var(--text1);font-weight:700;}/* uxw41h-0905 C120: the wave's one on-state fill */
@media (max-width:768px){
  #view-prospect .hm-toggle{border:none;border-radius:0;}
  #view-prospect .hm-toggle .hm-tg,#view-prospect .hm-toggle .hm-tg:last-child{border:1px solid rgba(47,214,182,.35);border-radius:8px;}
  #view-prospect .hm-toggle .hm-tg.active{border-color:var(--teal);}
  .news-tgl .hm-tg,.news-tgl .hm-tg:last-child{border:1px solid rgba(47,214,182,.35);border-radius:8px;}/* uxw41h-0905 C120: wrapped-chip parity on phones */
  .news-tgl .hm-tg.active{border-color:var(--teal);}
}
/* scopefall-0827: contract 28c chevron + the scopetg3-0826 mobile wrap rule for the scope toggle */
.fr-sc-car{display:inline-block;padding:0 3px;margin-left:1px;opacity:.75;}
.fr-sc-car:hover{opacity:1;color:var(--teal);}
@media (max-width:768px){
  .fr-scope-toggle{flex-wrap:wrap;border:none;border-radius:0;overflow:visible;gap:4px;}
  .fr-scope-toggle .hm-tg,.fr-scope-toggle .hm-tg:first-child,.fr-scope-toggle .hm-tg:last-child{border:1px solid rgba(47,214,182,.35);border-radius:8px;}
  .fr-scope-toggle .hm-tg.active{border-color:var(--teal);}
}
.ai-chip.working{opacity:.55;pointer-events:none;}
.ai-chip.done{border-color:var(--teal);color:var(--teal);}
/* fr2b-0820:css - contract 8 curated nav + contract 9 dispositions */
.nav-off{display:none!important;}
.sb-sec-off{display:none!important;}
.nav-item.nav-findoff{display:none!important;}/* uxw54h-0905 C164: Find-a-tool filter miss */
.sb-section.sb-sec-findoff{display:none!important;}/* uxw54h-0905 C164: section with no filter hits */
.fr-supp-opt{padding:7px 8px;border-radius:6px;cursor:pointer;font-size:13px;}
.fr-supp-opt:hover{background:var(--bg3);}
#nav-notice a{color:var(--blue);cursor:pointer;}
/* bochk-0830: Best-Order Checklist card (PRD-Best-Order-Checklist Phase 1) */
#bochk-card .card-hdr{gap:8px;}
.bochk-hr{display:flex;align-items:center;gap:8px;flex:none;}
.bochk-count{font-size:12px;color:var(--text3);white-space:nowrap;}
.bochk-x{background:none;border:none;color:var(--text3);cursor:pointer;font-size:14px;padding:2px 6px;}
.bochk-x:hover{color:var(--text1);}
.bochk-prev{font-size:10px;color:var(--amber);border:1px solid currentColor;border-radius:4px;padding:0 4px;margin-left:6px;vertical-align:middle;text-transform:none;letter-spacing:0;}
.bochk-body{display:flex;flex-direction:column;gap:8px;}
.bochk-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
.bochk-row.done{opacity:.55;}
.bochk-mark{width:16px;text-align:center;color:var(--teal);flex:none;}
.bochk-row:not(.done) .bochk-mark{color:var(--text3);}
a.bochk-t{color:var(--blue);cursor:pointer;font-weight:600;}
.bochk-row.done .bochk-t{color:var(--text3);text-decoration:line-through;}
.bochk-s{font-size:12px;color:var(--text3);}
a.bochk-t.working{opacity:.6;pointer-events:none;}
a.bochk-t.done{color:var(--teal);pointer-events:none;text-decoration:none;}
@media (max-width:768px){ .bochk-s{flex-basis:100%;padding-left:24px;} }
/* ── uxw23h-0904 W2.3: C75 (D54 phone rider), C76, C77, C79 ── */
.bochk-x{font-size:12px;padding:4px 10px;white-space:nowrap;}/* C79: labelled Hide */
.bochk-extra{font-size:12px;color:var(--text3);margin-top:2px;}
.bochk-extra a{color:var(--blue);cursor:pointer;}
.bochk-done-line{font-size:13px;color:var(--text1);}
.bochk-done-line a{color:var(--blue);cursor:pointer;font-weight:600;}
.hud-stat.hud-flag{grid-column:1/-1;background:none;border:none;border-top:var(--border);border-radius:0;margin-top:2px;padding:8px 6px 0;display:flex;align-items:baseline;justify-content:center;gap:8px;}/* C77: a flag row, not a sixth bucket */
.hud-stat.hud-flag:hover{border-color:var(--border);border-top-color:var(--teal);}
.hud-stat.hud-flag .hud-num{font-size:16px;}
.hud-seeall{display:block;padding:8px 16px 10px;font-size:12px;color:var(--blue);cursor:pointer;}/* C76 */
.aih-more{display:block;font-size:12px;color:var(--blue);cursor:pointer;margin-top:2px;flex:none;}/* C76 */
@media (max-width:768px){
  /* C75 D54 phone rider: Doug first, the checklist one line, tiles after; desktop DOM order untouched */
  #view-dashboard.active{display:flex;flex-direction:column;}
  #view-dashboard > .ai-home-grid{display:contents;}
  #view-dashboard #purchase-ack-card{order:-6;}
  #view-dashboard .ai-home-chat{order:-5;}
  #view-dashboard #bochk-card{order:-4;}
  #view-dashboard #dash-tiles{order:-3;}
  #view-dashboard #push-chip{order:-2;}
  #view-dashboard #ai-intro{order:-1;}
  .ai-home-chat{min-height:0;}/* honest content-fit measure for fresh chats */
  #bochk-card .bochk-count{display:none;}/* the m-only header line carries the count */
  #bochk-card .bochk-x{min-height:44px;min-width:44px;padding:10px 12px;}/* C79 + D1: the labelled Hide meets the 44px floor */
}
/* uxw21h-0904 C61 (touch-04 + system-19): the sticky action footer + full-width
   primary + 44px secondary are the PHONE treatment (touch-04 is a phone finding),
   scoped to <=768px so the desktop modal is a byte-geometry no-op (lane step-5
   desktop guarantee). The D4 why-trim is mobile-only; the staged-card X and the
   #wc-ct name line are the all-width system-19 halves and ride the markup/JS. */
.wc-why-short{display:none;}
@media(max-width:768px){
  #welcome-card .wc-row{position:sticky;bottom:0;background:var(--bg2);padding:12px 0;margin-top:0;box-shadow:0 -8px 16px var(--bg2);display:flex;gap:12px;align-items:center}
  #welcome-card .wc-row .btn-primary{flex:1 1 auto;min-height:44px;font-size:15px;}
  #welcome-card .wc-row .wc-skip{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 14px;background:var(--bg3);border:var(--border);border-radius:8px;font-size:13px;color:var(--text2);}
  #welcome-card .wc-row .wc-skip:hover{border-color:var(--teal);}
  .wc-chip{min-height:44px;padding:12px 14px;font-size:14px} .wc-chips{gap:8px}
  .wc-why-full{display:none;}.wc-why-short{display:inline;}
}
/* uxw21h-0904 C63 (inp-13): structured answers inside the two setup cards (all widths) */
.aih-card.hasform{aspect-ratio:auto;min-height:148px;}
.aih-card-f{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;align-items:center;}
.aih-card-f .aih-fchip{background:var(--bg4);border:1px solid rgba(47,214,182,.35);color:var(--text1);border-radius:8px;padding:6px 10px;font-size:11.5px;cursor:pointer;min-height:32px;}
.aih-card-f .aih-fchip:hover{border-color:var(--teal);}
.aih-card-f input{flex:1 1 60px;min-width:0;box-sizing:border-box;background:var(--bg1);border:var(--border);border-radius:7px;color:var(--text1);padding:6px 8px;font-size:16px;outline:none;}
.aih-card-f input:focus{border-color:var(--teal);}
/* uxw21h-0904 C65 (touch-06): the one Doug mobile block (contract-verbatim), plus the
   composer :empty height and the Log-it/Dismiss gap scoped to <=768px so Doug's cards
   and composer are a desktop no-op (the 44px empty composer is the 16px-text phone fix). */
@media(max-width:768px){.ai-card .ai-cacts{margin-left:0;flex:1 1 100%;flex-wrap:wrap;justify-content:flex-start;row-gap:6px} .ai-cact,.ai-log-btns button,.ai-cards-hd button,.ai-rep-csv{min-height:40px} .ai-inrow button,.ai-ce{min-height:44px} .ai-log-btns{gap:16px} .ai-inrow .ai-ce:empty{height:44px}}
@media(max-width:768px){.ai-cact{min-height:44px;}}/* uxw41h-0905 C119 (system-11): .ai-cact joins the 44px floor - out-lasts the C65 40px by source order; .ai-log-btns/.ai-cards-hd/.ai-rep-csv keep C65's 40px */
/* uxw31h-0904 W3.1 (C89/C90/C91): selection bar + phone floors */
.btn:disabled{opacity:.55;cursor:default;}
.plsel-bar{position:sticky;bottom:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 12px;background:var(--bg2);border-top:var(--border);border-radius:0 0 var(--radius-card) var(--radius-card);z-index:5;}
.plsel-bar-n{font-size:12px;color:var(--text2);white-space:nowrap;}
#pl-sel-bar .list-dropdown-menu{top:auto;bottom:calc(100% + 6px);left:auto;right:0;margin-top:0;}
@media (max-width:768px){
  .route-add{min-height:44px;}/* re-asserts the uxw11h-0903 touch-01 floor over the new 28px base (source order) */
  input[type="checkbox"].pl-selcb,input[type="checkbox"]#pl-sel-all{width:24px;height:24px;min-height:24px;}/* out-specifies the base 15px checkbox rule; min-height pins it against the early-mq input floor */
  input[type="checkbox"].ql-selcb{width:24px;height:24px;min-height:24px;}/* uxw41h-0905 C118: the Leads batch-qualify box gets the same real target */
  #tbody-prospect td:first-child{padding:12px 8px;}
  #prospect-card{overflow:visible;}/* the mobile .card overflow:hidden would kill the sticky bar */
}
/* uxw34h-0905 W3.4 C112 (touch-13, D3): phone type off the 9-11px floor. These
   component rules ride a LATE mq because their base rules sit after the main
   254-303 mobile block (equal specificity: source order decides). The [style*=]
   rows lift inline-styled 9/9.5/10/10.5px text; stylesheet !important beats an
   inline declaration. <=768px only: desktop type is untouched. */
@media (max-width:768px){
  .card-hdr h2,.hud-fchip,.hud-fchip-n,.hud-lbl,.hud-sec,.bc-src,.bc-role,.ql-badge,.mp-pill span,.mp-pill-text,.hm-legend,.hm-legend span{font-size:11px;}
  .badge,.hud-badge{font-size:11px!important;}
  #intel-sec-shortage .badge,#intel-sec-asp .badge,#intel-sec-asp .b,#intel-sec-device .badge,#intel-sec-recall .badge{font-size:12px!important;}/* uxw54h-0905 C166 (clutter-20): lane-row badges meet the nothing-under-12px criterion on phones; scoped to the four lanes so the app-wide badge floor is untouched */
  #content [style*="font-size:9px"],#content [style*="font-size:9.5px"],#content [style*="font-size:10px"],#content [style*="font-size:10.5px"],
  #content [style*="font-size: 9px"],#content [style*="font-size: 9.5px"],#content [style*="font-size: 10px"],#content [style*="font-size: 10.5px"]{font-size:11px!important;}/* the spaced forms catch JS-serialized el.style writes (the route map start/end labels) */
}
/* uxw44h-0905 C135 (touch-12, D9 app-wide): one page scroller on phones - the
   520px inner table window dies for every .tbl-scroll consumer (W3.4's C114
   #view-prospect rule already did Prospecting; the two rules agree). The chip
   rail gains the same right-edge fade cue .tbl-wrap already carries. */
@media (max-width:768px){
  .tbl-scroll{max-height:none;overflow-y:visible;}
  .aih-chips{background:linear-gradient(270deg,rgba(0,0,0,.38),transparent) right/20px 100% no-repeat;}
}
/* uxw44h-0905 C136 (clutter-07): Billed Procedures. Desktop: Beneficiaries,
   Svcs/Bene, Avg Charge and Avg Allowed sit behind the labelled more-columns
   toggle (default collapsed) so Ratio stays inside the card. Phones: rows
   render as cards in the mp-row pattern - code, description line, labelled
   Services / Paid / $-per-bene and the coloured ratio token; the row onclick
   and charge_ratio colouring ride the same cells untouched. Scoped to
   #prov-bp-card only (.tbl-wrap is app-wide). Column map: 1 HCPCS
   2 Description 3 POS 4 Beneficiaries 5 Services 6 Svcs/Bene 7 Total Charged
   8 Total Paid 9 $/Bene 10 Avg Charge 11 Avg Allowed 12 Avg Payment 13 Ratio. */
#prov-bp-card:not(.bp-more) :is(th,td):is(:nth-child(4),:nth-child(6),:nth-child(10),:nth-child(11)){display:none;}
#prov-bp-card.bp-more .trunc{max-width:150px;}/* expanded: 13 columns fit 1440 with Ratio inside the card; the title attr keeps the full description */
@media (max-width:768px){
  #prov-bp-card table,#prov-bp-card tbody{display:block;width:100%;}
  #prov-bp-card thead{display:none;}
  #prov-bp-card tbody tr{display:block;border-bottom:var(--border);padding:10px 8px;}
  #prov-bp-card tbody td{display:inline-block;border:none;padding:2px 10px 2px 0;}
  #prov-bp-card tbody td:nth-child(2){display:block;white-space:normal;max-width:none;padding:2px 0;font-size:12px;color:var(--text2);}
  #prov-bp-card tbody :is(td:nth-child(3),td:nth-child(4),td:nth-child(6),td:nth-child(7),td:nth-child(10),td:nth-child(11),td:nth-child(12)){display:none;}
  #prov-bp-card tbody td:nth-child(5)::before{content:'Services ';color:var(--text3);font-size:11px;}
  #prov-bp-card tbody td:nth-child(8)::before{content:'Paid ';color:var(--text3);font-size:11px;}
  #prov-bp-card tbody td:nth-child(9)::before{content:'$/Bene ';color:var(--text3);font-size:11px;}
  #prov-bp-more{display:none;}
}
/* uxw44h-0905 C137 (clutter-14): Route Builder phone header - the add-provider
   search wrap goes full width (the input already rides the #content 100%
   phone rule); the dropdown follows the wrap. */
@media (max-width:768px){
  #route-add-wrap{flex:1 1 100%;}
  #route-add-dd{width:100%;}
  #route-start-mode,#route-end-mode{width:auto;flex:1 1 42%;min-width:0;}/* the Start and End selects pair on one row (the blanket phone select{width:100%} gave each a whole 44px row); the sub-200px header needs the pairing */
  #view-route .card-hdr{padding:9px 12px;}
}
