/* 自动生成 · ../StoreAssets.html 专用
   来源：HomeBrowse.html / ChatMessaging.html / IdentityVerification.html / SafetyReporting.html 的内联 <style>（屏幕组件样式）。
   同名选择器只保留首次出现（HomeBrowse 优先），以免后段 scaffold 规则覆盖前段屏幕专属背景；
   所有 :root 变量声明合并到文件开头。请勿手改——改设计稿后重新生成。 */

:root{ --mm-purple:#6D5BD0; --mm-purple-tint:#EEEBFB; --mm-purple:#6D5BD0; --mm-purple-tint:#EEEBFB; --ink-call:#1B1614; }

/* ══════════════ HomeBrowse.html ══════════════ */

  html,body{margin:0;background:#F0EAE7;}

  .stage{
  min-height:100vh;padding:54px 28px 96px;
  display:flex;flex-direction:column;align-items:center;gap:46px;
  background:
  radial-gradient(1200px 600px at 18% -8%, #FFF0F6 0%, transparent 58%),
  radial-gradient(1000px 700px at 112% 16%, #EBF1FF 0%, transparent 52%),
  #F0EAE7;
  }

  .stage-head{text-align:center;max-width:680px;}

  .stage-head .ey{font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--primary);}

  .stage-head h1{font-size:25px;font-weight:800;letter-spacing:-.02em;margin:9px 0 6px;color:var(--text1);}

  .stage-head p{font-size:14.5px;color:var(--text2);margin:0;line-height:1.55;}

  .grp{width:100%;max-width:1340px;display:flex;flex-direction:column;gap:18px;}

  .grp-lab{display:flex;align-items:center;gap:13px;font-size:13px;font-weight:700;color:var(--text2);
  letter-spacing:.01em;padding-left:2px;}

  .grp-lab .n{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--primary-press);
  background:var(--primary-tint);padding:3px 9px;border-radius:var(--r-pill);}

  .grp-lab::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--border),transparent);}

  .phones{display:flex;gap:52px;flex-wrap:wrap;justify-content:center;align-items:flex-start;}

  .phone-wrap{display:flex;flex-direction:column;align-items:center;gap:15px;}

  .phone-cap{font-size:12.5px;font-weight:600;color:var(--text2);text-align:center;max-width:300px;}

  .phone-cap .id{font-family:var(--font-mono);font-size:11px;color:var(--primary-press);
  background:var(--primary-tint);padding:3px 9px;border-radius:var(--r-pill);margin-right:8px;font-weight:700;}

  /* ===== shared screen scaffold ===== */

  .scr{position:absolute;inset:0;font-family:var(--font-sans);overflow:hidden;display:flex;flex-direction:column;background:var(--bg);}

  .a-cta{height:54px;font-size:17px;}

  /* ===== tab bar (no title bar) — scrollable tabs + single search button ===== */

  .hm-tabbar{flex:none;display:flex;align-items:stretch;padding-top:50px;background:var(--surface);border-bottom:1px solid var(--border);}

  .hm-tabs{flex:1;display:flex;gap:22px;padding:2px 4px 0 18px;overflow-x:auto;scrollbar-width:none;}

  .hm-tabs::-webkit-scrollbar{display:none;}

  .hm-tab{padding:11px 2px 14px;font-size:15.5px;font-weight:700;color:var(--text3);position:relative;cursor:pointer;transition:.16s;white-space:nowrap;flex:none;}

  .hm-tab.on{color:var(--text1);}

  .hm-tab.on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:var(--primary);}

  .hm-searchbtn{flex:none;width:52px;display:flex;align-items:center;justify-content:center;color:var(--text1);cursor:pointer;
  position:relative;}

  .hm-searchbtn::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:1px;background:var(--border);}

  .hm-searchbtn svg{width:23px;height:23px;}

  /* ===== feed ===== */

  .hm-feed{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:16px;background:var(--bg);}

  .hm-feedend{text-align:center;color:var(--text4);font-size:17px;letter-spacing:.35em;padding:4px 0 2px;}

  /* ===== feed card — full-bleed photo + overlay info ===== */

  .hm-card{position:relative;width:100%;flex:none;aspect-ratio:3/4;border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--e2);background:#E8E0DC;}

  .hm-card.vip3{box-shadow:var(--e2),0 0 0 2px var(--champagne-gold);}

  .hm-card.vip5{box-shadow:var(--e2),0 0 0 2px #FF3D8A;}

  .hm-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}

  .hm-cardscrim{position:absolute;left:0;right:0;bottom:0;height:62%;pointer-events:none;
  background:linear-gradient(to top,rgba(36,28,30,.86),rgba(36,28,30,.30) 48%,transparent);}

  .hm-newribbon{position:absolute;top:12px;right:12px;z-index:3;background:var(--primary-press);color:#fff;
  font-size:10.5px;font-weight:800;letter-spacing:.08em;padding:5px 12px;border-radius:var(--r-pill);box-shadow:var(--e-primary);}

  /* top-left badge row: phone → real-name → VIP(women) → online */

  .hm-badgerow{position:absolute;top:12px;left:12px;z-index:3;display:flex;align-items:center;gap:7px;}

  .hm-badgerow .seal.xs,.hm-badgerow .seal.vip.xs{width:26px;height:26px;}

  .hm-badgerow .seal.xs .ico svg{width:14px;height:14px;}

  .hm-badgerow .seal.vip.xs .vipwrap svg{width:15px;height:15px;}

  .hm-coverseal{display:inline-flex;}

  .hm-onlinepill{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 11px;border-radius:var(--r-pill);
  background:rgba(255,255,255,.94);color:var(--success-deep);font-size:11.5px;font-weight:700;box-shadow:var(--e1);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}

  .hm-onlinepill i{width:7px;height:7px;border-radius:50%;background:var(--success);}

  .hm-onlinepill.dark{background:rgba(46,40,38,.42);color:#fff;box-shadow:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}

  /* bottom-left 3-line info */

  .hm-cardinfo{position:absolute;left:16px;right:64px;bottom:16px;z-index:2;color:#fff;}

  .hm-cardnm{display:flex;align-items:baseline;gap:8px;}

  .hm-cardname{font-size:23px;font-weight:800;letter-spacing:-.01em;text-shadow:0 1px 8px rgba(0,0,0,.3);}

  .hm-cardage{font-size:19px;font-weight:500;opacity:.95;}

  .hm-cardsub{font-size:13.5px;font-weight:600;color:rgba(255,255,255,.95);margin-top:5px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 6px rgba(0,0,0,.3);}

  .hm-cardtags{font-size:12.5px;font-weight:500;color:rgba(255,255,255,.82);margin-top:4px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 6px rgba(0,0,0,.3);}

  /* bottom-right like button */

  .hm-cardlike{position:absolute;right:14px;bottom:14px;z-index:3;width:48px;height:48px;border-radius:50%;
  background:rgba(255,255,255,.94);color:var(--primary-press);display:flex;align-items:center;justify-content:center;
  box-shadow:var(--e2);cursor:pointer;transition:.16s;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}

  .hm-cardlike svg{width:25px;height:25px;}

  .hm-cardlike.on{background:var(--primary-press);color:#fff;box-shadow:var(--e-primary);}

  /* toast (P-047) */

  .hm-toastwrap{position:absolute;left:0;right:0;bottom:100px;display:flex;justify-content:center;z-index:40;pointer-events:none;}

  .hm-toastwrap .toast .ic-ok{color:#FF8FB8;display:flex;}

  .hm-toastwrap .toast .ic-ok svg{width:18px;height:18px;}

  /* empty */

  .hm-emptywrap{flex:1;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:20px;}

  /* bottom nav */

  .hm-bottomnav{flex:none;display:flex;background:var(--surface);border-top:1px solid var(--border);padding:8px 0 24px;}

  .hm-bn{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--text3);position:relative;cursor:pointer;}

  .hm-bn svg{width:25px;height:25px;}

  .hm-bn-l{font-size:10.5px;font-weight:600;}

  .hm-bn.on{color:var(--primary-press);}

  .hm-bn-rd{position:absolute;top:-2px;right:50%;margin-right:-16px;width:8px;height:8px;border-radius:50%;background:var(--primary);border:1.5px solid var(--surface);}

  /* ===== P-003a guest bar + P-018a login sheet ===== */

  .hm-tabbar.compact{padding-top:8px;}

  .hm-guestbar{flex:none;display:flex;align-items:center;gap:11px;padding:52px 16px 11px;background:var(--primary-tint);border-bottom:1px solid var(--primary-tint-2);}

  .hm-guestbar .gb-ico{width:30px;height:30px;border-radius:50%;background:var(--surface);color:var(--primary-press);display:flex;align-items:center;justify-content:center;flex:none;box-shadow:var(--e1);}

  .hm-guestbar .gb-ico svg{width:16px;height:16px;}

  .hm-guestbar .gb-tx{flex:1;font-size:13.5px;font-weight:700;color:var(--primary-deep);}

  .hm-guestbar .gb-cta{flex:none;font-size:13px;font-weight:700;color:#fff;background:var(--primary-press);padding:7px 17px;border-radius:var(--r-pill);cursor:pointer;box-shadow:var(--e-primary);}

  .gs-veil{position:absolute;inset:0;background:var(--overlay);z-index:30;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);}

  .gs-sheet{position:absolute;left:0;right:0;bottom:0;z-index:40;background:var(--surface);border-radius:24px 24px 0 0;
  box-shadow:var(--e3);padding:0 26px 32px;display:flex;flex-direction:column;align-items:center;}

  .gs-handle{width:40px;height:5px;border-radius:3px;background:var(--border-2);margin:11px auto 16px;}

  .gs-mark{width:50px;height:50px;}

  .gs-mark img{width:100%;height:100%;display:block;}

  .gs-title{font-size:21px;font-weight:800;letter-spacing:-.01em;color:var(--text1);margin-top:14px;}

  .gs-sub{font-size:13.5px;color:var(--text2);text-align:center;line-height:1.55;margin-top:8px;max-width:300px;text-wrap:pretty;}

  .gs-phone{height:52px;font-size:16px;margin-top:22px;}

  .gs-or{display:flex;align-items:center;gap:14px;width:100%;margin:16px 0;color:var(--text3);font-size:12.5px;font-weight:600;}

  .gs-or::before,.gs-or::after{content:"";flex:1;height:1px;background:var(--border);}

  .gs-oauth{display:flex;gap:13px;justify-content:center;}

  .gs-oauth button{width:58px;height:58px;border-radius:16px;border:1px solid var(--border);background:var(--surface);
  display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--e1);transition:.15s;}

  .gs-oauth button:hover{transform:translateY(-2px);box-shadow:var(--e2);}

  .gs-oauth button svg{width:27px;height:27px;}

  .gs-keep{margin-top:22px;font-size:14.5px;font-weight:600;color:var(--text2);cursor:pointer;}

  /* ===== P-044 detail ===== */

  .hm-detail{display:flex;flex-direction:column;background:var(--bg);}

  .hm-hero{position:relative;flex:none;height:496px;overflow:hidden;
  background:repeating-linear-gradient(135deg,#F0EAE7,#F0EAE7 10px,#E8E0DC 10px,#E8E0DC 20px);}

  .hm-heronote{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-mono);font-size:12px;color:var(--text3);}

  .hm-heroimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}

  .hm-herotop{position:absolute;top:58px;left:14px;right:14px;display:flex;justify-content:space-between;z-index:4;}

  .hm-circbtn{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.9);box-shadow:var(--e1);
  display:flex;align-items:center;justify-content:center;color:var(--text1);cursor:pointer;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}

  .hm-circbtn svg{width:12px;height:19px;}

  .hm-circbtn.dots svg{width:20px;height:6px;}

  .hm-circbtn.ghost{background:var(--bg-sunken);box-shadow:none;}

  .hm-herodots{position:absolute;top:65px;left:50%;transform:translateX(-50%);display:flex;gap:5px;z-index:4;}

  .hm-herodots i{width:22px;height:4px;border-radius:2px;background:rgba(255,255,255,.55);box-shadow:0 1px 2px rgba(46,40,38,.2);}

  .hm-herodots i.on{background:#fff;}

  .hm-heroscrim{position:absolute;left:0;right:0;bottom:0;height:58%;
  background:linear-gradient(to top,rgba(46,40,38,.74),rgba(46,40,38,.12) 56%,transparent);pointer-events:none;}

  .hm-heroinfo{position:absolute;left:20px;right:20px;bottom:30px;z-index:2;color:#fff;}

  .hm-heronm{font-size:28px;font-weight:800;letter-spacing:-.02em;display:flex;align-items:center;gap:9px;}

  .hm-heroage{font-weight:500;font-size:23px;opacity:.95;}

  .hm-heroseal{display:inline-flex;}

  .hm-heroinfo .seal.xs,.hm-heroinfo .seal.vip.xs{width:24px;height:24px;}

  .hm-heroinfo .seal.xs .ico svg{width:13px;height:13px;}

  .hm-heroinfo .seal.vip.xs .vipwrap svg{width:13px;height:13px;}

  .hm-herometa{display:flex;align-items:center;gap:11px;margin-top:9px;font-size:14px;font-weight:600;color:rgba(255,255,255,.94);}

  .hm-detailbody{flex:1;overflow:auto;background:var(--surface);position:relative;z-index:2;
  margin-top:-22px;border-radius:22px 22px 0 0;padding:22px 20px 20px;display:flex;flex-direction:column;gap:22px;}

  .hm-factgrid{display:grid;grid-template-columns:1fr 1fr;gap:11px;}

  .hm-fact{display:flex;align-items:center;gap:10px;font-size:14.5px;font-weight:600;color:var(--text1);}

  .hm-fact .fi{width:34px;height:34px;border-radius:10px;background:var(--primary-tint);color:var(--primary-press);
  display:flex;align-items:center;justify-content:center;flex:none;}

  .hm-fact .fi svg{width:18px;height:18px;}

  .hm-vfrow{display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:700;color:var(--success-deep);
  background:var(--success-tint);padding:11px 14px;border-radius:var(--r-sm);}

  .hm-sec{display:flex;flex-direction:column;gap:11px;}

  .hm-seclab{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text3);}

  .hm-sectxt{font-size:15px;line-height:1.62;color:var(--text2);margin:0;text-wrap:pretty;}

  .hm-chiprow{display:flex;flex-wrap:wrap;gap:9px;}

  .hm-staticchip{cursor:default;}

  .hm-reportrow{display:flex;align-items:center;justify-content:center;gap:10px;font-size:13px;font-weight:600;color:var(--text3);padding:4px 0 2px;}

  .hm-reportrow .dotsep{color:var(--text4);}

  .hm-detailcta{flex:none;padding:12px 20px 26px;background:var(--surface);border-top:1px solid var(--border);
  box-shadow:0 -6px 20px rgba(46,40,38,.05);}

  .hm-detailcta .btn svg{width:19px;height:19px;}

  /* ===== P-044 折叠头图（Collapsing Hero）覆盖 ===== */

  .hm-detailcollapse{display:block;touch-action:none;user-select:none;cursor:grab;}

  .hm-detailcollapse:active{cursor:grabbing;}

  .hm-detailcollapse .hm-hero{position:absolute;top:0;left:0;right:0;height:auto;flex:none;overflow:hidden;z-index:1;}

  .hm-herocrop{position:absolute;inset:0;overflow:hidden;}

  .hm-detailcollapse .hm-heroimg{position:absolute;top:0;left:0;width:100%;height:auto;object-fit:cover;will-change:transform;}

  .hm-detailcollapse .hm-heroscrim{height:88px;
  background:linear-gradient(to top,rgba(0,0,0,.34),rgba(0,0,0,.08) 58%,transparent);}

  .hm-detailcollapse .hm-herodots{top:auto;bottom:15px;}

  .hm-detailcollapse .hm-heroinfo{bottom:36px;}

  .hm-detailcollapse .hm-herotop{z-index:30;}

  .hm-stickynav{position:absolute;top:0;left:0;right:0;z-index:40;}

  .hm-navglass{position:absolute;inset:0;background:rgba(255,255,255,.9);
  backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);
  border-bottom:.5px solid var(--border-2);}

  .hm-stickynav .hm-navrow{position:absolute;left:0;right:0;bottom:0;height:44px;display:flex;
  align-items:center;justify-content:space-between;padding:0 12px;}

  .hm-navbtn{width:42px;height:42px;display:flex;align-items:center;justify-content:center;flex:none;}

  .hm-navbtn svg{height:19px;width:auto;max-width:22px;}

  .hm-navtitle{font-size:17px;font-weight:800;letter-spacing:-.01em;white-space:nowrap;}

  .hm-navtitle b{font-weight:500;opacity:.62;}

  .hm-bodyclip{position:absolute;left:0;right:0;bottom:0;overflow:hidden;z-index:5;}

  .hm-detailcollapse .hm-detailbody{position:static;margin-top:0;border-radius:0;overflow:visible;
  flex:none;padding:20px 20px 132px;}

  .hm-detailcollapse .hm-detailcta{position:absolute;left:0;right:0;bottom:0;z-index:35;padding-bottom:30px;}

  /* P-044 完整资料字段（§3.5.5 分组 key/value + 自我介绍 5 段） */

  .hm-pfgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;}

  .hm-pfrow{display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  padding:9px 0;border-bottom:1px solid var(--border);font-size:14px;}

  .hm-pfk{color:var(--text3);font-weight:500;white-space:nowrap;flex:none;}

  .hm-pfv{color:var(--text1);font-weight:600;text-align:right;text-wrap:pretty;}

  .hm-interestchips{margin-top:11px;}

  .hm-introblk{display:flex;flex-direction:column;gap:4px;}

  .hm-introh{font-size:13px;font-weight:700;color:var(--primary-deep);}

  /* ===== search & filter (merged) ===== */

  .hm-searchbar{flex:none;display:flex;align-items:center;gap:11px;padding:58px 14px 10px;background:var(--surface);border-bottom:1px solid var(--border);}

  .hm-searchfield{flex:1;max-width:none;height:46px;position:relative;}

  .hm-clearx{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;
  background:var(--border-2);color:var(--surface);cursor:pointer;flex:none;}

  .hm-clearx svg{width:11px;height:11px;}

  .hm-cancel{flex:none;font-size:15px;font-weight:600;color:var(--primary-press);cursor:pointer;}

  .hm-searchbody{flex:1;overflow:auto;padding:18px 16px 24px;background:var(--bg);}

  .hm-srow{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px;}

  .hm-srlab{font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--text2);}

  .hm-srclear{font-size:13px;font-weight:600;color:var(--primary-press);cursor:pointer;}

  .hm-chipx{display:inline-flex;margin-left:3px;opacity:.55;}

  .hm-chipx svg{width:12px;height:12px;}

  .hm-staticchip.recent{padding-right:11px;}

  .hm-trend{display:inline-flex;color:var(--primary);}

  .hm-trend svg{width:14px;height:14px;}

  .hm-filterblock{display:flex;flex-direction:column;gap:18px;}

  .hm-resultlist{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-md);overflow:hidden;box-shadow:var(--e1);}

  .hm-resrow{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border);cursor:pointer;}

  .hm-resrow:last-child{border-bottom:none;}

  .hm-resav-img{width:50px;height:50px;border-radius:50%;object-fit:cover;display:block;flex:none;}

  .hm-restx{flex:1;min-width:0;}

  .hm-resnm{font-size:15.5px;font-weight:700;color:var(--text1);display:flex;align-items:center;gap:6px;}

  .hm-resage{font-weight:500;color:var(--text2);}

  .hm-resnm .seal.xs{width:16px;height:16px;}

  .hm-resnm .seal.vip.xs{width:16px;height:16px;}

  .hm-ressub{font-size:13px;color:var(--text3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

  .hm-reschev{flex:none;color:var(--text4);}

  .hm-reschev svg{width:9px;height:15px;}

  .hm-searchcta{flex:none;padding:12px 16px 26px;background:var(--surface);border-top:1px solid var(--border);box-shadow:0 -6px 20px rgba(46,40,38,.05);}

  /* ===== P-045 filter header (纯筛选) ===== */

  .hm-filterbar{flex:none;display:flex;align-items:center;gap:12px;padding:58px 14px 12px;background:var(--surface);border-bottom:1px solid var(--border);}

  .hm-filtertitle{flex:1;font-size:17px;font-weight:800;color:var(--text1);letter-spacing:.01em;}

  /* ===== P-046 filter sheet ===== */

  .hm-dimveil{position:absolute;inset:0;background:var(--overlay);z-index:30;}

  .hm-sheet{position:absolute;left:0;right:0;bottom:0;z-index:40;background:var(--surface);
  border-radius:24px 24px 0 0;box-shadow:var(--e3);display:flex;flex-direction:column;max-height:88%;}

  .hm-handle{width:40px;height:5px;border-radius:3px;background:var(--border-2);margin:10px auto 2px;}

  .hm-sheethead{display:flex;align-items:center;justify-content:space-between;padding:8px 20px 12px;border-bottom:1px solid var(--border);}

  .hm-sheettitle{font-size:18px;font-weight:800;color:var(--text1);}

  .hm-sheetreset{font-size:14px;font-weight:600;color:var(--primary-press);cursor:pointer;}

  .hm-sheetbody{padding:18px 20px 8px;overflow:auto;display:flex;flex-direction:column;gap:22px;}

  .hm-frow{display:flex;flex-direction:column;gap:8px;}

  .hm-flab{display:flex;align-items:center;justify-content:space-between;font-size:14.5px;font-weight:700;color:var(--text1);}

  .hm-flab b{font-family:var(--font-mono);font-size:13.5px;font-weight:700;color:var(--primary-press);}

  .hm-range{position:relative;height:6px;border-radius:999px;background:var(--bg-sunken);margin:8px 12px 4px;}

  .hm-range .fill{position:absolute;top:0;bottom:0;background:var(--primary);border-radius:999px;}

  .hm-range .thumb{position:absolute;top:50%;transform:translate(-50%,-50%);width:24px;height:24px;border-radius:50%;
  background:var(--primary-press);border:3px solid var(--surface);box-shadow:var(--e-primary);}

  .hm-fsel{display:flex;align-items:center;justify-content:space-between;height:50px;padding:0 16px;
  border:1.5px solid var(--border-2);border-radius:var(--r-sm);font-size:14.5px;font-weight:600;color:var(--text1);cursor:pointer;}

  .hm-fsel svg{width:9px;height:15px;color:var(--text3);}

  .hm-fnote{font-size:11.5px;color:var(--text3);margin-top:2px;}

  .hm-prefhead{display:flex;flex-direction:column;gap:3px;}

  .hm-prefttl{font-size:15px;font-weight:800;color:var(--text1);}

  .hm-prefhint{font-size:12px;color:var(--text3);}

  .hm-toggles{display:flex;flex-direction:column;}

  .hm-tgrow{display:flex;align-items:center;justify-content:space-between;height:52px;font-size:15px;font-weight:600;color:var(--text1);
  border-bottom:1px solid var(--border);}

  .hm-sheetcta{flex:none;padding:12px 20px 26px;border-top:1px solid var(--border);}

  /* ===== P-048 · 互喜达成 ===== */

  .m-celebrate{align-items:center;justify-content:space-between;text-align:center;
  background:linear-gradient(168deg,#FF8FB8 0%,#FF3D8A 52%,#E22E76 100%);color:#fff;}

  .m-cel-bg{position:absolute;inset:0;overflow:hidden;z-index:1;pointer-events:none;}

  .m-cel-bg .hh{position:absolute;color:rgba(255,255,255,.16);}

  .m-cel-bg .hh svg{width:100%;height:100%;}

  .m-cel-inner{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;
  z-index:2;padding:0 34px;}

  .m-cel-eyebrow{font-size:12px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;opacity:.92;}

  .m-cel-av{display:flex;justify-content:center;align-items:center;margin:24px 0 28px;}

  .m-cel-av .avatar{border:3px solid rgba(255,255,255,.94);box-shadow:0 8px 22px rgba(46,40,38,.18);}

  .m-cel-heart{width:48px;height:48px;border-radius:50%;background:#fff;color:var(--primary-press);
  display:flex;align-items:center;justify-content:center;z-index:3;margin:0 -11px;box-shadow:var(--e2);}

  .m-cel-heart svg{width:26px;height:26px;}

  .m-cel-h1{font-size:28px;font-weight:800;letter-spacing:-.02em;line-height:1.18;text-wrap:balance;}

  .m-cel-p{font-size:15px;opacity:.93;line-height:1.55;max-width:300px;}

  .m-cel-cta{flex:none;width:100%;padding:0 32px 42px;display:flex;flex-direction:column;gap:13px;z-index:2;}

  .m-cel-cta .btn{background:#fff;color:var(--primary-press);box-shadow:0 8px 22px rgba(46,40,38,.16);}

  .m-cel-cta .btn svg{width:19px;height:19px;}

  .m-cel-skip{text-align:center;font-size:15px;font-weight:600;color:rgba(255,255,255,.92);cursor:pointer;}

  @media(prefers-reduced-motion:no-preference){
  [data-deck-active] .m-cel-av,[data-deck-active] .m-cel-h1{animation:none;}
  }

  /* ===== modal overlays (P-049 / P-049b) ===== */

  .m-modalwrap{position:absolute;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:22px;}

  .m-modal-ic{width:54px;height:54px;border-radius:50%;background:var(--primary-tint);color:var(--primary-press);
  display:flex;align-items:center;justify-content:center;margin:0 auto 14px;}

  .m-modal-ic svg{width:27px;height:27px;}

  .modal .body{text-align:center;}

  /* P-049b: irreversible confirm — stack actions vertically, primary on top */

  .modal .actions.m-actions-v{flex-direction:column;}

  .modal .actions.m-actions-v .btn{width:100%;flex:0 0 auto;height:50px;min-height:50px;}

  /* ===== inbox / list screens (P-049a · 049c · 049d) ===== */

  .m-topbar{flex:none;display:flex;align-items:center;gap:12px;padding:58px 14px 13px;background:var(--surface);border-bottom:1px solid var(--border);}

  .m-topbar .ttl{font-size:18px;font-weight:800;color:var(--text1);}

  .m-screenbody{flex:1;overflow:auto;background:var(--bg);padding:16px;display:flex;flex-direction:column;gap:15px;}

  .m-syslist .li{cursor:pointer;}

  .m-syslist .li.hot{background:var(--primary-tint);}

  .m-syslist .li.hot .hot-last{color:var(--primary-deep);font-weight:600;}

  .m-syslist .li .nm .badge.match{height:20px;font-size:10.5px;padding:0 8px;}

  .m-sysava{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex:none;}

  .m-sysava svg{width:24px;height:24px;}

  .m-sysava.match{background:var(--primary-tint);color:var(--primary-press);}

  .m-sysava.warn{background:var(--gold-tint);color:var(--gold-deep);}

  .m-sysava.sys{background:var(--success-tint);color:var(--success-deep);}

  .m-syslist .li .meta{flex-direction:row;align-items:center;gap:8px;color:var(--text4);}

  .m-syslist .li .meta svg{width:9px;height:15px;}

  .m-foot{font-size:12.5px;color:var(--text3);text-align:center;line-height:1.5;padding:2px 18px;}

  /* P-049c expired */

  .m-expbanner{align-items:flex-start;max-width:none;}

  .m-expbanner svg{margin-top:1px;}

  .m-expsub{font-size:12.5px;font-weight:500;margin-top:4px;line-height:1.5;opacity:.92;}

  .m-exp{color:var(--text3);}

  /* P-049d awaiting (purple pending) */

  .m-privnote{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--text3);
  background:var(--bg-sunken);border-radius:var(--r-sm);padding:11px 13px;line-height:1.45;}

  .m-privnote svg{width:16px;height:16px;flex:none;color:var(--text3);}

  .m-pendbadge{display:inline-flex;align-items:center;height:20px;padding:0 9px;border-radius:var(--r-pill);
  font-size:11px;font-weight:700;background:var(--mm-purple-tint);color:var(--mm-purple);}

  .m-cdpill{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:12px;font-weight:700;
  color:var(--mm-purple);background:var(--mm-purple-tint);padding:5px 9px;border-radius:var(--r-pill);white-space:nowrap;}

  .m-cdpill svg{width:13px;height:13px;}

  @media(max-width:720px){
  .stage-head h1{font-size:21px;}
  .phones{gap:36px;}
  }


/* ══════════════ ChatMessaging.html ══════════════ */

  /* ===== shared scaffold (mirrors Home & Browse) ===== */

  .m-modal-ic.warn{background:var(--danger-tint);color:var(--danger-deep);}

  .modal .actions.m-actions-v .btn.u-danger{background:var(--danger);color:#fff;border:none;box-shadow:none;}

  .modal .actions.m-actions-v .btn.u-danger:hover{background:var(--danger-deep);}

  /* ════════════════ P-050 · chat list ════════════════ */

  .ch-listtop{flex:none;padding:56px 16px 12px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:12px;}

  .ch-listtitle{font-size:26px;font-weight:800;letter-spacing:-.02em;color:var(--text1);}

  .ch-listsearch{max-width:none;height:42px;}

  .ch-listsearch svg{width:18px;height:18px;}

  .ch-conv.pinned{background:var(--bg-sunken);}

  .ch-conv.pinned.mm{background:linear-gradient(90deg,var(--mm-purple-tint),transparent 72%);}

  .ch-conv.pinned + .ch-conv.pinned{border-top:1px solid var(--border);}

  .ch-sysavatar{width:56px;height:56px;border-radius:50%;flex:none;background:linear-gradient(140deg,#7FA8FF,#3D7BFF);color:#fff;display:flex;align-items:center;justify-content:center;}

  .ch-sysavatar svg{width:27px;height:27px;}

  .ch-pinbadge{height:18px;padding:0 7px;border-radius:var(--r-pill);background:var(--border-2);color:var(--text2);font-size:10px;font-weight:700;display:inline-flex;align-items:center;}

  .ch-convos{flex:1;overflow:auto;background:var(--bg);padding:8px 0;}

  .ch-conv{display:flex;align-items:center;gap:13px;padding:13px 16px;cursor:pointer;position:relative;}

  .ch-conv + .ch-conv{border-top:1px solid var(--border);}

  .ch-conv.ismatched{background:linear-gradient(90deg,var(--gold-tint),transparent 70%);}

  .ch-conv.ismatched::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--champagne-gold);}

  .ch-conv.mm{background:linear-gradient(90deg,var(--mm-purple-tint),transparent 72%);border-top:none;}

  .ch-mmavatar{width:56px;height:56px;border-radius:50%;flex:none;background:linear-gradient(140deg,#8E7BE0,#6D5BD0);color:#fff;display:flex;align-items:center;justify-content:center;}

  .ch-mmavatar svg{width:28px;height:28px;}

  .ch-convtx{flex:1;min-width:0;}

  .ch-convnm{font-size:16px;font-weight:700;color:var(--text1);display:flex;align-items:center;gap:8px;}

  .ch-convlast{font-size:13.5px;color:var(--text3);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

  .ch-convmeta{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none;}

  .ch-convtime{font-size:11.5px;color:var(--text3);}

  .ch-unread{min-width:20px;height:20px;padding:0 6px;border-radius:var(--r-pill);background:var(--primary-press);color:#fff;font-size:11.5px;font-weight:700;display:flex;align-items:center;justify-content:center;}

  .ch-mmbadge{height:18px;padding:0 8px;border-radius:var(--r-pill);background:var(--mm-purple);color:#fff;font-size:10.5px;font-weight:700;display:inline-flex;align-items:center;}

  .ch-relbadge{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 8px;border-radius:var(--r-pill);font-size:10.5px;font-weight:700;}

  .ch-relbadge svg{width:11px;height:11px;}

  .ch-relbadge.mutual{background:var(--primary-tint);color:var(--primary-press);}

  .ch-relbadge.mutual svg{width:14px;height:14px;}

  .ch-relbadge.ismatched{background:var(--primary-tint);color:var(--primary-press);}

  .ch-relbadge.wait{background:var(--mm-purple-tint);color:var(--mm-purple);}

  .ch-relbadge.sm{height:19px;}

  /* ════════════════ single chat (P-051 / P-060) ════════════════ */

  .ch-chatscr{background:var(--bg);}

  .ch-head{flex:none;background:var(--surface);border-bottom:1px solid var(--border);}

  .ch-headrow{display:flex;align-items:center;gap:11px;padding:52px 14px 12px;}

  .ch-headinfo{flex:1;min-width:0;}

  .ch-headname{font-size:16.5px;font-weight:800;color:var(--text1);display:flex;align-items:center;gap:7px;white-space:nowrap;}

  .ch-headsub{font-size:12px;color:var(--text3);margin-top:2px;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;}

  .ch-matchpill{display:inline-flex;align-items:center;gap:4px;height:18px;padding:0 8px;border-radius:var(--r-pill);background:var(--primary-tint);color:var(--primary-press);font-size:10.5px;font-weight:700;}

  .ch-matchpill svg{width:11px;height:11px;}

  .ch-onl{display:inline-flex;align-items:center;gap:5px;color:var(--success-deep);font-weight:600;}

  .ch-onl i{width:7px;height:7px;border-radius:50%;background:var(--success);}

  .ch-headacts{display:flex;align-items:center;gap:4px;}

  .ch-iconbtn{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text1);cursor:pointer;}

  .ch-iconbtn:hover{background:var(--bg-sunken);}

  .ch-iconbtn svg{width:22px;height:22px;}

  .ch-iconbtn [stroke]{stroke-width:2;}

  .ch-stream{flex:1;overflow:auto;padding:16px 14px 12px;display:flex;flex-direction:column;gap:4px;}

  .ch-stream.dim{filter:blur(1px);opacity:.7;}

  .ch-daysep{align-self:center;font-size:11.5px;font-weight:600;color:var(--text3);background:var(--bg-sunken);padding:4px 12px;border-radius:var(--r-pill);margin-bottom:8px;}

  .ch-row{display:flex;flex-direction:column;max-width:80%;margin-bottom:8px;}

  .ch-row.them{align-self:flex-start;align-items:flex-start;}

  .ch-row.me{align-self:flex-end;align-items:flex-end;}

  .ch-bubble{padding:10px 14px;border-radius:20px;font-size:15px;line-height:1.5;position:relative;word-break:break-word;}

  .ch-bubble.them{background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:6px;color:var(--text1);box-shadow:var(--e1);}

  .ch-bubble.me{background:var(--primary-press);color:#fff;border-bottom-right-radius:6px;box-shadow:var(--e-primary);}

  .ch-bubble.hi{box-shadow:0 0 0 3px var(--primary-tint-2),var(--e2);z-index:36;}

  .ch-bubble.them.orig{border-bottom-left-radius:20px;}

  .ch-transbub{margin-top:4px;}

  .ch-transby{display:flex;align-items:center;gap:5px;margin-top:6px;font-size:11.5px;line-height:1.3;color:var(--text3);}

  .ch-transby svg{width:13px;height:13px;flex:none;opacity:.85;}

  .ch-time{font-size:10.5px;color:var(--text4);margin:3px 4px 0;}

  .ch-imgmsg{width:150px;height:190px;border-radius:14px;overflow:hidden;background:
  repeating-linear-gradient(135deg,#E8C8D6,#E8C8D6 10px,#F0D6E0 10px,#F0D6E0 20px);display:flex;align-items:center;justify-content:center;margin:-2px 0;}

  .ch-imgnote{font-family:var(--font-mono);font-size:11px;color:#B0859A;}

  .ch-tznote{align-self:center;display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text3);background:var(--primary-tint);padding:6px 13px;border-radius:var(--r-pill);margin-top:6px;}

  .ch-tznote svg{width:13px;height:13px;color:var(--primary);}

  .ch-composer{flex:none;display:flex;align-items:center;gap:9px;padding:10px 12px 26px;background:var(--surface);border-top:1px solid var(--border);}

  .ch-composer.attached{padding-bottom:12px;}

  .ch-plus{width:38px;height:38px;border-radius:50%;background:var(--bg-sunken);color:var(--primary-press);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none;}

  .ch-plus svg{width:22px;height:22px;}

  .ch-plus.off{color:var(--text4);}

  .ch-inputwrap{flex:1;display:flex;align-items:center;gap:8px;height:44px;padding:0 8px 0 16px;background:var(--bg-sunken);border-radius:var(--r-pill);}

  .ch-input{flex:1;border:none;background:none;font-family:inherit;font-size:15px;color:var(--text1);min-width:0;}

  .ch-input:focus{outline:none;}

  .ch-input::placeholder{color:var(--text3);}

  .ch-translate{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text2);flex:none;cursor:pointer;}

  .ch-translate svg{width:20px;height:20px;}

  .ch-send{width:44px;height:44px;border-radius:50%;background:var(--primary-press);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none;box-shadow:var(--e-primary);}

  .ch-send svg{width:20px;height:20px;margin-left:-1px;}

  .ch-lockhint{position:absolute;left:0;right:0;bottom:84px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:11.5px;color:var(--text3);
  background:var(--bg-sunken);padding:8px 14px;margin:0 14px;border-radius:var(--r-pill);}

  .ch-lockhint svg{width:14px;height:14px;}

  .ch-plusmenu{flex:none;display:grid;grid-template-columns:repeat(4,1fr);gap:16px 4px;padding:18px 14px 26px;background:var(--bg-sunken);border-top:1px solid var(--border);}

  .ch-pmitem{display:flex;flex-direction:column;align-items:center;gap:9px;cursor:pointer;}

  .ch-pmcard{position:relative;width:64px;height:64px;border-radius:18px;background:var(--surface);display:flex;align-items:center;justify-content:center;color:#56514E;box-shadow:0 1px 3px rgba(46,40,38,.06);}

  .ch-pmcard svg{width:30px;height:30px;}

  .ch-pmcard [stroke]{stroke-width:1.8;}

  .ch-pmlabel{font-size:11px;color:var(--text3);}

  .ch-pmitem.off .ch-pmcard{opacity:.4;color:var(--text4);}

  .ch-pmitem.off .ch-pmlabel{opacity:.5;}

  .ch-pmlock{position:absolute;right:-4px;bottom:-4px;width:19px;height:19px;border-radius:50%;background:var(--text3);color:#fff;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg-sunken);opacity:1;}

  .ch-pmlock svg{width:10px;height:10px;}

  .ch-pmlock [stroke]{stroke-width:2.4;}

  /* ════════════════ P-052 icebreaker ════════════════ */

  .ch-icebody{flex:1;overflow:auto;padding:24px 22px;display:flex;flex-direction:column;}

  .ch-iceeyebrow{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--primary);}

  .ch-icetitle{font-size:25px;font-weight:800;letter-spacing:-.02em;color:var(--text1);margin:8px 0 8px;}

  .ch-icesub{font-size:14.5px;color:var(--text2);line-height:1.55;margin-bottom:20px;}

  .ch-icefield{background:var(--surface);border:1.5px solid var(--border-2);border-radius:var(--r-md);padding:14px;box-shadow:var(--e1);}

  .ch-icearea{width:100%;border:none;background:none;font-family:inherit;font-size:16px;line-height:1.6;color:var(--text1);resize:none;min-height:120px;}

  .ch-icearea:focus{outline:none;}

  .ch-icearea::placeholder{color:var(--text3);}

  .ch-icefoot{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-top:12px;border-top:1px solid var(--border);}

  .ch-freechip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:var(--r-pill);background:var(--success-tint);color:var(--success-deep);font-size:12.5px;font-weight:700;}

  .ch-freechip svg{width:13px;height:13px;}

  .ch-icecount{font-family:var(--font-mono);font-size:12px;color:var(--text3);}

  .ch-iceone{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text3);margin-top:16px;}

  .ch-iceone svg{width:15px;height:15px;}

  .ch-icecta{flex:none;padding:12px 22px 30px;background:var(--surface);border-top:1px solid var(--border);}

  .ch-icecta .btn svg{width:19px;height:19px;}

  /* ════════════════ P-053 quota sheet ════════════════ */

  .ch-dimveil{position:absolute;inset:0;background:var(--overlay);z-index:30;}

  .ch-quotasheet{position:absolute;left:0;right:0;bottom:0;z-index:40;background:var(--surface);border-radius:24px 24px 0 0;box-shadow:var(--e3);
  padding:10px 22px 30px;display:flex;flex-direction:column;align-items:center;text-align:center;}

  .ch-qhandle{width:40px;height:5px;border-radius:3px;background:var(--border-2);margin-bottom:16px;}

  .ch-qico{width:56px;height:56px;border-radius:50%;background:var(--primary-tint);color:var(--primary-press);display:flex;align-items:center;justify-content:center;margin-bottom:14px;}

  .ch-qico svg{width:28px;height:28px;}

  .ch-qtitle{font-size:19px;font-weight:800;color:var(--text1);}

  .ch-qbody{font-size:14px;color:var(--text2);line-height:1.55;margin:8px 0 16px;}

  .ch-qbalance{width:100%;display:flex;align-items:center;justify-content:space-between;background:var(--bg-sunken);border-radius:var(--r-sm);padding:12px 16px;font-size:14px;color:var(--text2);margin-bottom:16px;}

  .ch-qbalance b{display:inline-flex;align-items:center;gap:6px;color:var(--primary-press);font-family:var(--font-mono);font-weight:700;}

  .ch-qbalance b svg{width:16px;height:16px;}

  .ch-quotasheet .btn{width:100%;}

  .ch-quotasheet .btn + .btn{margin-top:10px;}

  .ch-insbal{display:flex;align-items:center;justify-content:space-between;background:var(--bg-sunken);border-radius:var(--r-sm);padding:11px 14px;font-size:13.5px;color:var(--text2);margin-top:14px;}

  .ch-insbal b{display:inline-flex;align-items:center;gap:6px;color:var(--danger-deep);font-family:var(--font-mono);font-weight:700;}

  .ch-insbal b svg{width:15px;height:15px;}

  /* ════════════════ P-055 long-press menu ════════════════ */

  .ch-pressveil{position:absolute;inset:0;background:rgba(46,40,38,.55);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:34;}

  .ch-actionmenu{position:relative;z-index:38;background:var(--surface);border-radius:var(--r-md);box-shadow:var(--e3);overflow:hidden;min-width:184px;}

  .ch-pressraise{position:relative;z-index:36;display:flex;flex-direction:column;align-items:flex-end;gap:8px;}

  .ch-pressraise .ch-row{margin-bottom:0;}

  .ch-pressraise .ch-bubble.me{box-shadow:0 10px 26px rgba(46,40,38,.3);}

  .ch-actitem{display:flex;align-items:center;gap:12px;padding:13px 18px;font-size:15px;font-weight:600;color:var(--text1);cursor:pointer;border-bottom:1px solid var(--border);}

  .ch-actitem:last-child{border-bottom:none;}

  .ch-actitem:hover{background:var(--bg-sunken);}

  .ch-actitem svg{width:19px;height:19px;color:var(--text2);}

  .ch-actitem.danger{color:var(--danger-deep);}

  .ch-actitem.danger svg{color:var(--danger);}

  /* ════════════════ P-056 translation callout ════════════════ */

  .ch-transcallout{align-self:flex-start;display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--primary-press);background:var(--primary-tint);padding:5px 11px;border-radius:var(--r-pill);margin:2px 0 8px;}

  .ch-tcdot{width:6px;height:6px;border-radius:50%;background:var(--primary);}

  /* ════════════════ P-057/058 system notes ════════════════ */

  .ch-sysnote{align-self:center;display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text3);font-style:italic;margin:10px 0;max-width:84%;text-align:center;}

  .ch-sysnote svg{width:14px;height:14px;flex:none;}

  .ch-sysnote.violation{font-style:normal;align-items:flex-start;gap:9px;background:var(--danger-tint);color:var(--danger-deep);padding:11px 14px;border-radius:var(--r-sm);line-height:1.45;text-align:left;}

  .ch-vico{width:18px;height:18px;border-radius:50%;background:var(--danger);color:#fff;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;flex:none;}

  .ch-vwhy{font-size:11.5px;opacity:.8;margin-top:3px;}

  /* ════════════════ P-059 matched! ════════════════ */

  .call-matched{align-items:center;justify-content:space-between;text-align:center;
  background:linear-gradient(168deg,#FF8FB8 0%,#FF3D8A 44%,#F0C766 100%);color:#fff;}

  .call-m-bg{position:absolute;inset:0;overflow:hidden;z-index:1;pointer-events:none;}

  .call-m-spk{position:absolute;color:rgba(255,255,255,.20);}

  .call-m-spk svg{width:100%;height:100%;}

  .call-m-inner{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;z-index:2;padding:0 32px;}

  .call-m-eyebrow{font-size:12px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;opacity:.92;}

  .call-m-avs{position:relative;display:flex;justify-content:center;align-items:center;gap:16px;margin:22px 0 26px;}

  .call-m-av .avatar{border:4px solid rgba(255,255,255,.95);box-shadow:0 10px 26px rgba(46,40,38,.22);}

  .call-m-heart{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;background:#fff;color:var(--primary-press);display:flex;align-items:center;justify-content:center;z-index:3;box-shadow:var(--e2);}

  .call-m-heart svg{width:30px;height:30px;}

  .call-m-title{font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1.16;white-space:pre-line;margin:0;text-shadow:0 2px 12px rgba(46,40,38,.16);}

  .call-m-sub{font-size:15px;opacity:.95;line-height:1.55;max-width:300px;margin:10px 0 0;}

  .call-m-cta{flex:none;width:100%;padding:0 32px 42px;display:flex;flex-direction:column;gap:13px;z-index:2;}

  .call-m-cta .btn{background:#fff;color:var(--primary-press);box-shadow:0 10px 26px rgba(46,40,38,.20);}

  .call-m-cta .btn svg{width:19px;height:19px;}

  .call-m-later{font-size:15px;font-weight:600;color:rgba(255,255,255,.92);cursor:pointer;}

  /* ════════════════ P-062 voice call ════════════════ */

  .call-voice{background:var(--ink-call);justify-content:space-between;}

  .call-voice-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.5) saturate(1.05);transform:scale(1.06);}

  .call-voice-bg.dim{filter:brightness(.32) saturate(.9) blur(3px);}

  .call-voice-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(27,22,20,.55),rgba(27,22,20,.2) 40%,rgba(27,22,20,.85));}

  .call-voice-top{position:relative;z-index:2;text-align:center;color:#fff;padding-top:90px;}

  .call-voice-status{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:rgba(255,255,255,.85);background:rgba(255,255,255,.14);padding:6px 14px;border-radius:var(--r-pill);backdrop-filter:blur(8px);}

  .call-dot{width:7px;height:7px;border-radius:50%;background:#5FE0A6;}

  .call-voice-name{font-size:34px;font-weight:800;letter-spacing:-.02em;margin-top:18px;}

  .call-voice-timer{font-family:var(--font-mono);font-size:18px;font-weight:600;color:rgba(255,255,255,.85);margin-top:8px;}

  .call-voice-tz{font-size:13px;color:rgba(255,255,255,.6);margin-top:6px;}

  .call-voice-ctr{position:relative;z-index:2;display:flex;justify-content:center;gap:30px;padding:0 30px 56px;}

  .call-ctrl{display:flex;flex-direction:column;align-items:center;gap:10px;}

  .call-ctrlbtn{width:66px;height:66px;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}

  .call-ctrlbtn svg{width:27px;height:27px;}

  .call-ctrlbtn.on{background:#fff;color:var(--ink-call);}

  .call-ctrlbtn.end{background:var(--danger);}

  .call-ctrllab{font-size:12.5px;font-weight:600;color:rgba(255,255,255,.82);}

  /* ════════════════ P-063 video call ════════════════ */

  .call-video{background:var(--ink-call);justify-content:space-between;}

  .call-video-feed{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

  .call-video-topscrim{position:absolute;left:0;right:0;top:0;height:200px;background:linear-gradient(180deg,rgba(27,22,20,.7),transparent);}

  .call-video-top{position:relative;z-index:2;display:flex;align-items:baseline;justify-content:space-between;padding:56px 20px 0;color:#fff;}

  .call-video-name{font-size:21px;font-weight:800;letter-spacing:-.01em;}

  .call-video-timer{font-family:var(--font-mono);font-size:15px;font-weight:600;color:rgba(255,255,255,.85);}

  .call-pip{position:absolute;top:104px;right:16px;z-index:3;width:104px;height:148px;border-radius:18px;overflow:hidden;border:2px solid rgba(255,255,255,.5);box-shadow:var(--e3);}

  .call-pip img{width:100%;height:100%;object-fit:cover;}

  .call-pip-lab{position:absolute;left:7px;bottom:6px;font-size:10px;font-weight:700;color:#fff;background:rgba(27,22,20,.5);padding:2px 7px;border-radius:var(--r-pill);}

  .call-video-bottom{position:relative;z-index:2;padding:0 20px 44px;display:flex;flex-direction:column;align-items:center;gap:18px;}

  .call-video-tz{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:#fff;background:rgba(27,22,20,.42);padding:7px 14px;border-radius:var(--r-pill);backdrop-filter:blur(8px);}

  .call-video-tz svg{width:14px;height:14px;}

  .call-video-ctr{display:flex;gap:22px;}

  .call-vbtn{width:60px;height:60px;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}

  .call-vbtn svg{width:25px;height:25px;}

  .call-vbtn.end{background:var(--danger);}

  /* ════════════════ 通话页深色遮罩 ════════════════ */


  .call-ended-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(27,22,20,.7),rgba(27,22,20,.92));}











  /* ════════════════ P-071 · system message stream ════════════════ */

  .ch-sysstream{flex:1;overflow:auto;background:var(--bg);padding:16px 14px 24px;display:flex;flex-direction:column;gap:20px;}

  .ch-sysgroup{display:flex;flex-direction:column;gap:10px;}

  .ch-sysdaylab{align-self:center;font-size:11.5px;font-weight:600;color:var(--text3);background:var(--bg-sunken);padding:4px 12px;border-radius:var(--r-pill);}

  .ch-syscard{display:flex;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:13px 14px;box-shadow:var(--e1);}

  .ch-syscard.urgent{border-color:var(--mm-purple);box-shadow:0 0 0 2px var(--mm-purple-tint),var(--e1);}

  .ch-sysic{width:38px;height:38px;border-radius:11px;flex:none;display:flex;align-items:center;justify-content:center;color:#fff;}

  .ch-sysic svg{width:20px;height:20px;}

  .ch-sysic.match{background:linear-gradient(140deg,#FF8FB8,#FF3D8A);}

  .ch-sysic.invite{background:linear-gradient(140deg,#8E7BE0,#6D5BD0);}

  .ch-sysic.vip{background:linear-gradient(140deg,#E8C766,#C9A227);}

  .ch-sysic.verify{background:linear-gradient(140deg,#5FD39A,#1F9E63);}

  .ch-sysic.warn{background:var(--danger);}

  .ch-sysic.act{background:linear-gradient(140deg,#7FA8FF,#3D7BFF);}

  .ch-systx{flex:1;min-width:0;}

  .ch-systop{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}

  .ch-systitle{font-size:14.5px;font-weight:700;color:var(--text1);}

  .ch-systime{font-size:11px;color:var(--text3);flex:none;}

  .ch-sysbody{font-size:13px;color:var(--text2);line-height:1.5;margin-top:4px;}

  .ch-sysurgent{display:inline-flex;align-items:center;gap:6px;margin-top:10px;font-size:11.5px;font-weight:700;color:var(--mm-purple);background:var(--mm-purple-tint);padding:5px 11px;border-radius:var(--r-pill);}

  .ch-sysurgent svg{width:13px;height:13px;}

  .ch-syscta{display:inline-flex;align-items:center;gap:3px;margin-top:11px;font-size:12.5px;font-weight:700;color:var(--primary-press);cursor:pointer;}

  .ch-syscta svg{width:14px;height:14px;}

  /* ════════════════ P-072 · advisor chat ════════════════ */

  .ch-mmnote{flex:none;display:flex;align-items:center;gap:8px;font-size:11.5px;font-weight:600;color:var(--mm-purple);background:var(--mm-purple-tint);padding:9px 16px;line-height:1.4;}

  .ch-mmnote svg{width:15px;height:15px;flex:none;}

  .ch-mmsender{align-self:flex-start;display:inline-flex;align-items:center;gap:7px;margin:0 0 4px 2px;font-size:11.5px;font-weight:700;color:var(--text2);}

  .ch-mmsender .ch-mmbadge{height:17px;}

  .ch-bubble.mm{background:var(--mm-purple-tint);border:1px solid #DAD2F5;border-bottom-left-radius:6px;color:var(--text1);box-shadow:var(--e1);}

  .ch-mmrec{width:230px;background:var(--surface);border:1px solid var(--border);border-radius:18px;overflow:hidden;box-shadow:var(--e2);}

  .ch-mmrec-top{display:flex;gap:11px;align-items:center;padding:12px 12px 10px;}

  .ch-mmrec-tx{flex:1;min-width:0;}

  .ch-mmrec-nm{font-size:14.5px;font-weight:800;color:var(--text1);}

  .ch-mmrec-meta{font-size:12px;color:var(--text3);margin-top:2px;}

  .ch-mmrec-line{font-size:12.5px;color:var(--text2);line-height:1.45;padding:0 12px 12px;}

  .ch-mmrec-cta{display:flex;align-items:center;justify-content:center;gap:4px;padding:11px;border-top:1px solid var(--border);font-size:13px;font-weight:700;color:var(--primary-press);cursor:pointer;}

  .ch-mmrec-cta svg{width:14px;height:14px;}


/* ══════════════ IdentityVerification.html ══════════════ */

  /* ===== shared screen scaffold ===== */

  .kyc-nav{flex:none;display:flex;align-items:center;gap:10px;padding:58px 14px 12px;background:var(--surface);border-bottom:1px solid var(--border);}

  .kyc-back{width:42px;height:42px;border-radius:50%;background:var(--bg-sunken);display:flex;align-items:center;justify-content:center;color:var(--text1);cursor:pointer;flex:none;}

  .kyc-back svg{width:20px;height:20px;}

  .kyc-navttl{flex:1;text-align:center;font-size:17px;font-weight:800;color:var(--text1);}

  .kyc-regionchip{width:42px;text-align:center;font-size:20px;flex:none;}

  .kyc-scroll{flex:1;overflow:auto;padding:22px 24px 28px;display:flex;flex-direction:column;}

  .kyc-scroll.center{align-items:center;text-align:center;}

  .kyc-scroll.mid{justify-content:center;}

  .kyc-grow{flex:1;min-height:16px;}

  .kyc-eyebrow{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--primary);margin-bottom:6px;}

  .kyc-h1{font-size:24px;font-weight:800;letter-spacing:-.02em;color:var(--text1);margin:0 0 8px;line-height:1.18;text-wrap:balance;}

  .kyc-h1.ctr{text-align:center;}

  .kyc-sub{font-size:14px;color:var(--text2);margin:0 0 22px;line-height:1.55;text-wrap:pretty;}

  .kyc-sub.ctr{text-align:center;max-width:300px;margin-left:auto;margin-right:auto;}

  .kyc-cta{height:54px;flex:none;font-size:17px;margin-top:6px;}

  .kyc-cta2{height:48px;flex:none;font-size:16px;margin-top:10px;}

  /* 大封缄印章（扇贝 · 实名认证品红） */

  .kyc-bigseal{width:96px;height:96px;flex:none;margin:6px 0 18px;position:relative;clip-path:url(#sealClip);-webkit-clip-path:url(#sealClip);
  background:linear-gradient(150deg,#FF8FB8,#FF3D8A 55%,#E22E76);display:flex;align-items:center;justify-content:center;
  filter:drop-shadow(0 8px 20px rgba(255,61,138,.32));}

  .kyc-bigseal .kyc-sealface{width:88%;height:88%;clip-path:url(#sealClip);-webkit-clip-path:url(#sealClip);
  display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(255,255,255,.18);}

  .kyc-bigseal .kyc-sealface svg{width:42px;height:42px;}

  .kyc-scroll.center .kyc-bigseal{margin-left:auto;margin-right:auto;}

  /* 区域卡 */

  .kyc-regions{display:flex;flex-direction:column;gap:11px;margin:14px 0 14px;}

  .kyc-region{border:1.5px solid var(--border);border-radius:var(--r-md);padding:14px 15px;background:var(--surface);}

  .kyc-region.on{border-color:var(--primary);background:var(--primary-tint);box-shadow:0 0 0 3px var(--primary-tint-2);}

  .kyc-regionhd{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:800;color:var(--text1);}

  .kyc-regionhd .flag{font-size:17px;}

  .kyc-regiontag{margin-left:auto;width:22px;height:22px;border-radius:50%;background:var(--primary-press);color:#fff;display:flex;align-items:center;justify-content:center;}

  .kyc-regiontag svg{width:13px;height:13px;}

  .kyc-regiontx{font-size:12.5px;color:var(--text2);line-height:1.5;margin-top:6px;}

  .kyc-autonote{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:var(--text3);line-height:1.5;}

  .kyc-autonote svg{width:15px;height:15px;flex:none;margin-top:1px;}

  /* 证件类型 */

  .kyc-doctypes{display:flex;flex-direction:column;gap:11px;}

  .kyc-doctype{display:flex;align-items:center;gap:13px;border:1.5px solid var(--border);border-radius:var(--r-md);padding:15px;background:var(--surface);cursor:pointer;transition:.15s;}

  .kyc-doctype.on{border-color:var(--primary);background:var(--primary-tint);}

  .kyc-docic{width:44px;height:44px;border-radius:12px;background:var(--bg-sunken);color:var(--text1);display:flex;align-items:center;justify-content:center;flex:none;}

  .kyc-doctype.on .kyc-docic{background:var(--surface);color:var(--primary-press);}

  .kyc-docic svg{width:24px;height:24px;}

  .kyc-doctx{flex:1;}

  .kyc-doct{font-size:15.5px;font-weight:700;color:var(--text1);}

  .kyc-docs{font-size:12.5px;color:var(--text3);margin-top:2px;}

  .kyc-docradio{width:24px;height:24px;border-radius:50%;border:2px solid var(--border-2);flex:none;display:flex;align-items:center;justify-content:center;color:#fff;}

  .kyc-docradio.on{background:var(--primary-press);border-color:var(--primary-press);}

  .kyc-docradio svg{width:13px;height:13px;}

  /* 输入（国内） */

  .kyc-flab{font-size:13px;font-weight:700;color:var(--text2);margin:14px 0 7px;}

  .kyc-in{height:52px;}

  .kyc-in.mono{font-family:var(--font-mono);letter-spacing:1px;}

  .kyc-idwrap{position:relative;}

  .kyc-idok{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:50%;background:var(--success);color:#fff;display:flex;align-items:center;justify-content:center;}

  .kyc-idok svg{width:13px;height:13px;}

  .kyc-okline{font-size:12.5px;font-weight:600;color:var(--success-deep);margin-top:7px;}

  /* 证件取景（海外） */

  .kyc-docframe{position:relative;aspect-ratio:1.58/1;flex:none;border-radius:var(--r-md);margin-top:4px;
  background:repeating-linear-gradient(135deg,var(--bg-sunken),var(--bg-sunken) 9px,#E8E0DC 9px,#E8E0DC 18px);
  display:flex;align-items:center;justify-content:center;overflow:hidden;}

  .kyc-docstripe{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text3);font-family:var(--font-mono);font-size:11.5px;}

  .kyc-docstripe svg{width:34px;height:34px;}

  .kyc-corner{position:absolute;width:24px;height:24px;border:3px solid var(--primary);}

  .kyc-corner.tl{top:12px;left:12px;border-right:none;border-bottom:none;border-radius:6px 0 0 0;}

  .kyc-corner.tr{top:12px;right:12px;border-left:none;border-bottom:none;border-radius:0 6px 0 0;}

  .kyc-corner.bl{bottom:12px;left:12px;border-right:none;border-top:none;border-radius:0 0 0 6px;}

  .kyc-corner.br{bottom:12px;right:12px;border-left:none;border-top:none;border-radius:0 0 6px 0;}

  .kyc-framehint{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--text3);margin-top:12px;}

  .kyc-framehint svg{width:16px;height:16px;}

  /* OCR */

  .kyc-ocr{margin-top:22px;}

  .kyc-ocrhd{font-size:15px;font-weight:800;color:var(--text1);}

  .kyc-ocrsub{font-size:12.5px;color:var(--text3);margin:4px 0 12px;}

  .kyc-ocrlist{border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;background:var(--surface);box-shadow:var(--e1);}

  .kyc-ocrrow{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;border-bottom:1px solid var(--border);}

  .kyc-ocrrow:last-child{border-bottom:none;}

  .kyc-ocrk{font-size:13.5px;color:var(--text3);font-weight:600;}

  .kyc-ocrv{font-size:14.5px;font-weight:700;color:var(--text1);font-family:var(--font-mono);}

  /* 人脸取景 */

  .kyc-facewrap{position:relative;width:208px;height:208px;flex:none;margin:10px auto 24px;display:flex;align-items:center;justify-content:center;}

  .kyc-facering{position:absolute;inset:0;border-radius:50%;border:4px dashed var(--primary);opacity:.45;}

  .kyc-facewrap::after{content:"";position:absolute;inset:8px;border-radius:50%;border:3px solid var(--primary);
  border-right-color:transparent;border-bottom-color:transparent;transform:rotate(-45deg);}

  .kyc-faceico{width:120px;height:120px;flex:none;border-radius:50%;background:var(--primary-tint);color:var(--primary-press);display:flex;align-items:center;justify-content:center;}

  .kyc-faceico svg{width:58px;height:58px;}

  .kyc-actions{display:flex;flex-direction:column;gap:9px;width:100%;max-width:280px;margin:0 auto;}

  .kyc-action{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--text3);border:1.5px solid var(--border);border-radius:var(--r-pill);padding:9px 15px;}

  .kyc-action.on{color:var(--success-deep);border-color:var(--success);background:var(--success-tint);}

  .kyc-actnum{width:22px;height:22px;border-radius:50%;background:var(--bg-sunken);color:var(--text3);font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none;}

  .kyc-action.on .kyc-actnum{background:var(--success);color:#fff;}

  .kyc-actnum svg{width:12px;height:12px;}

  /* 审核中 */

  .kyc-spin{width:54px;height:54px;flex:none;border-radius:50%;border:4px solid var(--primary-tint-2);border-top-color:var(--primary-press);animation:kycspin .8s linear infinite;margin:0 auto 22px;}

  @keyframes kycspin{to{transform:rotate(360deg);}}

  .kyc-revbar{width:100%;max-width:260px;height:6px;border-radius:999px;background:var(--bg-sunken);margin:18px auto 16px;overflow:hidden;}

  .kyc-revbar span{display:block;height:100%;width:62%;border-radius:999px;background:var(--primary);}

  .kyc-revstep{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--text2);}

  .kyc-revstep svg{width:16px;height:16px;color:var(--primary-press);}

  .kyc-revwait{font-size:12px;color:var(--text3);margin-top:10px;}

  /* 结果页 */

  .kyc-result .kyc-scroll{padding-top:24px;}

  .kyc-okbadge{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 13px;border-radius:var(--r-pill);background:var(--primary-tint);color:var(--primary-press);font-size:12.5px;font-weight:800;margin-bottom:14px;}

  .kyc-okbadge svg{width:15px;height:15px;}

  .kyc-failic{width:84px;height:84px;flex:none;border-radius:50%;background:var(--danger-tint);color:var(--danger);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;}

  .kyc-failic svg{width:40px;height:40px;}

  .kyc-reasons{width:100%;display:flex;flex-direction:column;gap:1px;background:var(--border);border-radius:var(--r-md);overflow:hidden;border:1px solid var(--border);margin-top:6px;}

  .kyc-reason{display:flex;align-items:center;gap:10px;background:var(--surface);padding:13px 15px;font-size:13.5px;color:var(--text2);text-align:left;}

  .kyc-rdot{width:7px;height:7px;border-radius:50%;background:var(--danger);flex:none;}


/* ══════════════ SafetyReporting.html ══════════════ */

  /* ===== shared screen scaffold ===== */

  .sf-scr{position:absolute;inset:0;font-family:var(--font-sans);overflow:hidden;display:flex;flex-direction:column;background:var(--bg);}

  .sf-topbar{flex:none;padding:60px 16px 8px;display:flex;align-items:center;gap:6px;}

  .sf-back{width:42px;height:42px;border-radius:50%;background:var(--surface);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text1);box-shadow:var(--e1);cursor:pointer;flex:none;}

  .sf-back svg{width:12px;height:18px;}

  .sf-toptitle{flex:1;text-align:center;font-size:18px;font-weight:800;color:var(--text1);}

  .sf-body{flex:1;overflow:auto;padding:8px 18px 26px;display:flex;flex-direction:column;gap:18px;}

  .sf-body::-webkit-scrollbar{display:none;}

  .sf-body > *{flex-shrink:0;}

  /* report target chip */

  .sf-targ{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--e1);padding:11px 14px;}

  .sf-targtx{flex:1;min-width:0;}

  .sf-targnm{font-size:15.5px;font-weight:700;color:var(--text1);}

  .sf-targmeta{font-size:12.5px;color:var(--text3);margin-top:2px;}

  /* section ===== */

  .sf-sec{display:flex;flex-direction:column;gap:11px;}

  .sf-seclab{font-size:13px;font-weight:700;color:var(--text2);letter-spacing:.01em;padding:0 2px;display:flex;align-items:center;gap:7px;}

  .sf-req{color:var(--danger);font-weight:800;}

  .sf-opt{font-size:11.5px;font-weight:600;color:var(--text4);background:var(--bg-sunken);padding:2px 8px;border-radius:var(--r-pill);}

  /* reason / type radio list */

  .sf-reasons{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--e1);overflow:hidden;}

  .sf-reason{display:flex;align-items:center;gap:12px;padding:13px 15px;border-bottom:1px solid var(--border);cursor:pointer;transition:.12s;}

  .sf-reason:last-child{border-bottom:0;}

  .sf-reason.on{background:var(--primary-tint);}

  .sf-rtx{flex:1;min-width:0;}

  .sf-rlab{font-size:15px;font-weight:700;color:var(--text1);}

  .sf-reason.on .sf-rlab{color:var(--primary-deep);}

  .sf-rsub{font-size:12px;color:var(--text3);margin-top:2px;line-height:1.4;}

  .sf-radio{width:24px;height:24px;border-radius:50%;flex:none;border:2px solid var(--border-2);background:var(--surface);display:flex;align-items:center;justify-content:center;color:#fff;transition:.12s;}

  .sf-radio.on{background:var(--primary);border-color:var(--primary);}

  .sf-radio svg{width:13px;height:13px;}

  /* textarea */

  .sf-area{min-height:96px;}

  /* uploader */

  .sf-uploads{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}

  .sf-uptile{aspect-ratio:1/1;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;position:relative;}

  .sf-uptile.filled{background:var(--bg-sunken);border:1px solid var(--border);color:var(--text3);overflow:hidden;}

  .sf-uptile.filled svg{width:24px;height:24px;}

  .sf-upimg{width:100%;height:100%;object-fit:cover;display:block;}

  .sf-uptile.add{border:1.5px dashed var(--border-2);color:var(--text3);cursor:pointer;background:var(--surface);}

  .sf-uptile.add svg{width:24px;height:24px;}

  .sf-uptile.add:hover{border-color:var(--primary);color:var(--primary-press);}

  .sf-uptile.empty{border:1.5px dashed var(--border);opacity:.5;}

  .sf-updel{position:absolute;right:5px;top:5px;width:18px;height:18px;border-radius:50%;
  background:var(--danger);color:#fff;display:flex;align-items:center;justify-content:center;
  cursor:pointer;border:none;box-shadow:0 1px 4px rgba(0,0,0,.22);transition:.14s;}

  .sf-updel:hover{background:var(--danger-deep);}

  .sf-updel svg{width:18px;height:18px;stroke-width:2.6;}

  .sf-privacy{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;color:var(--text3);line-height:1.5;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md);padding:12px 13px;}

  .sf-privacy svg{width:16px;height:16px;flex:none;margin-top:1px;color:var(--text3);}

  .sf-foot{margin-top:auto;padding-top:6px;}

  .sf-submit{height:52px;font-size:16.5px;}

  /* ===== P-131 success ===== */

  .sf-okscr{background:radial-gradient(620px 380px at 50% -4%, #FFF0F6 0%, transparent 62%), var(--bg);}

  .sf-okbody{flex:1;overflow:auto;display:flex;flex-direction:column;align-items:center;text-align:center;padding:74px 26px 26px;}

  .sf-okbody::-webkit-scrollbar{display:none;}

  .sf-okgrow{flex:1;min-height:18px;}

  .sf-okburst{position:absolute;top:88px;left:50%;transform:translateX(-50%);width:220px;height:220px;border-radius:50%;
  background:radial-gradient(circle,rgba(46,196,123,.18),transparent 70%);pointer-events:none;}

  .sf-okcheck{width:90px;height:90px;border-radius:50%;background:var(--success);color:#fff;display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 30px -8px rgba(46,196,123,.6);position:relative;z-index:1;}

  .sf-okcheck svg{width:46px;height:46px;}

  .sf-okh1{font-size:23px;font-weight:800;letter-spacing:-.02em;color:var(--text1);margin-top:22px;}

  .sf-okp{font-size:14px;color:var(--text2);line-height:1.55;margin-top:9px;max-width:300px;}

  .sf-case{display:flex;align-items:center;justify-content:space-between;width:100%;background:var(--surface);
  border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--e1);padding:14px 17px;margin-top:22px;}

  .sf-caselab{font-size:13px;font-weight:600;color:var(--text2);}

  .sf-caseno{font-family:var(--font-mono);font-size:14px;font-weight:700;color:var(--text1);letter-spacing:.01em;}

  .sf-okblocked{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--text3);margin-top:14px;}

  .sf-okblocked svg{width:15px;height:15px;flex:none;}

  .sf-okcta{height:54px;font-size:17px;}

  .sf-okcta2{height:48px;margin-top:10px;}

  /* ===== modal overlays (P-132 / P-133) ===== */

  .sf-dimveil{position:absolute;inset:0;background:var(--overlay);z-index:30;}

  .sf-modalwrap{position:absolute;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:22px;}

  .sf-modal{max-width:none;width:100%;}

  .sf-modal-ic{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 15px;}

  .sf-modal-ic svg{width:28px;height:28px;}

  .sf-modal-ic.warn{background:var(--danger-tint);color:var(--danger-deep);}

  .sf-modal-ic.gold{background:var(--gold-tint);color:var(--gold-deep);}

  .sf-modal .title{text-align:center;}

  .sf-modal .desc{text-align:center;}

  .sf-countbox{display:flex;align-items:center;justify-content:space-between;background:var(--bg-sunken);border-radius:var(--r-sm);padding:12px 15px;margin-top:16px;}

  .sf-countlab{font-size:13px;font-weight:600;color:var(--text2);}

  .sf-countval{font-family:var(--font-mono);font-size:14.5px;font-weight:800;color:var(--danger-deep);}

  .sf-modalbanner{max-width:none;margin-top:12px;align-items:flex-start;font-size:13px;line-height:1.45;}

  .sf-modalbanner svg{margin-top:1px;}

  .sf-cdwrap{margin-top:16px;background:var(--gold-tint);border:1px solid #F4E2B8;border-radius:var(--r-md);padding:13px 16px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;}

  .sf-cdlab{font-size:13px;font-weight:700;color:var(--gold-deep);}

  .sf-cdval{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:20px;font-weight:800;color:var(--gold-deep);letter-spacing:-.01em;}

  .sf-cdval svg{width:17px;height:17px;}

  .sf-actions-v{flex-direction:column;}

  .sf-actions-v .btn{flex:0 0 auto;width:100%;height:50px;min-height:50px;}

  /* ===== faux chat backdrop ===== */

  .sf-chatback{position:absolute;inset:0;display:flex;flex-direction:column;background:var(--bg);overflow:hidden;}

  .sf-chthead{flex:none;padding:60px 16px 11px;display:flex;align-items:center;gap:11px;background:var(--surface);border-bottom:1px solid var(--border);}

  .sf-chthead .sf-back{box-shadow:none;border:none;background:var(--bg-sunken);width:38px;height:38px;}

  .sf-chthead .sf-back svg{width:11px;height:16px;color:var(--text2);}

  .sf-chtname{font-size:16px;font-weight:800;color:var(--text1);display:flex;flex-direction:column;line-height:1.2;}

  .sf-chtsub{font-size:11.5px;font-weight:500;color:var(--text3);margin-top:2px;}

  .sf-chstream{flex:1;overflow:hidden;padding:18px 16px;display:flex;flex-direction:column;gap:10px;}

  .sf-daysep{align-self:center;font-size:11px;font-weight:600;color:var(--text4);margin-bottom:4px;}

  .sf-bubble{max-width:74%;padding:10px 14px;font-size:14.5px;line-height:1.5;border-radius:18px;}

  .sf-bubble.them{align-self:flex-start;background:var(--surface);border:1px solid var(--border);color:var(--text1);border-bottom-left-radius:5px;}

  .sf-bubble.me{align-self:flex-end;background:var(--primary-press);color:#fff;border-bottom-right-radius:5px;}

  .sf-composer{flex:none;display:flex;align-items:center;gap:10px;padding:10px 16px 30px;background:var(--surface);border-top:1px solid var(--border);}

  .sf-cinput{flex:1;height:44px;border-radius:var(--r-pill);background:var(--bg-sunken);display:flex;align-items:center;padding:0 18px;font-size:14.5px;color:var(--text4);}

  .sf-csend{width:44px;height:44px;border-radius:50%;background:var(--primary-tint);color:var(--primary-press);display:flex;align-items:center;justify-content:center;flex:none;}

  .sf-csend svg{width:20px;height:20px;}

  /* ===== P-134 banned full takeover ===== */

  .sf-banscr{position:absolute;inset:0;font-family:var(--font-sans);overflow:hidden;display:flex;flex-direction:column;
  background:linear-gradient(180deg,#241F1D 0%,#2E2826 60%,#231C1A 100%);}

  .sf-banbody{flex:1;overflow:auto;display:flex;flex-direction:column;align-items:center;text-align:center;padding:86px 28px 30px;}

  .sf-banbody::-webkit-scrollbar{display:none;}

  .sf-banic{width:96px;height:96px;border-radius:50%;background:rgba(229,72,77,.16);color:#FF8A8E;
  display:flex;align-items:center;justify-content:center;border:1.5px solid rgba(229,72,77,.4);}

  .sf-banic svg{width:50px;height:50px;}

  .sf-baneyebrow{font-size:11.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#FF8A8E;margin-top:24px;}

  .sf-banh1{font-size:25px;font-weight:800;letter-spacing:-.02em;color:#fff;margin-top:9px;line-height:1.2;max-width:300px;}

  .sf-bancard{width:100%;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-md);
  padding:4px 16px;margin-top:26px;}

  .sf-banrow{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:13px 0;text-align:left;}

  .sf-banrow.border{border-top:1px solid rgba(255,255,255,.1);}

  .sf-banrlab{font-size:13px;font-weight:600;color:rgba(255,255,255,.55);flex:none;}

  .sf-banrval{font-size:13.5px;color:rgba(255,255,255,.92);line-height:1.5;text-align:right;}

  .sf-banrcd{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:16px;font-weight:800;color:#FFC75A;letter-spacing:-.01em;}

  .sf-banrcd svg{width:15px;height:15px;}

  .sf-bannote{font-size:13px;color:rgba(255,255,255,.6);line-height:1.6;margin-top:20px;max-width:320px;}

  .sf-bangrow{flex:1;min-height:24px;}

  .sf-bancta{height:54px;font-size:17px;}

  .sf-banscta{height:48px;margin-top:11px;background:rgba(255,255,255,.1);color:#fff;}

  .sf-banscta:hover{background:rgba(255,255,255,.16);}

  .sf-aphead{font-size:20px;font-weight:800;letter-spacing:-.01em;color:var(--text1);line-height:1.3;padding:2px 2px 0;}
