
:root {
  color-scheme:dark; /* native controls (checkboxes, selects, scrollbars) render dark. Prospect select-col fix 0713 */
  --bg1:#0B121B; --bg2:#131D2A; --bg3:#19232F; --bg4:#22303F;
  --text1:#E9EFF5; --text2:#90A0B1; --text3:#6B7A8B;
  --green:#22c55e; --red:#ef4444; --red-tx:#ef4444; --amber:#F2C14E; --blue:#2FD6B6;
  --mono:'IBM Plex Mono',ui-monospace,monospace,'Apple Color Emoji';
  --radius:6px; --radius-card:12px; --border:1px solid rgba(173,196,219,0.12); --teal:#2FD6B6; --teal-dim:#1FA98F; --coral:#FF6B5B; --border-color:rgba(173,196,219,0.12); --sans:'IBM Plex Sans',system-ui,-apple-system,sans-serif,'Apple Color Emoji'; --display:'Archivo',var(--sans);
}
*{box-sizing:border-box;margin:0;padding:0;}
body{background:var(--bg1);color:var(--text1);font-family:var(--sans);font-size:13px;height:100vh;height:100dvh;overflow:hidden;line-height:1.5;}
#app{display:flex;height:100vh;height:100dvh;}

/* Sidebar */
#sidebar{width:210px;min-width:210px;background:var(--bg2);border-right:var(--border);display:flex;flex-direction:column;overflow-y:auto;}
.sb-head{padding:16px 16px 12px;border-bottom:var(--border);}
.sb-head h1{font-size:16px;font-weight:900;letter-spacing:-0.03em;font-family:var(--display);display:inline-flex;align-items:baseline;}
.sb-head .sub{font-size:11px;color:var(--text3);margin-top:2px;}
.sb-section{padding:6px 0;border-bottom:var(--border);}
.sb-label{padding:4px 16px;font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--text3);font-weight:600;}
/* sbfold-0726: collapsible sidebar sections */
.sb-section[data-sec]>.sb-label{cursor:pointer;display:flex;align-items:center;user-select:none;}
.sb-section[data-sec]>.sb-label::after{content:'';margin-left:auto;flex-shrink:0;width:7px;height:7px;margin-top:-4px;border-right:2px solid var(--text3);border-bottom:2px solid var(--text3);transform:rotate(45deg);transition:transform .15s;}  /* sbchev-0726 */
.sb-section.sb-folded>.sb-label::after{transform:rotate(-45deg);margin-top:0;}
.sb-section.sb-folded .nav-item{display:none!important;}
#sb-more-sec{position:sticky;bottom:0;z-index:1;background:var(--bg2);border-top:var(--border);margin-top:-1px;}  /* sbpin-0821: More tools / Customize menu pin to the sidebar bottom while the expanded list scrolls */
#sb-pin{margin-top:auto;background:var(--bg2);}  /* uxw13h-0903 C29 (money-02/money-18): sticky footer unit; More tools + sb-foot stack instead of colliding at bottom:0 */
@media(min-height:600px){#sidebar{overflow-y:hidden;}#sb-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;}}  /* uxw54h-0905 C164 (clutter-11): on tall viewports the nav scrolls inside #sb-scroll and the scrollport ENDS at the pinned unit's top edge (the pin sits statically below it, permanently visible), so no row can render under it at ANY scroll position incl. scrollTop 0. Bottom padding on the scrolling container cannot achieve that (a sticky bottom:0 pin overlays the scrollport's bottom strip at scrollTop 0 regardless of content-end padding; measured, recorded as a dated C164 note). uxw13h-0903 C29's short-viewport clause is preserved: under 600px the base rules hold, #sb-scroll does not scroll on its own, the whole sidebar scrolls and the pin rides in flow (margin-top:auto), with #sb-more-sec's own sticky behaving exactly as before. */
@media(min-width:769px) and (min-height:600px){#sb-scroll::after{content:'';display:block;flex:none;position:sticky;bottom:0;height:24px;background:linear-gradient(180deg,rgba(0,0,0,0),var(--bg2));pointer-events:none;}}/* uxr2w1c-0909 nav-1: 24px bottom fade cue on the C164 scrollport (the audit's n-laptop-620 case); sticky at the scrollport bottom while rows remain, invisible (bg2 over bg2) once the list is scrolled out */
.nav-item{display:flex;align-items:center;gap:9px;padding:7px 16px;cursor:pointer;color:var(--text2);border-left:2px solid transparent;font-size:13px;transition:background .1s,color .1s;user-select:none;}
.nav-item:hover{background:var(--bg3);color:var(--text1);}
.nav-item.active{background:var(--bg3);color:var(--text1);border-left-color:var(--blue);}
.nav-item .ico{font-size:13px;width:16px;text-align:center;}
.sb-foot{margin-top:auto;padding:12px 16px;border-top:var(--border);padding-bottom:calc(12px + env(safe-area-inset-bottom));}
.sb-ulink{display:block;font-size:12px;line-height:1.4;padding:6px 0;color:var(--blue);text-decoration:none;cursor:pointer;white-space:nowrap;} /* sbfoot-0823; uxw13h-0903 C29: 6px rows (money-18) */
.sb-ulink:hover{text-decoration:underline;}
#srv-status{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--text3);}
.dot{width:7px;height:7px;border-radius:50%;background:var(--text3);flex-shrink:0;}
.dot.ready{background:var(--green);}
.dot.error{background:var(--red-tx);}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:.3;}}
@keyframes skel{0%{background-position:200% 0}100%{background-position:-200% 0}}
.skel{background:linear-gradient(90deg,var(--bg3) 25%,rgba(255,255,255,.07) 50%,var(--bg3) 75%);background-size:200% 100%;animation:skel 1.2s linear infinite;border-radius:6px}

/* Local data-year pickers (all share S.year) */
.yr-sel{background:var(--bg3);border:var(--border);border-radius:var(--radius);color:var(--text1);padding:6px 10px;font-size:12px;outline:none;font-family:var(--mono);}
.yr-sel:focus{border-color:var(--blue);}

/* Content */
#content{flex:1;overflow-y:auto;padding:24px 28px 80px;}/* uxw42h-0905 C124 (touch-05): desktop bottom allowance so nothing docks under a pill */
.view{display:none;} .view.active{display:block;}

/* Page header */
.pg-hdr{margin-bottom:20px;}
.pg-hdr h1{font-size:19px;font-weight:700;font-family:var(--display);letter-spacing:-0.01em;}
.pg-hdr p{color:var(--text3);font-size:12px;margin-top:3px;}

/* Stat grid */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;}
.stat-card{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:16px;box-shadow:inset 0 1px 0 rgba(255,255,255,0.04);/*mkskin-0715*/}
.stat-label{font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:var(--text3);margin-bottom:6px;}
.stat-val{font-family:var(--mono);font-size:21px;font-weight:600;color:var(--text1);}
.stat-sub{font-size:11px;color:var(--text3);margin-top:3px;}

/* Cards */
.card{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);margin-bottom:16px;box-shadow:inset 0 1px 0 rgba(255,255,255,0.04);/*mkskin-0715*/}
.card-hdr{padding:11px 16px;border-bottom:var(--border);display:flex;align-items:center;justify-content:space-between;}
.card-hdr h2{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text3);}
.card-body{padding:16px;}
/* cardfold-0721: generic card collapse (PRD-Collapsible-Cards) - every .card with a
   direct-child .card-hdr folds on header click. Opt-outs: hdr [onclick] (bespoke
   collapses own those), [data-nofold], .stat-pair. */
.card:not([data-nofold]):not(.stat-pair) > .card-hdr:not([onclick]){cursor:pointer;}
.card:not([data-nofold]):not(.stat-pair) > .card-hdr:not([onclick]) h2::after{content:' \25be';font-weight:400;text-transform:none;letter-spacing:0;opacity:.55;}
.card.card-folded:not([data-nofold]):not(.stat-pair) > .card-hdr:not([onclick]) h2::after{content:' \25b8';}
.card.card-folded > :not(.card-hdr){display:none !important;}
.card.card-folded > .card-hdr{border-bottom:none;}
.ai-home-side .card:last-child.card-folded{flex:0 0 auto;}
#prospect-filter-card:not(.card-folded) #prospect-filter-sum{display:none;}/* searchfold-0823 */
#dme-det-filter-card:not(.card-folded) #dme-det-filter-sum,#proc-det-filter-card:not(.card-folded) #proc-det-filter-sum{display:none;}/* detfold-0823 */
#partd-det-filter-card:not(.card-folded) #partd-det-filter-sum{display:none;}/* pdterr-0823: Part D parity with detfold-0823 */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;}

/* Tables */
.tbl-wrap{overflow-x:auto;}
.tbl-wrap .mabbr{display:none;} /* area-abbr-0721 */
.tbl-wrap.abbr-money .mabbr{display:inline;}
.tbl-wrap.abbr-money .mfull{display:none;}
.tbl-scroll{max-height:520px;overflow-y:auto;}
table{width:100%;border-collapse:collapse;font-size:12px;}
th{padding:8px 12px;text-align:left;color:var(--text3);font-size:10px;text-transform:uppercase;letter-spacing:.6px;border-bottom:var(--border);font-weight:500;white-space:nowrap;position:sticky;top:0;background:var(--bg2);}
td{padding:8px 12px;border-bottom:var(--border);color:var(--text2);}
tr:last-child td{border-bottom:none;}
.rows-clickable tbody tr:hover td{background:var(--bg3);cursor:pointer;}/* uxw53h-0905 C156 (system-18): hover+pointer only where rows actually open something; the classed-table enumeration is recorded in the wave status block */
.nr{text-align:right;}
.mono{font-family:var(--mono);color:var(--text1);}
.g{color:var(--green);} .r{color:var(--red-tx);} .a{color:var(--amber);} .b{color:var(--blue);} .dim{color:var(--text3);}
.trunc{max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* Controls */
.controls{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap;align-items:center;}
input[type="text"],select{background:var(--bg2);border:var(--border);border-radius:var(--radius);color:var(--text1);padding:7px 12px;font-size:13px;outline:none;font-family:inherit;}
input[type="text"]:focus,select:focus{border-color:var(--blue);}
input[type="text"].main{flex:1;min-width:200px;}
select{min-width:160px;color:var(--text2);}
select option{background:var(--bg3);}
.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--radius);border:var(--border);background:var(--bg3);color:var(--text1);cursor:pointer;font-size:12px;font-family:inherit;white-space:nowrap;}
.btn:hover{background:var(--bg4);}
.btn-primary{background:var(--blue);border-color:var(--blue);color:#04201A;font-weight:600;}
.btn-pass{background:rgba(240,177,60,0.10);border:1px solid rgba(240,177,60,0.55);color:var(--amber);font-weight:600;} /* uxw13h-0903 money-06 (C26): the $9 purchase wears its container's amber */
@media(max-width:768px){#paywall-close-btn{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;}} /* uxw13h-0903 money-01 (C24, D1): the Close control meets the 44px phone floor */
.btn-primary:hover{opacity:.88;background:var(--blue);}/* btnhover-0805: .btn:hover (0,2,0) outranks .btn-primary's background (0,1,0), so hovered primary buttons went dark-on-dark; re-assert teal here (same specificity, later, wins) */
.btn-on{border-color:var(--teal);background:rgba(47,214,182,.18);color:var(--text1);font-weight:600}/* uxw41h-0905 C117 (system-01): the on-state class - a state toggle wears this; .btn-primary means a genuine action only */
.btn-row{font-size:12px;padding:6px 10px;min-height:28px}/* uxw42h-0905 C123 (touch-03): one class retires the inline row buttons; the touch-01 .btn floor lifts these to 44px on phones */
.mclose{background:none;border:none;color:var(--text3);font-size:20px;cursor:pointer;padding:2px 6px;min-width:28px;min-height:28px;line-height:1;display:inline-flex;align-items:center;justify-content:center}/* uxw42h-0905 C123 (money-03 rider): the five panel close buttons share one class */
/* zipta-0721: unified zip-scope fields + one-height filter bars */
textarea.zips{flex:1;min-width:200px;background:var(--bg3);border:var(--border);border-radius:var(--radius);color:var(--text1);padding:9px 12px;font-size:12px;outline:none;font-family:var(--mono);resize:none;height:38px;line-height:18px;overflow:hidden;box-sizing:border-box;}
textarea.zips:focus{border-color:var(--blue);}
textarea.zips::placeholder{white-space:nowrap;}
.controls select,.mp-bar select,.controls>.btn,.mp-bar>.btn,.controls>input[type="text"],.mp-bar>input[type="text"],#area-by>.btn,div:has(>textarea.zips)>.btn,div:has(>textarea.zips)>select{height:38px;box-sizing:border-box;}
.mp-trigger{height:38px;line-height:24px;box-sizing:border-box;}

/* Provider header */
.prov-hdr{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:20px;margin-bottom:16px;display:flex;gap:18px;align-items:flex-start;box-shadow:inset 0 1px 0 rgba(255,255,255,0.04);/*mkskin-0715*/}
.prov-avatar{width:46px;height:46px;border-radius:50%;background:var(--bg4);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;}
.prov-name{font-size:17px;font-weight:600;line-height:1.3;}
.prov-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;}
/* fitb-0823: Provider Fit Strip (PRD-My-Bag FS-5) + list-row fit badges */
.fit-strip{margin-bottom:16px;padding:12px 16px;}
.fit-head{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--text3);margin-bottom:2px;}
.fit-lane{display:flex;gap:10px;align-items:flex-start;padding:7px 0;border-top:1px solid rgba(255,255,255,.05);}
.fit-lane:first-of-type{border-top:none;}
.fit-glyph{flex:none;font-size:15px;line-height:1.35;}
.fit-lane-body{flex:1;min-width:0;}
.fit-line{font-size:13px;line-height:1.45;color:var(--text2);}
.fit-line b{color:var(--text1);}
.fit-sub{font-size:11px;color:var(--text3);margin-top:2px;}
.fit-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;align-items:center;}
.fit-chips .cm-chip{font-size:11px;padding:3px 9px;max-width:100%;white-space:normal;}
.fit-chips .cm-chip .dim{font-size:10px;}
.fit-seeall{font-size:11px;color:var(--teal);cursor:pointer;white-space:nowrap;}
.fit-caveat{font-size:10px;color:var(--text3);margin-top:8px;}
/* pfitb-0823: 🧰 Pack Fit lane (PRD-My-Bag PF-4/PF-5, wave FS2) */
.fit-lane.fit-lane-cont{border-top:none;padding-top:2px;}
.fit-chips a.cm-chip,.fit-chips a.cm-chip:hover{text-decoration:none;}
.fit-bagless{font-size:11px;color:var(--text3);margin-top:6px;}
.bfit-wrap{margin-left:4px;white-space:nowrap;}
.bfit{font-size:11px;cursor:help;margin-left:2px;}
.opw-line,.addrw-line{display:none;}   /* badgeaff-0905: base-hidden badge words; the phone Prospecting card reveals them (C114 companion) */
.prov-meta-item{font-size:12px;color:var(--text2);display:flex;align-items:center;gap:4px;}
.badge{display:inline-flex;padding:2px 7px;border-radius:3px;font-size:10px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;white-space:nowrap;}
.badge-blue{background:rgba(47,214,182,.14);color:var(--blue);}
.badge-green{background:rgba(34,197,94,.14);color:var(--green);}
.badge-amber{background:rgba(245,158,11,.14);color:var(--amber);}
.badge-purple{background:rgba(168,85,247,.14);color:#c084fc;}
.badge-gray{background:rgba(148,163,184,.14);color:#94a3b8;}
/* Pipeline Forecast Stage 1a (fc1a-0718) - trend badges + coverage gap */
.fc-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;white-space:nowrap;cursor:default}
.fc-up{background:rgba(34,197,94,.14);color:var(--green)}
.fc-flat{background:rgba(148,163,184,.14);color:#94a3b8}
.fc-down{background:rgba(245,158,11,.14);color:var(--amber)}
.fc-new{background:rgba(254,113,91,.16);color:#FE715B}
.fc-lowconf{opacity:.78;border:1px dashed rgba(148,163,184,.4)}
.fc-note{font-size:11px;color:var(--text3);line-height:1.5}
/* fcui-0719: Territory Forecast card UI pass - stat tiles, section headers, chips */
.fc-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;padding:12px 16px 2px}
.fc-stat{background:var(--bg3);border:var(--border);border-radius:8px;padding:10px 12px;min-width:0}
.fc-stat .fs-lbl{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--text3);font-weight:600;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc-stat .fs-val{font-family:var(--mono);font-size:19px;font-weight:700;line-height:1.2;color:var(--text1)}
.fc-stat .fs-sub{font-size:11px;color:var(--text3);margin-top:3px;line-height:1.4}
.fc-covbar{height:4px;background:var(--bg4);border-radius:2px;margin-top:7px;overflow:hidden}
.fc-covbar>div{height:100%;background:var(--teal);border-radius:2px}
.fc-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px 16px 0}
.fc-sechd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 16px 0;padding-top:12px;border-top:var(--border);font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--text2)}
.fc-sechd .fs-aside{font-weight:400;text-transform:none;letter-spacing:0;color:var(--text3);font-size:11px}
.fc-packchip{display:inline-flex;align-items:center;background:var(--bg3);border:var(--border);border-radius:999px;padding:2px 10px;font-size:11px;color:var(--text2);margin-left:8px;white-space:nowrap}
/* fc1d-0727: capital value-basis (one-time chip) + signal-code chips + replacement tier */
.fc-once{background:rgba(242,193,78,.16);color:var(--amber);border:1px solid rgba(242,193,78,.35)}
.fc-sig-chip{display:inline-flex;align-items:center;gap:5px;background:var(--bg3);border:var(--border);border-radius:999px;padding:2px 9px;font-size:11px;font-family:var(--mono);color:var(--text2)}
.fc-sig-chip b{cursor:pointer;color:var(--text3);font-weight:600;font-family:var(--sans)}
.fc-sig-chip b:hover{color:var(--coral)}
.st-pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap;border:1px solid transparent;line-height:1.4;} /* st-pill-0713 */
.back{display:inline-flex;align-items:center;gap:5px;color:var(--text3);cursor:pointer;font-size:12px;margin-bottom:16px;padding:2px 0;}
.back:hover{color:var(--text1);}
.loading,.empty{text-align:center;padding:40px 24px;color:var(--text3);font-size:12px;}

/* Multi-picker */
.mp-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.mp-wrap{position:relative;}
.mp-trigger{background:var(--bg3);border:var(--border);border-radius:var(--radius);
  color:var(--text1);padding:6px 28px 6px 10px;font-size:12px;font-family:var(--mono);
  cursor:pointer;white-space:nowrap;position:relative;user-select:none;min-width:120px;display:inline-block;}
.mp-trigger:after{content:"▾";position:absolute;right:8px;top:50%;transform:translateY(-50%);color:var(--text3);}
.mp-trigger.active{border-color:var(--blue);}
.mp-dropdown{display:none;position:absolute;top:calc(100% + 4px);left:0;z-index:9999;min-width:280px;
  background:var(--bg2);border:var(--border);border-radius:var(--radius);box-shadow:0 8px 24px rgba(0,0,0,.5);}
.mp-dropdown.open{display:block;}
.mp-search{width:100%;box-sizing:border-box;background:var(--bg3);border:none;border-bottom:var(--border);
  color:var(--text1);padding:7px 10px;font-size:12px;font-family:var(--mono);outline:none;}
.mp-mode{display:flex;border-bottom:var(--border);}
.mp-mode button{flex:1;background:none;border:none;color:var(--text3);padding:5px;font-size:10px;
  font-family:var(--mono);cursor:pointer;text-transform:uppercase;letter-spacing:.5px;}
.mp-mode button.active{color:var(--text1);background:var(--bg3);}
.mp-list{max-height:min(340px,55vh);overflow-y:auto;}
.mp-item{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:12px;
  font-family:var(--mono);cursor:pointer;color:var(--text2);}
.mp-item:hover{background:var(--bg3);color:var(--text1);}
.mp-item input{accent-color:var(--blue);width:13px;height:13px;flex-shrink:0;}
.mp-footer{padding:5px 10px;border-top:var(--border);display:flex;justify-content:space-between;
  align-items:center;font-size:11px;color:var(--text3);}
.mp-pills{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;min-height:0;}
.mp-pill{background:var(--bg3);border:var(--border);border-radius:10px;padding:2px 8px;
  font-size:11px;font-family:var(--mono);color:var(--text2);display:flex;align-items:center;gap:4px;}
.mp-pill.exclude{border-color:#7f1d1d;color:#fca5a5;}
.mp-pill span{cursor:pointer;color:var(--text3);font-size:10px;}
.mp-pill span:hover{color:var(--text1);}

/* ── Mobile ────────────────────────────────────────────────────────────────── */
#mobile-bar{display:none;position:fixed;top:0;left:0;right:0;height:48px;z-index:200;
  background:var(--bg2);border-bottom:var(--border);
  align-items:center;gap:12px;padding:0 16px;}
#hamburger{background:none;border:none;color:var(--text1);font-size:22px;cursor:pointer;
  padding:0;line-height:1;flex-shrink:0;}
#sb-overlay{display:none;position:fixed;inset:0;z-index:299;background:rgba(0,0,0,.5);}

/* Comorbidity condition pills */
.cm-chip{background:var(--bg3);border:var(--border);border-radius:999px;padding:5px 12px;font-size:12px;cursor:pointer;color:var(--text2);white-space:nowrap;user-select:none;display:inline-flex;align-items:center;gap:6px;transition:background .1s,color .1s,border-color .1s;}
.cm-chip:hover{color:var(--text1);border-color:rgba(173,196,219,0.3);}
.cm-chip.active{background:var(--blue);border-color:var(--blue);color:#fff;}
.cm-chip.active .dim{color:rgba(255,255,255,.78);}
.cm-chip .cdot{width:6px;height:6px;border-radius:50%;flex:none;}
.cm-grid{display:grid;grid-template-columns:20px 8px minmax(0,1fr) minmax(110px,32%) 46px 46px 48px;gap:8px;align-items:center;}

@media(max-width:768px){
  body{flex-direction:column;}
  .tbl-wrap{touch-action:auto;}/* uxw44h-0905 C135 (touch-12): per-element opt-in - the arm IIFE beside the axis-lock sets pinch-zoom only on wraps that actually overflow sideways */
  .dash-pill,.ai-chip,.cm-chip,.crm-status-pill,.chart-tab,.hm-tg{
    min-height:44px;display:inline-flex;align-items:center;}/* uxw11h-0903 */
  .nav-item{min-height:44px;display:flex;align-items:center;}/* uxw11h-0903 */
  .fl-chip,.hud-fchip,.wc-chip,.fr-scope-chip,.bag-pos-chip,.ai-cact,.route-add,.crm-note-mail,.crm-note-todo{
    min-height:44px;display:inline-flex;align-items:center;}/* uxw41h-0905 C119 (system-11): the nine tappable chip classes join the touch-01 floor */
  select{min-height:44px;}/* uxw11h-0903 */
  #mobile-bar{display:flex;}
  #sidebar{position:fixed;top:0;left:-220px;height:100vh;height:100dvh;z-index:300;
    width:210px;transition:left .25s ease;box-shadow:4px 0 20px rgba(0,0,0,.4);}
  #sidebar.open{left:0;}
  #sidebar.open ~ #sb-overlay,
  #sb-overlay.open{display:block;}
  #sb-close{display:block!important;}
  /* uxr2w1c-0909 nav-1 (P1): on phones the account footer (.sb-foot) rides at the END of the scrolling list and only #sb-more-sec (More tools + Customize menu) stays pinned, sticky to the drawer's own scrollport; the C164 #sb-scroll scrollport hands scrolling back to #sidebar here so the pin unit no longer eats half the drawer. Desktop untouched: the min-height:600px rule above keeps the C29 pin outside the scroller there. */
  #sidebar{overflow-y:auto;}
  #sb-scroll{flex:none;min-height:auto;overflow:visible;}
  #sb-pin{display:contents;}
  .sb-foot{order:0;}
  #sb-more-sec{order:1;position:sticky;bottom:0;z-index:1;}
  #sb-more-sec::before{content:'';position:absolute;left:0;right:0;top:-25px;height:24px;background:linear-gradient(180deg,rgba(0,0,0,0),var(--bg2));pointer-events:none;}/* the 24px bottom fade cue (the C135 rail-fade idea, vertical): a clipped list always says it continues */
  #content{padding:16px 14px calc(64px + env(safe-area-inset-bottom,0px));margin-top:48px;max-width:100%;box-sizing:border-box;}/* uxr2w1c-0909 FC2-5 (mobile-1): the phone bottom allowance is the 48px combined bar + 16px clearance (+ safe area) on EVERY view; it replaces C124's 96px two-pill guess and C158's eight-view 70px list (both retired here) */
  #content *:not(.mp-dropdown):not(.mp-list):not(.mp-dropdown *){max-width:100%;box-sizing:border-box;}
  #content input[type=text],#content input:not([type]){width:100%!important;min-width:0;}
  .card{overflow:visible;}
  .tbl-wrap{max-width:100%;overflow-x:auto;}
  .controls,.mp-bar{flex-wrap:wrap;gap:6px;}
  .controls input.main{width:100%!important;min-width:0;}
  .mp-wrap,.mp-trigger{width:100%;min-width:0!important;box-sizing:border-box;}
  .mp-trigger{display:block;text-align:left;}
  .mp-dropdown{min-width:0!important;}
  .card{border-radius:6px;}
  .pg-hdr{padding:0 0 12px;}
  .tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .chart-container{height:auto!important;max-height:none!important;}
  select{max-width:100%;width:100%;box-sizing:border-box;}
  .btn{white-space:nowrap;min-height:44px;}/* uxw11h-0903 */
  .mclose{min-width:44px;min-height:44px;}/* uxw42h-0905 C123: panel closes join the touch-01 floor */
  #prov-spec-wrap,#prov-state-wrap{width:100%;}
  .two-col{grid-template-columns:1fr;}
  .dash-pill{background:var(--bg3);border:var(--border);border-radius:16px;padding:6px 14px;font-size:12px;cursor:pointer;color:var(--text2);white-space:nowrap;user-select:none;}
  .dash-pill:active{background:var(--blue);color:#fff;}
  .stat-grid{grid-template-columns:repeat(2,1fr);}
  table{font-size:13px;}th{font-size:11px;}/* uxw34h-0905 C112 (touch-13, D3): phone type floor - table body 13px, headers 11px */
  #tbl-specs td, #tbl-specs th, #tbl-sts td, #tbl-sts th{padding:5px 4px;font-size:11px;}
  #tbl-specs th, #tbl-sts th{font-size:11px;letter-spacing:.3px;}/* uxw34h-0905 C112: was 9px - an id rule that would survive the th bump */
  #tbl-specs, #tbl-sts{table-layout:fixed;width:100%;}
  #tbl-specs td:first-child, #tbl-sts td:first-child{width:38%;white-space:normal;word-break:break-word;}
  #tbl-specs td:nth-child(2), #tbl-sts td:nth-child(2){width:18%;}
  #tbl-specs td:nth-child(3), #tbl-sts td:nth-child(3){width:20%;}
  #tbl-specs td:nth-child(4), #tbl-sts td:nth-child(4){width:24%;}
  body{overflow-x:hidden;height:auto;}
  input,textarea,.ai-ce{font-size:16px!important;}/*mobfix-0714; select removed by ioszoom-0831: the viewport maximum-scale=1 script kills the iOS focus zoom, so selects keep their base size and match page text*/
  /* uxw11h-0903 touch-01 (D1, contract C1b/C2): 44px phone tap floor */
  .route-add{min-height:44px;display:inline-flex;align-items:center;}
  .sb-ulink,.sb-label,#fr-cust-overlay label{min-height:44px;display:flex;align-items:center;}
  input,textarea{min-height:44px;}
  #view-pac .mp-trigger,#view-alf .mp-trigger,#view-labs .mp-trigger,#view-dmesup-dir .mp-trigger,#view-vaawd .mp-trigger,#view-groups .mp-trigger{min-height:44px;display:flex;align-items:center;}/* uxw53h-0905 C154 (touch-15): the swept views' multiselect triggers join the touch-01 floor */
  /* uxr2w1c-0909: C158's eight-view padding-bottom:70px list retired; FC2-5 compensation is the #content padding above, on every view */
  #today-card .btn{line-height:1;}
  #today-card a > button{width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:16px!important;}
  .mp-search{font-size:16px!important;}
  .tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;display:block;width:100%;}
  .card{max-width:100%;box-sizing:border-box;overflow:hidden;}
}

/* Scrollbars */
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:var(--bg1);}
::-webkit-scrollbar-thumb{background:var(--bg3);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:#2E3D4D;}
::-webkit-scrollbar-corner{background:var(--bg1);}

/* Chart */
.chart-wrap{padding:16px;background:var(--bg2);}
.chart-tabs{display:flex;gap:8px;margin-bottom:12px;}
.chart-tab{padding:4px 12px;border-radius:var(--radius);border:var(--border);background:var(--bg3);color:var(--text2);cursor:pointer;font-size:11px;}
.chart-tab.active{background:var(--blue);border-color:var(--blue);color:#fff;}
.chart-container{width:100%;max-height:260px;overflow:hidden;}

/* Trend table */
.trend-tbl td,.trend-tbl th{padding:6px 10px;}

/* Stat pair */
.stat-pair table td:first-child{color:var(--text3);}
.stat-pair table td{padding:6px 0;border:none;}
.stat-pair table td:last-child{text-align:right;}

/* City multiselect */
.ms-wrap{position:relative;}
.ms-trigger{background:var(--bg2);border:var(--border);border-radius:var(--radius);padding:7px 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--text2);user-select:none;white-space:nowrap;min-width:160px;}
.ms-trigger:hover,.ms-trigger.open{border-color:var(--blue);color:var(--text1);}
.ms-dropdown{display:none;position:fixed;min-width:240px;background:var(--bg3);border:var(--border);border-radius:var(--radius);z-index:9999;box-shadow:0 8px 24px rgba(0,0,0,.5);}
.ms-dropdown.open{display:block;}
.ms-search{width:100%;background:transparent;border:none;border-bottom:var(--border);padding:8px 12px;color:var(--text1);font-size:12px;outline:none;font-family:inherit;}
.ms-list{max-height:220px;overflow-y:auto;}
.ms-item{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;font-size:12px;color:var(--text2);}
.ms-item:hover{background:var(--bg4);color:var(--text1);}
.ms-item input[type=checkbox]{pointer-events:none;accent-color:var(--blue);flex-shrink:0;}
.ms-item .ms-cnt{margin-left:auto;color:var(--text3);font-family:var(--mono);font-size:10px;}
.ms-empty{padding:16px 12px;color:var(--text3);font-size:12px;text-align:center;}
.ms-footer{padding:6px 12px;border-top:var(--border);display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--text3);}

/* ── Qualified Lead ─────────────────────────────────────────────────────── */
.ql-toggle{display:inline-flex;align-items:center;gap:7px;padding:6px 14px;border-radius:20px;font-size:12px;font-weight:600;cursor:pointer;border:1.5px solid var(--border-color,#333);background:var(--bg3);color:var(--text2);transition:all .15s;user-select:none;margin-top:12px}
.ql-toggle:hover{border-color:var(--amber,#f59e0b);color:var(--amber,#f59e0b)}
.ql-toggle.on{background:rgba(242,193,78,0.08);border-color:rgba(242,193,78,0.55);color:var(--amber)/*mkskin-0715*/}
.ql-badge{display:inline-block;background:rgba(242,193,78,0.08);border:1px solid rgba(242,193,78,0.55);color:var(--amber);font-size:10px;font-weight:700;padding:1px 7px;border-radius:5px;vertical-align:middle;margin-left:6px/*mkskin-0715*/}

/* ── Lists ──────────────────────────────────────────────────────────────── */
.list-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;background:var(--bg3);border:var(--border);color:var(--text2);margin:2px}
.list-pill .list-pill-x{cursor:pointer;opacity:.5;font-size:10px;margin-left:2px}
.list-pill .list-pill-x:hover{opacity:1;color:var(--red)}
/* Themed checkboxes. Teal accent (prospect select-col fix 0713b) */
input[type="checkbox"]{-webkit-appearance:none;appearance:none;width:15px;height:15px;flex:none;background:var(--bg3);border:1px solid rgba(47,214,182,.45);border-radius:4px;cursor:pointer;display:inline-grid;place-content:center;vertical-align:middle;transition:background .12s,border-color .12s}
input[type="checkbox"]:hover{border-color:var(--teal)}
input[type="checkbox"]:checked,input[type="checkbox"]:indeterminate{background:var(--teal);border-color:var(--teal)}
input[type="checkbox"]:checked::after{content:"";width:4px;height:8px;border:solid var(--bg1);border-width:0 2px 2px 0;transform:rotate(45deg);margin-top:-2px}
input[type="checkbox"]:indeterminate::after{content:"";width:8px;height:2px;background:var(--bg1)}
.list-dropdown{position:relative;display:inline-block}
.list-dropdown-menu{position:absolute;left:0;top:100%;margin-top:4px;background:var(--bg2);border:var(--border);border-radius:var(--radius);min-width:200px;z-index:100;box-shadow:0 4px 16px rgba(0,0,0,.4);padding:4px 0}
.list-dropdown-item{padding:7px 12px;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:8px;color:var(--text1)}
.list-dropdown-item.pending{opacity:.6;pointer-events:none}/* uxw14h-0904 C49 */
.list-dropdown-item:hover{background:var(--bg3)}
.list-dropdown-item.checked{color:var(--blue)}
.list-dropdown-divider{border-top:1px solid var(--border-color,#2a2a2a);margin:4px 0}
.list-new-input{display:flex;gap:6px;padding:6px 8px}
.list-new-input input{flex:1;background:var(--bg3);border:var(--border);border-radius:var(--radius);padding:4px 8px;font-size:12px;color:var(--text1)}

/* ── Contacts ───────────────────────────────────────────────────────────── */
.contact-row{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--border-color,#2a2a2a)}
.contact-row:last-child{border-bottom:none}
.contact-role{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;white-space:nowrap;flex-shrink:0;margin-top:2px}
.contact-info{flex:1;min-width:0}
.contact-name{font-size:13px;font-weight:600;color:var(--text1)}
.contact-detail{font-size:12px;color:var(--text2);margin-top:2px;display:flex;flex-wrap:wrap;gap:10px}
.contact-detail a{color:var(--blue);text-decoration:none}
.contact-detail a:hover{text-decoration:underline}
.dm-badge{display:inline-block;background:rgba(242,193,78,0.08);border:1px solid rgba(242,193,78,0.55);color:var(--amber);font-size:9px;font-weight:700;padding:1px 6px;border-radius:5px;margin-left:6px;vertical-align:middle/*mkskin-0715*/}
.contact-add-form{background:var(--bg3);border:var(--border);border-radius:var(--radius);padding:12px;margin-top:10px;display:none}
.contact-add-form.open{display:block}
.contact-form-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.contact-form-row input,.contact-form-row select{flex:1;min-width:120px;background:var(--bg2);border:var(--border);border-radius:var(--radius);padding:6px 8px;font-size:12px;color:var(--text1)}
.contact-form-row select option{background:var(--bg2)}

/* ── CRM Card ────────────────────────────────────────────────────────────── */
/* crmfuse-0831: statuses fused into one segmented bar (Bill 2026-08-31: all on one row) */
.crm-status-row{display:flex;max-width:520px;flex-wrap:nowrap;gap:0;margin-bottom:4px;border:1px solid var(--border-color);border-radius:20px;overflow:hidden}/* crmfuse2-0831: justified bar - slack distributes so short segments (Active) don't look cramped */
.crm-status-pill{flex:1 1 auto;min-width:0;text-align:center;padding:5px 12px;border-radius:0;font-size:12px;font-weight:500;cursor:pointer;background:transparent;border:none;border-left:1px solid var(--border-color);color:var(--text2);transition:background .15s,color .15s,border-color .15s/*mkskin-0715 crmfuse2-0831*/}
.crm-status-pill:first-child{border-left:none;border-radius:20px 0 0 20px}/* crmfuse6-0831: end segments carry the bar's corner radii so the active inset outline follows the curve instead of squaring off */
.crm-status-pill:last-child{border-radius:0 20px 20px 0}
.crm-status-pill:hover{background:rgba(255,255,255,0.05)}
/* ── Calendar (calendar-p1-0713) ── */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--bg3);border-top:var(--border)}
.cal-dow{background:var(--bg2);padding:4px 6px;font-size:10px;font-weight:700;letter-spacing:.5px;color:var(--text3);text-align:center}
.cal-cell{background:var(--bg2);min-height:88px;padding:4px 6px;cursor:pointer;overflow:hidden}
.cal-cell:hover{background:var(--bg3)}
.cal-cell.dimm{opacity:.45}
.cal-cell.today .cal-dn{color:var(--teal);font-weight:700}
.cal-cell.sel{outline:2px solid var(--teal);outline-offset:-2px}
.cal-dn{font-size:11px;color:var(--text3);margin-bottom:2px}
.cal-ev{font-size:10.5px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-ev.done{opacity:.5;text-decoration:line-through}
.cal-more{font-size:10px;color:var(--text3)}
.cal-dots{display:none}
.cal-day-row{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:var(--border);font-size:13px}
.cal-day-row:last-child{border-bottom:none}
.cal-day-row.done{opacity:.55}
.cal-day-row.done strong{text-decoration:line-through}
.cal-day-time{width:44px;flex-shrink:0;font-size:12px;color:var(--text3);padding-top:1px}
@media(max-width:768px){
  .cal-cell{min-height:56px;padding:3px 4px}
  .cal-ev,.cal-more{display:none}
  .cal-dots{display:flex;flex-wrap:wrap;gap:1px;font-size:9px;line-height:1}
}
.crm-note{padding:10px 0;border-bottom:1px solid var(--border-color,#2a2a2a)}
.crm-note:last-child{border-bottom:none}
.crm-note-body{font-size:13px;color:var(--text1);white-space:pre-wrap;line-height:1.5}
.crm-note-meta{display:flex;justify-content:space-between;align-items:center;margin-top:4px}
.crm-note-del{background:var(--bg3);border:var(--border);border-radius:6px;color:var(--text2);font-size:11px;cursor:pointer;padding:2px 8px;margin-left:6px;white-space:nowrap;transition:border-color .15s,color .15s}/* uxw31h-0904 system-06 C89: matches the labelled note chips; the bare 45%-opacity x is gone */
.crm-note-del:hover{border-color:var(--red);color:var(--red)}/* uxw31h-0904 C89 */
.crm-note-mail{background:var(--bg3);border:var(--border);border-radius:6px;color:var(--text2);font-size:11px;cursor:pointer;padding:2px 8px;margin-left:auto;white-space:nowrap;transition:border-color .15s,color .15s}/* acu1e:css notemail-0806 */
.crm-note-mail:hover{border-color:var(--teal);color:var(--text1)}
/* todoretro-0901: "To-do" chip beside the notemail-0806 Follow-up chip on existing notes (PRD-Field-Log Phase 3 fast-follow) + the inline composer under the note */
.crm-note-todo{background:var(--bg3);border:var(--border);border-radius:6px;color:var(--text2);font-size:11px;cursor:pointer;padding:2px 8px;margin-left:6px;white-space:nowrap;transition:border-color .15s,color .15s}
.crm-note-todo:hover,.crm-note-todo.on{border-color:var(--teal);color:var(--text1)}
.crm-note-todo-box{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.crm-note-todo-ok{font-size:11px;color:var(--teal);margin-top:6px}
/* Basemap tint. Colorize neutral ESRI dark-gray toward the slate/teal scheme */
#proc-zipmap, #proc-zipmap .leaflet-container, #dme-zipmap, #dme-zipmap .leaflet-container, #terr-map, #terr-map .leaflet-container, #prospect-zipmap, #prospect-zipmap .leaflet-container, #prov-map, #prov-map .leaflet-container, #route-map, #route-map .leaflet-container, #mfr-zipmap, #mfr-zipmap .leaflet-container, #groups-zipmap, #groups-zipmap .leaflet-container, #vafac-map, #vafac-map .leaflet-container, #vafac-visn-map, #vafac-visn-map .leaflet-container, #trials-map, #trials-map .leaflet-container{background:var(--bg1);}
.prov-pin{background:transparent;border:none;}
#proc-zipmap .leaflet-tile, #dme-zipmap .leaflet-tile, #terr-map .leaflet-tile, #prospect-zipmap .leaflet-tile, #prov-map .leaflet-tile, #route-map .leaflet-tile, #mfr-zipmap .leaflet-tile, #groups-zipmap .leaflet-tile, #vafac-map .leaflet-tile, #vafac-visn-map .leaflet-tile, #trials-map .leaflet-tile{filter:brightness(.78) contrast(1.08) sepia(.5) hue-rotate(168deg) saturate(1.55);}
#prov-map .prov-ref-layer .leaflet-tile{filter:none;}
/* countymap-0823: county click-through popup on the procedure-detail map (dark, matches the card) */
#proc-zipmap .leaflet-popup-content-wrapper,#proc-zipmap .leaflet-popup-tip,#dme-zipmap .leaflet-popup-content-wrapper,#dme-zipmap .leaflet-popup-tip{background:var(--bg2);color:var(--text1);box-shadow:0 4px 18px rgba(0,0,0,.55)}
#proc-zipmap .leaflet-popup-content,#dme-zipmap .leaflet-popup-content{margin:10px 12px;font-size:12px;line-height:1.35;min-width:230px}
#proc-zipmap .leaflet-popup-close-button,#dme-zipmap .leaflet-popup-close-button{color:var(--text3)}
.cmap-title{font-weight:700;font-size:13px;margin-bottom:2px;padding-right:14px}
.cmap-sub{color:var(--text3);font-size:11px;margin-bottom:6px}
.cmap-zrow{display:flex;gap:10px;padding:3px 4px;border-radius:4px;cursor:pointer}
.cmap-zrow:hover{background:var(--bg3)}
.cmap-z{font-family:var(--mono);font-weight:600;min-width:46px}
.cmap-zs{flex:1;text-align:right;color:var(--text2)}
.cmap-zp{min-width:58px;text-align:right;color:var(--text3)}
.cmap-more{color:var(--text3);font-size:11px;padding:4px;text-align:center}
/* Leaflet's own CSS exempts overlay SVGs and tile IMGs from page max-width rules, but not
   canvas renderers. Without this, the mobile "#content *{max-width:100%}" rule squashes the
   prospect heatmap's canvas (drawn 3x the viewport width by L.canvas padding). */
.leaflet-pane > canvas{max-width:none!important;max-height:none!important;}
/* Brand wordmark: teal 811 pill, matches marketing .brand .num */
.bnum{font-family:var(--mono);font-weight:600;color:var(--bg1);background:var(--teal);padding:0 5px;border-radius:5px;margin-left:5px;font-size:.8em;letter-spacing:0;transform:translateY(-1px);display:inline-block;}
/* Prospect density heatmap card. Marketing map-card aesthetic */
#prospect-map-card{overflow:hidden;}
.hm-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:11px 16px;border-bottom:var(--border);}
.hm-ttl{font-family:var(--mono);font-size:12px;color:var(--text2);letter-spacing:.08em;text-transform:uppercase;}
.hm-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.hm-toggle{display:inline-flex;border:var(--border);border-radius:var(--radius);overflow:hidden;}
.hm-tg{background:var(--bg2);border:none;border-right:var(--border);color:var(--text2);font-family:var(--mono);font-size:11px;letter-spacing:.02em;padding:5px 11px;cursor:pointer;transition:background .12s,color .12s;}
.hm-tg:last-child{border-right:none;}
.hm-tg:hover{color:var(--text1);background:var(--bg3);}
.hm-tg.active{background:var(--teal);color:var(--bg1);font-weight:600;}
@media(min-width:769px){.hm-tg,#pl-filter-bar .btn{min-height:30px;}}/* uxw44h-0905 C134 (touch-08): desktop floor for the segmented toggles + Prospecting filter buttons; min-width-scoped so the touch-01 phone floor stays 44px */
@media(min-width:769px){#view-pac .back,#view-alf .back,#view-labs .back,#view-dmesup-dir .back,#view-vaawd .back,#view-groups .back,#view-pac .btn,#view-alf .btn,#view-labs .btn,#view-dmesup-dir .btn,#view-vaawd .btn,#view-groups .btn,#view-pac .cm-chip,#view-alf .cm-chip,#view-labs .cm-chip,#view-dmesup-dir .cm-chip,#view-vaawd .cm-chip,#view-groups .cm-chip{min-height:28px;}}/* uxw53h-0905 C154 (touch-15): the six market views absorb the desktop 28px floor (back links, small csv/pagination buttons, the labs fac chips); min-width-scoped so the touch-01 phone floor stays 44px */
#prospect-card.pros-compact .pros-addr,#prospect-card.pros-compact .pros-sub{display:none;}#prospect-card.pros-compact td{padding-top:4px;padding-bottom:4px;}/* prosdense-0812:css */
#prospect-card.pros-onecode thead th:nth-child(10),#prospect-card.pros-onecode tbody td:nth-child(10){display:none;}/* uxw34h-0905 C114 (clutter-06): the Codes column hides when the response matched ONE code (every row would read 1); keyed off the response in runProspect, never the input */
.cmp-dd{display:none;position:absolute;top:100%;left:0;right:0;z-index:400;background:var(--bg2);border:var(--border);border-radius:var(--radius);max-height:280px;overflow-y:auto;box-shadow:0 8px 24px rgba(0,0,0,.5);}
.cmp-it{padding:8px 10px;font-size:12px;cursor:pointer;border-bottom:var(--border);display:flex;gap:8px;align-items:baseline;}
.cmp-it:last-child{border-bottom:none;}
.cmp-it:hover{background:var(--bg3);}
.cmp-input{width:100%;box-sizing:border-box;font-family:var(--mono);font-size:13px;padding:9px 12px;background:var(--bg3);border:var(--border);border-radius:var(--radius);color:var(--text1);outline:none;}
.hm-legend{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10px;color:var(--text3);letter-spacing:.04em;text-transform:uppercase;}
.hm-ramp{width:88px;height:7px;border-radius:4px;background:linear-gradient(90deg,#1E5A8A,#1C8C9C,#2FB89B,#8FD17A,#F2C14E,#FF6B5B);}
.hm-stage{position:relative;height:380px;background:var(--bg1);overflow:hidden;}
.hm-stage svg.swatch{display:block;width:100%;height:100%;}
.hm-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 16px;border-top:var(--border);font-family:var(--mono);font-size:11px;color:var(--text3);}
.hm-cell{transition:opacity .9s ease;}
.hm-loading{position:absolute;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center;background:rgba(11,18,27,0.45);}
.hm-loading::before{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 32%,rgba(233,239,245,0.07) 50%,transparent 68%);background-size:250% 100%;animation:hm-sweep 1.5s linear infinite;}
@keyframes hm-sweep{from{background-position:130% 0}to{background-position:-130% 0}}
.hm-load-txt{position:relative;display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.05em;color:var(--text2);background:var(--bg2);border:var(--border);border-radius:5px;padding:7px 13px;}
.hm-load-dot{width:7px;height:7px;border-radius:50%;background:var(--teal,#2FD6B6);animation:hm-pulse 1.1s ease-in-out infinite;}
@keyframes hm-pulse{0%,100%{opacity:.3;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}
